languages/kotlin: refactor lsp.servers to use lsp/presets/<name>

This commit is contained in:
Snoweuph 2026-04-11 23:43:22 +02:00
commit e4be1e6f0f
No known key found for this signature in database
GPG key ID: BEFC41DA223CEC55

View file

@ -6,44 +6,16 @@
}: let }: let
inherit (lib.options) literalExpression mkEnableOption mkOption; inherit (lib.options) literalExpression mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe' getExe; inherit (lib.meta) getExe;
inherit (builtins) attrNames; inherit (lib) genAttrs;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.types) mkGrammarOption diagnostics;
inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.kotlin; cfg = config.vim.languages.kotlin;
defaultServers = ["kotlin-language-server"]; defaultServers = ["kotlin-language-server"];
servers = { servers = ["kotlin-language-server"];
kotlin-language-server = {
enable = true;
cmd = [(getExe' pkgs.kotlin-language-server "kotlin-language-server")];
filetypes = ["kotlin"];
root_markers = [
"settings.gradle" # Gradle (multi-project)
"settings.gradle.kts" # Gradle (multi-project)
"build.xml" # Ant
"pom.xml" # Maven
"build.gradle" # Gradle
"build.gradle.kts" # gradle
];
init_options = {
storagePath = mkLuaInline "
vim.fs.root(vim.fn.expand '%:p:h',
{
'settings.gradle', -- Gradle (multi-project)
'settings.gradle.kts', -- Gradle (multi-project)
'build.xml', -- Ant
'pom.xml', -- Maven
'build.gradle', -- Gradle
'build.gradle.kts', -- Gradle
}
)";
};
};
};
defaultDiagnosticsProvider = ["ktlint"]; defaultDiagnosticsProvider = ["ktlint"];
diagnosticsProviders = { diagnosticsProviders = {
@ -73,7 +45,7 @@ in {
defaultText = literalExpression "config.vim.lsp.enable"; defaultText = literalExpression "config.vim.lsp.enable";
}; };
servers = mkOption { servers = mkOption {
type = listOf (enum (attrNames servers)); type = listOf (enum servers);
default = defaultServers; default = defaultServers;
description = "Kotlin LSP server to use"; description = "Kotlin LSP server to use";
}; };
@ -112,12 +84,12 @@ in {
}) })
(mkIf cfg.lsp.enable { (mkIf cfg.lsp.enable {
vim.lsp.servers = vim.lsp = {
mapListToAttrs (n: { presets = genAttrs cfg.lsp.servers (_: {enable = true;});
name = n; servers = genAttrs cfg.lsp.servers (_: {
value = servers.${n}; filetypes = ["kotlin"];
}) });
cfg.lsp.servers; };
}) })
]); ]);
} }