From 95a603733a273b8894be367626afd7cb6bdc80c2 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 5 Feb 2021 21:53:06 -0500 Subject: [PATCH] Add +lsp-prompt-to-install-server option If nil, LSP will quietly fail if no LSP server is available instead of pestering the user to install a server. --- modules/tools/lsp/+lsp.el | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/tools/lsp/+lsp.el b/modules/tools/lsp/+lsp.el index cc541e71b..8feadd5df 100644 --- a/modules/tools/lsp/+lsp.el +++ b/modules/tools/lsp/+lsp.el @@ -4,6 +4,9 @@ "The backends to prepend to `company-backends' in `lsp-mode' buffers. Can be a list of backends; accepts any value `company-backends' accepts.") +(defvar +lsp-prompt-to-install-server t + "If non-nil, prompt to install a server if no server is present.") + ;; ;;; Packages @@ -108,7 +111,18 @@ server getting expensively restarted when reverting buffers." (let ((lsp-restart 'ignore)) (funcall orig-fn)) (+lsp-optimization-mode -1)))) - lsp--cur-workspace))))) + lsp--cur-workspace)))) + + (defadvice! +lsp-dont-prompt-to-install-servers-maybe-a (orig-fn &rest args) + :around #'lsp + (lsp--require-packages) + (when (buffer-file-name) + (if (or (lsp--filter-clients + (-andfn #'lsp--matching-clients? + #'lsp--server-binary-present?)) + +lsp-prompt-to-install-server) + (apply orig-fn args) + (lsp--info "No language server available for %S" major-mode))))) (use-package! lsp-ui