Keybindings#
When using lsp-mode
most of the features depend on server
capabilities. lsp-mode
provides default bindings which are dynamically
enabled/disabled based on the server functionality. All the commands are
configured lsp-command-map
which is bound to lsp-keymap-prefix
(default s-l
).
Keybinding | Description |
---|---|
s-l w s |
Entry point for the server startup. |
s-l w r |
Restart language server |
s-l w q |
Shutdown language server |
s-l w d |
Describes current session |
s-l w D |
Disconnect the buffer from the language server keeping the server running. |
s-l = = |
Ask the server to format this document. |
s-l = r |
Ask the server to format the region, or if none is selected, the current line. |
s-l F a |
Add new project root to the list of workspace folders. |
s-l F r |
Remove project root from the list of workspace folders. |
s-l F b |
Remove project root from the workspace blocklist. |
s-l T l |
Toggle code-lens overlays. |
s-l T L |
Toggle client-server protocol logging. |
s-l T h |
Toggle symbol highlighting. |
s-l T S |
Toggle minor mode for showing information for current line in sideline. (requires lsp-ui ) |
s-l T d |
Toggle minor mode for showing hover information in child frame. (requires lsp-ui ) |
s-l T s |
Toggle signature auto activate. |
s-l T f |
Toggle on type formatting. |
s-l T T |
Toggle global minor mode for synchronizing lsp-mode workspace folders and treemacs projects. (requires lsp-treemacs ) |
s-l g g |
Find definitions of the symbol under point. |
s-l g r |
Find references of the symbol under point. |
s-l g i |
Find implementations of the symbol under point. |
s-l g t |
Find type definitions of the symbol under point. |
s-l g d |
Find declarations of the symbol under point. |
s-l g h |
Show the incoming call hierarchy for the symbol at point. (requires lsp-treemacs ) |
s-l g a |
Find all meaningful symbols that match pattern. |
s-l h h |
Display the type signature and documentation of the thing at point. |
s-l h s |
Activate signature help. |
s-l h g |
Trigger display hover information popup and hide it on next typing. |
s-l r r |
Rename the symbol (and all references to it). |
s-l r o |
Perform the source.organizeImports code action, if available. |
s-l a a |
Execute code action. |
s-l a l |
Click lsp lens using ‘avy’ package. |
s-l a h |
Highlight symbol at point. |
s-l G g |
Peek definitions to the identifier at point. (requires lsp-ui ) |
s-l G r |
Peek references to the identifier at point. (requires lsp-ui ) |
s-l G i |
Peek implementation locations of the symbol at point. (requires lsp-ui ) |
s-l G s |
Peek symbols in the workspace. (requires lsp-ui ) |
C-u RET |
When inserting C-u will change the behaviour from insert to replace or vice versa depending on lsp-completion-default-behaviour |
which-key integration#
To enable which-key
integration in the active major mode for lsp-mode-map
you will need to
call the lsp-enable-which-key-integration
function. This could be done
when lsp-mode
starts with the following:
(with-eval-after-load 'lsp-mode
(add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration))
You can also enable which-key integration for all major modes by passing
t
as a parameter. This is useful for buffers that can use multiple
major modes like those using vue-mode
.
Last update:
December 2, 2024