branch: master commit e04eeb221f22ad1ce42554946bc3b31839088546 Author: Clément Pit--Claudel <clement.pitclau...@live.com> Commit: Clément Pit--Claudel <clement.pitclau...@live.com>
Improve eval: run on region if active, and fall back to prompting Part of #83: makes C-c e in realgud:gdb-short-key-mode-map mostly redundant. --- realgud/common/cmds.el | 10 +++++++++- realgud/common/menu.el | 4 ++-- realgud/common/shortkey.el | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/realgud/common/cmds.el b/realgud/common/cmds.el index 9ab344f..21eaa57 100644 --- a/realgud/common/cmds.el +++ b/realgud/common/cmds.el @@ -117,18 +117,26 @@ a shortcut for that key." ) (defun realgud:cmd-eval(arg) - "Exaluate an expression." + "Evaluate an expression." (interactive "MEval expesssion: ") (realgud:cmd-remap arg "eval" "eval %s" "e") ) (defun realgud:cmd-eval-region(start end) + "Evaluate current region." (interactive "r") (let ((text (buffer-substring-no-properties start end))) (realgud:cmd-remap text "eval" "eval %s" "e") ) ) +(defun realgud:cmd-eval-dwim() + "Eval the current region if active; otherwise, prompt." + (interactive) + (call-interactively (if (region-active-p) + #'realgud:cmd-eval-region + #'realgud:cmd-eval))) + (defun realgud:cmd-finish(&optional arg) "Run until the completion of the current stack frame. diff --git a/realgud/common/menu.el b/realgud/common/menu.el index 94d1385..efab31a 100644 --- a/realgud/common/menu.el +++ b/realgud/common/menu.el @@ -152,9 +152,9 @@ menu. (The common map typically contains function key bindings.)" )) (define-key debugger-map [eval] - (realgud-menu-item debugger-map "Evaluate Region" 'realgud:cmd-eval-region + (realgud-menu-item debugger-map "Evaluate region or string" 'realgud:cmd-eval-dwim :enable '(realgud-get-process) - :help (documentation 'realgud:cmd-eval-region) + :help (documentation 'realgud:cmd-eval-dwim) )) (define-key debugger-map [Recenter] diff --git a/realgud/common/shortkey.el b/realgud/common/shortkey.el index 4adecc2..c236237 100644 --- a/realgud/common/shortkey.el +++ b/realgud/common/shortkey.el @@ -43,7 +43,7 @@ (define-key map "9" 'realgud:goto-loc-hist-9) (define-key map "b" 'realgud:cmd-break) (define-key map "c" 'realgud:cmd-continue) - (define-key map "e" 'realgud:cmd-eval-region) + (define-key map "e" 'realgud:cmd-eval-dwim) (define-key map "U" 'realgud:cmd-until) (define-key map [mouse-2] 'realgud:tooltip-eval)