nix-community.nixvim/lib/pkg-lists.nix
Matt Sturgeon cdb2e79e51
lib/pkg-lists: move to common location
Extract the helper functions defined in `efmls-configs-pkgs` to a common
location where they can also be used by none-ls's package list.
2024-09-04 20:29:52 +01:00

23 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
])
);
}