mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
Splits everything that depends on a `pkgs` instance into an optional attrs, allowing `helpers.nix` to be bootstrapped without `pkgs`. This required some refactoring: - `modules.specialArgs` is only available when `pkgs` is used - `modules.specialArgsWith` now requires `defaultPkgs` be provided - `builders.*` now have `*With` variants that take `pkgs` as an argument and a `withPkgs` function that returns the old interface - Had to define the fixed part of `builders` outside the attrs for now, to avoid infinite recursion. - The old `builders` are now deprecated, and print a warning when evaluated - `withOptoinalFns` was introduced to merge the optional attrs into the final lib.
49 lines
1.1 KiB
Nix
49 lines
1.1 KiB
Nix
default_pkgs: self:
|
|
{
|
|
pkgs ? default_pkgs,
|
|
lib ? pkgs.lib,
|
|
extraSpecialArgs ? { },
|
|
_nixvimTests ? false,
|
|
module,
|
|
}:
|
|
let
|
|
helpers = import ../lib { inherit pkgs lib _nixvimTests; };
|
|
|
|
inherit (helpers.modules) evalNixvim;
|
|
|
|
mkNvim =
|
|
mod:
|
|
let
|
|
evaledModule = evalNixvim {
|
|
modules = [
|
|
mod
|
|
./modules/standalone.nix
|
|
];
|
|
extraSpecialArgs = {
|
|
defaultPkgs = pkgs;
|
|
} // extraSpecialArgs;
|
|
};
|
|
inherit (evaledModule.config) enableMan finalPackage printInitPackage;
|
|
in
|
|
(pkgs.symlinkJoin {
|
|
name = "nixvim";
|
|
paths = [
|
|
finalPackage
|
|
printInitPackage
|
|
] ++ pkgs.lib.optional enableMan self.packages.${pkgs.stdenv.hostPlatform.system}.man-docs;
|
|
meta.mainProgram = "nvim";
|
|
})
|
|
// rec {
|
|
inherit (evaledModule) config options;
|
|
extend =
|
|
extension:
|
|
mkNvim {
|
|
imports = [
|
|
mod
|
|
extension
|
|
];
|
|
};
|
|
nixvimExtend = lib.warn "<nixvim>.nixvimExtend has been renamed to <nixvim>.extend" extend;
|
|
};
|
|
in
|
|
mkNvim module
|