diff options
| author | Sam Steingold | 2001-10-31 19:32:26 +0000 |
|---|---|---|
| committer | Sam Steingold | 2001-10-31 19:32:26 +0000 |
| commit | cc1bde62e71e44d23f4dbda4b30109193daf2866 (patch) | |
| tree | 2763e831cc609d12df92c1fd9c55be3e8f982b50 | |
| parent | 05b6e46ca62a8d82fcdf42bbc9b36bd912d9e0c3 (diff) | |
| download | emacs-cc1bde62e71e44d23f4dbda4b30109193daf2866.tar.gz emacs-cc1bde62e71e44d23f4dbda4b30109193daf2866.zip | |
easy source access from the *debugger* buffer
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/emacs-lisp/debug.el | 20 |
2 files changed, 23 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fc0973e346e..942bc059271 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2001-10-31 Sam Steingold <sds@gnu.org> | ||
| 2 | |||
| 3 | * emacs-lisp/debug.el (debugger-make-xrefs): New function. | ||
| 4 | (debugger-setup-buffer): Call it. | ||
| 5 | (debugger-mode-map): Bind RET and mouse-2. | ||
| 6 | |||
| 1 | 2001-10-31 Pavel Jan,Bm(Bk <Pavel@Janik.cz> | 7 | 2001-10-31 Pavel Jan,Bm(Bk <Pavel@Janik.cz> |
| 2 | 8 | ||
| 3 | * startup.el: Document command line option --no-window-system | 9 | * startup.el: Document command line option --no-window-system |
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index f21fdc5bfb5..49303ff6293 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el | |||
| @@ -267,7 +267,20 @@ That buffer should be current already." | |||
| 267 | (prin1 (if (eq (car debugger-args) 'nil) | 267 | (prin1 (if (eq (car debugger-args) 'nil) |
| 268 | (cdr debugger-args) debugger-args) | 268 | (cdr debugger-args) debugger-args) |
| 269 | (current-buffer)) | 269 | (current-buffer)) |
| 270 | (insert ?\n)))) | 270 | (insert ?\n))) |
| 271 | (debugger-make-xrefs)) | ||
| 272 | |||
| 273 | (defun debugger-make-xrefs (&optional buffer) | ||
| 274 | "Create cross-references in the debugger buffer." | ||
| 275 | (interactive "b") | ||
| 276 | (save-excursion | ||
| 277 | (set-buffer (or buffer (current-buffer))) | ||
| 278 | (goto-char (point-min)) | ||
| 279 | (let ((buffer-read-only nil)) | ||
| 280 | (while (re-search-forward "^[* ] (?\\(\\(\\sw\\|\\s_\\)+\\)" nil t) | ||
| 281 | (let* ((sym (intern-soft (match-string 1))) | ||
| 282 | (file (symbol-file sym))) | ||
| 283 | (when file (help-xref-button 1 'help-function-def sym file))))))) | ||
| 271 | 284 | ||
| 272 | (defun debugger-step-through () | 285 | (defun debugger-step-through () |
| 273 | "Proceed, stepping through subexpressions of this expression. | 286 | "Proceed, stepping through subexpressions of this expression. |
| @@ -441,8 +454,7 @@ Applies to the frame whose line point is on in the backtrace." | |||
| 441 | (debugger-env-macro (eval-expression exp))) | 454 | (debugger-env-macro (eval-expression exp))) |
| 442 | 455 | ||
| 443 | (defvar debugger-mode-map nil) | 456 | (defvar debugger-mode-map nil) |
| 444 | (if debugger-mode-map | 457 | (unless debugger-mode-map |
| 445 | nil | ||
| 446 | (let ((loop ? )) | 458 | (let ((loop ? )) |
| 447 | (setq debugger-mode-map (make-keymap)) | 459 | (setq debugger-mode-map (make-keymap)) |
| 448 | (suppress-keymap debugger-mode-map) | 460 | (suppress-keymap debugger-mode-map) |
| @@ -459,6 +471,8 @@ Applies to the frame whose line point is on in the backtrace." | |||
| 459 | (define-key debugger-mode-map "e" 'debugger-eval-expression) | 471 | (define-key debugger-mode-map "e" 'debugger-eval-expression) |
| 460 | (define-key debugger-mode-map " " 'next-line) | 472 | (define-key debugger-mode-map " " 'next-line) |
| 461 | (define-key debugger-mode-map "R" 'debugger-record-expression) | 473 | (define-key debugger-mode-map "R" 'debugger-record-expression) |
| 474 | (define-key debugger-mode-map [RET] 'help-follow) | ||
| 475 | (define-key debugger-mode-map [mouse-2] 'push-button) | ||
| 462 | )) | 476 | )) |
| 463 | 477 | ||
| 464 | 478 | ||