plugins/lsp: deprecate installLanguageServer option in favor of setting package = null

This commit is contained in:
Gaetan Lepage 2024-02-14 11:22:33 +01:00 committed by Gaétan Lepage
parent 5a744a7006
commit 183eac72a9
3 changed files with 144 additions and 68 deletions

View file

@ -8,9 +8,97 @@
with lib; let
cfg = config.plugins.lsp;
in {
imports = [
imports =
[
./language-servers
];
]
# TODO: introduced 2024-02-14, remove on 2024-03-14
++ (
map
(
serverName:
mkRemovedOptionModule
["plugins" "lsp" "servers" serverName "installLanguageServer"]
"If you want to not install the language server package, set `plugins.lsp.servers.${serverName}.package` to `false`."
)
[
"astro"
"bashls"
"beancount"
"biome"
"ccls"
"clangd"
"clojure-lsp"
"cmake"
"csharp-ls"
"cssls"
"dagger"
"dartls"
"denols"
"dhall-lsp-server"
"digestif"
"dockerls"
"efm"
"elixirls"
"elmls"
"emmet_ls"
"eslint"
"fsautocomplete"
"futhark-lsp"
"gdscript"
"gleam"
"gopls"
"graphql"
"helm-ls"
"hls"
"html"
"htmx"
"intelephense"
"java-language-server"
"jsonls"
"julials"
"kotlin-language-server"
"leanls"
"lemminx"
"ltex"
"lua-ls"
"marksman"
"metals"
"nil_ls"
"nixd"
"nushell"
"ols"
"omnisharp"
"perlpls"
"pest_ls"
"phpactor"
"prismals"
"prolog-ls"
"purescriptls"
"pylsp"
"pylyzer"
"pyright"
"rnix-lsp"
"ruff-lsp"
"rust-analyzer"
"solargraph"
"sourcekit"
"svelte"
"tailwindcss"
"taplo"
"templ"
"terraformls"
"texlab"
"tsserver"
"typst-lsp"
"vala-ls"
"vls"
"volar"
"vuels"
"yamlls"
"zls"
]
);
options = {
plugins.lsp = {

View file

@ -19,32 +19,21 @@
}:
with lib; let
cfg = config.plugins.lsp.servers.${name};
packageOption =
if package != null
then {
package = mkOption {
default = package;
type = types.package;
};
}
else {};
in {
options = {
plugins.lsp.servers.${name} =
{
plugins.lsp.servers.${name} = {
enable = mkEnableOption description;
installLanguageServer = mkOption {
type = types.bool;
default = true;
description = "Whether nixvim should take care of installing the language server.";
package = mkOption {
default = package;
type = types.nullOr types.package;
description = "Which package to use for ${name}.";
};
cmd = mkOption {
type = with types; nullOr (listOf str);
default =
if cfg.installLanguageServer
if (cfg.package or null) != null
then cmd cfg
else null;
};
@ -91,8 +80,7 @@
type = types.attrs;
description = "Extra options for the ${name} language server.";
};
}
// packageOption;
};
};
config =
@ -100,7 +88,7 @@
{
extraPackages =
optional
(cfg.installLanguageServer && (package != null))
(cfg.package != null)
cfg.package;
plugins.lsp.enabledServers = [

View file

@ -40,7 +40,7 @@
# Do not install the language server using nixvim
gopls = {
enable = true;
installLanguageServer = false;
package = null;
};
nil_ls.enable = true;
rust-analyzer = {