nix-community.nixvim/update-scripts/efmls-configs.nix
Matt Sturgeon d3cb750e6a
update-scripts: move out of flake
See the explanation in the new update-scripts/README.md file.
2024-08-03 21:56:40 +01:00

54 lines
1.3 KiB
Nix

{
lib,
vimPlugins,
writeText,
}:
let
tools = lib.trivial.importJSON "${vimPlugins.efmls-configs-nvim.src}/doc/supported-list.json";
languages = lib.attrNames tools;
toLangTools' = lang: kind: lib.map (lib.getAttr "name") (tools.${lang}.${kind} or [ ]);
miscLinters = toLangTools' "misc" "linters";
miscFormatters = toLangTools' "misc" "formatters";
sources =
(lib.listToAttrs (
lib.map (
lang:
let
toLangTools = toLangTools' lang;
in
{
name = lang;
value = {
linter = {
inherit lang;
possible = (toLangTools "linters") ++ miscLinters;
};
formatter = {
inherit lang;
possible = (toLangTools "formatters") ++ miscFormatters;
};
};
}
) languages
))
// {
all = {
linter = {
lang = "all languages";
possible = miscLinters;
};
formatter = {
lang = "all languages";
possible = miscFormatters;
};
};
};
in
writeText "efmls-configs-sources.nix" (
"# WARNING: DO NOT EDIT\n"
+ "# This file is generated with packages.<system>.efmls-configs-sources, which is run automatically by CI\n"
+ (lib.generators.toPretty { } sources)
)