;ELC ;;; compiled by kwzh@psilocin.gnu.ai.mit.edu on Sun Jul 7 20:01:49 1996 ;;; from file /gd/gnu/emacs/19.0/lisp/lisp-mode.el ;;; emacs version 19.31.91.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`lisp-mode.el' was compiled for Emacs 19.29 or later")) #@2  (defvar lisp-mode-syntax-table nil (#$ . 481)) #@2  (defvar emacs-lisp-mode-syntax-table nil (#$ . 534)) #@2  (defvar lisp-mode-abbrev-table nil (#$ . 593)) (byte-code "„¼Áà \nÄWƒÅ\nÆ#ˆ\nT‰‚\nÇÇÈWƒ1Å\nÆ#ˆ\nT‰‚ÉÉÊWƒFÅ\nÆ#ˆ\nT‰‚4ËËÌWƒ[Å\nÆ#ˆ\nT‰‚IÅÍÎ#ˆÅÏÎ#ˆÅÐÑ#ˆÅÒÑ#ˆÅÓÔ#ˆÅÕÖ#ˆÅ×Ö#ˆÅØÖ#ˆÅÙÆ#ˆÅÚÖ#ˆÅÛÜ#ˆÅÝÞ#ˆÅßà#ˆÅáâ#ˆÅÉã#ˆÅäå#ˆ)&„Ûç!&Åèé&#ˆÅÉÆ&#ˆÅäÆ&#ˆêëì\"‡" [emacs-lisp-mode-syntax-table 0 i make-syntax-table 48 modify-syntax-entry "_ " 58 65 91 97 123 128 32 " " 9 10 "> " 13 59 "< " 96 "' " 39 44 46 35 34 "\" " 92 "\\ " 40 "() " 41 ")( " "(] " 93 ")[ " lisp-mode-syntax-table copy-syntax-table 124 "\" " define-abbrev-table lisp-mode-abbrev-table nil] 5) #@74 Imenu generic expression for Lisp mode. See `imenu-generic-expression'. (defvar lisp-imenu-generic-expression (quote ((nil "^\\s-*(def\\(un\\|subst\\|macro\\|advice\\)\\s-+\\([-A-Za-z0-9+]+\\)" 2) ("Variables" "^\\s-*(def\\(var\\|const\\)\\s-+\\([-A-Za-z0-9+]+\\)" 2) ("Types" "^\\s-*(def\\(type\\|struct\\|class\\|ine-condition\\)\\s-+\\([-A-Za-z0-9+]+\\)" 2))) (#$ . 1219)) (defalias 'lisp-mode-variables #[(lisp-syntax) "ƒÁ\n!ˆ ÅÆ!ˆÈPÅÉ!ˆ ÅÊ!ˆË\nÅÌ!ˆÍ\fÅÎ!ˆÏÅÐ!ˆÑÅÒ!ˆÓÅÔ!ˆËÅÕ!ˆÖÅ×!ˆØÅÙ!ˆÚÅÛ!ˆÜÅÝ!ˆÞÅß!ˆ ‰‡" [lisp-syntax set-syntax-table lisp-mode-syntax-table lisp-mode-abbrev-table local-abbrev-table make-local-variable paragraph-start page-delimiter "\\|$" paragraph-separate paragraph-ignore-fill-prefix t fill-paragraph-function lisp-fill-paragraph adaptive-fill-mode nil indent-line-function lisp-indent-line indent-region-function lisp-indent-region parse-sexp-ignore-comments outline-regexp ";;; \\|(...." comment-start ";" comment-start-skip "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *" comment-column 40 comment-indent-function lisp-comment-indent imenu-generic-expression lisp-imenu-generic-expression] 2]) #@56 Keymap for commands shared by all sorts of Lisp modes. (defvar shared-lisp-mode-map nil (#$ . 2383)) (byte-code "„Á ÂÃÄ#ˆÂÅÆ#ˆÁ‡" [shared-lisp-mode-map make-sparse-keymap define-key "" indent-sexp "" backward-delete-char-untabify] 4) #@95 Keymap for Emacs Lisp mode. All commands in `shared-lisp-mode-map' are inherited by this map. (defvar emacs-lisp-mode-map nil (#$ . 2632)) (byte-code "„ƒÁÂ!Á \f¤ÅÆÇ#ˆÅÈÉ#ˆÅÊÁ #ˆÅË B#ˆÅ ÌÍ#ˆÅ ÎÏ#ˆÅ ÐÑ#ˆÅ ÒÓ#ˆÅ ÔÕ#ˆÅ Ö×#ˆÅ ØÙ#ˆÅ ÚÛ#ˆÅ ÜÝ#ˆÅ Þß#ˆÅ àá#ˆÅ âã#ˆäåæç#ˆäèæç#ˆäéæç#ˆ)Á‡" [emacs-lisp-mode-map make-sparse-keymap "Emacs-Lisp" map shared-lisp-mode-map define-key " " lisp-complete-symbol "" eval-defun [menu-bar] [menu-bar emacs-lisp] [edebug-defun] ("Instrument Function for Debugging" . edebug-defun) [byte-recompile] ("Byte-recompile Directory..." . byte-recompile-directory) [emacs-byte-compile-and-load] ("Byte-compile And Load" . emacs-lisp-byte-compile-and-load) [byte-compile] ("Byte-compile This File" . emacs-lisp-byte-compile) [separator-eval] ("--") [eval-buffer] ("Evaluate Buffer" . eval-current-buffer) [eval-region] ("Evaluate Region" . eval-region) [eval-sexp] ("Evaluate Last S-expression" . eval-last-sexp) [separator-format] ("--") [comment-region] ("Comment Out Region" . comment-region) [indent-region] ("Indent Region" . indent-region) [indent-line] ("Indent Line" . lisp-indent-line) put eval-region menu-enable mark-active comment-region indent-region] 5) #@54 Byte compile the file containing the current buffer. (defalias 'emacs-lisp-byte-compile #[nil "ƒÁ!‡ÂÃ!‡" [buffer-file-name byte-compile-file error "The buffer must be saved in a file first"] 2 (#$ . 3835) nil]) #@77 Byte-compile the current file (if it has changed), then load compiled code. (defalias 'emacs-lisp-byte-compile-and-load #[nil "„ÁÂ!ˆÃÄ!ˆÅ ƒÆÇÈÉ \"!ƒÊ ˆË!\fÍ\f\"ƒ2Î\f!‚6ÏÐ\")‡" [buffer-file-name error "The buffer must be saved in a file first" require bytecomp buffer-modified-p y-or-n-p format "save buffer %s first? " buffer-name save-buffer byte-compile-dest-file compiled-file-name file-newer-than-file-p load-file byte-compile-file t] 4 (#$ . 4056) nil]) #@281 Major mode for editing Lisp code to run in Emacs. Commands: Delete converts tabs to spaces as it moves back. Blank lines separate paragraphs. Semicolons start comments. \{emacs-lisp-mode-map} Entry to this mode calls the value of `emacs-lisp-mode-hook' if that value is non-nil. (defalias 'emacs-lisp-mode #[nil "À ˆÁ\n!ˆÃ\f!ˆÅÇÉÊ!ˆËÌ!‡" [kill-all-local-variables use-local-map emacs-lisp-mode-map set-syntax-table emacs-lisp-mode-syntax-table emacs-lisp-mode major-mode "Emacs-Lisp" mode-name lisp-mode-variables nil run-hooks emacs-lisp-mode-hook] 2 (#$ . 4537) nil]) #@98 Keymap for ordinary Lisp mode. All commands in `shared-lisp-mode-map' are inherited by this map. (defvar lisp-mode-map nil (#$ . 5118)) (byte-code "„Á \n¤ÃÄÅ#ˆÃÆÇ#ˆÁ‡" [lisp-mode-map make-sparse-keymap shared-lisp-mode-map define-key "" lisp-eval-defun "" run-lisp] 4) #@398 Major mode for editing Lisp code for Lisps other than GNU Emacs Lisp. Commands: Delete converts tabs to spaces as it moves back. Blank lines separate paragraphs. Semicolons start comments. \{lisp-mode-map} Note that `run-lisp' may be used either to start an inferior Lisp job or to switch back to an existing one. Entry to this mode calls the value of `lisp-mode-hook' if that value is non-nil. (defalias 'lisp-mode #[nil "À ˆÁ\n!ˆÃÅÇÈ!ˆÉ\n!ˆËÌ!‡" [kill-all-local-variables use-local-map lisp-mode-map lisp-mode major-mode "Lisp" mode-name lisp-mode-variables t set-syntax-table lisp-mode-syntax-table run-hooks lisp-mode-hook] 2 (#$ . 5404) nil]) #@65 Send the current defun to the Lisp process made by \[run-lisp]. (defalias 'lisp-eval-defun #[nil "ÀÁ!‡" [error "Process lisp does not exist"] 2 (#$ . 6064) nil]) #@100 Keymap for Lisp Interaction moe. All commands in `shared-lisp-mode-map' are inherited by this map. (defvar lisp-interaction-mode-map nil (#$ . 6233)) (byte-code "„Á \n¤ÃÄÅ#ˆÃÆÇ#ˆÃÈÉ#ˆÁ‡" [lisp-interaction-mode-map make-sparse-keymap shared-lisp-mode-map define-key "" eval-defun " " lisp-complete-symbol "\n" eval-print-last-sexp] 4) #@451 Major mode for typing and evaluating Lisp forms. Like Lisp mode except that \[eval-print-last-sexp] evals the Lisp expression before point, and prints its value into the buffer, advancing point. Commands: Delete converts tabs to spaces as it moves back. Paragraphs are separated only by blank lines. Semicolons start comments. \{lisp-interaction-mode-map} Entry to this mode calls the value of `lisp-interaction-mode-hook' if that value is non-nil. (defalias 'lisp-interaction-mode #[nil "À ˆÁ\n!ˆÃÅÇ!ˆÉÊ!ˆËÌ!‡" [kill-all-local-variables use-local-map lisp-interaction-mode-map lisp-interaction-mode major-mode "Lisp Interaction" mode-name set-syntax-table emacs-lisp-mode-syntax-table lisp-mode-variables nil run-hooks lisp-interaction-mode-hook] 2 (#$ . 6584) nil]) #@62 Evaluate sexp before point; print value into current buffer. (defalias 'eval-print-last-sexp #[nil "pÁ ˆÂÃ!ˆÁ )‡" [standard-output terpri eval-last-sexp t] 2 (#$ . 7364) nil]) #@105 Evaluate sexp before point; print value in minibuffer. With argument, print output into current buffer. (defalias 'eval-last-sexp #[(eval-last-sexp-arg-internal) "ƒp‚ Á`ÄÅ ÇÈŽŠÉ\n!ˆËÌ!ˆŒe\n}ˆÍp!+!)!*‡" [eval-last-sexp-arg-internal t opoint standard-output prin1 syntax-table stab eval ((set-syntax-table stab)) set-syntax-table emacs-lisp-mode-syntax-table forward-sexp -1 read] 4 (#$ . 7548) "P"]) #@134 Evaluate defun that point is in or before. Print value in minibuffer. With argument, insert value in current buffer after the defun. (defalias 'eval-defun #[(eval-defun-arg-internal) "ƒp‚ ÁŠÂ ˆÃ ˆÄp!) @Ç=ƒ) ££ƒ)È ABÉÊ !!*‡" [eval-defun-arg-internal t end-of-defun beginning-of-defun read form standard-output defvar defconst prin1 eval] 3 (#$ . 7963) "P"]) (defalias 'lisp-comment-indent #[nil "ÀÁ!ƒi‡ÀÂ!ƒà ‰<ƒ\f@‚\f)‡ÅÆxˆnƒ*Ç‚,iT]‡" [looking-at "\\s<\\s<\\s<" "\\s<\\s<" calculate-lisp-indent tem " " nil 0 comment-column] 3]) #@2  (defconst lisp-indent-offset nil (#$ . 8520)) #@2  (defconst lisp-indent-function (quote lisp-indent-function) (#$ . 8572)) #@130 Indent current line as Lisp code. With argument, indent any additional lines of the same expression rigidly along with this one. (defalias 'lisp-indent-line #[(&optional whole-exp) "À Á‰‰d`ZÇyˆ`ÈÁwˆÉÊ!ƒ$d\nZb‚ŽÉË!ƒ9ÉÌ!„9Í ˆÎuˆ‚W<ƒD@iZ‰ÇU„W\f`|ˆjˆd\nZ`Vƒdd\nZbˆ…Ž ÇU?…ŽŠ\fbˆÐÑ!ˆ`\fbˆÑyˆ` \fV)…ŽÒ\f #-‡" [calculate-lisp-indent nil pos end beg shift-amt indent 0 " " looking-at "\\s<\\s<\\s<" "\\s<" "\\s<\\s<" indent-for-comment -1 whole-exp forward-sexp 1 indent-code-rigidly] 7 (#$ . 8653) "P"]) (byte-code "À BÀ‡" [calculate-lisp-indent-last-sexp current-load-list] 2) #@398 Return appropriate indentation for current line as Lisp code. In usual case returns an integer: the column to indent to. Can instead return a list, whose car is the column to indent to. This means that following lines at the same level of indentation should not necessarily be indented the same way. The second element of the list is the buffer position of the start of the containing expression. (defalias 'calculate-lisp-indent #[(&optional parse-start) "ŠÀyˆ`Á‰‰ÂÁ‰ \nƒ\"\nbˆ‚%Ë ˆ` Wƒ7Ì` À#‚% ƒ~ƒ~Àœ‰ÀVƒ~ÁÍœΜ‰Tbˆ\fƒ7\f`Vƒ7Ì\f À#‰A@‰ƒz)‚7 „Ï Tbˆ\f„i‚ÏÌ`\fÀÂ$ˆÐÑ!„ÏŠÎyˆ`)\fVƒ¿`\fU„¹ÒÎ!ˆÌ`\fÀÂ$ˆÓ ˆ‚Ï\fbˆÀyˆÌ`\fÀÂ$ˆÓ ˆiÕœƒå bˆÖÁwˆi‚¨ƒù ƒù bˆi\\‚†ØÙ!ƒƒ „ \"†‚. ‡" [0 nil t containing-sexp calculate-lisp-indent-last-sexp retry desired-indent paren-depth state indent-point parse-start beginning-of-defun parse-partial-sexp 2 1 peek looking-at "\\s(" forward-sexp backward-prefix-chars normal-indent 3 " " lisp-indent-offset boundp lisp-indent-function] 8 (#$ . 9266)]) (defalias 'lisp-indent-function #[(indent-point state) "i œTbˆÃ`\fÅÆ$ˆ Çœƒ:ÈÉ!„:ŠÂyˆ`)\fV„3\fbˆÅyˆÃ`\fÅÆ$ˆÊ ˆi‚—`ËÂ!ˆ`{Ì Ï!ÐN†UÏ!ÑN‰ Ò=„r „zGÓVƒzÔÕ\"ƒzÖ \"‚– ¨ƒ‹Ø $‚– …– \"*)‡" [normal-indent state 1 parse-partial-sexp calculate-lisp-indent-last-sexp 0 t 2 looking-at "\\sw\\|\\s_" backward-prefix-chars forward-sexp nil method function intern-soft lisp-indent-function lisp-indent-hook defun 3 string-match "\\`def" lisp-indent-defform indent-point lisp-indent-specform] 6]) #@67 Number of columns to indent the second line of a `(def...)' form. (defconst lisp-body-indent 2 (#$ . 10858)) (defalias 'lisp-indent-specform #[(count state indent-point normal-indent) "Áœ\nɉbˆi\f\\ÁuˆÉÁ!ˆÊ` ÁÌ$ˆ` Wƒ3ÃÍ΄%\nÏVƒV\nZÁXƒN\f‰\\\\D‚vD‚vÏUƒc\nÏU„p\nÏUƒt Xƒt ‚v,‡" [state 1 count nil containing-form-column body-indent i containing-form-start lisp-body-indent forward-sexp parse-partial-sexp indent-point t (byte-code "SÁÂ!ˆÃ`\fÂÅ$‡" [count forward-sexp 1 parse-partial-sexp indent-point t] 5) ((error)) 0 normal-indent] 6]) (defalias 'lisp-indent-defform #[(state indent-point) "A@bˆÁyˆ`AA@V…A@bˆ\ni\\‡" [state 1 lisp-body-indent] 2]) (byte-code "ÀÁÂÃ#ˆÀÄÂÃ#ˆÀÅÂÆ#ˆÀÇÂÈ#ˆÀÉÂÊ#ˆÀËÂÆ#ˆÀÌÂÆ#ˆÀÍÂÆ#ˆÀÎÂÆ#ˆÀÏÂÆ#ˆÀÐÂÈ#ˆÀÑÂÈ#ˆÀÒÂÈ#ˆÀÓÂÊ#ˆÀÔÂÈ#ˆÀÕÂÊ#ˆÀÖÂÈ#ˆÀ×ÂÈ#‡" [put lambda lisp-indent-function defun autoload progn 0 prog1 1 prog2 2 save-excursion save-window-excursion save-selected-window save-restriction save-match-data let let* while if catch condition-case unwind-protect with-output-to-temp-buffer] 4) #@145 Indent each line of the list starting just after point. If optional arg ENDPOS is given, indent each line, stopping when ENDPOS is encountered. (defalias 'indent-sexp #[(&optional endpos) "ÀCÁ\n?… ``À‰‰‰‰‰ \n \f\n„+ŠÍÎ!ˆ)ŠÀ\nƒ9`\nW‚<?…p À „‹m‰„‹Ï`Àˆ`À‰\f%‰@ Ð\f›@ƒrÑ ˆÀˆÐ\f›À ˆÒ\f›@ƒ…ÎyˆÓ\f›À ˆ‚EÔ‰ƒI\nƒ¬ ÁXƒ¬Õ\fÖ [À\"\"\f ZÁ „»\n„» ÁXƒÆÎyˆ‚[ VƒÜ\fA\fS‰‚È WƒóÀ\fB\fT‰‚ÞÎyˆ`×Àwˆm„[ØÙ!„[\f@ƒ\f@ÁYƒ\f@‚MÚ\f@ƒ*\f@[‚,\n!‰¨ƒ?\f‰ ˆ‚L\fA@[ ˆ@)i U„[`|ˆ jˆ„/` U‰„/` ‚/. ‡" [nil 0 endpos this-indent state inner-loop-done outer-loop-done bol last-depth last-point starting-point next-depth indent-stack forward-sexp 1 parse-partial-sexp 4 indent-for-comment 3 5 t append make-list " " looking-at "\\s<\\|\n" calculate-lisp-indent val] 11 (#$ . 11930) nil]) (defalias 'lisp-indent-region #[(start end) "ŠÀ ! bˆnƒl„Ä ˆÅ\n!ˆ\nƉ“*‡" [copy-marker end endmark start lisp-indent-line indent-sexp nil] 3]) #@217 Like \[fill-paragraph], but handle Emacs Lisp comments. If any of the current line is a comment, fill the comment or the paragraph of it that point is in, preserving the comment's indentation and initial semicolons. (defalias 'lisp-fill-paragraph #[(&optional justify) "À‰‰ŠÄyˆÅÆ!ƒÇĔĕ{‚9ÀÈɃ9ÇÇÊiË¥Ì\"Êi˦Í\"Ĕĕ{Q) „FÎ!ˆ‚ÍŠŒÄyˆŠÐyÄUƒYÅÑ!„LÅÒ!„bÓyˆ`)ŠÓyˆÅÑ!„e`)}ˆÕP‰ÕPÀ \n…ŠÓyˆ`)Ú ˆn„šÛÓ!ˆ`Ý ˆ`=ƒªÐyˆ`ßÀŠbˆÅ!?…Èà!!ˆ`)%ˆ. +LJ" [nil comment-fill-prefix has-code-and-comment has-comment 0 looking-at "[ ]*;[; ]*" t (byte-code "ŒeŠÀˆ`)}ˆÁÂ!„/ÃÀwˆ`fÄ=ƒ!Åuˆ‚\n`fÆ>ƒ\nÇÈ!ˆ‚\nÁÉ!)‡" [nil looking-at ";\\|$" "^;\n\"\\\\?" 92 2 (34 63) forward-sexp 1 ";+[ ]*"] 2) ((error)) make-string 8 9 32 fill-paragraph justify -1 "^[ ]*;" ".*;" 1 paragraph-start "\\|[ ;]*$" paragraph-separate paragraph-ignore-fill-prefix fill-prefix after-line forward-paragraph newline end backward-paragraph beg fill-region-as-paragraph re-search-forward comment-start-skip] 8 (#$ . 12959) "P"]) #@366 Indent all lines of code, starting in the region, sideways by ARG columns. Does not affect lines starting inside comments or strings, assuming that the start of the region is not inside them. Called from a program, takes args START, END, COLUMNS and NOCHANGE-REGEXP. The last is a regexp which, if matched at the beginning of a line, means don't indent that line. (defalias 'indent-code-rigidly #[(start end arg &optional nochange-regexp) "ÀŠ\nbˆÃ \fbˆn„Å`Æyˆ`À‰ %`\nW…^Ç ›@„Pƒ4É!„PÊ  `ÌÀwˆ`|ˆl„OÍÎ \\]Î\"ˆ)Å`Æyˆ`À‰ %‚*‡" [nil state end point-marker start parse-partial-sexp 1 3 nochange-regexp looking-at current-indentation indent " " indent-to 0 arg] 6 (#$ . 13996) "r\np"]) (provide (quote lisp-mode))