mirror of
https://github.com/dwinkler1/nvimConfig.git
synced 2026-08-22 17:43:13 -04:00
209 lines
4.2 KiB
Nix
209 lines
4.2 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
parserList = [
|
|
"bash"
|
|
"bibtex"
|
|
"c"
|
|
"cpp"
|
|
"csv"
|
|
"diff"
|
|
"dockerfile"
|
|
"git_config"
|
|
"git_rebase"
|
|
"gitattributes"
|
|
"gitcommit"
|
|
"gitignore"
|
|
"html"
|
|
"javascript"
|
|
"json"
|
|
"julia"
|
|
"latex"
|
|
"lua"
|
|
"luadoc"
|
|
"make"
|
|
"markdown"
|
|
"markdown_inline"
|
|
"matlab"
|
|
"nix"
|
|
"python"
|
|
"query"
|
|
"r"
|
|
"rnoweb"
|
|
"regex"
|
|
"sql"
|
|
"toml"
|
|
"vim"
|
|
"vimdoc"
|
|
"xml"
|
|
"yaml"
|
|
"zig"
|
|
];
|
|
in {
|
|
options.settings.treesitter_parsers = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
default = parserList;
|
|
description = "Tree-sitter parser names to install when the treesitterParsers category is enabled.";
|
|
};
|
|
|
|
config.specs.gitPlugins = lib.mkIf (config.cats.gitPlugins or false) {
|
|
data = [];
|
|
};
|
|
|
|
config.specs.r = lib.mkIf (config.cats.r or false) {
|
|
data = with pkgs.vimPlugins; [
|
|
pkgs.r-nvim
|
|
quarto-nvim
|
|
{
|
|
data = otter-nvim;
|
|
pname = "otter";
|
|
}
|
|
];
|
|
};
|
|
|
|
config.specs.markdown-lazy = lib.mkIf (config.cats.markdown or false) {
|
|
lazy = true;
|
|
data = [
|
|
config.nvim-lib.neovimPlugins.cmp-pandoc-references
|
|
pkgs.vimPlugins.image-nvim
|
|
];
|
|
};
|
|
|
|
config.specs.general = lib.mkIf (config.cats.general or false) {
|
|
data = with pkgs.vimPlugins; [
|
|
lze
|
|
lzextras
|
|
plenary-nvim
|
|
vimtex
|
|
neogit
|
|
{
|
|
data = mini-nvim;
|
|
pname = "mini.nvim";
|
|
}
|
|
{
|
|
data = cyberdream-nvim;
|
|
pname = "cyberdream";
|
|
}
|
|
{
|
|
data = onedark-nvim;
|
|
pname = "onedark";
|
|
}
|
|
{
|
|
data = tokyonight-nvim;
|
|
pname = "tokyonight";
|
|
}
|
|
{
|
|
data = kanagawa-nvim;
|
|
pname = "kanagawa";
|
|
}
|
|
{
|
|
data = gruvbox-nvim;
|
|
pname = "gruvbox";
|
|
}
|
|
{
|
|
data = nord-nvim;
|
|
pname = "nord";
|
|
}
|
|
{
|
|
data = dracula-nvim;
|
|
pname = "dracula";
|
|
}
|
|
{
|
|
data = vscode-nvim;
|
|
pname = "vscode";
|
|
}
|
|
{
|
|
data = nightfox-nvim;
|
|
pname = "nightfox";
|
|
}
|
|
{
|
|
data = catppuccin-nvim;
|
|
pname = "catppuccin";
|
|
}
|
|
];
|
|
};
|
|
|
|
config.specs.lua = lib.mkIf (config.cats.lua or false) {
|
|
data = with pkgs.vimPlugins; [
|
|
luvit-meta
|
|
{
|
|
data = lazydev-nvim;
|
|
pname = "lazydev";
|
|
}
|
|
];
|
|
};
|
|
|
|
config.specs.markdown = lib.mkIf (config.cats.markdown or false) {
|
|
data = with pkgs.vimPlugins; [
|
|
quarto-nvim
|
|
render-markdown-nvim
|
|
{
|
|
data = otter-nvim;
|
|
pname = "otter";
|
|
}
|
|
{
|
|
data = zk-nvim;
|
|
pname = "zk";
|
|
}
|
|
];
|
|
};
|
|
|
|
config.specs.utils = lib.mkIf (config.cats.utils or false) {
|
|
data = with pkgs.vimPlugins; [
|
|
blink-cmp
|
|
nvim-lspconfig
|
|
nvim-treesitter-context
|
|
nvim-treesitter-textobjects
|
|
{
|
|
data = pkgs.vimPlugins.nvim-treesitter;
|
|
pname = "nvim-treesitter";
|
|
}
|
|
{
|
|
data = pkgs.codecompanion-nvim.overrideAttrs (old: {
|
|
doCheck = false;
|
|
});
|
|
pname = "codecompanion";
|
|
}
|
|
] ++ builtins.attrValues pkgs.vimPlugins.nvim-treesitter.queries;
|
|
};
|
|
|
|
config.specs.treesitterParsers = lib.mkIf (config.cats.treesitterParsers or false) {
|
|
data = map (name: pkgs.vimPlugins.nvim-treesitter-parsers.${name}) config.settings.treesitter_parsers;
|
|
};
|
|
|
|
config.specs.utils-lazy = lib.mkIf (config.cats.utils or false) {
|
|
lazy = true;
|
|
data = with pkgs.vimPlugins; [
|
|
blink-compat
|
|
blink-copilot
|
|
cmp-cmdline
|
|
colorful-menu-nvim
|
|
conform-nvim
|
|
copilot-lua
|
|
nvim-lint
|
|
vim-slime
|
|
];
|
|
};
|
|
|
|
# Lazy-loaded plugins needed when the `r` cat is on. Kept separate from
|
|
# `utils-lazy` so users with `r=true` and `utils=false` still get the
|
|
# nvim-dap R adapter and in-buffer image rendering for plots.
|
|
config.specs.r-lazy = lib.mkIf (config.cats.r or false) {
|
|
lazy = true;
|
|
data = with pkgs.vimPlugins; [
|
|
nvim-dap
|
|
nvim-dap-ui
|
|
nvim-dap-virtual-text
|
|
image-nvim
|
|
];
|
|
};
|
|
|
|
config.specs.gitPlugins-lazy = lib.mkIf (config.cats.gitPlugins or false) {
|
|
lazy = true;
|
|
data = [];
|
|
};
|
|
}
|