summaryrefslogtreecommitdiff
path: root/cider-repl.el
diff options
context:
space:
mode:
authorBozhidar Batsov <bozhidar.batsov@gmail.com>2015-12-27 08:14:53 +0100
committerBozhidar Batsov <bozhidar.batsov@gmail.com>2015-12-27 08:14:53 +0100
commit2bff0500137b2ff566253c2b21d38f349a364aa4 (patch)
tree6e6f526cc727ca7010dc2677ad5b75d76e84c2df /cider-repl.el
parent316f75b7e4b214fdab8f11d34708b5670631e1f5 (diff)
parent5c6003d18fa8703307d89c2109f64757c25ac82a (diff)
Merge pull request #1488 from rfkm/delete-zombie-overlays
Delete overlays when clearing REPL buffer
Diffstat (limited to 'cider-repl.el')
-rw-r--r--cider-repl.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/cider-repl.el b/cider-repl.el
index c9311256..0edbdf33 100644
--- a/cider-repl.el
+++ b/cider-repl.el
@@ -743,12 +743,17 @@ text property `cider-old-input'."
(defvar cider-repl-clear-buffer-hook)
+(defun cider-repl--clear-region (start end)
+ "Delete the output and its overlays between START and END."
+ (mapc 'delete-overlay (overlays-in start end))
+ (delete-region start end))
+
(defun cider-repl-clear-buffer ()
"Delete the output generated by the Clojure process."
(interactive)
(let ((inhibit-read-only t))
- (delete-region (point-min) cider-repl-prompt-start-mark)
- (delete-region cider-repl-output-start cider-repl-output-end)
+ (cider-repl--clear-region (point-min) cider-repl-prompt-start-mark)
+ (cider-repl--clear-region cider-repl-output-start cider-repl-output-end)
(when (< (point) cider-repl-input-start-mark)
(goto-char cider-repl-input-start-mark))
(recenter t))
@@ -773,7 +778,7 @@ With a prefix argument CLEAR-REPL it will clear the entire REPL buffer instead."
(end (cider-repl--end-of-line-before-input-start)))
(when (< start end)
(let ((inhibit-read-only t))
- (delete-region start end)
+ (cider-repl--clear-region start end)
(save-excursion
(goto-char start)
(insert