diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-03-17 23:32:39 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2021-03-17 23:32:39 -0400 |
commit | 485622bbd1afad4c1e39a245cf57605208ca606f (patch) | |
tree | 8388854d1b0eaa4e82f55862149c9def4ca1ccc6 /lisp/textmodes/reftex-sel.el | |
parent | c28ba117782cd825b2a4dd6ffcc0206ecf36898e (diff) | |
download | emacs-485622bbd1afad4c1e39a245cf57605208ca606f.tar.gz emacs-485622bbd1afad4c1e39a245cf57605208ca606f.tar.bz2 emacs-485622bbd1afad4c1e39a245cf57605208ca606f.zip |
* 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/reftex-sel.el')
-rw-r--r-- | lisp/textmodes/reftex-sel.el | 207 |
1 files changed, 102 insertions, 105 deletions
diff --git a/lisp/textmodes/reftex-sel.el b/lisp/textmodes/reftex-sel.el index d2e9974499b..b0a8ebf8ac0 100644 --- a/lisp/textmodes/reftex-sel.el +++ b/lisp/textmodes/reftex-sel.el @@ -1,4 +1,4 @@ -;;; reftex-sel.el --- the selection modes for RefTeX +;;; reftex-sel.el --- the selection modes for RefTeX -*- lexical-binding: t; -*- ;; Copyright (C) 1997-2021 Free Software Foundation, Inc. @@ -34,31 +34,29 @@ (let ((map (make-sparse-keymap))) (set-keymap-parent map special-mode-map) (substitute-key-definition - 'next-line 'reftex-select-next map global-map) + #'next-line #'reftex-select-next map global-map) (substitute-key-definition - 'previous-line 'reftex-select-previous map global-map) + #'previous-line #'reftex-select-previous map global-map) (substitute-key-definition - 'keyboard-quit 'reftex-select-keyboard-quit map global-map) + #'keyboard-quit #'reftex-select-keyboard-quit map global-map) (substitute-key-definition - 'newline 'reftex-select-accept map global-map) - - (define-key map " " 'reftex-select-callback) - (define-key map "n" 'reftex-select-next) - (define-key map [(down)] 'reftex-select-next) - (define-key map "p" 'reftex-select-previous) - (define-key map [(up)] 'reftex-select-previous) - (define-key map "f" 'reftex-select-toggle-follow) - (define-key map "\C-m" 'reftex-select-accept) - (define-key map [(return)] 'reftex-select-accept) - (define-key map "q" 'reftex-select-quit) - (define-key map "." 'reftex-select-show-insertion-point) - (define-key map "?" 'reftex-select-help) + #'newline #'reftex-select-accept map global-map) + + (define-key map " " #'reftex-select-callback) + (define-key map "n" #'reftex-select-next) + (define-key map [(down)] #'reftex-select-next) + (define-key map "p" #'reftex-select-previous) + (define-key map [(up)] #'reftex-select-previous) + (define-key map "f" #'reftex-select-toggle-follow) + (define-key map "\C-m" #'reftex-select-accept) + (define-key map [(return)] #'reftex-select-accept) + (define-key map "q" #'reftex-select-quit) + (define-key map "." #'reftex-select-show-insertion-point) + (define-key map "?" #'reftex-select-help) ;; The mouse-2 binding - (if (featurep 'xemacs) - (define-key map [(button2)] 'reftex-select-mouse-accept) - (define-key map [(mouse-2)] 'reftex-select-mouse-accept) - (define-key map [follow-link] 'mouse-face)) + (define-key map [(mouse-2)] #'reftex-select-mouse-accept) + (define-key map [follow-link] 'mouse-face) map)) (define-obsolete-variable-alias @@ -67,25 +65,26 @@ (let ((map (make-sparse-keymap))) (set-keymap-parent map reftex-select-shared-map) - (cl-loop for key across "aAcgFlrRstx#%" do - (define-key map (vector (list key)) - (list 'lambda '() - "Press `?' during selection to find out about this key." - '(interactive) (list 'throw '(quote myexit) key)))) - - (define-key map "b" 'reftex-select-jump-to-previous) - (define-key map "z" 'reftex-select-jump) - (define-key map "v" 'reftex-select-cycle-ref-style-forward) - (define-key map "V" 'reftex-select-cycle-ref-style-backward) - (define-key map "m" 'reftex-select-mark) - (define-key map "u" 'reftex-select-unmark) - (define-key map "," 'reftex-select-mark-comma) - (define-key map "-" 'reftex-select-mark-to) - (define-key map "+" 'reftex-select-mark-and) - (define-key map [(tab)] 'reftex-select-read-label) - (define-key map "\C-i" 'reftex-select-read-label) - (define-key map "\C-c\C-n" 'reftex-select-next-heading) - (define-key map "\C-c\C-p" 'reftex-select-previous-heading) + (mapc (lambda (key) + (define-key map (vector (list key)) + (lambda () + "Press `?' during selection to find out about this key." + (interactive) (throw 'myexit key)))) + "aAcgFlrRstx#%") + + (define-key map "b" #'reftex-select-jump-to-previous) + (define-key map "z" #'reftex-select-jump) + (define-key map "v" #'reftex-select-cycle-ref-style-forward) + (define-key map "V" #'reftex-select-cycle-ref-style-backward) + (define-key map "m" #'reftex-select-mark) + (define-key map "u" #'reftex-select-unmark) + (define-key map "," #'reftex-select-mark-comma) + (define-key map "-" #'reftex-select-mark-to) + (define-key map "+" #'reftex-select-mark-and) + (define-key map [(tab)] #'reftex-select-read-label) + (define-key map "\C-i" #'reftex-select-read-label) + (define-key map "\C-c\C-n" #'reftex-select-next-heading) + (define-key map "\C-c\C-p" #'reftex-select-previous-heading) map) "Keymap used for *RefTeX Select* buffer, when selecting a label. @@ -104,10 +103,6 @@ Press `?' for a summary of important key bindings. During a selection process, these are the local bindings. \\{reftex-select-label-mode-map}" - (when (featurep 'xemacs) - ;; XEmacs needs the call to make-local-hook - (make-local-hook 'pre-command-hook) - (make-local-hook 'post-command-hook)) (set (make-local-variable 'reftex-select-marked) nil) (when (syntax-table-p reftex-latex-syntax-table) (set-syntax-table reftex-latex-syntax-table)) @@ -120,16 +115,17 @@ During a selection process, these are the local bindings. (let ((map (make-sparse-keymap))) (set-keymap-parent map reftex-select-shared-map) - (cl-loop for key across "grRaAeE" do - (define-key map (vector (list key)) - (list 'lambda '() - "Press `?' during selection to find out about this key." - '(interactive) (list 'throw '(quote myexit) key)))) + (mapc (lambda (key) + (define-key map (vector (list key)) + (lambda () + "Press `?' during selection to find out about this key." + (interactive) (throw 'myexit key)))) + "grRaAeE") - (define-key map "\C-i" 'reftex-select-read-cite) - (define-key map [(tab)] 'reftex-select-read-cite) - (define-key map "m" 'reftex-select-mark) - (define-key map "u" 'reftex-select-unmark) + (define-key map "\C-i" #'reftex-select-read-cite) + (define-key map [(tab)] #'reftex-select-read-cite) + (define-key map "m" #'reftex-select-mark) + (define-key map "u" #'reftex-select-unmark) map) "Keymap used for *RefTeX Select* buffer, when selecting a BibTeX entry. @@ -148,10 +144,6 @@ Press `?' for a summary of important key bindings. During a selection process, these are the local bindings. \\{reftex-select-label-mode-map}" - (when (featurep 'xemacs) - ;; XEmacs needs the call to make-local-hook - (make-local-hook 'pre-command-hook) - (make-local-hook 'post-command-hook)) (set (make-local-variable 'reftex-select-marked) nil) ;; We do not set a local map - reftex-select-item does this. ) @@ -432,12 +424,21 @@ During a selection process, these are the local bindings. (defvar reftex-last-data nil) (defvar reftex-last-line nil) (defvar reftex-select-marked nil) +(defvar reftex-refstyle) + +;; The following variables are all bound dynamically in `reftex-select-item'. + +(defvar reftex-select-data) +(defvar reftex-select-prompt) +(defvar reftex--cb-flag) +(defvar reftex--last-data) +(defvar reftex--call-back) +(defvar reftex--help-string) ;;;###autoload -(defun reftex-select-item (reftex-select-prompt help-string keymap - &optional offset - call-back cb-flag) - ;; Select an item, using REFTEX-SELECT-PROMPT. +(defun reftex-select-item ( prompt help-string keymap + &optional offset call-back cb-flag) + ;; Select an item, using PROMPT. ;; The function returns a key indicating an exit status, along with a ;; data structure indicating which item was selected. ;; HELP-STRING contains help. KEYMAP is a keymap with the available @@ -448,7 +449,12 @@ During a selection process, these are the local bindings. ;; When CALL-BACK is given, it is a function which is called with the index ;; of the element. ;; CB-FLAG is the initial value of that flag. - (let (ev reftex-select-data last-data (selection-buffer (current-buffer))) + (let ((reftex-select-prompt prompt) + (reftex--help-string help-string) + (reftex--call-back call-back) + (reftex--cb-flag cb-flag) + ev reftex-select-data reftex--last-data + (selection-buffer (current-buffer))) (setq reftex-select-marked nil) @@ -466,43 +472,29 @@ During a selection process, these are the local bindings. (unwind-protect (progn (use-local-map keymap) - (add-hook 'pre-command-hook 'reftex-select-pre-command-hook nil t) - (add-hook 'post-command-hook 'reftex-select-post-command-hook nil t) + (add-hook 'pre-command-hook #'reftex-select-pre-command-hook nil t) + (add-hook 'post-command-hook #'reftex-select-post-command-hook nil t) (princ reftex-select-prompt) (set-marker reftex-recursive-edit-marker (point)) - ;; XEmacs does not run post-command-hook here - (and (featurep 'xemacs) (run-hooks 'post-command-hook)) (recursive-edit)) (set-marker reftex-recursive-edit-marker nil) (with-current-buffer selection-buffer (use-local-map nil) - (remove-hook 'pre-command-hook 'reftex-select-pre-command-hook t) + (remove-hook 'pre-command-hook #'reftex-select-pre-command-hook t) (remove-hook 'post-command-hook - 'reftex-select-post-command-hook t)) + #'reftex-select-post-command-hook t)) ;; Kill the mark overlays - (mapc (lambda (c) (reftex-delete-overlay (nth 1 c))) + (mapc (lambda (c) (delete-overlay (nth 1 c))) reftex-select-marked))))) (set (make-local-variable 'reftex-last-line) (+ (count-lines (point-min) (point)) (if (bolp) 1 0))) - (set (make-local-variable 'reftex-last-data) last-data) + (set (make-local-variable 'reftex-last-data) reftex--last-data) (reftex-kill-buffer "*RefTeX Help*") (setq reftex-callback-fwd (not reftex-callback-fwd)) ;; ;-))) (message "") - (list ev reftex-select-data last-data))) - -;; The following variables are all bound dynamically in `reftex-select-item'. -;; The defvars are here only to silence the byte compiler. - -(defvar found-list) -(defvar cb-flag) -(defvar reftex-select-data) -(defvar reftex-select-prompt) -(defvar last-data) -(defvar call-back) -(defvar help-string) -(defvar reftex-refstyle) + (list ev reftex-select-data reftex--last-data))) ;; The selection commands @@ -513,12 +505,12 @@ During a selection process, these are the local bindings. (defun reftex-select-post-command-hook () (let (b e) (setq reftex-select-data (get-text-property (point) :data)) - (setq last-data (or reftex-select-data last-data)) + (setq reftex--last-data (or reftex-select-data reftex--last-data)) - (when (and reftex-select-data cb-flag + (when (and reftex-select-data reftex--cb-flag (not (equal reftex-last-follow-point (point)))) (setq reftex-last-follow-point (point)) - (funcall call-back reftex-select-data reftex-callback-fwd + (funcall reftex--call-back reftex-select-data reftex-callback-fwd (not reftex-revisit-to-follow))) (if reftex-select-data (setq b (or (previous-single-property-change @@ -594,7 +586,7 @@ Useful for large TOC's." "Toggle follow mode: Other window follows with full context." (interactive) (setq reftex-last-follow-point -1) - (setq cb-flag (not cb-flag))) + (setq reftex--cb-flag (not reftex--cb-flag))) (defun reftex-select-cycle-ref-style-internal (&optional reverse) "Cycle through macros used for referencing. @@ -632,7 +624,9 @@ Cycle in reverse order if optional argument REVERSE is non-nil." (defun reftex-select-callback () "Show full context in another window." (interactive) - (if reftex-select-data (funcall call-back reftex-select-data reftex-callback-fwd nil) (ding))) + (if reftex-select-data + (funcall reftex--call-back reftex-select-data reftex-callback-fwd nil) + (ding))) (defun reftex-select-accept () "Accept the currently selected item." (interactive) @@ -642,7 +636,7 @@ Cycle in reverse order if optional argument REVERSE is non-nil." (interactive "e") (mouse-set-point ev) (setq reftex-select-data (get-text-property (point) :data)) - (setq last-data (or reftex-select-data last-data)) + (setq reftex--last-data (or reftex-select-data reftex--last-data)) (throw 'myexit 'return)) (defun reftex-select-read-label () "Use minibuffer to read a label to reference, with completion." @@ -652,16 +646,19 @@ Cycle in reverse order if optional argument REVERSE is non-nil." nil nil reftex-prefix))) (unless (or (equal label "") (equal label reftex-prefix)) (throw 'myexit label)))) + +(defvar reftex--found-list) + (defun reftex-select-read-cite () "Use minibuffer to read a citation key with completion." (interactive) - (let* ((key (completing-read "Citation key: " found-list)) - (entry (assoc key found-list))) + (let* ((key (completing-read "Citation key: " reftex--found-list)) + (entry (assoc key reftex--found-list))) (cond ((or (null key) (equal key ""))) (entry (setq reftex-select-data entry) - (setq last-data reftex-select-data) + (setq reftex--last-data reftex-select-data) (throw 'myexit 'return)) (t (throw 'myexit key))))) @@ -676,14 +673,14 @@ Cycle in reverse order if optional argument REVERSE is non-nil." (setq boe (or (previous-single-property-change (1+ (point)) :data) (point-min)) eoe (or (next-single-property-change (point) :data) (point-max))) - (setq ovl (reftex-make-overlay boe eoe)) + (setq ovl (make-overlay boe eoe)) (push (list data ovl separator) reftex-select-marked) - (reftex-overlay-put ovl 'font-lock-face reftex-select-mark-face) - (reftex-overlay-put ovl 'before-string - (if separator - (format "*%c%d* " separator - (length reftex-select-marked)) - (format "*%d* " (length reftex-select-marked)))) + (overlay-put ovl 'font-lock-face reftex-select-mark-face) + (overlay-put ovl 'before-string + (if separator + (format "*%c%d* " separator + (length reftex-select-marked)) + (format "*%d* " (length reftex-select-marked)))) (message "Entry has mark no. %d" (length reftex-select-marked)))) (defun reftex-select-mark-comma () @@ -709,15 +706,15 @@ Cycle in reverse order if optional argument REVERSE is non-nil." sep) (unless cell (error "No marked entry at point")) - (and ovl (reftex-delete-overlay ovl)) + (and ovl (delete-overlay ovl)) (setq reftex-select-marked (delq cell reftex-select-marked)) (setq cnt (1+ (length reftex-select-marked))) (mapc (lambda (c) (setq sep (nth 2 c)) - (reftex-overlay-put (nth 1 c) 'before-string - (if sep - (format "*%c%d* " sep (cl-decf cnt)) - (format "*%d* " (cl-decf cnt))))) + (overlay-put (nth 1 c) 'before-string + (if sep + (format "*%c%d* " sep (cl-decf cnt)) + (format "*%d* " (cl-decf cnt))))) reftex-select-marked) (message "Entry no longer marked"))) @@ -725,7 +722,7 @@ Cycle in reverse order if optional argument REVERSE is non-nil." "Display a summary of the special key bindings." (interactive) (with-output-to-temp-buffer "*RefTeX Help*" - (princ help-string)) + (princ reftex--help-string)) (reftex-enlarge-to-fit "*RefTeX Help*" t)) (provide 'reftex-sel) |