mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-10-24 00:27:57 +00:00
Merge branch 'main' into v0.7
This commit is contained in:
commit
141a272747
44 changed files with 702 additions and 649 deletions
|
|
@ -1,10 +1,13 @@
|
|||
inputs: {
|
||||
configuration,
|
||||
pkgs,
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
check ? true,
|
||||
}: {
|
||||
pkgs,
|
||||
extraSpecialArgs ? {},
|
||||
modules ? [],
|
||||
# deprecated
|
||||
extraModules ? [],
|
||||
configuration ? {},
|
||||
}: let
|
||||
inherit (pkgs) vimPlugins;
|
||||
inherit (lib.strings) isString toString;
|
||||
|
|
@ -13,13 +16,25 @@ inputs: {
|
|||
# import modules.nix with `check`, `pkgs` and `lib` as arguments
|
||||
# check can be disabled while calling this file is called
|
||||
# to avoid checking in all modules
|
||||
nvimModules = import ./modules.nix {inherit pkgs check lib;};
|
||||
nvimModules = import ./modules.nix {inherit pkgs lib;};
|
||||
|
||||
# evaluate the extended library with the modules
|
||||
# optionally with any additional modules passed by the user
|
||||
module = lib.evalModules {
|
||||
specialArgs = extraSpecialArgs // {modulesPath = toString ./.;};
|
||||
modules = concatLists [[configuration] nvimModules extraModules];
|
||||
modules = concatLists [
|
||||
nvimModules
|
||||
modules
|
||||
(lib.optional (configuration != {}) (lib.warn ''
|
||||
nvf: passing 'configuration' to lib.neovimConfiguration is deprecated.
|
||||
''
|
||||
configuration))
|
||||
|
||||
(lib.optionals (extraModules != []) (lib.warn ''
|
||||
nvf: passing 'extraModules' to lib.neovimConfiguration is deprecated, use 'modules' instead.
|
||||
''
|
||||
extraModules))
|
||||
];
|
||||
};
|
||||
|
||||
# alias to the internal configuration
|
||||
|
|
|
|||
|
|
@ -7,5 +7,12 @@ in {
|
|||
Tidalcycles language support has been removed as of 2024-06-06 as it was long unmaintained. If
|
||||
you depended on this functionality, please open an issue.
|
||||
'')
|
||||
|
||||
# 2024-07-20
|
||||
(mkRemovedOptionModule ["vim" "lsp" "nvimCodeActionMenu"] ''
|
||||
nvimCodeActionMenu has been deprecated and removed upstream. As of 0.7, fastaction will be
|
||||
available under `vim.ui.fastaction` as a replacement. Simply remove everything under
|
||||
`vim.lsp.nvimCodeActionMenu`, and set `vim.ui.fastaction.enable` to `true`.
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,77 +1,72 @@
|
|||
{
|
||||
check ? true,
|
||||
pkgs,
|
||||
lib,
|
||||
}: let
|
||||
inherit (lib.modules) mkDefault;
|
||||
inherit (lib.lists) concatLists;
|
||||
allModules = let
|
||||
# The core neovim modules.
|
||||
# Contains configuration for core neovim features
|
||||
# such as spellchecking, mappings, and the init script (init.vim).
|
||||
neovim = map (p: "${./neovim}/${p}") [
|
||||
"init"
|
||||
"mappings"
|
||||
];
|
||||
|
||||
# The core neovim modules.
|
||||
# Contains configuration for core neovim features
|
||||
# such as spellchecking, mappings, and the init script (init.vim).
|
||||
neovim = map (p: ./neovim + "/${p}") [
|
||||
"init"
|
||||
"mappings"
|
||||
];
|
||||
# Individual plugin modules, separated by the type of plugin.
|
||||
# While adding a new type, you must make sure your type is
|
||||
# included in the list below.
|
||||
plugins = map (p: "${./plugins}/${p}") [
|
||||
"assistant"
|
||||
"autopairs"
|
||||
"comments"
|
||||
"completion"
|
||||
"dashboard"
|
||||
"debugger"
|
||||
"filetree"
|
||||
"git"
|
||||
"languages"
|
||||
"lsp"
|
||||
"minimap"
|
||||
"notes"
|
||||
"projects"
|
||||
"rich-presence"
|
||||
"session"
|
||||
"snippets"
|
||||
# "spellcheck" # FIXME: see neovim/init/spellcheck.nix
|
||||
"statusline"
|
||||
"tabline"
|
||||
"terminal"
|
||||
"theme"
|
||||
"treesitter"
|
||||
"ui"
|
||||
"utility"
|
||||
"visuals"
|
||||
];
|
||||
|
||||
# Individual plugin modules, separated by the type of plugin.
|
||||
# While adding a new type, you must make sure your type is
|
||||
# included in the list below.
|
||||
plugins = map (p: ./plugins + "/${p}") [
|
||||
"assistant"
|
||||
"autopairs"
|
||||
"comments"
|
||||
"completion"
|
||||
"dashboard"
|
||||
"debugger"
|
||||
"filetree"
|
||||
"git"
|
||||
"languages"
|
||||
"lsp"
|
||||
"minimap"
|
||||
"notes"
|
||||
"projects"
|
||||
"rich-presence"
|
||||
"session"
|
||||
"snippets"
|
||||
# "spellcheck" # FIXME: see neovim/init/spellcheck.nix
|
||||
"statusline"
|
||||
"tabline"
|
||||
"terminal"
|
||||
"theme"
|
||||
"treesitter"
|
||||
"ui"
|
||||
"utility"
|
||||
"visuals"
|
||||
];
|
||||
# The neovim wrapper, used to build a wrapped neovim package
|
||||
# using the configuration passed in `neovim` and `plugins` modules.
|
||||
wrapper = map (p: "${./wrapper}/${p}") [
|
||||
"build"
|
||||
"rc"
|
||||
"warnings"
|
||||
];
|
||||
|
||||
# The neovim wrapper, used to build a wrapped neovim package
|
||||
# using the configuration passed in `neovim` and `plugins` modules.
|
||||
wrapper = map (p: ./wrapper + "/${p}") [
|
||||
"build"
|
||||
"rc"
|
||||
"warnings"
|
||||
];
|
||||
|
||||
# Extra modules, such as deprecation warnings
|
||||
# or renames in one place.
|
||||
extra = map (p: ./extra + "/${p}") [
|
||||
"deprecations.nix"
|
||||
];
|
||||
|
||||
allModules = concatLists [neovim plugins wrapper extra];
|
||||
|
||||
pkgsModule = {config, ...}: {
|
||||
config = {
|
||||
_module = {
|
||||
inherit check;
|
||||
args = {
|
||||
baseModules = allModules;
|
||||
pkgsPath = mkDefault pkgs.path;
|
||||
pkgs = mkDefault pkgs;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# Extra modules, such as deprecation warnings
|
||||
# or renames in one place.
|
||||
extra = map (p: "${./extra}/${p}") [
|
||||
"deprecations.nix"
|
||||
];
|
||||
in
|
||||
concatLists [neovim plugins wrapper extra];
|
||||
in
|
||||
allModules ++ [pkgsModule]
|
||||
allModules
|
||||
++ [
|
||||
{
|
||||
_module.args = {
|
||||
baseModules = allModules;
|
||||
pkgsPath = mkDefault pkgs.path;
|
||||
pkgs = mkDefault pkgs;
|
||||
};
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.options) mkOption literalExpression;
|
||||
inherit (lib.options) mkOption mkEnableOption literalExpression literalMD;
|
||||
inherit (lib.strings) optionalString;
|
||||
inherit (lib.types) enum bool str int;
|
||||
inherit (lib.types) enum bool str int either;
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
inherit (lib.nvim.types) luaInline;
|
||||
|
||||
cfg = config.vim;
|
||||
in {
|
||||
|
|
@ -158,112 +160,138 @@ in {
|
|||
default = "sensitive";
|
||||
description = "Set the case sensitivity of search";
|
||||
};
|
||||
|
||||
undoFile = {
|
||||
enable = mkEnableOption "undofile for persistent undo behaviour";
|
||||
path = mkOption {
|
||||
type = either str luaInline;
|
||||
default = mkLuaInline "vim.fn.stdpath('state') .. '/undo'";
|
||||
defaultText = literalMD ''
|
||||
```nix
|
||||
mkLuaInline "vim.fn.stdpath('state') .. '/undo'"
|
||||
```
|
||||
'';
|
||||
example = literalMD ''
|
||||
```nix
|
||||
mkLuaInline "os.getenv('XDG_DATA_HOME') .. '/nvf/undo'"
|
||||
```
|
||||
'';
|
||||
description = "Path to the directory in which undo history will be stored";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config.vim.luaConfigRC.basic = entryAfter ["globalsScript"] ''
|
||||
-- Settings that are set for everything
|
||||
vim.o.encoding = "utf-8"
|
||||
vim.o.hidden = true
|
||||
vim.opt.shortmess:append("c")
|
||||
vim.o.expandtab = true
|
||||
vim.o.mouse = ${toLuaObject cfg.mouseSupport}
|
||||
vim.o.tabstop = ${toLuaObject cfg.tabWidth}
|
||||
vim.o.shiftwidth = ${toLuaObject cfg.tabWidth}
|
||||
vim.o.softtabstop = ${toLuaObject cfg.tabWidth}
|
||||
vim.o.cmdheight = ${toLuaObject cfg.cmdHeight}
|
||||
vim.o.updatetime = ${toLuaObject cfg.updateTime}
|
||||
vim.o.tm = ${toLuaObject cfg.mapTimeout}
|
||||
vim.o.cursorlineopt = ${toLuaObject cfg.cursorlineOpt}
|
||||
vim.o.scrolloff = ${toLuaObject cfg.scrollOffset}
|
||||
vim.g.mapleader = ${toLuaObject cfg.leaderKey}
|
||||
vim.g.maplocalleader = ${toLuaObject cfg.leaderKey}
|
||||
config = {
|
||||
vim.luaConfigRC.basic = entryAfter ["globalsScript"] ''
|
||||
-- Settings that are set for everything
|
||||
vim.o.encoding = "utf-8"
|
||||
vim.o.hidden = true
|
||||
vim.opt.shortmess:append("c")
|
||||
vim.o.expandtab = true
|
||||
vim.o.mouse = ${toLuaObject cfg.mouseSupport}
|
||||
vim.o.tabstop = ${toLuaObject cfg.tabWidth}
|
||||
vim.o.shiftwidth = ${toLuaObject cfg.tabWidth}
|
||||
vim.o.softtabstop = ${toLuaObject cfg.tabWidth}
|
||||
vim.o.cmdheight = ${toLuaObject cfg.cmdHeight}
|
||||
vim.o.updatetime = ${toLuaObject cfg.updateTime}
|
||||
vim.o.tm = ${toLuaObject cfg.mapTimeout}
|
||||
vim.o.cursorlineopt = ${toLuaObject cfg.cursorlineOpt}
|
||||
vim.o.scrolloff = ${toLuaObject cfg.scrollOffset}
|
||||
vim.g.mapleader = ${toLuaObject cfg.leaderKey}
|
||||
vim.g.maplocalleader = ${toLuaObject cfg.leaderKey}
|
||||
|
||||
${optionalString cfg.splitBelow ''
|
||||
vim.o.splitbelow = true
|
||||
''}
|
||||
${optionalString cfg.undoFile.enable ''
|
||||
vim.o.undofile = true
|
||||
vim.o.undodir = ${toLuaObject cfg.undoFile.path}
|
||||
''}
|
||||
|
||||
${optionalString cfg.splitRight ''
|
||||
vim.o.splitright = true
|
||||
''}
|
||||
${optionalString cfg.splitBelow ''
|
||||
vim.o.splitbelow = true
|
||||
''}
|
||||
|
||||
${optionalString cfg.showSignColumn ''
|
||||
vim.o.signcolumn = "yes"
|
||||
''}
|
||||
${optionalString cfg.splitRight ''
|
||||
vim.o.splitright = true
|
||||
''}
|
||||
|
||||
${optionalString cfg.autoIndent ''
|
||||
vim.o.autoindent = true
|
||||
''}
|
||||
${optionalString cfg.showSignColumn ''
|
||||
vim.o.signcolumn = "yes"
|
||||
''}
|
||||
|
||||
${optionalString cfg.preventJunkFiles ''
|
||||
vim.o.swapfile = false
|
||||
vim.o.backup = false
|
||||
vim.o.writebackup = false
|
||||
''}
|
||||
${optionalString cfg.autoIndent ''
|
||||
vim.o.autoindent = true
|
||||
''}
|
||||
|
||||
${optionalString (cfg.bell == "none") ''
|
||||
vim.o.errorbells = false
|
||||
vim.o.visualbell = false
|
||||
''}
|
||||
${optionalString cfg.preventJunkFiles ''
|
||||
vim.o.swapfile = false
|
||||
vim.o.backup = false
|
||||
vim.o.writebackup = false
|
||||
''}
|
||||
|
||||
${optionalString (cfg.bell == "on") ''
|
||||
vim.o.visualbell = false
|
||||
''}
|
||||
${optionalString (cfg.bell == "none") ''
|
||||
vim.o.errorbells = false
|
||||
vim.o.visualbell = false
|
||||
''}
|
||||
|
||||
${optionalString (cfg.bell == "visual") ''
|
||||
vim.o.errorbells = false
|
||||
''}
|
||||
${optionalString (cfg.bell == "on") ''
|
||||
vim.o.visualbell = false
|
||||
''}
|
||||
|
||||
${optionalString (cfg.lineNumberMode == "relative") ''
|
||||
vim.o.relativenumber = true
|
||||
''}
|
||||
${optionalString (cfg.bell == "visual") ''
|
||||
vim.o.errorbells = false
|
||||
''}
|
||||
|
||||
${optionalString (cfg.lineNumberMode == "number") ''
|
||||
vim.o.number = true
|
||||
''}
|
||||
${optionalString (cfg.lineNumberMode == "relative") ''
|
||||
vim.o.relativenumber = true
|
||||
''}
|
||||
|
||||
${optionalString (cfg.lineNumberMode == "relNumber") ''
|
||||
vim.o.number = true
|
||||
vim.o.relativenumber = true
|
||||
''}
|
||||
${optionalString (cfg.lineNumberMode == "number") ''
|
||||
vim.o.number = true
|
||||
''}
|
||||
|
||||
${optionalString cfg.useSystemClipboard ''
|
||||
vim.opt.clipboard:append("unnamedplus")
|
||||
''}
|
||||
${optionalString (cfg.lineNumberMode == "relNumber") ''
|
||||
vim.o.number = true
|
||||
vim.o.relativenumber = true
|
||||
''}
|
||||
|
||||
${optionalString cfg.syntaxHighlighting ''
|
||||
vim.cmd("syntax on")
|
||||
''}
|
||||
${optionalString cfg.useSystemClipboard ''
|
||||
vim.opt.clipboard:append("unnamedplus")
|
||||
''}
|
||||
|
||||
${optionalString (!cfg.wordWrap) ''
|
||||
vim.o.wrap = false
|
||||
''}
|
||||
${optionalString cfg.syntaxHighlighting ''
|
||||
vim.cmd("syntax on")
|
||||
''}
|
||||
|
||||
${optionalString cfg.hideSearchHighlight ''
|
||||
vim.o.hlsearch = false
|
||||
vim.o.incsearch = true
|
||||
''}
|
||||
${optionalString (!cfg.wordWrap) ''
|
||||
vim.o.wrap = false
|
||||
''}
|
||||
|
||||
${optionalString cfg.colourTerm ''
|
||||
vim.o.termguicolors = true
|
||||
''}
|
||||
${optionalString cfg.hideSearchHighlight ''
|
||||
vim.o.hlsearch = false
|
||||
vim.o.incsearch = true
|
||||
''}
|
||||
|
||||
${optionalString (!cfg.enableEditorconfig) ''
|
||||
vim.g.editorconfig = false
|
||||
''}
|
||||
${optionalString cfg.colourTerm ''
|
||||
vim.o.termguicolors = true
|
||||
''}
|
||||
|
||||
${optionalString (cfg.searchCase == "ignore") ''
|
||||
vim.o.smartcase = false
|
||||
vim.o.ignorecase = true
|
||||
''}
|
||||
${optionalString (!cfg.enableEditorconfig) ''
|
||||
vim.g.editorconfig = false
|
||||
''}
|
||||
|
||||
${optionalString (cfg.searchCase == "smart") ''
|
||||
vim.o.smartcase = true
|
||||
vim.o.ignorecase = true
|
||||
''}
|
||||
${optionalString (cfg.searchCase == "ignore") ''
|
||||
vim.o.smartcase = false
|
||||
vim.o.ignorecase = true
|
||||
''}
|
||||
|
||||
${optionalString (cfg.searchCase == "sensitive") ''
|
||||
vim.o.smartcase = false
|
||||
vim.o.ignorecase = false
|
||||
''}
|
||||
'';
|
||||
${optionalString (cfg.searchCase == "smart") ''
|
||||
vim.o.smartcase = true
|
||||
vim.o.ignorecase = true
|
||||
''}
|
||||
|
||||
${optionalString (cfg.searchCase == "sensitive") ''
|
||||
vim.o.smartcase = false
|
||||
vim.o.ignorecase = false
|
||||
''}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
dapConfig = ''
|
||||
dap.adapters.lldb = {
|
||||
type = 'executable',
|
||||
command = '${cfg.dap.package}/bin/lldb-vscode',
|
||||
command = '${cfg.dap.package}/bin/lldb-dap',
|
||||
name = 'lldb'
|
||||
}
|
||||
dap.configurations.cpp = {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
cfg = config.vim.languages.python;
|
||||
|
||||
defaultServer = "pyright";
|
||||
defaultServer = "basedpyright";
|
||||
servers = {
|
||||
pyright = {
|
||||
package = pkgs.pyright;
|
||||
|
|
@ -30,6 +30,36 @@
|
|||
}
|
||||
'';
|
||||
};
|
||||
|
||||
basedpyright = {
|
||||
package = pkgs.basedpyright;
|
||||
lspConfig = ''
|
||||
lspconfig.basedpyright.setup{
|
||||
capabilities = capabilities;
|
||||
on_attach = default_on_attach;
|
||||
cmd = ${
|
||||
if isList cfg.lsp.package
|
||||
then expToLua cfg.lsp.package
|
||||
else ''{"${cfg.lsp.package}/bin/basedpyright-langserver", "--stdio"}''
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
python-lsp-server = {
|
||||
package = pkgs.python-lsp-server;
|
||||
lspConfig = ''
|
||||
lspconfig.pylsp.setup{
|
||||
capabilities = capabilities;
|
||||
on_attach = default_on_attach;
|
||||
cmd = ${
|
||||
if isList cfg.lsp.package
|
||||
then expToLua cfg.lsp.package
|
||||
else ''{"${cfg.lsp.package}/bin/pylsp"}''
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
defaultFormat = "black";
|
||||
|
|
@ -61,11 +91,12 @@
|
|||
black-and-isort = {
|
||||
package = pkgs.writeShellApplication {
|
||||
name = "black";
|
||||
runtimeInputs = [pkgs.black pkgs.isort];
|
||||
text = ''
|
||||
black --quiet - "$@" | isort --profile black -
|
||||
'';
|
||||
runtimeInputs = [pkgs.black pkgs.isort];
|
||||
};
|
||||
|
||||
nullConfig = ''
|
||||
table.insert(
|
||||
ls_sources,
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ in {
|
|||
dap = {
|
||||
adapter = {
|
||||
type = "executable",
|
||||
command = "${cfg.dap.package}/bin/lldb-vscode",
|
||||
command = "${cfg.dap.package}/bin/lldb-dap",
|
||||
name = "rustacean_lldb",
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@
|
|||
|
||||
cfg = config.vim.languages.ts;
|
||||
|
||||
defaultServer = "tsserver";
|
||||
defaultServer = "ts_ls";
|
||||
servers = {
|
||||
tsserver = {
|
||||
ts_ls = {
|
||||
package = pkgs.typescript-language-server;
|
||||
lspConfig = ''
|
||||
lspconfig.tsserver.setup {
|
||||
lspconfig.ts_ls.setup {
|
||||
capabilities = capabilities;
|
||||
on_attach = attach_keymaps,
|
||||
cmd = ${
|
||||
|
|
@ -49,6 +49,24 @@
|
|||
}
|
||||
'';
|
||||
};
|
||||
|
||||
# Here for backwards compatibility. Still consider tsserver a valid
|
||||
# configuration in the enum, but assert if it's set to *properly*
|
||||
# redirect the user to the correct server.
|
||||
tsserver = {
|
||||
package = pkgs.typescript-language-server;
|
||||
lspConfig = ''
|
||||
lspconfig.ts_ls.setup {
|
||||
capabilities = capabilities;
|
||||
on_attach = attach_keymaps,
|
||||
cmd = ${
|
||||
if isList cfg.lsp.package
|
||||
then expToLua cfg.lsp.package
|
||||
else ''{"${cfg.lsp.package}/bin/typescript-language-server", "--stdio"}''
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: specify packages
|
||||
|
|
@ -65,6 +83,7 @@
|
|||
)
|
||||
'';
|
||||
};
|
||||
|
||||
prettierd = {
|
||||
package = pkgs.prettierd;
|
||||
nullConfig = ''
|
||||
|
|
@ -94,6 +113,7 @@
|
|||
};
|
||||
};
|
||||
in {
|
||||
_file = ./ts.nix;
|
||||
options.vim.languages.ts = {
|
||||
enable = mkEnableOption "Typescript/Javascript language support";
|
||||
|
||||
|
|
@ -190,11 +210,32 @@ in {
|
|||
};
|
||||
})
|
||||
|
||||
# Extensions
|
||||
(mkIf cfg.extensions."ts-error-translator".enable {
|
||||
vim.startPlugins = ["ts-error-translator"];
|
||||
vim.pluginRC.ts-error-translator = entryAnywhere ''
|
||||
require("ts-error-translator").setup(${toLuaObject cfg.extensions.ts-error-translator.setupOpts})
|
||||
'';
|
||||
})
|
||||
|
||||
# Warn the user if they have set the default server name to tsserver to match upstream (us)
|
||||
# The name "tsserver" has been deprecated in lspconfig, and now should be called ts_ls. This
|
||||
# is a purely cosmetic change, but emits a warning if not accounted for.
|
||||
{
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.lsp.enable -> cfg.lsp.server != "tsserver";
|
||||
message = ''
|
||||
As of a recent lspconfig update, he `tsserver` configuration has been renamed
|
||||
to `ts_ls` to match upstream behaviour of `lspconfig`, and the name `tsserver`
|
||||
is no longer considered valid by nvf. Please set `vim.languages.ts.lsp.server`
|
||||
to `"ts_ls"` instead of to `${cfg.lsp.server}`
|
||||
|
||||
Please see <https://github.com/neovim/nvim-lspconfig/pull/3232> for more details
|
||||
about this change.
|
||||
'';
|
||||
}
|
||||
];
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
# lsp plugins
|
||||
./lspsaga
|
||||
./nvim-code-action-menu
|
||||
./trouble
|
||||
./lsp-signature
|
||||
./lightbulb
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
inherit (lib.strings) optionalString;
|
||||
inherit (lib.attrsets) mapAttrs;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
||||
cfg = config.vim.lsp;
|
||||
in {
|
||||
|
|
@ -22,7 +23,7 @@ in {
|
|||
|
||||
${
|
||||
optionalString config.vim.ui.borders.enable ''
|
||||
require('lspconfig.ui.windows').default_options.border = '${config.vim.ui.borders.globalStyle}'
|
||||
require('lspconfig.ui.windows').default_options.border = ${toLuaObject config.vim.ui.borders.globalStyle}
|
||||
''
|
||||
}
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ in {
|
|||
(mkSetLuaBinding mappings.nextDiagnostic "require('lspsaga.diagnostic').navigate('next')")
|
||||
(mkSetLuaBinding mappings.previousDiagnostic "require('lspsaga.diagnostic').navigate('prev')")
|
||||
|
||||
(mkIf (!cfg.nvimCodeActionMenu.enable) (mkSetLuaBinding mappings.codeAction "require('lspsaga.codeaction').code_action"))
|
||||
(mkSetLuaBinding mappings.codeAction "require('lspsaga.codeaction').code_action")
|
||||
(mkIf (!cfg.lspSignature.enable) (mkSetLuaBinding mappings.signatureHelp "require('lspsaga.signaturehelp').signature_help"))
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
inherit (lib.nvim.binds) mkSetBinding addDescriptionsToMappings pushDownDefault;
|
||||
|
||||
cfg = config.vim.lsp;
|
||||
|
||||
self = import ./nvim-code-action-menu.nix {inherit lib;};
|
||||
mappingDefinitions = self.options.vim.lsp.nvimCodeActionMenu.mappings;
|
||||
mappings = addDescriptionsToMappings cfg.nvimCodeActionMenu.mappings mappingDefinitions;
|
||||
in {
|
||||
config = mkIf (cfg.enable && cfg.nvimCodeActionMenu.enable) {
|
||||
vim = {
|
||||
startPlugins = ["nvim-code-action-menu"];
|
||||
|
||||
maps.normal = mkSetBinding mappings.open ":CodeActionMenu<CR>";
|
||||
|
||||
binds.whichKey.register = pushDownDefault {
|
||||
"<leader>c" = "+CodeAction";
|
||||
};
|
||||
|
||||
pluginRC.code-action-menu = entryAnywhere ''
|
||||
-- border configuration
|
||||
vim.g.code_action_menu_window_border = '${config.vim.ui.borders.plugins.code-action-menu.style}'
|
||||
|
||||
-- show individual sections of the code action menu
|
||||
${lib.optionalString cfg.nvimCodeActionMenu.show.details "vim.g.code_action_menu_show_details = true"}
|
||||
${lib.optionalString cfg.nvimCodeActionMenu.show.diff "vim.g.code_action_menu_show_diff = true"}
|
||||
${lib.optionalString cfg.nvimCodeActionMenu.show.actionKind "vim.g.code_action_menu_show_action_kind = true"}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.options) mkEnableOption;
|
||||
inherit (lib.nvim.binds) mkMappingOption;
|
||||
in {
|
||||
options.vim.lsp = {
|
||||
nvimCodeActionMenu = {
|
||||
enable = mkEnableOption "nvim code action menu";
|
||||
|
||||
show = {
|
||||
details = mkEnableOption "Show details" // {default = true;};
|
||||
diff = mkEnableOption "Show diff" // {default = true;};
|
||||
actionKind = mkEnableOption "Show action kind" // {default = true;};
|
||||
};
|
||||
|
||||
mappings = {
|
||||
open = mkMappingOption "Open code action menu [nvim-code-action-menu]" "<leader>ca";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
inherit (lib.generators) mkLuaInline;
|
||||
|
||||
cfg = config.vim.statusline.lualine;
|
||||
breadcrumbsCfg = config.vim.ui.breadcrumbs;
|
||||
bCfg = config.vim.ui.breadcrumbs;
|
||||
in {
|
||||
config = mkMerge [
|
||||
# TODO: move into nvim-tree file
|
||||
|
|
@ -20,13 +20,14 @@ in {
|
|||
extensions = ["nvim-tree"];
|
||||
};
|
||||
})
|
||||
(mkIf (breadcrumbsCfg.enable && breadcrumbsCfg.source == "nvim-navic") {
|
||||
|
||||
(mkIf (bCfg.enable && bCfg.lualine.winbar.enable && bCfg.source == "nvim-navic") {
|
||||
vim.statusline.lualine.setupOpts = {
|
||||
# TODO: rewrite in new syntax
|
||||
winbar.lualine_c = mkDefault [
|
||||
[
|
||||
"navic"
|
||||
(mkLuaInline "draw_empty = ${boolToString config.vim.ui.breadcrumbs.alwaysRender}")
|
||||
(mkLuaInline "draw_empty = ${boolToString bCfg.lualine.winbar.alwaysRender}")
|
||||
]
|
||||
];
|
||||
};
|
||||
|
|
@ -34,7 +35,6 @@ in {
|
|||
(mkIf cfg.enable {
|
||||
vim = {
|
||||
startPlugins = ["lualine"];
|
||||
|
||||
pluginRC.lualine = entryAnywhere ''
|
||||
local lualine = require('lualine')
|
||||
lualine.setup ${toLuaObject cfg.setupOpts}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
inherit (lib.attrsets) attrNames;
|
||||
inherit (lib.types) bool lines enum;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (lib.nvim.dag) entryAfter;
|
||||
inherit (lib.nvim.dag) entryBefore;
|
||||
|
||||
cfg = config.vim.theme;
|
||||
supportedThemes = import ./supported-themes.nix {
|
||||
|
|
@ -45,7 +45,7 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
vim = {
|
||||
startPlugins = [cfg.name];
|
||||
luaConfigRC.theme = entryAfter ["basic"] ''
|
||||
luaConfigRC.theme = entryBefore ["pluginConfigs"] ''
|
||||
${cfg.extraConfig}
|
||||
${supportedThemes.${cfg.name}.setup {inherit (cfg) style transparent;}}
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -4,31 +4,34 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.options) mkOption mkEnableOption;
|
||||
inherit (lib.lists) optionals;
|
||||
inherit (lib.types) enum;
|
||||
inherit (lib.nvim.types) borderType;
|
||||
|
||||
cfg = config.vim.ui.borders;
|
||||
|
||||
defaultStyles = ["none" "single" "double" "rounded"];
|
||||
in {
|
||||
options.vim.ui.borders = {
|
||||
enable = mkEnableOption "visible borders for most windows";
|
||||
|
||||
globalStyle = mkOption {
|
||||
type = enum defaultStyles;
|
||||
type = borderType;
|
||||
default = "rounded";
|
||||
description = ''
|
||||
The global border style to use.
|
||||
|
||||
If a list is given, it should have a length of eight or any divisor of
|
||||
eight. The array will specify the eight chars building up the border in
|
||||
a clockwise fashion starting with the top-left corner. You can specify
|
||||
a different highlight group for each character by passing a
|
||||
[char, "YourHighlightGroup"] instead
|
||||
'';
|
||||
example = ["╔" "═" "╗" "║" "╝" "═" "╚" "║"];
|
||||
};
|
||||
|
||||
# TODO: make per-plugin borders configurable
|
||||
plugins = let
|
||||
mkPluginStyleOption = name: {
|
||||
enable = mkEnableOption "borders for the ${name} plugin" // {default = cfg.enable;};
|
||||
|
||||
style = mkOption {
|
||||
type = enum (defaultStyles ++ optionals (name != "which-key") ["shadow"]);
|
||||
type = borderType;
|
||||
default = cfg.globalStyle;
|
||||
description = "The border style to use for the ${name} plugin";
|
||||
};
|
||||
|
|
@ -40,7 +43,7 @@ in {
|
|||
lspsaga = mkPluginStyleOption "lspsaga";
|
||||
nvim-cmp = mkPluginStyleOption "nvim-cmp";
|
||||
lsp-signature = mkPluginStyleOption "lsp-signature";
|
||||
code-action-menu = mkPluginStyleOption "code-actions-menu";
|
||||
fastaction = mkPluginStyleOption "fastaction";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.options) mkOption mkEnableOption;
|
||||
inherit (lib.types) nullOr listOf enum bool str int;
|
||||
inherit (lib.types) nullOr listOf enum bool str int either;
|
||||
inherit (lib.modules) mkRenamedOptionModule;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption borderType;
|
||||
mkSimpleIconOption = default:
|
||||
mkOption {
|
||||
inherit default;
|
||||
|
|
@ -31,6 +31,8 @@ in {
|
|||
(renameSetupOpt ["sourceBuffer" "scrolloff"] ["source_buffer" "scrolloff"])
|
||||
# TODO: every option under icon is renamed to first letter capitalized
|
||||
(renameSetupOpt ["icon"] ["icon"])
|
||||
|
||||
(mkRenamedOptionModule ["vim" "ui" "breadcrumbs" "alwaysRender"] ["vim" "ui" "breadcrumbs" "lualine" "winbar" "alwaysRender"])
|
||||
];
|
||||
|
||||
options.vim.ui.breadcrumbs = {
|
||||
|
|
@ -43,17 +45,43 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
# maybe this should be an option to *disable* alwaysRender optionally but oh well
|
||||
# too late
|
||||
alwaysRender = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = "Whether to always display the breadcrumbs component on winbar (always renders winbar)";
|
||||
# Options for configuring Lualine integration of nvim-navic
|
||||
lualine.winbar = {
|
||||
enable = mkOption {
|
||||
type = bool;
|
||||
default = true; # for retaining previous behaviour
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to automatically configure a winbar component for
|
||||
Lualine on the Winbar section.
|
||||
|
||||
::: {.note}
|
||||
This is **set to `true` by default**, which means nvim-navic
|
||||
will occupy `winbar.lualine_c` for the breadcrumbs feature
|
||||
unless this option is set to `false`.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
alwaysRender = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
example = false;
|
||||
description = ''
|
||||
Whether to always display the breadcrumbs component
|
||||
on winbar.
|
||||
|
||||
::: {.note}
|
||||
This will pass `draw_empty` to the `nvim_navic` winbar
|
||||
component, which causes the component to be drawn even
|
||||
if it's empty
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
navbuddy = {
|
||||
enable = mkEnableOption "navbuddy LSP helper UI. Enabling this option automatically loads and enables nvim-navic";
|
||||
|
||||
mappings = {
|
||||
close = mkOption {
|
||||
type = str;
|
||||
|
|
@ -212,8 +240,7 @@ in {
|
|||
# position = {}
|
||||
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = enum ["single" "rounded" "double" "solid" "none"];
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use";
|
||||
};
|
||||
|
|
@ -236,8 +263,7 @@ in {
|
|||
*/
|
||||
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = nullOr (enum ["single" "rounded" "double" "solid" "none"]);
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use for the left section of Navbuddy UI";
|
||||
};
|
||||
|
|
@ -254,8 +280,7 @@ in {
|
|||
*/
|
||||
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = nullOr (enum ["single" "rounded" "double" "solid" "none"]);
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use for the middle section of Navbuddy UI";
|
||||
};
|
||||
|
|
@ -265,8 +290,7 @@ in {
|
|||
# there is no size option for the right section, it fills the remaining space
|
||||
right = {
|
||||
border = mkOption {
|
||||
# TODO: let this type accept a custom string
|
||||
type = nullOr (enum ["single" "rounded" "double" "solid" "none"]);
|
||||
type = borderType;
|
||||
default = config.vim.ui.borders.globalStyle;
|
||||
description = "border style to use for the right section of Navbuddy UI";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,5 +8,6 @@
|
|||
./illuminate
|
||||
./breadcrumbs
|
||||
./borders
|
||||
./fastaction
|
||||
];
|
||||
}
|
||||
|
|
|
|||
24
modules/plugins/ui/fastaction/config.nix
Normal file
24
modules/plugins/ui/fastaction/config.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf mkDefault;
|
||||
inherit (lib.nvim.dag) entryAnywhere;
|
||||
inherit (lib.nvim.lua) toLuaObject;
|
||||
|
||||
cfg = config.vim.ui.fastaction;
|
||||
borderCfg = config.vim.ui.borders.plugins.fastaction;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
vim = {
|
||||
ui.fastaction.setupOpts = {
|
||||
register_ui_select = mkDefault true;
|
||||
popup.border = mkIf borderCfg.enable borderCfg.style;
|
||||
};
|
||||
|
||||
startPlugins = ["fastaction-nvim"];
|
||||
pluginRC.fastaction = entryAnywhere "require('fastaction').setup(${toLuaObject cfg.setupOpts})";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./nvim-code-action-menu.nix
|
||||
./fastaction-nvim.nix
|
||||
./config.nix
|
||||
];
|
||||
}
|
||||
9
modules/plugins/ui/fastaction/fastaction-nvim.nix
Normal file
9
modules/plugins/ui/fastaction/fastaction-nvim.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.options) mkEnableOption;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption;
|
||||
in {
|
||||
options.vim.ui.fastaction = {
|
||||
enable = mkEnableOption "overriding vim.ui.select with fastaction.nvim";
|
||||
setupOpts = mkPluginSetupOption "fastaction" {};
|
||||
};
|
||||
}
|
||||
|
|
@ -25,7 +25,7 @@ in {
|
|||
|
||||
${optionalString config.vim.ui.borders.plugins.which-key.enable ''
|
||||
window = {
|
||||
border = "${config.vim.ui.borders.plugins.which-key.style}",
|
||||
border = ${toLuaObject config.vim.ui.borders.plugins.which-key.style},
|
||||
},
|
||||
''}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -17,75 +17,78 @@
|
|||
mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
vim.startPlugins = [
|
||||
"telescope"
|
||||
"plenary-nvim"
|
||||
];
|
||||
vim = {
|
||||
startPlugins = [
|
||||
"telescope"
|
||||
"plenary-nvim"
|
||||
];
|
||||
|
||||
vim.maps.normal = mkMerge [
|
||||
(mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
|
||||
(mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
|
||||
(mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>")
|
||||
(mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
|
||||
(mkSetBinding mappings.open "<cmd> Telescope<CR>")
|
||||
maps.normal = mkMerge [
|
||||
(mkSetBinding mappings.findFiles "<cmd> Telescope find_files<CR>")
|
||||
(mkSetBinding mappings.liveGrep "<cmd> Telescope live_grep<CR>")
|
||||
(mkSetBinding mappings.buffers "<cmd> Telescope buffers<CR>")
|
||||
(mkSetBinding mappings.helpTags "<cmd> Telescope help_tags<CR>")
|
||||
(mkSetBinding mappings.open "<cmd> Telescope<CR>")
|
||||
(mkSetBinding mappings.resume "<cmd> Telescope resume<CR>")
|
||||
|
||||
(mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
|
||||
(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>")
|
||||
(mkSetBinding mappings.gitCommits "<cmd> Telescope git_commits<CR>")
|
||||
(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 [
|
||||
(mkSetBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
|
||||
(mkSetBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
|
||||
(mkIf config.vim.lsp.enable (mkMerge [
|
||||
(mkSetBinding mappings.lspDocumentSymbols "<cmd> Telescope lsp_document_symbols<CR>")
|
||||
(mkSetBinding mappings.lspWorkspaceSymbols "<cmd> Telescope lsp_workspace_symbols<CR>")
|
||||
|
||||
(mkSetBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
|
||||
(mkSetBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
|
||||
(mkSetBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
|
||||
(mkSetBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
|
||||
(mkSetBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
|
||||
]))
|
||||
(mkSetBinding mappings.lspReferences "<cmd> Telescope lsp_references<CR>")
|
||||
(mkSetBinding mappings.lspImplementations "<cmd> Telescope lsp_implementations<CR>")
|
||||
(mkSetBinding mappings.lspDefinitions "<cmd> Telescope lsp_definitions<CR>")
|
||||
(mkSetBinding mappings.lspTypeDefinitions "<cmd> Telescope lsp_type_definitions<CR>")
|
||||
(mkSetBinding mappings.diagnostics "<cmd> Telescope diagnostics<CR>")
|
||||
]))
|
||||
|
||||
(
|
||||
mkIf config.vim.treesitter.enable
|
||||
(mkSetBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
|
||||
)
|
||||
(
|
||||
mkIf config.vim.treesitter.enable
|
||||
(mkSetBinding mappings.treesitter "<cmd> Telescope treesitter<CR>")
|
||||
)
|
||||
|
||||
(
|
||||
mkIf config.vim.projects.project-nvim.enable
|
||||
(mkSetBinding mappings.findProjects "<cmd Telescope projects<CR>")
|
||||
)
|
||||
];
|
||||
(
|
||||
mkIf config.vim.projects.project-nvim.enable
|
||||
(mkSetBinding mappings.findProjects "<cmd> Telescope projects<CR>")
|
||||
)
|
||||
];
|
||||
|
||||
vim.binds.whichKey.register = pushDownDefault {
|
||||
"<leader>f" = "+Telescope";
|
||||
"<leader>fl" = "Telescope LSP";
|
||||
"<leader>fm" = "Cellular Automaton";
|
||||
"<leader>fv" = "Telescope Git";
|
||||
"<leader>fvc" = "Commits";
|
||||
binds.whichKey.register = pushDownDefault {
|
||||
"<leader>f" = "+Telescope";
|
||||
"<leader>fl" = "Telescope LSP";
|
||||
"<leader>fm" = "Cellular Automaton";
|
||||
"<leader>fv" = "Telescope Git";
|
||||
"<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 ""
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
vim.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 ""
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,13 +150,13 @@
|
|||
in {
|
||||
options.vim.telescope = {
|
||||
mappings = {
|
||||
findProjects = mkMappingOption "Find files [Telescope]" "<leader>fp";
|
||||
|
||||
findProjects = mkMappingOption "Find projects [Telescope]" "<leader>fp";
|
||||
findFiles = mkMappingOption "Find files [Telescope]" "<leader>ff";
|
||||
liveGrep = mkMappingOption "Live grep [Telescope]" "<leader>fg";
|
||||
buffers = mkMappingOption "Buffers [Telescope]" "<leader>fb";
|
||||
helpTags = mkMappingOption "Help tags [Telescope]" "<leader>fh";
|
||||
open = mkMappingOption "Open [Telescope]" "<leader>ft";
|
||||
resume = mkMappingOption "Resume (previous search) [Telescope]" "<leader>fr";
|
||||
|
||||
gitCommits = mkMappingOption "Git commits [Telescope]" "<leader>fvcw";
|
||||
gitBufferCommits = mkMappingOption "Git buffer commits [Telescope]" "<leader>fvcb";
|
||||
|
|
|
|||
|
|
@ -45,8 +45,6 @@ in {
|
|||
'noice',
|
||||
'NvimTree',
|
||||
'alpha',
|
||||
'code-action-menu-menu',
|
||||
'code-action-menu-warning-message',
|
||||
'notify',
|
||||
'Navbuddy'
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
inherit (lib.options) mkEnableOption mkOption literalExpression;
|
||||
inherit (lib.strings) toUpper;
|
||||
inherit (lib.types) int float bool str enum listOf attrsOf oneOf nullOr submodule;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption luaInline;
|
||||
inherit (lib.nvim.types) mkPluginSetupOption luaInline borderType;
|
||||
inherit (lib.generators) mkLuaInline;
|
||||
in {
|
||||
imports = [
|
||||
|
|
@ -453,7 +453,7 @@ in {
|
|||
};
|
||||
border = mkOption {
|
||||
description = "Border style of the notification window";
|
||||
type = enum ["none" "single" "double" "rounded" "solid" "shadow"];
|
||||
type = borderType;
|
||||
default =
|
||||
if config.vim.ui.borders.enable
|
||||
then config.vim.ui.borders.globalStyle
|
||||
|
|
|
|||
|
|
@ -78,8 +78,8 @@ in {
|
|||
vim = {
|
||||
luaConfigRC = {
|
||||
globalsScript = entryAnywhere (concatLines globalsScript);
|
||||
# basic, theme
|
||||
pluginConfigs = entryAfter ["theme"] pluginConfigs;
|
||||
# basic
|
||||
pluginConfigs = entryAfter ["basic"] pluginConfigs;
|
||||
extraPluginConfigs = entryAfter ["pluginConfigs"] extraPluginConfigs;
|
||||
mappings = entryAfter ["extraPluginConfigs"] keymaps;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue