summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorMasatake YAMATO <jet@gyve.org>2004-08-19 07:52:01 +0000
committerMasatake YAMATO <jet@gyve.org>2004-08-19 07:52:01 +0000
commit2b8d823f69bd0dd9f912b9a7535f41bf318f9c37 (patch)
tree95618857584443a9cbad8d4c0d2dfe7bc6083c16 /lisp/emacs-lisp
parenta503f8b70c578522a64fdb4e9cbe07362e91f3fa (diff)
downloademacs-2b8d823f69bd0dd9f912b9a7535f41bf318f9c37.tar.gz
emacs-2b8d823f69bd0dd9f912b9a7535f41bf318f9c37.tar.bz2
emacs-2b8d823f69bd0dd9f912b9a7535f41bf318f9c37.zip
(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.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/elp.el28
1 files changed, 27 insertions, 1 deletions
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.