summaryrefslogtreecommitdiff
path: root/lisp/textmodes/texinfo.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2021-03-17 23:32:39 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2021-03-17 23:32:39 -0400
commit485622bbd1afad4c1e39a245cf57605208ca606f (patch)
tree8388854d1b0eaa4e82f55862149c9def4ca1ccc6 /lisp/textmodes/texinfo.el
parentc28ba117782cd825b2a4dd6ffcc0206ecf36898e (diff)
downloademacs-485622bbd1afad4c1e39a245cf57605208ca606f.tar.gz
* lisp/textmodes: Use lexical-binding
* lisp/textmodes/enriched.el: Use lexical-binding. (enriched-mode): Use `delete-dups` to avoid `add-to-list` on a local variable. * lisp/textmodes/makeinfo.el: Use lexical-binding. (makeinfo-region): Remove unused var `filename-or-header`. * lisp/textmodes/refbib.el: Use lexical-binding. (r2b-put-field): Remove unused var `multi-line`. (r2b-barf-output): Remove unused var `match`. * lisp/textmodes/refer.el: Use lexical-binding. (refer-find-entry-internal): Remove unused vars `old-buffer` and `found`. * lisp/textmodes/reftex-auc.el: Use lexical-binding. (LaTeX-add-bibitems): Declare function. (reftex-plug-into-AUCTeX): Use `add-function` and `advice-add` so we can properly unplug. * lisp/textmodes/reftex-cite.el: Use lexical-binding. (reftex-create-bibtex-file): Remove unused var `file`. (reftex--found-list): Declare var. (reftex-offer-bib-menu): Rename local var to `reftex--found-list`. * lisp/textmodes/reftex-dcr.el: Use lexical-binding. (reftex-use-itimer-in-xemacs): Delete XEmacs-only var. (reftex-toggle-auto-view-crossref): Delete XEmacs-only code. (reftex-start-itimer-once): Delete XEmacs-only function. * lisp/textmodes/reftex-global.el: Use lexical-binding. (reftex-isearch-push-state-function): Use a closure instead of `(lambda). * lisp/textmodes/reftex-index.el: Use lexical-binding. (mark-active, transient-mark-mode): Delete var declarations. (reftex-index-mode-map): Remove XEmacs-only code. Use `mapc` so we can use closures instead of hand-built lambdas. (reftex-index-next, reftex-index-previous): Tweak interactive spec to remove unused prefix arg and mark it as a motion command. (reftex-index-phrases-font-lock-keywords) (reftex-index-phrases-font-lock-keywords): Move initialization into declaration. (reftex-index-initialize-phrases-buffer, reftex-index-phrases-mode) reftex-index-phrases-apply-to-region: Remove XEmacs-only code. (TeX-master): Remove redundant declaration. (reftex--chars-first): Rename dynvar from `chars-first`. Adjust all uses. * lisp/textmodes/reftex-parse.el: Use lexical-binding. * lisp/textmodes/reftex-ref.el: Use lexical-binding. (reftex-label): Remove always-nil var `text`. (reftex-refstyle): Declare before first use. (<toplevel>): Use closures rather than `eval` when building commands from `reftex-ref-style-alist`. * lisp/textmodes/reftex-sel.el: Use lexical-binding. (reftex-select-label-mode-map, reftex-select-bib-mode-map): Use `mapc` so we can use closures instead of hand-built lambdas. (reftex-select-label-mode, reftex-select-bib-mode): Remove XEmacs-only code. (reftex-select-data, reftex-select-prompt, reftex-refstyle): Move declaration before first use. (reftex--found-list, reftex--cb-flag, reftex--last-data) (reftex--call-back, reftex--help-string): Move declaration before use, and rename by adding `reftext--` prefix. Adjust all uses in this file. For `reftex--found-list` adjust corresponding uses in `reftex-cite.el`. (reftex-select-item): Explicitly let-bind them. Remove XEmacs-only code. * lisp/textmodes/reftex-toc.el: Use lexical-binding. (reftex-toc-mode-map, reftex-toc-mode, reftex-toc-restore-region) (reftex-toc-next, reftex-toc-previous, reftex-toc-next-heading) (reftex-toc-previous-heading, reftex-toggle-auto-toc-recenter (reftex-make-separate-toc-frame): Remove XEmacs-only code. * lisp/textmodes/reftex-vars.el: Use lexical-binding. * lisp/textmodes/reftex.el: Use lexical-binding. (reftex-mode-map, reftex-mode, reftex-fontify-select-label-buffer) (reftex-verified-face): Remove XEmacs-only code. (reftex-region-active-p, reftex-overlay-put, reftex-move-overlay) (reftex-make-overlay, reftex-get-buffer-visiting, reftex-delete-overlay): Redefine as obsolete aliases. Replace all callers. (current-message): Remove XEmacs-only definition. * lisp/textmodes/remember.el: Use lexical-binding. * lisp/textmodes/table.el (<toplevel>): Use closures rather than `(lambda) to build commands. * lisp/textmodes/texinfmt.el: Use lexical-binding. (texinfo-example-start): Declare var. (texinfo-format-region, texinfo-format-buffer-1): Remove unused var `last-input-buffer`. (texinfo-format-scan): Use `dlet` to bind `whitespace-silent`. (texinfo-optional-braces-discard, texinfo-format-parse-line-args) (texinfo-format-parse-args): Remove unused var `start`. (texinfo-multitable-widths): Remove unused var `start-of-templates`. (texinfo-multitable-item): Strength-reduce `eval` to `symbol-value`. (texinfo-alias): Remove unused vars `start` and `args`. (texinfo-defun-type symbol-property): Change the car to help the type symbol rather than an expression returning it. (texinfo-format-deffn): Remove corresponding `eval`. (texinfo-clear): Remove unused var `value`. (texinfo-format-ifeq): Remove unused var `end`. * lisp/textmodes/texinfo.el: Use lexical-binding. (tex-show-print-queue): Declare function. * lisp/textmodes/texnfo-upd.el: Use lexical-binding. (texinfo-start-menu-description): Remove unused var `end`. (texinfo-insert-node-lines): Remove unused var `beginning-marker`. (texinfo-multiple-files-update): Remove unused vars `next-node-name` and `previous-node-name`. * lisp/textmodes/two-column.el: Use lexical-binding.
Diffstat (limited to 'lisp/textmodes/texinfo.el')
-rw-r--r--lisp/textmodes/texinfo.el120
1 files changed, 61 insertions, 59 deletions
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el
index 278cd0cd848..750a33db0aa 100644
--- a/lisp/textmodes/texinfo.el
+++ b/lisp/textmodes/texinfo.el
@@ -1,4 +1,4 @@
-;;; texinfo.el --- major mode for editing Texinfo files
+;;; texinfo.el --- major mode for editing Texinfo files -*- lexical-binding: t; -*-
;; Copyright (C) 1985, 1988-1993, 1996-1997, 2000-2021 Free Software
;; Foundation, Inc.
@@ -373,7 +373,7 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
("@\\(end\\|itemx?\\) +\\(.+\\)" 2 font-lock-keyword-face keep)
;; (,texinfo-environment-regexp
;; 1 (texinfo-clone-environment (match-beginning 1) (match-end 1)) keep)
- (,(concat "^@" (regexp-opt (mapcar 'car texinfo-section-list) t)
+ (,(concat "^@" (regexp-opt (mapcar #'car texinfo-section-list) t)
".*\n")
0 'texinfo-heading t))
"Additional expressions to highlight in Texinfo mode.")
@@ -400,19 +400,21 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
;;; Keys common both to Texinfo mode and to TeX shell.
+(declare-function tex-show-print-queue "tex-mode" ())
+
(defun texinfo-define-common-keys (keymap)
"Define the keys both in Texinfo mode and in the texinfo-tex-shell."
- (define-key keymap "\C-c\C-t\C-k" 'tex-kill-job)
- (define-key keymap "\C-c\C-t\C-x" 'texinfo-quit-job)
- (define-key keymap "\C-c\C-t\C-l" 'tex-recenter-output-buffer)
- (define-key keymap "\C-c\C-t\C-d" 'texinfo-delete-from-print-queue)
- (define-key keymap "\C-c\C-t\C-q" 'tex-show-print-queue)
- (define-key keymap "\C-c\C-t\C-p" 'texinfo-tex-print)
- (define-key keymap "\C-c\C-t\C-v" 'texinfo-tex-view)
- (define-key keymap "\C-c\C-t\C-i" 'texinfo-texindex)
-
- (define-key keymap "\C-c\C-t\C-r" 'texinfo-tex-region)
- (define-key keymap "\C-c\C-t\C-b" 'texinfo-tex-buffer))
+ (define-key keymap "\C-c\C-t\C-k" #'tex-kill-job)
+ (define-key keymap "\C-c\C-t\C-x" #'texinfo-quit-job)
+ (define-key keymap "\C-c\C-t\C-l" #'tex-recenter-output-buffer)
+ (define-key keymap "\C-c\C-t\C-d" #'texinfo-delete-from-print-queue)
+ (define-key keymap "\C-c\C-t\C-q" #'tex-show-print-queue)
+ (define-key keymap "\C-c\C-t\C-p" #'texinfo-tex-print)
+ (define-key keymap "\C-c\C-t\C-v" #'texinfo-tex-view)
+ (define-key keymap "\C-c\C-t\C-i" #'texinfo-texindex)
+
+ (define-key keymap "\C-c\C-t\C-r" #'texinfo-tex-region)
+ (define-key keymap "\C-c\C-t\C-b" #'texinfo-tex-buffer))
;; Mode documentation displays commands in reverse order
;; from how they are listed in the texinfo-mode-map.
@@ -423,68 +425,68 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
;; bindings for `texnfo-tex.el'
(texinfo-define-common-keys map)
- (define-key map "\"" 'texinfo-insert-quote)
+ (define-key map "\"" #'texinfo-insert-quote)
;; bindings for `makeinfo.el'
- (define-key map "\C-c\C-m\C-k" 'kill-compilation)
+ (define-key map "\C-c\C-m\C-k" #'kill-compilation)
(define-key map "\C-c\C-m\C-l"
- 'makeinfo-recenter-compilation-buffer)
- (define-key map "\C-c\C-m\C-r" 'makeinfo-region)
- (define-key map "\C-c\C-m\C-b" 'makeinfo-buffer)
+ #'makeinfo-recenter-compilation-buffer)
+ (define-key map "\C-c\C-m\C-r" #'makeinfo-region)
+ (define-key map "\C-c\C-m\C-b" #'makeinfo-buffer)
;; bindings for `texinfmt.el'
- (define-key map "\C-c\C-e\C-r" 'texinfo-format-region)
- (define-key map "\C-c\C-e\C-b" 'texinfo-format-buffer)
+ (define-key map "\C-c\C-e\C-r" #'texinfo-format-region)
+ (define-key map "\C-c\C-e\C-b" #'texinfo-format-buffer)
;; AUCTeX-like bindings
- (define-key map "\e\r" 'texinfo-insert-@item)
+ (define-key map "\e\r" #'texinfo-insert-@item)
;; bindings for updating nodes and menus
- (define-key map "\C-c\C-um" 'texinfo-master-menu)
+ (define-key map "\C-c\C-um" #'texinfo-master-menu)
- (define-key map "\C-c\C-u\C-m" 'texinfo-make-menu)
- (define-key map "\C-c\C-u\C-n" 'texinfo-update-node)
- (define-key map "\C-c\C-u\C-e" 'texinfo-every-node-update)
- (define-key map "\C-c\C-u\C-a" 'texinfo-all-menus-update)
+ (define-key map "\C-c\C-u\C-m" #'texinfo-make-menu)
+ (define-key map "\C-c\C-u\C-n" #'texinfo-update-node)
+ (define-key map "\C-c\C-u\C-e" #'texinfo-every-node-update)
+ (define-key map "\C-c\C-u\C-a" #'texinfo-all-menus-update)
- (define-key map "\C-c\C-s" 'texinfo-show-structure)
+ (define-key map "\C-c\C-s" #'texinfo-show-structure)
- (define-key map "\C-c}" 'up-list)
+ (define-key map "\C-c}" #'up-list)
;; FIXME: This is often used for "close block" aka texinfo-insert-@end.
- (define-key map "\C-c]" 'up-list)
- (define-key map "\C-c/" 'texinfo-insert-@end)
- (define-key map "\C-c{" 'texinfo-insert-braces)
+ (define-key map "\C-c]" #'up-list)
+ (define-key map "\C-c/" #'texinfo-insert-@end)
+ (define-key map "\C-c{" #'texinfo-insert-braces)
;; bindings for inserting strings
- (define-key map "\C-c\C-o" 'texinfo-insert-block)
- (define-key map "\C-c\C-c\C-d" 'texinfo-start-menu-description)
- (define-key map "\C-c\C-c\C-s" 'texinfo-insert-@strong)
- (define-key map "\C-c\C-c\C-e" 'texinfo-insert-@emph)
-
- (define-key map "\C-c\C-cv" 'texinfo-insert-@var)
- (define-key map "\C-c\C-cu" 'texinfo-insert-@uref)
- (define-key map "\C-c\C-ct" 'texinfo-insert-@table)
- (define-key map "\C-c\C-cs" 'texinfo-insert-@samp)
- (define-key map "\C-c\C-cr" 'texinfo-insert-dwim-@ref)
- (define-key map "\C-c\C-cq" 'texinfo-insert-@quotation)
- (define-key map "\C-c\C-co" 'texinfo-insert-@noindent)
- (define-key map "\C-c\C-cn" 'texinfo-insert-@node)
- (define-key map "\C-c\C-cm" 'texinfo-insert-@email)
- (define-key map "\C-c\C-ck" 'texinfo-insert-@kbd)
- (define-key map "\C-c\C-ci" 'texinfo-insert-@item)
- (define-key map "\C-c\C-cf" 'texinfo-insert-@file)
- (define-key map "\C-c\C-cx" 'texinfo-insert-@example)
- (define-key map "\C-c\C-ce" 'texinfo-insert-@end)
- (define-key map "\C-c\C-cd" 'texinfo-insert-@dfn)
- (define-key map "\C-c\C-cc" 'texinfo-insert-@code)
+ (define-key map "\C-c\C-o" #'texinfo-insert-block)
+ (define-key map "\C-c\C-c\C-d" #'texinfo-start-menu-description)
+ (define-key map "\C-c\C-c\C-s" #'texinfo-insert-@strong)
+ (define-key map "\C-c\C-c\C-e" #'texinfo-insert-@emph)
+
+ (define-key map "\C-c\C-cv" #'texinfo-insert-@var)
+ (define-key map "\C-c\C-cu" #'texinfo-insert-@uref)
+ (define-key map "\C-c\C-ct" #'texinfo-insert-@table)
+ (define-key map "\C-c\C-cs" #'texinfo-insert-@samp)
+ (define-key map "\C-c\C-cr" #'texinfo-insert-dwim-@ref)
+ (define-key map "\C-c\C-cq" #'texinfo-insert-@quotation)
+ (define-key map "\C-c\C-co" #'texinfo-insert-@noindent)
+ (define-key map "\C-c\C-cn" #'texinfo-insert-@node)
+ (define-key map "\C-c\C-cm" #'texinfo-insert-@email)
+ (define-key map "\C-c\C-ck" #'texinfo-insert-@kbd)
+ (define-key map "\C-c\C-ci" #'texinfo-insert-@item)
+ (define-key map "\C-c\C-cf" #'texinfo-insert-@file)
+ (define-key map "\C-c\C-cx" #'texinfo-insert-@example)
+ (define-key map "\C-c\C-ce" #'texinfo-insert-@end)
+ (define-key map "\C-c\C-cd" #'texinfo-insert-@dfn)
+ (define-key map "\C-c\C-cc" #'texinfo-insert-@code)
;; bindings for environment movement
- (define-key map "\C-c." 'texinfo-to-environment-bounds)
- (define-key map "\C-c\C-c\C-f" 'texinfo-next-environment-end)
- (define-key map "\C-c\C-c\C-b" 'texinfo-previous-environment-end)
- (define-key map "\C-c\C-c\C-n" 'texinfo-next-environment-start)
- (define-key map "\C-c\C-c\C-p" 'texinfo-previous-environment-start)
+ (define-key map "\C-c." #'texinfo-to-environment-bounds)
+ (define-key map "\C-c\C-c\C-f" #'texinfo-next-environment-end)
+ (define-key map "\C-c\C-c\C-b" #'texinfo-previous-environment-end)
+ (define-key map "\C-c\C-c\C-n" #'texinfo-next-environment-start)
+ (define-key map "\C-c\C-c\C-p" #'texinfo-previous-environment-start)
map))
(easy-menu-define texinfo-mode-menu
@@ -624,7 +626,7 @@ value of `texinfo-mode-hook'."
(mapcar (lambda (x) (cons (concat "@" (car x)) (cadr x)))
texinfo-section-list))
(setq-local outline-regexp
- (concat (regexp-opt (mapcar 'car outline-heading-alist) t)
+ (concat (regexp-opt (mapcar #'car outline-heading-alist) t)
"\\>"))
(setq-local tex-start-of-header "%\\*\\*start")
@@ -893,7 +895,7 @@ A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
nil
"@uref{" _ "}")
-(defalias 'texinfo-insert-@url 'texinfo-insert-@uref)
+(defalias 'texinfo-insert-@url #'texinfo-insert-@uref)
;;; Texinfo file structure