diff options
| -rw-r--r-- | lisp/progmodes/gud.el | 82 |
1 files changed, 43 insertions, 39 deletions
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 2d6d1fa3980..aa0fd0c1378 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -3221,10 +3221,50 @@ Treats actions as defuns." | |||
| 3221 | ;;; tooltips for GUD | 3221 | ;;; tooltips for GUD |
| 3222 | 3222 | ||
| 3223 | ;;; Customizable settings | 3223 | ;;; Customizable settings |
| 3224 | |||
| 3225 | ;;;###autoload | ||
| 3226 | (define-minor-mode gud-tooltip-mode | ||
| 3227 | "Toggle the display of GUD tooltips." | ||
| 3228 | :global t | ||
| 3229 | :group 'gud | ||
| 3230 | :group 'tooltip | ||
| 3231 | (require 'tooltip) | ||
| 3232 | (if gud-tooltip-mode | ||
| 3233 | (progn | ||
| 3234 | (add-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode) | ||
| 3235 | (add-hook 'pre-command-hook 'tooltip-hide) | ||
| 3236 | (add-hook 'tooltip-hook 'gud-tooltip-tips) | ||
| 3237 | (define-key global-map [mouse-movement] 'gud-tooltip-mouse-motion)) | ||
| 3238 | (unless tooltip-mode (remove-hook 'pre-command-hook 'tooltip-hide) | ||
| 3239 | (remove-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode) | ||
| 3240 | (remove-hook 'tooltip-hook 'gud-tooltip-tips) | ||
| 3241 | (define-key global-map [mouse-movement] 'ignore))) | ||
| 3242 | (gud-tooltip-activate-mouse-motions-if-enabled) | ||
| 3243 | (if (and | ||
| 3244 | gud-comint-buffer | ||
| 3245 | (buffer-name gud-comint-buffer); gud-comint-buffer might be killed | ||
| 3246 | (with-current-buffer gud-comint-buffer | ||
| 3247 | (memq gud-minor-mode '(gdbmi gdba)))) | ||
| 3248 | (if gud-tooltip-mode | ||
| 3249 | (progn | ||
| 3250 | (dolist (buffer (buffer-list)) | ||
| 3251 | (unless (eq buffer gud-comint-buffer) | ||
| 3252 | (with-current-buffer buffer | ||
| 3253 | (when (and (memq gud-minor-mode '(gdbmi gdba)) | ||
| 3254 | (not (string-match "\\`\\*.+\\*\\'" | ||
| 3255 | (buffer-name)))) | ||
| 3256 | (make-local-variable 'gdb-define-alist) | ||
| 3257 | (gdb-create-define-alist) | ||
| 3258 | (add-hook 'after-save-hook | ||
| 3259 | 'gdb-create-define-alist nil t)))))) | ||
| 3260 | (kill-local-variable 'gdb-define-alist) | ||
| 3261 | (remove-hook 'after-save-hook 'gdb-create-define-alist t)))) | ||
| 3262 | |||
| 3224 | (defcustom gud-tooltip-modes '(gud-mode c-mode c++-mode fortran-mode) | 3263 | (defcustom gud-tooltip-modes '(gud-mode c-mode c++-mode fortran-mode) |
| 3225 | "List of modes for which to enable GUD tips." | 3264 | "List of modes for which to enable GUD tooltips." |
| 3226 | :type 'sexp | 3265 | :type 'sexp |
| 3227 | :tag "GUD modes" | 3266 | :tag "GUD modes" |
| 3267 | :group 'gud | ||
| 3228 | :group 'tooltip) | 3268 | :group 'tooltip) |
| 3229 | 3269 | ||
| 3230 | (defcustom gud-tooltip-display | 3270 | (defcustom gud-tooltip-display |
| @@ -3236,12 +3276,13 @@ Forms in the list are combined with AND. The default is to display | |||
| 3236 | only tooltips in the buffer containing the overlay arrow." | 3276 | only tooltips in the buffer containing the overlay arrow." |
| 3237 | :type 'sexp | 3277 | :type 'sexp |
| 3238 | :tag "GUD buffers predicate" | 3278 | :tag "GUD buffers predicate" |
| 3279 | :group 'gud | ||
| 3239 | :group 'tooltip) | 3280 | :group 'tooltip) |
| 3240 | 3281 | ||
| 3241 | (defcustom gud-tooltip-echo-area nil | 3282 | (defcustom gud-tooltip-echo-area nil |
| 3242 | "Use the echo area instead of frames for GUD tooltips." | 3283 | "Use the echo area instead of frames for GUD tooltips." |
| 3243 | :type 'boolean | 3284 | :type 'boolean |
| 3244 | :tag "Use echo area" | 3285 | :group 'gud |
| 3245 | :group 'tooltip) | 3286 | :group 'tooltip) |
| 3246 | 3287 | ||
| 3247 | (define-obsolete-variable-alias 'tooltip-gud-modes | 3288 | (define-obsolete-variable-alias 'tooltip-gud-modes |
| @@ -3315,43 +3356,6 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.") | |||
| 3315 | (define-obsolete-function-alias 'tooltip-gud-toggle-dereference | 3356 | (define-obsolete-function-alias 'tooltip-gud-toggle-dereference |
| 3316 | 'toggle-gud-tooltip-dereference "22.1") | 3357 | 'toggle-gud-tooltip-dereference "22.1") |
| 3317 | 3358 | ||
| 3318 | ;;;###autoload | ||
| 3319 | (define-minor-mode gud-tooltip-mode | ||
| 3320 | "Toggle the display of GUD tooltips." | ||
| 3321 | :global t | ||
| 3322 | :group 'gud | ||
| 3323 | (require 'tooltip) | ||
| 3324 | (if gud-tooltip-mode | ||
| 3325 | (progn | ||
| 3326 | (add-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode) | ||
| 3327 | (add-hook 'pre-command-hook 'tooltip-hide) | ||
| 3328 | (add-hook 'tooltip-hook 'gud-tooltip-tips) | ||
| 3329 | (define-key global-map [mouse-movement] 'gud-tooltip-mouse-motion)) | ||
| 3330 | (unless tooltip-mode (remove-hook 'pre-command-hook 'tooltip-hide) | ||
| 3331 | (remove-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode) | ||
| 3332 | (remove-hook 'tooltip-hook 'gud-tooltip-tips) | ||
| 3333 | (define-key global-map [mouse-movement] 'ignore))) | ||
| 3334 | (gud-tooltip-activate-mouse-motions-if-enabled) | ||
| 3335 | (if (and | ||
| 3336 | gud-comint-buffer | ||
| 3337 | (buffer-name gud-comint-buffer); gud-comint-buffer might be killed | ||
| 3338 | (with-current-buffer gud-comint-buffer | ||
| 3339 | (memq gud-minor-mode '(gdbmi gdba)))) | ||
| 3340 | (if gud-tooltip-mode | ||
| 3341 | (progn | ||
| 3342 | (dolist (buffer (buffer-list)) | ||
| 3343 | (unless (eq buffer gud-comint-buffer) | ||
| 3344 | (with-current-buffer buffer | ||
| 3345 | (when (and (memq gud-minor-mode '(gdbmi gdba)) | ||
| 3346 | (not (string-match "\\`\\*.+\\*\\'" | ||
| 3347 | (buffer-name)))) | ||
| 3348 | (make-local-variable 'gdb-define-alist) | ||
| 3349 | (gdb-create-define-alist) | ||
| 3350 | (add-hook 'after-save-hook | ||
| 3351 | 'gdb-create-define-alist nil t)))))) | ||
| 3352 | (kill-local-variable 'gdb-define-alist) | ||
| 3353 | (remove-hook 'after-save-hook 'gdb-create-define-alist t)))) | ||
| 3354 | |||
| 3355 | ; This will only display data that comes in one chunk. | 3359 | ; This will only display data that comes in one chunk. |
| 3356 | ; Larger arrays (say 400 elements) are displayed in | 3360 | ; Larger arrays (say 400 elements) are displayed in |
| 3357 | ; the tooltip incompletely and spill over into the gud buffer. | 3361 | ; the tooltip incompletely and spill over into the gud buffer. |