From: Juri Linkov Date: Mon, 13 Sep 2021 18:41:24 +0000 (+0300) Subject: * lisp/progmodes/elisp-mode.el (elisp-context-menu): New function (bug#9054) X-Git-Tag: emacs-28.0.90~994 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8c80430824d52e5dfae97db2669b419621817956;p=emacs.git * lisp/progmodes/elisp-mode.el (elisp-context-menu): New function (bug#9054) (emacs-lisp-mode): Add elisp-context-menu to context-menu-functions. --- diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 8befae0dec5..e5ad36c30bf 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -153,6 +153,26 @@ All commands in `lisp-mode-shared-map' are inherited by this map.") :style toggle :selected (bound-and-true-p eldoc-mode)])) +(defun elisp-context-menu (menu click) + (define-key-after menu [elisp-separator] menu-bar-separator + 'mark-whole-buffer) + (when (thing-at-mouse click 'symbol) + (define-key-after menu [describe-symbol] + '(menu-item "Describe Symbol" + (lambda (click) (interactive "e") + (describe-symbol + (intern (thing-at-mouse click 'symbol t)))) + :help "Display the full documentation of symbol") + 'elisp-separator) + (define-key-after menu [info-lookup-symbol] + '(menu-item "Lookup Symbol" + (lambda (click) (interactive "e") + (info-lookup-symbol + (intern (thing-at-mouse click 'symbol t)))) + :help "Display definition in relevant manual") + 'describe-symbol)) + menu) + (defun emacs-lisp-byte-compile () "Byte compile the file containing the current buffer." (interactive nil emacs-lisp-mode) @@ -280,7 +300,8 @@ Blank lines separate paragraphs. Semicolons start comments. #'elisp-completion-at-point nil 'local) (add-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc nil t) (add-hook 'flymake-diagnostic-functions - #'elisp-flymake-byte-compile nil t)) + #'elisp-flymake-byte-compile nil t) + (add-hook 'context-menu-functions #'elisp-context-menu 10 t)) ;; Font-locking support.