diff --git a/docs/default.nix b/docs/default.nix index bf7bb65b..ae65ba1f 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -40,6 +40,8 @@ let pkgs = pkgsDoc; }; + inherit (helpers.modules) specialArgs; + nixvimPath = toString ./..; gitHubDeclaration = user: repo: branch: subpath: { @@ -75,16 +77,7 @@ let options-json = (pkgsDoc.nixosOptionsDoc { - inherit - (lib.evalModules { - inherit modules; - specialArgs = { - inherit helpers; - defaultPkgs = pkgsDoc; - }; - }) - options - ; + inherit (lib.evalModules { inherit modules specialArgs; }) options; inherit transformOptions; warningsAreErrors = false; }).optionsJSON; @@ -113,10 +106,10 @@ in # > sandbox-exec: pattern serialization length 69298 exceeds maximum (65535) docs = pkgsDoc.callPackage ./mdbook { inherit - helpers modules hmOptions transformOptions + specialArgs ; # TODO: Find how to handle stable when 24.11 lands search = mkSearch "/nixvim/search/"; diff --git a/docs/mdbook/default.nix b/docs/mdbook/default.nix index 1f8d4742..10234c47 100644 --- a/docs/mdbook/default.nix +++ b/docs/mdbook/default.nix @@ -2,21 +2,15 @@ pkgs, lib, modules, - helpers, nixosOptionsDoc, transformOptions, hmOptions, search, + specialArgs, }: with lib; let - options = lib.evalModules { - inherit modules; - specialArgs = { - inherit helpers; - defaultPkgs = pkgs; - }; - }; + options = lib.evalModules { inherit modules specialArgs; }; inherit (options.config.meta) nixvimInfo; diff --git a/lib/helpers.nix b/lib/helpers.nix index 559da4db..5e35ad67 100644 --- a/lib/helpers.nix +++ b/lib/helpers.nix @@ -20,6 +20,7 @@ let extendedLib = call ./extend-lib.nix { inherit lib; }; keymaps = call ./keymap-helpers.nix { }; lua = call ./to-lua.nix { }; + modules = call ./modules.nix { }; neovim-plugin = call ./neovim-plugin.nix { }; nixvimTypes = call ./types.nix { }; options = call ./options.nix { }; diff --git a/lib/modules.nix b/lib/modules.nix new file mode 100644 index 00000000..eedbdca9 --- /dev/null +++ b/lib/modules.nix @@ -0,0 +1,19 @@ +{ + pkgs, + lib, + helpers, +}: +rec { + # Minimal specialArgs required to evaluate nixvim modules + specialArgs = specialArgsWith { }; + + # Build specialArgs for evaluating nixvim modules + specialArgsWith = + extraSpecialArgs: + { + # TODO: deprecate `helpers` + inherit lib helpers; + defaultPkgs = pkgs; + } + // extraSpecialArgs; +} diff --git a/modules/top-level/files/default.nix b/modules/top-level/files/default.nix index d23c2726..7bdcfac1 100644 --- a/modules/top-level/files/default.nix +++ b/modules/top-level/files/default.nix @@ -3,7 +3,7 @@ config, options, lib, - helpers, + specialArgs, ... }: let @@ -11,10 +11,7 @@ let fileModuleType = types.submoduleWith { shorthandOnlyDefinesConfig = true; - specialArgs = { - inherit helpers; - defaultPkgs = pkgs; - }; + inherit specialArgs; # Don't include the modules in the docs, as that'd be redundant modules = lib.optionals (!config.isDocs) [ ../../. diff --git a/wrappers/darwin.nix b/wrappers/darwin.nix index 0bcfa20b..e9498a8e 100644 --- a/wrappers/darwin.nix +++ b/wrappers/darwin.nix @@ -23,12 +23,7 @@ in default = { }; type = types.submoduleWith { shorthandOnlyDefinesConfig = true; - specialArgs = { - darwinConfig = config; - defaultPkgs = pkgs; - helpers = config.lib.nixvim; - lib = config.lib.nixvim.extendedLib; - }; + specialArgs = config.lib.nixvim.modules.specialArgsWith { darwinConfig = config; }; modules = [ ./modules/darwin.nix ../modules/top-level diff --git a/wrappers/hm.nix b/wrappers/hm.nix index 4cc29345..32d2cbc5 100644 --- a/wrappers/hm.nix +++ b/wrappers/hm.nix @@ -22,12 +22,7 @@ in default = { }; type = types.submoduleWith { shorthandOnlyDefinesConfig = true; - specialArgs = { - hmConfig = config; - defaultPkgs = pkgs; - helpers = config.lib.nixvim; - lib = config.lib.nixvim.extendedLib; - }; + specialArgs = config.lib.nixvim.modules.specialArgsWith { hmConfig = config; }; modules = [ ./modules/hm.nix ../modules/top-level diff --git a/wrappers/nixos.nix b/wrappers/nixos.nix index 07816db6..83a51aa1 100644 --- a/wrappers/nixos.nix +++ b/wrappers/nixos.nix @@ -23,12 +23,7 @@ in default = { }; type = types.submoduleWith { shorthandOnlyDefinesConfig = true; - specialArgs = { - nixosConfig = config; - defaultPkgs = pkgs; - helpers = config.lib.nixvim; - lib = config.lib.nixvim.extendedLib; - }; + specialArgs = config.lib.nixvim.modules.specialArgsWith { nixosConfig = config; }; modules = [ ./modules/nixos.nix ../modules/top-level diff --git a/wrappers/standalone.nix b/wrappers/standalone.nix index d37c8a61..16cc2e80 100644 --- a/wrappers/standalone.nix +++ b/wrappers/standalone.nix @@ -1,15 +1,16 @@ default_pkgs: self: { pkgs ? default_pkgs, + lib ? pkgs.lib, extraSpecialArgs ? { }, _nixvimTests ? false, module, }: let - inherit (pkgs) lib; - helpers = import ../lib/helpers.nix { inherit pkgs lib _nixvimTests; }; + inherit (helpers.modules) specialArgsWith; + handleAssertions = config: let @@ -29,11 +30,7 @@ let ./modules/standalone.nix ../modules/top-level ]; - specialArgs = { - inherit helpers; - lib = helpers.extendedLib; - defaultPkgs = pkgs; - } // extraSpecialArgs; + specialArgs = specialArgsWith extraSpecialArgs; }; config = handleAssertions evaledModule.config; in