Function: doom-modeline-update-eglot
doom-modeline-update-eglot is a natively compiled function defined in
doom-modeline-segments.el.
Signature
(doom-modeline-update-eglot)
Documentation
Update eglot state.
Source Code
;; Defined in /nix/store/1lcicrdd2r4b8rkc91nnn74ymk1jl6yd-emacs-packages-deps/share/emacs/site-lisp/elpa/doom-modeline-20260928.1632/doom-modeline-segments.el
(defun doom-modeline-update-eglot ()
"Update eglot state."
(setq doom-modeline--eglot
(let* ((server (and (eglot-managed-p) (eglot-current-server)))
(nick (and server (eglot-project-nickname server)))
(pending (and server (doom-modeline--eglot-pending-count server)))
(last-error (and server (jsonrpc-last-error server)))
(face (cond (last-error 'doom-modeline-lsp-error)
((and pending (cl-plusp pending)) 'doom-modeline-lsp-warning)
(nick 'doom-modeline-lsp-success)
(t 'doom-modeline-lsp-warning)))
(server-info (and server (eglot--server-info server)))
(server-name (or (plist-get server-info :name)
(and server (jsonrpc-name server)) ""))
(major-modes (or (and server (eglot--major-modes server)) ""))
(icon (doom-modeline-lsp-icon eglot-menu-string face)))
(propertize icon
'help-echo (format "Eglot connected [%s]\n%s %s
mouse-1: Display minor mode menu
mouse-3: LSP server control menu"
nick server-name major-modes)
'mouse-face 'doom-modeline-highlight
'local-map (let ((map (make-sparse-keymap)))
(define-key map [mode-line mouse-1] eglot-menu)
(define-key map [mode-line mouse-3] eglot-server-menu)
map)))))