diff --git a/modules/tools/lsp/autoload/lsp-mode.el b/modules/tools/lsp/autoload/lsp-mode.el index 72c9fc5a4..e3287dabd 100644 --- a/modules/tools/lsp/autoload/lsp-mode.el +++ b/modules/tools/lsp/autoload/lsp-mode.el @@ -28,7 +28,8 @@ (require 'lsp-mode) (list (completing-read "Select server: " - (or (mapcar #'lsp--client-server-id (lsp--find-clients)) + (or (mapcar #'lsp--client-server-id (lsp--filter-clients (-andfn #'lsp--matching-clients? + #'lsp--server-binary-present?))) (user-error "No available LSP clients for %S" major-mode)))))) (require 'lsp-mode) (let* ((client (if (symbolp client) client (intern client))) @@ -48,7 +49,8 @@ nil t) (car workspaces))) (lsp-mode +1)) - (setf (lsp--client-priority match) old-priority))))) + (add-transient-hook! 'lsp-after-initialize-hook + (setf (lsp--client-priority match) old-priority)))))) ;;;###autoload (defun +lsp-lookup-definition-handler ()