mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
misc: refactor helpers propagation
Co-authored-by: Robert Hensing <robert@roberthensing.nl>
This commit is contained in:
parent
3bbb3d5453
commit
5d3ed3a09e
12 changed files with 100 additions and 40 deletions
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
rawModules,
|
rawModules,
|
||||||
|
helpers,
|
||||||
pkgs,
|
pkgs,
|
||||||
}: let
|
}: let
|
||||||
pkgsDoc =
|
pkgsDoc =
|
||||||
|
@ -73,7 +74,13 @@ in
|
||||||
options-json =
|
options-json =
|
||||||
(pkgsDoc.nixosOptionsDoc
|
(pkgsDoc.nixosOptionsDoc
|
||||||
{
|
{
|
||||||
inherit (lib.evalModules {modules = topLevelModules;}) options;
|
inherit
|
||||||
|
(lib.evalModules {
|
||||||
|
modules = topLevelModules;
|
||||||
|
specialArgs.helpers = helpers;
|
||||||
|
})
|
||||||
|
options
|
||||||
|
;
|
||||||
inherit transformOptions;
|
inherit transformOptions;
|
||||||
warningsAreErrors = false;
|
warningsAreErrors = false;
|
||||||
})
|
})
|
||||||
|
@ -86,5 +93,6 @@ in
|
||||||
docs = pkgsDoc.callPackage ./mdbook {
|
docs = pkgsDoc.callPackage ./mdbook {
|
||||||
inherit transformOptions;
|
inherit transformOptions;
|
||||||
modules = topLevelModules;
|
modules = topLevelModules;
|
||||||
|
inherit helpers;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,14 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
modules,
|
modules,
|
||||||
|
helpers,
|
||||||
nixosOptionsDoc,
|
nixosOptionsDoc,
|
||||||
transformOptions,
|
transformOptions,
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
options = lib.evalModules {
|
options = lib.evalModules {
|
||||||
inherit modules;
|
inherit modules;
|
||||||
specialArgs = {inherit pkgs lib;};
|
specialArgs = {inherit pkgs lib helpers;};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkMDDoc = options:
|
mkMDDoc = options:
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./dev.nix
|
./dev.nix
|
||||||
|
./helpers.nix
|
||||||
./lib.nix
|
./lib.nix
|
||||||
./legacy-packages.nix
|
./legacy-packages.nix
|
||||||
./modules.nix
|
./modules.nix
|
||||||
|
|
15
flake-modules/helpers.nix
Normal file
15
flake-modules/helpers.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{getHelpers, ...}: {
|
||||||
|
_module.args.getHelpers = pkgs:
|
||||||
|
import ../lib/helpers.nix {
|
||||||
|
inherit pkgs;
|
||||||
|
inherit (pkgs) lib;
|
||||||
|
};
|
||||||
|
|
||||||
|
perSystem = {
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
_module.args.helpers = getHelpers pkgs;
|
||||||
|
};
|
||||||
|
}
|
|
@ -10,7 +10,6 @@
|
||||||
_module.args = {
|
_module.args = {
|
||||||
pkgs = pkgs.lib.mkForce pkgs;
|
pkgs = pkgs.lib.mkForce pkgs;
|
||||||
inherit (pkgs) lib;
|
inherit (pkgs) lib;
|
||||||
helpers = import ../lib/helpers.nix {inherit (pkgs) lib;};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,10 +3,11 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
rawModules,
|
rawModules,
|
||||||
|
helpers,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
packages = import ../docs {
|
packages = import ../docs {
|
||||||
inherit rawModules pkgs;
|
inherit rawModules pkgs helpers;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Test that all packages build fine when running `nix flake check`.
|
# Test that all packages build fine when running `nix flake check`.
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
modules,
|
modules,
|
||||||
|
getHelpers,
|
||||||
self,
|
self,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
wrapperArgs = {
|
wrapperArgs = {
|
||||||
inherit modules;
|
inherit modules;
|
||||||
inherit self;
|
inherit self;
|
||||||
|
inherit getHelpers;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
perSystem = {
|
perSystem = {
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
modules: {
|
{
|
||||||
|
modules,
|
||||||
|
helpers,
|
||||||
|
}: {
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
|
@ -20,7 +23,7 @@ in {
|
||||||
check = builtins.isAttrs;
|
check = builtins.isAttrs;
|
||||||
};
|
};
|
||||||
description = "Use this option to access the helpers";
|
description = "Use this option to access the helpers";
|
||||||
default = import ../plugins/helpers.nix {inherit (pkgs) lib;};
|
default = helpers;
|
||||||
};
|
};
|
||||||
|
|
||||||
configFiles = let
|
configFiles = let
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
modules,
|
modules,
|
||||||
self,
|
self,
|
||||||
|
getHelpers,
|
||||||
}: {
|
}: {
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
|
@ -8,19 +9,25 @@
|
||||||
...
|
...
|
||||||
} @ args: let
|
} @ args: let
|
||||||
inherit (lib) mkEnableOption mkOption mkOptionType mkForce mkMerge mkIf types;
|
inherit (lib) mkEnableOption mkOption mkOptionType mkForce mkMerge mkIf types;
|
||||||
shared = import ./_shared.nix modules args;
|
helpers = getHelpers pkgs;
|
||||||
|
shared = import ./_shared.nix {inherit modules helpers;} args;
|
||||||
cfg = config.programs.nixvim;
|
cfg = config.programs.nixvim;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
programs.nixvim = mkOption {
|
programs.nixvim = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = types.submodule ([
|
type = types.submoduleWith {
|
||||||
{
|
shorthandOnlyDefinesConfig = true;
|
||||||
options.enable = mkEnableOption "nixvim";
|
specialArgs.helpers = helpers;
|
||||||
config.wrapRc = mkForce true;
|
modules =
|
||||||
}
|
[
|
||||||
]
|
{
|
||||||
++ shared.topLevelModules);
|
options.enable = mkEnableOption "nixvim";
|
||||||
|
config.wrapRc = mkForce true;
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ shared.topLevelModules;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nixvim.helpers = shared.helpers;
|
nixvim.helpers = shared.helpers;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
modules,
|
modules,
|
||||||
self,
|
self,
|
||||||
|
getHelpers,
|
||||||
}: {
|
}: {
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
|
@ -8,7 +9,8 @@
|
||||||
...
|
...
|
||||||
} @ args: let
|
} @ args: let
|
||||||
inherit (lib) mkEnableOption mkOption mkOptionType mkMerge mkIf types;
|
inherit (lib) mkEnableOption mkOption mkOptionType mkMerge mkIf types;
|
||||||
shared = import ./_shared.nix modules args;
|
helpers = getHelpers pkgs;
|
||||||
|
shared = import ./_shared.nix {inherit modules helpers;} args;
|
||||||
cfg = config.programs.nixvim;
|
cfg = config.programs.nixvim;
|
||||||
files =
|
files =
|
||||||
shared.configFiles
|
shared.configFiles
|
||||||
|
@ -19,15 +21,20 @@ in {
|
||||||
options = {
|
options = {
|
||||||
programs.nixvim = mkOption {
|
programs.nixvim = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = types.submodule ([
|
type = types.submoduleWith {
|
||||||
{
|
shorthandOnlyDefinesConfig = true;
|
||||||
options = {
|
specialArgs.helpers = helpers;
|
||||||
enable = mkEnableOption "nixvim";
|
modules =
|
||||||
defaultEditor = mkEnableOption "nixvim as the default editor";
|
[
|
||||||
};
|
{
|
||||||
}
|
options = {
|
||||||
]
|
enable = mkEnableOption "nixvim";
|
||||||
++ shared.topLevelModules);
|
defaultEditor = mkEnableOption "nixvim as the default editor";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ shared.topLevelModules;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nixvim.helpers = shared.helpers;
|
nixvim.helpers = shared.helpers;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
modules,
|
modules,
|
||||||
self,
|
self,
|
||||||
|
getHelpers,
|
||||||
}: {
|
}: {
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
|
@ -8,7 +9,8 @@
|
||||||
...
|
...
|
||||||
} @ args: let
|
} @ args: let
|
||||||
inherit (lib) mkEnableOption mkOption mkOptionType mkForce mkMerge mkIf types;
|
inherit (lib) mkEnableOption mkOption mkOptionType mkForce mkMerge mkIf types;
|
||||||
shared = import ./_shared.nix modules args;
|
helpers = getHelpers pkgs;
|
||||||
|
shared = import ./_shared.nix {inherit modules helpers;} args;
|
||||||
cfg = config.programs.nixvim;
|
cfg = config.programs.nixvim;
|
||||||
files =
|
files =
|
||||||
shared.configFiles
|
shared.configFiles
|
||||||
|
@ -19,16 +21,21 @@ in {
|
||||||
options = {
|
options = {
|
||||||
programs.nixvim = mkOption {
|
programs.nixvim = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
type = types.submodule ([
|
type = types.submoduleWith {
|
||||||
{
|
shorthandOnlyDefinesConfig = true;
|
||||||
options = {
|
specialArgs.helpers = helpers;
|
||||||
enable = mkEnableOption "nixvim";
|
modules =
|
||||||
defaultEditor = mkEnableOption "nixvim as the default editor";
|
[
|
||||||
};
|
{
|
||||||
config.wrapRc = mkForce true;
|
options = {
|
||||||
}
|
enable = mkEnableOption "nixvim";
|
||||||
]
|
defaultEditor = mkEnableOption "nixvim as the default editor";
|
||||||
++ shared.topLevelModules);
|
};
|
||||||
|
config.wrapRc = mkForce true;
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ shared.topLevelModules;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
nixvim.helpers = shared.helpers;
|
nixvim.helpers = shared.helpers;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
default_pkgs: {
|
default_pkgs: {
|
||||||
modules,
|
modules,
|
||||||
self,
|
self,
|
||||||
|
getHelpers,
|
||||||
}: {
|
}: {
|
||||||
pkgs ? default_pkgs,
|
pkgs ? default_pkgs,
|
||||||
extraSpecialArgs ? {},
|
extraSpecialArgs ? {},
|
||||||
|
@ -8,16 +9,24 @@ default_pkgs: {
|
||||||
}: let
|
}: let
|
||||||
inherit (pkgs) lib;
|
inherit (pkgs) lib;
|
||||||
|
|
||||||
wrap = {wrapRc = true;};
|
helpers = getHelpers pkgs;
|
||||||
|
shared = import ./_shared.nix {inherit modules helpers;} {
|
||||||
shared = import ./_shared.nix modules {
|
|
||||||
inherit pkgs lib;
|
inherit pkgs lib;
|
||||||
config = {};
|
config = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
eval = lib.evalModules {
|
eval = lib.evalModules {
|
||||||
modules = [module wrap] ++ shared.topLevelModules;
|
modules =
|
||||||
specialArgs = extraSpecialArgs;
|
[
|
||||||
|
module
|
||||||
|
{wrapRc = true;}
|
||||||
|
]
|
||||||
|
++ shared.topLevelModules;
|
||||||
|
specialArgs =
|
||||||
|
{
|
||||||
|
inherit helpers;
|
||||||
|
}
|
||||||
|
// extraSpecialArgs;
|
||||||
};
|
};
|
||||||
|
|
||||||
handleAssertions = config: let
|
handleAssertions = config: let
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue