mirror of
https://github.com/NotAShelf/neovim-flake.git
synced 2024-12-22 13:09:49 +01:00
63 lines
1.7 KiB
Nix
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";
|
||
|
};
|
||
|
};
|
||
|
}
|