[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Jumping to function definitions in elp
From: |
Masatake YAMATO |
Subject: |
Jumping to function definitions in elp |
Date: |
Wed, 18 Aug 2004 01:11:42 +0900 (JST) |
In *ELP Profiling Results*, function names are listed.
I have added text properties on the function names to jump
their definition quickly. If no objection, I will install
this patch.
Regards,
Masatake YAMATO
2004-08-18 Masatake YAMATO <address@hidden>
* 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.
Index: lisp/emacs-lisp/elp.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/emacs-lisp/elp.el,v
retrieving revision 1.27
diff -u -r1.27 elp.el
--- lisp/emacs-lisp/elp.el 1 Sep 2003 15:45:22 -0000 1.27
+++ lisp/emacs-lisp/elp.el 17 Aug 2004 16:07:26 -0000
@@ -513,7 +513,7 @@
(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 @@
(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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Jumping to function definitions in elp,
Masatake YAMATO <=