From 2b8d823f69bd0dd9f912b9a7535f41bf318f9c37 Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Thu, 19 Aug 2004 07:52:01 +0000 Subject: [PATCH] (elp-results-symname-map): New keymap. (elp-results-jump-to-definition-by-mouse) (elp-results-jump-to-definition, elp-output-insert-symname): New Functions. (elp-output-result): Use elp-output-insert-symname. --- lisp/ChangeLog | 7 +++++++ lisp/emacs-lisp/elp.el | 28 +++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 58ab47fe3f7..b0384b9eba4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2004-08-19 Masatake YAMATO + + * emacs-lisp/elp.el (elp-results-symname-map): New keymap. + (elp-results-jump-to-definition-by-mouse) + (elp-results-jump-to-definition, elp-output-insert-symname): New Functions. + (elp-output-result): Use elp-output-insert-symname. + 2004-08-17 Luc Teirlinck * emacs-lisp/copyright.el (copyright-update-year): Delete code diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el index 44400dcaa2c..f8d41f200d2 100644 --- a/lisp/emacs-lisp/elp.el +++ b/lisp/emacs-lisp/elp.el @@ -513,7 +513,7 @@ original definition, use \\[elp-restore-function] or \\[elp-restore-all]." (numberp elp-report-limit) (< cc elp-report-limit)) nil - (insert symname) + (elp-output-insert-symname symname) (insert-char 32 (+ elp-field-len (- (length symname)) 2)) ;; print stuff out, formatting it nicely (insert callcnt) @@ -525,6 +525,32 @@ original definition, use \\[elp-restore-function] or \\[elp-restore-all]." (insert atstr)) (insert "\n")))) +(defvar elp-results-symname-map + (let ((map (make-sparse-keymap))) + (define-key map [mouse-2] 'elp-results-jump-to-definition-by-mouse) + (define-key map "\C-m" 'elp-results-jump-to-definition) + map) + "Keymap used on the function name column." ) + +(defun elp-results-jump-to-definition-by-mouse (event) + "Jump to the definition of the function under the place specified by EVENT." + (interactive "e") + (posn-set-point (event-end event)) + (elp-results-jump-to-definition)) + +(defun elp-results-jump-to-definition () + "Jump to the definition of the function under the point." + (interactive) + (find-function (get-text-property (point) 'elp-symname))) + +(defun elp-output-insert-symname (symname) + ;; Insert SYMNAME with text properties. + (insert (propertize symname + 'elp-symname (intern symname) + 'keymap elp-results-symname-map + 'mouse-face 'highlight + 'help-echo (substitute-command-keys "\\{elp-results-symname-map}")))) + ;;;###autoload (defun elp-results () "Display current profiling results. -- 2.39.2