;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307#\210\304\305\310\311#\210\304\312\306\313#\210\304\312\310\314#\207" [require evil-common evil-states evil-repeat put beginning-of-line error-conditions (beginning-of-line error) error-message "Beginning of line" end-of-line (end-of-line error) "End of line"] 4) #@128 Execute a motion and return the buffer positions. The return value is a list (BEG END TYPE). (fn MOTION &optional COUNT TYPE) (defalias 'evil-motion-range #[769 "`\306\307!p\310 `\311\223\311\307\311\312\216\313 \210\314\315!\210\214edB B\316\317 \320 \"\210\321\322$\216\206>\323 \324\"\3251\205\326\307\"\327!\203S\211\330!\210\3311e\311\332 !\262)\3070\202l\210\307.\333\334!\204u\335 \210\307.\327!\205~\211\336!\2620\210\202\242\311\335 \210@\337>\204\233\340@A\"\266\202\242\341\342!!\266\343!\204\316\344 \203\264\345 \262\202\316\346 \203\305\347\350 \351 \f#\262\202\316\352\353`\f#!\262\203\345\323!=\204\345\354\"\210\352!\210\355\311\"\210. \207" [evil-motion-marker evil-transient-vals inhibit-quit evil-restriction-stack evil-this-type current-prefix-arg mark t make-marker nil #[0 "\300 \207" [evil-restore-transient-mark-mode] 1] evil-save-transient-mark-mode evil-transient-mark 1 evil-narrow field-beginning field-end make-closure #[0 " \204\302q\210\305\301!\210\300b\210\f\306\211\223\207" [V0 V1 V2 evil-inhibit-operator evil-motion-marker evil-move-mark nil] 3] evil-type exclusive (error) evil-repeat-type functionp pre (quit) call-interactively eval (ignore nil) evil-repeat-abort post (end-of-line end-of-buffer) signal message error-message-string evil-range-p evil-visual-state-p evil-visual-range region-active-p evil-range region-beginning region-end evil-expand-range evil-normalize evil-set-type evil-set-range-properties quit-flag] 13 (#$ . 419)]) #@608 Define a motion command MOTION. ARGS is a list of arguments. Motions can have any number of arguments, but the first (if any) has the predefined meaning of count. BODY must execute the motion by moving point. Optional keyword arguments are: - `:type' - determines how the motion works after an operator (one of `inclusive', `line', `block' and `exclusive', or a self-defined motion type) - `:jump' - if non-nil, the previous position is stored in the jump list, so that it can be restored with \\[evil-jump-backward] (fn MOTION (COUNT ARGS...) DOC [[KEY VALUE]...] BODY...) (defalias 'evil-define-motion '(macro . #[642 "\300\211\211\211\211\203\301\302\301 \"B\262\303\262G\304V\2033\242\242\305=\204+\242;\2033\211A\262\242\262\306\300\307\310#\262\311\242!\203]\211A\262\242\262\211A\262\242\262\306#\262\202:\242\242\312=\203n\211A\262\242A\262\313\314\315\nD\316\317\315\320\321\322\315DDEDEE\323\n\n\324 \205\221 C\325\326\312 BE$BBBE\207" [nil &optional delq ("") 1 format plist-put :repeat motion keywordp interactive progn when quote eval-after-load 'eldoc and (fboundp 'eldoc-add-command) eldoc-add-command evil-define-command append :keep-visual t] 20 (#$ . 1974)])) (byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-motion lisp-indent-function defun doc-string-elt 3 put edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] [&optional ("interactive" [&rest form])] def-body)] 6) #@182 Narrow BODY to the current line. BODY will signal the errors 'beginning-of-line or 'end-of-line upon reaching the beginning or end of the current line. (fn [[KEY VAL]...] BODY...) (defalias 'evil-narrow-to-line '(macro . #[128 "\300\301\302\303\304\305\306\307\310\311\312 B\313BBBDF\257\207" [let* ((range (evil-expand (point) (point) 'line)) (beg (evil-range-beginning range)) (end (evil-range-end range)) (min (point-min)) (max (point-max))) (when (save-excursion (goto-char end) (bolp)) (setq end (max beg (1- end)))) (when (and (not evil-move-beyond-eol) (not (evil-visual-state-p)) (not (evil-operator-state-p))) (setq end (max beg (1- end)))) evil-with-restriction beg end evil-signal-without-movement condition-case err progn ((beginning-of-buffer (if (= beg min) (signal (car err) (cdr err)) (signal 'beginning-of-line nil))) (end-of-buffer (if (= end max) (signal (car err) (cdr err)) (signal 'end-of-line nil))))] 13 (#$ . 3535)])) (byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\"\210\307\310\312\"\207" [function-put evil-narrow-to-line lisp-indent-function defun put edebug-form-spec t add-to-list debug-ignored-errors "^Beginning of line$" "^End of line$"] 5) #@83 Whether point is at end-of-buffer with regard to end-of-line. (fn &optional POS) (defalias 'evil-eobp #[256 "\212\211\203\211b\210m\206/\300 \204\301\202/l\203 \301u\210m\202/\301u\210m\206/l\205/\301u\210m)\207" [evil-normal-state-p nil] 2 (#$ . 4734)]) #@329 Move to the beginning of the COUNT next object. If COUNT is negative, move to the COUNT previous object. FORWARD is a function which moves to the end of the object, and BACKWARD is a function which moves to the beginning. If one is unspecified, the other is used with a negative argument. (fn COUNT FORWARD &optional BACKWARD) (defalias 'evil-move-beginning #[770 "\206\300C\206\301\302\"\206\301\303\"`\242\304W\203vo\203'\305\306\307\"\210\301\310\"\216\242\307\304W\210\3112r\240\210\211\304U\204n`\300!\210`U\203T\312\311\"\210\210\211\304V\203b\211S\262\202f\211T\262\240\210\202=\211\2620\266\202)\207\242\304V\203\354\313 \203\207\305\314\307\"\210\212\300!\210\300!\210`)X\203\235\211\242T\240\210\301\315#\216\242\307\304W\210\3162\350\240\210\211\304U\204\344`\300!\210`U\203\312\312\316\"\210\210\211\304V\203\330\211S\262\202\334\211T\262\240\210\202\264\211\2620\266\202)\207\242\207" [1 make-closure #[257 "\300[!\207" [V0] 3 "\n\n(fn COUNT)"] #[257 "\300[!\207" [V0] 3 "\n\n(fn COUNT)"] 0 signal beginning-of-buffer nil #[0 "\300\242\301U?\205\neb\207" [V0 0] 2] #1=#:donevar throw evil-eobp end-of-buffer #[0 "\300\242\302U\203 \301\303!\207db\207" [V0 V1 0 1] 2] #2=#:donevar] 14 (#$ . 5007)]) #@465 Move to the end of the COUNT next object. If COUNT is negative, move to the COUNT previous object. FORWARD is a function which moves to the end of the object, and BACKWARD is a function which moves to the beginning. If one is unspecified, the other is used with a negative argument. If INCLUSIVE is non-nil, then point is placed at the last character of the object; otherwise it is placed at the end of the object. (fn COUNT FORWARD &optional BACKWARD INCLUSIVE) (defalias 'evil-move-end #[1026 "\206\300C\206\301\302\"\206\301\303\"`\242\304W\203\231o\203'\305\306\307\"\210\212\300!\210\300!\210`)\203;T\202<Y\203F\211\242S\240\210\301\310$\216\242\307\304W\210\3112\225\240\210\211\304U\204\221`\300!\210`U\203w\312\311\"\210\210\211\304V\203\205\211S\262\202\211\211T\262\240\210\202`\211\2620\266\202)\207\242\304V\203\313 \203\252\305\314\307\"\210\203\261\307u\210\301\315#\216\242\307\304W\210\3162\376\240\210\211\304U\204\372`\300!\210`U\203\340\312\316\"\210\210\211\304V\203\356\211S\262\202\362\211T\262\240\210\202\312\211\2620\266\202)\207\242\207" [1 make-closure #[257 "\300[!\207" [V0] 3 "\n\n(fn COUNT)"] #[257 "\300[!\207" [V0] 3 "\n\n(fn COUNT)"] 0 signal beginning-of-buffer nil #[0 "\301\242\303U\204\neb\207\302\304!\210\300\203o\204\305u\210\306 \204#\307 \205%\310 \207" [V0 V1 V2 0 1 -1 evil-normal-state-p evil-motion-state-p evil-adjust-cursor] 2] #1=#:donevar throw evil-eobp end-of-buffer #[0 "\301\242\302U\204\ndb\207\300\203o\204\303u\210\304 \204\305 \205!\306 \207" [V0 V1 0 -1 evil-normal-state-p evil-motion-state-p evil-adjust-cursor] 2] #2=#:donevar] 15 (#$ . 6299)]) #@272 Turn the text object selection RANGE to linewise. The selection is adjusted in a sensible way so that the selected lines match the user intent. In particular, whitespace-only parts at the first and last lines are omitted. This function returns the new range. (fn RANGE) (defalias 'evil-text-object-make-linewise #[257 "\300!\301=\203 \207\302\303!\304\"\305\306\"\212\307!b\210\310\311w\210n\204+l\203+\312`T\"\210\313!b\210\310\311x\210l\204Bn\203B\314`S\"\210\307!\313!V\203P\202Y\204X\315!\210\211)\207" [evil-type line plist-get evil-range-properties :expanded evil-expand-range t evil-range-beginning " " nil evil-set-range-beginning evil-range-end evil-set-range-end evil-contract-range] 6 (#$ . 8014)]) #@532 Define a text object command OBJECT. BODY should return a range (BEG END) to the right of point if COUNT is positive, and to the left of it if negative. Optional keyword arguments: - `:type' - determines how the range applies after an operator (`inclusive', `line', `block', and `exclusive', or a self-defined motion type). - `:extend-selection' - if non-nil (default), the text object always enlarges the current selection. Otherwise, it replaces the current selection. (fn OBJECT (COUNT) DOC [[KEY VALUE]...] BODY...) (defalias 'evil-define-text-object '(macro . #[642 "\300\301\"\211A\262\242\206\302\205\301B\303\304\211\211\211\242;\203*\211A\262\n\242\262\305\304\306\307#\262\310 \242!\203V\211A\262\n\242\262\211A\262\n\242\262\305#\262\2021\242\242\311=\203i\211A\262\n\242C\262\312 B\313\205zC\n\314\315\316BBE\317\320\321BB\322\323\324\325D\326BBD\327\330\331\332\325D\306\325\333\306\"DFED\334BB\335\336\314\337\340\341\342BB\257\314\343\344BE\345BBB\307\314\343\344BE\346\347\314\350D\343\344B\257E\351BBBEEED$BBB\207" [delq &optional count ((interactive "")) nil plist-put :extend-selection t keywordp interactive evil-define-motion append setq or (1) when /= (0) let type evil-type quote (evil-visual-char) extend and (evil-visual-state-p) evil-get-command-property plist-get ((dir evil-visual-direction) mark point range selection) cond (and (evil-visual-state-p) (called-interactively-p 'any)) dir evil-visual-direction * (dir) range progn ((when (evil-range-p range) (setq range (evil-expand-range range)) (evil-set-type range (evil-type range type)) (setq range (evil-contract-range range)) (setq mark (evil-range-beginning range) point (evil-range-end range) type (evil-type (if evil-text-object-change-visual-type range (evil-visual-range)))) (when (and (eq type 'line) (not (eq type (evil-type range)))) (let ((newrange (evil-text-object-make-linewise range))) (setq mark (evil-range-beginning newrange) point (evil-range-end newrange)))) (when (< dir 0) (evil-swap mark point)) (evil-visual-make-selection mark point type))) unless (evil-range-p range) - ((when (evil-range-p range) (setq selection (evil-range (point) (point) type)) (if extend (setq range (evil-range-union range selection)) (evil-set-type range (evil-type range type))) (when (eq evil-this-type-modified 'line) (setq range (evil-text-object-make-linewise range))) (evil-set-range-properties range nil) range))] 35 (#$ . 8753)])) (byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-text-object lisp-indent-function defun doc-string-elt 3 put edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] def-body)] 6) #@1040 Define an operator command OPERATOR. The operator acts on the range of characters BEG through END. BODY must execute the operator by potentially manipulating the buffer contents, or otherwise causing side effects to happen. Optional keyword arguments are: - `:type' - force the input range to be of a given type (`inclusive', `line', `block', and `exclusive', or a self-defined motion type). - `:motion' - use a predetermined motion instead of waiting for one from the keyboard. This does not affect the behavior in visual state, where selection boundaries are always used. - `:repeat' - if non-nil (default), then \\[evil-repeat] will repeat the operator. - `:move-point' - if non-nil (default), the cursor will be moved to the beginning of the range before the body executes - `:keep-visual' - if non-nil, the selection is not disabled when the operator is executed in visual state. By default, visual state is exited automatically. (fn OPERATOR (BEG END ARGS...) DOC [[KEY VALUE]...] BODY...) (defalias 'evil-define-operator '(macro . #[642 "\300\301\"\211G\302V\203\303\202\304G\302V\203&@A@\301AABBB\202'\305\211\211\211\211G\306V\203M\242\242\307=\204D\242;\203M\211A\262\n\242\262\310\305\311\312#\262\313 \242!\203\205\211A\262\n\242\262\211A\262\n\242\262\314=\203z\262\202T\310#\262\202T\242\242\315=\203\230\211A\262\n\242\243\262\316\317\"\262\320\243\"\262\242\262\321 \322\205\272C\314\312\323\312\315\324\325\326\327\330D\331BB\332\333\330D\334BB\335BBED\336\333\330D\337BBD\340BB\341\342\343\344\345BB\346\347\333\330 D\350BB\351B\352BBB\257FD\353\354\355\356\357BBE\360BB\257#BBB\207" [delq &optional 2 ("") ("") nil 1 format plist-put :move-point t keywordp :keep-visual interactive apply evil-interactive-form evil-concat-plists evil-define-command append :suppress-operator let* evil-operator-range-motion when evil-has-command-property-p quote (:motion) or evil-get-command-property (:motion) (#'undefined) evil-operator-range-type (:type) ((orig (point)) evil-operator-range-beginning evil-operator-range-end evil-inhibit-operator) (setq evil-inhibit-operator-value nil evil-this-operator this-command) prog1 (setq orig (point) evil-inhibit-operator-value evil-inhibit-operator) if ((when (evil-visual-state-p) (evil-visual-expand-region)) (when (or (evil-visual-state-p) (region-active-p)) (setq deactivate-mark t))) cond ((evil-visual-state-p) (evil-visual-rotate 'upper-left)) (:move-point) ((goto-char (or evil-operator-range-beginning orig))) ((t (goto-char orig))) unwind-protect let ((evil-inhibit-operator evil-inhibit-operator-value)) unless (and evil-inhibit-operator (called-interactively-p 'any)) ((setq evil-inhibit-operator-value nil))] 34 (#$ . 11529)])) (byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-operator lisp-indent-function defun doc-string-elt 3 put edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] [&optional ("interactive" [&rest form])] def-body)] 6) #@177 Read a motion from the keyboard and return its buffer positions. The return value is a list (BEG END), or (BEG END TYPE) if RETURN-TYPE is non-nil. (fn &optional RETURN-TYPE) (defalias 'evil-operator-range #[256 "\306 ?\205\307 \206\211\205\310 \311``\"\312\211\211\313\312\211\314\216\315 \210\20353\20353\262\202L\204E\316 \203E\317 \262\202L\204_\320 \203_\311\321 \322 4\206Y\323#\262\202L5566\3247!7885\313p\325\326#\216\204\310\327\330!\210\331\332\333 !8\334!\262\211G\335\211W\203\256\211\3369\337\233!\340#\266\211T\262\202\223\266\341!\262@\262A@\262\206\306\3318\262\342=\203\341\203\330\343\202\331\344\262\312\262\202\"\203\356\345\346\"\203\347\350!\203\367\350 \210\313:\312\262\202\";\203;\262\312;\202\"\204<\203\"\351!\351?\353\"\2624.\266\354!\203\210\203k\353!=\204k\355!\210\356\"\210\357!\210\360\312\"\210\204z\356\312\"\210\361!@\362!A\353!,\207" [evil-operator-range-motion evil-operator-range-type evil-this-type-modified evil-write-echo-area evil-echo-area-message inhibit-quit minibufferp evil-ex-p evil-line evil-range nil t #[0 "\300 \207" [evil-echo-area-restore] 1] evil-echo-area-save evil-visual-state-p evil-visual-range region-active-p region-beginning region-end exclusive copy-tree make-closure #[0 "\302\301!\205r\301q\210\303\300!)\207" [V0 V1 buffer-live-p evil-change-state] 2] evil-change-state operator 2 evil-extract-count this-command-keys listify-key-sequence 0 define-key vconcat evil-line-or-visual-line evil-read-motion undefined (nil nil nil) (nil nil) evil-get-command-property :suppress-operator fboundp evil-repeat-abort prefix-numeric-value evil-motion-range evil-type evil-range-p evil-contract-range evil-set-type evil-expand-range evil-set-range-properties evil-range-beginning evil-range-end evil-ex-range evil-this-type evil-state evil-previous-state evil-previous-state-alist evil-next-state evil-operator-shortcut-map quit-flag evil-repeat-count current-prefix-arg mark-active evil-this-motion evil-this-motion-count evil-operator-range-beginning evil-operator-range-end] 18 (#$ . 14654)]) #@945 Define type TYPE. DOC is a general description and shows up in all docstrings. Optional keyword arguments: - `:expand' - expansion function. This function should accept two positions in the current buffer, BEG and END,and return a pair of expanded buffer positions. - `:contract' - the opposite of `:expand'. Optional. - `:one-to-one' - non-nil if expansion is one-to-one. This means that `:expand' followed by `:contract' always return the original range. - `:normalize' - normalization function. This function should accept two unexpanded positions and adjust them before expansion. May be used to deal with buffer boundaries. - `:string' - description function. Takes two buffer positions and returns a human-readable string. For example "2 lines" If further keywords and functions are specified, they are assumed to be transformations on buffer positions, like `:expand' and `:contract'. (fn TYPE DOC [[KEY FUNC]...]) (defalias 'evil-define-type '(macro . #[642 "\300\211\211\211\211\211\211\211\211\301\300\302\303#\262\304\n\242!\203 \211A\262 \242\262 \211A\262 \242\262\305\"\203=\301#\262\202\211\262\306\307\310\311\312\n!#!\262\306\313\314#!\262\243@\262 \243A@\262;\203o\313\315\"\202p\311\262\301\316D#\262\317=\203\277\320\321\313\322$\323\324\325\326\316DD\327BBB\330\331\332\333\334\335\336\337D\340\341\330G\342V\343BB\257\344BBFEE\257\202\320\345\313\346 %\323\347\350\326\316DD\351BBB\330\352\332\353\330\354\355BB\356\357\301\357\360\361=FEE\356\362\335\336\337D\340\341\330G\342V\363BB\257\364BB\365BBB\366BBBBEE\257B\262\202\367\361\"\2038\301\302\367\370\"\2055\367\302\"#\262\371\372\373\316DBBB\374\n\316DC\"BB\207" [nil plist-put :one-to-one t keywordp plist-member intern replace-regexp-in-string "^:" #1="" symbol-name format "evil-%s-%s" "%s\n\n" quote :string defun (beg end &rest properties) "Return size of %s from BEG to END with PROPERTIES.\n\n%s%s" let (beg (evil-normalize-position beg)) (end (evil-normalize-position end)) type (plist range) when (and beg end) save-excursion (evil-sort beg end) (unless (plist-get properties :expanded) (setq range (apply #'evil-expand beg end type properties) beg (evil-range-beginning range) end (evil-range-end range) type (evil-type range type) plist (evil-range-properties range)) (setq properties (evil-concat-plists properties plist))) or apply function beg end 2 (properties) (#1#) (beg end &rest properties) "Perform %s transformation on %s from BEG to END with PROPERTIES.\n\n%s%s" (beg (evil-normalize-position beg)) (end (evil-normalize-position end)) (plist range) (and beg end) (evil-sort beg end) memq ('(:expand :contract)) setq properties :expanded :expand range (properties) ((apply #'evil-range beg end type properties)) (beg (evil-range-beginning range) end (evil-range-end range) type (evil-type range type) plist (evil-range-properties range)) ((setq properties (evil-concat-plists properties plist)) (apply #'evil-range beg end type properties)) plist-get :contract progn evil-put-property 'evil-type-properties append] 33 (#$ . 16900)])) (byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-type lisp-indent-function defun doc-string-elt 2 put edebug-form-spec (&define name [&optional stringp] [&rest [keywordp function-form]])] 6) #@258 Define an interactive code. PROMPT, if given, is the remainder of the interactive string up to the next newline. Command properties may be specified via KEY-VALUE pairs. BODY should evaluate to a list of values. (fn CODE (PROMPT) [[KEY VALUE]...] BODY...) (defalias 'evil-define-interactive-code '(macro . #[385 "\211G\300V\205\211\242<\205\211A\262\242\242;\205\211A\262\242\301\211\302\242!\203?\303\211A\262\242\211A\262 \242D\"\262\202!\203V\304\303\205LC\"BB\262\202iG\300V\203e\305B\262\202i@\262\306\307\310D\311\312\313\314D\314DEDE\315BBD\207" [1 nil keywordp append lambda progn eval-and-compile let* code (entry (assoc code evil-interactive-alist)) value cons quote ((if entry (setcdr entry value) (push (cons code value) evil-interactive-alist)) code)] 15 (#$ . 20301)])) (byte-code "\300\301\302\303#\304\305!\203\305\306\307\"\210\310\311!\207" [function-put evil-define-interactive-code lisp-indent-function defun fboundp font-lock-add-keywords emacs-lisp-mode (("(\\(evil-\\(?:ex-\\)?define-\\(?:[^ k][^ e][^ y]\\|[-[:word:]]\\{4,\\}\\)\\)\\>[ \f \n ]*\\(\\(?:\\sw\\|\\s_\\)+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) ("(\\(evil-\\(?:delay\\|narrow\\|signal\\|save\\|with\\(?:out\\)?\\)\\(?:-[-[:word:]]+\\)?\\)\\>[ \f \n ]+" 1 font-lock-keyword-face) ("(\\(evil-\\(?:[-[:word:]]\\)*loop\\)\\>[ \f \n ]+" 1 font-lock-keyword-face)) provide evil-macros] 4)