efmls-configs: Use upstream tool definitions (#692)

This commit is contained in:
traxys 2023-11-06 23:07:55 +01:00 committed by GitHub
parent 9cf2c342a2
commit 6b93c8fa6d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 143 deletions

View file

@ -6,13 +6,9 @@
...
}:
with lib; let
tools = trivial.importJSON ./efmls-configs-tools.json;
inherit (tools) linters formatters;
tools = trivial.importJSON "${pkgs.vimPlugins.efmls-configs-nvim.src}/doc/supported-list.json";
searchLanguages = tools: (lists.unique (builtins.concatLists (builtins.attrValues tools)));
languages =
lists.filter
(v: v != "misc") (lists.unique ((searchLanguages linters) ++ (searchLanguages formatters)));
languages = builtins.attrNames tools;
in {
options.plugins.efmls-configs = {
enable = mkEnableOption "efmls-configs, premade configurations for efm-langserver";
@ -33,11 +29,15 @@ in {
}
*/
setup = let
languageTools = lang: tools:
builtins.attrNames (attrsets.filterAttrs (_: lists.any (e: e == lang)) tools);
languageTools = lang: kind:
builtins.map (v: v.name) (
if builtins.hasAttr kind tools.${lang}
then tools.${lang}.${kind}
else []
);
miscLinters = languageTools "misc" linters;
miscFormatters = languageTools "misc" formatters;
miscLinters = languageTools "misc" "linters";
miscFormatters = languageTools "misc" "formatters";
mkChooseOption = lang: kind: possible: let
toolType = with types; either (enum possible) helpers.rawType;
@ -58,8 +58,8 @@ in {
in {
name = lang;
value = {
linter = mkChooseOption lang "linter" ((langTools linters) ++ miscLinters);
formatter = mkChooseOption lang "formatter" ((langTools formatters) ++ miscFormatters);
linter = mkChooseOption lang "linter" ((langTools "linters") ++ miscLinters);
formatter = mkChooseOption lang "formatter" ((langTools "formatters") ++ miscFormatters);
};
})
languages))