nvimConfig/modules/neovim.nix

55 lines
1.3 KiB
Nix

inputs:
{
config,
wlib,
lib,
pkgs,
...
}:
{
imports = [
wlib.wrapperModules.neovim
./module/settings/cat-packages.nix
./module/specs/deps.nix
./module/specs/plugins.nix
./module/settings/core.nix
./module/settings/cats.nix
./module/settings/env.nix
./module/settings/hosts.nix
./module/settings/lang-packages.nix
];
options.nvim-lib.neovimPlugins = lib.mkOption {
readOnly = true;
type = lib.types.attrsOf wlib.types.stringable;
default = config.nvim-lib.pluginsFromPrefix "plugins-" inputs;
};
options.nvim-lib.pluginsFromPrefix = lib.mkOption {
type = lib.types.raw;
readOnly = true;
default =
prefix: inputs:
lib.pipe inputs [
builtins.attrNames
(builtins.filter (s: lib.hasPrefix prefix s))
(map (
input:
let
name = lib.removePrefix prefix input;
in
{
inherit name;
value = config.nvim-lib.mkPlugin name inputs.${input};
}
))
builtins.listToAttrs
];
};
config.settings.cats = config.cats;
config.info.cats = config.cats;
config.info.nixCats_config_location = config.settings.config_directory;
config.info.nixCats_wrapRc = config.settings.wrapRc or false;
config.info.nixCats_configDirName = "nvim";
}