mirror of
https://github.com/nix-community/nixvim.git
synced 2025-11-08 19:46:06 +01:00
81 lines
2 KiB
Nix
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
|
|
);
|
|
};
|
|
}
|