mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
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.
23 lines
752 B
Nix
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
|
|
])
|
|
);
|
|
}
|