From 22e6912846a90ab5b82247253808b9802ae9d0e3 Mon Sep 17 00:00:00 2001 From: Lordie Date: Sat, 24 Jul 2021 19:28:07 -0300 Subject: [PATCH] show all available lsp servers when switching (#5191) * show all available lsp servers show all available lsp servers instead of only high priority ones * fixes +lsp/switch-client priority reset now waits for lsp to initialize before restoring the default client priority --- modules/tools/lsp/autoload/lsp-mode.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 ()