;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\301\302\303\304#\204\f\301\305!\210\301\306!\210\301\307!\210\301\310!\210\301\311!\210\301\312!\210\301\313!\210\301\314!\210\301\315!\210\301\316!\210\301\317!\210\301\320!\210\301\321!\210\301\322!\210\323\324\303\325\326\327%\210\330\331\332\333\334DD\335\336\337%\210\330\340\332\333\341DD\342\336\343%\210\330\344\332\333\345DD\346\336\343%\210\347\350\351\352#\210\347\353\354\355#\210\347\356\357\360#\210\347\361\362\363#\210\330\364\332\333\365DD\366\336%\210\330\367\332\333\370DD\371\336%\210\330\372\332\333\373DD\374\336\375%\210\330\376\332\333\377DD\201@\336\201A%\210\330\201B\332\333\201CDD\201D\336\201E%\207" [display-buffer--action-custom-type require rmc nil t subr-x cl-lib pcase cl-print elisp-mode thingatpt thunk seq stream stream-x help-fns ring hideshow outline custom-declare-group el-search "Expression based search and replace for Emacs Lisp." :group lisp custom-declare-variable el-search-display-mb-hints funcall function #[0 "\300\207" [t] 1] "Whether to show hints in the search pattern prompt." :type boolean el-search-mb-hints-delay #[0 "\300\207" [0.8] 1] "Time before displaying minibuffer hints.\n\nSetting this has only an effect if `el-search-display-mb-hints'\nis non-nil." number el-search-mb-hints-timeout #[0 "\300\207" [15] 1] "How long to display minibuffer hints." custom-declare-face el-search-match ((((class color) (min-colors 88) (background dark)) (:background "#600000")) (((class color) (min-colors 88) (background light)) (:background "DarkSlateGray3")) (t (:background "red"))) "Face for highlighting the current match." el-search-other-match ((((class color) (min-colors 88) (background dark)) (:background "#603030")) (((class color) (min-colors 88) (background light)) (:background "DarkSlateGray1")) (t (:background "red"))) "Face for highlighting the other matches." el-search-occur-match ((((class color) (min-colors 88) (background dark)) (:background "#000060")) (((class color) (min-colors 88) (background light)) (:background "GreenYellow")) (t (:background "blue"))) "Face for highlighting matches in *El Occur*." el-search-highlight-in-prompt-face ((t (:inherit warning))) "Face for highlighting important parts in prompts." el-search-display-buffer-popup-action #[0 "\300\207" [((display-buffer-reuse-window display-buffer-same-window) (reusable-frames . visible))] 1] "`display-buffer' action used to display pop-up windows." el-search-display-next-buffer-action #[0 "\300\207" [((display-buffer-reuse-window display-buffer-same-window) (reusable-frames . visible) (inhibit-same-window))] 1] "Action used to display the next buffer in multi searches." el-search-ignored-directory-regexps #[0 "\300\301\302\"\207" [mapcar #[257 "\300\301\302!\"\207" [format "\\`%s\\'" regexp-quote] 5 "\n\n(fn NAME)"] ("SCCS" "RCS" "CVS" "MCVS" ".src" ".svn" ".git" ".hg" ".bzr" "_MTN" "_darcs" "{arch}")] 3] "List of regexps defining directories that el-search should ignore.\n\nThe value influences the behavior of the commands that\nperform directory searches like `el-search-directory' or\n`el-search-dired-marked-files'. It is consulted by all streams\n`el-search-stream-of-directory-files' returns.\n\nThe `file-name-nondirectory' of the directory file names is\ntested. " (choice (repeat :tag "Regexps for ignored directories" regexp) (const :tag "No ignored directories" nil)) el-search-auto-save-buffers #[0 "\300\207" [ask-multi] 1] "Whether to automatically save modified buffers.\nWhen non-nil, save modified file buffers when query-replace is\nfinished there.\n\nIf the non-nil value is the symbol ask, ask for confirmation for\neach modified file buffer. You can still let all following\nbuffers automatically be saved or left unsaved from the prompt.\n\nask-multi is like ask, but don't ask and don't save for\nsingle-buffer sessions.\n\nSave automatically for any other non-nil value.\n\nThe default value is ask-multi." (choice (const :tag "Off" nil) (const :tag "On" t) (const :tag "Ask" ask) (const :tag "Ask when multibuffer" ask-multi)) el-search-query-replace-stop-for-comments #[0 "\300\207" [ask] 1] "Whether `el-search-query-replace' should stop for problematic comments.\n\nIt's not always clear how comments in a match should be mapped to\nthe replacement. If it can't be done automatically, the value of this\noption decides how to proceed.\n\nWhen nil, comments will likely be messed up or lost. You should\nthen check the results after finishing `el-search-query-replace'.\n\nA non-nil value means to interrupt when encountering problematic\ncomments. When the non-nil value is the symbol ask (that's the\ndefault), a prompt will appear that will ask how to proceed for\nthe current match. You may then choose to edit the replacement\nmanually, or ignore the problem for this case to fix it later.\n\nAny other non-nil value will not prompt and just directly pop to\na buffer where you can edit the replacement to adjust the\ncomments.\n\nWhen the value is ask, you can still choose the answer for all\nfollowing cases from the prompt." (choice (const :tag "Off" nil) (const :tag "On" t) (const :tag "Ask" ask))] 6) #@52 Whether el-search should make commands repeatable. (defvar el-search-use-transient-map t (#$ . 5539)) #@278 List of commands that don't end repeatability of el-search commands. When `el-search-use-transient-map' is non-nil, when any "repeatable" el-search command had been invoked, executing any of these commands will keep the `el-search-prefix-key-transient-map' further in effect. (defvar el-search-keep-transient-map-commands '(el-search-pattern el-search-pattern-backward el-search-help-list-bindings el-search-help-for-help describe-key el-search-from-beginning el-search-last-buffer-match el-search-continue-in-next-buffer el-search-scroll-down el-search-scroll-up universal-argument universal-argument-more digit-argument negative-argument) (#$ . 5648)) (byte-code "\300\301\302\303\304DD\305\306\307%\210\300\310\302\303\311DD\312\306\307%\207" [custom-declare-variable el-search-allow-scroll funcall function #[0 "\300\207" [t] 1] "Whether scrolling is allowed during el-search.\nWhen non-nil, scrolling commands don't deactivate the current\nsearch. Unlike isearch, it's possible to scroll the current\nmatch offscreen. Use `el-search-jump' (\\[el-search-jump])\nto go back to the position of the current match.\n\nWhen nil, scrolling commands deactivate the search (like any\nother command that doesn't continue el-searching)." :type boolean el-search-fancy-scrolling #[0 "\300\207" [t] 1] "Whether to enable fancy scrolling in el-search.\nWhen active, el-search tries to scroll the selected window in a\nway to make the current match better visible. When off, only the\ndefault scrolling done by Emacs is used. Since el-search puts point\nat the beginning of each match, this means that the end of each match\ncan still be after `window-end'. Fancy scrolling tries to make the\nwhole match visible whenever possible."] 6) #@60 Keymap for reading input with `el-search-read-expression'. (defvar el-search-read-expression-map (byte-code "\301 \302\"\210\303\304\305#\210\303\306\307#\210\303\310\307#\210\303\311\312#\210\303\313\314#\210\211\207" [read-expression-map make-sparse-keymap set-keymap-parent define-key "" abort-recursive-edit [up] nil [down] "\n" newline [134217741] el-search-set-occur-flag-exit-minibuffer] 5) (#$ . 7387)) (byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable el-search-respect-nosearch funcall function #[0 "\300\207" [t] 1] "Whether to disregard directories containing a .nosearch file.\n\nWhen turned on, directory searches skip directories containing a\nfile named \".nosearch\".\n\nSetting this has an effect on commands that perform searches in\ndirectories, like `el-search-directory' or\n`el-search-dired-marked-files'. The value of this variable is\nconsulted by all streams `el-search-stream-of-directory-files'\nreturns." :type boolean] 6) #@353 Whether el-search should open invisible text. When non-nil, el-search automatically opens text hidden by "outline.el" or "hideshow.el" to make the current match visible, like isearch does by default. See also `el-search-hide-immediately'. Note that el-search always matches invisible text, this option only controls whether matches are made visible. (defvar el-search-open-invisible t (#$ . 8383)) (byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable el-search-hide-immediately funcall function #[0 "\300\207" [t] 1] "If non-nil, re-hide an invisible match right away.\nThis is the exact counterpart of `isearch-hide-immediately': it\ncontrols whether opened invisible text is re-hidden already while\nsearching after leaving the opened area, or only after exiting\nthe search. The last successful match is never hidden." :type boolean] 6) #@306 Whether to use optimized searching. When turned on, use a fast pre-processing algorithm to sort out buffers that can be proved to not contain a match. Setting this to nil should not have any effect apart from making multi-buffer searching much slower in most cases, so this is only useful for debugging. (defvar el-search-optimized-search t (#$ . 9258)) #@61 The currently active search, an `el-search-object', or nil. (defvar el-search--current-search nil (#$ . 9619)) (defvar el-search--search-origin nil) (defvar el-search--current-query-replace nil) #@73 Non-nil tags file visiting buffers as temporarily opened for searching. (defvar el-search--temp-buffer-flag nil (#$ . 9820)) (make-variable-buffer-local 'el-search--temp-buffer-flag) #@175 Non-nil tags (file) buffers that should not be presented to the user. Buffers flagged this way contain the contents of a file but were not created with `find-file-noselect'. (defvar el-search--temp-file-buffer-flag nil (#$ . 10010)) (make-variable-buffer-local 'el-search--temp-file-buffer-flag) #@50 Non-nil when last search command was successful. (defvar el-search--success nil (#$ . 10312)) #@131 Non-nil when next search command should wrap the search. The non-nil value should be one of the symbols `forward' and `backward'. (defvar el-search--wrap-flag nil (#$ . 10413)) #@56 Non-nil when next search should be performed as occur. (defvar el-search-occur-flag nil (#$ . 10596)) #@504 How to recreate current buffer when non-nil. This buffer-local helper variable can be set in buffers that the get-buffer-stream method of el-search-objects returns to specify how to recreate that buffer. This is useful when the search domain contains places that are neither buffers nor files - former revisions of files for example. In this case `el-search-occur' can remember the value of this variable in the (temporary) buffers to implement to-match jumping after these buffers have been killed. (defvar el-search--get-buffer-fun nil (#$ . 10705)) (make-variable-buffer-local 'el-search--get-buffer-fun) #@53 Ignore the arguments and return t. (fn &rest ARGS) (defalias 'el-search-true #[128 "\300\207" [t] 2 (#$ . 11322)]) #@40 Non-nil while a prefix arg is entered. (defalias 'el-search--entering-prefix-arg-p #[0 " >\207" [universal-argument-map overriding-terminal-local-map] 2 (#$ . 11444)]) #@141 Return (BEG . END) of the top level s-exp covering POS. POS defaults to point. If no sexp is covering POS, return nil. (fn &optional POS) (defalias 'el-search--bounds-of-defun #[256 "\211\206`\262\214~\210\300\211\301\211!\206m?\205\211T!\211\262\203*\302!B\202_\212eb\210e\262e\262X\203O\303\304\300\305#\203O`\262\302 \211\262b\210\2024X\205^X\205^B)\262\266\202)\207" [nil #[257 "\212\300!\211@\301U?\205\302!\262)\207" [syntax-ppss 0 syntax-ppss-toplevel-pos] 4 "\n\n(fn POS)"] el-search--end-of-sexp el-search-forward _ t] 8 (#$ . 11620)]) #@26 (fn &optional BEG END) (defalias 'el-search-unhide-invisible #[512 "\205.\206 `\262 \305\306\n!\307\206T\"\210\310\n\"\205+\311\312\313 \"*\266\203\207" [el-search-open-invisible el-search-hide-immediately isearch-opened-overlays search-invisible isearch-hide-immediately open copy-sequence isearch-range-invisible cl-set-difference el-search--after-scroll nil window-start] 8 (#$ . 12210)]) (defalias 'el-search-rehide-invisible #[0 "\205\301 \207" [el-search-open-invisible isearch-clean-overlays] 1]) #@71 Wrap FUNCTION to cache the last arguments/result pair. (fn FUNCTION) (defalias 'el-search-with-short-term-memory #[257 "\300C\301\302\303\304\305\"\306\"\307\310%\207" [nil make-byte-code 128 "\302\301\242:\203+\301\242@\232\203\301\242A\211\211\262\262\202&\301\303\300\"B\240A\262\2020\211\300\301#\207" vconcat vector [#[771 "\300\"B\240A\207" [apply] 8 "\n\n(fn FUNCTION CACHED ARGS)"] apply] 8 "\n\n(fn &rest ARGS)"] 9 (#$ . 12742)]) #@101 Like `unwind-protect' but eval the UNWINDFORMS only if unwinding. (fn BODY-FORM &rest UNWINDFORMS) (defalias 'el-search-when-unwind '(macro . #[385 "\300\301!\302\303BC\304\305\306\307BBE\310BBEE\207" [make-symbol "done" let (nil) unwind-protect prog1 setq (t) unless] 11 (#$ . 13211)])) (byte-code "\300\301\302\303#\300\207" [function-put el-search-when-unwind lisp-indent-function 1] 4) #@53 Internal var helping to avoid echo area stuttering  (defvar el-search--last-message nil (#$ . 13616)) #@88 Like `message' but with `message-log-max' bound to nil. (fn FORMAT-STRING &rest ARGS) (defalias 'el-search--message-no-log #[385 "\301\302\303#)\207" [message-log-max nil apply message] 6 (#$ . 13724)]) #@13 (fn FORM) (defalias 'el-search--byte-compile #[257 "\301\302!)\207" [byte-compile-log-warning-function ignore byte-compile] 3 (#$ . 13937)]) (defalias 'el-search--set-this-command-refresh-message-maybe #[0 "\303\211 =\205\f\304\305\n\"\207" [this-command last-command el-search--last-message el-search-pattern message "%s"] 3]) (byte-code "\300\301\302\303!\203\f\304\202 \305\"\207" [defalias el-search-read boundp force-new-style-backquotes #[256 "\301\302!)\207" [force-new-style-backquotes t read] 3 "Like `read' but bind `force-new-style-backquotes' to t.\n\n(fn &optional STREAM)"] read] 4) #@13 (fn EXPR) (defalias 'el-search--pp-to-string #[257 "\303\211\211\304!\303\305\306\206\307\310Q\"\203#\311\312\313\211$\266\202\202&\266\202+\207" [print-circle print-level print-length nil pp-to-string string-match "\\(?:" "[ \n ]+" "\\)\\'" replace-match "" t] 8 (#$ . 14550)]) (defalias 'el-search--setup-minibuffer #[0 "\305\306\307\310 \311\312$\210)\313 \210\314 !\210\305 \307!\210\310 b\210\315\316!\203%\317 \210db\210r\320\321 !q\210\322\323!)\211\205N\324PC\325\304!\210\326\327\330\331\332!\333\"\334$\211\262\207" [inhibit-read-only el-search-read-expression-map font-lock-mode font-lock-function minibuffer-default-add-function t put-text-property 1 minibuffer-prompt-end font-lock-face minibuffer-prompt emacs-lisp-mode use-local-map looking-at ".*\n" indent-sexp window-buffer minibuffer-selected-window thing-at-point sexp "'" make-local-variable make-byte-code 0 " <\203\n\302 \300\"\207 \300B\207" vconcat vector [minibuffer-default append] 3] 8]) #@99 Read an expression from the minibuffer. (fn PROMPT &optional INITIAL-CONTENTS HIST DEFAULT READ) (defalias 'el-search-read-expression #[1281 "\301\302C\211\303\304\305\306\307\"\310\"\311$\240\210\303\304\312\306\307!\313\"\311$\216\314\315\242\"\210\316 \2064\317 &)\207" [el-search-read-expression-map el-search--setup-minibuffer nil make-byte-code 0 "\302\303\301\242\"\210\300 \207" vconcat vector [remove-hook minibuffer-setup-hook] 3 "\301\302\300\242\"\207" [remove-hook minibuffer-setup-hook] add-hook minibuffer-setup-hook read-from-minibuffer read-expression-history] 15 (#$ . 15546)]) #@42 History of search pattern input strings. (defvar el-search-pattern-history nil (#$ . 16166)) #@31 History of previous searches. (defvar el-search-history (make-ring 15) (#$ . 16265)) #@58 History of input strings from `el-search-query-replace'. (defvar el-search-query-replace-history nil (#$ . 16356)) #@34 (fn HIST-RING DESCRIPTION-FUN) (defalias 'el-search--read-history-entry #[514 "\300!\301\302\303\304\305\306\307\310\311\f\f\f#\312\"\313\314%\315\316\"\"\"\317\320\"\210\321\322\316\"!S\262\"\207" [ring-length ring-ref completing-read "Resume previous session: " mapcar make-byte-code 257 "\303\211\304\305\306\302\307\"!T\"\301\310\300S\"\311\"#\207" vconcat vector [format "%%0%dd - %%s" floor log 10 ring-ref verbose] 8 "\n\n(fn N)" number-sequence 1 string-match "\\`\\([0-9]+\\) - " string-to-number match-string] 16 (#$ . 16477)]) (defvar el-search--initial-mb-contents nil) #@57 History of previous `el-search-query-replace' sessions. (defvar el-search-query-replace-object-history (make-ring 15) (#$ . 17080)) #@22 (fn INPUT HISTVAR) (defalias 'el-search--pushnew-to-history #[514 "\211J@\301\302\303\304#)\266\203\206/\211;\205/\230\206/\3051-\306!\306!\2320\202/\210\302?\205v\307\302\303\304#)\266\203\203l\310\311!r\211q\210\312\313\314\315\316!\317\"\320$\216\321 \210\322c\210c\210\323\324`\"\210\325 *\262\202m\211JBL\266\202\207" [inhibit-changing-match-data "\\`\\'" nil t string-match (error) el-search-read "\\`.+\n" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 emacs-lisp-mode "\n" indent-region 1 buffer-string] 10 (#$ . 17218)]) #@16 (fn PATTERN) (defalias 'el-search--pattern-is-unquoted-symbol-p #[257 "\2119\205\211\300=?\205\301!?\205\211\302=\203\303\207\304\305\"\207" [_ keywordp t "t is a catchall pattern - did you mean 't?" format "Free variable `%S' (missing a quote?)"] 4 (#$ . 17859)]) #@16 (fn PATTERN) (defalias 'el-search--maybe-warn-about-unquoted-symbol #[257 "\300!\211\205\301\302\"\210\303\304!\207" [el-search--pattern-is-unquoted-symbol-p message "%s" sit-for 2] 5 (#$ . 18142)]) #@41 (fn PROMPT &optional DEFAULT HISTVAR) (defalias 'el-search--read-pattern #[769 "\211\206\301\262\302$\303\"\210\211\304\230\204\211\202J@\207" [el-search--initial-mb-contents el-search-pattern-history el-search-read-expression el-search--pushnew-to-history ""] 8 (#$ . 18353)]) (defvar el-search--display-match-count-in-prompt nil) (defvar el-search--mb-hints-timer nil) (defvar el-search--reading-input-for-query-replace nil) (defalias 'el-search-read-pattern-trigger-mb-hints #[0 "\302!\204\303\304\305\306#\211\207\307\310\311 \"\"\210\312!\207" [el-search--mb-hints-timer el-search-mb-hints-delay timerp run-at-time 3 nil el-search-read-display-mb-hints timer-set-time time-add current-time timer-activate] 5]) (defalias 'el-search-eldoc-documentation-function #[0 "\3012(\212\3021\303 \210\304\305!\203\306\301\307\"\202\3100\202\"\210\202%\204)\3100\205t\311 \211@A\211@A\307\211\211\205n\312\"A\211\262\205n\313!\211\262\205n\314\"\211\262\205n\315\316@!\317 !\320P$\266\203\266\203\266\205\207" [el-search--pcase-macros result (scan-error) backward-up-list el-search-looking-at `(,(or 'pred 'guard) \, _) throw nil t elisp--fnsym-in-current-sexp assoc documentation help-split-fundoc elisp--highlight-function-argument elisp-function-argstring symbol-name ": "] 17]) (defvar el-search--this-session-match-count-data nil) (defalias 'el-search-read-pattern-setup-mb #[0 "\203\303\304\n!\203\305\n!\210\303\306\307\310\311\211$\210\312\313\314\315B\316\303$\207" [el-search-display-mb-hints el-search--this-session-match-count-data el-search--mb-hints-timer nil timerp cancel-timer add-hook post-command-hook el-search-read-pattern-trigger-mb-hints t advice--add-function :before-until #[0 "\300\301!\207" [advice--buffer-local eldoc-documentation-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local eldoc-documentation-function] 4 "\n\n(fn GV--VAL)"] el-search-eldoc-documentation-function] 5]) (defvar el-search--search-pattern-1-do-fun nil) (defvar el-search--busy-animation '("* " " * " " * " " *" " * " " * ")) (defvar el-search-mb-anim-time 0.33) #@20 (fn DISPLAY-FUN) (defalias 'el-search--make-display-animation-function #[257 "\301\302!C\303!C\304\242!\242\241\210\305\302\306\307\310#\311\"\312$\207" [el-search--busy-animation seconds-to-time 0 copy-sequence last make-byte-code "\304 \305\306\301\242\"!W\205\301\240\210\300\302\242\302\211\242A\240\210\242!\207" vconcat vector [el-search-mb-anim-time current-time float-time time-subtract] 6] 11 (#$ . 20503)]) (defalias 'el-search-read-display-mb-hints #[0 "\306 \205<\307\310 \3111\312!0\202\210\307\211:\205/\211@A\204)GU\205-\211\262\266\202\262\211\205F\3131@\314!0\202F\211\262\307\262\315 \316! \203\371\203\371r\211q\210\317p\320\321\322\323\324!\325\"\326$\262\")\327dd\307\330\211%\320\321\331\323\324!\332\"\326$\216\320\333\334\323\324!\335\"\336\337%\340!\211\203\232\341\"\210\342\326!\210\210\3431\320rq\210\344!`\320\321\345\323\324!\346\"\347$\216b\210\350\351\352\320\353\354\323\324\n!\355\"\356\357%!\")\266\202)0\202\326\211\262 \307\262\211\330=\203\337\307\262\211\206\345\211\203\362\360\"\210\342 !\210\266)\210\2022\361\230\2042\36221 \363\364\365\341\204\366\202* \203\367\n!\202* \203&\370\202*\371\362\330\"\"\372\373#!)0\210\266 \205<\374\375! \207" [el-search--reading-input-for-query-replace el-search--display-match-count-in-prompt el-search--current-search el-search-mb-hints-timeout minibuffer-message-timeout quit-flag minibufferp nil minibuffer-contents (error) read-from-string (error) el-search-make-matcher minibuffer-selected-window window-buffer el-search-make-search make-byte-code 0 "\301\300C!\207" vconcat vector [stream] 2 make-overlay t "\301\300!\207" [delete-overlay] 385 "\301\302\303#\304\305#\262\306\307\310\311\312%\210\313\300\314#\210\315 \207" [propertize apply format face shadow put-text-property 0 1 cursor t overlay-put after-string redisplay] 8 "\n\n(fn MESSAGE &rest ARGS)" el-search--pattern-is-unquoted-symbol-p " [%s]" sit-for (error) window-point "\300b\207" [] 1 el-search-display-match-count dont-message el-search--make-display-animation-function 257 "\300\301P!\207" [" "] 4 "\n\n(fn ICON)" " %-12s" "" no-message minibuffer-message propertize format "invalid" error-message-string "No match" throw face shadow key-binding [(control 103)]] 19]) #@603 Read an "el-search" pattern from the minibuffer, prompting with PROMPT. This function is designed to be used in the interactive form of "el-search" commands that need to prompt for a pattern. Apart from reading the pattern it also sets `this-command' to `el-search-pattern' and adds the given input to `el-search-pattern-history' and `el-search-query-replace-history'. PROMPT defaults to "El-search pattern: ". The return value is the `read' input pattern. With optional argument DISPLAY-MATCH-COUNT non-nil display a match count for the current buffer. (fn &optional PROMPT DISPLAY-MATCH-COUNT) (defalias 'el-search-read-pattern-for-interactive #[512 "\303\216\304\305C\211\306\307\310\311\312\"\313\"\314$\240\210\306\307\315\311\312!\316\"\314$\216\317\320\242\"\210\321\2060\322 @\"*\266\202)\323!\324\325\326\"\210\207" [el-search--display-match-count-in-prompt el-search-pattern-history this-command #[0 "\301!\205 \302!\207" [el-search--mb-hints-timer timerp cancel-timer] 2] el-search-read-pattern-setup-mb nil make-byte-code 0 "\302\303\301\242\"\210\300 \207" vconcat vector [remove-hook minibuffer-setup-hook] 3 "\301\302\300\242\"\207" [remove-hook minibuffer-setup-hook] add-hook minibuffer-setup-hook el-search--read-pattern "El-search pattern: " el-search-read el-search-pattern el-search--pushnew-to-history el-search-query-replace-history] 12 (#$ . 22840)]) #@194 Return the value of point at the end of this sexp. Point should be at a sexp beginning. With POS, a sexp-beginning position, return value of point at the end of this sexp. (fn &optional POS) (defalias 'el-search--end-of-sexp #[256 "\212\211\203\211b\210\300\301f\302\"\203\303p!\210`\202 \304`\305\"\206 d)\207" [eql nil 64 el-search-read scan-sexps 1] 4 (#$ . 24244)]) #@34 (fn EXPRESSION &optional READ) (defalias 'el-search--skip-expression #[513 "\211\203 \212\300p!)\262\203 \301\232\204 <\204$\302!\204$\303 b\207\304\305!\203.\306\225b\207\307u\207" [el-search-read [] vectorp el-search--end-of-sexp looking-at "\\(?:#'\\|,@\\|[',]\\)" 0 nil] 4 (#$ . 24628)]) #@369 Move point to the next sexp beginning position. Do nothing if already at beginning of a sexp. `read' the expression starting at that position and return it. Point must not be inside a string or comment. Subsexps of sexps containing shared parts may be skipped (when not `read'able without context). When there is no sexp after point, signal an end-of-buffer error. (defalias 'el-search--ensure-sexp-start #[0 "\300\301\203\240\301\302\204\204m\203\303\304\301\"\210\202\305\306!\203$\301y\210\202\305\307!\2031\310\225b\210\202\305\311!\203K\305\312!\204K\211\313\314\"\204K\315\316!\210\202\305\317!\203X\211\320\316\"\204e\305\321!\203k\211\322\316\"\203k\301u\210\202\305\323!\204w\305\324!\203~\310\225b\210\202\300\262\202\266\3251\231\212\326p!)\262\301\211\2620\202\234\210\301u\210\202\207" [t nil #[514 "\211`eZX\205\212\211\206\300[u\210\301!)\207" [1 looking-at] 5 "\n\n(fn REGEXP N)"] signal end-of-buffer looking-at "[[:space:]]*;" "\\(?:[[:space:]]\\|\n\\)+" 0 "\\s_\\|\\sw" "\\_<" ",@" 2 forward-symbol 1 "'" "#" "@" "," "['#`,@]*#[0-9]+=" "['#`,@]*#[0-9]+#" (error) el-search-read] 7 (#$ . 24940)]) #@131 Alist of additional "el-search" pcase macros. Keys are pattern names (i.e. symbols) and values the associated expander functions. (defvar el-search--pcase-macros nil (#$ . 26109)) #@46 Return a list of defined el-search patterns. (defalias 'el-search-defined-patterns #[0 "\301\302\"\207" [el-search--pcase-macros mapcar car] 3 (#$ . 26295)]) (put 'el-search-defined-patterns 'function-documentation '(el-search--make-docstring 'el-search-defined-patterns)) #@63 Pop up a help buffer listing defined el-search pattern types. (defalias 'el-search-list-defined-patterns #[0 "\300\301!\207" [describe-function el-search-defined-patterns] 2 (#$ . 26575) nil]) #@13 (fn NAME) (defalias 'el-search--make-docstring #[257 "\301K\302\"\303\"\304\305!r\211q\210\306\307\310\311\312!\313\"\314$\216A\206\"\315\261\210\316\317\320!\"\210\321 \203;\322@\"\202<\211\262*\262\207" [el-search--pcase-macros documentation raw help-split-fundoc generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 "\n\nIn addition to the standard `pcase' patterns the following\npattern types are defined:" mapc #[257 "\211@A\211\301\302!\303\304\305#)\266\203?\2056\306!\211\2054\307c\210\310\211\303%\262\311\2062\312\261\262\266\202\207" [inhibit-changing-match-data "\\`[-_]\\|--" symbol-name nil t string-match documentation "\n\n\n-- " help-fns--signature "\n" "Not documented."] 12 "\n\n(fn ARG0)"] reverse buffer-string help-add-fundoc-usage] 10 (#$ . 26774)]) #@124 Alist of heuristic matchers. Keys are pattern names (i.e. symbols), and values the associated heuristic matcher functions. (defvar el-search--heuristic-matchers nil (#$ . 27659)) (defvar el-search--inverse-heuristic-matchers nil) #@695 Like `pcase-defmacro', but for defining el-search patterns. The semantics is very similar to that of `pcase-defmacro' but the scope of the definitions is limited to "el-search", using a separate name space. The expansion is allowed to use any defined `pcase' pattern as well as any defined el-search pattern. The docstring may be followed by a `defun' style declaration list DECL. There is currently only one respected specification, it has the form (heuristic-matcher MATCHER-FUNCTION) and specifies a heuristic MATCHER-FUNCTION to be associated with the defined pattern type NAME. See `el-search-heuristic-matcher' for details. (fn NAME ARGLIST &optional DOCSTRING DECL &rest BODY) (defalias 'el-search-defpattern '(macro . #[642 "\300\211@;\203@\262A\262@\211:\203+\211@\211\301=\203*A\211A\262\262\210\210\210\302\303\304\305D\306BB\304\307\"@E\303\304\305 D\310BB\304\311\"@E\303\304\305\nD\312BB\313 \314 \205a C \"BBEF\207" [nil declare progn setf alist-get quote (el-search--heuristic-matchers) heuristic-matcher (el-search--inverse-heuristic-matchers) inverse-heuristic-matcher (el-search--pcase-macros) lambda append] 15 (#$ . 27896)])) (byte-code "\300\301\302\303#\304\301\305\306#\210\300\301\307\310#\300\207" [function-put el-search-defpattern lisp-indent-function 2 put edebug-form-spec defun doc-string-elt 3] 5) #@19 (fn &rest BODY) (defalias 'el-search--with-additional-pcase-macros '(macro . #[128 "\300\301!\302\303BC\304\305\306\307\310\311E\312BBBBB\306\313D\314BBEE\207" [make-symbol "saved" let (nil) unwind-protect progn pcase-dolist (`(,symbol \, fun) el-search--pcase-macros) push (cons symbol (get symbol 'pcase-macroexpander)) ((put symbol 'pcase-macroexpander fun)) `(,symbol \, fun) ((put symbol 'pcase-macroexpander fun))] 11 (#$ . 29269)])) #@355 Expand el-search PATTERN. This is like `pcase--macroexpand' but expands only patterns defined with `el-search-defpattern' and performs only one expansion step. If no entry for this pattern type exists in `el-search--pcase-macros', PATTERN is returned. With optional integer argument N given, successively macroexpand N times. (fn PATTERN &optional N) (defalias 'el-search--macroexpand-1 #[513 "\211\206\301\262\302\242\"\211\203)\303A\"\301X\203\211\202$\304S\"\262\202*\207" [el-search--pcase-macros 1 alist-get apply el-search--macroexpand-1] 7 (#$ . 29725)]) #@82 Like `pcase--macroexpand' but also expanding "el-search" patterns. (fn PATTERN) (defalias 'el-search--macroexpand #[257 "\301C\302\303\304\305\306!\307\"\310$\216\211\2036\211@\211@A\211\211\311NB\242B\240\210\312\311#\266A\266\202\202\210\313!)\207" [el-search--pcase-macros nil make-byte-code 0 "\300\242\211\205\211@\211@A\211\301\302#\266A\266\202\202\207" vconcat vector [put pcase-macroexpander] 10 pcase-macroexpander put pcase--macroexpand] 12 (#$ . 30313)]) #@61 (fn PATTERN &optional (RESULT-EXPR nil RESULT-SPECIFIED)) (defalias 'el-search-make-matcher #[385 "\211\205\303\211A\262\242\203\304\305\306\307G\\D\"\210\310\311!\312C\313\314\315\316\317!\320\"\321$\216\211\203S\211@\211@A\211\211\322NB\242B\240\210\323\322#\266A\266\202\202,\210\303\324\325>9\205k\326 !\206j??\327\330\203y\331\202{C\203\216\n\203\212 \202\255\303\202\255\203\233\n\204\233\303\202\255\332  \203\252\f\202\253\303DEE!*\266\204)\262\262\207" [el-search--pcase-macros warning-suppress-log-types byte-compile-debug t signal wrong-number-of-arguments el-search-make-matcher 2 make-symbol "expression" nil make-byte-code 0 "\300\242\211\205\211@\211@A\211\301\302#\266A\266\202\202\207" vconcat vector [put pcase-macroexpander] 10 pcase-macroexpander put ((bytecomp)) (_ t) keywordp el-search--byte-compile lambda _ pcase] 17 (#$ . 30814)]) #@27 (fn MATCHER EXPRESSION) (defalias 'el-search--match-p #[514 "!\207" [] 4 (#$ . 31752)]) #@266 Like `el-search-forward' but accepts a matcher as first argument. In addition, a HEURISTIC-MATCHER corresponding to the MATCHER can be specified as fourth argument, and COUNT becomes the fifth argument. (fn MATCHER &optional NOERROR BOUND HEURISTIC-MATCHER COUNT) (defalias 'el-search--search-pattern-1 #[1281 "\302\303!\204?\205\201\304\305\306 \"\207\211\203!\211\250\204!\307\310\311D\"\207\211\2034\211\312W\2034\313[%\207\203B`W\203B\304\314!\207`\315\316 \3178\203T\3208b\210\321 \210\3228\203m\323y\210m\204m\324\325!\203m\323y\210\202]\210\203\306\312U\203|`\202\3262\265\312W\205\264\327\330$\204\232\331\326\332\"\210\202\200\323U\203\250\331\326\330\"\210\202\200S\262\333\332\330\"\210\202\2000\203\274`\202\211#\202\332\211\3342n\204l\203\327 \210\3351\344\336 \211\2620\202\351\210\331\334\330\"\210\332C \2030\2030\324\337!\2030\316 @\312U\2030p\332C\332C\340\341\342\343\344 #\345\"\346\347%\266\202\"\2040\211\242\206+\350`\323\312#b\210\202W\351\n\"\203S\203F\352!X\203L`\262\202W\333!\210\202W\333!\210\210\203\314`X\203\314\331\334\330\"\210\202\314\3320\203|#\202}\266\202\266\202\207" [el-search--search-pattern-1-do-fun el-search-optimized-search derived-mode-p emacs-lisp-mode error "Buffer not in emacs-lisp-mode: %s" buffer-name signal wrong-type-argument integerp 0 el-search--search-backward-1 "Invalid search bound (wrong side of point)" #[771 "\300>\204\206d\202\211b\210?\205\301\302\303\"\207" [(nil t) signal search-failed nil] 6 "\n\n(fn NOERROR BOUND OPOINT)"] syntax-ppss 3 8 forward-sexp 4 1 looking-at "[[:space:]]*;" success el-search--search-pattern-1 t throw nil el-search--skip-expression no-match (end-of-buffer) el-search--ensure-sexp-start "^(" make-byte-code 256 "\211\203\301\242\207\301\242\204\302\303\212\304p!\300`\240\210)!\240\210\301\305\240\210\302\242\207" vconcat vector [el-search--flatten-tree el-search-read t] 6 "\n\n(fn &optional CHECK)" scan-lists el-search--match-p el-search--end-of-sexp] 22 (#$ . 31851)]) #@884 Search for el-search PATTERN in current buffer from point. Set point to the beginning of the occurrence found and return point. An optional second argument bounds the search; it is a buffer position. The match found must not end after that position. A value of nil means search to the end of the accessible portion of the buffer. Optional third argument NOERROR, if non-nil, means if fail just return nil (no error); when not t, in addition also move to limit of search. The optional fourth argument COUNT is a number that indicates the search direction and the number of occurrences to search for. If it is positive, search forward for COUNT successive occurrences; if it is negative, search backward for -COUNT occurrences. The match found is the COUNTth/-COUNTth one in the buffer starting after/before the origin of the search. (fn PATTERN &optional BOUND NOERROR COUNT) (defalias 'el-search-forward #[1025 "\300\301!\302!%\207" [el-search--search-pattern-1 el-search-make-matcher el-search-heuristic-matcher] 10 (#$ . 33962)]) (defvar el-search-quick-help-buffer-name "*El-Search Quick Help*") (defvar el-search-help-window nil nil) (make-variable-buffer-local 'el-search-help-window) (defalias 'el-search-close-quick-help-maybe #[0 "\301!\211\205 \302\303\"\211\205\304!\211\205\305!\210\306\207" [el-search-quick-help-buffer-name get-buffer buffer-local-value el-search-help-window window-live-p delete-window t] 5]) #@205 Check whether all ARGS fulfill PREDICATE. Raise a `user-error' if not. The string arguments TYPE and optional MESSAGE are used to construct the error message. (fn TYPE ARGS PREDICATE &optional MESSAGE) (defalias 'el-search-defpattern--check-args #[1027 "\211\205&\211@!\204\300\301\206\302\303\"\304Q#\210A\266\202\202\207" [user-error "Pattern `%s': " format "argument doesn't fulfill %S" ": %S"] 11 (#$ . 35416)]) #@13 (fn FILE) (defalias 'el-search--elisp-file-p #[257 "\302\303!\304Q\305\306\307#)\266\203\205\310!\205\311!?\207" [jka-compr-load-suffixes inhibit-changing-match-data "\\.el" regexp-opt "?\\'" nil t string-match file-exists-p file-directory-p] 8 (#$ . 35857)]) #@75 compiler-macro for inlining `el-search-object-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-object-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-object-p (and (memq (type-of cl-x) cl-struct-el-search-object-tags) t)) nil] 9 (#$ . 36137)]) (put 'el-search-object-p 'compiler-macro 'el-search-object-p--cmacro) #@13 (fn CL-X) (defalias 'el-search-object-p #[257 "\301!>\205 \302\207" [cl-struct-el-search-object-tags type-of t] 3 (#$ . 36508)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put el-search-object-p side-effect-free error-free put el-search-object cl-deftype-satisfies] 5) #@81 compiler-macro for inlining `el-search-object-pattern'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-object-pattern--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-object-pattern (or (el-search-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-object cl-x))) (aref cl-x 1)) nil] 9 (#$ . 36807)]) (put 'el-search-object-pattern 'compiler-macro 'el-search-object-pattern--cmacro) #@106 Access slot "pattern" of `(el-search-object (:copier copy-el-search-object--1))' struct CL-X. (fn CL-X) (defalias 'el-search-object-pattern #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 1] 5 (#$ . 37252)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-object-pattern side-effect-free t] 4) #@78 compiler-macro for inlining `el-search-object-head'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-object-head--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-object-head (or (el-search-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-object cl-x))) (aref cl-x 2)) nil] 9 (#$ . 37661)]) (put 'el-search-object-head 'compiler-macro 'el-search-object-head--cmacro) #@103 Access slot "head" of `(el-search-object (:copier copy-el-search-object--1))' struct CL-X. (fn CL-X) (defalias 'el-search-object-head #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 2] 5 (#$ . 38091)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-object-head side-effect-free t] 4) #@84 compiler-macro for inlining `el-search-object-last-match'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-object-last-match--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-object-last-match (or (el-search-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-object cl-x))) (aref cl-x 3)) nil] 9 (#$ . 38491)]) (put 'el-search-object-last-match 'compiler-macro 'el-search-object-last-match--cmacro) #@109 Access slot "last-match" of `(el-search-object (:copier copy-el-search-object--1))' struct CL-X. (fn CL-X) (defalias 'el-search-object-last-match #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 3] 5 (#$ . 38951)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-object-last-match side-effect-free t] 4) #@85 compiler-macro for inlining `el-search-object-get-matches'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-object-get-matches--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-object-get-matches (or (el-search-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-object cl-x))) (aref cl-x 4)) nil] 9 (#$ . 39369)]) (put 'el-search-object-get-matches 'compiler-macro 'el-search-object-get-matches--cmacro) #@110 Access slot "get-matches" of `(el-search-object (:copier copy-el-search-object--1))' struct CL-X. (fn CL-X) (defalias 'el-search-object-get-matches #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 4] 5 (#$ . 39834)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-object-get-matches side-effect-free t] 4) #@84 compiler-macro for inlining `el-search-object-properties'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-object-properties--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-object-properties (or (el-search-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-object cl-x))) (aref cl-x 5)) nil] 9 (#$ . 40255)]) (put 'el-search-object-properties 'compiler-macro 'el-search-object-properties--cmacro) #@109 Access slot "properties" of `(el-search-object (:copier copy-el-search-object--1))' struct CL-X. (fn CL-X) (defalias 'el-search-object-properties #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 5] 5 (#$ . 40715)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put el-search-object-properties side-effect-free t defalias copy-el-search-object--1 copy-sequence] 4) #@131 compiler-macro for inlining `make-el-search-object'. (fn CL-WHOLE &cl-quote &key PATTERN HEAD LAST-MATCH GET-MATCHES PROPERTIES) (defalias 'make-el-search-object--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203J\211@\306>\2032\211AA\262\202\307>A@\203A\310\262\202\311\312@\"\210\202\210\313\314\315\310\n\310\n\n\n\n\n&\n\207" [plist-member :pattern :head :last-match :get-matches :properties (:pattern :head :last-match :get-matches :properties :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:pattern :head :last-match :get-matches :properties)" cl--defsubst-expand (pattern head last-match get-matches properties) (cl-block make-el-search-object (record 'el-search-object pattern head last-match get-matches properties))] 18 (#$ . 41192)]) (put 'make-el-search-object 'compiler-macro 'make-el-search-object--cmacro) #@111 Constructor for objects of type `el-search-object'. (fn &key PATTERN HEAD LAST-MATCH GET-MATCHES PROPERTIES) (defalias 'make-el-search-object #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203J\211@\306>\2032\211AA\262\202\307>A@\203A\310\262\202\311\312@\"\210\202\210\313\314&\207" [plist-member :pattern :head :last-match :get-matches :properties (:pattern :head :last-match :get-matches :properties :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:pattern :head :last-match :get-matches :properties)" record el-search-object] 13 (#$ . 42113)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-el-search-object side-effect-free t cl-struct-define el-search-object nil cl-structure-object record ((cl-tag-slot) (pattern) (head) (last-match) (get-matches) (properties)) cl-struct-el-search-object-tags] 11) #@15 (fn SEARCH) (defalias 'copy-el-search-object #[257 "\301!\302!>\204\303\304\305D\"\210\211\211\306\307\306H!I\266\302!>\204,\303\304\305D\"\210\211\211\310\311\310H!I\266\211\207" [cl-struct-el-search-object-tags copy-el-search-object--1 type-of signal wrong-type-argument el-search-object 2 copy-el-search-head 5 copy-alist] 8 (#$ . 43063)]) (cl-generic-define-method 'cl-print-object nil '((object el-search-object) stream) nil #[514 "\300\301\"\210\302\303\304\305#\"\210\300\306\"\207" [princ "#s(el-search-object " prin1 el-search--get-search-description-string verbose dont-propertize ")"] 7 "\n\n(fn OBJECT STREAM)"]) (defalias 'el-search--current-pattern #[0 "\205\302! >\204\303\304\305D\"\210\306H\207" [el-search--current-search cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 1] 4]) (defalias 'el-search--current-matcher #[0 "\205I\303\211! >\204\304\305\306D\"\210\307H!\n>\2045\304\305\310\303! >\204/\304\305\306D\"\210\307HD\"\210\303! >\204D\304\305\306D\"\210\307H\307H\207" [el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-object 2 el-search-head] 7]) (defalias 'el-search--current-heuristic-matcher #[0 "\205I\303\211! >\204\304\305\306D\"\210\307H!\n>\2045\304\305\310\303! >\204/\304\305\306D\"\210\307HD\"\210\303! >\204D\304\305\306D\"\210\307H\311H\207" [el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-object 2 el-search-head 4] 7]) #@73 compiler-macro for inlining `el-search-head-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-p (and (memq (type-of cl-x) cl-struct-el-search-head-tags) t)) nil] 9 (#$ . 44694)]) (put 'el-search-head-p 'compiler-macro 'el-search-head-p--cmacro) #@13 (fn CL-X) (defalias 'el-search-head-p #[257 "\301!>\205 \302\207" [cl-struct-el-search-head-tags type-of t] 3 (#$ . 45053)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put el-search-head-p side-effect-free error-free put el-search-head cl-deftype-satisfies] 5) #@89 compiler-macro for inlining `el-search-head-get-buffer-stream'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-get-buffer-stream--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-get-buffer-stream (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 1)) nil] 9 (#$ . 45344)]) (put 'el-search-head-get-buffer-stream 'compiler-macro 'el-search-head-get-buffer-stream--cmacro) #@77 Access slot "get-buffer-stream" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-get-buffer-stream #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 1] 5 (#$ . 45824)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-get-buffer-stream side-effect-free t] 4) #@79 compiler-macro for inlining `el-search-head-matcher'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-matcher--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-matcher (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 2)) nil] 9 (#$ . 46216)]) (put 'el-search-head-matcher 'compiler-macro 'el-search-head-matcher--cmacro) #@67 Access slot "matcher" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-matcher #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 2] 5 (#$ . 46646)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-matcher side-effect-free t] 4) #@96 compiler-macro for inlining `el-search-head-heuristic-buffer-matcher'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-heuristic-buffer-matcher--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-heuristic-buffer-matcher (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 3)) nil] 9 (#$ . 47008)]) (put 'el-search-head-heuristic-buffer-matcher 'compiler-macro 'el-search-head-heuristic-buffer-matcher--cmacro) #@84 Access slot "heuristic-buffer-matcher" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-heuristic-buffer-matcher #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 3] 5 (#$ . 47523)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-heuristic-buffer-matcher side-effect-free t] 4) #@89 compiler-macro for inlining `el-search-head-heuristic-matcher'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-heuristic-matcher--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-heuristic-matcher (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 4)) nil] 9 (#$ . 47936)]) (put 'el-search-head-heuristic-matcher 'compiler-macro 'el-search-head-heuristic-matcher--cmacro) #@77 Access slot "heuristic-matcher" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-heuristic-matcher #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 4] 5 (#$ . 48416)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-heuristic-matcher side-effect-free t] 4) #@78 compiler-macro for inlining `el-search-head-buffer'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-buffer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-buffer (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 5)) nil] 9 (#$ . 48808)]) (put 'el-search-head-buffer 'compiler-macro 'el-search-head-buffer--cmacro) #@66 Access slot "buffer" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-buffer #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 5] 5 (#$ . 49233)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-buffer side-effect-free t] 4) #@80 compiler-macro for inlining `el-search-head-position'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-position--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-position (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 6)) nil] 9 (#$ . 49592)]) (put 'el-search-head-position 'compiler-macro 'el-search-head-position--cmacro) #@68 Access slot "position" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-position #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 6] 5 (#$ . 50027)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-position side-effect-free t] 4) #@76 compiler-macro for inlining `el-search-head-file'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-file--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-file (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 7)) nil] 9 (#$ . 50392)]) (put 'el-search-head-file 'compiler-macro 'el-search-head-file--cmacro) #@64 Access slot "file" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-file #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 7] 5 (#$ . 50807)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-head-file side-effect-free t] 4) #@79 compiler-macro for inlining `el-search-head-buffers'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-head-buffers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-head-buffers (or (el-search-head-p cl-x) (signal 'wrong-type-argument (list 'el-search-head cl-x))) (aref cl-x 8)) nil] 9 (#$ . 51160)]) (put 'el-search-head-buffers 'compiler-macro 'el-search-head-buffers--cmacro) #@67 Access slot "buffers" of `el-search-head' struct CL-X. (fn CL-X) (defalias 'el-search-head-buffers #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 8] 5 (#$ . 51590)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put el-search-head-buffers side-effect-free t defalias copy-el-search-head copy-sequence] 4) #@180 compiler-macro for inlining `make-el-search-head'. (fn CL-WHOLE &cl-quote &key GET-BUFFER-STREAM MATCHER HEURISTIC-BUFFER-MATCHER HEURISTIC-MATCHER BUFFER POSITION FILE BUFFERS) (defalias 'make-el-search-head--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\211\203`\211@\311>\203H\211AA\262\2025\312\n>A@\203W\313\262\2025\314\315@\"\210\2025\210\316\317\320\313 \313        & \207" [plist-member :get-buffer-stream :matcher :heuristic-buffer-matcher :heuristic-matcher :buffer :position :file :buffers (:get-buffer-stream :matcher :heuristic-buffer-matcher :heuristic-matcher :buffer :position :file :buffers :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:get-buffer-stream :matcher :heuristic-buffer-matcher :heuristic-matcher :buffer :position :file :buffers)" cl--defsubst-expand (get-buffer-stream matcher heuristic-buffer-matcher heuristic-matcher buffer position file buffers) (cl-block make-el-search-head (record 'el-search-head get-buffer-stream matcher heuristic-buffer-matcher heuristic-matcher buffer position file buffers))] 24 (#$ . 52006)]) (put 'make-el-search-head 'compiler-macro 'make-el-search-head--cmacro) #@160 Constructor for objects of type `el-search-head'. (fn &key GET-BUFFER-STREAM MATCHER HEURISTIC-BUFFER-MATCHER HEURISTIC-MATCHER BUFFER POSITION FILE BUFFERS) (defalias 'make-el-search-head #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\211\203`\211@\311>\203H\211AA\262\2025\312\n>A@\203W\313\262\2025\314\315@\"\210\2025\210\316\317        & \207" [plist-member :get-buffer-stream :matcher :heuristic-buffer-matcher :heuristic-matcher :buffer :position :file :buffers (:get-buffer-stream :matcher :heuristic-buffer-matcher :heuristic-matcher :buffer :position :file :buffers :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:get-buffer-stream :matcher :heuristic-buffer-matcher :heuristic-matcher :buffer :position :file :buffers)" record el-search-head] 19 (#$ . 53273)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-el-search-head side-effect-free t cl-struct-define el-search-head nil cl-structure-object record ((cl-tag-slot) (get-buffer-stream) (matcher) (heuristic-buffer-matcher) (heuristic-matcher) (buffer) (position) (file) (buffers)) cl-struct-el-search-head-tags] 11) #@75 Reset current search's head when BODY exits non-locally. (fn &rest BODY) (defalias 'el-search-protect-search-head '(macro . #[128 "\300\301!\203 \211\202\302\303!\304\305B\306\307EE=\203!\211\202(\310DC\"\207" [(copy-el-search-head (el-search-object-head el-search--current-search)) macroexp-const-p make-symbol "head-copy" el-search-when-unwind progn setf (el-search-object-head el-search--current-search) macroexp-let*] 8 (#$ . 54531)])) (put 'el-search-protect-search-head 'edebug-form-spec t) #@25 (fn &optional BUFFER) (defalias 'el-search--search-buffer-p #[256 "\205O\211\206 p\303\211! >\204\304\305\306D\"\210\307H!\n>\204:\304\305\310\303! >\2044\304\305\306D\"\210\307HD\"\210\303! >\204I\304\305\306D\"\210\307H\311H=\207" [el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-object 2 el-search-head 5] 9 (#$ . 55048)]) (defalias 'el-search-revive-search #[0 "\303\304!\210\305\211\306\n!\207" [el-search--success el-search--wrap-flag el-search--current-search el-search-hl-post-command-fun stop nil el-search-reset-search] 3]) #@36 (fn &optional BUFFER &rest ARGS) (defalias 'el-search-barf-if-not-search-buffer #[384 "\303\304\305! >\204\306\307\310D\"\210\311H\"p=\203j\305\211! >\204*\306\307\310D\"\210\312H!\n>\204K\306\307\313\305! >\204E\306\307\310D\"\210\312HD\"\210\305! >\204Z\306\307\310D\"\210\312H\311H?\205z\314 \210\315!\207\316!?\205z\317\320\206y\321C\"\207" [el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags alist-get is-single-buffer type-of signal wrong-type-argument el-search-object 5 2 el-search-head el-search-revive-search el-search--next-buffer el-search--search-buffer-p apply user-error "Not in current search buffer"] 9 (#$ . 55694)]) #@49 (fn SEARCH &optional VERBOSE DONT-PROPERTIZE) (defalias 'el-search--get-search-description-string #[769 "\303\304\305!>\204\306\307\310D\"\210\311H\"\206\312\205\242\305!>\204.\306\307\310D\"\210\313H\314\315\303\316\305 !>\204F\306\307\310 D\"\210\311H\"\203R\317\202S\320\305! >\204c\306\307\321D\"\210\311H\211\203\234\322\323!\203w\324!\202\230\305! >\204\210\306\307\321D\"\210\325H\211\203\225\326!\202\226\327\262P\202\235\330\262#\262\331\332\305!>\204\265\306\307\310 D\"\210\333H!\314\334\335\336\337#)\266\203\203\317\340\202\320\341\203\331\202\336\342\343\344#\"\262R\207" [cl-struct-el-search-object-tags cl-struct-el-search-head-tags inhibit-changing-match-data alist-get description type-of signal wrong-type-argument el-search-object 5 "Search" 2 format " [%s %s]" is-single-buffer "single-buffer" "paused" el-search-head "-> " buffer-live-p buffer-name 7 file-name-nondirectory "killed buffer" "(completed)" " for" el-search--pp-to-string 1 "\n" nil t string-match ":\n%s" " %s" propertize face shadow] 15 (#$ . 56399)]) #@162 Edit the description string of the current search. That string appears in the printed representation of the search, so this is mainly useful to add short notes. (defalias 'el-search-edit-search-description #[0 "\302! >\204\303\304\305D\"\210\306\307H\236\211A\310\311\"\262\203'\241\2024\307\306B\211\262\307HBI\207" [el-search--current-search cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 read-string "New description: "] 8 (#$ . 57516) nil]) #@149 Kill all buffers that were opened just for searching. Buffers where a search had been paused or aborted (e.g. by moving the cursor) are not killed. (defalias 'el-search-kill-left-over-search-buffers #[0 "\301 \211\2052\211@r\211q\210)\203+\302!\204+\303!\204+r\211q\210\304 )\204+\305!\210A\266\202\202\207" [el-search--temp-buffer-flag buffer-list buffer-modified-p el-search--search-buffer-p el-search--pending-search-p kill-buffer] 4 (#$ . 58036) nil]) #@2111 Return a heuristic matcher for PATTERN. A heuristic matcher is a predicate accepting two arguments. The first argument is a file name or buffer. The second argument is a thunk (see "thunk.el") of a list of all of this file's or buffer's atoms, or of the atoms of a defun (i.e. top-level expression) in this file or buffer. The predicate returns nil when we can be sure that this file or buffer or defun can't contain a match for the PATTERN, and must return non-nil else. The idea behind heuristic matching is to speed up searching without altering the matching behavior by discarding files or buffers or defuns that can't contain a match. Most search patterns contain non-ambiguous information about properties of atoms that must be present in a buffer or defun containing a match, and computing a list of atoms is negligibly fast compared to searching that buffer or defun directly. Thus we spare expensively searching all buffers and defuns we can sort out that way. When specified in an `el-search-defpattern' declaration, a MATCHER-FUNCTION should be a function accepting the same arguments ARGS as the defined pattern. When called with ARGS, this function should return either nil (meaning that for these specific arguments no heuristic matching should be performed and normal matching should be used) or a (fast!) function, the "heuristic matcher" for this pattern, that accepts two arguments: a file-name or buffer, and a thunk of a complete list of atoms in that file or buffer or of a defun in it, that returns non-nil when this file or buffer or defun could contain a match for the pattern (NAME . ARGS), and nil when we can be sure that it doesn't contain a match. "Atom" here means anything whose parts aren't searched by el-searching, like integers or strings, but unlike arrays (see `el-search--atomic-p'). When in doubt, the heuristic matcher function must return non-nil. When el-searching is started with a certain PATTERN, a heuristic matcher function is constructed by recursively destructuring the PATTERN and combining the heuristic matchers of the subpatterns. (fn PATTERN) (defalias 'el-search-heuristic-matcher #[257 "\3019\203\n\302\202V\303\232\203\302\202V\304!\203*\305\306\307\310\311!\312\"\313\314%\202V:\203=@\211\315=\203CA\211:\203\341\211@A\211\204|\316!\317:\203r@A\211\204j\305\306\307\310\311!\320\"\313\314%\262\202m!\266\202\202u\211!\266\202\262\202\334\321\"\262\211\203\277\322\"\266\202\211\203\237 $\202\272\323!\211\211\n=?\262\203\267\211\324!\262\202\270\302\262\262\202\332\323!\211\211 =?\262\203\327\211\324!\262\202\330\302\262\262\266\202\202>\321\"\262\211\203\"\322\"\266\202\211\203$\202\323!\211\211=?\262\203\211\324!\262\202\302\262\262\202<\323!\211\211=?\262\2039\211\324!\262\202:\302\262\262\262\2028\211\325=\203\213A\211:\203)\211@A\211\204\304\211\242\326=\203h\324A@!\202\277\327!\203\203\330\331\"\305\306\332\310\311!\333\"\334\335%\262\202\277\211:\203\240\324\336\325@DA\203\232\325AD\202\233\337E!\202\277\211;\204\257\211\250\204\257\2119\203\276\305\306\307\310\311!\340\"\313\314%\202\277\302\262\202$\321\"\262\211\203\322\"\266\202\211\203\347 $\202\323!\211\211\n=?\262\203\377\211\324!\262\202\302\262\262\202\"\323!\211\211 =?\262\203\211\324!\262\202 \302\262\262\266\202\202\206\321\"\262\211\203j\322\"\266\202\211\203J$\202e\323!\211\211=?\262\203b\211\324!\262\202c\302\262\262\202\204\323!\211\211=?\262\203\201\211\324!\262\202\202\302\262\262\262\2028\211\336=\203\255A\211\330\324\"\305\306\332\310\311!\341\"\334\335%\262\262\262\2028\211\342=\203\317A\211\330\324\"\305\306\332\310\311!\343\"\334\335%\262\262\262\2028\211\344>\203\331\302\2028A\321\"\262\211\203\322\"\266\202\211\203\374$\202\323!\211\211=?\262\203\211\324!\262\202\302\262\262\2026\323!\211\211=?\262\2033\211\324!\262\2024\302\262\266\202\262\202V\323!\211\211=?\262\203S\211\324!\262\202T\302\262\207" [el-search--heuristic-matchers #[1028 "\207" #1=[] 5 "\n\n(fn THIS-HEURISTIC-MATCHER HEURISTIC-MATCHER ARGS NAME)"] el-search-true 'nil pcase--self-quoting-p make-byte-code 514 "\300\301!\235\207" vconcat vector [thunk-force] 5 "\n\n(fn _ ATOMS-THUNK)" quote el-search--flatten-tree #[257 "\300\301\"\302\303\304\305\306!\307\"\310\311%\207" [mapcar #[257 "\300\301D!\207" [el-search-heuristic-matcher quote] 4 "\n\n(fn ATOM)"] make-byte-code 514 "\301\302\303\304\305\306\"\307\"\310\311%\300\"\207" vconcat vector [cl-every make-byte-code 257 "\211\300\301\"\207" vconcat vector #1# 4 "\n\n(fn MATCHER)"] 10 "\n\n(fn FILE-NAME-OR-BUFFER ATOMS-THUNK)"] 8 "\n\n(fn FLATTENED)"] [thunk-force] alist-get apply el-search--macroexpand-1 el-search-heuristic-matcher \` \, vectorp mapcar #[257 "\300\301D!\207" [el-search-heuristic-matcher \`] 4 "\n\n(fn INNER-QPAT)"] "\301\302\303\304\305\306\"\307\"\310\311%\300\"\207" [cl-every make-byte-code 257 "\211\300\301\"\207" vconcat vector #1# 4 "\n\n(fn MATCHER)"] 10 "\n\n(fn FILE-NAME-OR-BUFFER ATOMS-THUNK)" and _ [thunk-force] [cl-every make-byte-code 257 "\211\300\301\"\207" vconcat vector #1# 4 "\n\n(fn MATCHER)"] or [cl-some make-byte-code 257 "\211\300\301\"\207" vconcat vector #1# 4 "\n\n(fn MATCHER)"] (guard pred let app)] 18 (#$ . 58512)]) (defvar el-search--atom-list-cache (make-hash-table :test 'equal :size 1000)) #@166 Return a list of el-search-atomic expressions in FILE-NAME-OR-BUFFER. `nil' atoms may be missing from the list for code like "(1 . nil)"). (fn FILE-NAME-OR-BUFFER) (defalias 'el-search-atom-list #[257 "\303\304!\203 \202\305!\211\203#\306!\205{r\211q\210!)\202{\307\"\211\2054\310\311!8@\232\211\203=A\202w\312\313!r\211q\210\314\315\316\317\320!\321\"\322$\216\323\324!\210)\325\n!\210!*\262\211\203t\326\310\311!8B#\210\211\262\266\202\262\207" [el-search--atom-list-cache inhibit-message emacs-lisp-mode-syntax-table #[257 "\300\301\302\303\212eb\210\304\3051\"\3061\307p!B\262\2020\262\2023\310\311\312! `$\210\313\314!\210\304\262\262)\"\"\207" [apply append mapcar el-search--flatten-tree nil (error) (end-of-file) el-search-read message "%s in %S\nat position %d - skipping" error-message-string sit-for 3] 12 "\n\n(fn FILE-NAME-OR-BUFFER)"] bufferp find-buffer-visiting buffer-live-p gethash 5 file-attributes generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 t insert-file-contents set-syntax-table puthash] 13 (#$ . 64095)]) #@15 (fn OBJECT) (defalias 'el-search--atomic-p #[257 "\300!?\206\211;\206\211?\206\301!\206\302!\207" [sequencep char-table-p bool-vector-p] 3 (#$ . 65259)]) #@68 Return a list of `el-search--atomic-p' objects in TREE. (fn TREE) (defalias 'el-search--flatten-tree #[257 "\301C\302\303\304\"\305\301C\211\306\307\310\311\312#\313\"\314\315%\240\210\211\242!\210\242\262)\207" [gc-cons-percentage nil make-hash-table :test eq 0.8 make-byte-code 257 "\303!\203 \300\300\242B\240\207\304\301\"?\205\203\305\306\301#\210\211:\203N\211:\203E\302\242@!\210\211A\262\304\301\"\203<\307\262\202 \305\306\301#\210\202 \211\205\203\302\242!\207\211\310\307\203\200:\204aGW\203\200:\203o\211A\262\242\202rH\262\302\242!\210T\262\202Q\307\266\203\207" vconcat vector [el-search--atomic-p gethash puthash t nil 0] 6 "\n\n(fn OBJECT)"] 13 (#$ . 65432)]) #@29 (fn PATTERN &optional HM) (defalias 'el-search-heuristic-buffer-matcher #[513 "\211\206\300!\301\302\303\304\305!\306\"\307\310%\207" [el-search-heuristic-matcher make-byte-code 257 "\301\302;\203 \202\303!\"\210\300\304C\304C\305\306\307\310\311 #\312\"\313\314%\266\202\"\207" vconcat vector [el-search--message-no-log "%s" buffer-name nil make-byte-code 256 "\211\203\301\242\207\301\242\204\302\303\300!\240\210\301\304\240\210\302\242\207" vconcat vector [el-search-atom-list t] 4 "\n\n(fn &optional CHECK)"] 13 "\n\n(fn FILE-NAME-OR-BUFFER)"] 9 (#$ . 66162)]) #@53 (fn SEARCH &optional PREDICATE KEEP-HIGHLIGHTING) (defalias 'el-search--next-buffer #[769 "\211\204 \306 \210\307\310\311\312#\210\206\313\314\211!>\204#\315\316\317D\"\210\320H! >\204G\315\316\321\314!>\204@\315\316\317 D\"\210\320HD\"\210\314!>\204W\315\316\317D\"\210\320H\322H\323\324\325\326\327\"\330\"\322\331%\262\266\314!>\204~\315\316\317D\"\210\320H\314! >\204\220\315\316\321D\"\210\211\332H\333 \334\211\211\204\273\335!\204\273\336!\262\337!\262?\206\266!\262\202\230\204\364\314! >\204\320\315\316\321D\"\210\211\340\334I\266\314! >\204\350\315\316\321D\"\210\211\332I\266\334\202\314\314! >\204\315\316\321D\"\210\211\332I\266\314! >\204\315\316\321D\"\210\211\341\342I\266\343!\2031\262\202{\314! >\204B\315\316\321D\"\210\211\344I\266\345!\206y\346\312\347\350!r\211q\210\351!\210\352 \210\353\304!\210\353\305!\210\354 \210\355\334!\210)\211\262*\262\211>\204\215r\211q\210\353\356!\210\312.)\314! >\204\236\315\316\321D\"\210\211\340I\266\343!\203\313\211p=\204\313r\211q\210deZ\357 U\204\312\360\361\362\363 \"!\203\312~\210)\211\266\205\207" [cl-struct-el-search-object-tags cl-struct-el-search-head-tags inhibit-message warning-minimum-level el-search--temp-file-buffer-flag buffer-file-name el-search-hl-remove remove-hook post-command-hook el-search-hl-post-command-fun t el-search-true type-of signal wrong-type-argument el-search-object 2 el-search-head 3 make-byte-code 257 "\300!\205\n?\206\301!\207" vconcat vector [el-search-optimized-search] "\n\n(fn FILE-NAME-OR-BUFFER)" 8 buffer-list nil stream-empty-p stream-first stream-rest 5 6 1 bufferp 7 find-buffer-visiting :error generate-new-buffer " el-search-helper-buffer" insert-file-contents emacs-lisp-mode make-local-variable set-visited-file-modtime set-buffer-modified-p el-search--temp-buffer-flag buffer-size y-or-n-p format "Widen buffer \"%s\"? " buffer-name] 13 (#$ . 66756)]) #@28 (fn &optional PREDICATE) (defalias 'el-search--skip-to-next-buffer #[256 "\301\"\210\302 \207" [el-search--current-search el-search--next-buffer el-search-continue-search] 4 (#$ . 68770)]) #@193 Like `count-matches' but accepting an el-search PATTERN instead of a regexp. Unlike `count-matches' matches "inside" other matches also count. (fn PATTERN &optional RSTART REND INTERACTIVE) (defalias 'el-search-count-matches #[1025 "\212\203\203^b\210]\262\202<b\210d\262\202<\211\2033\300 \2033\301 \262\302 \262\2029`\262d\262b\210\303\304!\305!`W\203`\306\307$\203`T\262\310\311\307\"\210\202D\203t\312\313\211\314U\203q\315\202r\316#\210\266\203)\207" [use-region-p region-beginning region-end 0 el-search-make-matcher el-search-heuristic-matcher el-search--search-pattern-1 t el-search--skip-expression nil message "%d occurrence%s" 1 "" "s"] 12 (#$ . 68970) (byte-code "\300\301!\302\211\303F\207" [el-search-read-pattern-for-interactive "How many matches for pattern: " nil t] 4)]) #@119 Like `el-search-looking-at' but accepts a MATCHER as first argument. (fn MATCHER &optional ALLOW-LEADING-WHITESPACE) (defalias 'el-search--looking-at-1 #[513 "\301\302!\204\f\303\304\305 \"\207\212\306 `\307\3108\206\3118?\205S\3121+\313 \262\3140\2020\210\307\202S\205S`U\204O\205S\315`{\307\314\316#)\266\203\205S\317\"\266\203)\207" [inhibit-changing-match-data derived-mode-p emacs-lisp-mode error "Buffer not in emacs-lisp-mode: %s" buffer-name syntax-ppss nil 3 4 (end-of-buffer) el-search--ensure-sexp-start t "\\`[[:space:]]+\\'" string-match el-search--match-p] 12 (#$ . 69810)]) #@247 El-search version of `looking-at'. Return non-nil when there is a match for PATTERN at point in the current buffer. With ALLOW-LEADING-WHITESPACE non-nil, the match may be preceded by whitespace. (fn PATTERN &optional ALLOW-LEADING-WHITESPACE) (defalias 'el-search-looking-at #[513 "\300\301!\"\207" [el-search--looking-at-1 el-search-make-matcher] 5 (#$ . 70430)]) #@533 Return a stream of all matches of SEARCH. The returned stream will always start searching from the beginning anew even when SEARCH has been used interactively or elements of another stream returned by this function have already been requested. The elements of the returned stream will have the form (buffer match-beg file) where BUFFER or FILE is the buffer or file where a match has been found (exactly one of the two will be nil), and MATCH-BEG is the position of the beginning of the match. (fn SEARCH &optional DONT-COPY) (defalias 'el-search--all-matches #[513 "\211\203\202 \301\302!!\303!>\204\304\305\306D\"\210\211\307H\310\311\312C\211\313\314\315\316\317\n\n#\320\"\321$\240\210\211\242\262 \"\207" [cl-struct-el-search-object-tags el-search-reset-search copy-el-search-object type-of signal wrong-type-argument el-search-object 2 seq-filter identity nil make-byte-code 0 "\303\304\305\306\307\310\300\301\302#\311\"\312$B\207" vconcat vector [--stream-fresh-- make-byte-code 0 "\305\301! >\204\306\307\310\301D\"\210\301\311H\206\312\300\313\314#\211\205*r\211q\210\212\305\301! >\2042\306\307\310\301D\"\210\301\315Hb\210\316\317\305\301! >\204H\306\307\310\301D\"\210\301\320H\206`\305\301! >\204]\306\307\310\301D\"\210\301\311H\"\210\321\305\301! >\204r\306\307\310\301D\"\210\301\322H\314\313\305\301! >\204\206\306\307\310\301D\"\210\301\323H$\211\203\360\305\300!\f>\204\235\306\307\324\300D\"\210\300\211\325\326`!I\266\327\313\314\"\210\305\301! >\204\272\306\307\310\301D\"\210\301\211\315\326`!I\266\305\301! >\204\322\306\307\310\301D\"\210\301\311H\305\301! >\204\345\306\307\310\301D\"\210\301\320HE\302\242 B\202'\305\301! >\204\377\306\307\310\301D\"\210\301\211\311\313I\266\305\301! >\204\306\307\310\301D\"\210\301\211\320\313I\266\312\300\313\314#\210\313\302\242 B\262*\207" vconcat vector [cl-struct-el-search-head-tags cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-head 5 el-search--next-buffer nil t 6 el-search--message-no-log "%s" 7 el-search--search-pattern-1 2 4 el-search-object 3 copy-marker el-search--skip-expression] 9] 9] 16 (#$ . 70807)]) #@21 (fn HEAD PATTERN) (defalias 'el-search--set-head-pattern #[514 "\301!>\204\302\303\304D\"\210\211\305\306!I\266\307!\301!>\204*\302\303\304D\"\210\211\310I\266\301!>\204@\302\303\304D\"\210\211\311\312\"I\266\207" [cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-head 2 el-search-make-matcher el-search-heuristic-matcher 4 3 el-search-heuristic-buffer-matcher] 9 (#$ . 72977)]) #@15 (fn SEARCH) (defalias 'el-search-compile-pattern-in-search #[257 "\301\302!>\204\303\304\305D\"\210\306H\302!>\204\"\303\304\305D\"\210\307H\"\207" [cl-struct-el-search-object-tags el-search--set-head-pattern type-of signal wrong-type-argument el-search-object 2 1] 7 (#$ . 73415)]) #@254 Create and return a new `el-search-object' instance. PATTERN is the pattern to search, and GET-BUFFER-STREAM a function that returns a stream of buffers and/or files to search in, in order, when called with no arguments. (fn PATTERN GET-BUFFER-STREAM) (defalias 'el-search-make-search #[514 "\300C\211\301\302\303\304\305\306\n $\307\310\311\312\313\314\f!\315\"\316$&\240\210\317\242!\210\211\242\207" [nil make-el-search-object :pattern :head make-el-search-head :get-buffer-stream :buffers :get-matches make-byte-code 0 "\301\300\242!\207" vconcat vector [el-search--all-matches] 2 el-search-compile-pattern-in-search] 16 (#$ . 73718)]) #@28 Reset SEARCH. (fn SEARCH) (defalias 'el-search-reset-search #[257 "\302!>\204\303\304\305D\"\210\211\306H\302! >\204!\303\304\307D\"\210\211\211\310\302! >\2044\303\304\307D\"\210\311H I\266\302! >\204J\303\304\307D\"\210\211\211\312\313I\266\302! >\204`\303\304\307D\"\210\211\211\314\313I\266\302! >\204v\303\304\307D\"\210\211\211\315\313I\266\302!>\204\214\303\304\305D\"\210\211\316\313I\266\317!\210\207" [cl-struct-el-search-object-tags cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-object 2 el-search-head 8 1 5 nil 7 6 3 el-search-compile-pattern-in-search] 9 (#$ . 74372)]) #@17 (fn FUNCTION) (defalias 'el-search-loop-over-bindings #[257 "\304\305\"\211\306\307#\210\211\310\311#\210\211\312\307#\210\211\313\311#\210\211\314\315#\210\211\316\317#\210\211 \320\321#\210\211 \322\323#\210\211 \324\323#\210\211\325\326#\210\211 \327\330#\210\211 \331\332#\210\211 \333\334#\210\211\n\306\335#\210\211\n\310\335#\210\211\n\333\336#\210\211 \306\337#\210\211 \310\340#\210\211 \314\341#\210\211 \333\342#\210\211 \343\344#\210\211 \345\346#\210\211 \347\350#\210\351\352\353\354\355\356\357!\360\"\361$\"\210\351\362\353\354\355\356\357!\363\"\361$\"\207" [emacs-lisp-mode-map global-map el-search-read-expression-map isearch-mode-map apply-partially funcall 115 el-search-pattern 114 el-search-pattern-backward 110 112 37 el-search-query-replace 104 el-search-this-sexp 106 el-search-jump 97 el-search-from-beginning 60 62 el-search-last-buffer-match 100 el-search-skip-directory 120 el-search-continue-in-next-buffer 111 el-search-occur exit-minibuffer el-search-set-occur-flag-exit-minibuffer el-search-search-from-isearch el-search-search-backward-from-isearch el-search-replace-from-isearch el-search-occur-from-isearch 101 el-search-emacs-elisp-sources 108 el-search-load-path 98 el-search-buffers eval-after-load dired make-byte-code 0 "\300 \302\303#\207" vconcat vector [dired-mode-map 115 el-search-dired-marked-files] 4 ibuffer [ibuffer-mode-map 115 el-search-ibuffer-marked-buffers]] 10 (#$ . 75026)]) #@176 Exit el-search normally. You also can invoke any other non-search command to exit an el-search normally - the state of the current search is automatically saved in any case. (defalias 'el-search-pause-search #[0 "\300\207" [nil] 1 (#$ . 76480) nil]) (defalias 'el-search--set-search-origin-maybe #[0 "\301 ?\205\302`!\303 D\211\207" [el-search--search-origin el-search--pending-search-p copy-marker selected-window] 2]) #@116 Abort el-search, signaling quit. Go back to the place where the search had been started. (fn &optional DONT-QUIT) (defalias 'el-search-keyboard-quit #[256 "\302\303\304!\210 A@\305!\203\306\307!!\210\310!\210\210\311\312 @!!\210 @b\210\211?\205.\313\314\302\"\207" [el-search--success el-search--search-origin nil el-search-hl-post-command-fun stop window-live-p select-frame-set-input-focus window-frame select-window switch-to-buffer marker-buffer signal quit] 5 (#$ . 76911) nil]) (defvar el-search-help-map (make-sparse-keymap)) (defvar el-search-basic-transient-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312! #\210\303\313 #\210\303\314 #\210\211\207" [help-char el-search-help-map make-sparse-keymap define-key " " el-search-pause-search "" el-search-keyboard-quit [63] el-search-help-list-bindings vector [help] [f1]] 5)) (defvar el-search-prefix-key-transient-map (byte-code "\301 \302\303\304\305\306\307!\310\"\311\312%!\210\313\314\315#\210\313\316\317#\210\320\"\210\211\207" [el-search-basic-transient-map make-sparse-keymap el-search-loop-over-bindings make-byte-code 771 "\211\301>\205 \302\300\303!#\207" vconcat vector [(el-search-pattern el-search-pattern-backward el-search-jump el-search-query-replace el-search-from-beginning el-search-last-buffer-match el-search-skip-directory el-search-continue-in-next-buffer el-search-occur) define-key vector] 7 "\n\n(fn MAP KEY COMMAND)" define-key [118] el-search-scroll-down [86] el-search-scroll-up set-keymap-parent] 8)) #@310 Non-nil when COMMAND should not deactivate the current search. The default is to allow scrolling commands when `el-search-allow-scroll' is non-nil and `mouse-set-point'. For controlling which commands should or should not deactivate an active search it is recommended to advice this function. (fn COMMAND) (defalias 'el-search-keep-session-command-p #[257 "\203\2119\203\211\301N\206\211\302N\206\211\303>\207" [el-search-allow-scroll isearch-scroll scroll-command (mouse-drag-region mouse-set-point)] 3 (#$ . 78464)]) (defalias 'el-search-prefix-key-maybe-set-transient-map #[0 "\303\203 \202\n\n\304\"\207" [el-search-use-transient-map el-search-prefix-key-transient-map el-search-basic-transient-map set-transient-map #[0 " >\206 \302!\207" [this-command el-search-keep-transient-map-commands el-search-keep-session-command-p] 2]] 3]) #@24 (fn MAP KEY COMMAND) (defalias 'el-search-shift-bindings-bind-function #[771 "\300\301\302\303X\203\304X\203\305D\202CB!#\207" [define-key vector control 97 122 shift] 9 (#$ . 79327)]) (defalias 'el-search-install-shift-bindings #[0 "\302\303\304!\210\305 \306\307#\210\305 \310\311#\207" [el-search-use-transient-map el-search-basic-transient-map nil el-search-loop-over-bindings el-search-shift-bindings-bind-function define-key [C-S-next] el-search-scroll-down [C-S-prior] el-search-scroll-up] 4 nil nil]) #@15 (fn PREFIX) (defalias 'el-search-bind-under-prefix-key-function #[257 "\300\301\302\303\304!\305\"\306\307%\207" [make-byte-code 771 " \nD>?\205\303\304\305\300\306\"C\"#\207" vconcat vector [el-search-read-expression-map isearch-mode-map define-key vconcat seq-into list] 9 "\n\n(fn MAP KEY COMMAND)"] 7 (#$ . 79859)]) #@19 (fn PREFIX-KEY) (defalias 'el-search-install-bindings-under-prefix #[257 "\301\302!!\210\303\211\207" [el-search-use-transient-map el-search-loop-over-bindings el-search-bind-under-prefix-key-function t] 4 (#$ . 80194)]) #@69 (fn PATTERN GET-BUFFER-STREAM &optional FROM-HERE SETUP-FUNCTION) (defalias 'el-search-setup-search-1 #[1026 "\204 \305 \210\306\307\"\211\203\211\n!\210\310 \n\"\210\203!\306?\205(\311 \207" [el-search-occur-flag el-search--success el-search--current-search el-search-history el-search--temp-buffer-flag el-search--set-search-origin-maybe nil el-search-make-search ring-insert el-search-prefix-key-maybe-set-transient-map] 7 (#$ . 80425)]) #@443 Create and start a new el-search. PATTERN is the search pattern. GET-BUFFER-STREAM is a function of no arguments that should return a stream of buffers and/or files (i.e. file names) to search in. With optional FROM-HERE non-nil, the first buffer in this stream should be the current buffer, and searching will start at the current buffer's point instead of its beginning. (fn PATTERN GET-BUFFER-STREAM &optional SETUP-FUNCTION FROM-HERE) (defalias 'el-search-setup-search #[1026 "\301\302$\210\204\303!\207\302\304 \207" [el-search-occur-flag el-search-setup-search-1 nil el-search-continue-search el-search-occur] 9 (#$ . 80888)]) #@453 Return a stream of emacs-lisp files in DIRECTORY. DIRECTORY defaults to `default-directory'. The returned stream will recurse into DIRECTORY's subdirectories when RECURSE is non-nil. Subdirectories whose name is matched by one of the `el-search-ignored-directory-regexps' are excluded. When `el-search-respect-nosearch' has a non-nil value, subdirectories that contain a file named ".nosearch" are excluded as well. (fn &optional DIRECTORY RECURSE) (defalias 'el-search-stream-of-directory-files #[512 "\301\206\302\303\205 \304\302\305&\207" [default-directory stream-of-directory-files t nil #[257 "\302\303\304\305\306\307!\310\"\311\312%\"\206 \205\313\314\315\316$?\207" [el-search-ignored-directory-regexps el-search-respect-nosearch cl-some make-byte-code 257 "\211\302\300!\303\304\305#)\207" vconcat vector [inhibit-changing-match-data file-name-nondirectory nil t string-match] 8 "\n\n(fn REGEXP)" directory-files nil "\\`\\.nosearch\\'" t] 8 "\n\n(fn DIR-NAME)"] el-search--elisp-file-p] 9 (#$ . 81539)]) #@508 You have typed %THIS-KEY%, the help character. Type a Help option: (Type \\[help-quit] to exit or \\[help-quit] \[el-search-jump] to continue searching.) b Display el-search key bindings. m Display key bindings with some documentation. i Read the introduction. k KEYS Display full documentation of key sequence. p List defined patterns. You can't type here other help keys available in the global help map until you finished el-searching. (defalias 'el-search-help-for-help-internal-doc #[0 "\300\207" [nil] 1 (#$ . 82584)]) #@15 Help command. (defalias 'el-search-help-for-help-internal #[0 "\306\307!\203\f\310\311\"\210\312\313!\314 C\315 \316C\316C\316\211\317\320 \"\2032\321\322\323 \324\325O!\326\211 $\262\327\324\330\331\332\n  #\333\"\334$\216\316\n\241\210\335\336\337#\210\335\340\341 \342\"#\210\203}\343\316!)\262\341 \"\203u\341 \"\262\324H\262\202\200\344\262\211\344=\204\224\211@=\204\224\211A>\203O\345 \240\210\346\347\316\326#\210\350\351!\203\265\352 =\204\265\352 \240\210\316\240\210\316B\326C\353 \210c\210)\242\354 \210 \240\210)eb\210\211\355A@\356B\">\204\353\211\242\357=\204\353\360\232\203O\3611\211\242\357=\203\374\362!\202\211\363>\203\364 \202\211\365>\204\360\232\205\366 0\202\210\202\210\326D\343\367\370\371d!\2031\372\2022\373\"!\262\324H\262*\211\374=\203\321\375\341\"\316#\210\202\321\310\372!\210\211<\203d\211EBE\316\240\202\244\341\"\211\203\236\242\203{\376\242!\210\316\240\210\242\377!\210)\242\205\242\242\315 =\204\230\201F\242!\210\316\240\202\242\201G \262*\266\210\207" [three-step-help minor-mode-map-alist el-search-help-map global-map overriding-local-map function-key-map substitute-command-keys "Type a help option: [bmikp] or ?" message "%s" documentation el-search-help-for-help-internal-doc make-sparse-keymap selected-frame nil string-match "%THIS-KEY%" replace-match key-description this-command-keys 0 -1 t make-byte-code "\301\242\203\n\304\301\242!\210\302\242\203\305\302\242!\210\300\242\211\207" vconcat vector [minor-mode-map-alist set-window-configuration iconify-frame] 2 define-key [t] undefined [vertical-scroll-bar] lookup-key [vertical-scroll-bar] read-key-sequence 63 current-window-configuration pop-to-buffer " *Metahelp*" fboundp make-frame window-frame erase-buffer help-mode append (63 22 32 127 delete backspace vertical-scroll-bar 134217846) switch-frame "\366" (error) handle-switch-frame (22 32) scroll-up (127 134217846 delete backspace) scroll-down format "Type one of the options listed%s: " pos-visible-in-window-p "" ", or SPACE or DEL to scroll" vertical-scroll-bar command-execute set-window-configuration call-interactively help-char help-event-list buffer-read-only inhibit-read-only cursor-in-echo-area unread-command-events iconify-frame ding] 17 (#$ . 83183) nil]) (defalias 'el-search-help-for-help #[0 "\301\302 )\207" [display-buffer-overriding-action (nil (inhibit-same-window . t)) el-search-help-for-help-internal] 1 nil nil]) #@26 (fn &optional VERBOSE) (defalias 'el-search-help-list-bindings--1 #[256 "\301\302\303\304!\210\211\305#\210\211\306#\210\211\307#\210\211\310#\210\211\311#\210\211\312#\210\211\313#\210\211\314#\210\211\315#\210\211\316#\210\211\317#\210\211\320#\210\211\321#\210\211\322#\210\211\323#\210\211\324#\210\204p\303\325\326!!\210\266\207" [standard-output #[257 "\303\203 \202\n\n\"\206!\237\211\203!\304\305\306#\202\"\307\207" [el-search-use-transient-map el-search-prefix-key-transient-map el-search-basic-transient-map #[513 "\300\301\302\205\nC\"\"\207" [seq-filter #[257 "\300!\203\301\302\"\211\303=?\205\304\207\304\207" [seqp seq--elt-safe 0 menu-bar t] 4 "\n\n(fn BINDING)"] where-is-internal] 7 "\n\n(fn CMD-NAME &optional MAP)"] mapconcat key-description ", " "no key"] 8 "\n\n(fn CMD-NAME)"] #[771 "\300\301\302\203.\303\304!\305\306!\307\310\n!\211\205&\311\312\"\210\313\314\"\315P\262\315\260\202=\316\304!\"!\315R!\207" [34 #[514 "\211GX\203\f\202\300\301\302\303#\304\"Q\300P\207" [" " make-string - 1 46] 10 "\n\n(fn MAXL S)"] princ "`" symbol-name "'" " (" ")\n" documentation string-match "\\(\\`.*$\\)" match-string 1 "\n" " "] 16 "\n\n(fn VERBOSE --CL-KEYS-STRING-- CMD-NAME)"] princ "Bindings for controlling el-searches:\n\n" el-search-pattern el-search-pattern-backward el-search-help-list-bindings el-search-help-list-bindings-verbose el-search-pause-search el-search-keyboard-quit el-search-occur el-search-jump el-search-from-beginning el-search-last-buffer-match el-search-scroll-down el-search-scroll-up el-search-continue-in-next-buffer el-search-skip-directory el-search-to-register el-search-query-replace substitute-command-keys "\nToggle visibility of this window with `\\\\[el-search-help-list-bindings]'"] 7 (#$ . 85713)]) #@27 Toggle quick help window. (defalias 'el-search-help-list-bindings #[0 "\305\306 ?\2053\307 !r\211q\210\310\311 \210*\211\312 \210)\313\314\"\315!\210rq\210\316\304!\210\211\211)\262\262\207" [this-command el-search-quick-help-buffer-name inhibit-read-only standard-output el-search-help-window el-search-pattern el-search-close-quick-help-maybe get-buffer-create t erase-buffer el-search-help-list-bindings--1 display-buffer-pop-up-window nil fit-window-to-buffer make-local-variable] 4 (#$ . 87602) nil]) #@49 List bindings and first lines of documentation. (defalias 'el-search-help-list-bindings-verbose #[0 "\305\211\223\210\306 B\307\nB\310 \311 \312!\211\305\211\313\314!\262rq\210\315\305\"\262)\316\317!\2036\317\"\2027\211)\266\204*\207" [help-window-point-marker temp-buffer-window-setup-hook temp-buffer-window-show-hook help-window-old-frame standard-output nil help-mode-setup help-mode-finish selected-frame help-buffer temp-buffer-window-setup el-search-help-list-bindings--1 verbose temp-buffer-window-show functionp help-window-setup] 7 (#$ . 88124) nil]) (defalias 'el-search-help-read-intro #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!\210+\211,\316\317!\210\316\320\321\322\323\324!r\211q\210\325\326\327\330\331!\332\"\333$\216\334\335\336!!\210\212\337\340!\210\341`\337\342!\210\343y\210`\"+\262#\311\211\344\345\206b\346\347Q\"\203t\350\322\312\211$\266\202\202w\266\202\344\351\206\346\352Q\"\203\221\350\322\312\211$\266\205\202\224\266\205!\353!\210)\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*Help*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "Introduction to El-Search\n=========================\n\n\n" replace-regexp-in-string "^;+ ?" "" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents locate-library "el-search.el" search-forward ";;; Commentary:" buffer-substring-no-properties ";; Acknowledgments" -1 string-match "\\(?:" "[ \n ]+" "\\)\\'" replace-match "\\`\\(?:" "\\)" internal-temp-output-buffer-show standard-output] 14 nil nil]) (byte-code "\302\303 !\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\311#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322\323#\207" [el-search-help-map help-char define-key vector el-search-help-for-help [help] [f1] [63] [98] el-search-help-list-bindings [109] el-search-help-list-bindings-verbose [112] el-search-list-defined-patterns [105] el-search-help-read-intro [107] describe-key [113] help-quit] 4) #@15 (fn OBJECT) (defalias 'el-search--simple-regexp-like-p #[257 "\211:?\206%\300!\206%\211:\205%\301\302!\203\302!\202\303\205%\211@:?\207" [functionp fboundp proper-list-p t] 3 (#$ . 90358)]) #@559 Return non-nil when OBJECT is regexp like. In el-search, a regexp-like is either an expression evaluating to a normal regexp (e.g. a string or an `rx' form; it is evaluated once when a pattern is compiled) or a function accepting a string argument that can be used directly as a predicate for match testing, or a list of the form (BINDINGS X) where BINDINGS is a let-style list of variable bindings and X one of the above. Example: (((case-fold-search nil)) (rx bos "a")) is a regexp-like matching any string starting with lower case "a". (fn OBJECT) (defalias 'el-search-regexp-like-p #[257 "\300!\203\301\207\211:\2038\211@\211<\2057A\211:\2055\211@\300!\2053A\211?\2051\302\303\"\262\262\262\262\207\304\207" [el-search--simple-regexp-like-p t cl-every #[257 "\2119\203\300\207\211:\2033\211@\2119\2052A\211\204\300\2020\211:\203/\211A\211?\205*\300\262\2020\301\262\207\301\207" [t nil] 5 "\n\n(fn BINDING)"] nil] 9 (#$ . 90567)]) #@210 Return a compiled match predicate for REGEXP-LIKE. This is a predicate returning non-nil when the `el-search-regexp-like-p' REGEXP-LIKE matches the (only) argument (that should be a string). (fn REGEXP-LIKE) (defalias 'el-search--string-matcher #[257 "\300\211\301!\203\262\202^:\203W@\211<\203LA\211:\203A\211@A\211\2044\262\262\210\202<\302\303\"\266\266\202H\302\303\"\266\210\202S\302\303\"\266\210\202^\302\303\"\266\304\305\306\307!\310C\311 !\203{\312\313\nDE\202\227\314\315\n\316\"\211;\203\215\211\211\262\202\222\302\317\f\"\262E\"E\262!\262\207" [nil el-search--simple-regexp-like-p error "No clause matching `%S'" #[514 "\204\207\300E\207" [let] 5 "\n\n(fn BINDINGS BODY)"] el-search--byte-compile make-symbol "string" lambda functionp funcall function string-match eval t "Expression in regexp-like doesn't eval to a string: %S"] 15 (#$ . 91546)]) (byte-code "\303\236\304\203\241\210\202\303B\211\262B\266\303 \236\211\203(\211\305\241\210\2021\303\305B\211\262 B\210\303\n\236\306\203A\241\210\202J\303B\211\262\nB\266\307\236\310\203[\241\210\202d\307B\211\262B\266\307 \236\211\203t\211\305\241\210\202}\307\305B\211\262 B\210\307\n\236\311\203\215\241\210\202\226\307B\211\262\nB\210\207" [el-search--heuristic-matchers el-search--inverse-heuristic-matchers el-search--pcase-macros string #[128 "\300\301\"\302\303\304\305\306!\307\"\310\311%\207" [mapcar el-search--string-matcher make-byte-code 514 "\301\302\303\304\305\306\300!\307\"\310\311%\312!\"\207" vconcat vector [cl-some make-byte-code 257 "\211;\205\301\302\303\304\305\306!\307\"\310\311%\300\"\207" vconcat vector [cl-every make-byte-code 257 "\211\300!\207" vconcat vector #1=[] 3 "\n\n(fn MATCHER)"] 8 "\n\n(fn ATOM)" thunk-force] 9 "\n\n(fn _ ATOMS-THUNK)"] 8 "\n\n(fn &rest REGEXPS)"] nil #[128 "\300\301\302#\210\303\304\305\306\"BB\207" [el-search-defpattern--check-args "string" el-search-regexp-like-p and (pred stringp) mapcar #[257 "\300\301!D\207" [pred el-search--string-matcher] 4 "\n\n(fn REGEXP)"]] 6 "Matches any string that is matched by all REGEXPS.\nAny of the REGEXPS is `el-search-regexp-like-p'.\n\nIf multiple REGEXPS are given, they don't need to match in order,\nso (string \"bar\" \"foo\") matches \"foobar\" for example.\n\n(fn &rest REGEXPS)"] symbol #[128 "\300\301\"\302\303\304\305\306!\307\"\310\311%\207" [mapcar el-search--string-matcher make-byte-code 514 "\301\302\303\304\305\306\300!\307\"\310\311%\312!\"\207" vconcat vector [cl-some make-byte-code 257 "\2119\205\301!\211\205\302\303\304\305\306\307!\310\"\311\312%\300\"\207" vconcat vector [symbol-name cl-every make-byte-code 257 "\211\300!\207" vconcat vector #1# 3 "\n\n(fn MATCHER)"] 9 "\n\n(fn ATOM)" thunk-force] 9 "\n\n(fn _ ATOMS-THUNK)"] 8 "\n\n(fn &rest REGEXPS)"] #[128 "\300\301\302#\210\303\304\305\306\307BEE\207" [el-search-defpattern--check-args "symbol" el-search-regexp-like-p and (pred symbolp) app symbol-name string] 7 "Matches any symbol whose name is matched by all REGEXPS.\nAny of the REGEXPS is `el-search-regexp-like-p'.\n\nThis pattern is equivalent to\n\n `(and (pred symbolp)\n (app symbol-name (string ,@regexps)))\n\nExample: to replace all symbols with names starting with \"foo-\"\nto start with \"bar-\" instead, you would use\n`el-search-query-replace' with a rule like this:\n\n (and (symbol (rx bos \"foo-\" (group (+ nonl)))) s) >\n (intern (concat \"bar-\" (match-string 1 (symbol-name s))))\n\n(fn &rest REGEXPS)"]] 4) #@448 Return non-nil when expression tree EXPR contains a match for MATCHER. MATCHER is a matcher for the el-search pattern to match. Recurse on all types of sequences el-search does not treat as atomic. Matches are not restricted to atoms; for example (el-search--contains-p (el-search-make-matcher ''(2 3)) '(1 (2 3))) succeeds. In the positive case the return value is (t elt), where ELT is a matching element found in EXPR. (fn MATCHER EXPR) (defalias 'el-search--contains-p #[514 "\300\"\203 \301D\207\302!\205.\303\304\":\203(\211@!\206,\211A!\202,\305\"\262\207" [el-search--match-p t sequencep apply-partially el-search--contains-p cl-some] 6 (#$ . 95133)]) (byte-code "\303\236\304\203\241\210\202\303B\211\262B\266\303 \236\211\203(\211\305\241\210\2021\303\305B\211\262 B\210\303\n\236\306\203A\241\210\202J\303B\211\262\nB\210\207" [el-search--heuristic-matchers el-search--inverse-heuristic-matchers el-search--pcase-macros contains #[128 "\300\301\"\302\303\304\305\306!\307\"\310\311%\207" [mapcar el-search-heuristic-matcher make-byte-code 514 "\301\302\303\304\305\306\"\307\"\310\311%\300\"\207" vconcat vector [cl-every make-byte-code 257 "\211\300\301\"\207" vconcat vector [] 4 "\n\n(fn MATCHER)"] 10 "\n\n(fn FILE-NAME-OR-BUFFER ATOMS-THUNK)"] 8 "\n\n(fn &rest PATTERNS)"] nil #[128 "\211\204\300\207\211A\204\211@\301\302\303\304!\"\305\306\307CBDCBE\207\310\311\312\"B\207" [_ app apply-partially el-search--contains-p el-search-make-matcher \` t \, and mapcar #[257 "\300D\207" [contains] 3 "\n\n(fn PATTERN)"]] 8 "Matches expressions that contain a match for all PATTERNs.\n\nExample:\n\n (contains (string \"H\") 17)\n\nmatches\n\n ((\"Hallo\") x (5 [1 17])).\n\nThe tested expression itself is included, so for example `1' is\nmatched by (contains 1).\n\n(fn &rest PATTERNS)"]] 4) #@20 (fn &rest ATOMS) (defalias 'el-search--in-buffer-matcher #[128 "\300\301\"\302\303\304\305\306\307!\310\"\311\312%!\303\313\314\306\307!\315\"\316\317%\207" [mapcar el-search-heuristic-buffer-matcher el-search-with-short-term-memory make-byte-code 257 "\302\303\304\305\306\307\310!\311\"\312\313%\300\")\207" vconcat vector [inhibit-message t cl-every make-byte-code 257 "\211\300!\207" vconcat vector #1=[] 3 "\n\n(fn HM)"] 8 "\n\n(fn FILE-NAME-OR-BUFFER)" 514 "\300!\207" #1# 4 "\n\n(fn FILE-NAME-OR-BUFFER _)"] 9 (#$ . 97006)]) (byte-code "\303\236\211\203\211\304\241\210\202\303\304B\211\262B\210\303 \236\211\203&\211\305\241\210\202/\303\305B\211\262 B\210\303\n\236\306\203?\241\210\202H\303B\211\262\nB\266\307\236\211\203X\211\305\241\210\202a\307\305B\211\262B\210\307 \236\211\203p\211\305\241\210\202y\307\305B\211\262 B\210\307\n\236\310\203\211\241\210\202\222\307B\211\262\nB\266\311\236\312\203\243\241\210\202\254\311B\211\262B\266\311 \236\211\203\274\211\305\241\210\202\305\311\305B\211\262 B\210\311\n\236\313\203\325\241\210\202\336\311B\211\262\nB\266\314\315\316\317!\"\210\320\236\321\203\366\241\210\202\377\320B\211\262B\266\320 \236\211\203\211\305\241\210\202\320\305B\211\262 B\210\320\n\236\322\203(\241\210\2021\320B\211\262\nB\210\207" [el-search--heuristic-matchers el-search--inverse-heuristic-matchers el-search--pcase-macros in-buffer el-search--in-buffer-matcher nil #[128 "\300\301\302\303$\210\304\305\"\306\307\310D\311BBD\207" [el-search-defpattern--check-args "in-buffer" #[257 "\300!\203\301\207\211:\203]\211@\211\302=\2035A\211:\2050\211@\300!\205.A\211?\205,\301\262\262\262\202\\\211\303=\203[A\211:\205V\211@\300!\205TA\211?\205R\301\262\262\262\202\\\304\207\304\207" [el-search--atomic-p t quote \` nil] 6 "\n\n(fn ARG)"] "argument not atomic" apply el-search--in-buffer-matcher guard funcall quote ((current-buffer) nil)] 6 "Matches anything in buffers containing all ATOMS.\n\nThis pattern type matches anything, but only in files or buffers\nthat contain all of the ATOMS. In all other files and buffers it\nnever matches.\n\n(fn &rest ATOMS)"] in-file #[128 "\300\301\302BE\207" [and (filename) in-buffer] 5 "Synonymous with `in-buffer' for buffers with an associated file.\n\nThis is like `in-buffer' but only matches in buffers with an\nassociated `buffer-file-name'.\n\n(fn &rest ATOMS)"] not #[257 "\211:\205A\211@A\302\"\262\211\205?\211\303=\2039\304\302 \"\"\211\2054\305\306\307\310\311!\312\"\313\314%\262\202=\304\"\266\203\266\203\207" [el-search--inverse-heuristic-matchers el-search--heuristic-matchers alist-get t apply make-byte-code 514 "\300\"?\207" vconcat vector [] 5 "\n\n(fn FILE-NAME-OR-BUFFER ATOMS-THUNK)"] 14 "\n\n(fn PATTERN)"] #[257 "\300\301\302\303!\"\304BB\207" [app apply-partially el-search--match-p el-search-make-matcher ((pred not))] 6 "Matches anything that is not matched by PATTERN.\n\n(fn PATTERN)"] defalias el-search--symbol-file-matcher el-search-with-short-term-memory #[514 "\301 \302!\303\304\305\306\307!\310\"\311\312%\262\211\203\206\211@\211@A\211\211;\203}!\203}\211\203|\211@\3139\203B\211 \"\210\202t:\203t@A\211\314>?\262\203^ \"\210\202r\315=\203r\211:\203r\211@\"\266\266\210A\266\202\202-\210\266A\266\202\202\210\303\304\316\306\307!\317\"\320\321%\207" [load-history make-hash-table el-search--string-matcher make-byte-code 257 "\300\301\302!!!\207" vconcat vector [file-name-sans-extension file-name-nondirectory] 5 "\n\n(fn FILE-NAME)" #[514 "\301\300!\203\210\302\303#\207" [type boundp puthash t] 6 "\n\n(fn TABLE SYMBOL)"] (autoload require) cl-defmethod "\2119\205 \301\300\"\207" [gethash] 4 "\n\n(fn SYMBOL)"] 19 "\n\n(fn CURRENT-LOAD-HISTORY REGEXP-LIKE)"] symbol-file #[257 "\300\301\302\303\304!\305\"\306\307%\207" [make-byte-code 514 "\302\303\304 !\300\"\305!\"\207" vconcat vector [load-history cl-some el-search--symbol-file-matcher copy-sequence thunk-force] 6 "\n\n(fn _ ATOMS-THUNK)"] 7 "\n\n(fn REGEXP)"] #[257 "\300\301C\302#\210\303\304!\305\306\307\310\311\312DEEDE\207" [el-search-defpattern--check-args "symbol-file" el-search-regexp-like-p make-symbol "this" and guard funcall el-search--symbol-file-matcher (copy-sequence load-history) quote] 10 "Matches any symbol whose `symbol-file' is matched by REGEXP.\n\nThis pattern type matches when the object is a symbol for that\n`symbol-file' returns a (non-nil) FILE-NAME so that\n\n (file-name-sans-extension (file-name-nondirectory FILENAME)))\n\nis matched by the `el-search-regexp-like-p' REGEXP.\n\n(fn REGEXP)"]] 4) #@22 (fn &rest REGEXPS) (defalias 'el-search--filename-matcher #[128 "\300\204\301\302\303\304\305!\306\"\307\310%\2027\311\312\"\313\301\314\315\304\305\"\316\"\317\320%!\301\302\303\304\305!\306\"\307\310%\266\202\207" [#[257 "\300!\203\n\301!\207\207" [bufferp buffer-file-name] 3 "\n\n(fn FILE-NAME-OR-BUFFER)"] make-byte-code 514 "\300!\207" vconcat vector #1=[] 4 "\n\n(fn FILE-NAME-OR-BUFFER _)" mapcar el-search--string-matcher el-search-with-short-term-memory 257 "\300!\211\205\302\303\304\305\306\307!\310\"\311\312%\301\"\207" [cl-every make-byte-code 257 "\211\300!\207" vconcat vector #1# 3 "\n\n(fn MATCHER)"] 9 "\n\n(fn FILE-NAME-OR-BUFFER)"] 11 (#$ . 101739)]) (byte-code "\303\236\211\203\211\304\241\210\202\303\304B\211\262B\210\303 \236\211\203&\211\305\241\210\202/\303\305B\211\262 B\210\303\n\236\306\203?\241\210\202H\303B\211\262\nB\210\207" [el-search--heuristic-matchers el-search--inverse-heuristic-matchers el-search--pcase-macros filename el-search--filename-matcher t #[128 "\300\301\302#\210\303\304\"\305\306\307D\310BBD\207" [el-search-defpattern--check-args "filename" el-search-regexp-like-p apply el-search--filename-matcher guard funcall quote ((current-buffer) nil)] 6 "Matches anything when the searched buffer has an associated file.\n\nWith any `el-search-regexp-like-p' REGEXPS given, the file's\nabsolute name must be matched by all of them.\n\n(fn &rest REGEXPS)"]] 4) (defvar el-search-hl-overlay nil nil) (make-variable-buffer-local 'el-search-hl-overlay) (defvar el-search-hl-other-overlays nil nil) (make-variable-buffer-local 'el-search-hl-other-overlays) #@58 Non-nil indicates we should not remove any highlighting. (defvar el-search-keep-hl nil (#$ . 103392)) #@15 (fn BOUNDS) (defalias 'el-search--scroll-sexp-in-view #[257 "\205U\301 \302\212A@b\210\303\304\305\245]!)!?\205S\306\3071O\310\311 A@\"\312\313\245]\\\314 @\"\311 A@\"\\\312\245]\314 @\"\304Z^!0\202Q\210\315\262\262\207" [el-search-fancy-scrolling window-height pos-visible-in-window-p line-end-position 3 25 #[514 "\211W\203\n\300\202 \301\302\"!\207" [- identity count-screen-lines] 6 "\n\n(fn A B)"] (beginning-of-buffer end-of-buffer) scroll-up window-end 2 4 window-start nil] 9 (#$ . 103500)]) #@25 (fn &optional BOUNDS) (defalias 'el-search-hl-sexp #[256 "\211\206`\301 D\302!\203\303\304#\210\202\"\305\303\306\"\211\307\310#\210\305\311\312#\210\313\314 !\315=\2048\316\317!\210\202(\303\320\"\210\321 \210\322!\266\323\324\325\315\211$\207" [el-search-hl-overlay el-search--end-of-sexp overlayp apply move-overlay overlay-put make-overlay face el-search-match priority 1002 frame-visible-p selected-frame t sleep-for 0.1 el-search-unhide-invisible redisplay el-search--scroll-sexp-in-view add-hook post-command-hook el-search-hl-post-command-fun] 6 (#$ . 104034)]) #@24 (fn MATCHER FROM TO) (defalias 'el-search--hl-other-matches-1 #[771 "\301\302\"\210\303\211\303\211\212b\210\211?\205O\304\305\"\262\204$\305\262\202b\210\306 \262\307\"\310\311\312#\210\310\313\314#\210\211Bb\210`Y\203K\305\262\210\202)\207" [el-search-hl-other-overlays mapc delete-overlay nil el-search--search-pattern-1 t el-search--end-of-sexp make-overlay overlay-put face el-search-other-match priority 1001] 12 (#$ . 104628)]) #@239 Holds information for displaying a match count. The value is a list of elements (SEARCH BUFFER-CHARS-MOD-TICK (POINT-MIN POINT-MAX) MATCHES) MATCHES is a stream of matches in this buffer. The other values are used to check validity. (defvar el-search--buffer-match-count-data nil (#$ . 105098)) (make-variable-buffer-local 'el-search--buffer-match-count-data) #@176 Display an x/y-style match count in the echo area. With optional argument JUST-COUNT non-nil, only return a string, don't display anything (fn &optional JUST-COUNT ANIMATOR) (defalias 'el-search-display-match-count #[512 "\204 \205\\ ?\205\\\211\3061C\307\3102>\310\311 \206<\312\203)\313\202*\314\315\316 :\203\214 @\317!@>\203\377A=\203\371 AB =\203R \210\202\365\211:\203\362\211@\320 =\203\353A\211:\203\344\211@\211:\203\334\211@e=\203\324A\211:\203\314\211@d=\203\304A\211\204\222 \210\202\300\321 \210\322\305!\210\323\324\325\326\327 p\330\331\332\333\334!\335\"\336$\262\"\337\"\"A\320 edDF\262\211B\210\202\310 \210\210\202\320 \210\210\202\330 \210\210\202\340 \210\210\202\347 \210\210\202\356 \210\210\202\365 \210\210\202\210 \210\202\210A=\203\205 A\211:\203~\211@\320 =\203wA\211:\203p\211@\211:\203h\211@e=\203`A\211:\203X\211@d=\203PA\211\204H \210\202L\n \210\210\202T \210\210\202\\ \210\210\202d \210\210\202l \210\210\202s \210\210\202z \210\210\202\201 \210\210\202\210 \210\210\202\217 \210\266`\340\307\341 \206\234``B\340\331\307 A\211A\211A\211@A\342C\343!)\262 \344!\204\345!\nAW\203\345! X\203\337\345!\262\345! U\204\337 T\262\f @\345!X\203\374T\262\345! W\203\374T\262 \345!\210\346!\262\202\263\n\331U\203\347C\2025\205, W\205,\212b\210\f\350 X)\205: U\206:\211\204B\211\204L S\262\nS\262 \211\203\317A!@>\204b\351\352\353AD\"\210A\336H\317!D>\204v\351\352\354D\"\210\211\355H\206\221\356\317!D>\204\215\351\352\354D\"\210\357H!\262\203\241\360E\202\361\313\212@b\210\362\363!\205\334\364\365!\205\334\366 \210`\367 \370`\336\"^D\371\372!\203\326:\203\326\312\373\"\210\312\374\"\262)\211;\203\364\211\313\375\376\377\307\211\201F%\"\262\202\367\201G\262#\257\262\2023\204\201H\202\201IU\203'\313\201J#\2021\313\201KT#PC\266\202\262\266\205\266\207\")0)0\202N\210\342E\201L\201M!)E\203\\\201N\201O!\210\207" [el-search--success el-search--wrap-flag el-search--search-pattern-1-do-fun inhibit-quit throw-on-input el-search--buffer-match-count-data (quit) nil #1=#:input input-pending-p apply format #[128 "\301\302\"\211\207" [el-search--last-message apply el-search--message-no-log] 4 "\n\n(fn &rest ARGS)"] #[0 "\303 \210\304\301!\210\305\306\307\310\311 p\312\313\314\315\316!\317\"\320$\262\"\321\"\"\322 edDF\262\211\211\207" [el-search--current-search el-search--buffer-match-count-data el-search--this-session-match-count-data redisplay make-local-variable seq-map cadr el-search--all-matches el-search-make-search el-search--current-pattern make-byte-code 0 "\301\300C!\207" vconcat vector [stream] 2 dont-copy buffer-chars-modified-tick] 13] #[0 "\300\207" [nil] 1] type-of buffer-chars-modified-tick redisplay make-local-variable seq-map cadr el-search--all-matches el-search-make-search el-search--current-pattern make-byte-code 0 "\301\300C!\207" vconcat vector [stream] 2 dont-copy 1 el-search--bounds-of-defun t seq-length stream-empty-p stream-first stream-rest "(No matches)" el-search--end-of-sexp signal wrong-type-argument el-search-object el-search-head 7 buffer-name 5 "%d/%d" "%s %d/%d %s" el-search-looking-at `(,_ ,_ \, _) looking-at "(" down-list line-end-position scan-sexps boundp jit-lock-mode jit-lock-fontify-now buffer-substring "(%s %%d/%%d)" truncate-string-to-width 40 cl-struct-el-search-object-tags el-search--current-search el-search--this-session-match-count-data inhibit-message cl-struct-el-search-head-tags quit-flag ellipsis "(%d/%d)" "[Not at a match] " "" "(%s/%s <-)" "(-> %s/%s)" eval (ignore nil) el-search-keyboard-quit dont-quit] 36 (#$ . 105470)]) #@219 Highlight all visible matches. Highlight all matches visible in the selected window with face `el-search-other-match' and add `el-search--after-scroll' to the local binding of `window-scroll-functions'. (fn MATCHER) (defalias 'el-search-hl-other-matches #[257 "\300\212\301 b\210\302 \210`)\303 #\210\304\305\306\307\211$\207" [el-search--hl-other-matches-1 window-start beginning-of-defun-raw window-end add-hook window-scroll-functions el-search--after-scroll t] 6 (#$ . 109286)]) #@18 (fn WIN START) (defalias 'el-search--after-scroll #[514 "\300\301 \212b\210\302 \210`)\303\304\305\"#\207" [el-search--hl-other-matches-1 el-search--current-matcher beginning-of-defun-raw window-end nil t] 8 (#$ . 109778)]) (defalias 'el-search-hl-remove #[0 "\302!\203\n\303!\210\304\305\306\307#\210\310\303 \"\210\311\312 \207" [el-search-hl-overlay el-search-hl-other-overlays overlayp delete-overlay remove-hook window-scroll-functions el-search--after-scroll t mapc nil el-search-rehide-invisible] 4]) (defvar el-search-hl-post-command-fun--last-animator nil) #@226 Do cleanup when last search has obviously been terminated. If a search is active, arrange to count matches in the background and show a match count when done. With argument STOP non-nil, force cleanup. (fn &optional STOP) (defalias 'el-search-hl-post-command-fun #[256 "\304\305\203  \202Y\306=\203\211 \202Y\307 \203 \211 \202Y\310=\203G =\2040\311\312!\3131<\314\315\n\"0\202Y\316\317\320!\"\262\202Y\321!\203R\211 \202Y ?\205Y \262\207" [this-command last-command el-search-hl-post-command-fun--last-animator el-search-keep-hl #[0 "\302 \210\303\304\305\306#\210\307\310 \210\311 \210\307\211\207" [el-search--temp-buffer-flag el-search--this-session-match-count-data el-search-hl-remove remove-hook post-command-hook el-search-hl-post-command-fun t nil el-search-kill-left-over-search-buffers el-search-close-quick-help-maybe] 4] #[0 "\300\207" [nil] 1] el-search-query-replace el-search--entering-prefix-arg-p el-search-pattern el-search--make-display-animation-function #[257 "\305\306\307\310 !\n>\204\311\312\313 D\"\210 \314H\310! >\204%\311\312\315D\"\210\211\316H\206=\310! >\204:\311\312\315D\"\210\211\317H\262#\211)\207" [inhibit-message el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags el-search--last-message nil el-search--message-no-log "%s %s" type-of signal wrong-type-argument el-search-object 2 el-search-head 7 5] 8 "\n\n(fn ICON)"] (debug error) el-search-display-match-count nil el-search--message-no-log "Error counting matches: %s" error-message-string el-search-keep-session-command-p] 8 (#$ . 110358)]) (defalias 'el-search--pending-search-p #[0 "\301>\207" [post-command-hook el-search-hl-post-command-fun] 2]) (defalias 'el-search--reset-wrap-flag #[0 " \302=\203 \303\202\f\304=?\205\305\306\307\"\210\310\211\207" [real-this-command el-search--wrap-flag forward el-search-pattern el-search-pattern-backward remove-hook post-command-hook el-search--reset-wrap-flag nil] 3]) #@14 (fn VALUE) (defalias 'el-search--set-wrap-flag #[257 "\211\203\n\301\302\303\304#\210\211\211\207" [el-search--wrap-flag add-hook post-command-hook el-search--reset-wrap-flag t] 5 (#$ . 112362)]) #@56 Skip current search buffer and continue with the next. (defalias 'el-search-continue-in-next-buffer #[0 "\300 \207" [el-search--skip-to-next-buffer] 1 (#$ . 112568) nil]) #@12 (fn POS) (defalias 'el-search--goto-char-maybe-barf #[257 "deZ\300 U\204\211eW\204dW\203\301\302!\204\303\304!\210\211b\207" [buffer-size y-or-n-p "Position not accessible in narrowed buffer - really continue?" user-error "Abort"] 3 (#$ . 112745)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias el-search-jump-to-search-head el-search-jump nil make-obsolete "el-search 1.12.5"] 4) #@547 Jump by matches. Select a match, resuming the last search if necessary. The prefix argument decides which match is selected: no prefix arg: select the (last) current match 0: go to the match following point N: go to the Nth match after `window-start' -N: go to the Nth match before `window-end' In a non-interactive call, ARG should be an integer, having the same meaning as a numeric prefix arg, or an el-search-object to make current, or the symbol t, in which case the user is prompted for an older search to resume. (fn &optional ARG) (defalias 'el-search-jump #[256 "\306 \210\211\250\203 \307p\310\"\210\311!>\204\211\312=\2032\311!>\203'\211\202+\313 \314\"\312\315\316!\210\317\n!\210\n\211\205M\311!>\204J\320\321\322D\"\210\211\323H\211\205c\311!\f>\204`\320\321\324D\"\210\211\325H\211\203\245\326!\204Y\311!\f>\204|\320\321\324D\"\210\327H\330!\311\211!>\204\222\320\321\322D\"\210\323H!\f>\204\264\320\321\324\311!>\204\256\320\321\322D\"\210\323HD\"\210\311!>\204\303\320\321\322D\"\210\211\323H\331H\312\205\340\332\333\334\335\336\337 !\340\"\341\342%\"A@)\343\344!\210\345\346!\210\203\363\347!\203\372\350\351!\210\202N\311\211!>\204 \320\321\322D\"\210\323H!\f>\204.\320\321\324\311!>\204(\320\321\322D\"\210\323HD\"\210\311!>\204=\320\321\322D\"\210\323H\211\331I\266\343\352\353!\"\210\345\323!\210\354 \266\202\271\355@\356A\"\210\357\311\n!>\204r\320\321\322\nD\"\210\n\323H!\316C\333\360\361\336\337\"\362\"\341$\216\311!>\204\227\320\321\322D\"\210\363H\311!>\204\271\364!\360W\203\271\364!\262\365 b\210\202\372\247\204\351\366\203\314\367!p=\204\343\311!\f>\204\335\320\321\324D\"\210\370H\202\344!\210\202\372\360U\203\366\346\262\202\372\371 b\210\212\372\373 \312\316\374  \247\203  \202\346%)\247\203+\211\204+\316\375\376!\210B@b\210\377\201C!\210\247\204J`=\204J\343\201D!\210\201E \210\201F\201G!\210\211\204T\354 \210\202\231\211b\210\311!\f>\204h\320\321\324D\"\210\211\370\201H`!I\266\311\n!>\204\202\320\321\322\nD\"\210\n\211\363\201H`!I\266\201I \210\201J\373 !\210\266\211\312\240\210)\266\202\271\350\201K!\210\201L \210\345\201M!\210\354 \210\266\201N \207" [cl-struct-el-search-object-tags el-search-history el-search--current-search el-search--success cl-struct-el-search-head-tags inhibit-message el-search--set-search-origin-maybe el-search-barf-if-not-search-buffer "Prefix ARG only allowed in current search's current buffer" type-of t el-search--read-history-entry el-search--get-search-description-string el-search--set-wrap-flag nil el-search-compile-pattern-in-search signal wrong-type-argument el-search-object 2 el-search-head 5 buffer-live-p 7 el-search-reset-search 8 stream-divide-with-get-rest-fun make-byte-code 257 "\301!\204\"\302!;\203\303\302!\300\"\204\"\302!\210\304!\262\202\207" vconcat vector [stream-empty-p stream-first file-equal-p stream-rest] 4 "\n\n(fn S)" message "Search head points to a killed buffer..." sit-for 1 stream-empty-p el-search--message-no-log "Restarting search..." "Restarting from %s..." file-name-nondirectory el-search-continue-search el-search-pattern pop-to-buffer copy-el-search-head 0 "\301\242?\205\304\n! >\204\305\306\307\nD\"\210\n\211\310\300I\262\207" [el-search--current-search cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 2] 3 prefix-numeric-value window-end el-search--goto-char-maybe-barf marker-buffer 6 window-start el-search--search-pattern-1 el-search--current-matcher el-search--current-heuristic-matcher el-search-hl-post-command-fun stop user-error this-command el-search-display-next-buffer-action el-search--search-origin "No match there" "No match at search head any more - going to the next match" redisplay sleep-for 1.5 copy-marker el-search-hl-sexp el-search-hl-other-matches "[Search completed - restarting]" el-search-revive-search 1.5 el-search-prefix-key-maybe-set-transient-map] 15 (#$ . 113164) "P"]) #@268 Continue or resume the current search. With prefix arg FROM-HERE given, the current search buffer should be the current buffer, and the search will be resumed from point instead of the position where the search would normally be continued. (fn &optional FROM-HERE) (defalias 'el-search-continue-search #[256 "\306 \210 =\204\307 \210\310\n!\210\311\312\n! >\204 \313\314\315\nD\"\210\n\316H!\317C\320\321\322\323\324\"\325\"\326$\216\317C\320\321\327\323\324!\330\"\316$\216\331\216p\312\n! >\204U\313\314\315\nD\"\210\n\316H\312!\f>\204g\313\314\332D\"\210\211\333H\206p\334\n!\203\262p=\203\226\312!\f>\204\212\313\314\332D\"\210\211\335\336`!I\266\202\262\211\203\252\337!\203\252\340\341\342!\"\210\202\262\211\203\262\340\343!\210\317\344 \345 \312!\f>\204\307\313\314\332D\"\210\333H\203r\312!\f>\204\336\313\314\332D\"\210\333Hq\210\212\346\312!\f>\204\366\313\314\332D\"\210\335H!\210\347\350\317$*\211\262\204\334\n!\210\202\267\204R \2045 \203*\212eb\210\347\350\317$)\2045\351\352!\210\353\354!\210\202\355\356!\210\357\360!@\351\203K\361\362\363!\"\202L\364!\266\202\317r\312!\f>\204e\313\314\332D\"\210\333Hq\210b\210`\262>\203\254?\317?\365 \366!\312 !\f>\204\220\313\314\332 D\"\210\211\333I\266\211>\204\252r\211q\210\367\370!\210\3508)\266)\371\312!\f>\204\277\313\314\332 D\"\210\333H@\"\210\346!\266\312\n! >\204\333\313\314\315\nD\"\210\n\211\372\336`!I\266\312!\f>\204\364\313\314\332D\"\210\211\335\336`!I\266\373 \210 =\203 \203p=\204\374!\210\350\266\375 \266\203)\350\240\210)\262\350\240\210)\262\207" [last-command this-command el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags el-search--success el-search--set-this-command-refresh-message-maybe el-search--set-search-origin-maybe el-search-compile-pattern-in-search copy-el-search-head type-of signal wrong-type-argument el-search-object 2 nil make-byte-code 0 "\301\242?\205\304\n! >\204\305\306\307\nD\"\210\n\211\310\300I\262\207" vconcat vector [el-search--current-search cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 2] 4 "\300\242?\205 \301\302!\207" [el-search-hl-post-command-fun stop] #[0 "\300 \207" [el-search-kill-left-over-search-buffers] 1] el-search-head 5 el-search--next-buffer 6 copy-marker buffer-live-p user-error "Please resume from buffer %s" buffer-name "Search head points to a killed buffer" el-search--current-matcher el-search--current-heuristic-matcher el-search--goto-char-maybe-barf el-search--search-pattern-1 t el-search--message-no-log "No matches" sit-for 0.7 el-search--set-wrap-flag forward where-is-internal el-search-pattern format "No (more) matches - Hit %s to wrap search" key-description "No (more) matches" buffer-list find-file-noselect make-local-variable el-search--temp-buffer-flag pop-to-buffer 3 el-search-hl-sexp el-search-hl-other-matches el-search-prefix-key-maybe-set-transient-map el-search--temp-file-buffer-flag buffer-file-name el-search-display-next-buffer-action] 18 (#$ . 117236) "P"]) #@79 Skip all subsequent matches in files located under DIRECTORY. (fn DIRECTORY) (defalias 'el-search-skip-directory #[257 "\300\301\302\303\304\305!\306\"\307\310%!\210\311 \207" [el-search--skip-to-next-buffer make-byte-code 257 "\302!\206\303\304\300\"\305\306\307#)\266\203\207" vconcat vector [inhibit-changing-match-data bufferp "\\`\\.\\." file-relative-name nil t string-match] 8 "\n\n(fn BUFFER-OR-FILE-NAME)" el-search-prefix-key-maybe-set-transient-map] 8 (#$ . 120380) (byte-code "\304\305\306\307\211\205\310! >\204\311\312\313D\"\210\211\314H\211\2051\310!\n>\204.\311\312\315D\"\210\211\316H\211\203;\317!\202< \266\203\320$!C\207" [el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags default-directory expand-file-name read-directory-name "Skip all files under directory: " nil type-of signal wrong-type-argument el-search-object 2 el-search-head 7 file-name-directory t] 10)]) #@45 (fn &optional PROMPT DISPLAY-MATCH-COUNT) (defalias 'el-search-pattern--interactive #[512 "\304 \204 =\203\n\204 \203\305 \202\306\"C\207" [this-command last-command el-search--success el-search--wrap-flag el-search--pending-search-p el-search--current-pattern el-search-read-pattern-for-interactive] 5 (#$ . 121337)]) #@1022 Start new or resume last elisp buffer search. Search current buffer for expressions that are matched by PATTERN. When called from the current search's current search buffer, continue that search from point. Otherwise or when a new PATTERN is given, start a new single-buffer search from point. With prefix arg, generally resume the last search. With prefix arg 0, restart it. With C-u C-u or negative prefix arg, prompt for an older search to resume. The minibuffer is put into `emacs-lisp-mode' for reading the input pattern, and there are some special key bindings: \\[newline] inserts a newline, and and are unbound in the local map to let you move the cursor vertically - see `el-search-read-expression-map' for details. PATTERN is an "el-search" pattern - which means, either a `pcase' pattern or complying with one of the additional pattern types defined with `el-search-defpattern'. See `el-search-defined-patterns' for a list of defined patterns. (fn PATTERN) (defalias 'el-search-pattern #[257 "\304\2035\305\306!\2035\307!\310 \210\311\232\204\211\312W\203#\313\314!\2020\211\312U\203. \2020\313 \262\202\211 \315=\203L\316\317!\210\320\321!\210\322\323!\210\211 \202\211\324 \204^\n =\203i\325 =\203i\326\317\314\"\210\327\330!\202\211p\331\332\312\333\334\335!\336\"\337$\332\340\341\334\335!\342\"\343\344%\330$\262\207" [current-prefix-arg el-search--wrap-flag this-command last-command #[0 "\302!\210\303\304 \207" [el-search--current-search el-search--success el-search-reset-search nil el-search-continue-search] 2] called-interactively-p any prefix-numeric-value el-search--set-search-origin-maybe (16) 0 el-search-jump t forward el-search--set-wrap-flag nil el-search--message-no-log "[Wrapped search]" sit-for 0.7 el-search--pending-search-p el-search--current-pattern el-search--skip-expression el-search-continue-search from-here el-search-setup-search make-byte-code "\301\300C!\207" vconcat vector [stream] 2 257 "\302! >\204\303\304\305D\"\210\211\306\307H\236\300\203 \241\202-\307\306B\211\262\307HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object is-single-buffer 5] 9 "\n\n(fn SEARCH)"] 12 (#$ . 121679) (byte-code "\203C\207\301\302\303\"\207" [current-prefix-arg el-search-pattern--interactive nil display-match-count] 3)]) (byte-code "\300\301\302\303#\304\305\301\"\207" [function-put el-search-pattern interactive-only el-search-forward defalias el-search] 4) #@241 Execute BODY unless no match for current search in current buffer. In this case, ignore BODY and emit a message saying "No matches". The return value is the result of the last form in BODY if it is executed, and nil else. (fn &rest BODY) (defalias 'el-search--unless-no-buffer-match '(macro . #[128 "\300\301\302BBB\207" [if (not (or el-search--success (save-excursion (goto-char (point-min)) (el-search--search-pattern-1 (el-search--current-matcher) t nil (el-search--current-heuristic-matcher))))) (progn (ding) (el-search--message-no-log "No matches") (sit-for 0.7) nil)] 5 (#$ . 124223)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put el-search--unless-no-buffer-match lisp-indent-function 0 put edebug-form-spec (body)] 5) #@124 Go to the first of this buffer's matches. With prefix ARG, go to the last match in the current buffer. (fn &optional ARG) (defalias 'el-search-from-beginning #[256 "\304 \210\305 \210\211\203 \306 \207\204.\212eb\210\307\310 \311\312\313 $)\204.\314 \210\315\316!\210\317\320!\210\312\207\321\211 !\n>\204>\322\323\324 D\"\210 \325H! >\204_\322\323\326\321 !\n>\204Y\322\323\324 D\"\210 \325HD\"\210\321 !\n>\204n\322\323\324 D\"\210 \325H\211\327eI\266\330 \207" [el-search--success el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags el-search--set-search-origin-maybe el-search-barf-if-not-search-buffer el-search-last-buffer-match el-search--search-pattern-1 el-search--current-matcher t nil el-search--current-heuristic-matcher ding el-search--message-no-log "No matches" sit-for 0.7 type-of signal wrong-type-argument el-search-object 2 el-search-head 6 el-search-continue-search] 8 (#$ . 124982) "P"]) #@42 Go to the last of this buffer's matches. (defalias 'el-search-last-buffer-match #[0 "\301 \210\302 \210\204'\212eb\210\303\304 \305\306\307 $)\204'\310 \210\311\312!\210\313\314!\210\306\207db\210\315\316\317 \"\207" [el-search--success el-search--set-search-origin-maybe el-search-barf-if-not-search-buffer el-search--search-pattern-1 el-search--current-matcher t nil el-search--current-heuristic-matcher ding el-search--message-no-log "No matches" sit-for 0.7 funcall-interactively el-search-pattern-backward el-search--current-pattern] 5 (#$ . 125943) nil]) #@335 Like `el-search-backward' but accepts a matcher as first argument. In addition, a HEURISTIC-MATCHER corresponding to the MATCHER can be specified as fourth argument, and COUNT becomes the fifth argument. This function is the counterpart of `el-search--search-pattern-1'. (fn MATCHER &optional NOERROR BOUND HEURISTIC-MATCHER COUNT) (defalias 'el-search--search-backward-1 #[1281 "\300\301!\204?\2053\302\303\304 \"\207\211\203!\211\250\204!\305\306\307D\"\207\211\2034\211\310W\2034\311[%\207\203B`W\203B\302\312!\207`\313\203\227\310U\203R`\2021\3142\206\310W\205\205\315\316$\204p\317\314\320\"\210\202V\321U\203~\317\314\316\"\210\202VS\262\202V0\203\215`\2021\211#\2021\320\211\211\204\320`\322\323 !\206\252\324`\325\"\320\203\364\320b\210\326!\262 \203\315\fW\203\315\316\262\316\262\320\262\211\204\363\311\316$\203\363`Y\203\350\316\262\202\315`\262\327\320\316\"\210\202\315\210\204\203b\210\202\316\262\202\316\262\262\266\202\231\210\211\203(\203#\211W\204(\211b\202/#\262\266\202\207" [derived-mode-p emacs-lisp-mode error "Buffer not in emacs-lisp-mode: %s" buffer-name signal wrong-type-argument integerp 0 el-search--search-pattern-1 "Invalid search bound (wrong side of point)" #[771 "\300>\204\206e\202\211b\210?\205\301\302\303\"\207" [(nil t) signal search-failed nil] 6 "\n\n(fn NOERROR BOUND OPOINT)"] success el-search--search-backward-1 t throw nil 1 syntax-ppss-toplevel-pos syntax-ppss scan-sexps -1 el-search--end-of-sexp el-search--skip-expression] 19 (#$ . 126514)]) #@404 Search backward for el-search PATTERN from point. Set point to the beginning of the occurrence found and return point. This function is almost identical to `el-search-forward', except that by default it searches backward instead of forward, and the sign of COUNT also indicates exactly the opposite searching direction. See `el-search-forward' for details. (fn PATTERN &optional BOUND NOERROR COUNT) (defalias 'el-search-backward #[1025 "\300\301!\302!%\207" [el-search--search-backward-1 el-search-make-matcher el-search-heuristic-matcher] 10 (#$ . 128137)]) #@132 Search the current buffer backward for matches of PATTERN. See the command `el-search-pattern' for more information. (fn PATTERN) (defalias 'el-search-pattern-backward #[257 "\211\306 =\203\307!\210\310 \210\2025p\311\312\313\314\315\316!\317\"\320$\321\312\322\323\315\316 !\324\"\325\326%$\266\327!\210\330 \210 \331=\203M\332\333!\210\334\335!\210\336\337!\210db\210\340\341 \342\333\343 $\211\203\327\211b\210\344\211!\n>\204l\345\346\347D\"\210\320H! >\204\215\345\346\350\344!\n>\204\207\345\346\347D\"\210\320HD\"\210\344!\n>\204\234\345\346\347D\"\210\320H\211\351\352`!I\266\344!\n>\204\266\345\346\347D\"\210\211\353\352`!I\266\354 \210\f\355=\203\314 \204\321\356\341 !\210\342\211\202 \204\372\212eb\210\357\341 \342\333\343 $)\204\372\360 \210\334\361!\210\336\362!\210\333\202\363\364!@\334\203\f\365\366\367!\"\202 \370!\266\336\371!\210\332\331!\207" [el-search--current-search el-search--wrap-flag cl-struct-el-search-object-tags cl-struct-el-search-head-tags last-command el-search--success el-search--current-pattern el-search-compile-pattern-in-search el-search-prefix-key-maybe-set-transient-map el-search-setup-search-1 make-byte-code 0 "\301\300C!\207" vconcat vector [stream] 2 from-here 257 "\302! >\204\303\304\305D\"\210\211\306\307H\236\300\203 \241\202-\307\306B\211\262\307HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object is-single-buffer 5] 9 "\n\n(fn SEARCH)" el-search--next-buffer el-search--set-this-command-refresh-message-maybe backward el-search--set-wrap-flag nil el-search--message-no-log "[Wrapped backward search]" sit-for 0.7 el-search--search-backward-1 el-search--current-matcher t el-search--current-heuristic-matcher type-of signal wrong-type-argument el-search-object el-search-head 6 copy-marker 3 el-search-hl-sexp el-search-pattern el-search-hl-other-matches el-search--search-pattern-1 ding "No matches" 0.7 where-is-internal el-search-pattern-backward format "No (more) match; hit %s to wrap search" key-description "No (more) match" 0.7] 12 (#$ . 128713) (byte-code "\300\301\302\"\207" [el-search-pattern--interactive nil display-match-count] 3)]) (byte-code "\300\301\302\303#\304\305\301\306#\210\307\305\301\310#\210\304\311\301\306#\210\307\311\301\312#\207" [function-put el-search-pattern-backward interactive-only el-search-backward defalias el-search-previous-match nil make-obsolete "el-search 1.3" el-search-pattern-backwards "el-search 1.6.7"] 5) #@210 Prepare to el-search the `sexp-at-point'. Grab the `sexp-at-point' SEXP and prepare to el-search the current buffer for other matches of 'SEXP. Use the normal search commands to seize the search. (fn SEXP) (defalias 'el-search-this-sexp #[257 "\305!\306\307P\310\"\210p\311\312D\313\314\315\316\317!\320\"\321$\322\313\323\324\316\317 !\325\"\326\327%$\266\330!\210\331\211! >\204@\332\333\334D\"\210\321H!\n>\204a\332\333\335\331! >\204[\332\333\334D\"\210\321HD\"\210\331! >\204p\332\333\334D\"\210\321H\211\336\337`!I\266\340\341\342\343 !\210\344\345\346\341\211$\210\347\350\"\207" [el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags this-command el-search--success el-search--pp-to-string el-search--pushnew-to-history "'" el-search-pattern-history el-search-setup-search-1 quote make-byte-code 0 "\301\300C!\207" vconcat vector [stream] 2 from-here 257 "\302! >\204\303\304\305D\"\210\211\306\307H\236\300\203 \241\202-\307\306B\211\262\307HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object is-single-buffer 5] 9 "\n\n(fn SEARCH)" el-search--next-buffer type-of signal wrong-type-argument el-search-object el-search-head 6 copy-marker el-search-pattern t el-search-hl-other-matches el-search--current-matcher add-hook post-command-hook el-search-hl-post-command-fun el-search--message-no-log "%s"] 13 (#$ . 131238) (byte-code "\300\301!\204\f\302\303!\202<\304\305!\306\203,\3071#\310!\211\26290\202%\210\306\203,\211\202:\304\311!\2037\312 \202:\302\313!\266\202C\207" [derived-mode-p emacs-lisp-mode user-error "Current buffer not in `emacs-lisp-mode'" thing-at-point symbol nil (invalid-read-syntax) el-search-read sexp sexp-at-point "No sexp at point"] 4)]) #@54 Jump to the first match starting after `window-end'. (defalias 'el-search-scroll-down #[0 "\300 \210\301 \210`\302 b\210\303\304 \305\306\307 $\203\310\311!\202&\211b\210\312\313!\210\314\315!\207" [el-search-barf-if-not-search-buffer el-search--set-this-command-refresh-message-maybe window-end el-search--search-pattern-1 el-search--current-matcher t nil el-search--current-heuristic-matcher el-search-jump 0 el-search--message-no-log "[No more matches after here]" sit-for 1] 6 (#$ . 133047) nil]) #@60 Jump to the hindmost match starting before `window-start'. (defalias 'el-search-scroll-up #[0 "\300 \210\301 \210`\302 b\210\303\304 \305\306\307 $\203\310\311!\202&\211b\210\312\313!\210\314\315!\207" [el-search-barf-if-not-search-buffer el-search--set-this-command-refresh-message-maybe window-start el-search--search-backward-1 el-search--current-matcher t nil el-search--current-heuristic-matcher el-search-jump 0 el-search--message-no-log "[No more matches before here]" sit-for 1] 6 (#$ . 133557) nil]) (defvar el-search-occur-search-object nil nil) (make-variable-buffer-local 'el-search-occur-search-object) (defvar el-search-occur--outline-visible t) #@16 (fn &rest _) (defalias 'el-search-occur-revert-function #[128 "\302\303\"\210 ?\205\f\304 \207" [el-search-occur-search-object el-search-occur--outline-visible el-search--occur t outline-hide-leaves] 4 (#$ . 134226)]) #@122 Change the search pattern associated with this *El Occur* buffer. Prompt for a new pattern and revert. (fn NEW-PATTERN) (defalias 'el-search-edit-occur-pattern #[257 "\302! >\204\303\304\305D\"\210\211\306I\266\307!\210\310 \207" [el-search-occur-search-object cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object 1 el-search-compile-pattern-in-search revert-buffer] 5 (#$ . 134455) (byte-code "\303\304! >\204\305\306\307D\"\210\310H!\311\312!)C\207" [el-search-occur-search-object cl-struct-el-search-object-tags el-search--initial-mb-contents el-search--pp-to-string type-of signal wrong-type-argument el-search-object 1 el-search-read-pattern-for-interactive "New pattern: "] 5)]) (defvar el-search-occur-match-ov-prop 'el-occur-match-data) (defvar el-search-occur-headline-prop 'el-search-occur-headline) (defalias 'el-search-occur-jump-to-match #[0 "\301`!\203 \302 \207\303`\"\211:\205I\211@A\211:\205G\211@A\211:\205E\211@A\211:\205C\211A\211?\205A\206=\211D\266\203\262\266\202\266\202\266\202\262\211\203V\304\305\"\202\374\3062\374`\307\211\212\310 \211\204l\311\306\312\"\210\202\202\211:\203\202\211@A\211`W\204\200\211b\210\266\210`\262\204\247\313\"\211\262\203\247\211edD>\206\242\314\315\316!\"\262\202\206)\317\"C\212]b\210n)\204\276\211\242S\240\210W\203\312\211\242[\240\210\303\"\211@A\211@A\211@\211\305\206\342\307\320\321\322\323\324\n\"\325\"\326$\307$\266\203\266\206\262\266\2030\207" [el-search-occur-match-ov-prop button-at push-button get-char-property apply el-search--occur-button-action nothing-here nil el-search--bounds-of-defun throw t next-single-char-property-change cl-some #[257 "\301\"\207" [el-search-occur-match-ov-prop overlay-get] 4 "\n\n(fn OV)"] overlays-at count-lines make-byte-code 0 "\301b\210\302 \210\300\242y\207" vconcat vector [beginning-of-line] 1] 24 nil nil]) #@99 (fn FILENAME-OR-BUFFER &optional MATCH-POS DO-FUN (DISPLAY-BUFFER-ACTION nil ACTION-SPECIFIED)) (defalias 'el-search--occur-button-action #[897 "\211\205\306\211A\262\242\203\307\310\311\312G\\D\"\210\313!\203%\2025\314!\2031 \2025\315!\316! >\204D\307\317\320D\"\210\321H\322\323\203S\202] \203\\\324\202]\n\"!r\325\326\327\330\331!\332\"\333$\216\334@\335\"\210\203\241deZ\336 U\204\235eW\204\216dV\203\235\337\340!\203\231~\210\202\235\341\342!\210b\210\343\325\326\344\330\331 !\345\"\333$\346\325\347\350\330\331 !\351\"\352\353%$\210\354 !\210\355\306\203\322\356 \210\357 \210\360\361 !\210\362\363\364\306\211$\210\205\346 *\262\266\202\207" [el-search-occur-search-object cl-struct-el-search-object-tags el-search-display-buffer-popup-action el-search--current-search this-command el-search--success t signal wrong-number-of-arguments el-search--occur-button-action 4 bufferp functionp find-file-noselect type-of wrong-type-argument el-search-object 1 internal--before-with-selected-window display-buffer ((display-buffer-pop-up-window)) make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord buffer-size y-or-n-p "Widen buffer? " user-error "Can't jump to match" el-search-setup-search-1 "\301\300C!\207" [stream] from-here 257 "\302! >\204\303\304\305D\"\210\211\306\307H\236\300\203 \241\202-\307\306B\211\262\307HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object is-single-buffer 5] 9 "\n\n(fn SEARCH)" el-search--next-buffer el-search-pattern el-search-hl-sexp el-search-display-match-count el-search-hl-other-matches el-search--current-matcher add-hook post-command-hook el-search-hl-post-command-fun] 19 (#$ . 136394)]) #@27 (fn &optional BACKWARD) (defalias 'el-search-occur--next-match #[256 "`\301\302\203 \303\202\f\304\"\211\262\203)=\204)\211\262\203)\211\"\203\210ed\301E>\203F\305\306\203=\307\202>\310\"\210\311\312!\202Zb\210\212\313 \210)\314 \210\315`\316 D!\210\317 \207" [el-search-occur-match-ov-prop nil #[514 "\301\"\211\205\203e\202dU?\205\211\301S\"=?\207" [el-search-occur-match-ov-prop get-char-property] 7 "\n\n(fn BACKWARD POS)"] previous-single-char-property-change next-single-char-property-change el-search--message-no-log "No match %s this position" "before" "after" sit-for 1.5 hs-show-block redisplay el-search--scroll-sexp-in-view el-search--end-of-sexp el-search-occur--show-match-count] 7 (#$ . 138216)]) (defvar el-search-occur--total-matches nil) (defalias 'el-search-occur--show-match-count #[0 "\302`\"\211@A\211@A\211@A\211@A\n\303\304 \203(\305\306 \"\202)\307#\266\204\207" [el-search-occur-match-ov-prop el-search-occur--total-matches get-char-property el-search--message-no-log "%d/%s" format "%d" "???"] 19]) #@31 Move point to the next match. (defalias 'el-search-occur-next-match #[0 "\300 \207" [el-search-occur--next-match] 1 (#$ . 139301) nil]) #@35 Move point to the previous match. (defalias 'el-search-occur-previous-match #[0 "\300\301!\207" [el-search-occur--next-match backward] 2 (#$ . 139443) nil]) #@50 Cycle between showing an outline and everything. (defalias 'el-search-occur-cycle #[0 "\212eb\210\203\301 \210\202\302 \210)?\211\207" [el-search-occur--outline-visible outline-hide-leaves outline-show-all] 2 (#$ . 139606) nil]) #@42 Hide or unhide heading or sexp at point. (defalias 'el-search-occur-tab-command #[0 "\300\301 \204\n\302\202 \303!\207" [call-interactively outline-on-heading-p hs-toggle-hiding outline-toggle-children] 2 (#$ . 139848) nil]) (defvar el-search-occur-mode-map-1 (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\311#\210\301\315\313#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\323#\210\301\325\326#\210\211\207" [make-sparse-keymap define-key " " el-search-occur-tab-command " " el-search-occur-jump-to-match [backtab] el-search-occur-cycle [112] el-search-occur-previous-match [110] el-search-occur-next-match [114] [115] [101] el-search-edit-occur-pattern [99 110] el-search-occur-no-context [99 100] el-search-occur-defun-context [99 97] [99 115] el-search-occur-some-context] 5)) (defvar el-search-occur-mode-map (byte-code "\303!\304\305 \n\"\"\210\211\207" [el-search-occur-mode-map-1 special-mode-map emacs-lisp-mode-map copy-keymap set-keymap-parent make-composed-keymap] 6)) (byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable el-search-occur-match-markers funcall function #[0 "\300\301D\207" ["--> " " <--"] 2] "Whether to mark matches in copied or saved text in *El Occur*.\n\nWhen non-nil, should be a list of two strings (BEFORE-MARKER\nAFTER-MARKER). When large parts of an *El Occur* buffer are\ncopied or the buffer is saved to a file, all matches are silently\nsurrounded with these markers. This is useful if you want to\nsend the buffer contents to someone else. \"Large\" means that\nthe copied text includes buffer or file headlines, so this will\nnot get in your way if you only want to copy single expressions\nfrom an *El Occur* buffer.\n\nWhen nil, all such treatment is disabled." :type (choice (const :tag "Off" nil) (list :tag "Match Text Markers" (string :tag "Before-Marker String") (string :tag "After-Marker String")))] 6) #@33 (fn BEG END &optional DELETE) (defalias 'el-search-occur-filter-buffer-substring #[770 "\211\204\203\303 \304$=\203\305#\207\304\211\212b\262`X\204Z\303`\n\304$b\210\211`{B\262\306`\n\"\203C@\202P`X\203M\307\202PA@B\262`\262\202!)\310\311\237\"\207" [el-search-occur-match-markers el-search-occur-headline-prop el-search-occur-match-ov-prop next-single-char-property-change nil buffer-substring--filter get-char-property "" apply concat] 10 (#$ . 141834)]) #@23 (fn &optional FILE) (defalias 'el-search-occur-write-file #[256 "\211\206\214~\210\301ed\")\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216c\210\313ed\314\315%\210*\210\316\314!\210\315\207" [buffer-file-name filter-buffer-substring generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 write-region nil t set-buffer-modified-p] 10 (#$ . 142333)]) (defvar el-search-occur-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [el-search-occur-mode-hook variable-documentation put "Hook run after entering El-Occur mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp el-search-occur-mode-map definition-name el-search-occur-mode] 4) (defvar el-search-occur-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [el-search-occur-mode-abbrev-table el-search-occur-mode-map variable-documentation put purecopy "Keymap for `el-search-occur-mode'." boundp el-search-occur-mode-syntax-table definition-name el-search-occur-mode (lambda (#1=#:def-tmp-var) (defvar el-search-occur-mode-syntax-table #1#)) make-syntax-table "Syntax table for `el-search-occur-mode'." (lambda (#1#) (defvar el-search-occur-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `el-search-occur-mode'." derived-mode-parent emacs-lisp-mode] 5) #@414 Major mode for El-Occur buffers. This mode provides the following key bindings: \{el-search-occur-mode-map-1} The mode's keymap inherits from `emacs-lisp-mode-map' and in addition from `special-mode-map': \{special-mode-map} In addition to any hooks its parent mode `emacs-lisp-mode' might have run, this mode runs the hook `el-search-occur-mode-hook', as the final or penultimate step during initialization. (defalias 'el-search-occur-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R (=\204R\326 \325(C#\210\327 !\210\330\f!\210 (\306\331!\210\332\307)\306\333!\210\334\335\336!\210\337*\340\336!\210\341\342\343\334\307$\210\306\344!\210\345$)\346\347!\207" [delay-mode-hooks major-mode mode-name el-search-occur-mode-map el-search-occur-mode-syntax-table el-search-occur-mode-abbrev-table make-local-variable t emacs-lisp-mode el-search-occur-mode "El-Occur" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table revert-buffer-function el-search-occur-revert-function hs-hide-comments-when-hiding-all nil hs-minor-mode 1 "^;;; \\*+" outline-minor-mode add-hook write-contents-functions el-search-occur-write-file filter-buffer-substring-function el-search-occur-filter-buffer-substring run-mode-hooks el-search-occur-mode-hook local-abbrev-table buffer-read-only outline-regexp] 5 (#$ . 144042) nil]) (put 'el-search-occur-mode 'mode-class 'special) #@18 (fn MATCH-BEG) (defalias 'el-search-occur-get-some-context #[257 "\300\301\302!\203!\211!\262\203!!\203!\211!\206\262\206&\2032\303\304\305#\2025\306!B\207" [nil #[257 "\300\212b\210\301p!`\262)\211:\204\302\202T\211:\203G\211@\211:\2045A\211\203/Z\303W\2050\302\262\202BZ\303W\203A\302\202B\300\262\202TZ\303W\203S\302\202T\300\262\207" [nil el-search-read t 100] 7 "\n\n(fn START)"] #[257 "\3001#\301\302\303#\211\205\211\206`Sf\304=\203\211S\202\211\2620\207\210\305\207" [(scan-error) scan-lists -1 1 96 nil] 5 "\n\n(fn POS)"] scan-lists 1 0 el-search--end-of-sexp] 9 (#$ . 145715)]) #@18 (fn MATCH-BEG) (defalias 'el-search-occur-get-defun-context #[257 "\301!\212\211@b\210\302\211\204/o\204/\303y\210\304\305\306!)\262\203)\211`\240\266\202 \305\262\202 \210)\211\207" [inhibit-changing-match-data el-search--bounds-of-defun nil -1 "[[:space:]]*;" t looking-at] 6 (#$ . 146370)]) #@18 (fn MATCH-BEG) (defalias 'el-search-occur-get-null-context #[257 "\211\300!B\207" [el-search--end-of-sexp] 4 (#$ . 146684)]) #@69 Function determining amount of context shown in *El Occur* buffers. (defvar el-search-get-occur-context-function 'el-search-occur-get-some-context (#$ . 146818)) #@52 Show complete top-level expressions in *El Occur*. (defalias 'el-search-occur-defun-context #[0 "\301\302 \207" [el-search-get-occur-context-function el-search-occur-get-defun-context revert-buffer] 1 (#$ . 146986) nil]) #@47 Show no context around matches in *El Occur*. (defalias 'el-search-occur-no-context #[0 "\301\302 \207" [el-search-get-occur-context-function el-search-occur-get-null-context revert-buffer] 1 (#$ . 147214) nil]) #@49 Show some context around matches in *El Occur*. (defalias 'el-search-occur-some-context #[0 "\301\302 \207" [el-search-get-occur-context-function el-search-occur-get-some-context revert-buffer] 1 (#$ . 147433) nil]) #@32 (fn SEARCH &optional BUFFER) (defalias 'el-search--occur #[513 "\306\216\211\206 \307\310!\311\312\301!\210\313\314\203\315 \202\316!!r\317\320\321\322\323!\324\"\325$\216\326@\327\"\210\330 \203A\331 \210\332 \210\202L\333\303\334\330#\210\335 \210\336\337\340 \341!#c\210\3421\305\3431\273`\320C\344\345!\f>\204t\346\347\350 D\"\210\351H \352\"\313\211\320\211\211\353!\354!\262\211\262\203A\355!\262\211\\\262\353!\211@A\211A\211@Ar\211q\210 )C\211\242\203\315\211\242\356!\317\357\360\322\323\"\361\"\325\362%\240\266\203\331 T\262\f\202\336\nT\262 \363c\210\364\206\352\336\365\"\366\317\367\370\322\323\n\n\n#\371\"\372\373%@\330%\210\336\374\211\375V\203\376\202\377#c\210\201G\317\367\201H\322\323\"\201I\"\201J\201K%\"\201L!\204<\353!\211@\211A\211@A\211AA\211A\211@\211@AA\n`\313rq\210b\210\201M @\320W\203t\201N\375#\202x\201O \262)\211Crq\210\353!\211:\205\355\211A\211:\205\353\211A\211:\205\351\211@\211:\205\347\211@V\205\345A\211?\205\343\330\353\n!\210\354\n!\262\nW\203\341\n\240\210W\203\341\262\201O!\206\337\262\262\262\262\262\262\262\262\204\204)\201P\317\367\201Q\322\323!\361\"\325\373%\"@\262\211\242\262\266\201R\336\201Srq\210\201T!)\"c\210`\262\313\201L!\204\353!\354!\262\211@\211A\211@A\211AA\211@A\211A\201U$#\210`\262 %%%%\262\353!\211:\205\211@\211:\205\211A\211:\205\211@V\205A\211:\205\377\211A\211?\205\375A\211:\205\373\211@A\211:\205\371\211A\211?\205\367Z\\\201V\201W\211r4q\210\201O!)\\\313\201X$A2\242\206\34036F#\266\353!\210\354!\262\330\266\202\262\266\202\262\262\262\262\262\262\262\204m\266\f\202,rq\210\201Y`\201O\n!\")c\266\330\313BC\201Z`\"\210*\201[c\266\2020\266\n\202\200\212b\210\211D\211\320U\203U\201\\\202\222\336\201]\"\320U?\205h\336\201^\"\320U\206q\320U?\205x\201_\320U?\205\206\336\201`\"\320U?\205\220\201a\260c\210)eb\210\201b\201E!\205\264E\205\264F\201c=\205\264\201d \266\21000\202\3240\201ec\262\202\324\201f\201g!\201h\261\262\210\201i\377!\210\201j\313!+\262\262)\207" [this-command el-search--temp-buffer-flag inhibit-read-only el-search-occur-search-object cl-struct-el-search-object-tags el-search--get-buffer-fun #[0 "\300 \207" [el-search-kill-left-over-search-buffers] 1] generate-new-buffer "*El Occur*" el-search-pattern make-local-variable nil internal--before-with-selected-window selected-window display-buffer make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord t erase-buffer delete-all-overlays put permanent-local el-search-occur-mode format ";;; * %s -*- mode: el-search-occur -*-\n\n;;; ** %s\n\n" current-time-string el-search--get-search-description-string (debug error) (debug quit) stream-partition type-of signal wrong-type-argument el-search-object 4 #[514 "@@=\205\3008\3008\232\207" [2] 5 "\n\n(fn THIS PREV)"] stream-first stream-rest seq-length buffer-name 256 "\211\203\301\207\300 \207" [] "\n\n(fn &optional ARG)" "\n\n;;; *** " insert-button "%S" action 257 "\303\302\242\206 \300\206 \301!\207" [el-search--occur-button-action] 3 "\n\n(fn _)" " (%d match%s)\n" 1 "es" "" el-search-occur-headline-prop el-search-occur-match-ov-prop message-log-max inhibit-message el-search-occur--total-matches which-function-mode el-search-get-occur-context-function seq-map "\211A\211@A\211Ar\301q\210\211\300\211\242T\240\304\212 !*E)\266\202\207" [open-paren-in-column-0-is-defun-start el-search-get-occur-context-function nil] 11 "\n\n(fn ARG0)" stream-empty-p syntax-ppss scan-lists el-search--end-of-sexp stream-divide-with-get-rest-fun "\300\242\207" #[1285 "`rq\210\301b\302 b\")c\210\303`\304\305$\306\307\310#\210\306\242\206& F#\266rq\210`)\207" [el-search-occur-match-ov-prop buffer-substring-no-properties el-search--end-of-sexp make-overlay nil fr-ad overlay-put face el-search-occur-match] 14 "\n\n(fn FILE BUFFER GET-BUFFER MATCH-BEG NBR)"] "\n;;;; Line %d\n" line-number-at-pos insert-buffer-substring overlay-put make-overlay front-advance buffer-substring-no-properties indent-region "\n" ";;; * No matches" ";;; ** %d matches in " "%d files" " and " "%d buffers" ":\n\n" boundp el-search-occur-get-defun-context which-func-ff-hook "\n\n;;; * Aborted" "\n\n;;; * Error: " error-message-string "\n;;; If you think this error could be caused by a bug in\n;;; el-search, please make a bug report to the maintainer.\n;;; Thanks!" el-search--message-no-log set-buffer-modified-p] 75 (#$ . 147656)]) #@964 Display an occur-like overview of matches of the current search. Buffers and files are separated by headlines. Matches are highlighted with face `el-search-match'. For short matches, some context is shown, and nearby matches are grouped. \ Clicking on a file or buffer name displays it in a different window and goes to the first match. \[el-search-occur-jump-to-match] on a match displays that match in its buffer. \[revert-buffer] refreshes the buffer and restarts the search. \[hs-toggle-hiding] folds and unfolds expressions, while \[el-search-occur-cycle] folds and unfolds buffer and file sections like in `org-mode'. At the beginning of a headline, toggles folding the following section. Hit \[quit-window] to leave without killing the buffer. The occur buffer is in `el-search-occur-mode' that is derived from `emacs-lisp-mode' and `special-mode'. In addition it makes use of `hs-minor-mode' and `orgstruct-mode'. (defalias 'el-search-occur #[0 "\302\303!\210\203\304!\210\202\305\306!\210\307\211\207" [el-search--current-search this-command el-search--message-no-log "Preparing occur..." el-search--occur user-error "No active search" el-search-pattern] 2 (#$ . 152378) nil]) (defalias 'el-search-set-occur-flag-exit-minibuffer #[0 "\301\302 \207" [el-search-occur-flag t exit-minibuffer] 1 nil nil]) #@58 Search all live elisp buffers for PATTERN. (fn PATTERN) (defalias 'el-search-buffers #[257 "\300\301\302#\207" [el-search-setup-search #[0 "\300\301\302\303 !\"\207" [seq-filter #[257 "r\211q\210\301\302!\205\303=?)\207" [major-mode derived-mode-p emacs-lisp-mode el-search-occur-mode] 3 "\n\n(fn BUFFER)"] stream buffer-list] 4] #[257 "\301!>\204\302\303\304D\"\210\211\305\306H\236\211\203\211\307\241\202,\306\305\307B\211\262\306HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 "el-search-buffers"] 8 "\n\n(fn SEARCH)"]] 5 (#$ . 153744) (byte-code "\300\301!C\207" [el-search-read-pattern-for-interactive "Search elisp buffers for pattern: "] 2)]) #@168 Search all elisp files in DIRECTORY for PATTERN. With prefix arg RECURSIVELY non-nil, search subdirectories recursively. (fn PATTERN DIRECTORY &optional RECURSIVELY) (defalias 'el-search-directory #[770 "\300\301\302\303\304\305\"\306\"\307$\301\310\311\304\305  \"\312\"\313\314%#\207" [el-search-setup-search make-byte-code 0 "\302\300\301\"\207" vconcat vector [el-search-stream-of-directory-files] 3 257 "\303!\n>\204\304\305\306D\"\210\211\307\310H\236\301\203\311\202\312\300P\203*\241\2027\310\307B\211\262\310HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 "Recursive directory search in " "Directory search in "] 9 "\n\n(fn SEARCH)"] 13 (#$ . 154479) (byte-code "\302\303\304\305\203\f\306\202 \307\"\310 \311$!\312\313!E\207" [current-prefix-arg default-directory expand-file-name read-directory-name format "El-Search Directory%s: " " recursively" "" nil t el-search-read-pattern-for-interactive "Search pattern: "] 6)]) #@131 Search Emacs elisp sources for PATTERN. This command recursively searches all elisp files under `source-directory'. (fn PATTERN) (defalias 'el-search-emacs-elisp-sources #[257 "\300\301\302#\207" [el-search-setup-search #[0 "\301\302\303\304\"\"\207" [source-directory seq-filter el-search--elisp-file-p el-search-stream-of-directory-files t] 5] #[257 "\301!>\204\302\303\304D\"\210\211\305\306H\236\211\203\211\307\241\202,\306\305\307B\211\262\306HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 "Search the Emacs Elisp sources"] 8 "\n\n(fn SEARCH)"]] 5 (#$ . 155509) (byte-code "\300\301!C\207" [el-search-read-pattern-for-interactive "Search Elisp sources for pattern: "] 2)]) #@160 Search PATTERN in all elisp files in all directories in `load-path'. nil elements in `load-path' (standing for `default-directory') are ignored. (fn PATTERN) (defalias 'el-search-load-path #[257 "\300\301\302#\207" [el-search-setup-search #[0 "\301\302\303\304\305\306\"!\"!\207" [load-path stream-concatenate seq-map #[257 "\300\301\"\207" [el-search-stream-of-directory-files nil] 4 "\n\n(fn PATH)"] stream remq nil] 7] #[257 "\301!>\204\302\303\304D\"\210\211\305\306H\236\211\203\211\307\241\202,\306\305\307B\211\262\306HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 "Search `load-path'"] 8 "\n\n(fn SEARCH)"]] 5 (#$ . 156271) (byte-code "\300\301!C\207" [el-search-read-pattern-for-interactive "Search load path for pattern: "] 2)]) #@330 El-search files and directories marked in dired. With RECURSIVELY given (the prefix arg in an interactive call), search directories recursively. This function uses `el-search-stream-of-directory-files' to compute a the file stream - see there for a description of related user options. (fn PATTERN FILES &optional RECURSIVELY) (defalias 'el-search-dired-marked-files #[770 "\300\301\302\303\304\305\"\306\"\307$\310#\207" [el-search-setup-search make-byte-code 0 "\302\303\304\305\306\307\310\301!\311\"\312\313%\314\300!\"!\207" vconcat vector [stream-concatenate seq-map make-byte-code 257 "\301!\203 \302\300\"\207\303C!\207" vconcat vector [file-directory-p el-search-stream-of-directory-files stream] 4 "\n\n(fn FILE)" stream] 8 #[257 "\301!>\204\302\303\304D\"\210\211\305\306H\236\211\203\211\307\241\202,\306\305\307B\211\262\306HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 "el-search-dired-marked-files"] 8 "\n\n(fn SEARCH)"]] 12 (#$ . 157094) (byte-code "\301\302!\303 E\207" [current-prefix-arg el-search-read-pattern-for-interactive "Search marked files for pattern: " dired-get-marked-files] 3)]) #@71 El-search the buffers marked in *Ibuffer*. (fn PATTERN BUFFER-NAMES) (defalias 'el-search-ibuffer-marked-buffers #[514 "\300\301\302\303\304\305!\306\"\307$\310#\207" [el-search-setup-search make-byte-code 0 "\301\302\303\304\305\300\"\"!\207" vconcat vector [stream delq nil mapcar get-buffer] 6 #[257 "\301!>\204\302\303\304D\"\210\211\305\306H\236\211\203\211\307\241\202,\306\305\307B\211\262\306HBI\207" [cl-struct-el-search-object-tags type-of signal wrong-type-argument el-search-object description 5 "el-search-ibuffer-marked-files"] 8 "\n\n(fn SEARCH)"]] 10 (#$ . 158297) (byte-code "\300\301!\302\303\304 \"D\207" [el-search-read-pattern-for-interactive "Search marked files for pattern: " mapcar buffer-name ibuffer-get-marked-buffers] 4)]) (defalias 'el-search-repository--delete-buffer-file #[0 ";\205\301!\205\302!\207" [buffer-file-name file-exists-p delete-file] 2]) (defalias 'el-search-repository--clean-up #[0 "\301 \211\205\211@r\211q\210\302>)\203\303!\210A\266\202\202\207" [kill-buffer-hook buffer-list el-search-repository--delete-buffer-file kill-buffer] 4]) #@489 El-Search the Git repository under REPO-ROOT-DIR for PATTERN. Optional string arg REVISION specifies a repository revision. When nil or omitted, search the worktree. When the second optional string argument FILE-REGEXP is specified, it should be a regexp, and only matching files will be el-searched. When called interactively, you are prompted for all arguments. Searching any REVISION is internally using temporarily files. (fn REPO-ROOT-DIR PATTERN &optional REVISION FILE-REGEXP) (defalias 'el-search-repository #[1026 "?\300\301\302\303\304\305 \n\n\n$\306\"\307$\"\207" [el-search-setup-search make-byte-code 0 "\300\305\306\307\310\311\312\313\303\203\314\202\315\316\317\301!\"!\320\321#\"!\"\302\203+\305\322\323\302\"\"\262\303\2033\211\202C\324\325\326\327\330\331\300\301\"\332\"\333\334%\")\207" vconcat vector [default-directory seq-filter el-search--elisp-file-p stream mapcar expand-file-name split-string shell-command-to-string "git ls-files -z --recurse-submodules" format "git ls-tree --name-only -z -r %s --" shell-quote-argument "" omit-nulls apply-partially string-match-p seq-map make-byte-code 257 "\304\305\306\307\310\300\301#\311\"\312$\211 \211@A\211r\211q\210\203$\313\302!\210\314\313\303!\210\304\305\315\307\310\n!\316\"\317$)\262\266\203\207" vconcat vector [el-search--temp-buffer-flag el-search--get-buffer-fun make-byte-code 0 "\305 \306\300\307\302\301\"*\211>?\211\203$rq\210\310\311\312\313\314$\210\310\315\316\"\210)B\207" vconcat vector [default-directory inhibit-message buffer-list t vc-find-revision add-hook kill-buffer-hook el-search-repository--delete-buffer-file append local kill-emacs-hook el-search-repository--clean-up] 8 make-local-variable t "\300 @\207" [] 1] 13 "\n\n(fn FILENAME)"] 11] 16 (#$ . 159420) (byte-code "\300\301\302 \303\304\305\211\306$!\307\310C\311#\312\313!\314\315!F\316\317\320\321&\266\202\262\207" [#[257 "\211\300\232?\205\211\207" [""] 3 "\n\n(fn V)"] #[642 "\300\301\302\303\304\305\"\306\"\307\310%\"\207" [mapcar make-byte-code 257 "\300\3018!\207" vconcat vector [] 4 "\n\n(fn N)"] 11 "\n\n(fn L &rest NUMS)"] vc-root-dir expand-file-name read-directory-name "Repository root: " mustmatch vc-read-revision "Revision (leave empty for \"worktree\"): " Git read-string "File filter regexp (leave empty for no filtering): " el-search-read-pattern-for-interactive "Search pattern: " 0 3 1 2] 11)]) #@186 Prompt for a register and save the EL-SEARCH-OBJECT to it. In an interactive call or when EL-SEARCH-OBJECT is nil, the current search is used. (fn REGISTER &optional EL-SEARCH-OBJECT) (defalias 'el-search-to-register #[513 "\301\206\"\207" [el-search--current-search set-register] 5 (#$ . 161859) (byte-code "\203\n\301\302!\202 \303\304!C\207" [el-search--current-search register-read-with-preview "Save current search to register: " user-error "No search has been started yet"] 2)]) #@296 Prompt for a register and save a clone of the EL-SEARCH-OBJECT to it. In an interactive call or when EL-SEARCH-OBJECT is nil, the current search is used. This is similar to `el-search-to-register' but what is saved is a clone with an individual state. (fn REGISTER &optional EL-SEARCH-OBJECT) (defalias 'el-search-clone-to-register #[513 "\301\302\206!\"\207" [el-search--current-search set-register copy-el-search-object] 6 (#$ . 162360) (byte-code "\203\n\301\302!\202 \303\304!C\207" [el-search--current-search register-read-with-preview "Save clone of current search to register: " user-error "No search has been started yet"] 2)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method register-val-jump-to nil ((val el-search-object) _arg) #[514 "\300!\207" [el-search-jump] 4 "\n\n(fn VAL ARG)"] register-val-describe ((val el-search-object) _verbose) #[514 "\301\302!)\207" [print-circle nil cl-prin1] 4 "\n\n(fn VAL VERBOSE)"]] 6) #@89 compiler-macro for inlining `el-search-query-replace-object-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-query-replace-object-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-query-replace-object-p (and (memq (type-of cl-x) cl-struct-el-search-query-replace-object-tags) t)) nil] 9 (#$ . 163362)]) (put 'el-search-query-replace-object-p 'compiler-macro 'el-search-query-replace-object-p--cmacro) #@13 (fn CL-X) (defalias 'el-search-query-replace-object-p #[257 "\301!>\205 \302\207" [cl-struct-el-search-query-replace-object-tags type-of t] 3 (#$ . 163818)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put el-search-query-replace-object-p side-effect-free error-free put el-search-query-replace-object cl-deftype-satisfies] 5) #@101 compiler-macro for inlining `el-search-query-replace-object-search-object'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-query-replace-object-search-object--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-query-replace-object-search-object (or (el-search-query-replace-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-query-replace-object cl-x))) (aref cl-x 1)) nil] 9 (#$ . 164175)]) (put 'el-search-query-replace-object-search-object 'compiler-macro 'el-search-query-replace-object-search-object--cmacro) #@89 Access slot "search-object" of `el-search-query-replace-object' struct CL-X. (fn CL-X) (defalias 'el-search-query-replace-object-search-object #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-query-replace-object-tags type-of signal wrong-type-argument el-search-query-replace-object 1] 5 (#$ . 164748)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-query-replace-object-search-object side-effect-free t] 4) #@100 compiler-macro for inlining `el-search-query-replace-object-from-pattern'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-query-replace-object-from-pattern--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-query-replace-object-from-pattern (or (el-search-query-replace-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-query-replace-object cl-x))) (aref cl-x 2)) nil] 9 (#$ . 165210)]) (put 'el-search-query-replace-object-from-pattern 'compiler-macro 'el-search-query-replace-object-from-pattern--cmacro) #@88 Access slot "from-pattern" of `el-search-query-replace-object' struct CL-X. (fn CL-X) (defalias 'el-search-query-replace-object-from-pattern #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-query-replace-object-tags type-of signal wrong-type-argument el-search-query-replace-object 2] 5 (#$ . 165778)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-query-replace-object-from-pattern side-effect-free t] 4) #@95 compiler-macro for inlining `el-search-query-replace-object-to-expr'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-query-replace-object-to-expr--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-query-replace-object-to-expr (or (el-search-query-replace-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-query-replace-object cl-x))) (aref cl-x 3)) nil] 9 (#$ . 166236)]) (put 'el-search-query-replace-object-to-expr 'compiler-macro 'el-search-query-replace-object-to-expr--cmacro) #@83 Access slot "to-expr" of `el-search-query-replace-object' struct CL-X. (fn CL-X) (defalias 'el-search-query-replace-object-to-expr #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-query-replace-object-tags type-of signal wrong-type-argument el-search-query-replace-object 3] 5 (#$ . 166779)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-query-replace-object-to-expr side-effect-free t] 4) #@98 compiler-macro for inlining `el-search-query-replace-object-textual-to'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-query-replace-object-textual-to--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-query-replace-object-textual-to (or (el-search-query-replace-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-query-replace-object cl-x))) (aref cl-x 4)) nil] 9 (#$ . 167222)]) (put 'el-search-query-replace-object-textual-to 'compiler-macro 'el-search-query-replace-object-textual-to--cmacro) #@86 Access slot "textual-to" of `el-search-query-replace-object' struct CL-X. (fn CL-X) (defalias 'el-search-query-replace-object-textual-to #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-query-replace-object-tags type-of signal wrong-type-argument el-search-query-replace-object 4] 5 (#$ . 167780)]) (byte-code "\300\301\302\303#\300\207" [function-put el-search-query-replace-object-textual-to side-effect-free t] 4) #@94 compiler-macro for inlining `el-search-query-replace-object-splice'. (fn CL-WHOLE-ARG CL-X) (defalias 'el-search-query-replace-object-splice--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block el-search-query-replace-object-splice (or (el-search-query-replace-object-p cl-x) (signal 'wrong-type-argument (list 'el-search-query-replace-object cl-x))) (aref cl-x 5)) nil] 9 (#$ . 168232)]) (put 'el-search-query-replace-object-splice 'compiler-macro 'el-search-query-replace-object-splice--cmacro) #@82 Access slot "splice" of `el-search-query-replace-object' struct CL-X. (fn CL-X) (defalias 'el-search-query-replace-object-splice #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-el-search-query-replace-object-tags type-of signal wrong-type-argument el-search-query-replace-object 5] 5 (#$ . 168770)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put el-search-query-replace-object-splice side-effect-free t defalias copy-el-search-query-replace-object copy-sequence] 4) #@151 compiler-macro for inlining `make-el-search-query-replace-object'. (fn CL-WHOLE &cl-quote &key SEARCH-OBJECT FROM-PATTERN TO-EXPR TEXTUAL-TO SPLICE) (defalias 'make-el-search-query-replace-object--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203J\211@\306>\2032\211AA\262\202\307>A@\203A\310\262\202\311\312@\"\210\202\210\313\314\315\310\n\310\n\n\n\n\n&\n\207" [plist-member :search-object :from-pattern :to-expr :textual-to :splice (:search-object :from-pattern :to-expr :textual-to :splice :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:search-object :from-pattern :to-expr :textual-to :splice)" cl--defsubst-expand (search-object from-pattern to-expr textual-to splice) (cl-block make-el-search-query-replace-object (record 'el-search-query-replace-object search-object from-pattern to-expr textual-to splice))] 18 (#$ . 169280)]) (put 'make-el-search-query-replace-object 'compiler-macro 'make-el-search-query-replace-object--cmacro) #@131 Constructor for objects of type `el-search-query-replace-object'. (fn &key SEARCH-OBJECT FROM-PATTERN TO-EXPR TEXTUAL-TO SPLICE) (defalias 'make-el-search-query-replace-object #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\211\203J\211@\306>\2032\211AA\262\202\307>A@\203A\310\262\202\311\312@\"\210\202\210\313\314&\207" [plist-member :search-object :from-pattern :to-expr :textual-to :splice (:search-object :from-pattern :to-expr :textual-to :splice :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:search-object :from-pattern :to-expr :textual-to :splice)" record el-search-query-replace-object] 13 (#$ . 170322)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-el-search-query-replace-object side-effect-free t cl-struct-define el-search-query-replace-object nil cl-structure-object record ((cl-tag-slot) (search-object) (from-pattern) (to-expr) (textual-to) (splice)) cl-struct-el-search-query-replace-object-tags] 11) #@52 (fn QR-OBJECT &optional VERBOSE DONT-PROPERTIZE) (defalias 'el-search--get-q-r-description-string #[769 "\304!>\204\305\306\307D\"\210\310H\311\312\304! >\204#\305\306\313D\"\210\310H!\314\315\316\317\320#)\266\203\203<\321\202=\322\"\262\323\312\304!>\204T\305\306\307\nD\"\210\324H!Q\203b\211\202g\325\326\327#\262\205\360\304! >\204|\305\306\313D\"\210\330H\314\331\332\333\304! >\204\224\305\306\313\nD\"\210\334H\"\203\240\335\202\241\336\304! >\204\261\305\306\337D\"\210\334H\211\203\352\340\341!\203\305\342!\202\346\304! >\204\326\305\306\337D\"\210\343H\211\203\343\344!\202\344\345\262P\202\353\346\262#\262Q\207" [cl-struct-el-search-query-replace-object-tags cl-struct-el-search-object-tags inhibit-changing-match-data cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-query-replace-object 1 "Replace" el-search--pp-to-string el-search-object format "\n" nil t string-match ":\n%s" " %s" " -> " 3 propertize face shadow 2 " [%s %s]" alist-get is-single-buffer 5 "single-buffer" "paused" el-search-head "in " buffer-live-p buffer-name 7 file-name-nondirectory "killed buffer" "(completed)"] 16 (#$ . 171387)]) (cl-generic-define-method 'cl-print-object nil '((object el-search-query-replace-object) stream) nil #[514 "\300\301\"\210\302\303\304\305#\"\210\300\306\"\207" [princ "#s(el-search-query-replace " prin1 el-search--get-q-r-description-string verbose dont-propertize ")"] 7 "\n\n(fn OBJECT STREAM)"]) #@266 Prompt for a register and save the EL-SEARCH-QUERY-REPLACE-OBJECT to it. In an interactive call or when EL-SEARCH-QUERY-REPLACE-OBJECT is nil, the last active `el-search-query-replace' session object is used. (fn REGISTER &optional EL-SEARCH-QUERY-REPLACE-OBJECT) (defalias 'el-search-query-replace-to-register #[513 "\301\206\"\207" [el-search--current-query-replace set-register] 5 (#$ . 172916) (byte-code "\203\n\301\302!\202 \303\304!C\207" [el-search--current-query-replace register-read-with-preview "Save current query-replace to register: " user-error "No el-search-query-replace has been started yet"] 2)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\207" [cl-generic-define-method register-val-jump-to nil ((val el-search-query-replace-object) _arg) #[514 "\300\301\"\207" [el-search-query-replace nil] 5 "\n\n(fn VAL ARG)"] register-val-describe ((val el-search-query-replace-object) _verbose) #[514 "\301\302!)\207" [print-circle nil cl-prin1] 4 "\n\n(fn VAL VERBOSE)"]] 6) #@238 Replace the text in REGION in current buffer with string TO-INSERT. Add line breaks before and after TO-INSERT when appropriate and reindent. The return value is a marker pointing to the end of the inserted text. (fn REGION TO-INSERT) (defalias 'el-search--replace-hunk #[514 "\306 \307\211\307C\310\311\312\313\314 \"\315\"\316$\216\317!\210\320\307`\321\322 \"@b\210\321\323\n\"\210\324\325\326 \"?\327\330!?\331\n\307\320)\332#)\266\203\205p\331\307\320)\332#)\266\203?\205p\203k\211\206p\324\333\326 \"\211\205u\203\213\324\334\326 \335#\203\210\311\224\311\225|\210\331c\210 c\210\211\203\226\331c\210\336`!\210 \337\230\203\345\212\326 b\210\327\340!)\203\271\311\224\311\225Td^|\210\202\375\212\341\307x\210\327\342!\203\312\311\224\311\225|\210)\324\343`S\"\203\337\327\344!\203\337\311\224\311\225|\210\345 \210\202\375\212\3461\360\347 0\202\364\210\202\365\210\350`T\"\210)*\266\211\320\240,\207" [most-positive-fixnum undo-strong-limit undo-limit undo-outer-limit inhibit-message message-log-max prepare-change-group nil make-byte-code 0 "\301\242\203 \302\300!\207\303\300!\207" vconcat vector [accept-change-group cancel-change-group] 2 activate-change-group t apply buffer-substring-no-properties delete-region looking-back "(\\|^\\s-*" line-beginning-position looking-at "\\s-*[);]\\|$" "\n" string-match "\\(?:\\sw\\|\\s_\\)[[:blank:]]+\\(?:\\sw\\|\\s_\\).*" "\\s-+" greedy copy-marker "" "^[[:space:]]*$" " " "[[:space:]]+$" "[[:space:]]" "[[:space:]]+" indent-according-to-mode (scan-error) up-list indent-region inhibit-changing-match-data] 18 (#$ . 173945)]) #@55 (fn REPLACEMENT ORIGINAL REPLACE-EXPR-INPUT SPLICE) (defalias 'el-search--format-replacement #[1028 "\211\203<\204\300\301\"\207\302\303!r\211q\210\304 \210c\210\203$\305\261\210)\306\307\310\311\312!\313\"\314$\216\302\315!r\211q\210\306\307\316\311\312!\317\"\314$\216\304 \210\203h\320\321\"\322\323\324\325\326\327\"\"\203a\327\202b\330#\262\202l\321!c\210\331b\210\332\211\211\211\211\211`dW\2032\3331\221`\262\334p!\262`\262\3350\202\223\210\332\2032\332\262\332\262rq\210\331b\210\336\337D\332\335#\203\273`\262\340 \210`\262\202\276\335\262)\211\204\3411\321\334p!\262\3350\202\323\210\332\203rq\210\3421\357\334p!\232\205\353`\262\3350\202\361\210\332)\203\373`\262\202\277\335\262\202\277\203\343Dr q\210\344\")\"\210\202!b\210\345\332\335\"\210\3461+\347 0\202.\210db\210\202w\266\331b\210\340\203BG\202C\331!\210\331`{\324\350\351 !\"\203V\352\353!\210\3541o\334\203h\355\356\"\202i!\2320\202s\210\202z\203z\211\202}\300\357!\262*\262)\207" [error "Expression to splice in is not a list: %S" generate-new-buffer "orig-expr" emacs-lisp-mode "\n\n" make-byte-code 0 "\301\300!\207" vconcat vector [kill-buffer] 2 " *temp*" "\301\300!\205 \302\300!\207" [buffer-name kill-buffer] mapcar el-search--pp-to-string mapconcat identity cl-some apply-partially string-match-p "\n" " " 1 nil (end-of-buffer) el-search-read t el-search-forward quote forward-sexp (invalid-read-syntax end-of-buffer end-of-file) (invalid-read-syntax end-of-buffer end-of-file) el-search--replace-hunk buffer-substring-no-properties el-search--skip-expression (end-of-buffer) el-search--ensure-sexp-start #[257 "\2119\205 \211\205 \300!?\207" [intern-soft] 3 "\n\n(fn THING)"] el-search--flatten-tree user-error "The replacement is not allowed to contain uninterned symbols" (debug error) format "(%s)" "Apparent error in `el-search--format-replacement'\nCan you please make a bug report including a recipe of what\nexactly you did? Thanks!"] 17 (#$ . 175588)]) #@38 Holds the current match as a string. (defvar el-search-query-replace--current-match-string nil (#$ . 177642)) #@24 (fn &rest HOOK-FUNS) (defalias 'el-search-query-replace-ediff-replacement #[128 "\302\303!\304p\305\306!\307#\310\311\312\313\314\"\315\"\316$rq\210\317 \210c\210\320ed\"\210\321)\322\323!\210\324\325rq\210edE)rq\210\212eb\210\326\327!\203M\330y\210\202Ap`dE*\244\324\331\310\311\332\313\314\n!\333\"\334$ #\335\330\211F\244\"\207" [el-search-query-replace--current-match-string buffer-read-only generate-new-buffer "*El-search Orig*" make-indirect-buffer generate-new-buffer-name "*El-search Replacement*" clone make-byte-code 0 "\302\303\300\301D\"\207" vconcat vector [mapc kill-buffer] 4 emacs-lisp-mode indent-region t require ediff apply ediff-regions-internal looking-at "^;;\\|^$" nil list "\301\302\300\303\211$\207" [add-hook ediff-quit-hook t] 5 ediff-regions-linewise] 15 (#$ . 177758) nil]) #@26 (fn FROM-TEXT TO-TEXT) (defalias 'el-search-query-replace--comments-preserved-p #[514 "\300\301\302\303\"\304\"\303\"\304\"\305\306$\262\207" [#[0 "\301\211\211\204\"\204\"\302\301\303#\204\303\262\202\304\305 8?\262\202\207" [comment-start-skip nil search-forward-regexp t 3 syntax-ppss] 6] #[514 "\300\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216c\210eb\210\312 \210 \2038`\313 {\211\314\230\2041\211B\262\210\315y\210\202*\262\207" [nil generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 emacs-lisp-mode line-end-position "" 1] 10 "\n\n(fn --CL-GOTO-NEXT-COMMENT-START-P-- TEXT)"] cl-tree-equal sort string-lessp :test string=] 10 (#$ . 178584)]) #@80 (fn PATTERN REPLACEMENT &optional SPLICE TO-INPUT-STRING USE-CURRENT-SEARCH) (defalias 'el-search--search-and-replace-pattern #[1282 "\211CCCC\306\242!>\205\211\242\211\203\207\211\306!>\204*\307\310\311D\"\210\312H\240\210\306!>\204>\307\310\311D\"\210\211\313H\262 \306!>\204S\307\310\311D\"\210\314H\240\210\306!>\204h\307\310\311D\"\210\315H\240\210\306!>\204|\307\310\311D\"\210\211\316H\317\240\210\202\310\242\204\264p\320\242\321\322\323\324\325!\326\"\312$\317\327`!\321\330\331\324\325\n\"\332\"\333\334%\262$\266\335 \336\311\n\242\n\242\337&\211\"\210\210\3402p\337C\337C\337C\337C\322C\322C\317`C\341 \242\"\342C\341 \242!\343 \337C\337C\fC\337C\344\n\321\322\345\324\325&\346\"\347$\337\211\204`\350 \210-\203`.\204` \210\242\351=\203R\317\262\352\351!\210 \210\242\204,\337\240\210\202,\210\353\354\242\242#\262)\266\2210\207" [cl-struct-el-search-query-replace-object-tags el-search--current-query-replace el-search--current-search el-search-query-replace-object-history el-search-query-replace-stop-for-comments el-search-keep-hl type-of signal wrong-type-argument el-search-query-replace-object 2 3 5 4 1 t el-search-setup-search-1 make-byte-code 0 "\301\300C!\207" vconcat vector [stream] copy-marker 257 "\305!\n>\204\306\307\310D\"\210\211\311\312H\236\300\203!\241\210\202/\312\311B\211\262\312HBI\210\266\305!\n>\204@\306\307\310D\"\210\211\313\312H\236\211\203Q\211\314\241\210\202_\312\313\314B\211\262\312HBI\210\266\315\316!\210\305\211!\n>\204w\306\307\310D\"\210\317H!\f>\204\231\306\307\320\305!\n>\204\223\306\307\310D\"\210\317HD\"\210\305!\n>\204\250\306\307\310D\"\210\211\317H\211\321\301I\262)\207" [cl-struct-el-search-object-tags inhibit-message cl-struct-el-search-head-tags type-of signal wrong-type-argument el-search-object is-single-buffer 5 description "Search created by `el-search-query-replace'" t el-search--next-buffer 2 el-search-head 6] 9 "\n\n(fn SEARCH)" ring-insert record nil done el-search-make-matcher ask el-search--current-heuristic-matcher #[0 "\300\301\302\303!\"\210\304\305!\207" [message "%s" substitute-command-keys "Resume with C-u \\[el-search-query-replace]" sit-for 2] 4] "\306\324\240\210\307\324\240\210\3251\250\3261\237`\304\242\204n\327\315!\210\330\331\332\333\211$\210\303\242\203n\334@!A>\2048\335\336\337@D\"\210@\340H\341\342\334!B>\204N\335\336\343D\"\210\344H\206g\334!B>\204d\335\336\343D\"\210\345H\"\210\346\347!\266\350\315\333\351\316$\205\230\312`\240\210\334\211@!A>\204\216\335\336\337@D\"\210@\340H!B>\204\265\335\336\343\334@!A>\204\256\335\336\337@D\"\210@\340HD\"\210\334@!A>\204\307\335\336\337@D\"\210@\340H\211\352\353`!I\266\334@!A>\204\345\335\336\337@D\"\210@\211\354\353`!I\266\304\242\204\367\355 \210`\356 D\357\360\"\361!\351C\313!\362\324\363\364\365\301\302\n$\366\"\345$\211 C\362\324\367\364\365!\370\"\344$\351C\362\324\371\364\365\304\306\310\f\f\f&\372\"\373$\351C\362\374\375\364\365  $\376\"\377\201H%\351C\201I\321\242\203 \201J\f\201K\302\242Q\242\"\204 \321\242\201L=\203\242\201M\201N\201O\201P\201Q#\201R\201S\201T\201U\201V\257\"@\202\300\201W\201X\201N\201Y\201P\201Q#\"\210\346\201Z!\210\201[\211\201\\=\204\211\201]=\203\327\321\351\240\210\202\211\201[=\203\346\322\333\240\210\202\211\201^=\203\371\321\333\240\210\322\333\240\210\202\211\201_>\203\335\201`\333\"\210\210\304\242\203\322\242\204 \210\202\330\201a \210\351C\362\324\201b\364\365\306\310\f %\201c\"\354$\362\374\201d\364\365   %\201e\"\201f\201H%\362\324\201g\364\365!\201h\"\340$\216\300\301\306\307\322&\211\201i=\203} \210\351\202\300\211\201[=\203\223 \242\204\217 \210\333\202\300\211\201\\=\203\245\307\211\242T\240\210\333\202\300\211\201j=\203 \304\333\240\210\303\242\203\377\201k\201l\334@!A>\204\316\335\336\337@D\"\210@\345H\"\204\377\201M\201m\201n\"@\211\201o=\203\360\305\333\240\210\202\376\211\201p=\203\376\304\201q\240\210\210 \242\204  \210\333\202\300\211\201r=\203(db\210\201W\201s!\210\346\347!\210\333\202\300\211\201t=\203<\201u\201v!\210\333\202\300\211\201w=\203r\301\211\242?\240\210\n\f \240\210\334D!E>\204e\335\336\201xDD\"\210D\211\345\301\242I\266\351\202\300\211\201y=\203\201 \210\351\202\300\211\201z=\203\223\201{!\210\351\202\300\211\201|>\203\244\335\201`\333\"\202\300\211\201}=\203\277\201~\324\351\201#\210\335\201`\333\"\202\300\351\262\203d)\266 \242\203\330\304\242\204\330\201a \210m\204\222 \242\205\354\212\350\315\333\242\316$)\201\200 \242\203\376\203\376\314\242\204 \242\204\220m\204\220\201\201\351\333\"\210\202\220\314\242\201L=\203\213\327\315!\210\201M\201N\201\202\201P\201Q#\201\203\"@\211\201\204>\203R\211\211\201}U\203I\314\333\240\210 !\266\202\207\211\201\205=\203d\335\201`\333\"\210\202\207\211\211\201\206U\203q\314\351\240\210\304\242\203\206\304\351\240\210\201W\201\207!\210\346\340!\210\210\210\202\220\211!\210\266)\266 \202n\26200\202\2760\320\333\240\262\202\276\320\362\324\201\210\364\365!\201\211\"\201f$\240\262\210\201\212 \210\320\242\203\361\201\213\201\214\201\215\333#\210\201\216\320\242!\203\345\320\242 \210\202\361\323 \210\201\217\201\220\333\"\210\334\211@!A>\204\335\336\337@D\"\210@\340H!B>\204+\335\336\343\334@!A>\204$\335\336\337@D\"\210@\340HD\"\210\334@!A>\204=\335\336\337@D\"\210@\340H\211\352dI\266\312\242b\210\306\242\324V\203%\311\211\242T\240\210\201\221F\204d\351\202G\204m\351\202F\201\222=\203 \201k\201l\334@!A>\204\216\335\336\337@D\"\210@\345H\"?\205\317\242\203\242\317\242A\202\201M\201\223\201\224\306\242\307\242\324U\203\272\201\225\202\303\201\223\201\226\307\242\"#\201\227\"@\211\201[=\203\325\333\202\211\201\\=\203\341\351\202\211\201^=\203\362\317\333\211B\240A\202\211\201]=\203\317\333\351B\240A\202\351\262\202F\201L=\203\211\306\307\317#\202\333\262\205J\201\230 \207\303\242?\205J\201W\201\231\306\242\307\242\324U\203@\201\225\202I\201\223\201\226\307\242\"#\207" [0 (error debug) (quit) el-search-hl-other-matches add-hook window-scroll-functions el-search--after-scroll t type-of signal wrong-type-argument el-search-object 2 el-search--message-no-log "%s..." el-search-head 7 5 sit-for 1 el-search--search-pattern-1 nil 6 copy-marker 3 el-search-hl-sexp el-search--end-of-sexp apply buffer-substring-no-properties el-search-read make-byte-code "\304\303\302\301\242\300\242$\207" vconcat vector [el-search--format-replacement] "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312 \210\300\242c\210eb\210\3131)\314 \210\3150\202+\210\316*\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 emacs-lisp-mode (end-of-buffer) el-search--ensure-sexp-start nil t] "\212\214~\210\307\310`\311 D\305\242\"\240\210*\306 \204\312 \210\301\211\242T\240\210\302\211\242T\240\210\304\313\240\210\300\242\205~\314!>\204?\315\316\317D\"\210\320H\321\322\314!>\204U\315\316\323D\"\210\324H\206n\314!>\204k\315\316\323D\"\210\325H\326`\303\327#\330_\326d\303\327#\245#\262\207" [el-search--replace-hunk el-search--end-of-sexp el-search--ensure-sexp-start t type-of signal wrong-type-argument el-search-object 2 el-search--message-no-log "%s (%d%%)" el-search-head 7 5 - -1 100 el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags] 9 256 "\212\306\307\310\311\312\311\313\311\314\311& \315\316\317\320\321!\322\"\323$\324\325!\326!\327!\210\330 \210\204.\331\261\210\212\302\242c\210)\311\332`d\"\210)\333 \315\334\335\320\321!\336\"\337\340%\315\334\341\320\321!\342\"\337\340%\343\344 \345!\346\347 \"\210\350\351\315\316\352\320\321\303!\353\"\354$!#\210\350\355#\210\350\356#\210\350\357#\210\350\360\315\316\361\320\321 !\362\"\354\363\211&#\210\350\364\315\316\365\320\321\301\"\366\"\354\363\211&#\210\266\202!\210\300\203\302\367\370!!\210\371\363!\210\372 \210)\266\373!\205&rq\210 \210`d{\363\211\374\375\206\347\376\377Q\"\203\375\201@\201A\311\211$\266\202\202\266\202\374\201B\206\n\376\201CQ\"\203\"\201@\201A\311\211$\266\205\202%\266\205)\211\2038\201D\201E!\2038\302\240\210\210\201F!\210\201G!\266\201H\201I \201J \"\210)\363\207" [inhibit-message el-search-query-replace--current-match-string propertize ";; This buffer shows the individual replacement for the current match.\n;; You may edit it here while query-replace is interrupted by a\n;; `recursive-edit'.\n;; Type C-c C-c to confirm, or C-c C-q to quit, dismissing\n;; changes in this buffer.\n;; Type C-c C-e to Ediff the current match with this buffer's content.\n;; Type C-c C-r to revert this buffer." read-only t field front-sticky rear-nonsticky make-byte-code 0 "eb\210\301\302\300!!\203\303\225b\210m?\205 \301\304!\205 \305y\210\202\207" vconcat vector [looking-at regexp-quote 0 "^$" nil] 3 generate-new-buffer "*Replacement*" display-buffer select-window emacs-lisp-mode "\n\n" indent-region current-window-configuration 256 "\301\302\303\304\305\300\"\306\"\307\310\211&\207" [make-byte-code 0 "\302\300!\210\301\205\n\301 \207" vconcat vector [set-window-configuration] 2 nil] 8 "\n\n(fn &optional DO)" "\300!\301\302\303\304\305!\306\"\307$\207" [make-byte-code 0 "\301\302\300\303\211$\207" vconcat vector [add-hook ediff-quit-hook t] 5] use-local-map make-sparse-keymap #[0 "\300\301!\210\302 \207" [set-buffer-modified-p nil exit-recursive-edit] 2] set-keymap-parent current-local-map define-key [(control 99) (control 99)] "\300\301\240\210\302 \207" [t exit-recursive-edit] 2 [(control 99) (control 113)] [(control 99) (control 107)] [(control 99) (control 97)] [(control 99) (control 101)] "\301\300 !\207" [el-search-query-replace-ediff-replacement] nil [(control 99) (control 114)] "\301 \210`d|\210\300 c\207" #2=[] el-search-query-replace-ediff-replacement exit-recursive-edit set-buffer-modified-p recursive-edit buffer-modified-p string-match "\\(?:" "[ \n ]+" "\\)\\'" replace-match #1="" "\\`\\(?:" "\\)" y-or-n-p "Use modified version?" delete-window kill-buffer el-search--after-scroll selected-window window-start] 21 el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags use-dialog-box el-search--current-query-replace cl-struct-el-search-query-replace-object-tags el-search-auto-save-buffers buffer-file-name "\n\n(fn &optional EDIFF-ONLY)" #[1542 "\242\203 \301\240\210\302\207\303\242\242\\\304\242!\305\306\242\203!\202#T\\\242\2034\307\310\311\312#\2025\313$\266\202\314\301\315\316\242\203F\317\202G\320E\242?\205O\321\322\323\324\205W\325\n\242?\205p\326\242\203i\327\202j\330\331P\332\333!E\334\335\336\337\340\257\f\"\"@\207" [buffer-file-name nil 111 read-multiple-choice el-search-count-matches format "[%d/%d] %s" propertize "*" face success "-" delq 121 "y" "Keep replacement and move to the next match" "Replace match and move to the next" (110 "n" "Move to the next match") (114 "r" "Replace match but don't move or restore match if already replaced") (33 "!" "Replace all remaining matches in this buffer") (98 "skip buf" "Skip this buffer and any remaining matches in it") (100 "dir" "Skip a parent directory of current file") 115 "no " #1# "splice" substitute-command-keys "Toggle splicing mode (\\[describe-function] el-search-query-replace for details)" (101 "edit" "Show current replacement in a separate buffer - you can modify it there") (69 "Ediff" "Ediff match with replacement") (113 "quit") (13 "quit") (83 "S" "Switch to driving search. Useful to reposition search head.")] 22 "\n\n(fn PATTERN SPLICE NBR-REPLACED NBR-SKIPPED STOPPED-FOR-COMMENTS REPLACED-THIS)"] el-search-query-replace--comments-preserved-p "\n" ask read-multiple-choice propertize "Problems with adjusting comments - edit now? " face el-search-highlight-in-prompt-face (121 "yes" "Edit the replacement now") (110 "no" "Just replace and mess up comments") (89 "always Yes" "Yes, now and later - don't ask again") (78 "always No" "No, not now and not later") (113 "quit") message "%s" "Problems with adjusting comments, please edit" 1.5 121 110 78 89 (7 113) quit undo-boundary "\302\242\204\305\304\306 \240!\210\303 \207\307\304\242!\210\304\310\240\210\302\310\240\210\300\211\242S\240\210\301\211\242S\240\207" [activate-change-group prepare-change-group cancel-change-group nil] "\301\242\303!\210\211\301\242\230\203\302\242\203&\300\242\204 \304 \210\305 \210\202&\304 \210\304 \210\210\306\207" [undo-boundary nil] 4 "\300\242\205 \301\300\242!\207" [accept-change-group] 114 33 alist-get is-single-buffer "Also replace in all following buffers?" ((33 "Only this" "Replace only remaining matches in this buffer") (47 "This then pause" "Replace all in this buffer then terminate to resume session later") (65 "All buffers" "Replace all matches in all buffers")) 65 47 stop 98 "Skipping this buffer" 100 call-interactively el-search-skip-directory 115 el-search-query-replace-object 101 69 ediff-only (13 7 113) 83 run-with-timer #[0 "\301\302!\210\303\304!\210\305!\207" [el-search--current-search message "Activating driving search..." sit-for 1 el-search-jump] 2] #[257 "\211\242b\207" #2# 2 "\n\n(fn REPLACEMENT-END-POS)"] el-search--skip-expression "Skip the matches in the replacement? " ((115 "skip" "Skip any matches in this replacement") (100 "don't" "Continue with the matches in the replacement") (83 "always Skip" "Skip now and for the rest of this session") (68 "always Don't" "Don't skip now and for the rest of this session") (113 "quit" "Abort this query-replace session")) (83 115) 113 68 "Falling back to interactive mode" "\301\302\303\300!\"\207" [error "%s" error-message-string] el-search-hl-remove remove-hook post-command-hook el-search-hl-post-command-fun functionp throw done #[771 "\211\242\203 \211\242A\207\300\301\302\242\242\303U\203\304\202\301\305\242\"#\306\"@\211\307=\203-\310\202V\211\311=\2037\312\202V\211\313=\203F\310\211B\240A\202V\211\314=\203U\310\312B\240A\202V\312\207" [read-multiple-choice format #3="Replaced %d matches%s - save this buffer? " 0 #1# #4=" (%d skipped)" #5=((121 "yes") (110 "no") (89 "Yes to all" "Save this buffer and all following buffers without asking again") (78 "No to all" "Don't save this buffer and all following buffers; don't ask again")) 121 t 110 nil 89 78] 10 "\n\n(fn NBR-REPLACED NBR-SKIPPED SAVE-ALL-ANSWERED)"] ask-multi format #3# #1# #4# #5# save-buffer "Replaced %d matches%s"] 26 el-search-continue-search stop el-search-hl-post-command-fun message "Replaced %d matches in %d buffers" el-search--success el-search--wrap-flag] 51 (#$ . 179355)]) (defalias 'el-search-query-replace--read-args #[0 "\306 \210\204\220 \206)\n\307=\204\310 \205)\311 \312 @!\232\203% @\202)\313\311 !\314\216\315\316C\211\317\320\321\322\323\"\324\"\325$\240\210\317\320\326\322\323!\327\"\325$\216\330\331\242\"\210\332\333\334\316\303#*\266\202*\316\211\211\211\335\336!r\211q\210\317\320\337\322\323!\340\"\341$\216\342 \210c\210\343b\210\344 \210\345\316w\210\346\347!\204\232\262\316\333\350\")\262\202\266`\320\225|\210\343b\210\344 \210\343`{\262\345\316w\210`\344 \210`{\262*\210 \203\311\230\204\311 @\230\204X\335\336!r\211q\210\317\320\337\322\323!\351\"\341$\216\342 \210\352\316\332\353#)\266\203\352\316\332\353#)\266\203\354\355\204\203\356 \316\332\353#)\266\203\204\352\202\357\203!\352\202\"\357\n\204-\203B\356 \316\332\353#)\266\203\204B\352\202C\360 &\266\202c\210\361\343d\"\210\362 *\262 B\363\364\"\210\312!\262\312!\262\365!\210\2119\203\213\366\367\370D!\"\204\213\211\332=\204\213\211\316=\204\213\365!\210E\207@\204\231\371\372!\210\373!\211\320W\204\250\374\232\203\257\375A\376\"@\377\201E\320U\204?\201F\211\211@!B>\204\325\201G\201H\201I@D\"\210@\343H!C>\204\n\201G\201H\201J\201F@!B>\204\201G\201H\201I@D\"\210@\343HD\"\210\201F@!B>\204$\201G\201H\201I@D\"\210@\343H\341H!D>\204\255\201G\201H\201K\201F\211@!B>\204U\201G\201H\201I@D\"\210@\343H!C>\204\212\201G\201H\201J\201F@!B>\204\203\201G\201H\201I@D\"\210@\343HD\"\210\201F@!B>\204\244\201G\201H\201I@D\"\210@\343H\341HD\"\210\201F\211@!B>\204\310\201G\201H\201I@D\"\210@\343H!C>\204\375\201G\201H\201J\201F@!B>\204\366\201G\201H\201I@D\"\210@\343HD\"\210\201F@!B>\204\201G\201H\201I@D\"\210@\343H\341H\201LH\204? \2030\332 \210\204?\201M\201N\201O\201P!\"\210\320U\203W \204T\201M\201Q!\203W\211 \210\266@\316D\207" [current-prefix-arg el-search--initial-mb-contents last-command el-search-query-replace-history el-search--reading-input-for-query-replace inhibit-changing-match-data barf-if-buffer-read-only el-search-pattern el-search--pending-search-p el-search--current-pattern el-search-read el-search--pp-to-string #[0 "\301!\205 \302!\207" [el-search--mb-hints-timer timerp cancel-timer] 2] el-search-read-pattern-setup-mb nil make-byte-code 0 "\302\303\301\242\"\210\300 \207" vconcat vector [remove-hook minibuffer-setup-hook] 3 "\301\302\300\242\"\207" [remove-hook minibuffer-setup-hook] add-hook minibuffer-setup-hook t el-search--read-pattern "Query replace pattern: " generate-new-buffer " *temp*" "\301\300!\205 \302\300!\207" [buffer-name kill-buffer] 2 emacs-lisp-mode 1 forward-sexp " \n\f" looking-at "\\(?:[=-]?>\\)" "Replace with result of evaluation of: " [buffer-name kill-buffer] "\n" string-match format "%s%s%s ->%s%s" "\\`\n" "" " " indent-region buffer-string el-search--pushnew-to-history el-search-pattern-history el-search--maybe-warn-about-unquoted-symbol el-search--contains-p el-search-make-matcher quote error "No pending query-replace session" prefix-numeric-value (16) el-search--read-history-entry el-search--get-q-r-description-string #[0 "\300\301!\207" [y-or-n-p "Restart current query-replace session? "] 2] el-search--current-query-replace el-search-query-replace-object-history cl-struct-el-search-query-replace-object-tags cl-struct-el-search-object-tags cl-struct-el-search-head-tags #[0 "\302\303! >\204\304\305\306D\"\210\307H!\207" [el-search--current-query-replace cl-struct-el-search-query-replace-object-tags el-search-reset-search type-of signal wrong-type-argument el-search-query-replace-object 1] 5] type-of signal wrong-type-argument el-search-query-replace-object el-search-object el-search-head 5 user-error "%s" substitute-command-keys "Session terminated - C-u 0 \\[el-search-query-replace] to restart" "Abort"] 20]) #@1661 Replace some matches of "el-search" pattern FROM-PATTERN. With prefix arg, generally resume the last session; but with prefix arg 0 restart the last session, and with negative or plain C-u C-u prefix arg, prompt for an older session to resume. FROM-PATTERN is an el-search pattern to match. TO-EXPR is an Elisp expression that is evaluated repeatedly for each match with bindings created in FROM-PATTERN in effect to produce a replacement expression. As each match is found, the user must type a character saying what to do with it. For directions, type ? at that time. As an alternative to enter FROM-PATTERN and TO-EXPR separately, you can also give an input of the form FROM-PATTERN -> TO-EXPR (">" and "=>" are also allowed as a separator) to the first prompt and specify both expressions at once. This format is also used for history entries. Operate from point to (point-max), unless when called directly after a search command; then use the current search to drive query-replace (similar to isearch). You get a multi-buffer query-replace this way when the current search is multi-buffer. It is possible to replace matches with an arbitrary number of expressions (even with zero expressions, effectively deleting matches) by using the "splicing" submode that can be toggled from the prompt with "s". When splicing mode is on (default off), the replacement expression must evaluate to a list, and all of the list's elements are inserted in order. In a non-interactive call, FROM-PATTERN can be an el-search-query-replace-object to resume. In this case the remaining arguments are ignored. (fn FROM-PATTERN TO-EXPR &optional TEXTUAL-TO) (defalias 'el-search-query-replace #[770 "\306\307\310\311! >\203\312\202s\n\205*\311\n! >\204'\313\314\315\nD\"\210\n\316H\211\205q\311!\f>\204=\313\314\317D\"\210\211\320Hp=\205q\311\n! >\204V\313\314\315\nD\"\210\n\321H\232\205q \322=\204h\323 \205q\312\324\325!\210\326\321!\210\262%\207" [this-command cl-struct-el-search-query-replace-object-tags el-search--current-search cl-struct-el-search-object-tags cl-struct-el-search-head-tags last-command el-search-query-replace el-search--search-and-replace-pattern nil type-of t signal wrong-type-argument el-search-object 2 el-search-head 5 1 el-search-pattern el-search--pending-search-p el-search--message-no-log "Using the current search to drive query-replace..." sit-for] 14 (#$ . 198342) (el-search-query-replace--read-args)]) #@32 (fn &optional GOTO-LEFT-END) (defalias 'el-search--take-over-from-isearch #[256 "\211\205 \302 \210\203`W\203b\210\207" [isearch-other-end isearch-string isearch-exit] 5 (#$ . 200816)]) #@73 Switch to an el-search session from isearch. Reuse already given input. (defalias 'el-search-search-from-isearch #[0 "\301\302 P\303\304!)\207" [el-search--initial-mb-contents "'" el-search--take-over-from-isearch call-interactively el-search-pattern] 2 (#$ . 201020) nil]) #@81 Switch to `el-search-pattern-backward' from isearch. Reuse already given input. (defalias 'el-search-search-backward-from-isearch #[0 "\301\302 P\303\304!)\207" [el-search--initial-mb-contents "'" el-search--take-over-from-isearch call-interactively el-search-pattern-backward] 2 (#$ . 201301) nil]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias el-search-search-backwards-from-isearch el-search-search-backward-from-isearch nil make-obsolete "el-search 1.6.7"] 4) #@78 Switch to `el-search-query-replace' from isearch. Reuse already given input. (defalias 'el-search-replace-from-isearch #[0 "\301\302\303!P\304\305!)\207" [el-search--initial-mb-contents "'" el-search--take-over-from-isearch t call-interactively el-search-query-replace] 3 (#$ . 201793) nil]) #@70 Switch to `el-search-occur' from isearch. Reuse already given input. (defalias 'el-search-occur-from-isearch #[0 "\301\302\303!\207" [el-search-occur-flag t call-interactively el-search-search-from-isearch] 2 (#$ . 202092) nil]) (byte-code "\302\303!\210\304\305\306\307\310\311\312\313\"\314BBB#\210\304\315\316\"\317\307\320\321\322\323\324\311\325\326\327BB\"\330\324\311\331\332\333BB\"\311\334\335\"\257 #\210\336\305 \337\340$\210\341\342!\207" [emacs-lisp-mode-map el-search-occur-mode-map require easymenu easy-menu-add-item nil ("Tools") "El-Search" ["Search Directory" el-search-directory] vector "Search Directory Recursively" #[0 "\301\302\303!)\207" [current-prefix-arg (4) call-interactively el-search-directory] 2 nil nil] (["Search 'load-path'" el-search-load-path] ["Search Emacs Elisp Sources" el-search-emacs-elisp-sources] ["Search Elisp Buffers" el-search-buffers] ["Search Repository" el-search-repository] ["List Patterns" el-search-list-defined-patterns]) lookup-key [menu-bar] ("Emacs-Lisp") ["Forward" el-search-pattern] ["Backward" el-search-pattern-backward] ["Sexp at Point" el-search-this-sexp] ["Resume Last Search" el-search-jump :enable el-search--current-search] apply "Resume Former Search" #[0 "\300\301!\207" [el-search-jump (4)] 2 nil nil] (:enable (cdr (ring-elements el-search-history))) ["Query-Replace" el-search-query-replace :enable (not buffer-read-only)] "Resume Query-Replace" #[0 "\301\302\"\207" [el-search--current-query-replace el-search-query-replace nil] 3 nil nil] (:enable el-search--current-query-replace) "Occur" #[0 "\301\302\303!)\207" [el-search-occur-flag t call-interactively el-search-pattern] 2 nil nil] easy-menu-do-define "El Occur Menu" ("El-Occur" ["Next Match" el-search-occur-next-match :help "Go to the next match"] ["Previous Match" el-search-occur-previous-match :help "Go to the previous match"] ["Jump to Source" el-search-occur-jump-to-match :help "Jump to corresponding position in source"] ["Adjust Pattern" el-search-edit-occur-pattern :help "Edit search pattern and revert"] ("Context" ["No context" el-search-occur-no-context :style radio :selected (eq el-search-get-occur-context-function 'el-search-occur-get-null-context)] ["Some context" el-search-occur-some-context :style radio :selected (eq el-search-get-occur-context-function 'el-search-occur-get-some-context)] ["Top-Level" el-search-occur-defun-context :style radio :selected (eq el-search-get-occur-context-function 'el-search-occur-get-defun-context)]) ("Outline" ["Hide all" el-search-occur-cycle :style radio :selected (not el-search-occur--outline-visible)] ["Show All" el-search-occur-cycle :style radio :selected el-search-occur--outline-visible])) provide el-search] 15)