diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index c99da683a..331bf5f71 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -4,15 +4,6 @@ :commands eglot eglot-ensure :hook (eglot-managed-mode . +lsp-optimization-mode) :init - (defadvice! +eglot--ensure-available-mode-a (fn) - "Run `eglot-ensure' if the current mode has support." - :around #'eglot-ensure - (when (alist-get major-mode eglot-server-programs nil nil - (lambda (modes key) - (if (listp modes) - (member key modes) - (eq key modes)))) - (funcall fn))) (setq eglot-sync-connect 1 eglot-autoshutdown t ;; NOTE: We disable eglot-auto-display-help-buffer because :select t in diff --git a/modules/tools/lsp/autoload/common.el b/modules/tools/lsp/autoload/common.el index d91f3d235..17c430a6c 100644 --- a/modules/tools/lsp/autoload/common.el +++ b/modules/tools/lsp/autoload/common.el @@ -5,6 +5,9 @@ "Dispatch to call the currently used lsp client entrypoint" (interactive) (if (modulep! +eglot) - (eglot-ensure) + (when (require 'eglot nil t) + (if (eglot--lookup-mode major-mode) + (eglot-ensure) + (eglot--message "No client defined for %s" major-mode))) (unless (bound-and-true-p lsp-mode) (lsp-deferred))))