diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-03-28 06:58:44 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-03-28 06:58:44 +0200 |
commit | 026d74f89ea69d94c10e4048cab3b58a2b20cc0a (patch) | |
tree | b2769375e2e14b07e9c672433d25446ccbe4aacf | |
parent | 8ce1dace8890759b14752613edb11a35399c33df (diff) | |
download | geiser-026d74f89ea69d94c10e4048cab3b58a2b20cc0a.tar.gz geiser-026d74f89ea69d94c10e4048cab3b58a2b20cc0a.tar.bz2 |
More robust REPL input handling.
-rw-r--r-- | elisp/geiser-repl.el | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index 9e66901..b7401b9 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -336,11 +336,19 @@ module command as a string") (insert "\n") (lisp-indent-line))) +(defun geiser-repl--nesting-level () + (let ((begin (if comint-last-prompt-overlay + (overlay-end comint-last-prompt-overlay) + (save-excusion (geiser-repl--bol) (point))))) + (save-restriction + (narrow-to-region begin (point-max)) + (geiser-syntax--nesting-level)))) + (defun geiser-repl--send-input () (interactive) (let ((p (point))) (end-of-line) - (if (zerop (geiser-syntax--nesting-level)) + (if (<= (geiser-repl--nesting-level) 0) (comint-send-input) (goto-char p) (if geiser-repl-auto-indent-p |