diff options
author | Philip Kaludercic <philipk@posteo.net> | 2021-12-31 12:37:50 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-01-14 09:46:56 +0100 |
commit | df44b2d956d1a658c51c558857cdc6d0b2e30572 (patch) | |
tree | 10bc198adbd3f50e94141a4704e612b2457b06eb /lisp/man.el | |
parent | 10cf00648ba323e9d928e4b0430b075c33c196c1 (diff) | |
download | emacs-df44b2d956d1a658c51c558857cdc6d0b2e30572.tar.gz emacs-df44b2d956d1a658c51c558857cdc6d0b2e30572.tar.bz2 emacs-df44b2d956d1a658c51c558857cdc6d0b2e30572.zip |
Implement context-menu-mode support for man pages
* man.el (Man-at-mouse): Add new command
(Man-context-menu): Add new function
Diffstat (limited to 'lisp/man.el')
-rw-r--r-- | lisp/man.el | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lisp/man.el b/lisp/man.el index adf244a11ad..d94cbf20153 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -1976,6 +1976,29 @@ Uses `Man-name-local-regexp'." (bookmark-default-handler `("" (buffer . ,buf) . ,(bookmark-get-bookmark-record bookmark))))) +;;; Mouse support +(defun Man-at-mouse (e) + "Open man manual at point." + (interactive "e") + (save-excursion + (mouse-set-point e) + (man (Man-default-man-entry)))) + +(defun Man-context-menu (menu click) + "Populate MENU with commands that open a man page at point." + (save-excursion + (mouse-set-point click) + (when (save-excursion + (skip-syntax-backward "^ ") + (and (looking-at + "[[:space:]]*\\([[:alnum:]_-]+([[:alnum:]]+)\\)") + (match-string 1))) + (define-key-after menu [man-separator] menu-bar-separator) + (define-key-after menu [man-at-mouse] + '(menu-item "Open man page" man-at-mouse + :help "Open man page around mouse click")))) + menu) + ;; Init the man package variables, if not already done. (Man-init-defvars) |