mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-26 15:06:45 +00:00
refactor!: use a new keymaps configuration format
This commit is contained in:
parent
f5b1844d2e
commit
0649f710be
11 changed files with 343 additions and 182 deletions
|
@ -10,21 +10,51 @@ in {
|
||||||
config = {
|
config = {
|
||||||
vim.startPlugins = ["plenary-nvim"];
|
vim.startPlugins = ["plenary-nvim"];
|
||||||
|
|
||||||
vim.nmap = mkIf cfg.disableArrows {
|
vim.maps.normal =
|
||||||
"<up>" = "<nop>";
|
mkIf cfg.disableArrows {
|
||||||
"<down>" = "<nop>";
|
"<up>" = {
|
||||||
"<left>" = "<nop>";
|
action = "<nop>";
|
||||||
"<right>" = "<nop>";
|
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
|
"<down>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
|
"<left>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
|
"<right>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// mkIf cfg.mapLeaderSpace {
|
||||||
|
"<space>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.imap = mkIf cfg.disableArrows {
|
vim.maps.insert = mkIf cfg.disableArrows {
|
||||||
"<up>" = "<nop>";
|
"<up>" = {
|
||||||
"<down>" = "<nop>";
|
action = "<nop>";
|
||||||
"<left>" = "<nop>";
|
noremap = false;
|
||||||
"<right>" = "<nop>";
|
};
|
||||||
|
"<down>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
|
"<left>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
|
"<right>" = {
|
||||||
|
action = "<nop>";
|
||||||
|
noremap = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.nnoremap = mkIf cfg.mapLeaderSpace {"<space>" = "<nop>";};
|
|
||||||
|
|
||||||
vim.configRC.basic = nvim.dag.entryAfter ["globalsScript"] ''
|
vim.configRC.basic = nvim.dag.entryAfter ["globalsScript"] ''
|
||||||
" Debug mode settings
|
" Debug mode settings
|
||||||
|
|
|
@ -19,6 +19,107 @@ with builtins; let
|
||||||
type = with types; attrsOf (nullOr str);
|
type = with types; attrsOf (nullOr str);
|
||||||
}
|
}
|
||||||
// it);
|
// it);
|
||||||
|
|
||||||
|
mkBool = value: description:
|
||||||
|
mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = value;
|
||||||
|
description = description;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Most of the keybindings code is highly inspired by pta2002/nixvim. Thank you!
|
||||||
|
mapConfigOptions = {
|
||||||
|
silent =
|
||||||
|
mkBool false
|
||||||
|
"Whether this mapping should be silent. Equivalent to adding <silent> to a map.";
|
||||||
|
|
||||||
|
nowait =
|
||||||
|
mkBool false
|
||||||
|
"Whether to wait for extra input on ambiguous mappings. Equivalent to adding <nowait> to a map.";
|
||||||
|
|
||||||
|
script =
|
||||||
|
mkBool false
|
||||||
|
"Equivalent to adding <script> to a map.";
|
||||||
|
|
||||||
|
expr =
|
||||||
|
mkBool false
|
||||||
|
"Means that the action is actually an expression. Equivalent to adding <expr> to a map.";
|
||||||
|
|
||||||
|
unique =
|
||||||
|
mkBool false
|
||||||
|
"Whether to fail if the map is already defined. Equivalent to adding <unique> to a map.";
|
||||||
|
|
||||||
|
noremap =
|
||||||
|
mkBool true
|
||||||
|
"Whether to use the 'noremap' variant of the command, ignoring any custom mappings on the defined action. It is highly advised to keep this on, which is the default.";
|
||||||
|
|
||||||
|
desc = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "A description of this keybind, to be shown in which-key, if you have it enabled.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
genMaps = mode: maps: let
|
||||||
|
/*
|
||||||
|
Take a user-defined action (string or attrs) and return the following attribute set:
|
||||||
|
{
|
||||||
|
action = (string) the actual action to map to this key
|
||||||
|
config = (attrs) the configuration options for this mapping (noremap, silent...)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
normalizeAction = action: let
|
||||||
|
# Extract the values of the config options that have been explicitly set by the user
|
||||||
|
config =
|
||||||
|
filterAttrs (n: v: v != null)
|
||||||
|
(getAttrs (attrNames mapConfigOptions) action);
|
||||||
|
in {
|
||||||
|
config =
|
||||||
|
if config == {}
|
||||||
|
then {"__empty" = null;}
|
||||||
|
else config;
|
||||||
|
action =
|
||||||
|
if action.lua
|
||||||
|
then {"__raw" = action.action;}
|
||||||
|
else action.action;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
builtins.attrValues (builtins.mapAttrs
|
||||||
|
(key: action: let
|
||||||
|
normalizedAction = normalizeAction action;
|
||||||
|
in {
|
||||||
|
inherit (normalizedAction) action config;
|
||||||
|
key = key;
|
||||||
|
mode = mode;
|
||||||
|
})
|
||||||
|
maps);
|
||||||
|
|
||||||
|
mapOption = types.submodule {
|
||||||
|
options =
|
||||||
|
mapConfigOptions
|
||||||
|
// {
|
||||||
|
action = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The action to execute.";
|
||||||
|
};
|
||||||
|
|
||||||
|
lua = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
If true, `action` is considered to be lua code.
|
||||||
|
Thus, it will not be wrapped in `""`.
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mapOptions = mode:
|
||||||
|
mkOption {
|
||||||
|
description = "Mappings for ${mode} mode";
|
||||||
|
type = types.attrsOf mapOption;
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
options.vim = {
|
options.vim = {
|
||||||
viAlias = mkOption {
|
viAlias = mkOption {
|
||||||
|
@ -67,64 +168,39 @@ in {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
};
|
};
|
||||||
|
|
||||||
nnoremap =
|
maps = mkOption {
|
||||||
mkMappingOption {description = "Defines 'Normal mode' mappings";};
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
normal = mapOptions "normal";
|
||||||
|
insert = mapOptions "insert";
|
||||||
|
select = mapOptions "select";
|
||||||
|
visual = mapOptions "visual and select";
|
||||||
|
terminal = mapOptions "terminal";
|
||||||
|
normalVisualOp = mapOptions "normal, visual, select and operator-pending (same as plain 'map')";
|
||||||
|
|
||||||
inoremap = mkMappingOption {
|
visualOnly = mapOptions "visual only";
|
||||||
description = "Defines 'Insert and Replace mode' mappings";
|
operator = mapOptions "operator-pending";
|
||||||
|
insertCommand = mapOptions "insert and command-line";
|
||||||
|
lang = mapOptions "insert, command-line and lang-arg";
|
||||||
|
command = mapOptions "command-line";
|
||||||
};
|
};
|
||||||
|
|
||||||
vnoremap = mkMappingOption {
|
|
||||||
description = "Defines 'Visual and Select mode' mappings";
|
|
||||||
};
|
};
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Custom keybindings for any mode.
|
||||||
|
|
||||||
xnoremap =
|
For plain maps (e.g. just 'map' or 'remap') use maps.normalVisualOp.
|
||||||
mkMappingOption {description = "Defines 'Visual mode' mappings";};
|
'';
|
||||||
|
|
||||||
snoremap =
|
example = ''
|
||||||
mkMappingOption {description = "Defines 'Select mode' mappings";};
|
maps = {
|
||||||
|
normalVisualOp.";" = ":"; # Same as noremap ; :
|
||||||
cnoremap =
|
normal."<leader>m" = {
|
||||||
mkMappingOption {description = "Defines 'Command-line mode' mappings";};
|
silent = true;
|
||||||
|
action = "<cmd>make<CR>";
|
||||||
onoremap = mkMappingOption {
|
}; # Same as nnoremap <leader>m <silent> <cmd>make<CR>
|
||||||
description = "Defines 'Operator pending mode' mappings";
|
|
||||||
};
|
};
|
||||||
|
'';
|
||||||
tnoremap = mkMappingOption {
|
|
||||||
description = "Defines 'Terminal mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
nmap = mkMappingOption {
|
|
||||||
description = "Defines 'Normal mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
imap = mkMappingOption {
|
|
||||||
description = "Defines 'Insert and Replace mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
vmap = mkMappingOption {
|
|
||||||
description = "Defines 'Visual and Select mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
xmap = mkMappingOption {
|
|
||||||
description = "Defines 'Visual mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
smap = mkMappingOption {
|
|
||||||
description = "Defines 'Select mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
cmap = mkMappingOption {
|
|
||||||
description = "Defines 'Command-line mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
omap = mkMappingOption {
|
|
||||||
description = "Defines 'Operator pending mode' mappings";
|
|
||||||
};
|
|
||||||
|
|
||||||
tmap = mkMappingOption {
|
|
||||||
description = "Defines 'Terminal mode' mappings";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -148,34 +224,66 @@ in {
|
||||||
mapAttrsFlatten (name: value: "let g:${name}=${valToVim value}")
|
mapAttrsFlatten (name: value: "let g:${name}=${valToVim value}")
|
||||||
(filterNonNull cfg.globals);
|
(filterNonNull cfg.globals);
|
||||||
|
|
||||||
matchCtrl = it: match "Ctrl-(.)(.*)" it;
|
toLuaObject = args:
|
||||||
mapKeyBinding = it: let
|
if builtins.isAttrs args
|
||||||
groups = matchCtrl it;
|
then
|
||||||
in
|
if hasAttr "__raw" args
|
||||||
if groups == null
|
then args.__raw
|
||||||
then it
|
else if hasAttr "__empty" args
|
||||||
else "<C-${toUpper (head groups)}>${head (tail groups)}";
|
then "{ }"
|
||||||
mapVimBinding = prefix: mappings:
|
else
|
||||||
mapAttrsFlatten (name: value: "${prefix} ${mapKeyBinding name} ${value}")
|
"{"
|
||||||
(filterNonNull mappings);
|
+ (concatStringsSep ","
|
||||||
|
(mapAttrsToList
|
||||||
|
(n: v:
|
||||||
|
if head (stringToCharacters n) == "@"
|
||||||
|
then toLuaObject v
|
||||||
|
else "[${toLuaObject n}] = " + (toLuaObject v))
|
||||||
|
(filterAttrs
|
||||||
|
(
|
||||||
|
n: v:
|
||||||
|
!isNull v && (toLuaObject v != "{}")
|
||||||
|
)
|
||||||
|
args)))
|
||||||
|
+ "}"
|
||||||
|
else if builtins.isList args
|
||||||
|
then "{" + concatMapStringsSep "," toLuaObject args + "}"
|
||||||
|
else if builtins.isString args
|
||||||
|
then
|
||||||
|
# This should be enough!
|
||||||
|
builtins.toJSON args
|
||||||
|
else if builtins.isPath args
|
||||||
|
then builtins.toJSON (toString args)
|
||||||
|
else if builtins.isBool args
|
||||||
|
then "${boolToString args}"
|
||||||
|
else if builtins.isFloat args
|
||||||
|
then "${toString args}"
|
||||||
|
else if builtins.isInt args
|
||||||
|
then "${toString args}"
|
||||||
|
else if isNull args
|
||||||
|
then "nil"
|
||||||
|
else "";
|
||||||
|
|
||||||
nmap = mapVimBinding "nmap" config.vim.nmap;
|
toLuaBindings = mode: maps:
|
||||||
imap = mapVimBinding "imap" config.vim.imap;
|
builtins.map (value: ''
|
||||||
vmap = mapVimBinding "vmap" config.vim.vmap;
|
map("${mode}", "${value.key}", ${
|
||||||
xmap = mapVimBinding "xmap" config.vim.xmap;
|
if value.action ? "__raw"
|
||||||
smap = mapVimBinding "smap" config.vim.smap;
|
then value.action."__raw"
|
||||||
cmap = mapVimBinding "cmap" config.vim.cmap;
|
else "\"${value.action}\""
|
||||||
omap = mapVimBinding "omap" config.vim.omap;
|
}, ${toLuaObject value.config})'') (genMaps mode maps);
|
||||||
tmap = mapVimBinding "tmap" config.vim.tmap;
|
|
||||||
|
|
||||||
nnoremap = mapVimBinding "nnoremap" config.vim.nnoremap;
|
# I'm not sure if every one of these will work.
|
||||||
inoremap = mapVimBinding "inoremap" config.vim.inoremap;
|
allmap = toLuaBindings "" config.vim.maps.normalVisualOp;
|
||||||
vnoremap = mapVimBinding "vnoremap" config.vim.vnoremap;
|
nmap = toLuaBindings "n" config.vim.maps.normal;
|
||||||
xnoremap = mapVimBinding "xnoremap" config.vim.xnoremap;
|
vmap = toLuaBindings "v" config.vim.maps.visual;
|
||||||
snoremap = mapVimBinding "snoremap" config.vim.snoremap;
|
xmap = toLuaBindings "x" config.vim.maps.visualOnly;
|
||||||
cnoremap = mapVimBinding "cnoremap" config.vim.cnoremap;
|
smap = toLuaBindings "s" config.vim.maps.select;
|
||||||
onoremap = mapVimBinding "onoremap" config.vim.onoremap;
|
imap = toLuaBindings "u" config.vim.maps.insert;
|
||||||
tnoremap = mapVimBinding "tnoremap" config.vim.tnoremap;
|
cmap = toLuaBindings "c" config.vim.maps.command;
|
||||||
|
tmap = toLuaBindings "t" config.vim.maps.terminal;
|
||||||
|
lmap = toLuaBindings "l" config.vim.maps.lang;
|
||||||
|
omap = toLuaBindings "o" config.vim.maps.operator;
|
||||||
|
icmap = toLuaBindings "ic" config.vim.maps.insertCommand;
|
||||||
|
|
||||||
resolveDag = {
|
resolveDag = {
|
||||||
name,
|
name,
|
||||||
|
@ -209,8 +317,31 @@ in {
|
||||||
nvim.dag.entryAfter ["globalsScript"] luaConfig;
|
nvim.dag.entryAfter ["globalsScript"] luaConfig;
|
||||||
|
|
||||||
mappings = let
|
mappings = let
|
||||||
maps = [nmap imap vmap xmap smap cmap omap tmap nnoremap inoremap vnoremap xnoremap snoremap cnoremap onoremap tnoremap];
|
maps = [
|
||||||
mapConfig = concatStringsSep "\n" (map (v: concatStringsSep "\n" v) maps);
|
(splitString
|
||||||
|
"\n"
|
||||||
|
''
|
||||||
|
local function map(mode, lhs, rhs, opts)
|
||||||
|
local options = { noremap=true, silent=true }
|
||||||
|
if opts then
|
||||||
|
options = vim.tbl_extend('force', options, opts)
|
||||||
|
end
|
||||||
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||||
|
end
|
||||||
|
'')
|
||||||
|
nmap
|
||||||
|
imap
|
||||||
|
vmap
|
||||||
|
xmap
|
||||||
|
smap
|
||||||
|
cmap
|
||||||
|
omap
|
||||||
|
tmap
|
||||||
|
lmap
|
||||||
|
icmap
|
||||||
|
allmap
|
||||||
|
];
|
||||||
|
mapConfig = wrapLuaConfig (concatStringsSep "\n" (map (v: concatStringsSep "\n" v) maps));
|
||||||
in
|
in
|
||||||
nvim.dag.entryAfter ["globalsScript"] mapConfig;
|
nvim.dag.entryAfter ["globalsScript"] mapConfig;
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,34 +10,34 @@ in {
|
||||||
config = mkIf (cfg.enable && cfg.lspsaga.enable) {
|
config = mkIf (cfg.enable && cfg.lspsaga.enable) {
|
||||||
vim.startPlugins = ["lspsaga"];
|
vim.startPlugins = ["lspsaga"];
|
||||||
|
|
||||||
vim.vnoremap = {
|
vim.maps.visual = {
|
||||||
"<silent><leader>ca" = ":<C-U>lua require('lspsaga.codeaction').range_code_action()<CR>";
|
"<silent><leader>ca" = {action = ":<C-U>lua require('lspsaga.codeaction').range_code_action()<CR>";};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.nnoremap =
|
vim.maps.normal =
|
||||||
{
|
{
|
||||||
"<silent><leader>lf" = "<cmd>lua require'lspsaga.provider'.lsp_finder()<CR>";
|
"<silent><leader>lf" = {action = "<cmd>lua require'lspsaga.provider'.lsp_finder()<CR>";};
|
||||||
"<silent><leader>lh" = "<cmd>lua require('lspsaga.hover').render_hover_doc()<CR>";
|
"<silent><leader>lh" = {action = "<cmd>lua require('lspsaga.hover').render_hover_doc()<CR>";};
|
||||||
"<silent><C-f>" = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>";
|
"<silent><C-f>" = {action = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>";};
|
||||||
"<silent><C-b>" = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>";
|
"<silent><C-b>" = {action = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>";};
|
||||||
"<silent><leader>lr" = "<cmd>lua require'lspsaga.rename'.rename()<CR>";
|
"<silent><leader>lr" = {action = "<cmd>lua require'lspsaga.rename'.rename()<CR>";};
|
||||||
"<silent><leader>ld" = "<cmd>lua require'lspsaga.provider'.preview_definition()<CR>";
|
"<silent><leader>ld" = {action = "<cmd>lua require'lspsaga.provider'.preview_definition()<CR>";};
|
||||||
"<silent><leader>ll" = "<cmd>lua require'lspsaga.diagnostic'.show_line_diagnostics()<CR>";
|
"<silent><leader>ll" = {action = "<cmd>lua require'lspsaga.diagnostic'.show_line_diagnostics()<CR>";};
|
||||||
"<silent><leader>lc" = "<cmd>lua require'lspsaga.diagnostic'.show_cursor_diagnostics()<CR>";
|
"<silent><leader>lc" = {action = "<cmd>lua require'lspsaga.diagnostic'.show_cursor_diagnostics()<CR>";};
|
||||||
"<silent><leader>lp" = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_prev()<CR>";
|
"<silent><leader>lp" = {action = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_prev()<CR>";};
|
||||||
"<silent><leader>ln" = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_next()<CR>";
|
"<silent><leader>ln" = {action = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_next()<CR>";};
|
||||||
}
|
}
|
||||||
// (
|
// (
|
||||||
if (!cfg.nvimCodeActionMenu.enable)
|
if (!cfg.nvimCodeActionMenu.enable)
|
||||||
then {
|
then {
|
||||||
"<silent><leader>ca" = "<cmd>lua require('lspsaga.codeaction').code_action()<CR>";
|
"<silent><leader>ca" = {action = "<cmd>lua require('lspsaga.codeaction').code_action()<CR>";};
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
)
|
)
|
||||||
// (
|
// (
|
||||||
if (!cfg.lspSignature.enable)
|
if (!cfg.lspSignature.enable)
|
||||||
then {
|
then {
|
||||||
"<silent><leader>ls" = "<cmd>lua require('lspsaga.signaturehelp').signature_help()<CR>";
|
"<silent><leader>ls" = {action = "<cmd>lua require('lspsaga.signaturehelp').signature_help()<CR>";};
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
);
|
);
|
||||||
|
|
|
@ -12,34 +12,34 @@ in {
|
||||||
config = mkIf (cfg.enable && cfg.lspsaga.enable) {
|
config = mkIf (cfg.enable && cfg.lspsaga.enable) {
|
||||||
vim.startPlugins = ["lspsaga"];
|
vim.startPlugins = ["lspsaga"];
|
||||||
|
|
||||||
vim.vnoremap = {
|
vim.maps.visual = {
|
||||||
"<silent><leader>ca" = ":<C-U>lua require('lspsaga.codeaction').range_code_action()<CR>";
|
"<silent><leader>ca" = {action = ":<C-U>lua require('lspsaga.codeaction').range_code_action()<CR>";};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.nnoremap =
|
vim.maps.normal =
|
||||||
{
|
{
|
||||||
"<silent><leader>lf" = "<cmd>lua require'lspsaga.provider'.lsp_finder()<CR>";
|
"<silent><leader>lf" = {action = "<cmd>lua require'lspsaga.provider'.lsp_finder()<CR>";};
|
||||||
"<silent><leader>lh" = "<cmd>lua require('lspsaga.hover').render_hover_doc()<CR>";
|
"<silent><leader>lh" = {action = "<cmd>lua require('lspsaga.hover').render_hover_doc()<CR>";};
|
||||||
"<silent><C-f>" = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>";
|
"<silent><C-f>" = {action = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>";};
|
||||||
"<silent><C-b>" = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>";
|
"<silent><C-b>" = {action = "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>";};
|
||||||
"<silent><leader>lr" = "<cmd>lua require'lspsaga.rename'.rename()<CR>";
|
"<silent><leader>lr" = {action = "<cmd>lua require'lspsaga.rename'.rename()<CR>";};
|
||||||
"<silent><leader>ld" = "<cmd>lua require'lspsaga.provider'.preview_definition()<CR>";
|
"<silent><leader>ld" = {action = "<cmd>lua require'lspsaga.provider'.preview_definition()<CR>";};
|
||||||
"<silent><leader>ll" = "<cmd>lua require'lspsaga.diagnostic'.show_line_diagnostics()<CR>";
|
"<silent><leader>ll" = {action = "<cmd>lua require'lspsaga.diagnostic'.show_line_diagnostics()<CR>";};
|
||||||
"<silent><leader>lc" = "<cmd>lua require'lspsaga.diagnostic'.show_cursor_diagnostics()<CR>";
|
"<silent><leader>lc" = {action = "<cmd>lua require'lspsaga.diagnostic'.show_cursor_diagnostics()<CR>";};
|
||||||
"<silent><leader>lp" = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_prev()<CR>";
|
"<silent><leader>lp" = {action = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_prev()<CR>";};
|
||||||
"<silent><leader>ln" = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_next()<CR>";
|
"<silent><leader>ln" = {action = "<cmd>lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_next()<CR>";};
|
||||||
}
|
}
|
||||||
// (
|
// (
|
||||||
if (!cfg.nvimCodeActionMenu.enable)
|
if (!cfg.nvimCodeActionMenu.enable)
|
||||||
then {
|
then {
|
||||||
"<silent><leader>ca" = "<cmd>lua require('lspsaga.codeaction').code_action()<CR>";
|
"<silent><leader>ca" = {action = "<cmd>lua require('lspsaga.codeaction').code_action()<CR>";};
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
)
|
)
|
||||||
// (
|
// (
|
||||||
if (!cfg.lspSignature.enable)
|
if (!cfg.lspSignature.enable)
|
||||||
then {
|
then {
|
||||||
"<silent><leader>ls" = "<cmd>lua require('lspsaga.signaturehelp').signature_help()<CR>";
|
"<silent><leader>ls" = {action = "<cmd>lua require('lspsaga.signaturehelp').signature_help()<CR>";};
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,8 +10,8 @@ in {
|
||||||
config = mkIf (cfg.enable && cfg.nvimCodeActionMenu.enable) {
|
config = mkIf (cfg.enable && cfg.nvimCodeActionMenu.enable) {
|
||||||
vim.startPlugins = ["nvim-code-action-menu"];
|
vim.startPlugins = ["nvim-code-action-menu"];
|
||||||
|
|
||||||
vim.nnoremap = {
|
vim.maps.normal = {
|
||||||
"<silent><leader>ca" = ":CodeActionMenu<CR>";
|
"<silent><leader>ca" = {action = ":CodeActionMenu<CR>";};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,13 @@ in {
|
||||||
config = mkIf (cfg.enable && cfg.trouble.enable) {
|
config = mkIf (cfg.enable && cfg.trouble.enable) {
|
||||||
vim.startPlugins = ["trouble"];
|
vim.startPlugins = ["trouble"];
|
||||||
|
|
||||||
vim.nnoremap = {
|
vim.maps.normal = {
|
||||||
"<leader>xx" = "<cmd>TroubleToggle<CR>";
|
"<leader>xx" = {action = "<cmd>TroubleToggle<CR>";};
|
||||||
"<leader>lwd" = "<cmd>TroubleToggle workspace_diagnostics<CR>";
|
"<leader>lwd" = {action = "<cmd>TroubleToggle workspace_diagnostics<CR>";};
|
||||||
"<leader>ld" = "<cmd>TroubleToggle document_diagnostics<CR>";
|
"<leader>ld" = {action = "<cmd>TroubleToggle document_diagnostics<CR>";};
|
||||||
"<leader>lr" = "<cmd>TroubleToggle lsp_references<CR>";
|
"<leader>lr" = {action = "<cmd>TroubleToggle lsp_references<CR>";};
|
||||||
"<leader>xq" = "<cmd>TroubleToggle quickfix<CR>";
|
"<leader>xq" = {action = "<cmd>TroubleToggle quickfix<CR>";};
|
||||||
"<leader>xl" = "<cmd>TroubleToggle loclist<CR>";
|
"<leader>xl" = {action = "<cmd>TroubleToggle loclist<CR>";};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.luaConfigRC.trouble = nvim.dag.entryAnywhere ''
|
vim.luaConfigRC.trouble = nvim.dag.entryAnywhere ''
|
||||||
|
|
|
@ -12,10 +12,10 @@ in {
|
||||||
"mind-nvim"
|
"mind-nvim"
|
||||||
];
|
];
|
||||||
|
|
||||||
vim.nnoremap = {
|
vim.maps.normal = {
|
||||||
"<leader>om" = ":MindOpenMain<CR>";
|
"<leader>om" = {action = ":MindOpenMain<CR>";};
|
||||||
"<leader>op" = ":MindOpenProject<CR>";
|
"<leader>op" = {action = ":MindOpenProject<CR>";};
|
||||||
"<leader>oc" = ":MindClose<CR>";
|
"<leader>oc" = {action = ":MindClose<CR>";};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.luaConfigRC.mind-nvim = nvim.dag.entryAnywhere ''
|
vim.luaConfigRC.mind-nvim = nvim.dag.entryAnywhere ''
|
||||||
|
|
|
@ -13,10 +13,10 @@ in {
|
||||||
"todo-comments"
|
"todo-comments"
|
||||||
];
|
];
|
||||||
|
|
||||||
vim.nnoremap = {
|
vim.maps.normal = {
|
||||||
"<leader>tdq" = ":TodoQuickFix<CR>";
|
"<leader>tdq" = {action = ":TodoQuickFix<CR>";};
|
||||||
"<leader>tds" = ":TodoTelescope<CR>";
|
"<leader>tds" = {action = ":TodoTelescope<CR>";};
|
||||||
"<leader>tdt" = ":TodoTrouble<CR>";
|
"<leader>tdt" = {action = ":TodoTrouble<CR>";};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.luaConfigRC.todo-comments = ''
|
vim.luaConfigRC.todo-comments = ''
|
||||||
|
|
|
@ -23,24 +23,24 @@ in {
|
||||||
"bufdelete-nvim"
|
"bufdelete-nvim"
|
||||||
];
|
];
|
||||||
|
|
||||||
vim.nnoremap = {
|
vim.maps.normal = {
|
||||||
"<silent><leader>bn" = ":BufferLineCycleNext<CR>";
|
"<silent><leader>bn" = {action = ":BufferLineCycleNext<CR>";};
|
||||||
"<silent><leader>bp" = ":BufferLineCyclePrev<CR>";
|
"<silent><leader>bp" = {action = ":BufferLineCyclePrev<CR>";};
|
||||||
"<silent><leader>bc" = ":BufferLinePick<CR>";
|
"<silent><leader>bc" = {action = ":BufferLinePick<CR>";};
|
||||||
"<silent><leader>bse" = ":BufferLineSortByExtension<CR>";
|
"<silent><leader>bse" = {action = ":BufferLineSortByExtension<CR>";};
|
||||||
"<silent><leader>bsd" = ":BufferLineSortByDirectory<CR>";
|
"<silent><leader>bsd" = {action = ":BufferLineSortByDirectory<CR>";};
|
||||||
"<silent><leader>bsi" = ":lua require'bufferline'.sort_buffers_by(function (buf_a, buf_b) return buf_a.id < buf_b.id end)<CR>";
|
"<silent><leader>bsi" = {action = ":lua require'bufferline'.sort_buffers_by(function (buf_a, buf_b) return buf_a.id < buf_b.id end)<CR>";};
|
||||||
"<silent><leader>bmn" = ":BufferLineMoveNext<CR>";
|
"<silent><leader>bmn" = {action = ":BufferLineMoveNext<CR>";};
|
||||||
"<silent><leader>bmp" = ":BufferLineMovePrev<CR>";
|
"<silent><leader>bmp" = {action = ":BufferLineMovePrev<CR>";};
|
||||||
"<silent><leader>b1" = "<Cmd>BufferLineGoToBuffer 1<CR>";
|
"<silent><leader>b1" = {action = "<Cmd>BufferLineGoToBuffer 1<CR>";};
|
||||||
"<silent><leader>b2" = "<Cmd>BufferLineGoToBuffer 2<CR>";
|
"<silent><leader>b2" = {action = "<Cmd>BufferLineGoToBuffer 2<CR>";};
|
||||||
"<silent><leader>b3" = "<Cmd>BufferLineGoToBuffer 3<CR>";
|
"<silent><leader>b3" = {action = "<Cmd>BufferLineGoToBuffer 3<CR>";};
|
||||||
"<silent><leader>b4" = "<Cmd>BufferLineGoToBuffer 4<CR>";
|
"<silent><leader>b4" = {action = "<Cmd>BufferLineGoToBuffer 4<CR>";};
|
||||||
"<silent><leader>b5" = "<Cmd>BufferLineGoToBuffer 5<CR>";
|
"<silent><leader>b5" = {action = "<Cmd>BufferLineGoToBuffer 5<CR>";};
|
||||||
"<silent><leader>b6" = "<Cmd>BufferLineGoToBuffer 6<CR>";
|
"<silent><leader>b6" = {action = "<Cmd>BufferLineGoToBuffer 6<CR>";};
|
||||||
"<silent><leader>b7" = "<Cmd>BufferLineGoToBuffer 7<CR>";
|
"<silent><leader>b7" = {action = "<Cmd>BufferLineGoToBuffer 7<CR>";};
|
||||||
"<silent><leader>b8" = "<Cmd>BufferLineGoToBuffer 8<CR>";
|
"<silent><leader>b8" = {action = "<Cmd>BufferLineGoToBuffer 8<CR>";};
|
||||||
"<silent><leader>b9" = "<Cmd>BufferLineGoToBuffer 9<CR>";
|
"<silent><leader>b9" = {action = "<Cmd>BufferLineGoToBuffer 9<CR>";};
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.luaConfigRC.nvimBufferline = nvim.dag.entryAnywhere ''
|
vim.luaConfigRC.nvimBufferline = nvim.dag.entryAnywhere ''
|
||||||
|
|
|
@ -9,8 +9,8 @@ in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = ["hop-nvim"];
|
vim.startPlugins = ["hop-nvim"];
|
||||||
|
|
||||||
vim.nnoremap = {
|
vim.maps.normal."<leader>h" = {
|
||||||
"<leader>h" = "<cmd> HopPattern<CR>";
|
action = "<cmd> HopPattern<CR>";
|
||||||
};
|
};
|
||||||
|
|
||||||
vim.luaConfigRC.hop-nvim = nvim.dag.entryAnywhere ''
|
vim.luaConfigRC.hop-nvim = nvim.dag.entryAnywhere ''
|
||||||
|
|
|
@ -13,38 +13,38 @@ in {
|
||||||
"telescope"
|
"telescope"
|
||||||
];
|
];
|
||||||
|
|
||||||
vim.nnoremap =
|
vim.maps.normal =
|
||||||
{
|
{
|
||||||
"<leader>ff" = "<cmd> Telescope find_files<CR>";
|
"<leader>ff" = {action = "<cmd> Telescope find_files<CR>";};
|
||||||
"<leader>fg" = "<cmd> Telescope live_grep<CR>";
|
"<leader>fg" = {action = "<cmd> Telescope live_grep<CR>";};
|
||||||
"<leader>fb" = "<cmd> Telescope buffers<CR>";
|
"<leader>fb" = {action = "<cmd> Telescope buffers<CR>";};
|
||||||
"<leader>fh" = "<cmd> Telescope help_tags<CR>";
|
"<leader>fh" = {action = "<cmd> Telescope help_tags<CR>";};
|
||||||
"<leader>ft" = "<cmd> Telescope<CR>";
|
"<leader>ft" = {action = "<cmd> Telescope<CR>";};
|
||||||
|
|
||||||
"<leader>fvcw" = "<cmd> Telescope git_commits<CR>";
|
"<leader>fvcw" = {action = "<cmd> Telescope git_commits<CR>";};
|
||||||
"<leader>fvcb" = "<cmd> Telescope git_bcommits<CR>";
|
"<leader>fvcb" = {action = "<cmd> Telescope git_bcommits<CR>";};
|
||||||
"<leader>fvb" = "<cmd> Telescope git_branches<CR>";
|
"<leader>fvb" = {action = "<cmd> Telescope git_branches<CR>";};
|
||||||
"<leader>fvs" = "<cmd> Telescope git_status<CR>";
|
"<leader>fvs" = {action = "<cmd> Telescope git_status<CR>";};
|
||||||
"<leader>fvx" = "<cmd> Telescope git_stash<CR>";
|
"<leader>fvx" = {action = "<cmd> Telescope git_stash<CR>";};
|
||||||
}
|
}
|
||||||
// (
|
// (
|
||||||
if config.vim.lsp.enable
|
if config.vim.lsp.enable
|
||||||
then {
|
then {
|
||||||
"<leader>flsb" = "<cmd> Telescope lsp_document_symbols<CR>";
|
"<leader>flsb" = {action = "<cmd> Telescope lsp_document_symbols<CR>";};
|
||||||
"<leader>flsw" = "<cmd> Telescope lsp_workspace_symbols<CR>";
|
"<leader>flsw" = {action = "<cmd> Telescope lsp_workspace_symbols<CR>";};
|
||||||
|
|
||||||
"<leader>flr" = "<cmd> Telescope lsp_references<CR>";
|
"<leader>flr" = {action = "<cmd> Telescope lsp_references<CR>";};
|
||||||
"<leader>fli" = "<cmd> Telescope lsp_implementations<CR>";
|
"<leader>fli" = {action = "<cmd> Telescope lsp_implementations<CR>";};
|
||||||
"<leader>flD" = "<cmd> Telescope lsp_definitions<CR>";
|
"<leader>flD" = {action = "<cmd> Telescope lsp_definitions<CR>";};
|
||||||
"<leader>flt" = "<cmd> Telescope lsp_type_definitions<CR>";
|
"<leader>flt" = {action = "<cmd> Telescope lsp_type_definitions<CR>";};
|
||||||
"<leader>fld" = "<cmd> Telescope diagnostics<CR>";
|
"<leader>fld" = {action = "<cmd> Telescope diagnostics<CR>";};
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
)
|
)
|
||||||
// (
|
// (
|
||||||
if config.vim.treesitter.enable
|
if config.vim.treesitter.enable
|
||||||
then {
|
then {
|
||||||
"<leader>fs" = "<cmd> Telescope treesitter<CR>";
|
"<leader>fs" = {action = "<cmd> Telescope treesitter<CR>";};
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue