diff options
| author | Stefan Monnier | 2020-03-28 09:41:15 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2020-03-28 09:43:14 -0400 |
| commit | a7e3516571e72e58bb4b5d19eca5feca41135f57 (patch) | |
| tree | 5e17314d17e70604708eafa3b2630080b99726d2 | |
| parent | dfeb87d8e54ee5f2ce3e16d34a812131bb2f6e4d (diff) | |
| download | emacs-a7e3516571e72e58bb4b5d19eca5feca41135f57.tar.gz emacs-a7e3516571e72e58bb4b5d19eca5feca41135f57.zip | |
* lisp/progmodes/ebrowse.el (ebrowse-tags-loop-call): Rename
Used to be called `ebrowse-tags-loop-form` and passed to `eval`.
Now it's passed to `apply` instead, which is better for karma.
(ebrowse-tags-loop-continue, ebrowse-tags-search)
(ebrowse-tags-query-replace, ebrowse-tags-search-member-use):
Adjust accordingly.
(ebrowse-electric-position-mode-map): Move init into declaration.
(ebrowse-electric-position-mode): Derive from special.
| -rw-r--r-- | lisp/progmodes/ebrowse.el | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index c02703fc59f..1c9e805f039 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el | |||
| @@ -3543,9 +3543,9 @@ completion." | |||
| 3543 | 3543 | ||
| 3544 | ;;; Tags query replace & search | 3544 | ;;; Tags query replace & search |
| 3545 | 3545 | ||
| 3546 | (defvar ebrowse-tags-loop-form () | 3546 | (defvar ebrowse-tags-loop-call '(ignore) |
| 3547 | "Form for `ebrowse-loop-continue'. | 3547 | "Function call for `ebrowse-loop-continue'. |
| 3548 | Evaluated for each file in the tree. If it returns nil, proceed | 3548 | Passed to `apply' for each file in the tree. If it returns nil, proceed |
| 3549 | with the next file.") | 3549 | with the next file.") |
| 3550 | 3550 | ||
| 3551 | (defvar ebrowse-tags-next-file-list () | 3551 | (defvar ebrowse-tags-next-file-list () |
| @@ -3612,7 +3612,7 @@ TREE-BUFFER if indirectly specifies which files to loop over." | |||
| 3612 | (when first-time | 3612 | (when first-time |
| 3613 | (ebrowse-tags-next-file first-time tree-buffer) | 3613 | (ebrowse-tags-next-file first-time tree-buffer) |
| 3614 | (goto-char (point-min))) | 3614 | (goto-char (point-min))) |
| 3615 | (while (not (eval ebrowse-tags-loop-form)) | 3615 | (while (not (apply ebrowse-tags-loop-call)) |
| 3616 | (ebrowse-tags-next-file) | 3616 | (ebrowse-tags-next-file) |
| 3617 | (message "Scanning file `%s'..." buffer-file-name) | 3617 | (message "Scanning file `%s'..." buffer-file-name) |
| 3618 | (goto-char (point-min)))) | 3618 | (goto-char (point-min)))) |
| @@ -3625,9 +3625,9 @@ If marked classes exist, process marked classes, only. | |||
| 3625 | If regular expression is nil, repeat last search." | 3625 | If regular expression is nil, repeat last search." |
| 3626 | (interactive "sTree search (regexp): ") | 3626 | (interactive "sTree search (regexp): ") |
| 3627 | (if (and (string= regexp "") | 3627 | (if (and (string= regexp "") |
| 3628 | (eq (car ebrowse-tags-loop-form) 're-search-forward)) | 3628 | (eq (car ebrowse-tags-loop-call) #'re-search-forward)) |
| 3629 | (ebrowse-tags-loop-continue) | 3629 | (ebrowse-tags-loop-continue) |
| 3630 | (setq ebrowse-tags-loop-form (list 're-search-forward regexp nil t)) | 3630 | (setq ebrowse-tags-loop-call `(re-search-forward ,regexp nil t)) |
| 3631 | (ebrowse-tags-loop-continue 'first-time))) | 3631 | (ebrowse-tags-loop-continue 'first-time))) |
| 3632 | 3632 | ||
| 3633 | 3633 | ||
| @@ -3637,10 +3637,11 @@ If regular expression is nil, repeat last search." | |||
| 3637 | With prefix arg, process files of marked classes only." | 3637 | With prefix arg, process files of marked classes only." |
| 3638 | (interactive | 3638 | (interactive |
| 3639 | "sTree query replace (regexp): \nsTree query replace %s by: ") | 3639 | "sTree query replace (regexp): \nsTree query replace %s by: ") |
| 3640 | (setq ebrowse-tags-loop-form | 3640 | (setq ebrowse-tags-loop-call |
| 3641 | (list 'and (list 'save-excursion | 3641 | (list (lambda () |
| 3642 | (list 're-search-forward from nil t)) | 3642 | (and (save-excursion |
| 3643 | (list 'not (list 'perform-replace from to t t nil)))) | 3643 | (re-search-forward from nil t)) |
| 3644 | (not (perform-replace from to t t nil)))))) | ||
| 3644 | (ebrowse-tags-loop-continue 'first-time)) | 3645 | (ebrowse-tags-loop-continue 'first-time)) |
| 3645 | 3646 | ||
| 3646 | 3647 | ||
| @@ -3665,7 +3666,7 @@ looks like a function call to the member." | |||
| 3665 | (cl-values-list (ebrowse-tags-read-name header "Find calls of: ")))) | 3666 | (cl-values-list (ebrowse-tags-read-name header "Find calls of: ")))) |
| 3666 | ;; Set tags loop form to search for member and begin loop. | 3667 | ;; Set tags loop form to search for member and begin loop. |
| 3667 | (setq regexp (concat "\\<" name "[ \t]*(") | 3668 | (setq regexp (concat "\\<" name "[ \t]*(") |
| 3668 | ebrowse-tags-loop-form (list 're-search-forward regexp nil t)) | 3669 | ebrowse-tags-loop-call `(re-search-forward ,regexp nil t)) |
| 3669 | (ebrowse-tags-loop-continue 'first-time tree-buffer)))) | 3670 | (ebrowse-tags-loop-continue 'first-time tree-buffer)))) |
| 3670 | 3671 | ||
| 3671 | 3672 | ||
| @@ -3767,18 +3768,10 @@ Prefix arg ARG says how much." | |||
| 3767 | 3768 | ||
| 3768 | ;;; Electric position list | 3769 | ;;; Electric position list |
| 3769 | 3770 | ||
| 3770 | (defvar ebrowse-electric-position-mode-map () | 3771 | (defvar ebrowse-electric-position-mode-map |
| 3771 | "Keymap used in electric position stack window.") | ||
| 3772 | |||
| 3773 | |||
| 3774 | (defvar ebrowse-electric-position-mode-hook nil | ||
| 3775 | "If non-nil, its value is called by `ebrowse-electric-position-mode'.") | ||
| 3776 | |||
| 3777 | |||
| 3778 | (unless ebrowse-electric-position-mode-map | ||
| 3779 | (let ((map (make-keymap)) | 3772 | (let ((map (make-keymap)) |
| 3780 | (submap (make-keymap))) | 3773 | (submap (make-keymap))) |
| 3781 | (setq ebrowse-electric-position-mode-map map) | 3774 | ;; FIXME: Yuck! |
| 3782 | (fillarray (car (cdr map)) 'ebrowse-electric-position-undefined) | 3775 | (fillarray (car (cdr map)) 'ebrowse-electric-position-undefined) |
| 3783 | (fillarray (car (cdr submap)) 'ebrowse-electric-position-undefined) | 3776 | (fillarray (car (cdr submap)) 'ebrowse-electric-position-undefined) |
| 3784 | (define-key map "\e" submap) | 3777 | (define-key map "\e" submap) |
| @@ -3801,14 +3794,19 @@ Prefix arg ARG says how much." | |||
| 3801 | (define-key map "\e\C-v" 'scroll-other-window) | 3794 | (define-key map "\e\C-v" 'scroll-other-window) |
| 3802 | (define-key map "\e>" 'end-of-buffer) | 3795 | (define-key map "\e>" 'end-of-buffer) |
| 3803 | (define-key map "\e<" 'beginning-of-buffer) | 3796 | (define-key map "\e<" 'beginning-of-buffer) |
| 3804 | (define-key map "\e>" 'end-of-buffer))) | 3797 | (define-key map "\e>" 'end-of-buffer) |
| 3798 | map) | ||
| 3799 | "Keymap used in electric position stack window.") | ||
| 3800 | |||
| 3801 | |||
| 3802 | (defvar ebrowse-electric-position-mode-hook nil | ||
| 3803 | "If non-nil, its value is called by `ebrowse-electric-position-mode'.") | ||
| 3805 | 3804 | ||
| 3806 | (put 'ebrowse-electric-position-mode 'mode-class 'special) | ||
| 3807 | (put 'ebrowse-electric-position-undefined 'suppress-keymap t) | 3805 | (put 'ebrowse-electric-position-undefined 'suppress-keymap t) |
| 3808 | 3806 | ||
| 3809 | 3807 | ||
| 3810 | (define-derived-mode ebrowse-electric-position-mode | 3808 | (define-derived-mode ebrowse-electric-position-mode |
| 3811 | fundamental-mode "Electric Position Menu" | 3809 | special-mode "Electric Position Menu" |
| 3812 | "Mode for electric position buffers. | 3810 | "Mode for electric position buffers. |
| 3813 | Runs the hook `ebrowse-electric-position-mode-hook'." | 3811 | Runs the hook `ebrowse-electric-position-mode-hook'." |
| 3814 | (setq mode-line-buffer-identification "Electric Position Menu") | 3812 | (setq mode-line-buffer-identification "Electric Position Menu") |