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)))))