Add lsp-command-map to SPC-c-l
The default lsp-mode bindings are bound to `s-l` which is impractical for anyone using keybindings in their window manager. It also conflicts w/ the doom approach of using leader keys. This change makes all the default lsp bindings (see https://github.com/emacs-lsp/lsp-mode#commands) available on SPC-c-l. So for example, restarting the lsp server can be done with `SPC c l s r`.
This commit is contained in:
parent
0a26a22d59
commit
c56afcfe01
3 changed files with 25 additions and 14 deletions
|
@ -46,6 +46,8 @@
|
||||||
:desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer
|
:desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer
|
||||||
:desc "LSP Organize imports" "i" #'lsp-organize-imports
|
:desc "LSP Organize imports" "i" #'lsp-organize-imports
|
||||||
:desc "LSP Rename" "r" #'lsp-rename
|
:desc "LSP Rename" "r" #'lsp-rename
|
||||||
|
(:after lsp-mode
|
||||||
|
:desc "LSP" "l" lsp-command-map)
|
||||||
(:when (featurep! :completion ivy)
|
(:when (featurep! :completion ivy)
|
||||||
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
||||||
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
||||||
|
|
|
@ -337,7 +337,6 @@
|
||||||
|
|
||||||
;;; <leader> c --- code
|
;;; <leader> c --- code
|
||||||
(:prefix-map ("c" . "code")
|
(:prefix-map ("c" . "code")
|
||||||
:desc "LSP Execute code action" "a" #'lsp-execute-code-action
|
|
||||||
:desc "Compile" "c" #'compile
|
:desc "Compile" "c" #'compile
|
||||||
:desc "Recompile" "C" #'recompile
|
:desc "Recompile" "C" #'recompile
|
||||||
:desc "Jump to definition" "d" #'+lookup/definition
|
:desc "Jump to definition" "d" #'+lookup/definition
|
||||||
|
@ -345,8 +344,6 @@
|
||||||
:desc "Evaluate buffer/region" "e" #'+eval/buffer-or-region
|
:desc "Evaluate buffer/region" "e" #'+eval/buffer-or-region
|
||||||
:desc "Evaluate & replace region" "E" #'+eval:replace-region
|
:desc "Evaluate & replace region" "E" #'+eval:replace-region
|
||||||
:desc "Format buffer/region" "f" #'+format/region-or-buffer
|
:desc "Format buffer/region" "f" #'+format/region-or-buffer
|
||||||
:desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer
|
|
||||||
:desc "LSP Organize imports" "i" #'lsp-organize-imports
|
|
||||||
(:when (featurep! :completion ivy)
|
(:when (featurep! :completion ivy)
|
||||||
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
||||||
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
||||||
|
@ -354,7 +351,13 @@
|
||||||
:desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol
|
:desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol
|
||||||
:desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol)
|
:desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol)
|
||||||
:desc "Jump to documentation" "k" #'+lookup/documentation
|
:desc "Jump to documentation" "k" #'+lookup/documentation
|
||||||
|
(:when (featurep! :tools lsp)
|
||||||
|
:desc "LSP Execute code action" "a" #'lsp-execute-code-action
|
||||||
|
:desc "LSP Format buffer/region" "F" #'+default/lsp-format-region-or-buffer
|
||||||
|
:desc "LSP Organize imports" "i" #'lsp-organize-imports
|
||||||
:desc "LSP Rename" "r" #'lsp-rename
|
:desc "LSP Rename" "r" #'lsp-rename
|
||||||
|
(:after lsp-mode
|
||||||
|
:desc "LSP" "l" lsp-command-map))
|
||||||
:desc "Send to repl" "s" #'+eval/send-region-to-repl
|
:desc "Send to repl" "s" #'+eval/send-region-to-repl
|
||||||
:desc "Delete trailing whitespace" "w" #'delete-trailing-whitespace
|
:desc "Delete trailing whitespace" "w" #'delete-trailing-whitespace
|
||||||
:desc "Delete trailing newlines" "W" #'doom/delete-trailing-newlines
|
:desc "Delete trailing newlines" "W" #'doom/delete-trailing-newlines
|
||||||
|
|
|
@ -42,6 +42,8 @@ working on that project after closing the last buffer.")
|
||||||
(setq lsp-server-install-dir (concat doom-etc-dir "lsp/")
|
(setq lsp-server-install-dir (concat doom-etc-dir "lsp/")
|
||||||
lsp-groovy-server-install-dir (concat lsp-server-install-dir "lsp-groovy/")
|
lsp-groovy-server-install-dir (concat lsp-server-install-dir "lsp-groovy/")
|
||||||
lsp-intelephense-storage-path (concat doom-cache-dir "lsp-intelephense/"))
|
lsp-intelephense-storage-path (concat doom-cache-dir "lsp-intelephense/"))
|
||||||
|
;; Let doom bind the LSP keymap.
|
||||||
|
(setq lsp-keymap-prefix nil)
|
||||||
|
|
||||||
;; Disable LSP's superfluous, expensive and/or debatably unnecessary features.
|
;; Disable LSP's superfluous, expensive and/or debatably unnecessary features.
|
||||||
;; Some servers implement these poorly. Better to just rely on Emacs' native
|
;; Some servers implement these poorly. Better to just rely on Emacs' native
|
||||||
|
@ -114,6 +116,10 @@ This also logs the resolved project root, if found, so we know where we are."
|
||||||
(lambda (it) (format "[%s]" (lsp--workspace-print it)))
|
(lambda (it) (format "[%s]" (lsp--workspace-print it)))
|
||||||
lsp--buffer-workspaces))))))
|
lsp--buffer-workspaces))))))
|
||||||
|
|
||||||
|
(dolist (leader-key (list doom-leader-key doom-leader-alt-key))
|
||||||
|
(let ((lsp-keymap-prefix (concat leader-key " c l")))
|
||||||
|
(lsp-enable-which-key-integration)))
|
||||||
|
|
||||||
(add-hook! 'lsp-mode-hook
|
(add-hook! 'lsp-mode-hook
|
||||||
(defun +lsp-init-company-h ()
|
(defun +lsp-init-company-h ()
|
||||||
(if (not (bound-and-true-p company-mode))
|
(if (not (bound-and-true-p company-mode))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue