From 2deb61f6a55b87e4bd2f43215ce6c578aacf29c8 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Fri, 5 Jul 2024 14:25:21 +0100 Subject: [PATCH] modules/top-level: move out of wrappers/modules --- docs/default.nix | 4 +++- modules/default.nix | 4 ++++ modules/top-level/default.nix | 12 ++++++++++++ {wrappers/modules => modules/top-level}/files.nix | 2 +- {wrappers/modules => modules/top-level}/output.nix | 0 wrappers/_shared.nix | 6 ------ wrappers/darwin.nix | 5 ++++- wrappers/hm.nix | 5 ++++- wrappers/nixos.nix | 5 ++++- wrappers/standalone.nix | 7 ++----- 10 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 modules/top-level/default.nix rename {wrappers/modules => modules/top-level}/files.nix (97%) rename {wrappers/modules => modules/top-level}/output.nix (100%) diff --git a/docs/default.nix b/docs/default.nix index b4495085..0989b968 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -63,9 +63,11 @@ let # 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 - ../wrappers/modules/output.nix + ../modules/top-level/output.nix # Fake module to avoid a duplicated documentation (lib.setDefaultModuleLocation "${nixvimPath}/wrappers/modules/files.nix" { options.files = lib.mkOption { diff --git a/modules/default.nix b/modules/default.nix index 84420920..878bb02b 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,3 +1,7 @@ +# This module includes the nixvim modules that should always be evaluated. +# +# You may want to use the `/modules/top-level` module instead, unless you're +# using this in a submodule nested within another nixvim config. { imports = [ ./misc diff --git a/modules/top-level/default.nix b/modules/top-level/default.nix new file mode 100644 index 00000000..d3f6e2c7 --- /dev/null +++ b/modules/top-level/default.nix @@ -0,0 +1,12 @@ +# Alternative to `/modules` that also includes modules that should only exist at the "top-level". +# Therefore, `/modules` should be used instead for submodules nested within a nixvim config. +# +# When using this, you likely also want a "wrapper" module for any platform-specific options. +# See `/wrappers/modules` for examples. +{ + imports = [ + ../. + ./files.nix + ./output.nix + ]; +} diff --git a/wrappers/modules/files.nix b/modules/top-level/files.nix similarity index 97% rename from wrappers/modules/files.nix rename to modules/top-level/files.nix index 8c62cb49..f29b84d3 100644 --- a/wrappers/modules/files.nix +++ b/modules/top-level/files.nix @@ -17,7 +17,7 @@ let ( { name, config, ... }: { - imports = [ ../../modules ]; + imports = [ ../. ]; options.plugin = lib.mkOption { type = types.package; description = "A derivation with the content of the file in it"; diff --git a/wrappers/modules/output.nix b/modules/top-level/output.nix similarity index 100% rename from wrappers/modules/output.nix rename to modules/top-level/output.nix diff --git a/wrappers/_shared.nix b/wrappers/_shared.nix index 9e6c2755..026fc655 100644 --- a/wrappers/_shared.nix +++ b/wrappers/_shared.nix @@ -5,12 +5,6 @@ let cfg = config.programs.nixvim; in { - topLevelModules = [ - ../modules - ./modules/output.nix - ./modules/files.nix - ]; - helpers = mkOption { type = mkOptionType { name = "helpers"; diff --git a/wrappers/darwin.nix b/wrappers/darwin.nix index 3477645a..921bd506 100644 --- a/wrappers/darwin.nix +++ b/wrappers/darwin.nix @@ -30,7 +30,10 @@ in defaultPkgs = pkgs; inherit helpers; }; - modules = [ ./modules/darwin.nix ] ++ shared.topLevelModules; + modules = [ + ./modules/darwin.nix + ../modules/top-level + ]; }; }; nixvim.helpers = shared.helpers; diff --git a/wrappers/hm.nix b/wrappers/hm.nix index 17066e1d..7f7e0ddf 100644 --- a/wrappers/hm.nix +++ b/wrappers/hm.nix @@ -32,7 +32,10 @@ in defaultPkgs = pkgs; inherit helpers; }; - modules = [ ./modules/hm.nix ] ++ shared.topLevelModules; + modules = [ + ./modules/hm.nix + ../modules/top-level + ]; }; }; nixvim.helpers = shared.helpers; diff --git a/wrappers/nixos.nix b/wrappers/nixos.nix index 292ad9f8..1020f27f 100644 --- a/wrappers/nixos.nix +++ b/wrappers/nixos.nix @@ -33,7 +33,10 @@ in defaultPkgs = pkgs; inherit helpers; }; - modules = [ ./modules/nixos.nix ] ++ shared.topLevelModules; + modules = [ + ./modules/nixos.nix + ../modules/top-level + ]; }; }; nixvim.helpers = shared.helpers; diff --git a/wrappers/standalone.nix b/wrappers/standalone.nix index ad087ab4..0e357515 100644 --- a/wrappers/standalone.nix +++ b/wrappers/standalone.nix @@ -10,10 +10,6 @@ let inherit (pkgs) lib; helpers = getHelpers pkgs _nixvimTests; - shared = import ./_shared.nix helpers { - inherit pkgs lib; - config = { }; - }; handleAssertions = config: @@ -32,7 +28,8 @@ let modules = [ mod { wrapRc = true; } - ] ++ shared.topLevelModules; + ../modules/top-level + ]; specialArgs = { inherit helpers; defaultPkgs = pkgs;