mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-26 15:06:45 +00:00
Compare commits
3 commits
720459055a
...
db6ca055a4
Author | SHA1 | Date | |
---|---|---|---|
|
db6ca055a4 | ||
|
0b2fa2e38a | ||
|
929f6ca3bc |
7 changed files with 76 additions and 86 deletions
|
@ -79,14 +79,14 @@
|
||||||
expr = true;
|
expr = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkSetLznBinding = mode: binding: action: {
|
mkSetLznBinding = binding: action: {
|
||||||
inherit action mode;
|
inherit action;
|
||||||
key = binding.value;
|
key = binding.value;
|
||||||
desc = binding.description;
|
desc = binding.description;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkSetLuaLznBinding = mode: binding: action: {
|
mkSetLuaLznBinding = binding: action: {
|
||||||
inherit action mode;
|
inherit action;
|
||||||
key = binding.value;
|
key = binding.value;
|
||||||
lua = true;
|
lua = true;
|
||||||
desc = binding.description;
|
desc = binding.description;
|
||||||
|
|
|
@ -60,7 +60,7 @@ in {
|
||||||
inherit (cfg.ui) setupOpts;
|
inherit (cfg.ui) setupOpts;
|
||||||
|
|
||||||
keys = [
|
keys = [
|
||||||
(mkSetLuaLznBinding "n" mappings.toggleDapUI "function() require('dapui').toggle() end")
|
(mkSetLuaLznBinding mappings.toggleDapUI "function() require('dapui').toggle() end")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,12 @@ in {
|
||||||
|
|
||||||
cmd = "Trouble";
|
cmd = "Trouble";
|
||||||
keys = [
|
keys = [
|
||||||
(mkSetLznBinding "n" mappings.toggle "<cmd>TroubleToggle<CR>")
|
(mkSetLznBinding mappings.toggle "<cmd>TroubleToggle<CR>")
|
||||||
(mkSetLznBinding "n" mappings.workspaceDiagnostics "<cmd>TroubleToggle workspace_diagnostics<CR>")
|
(mkSetLznBinding mappings.workspaceDiagnostics "<cmd>TroubleToggle workspace_diagnostics<CR>")
|
||||||
(mkSetLznBinding "n" mappings.documentDiagnostics "<cmd>TroubleToggle document_diagnostics<CR>")
|
(mkSetLznBinding mappings.documentDiagnostics "<cmd>TroubleToggle document_diagnostics<CR>")
|
||||||
(mkSetLznBinding "n" mappings.lspReferences "<cmd>TroubleToggle lsp_references<CR>")
|
(mkSetLznBinding mappings.lspReferences "<cmd>TroubleToggle lsp_references<CR>")
|
||||||
(mkSetLznBinding "n" mappings.quickfix "<cmd>TroubleToggle quickfix<CR>")
|
(mkSetLznBinding mappings.quickfix "<cmd>TroubleToggle quickfix<CR>")
|
||||||
(mkSetLznBinding "n" mappings.locList "<cmd>TroubleToggle loclist<CR>")
|
(mkSetLznBinding mappings.locList "<cmd>TroubleToggle loclist<CR>")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ in {
|
||||||
[(mkLznBinding ["n"] cfg.mappings.open "<Cmd>execute v:count . \"ToggleTerm\"<CR>" "Toggle terminal")]
|
[(mkLznBinding ["n"] cfg.mappings.open "<Cmd>execute v:count . \"ToggleTerm\"<CR>" "Toggle terminal")]
|
||||||
++ optional cfg.lazygit.enable {
|
++ optional cfg.lazygit.enable {
|
||||||
key = cfg.lazygit.mappings.open;
|
key = cfg.lazygit.mappings.open;
|
||||||
mode = "n";
|
|
||||||
desc = lazygitMapDesc;
|
desc = lazygitMapDesc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -34,36 +34,36 @@ in {
|
||||||
|
|
||||||
keys =
|
keys =
|
||||||
[
|
[
|
||||||
(mkSetLznBinding "n" mappings.findFiles "<cmd> Telescope find_files<CR>")
|
(mkSetLznBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
|
||||||
(mkSetLznBinding "n" mappings.liveGrep "<cmd> Telescope live_grep<CR>")
|
(mkSetLznBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
|
||||||
(mkSetLznBinding "n" mappings.buffers "<cmd> Telescope buffers<CR>")
|
(mkSetLznBinding mappings.buffers "<cmd> Telescope buffers<CR>")
|
||||||
(mkSetLznBinding "n" mappings.helpTags "<cmd> Telescope help_tags<CR>")
|
(mkSetLznBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
|
||||||
(mkSetLznBinding "n" mappings.open "<cmd> Telescope<CR>")
|
(mkSetLznBinding mappings.open "<cmd> Telescope<CR>")
|
||||||
|
|
||||||
(mkSetLznBinding "n" mappings.gitCommits "<cmd> Telescope git_commits<CR>")
|
(mkSetLznBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
|
||||||
(mkSetLznBinding "n" mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
|
(mkSetLznBinding mappings.gitBufferCommits "<cmd> Telescope git_bcommits<CR>")
|
||||||
(mkSetLznBinding "n" mappings.gitBranches "<cmd> Telescope git_branches<CR>")
|
(mkSetLznBinding mappings.gitBranches "<cmd> Telescope git_branches<CR>")
|
||||||
(mkSetLznBinding "n" mappings.gitStatus "<cmd> Telescope git_status<CR>")
|
(mkSetLznBinding mappings.gitStatus "<cmd> Telescope git_status<CR>")
|
||||||
(mkSetLznBinding "n" mappings.gitStash "<cmd> Telescope git_stash<CR>")
|
(mkSetLznBinding mappings.gitStash "<cmd> Telescope git_stash<CR>")
|
||||||
]
|
]
|
||||||
++ (optionals config.vim.lsp.enable [
|
++ (optionals config.vim.lsp.enable [
|
||||||
(mkSetLznBinding "n" mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
|
(mkSetLznBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
|
||||||
(mkSetLznBinding "n" mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
|
(mkSetLznBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
|
||||||
|
|
||||||
(mkSetLznBinding "n" mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
|
(mkSetLznBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
|
||||||
(mkSetLznBinding "n" mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
|
(mkSetLznBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
|
||||||
(mkSetLznBinding "n" mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
|
(mkSetLznBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
|
||||||
(mkSetLznBinding "n" mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
|
(mkSetLznBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
|
||||||
(mkSetLznBinding "n" mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
|
(mkSetLznBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
|
||||||
])
|
])
|
||||||
++ (
|
++ (
|
||||||
optionals config.vim.treesitter.enable [
|
optionals config.vim.treesitter.enable [
|
||||||
(mkSetLznBinding "n" mappings.treesitter "<cmd> Telescope treesitter<CR>")
|
(mkSetLznBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
++ (
|
++ (
|
||||||
optionals config.vim.projects.project-nvim.enable [
|
optionals config.vim.projects.project-nvim.enable [
|
||||||
(mkSetLznBinding "n" mappings.findProjects "<cmd Telescope projects<CR>")
|
(mkSetLznBinding mappings.findProjects "<cmd Telescope projects<CR>")
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
inherit (lib.generators) mkLuaInline;
|
inherit (lib.generators) mkLuaInline;
|
||||||
inherit (lib.strings) optionalString;
|
inherit (lib.strings) optionalString;
|
||||||
inherit (lib.nvim.lua) toLuaObject;
|
inherit (lib.nvim.lua) toLuaObject;
|
||||||
|
inherit (lib.nvim.dag) entryBefore entryAfter;
|
||||||
cfg = config.vim.lazy;
|
cfg = config.vim.lazy;
|
||||||
|
|
||||||
toLuaLznKeySpec = keySpec:
|
toLuaLznKeySpec = keySpec:
|
||||||
|
@ -49,16 +50,6 @@
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
|
|
||||||
load =
|
|
||||||
if spec.load != null
|
|
||||||
then
|
|
||||||
mkLuaInline ''
|
|
||||||
funcion()
|
|
||||||
${spec.load}
|
|
||||||
end
|
|
||||||
''
|
|
||||||
else null;
|
|
||||||
|
|
||||||
keys =
|
keys =
|
||||||
if typeOf spec.keys == "list" && length spec.keys > 0 && typeOf (head spec.keys) == "set"
|
if typeOf spec.keys == "list" && length spec.keys > 0 && typeOf (head spec.keys) == "set"
|
||||||
then map toLuaLznKeySpec (filter (keySpec: keySpec.key != null) spec.keys)
|
then map toLuaLznKeySpec (filter (keySpec: keySpec.key != null) spec.keys)
|
||||||
|
|
|
@ -22,21 +22,20 @@
|
||||||
'';
|
'';
|
||||||
|
|
||||||
desc = mkOption {
|
desc = mkOption {
|
||||||
|
description = "Description of the key map";
|
||||||
type = nullOr str;
|
type = nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Description of the key map";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ft = mkOption {
|
ft = mkOption {
|
||||||
|
description = "TBD";
|
||||||
type = nullOr (listOf str);
|
type = nullOr (listOf str);
|
||||||
default = null;
|
default = null;
|
||||||
description = "TBD";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mode = mkOption {
|
mode = mkOption {
|
||||||
type = either str (listOf str);
|
|
||||||
example = ["n" "x" "o"];
|
|
||||||
description = "Modes to bind in";
|
description = "Modes to bind in";
|
||||||
|
type = either str (listOf str);
|
||||||
};
|
};
|
||||||
|
|
||||||
silent = mkBool true "Whether this mapping should be silent. Equivalent to adding <silent> to a map.";
|
silent = mkBool true "Whether this mapping should be silent. Equivalent to adding <silent> to a map.";
|
||||||
|
@ -48,21 +47,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
lznEvent = submodule {
|
|
||||||
options = {
|
|
||||||
event = mkOption {
|
|
||||||
type = nullOr (either str (listOf str));
|
|
||||||
example = "BufEnter";
|
|
||||||
description = "Exact event name";
|
|
||||||
};
|
|
||||||
pattern = mkOption {
|
|
||||||
type = nullOr (either str (listOf str));
|
|
||||||
example = "BufEnter *.lua";
|
|
||||||
description = "Event pattern";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lznPluginType = submodule {
|
lznPluginType = submodule {
|
||||||
options = {
|
options = {
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
|
@ -72,67 +56,84 @@
|
||||||
|
|
||||||
setupModule = mkOption {
|
setupModule = mkOption {
|
||||||
type = nullOr str;
|
type = nullOr str;
|
||||||
default = null;
|
|
||||||
description = "Lua module to run setup function on.";
|
description = "Lua module to run setup function on.";
|
||||||
|
default = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
setupOpts = mkOption {
|
setupOpts = mkOption {
|
||||||
type = attrsOf anything;
|
type = attrsOf anything;
|
||||||
default = {};
|
|
||||||
description = "Options to pass to the setup function";
|
description = "Options to pass to the setup function";
|
||||||
|
default = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
# lz.n options
|
# lz.n options
|
||||||
|
|
||||||
enabled = mkOption {
|
enabled = mkOption {
|
||||||
type = nullOr (either bool str);
|
type = nullOr (either bool str);
|
||||||
default = null;
|
|
||||||
description = "When false, or if the lua function returns false, this plugin will not be included in the spec";
|
description = "When false, or if the lua function returns false, this plugin will not be included in the spec";
|
||||||
|
default = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
beforeAll = mkOption {
|
beforeAll = mkOption {
|
||||||
type = nullOr lines;
|
type = nullOr lines;
|
||||||
default = null;
|
|
||||||
description = "Lua code to run before any plugins are loaded. This will be wrapped in a function.";
|
description = "Lua code to run before any plugins are loaded. This will be wrapped in a function.";
|
||||||
|
default = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
before = mkOption {
|
before = mkOption {
|
||||||
type = nullOr lines;
|
type = nullOr lines;
|
||||||
default = null;
|
|
||||||
description = "Lua code to run before plugin is loaded. This will be wrapped in a function.";
|
description = "Lua code to run before plugin is loaded. This will be wrapped in a function.";
|
||||||
|
default = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
after = mkOption {
|
after = mkOption {
|
||||||
type = nullOr lines;
|
type = nullOr lines;
|
||||||
default = null;
|
|
||||||
description = ''
|
description = ''
|
||||||
Lua code to run after plugin is loaded. This will be wrapped in a function.
|
Lua code to run after plugin is loaded. This will be wrapped in a function.
|
||||||
|
|
||||||
If [](#opt-vim.lazy.plugins._name_.setupModule) is provided, the setup will be ran before `after`.
|
If [](#opt-vim.lazy.plugins._name_.setupModule) is provided, the setup will be ran before `after`.
|
||||||
'';
|
'';
|
||||||
|
default = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
event = mkOption {
|
event = mkOption {
|
||||||
type = nullOr (oneOf [str (listOf str) lznEvent]);
|
|
||||||
default = null;
|
|
||||||
description = "Lazy-load on event";
|
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 {
|
cmd = mkOption {
|
||||||
type = nullOr (either str (listOf str));
|
|
||||||
default = null;
|
|
||||||
description = "Lazy-load on command";
|
description = "Lazy-load on command";
|
||||||
|
default = null;
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
};
|
};
|
||||||
|
|
||||||
ft = mkOption {
|
ft = mkOption {
|
||||||
type = nullOr (either str (listOf str));
|
|
||||||
default = null;
|
|
||||||
description = "Lazy-load on filetype";
|
description = "Lazy-load on filetype";
|
||||||
|
default = null;
|
||||||
|
type = nullOr (either str (listOf str));
|
||||||
};
|
};
|
||||||
|
|
||||||
keys = mkOption {
|
keys = mkOption {
|
||||||
type = nullOr (oneOf [str (listOf lznKeysSpec) (listOf str)]);
|
description = "Lazy-load on key mapping";
|
||||||
default = null;
|
default = null;
|
||||||
|
type = nullOr (oneOf [str (listOf lznKeysSpec) (listOf str)]);
|
||||||
example = ''
|
example = ''
|
||||||
keys = [
|
keys = [
|
||||||
{
|
{
|
||||||
|
@ -150,21 +151,20 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
'';
|
'';
|
||||||
description = "Lazy-load on key mapping";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
colorscheme = mkOption {
|
colorscheme = mkOption {
|
||||||
|
description = "Lazy-load on colorscheme.";
|
||||||
type = nullOr (either str (listOf str));
|
type = nullOr (either str (listOf str));
|
||||||
default = null;
|
default = null;
|
||||||
description = "Lazy-load on colorscheme.";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
lazy = mkBool false "Lazy-load manually, e.g. using `trigger_load`.";
|
lazy = mkBool false "Lazy-load manually, e.g. using `trigger_load`.";
|
||||||
|
|
||||||
priority = mkOption {
|
priority = mkOption {
|
||||||
type = nullOr int;
|
type = nullOr int;
|
||||||
default = null;
|
|
||||||
description = "Only useful for stat plugins (not lazy-loaded) to force loading certain plugins first.";
|
description = "Only useful for stat plugins (not lazy-loaded) to force loading certain plugins first.";
|
||||||
|
default = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
load = mkOption {
|
load = mkOption {
|
||||||
|
@ -182,14 +182,20 @@ in {
|
||||||
options.vim.lazy = {
|
options.vim.lazy = {
|
||||||
enable = mkEnableOption "plugin lazy-loading via lz.n and lzn-auto-require" // {default = true;};
|
enable = mkEnableOption "plugin lazy-loading via lz.n and lzn-auto-require" // {default = true;};
|
||||||
loader = mkOption {
|
loader = mkOption {
|
||||||
|
description = "Lazy loader to use";
|
||||||
type = enum ["lz.n"];
|
type = enum ["lz.n"];
|
||||||
default = "lz.n";
|
default = "lz.n";
|
||||||
description = "Lazy loader to use";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
plugins = mkOption {
|
plugins = mkOption {
|
||||||
type = attrsOf lznPluginType;
|
|
||||||
default = {};
|
default = {};
|
||||||
|
type = attrsOf lznPluginType;
|
||||||
|
description = ''
|
||||||
|
Plugins to lazy load.
|
||||||
|
|
||||||
|
The attribute key is used as the plugin name: for the default `vim.g.lz_n.load`
|
||||||
|
function this should be either the `package.pname` or `package.name`.
|
||||||
|
'';
|
||||||
example = ''
|
example = ''
|
||||||
{
|
{
|
||||||
toggleterm-nvim = {
|
toggleterm-nvim = {
|
||||||
|
@ -207,21 +213,15 @@ in {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
|
||||||
Plugins to lazy load.
|
|
||||||
|
|
||||||
The attribute key is used as the plugin name: for the default `vim.g.lz_n.load`
|
|
||||||
function this should be either the `package.pname` or `package.name`.
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enableLznAutoRequire = mkOption {
|
enableLznAutoRequire = mkOption {
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = ''
|
description = ''
|
||||||
Enable lzn-auto-require. Since builtin plugins rely on this, only turn
|
Enable lzn-auto-require. Since builtin plugins rely on this, only turn
|
||||||
off for debugging.
|
off for debugging.
|
||||||
'';
|
'';
|
||||||
|
type = bool;
|
||||||
|
default = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
builtLazyConfig = mkOption {
|
builtLazyConfig = mkOption {
|
||||||
|
|
Loading…
Reference in a new issue