]> git.eshelyaron.com Git - emacs.git/commitdiff
(elp-results-symname-map): New keymap.
authorMasatake YAMATO <jet@gyve.org>
Thu, 19 Aug 2004 07:52:01 +0000 (07:52 +0000)
committerMasatake YAMATO <jet@gyve.org>
Thu, 19 Aug 2004 07:52:01 +0000 (07:52 +0000)
(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
lisp/emacs-lisp/elp.el

index 58ab47fe3f7d9db38459089200b3e66f647a51fa..b0384b9eba4af4b7fbb2148e90edacb9b36b1ef1 100644 (file)
@@ -1,3 +1,10 @@
+2004-08-19  Masatake YAMATO  <jet@gyve.org>
+
+       * 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  <teirllm@auburn.edu>
 
        * emacs-lisp/copyright.el (copyright-update-year): Delete code
index 44400dcaa2ce26a3c20bbf30a4b442fa90dd7773..f8d41f200d2623fffafa054a353a5f1dc316a7e0 100644 (file)
@@ -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.