plugins/lsp/efmls-configs: respect tool packages availability

This commit is contained in:
Gaetan Lepage 2023-11-19 14:27:43 +01:00 committed by Gaétan Lepage
parent a05b2a9cbf
commit 3cb12cd964
2 changed files with 60 additions and 24 deletions

View file

@ -11,7 +11,7 @@ with lib; let
languages = builtins.attrNames tools;
# Mapping of tool name to the nixpkgs package (if any)
toolPkgs = with pkgs; {
allToolPkgs = with pkgs; {
inherit
actionlint
alejandra
@ -99,6 +99,16 @@ with lib; let
write_good = write-good;
yq = yq-go;
};
# Filter packages that are not compatible with the current platform
toolPkgs =
filterAttrs
(
a: pkg:
meta.availableOn
pkgs.stdenv.hostPlatform
pkg
)
allToolPkgs;
in {
options.plugins.efmls-configs = {
enable = mkEnableOption "efmls-configs, premade configurations for efm-langserver";
@ -249,6 +259,14 @@ in {
extraOptions.settings.languages = setupOptions;
};
extraPackages = [pkgs.efm-langserver] ++ (builtins.map (v: toolPkgs.${v}) nixvimPkgs.right);
extraPackages =
[
pkgs.efm-langserver
]
++ (
builtins.map
(v: toolPkgs.${v})
nixvimPkgs.right
);
};
}

View file

@ -1,4 +1,8 @@
{efmls-options, ...}: {
{
efmls-options,
pkgs,
...
}: {
empty = {
plugins.efmls-configs.enable = true;
};
@ -16,27 +20,41 @@
"phpstan"
];
unpackaged = [
"blade_formatter"
"cspell"
"dartanalyzer"
"debride"
"fecs"
"fixjson"
"forge_fmt"
"gersemi"
"js_standard"
"pint"
"prettier_eslint"
"prettier_standard"
"redpen"
"reek"
"rome"
"slim_lint"
"solhint"
"sorbet"
"xo"
];
unpackaged =
[
"blade_formatter"
"cspell"
"dartanalyzer"
"debride"
"fecs"
"fixjson"
"forge_fmt"
"gersemi"
"js_standard"
"pint"
"prettier_eslint"
"prettier_standard"
"redpen"
"reek"
"rome"
"slim_lint"
"solhint"
"sorbet"
"xo"
]
++ (
pkgs.lib.optionals
pkgs.stdenv.isDarwin
["clazy"]
)
++ (
pkgs.lib.optionals
pkgs.stdenv.isAarch64
[
"dmd"
"smlfmt"
]
);
# Fetch the valid enum members from the tool options
toolsFromOptions = opt: let