Function: doom-modeline-update-lsp
doom-modeline-update-lsp is a natively compiled function defined in
doom-modeline-segments.el.
Signature
(doom-modeline-update-lsp &rest _)
Documentation
Update lsp-mode 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-lsp (&rest _)
"Update `lsp-mode' state."
(setq doom-modeline--lsp
(let* ((workspaces (lsp-workspaces))
(face (if workspaces 'doom-modeline-lsp-success 'doom-modeline-lsp-warning))
(icon (doom-modeline-lsp-icon "LSP" face)))
(propertize icon
'help-echo
(if workspaces
(concat "LSP connected "
(string-join
(mapcar (lambda (w)
(format "[%s]\n" (lsp--workspace-print w)))
workspaces))
"C-mouse-1: Switch to another workspace folder
mouse-1: Describe current session
mouse-2: Quit server
mouse-3: Reconnect to server")
"LSP Disconnected
mouse-1: Reload to start server")
'mouse-face 'doom-modeline-highlight
'local-map (let ((map (make-sparse-keymap)))
(if workspaces
(progn
(define-key map [mode-line C-mouse-1]
#'lsp-workspace-folders-open)
(define-key map [mode-line mouse-1]
#'lsp-describe-session)
(define-key map [mode-line mouse-2]
#'lsp-workspace-shutdown)
(define-key map [mode-line mouse-3]
#'lsp-workspace-restart))
(progn
(define-key map [mode-line mouse-1]
(lambda ()
(interactive)
(ignore-errors (revert-buffer t t))))))
map)))))