mirror of
https://github.com/NotAShelf/neovim-flake.git
synced 2024-11-14 16:55:57 +01:00
Merge d1c24c8eae
into 7dbd1cd8d1
This commit is contained in:
commit
48d223fe44
26 changed files with 774 additions and 289 deletions
|
@ -124,3 +124,62 @@ vim.your-plugin.setupOpts = {
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Lazy plugins {#sec-lazy-plugins}
|
||||||
|
|
||||||
|
If your plugin can be lazy-loaded, you should use `vim.lazy.plugins` to add your plugin. Lazy
|
||||||
|
plugins are managed by `lz.n`.
|
||||||
|
|
||||||
|
```nix
|
||||||
|
# in modules/.../your-plugin/config.nix
|
||||||
|
{lib, config, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.vim.your-plugin;
|
||||||
|
in {
|
||||||
|
vim.lazy.plugins = [
|
||||||
|
{
|
||||||
|
# instead of vim.startPlugins, use this:
|
||||||
|
package = "your-plugin";
|
||||||
|
|
||||||
|
# if your plugin uses the `require('your-plugin').setup{...}` pattern
|
||||||
|
setupModule = "your-plugin";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
|
||||||
|
# events that trigger this plugin to be loaded
|
||||||
|
events = ["DirChanged"];
|
||||||
|
cmd = ["YourPluginCommand"];
|
||||||
|
|
||||||
|
# keymaps
|
||||||
|
keys = [
|
||||||
|
# we'll cover this in detail in the keymaps section
|
||||||
|
{
|
||||||
|
key = "<leader>d";
|
||||||
|
mode = "n";
|
||||||
|
action = ":YourPluginCommand";
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This results in the lua code:
|
||||||
|
```lua
|
||||||
|
require('lz.n').load({
|
||||||
|
{
|
||||||
|
"name-of-your-plugin",
|
||||||
|
after = function()
|
||||||
|
require('your-plugin').setup({--[[ your setupOpts ]]})
|
||||||
|
end,
|
||||||
|
|
||||||
|
events = {"DirChanged"},
|
||||||
|
cmd = {"YourPluginCommand"},
|
||||||
|
keys = {
|
||||||
|
{"<leader>d", ":YourPluginCommand", mode = {"n"}},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
A full list of options can be found
|
||||||
|
[here](https://notashelf.github.io/nvf/options.html#opt-vim.lazy.plugins
|
||||||
|
|
32
flake.lock
32
flake.lock
|
@ -844,6 +844,36 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"plugin-lz-n": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727574854,
|
||||||
|
"narHash": "sha256-qDWNleR2NHFkiEKE/+LNVOBRwEeskMC4dWTl5BTyZuE=",
|
||||||
|
"owner": "nvim-neorocks",
|
||||||
|
"repo": "lz.n",
|
||||||
|
"rev": "470173e3cbef763c6d1b918f3f129b67db75e1f8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nvim-neorocks",
|
||||||
|
"repo": "lz.n",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plugin-lzn-auto-require": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727636949,
|
||||||
|
"narHash": "sha256-BAOzN+XOrFAJwHmsF8JtZ2EyjP9283FD/I2TbFqGSEw=",
|
||||||
|
"owner": "horriblename",
|
||||||
|
"repo": "lzn-auto-require",
|
||||||
|
"rev": "55ecd60831dac8c01d6f3dcb63a30a63a1690eb8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "horriblename",
|
||||||
|
"ref": "require-rewrite",
|
||||||
|
"repo": "lzn-auto-require",
|
||||||
"plugin-luasnip": {
|
"plugin-luasnip": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -1876,6 +1906,8 @@
|
||||||
"plugin-lspkind": "plugin-lspkind",
|
"plugin-lspkind": "plugin-lspkind",
|
||||||
"plugin-lspsaga": "plugin-lspsaga",
|
"plugin-lspsaga": "plugin-lspsaga",
|
||||||
"plugin-lualine": "plugin-lualine",
|
"plugin-lualine": "plugin-lualine",
|
||||||
|
"plugin-lz-n": "plugin-lz-n",
|
||||||
|
"plugin-lzn-auto-require": "plugin-lzn-auto-require",
|
||||||
"plugin-luasnip": "plugin-luasnip",
|
"plugin-luasnip": "plugin-luasnip",
|
||||||
"plugin-mind-nvim": "plugin-mind-nvim",
|
"plugin-mind-nvim": "plugin-mind-nvim",
|
||||||
"plugin-minimap-vim": "plugin-minimap-vim",
|
"plugin-minimap-vim": "plugin-minimap-vim",
|
||||||
|
|
11
flake.nix
11
flake.nix
|
@ -113,6 +113,17 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
## Plugins
|
## Plugins
|
||||||
|
# Lazy loading
|
||||||
|
plugin-lz-n = {
|
||||||
|
url = "github:nvim-neorocks/lz.n";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
plugin-lzn-auto-require = {
|
||||||
|
url = "github:horriblename/lzn-auto-require/require-rewrite";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
# LSP plugins
|
# LSP plugins
|
||||||
plugin-nvim-lspconfig = {
|
plugin-nvim-lspconfig = {
|
||||||
url = "github:neovim/nvim-lspconfig";
|
url = "github:neovim/nvim-lspconfig";
|
||||||
|
|
|
@ -67,6 +67,30 @@
|
||||||
mkLuaBinding binding.value action binding.description;
|
mkLuaBinding binding.value action binding.description;
|
||||||
|
|
||||||
pushDownDefault = attr: mapAttrs (_: mkDefault) attr;
|
pushDownDefault = attr: mapAttrs (_: mkDefault) attr;
|
||||||
|
|
||||||
|
mkLznBinding = mode: key: action: desc: {
|
||||||
|
inherit mode desc key action;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkLznExprBinding = mode: key: action: desc: {
|
||||||
|
inherit mode desc key action;
|
||||||
|
lua = true;
|
||||||
|
silent = true;
|
||||||
|
expr = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkSetLznBinding = binding: action: {
|
||||||
|
inherit action;
|
||||||
|
key = binding.value;
|
||||||
|
desc = binding.description;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkSetLuaLznBinding = binding: action: {
|
||||||
|
inherit action;
|
||||||
|
key = binding.value;
|
||||||
|
lua = true;
|
||||||
|
desc = binding.description;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
binds
|
binds
|
||||||
|
|
|
@ -84,10 +84,7 @@
|
||||||
|
|
||||||
# built (or "normalized") plugins that are modified
|
# built (or "normalized") plugins that are modified
|
||||||
builtStartPlugins = buildConfigPlugins vimOptions.startPlugins;
|
builtStartPlugins = buildConfigPlugins vimOptions.startPlugins;
|
||||||
builtOptPlugins = map (package: {
|
builtOptPlugins = map (package: package // {optional = true;}) (buildConfigPlugins vimOptions.optPlugins);
|
||||||
plugin = package;
|
|
||||||
optional = true;
|
|
||||||
}) (buildConfigPlugins vimOptions.optPlugins);
|
|
||||||
|
|
||||||
# additional Lua and Python3 packages, mapped to their respective functions
|
# additional Lua and Python3 packages, mapped to their respective functions
|
||||||
# to conform to the format mnw expects. end user should
|
# to conform to the format mnw expects. end user should
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
"build"
|
"build"
|
||||||
"rc"
|
"rc"
|
||||||
"warnings"
|
"warnings"
|
||||||
|
"lazy"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Extra modules, such as deprecation warnings
|
# Extra modules, such as deprecation warnings
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{lib, ...}: let
|
{lib, ...}: let
|
||||||
inherit (lib.options) mkEnableOption;
|
inherit (lib.options) mkEnableOption;
|
||||||
inherit (lib.nvim.binds) mkMappingOption;
|
inherit (lib.nvim.binds) mkMappingOption;
|
||||||
|
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||||
in {
|
in {
|
||||||
options.vim.comments.comment-nvim = {
|
options.vim.comments.comment-nvim = {
|
||||||
enable = mkEnableOption "smart and powerful comment plugin for neovim comment-nvim";
|
enable = mkEnableOption "smart and powerful comment plugin for neovim comment-nvim";
|
||||||
|
@ -15,5 +16,12 @@ in {
|
||||||
toggleSelectedLine = mkMappingOption "Toggle selected comment" "gc";
|
toggleSelectedLine = mkMappingOption "Toggle selected comment" "gc";
|
||||||
toggleSelectedBlock = mkMappingOption "Toggle selected block" "gb";
|
toggleSelectedBlock = mkMappingOption "Toggle selected block" "gb";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setupOpts = mkPluginSetupOption "Comment-nvim" {
|
||||||
|
mappings = {
|
||||||
|
basic = mkEnableOption "basic mappings";
|
||||||
|
extra = mkEnableOption "extra mappings";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.binds) mkExprBinding mkBinding;
|
inherit (lib.nvim.binds) mkLznExprBinding mkLznBinding;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
|
||||||
|
|
||||||
cfg = config.vim.comments.comment-nvim;
|
cfg = config.vim.comments.comment-nvim;
|
||||||
self = import ./comment-nvim.nix {inherit lib;};
|
self = import ./comment-nvim.nix {inherit lib;};
|
||||||
|
@ -16,35 +15,33 @@ in {
|
||||||
"comment-nvim"
|
"comment-nvim"
|
||||||
];
|
];
|
||||||
|
|
||||||
vim.maps.normal = mkMerge [
|
vim.lazy.plugins = [
|
||||||
(mkBinding cfg.mappings.toggleOpLeaderLine "<Plug>(comment_toggle_linewise)" mappings.toggleOpLeaderLine.description)
|
{
|
||||||
(mkBinding cfg.mappings.toggleOpLeaderBlock "<Plug>(comment_toggle_blockwise)" mappings.toggleOpLeaderBlock.description)
|
package = "comment-nvim";
|
||||||
|
setupModule = "Comment";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
keys = [
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.toggleOpLeaderLine "<Plug>(comment_toggle_linewise)" mappings.toggleOpLeaderLine.description)
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.toggleOpLeaderBlock "<Plug>(comment_toggle_blockwise)" mappings.toggleOpLeaderBlock.description)
|
||||||
|
|
||||||
(mkExprBinding cfg.mappings.toggleCurrentLine ''
|
(mkLznExprBinding ["n"] cfg.mappings.toggleCurrentLine ''
|
||||||
function()
|
function()
|
||||||
return vim.api.nvim_get_vvar('count') == 0 and '<Plug>(comment_toggle_linewise_current)'
|
return vim.api.nvim_get_vvar('count') == 0 and '<Plug>(comment_toggle_linewise_current)'
|
||||||
or '<Plug>(comment_toggle_linewise_count)'
|
or '<Plug>(comment_toggle_linewise_count)'
|
||||||
end
|
end
|
||||||
''
|
''
|
||||||
mappings.toggleCurrentLine.description)
|
mappings.toggleCurrentLine.description)
|
||||||
(mkExprBinding cfg.mappings.toggleCurrentBlock ''
|
(mkLznExprBinding ["n"] cfg.mappings.toggleCurrentBlock ''
|
||||||
function()
|
function()
|
||||||
return vim.api.nvim_get_vvar('count') == 0 and '<Plug>(comment_toggle_blockwise_current)'
|
return vim.api.nvim_get_vvar('count') == 0 and '<Plug>(comment_toggle_blockwise_current)'
|
||||||
or '<Plug>(comment_toggle_blockwise_count)'
|
or '<Plug>(comment_toggle_blockwise_count)'
|
||||||
end
|
end
|
||||||
''
|
''
|
||||||
mappings.toggleCurrentBlock.description)
|
mappings.toggleCurrentBlock.description)
|
||||||
|
(mkLznBinding ["x"] cfg.mappings.toggleSelectedLine "<Plug>(comment_toggle_linewise_visual)" mappings.toggleSelectedLine.description)
|
||||||
|
(mkLznBinding ["x"] cfg.mappings.toggleSelectedBlock "<Plug>(comment_toggle_blockwise_visual)" mappings.toggleSelectedBlock.description)
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
vim.maps.visualOnly = mkMerge [
|
|
||||||
(mkBinding cfg.mappings.toggleSelectedLine "<Plug>(comment_toggle_linewise_visual)" mappings.toggleSelectedLine.description)
|
|
||||||
(mkBinding cfg.mappings.toggleSelectedBlock "<Plug>(comment_toggle_blockwise_visual)" mappings.toggleSelectedBlock.description)
|
|
||||||
];
|
|
||||||
|
|
||||||
vim.pluginRC.comment-nvim = entryAnywhere ''
|
|
||||||
require('Comment').setup({
|
|
||||||
mappings = { basic = false, extra = false, },
|
|
||||||
})
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
inherit (lib.strings) optionalString;
|
inherit (lib.strings) optionalString;
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf mkMerge;
|
||||||
inherit (lib.attrsets) mapAttrs;
|
inherit (lib.attrsets) mapAttrs;
|
||||||
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding;
|
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding mkSetLuaLznBinding;
|
||||||
inherit (lib.nvim.dag) entryAnywhere entryAfter;
|
inherit (lib.nvim.dag) entryAnywhere entryAfter;
|
||||||
|
|
||||||
cfg = config.vim.debugger.nvim-dap;
|
cfg = config.vim.debugger.nvim-dap;
|
||||||
|
@ -52,24 +52,33 @@ in {
|
||||||
})
|
})
|
||||||
(mkIf (cfg.enable && cfg.ui.enable) {
|
(mkIf (cfg.enable && cfg.ui.enable) {
|
||||||
vim = {
|
vim = {
|
||||||
startPlugins = ["nvim-dap-ui" "nvim-nio"];
|
startPlugins = ["nvim-nio"];
|
||||||
|
|
||||||
pluginRC.nvim-dap-ui = entryAfter ["nvim-dap"] (''
|
lazy.plugins = [
|
||||||
local dapui = require("dapui")
|
{
|
||||||
dapui.setup()
|
package = "nvim-dap-ui";
|
||||||
''
|
setupModule = "dapui";
|
||||||
+ optionalString cfg.ui.autoStart ''
|
setupOpts = {};
|
||||||
|
|
||||||
|
keys = [
|
||||||
|
(mkSetLuaLznBinding mappings.toggleDapUI "function() require('dapui').toggle() end")
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
pluginRC.nvim-dap-ui = entryAfter ["nvim-dap"] (
|
||||||
|
optionalString cfg.ui.autoStart ''
|
||||||
dap.listeners.after.event_initialized["dapui_config"] = function()
|
dap.listeners.after.event_initialized["dapui_config"] = function()
|
||||||
dapui.open()
|
require("dapui").open()
|
||||||
end
|
end
|
||||||
dap.listeners.before.event_terminated["dapui_config"] = function()
|
dap.listeners.before.event_terminated["dapui_config"] = function()
|
||||||
dapui.close()
|
require("dapui").close()
|
||||||
end
|
end
|
||||||
dap.listeners.before.event_exited["dapui_config"] = function()
|
dap.listeners.before.event_exited["dapui_config"] = function()
|
||||||
dapui.close()
|
require("dapui").close()
|
||||||
end
|
end
|
||||||
'');
|
''
|
||||||
maps.normal = mkSetLuaBinding mappings.toggleDapUI "require('dapui').toggle";
|
);
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
|
||||||
|
|
||||||
cfg = config.vim.filetree.neo-tree;
|
cfg = config.vim.filetree.neo-tree;
|
||||||
in {
|
in {
|
||||||
|
@ -20,11 +18,17 @@ in {
|
||||||
"neo-tree-nvim"
|
"neo-tree-nvim"
|
||||||
];
|
];
|
||||||
|
|
||||||
visuals.nvimWebDevicons.enable = true;
|
lazy.plugins = [
|
||||||
|
{
|
||||||
|
package = "neo-tree-nvim";
|
||||||
|
setupModule = "neo-tree";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
|
||||||
pluginRC.neo-tree = entryAnywhere ''
|
cmd = ["Neotree"];
|
||||||
require("neo-tree").setup(${toLuaObject cfg.setupOpts})
|
}
|
||||||
'';
|
];
|
||||||
|
|
||||||
|
visuals.nvimWebDevicons.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,9 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.strings) optionalString;
|
inherit (lib.strings) optionalString;
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.binds) mkBinding;
|
inherit (lib.nvim.binds) mkLznBinding;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
inherit (lib.nvim.dag) entryAnywhere;
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
|
||||||
inherit (lib.nvim.binds) pushDownDefault;
|
inherit (lib.nvim.binds) pushDownDefault;
|
||||||
|
|
||||||
cfg = config.vim.filetree.nvimTree;
|
cfg = config.vim.filetree.nvimTree;
|
||||||
|
@ -16,19 +15,25 @@
|
||||||
inherit (self.options.vim.filetree.nvimTree) mappings;
|
inherit (self.options.vim.filetree.nvimTree) mappings;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = ["nvim-tree-lua"];
|
|
||||||
|
|
||||||
vim.maps.normal = mkMerge [
|
|
||||||
(mkBinding cfg.mappings.toggle ":NvimTreeToggle<cr>" mappings.toggle.description)
|
|
||||||
(mkBinding cfg.mappings.refresh ":NvimTreeRefresh<cr>" mappings.refresh.description)
|
|
||||||
(mkBinding cfg.mappings.findFile ":NvimTreeFindFile<cr>" mappings.findFile.description)
|
|
||||||
(mkBinding cfg.mappings.focus ":NvimTreeFocus<cr>" mappings.focus.description)
|
|
||||||
];
|
|
||||||
|
|
||||||
vim.binds.whichKey.register = pushDownDefault {
|
vim.binds.whichKey.register = pushDownDefault {
|
||||||
"<leader>t" = "+NvimTree";
|
"<leader>t" = "+NvimTree";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vim.lazy.plugins = [
|
||||||
|
{
|
||||||
|
package = "nvim-tree-lua";
|
||||||
|
setupModule = "nvim-tree";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
cmd = ["NvimTreeClipboard" "NvimTreeClose" "NvimTreeCollapse" "NvimTreeCollapseKeepBuffers" "NvimTreeFindFile" "NvimTreeFindFileToggle" "NvimTreeFocus" "NvimTreeHiTest" "NvimTreeOpen" "NvimTreeRefresh" "NvimTreeResize" "NvimTreeToggle"];
|
||||||
|
keys = [
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.toggle ":NvimTreeToggle<cr>" mappings.toggle.description)
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.refresh ":NvimTreeRefresh<cr>" mappings.refresh.description)
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.findFile ":NvimTreeFindFile<cr>" mappings.findFile.description)
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.focus ":NvimTreeFocus<cr>" mappings.focus.description)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
vim.pluginRC.nvimtreelua = entryAnywhere ''
|
vim.pluginRC.nvimtreelua = entryAnywhere ''
|
||||||
${
|
${
|
||||||
optionalString cfg.setupOpts.disable_netrw ''
|
optionalString cfg.setupOpts.disable_netrw ''
|
||||||
|
@ -38,10 +43,9 @@ in {
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
|
|
||||||
require'nvim-tree'.setup(${toLuaObject cfg.setupOpts})
|
|
||||||
|
|
||||||
${
|
${
|
||||||
optionalString cfg.openOnSetup ''
|
optionalString cfg.openOnSetup ''
|
||||||
|
${optionalString config.vim.lazy.enable ''require('lz.n').trigger_load("nvim-tree-lua")''}
|
||||||
-- autostart behaviour
|
-- autostart behaviour
|
||||||
-- Open on startup has been deprecated
|
-- Open on startup has been deprecated
|
||||||
-- see https://github.com/nvim-tree/nvim-tree.lua/wiki/Open-At-Startup
|
-- see https://github.com/nvim-tree/nvim-tree.lua/wiki/Open-At-Startup
|
||||||
|
|
|
@ -3,9 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLznBinding pushDownDefault;
|
||||||
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetBinding pushDownDefault;
|
|
||||||
|
|
||||||
cfg = config.vim.lsp;
|
cfg = config.vim.lsp;
|
||||||
|
|
||||||
|
@ -15,15 +14,22 @@
|
||||||
in {
|
in {
|
||||||
config = mkIf (cfg.enable && cfg.trouble.enable) {
|
config = mkIf (cfg.enable && cfg.trouble.enable) {
|
||||||
vim = {
|
vim = {
|
||||||
startPlugins = ["trouble"];
|
lazy.plugins = [
|
||||||
|
{
|
||||||
|
package = "trouble";
|
||||||
|
setupModule = "trouble";
|
||||||
|
inherit (cfg.trouble) setupOpts;
|
||||||
|
|
||||||
maps.normal = mkMerge [
|
cmd = "Trouble";
|
||||||
(mkSetBinding mappings.toggle "<cmd>TroubleToggle<CR>")
|
keys = [
|
||||||
(mkSetBinding mappings.workspaceDiagnostics "<cmd>TroubleToggle workspace_diagnostics<CR>")
|
(mkSetLznBinding mappings.toggle "<cmd>TroubleToggle<CR>")
|
||||||
(mkSetBinding mappings.documentDiagnostics "<cmd>TroubleToggle document_diagnostics<CR>")
|
(mkSetLznBinding mappings.workspaceDiagnostics "<cmd>TroubleToggle workspace_diagnostics<CR>")
|
||||||
(mkSetBinding mappings.lspReferences "<cmd>TroubleToggle lsp_references<CR>")
|
(mkSetLznBinding mappings.documentDiagnostics "<cmd>TroubleToggle document_diagnostics<CR>")
|
||||||
(mkSetBinding mappings.quickfix "<cmd>TroubleToggle quickfix<CR>")
|
(mkSetLznBinding mappings.lspReferences "<cmd>TroubleToggle lsp_references<CR>")
|
||||||
(mkSetBinding mappings.locList "<cmd>TroubleToggle loclist<CR>")
|
(mkSetLznBinding mappings.quickfix "<cmd>TroubleToggle quickfix<CR>")
|
||||||
|
(mkSetLznBinding mappings.locList "<cmd>TroubleToggle loclist<CR>")
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
binds.whichKey.register = pushDownDefault {
|
binds.whichKey.register = pushDownDefault {
|
||||||
|
@ -31,11 +37,6 @@ in {
|
||||||
"<leader>x" = "+Trouble";
|
"<leader>x" = "+Trouble";
|
||||||
"<leader>lw" = "Workspace";
|
"<leader>lw" = "Workspace";
|
||||||
};
|
};
|
||||||
|
|
||||||
pluginRC.trouble = entryAnywhere ''
|
|
||||||
-- Enable trouble diagnostics viewer
|
|
||||||
require("trouble").setup {}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
{lib, ...}: let
|
{lib, ...}: let
|
||||||
inherit (lib.options) mkEnableOption;
|
inherit (lib.options) mkEnableOption;
|
||||||
inherit (lib.nvim.binds) mkMappingOption;
|
inherit (lib.nvim.binds) mkMappingOption;
|
||||||
|
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||||
in {
|
in {
|
||||||
options.vim.lsp = {
|
options.vim.lsp = {
|
||||||
trouble = {
|
trouble = {
|
||||||
enable = mkEnableOption "trouble diagnostics viewer";
|
enable = mkEnableOption "trouble diagnostics viewer";
|
||||||
|
|
||||||
|
setupOpts = mkPluginSetupOption "Trouble" {};
|
||||||
|
|
||||||
mappings = {
|
mappings = {
|
||||||
toggle = mkMappingOption "Toggle trouble [trouble]" "<leader>xx";
|
toggle = mkMappingOption "Toggle trouble [trouble]" "<leader>xx";
|
||||||
workspaceDiagnostics = mkMappingOption "Workspace diagnostics [trouble]" "<leader>lwd";
|
workspaceDiagnostics = mkMappingOption "Workspace diagnostics [trouble]" "<leader>lwd";
|
||||||
|
|
|
@ -4,55 +4,49 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (builtins) toJSON;
|
inherit (builtins) toJSON;
|
||||||
inherit (lib.lists) optionals;
|
inherit (lib.strings) optionalString;
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.meta) getExe;
|
inherit (lib.meta) getExe;
|
||||||
inherit (lib.nvim.binds) mkBinding;
|
inherit (lib.nvim.binds) mkLznBinding;
|
||||||
inherit (lib.nvim.dag) entryAnywhere entryAfter;
|
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
|
||||||
|
|
||||||
cfg = config.vim.terminal.toggleterm;
|
cfg = config.vim.terminal.toggleterm;
|
||||||
|
lazygitMapDesc = "Open lazygit [toggleterm]";
|
||||||
in {
|
in {
|
||||||
config = mkMerge [
|
config = mkIf cfg.enable {
|
||||||
(
|
vim = {
|
||||||
mkIf cfg.enable {
|
lazy.plugins = [
|
||||||
vim = {
|
{
|
||||||
startPlugins = [
|
package = "toggleterm-nvim";
|
||||||
"toggleterm-nvim"
|
cmd = ["ToggleTerm" "ToggleTermSendCurrentLine" "ToggleTermSendVisualLines" "ToggleTermSendVisualSelection" "ToggleTermSetName" "ToggleTermToggleAll"];
|
||||||
|
keys = [
|
||||||
|
(mkLznBinding ["n"] cfg.mappings.open "<Cmd>execute v:count . \"ToggleTerm\"<CR>" "Toggle terminal")
|
||||||
|
{
|
||||||
|
key = cfg.lazygit.mappings.open;
|
||||||
|
desc = lazygitMapDesc;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
maps.normal = mkBinding cfg.mappings.open "<Cmd>execute v:count . \"ToggleTerm\"<CR>" "Toggle terminal";
|
setupModule = "toggleterm";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
after = optionalString cfg.lazygit.enable ''
|
||||||
|
local terminal = require 'toggleterm.terminal'
|
||||||
|
local lazygit = terminal.Terminal:new({
|
||||||
|
cmd = '${
|
||||||
|
if (cfg.lazygit.package != null)
|
||||||
|
then getExe cfg.lazygit.package
|
||||||
|
else "lazygit"
|
||||||
|
}',
|
||||||
|
direction = '${cfg.lazygit.direction}',
|
||||||
|
hidden = true,
|
||||||
|
on_open = function(term)
|
||||||
|
vim.cmd("startinsert!")
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
pluginRC.toggleterm = entryAnywhere ''
|
vim.keymap.set('n', ${toJSON cfg.lazygit.mappings.open}, function() lazygit:toggle() end, {silent = true, noremap = true, desc = '${lazygitMapDesc}'})
|
||||||
require("toggleterm").setup(${toLuaObject cfg.setupOpts})
|
|
||||||
'';
|
'';
|
||||||
};
|
}
|
||||||
}
|
];
|
||||||
)
|
};
|
||||||
(
|
};
|
||||||
mkIf (cfg.enable && cfg.lazygit.enable)
|
|
||||||
{
|
|
||||||
vim.startPlugins = optionals (cfg.lazygit.package != null) [
|
|
||||||
cfg.lazygit.package
|
|
||||||
];
|
|
||||||
vim.pluginRC.toggleterm-lazygit = entryAfter ["toggleterm"] ''
|
|
||||||
local terminal = require 'toggleterm.terminal'
|
|
||||||
local lazygit = terminal.Terminal:new({
|
|
||||||
cmd = '${
|
|
||||||
if (cfg.lazygit.package != null)
|
|
||||||
then getExe cfg.lazygit.package
|
|
||||||
else "lazygit"
|
|
||||||
}',
|
|
||||||
direction = '${cfg.lazygit.direction}',
|
|
||||||
hidden = true,
|
|
||||||
on_open = function(term)
|
|
||||||
vim.cmd("startinsert!")
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.keymap.set('n', ${toJSON cfg.lazygit.mappings.open}, function() lazygit:toggle() end, {silent = true, noremap = true, desc = 'Open lazygit [toggleterm]'})
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,15 +4,20 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
inherit (lib.strings) optionalString;
|
||||||
|
|
||||||
cfg = config.vim.binds.cheatsheet;
|
cfg = config.vim.binds.cheatsheet;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = ["cheatsheet-nvim"];
|
vim.lazy.plugins = [
|
||||||
|
{
|
||||||
|
package = "cheatsheet-nvim";
|
||||||
|
setupModule = "cheatsheet";
|
||||||
|
setupOpts = {};
|
||||||
|
cmd = ["Cheatsheet" "CheatsheetEdit"];
|
||||||
|
|
||||||
vim.pluginRC.cheaetsheet-nvim = entryAnywhere ''
|
before = optionalString config.vim.lazy.enable "require('lz.n').trigger_load('telescope')";
|
||||||
require('cheatsheet').setup({})
|
}
|
||||||
'';
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,16 @@
|
||||||
cfg = config.vim.utility.diffview-nvim;
|
cfg = config.vim.utility.diffview-nvim;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = [
|
vim = {
|
||||||
"diffview-nvim"
|
startPlugins = ["plenary-nvim"];
|
||||||
"plenary-nvim"
|
lazy.plugins = [
|
||||||
];
|
{
|
||||||
|
package = "diffview-nvim";
|
||||||
|
cmd = ["DiffviewClose" "DiffviewFileHistory" "DiffviewFocusFiles" "DiffviewLog" "DiffviewOpen" "DiffviewRefresh" "DiffviewToggleFiles"];
|
||||||
|
setupModule = "diffview";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
{lib, ...}: let
|
{lib, ...}: let
|
||||||
inherit (lib.options) mkEnableOption;
|
inherit (lib.options) mkEnableOption;
|
||||||
|
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||||
in {
|
in {
|
||||||
options.vim.utility.diffview-nvim = {
|
options.vim.utility.diffview-nvim = {
|
||||||
enable = mkEnableOption "diffview-nvim: cycle through diffs for all modified files for any git rev";
|
enable = mkEnableOption "diffview-nvim: cycle through diffs for all modified files for any git rev";
|
||||||
|
setupOpts = mkPluginSetupOption "Fidget" {};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,20 +4,22 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
|
||||||
|
|
||||||
cfg = config.vim.utility.icon-picker;
|
cfg = config.vim.utility.icon-picker;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = [
|
vim.startPlugins = ["dressing-nvim"];
|
||||||
"icon-picker-nvim"
|
|
||||||
"dressing-nvim"
|
|
||||||
];
|
|
||||||
|
|
||||||
vim.pluginRC.icon-picker = entryAnywhere ''
|
vim.lazy.plugins = [
|
||||||
require("icon-picker").setup({
|
{
|
||||||
disable_legacy_commands = true
|
package = "icon-picker-nvim";
|
||||||
})
|
setupModule = "icon-picker";
|
||||||
'';
|
setupOpts = {
|
||||||
|
disable_legacy_commands = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
cmd = ["IconPickerInsert" "IconPickerNormal" "IconPickerYank"];
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,71 +3,59 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.binds) mkBinding;
|
inherit (lib.nvim.binds) mkLznBinding;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
|
||||||
|
|
||||||
cfg = config.vim.utility.motion.leap;
|
cfg = config.vim.utility.motion.leap;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = [
|
vim = {
|
||||||
"leap-nvim"
|
startPlugins = ["vim-repeat"];
|
||||||
"vim-repeat"
|
lazy.plugins = [
|
||||||
];
|
{
|
||||||
|
package = "leap-nvim";
|
||||||
|
keys = [
|
||||||
|
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to")
|
||||||
|
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to")
|
||||||
|
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till")
|
||||||
|
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till")
|
||||||
|
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window")
|
||||||
|
];
|
||||||
|
|
||||||
vim.maps.normal = mkMerge [
|
after = ''
|
||||||
(mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to")
|
require('leap').opts = {
|
||||||
(mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to")
|
max_phase_one_targets = nil,
|
||||||
(mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window")
|
highlight_unlabeled_phase_one_targets = false,
|
||||||
];
|
max_highlighted_traversal_targets = 10,
|
||||||
|
case_sensitive = false,
|
||||||
vim.maps.operator = mkMerge [
|
equivalence_classes = { ' \t\r\n', },
|
||||||
(mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to")
|
substitute_chars = {},
|
||||||
(mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to")
|
safe_labels = {
|
||||||
(mkBinding cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till")
|
"s", "f", "n", "u", "t", "/",
|
||||||
(mkBinding cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till")
|
"S", "F", "N", "L", "H", "M", "U", "G", "T", "?", "Z"
|
||||||
(mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window")
|
},
|
||||||
];
|
labels = {
|
||||||
|
"s", "f", "n",
|
||||||
vim.maps.visualOnly = mkMerge [
|
"j", "k", "l", "h", "o", "d", "w", "e", "m", "b",
|
||||||
(mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to")
|
"u", "y", "v", "r", "g", "t", "c", "x", "/", "z",
|
||||||
(mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to")
|
"S", "F", "N",
|
||||||
(mkBinding cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till")
|
"J", "K", "L", "H", "O", "D", "W", "E", "M", "B",
|
||||||
(mkBinding cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till")
|
"U", "Y", "V", "R", "G", "T", "C", "X", "?", "Z"
|
||||||
(mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window")
|
},
|
||||||
];
|
special_keys = {
|
||||||
|
repeat_search = '<enter>',
|
||||||
vim.pluginRC.leap-nvim = entryAnywhere ''
|
next_phase_one_target = '<enter>',
|
||||||
require('leap').opts = {
|
next_target = {'<enter>', ';'},
|
||||||
max_phase_one_targets = nil,
|
prev_target = {'<tab>', ','},
|
||||||
highlight_unlabeled_phase_one_targets = false,
|
next_group = '<space>',
|
||||||
max_highlighted_traversal_targets = 10,
|
prev_group = '<tab>',
|
||||||
case_sensitive = false,
|
multi_accept = '<enter>',
|
||||||
equivalence_classes = { ' \t\r\n', },
|
multi_revert = '<backspace>',
|
||||||
substitute_chars = {},
|
},
|
||||||
safe_labels = {
|
}
|
||||||
"s", "f", "n", "u", "t", "/",
|
'';
|
||||||
"S", "F", "N", "L", "H", "M", "U", "G", "T", "?", "Z"
|
}
|
||||||
},
|
];
|
||||||
labels = {
|
};
|
||||||
"s", "f", "n",
|
|
||||||
"j", "k", "l", "h", "o", "d", "w", "e", "m", "b",
|
|
||||||
"u", "y", "v", "r", "g", "t", "c", "x", "/", "z",
|
|
||||||
"S", "F", "N",
|
|
||||||
"J", "K", "L", "H", "O", "D", "W", "E", "M", "B",
|
|
||||||
"U", "Y", "V", "R", "G", "T", "C", "X", "?", "Z"
|
|
||||||
},
|
|
||||||
special_keys = {
|
|
||||||
repeat_search = '<enter>',
|
|
||||||
next_phase_one_target = '<enter>',
|
|
||||||
next_target = {'<enter>', ';'},
|
|
||||||
prev_target = {'<tab>', ','},
|
|
||||||
next_group = '<space>',
|
|
||||||
prev_group = '<tab>',
|
|
||||||
multi_accept = '<enter>',
|
|
||||||
multi_revert = '<backspace>',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,25 +8,50 @@
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
inherit (lib.nvim.lua) toLuaObject;
|
||||||
|
|
||||||
cfg = config.vim.utility.surround;
|
cfg = config.vim.utility.surround;
|
||||||
|
vendoredKeybinds = {
|
||||||
|
insert = "<C-g>z";
|
||||||
|
insert_line = "<C-g>Z";
|
||||||
|
normal = "gz";
|
||||||
|
normal_cur = "gZ";
|
||||||
|
normal_line = "gzz";
|
||||||
|
normal_cur_line = "gZZ";
|
||||||
|
visual = "gz";
|
||||||
|
visual_line = "gZ";
|
||||||
|
delete = "gzd";
|
||||||
|
change = "gzr";
|
||||||
|
change_line = "gZR";
|
||||||
|
};
|
||||||
|
mkLznKey = mode: key: {
|
||||||
|
inherit key mode;
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim = {
|
vim = {
|
||||||
startPlugins = ["nvim-surround"];
|
startPlugins = ["nvim-surround"];
|
||||||
pluginRC.surround = entryAnywhere "require('nvim-surround').setup(${toLuaObject cfg.setupOpts})";
|
pluginRC.surround = entryAnywhere "require('nvim-surround').setup(${toLuaObject cfg.setupOpts})";
|
||||||
|
|
||||||
utility.surround.setupOpts.keymaps = mkIf cfg.useVendoredKeybindings {
|
lazy.plugins = [
|
||||||
insert = "<C-g>z";
|
{
|
||||||
insert_line = "<C-g>Z";
|
package = "nvim-surround";
|
||||||
normal = "gz";
|
setupModule = "nvim-surround";
|
||||||
normal_cur = "gZ";
|
inherit (cfg) setupOpts;
|
||||||
normal_line = "gzz";
|
|
||||||
normal_cur_line = "gZZ";
|
keys =
|
||||||
visual = "gz";
|
map (mkLznKey ["i"]) (with vendoredKeybinds; [insert insert_line])
|
||||||
visual_line = "gZ";
|
++ map (mkLznKey ["x"]) (with vendoredKeybinds; [visual visual_line])
|
||||||
delete = "gzd";
|
++ map (mkLznKey ["n"]) (with vendoredKeybinds; [
|
||||||
change = "gzr";
|
normal
|
||||||
change_line = "gZR";
|
normal_cur
|
||||||
};
|
normal_line
|
||||||
|
normal_cur_line
|
||||||
|
delete
|
||||||
|
change
|
||||||
|
change_line
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
utility.surround.setupOpts.keymaps = mkIf cfg.useVendoredKeybindings vendoredKeybinds;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkMerge;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.binds) addDescriptionsToMappings mkSetBinding;
|
inherit (lib.nvim.binds) addDescriptionsToMappings;
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
inherit (lib.strings) optionalString;
|
||||||
inherit (lib.nvim.binds) pushDownDefault;
|
inherit (lib.lists) optionals;
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
inherit (lib.nvim.binds) pushDownDefault mkSetLznBinding;
|
||||||
|
|
||||||
cfg = config.vim.telescope;
|
cfg = config.vim.telescope;
|
||||||
self = import ./telescope.nix {inherit pkgs lib;};
|
self = import ./telescope.nix {inherit pkgs lib;};
|
||||||
|
@ -18,45 +18,58 @@
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim = {
|
vim = {
|
||||||
startPlugins = [
|
startPlugins = ["plenary-nvim"];
|
||||||
"telescope"
|
|
||||||
"plenary-nvim"
|
|
||||||
];
|
|
||||||
|
|
||||||
maps.normal = mkMerge [
|
lazy.plugins = [
|
||||||
(mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
|
{
|
||||||
(mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
|
package = "telescope";
|
||||||
(mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>")
|
setupModule = "telescope";
|
||||||
(mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
|
inherit (cfg) setupOpts;
|
||||||
(mkSetBinding mappings.open "<cmd> Telescope<CR>")
|
# FIXME: how do I deal with extensions? set all as deps?
|
||||||
(mkSetBinding mappings.resume "<cmd> Telescope resume<CR>")
|
after = ''
|
||||||
|
local telescope = require("telescope")
|
||||||
|
${optionalString config.vim.ui.noice.enable "telescope.load_extension('noice')"}
|
||||||
|
${optionalString config.vim.notify.nvim-notify.enable "telescope.load_extension('notify')"}
|
||||||
|
${optionalString config.vim.projects.project-nvim.enable "telescope.load_extension('projects')"}
|
||||||
|
'';
|
||||||
|
|
||||||
(mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
|
cmd = ["Telescope"];
|
||||||
(mkSetBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
|
|
||||||
(mkSetBinding mappings.gitBranches "<cmd> Telescope git_branches<CR>")
|
|
||||||
(mkSetBinding mappings.gitStatus "<cmd> Telescope git_status<CR>")
|
|
||||||
(mkSetBinding mappings.gitStash "<cmd> Telescope git_stash<CR>")
|
|
||||||
|
|
||||||
(mkIf config.vim.lsp.enable (mkMerge [
|
keys =
|
||||||
(mkSetBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
|
[
|
||||||
(mkSetBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
|
(mkSetLznBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
|
||||||
|
(mkSetLznBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
|
||||||
|
(mkSetLznBinding mappings.buffers "<cmd> Telescope buffers<CR>")
|
||||||
|
(mkSetLznBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
|
||||||
|
(mkSetLznBinding mappings.open "<cmd> Telescope<CR>")
|
||||||
|
|
||||||
(mkSetBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
|
(mkSetLznBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
|
||||||
(mkSetBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
|
(mkSetLznBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
|
||||||
(mkSetBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
|
(mkSetLznBinding mappings.gitBranches "<cmd> Telescope git_branches<CR>")
|
||||||
(mkSetBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
|
(mkSetLznBinding mappings.gitStatus "<cmd> Telescope git_status<CR>")
|
||||||
(mkSetBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
|
(mkSetLznBinding mappings.gitStash "<cmd> Telescope git_stash<CR>")
|
||||||
]))
|
]
|
||||||
|
++ (optionals config.vim.lsp.enable [
|
||||||
|
(mkSetLznBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
|
||||||
|
(mkSetLznBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
|
||||||
|
|
||||||
(
|
(mkSetLznBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
|
||||||
mkIf config.vim.treesitter.enable
|
(mkSetLznBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
|
||||||
(mkSetBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
|
(mkSetLznBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
|
||||||
)
|
(mkSetLznBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
|
||||||
|
(mkSetLznBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
|
||||||
(
|
])
|
||||||
mkIf config.vim.projects.project-nvim.enable
|
++ (
|
||||||
(mkSetBinding mappings.findProjects "<cmd> Telescope projects<CR>")
|
optionals config.vim.treesitter.enable [
|
||||||
)
|
(mkSetLznBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
optionals config.vim.projects.project-nvim.enable [
|
||||||
|
(mkSetLznBinding mappings.findProjects "<cmd Telescope projects<CR>")
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
binds.whichKey.register = pushDownDefault {
|
binds.whichKey.register = pushDownDefault {
|
||||||
|
@ -66,29 +79,6 @@ in {
|
||||||
"<leader>fv" = "Telescope Git";
|
"<leader>fv" = "Telescope Git";
|
||||||
"<leader>fvc" = "Commits";
|
"<leader>fvc" = "Commits";
|
||||||
};
|
};
|
||||||
|
|
||||||
pluginRC.telescope = entryAnywhere ''
|
|
||||||
local telescope = require('telescope')
|
|
||||||
telescope.setup(${toLuaObject cfg.setupOpts})
|
|
||||||
|
|
||||||
${
|
|
||||||
if config.vim.ui.noice.enable
|
|
||||||
then "telescope.load_extension('noice')"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
|
|
||||||
${
|
|
||||||
if config.vim.notify.nvim-notify.enable
|
|
||||||
then "telescope.load_extension('notify')"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
|
|
||||||
${
|
|
||||||
if config.vim.projects.project-nvim.enable
|
|
||||||
then "telescope.load_extension('projects')"
|
|
||||||
else ""
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,16 +4,17 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
|
||||||
inherit (lib.nvim.dag) entryAnywhere;
|
|
||||||
|
|
||||||
cfg = config.vim.visuals.fidget-nvim;
|
cfg = config.vim.visuals.fidget-nvim;
|
||||||
in {
|
in {
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
vim.startPlugins = ["fidget-nvim"];
|
vim.lazy.plugins = [
|
||||||
|
{
|
||||||
vim.pluginRC.fidget-nvim = entryAnywhere ''
|
package = "fidget-nvim";
|
||||||
require'fidget'.setup(${toLuaObject cfg.setupOpts})
|
setupModule = "fidget";
|
||||||
'';
|
event = "LspAttach";
|
||||||
|
inherit (cfg) setupOpts;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
106
modules/wrapper/lazy/config.nix
Normal file
106
modules/wrapper/lazy/config.nix
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (builtins) toJSON typeOf head length tryEval filter concatLists concatStringsSep;
|
||||||
|
inherit (lib.modules) mkIf mkMerge;
|
||||||
|
inherit (lib.generators) mkLuaInline;
|
||||||
|
inherit (lib.strings) optionalString;
|
||||||
|
inherit (lib.nvim.lua) toLuaObject;
|
||||||
|
inherit (lib.nvim.dag) entryBefore entryAfter;
|
||||||
|
cfg = config.vim.lazy;
|
||||||
|
|
||||||
|
toLuaLznKeySpec = keySpec:
|
||||||
|
(removeAttrs keySpec ["key" "lua" "action"])
|
||||||
|
// {
|
||||||
|
"@1" = keySpec.key;
|
||||||
|
"@2" =
|
||||||
|
if keySpec.lua
|
||||||
|
then mkLuaInline keySpec.action
|
||||||
|
else keySpec.action;
|
||||||
|
};
|
||||||
|
|
||||||
|
toLuaLznSpec = spec: let
|
||||||
|
name =
|
||||||
|
if typeOf spec.package == "string"
|
||||||
|
then spec.package
|
||||||
|
else if (spec.package ? pname && (tryEval spec.package.pname).success)
|
||||||
|
then spec.package.pname
|
||||||
|
else spec.package.name;
|
||||||
|
in
|
||||||
|
(removeAttrs spec ["package" "setupModule" "setupOpts" "keys"])
|
||||||
|
// {
|
||||||
|
"@1" = name;
|
||||||
|
before =
|
||||||
|
if spec.before != null
|
||||||
|
then
|
||||||
|
mkLuaInline ''
|
||||||
|
function()
|
||||||
|
${spec.before}
|
||||||
|
end
|
||||||
|
''
|
||||||
|
else null;
|
||||||
|
|
||||||
|
after =
|
||||||
|
if spec.setupModule == null && spec.after == null
|
||||||
|
then null
|
||||||
|
else
|
||||||
|
mkLuaInline ''
|
||||||
|
function()
|
||||||
|
${
|
||||||
|
optionalString (spec.setupModule != null)
|
||||||
|
"require(${toJSON spec.setupModule}).setup(${toLuaObject spec.setupOpts})"
|
||||||
|
}
|
||||||
|
${optionalString (spec.after != null) spec.after}
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
keys =
|
||||||
|
if typeOf spec.keys == "list" && length spec.keys > 0 && typeOf (head spec.keys) == "set"
|
||||||
|
then map toLuaLznKeySpec (filter (keySpec: keySpec.key != null) spec.keys)
|
||||||
|
# empty list or str or (listOf str)
|
||||||
|
else spec.keys;
|
||||||
|
};
|
||||||
|
lznSpecs = map toLuaLznSpec cfg.plugins;
|
||||||
|
|
||||||
|
specToNotLazyConfig = spec: ''
|
||||||
|
do
|
||||||
|
${optionalString (spec.before != null) spec.before}
|
||||||
|
${optionalString (spec.setupModule != null)
|
||||||
|
"require(${toJSON spec.setupModule}).setup(${toLuaObject spec.setupOpts})"}
|
||||||
|
${optionalString (spec.after != null) spec.after}
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
|
||||||
|
specToKeymaps = spec:
|
||||||
|
if typeOf spec.keys == "list"
|
||||||
|
then map (x: removeAttrs x ["ft"]) (filter (lznKey: lznKey.action != null && lznKey.ft == null) spec.keys)
|
||||||
|
else if spec.keys == null || typeOf spec.keys == "string"
|
||||||
|
then []
|
||||||
|
else [spec.keys];
|
||||||
|
|
||||||
|
notLazyConfig = concatStringsSep "\n" (map specToNotLazyConfig cfg.plugins);
|
||||||
|
in {
|
||||||
|
config.vim = mkMerge [
|
||||||
|
(mkIf cfg.enable {
|
||||||
|
startPlugins = ["lz-n" "lzn-auto-require"];
|
||||||
|
|
||||||
|
optPlugins = map (plugin: plugin.package) cfg.plugins;
|
||||||
|
|
||||||
|
luaConfigRC.lzn-load = entryBefore ["pluginConfigs"] ''
|
||||||
|
require('lz.n').load(${toLuaObject lznSpecs})
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
(
|
||||||
|
mkIf (!cfg.enable) {
|
||||||
|
startPlugins = map (plugin: plugin.package) cfg.plugins;
|
||||||
|
luaConfigPre =
|
||||||
|
concatStringsSep "\n"
|
||||||
|
(filter (x: x != null) (map (spec: spec.beforeAll) cfg.plugins));
|
||||||
|
luaConfigRC.unlazy = entryAfter ["pluginConfigs"] notLazyConfig;
|
||||||
|
keymaps = concatLists (map specToKeymaps cfg.plugins);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
}
|
6
modules/wrapper/lazy/default.nix
Normal file
6
modules/wrapper/lazy/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
_: {
|
||||||
|
imports = [
|
||||||
|
./lazy.nix
|
||||||
|
./config.nix
|
||||||
|
];
|
||||||
|
}
|
207
modules/wrapper/lazy/lazy.nix
Normal file
207
modules/wrapper/lazy/lazy.nix
Normal file
|
@ -0,0 +1,207 @@
|
||||||
|
{lib, ...}: let
|
||||||
|
inherit (lib.options) mkOption mkEnableOption;
|
||||||
|
inherit (lib.types) enum listOf submodule nullOr str bool int attrsOf anything either oneOf;
|
||||||
|
inherit (lib.nvim.types) pluginType;
|
||||||
|
inherit (lib.nvim.config) mkBool;
|
||||||
|
|
||||||
|
lznKeysSpec = submodule {
|
||||||
|
options = {
|
||||||
|
key = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
description = "Key to bind to. If key is null this entry is ignored.";
|
||||||
|
};
|
||||||
|
|
||||||
|
action = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = "Action to trigger.";
|
||||||
|
};
|
||||||
|
lua = mkBool false ''
|
||||||
|
If true, `action` is considered to be lua code.
|
||||||
|
Thus, it will not be wrapped in `""`.
|
||||||
|
'';
|
||||||
|
|
||||||
|
desc = mkOption {
|
||||||
|
description = "Description of the key map";
|
||||||
|
type = nullOr str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
ft = mkOption {
|
||||||
|
description = "TBD";
|
||||||
|
type = nullOr (listOf str);
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
mode = mkOption {
|
||||||
|
description = "Modes to bind in";
|
||||||
|
type = listOf str;
|
||||||
|
default = ["n" "x" "s" "o"];
|
||||||
|
};
|
||||||
|
|
||||||
|
silent = mkBool true "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.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lznPluginType = submodule {
|
||||||
|
options = {
|
||||||
|
package = mkOption {
|
||||||
|
type = pluginType;
|
||||||
|
description = "Plugin package";
|
||||||
|
};
|
||||||
|
|
||||||
|
setupModule = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
description = "Lua module to run setup function on.";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
setupOpts = mkOption {
|
||||||
|
type = submodule {freeformType = attrsOf anything;};
|
||||||
|
description = "Options to pass to the setup function";
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
# lz.n options
|
||||||
|
|
||||||
|
enabled = mkOption {
|
||||||
|
type = nullOr (either bool str);
|
||||||
|
description = "When false, or if the lua function returns false, this plugin will not be included in the spec";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
beforeAll = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
description = "Lua code to run before any plugins are loaded. This will be wrapped in a function.";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
before = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
description = "Lua code to run before plugin is loaded. This will be wrapped in a function.";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
after = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
description = ''
|
||||||
|
Lua code to run after plugin is loaded. This will be wrapped in a function.
|
||||||
|
|
||||||
|
If [](#opt-vim.lazy.plugins._.setupModule) is provided, the setup will be ran before `after`.
|
||||||
|
'';
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
event = mkOption {
|
||||||
|
description = "Lazy-load on event";
|
||||||
|
default = null;
|
||||||
|
type = let
|
||||||
|
event = submodule {
|
||||||
|
options = {
|
||||||
|
event = mkOption {
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
|
description = "Exact event name";
|
||||||
|
example = "BufEnter";
|
||||||
|
};
|
||||||
|
pattern = mkOption {
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
|
description = "Event pattern";
|
||||||
|
example = "BufEnter *.lua";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
nullOr (oneOf [str (listOf str) event]);
|
||||||
|
};
|
||||||
|
|
||||||
|
cmd = mkOption {
|
||||||
|
description = "Lazy-load on command";
|
||||||
|
default = null;
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
|
};
|
||||||
|
|
||||||
|
ft = mkOption {
|
||||||
|
description = "Lazy-load on filetype";
|
||||||
|
default = null;
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
|
};
|
||||||
|
|
||||||
|
keys = mkOption {
|
||||||
|
description = "Lazy-load on key mapping";
|
||||||
|
default = null;
|
||||||
|
type = nullOr (oneOf [str (listOf lznKeysSpec) (listOf str)]);
|
||||||
|
example = ''
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>s";
|
||||||
|
action = ":DapStepOver<cr>";
|
||||||
|
desc = "DAP Step Over";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["n", "x"];
|
||||||
|
key = "<leader>dc";
|
||||||
|
action = "function() require('dap').continue() end";
|
||||||
|
lua = true;
|
||||||
|
desc = "DAP Continue";
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
colorscheme = mkOption {
|
||||||
|
description = "Lazy-load on colorscheme.";
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
priority = mkOption {
|
||||||
|
type = nullOr int;
|
||||||
|
description = "Only useful for stat plugins (not lazy-loaded) to force loading certain plugins first.";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
load = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Lua code to override the `vim.g.lz_n.load()` function for a single plugin.
|
||||||
|
|
||||||
|
This will be wrapped in a function
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options.vim.lazy = {
|
||||||
|
enable = mkEnableOption "plugin lazy-loading" // {default = true;};
|
||||||
|
loader = mkOption {
|
||||||
|
description = "Lazy loader to use";
|
||||||
|
type = enum ["lz.n"];
|
||||||
|
default = "lz.n";
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins = mkOption {
|
||||||
|
default = [];
|
||||||
|
type = listOf lznPluginType;
|
||||||
|
description = "list of plugins to lazy load";
|
||||||
|
example = ''
|
||||||
|
[
|
||||||
|
{
|
||||||
|
package = "toggleterm-nvim";
|
||||||
|
setupModule = "toggleterm";
|
||||||
|
setupOpts = cfg.setupOpts;
|
||||||
|
|
||||||
|
after = "require('toggleterm').do_something()";
|
||||||
|
cmd = ["ToggleTerm"];
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (builtins) map mapAttrs filter;
|
inherit (builtins) map mapAttrs filter;
|
||||||
inherit (lib.attrsets) mapAttrsToList;
|
inherit (lib.attrsets) mapAttrsToList;
|
||||||
inherit (lib.strings) concatLines concatMapStringsSep;
|
inherit (lib.strings) concatLines concatMapStringsSep optionalString;
|
||||||
inherit (lib.trivial) showWarnings;
|
inherit (lib.trivial) showWarnings;
|
||||||
inherit (lib.generators) mkLuaInline;
|
inherit (lib.generators) mkLuaInline;
|
||||||
inherit (lib.nvim.dag) entryAfter mkLuarcSection resolveDag entryAnywhere;
|
inherit (lib.nvim.dag) entryAfter mkLuarcSection resolveDag entryAnywhere;
|
||||||
|
@ -55,6 +55,8 @@ in {
|
||||||
pluginConfigs = entryAfter ["optionsScript"] pluginConfigs;
|
pluginConfigs = entryAfter ["optionsScript"] pluginConfigs;
|
||||||
extraPluginConfigs = entryAfter ["pluginConfigs"] extraPluginConfigs;
|
extraPluginConfigs = entryAfter ["pluginConfigs"] extraPluginConfigs;
|
||||||
mappings = entryAfter ["extraPluginConfigs"] keymaps;
|
mappings = entryAfter ["extraPluginConfigs"] keymaps;
|
||||||
|
# FIXME: put this somewhere less stupid
|
||||||
|
footer = entryAfter ["mappings"] (optionalString config.vim.lazy.enable "require('lzn-auto-require').enable()");
|
||||||
};
|
};
|
||||||
|
|
||||||
builtLuaConfigRC = let
|
builtLuaConfigRC = let
|
||||||
|
|
Loading…
Reference in a new issue