mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
lib: segregate and deprecate functions that need pkgs
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.
This commit is contained in:
parent
f47e8f8f79
commit
4e5bd1d79b
12 changed files with 165 additions and 84 deletions
|
@ -1,19 +1,17 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
helpers,
|
||||
self,
|
||||
}:
|
||||
rec {
|
||||
# Minimal specialArgs required to evaluate nixvim modules
|
||||
specialArgs = specialArgsWith { };
|
||||
|
||||
# Build specialArgs for evaluating nixvim modules
|
||||
specialArgsWith =
|
||||
extraSpecialArgs:
|
||||
# TODO: switch defaultPkgs -> pkgsPath (i.e. pkgs.path or inputs.nixvim)
|
||||
# FIXME: Ideally, we should not require callers to pass in _anything_ specific
|
||||
{ defaultPkgs, ... }@extraSpecialArgs:
|
||||
{
|
||||
inherit lib defaultPkgs;
|
||||
# TODO: deprecate `helpers`
|
||||
inherit lib helpers;
|
||||
defaultPkgs = pkgs;
|
||||
helpers = self;
|
||||
}
|
||||
// extraSpecialArgs;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue