Skip to content

Commit 7594bac

Browse files
committed
ci/efmls-configs: merge language sets with different cases
Merge entries that are the same language but with different casing.
1 parent b74cec1 commit 7594bac

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

ci/efmls-configs.nix

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,34 @@ let
1313
miscFormatters = toLangTools' "misc" "formatters";
1414

1515
sources =
16-
(lib.listToAttrs (
17-
lib.map (
18-
lang:
16+
let
17+
# Group languages by lowercase name and merge their tools
18+
groupedLanguages = builtins.groupBy (lang: lib.toLower lang) languages;
19+
mergedLanguages = lib.mapAttrs (
20+
lowerLang: langList:
1921
let
20-
toLangTools = toLangTools' lang;
22+
# Use the first language as the canonical name but prefer lowercase if available
23+
canonicalLang = if lib.elem lowerLang langList then lowerLang else lib.head langList;
24+
# Merge all tools from all case variations
25+
allLinters = lib.unique (lib.concatMap (lang: toLangTools' lang "linters") langList);
26+
allFormatters = lib.unique (lib.concatMap (lang: toLangTools' lang "formatters") langList);
2127
in
2228
{
23-
name = lang;
29+
name = canonicalLang;
2430
value = {
2531
linter = {
26-
inherit lang;
27-
possible = (toLangTools "linters") ++ miscLinters;
32+
lang = canonicalLang;
33+
possible = allLinters ++ miscLinters;
2834
};
2935
formatter = {
30-
inherit lang;
31-
possible = (toLangTools "formatters") ++ miscFormatters;
36+
lang = canonicalLang;
37+
possible = allFormatters ++ miscFormatters;
3238
};
3339
};
3440
}
35-
) languages
36-
))
41+
) groupedLanguages;
42+
in
43+
(lib.listToAttrs (lib.attrValues mergedLanguages))
3744
// {
3845
all = {
3946
linter = {

0 commit comments

Comments
 (0)