modules/projects: switch to explicit lib calls

This commit is contained in:
NotAShelf 2024-03-12 03:48:38 +03:00
parent 03025f76e1
commit b54032f3f3
No known key found for this signature in database
GPG key ID: 02D1DD3FA08B6B29
4 changed files with 18 additions and 18 deletions

View file

@ -1,4 +1,4 @@
_: {
{
imports = [
./project-nvim
];

View file

@ -3,7 +3,10 @@
lib,
...
}: let
inherit (lib) mkIf nvim boolToString concatStringsSep;
inherit (lib.modules) mkIf;
inherit (lib.trivial) boolToString;
inherit (lib.strings) concatStringsSep;
inherit (lib.nvim.dag) entryAnywhere;
cfg = config.vim.projects.project-nvim;
in {
@ -12,7 +15,7 @@ in {
"project-nvim"
];
vim.luaConfigRC.project-nvim = nvim.dag.entryAnywhere ''
vim.luaConfigRC.project-nvim = entryAnywhere ''
require('project_nvim').setup({
manual_mode = ${boolToString cfg.manualMode},
detection_methods = { ${concatStringsSep ", " (map (x: "\"" + x + "\"") cfg.detectionMethods)} },

View file

@ -1,4 +1,4 @@
_: {
{
imports = [
./config.nix
./project-nvim.nix

View file

@ -1,60 +1,57 @@
{
config,
lib,
...
}: let
inherit (lib) mkEnableOption mkOption types;
{lib, ...}: let
inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) enum bool listOf str;
in {
options.vim.projects.project-nvim = {
enable = mkEnableOption "project-nvim for project management";
manualMode = mkOption {
type = types.bool;
type = 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;
type = listOf str;
default = ["lsp" "pattern"];
description = "Detection methods to use";
};
# patterns
patterns = mkOption {
type = types.listOf types.str;
type = listOf 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;
type = listOf str;
default = [];
description = "LSP servers no ignore by name";
};
excludeDirs = mkOption {
type = types.listOf types.str;
type = listOf str;
default = [];
description = "Directories to exclude from project root search";
};
showHidden = mkOption {
type = types.bool;
type = bool;
default = false;
description = "Show hidden files in telescope picker";
};
silentChdir = mkOption {
type = types.bool;
type = bool;
default = true;
description = "Silently change directory when changing project";
};
scopeChdir = mkOption {
type = types.enum ["global" "tab" "win"];
type = enum ["global" "tab" "win"];
default = "global";
description = "What scope to change the directory";
};