Skip to content

Commit f728678

Browse files
author
Bozhidar Batsov
committed
[Fix #670] More robust Clojure font-locking for the *cider-result* buffer
1 parent 9478bbf commit f728678

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

cider-interaction.el

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -838,9 +838,7 @@ This is controlled via `cider-interactive-eval-output-destination'."
838838
"Make a handler for evaluating and printing result in popup BUFFER."
839839
(nrepl-make-response-handler buffer
840840
(lambda (buffer str)
841-
(cider-emit-into-popup-buffer
842-
buffer
843-
(cider-font-lock-as-clojure str)))
841+
(cider-emit-into-popup-buffer buffer str))
844842
'()
845843
(lambda (buffer str)
846844
(cider-emit-into-popup-buffer buffer str))
@@ -853,9 +851,7 @@ This is used by pretty-printing commands and intentionally discards their result
853851
(nrepl-make-response-handler buffer
854852
'()
855853
(lambda (buffer str)
856-
(cider-emit-into-popup-buffer
857-
buffer
858-
(cider-font-lock-as-clojure str)))
854+
(cider-emit-into-popup-buffer buffer str))
859855
(lambda (buffer str)
860856
(cider-emit-into-popup-buffer buffer str))
861857
'()))
@@ -1033,10 +1029,11 @@ KILL-BUFFER-P is passed along."
10331029
(interactive)
10341030
(funcall cider-popup-buffer-quit-function kill-buffer-p))
10351031

1036-
(defun cider-popup-buffer (name &optional select)
1032+
(defun cider-popup-buffer (name &optional select major-mode)
10371033
"Create new popup buffer called NAME.
1038-
If SELECT is non-nil, select the newly created window"
1039-
(with-current-buffer (cider-make-popup-buffer name)
1034+
If SELECT is non-nil, select the newly created window.
1035+
If MAJOR-MODE is non-nil enabled it for the popup buffer."
1036+
(with-current-buffer (cider-make-popup-buffer name major-mode)
10401037
(cider-popup-buffer-display (current-buffer) select)))
10411038

10421039
(defun cider-popup-buffer-display (popup-buffer &optional select)
@@ -1055,13 +1052,14 @@ If prefix argument KILL-BUFFER-P is non-nil, kill the buffer instead of burying
10551052
(interactive)
10561053
(quit-window kill-buffer-p (selected-window)))
10571054

1058-
(defun cider-make-popup-buffer (name)
1059-
"Create a temporary buffer called NAME."
1055+
(defun cider-make-popup-buffer (name &optional major-mode)
1056+
"Create a temporary buffer called NAME using MAJOR-mode (if specified)."
10601057
(with-current-buffer (get-buffer-create name)
10611058
(kill-all-local-variables)
10621059
(setq buffer-read-only nil)
10631060
(erase-buffer)
1064-
(set-syntax-table clojure-mode-syntax-table)
1061+
(when major-mode
1062+
(funcall major-mode))
10651063
(cider-popup-buffer-mode 1)
10661064
(setq buffer-read-only t)
10671065
(current-buffer)))
@@ -1175,7 +1173,7 @@ Print its value into the current buffer."
11751173
"Evaluate the sexp preceding point and pprint its value in a popup buffer."
11761174
(interactive)
11771175
(let ((form (cider-last-sexp))
1178-
(result-buffer (cider-popup-buffer cider-result-buffer nil)))
1176+
(result-buffer (cider-popup-buffer cider-result-buffer nil 'clojure-mode)))
11791177
(cider-eval (cider-format-pprint-eval form)
11801178
(cider-popup-eval-out-handler result-buffer)
11811179
(cider-current-ns))))
@@ -1184,7 +1182,7 @@ Print its value into the current buffer."
11841182
"Evaluate the top-level form at point and pprint its value in a popup buffer."
11851183
(interactive)
11861184
(let ((form (cider-defun-at-point))
1187-
(result-buffer (cider-popup-buffer cider-result-buffer nil)))
1185+
(result-buffer (cider-popup-buffer cider-result-buffer nil 'clojure-mode)))
11881186
(cider-eval (cider-format-pprint-eval form)
11891187
(cider-popup-eval-out-handler result-buffer)
11901188
(cider-current-ns))))

0 commit comments

Comments
 (0)