mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
24 lines
752 B
Nix
24 lines
752 B
Nix
|
# This file isn't (currently) part of `lib.nixvim`, but is used directly by `efmls` and `none-ls` pkg lists
|
||
|
lib: rec {
|
||
|
# Produces an attrset of { ${name} = name; }
|
||
|
topLevel = names: lib.genAttrs names lib.id;
|
||
|
|
||
|
# Produces an attrset of { ${name} = null; }
|
||
|
nullAttrs = names: lib.genAttrs names (_: null);
|
||
|
|
||
|
# Produces an attrset of { ${name} = [ scope name ]; }
|
||
|
# Where the "scope" is the (nested) attr names,
|
||
|
# and "name" is the value.
|
||
|
# If the name value is a list, it will be expanded into multiple attrs.
|
||
|
scoped = lib.concatMapAttrs (
|
||
|
scope: v:
|
||
|
if builtins.isAttrs v then
|
||
|
lib.mapAttrs (_: loc: [ scope ] ++ loc) (scoped v)
|
||
|
else
|
||
|
lib.genAttrs (lib.toList v) (name: [
|
||
|
scope
|
||
|
name
|
||
|
])
|
||
|
);
|
||
|
}
|