diff --git a/lsp-mode.el b/lsp-mode.el index 3b27a86b413..9b48caaea61 100644 --- a/lsp-mode.el +++ b/lsp-mode.el @@ -31,6 +31,7 @@ (require 'cl-lib) (require 'compile) (require 'dash) +(require 'desktop) (require 'epg) (require 'ewoc) (require 'f) @@ -9124,6 +9125,13 @@ This avoids overloading the server with many files when starting Emacs." (unless (lsp--init-if-visible) (add-hook 'window-configuration-change-hook #'lsp--init-if-visible nil t)))))))) +(add-to-list 'desktop-locals-to-save 'lsp--buffer-deferred) +(add-to-list 'desktop-minor-mode-handlers + '(lsp-mode . (lambda (desktop-buffer-locals) + (if (alist-get 'lsp--buffer-deferred desktop-buffer-locals) + (lsp-deferred) + (lsp-mode))))) + (defvar lsp-file-truename-cache (ht))