nvf/modules/projects/project-nvim/project-nvim.nix
2023-06-06 02:25:10 +03:00

63 lines
1.7 KiB
Nix

{
config,
lib,
...
}:
with lib;
with builtins; {
options.vim.projects.project-nvim = {
enable = mkEnableOption "Enable project-nvim for project management";
manualMode = mkOption {
type = types.bool;
default = true;
description = "don't automatically change the root directory so the user has the option to manually do so using `:ProjectRoot` command";
};
# detection methods should accept one or more strings from a list
detectionMethods = mkOption {
type = types.listOf types.str;
default = ["lsp" "pattern"];
description = "Detection methods to use";
};
# patterns
patterns = mkOption {
type = types.listOf types.str;
default = [".git" "_darcs" ".hg" ".bzr" ".svn" "Makefile" "package.json" "flake.nix" "cargo.toml"];
description = "Patterns to use for pattern detection method";
};
# table of lsp servers to ignore by name
lspIgnored = mkOption {
type = types.listOf types.str;
default = [];
description = "LSP servers no ignore by name";
};
excludeDirs = mkOption {
type = types.listOf types.str;
default = [];
description = "Directories to exclude from project root search";
};
showHidden = mkOption {
type = types.bool;
default = false;
description = "Show hidden files in telescope picker";
};
silentChdir = mkOption {
type = types.bool;
default = true;
description = "Silently change directory when changing project";
};
scopeChdir = mkOption {
type = types.enum ["global" "tab" "win"];
default = "global";
description = "What scope to change the directory";
};
};
}