%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/ |
Current File : //usr/local/share/emacs/27.2/lisp/ielm.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; 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!\210\300\302!\210\303\304\305\306\307\310%\210\311\312\313\314\315DD\316\317\320\307\304&\210\311\321\313\314\322DD\323\317\320\307\304\324\325& \210\311\326\313\314\327DD\330\317\331\307\304&\207" [require comint pp custom-declare-group ielm nil "Interaction mode for Emacs Lisp." :group lisp custom-declare-variable ielm-noisy funcall function #[0 "\300\207" [t] 1] "If non-nil, IELM will beep on error." :type boolean ielm-prompt-read-only #[0 "\300\207" [t] 1] "If non-nil, the IELM prompt is read only.\nThe read only region includes the newline before the prompt.\nSetting this variable does not affect existing IELM runs.\nThis works by setting the buffer-local value of `comint-prompt-read-only'.\nSetting that value directly affects new prompts in the current buffer.\n\nIf this option is enabled, then the safe way to temporarily\noverride the read-only-ness of IELM prompts is to call\n`comint-kill-whole-line' or `comint-kill-region' with no\nnarrowing in effect. This way you will be certain that none of\nthe remaining prompts will be accidentally messed up. You may\nwish to put something like the following in your init file:\n\n(add-hook \\='ielm-mode-hook\n (lambda ()\n (define-key ielm-map \"\\C-w\" \\='comint-kill-region)\n (define-key ielm-map [C-S-backspace]\n \\='comint-kill-whole-line)))\n\nIf you set `comint-prompt-read-only' to t, you might wish to use\n`comint-mode-hook' and `comint-mode-map' instead of\n`ielm-mode-hook' and `ielm-map'. That will affect all comint\nbuffers, including IELM buffers. If you sometimes use IELM on\ntext-only terminals or with `emacs -nw', you might wish to use\nanother binding for `comint-kill-whole-line'." :version "22.1" ielm-prompt #[0 "\300\207" [#1="ELISP> "] 1 #1#] "Prompt used in IELM.\nSetting this variable does not affect existing IELM runs.\n\nInterrupting the IELM process with \\<ielm-map>\\[comint-interrupt-subjob],\nand then restarting it using \\[ielm], makes the then current\ndefault value affect _new_ prompts. Unless the new prompt\ndiffers only in text properties from the old one, IELM will no\nlonger recognize the old prompts. However, executing \\[ielm]\ndoes not update the prompt of an *ielm* buffer with a running process.\nFor IELM buffers that are not called `*ielm*', you can execute\n\\[inferior-emacs-lisp-mode] in that IELM buffer to update the value,\nfor new prompts. This works even if the buffer has a running process." string] 10) #@213 Stored value of `ielm-prompt' in the current IELM buffer. This is an internal variable used by IELM. Its purpose is to prevent a running IELM process from being messed up when the user customizes `ielm-prompt'. (defvar ielm-prompt-internal "ELISP> " (#$ . 2924)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\315\316\317\"\210\300\317\302\303\320DD\321\322\323\306\324\310\311& \210\325\326\327\330#\210\325\331\327\332#\210\325\333\327\334#\207" [custom-declare-variable ielm-dynamic-return funcall function #[0 "\300\207" [t] 1] "Controls whether \\<ielm-map>\\[ielm-return] has intelligent behavior in IELM.\nIf non-nil, \\[ielm-return] evaluates input for complete sexps, or inserts a newline\nand indents for incomplete sexps. If nil, always inserts newlines." :type boolean :group ielm ielm-dynamic-multiline-inputs #[0 "\300\207" [t] 1] "Force multiline inputs to start from column zero?\nIf non-nil, after entering the first line of an incomplete sexp, a newline\nwill be inserted after the prompt, moving the input to the next line.\nThis gives more frame width for large indented sexps, and allows functions\nsuch as `edebug-defun' to work with such inputs." defvaralias inferior-emacs-lisp-mode-hook ielm-mode-hook #[0 "\300\207" [nil] 1] "Hooks to be run when IELM (`inferior-emacs-lisp-mode') is started." :options (eldoc-mode) hook put * variable-documentation "Most recent value evaluated in IELM." ** "Second-most-recent value evaluated in IELM." *** "Third-most-recent value evaluated in IELM."] 10) #@46 Match data saved at the end of last command. (defvar ielm-match-data nil (#$ . 4512)) #@78 Buffer in which IELM sexps will be evaluated. This variable is buffer-local. (defvar ielm-working-buffer nil (#$ . 4604)) #@42 Message to display when IELM is started. (defvar ielm-header "*** Welcome to IELM *** Type (describe-mode) for help.\n" (#$ . 4732)) (defvaralias 'inferior-emacs-lisp-mode-map 'ielm-map) #@23 Keymap for IELM mode. (defvar ielm-map (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\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\211\207" [make-sparse-keymap define-key " " ielm-tab " " ielm-return " " ielm-return-for-effect "\n" ielm-send-input "" eval-defun " " completion-at-point "" indent-sexp "" backward-delete-char-untabify "" ielm-change-working-buffer "" ielm-display-working-buffer "" ielm-print-working-buffer] 5) (#$ . 4926)) #@17 IELM mode menu. (defvar ielm-menu nil (#$ . 5510)) (easy-menu-do-define 'ielm-menu ielm-map "IELM mode menu." '("IELM" ["Change Working Buffer" ielm-change-working-buffer t] ["Display Working Buffer" ielm-display-working-buffer t] ["Print Working Buffer" ielm-print-working-buffer t])) #@54 Additional expressions to highlight in IELM buffers. (defvar ielm-font-lock-keywords '(("\\(^\\*\\*\\*[^*]+\\*\\*\\*\\)\\(.*$\\)" (1 font-lock-comment-face) (2 font-lock-constant-face))) (#$ . 5802)) #@21 Indent or complete. (defalias 'ielm-tab #[0 "h\300=\204 hz\301=\203 \302 \207\303 \207" [10 32 ielm-indent-line completion-at-point] 2 (#$ . 6008) nil]) #@61 Dynamically complete filename before point, if in a string. (defalias 'ielm-complete-filename #[0 "\301\302`\"8\205 \303 \207" [comint-last-input-start 3 parse-partial-sexp comint-filename-completion] 4 (#$ . 6169)]) #@66 Indent the current line as Lisp code if it is not a prompt line. (defalias 'ielm-indent-line #[0 "\212\300\301!\210n)\205\f \302 \207" [comint-bol t lisp-indent-line] 2 (#$ . 6394)]) #@64 Print the current IELM working buffer's name in the echo area. (defalias 'ielm-print-working-buffer #[0 "\301\302\303!\"\207" [ielm-working-buffer message "The current working buffer is: %s" buffer-name] 4 (#$ . 6583) nil]) #@147 Display the current IELM working buffer. Don't forget that selecting that buffer will change its value of `point' to its value of `window-point'! (defalias 'ielm-display-working-buffer #[0 "\301!\210\302 \207" [ielm-working-buffer display-buffer ielm-print-working-buffer] 2 (#$ . 6815) nil]) #@219 Change the current IELM working buffer to BUF. This is the buffer in which all sexps entered at the IELM prompt are evaluated. You can achieve the same effect with a call to `set-buffer' at the IELM prompt. (fn BUF) (defalias 'ielm-change-working-buffer #[257 "\301!\211\203 \302!\203 \211\202 \303\304\"\210\210\305 \207" [ielm-working-buffer get-buffer buffer-live-p error "No such buffer: %S" ielm-print-working-buffer] 5 (#$ . 7116) "bSet working buffer to: "]) #@250 Newline and indent, or evaluate the sexp before the prompt. Complete sexps are evaluated; for incomplete sexps inserts a newline and indents. If however `ielm-dynamic-return' is nil, this always simply inserts a newline. (fn &optional FOR-EFFECT) (defalias 'ielm-return #[256 "\203C \212\304\210\305\306 `\")\211@\307W\203! \3108\204! \311!\202B \203@ \212\312 \210\n\313\314!)\262)\203@ \212\306 b\210\315\307!\210)\316 \207\315 \207" [ielm-dynamic-return ielm-dynamic-multiline-inputs comint-prompt-regexp inhibit-changing-match-data nil parse-partial-sexp ielm-pm 1 3 ielm-send-input beginning-of-line t looking-at newline newline-and-indent] 5 (#$ . 7598) nil]) #@50 Like `ielm-return', but do not print the result. (defalias 'ielm-return-for-effect #[0 "\300\301!\207" [ielm-return t] 2 (#$ . 8280) nil]) #@19 (fn PROC INPUT) (defalias 'ielm-input-sender #[514 "\211\211\207" [ielm-input] 4 (#$ . 8425)]) #@81 Evaluate the Emacs Lisp expression after the prompt. (fn &optional FOR-EFFECT) (defalias 'ielm-send-input #[256 "\301\302 \210\303\")\207" [ielm-input nil comint-send-input ielm-eval-input] 4 (#$ . 8529) nil]) #@71 Return non-nil if STRING is all whitespace or a comment. (fn STRING) (defalias 'ielm-is-whitespace-or-comment #[257 "\211\301\230\206 \302\303\304\305#)\266\203\207" [inhibit-changing-match-data "" "\\`[ \n]*\\(?:;.*\\)*\\'" nil t string-match] 8 (#$ . 8749)]) #@307 Return a function to use for `standard-output' while in ielm eval. The returned function takes one character as input. Passing nil to this function instead of a character flushes the output buffer. Passing t appends a terminating newline if the buffer is nonempty, then flushes the buffer. (fn PROCESS) (defalias 'ielm-standard-output-impl #[257 "\300C\300C\301\302\303\304\305#\306\"\307$\301\310\311\304\305#\312\"\313\314%\207" [nil make-byte-code 0 "\303\300\304\305\301\242\237\"\"\210\306 \210\301\307\240\210\302\242\205 \310\302\242!\210\302\307\240\207" vconcat vector [comint-output-filter apply string redisplay nil cancel-timer] 5 257 "\303\304=\203 \300\242\203 \300\305\300\242B\240\210\304\262\202&