modules/files: don't include modules in the docs

This means we no longer need to spoof the module in the docs implementation.

Instead, we supply the (optional) special arg `isDocs` to `evalModules`.
This commit is contained in:
Matt Sturgeon 2024-07-05 16:39:32 +01:00
parent f5ba05ec82
commit 38d43a740f
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 26 additions and 35 deletions

View file

@ -56,35 +56,7 @@ let
) opt.declarations;
};
nixvmConfigType = lib.mkOptionType {
name = "nixvim-configuration";
description = "nixvim configuration options";
descriptionClass = "noun";
# Evaluation is irrelevant, only used for documentation.
};
# Construct our own top-level modules, because we want to stub the `files` option
# FIXME: add a way to handle this with specialArgs
topLevelModules = [
../modules
../modules/top-level/output.nix
# Fake module to avoid a duplicated documentation
(lib.setDefaultModuleLocation "${nixvimPath}/wrappers/modules/files.nix" {
options.files = lib.mkOption {
type = lib.types.attrsOf nixvmConfigType;
description = "Extra files to add to the runtimepath";
example = {
"ftplugin/nix.lua" = {
options = {
tabstop = 2;
shiftwidth = 2;
expandtab = true;
};
};
};
};
})
];
modules = [ ../modules/top-level ];
hmOptions = builtins.removeAttrs (lib.evalModules {
modules = [ (import ../wrappers/modules/hm.nix { inherit lib; }) ];
@ -95,10 +67,11 @@ rec {
(pkgsDoc.nixosOptionsDoc {
inherit
(lib.evalModules {
modules = topLevelModules;
inherit modules;
specialArgs = {
inherit helpers;
defaultPkgs = pkgsDoc;
isDocs = true;
};
})
options
@ -112,8 +85,11 @@ rec {
# > sandbox-exec: pattern serialization length 69298 exceeds maximum (65535)
// lib.optionalAttrs (!pkgsDoc.stdenv.isDarwin) {
docs = pkgsDoc.callPackage ./mdbook {
inherit transformOptions;
modules = topLevelModules;
inherit helpers hmOptions;
inherit
helpers
modules
hmOptions
transformOptions
;
};
}

View file

@ -14,6 +14,7 @@ let
specialArgs = {
inherit helpers;
defaultPkgs = pkgs;
isDocs = true;
};
};

View file

@ -3,28 +3,42 @@
config,
lib,
helpers,
specialArgs,
...
}:
let
inherit (lib) types;
isDocs = specialArgs.isDocs or false;
fileModuleType = types.submoduleWith {
shorthandOnlyDefinesConfig = true;
specialArgs = {
inherit helpers;
defaultPkgs = pkgs;
};
modules = [
# Don't include the modules in the docs, as that'd be redundant
modules = lib.optionals (!isDocs) [
../../.
./submodule.nix
];
description = "Nixvim configuration";
};
in
{
options = {
files = lib.mkOption {
type = types.attrsOf fileModuleType;
description = "Files to include in the Vim config.";
description = "Extra files to add to the runtimepath";
default = { };
example = {
"ftplugin/nix.lua" = {
opts = {
tabstop = 2;
shiftwidth = 2;
expandtab = true;
};
};
};
};
filesPlugin = lib.mkOption {