mirror of
https://github.com/NotAShelf/nvf.git
synced 2026-01-03 01:25:57 +00:00
lsp: make key bindings configurable
This exposes the keybindings for the lsp commands to the configuration and maps a few more commands (e.g. `vim.lsp.buf.format()`) It also adds a description to be picked up by whichkey to make the whichkey UX a bit nicer (ie. we're now showing "Go to definition" instead of just "vim.lsp.buf.definition()")
This commit is contained in:
parent
29de5b56c0
commit
c693d2fbd4
3 changed files with 90 additions and 23 deletions
|
|
@ -1,13 +1,68 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{lib, ...}:
|
||||
with lib;
|
||||
with builtins; {
|
||||
with builtins; let
|
||||
in {
|
||||
options.vim.lsp = {
|
||||
enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options";
|
||||
formatOnSave = mkEnableOption "format on save";
|
||||
mappings = {
|
||||
goToDefinition =
|
||||
mkMappingOption "Go to definition"
|
||||
"<leader>lgd";
|
||||
goToDeclaration =
|
||||
mkMappingOption "Go to declaration"
|
||||
"<leader>lgD";
|
||||
goToType =
|
||||
mkMappingOption "Go to type"
|
||||
"<leader>lgt";
|
||||
listImplementations =
|
||||
mkMappingOption "List implementations"
|
||||
"<leader>lgi";
|
||||
listReferences =
|
||||
mkMappingOption "List references"
|
||||
"<leader>lgr";
|
||||
nextDiagnostic =
|
||||
mkMappingOption "Go to next diagnostic"
|
||||
"<leader>lgn";
|
||||
previousDiagnostic =
|
||||
mkMappingOption "Go to previous diagnostic"
|
||||
"<leader>lgp";
|
||||
openDiagnosticFloat =
|
||||
mkMappingOption "Open diagnostic float"
|
||||
"<leader>le";
|
||||
documentHighlight =
|
||||
mkMappingOption "Document highlight"
|
||||
"<leader>lH";
|
||||
listDocumentSymbols =
|
||||
mkMappingOption "List document symbols"
|
||||
"<leader>lS";
|
||||
addWorkspaceFolder =
|
||||
mkMappingOption "Add workspace folder"
|
||||
"<leader>lwa";
|
||||
removeWorkspaceFolder =
|
||||
mkMappingOption "Remove workspace folder"
|
||||
"<leader>lwr";
|
||||
listWorkspaceFolders =
|
||||
mkMappingOption "List workspace folders"
|
||||
"<leader>lwl";
|
||||
listWorkspaceSymbols =
|
||||
mkMappingOption "List workspace symbols"
|
||||
"<leader>lws";
|
||||
hover =
|
||||
mkMappingOption "Trigger hover"
|
||||
"<leader>lh";
|
||||
signatureHelp =
|
||||
mkMappingOption "Signature help"
|
||||
"<leader>ls";
|
||||
renameSymbol =
|
||||
mkMappingOption "Rename symbol"
|
||||
"<leader>ln";
|
||||
codeAction =
|
||||
mkMappingOption "Code action"
|
||||
"<leader>la";
|
||||
format =
|
||||
mkMappingOption "Format"
|
||||
"<leader>lf";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue