mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
Add occur-related context-menu operations (bug#50552)
* replace.el (occur-word-at-mouse): Add new command. (occur-symbol-at-mouse): Add new command. (occur-context-menu): Add new function.
This commit is contained in:
parent
67ab890cde
commit
3eb80b7847
1 changed files with 27 additions and 0 deletions
|
|
@ -2367,6 +2367,33 @@ See also `multi-occur'."
|
|||
;; And the second element is the list of context after-lines.
|
||||
(if (> nlines 0) after-lines))))
|
||||
|
||||
(defun occur-word-at-mouse (event)
|
||||
"Display an occur buffer for the word at EVENT."
|
||||
(interactive "e")
|
||||
(let ((word (thing-at-mouse event 'word t)))
|
||||
(occur (concat "\\<" (regexp-quote word) "\\>"))))
|
||||
|
||||
(defun occur-symbol-at-mouse (event)
|
||||
"Display an occur buffer for the symbol at EVENT."
|
||||
(interactive "e")
|
||||
(let ((symbol (thing-at-mouse event 'symbol t)))
|
||||
(occur (concat "\\_<" (regexp-quote symbol) "\\_>"))))
|
||||
|
||||
(defun occur-context-menu (menu click)
|
||||
"Populate MENU with occur commands for CLICK.
|
||||
To be added to `context-menu-functions'."
|
||||
(let ((word (thing-at-mouse click 'word))
|
||||
(sym (thing-at-mouse click 'symbol)))
|
||||
(when (or word sym)
|
||||
(define-key-after menu [occur-separator] menu-bar-separator)
|
||||
(when word
|
||||
(define-key-after menu [occur-word-at-mouse]
|
||||
'(menu-item "Occur Word" occur-word-at-mouse)))
|
||||
(when sym
|
||||
(define-key-after menu [occur-symbol-at-mouse]
|
||||
'(menu-item "Occur Symbol" occur-symbol-at-mouse)))))
|
||||
menu)
|
||||
|
||||
|
||||
;; It would be nice to use \\[...], but there is no reasonable way
|
||||
;; to make that display both SPC and Y.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue