1
0
Fork 0
mirror of https://github.com/nix-community/nixvim.git synced 2025-11-08 19:46:06 +01:00
nixvim/tests/test-sources/modules/lsp.nix
2025-09-28 23:07:35 +00:00

81 lines
2 KiB
Nix

{
example = {
lsp.servers = {
"*".settings = {
enable = true;
root_markers = [ ".git" ];
capabilities.textDocument.semanticTokens = {
multilineTokenSupport = true;
};
};
luals.enable = true;
clangd = {
enable = true;
settings = {
cmd = [
"clangd"
"--background-index"
];
root_markers = [
"compile_commands.json"
"compile_flags.txt"
];
filetypes = [
"c"
"cpp"
];
};
};
};
};
package-fallback =
{ lib, config, ... }:
{
test.buildNixvim = false;
lsp = {
servers = {
nil_ls.enable = true;
rust_analyzer = {
enable = true;
packageFallback = true;
};
hls = {
enable = true;
packageFallback = true;
};
};
};
assertions =
let
assertPrefix = name: pkg: [
{
assertion = lib.all (x: x == pkg) config.extraPackages;
message = "Expected `${name}` to be in extraPackages";
}
{
assertion = lib.any (x: x != pkg) config.extraPackagesAfter;
message = "Expected `${name}` not to be in extraPackagesAfter";
}
];
assertSuffix = name: pkg: [
{
assertion = lib.all (x: x != pkg) config.extraPackages;
message = "Expected `${name}` not to be in extraPackages";
}
{
assertion = lib.any (x: x == pkg) config.extraPackagesAfter;
message = "Expected `${name}` to be in extraPackagesAfter";
}
];
in
with config.lsp.servers;
(
assertPrefix "nil" nil_ls.package
++ assertSuffix "rust-analyzer" rust_analyzer.package
++ assertSuffix "haskell-language-server" hls.package
);
};
}