diff --git a/modules/config/default/+emacs-bindings.el b/modules/config/default/+emacs-bindings.el index df381f259..a1881db3f 100644 --- a/modules/config/default/+emacs-bindings.el +++ b/modules/config/default/+emacs-bindings.el @@ -64,7 +64,9 @@ (:when (featurep! :tools lsp +eglot) :desc "LSP Execute code action" "a" #'eglot-code-actions :desc "LSP Rename" "r" #'eglot-rename - :desc "LSP Find declaration" "j" #'eglot-find-declaration)) + :desc "LSP Find declaration" "j" #'eglot-find-declaration + (:when (featurep! :completion vertico) + :desc "Jump to symbol in current workspace" "j" #'consult-eglot-symbols))) ;;; f --- file (:prefix-map ("f" . "file") diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index b0d8146d7..ccb485a49 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -398,7 +398,9 @@ (:when (featurep! :tools lsp +eglot) :desc "LSP Execute code action" "a" #'eglot-code-actions :desc "LSP Rename" "r" #'eglot-rename - :desc "LSP Find declaration" "j" #'eglot-find-declaration) + :desc "LSP Find declaration" "j" #'eglot-find-declaration + (:when (featurep! :completion vertico) + :desc "Jump to symbol in current workspace" "j" #'consult-eglot-symbols)) :desc "Compile" "c" #'compile :desc "Recompile" "C" #'recompile :desc "Jump to definition" "d" #'+lookup/definition diff --git a/modules/tools/lsp/+eglot.el b/modules/tools/lsp/+eglot.el index d3e44e79e..c2dcf9aa3 100644 --- a/modules/tools/lsp/+eglot.el +++ b/modules/tools/lsp/+eglot.el @@ -48,3 +48,10 @@ server getting expensively restarted when reverting buffers." (+lsp-optimization-mode -1)))) server))) (funcall fn server)))) + + +(use-package! consult-eglot + :defer t + :when (featurep! :completion vertico) + :init + (map! :map eglot-mode-map [remap xref-find-apropos] #'consult-eglot-symbols)) diff --git a/modules/tools/lsp/packages.el b/modules/tools/lsp/packages.el index cbc7d507f..b912a7268 100644 --- a/modules/tools/lsp/packages.el +++ b/modules/tools/lsp/packages.el @@ -2,7 +2,10 @@ ;;; tools/lsp/packages.el (if (featurep! +eglot) - (package! eglot :pin "c17bdf6c98d6bf0f1a85f1175556e1038654402f") + (progn + (package! eglot :pin "c17bdf6c98d6bf0f1a85f1175556e1038654402f") + (when (featurep! :completion vertico) + (package! consult-eglot :pin "a6aeb6fa078cc7ea6537793868f606b55ac63088"))) (package! lsp-mode :pin "82fa7743602e9a6366ecd128efcd620ecc97fcf4") (package! lsp-ui :pin "b625f3cb5e88559ab99bec58f7a14272edb296bc") (when (featurep! :completion ivy)