| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/emacs/28.2/lisp/ |
Upload File : |
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.
(byte-code "\300\301\302\303\304\305\304\306&\210\307\310\311\312\313DD\314\315\316\304\301&\210\307\317\311\312\320DD\321\315\322\304\301&\207" [custom-declare-group follow nil "Synchronize windows showing the same buffer." :group windows convenience custom-declare-variable follow-mode-hook funcall function #[0 "\300\207" [nil] 1 #1=""] "Normal hook run by `follow-mode'." :type hook follow-mode-prefix #[0 "\300\207" ["."] 1 #1#] "Prefix key to use for follow commands in Follow mode.\nThe value of this variable is checked as part of loading Follow mode.\nAfter that, changing the prefix key requires manipulating keymaps." string] 8)
#@36 Minor mode keymap for Follow mode.
(defvar follow-mode-map (byte-code "\301 \301 \302\303\304#\210\302\305\306#\210\302\307\306#\210\302\310\311#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322\323#\210\302\324\325#\210\302\326\327#\210\302#\210\302\330\331#\210\302\332\333#\210\302\334\335#\210\302\336\337#\210\302\340\341#\210\302\342\343#\210\207" [follow-mode-prefix make-sparse-keymap define-key "" follow-scroll-up "\366" follow-scroll-down "v" "1" follow-delete-other-windows-and-split "b" follow-switch-to-buffer "" follow-switch-to-buffer-all "\f" follow-recenter "<" follow-first-window ">" follow-last-window "n" follow-next-window "p" follow-previous-window [remap end-of-buffer] follow-end-of-buffer [remap scroll-bar-toolkit-scroll] follow-scroll-bar-toolkit-scroll [remap scroll-bar-drag] follow-scroll-bar-drag [remap scroll-bar-scroll-up] follow-scroll-bar-scroll-up [remap scroll-bar-scroll-down] follow-scroll-bar-scroll-down [remap mwheel-scroll] follow-mwheel-scroll] 6) (#$ . 728))
#@13
(fn MENU)
(defalias 'follow-menu-filter #[257 "\301\300!\203 \203 \207\302\207" [follow-mode boundp (["Follow mode" follow-mode :style toggle :selected follow-mode])] 3 (#$ . 1795)])
(byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\210\304\316\306\307\317DD\320\312\321\314\315\322\323& \210\304\324\306\307\325DD\326\312\321\314\315&\207" [easy-menu-add-item nil ("Tools") ("Follow" :filter follow-menu-filter ["Scroll Up" follow-scroll-up follow-mode] ["Scroll Down" follow-scroll-down follow-mode] "--" ["Delete Other Windows and Split" follow-delete-other-windows-and-split follow-mode] "--" ["Switch To Buffer" follow-switch-to-buffer follow-mode] ["Switch To Buffer (all windows)" follow-switch-to-buffer-all follow-mode] "--" ["First Window" follow-first-window follow-mode] ["Last Window" follow-last-window follow-mode] ["Next Window" follow-next-window follow-mode] ["Previous Window" follow-previous-window follow-mode] "--" ["Recenter" follow-recenter follow-mode] "--" ["Follow mode" follow-mode :style toggle :selected follow-mode]) custom-declare-variable follow-mode-line-text funcall function #[0 "\300\207" [" Follow"] 1 #1=""] "Text shown in the mode line when Follow mode is active.\nDefaults to \" Follow\". Examples of other values\nare \" Fw\", or simply \"\"." :type string :group follow follow-auto #[0 "\300\207" [nil] 1 #1#] "Non-nil activates Follow mode whenever a file is loaded." boolean :set #[514 "\211\203
\300\301\302\303#\210\202 \304\301\302\"\210\305\"\207" [add-hook find-file-hook follow-find-file-hook t remove-hook set-default] 6 "\n\n(fn SYMBOL VALUE)"] follow-hide-ghost-cursors #[0 "\300\207" [t] 1 #1#] "When non-nil, Follow mode attempts to hide the obtrusive cursors\nin the non-selected windows of a window group.\n\nThis variable takes effect when `follow-mode' is initialized.\n\nDue to limitations in Emacs, this only operates on the followers\nof the selected window."] 10)
#@365 List of commands that don't require recalculation.
In order to be able to use the cache, a command should not change the
contents of the buffer, nor should it change selected window or current
buffer.
The commands in this list are checked at load time.
To mark other commands as suitable for caching, set the symbol
property `follow-mode-use-cache' to non-nil.
(defvar follow-cache-command-list '(next-line previous-line forward-char backward-char right-char left-char) (#$ . 3769))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable follow-debug funcall function #[0 "\300\207" [nil] 1 ""] "If non-nil, emit Follow mode debugging messages." :type boolean :group follow] 8)
#@56 Non-nil when Follow mode should redisplay the windows.
(defvar follow-internal-force-redisplay nil (#$ . 4488))
#@46 The menu visible when Follow mode is active.
(defvar follow-active-menu nil (#$ . 4606))
#@48 The menu visible when Follow mode is inactive.
(defvar follow-inactive-menu nil (#$ . 4701))
#@92 Non-nil when inside Follow modes `post-command-hook'.
Used by `follow-window-size-change'.
(defvar follow-inside-post-command-hook-call nil (#$ . 4800))
#@62 Cache used by `follow-window-start' and `follow-window-end'.
(defvar follow-windows-start-end-cache nil (#$ . 4959))
#@108 If non-nil, the current window must not be scrolled.
This is typically set by explicit scrolling commands.
(defvar follow-fixed-window nil (#$ . 5083))
#@82 Like `message', but only active when `follow-debug' is non-nil.
(fn &rest ARGS)
(defalias 'follow-debug-message #[128 "\301\300!\205 \205 \302\303\"\207" [follow-debug boundp apply message] 4 (#$ . 5241)])
(byte-code "\301\302\303\304#\305\302\306\307#\210\211\203 \211@\305\310\311#\210A\266\202\202\f \207" [follow-cache-command-list function-put follow-debug-message speed -1 put byte-optimizer byte-compile-inline-expand follow-mode-use-cache t] 7)
#@62 Turn on Follow mode. Please see the function `follow-mode'.
(defalias 'turn-on-follow-mode #[0 "\300\301!\207" [follow-mode 1] 2 (#$ . 5709)])
#@63 Turn off Follow mode. Please see the function `follow-mode'.
(defalias 'turn-off-follow-mode #[0 "\300\301!\207" [follow-mode -1] 2 (#$ . 5859)])
(put 'follow-mode 'permanent-local t)
#@91 Non-nil if Follow mode is enabled.
Use the command `follow-mode' to change this variable.
(defvar follow-mode nil (#$ . 6050))
(make-variable-buffer-local 'follow-mode)
#@1756 Toggle Follow mode.
This is a minor mode. If called interactively, toggle the `Follow
mode' mode. If the prefix argument is positive, enable the mode, and
if it is zero or negative, disable the mode.
If called from Lisp, toggle the mode if ARG is `toggle'. Enable the
mode if ARG is nil, omitted, or is a positive number. Disable the
mode if ARG is a negative number.
To check whether the minor mode is enabled in the current buffer,
evaluate `follow-mode'.
The mode's hook is called both when the mode is enabled and when it is
disabled.
Follow mode is a minor mode that combines windows into one tall
virtual window. This is accomplished by two main techniques:
* The windows always displays adjacent sections of the buffer.
This means that whenever one window is moved, all the
others will follow. (Hence the name Follow mode.)
* Should point (cursor) end up outside a window, another
window displaying that point is selected, if possible. This
makes it possible to walk between windows using normal cursor
movement commands.
Follow mode comes to its prime when used on a large screen and two or
more side-by-side windows are used. The user can, with the help of
Follow mode, use these full-height windows as though they were one.
Imagine yourself editing a large function, or section of text, and
being able to use 144 or 216 lines instead of the normal 72... (your
mileage may vary).
To split one large window into two side-by-side windows, the commands
`\[split-window-right]' or `\[follow-delete-other-windows-and-split]' can be used.
Only windows displayed in the same frame follow each other.
This command runs the normal hook `follow-mode-hook'.
Keys specific to Follow mode:
\{follow-mode-map}
(fn &optional ARG)
(defalias 'follow-mode #[256 "\306 \307=\203
?\202 \247\203 \310W\203 \311\202 \312\313\301!\2031 \314\300 \"\2031 \300 B\203\222 \315\316\317\312\211$\210\320\321\322\323B\324\311$\210\315\325\326\312#\210\315\327\330\311\312$\210\315\331\332\311\312$\210\315\333\332\311\312$\210\315\334\332\311\312$\210\n\203q \335\302!\210\336\203{ \335\304!\210\311\337\3403\3412\3421\3430\344/\345.\202\346 \311\211\204\253 \203\253 \347\300@\"\262A\262\202\225 \211\204\310 \350\351\352!\324\"\211\351\352!=\204\302 \353\352\"\210\210\354\325\326\"\210\266\355\356!\210\355\357!\210\355\360!\210\355\361!\210\355\362!\210\355\363!\210\355\305!\210\355\304!\210\354\334\332\312#\210\354\333\332\312#\210\354\331\332\312#\210\354\327\330\312#\210\354\316\317\312#\210\364\365\203\366\202\367\"\210\370\371!\2035\306 \203'\211\306 \232\2035\372\373\2031\374\2022\375\376#\210\210\377 \210\207" [follow-mode local-minor-modes isearch-lazy-highlight follow-hide-ghost-cursors cursor-in-non-selected-windows window-group-start-function current-message toggle 1 nil t boundp delq add-hook compilation-filter-hook follow-align-compilation-windows advice--add-function :before #[0 "\300\301!\207" [default-value pre-redisplay-function] 2] #[257 "\300\301\"\207" [set-default pre-redisplay-function] 4 "\n\n(fn GV--VAL)"] follow-pre-redisplay-function window-size-change-functions follow-window-size-change after-change-functions follow-after-change isearch-update-post-hook follow-post-command-hook replace-update-post-hook ispell-update-post-hook make-local-variable all-windows follow-window-start follow-window-end follow-set-window-start follow-recenter follow-pos-visible-in-window-p follow-all-followers follow-move-to-window-line buffer-list buffer-local-value advice--remove-function default-value pre-redisplay-function set-default remove-hook kill-local-variable move-to-window-group-line-function selected-window-group-function pos-visible-in-window-group-p-function recenter-window-group-function set-window-group-start-function window-group-end-function run-hooks follow-mode-hook follow-mode-on-hook follow-mode-off-hook called-interactively-p any message "Follow mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 8 (#$ . 6227) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar follow-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\310\211%\207" [follow-mode-map follow-mode-hook variable-documentation put "Hook run after entering or leaving `follow-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode follow-mode follow-mode-line-text] 6)
#@66 Find-file hook for Follow mode. See the variable `follow-auto'.
(defalias 'follow-find-file-hook #[0 "\205 \301\302!\207" [follow-auto follow-mode 1] 2 (#$ . 10856)])
#@487 Calculate the correct value for point after a scrolling operation.
DEST is our default position, typically where point was before the scroll.
If `scroll-preserve-screen-position' is non-nil and active, DEST will be
in the same screen position as before the scroll. WINDOWS is the list of
windows in the follow chain.
This function attempts to duplicate the point placing from
`window_scroll_line_based' in the Emacs core source window.c.
Return the new position.
(fn DEST WINDOWS)
(defalias 'follow-get-scrolled-point #[514 "\203\f \302N\203\f \207\212b\210i\303\304!\210iZ)\305@!r\306\307\"\216\310@\311\"\210\212\312 b\210\303\304!\210`+\262\305\313!@!r\306\314\"\216\310@\311\"\210\212\315\316\317\"b\210\320 \203W `\202Y `S+\262W\203 \305@!r\306\321\"\216\310@\311\"\210\212b\210\303\304B!\210`+\207V\203\244 \305\313!@!r\306\322\"\216\310@\311\"\210\212b\210\303\304B!\210`+\207\207" [scroll-preserve-screen-position this-command scroll-command vertical-motion 0 internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord window-start reverse #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] window-end nil t pos-visible-in-window-p #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2]] 9 (#$ . 11033)])
#@212 Scroll the text in a follow mode window chain up by ARG lines.
If ARG is nil, scroll the size of the current window.
This is an internal function for `follow-scroll-up' and
`follow-scroll-up-window'.
(fn ARG)
(defalias 'follow-scroll-up-arg #[257 "`\303 \3041 \305!\210\3060\202) \210\3071 \310 \210\3110\202) \210\312!\210b\210\313\314\306\"\204 \2036 \315N\2049 b\210\311\211\207" [scroll-preserve-screen-position this-command follow-fixed-window selected-window (end-of-buffer) scroll-up-command nil (error) follow-previous-window t select-window signal end-of-buffer scroll-command] 6 (#$ . 12455)])
#@218 Scroll the text in a follow mode window chain down by ARG lines.
If ARG is nil, scroll the size of the current window.
This is an internal function for `follow-scroll-down' and
`follow-scroll-down-window'.
(fn ARG)
(defalias 'follow-scroll-down-arg #[257 "`\303!\210\203 \304N\204 \211b\210\305\211\207" [scroll-preserve-screen-position this-command follow-fixed-window scroll-down-command scroll-command t] 4 (#$ . 13078)])
#@398 Scroll text in a Follow mode window up by that window's size.
The other windows in the window chain will scroll synchronously.
If called with no ARG, the `next-screen-context-lines' last lines of
the window will be visible after the scroll.
If called with an argument, scroll ARG lines up.
Negative ARG means scroll downward.
Works like `scroll-up' when not in Follow mode.
(fn &optional ARG)
(defalias 'follow-scroll-up-window #[256 "\204 \301!\207\211\302=\203 \303 \207\304!\207" [follow-mode scroll-up-command - follow-scroll-down-window follow-scroll-up-arg] 3 (#$ . 13518) "P"])
(put 'follow-scroll-up-window 'scroll-command t)
#@414 Scroll text in a Follow mode window down by that window's size.
The other windows in the window chain will scroll synchronously.
If called with no ARG, the `next-screen-context-lines' top lines of
the window in the chain will be visible after the scroll.
If called with an argument, scroll ARG lines down.
Negative ARG means scroll upward.
Works like `scroll-down' when not in Follow mode.
(fn &optional ARG)
(defalias 'follow-scroll-down-window #[256 "\204 \301!\207\211\302=\203 \303 \207\304!\207" [follow-mode scroll-down-command - follow-scroll-up-window follow-scroll-down-arg] 3 (#$ . 14168) "P"])
(put 'follow-scroll-down-window 'scroll-command t)
#@338 Scroll text in a Follow mode window chain up.
If called with no ARG, the `next-screen-context-lines' last lines of
the bottom window in the chain will be visible in the top window.
If called with an argument, scroll ARG lines up.
Negative ARG means scroll downward.
Works like `scroll-up' when not in Follow mode.
(fn &optional ARG)
(defalias 'follow-scroll-up #[256 "\204 \303!\207\211\203 \304!\207\305 \306\307!@!\211d=\203. \203&