@@ -645,6 +645,12 @@ If this is set to nil, `eldoc' will show only the symbol information."
645
645
:type 'boolean
646
646
:group 'lsp-mode)
647
647
648
+ (defcustom lsp-modeline-workspace-status-enable t
649
+ "Whether to show workspace status on modeline."
650
+ :type 'boolean
651
+ :group 'lsp-mode
652
+ :package-version '(lsp-mode . "7.1"))
653
+
648
654
(defcustom lsp-headerline-breadcrumb-enable nil
649
655
"Whether to enable breadcrumb on headerline."
650
656
:type 'boolean
@@ -3582,71 +3588,65 @@ in that particular folder."
3582
3588
(define-minor-mode lsp-managed-mode
3583
3589
"Mode for source buffers managed by lsp-mode."
3584
3590
nil nil nil
3585
- (let ((status '(t (:eval (-keep #'lsp--workspace-status-string (lsp-workspaces))))))
3586
- (cond
3587
- (lsp-managed-mode
3588
- (when (lsp-feature? "textDocument/hover")
3589
- (add-function :before-until (local 'eldoc-documentation-function) #'lsp-eldoc-function)
3590
- (eldoc-mode 1))
3591
-
3592
- (add-hook 'after-change-functions #'lsp-on-change nil t)
3593
- (add-hook 'after-revert-hook #'lsp-on-revert nil t)
3594
- (add-hook 'after-save-hook #'lsp-on-save nil t)
3595
- (add-hook 'auto-save-hook #'lsp--on-auto-save nil t)
3596
- (add-hook 'before-change-functions #'lsp-before-change nil t)
3597
- (add-hook 'before-save-hook #'lsp--before-save nil t)
3598
- (add-hook 'kill-buffer-hook #'lsp--text-document-did-close nil t)
3599
- (add-hook 'post-command-hook #'lsp--post-command nil t)
3600
-
3601
- (lsp--update-on-type-formatting-hook)
3602
- (lsp--update-signature-help-hook)
3603
-
3604
- (lsp--semantic-highlighting-warn-about-deprecated-setting)
3605
-
3606
- (when lsp-enable-xref
3607
- (add-hook 'xref-backend-functions #'lsp--xref-backend nil t))
3608
-
3609
- (setq-local global-mode-string (if (-contains? global-mode-string status)
3610
- global-mode-string
3611
- (cons status global-mode-string)))
3612
-
3613
- (lsp-configure-buffer)
3614
- (let ((buffer (lsp-current-buffer)))
3615
- (run-with-idle-timer
3616
- 0.0 nil
3617
- (lambda ()
3618
- (when (lsp-buffer-live-p buffer)
3619
- (lsp-with-current-buffer buffer
3620
- (lsp--on-change-debounce buffer)
3621
- (lsp--on-idle buffer)))))))
3622
- (t
3623
- (lsp-unconfig-buffer)
3624
- (remove-function (local 'eldoc-documentation-function) #'lsp-eldoc-function)
3625
-
3626
- (remove-hook 'post-command-hook #'lsp--post-command t)
3627
- (remove-hook 'after-change-functions #'lsp-on-change t)
3628
- (remove-hook 'after-revert-hook #'lsp-on-revert t)
3629
- (remove-hook 'after-save-hook #'lsp-on-save t)
3630
- (remove-hook 'auto-save-hook #'lsp--on-auto-save t)
3631
- (remove-hook 'before-change-functions #'lsp-before-change t)
3632
- (remove-hook 'before-save-hook #'lsp--before-save t)
3633
- (remove-hook 'kill-buffer-hook #'lsp--text-document-did-close t)
3634
-
3635
- (lsp--update-on-type-formatting-hook :cleanup)
3636
- (lsp--update-signature-help-hook :cleanup)
3637
-
3638
- (when lsp--on-idle-timer
3639
- (cancel-timer lsp--on-idle-timer)
3640
- (setq lsp--on-idle-timer nil))
3641
-
3642
- (remove-hook 'lsp-on-idle-hook #'lsp--document-links t)
3643
- (remove-hook 'lsp-on-idle-hook #'lsp--document-highlight t)
3644
-
3645
- (lsp--remove-overlays 'lsp-highlight)
3646
- (lsp--remove-overlays 'lsp-links)
3647
-
3648
- (remove-hook 'xref-backend-functions #'lsp--xref-backend t)
3649
- (setq-local global-mode-string (remove status global-mode-string))))))
3591
+ (cond
3592
+ (lsp-managed-mode
3593
+ (when (lsp-feature? "textDocument/hover")
3594
+ (add-function :before-until (local 'eldoc-documentation-function) #'lsp-eldoc-function)
3595
+ (eldoc-mode 1))
3596
+
3597
+ (add-hook 'after-change-functions #'lsp-on-change nil t)
3598
+ (add-hook 'after-revert-hook #'lsp-on-revert nil t)
3599
+ (add-hook 'after-save-hook #'lsp-on-save nil t)
3600
+ (add-hook 'auto-save-hook #'lsp--on-auto-save nil t)
3601
+ (add-hook 'before-change-functions #'lsp-before-change nil t)
3602
+ (add-hook 'before-save-hook #'lsp--before-save nil t)
3603
+ (add-hook 'kill-buffer-hook #'lsp--text-document-did-close nil t)
3604
+ (add-hook 'post-command-hook #'lsp--post-command nil t)
3605
+
3606
+ (lsp--update-on-type-formatting-hook)
3607
+ (lsp--update-signature-help-hook)
3608
+
3609
+ (lsp--semantic-highlighting-warn-about-deprecated-setting)
3610
+
3611
+ (when lsp-enable-xref
3612
+ (add-hook 'xref-backend-functions #'lsp--xref-backend nil t))
3613
+
3614
+ (lsp-configure-buffer)
3615
+ (let ((buffer (lsp-current-buffer)))
3616
+ (run-with-idle-timer
3617
+ 0.0 nil
3618
+ (lambda ()
3619
+ (when (lsp-buffer-live-p buffer)
3620
+ (lsp-with-current-buffer buffer
3621
+ (lsp--on-change-debounce buffer)
3622
+ (lsp--on-idle buffer)))))))
3623
+ (t
3624
+ (lsp-unconfig-buffer)
3625
+ (remove-function (local 'eldoc-documentation-function) #'lsp-eldoc-function)
3626
+
3627
+ (remove-hook 'post-command-hook #'lsp--post-command t)
3628
+ (remove-hook 'after-change-functions #'lsp-on-change t)
3629
+ (remove-hook 'after-revert-hook #'lsp-on-revert t)
3630
+ (remove-hook 'after-save-hook #'lsp-on-save t)
3631
+ (remove-hook 'auto-save-hook #'lsp--on-auto-save t)
3632
+ (remove-hook 'before-change-functions #'lsp-before-change t)
3633
+ (remove-hook 'before-save-hook #'lsp--before-save t)
3634
+ (remove-hook 'kill-buffer-hook #'lsp--text-document-did-close t)
3635
+
3636
+ (lsp--update-on-type-formatting-hook :cleanup)
3637
+ (lsp--update-signature-help-hook :cleanup)
3638
+
3639
+ (when lsp--on-idle-timer
3640
+ (cancel-timer lsp--on-idle-timer)
3641
+ (setq lsp--on-idle-timer nil))
3642
+
3643
+ (remove-hook 'lsp-on-idle-hook #'lsp--document-links t)
3644
+ (remove-hook 'lsp-on-idle-hook #'lsp--document-highlight t)
3645
+
3646
+ (lsp--remove-overlays 'lsp-highlight)
3647
+ (lsp--remove-overlays 'lsp-links)
3648
+
3649
+ (remove-hook 'xref-backend-functions #'lsp--xref-backend t))))
3650
3650
3651
3651
(defun lsp-configure-buffer ()
3652
3652
"Configure LSP features for current buffer."
@@ -6606,6 +6606,8 @@ returns the command to execute."
6606
6606
(add-hook 'lsp-configure-hook 'lsp-modeline-code-actions-mode))
6607
6607
(when lsp-modeline-diagnostics-enable
6608
6608
(add-hook 'lsp-configure-hook 'lsp-modeline-diagnostics-mode))
6609
+ (when lsp-modeline-workspace-status-enable
6610
+ (add-hook 'lsp-configure-hook 'lsp-modeline-workspace-status-mode))
6609
6611
(when lsp-lens-enable
6610
6612
(add-hook 'lsp-configure-hook 'lsp-lens-mode))
6611
6613
0 commit comments