mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
tests/lsp-servers: de-couple from grouped tests
Follow up to cab6b0c9fe
This commit is contained in:
parent
88302aa17a
commit
af650ba940
3 changed files with 102 additions and 83 deletions
|
@ -50,6 +50,8 @@
|
||||||
generated = pkgs.callPackage ../tests/generated.nix { };
|
generated = pkgs.callPackage ../tests/generated.nix { };
|
||||||
|
|
||||||
package-options = pkgs.callPackage ../tests/package-options.nix { inherit nixvimConfiguration; };
|
package-options = pkgs.callPackage ../tests/package-options.nix { inherit nixvimConfiguration; };
|
||||||
|
|
||||||
|
lsp-all-servers = pkgs.callPackage ../tests/lsp-servers.nix { inherit nixvimConfiguration; };
|
||||||
} // import ../tests { inherit pkgs pkgsUnfree helpers; };
|
} // import ../tests { inherit pkgs pkgsUnfree helpers; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,37 +42,24 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
# We attempt to build & execute all configurations
|
# We attempt to build & execute all configurations
|
||||||
(lib.pipe
|
lib.pipe (testFiles ++ [ exampleFiles ]) [
|
||||||
(
|
(builtins.map (
|
||||||
testFiles
|
{
|
||||||
++ [
|
name,
|
||||||
exampleFiles
|
file,
|
||||||
]
|
cases,
|
||||||
)
|
}:
|
||||||
[
|
{
|
||||||
(builtins.map (
|
inherit name;
|
||||||
{
|
path = pkgs.linkFarm name (builtins.mapAttrs (moduleToTest file) cases);
|
||||||
name,
|
}
|
||||||
file,
|
))
|
||||||
cases,
|
(helpers.groupListBySize 10)
|
||||||
}:
|
(lib.imap1 (
|
||||||
{
|
i: group: rec {
|
||||||
inherit name;
|
name = "test-${toString i}";
|
||||||
path = pkgs.linkFarm name (builtins.mapAttrs (moduleToTest file) cases);
|
value = pkgs.linkFarm name group;
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
(helpers.groupListBySize 10)
|
builtins.listToAttrs
|
||||||
(lib.imap1 (
|
]
|
||||||
i: group: rec {
|
|
||||||
name = "test-${toString i}";
|
|
||||||
value = pkgs.linkFarm name group;
|
|
||||||
}
|
|
||||||
))
|
|
||||||
builtins.listToAttrs
|
|
||||||
]
|
|
||||||
)
|
|
||||||
// {
|
|
||||||
all-lsp-servers = moduleToTest ./lsp-servers.nix "all-lsp-servers" (
|
|
||||||
import ./lsp-servers.nix { inherit pkgs; }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,53 +1,83 @@
|
||||||
{ pkgs, ... }:
|
{
|
||||||
{ lib, options, ... }:
|
lib,
|
||||||
pkgs.lib.optionalAttrs
|
nixvimConfiguration,
|
||||||
# This fails on darwin
|
stdenv,
|
||||||
# See https://github.com/NixOS/nix/issues/4119
|
runCommandNoCCLocal,
|
||||||
(!pkgs.stdenv.isDarwin)
|
name ? "lsp-all-servers",
|
||||||
{
|
}:
|
||||||
|
let
|
||||||
|
_file = ./lsp-servers.nix;
|
||||||
|
|
||||||
|
renamed = builtins.attrNames (import ../plugins/lsp/language-servers/_renamed.nix);
|
||||||
|
|
||||||
|
enable-lsp-module = {
|
||||||
|
inherit _file;
|
||||||
|
|
||||||
plugins.lsp = {
|
plugins.lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
servers =
|
servers.rust_analyzer = {
|
||||||
let
|
installCargo = true;
|
||||||
disabled =
|
installRustc = true;
|
||||||
(lib.optionals pkgs.stdenv.isDarwin [
|
};
|
||||||
"fsautocomplete"
|
|
||||||
])
|
|
||||||
++ (lib.optionals pkgs.stdenv.isAarch64 [
|
|
||||||
# Broken
|
|
||||||
"scheme_langserver"
|
|
||||||
])
|
|
||||||
++ (lib.optionals (pkgs.stdenv.hostPlatform.system == "aarch64-linux") [
|
|
||||||
# Binary package not available for this architecture
|
|
||||||
"starpls"
|
|
||||||
# TODO: 2024-10-05 build failure
|
|
||||||
"fstar"
|
|
||||||
])
|
|
||||||
++ (lib.optionals (pkgs.stdenv.hostPlatform.system == "x86_64-darwin") [
|
|
||||||
# Binary package not available for this architecture
|
|
||||||
"starpls"
|
|
||||||
]);
|
|
||||||
|
|
||||||
renamed = lib.attrNames (import ../plugins/lsp/language-servers/_renamed.nix);
|
|
||||||
in
|
|
||||||
lib.mkMerge [
|
|
||||||
(lib.pipe options.plugins.lsp.servers [
|
|
||||||
(lib.mapAttrs (
|
|
||||||
server: opts:
|
|
||||||
{
|
|
||||||
enable = !(lib.elem server disabled);
|
|
||||||
}
|
|
||||||
// lib.optionalAttrs (opts ? package && !(opts.package ? default)) { package = null; }
|
|
||||||
))
|
|
||||||
(lib.filterAttrs (server: _: !(lib.elem server renamed)))
|
|
||||||
])
|
|
||||||
{
|
|
||||||
rust_analyzer = {
|
|
||||||
installCargo = true;
|
|
||||||
installRustc = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
|
enable-servers-module =
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
options,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
disabled =
|
||||||
|
lib.optionals pkgs.stdenv.isDarwin [
|
||||||
|
"fsautocomplete"
|
||||||
|
]
|
||||||
|
++ lib.optionals pkgs.stdenv.isAarch64 [
|
||||||
|
# Broken
|
||||||
|
"scheme_langserver"
|
||||||
|
]
|
||||||
|
++ lib.optionals (pkgs.stdenv.hostPlatform.system == "aarch64-linux") [
|
||||||
|
# Binary package not available for this architecture
|
||||||
|
"starpls"
|
||||||
|
# TODO: 2024-10-05 build failure
|
||||||
|
"fstar"
|
||||||
|
]
|
||||||
|
++ lib.optionals (pkgs.stdenv.hostPlatform.system == "x86_64-darwin") [
|
||||||
|
# Binary package not available for this architecture
|
||||||
|
"starpls"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit _file;
|
||||||
|
|
||||||
|
plugins.lsp.servers = lib.pipe options.plugins.lsp.servers [
|
||||||
|
(lib.mapAttrs (
|
||||||
|
server: opts:
|
||||||
|
{
|
||||||
|
enable = !(lib.elem server disabled);
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs (opts ? package && !(opts.package ? default)) { package = null; }
|
||||||
|
))
|
||||||
|
(lib.filterAttrs (server: _: !(lib.elem server renamed)))
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
result = nixvimConfiguration.extendModules {
|
||||||
|
modules = [
|
||||||
|
enable-lsp-module
|
||||||
|
enable-servers-module
|
||||||
|
{ test.name = name; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
# This fails on darwin
|
||||||
|
# See https://github.com/NixOS/nix/issues/4119
|
||||||
|
if stdenv.isDarwin then
|
||||||
|
runCommandNoCCLocal name { } ''
|
||||||
|
touch $out
|
||||||
|
''
|
||||||
|
else
|
||||||
|
result.config.build.test
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue