Skip to content

Commit f4b14cb

Browse files
committed
Use insert-before-markers when inserting images
We now no longer need to either manually fix up the input/prompt start markers, or manually fix up the point after emitting the prompt.
1 parent 0db9955 commit f4b14cb

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

cider-repl.el

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
(require 'clojure-mode)
4747
(require 'easymenu)
4848
(require 'cl-lib)
49+
(require 'image)
4950
(require 'sesman)
5051

5152
(eval-when-compile
@@ -796,15 +797,20 @@ SHOW-PREFIX and BOL."
796797
(save-excursion
797798
(cider-save-marker cider-repl-output-start
798799
(cider-save-marker cider-repl-output-end
799-
(goto-char cider-repl-input-start-mark)
800+
(goto-char (cider-repl--end-of-output))
800801
(when (and bol (not (bolp)))
801802
(insert-before-markers "\n"))
802803
(when show-prefix
803804
(insert-before-markers
804805
(propertize cider-repl-result-prefix 'font-lock-face 'font-lock-comment-face)))
805-
(insert-image image string)
806-
(set-marker cider-repl-input-start-mark (point) buffer)
807-
(set-marker cider-repl-prompt-start-mark (point) buffer))))
806+
;; The below is inlined from `insert-image' and changed to use
807+
;; `insert-before-markers' rather than `insert'
808+
(let ((start (point))
809+
(props (nconc `(display ,image rear-nonsticky (display))
810+
(when (boundp 'image-map)
811+
`(keymap ,image-map)))))
812+
(insert-before-markers string)
813+
(add-text-properties start (point) props)))))
808814
(cider-repl--show-maximum-output))
809815
t)
810816

@@ -880,12 +886,7 @@ nREPL ops, it may be convenient to prevent inserting a prompt.")
880886
(cider-repl-emit-stderr buffer err))
881887
(lambda (buffer)
882888
(when show-prompt
883-
(cider-repl-emit-prompt buffer)
884-
(let ((win (get-buffer-window (current-buffer) t)))
885-
(when win
886-
(with-selected-window win
887-
(set-window-point win cider-repl-input-start-mark))
888-
(cider-repl--show-maximum-output)))))
889+
(cider-repl-emit-prompt buffer)))
889890
nrepl-err-handler
890891
(lambda (buffer value content-type)
891892
(if-let* ((content-attrs (cadr content-type))

0 commit comments

Comments
 (0)