diff options
| author | Nick Roberts | 2005-11-24 00:36:03 +0000 |
|---|---|---|
| committer | Nick Roberts | 2005-11-24 00:36:03 +0000 |
| commit | 1e906233d407595cb068bd027f5536dc4fdd8112 (patch) | |
| tree | 81104e426376ca1d7333234886235d1bca3abadc | |
| parent | 66395e6be053fb79f093ebbc8abf8e527224e68b (diff) | |
| download | emacs-1e906233d407595cb068bd027f5536dc4fdd8112.tar.gz emacs-1e906233d407595cb068bd027f5536dc4fdd8112.zip | |
(gud-speedbar-menu-items): Add gdb-speedbar-auto-raise as radio button.
(gud-speedbar-buttons): Raise speedbar if requested.
Don't match on "char **...".
(gud-speedbar-buttons): Add (pointer) value for non-leaves.
Make it editable.
| -rw-r--r-- | lisp/progmodes/gud.el | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index e045ae76a29..3e13d7d1c0b 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -52,6 +52,7 @@ | |||
| 52 | (defvar gdb-show-changed-values) | 52 | (defvar gdb-show-changed-values) |
| 53 | (defvar gdb-var-changed) | 53 | (defvar gdb-var-changed) |
| 54 | (defvar gdb-var-list) | 54 | (defvar gdb-var-list) |
| 55 | (defvar gdb-speedbar-auto-raise) | ||
| 55 | (defvar tool-bar-map) | 56 | (defvar tool-bar-map) |
| 56 | 57 | ||
| 57 | ;; ====================================================================== | 58 | ;; ====================================================================== |
| @@ -410,6 +411,10 @@ t means that there is no stack, and we are in display-file mode.") | |||
| 410 | (memq gud-minor-mode '(gdbmi gdba)))] | 411 | (memq gud-minor-mode '(gdbmi gdba)))] |
| 411 | ["Delete expression" gdb-var-delete | 412 | ["Delete expression" gdb-var-delete |
| 412 | (with-current-buffer gud-comint-buffer | 413 | (with-current-buffer gud-comint-buffer |
| 414 | (memq gud-minor-mode '(gdbmi gdba)))] | ||
| 415 | ["Auto raise frame" gdb-speedbar-auto-raise | ||
| 416 | :style toggle :selected gdb-speedbar-auto-raise | ||
| 417 | :visible (with-current-buffer gud-comint-buffer | ||
| 413 | (memq gud-minor-mode '(gdbmi gdba)))]) | 418 | (memq gud-minor-mode '(gdbmi gdba)))]) |
| 414 | "Additional menu items to add to the speedbar frame.") | 419 | "Additional menu items to add to the speedbar frame.") |
| 415 | 420 | ||
| @@ -444,6 +449,8 @@ required by the caller." | |||
| 444 | (looking-at "Watch Expressions:"))))) | 449 | (looking-at "Watch Expressions:"))))) |
| 445 | (erase-buffer) | 450 | (erase-buffer) |
| 446 | (insert "Watch Expressions:\n") | 451 | (insert "Watch Expressions:\n") |
| 452 | (if gdb-speedbar-auto-raise | ||
| 453 | (raise-frame speedbar-frame)) | ||
| 447 | (let ((var-list gdb-var-list)) | 454 | (let ((var-list gdb-var-list)) |
| 448 | (while var-list | 455 | (while var-list |
| 449 | (let* ((depth 0) (start 0) (char ?+) | 456 | (let* ((depth 0) (start 0) (char ?+) |
| @@ -453,7 +460,7 @@ required by the caller." | |||
| 453 | start (1+ (match-beginning 0)))) | 460 | start (1+ (match-beginning 0)))) |
| 454 | (if (or (equal (nth 2 var) "0") | 461 | (if (or (equal (nth 2 var) "0") |
| 455 | (and (equal (nth 2 var) "1") | 462 | (and (equal (nth 2 var) "1") |
| 456 | (string-match "char \\*" (nth 3 var)))) | 463 | (string-match "char \\*$" (nth 3 var)))) |
| 457 | (speedbar-make-tag-line 'bracket ?? nil nil | 464 | (speedbar-make-tag-line 'bracket ?? nil nil |
| 458 | (concat (car var) "\t" (nth 4 var)) | 465 | (concat (car var) "\t" (nth 4 var)) |
| 459 | 'gdb-edit-value | 466 | 'gdb-edit-value |
| @@ -465,10 +472,21 @@ required by the caller." | |||
| 465 | (if (and (cadr var-list) | 472 | (if (and (cadr var-list) |
| 466 | (string-match varnum (cadr (cadr var-list)))) | 473 | (string-match varnum (cadr (cadr var-list)))) |
| 467 | (setq char ?-)) | 474 | (setq char ?-)) |
| 475 | (if (string-match "\\*$" (nth 3 var)) | ||
| 476 | (speedbar-make-tag-line 'bracket char | ||
| 477 | 'gdb-speedbar-expand-node varnum | ||
| 478 | (concat (car var) "\t" | ||
| 479 | (nth 3 var)"\t" | ||
| 480 | (nth 4 var)) | ||
| 481 | 'gdb-edit-value nil | ||
| 482 | (if (and (nth 5 var) | ||
| 483 | gdb-show-changed-values) | ||
| 484 | 'font-lock-warning-face | ||
| 485 | nil) depth) | ||
| 468 | (speedbar-make-tag-line 'bracket char | 486 | (speedbar-make-tag-line 'bracket char |
| 469 | 'gdb-speedbar-expand-node varnum | 487 | 'gdb-speedbar-expand-node varnum |
| 470 | (concat (car var) "\t" (nth 3 var)) | 488 | (concat (car var) "\t" (nth 3 var)) |
| 471 | nil nil nil depth))) | 489 | nil nil nil depth)))) |
| 472 | (setq var-list (cdr var-list)))) | 490 | (setq var-list (cdr var-list)))) |
| 473 | (setq gdb-var-changed nil))) | 491 | (setq gdb-var-changed nil))) |
| 474 | (t (if (and (save-excursion | 492 | (t (if (and (save-excursion |
| @@ -3079,6 +3097,8 @@ class of the file (using s to separate nested class ids)." | |||
| 3079 | ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) | 3097 | ("\\$\\(\\w+\\)" (1 font-lock-variable-name-face)) |
| 3080 | ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) | 3098 | ("^\\s-*\\([a-z]+\\)" (1 font-lock-keyword-face)))) |
| 3081 | 3099 | ||
| 3100 | ;; FIXME: The keyword "end" associated with "document" | ||
| 3101 | ;; should have font-lock-keyword-face (currently font-lock-doc-face). | ||
| 3082 | (defvar gdb-script-font-lock-syntactic-keywords | 3102 | (defvar gdb-script-font-lock-syntactic-keywords |
| 3083 | '(("^document\\s-.*\\(\n\\)" (1 "< b")) | 3103 | '(("^document\\s-.*\\(\n\\)" (1 "< b")) |
| 3084 | ;; It would be best to change the \n in front, but it's more difficult. | 3104 | ;; It would be best to change the \n in front, but it's more difficult. |