;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 "\300\301\302\303\304\305\304\306&\210\307\310\311\312\313DD\314\315\316%\210\307\317\311\312\320DD\321\315\322%\210\307\323\311\312\324DD\325\315\322\326\327&\210\307\330\311\312\331DD\332\315\333%\210\307\334\311\312\335DD\336\315\337%\210\340\334\302\341#\210\307\342\311\312\343DD\344\315\345%\210\307\346\311\312\347DD\350\315\322%\210\351\352\353\354#\207" [custom-declare-group eldoc nil "Show function arglist or variable docstring in echo area." :group lisp extensions custom-declare-variable eldoc-idle-delay funcall function #[0 "\300\207" [0.5] 1] "Number of seconds of idle time to wait before printing.\nIf user input arrives before this interval of time has elapsed after the\nlast input, no documentation will be printed.\n\nIf this variable is set to 0, no idle time is required." :type number eldoc-print-after-edit #[0 "\300\207" [nil] 1] "If non-nil eldoc info is only shown when editing.\nChanging the value requires toggling `eldoc-mode'." boolean eldoc-echo-area-display-truncation-message #[0 "\300\207" [t] 1] "If non-nil, provide verbose help when a message has been truncated.\nIf nil, truncated messages will just have \"...\" appended." :version "28.1" eldoc-minor-mode-string #[0 "\300\301!\207" [purecopy " ElDoc"] 2] "String to display in mode line when ElDoc Mode is enabled; nil for none." (choice string (const :tag "None" nil)) eldoc-argument-case #[0 "\300\207" [identity] 1] "Case to display argument names of functions, as a symbol.\nThis has two preferred values: `upcase' or `downcase'.\nActually, any name of a function which takes a string as an argument and\nreturns another string is acceptable.\n\nNote that this variable has no effect, unless\n`eldoc-documentation-strategy' handles it explicitly." (radio (function-item upcase) (function-item downcase) function) make-obsolete-variable "25.1" eldoc-echo-area-use-multiline-p #[0 "\300\207" [truncate-sym-name-if-fit] 1] "Allow long ElDoc doc strings to resize echo area display.\nIf value is t, never attempt to truncate messages, even if the\necho area must be resized to fit.\n\nIf the value is a positive number, it is used to calculate a\nnumber of logical lines of documentation that ElDoc is allowed to\nput in the echo area. If a positive integer, the number is used\ndirectly, while a float specifies the number of lines as a\nproporting of the echo area frame's height.\n\nIf value is the symbol `truncate-sym-name-if-fit' t, the part of\nthe doc string that represents a symbol's name may be truncated\nif it will enable the rest of the doc string to fit on a single\nline, without resizing the echo area.\n\nIf value is nil, a doc string is always truncated to fit in a\nsingle line of display in the echo area.\n\nAny resizing of the echo area additionally respects\n`max-mini-window-height'." (radio (const :tag "Always" t) (float :tag "Fraction of frame height" 0.25) (integer :tag "Number of lines" 5) (const :tag "Never" nil) (const :tag "Yes, but ask major-mode to truncate\n symbol names if it willenable argument list to fit on one\n line" truncate-sym-name-if-fit)) eldoc-echo-area-prefer-doc-buffer #[0 "\300\207" [nil] 1] "Prefer ElDoc's documentation buffer if it is showing in some frame.\nIf this variable's value is t, ElDoc will skip showing\ndocumentation in the echo area if the dedicated documentation\nbuffer (given by `eldoc-doc-buffer') is being displayed in some\nwindow. If the value is the symbol `maybe', then the echo area\nis only skipped if the documentation doesn't fit there." custom-declare-face eldoc-highlight-function-argument ((t (:inherit bold))) "Face used for the argument at point in a function's argument list.\nNote that this face has no effect unless the `eldoc-documentation-strategy'\nhandles it explicitly."] 8) #@329 Used by `eldoc-add-command' to initialize `eldoc-message-commands' obarray. It should probably never be necessary to do so, but if you choose to increase the number of buckets, you must do so before loading this file since the obarray is initialized at load time. Remember to keep it a prime number to improve hash performance. (defvar eldoc-message-commands-table-size 31 (#$ . 4191)) #@479 Commands after which it is appropriate to print in the echo area. ElDoc does not try to print function arglists, etc., after just any command, because some commands print their own messages in the echo area and these functions would instantly overwrite them. But `self-insert-command' as well as most motion commands are good candidates. This variable contains an obarray of symbols; do not manipulate it directly. Instead, use `eldoc-add-command' and `eldoc-remove-command'. (defvar eldoc-message-commands (make-vector eldoc-message-commands-table-size 0) (#$ . 4584)) #@278 Bookkeeping; elements are as follows: 0 - contains the last symbol read from the buffer. 1 - contains the string last displayed in the echo area for variables, or argument string for functions. 2 - `function' if function args, `variable' if variable documentation. (defvar eldoc-last-data (make-vector 3 nil) (#$ . 5163)) (make-obsolete-variable 'eldoc-last-data "use your own instead" "25.1") (defvar eldoc-last-message nil) #@23 ElDoc's timer object. (defvar eldoc-timer nil (#$ . 5607)) #@116 Idle time delay currently in use by timer. This is used to determine if `eldoc-idle-delay' is changed by the user. (defvar eldoc-current-idle-delay eldoc-idle-delay (#$ . 5673)) #@111 The function used by `eldoc--message' to display messages. It should receive the same arguments as `message'. (defvar eldoc-message-function 'eldoc-minibuffer-message (#$ . 5858)) #@172 Return an obarray containing common editing commands. When `eldoc-print-after-edit' is non-nil, ElDoc messages are only printed after commands contained in this obarray. (defalias 'eldoc-edit-message-commands #[0 "\301\302\303\"\304\305\306\307\310\311\312\"\313\"\314\315%\"\210\207" [obarray make-vector 31 0 "\\(?:delete\\|e\\(?:dit\\|lectric\\)\\|insert\\|newline\\)" mapatoms make-byte-code 257 "\303!\205\301\304!\305\306\307#)\266\203\205\310\304!\300\"\207" vconcat vector [inhibit-changing-match-data commandp symbol-name nil t string-match intern] 8 "\n\n(fn S)"] 10 (#$ . 6045)]) #@89 Non-nil if Eldoc mode is enabled. Use the command `eldoc-mode' to change this variable. (defvar eldoc-mode nil (#$ . 6660)) (make-variable-buffer-local 'eldoc-mode) #@426 Toggle echo area display of Lisp objects at point (ElDoc mode). ElDoc mode is a buffer-local minor mode. When enabled, the echo area displays information about a function or variable in the text where point is. If point is on a documented variable, it displays the first line of that variable's doc string. Otherwise it displays the argument list of the function called in the expression point is on. (fn &optional ARG) (defalias 'eldoc-mode #[256 "\305 \306=\203 ?\202\307!\310V\311\312 \204)\313\314!\203$\315\316!\210\311\202c\203I\n\2038\317\303!\210\320 \321\322\323\311\324$\210\321\325\326\311\324$\210\202c\327\303!\210\330\322\323\324#\210\330\325\326\324#\210\f\203c\331\f!\210\311\332\333\203m\334\202n\335\"\210\313\314!\203\222\305 \203\202\211\305 \232\203\222\336\315\337\203\215\340\202\216\341#\266\210\342 \210\207" [eldoc-mode eldoc-last-message eldoc-print-after-edit eldoc-message-commands eldoc-timer current-message toggle prefix-numeric-value 0 nil eldoc--supported-p called-interactively-p any message "There is no ElDoc support in this buffer" make-local-variable eldoc-edit-message-commands add-hook post-command-hook eldoc-schedule-timer t pre-command-hook eldoc-pre-command-refresh-echo-area kill-local-variable remove-hook cancel-timer run-hooks eldoc-mode-hook eldoc-mode-on-hook eldoc-mode-off-hook " in current buffer" "Eldoc mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 6832) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)]) (defvar eldoc-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\311\211%\207" [eldoc-mode-map eldoc-mode-hook variable-documentation put "Hook run after entering or leaving `eldoc-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode eldoc-mode eldoc-minor-mode-string boundp nil] 6) (defvar eldoc-mode-major-mode nil) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317& \207" [make-variable-buffer-local eldoc-mode-major-mode custom-declare-variable global-eldoc-mode funcall function #[0 "\300\207" [t] 1] "Non-nil if Global Eldoc mode is enabled.\nSee the `global-eldoc-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `global-eldoc-mode'." :set custom-set-minor-mode :initialize custom-initialize-delay :group eldoc :type boolean] 12) #@335 Toggle Eldoc mode in all buffers. With prefix ARG, enable Global Eldoc mode if ARG is positive; otherwise, disable it. If called from Lisp, enable the mode if ARG is omitted or nil. Eldoc mode is enabled in all buffers where `turn-on-eldoc-mode' would do it. See `eldoc-mode' for more information on Eldoc mode. (fn &optional ARG) (defalias 'global-eldoc-mode #[256 "\302 \303\300\304=\203\305\300!?\202\306!\307V\"\210\203.\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\202=\317\311\312\"\210\317\313\314\"\210\317\315\316\"\210\320 \211\203c\211@r\211q\210\203S\321 \210\202[ \203[\301\322!\210)A\266\202\202?\210\323\324\305\300!\203p\325\202q\326\"\210\327\330!\203\233\331\300!\210\302 \203\211\211\302 \232\203\233\332\333\334\305\300!\203\226\335\202\227\336#\266\210\337 \210\305\300!\207" [global-eldoc-mode eldoc-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook after-change-major-mode-hook global-eldoc-mode-enable-in-buffers find-file-hook global-eldoc-mode-check-buffers change-major-mode-hook global-eldoc-mode-cmhh remove-hook buffer-list turn-on-eldoc-mode -1 run-hooks global-eldoc-mode-hook global-eldoc-mode-on-hook global-eldoc-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Global Eldoc mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 9415) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)]) (defvar global-eldoc-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [global-eldoc-mode-map global-eldoc-mode-hook variable-documentation put "Hook run after entering or leaving `global-eldoc-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode global-eldoc-mode nil boundp] 6) (defvar eldoc-mode-set-explicitly nil nil) (make-variable-buffer-local 'eldoc-mode-set-explicitly) (defalias 'eldoc-mode-set-explicitly #[0 "\301\211\207" [eldoc-mode-set-explicitly t] 2]) (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put eldoc-mode-set-explicitly definition-name global-eldoc-mode add-hook eldoc-mode-hook] 4) (defvar global-eldoc-mode-buffers nil) (defalias 'global-eldoc-mode-enable-in-buffers #[0 "\305\211\211\2059\211@\306!\2032r\211q\210 \204/\n =\204/\f\203,\304\307!\210\310 \210\202/\310 \210 )A\266\202\202\262\207" [global-eldoc-mode-buffers eldoc-mode-set-explicitly eldoc-mode-major-mode major-mode eldoc-mode nil buffer-live-p -1 turn-on-eldoc-mode] 5]) (put 'global-eldoc-mode-enable-in-buffers 'definition-name 'global-eldoc-mode) (defalias 'global-eldoc-mode-check-buffers #[0 "\300 \210\301\302\303\"\207" [global-eldoc-mode-enable-in-buffers remove-hook post-command-hook global-eldoc-mode-check-buffers] 3]) (put 'global-eldoc-mode-check-buffers 'definition-name 'global-eldoc-mode) (defalias 'global-eldoc-mode-cmhh #[0 "\300\301p\"\210\302\303\304\"\207" [add-to-list global-eldoc-mode-buffers add-hook post-command-hook global-eldoc-mode-check-buffers] 3]) (put 'global-eldoc-mode-cmhh 'definition-name 'global-eldoc-mode) (defalias 'eldoc--eval-expression-setup #[0 "\302X\203\303\304\305\306B\307\310$\210\202\"\311\312\313\310\314$\210\311\312\315\310\314$\210\316\317\320!\207" [emacs-major-version eldoc-documentation-strategy 27 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)"] elisp-eldoc-documentation-function nil add-hook eldoc-documentation-functions elisp-eldoc-var-docstring t elisp-eldoc-funcall eldoc-documentation-default eldoc-mode 1] 5]) #@115 Turn on `eldoc-mode' if the buffer has ElDoc support enabled. See `eldoc-documentation-strategy' for more detail. (defalias 'turn-on-eldoc-mode #[0 "\300 \205\301\302!\207" [eldoc--supported-p eldoc-mode 1] 2 (#$ . 13181)]) #@119 Ensure `eldoc-timer' is running. If the user has changed `eldoc-idle-delay', update the timer to reflect the change. (defalias 'eldoc-schedule-timer #[0 "\203\n >\204\304\n\305\306#\n U?\205\n\307\n\310#\207" [eldoc-timer timer-idle-list eldoc-idle-delay eldoc-current-idle-delay run-with-idle-timer nil #[0 "\204 \205\302 \205\3031\304 0\207\305\306\"\210\307\262\207" [eldoc-mode global-eldoc-mode eldoc--supported-p (debug error) eldoc-print-current-symbol-info message "eldoc error: %s" nil] 4] timer-set-idle-time t] 4 (#$ . 13414)]) (defvar eldoc-mode-line-string nil) (put 'eldoc-mode-line-string 'risky-local-variable t) #@121 Display messages in the mode-line when in the minibuffer. Otherwise work like `message'. (fn FORMAT-STRING &rest ARGS) (defalias 'eldoc-minibuffer-message #[385 "\302 \203C\303\304\305\306\307$\210r\310\311\312\313 \"\206\314 \206\315 !q\210\2034<\203/\301\236\2044\316\317E;\205>\320\321#\322 )\207\320\323#\207" [mode-line-format eldoc-mode-line-string minibufferp add-hook minibuffer-exit-hook #[0 "\302\211\211\207" [eldoc-mode-line-string eldoc-last-message nil] 3] nil t window-buffer window-in-direction above minibuffer-window minibuffer-selected-window get-largest-window "" (eldoc-mode-line-string (" " eldoc-mode-line-string " ")) apply format-message force-mode-line-update message] 7 (#$ . 14072)]) (make-obsolete 'eldoc-message "use `eldoc-documentation-functions' instead." "eldoc-1.1.0") #@25 (fn &optional STRING) (defalias 'eldoc-message #[256 "\300!\207" [eldoc--message] 3 (#$ . 14905)]) #@138 Display STRING as an ElDoc message if it's non-nil. Also store it in `eldoc-last-message' and return that value. (fn &optional STRING) (defalias 'eldoc--message #[256 "\303\203\n\304\"\210\202\211\203\n\303!\210)\210\207" [eldoc-last-message message-log-max eldoc-message-function nil "%s"] 5 (#$ . 15014)]) #@73 Return non-nil if COMMAND is in `eldoc-message-commands'. (fn COMMAND) (defalias 'eldoc--message-command-p #[257 "\2119\205 \301\302!\"\207" [eldoc-message-commands intern-soft symbol-name] 4 (#$ . 15343)]) #@48 Reprint `eldoc-last-message' in the echo area. (defalias 'eldoc-pre-command-refresh-echo-area #[0 "\205\302 ?\205\303 \203\304 !\203\305!\207\306\211\207" [eldoc-last-message this-command minibufferp eldoc-display-message-no-interference-p eldoc--message-command-p eldoc--message nil] 2 (#$ . 15560)]) #@56 Tuple containing information about last ElDoc request. (defvar eldoc--last-request-state nil (#$ . 15879)) #@62 Compute information to store in `eldoc--last-request-state'. (defalias 'eldoc--request-state #[0 "p\300 `E\207" [buffer-modified-tick] 3 (#$ . 15992)]) #@38 Tell if ElDoc can use the echo area. (defalias 'eldoc-display-message-p #[0 "\302 \205 ?\205 \303 !\207" [this-command last-command eldoc-display-message-no-interference-p eldoc--message-command-p] 2 (#$ . 16150)]) (make-obsolete 'eldoc-display-message-p "Use `eldoc-documentation-functions' instead." "eldoc-1.6.0") #@62 Return nil if displaying a message would cause interference. (defalias 'eldoc-display-message-no-interference-p #[0 "\206 \302\301!\205 ?\207" [executing-kbd-macro edebug-active boundp] 2 (#$ . 16476)]) #@2261 Hook of functions that produce doc strings. A doc string is typically relevant if point is on a function-like name, inside its arg list, or on any object with some associated information. Each hook function is called with at least one argument CALLBACK, a function, and decides whether to display a doc short string about the context around point. - If that decision can be taken quickly, the hook function may call CALLBACK immediately following the protocol described below. Alternatively it may ignore CALLBACK entirely and return either the doc string, or nil if there's no doc appropriate for the context. - If the computation of said doc string (or the decision whether there is one at all) is expensive or can't be performed directly, the hook function should return a non-nil, non-string value and arrange for CALLBACK to be called at a later time, using asynchronous processes or other asynchronous mechanisms. To call the CALLBACK function, the hook function must pass it an obligatory argument DOCSTRING, a string containing the documentation, followed by an optional list of arbitrary keyword-value pairs of the form (:KEY VALUE :KEY2 VALUE2...). The information contained in these pairs is understood by members of `eldoc-display-functions', allowing the documentation-producing backend to cooperate with specific documentation-displaying frontends. For example, KEY can be: * `:thing', VALUE being a short string or symbol designating what is being reported on. It can, for example be the name of the function whose signature is being documented, or the name of the variable whose docstring is being documented. `eldoc-display-in-echo-area', a member of `eldoc-display-functions', sometimes omits this information depending on space constraints; * `:face', VALUE being a symbol designating a face which both `eldoc-display-in-echo-area' and `eldoc-display-in-buffer' will use when displaying `:thing''s value. Finally, major modes should modify this hook locally, for example: (add-hook \='eldoc-documentation-functions #\='foo-mode-eldoc nil t) so that the global value (i.e. the default value of the hook) is taken into account if the major mode specific function does not return any documentation. (defvar eldoc-documentation-functions nil (#$ . 16691)) #@577 Hook of functions tasked with displaying ElDoc results. Each function is passed two arguments: DOCS and INTERACTIVE. DOCS is a list (DOC ...) where DOC looks like (STRING :KEY VALUE :KEY2 VALUE2 ...). STRING is a string containing the documentation's text and the remainder of DOC is an optional list of keyword-value pairs denoting additional properties of that documentation. For commonly recognized properties, see `eldoc-documentation-functions'. INTERACTIVE says if the request to display doc strings came directly from the user or from ElDoc's automatic mechanisms'. (defvar eldoc-display-functions '(eldoc-display-in-echo-area eldoc-display-in-buffer) (#$ . 19014)) #@47 Buffer displaying latest ElDoc-produced docs. (defvar eldoc--doc-buffer nil (#$ . 19696)) #@45 Documentation items in `eldoc--doc-buffer'. (defvar eldoc--doc-buffer-docs nil (#$ . 19792)) #@30 (fn &optional INTERACTIVE) (defalias 'eldoc-doc-buffer #[256 "\301!\204\n\302\303!\211\205\304!\207" [eldoc--doc-buffer buffer-live-p get-buffer-create "*eldoc*" display-buffer] 3 (#$ . 19891) (list t)]) #@60 Ensure DOCS are displayed in an *eldoc* buffer. (fn DOCS) (defalias 'eldoc--format-doc-buffer #[257 "\304 \210rq\210\211 =\204\226\305\301!\210\211\306\307\310 \210\306\311\312\313\"\210\307\211\211\211\211:\203~\262\211A\262\242\262\262\211A\262\242\262\314\315\"\262\211\203m\211\316 \"\204[\211B\262\210\317\320\321\"\322\314\323\"#\324Q\262c\210\203w\325c\210A\262\202'\266\326\203\220\320\327\330\331\332#\"\202\221\333!\210)\266)\207" [eldoc--doc-buffer eldoc--doc-buffer-docs inhibit-read-only buffer-read-only eldoc-doc-buffer make-local-variable t nil erase-buffer local-set-key "q" quit-window plist-get :thing memql propertize format "%s" face :face ": " "\n" rename-buffer "*eldoc for %s*" mapconcat #[257 "\300\301\"\207" [format "%s"] 4 "\n\n(fn S)"] ", " "*eldoc*"] 15 (#$ . 20109) (list t)]) #@127 Given AVAILABLE lines, get buffer substring to display in echo area. Helper for `eldoc-display-in-echo-area'. (fn AVAILABLE) (defalias 'eldoc--echo-area-substring #[257 "eb\210\301\302w\210`\303!b\210\301\302x\210\212\301\302w\210m)?\304!\203#\302\202F\211\203C\305V\203C\203C\303\306!b\210`{\307\310\311\312!\"P\202F`{\207" [eldoc-echo-area-display-truncation-message " \n" nil line-end-position eldoc--echo-area-prefer-doc-buffer-p 1 0 format "\n(Documentation truncated. Use `%s' to see rest)" substitute-command-keys "\\[eldoc-doc-buffer]"] 8 (#$ . 20972)]) #@196 Tell if display in the echo area should be skipped. Helper for `eldoc-display-in-echo-area'. If TRUNCATEDP the documentation to potentially appear in the echo are is truncated. (fn TRUNCATEDP) (defalias 'eldoc--echo-area-prefer-doc-buffer-p #[257 "\302=\204\211\205\303=\205\304 !\207" [eldoc-echo-area-prefer-doc-buffer eldoc--doc-buffer t maybe get-buffer-window] 3 (#$ . 21555)]) #@132 Display DOCS in echo area. Honor `eldoc-echo-area-use-multiline-p' and `eldoc-echo-area-prefer-doc-buffer'. (fn DOCS INTERACTIVE) (defalias 'eldoc-display-in-echo-area #[514 "\304 ?\206\341\206\341\305 !?\206\341\204\306\307!\207\310\311 !S\n9\203+\n\203+ \202,\n\312!\203;\313\314 _!\202E\211\250\203D\211\202E\315\307\211\n\316=\203\213A\204\213@@\211\262\203\213\317\320\321 @A\322\"\"\211\262\203\213GW\203\213\323\324\"\204\213\325GG\326#V\203\213\202\326\247\203\247\211\327V\262\203\247r\330!q\210\331!)\202\326r\330!q\210eb\332\333!{)\211GV\203\314\334\335!?\205\324\336\"\202\324\334\307!?\205\324\211\262\211\205\335\306!\262\266\205\207" [this-command last-command eldoc-echo-area-use-multiline-p max-mini-window-height eldoc-display-message-no-interference-p eldoc--message-command-p eldoc--message nil window-width minibuffer-window floatp truncate frame-height just-one-line truncate-sym-name-if-fit format "%s" plist-get :thing string-match "\n" + 2 0 eldoc--format-doc-buffer eldoc--echo-area-substring line-end-position 1 eldoc--echo-area-prefer-doc-buffer-p t truncate-string-to-width] 12 (#$ . 21955)]) #@106 Display DOCS in a dedicated buffer. If INTERACTIVE is t, also display the buffer. (fn DOCS INTERACTIVE) (defalias 'eldoc-display-in-buffer #[514 "\300!\205\n\301!\207" [eldoc--format-doc-buffer display-buffer] 5 (#$ . 23147)]) #@92 Show first doc string for item at point. Default value for `eldoc-documentation-strategy'. (defalias 'eldoc-documentation-default #[0 "\300\301\302\303!\"\207" [run-hook-with-args-until-success eldoc-documentation-functions eldoc--make-callback :patient] 4 (#$ . 23385)]) #@162 Helper function for composing multiple doc strings. If EAGERLYP is non-nil show documentation as soon as possible, else wait for all doc strings. (fn EAGERLYP) (defalias 'eldoc--documentation-compose-1 #[257 "\300\301\302\303\304\305\306!\307\"\310\311%\"\210\312\207" [run-hook-wrapped eldoc-documentation-functions make-byte-code 257 "\301\300\203 \302\202\n\303!!\211\203\211;\203!\210\304\207" vconcat vector [eldoc--make-callback :eager :patient nil] 5 "\n\n(fn F)" t] 9 (#$ . 23664)]) #@111 Show multiple doc strings at once after waiting for all. Meant as a value for `eldoc-documentation-strategy'. (defalias 'eldoc-documentation-compose #[0 "\300\301!\207" [eldoc--documentation-compose-1 nil] 2 (#$ . 24175)]) #@109 Show multiple doc strings at once as soon as possible. Meant as a value for `eldoc-documentation-strategy'. (defalias 'eldoc-documentation-compose-eagerly #[0 "\300\301!\207" [eldoc--documentation-compose-1 t] 2 (#$ . 24405)]) #@102 Show most important doc string produced so far. Meant as a value for `eldoc-documentation-strategy'. (defalias 'eldoc-documentation-enthusiast #[0 "\300\301\302\"\210\303\207" [run-hook-wrapped eldoc-documentation-functions #[257 "\300\301!!\211;\203!\210\302\207" [eldoc--make-callback :enthusiast nil] 5 "\n\n(fn F)"] t] 3 (#$ . 24639)]) #@116 Defcustom helper macro for sorting `eldoc-documentation-strategy'. (fn MAIN SECONDARY VALUE DOCSTRING &rest MORE) (defalias 'eldoc--documentation-strategy-defcustom '(macro . #[1156 "\300\301\302\303BBBB\304\305\nD\305\nD\306BBBE\302\303 BBBB\307\305\nD\305\fD FEF\207" [if (< emacs-major-version 28) progn defcustom define-obsolete-variable-alias quote ("eldoc-1.1.0") defvaralias] 14 (#$ . 24992)])) (byte-code "\301\302\303\304#\305W\203N\306\307\310\311\312DD\313\314\315\316\317\320\321& \210\322\323\307\324#\210\325\211\203D\211@\323N\203=\307N\204=\326\307\323N#\210A\266\202\202#\210\327\323\307\330#\210\202e\306\323\310\311\331DD\313\314\315\316\317\320\321& \210\322\307\323\313#\210\324\207" [emacs-major-version function-put eldoc--documentation-strategy-defcustom lisp-indent-function 2 28 custom-declare-variable eldoc-documentation-function funcall function #[0 "\300\207" [eldoc-documentation-default] 1] "How to collect and organize results of `eldoc-documentation-functions'.\n\nThis variable controls how `eldoc-documentation-functions', which\nspecifies the sources of documentation, is queried and how its\nresults are organized before being displayed to the user. The\nfollowing values are allowed:\n\n- `eldoc-documentation-default': calls functions in the special\n hook in order until one is found that produces a doc string\n value. Display only that value;\n\n- `eldoc-documentation-compose': calls all functions in the\n special hook and displays all of the resulting doc strings\n together. Wait for all strings to be ready, and preserve their\n relative as specified by the order of functions in the hook;\n\n- `eldoc-documentation-compose-eagerly': calls all functions in\n the special hook and display as many of the resulting doc\n strings as possible, as soon as possibl. Preserving the\n relative order of doc strings;\n\n- `eldoc-documentation-enthusiast': calls all functions in the\n special hook and displays only the most important resulting\n docstring one at any given time. A function appearing first in\n the special hook is considered more important.\n\nThis variable can also be set to a function of no args that\nreturns something other than a string or nil and allows for some\nor all of the special hook `eldoc-documentation-functions' to be\nrun. In that case, the strategy function should follow that\nother variable's protocol closely and endeavor to display the\nresulting doc strings itself.\n\nFor backward compatibility to the \"old\" protocol, this variable\ncan also be set to a function that returns nil or a doc string,\ndepending whether or not there is documentation to display at\nall." :link (info-link "(emacs) Lisp Doc") :type (radio (function-item eldoc-documentation-default) (function-item eldoc-documentation-compose) (function-item eldoc-documentation-compose-eagerly) (function-item eldoc-documentation-enthusiast) (function :tag "Other function")) :version "28.1" defvaralias eldoc-documentation-strategy nil (saved-value saved-variable-comment) put make-obsolete-variable "eldoc-1.1.0" #[0 "\300\207" [eldoc-documentation-default] 1]] 11) #@54 Non-nil if an ElDoc function is set for this buffer. (defalias 'eldoc--supported-p #[0 "\302>?\205 \206\303\300!\207" [eldoc-documentation-strategy eldoc-documentation-functions (nil ignore) local-variable-p] 2 (#$ . 28163)]) #@285 Timer used by the `eldoc-documentation-enthusiast' strategy. When a doc string is encountered, it must endure a certain amount of time unchallenged until it is displayed to the user. This prevents blinking if a lower priority docstring comes in shortly before a higher priority one. (defvar eldoc--enthusiasm-curbing-timer nil (#$ . 28401)) (defalias 'eldoc 'eldoc-print-current-symbol-info) #@45 Helper for function `eldoc--make-callback'. (defvar eldoc--make-callback nil (#$ . 28800)) #@872 Make callback suitable for `eldoc-documentation-functions'. The return value is a function FN whose lambda list is (STRING &rest PLIST) and can be called by those functions. Its responsibility is always to register the docstring STRING along with options specified in PLIST as the documentation to display for each particular situation. METHOD specifies how the callback behaves relative to other competing elements in `eldoc-documentation-functions'. It can have the following values: - `:enthusiast' says to display STRING as soon as possible if there's no higher priority doc string; - `:patient' says to display STRING along with all other competing strings but only when all of all `eldoc-documentation-functions' have been collected; - `:eager' says to display STRING along with all other competing strings so far, as soon as possible. (fn METHOD) (defalias 'eldoc--make-callback #[257 "!\207" [eldoc--make-callback] 3 (#$ . 28898)]) #@990 Invoke `eldoc-documentation-strategy' function. If INTERACTIVE is non-nil, the request came directly from a user command, otherwise it came from ElDoc's idle timer, `eldoc-timer'. That function's job is to run the `eldoc-documentation-functions' special hook, using the `run-hook' family of functions. ElDoc's built-in strategy functions play along with the `eldoc--make-callback' protocol, using it to produce a callback argument to feed the functions that the user places in `eldoc-documentation-functions'. Whenever the strategy determines it has information to display to the user, this function passes responsibility to the functions in `eldoc-display-functions'. Other third-party values of `eldoc-documentation-strategy' should not use `eldoc--make-callback'. They must find some alternate way to produce callbacks to feed to `eldoc-documentation-function' and should endeavour to display the docstrings eventually produced, using `eldoc-display-functions'. (fn INTERACTIVE) (defalias 'eldoc--invoke-strategy #[257 "\302C\302C\303C\303C\303C\303\304\305\306\307\310 !\311\"\312\313%\240\210\304\302\314\307\310\f\n\"\315\"\316$\240\210\304\317\320\307\310\n\n\n\n\n%\321\"\322\323%\262\211 \211;\203Y\242\302\303#\210\242 \202d\211\204c\324\303!\202d\325)\262\266\203\207" [eldoc--make-callback eldoc-documentation-strategy 0 nil make-byte-code 771 "\205G\301V\205\300BB\300\242B\240\207" vconcat vector [0] 7 "\n\n(fn POS STRING PLIST)" "\302\303\304\305\301\306\301\242\307\"\240\"\300#\207" [run-hook-with-args eldoc-display-functions mapcar cdr sort #[514 "@@W\207" [] 4 "\n\n(fn A B)"]] 8 257 "\300\242\300\211\242T\240\210\305\306\"\203\"\307\310\311\312\313\302\303\304$\314\"\315\316%\202d\305\317\"\203B\301\211\242T\240\210\307\310\320\312\313\301\303\304$\321\"\322\316%\202d\305\323\"\203[\307\310\324\312\313\303\304#\325\"\322\316%\202d\326\327\330#\205d\331\207" [eql :enthusiast make-byte-code 385 "\203<\300\242\306\211\307:\203'@\262@\262\303W?\211\262\203'A\262\202 \211\205,\307\266\204\203<\300\306\240\210\301\242\303#\210\310\f!\203L\f >\203L\311\f!\210\312\303\313U?\205U\314\306\302\242#\307\207" vconcat vector [eldoc--enthusiasm-curbing-timer timer-list nil t timerp cancel-timer run-at-time 0 0.3] 8 "\n\n(fn STRING &rest PLIST)" :patient "\301\242\303#\210\300\211\242S\240\304U\203\302\242 \210\305\207" [0 t] 6 :eager "\300\242\302#\210\301\242 \210\303\207" [t] error "cl-ecase failed: %s, %s" (:enthusiast :patient :eager) nil] 11 "\n\n(fn METHOD)" eldoc--message t] 17 (#$ . 29864)]) #@54 Document thing at point. (fn &optional INTERACTIVE) (defalias 'eldoc-print-current-symbol-info #[256 "\305\203 \306\307!\202<\310 \211\262\232?\205<\307\211\31115\305\31220\312\313 \206.\306\305!)0)0\202;\210\307\314\315!)\207" [eldoc--last-request-state non-essential inhibit-quit throw-on-input quit-flag nil eldoc--invoke-strategy t eldoc--request-state (quit) #1=#:input input-pending-p eval (ignore nil)] 4 (#$ . 32479) '(t)]) #@76 Add each of CMDS to the obarray `eldoc-message-commands'. (fn &rest CMDS) (defalias 'eldoc-add-command #[128 "\211\211\205\211@\2119\203\301!\262\302\"\303L\210A\266\202\202\207" [eldoc-message-commands symbol-name intern t] 6 (#$ . 32933)]) #@81 Pass every prefix completion of NAMES to `eldoc-add-command'. (fn &rest NAMES) (defalias 'eldoc-add-command-completions #[128 "\211\211\205\211@\301\302\303\304#\"\210A\266\202\202\207" [obarray apply eldoc-add-command all-completions commandp] 9 (#$ . 33193)]) #@81 Remove each of CMDS from the obarray `eldoc-message-commands'. (fn &rest CMDS) (defalias 'eldoc-remove-command #[128 "\211\211\205\211@\2119\203\301!\262\302\"\210A\266\202\202\207" [eldoc-message-commands symbol-name unintern] 6 (#$ . 33469)]) #@84 Pass every prefix completion of NAMES to `eldoc-remove-command'. (fn &rest NAMES) (defalias 'eldoc-remove-command-completions #[128 "\211\211\205\211@\301\302\303\"\"\210A\266\202\202\207" [eldoc-message-commands apply eldoc-remove-command all-completions] 8 (#$ . 33732)]) (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336&\210\337\340!\207" [eldoc-add-command-completions "back-to-indentation" "backward-" "beginning-of-" "delete-other-windows" "delete-window" "down-list" "end-of-" "exchange-point-and-mark" "forward-" "goto-" "handle-select-window" "indent-for-tab-command" "left-" "mark-page" "mark-paragraph" "mouse-set-point" "move-" "move-beginning-of-" "move-end-of-" "newline" "next-" "other-window" "pop-global-mark" "previous-" "recenter" "right-" "scroll-" "self-insert-command" "split-window-" "up-list" provide eldoc] 31)