Function: cider-repl--state-handler
cider-repl--state-handler is a byte-compiled function defined in
cider-repl.el.
Signature
(cider-repl--state-handler RESPONSE)
Documentation
Handle server state contained in RESPONSE.
Source Code
;; Defined in ~/.emacs.d/elpa/cider-20260414.1619/cider-repl.el
(defun cider-repl--state-handler (response)
"Handle server state contained in RESPONSE."
(with-demoted-errors "Error in `cider-repl--state-handler': %s"
(when (member "state" (nrepl-dict-get response "status"))
(nrepl-dbind-response response (repl-type changed-namespaces session)
(when (and repl-type
cider-repl-auto-detect-type
;; tooling sessions always run on the JVM so they are not a valid criterion:
(not (equal session nrepl-tooling-session)))
(cider-set-repl-type repl-type))
(when (eq (cider-maybe-intern repl-type) 'cljs)
(setq cider-repl-cljs-upgrade-pending nil))
(unless (nrepl-dict-empty-p changed-namespaces)
(setq cider-repl-ns-cache (nrepl-dict-merge cider-repl-ns-cache changed-namespaces))
(let ((this-repl (current-buffer)))
(dolist (b (buffer-list))
(with-current-buffer b
(when (or cider-mode (derived-mode-p 'cider-repl-mode))
;; We only cider-refresh-dynamic-font-lock (and set `cider-eldoc-last-symbol')
;; for Clojure buffers directly related to this repl
;; (specifically, we omit 'friendly' sessions because a given buffer may be friendly to multiple repls,
;; so we don't want a buffer to mix up font locking rules from different repls).
;; Note that `sesman--linked-sessions' only queries for the directly linked sessions.
;; That has the additional advantage of running very/predictably fast, since it won't run our
;; `cider--sesman-friendly-session-p' logic, which can be slow for its non-cached path.
(when (member this-repl (car (sesman--linked-sessions 'CIDER)))
;; Metadata changed, so signatures may have changed too.
(setq cider-eldoc-last-symbol nil)
(when-let* ((ns-dict (or (nrepl-dict-get changed-namespaces (cider-current-ns))
(let ((ns-dict (cider-resolve--get-in (cider-current-ns))))
(when (seq-find (lambda (ns) (nrepl-dict-get changed-namespaces ns))
(nrepl-dict-get ns-dict "aliases"))
ns-dict)))))
(cider-refresh-dynamic-font-lock ns-dict))))))))))))