]> git.eshelyaron.com Git - emacs.git/commitdiff
easy source access from the *debugger* buffer
authorSam Steingold <sds@gnu.org>
Wed, 31 Oct 2001 19:32:26 +0000 (19:32 +0000)
committerSam Steingold <sds@gnu.org>
Wed, 31 Oct 2001 19:32:26 +0000 (19:32 +0000)
lisp/ChangeLog
lisp/emacs-lisp/debug.el

index fc0973e346e5cc2a4244c794254dad44e61d53ef..942bc05927150dbd322a2ddab9fd376485e45054 100644 (file)
@@ -1,3 +1,9 @@
+2001-10-31  Sam Steingold  <sds@gnu.org>
+
+       * emacs-lisp/debug.el (debugger-make-xrefs): New function.
+       (debugger-setup-buffer): Call it.
+       (debugger-mode-map): Bind RET and mouse-2.
+
 2001-10-31  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
 
        * startup.el: Document command line option --no-window-system
index f21fdc5bfb59c8f5c41cb8a9bf022339046c4e71..49303ff6293182c418e439ed44b7aa1542ea2ac9 100644 (file)
@@ -267,7 +267,20 @@ That buffer should be current already."
         (prin1 (if (eq (car debugger-args) 'nil)
                    (cdr debugger-args) debugger-args)
                (current-buffer))
-        (insert ?\n))))
+        (insert ?\n)))
+  (debugger-make-xrefs))
+
+(defun debugger-make-xrefs (&optional buffer)
+  "Create cross-references in the debugger buffer."
+  (interactive "b")
+  (save-excursion
+    (set-buffer (or buffer (current-buffer)))
+    (goto-char (point-min))
+    (let ((buffer-read-only nil))
+      (while (re-search-forward "^[* ] (?\\(\\(\\sw\\|\\s_\\)+\\)" nil t)
+        (let* ((sym (intern-soft (match-string 1)))
+               (file (symbol-file sym)))
+          (when file (help-xref-button 1 'help-function-def sym file)))))))
 \f
 (defun debugger-step-through ()
   "Proceed, stepping through subexpressions of this expression.
@@ -441,8 +454,7 @@ Applies to the frame whose line point is on in the backtrace."
   (debugger-env-macro (eval-expression exp)))
 \f
 (defvar debugger-mode-map nil)
-(if debugger-mode-map
-    nil
+(unless debugger-mode-map
   (let ((loop ? ))
     (setq debugger-mode-map (make-keymap))
     (suppress-keymap debugger-mode-map)
@@ -459,6 +471,8 @@ Applies to the frame whose line point is on in the backtrace."
     (define-key debugger-mode-map "e" 'debugger-eval-expression)
     (define-key debugger-mode-map " " 'next-line)
     (define-key debugger-mode-map "R" 'debugger-record-expression)
+    (define-key debugger-mode-map [RET] 'help-follow)
+    (define-key debugger-mode-map [mouse-2] 'push-button)
     ))