File tree 3 files changed +51
-96
lines changed
3 files changed +51
-96
lines changed Original file line number Diff line number Diff line change 9
9
pkgs = import ./pkgs.nix { inherit system nixpkgs ; } ;
10
10
inherit ( pkgs ) lib ;
11
11
12
+ # A stub pkgs instance used while evaluating the nixvim modules for the docs
13
+ # If any non-meta attr is accessed, the eval will throw
14
+ noPkgs =
15
+ let
16
+ # Known suffixes for package sets
17
+ suffixes = [
18
+ "Plugins"
19
+ "Packages"
20
+ ] ;
21
+
22
+ # Predicate for whether an attr name looks like a package set
23
+ # Determines whether stubPackage should recurse
24
+ isPackageSet = name : builtins . any ( lib . flip lib . strings . hasSuffix name ) suffixes ;
25
+
26
+ # Need to retain `meta.homepage` if present
27
+ stubPackage =
28
+ prefix : name : package :
29
+ let
30
+ loc = prefix ++ [ name ] ;
31
+ in
32
+ if isPackageSet name then
33
+ lib . mapAttrs ( stubPackage loc ) package
34
+ else
35
+ lib . mapAttrs ( _ : throwAccessError loc ) package
36
+ // lib . optionalAttrs ( package ? meta ) { inherit ( package ) meta ; } ;
37
+
38
+ throwAccessError =
39
+ loc :
40
+ throw "Attempted to access `${
41
+ lib . concatStringsSep "." ( [ "pkgs" ] ++ loc )
42
+ } ` while rendering the docs." ;
43
+ in
44
+ lib . fix (
45
+ self :
46
+ lib . mapAttrs ( stubPackage [ ] ) pkgs
47
+ // {
48
+ pkgs = self ;
49
+ # The following pkgs attrs are required to eval nixvim, even for the docs:
50
+ inherit ( pkgs )
51
+ _type
52
+ stdenv
53
+ stdenvNoCC
54
+ symlinkJoin
55
+ runCommand
56
+ runCommandLocal
57
+ writeShellApplication
58
+ ;
59
+ }
60
+ ) ;
61
+
12
62
nixvimPath = toString ./.. ;
13
63
14
64
gitHubDeclaration = user : repo : branch : subpath : {
37
87
modules = [
38
88
{
39
89
isDocs = true ;
40
- nixpkgs . pkgs = pkgs ;
90
+ _module . args . pkgs = lib . mkForce noPkgs ;
41
91
}
42
92
] ;
43
93
} ;
Original file line number Diff line number Diff line change 44
44
nixpkgs-module = callTest ./nixpkgs-module.nix { } ;
45
45
plugins-by-name = callTest ./plugins-by-name.nix { } ;
46
46
generated = callTest ./generated.nix { } ;
47
- package-options = callTest ./package-options.nix { } ;
48
47
lsp-all-servers = callTest ./lsp-servers.nix { } ;
49
48
}
50
49
# Expose some tests from the docs as flake-checks too
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments