diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2014-05-31 23:52:26 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2014-06-01 00:18:40 +0200 |
commit | c961e6097c896b952bf6ccbb8ebbb794c8d50294 (patch) | |
tree | 12ea9e627c53c46935478cf088a73c1c9140e9c9 /elisp/geiser-repl.el | |
parent | 9ff03facb2ea1e0a6b320f603dfd7e0e787d9593 (diff) | |
download | geiser-guile-c961e6097c896b952bf6ccbb8ebbb794c8d50294.tar.gz geiser-guile-c961e6097c896b952bf6ccbb8ebbb794c8d50294.tar.bz2 |
Almost redundant REPL command to interrupt evaluation
Works almost identically to the stock C-c C-c, with just marginally
better output aaand being well behaved when interrupting infinitely
looping functions such as (define (f) (newline) (let loop () (loop))) --
cf. issue #29 on github.
We like it so much that it replaces the old one.
Diffstat (limited to 'elisp/geiser-repl.el')
-rw-r--r-- | elisp/geiser-repl.el | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index adc8872..9ecbd25 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -452,6 +452,11 @@ module command as a string") (let ((comint-input-filter (lambda (x) nil))) (comint-send-input nil t)))) +(defun geiser-repl-interrupt () + (interactive) + (when (get-buffer-process (current-buffer)) + (interrupt-process nil comint-ptyp))) + ;;; REPL history @@ -685,6 +690,9 @@ buffer." ("Previous input" "\C-c\M-p" comint-previous-input) ("Next input" "\C-c\M-n" comint-next-input) -- + ("Interrupt evaluation" ("\C-c\C-k" "\C-c\C-c" "\C-ck") + geiser-repl-interrupt) + -- (mode "Autodoc mode" ("\C-c\C-da" "\C-c\C-d\C-a") geiser-autodoc-mode) ("Symbol documentation" ("\C-c\C-dd" "\C-c\C-d\C-d") geiser-doc-symbol-at-point |