diff --git a/lib/extend-lib.nix b/lib/extend-lib.nix new file mode 100644 index 00000000..772be92c --- /dev/null +++ b/lib/extend-lib.nix @@ -0,0 +1,11 @@ +# Extends nixpkg's lib with our functions, as expected by our modules +{ lib, helpers }: +lib.extend ( + final: prev: { + # Include our custom lib + nixvim = helpers; + + # Merge in our maintainers + maintainers = prev.maintainers // import ./maintainers.nix; + } +) diff --git a/lib/helpers.nix b/lib/helpers.nix index c1f28bfc..559da4db 100644 --- a/lib/helpers.nix +++ b/lib/helpers.nix @@ -6,16 +6,20 @@ }: let # Used when importing parts of helpers - call = lib.callPackageWith { inherit pkgs lib helpers; }; + call = lib.callPackageWith { + # TODO: deprecate/remove using `helpers` in the subsections + inherit pkgs helpers; + lib = helpers.extendedLib; + }; # Build helpers recursively helpers = { autocmd = call ./autocmd-helpers.nix { }; builders = call ./builders.nix { }; deprecation = call ./deprecation.nix { }; + extendedLib = call ./extend-lib.nix { inherit lib; }; keymaps = call ./keymap-helpers.nix { }; lua = call ./to-lua.nix { }; - maintainers = import ./maintainers.nix; neovim-plugin = call ./neovim-plugin.nix { }; nixvimTypes = call ./types.nix { }; options = call ./options.nix { }; @@ -78,6 +82,9 @@ let wrapVimscriptForLua ; + # TODO: Deprecate this `maintainers` alias + inherit (helpers.extendedLib) maintainers; + toLuaObject = helpers.lua.toLua; }; in diff --git a/tests/test-sources/extended-lib.nix b/tests/test-sources/extended-lib.nix new file mode 100644 index 00000000..5d410686 --- /dev/null +++ b/tests/test-sources/extended-lib.nix @@ -0,0 +1,25 @@ +let + module = + { lib, helpers, ... }: + { + assertions = [ + { + assertion = lib ? nixvim; + message = "lib.nixvim should be defined"; + } + { + assertion = lib.nixvim == helpers; + message = "lib.nixvim and helpers should be aliases"; + } + ]; + }; +in +{ + top-level = { + inherit module; + }; + + files-module = { + files."libtest.lua" = module; + }; +} diff --git a/wrappers/darwin.nix b/wrappers/darwin.nix index 0ead42ed..0bcfa20b 100644 --- a/wrappers/darwin.nix +++ b/wrappers/darwin.nix @@ -27,6 +27,7 @@ in darwinConfig = config; defaultPkgs = pkgs; helpers = config.lib.nixvim; + lib = config.lib.nixvim.extendedLib; }; modules = [ ./modules/darwin.nix diff --git a/wrappers/hm.nix b/wrappers/hm.nix index 97e3ba27..4cc29345 100644 --- a/wrappers/hm.nix +++ b/wrappers/hm.nix @@ -26,6 +26,7 @@ in hmConfig = config; defaultPkgs = pkgs; helpers = config.lib.nixvim; + lib = config.lib.nixvim.extendedLib; }; modules = [ ./modules/hm.nix diff --git a/wrappers/nixos.nix b/wrappers/nixos.nix index f96656c7..07816db6 100644 --- a/wrappers/nixos.nix +++ b/wrappers/nixos.nix @@ -27,6 +27,7 @@ in nixosConfig = config; defaultPkgs = pkgs; helpers = config.lib.nixvim; + lib = config.lib.nixvim.extendedLib; }; modules = [ ./modules/nixos.nix diff --git a/wrappers/standalone.nix b/wrappers/standalone.nix index ce67f63a..d37c8a61 100644 --- a/wrappers/standalone.nix +++ b/wrappers/standalone.nix @@ -31,6 +31,7 @@ let ]; specialArgs = { inherit helpers; + lib = helpers.extendedLib; defaultPkgs = pkgs; } // extraSpecialArgs; };