@@ -246,17 +246,26 @@ This cache is stored in the connection buffer.")
246
246
(setq cider-repl-cljs-upgrade-pending nil ))
247
247
(unless (nrepl-dict-empty-p changed-namespaces)
248
248
(setq cider-repl-ns-cache (nrepl-dict-merge cider-repl-ns-cache changed-namespaces))
249
- (dolist (b (buffer-list ))
250
- (with-current-buffer b
251
- ; ; Metadata changed, so signatures may have changed too.
252
- (setq cider-eldoc-last-symbol nil )
253
- (when (or cider-mode (derived-mode-p 'cider-repl-mode ))
254
- (when-let* ((ns-dict (or (nrepl-dict-get changed-namespaces (cider-current-ns))
255
- (let ((ns-dict (cider-resolve--get-in (cider-current-ns))))
256
- (when (seq-find (lambda (ns ) (nrepl-dict-get changed-namespaces ns))
257
- (nrepl-dict-get ns-dict " aliases" ))
258
- ns-dict)))))
259
- (cider-refresh-dynamic-font-lock ns-dict))))))))))
249
+ (let ((this-repl (current-buffer )))
250
+ (dolist (b (buffer-list ))
251
+ (with-current-buffer b
252
+ (when (or cider-mode (derived-mode-p 'cider-repl-mode ))
253
+ ; ; We only cider-refresh-dynamic-font-lock (and set `cider-eldoc-last-symbol' )
254
+ ; ; for Clojure buffers directly related to this repl
255
+ ; ; (specifically, we omit 'friendly' sessions because a given buffer may be friendly to multiple repls,
256
+ ; ; so we don't want a buffer to mix up font locking rules from different repls).
257
+ ; ; Note that `sesman--linked-sessions' only queries for the directly linked sessions.
258
+ ; ; That has the additional advantage of running very/predictably fast, since it won't run our
259
+ ; ; `cider--sesman-friendly-session-p' logic, which can be slow for its non-cached path.
260
+ (when (member this-repl (car (sesman--linked-sessions 'CIDER )))
261
+ ; ; Metadata changed, so signatures may have changed too.
262
+ (setq cider-eldoc-last-symbol nil )
263
+ (when-let* ((ns-dict (or (nrepl-dict-get changed-namespaces (cider-current-ns))
264
+ (let ((ns-dict (cider-resolve--get-in (cider-current-ns))))
265
+ (when (seq-find (lambda (ns ) (nrepl-dict-get changed-namespaces ns))
266
+ (nrepl-dict-get ns-dict " aliases" ))
267
+ ns-dict)))))
268
+ (cider-refresh-dynamic-font-lock ns-dict))))))))))))
260
269
261
270
(defun cider-repl-require-repl-utils ()
262
271
" Require standard REPL util functions into the current REPL."
0 commit comments