From d47a771d19508385b298bc7561f54f3c46ce611b Mon Sep 17 00:00:00 2001 From: poz Date: Mon, 21 Jul 2025 10:53:09 +0200 Subject: [PATCH] languages: add and move to mkServersOption --- lib/types/default.nix | 2 +- lib/types/languages.nix | 9 ++++++- modules/plugins/languages/asm.nix | 8 ++----- modules/plugins/languages/astro.nix | 8 ++----- modules/plugins/languages/bash.nix | 8 ++----- modules/plugins/languages/clojure.nix | 8 ++----- modules/plugins/languages/dart.nix | 8 ++----- modules/plugins/languages/elixir.nix | 8 ++----- modules/plugins/languages/gleam.nix | 8 ++----- modules/plugins/languages/haskell.nix | 8 ++----- modules/plugins/languages/hcl.nix | 8 ++----- modules/plugins/languages/helm.nix | 8 ++----- modules/plugins/languages/java.nix | 8 ++----- modules/plugins/languages/julia.nix | 32 ++++++++++++------------- modules/plugins/languages/kotlin.nix | 8 ++----- modules/plugins/languages/lua.nix | 8 ++----- modules/plugins/languages/markdown.nix | 9 ++----- modules/plugins/languages/nim.nix | 9 ++----- modules/plugins/languages/nix.nix | 8 ++----- modules/plugins/languages/nu.nix | 9 ++----- modules/plugins/languages/ocaml.nix | 9 ++----- modules/plugins/languages/odin.nix | 9 ++----- modules/plugins/languages/php.nix | 9 ++----- modules/plugins/languages/python.nix | 8 ++----- modules/plugins/languages/r.nix | 9 ++----- modules/plugins/languages/ruby.nix | 9 ++----- modules/plugins/languages/sql.nix | 9 ++----- modules/plugins/languages/svelte.nix | 9 ++----- modules/plugins/languages/tailwind.nix | 8 ++----- modules/plugins/languages/terraform.nix | 9 ++----- modules/plugins/languages/typst.nix | 9 ++----- modules/plugins/languages/vala.nix | 8 ++----- modules/plugins/languages/wgsl.nix | 9 ++----- modules/plugins/languages/yaml.nix | 8 ++----- modules/plugins/languages/zig.nix | 9 ++----- 35 files changed, 89 insertions(+), 224 deletions(-) diff --git a/lib/types/default.nix b/lib/types/default.nix index 044a8221..5fcc6aba 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -9,6 +9,6 @@ in { inherit (typesDag) dagOf; inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption luaInline pluginType borderType; - inherit (typesLanguage) diagnostics mkGrammarOption; + inherit (typesLanguage) diagnostics mkGrammarOption mkServersOption; inherit (customTypes) char hexColor mergelessListOf; } diff --git a/lib/types/languages.nix b/lib/types/languages.nix index b1865c41..bc85b0a5 100644 --- a/lib/types/languages.nix +++ b/lib/types/languages.nix @@ -32,6 +32,13 @@ mkPackageOption pkgs ["${grammar} treesitter"] { default = ["vimPlugins" "nvim-treesitter" "builtGrammars" grammar]; }; + + mkServersOption = language: servers: defaultServers: + mkOption { + type = listOf (enum (attrNames servers)); + default = defaultServers; + description = "${language} LSP servers to use"; + }; in { - inherit diagnostics diagnosticSubmodule mkGrammarOption; + inherit diagnostics diagnosticSubmodule mkGrammarOption mkServersOption; } diff --git a/modules/plugins/languages/asm.nix b/modules/plugins/languages/asm.nix index cf101118..2b1962b9 100644 --- a/modules/plugins/languages/asm.nix +++ b/modules/plugins/languages/asm.nix @@ -8,7 +8,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) package enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.meta) getExe; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -33,11 +33,7 @@ in { lsp = { enable = mkEnableOption "Assembly LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Assembly LSP servers to use"; - }; + servers = mkServersOption "Assembly" servers defaultServers; }; }; config = mkIf cfg.enable (mkMerge [ diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index 917d21e5..395a3e3c 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -12,7 +12,7 @@ inherit (lib.types) enum either listOf package str; inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics; inherit (lib.generators) mkLuaInline; cfg = config.vim.languages.astro; @@ -90,11 +90,7 @@ in { lsp = { enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Astro LSP servers to use"; - }; + servers = mkServersOption "Astro" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index d22c5ada..f17f034b 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -11,7 +11,7 @@ inherit (lib.lists) isList; inherit (lib.types) enum either package listOf str bool; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) diagnostics mkGrammarOption; + inherit (lib.nvim.types) diagnostics mkGrammarOption mkServersOption; inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -56,11 +56,7 @@ in { lsp = { enable = mkEnableOption "Bash LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Bash LSP servers to use"; - }; + servers = mkServersOption "Bash" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/clojure.nix b/modules/plugins/languages/clojure.nix index 0ba2d741..1c06e18e 100644 --- a/modules/plugins/languages/clojure.nix +++ b/modules/plugins/languages/clojure.nix @@ -10,7 +10,7 @@ inherit (lib.meta) getExe; inherit (lib.lists) isList; inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -36,11 +36,7 @@ in { lsp = { enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Clojure LSP servers to use"; - }; + servers = mkServersOption "Clojure" servers defaultServers; }; }; diff --git a/modules/plugins/languages/dart.nix b/modules/plugins/languages/dart.nix index 748c78f9..41a524f3 100644 --- a/modules/plugins/languages/dart.nix +++ b/modules/plugins/languages/dart.nix @@ -13,7 +13,7 @@ inherit (lib.types) enum either listOf package nullOr str bool; inherit (lib.strings) optionalString; inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -53,11 +53,7 @@ in { lsp = { enable = mkEnableOption "Dart LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Dart LSP servers to use"; - }; + servers = mkServersOption "Dart" servers defaultServers; }; dap = { diff --git a/modules/plugins/languages/elixir.nix b/modules/plugins/languages/elixir.nix index 8def8c4d..5b77a3bf 100644 --- a/modules/plugins/languages/elixir.nix +++ b/modules/plugins/languages/elixir.nix @@ -11,7 +11,7 @@ inherit (lib.meta) getExe; inherit (lib.types) enum either listOf package str; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -62,11 +62,7 @@ in { lsp = { enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Elixir LSP servers to use"; - }; + servers = mkServersOption "Elixir" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/gleam.nix b/modules/plugins/languages/gleam.nix index e993a806..37c3cca4 100644 --- a/modules/plugins/languages/gleam.nix +++ b/modules/plugins/languages/gleam.nix @@ -11,7 +11,7 @@ inherit (lib.meta) getExe; inherit (lib.types) enum either listOf package str; inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.gleam; @@ -36,11 +36,7 @@ in { lsp = { enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Gleam LSP servers to use"; - }; + servers = mkServersOption "Gleam" servers defaultServers; }; }; diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix index 184a9a43..8d77bf5c 100644 --- a/modules/plugins/languages/haskell.nix +++ b/modules/plugins/languages/haskell.nix @@ -9,7 +9,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.strings) optionalString; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.dag) entryAfter entryBefore; inherit (lib.nvim.lua) expToLua; inherit (lib.meta) getExe'; @@ -76,11 +76,7 @@ in { lsp = { enable = mkEnableOption "Haskell LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Haskell LSP servers to use"; - }; + servers = mkServersOption "Haskell" servers defaultServers; }; dap = { diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index a7e0180e..03f10c8e 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -9,7 +9,7 @@ inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) package bool enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.hcl; @@ -41,11 +41,7 @@ in { lsp = { enable = mkEnableOption "HCL LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "HCL LSP servers to use"; - }; + servers = mkServersOption "HCL" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/helm.nix b/modules/plugins/languages/helm.nix index 0b19ecac..15c15eea 100644 --- a/modules/plugins/languages/helm.nix +++ b/modules/plugins/languages/helm.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.helm; @@ -48,11 +48,7 @@ in { lsp = { enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Helm LSP servers to use"; - }; + servers = mkServersOption "Helm" servers defaultServers; }; }; diff --git a/modules/plugins/languages/java.nix b/modules/plugins/languages/java.nix index 210f9566..2510f3b0 100644 --- a/modules/plugins/languages/java.nix +++ b/modules/plugins/languages/java.nix @@ -9,7 +9,7 @@ inherit (lib.meta) getExe; inherit (builtins) attrNames; inherit (lib.types) listOf enum; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.dag) entryBefore; inherit (lib.generators) mkLuaInline; @@ -71,11 +71,7 @@ in { lsp = { enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Java LSP servers to use"; - }; + servers = mkServersOption "Java" servers defaultServers; }; }; diff --git a/modules/plugins/languages/julia.nix b/modules/plugins/languages/julia.nix index 2b6cc829..e57c1d39 100644 --- a/modules/plugins/languages/julia.nix +++ b/modules/plugins/languages/julia.nix @@ -9,7 +9,7 @@ inherit (lib.types) listOf enum; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.dag) entryBefore; @@ -96,23 +96,23 @@ in { lsp = { enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = '' - Julia LSP servers to use + servers = + mkServersOption "Julia" servers defaultServers + // { + description = '' + Julia LSP servers to use - ::: {.note} - The entirety of Julia is bundled with nvf, if you enable this - option, since there is no way to provide only the LSP server. + ::: {.note} + The entirety of Julia is bundled with nvf, if you enable this + option, since there is no way to provide only the LSP server. - If you want to avoid that, you have to change - [](#opt-vim.languages.julia.lsp.package) to use the Julia binary - in {env}`PATH` (set it to `null`), and add the `LanguageServer` package to - Julia in your devshells. - ::: - ''; - }; + If you want to avoid that, you have to change + [](#opt-vim.languages.julia.lsp.package) to use the Julia binary + in {env}`PATH` (set it to `null`), and add the `LanguageServer` package to + Julia in your devshells. + ::: + ''; + }; }; }; }; diff --git a/modules/plugins/languages/kotlin.nix b/modules/plugins/languages/kotlin.nix index 0aaa4c15..8744d512 100644 --- a/modules/plugins/languages/kotlin.nix +++ b/modules/plugins/languages/kotlin.nix @@ -9,7 +9,7 @@ inherit (lib.meta) getExe' getExe; inherit (builtins) attrNames; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -62,11 +62,7 @@ in { lsp = { enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Kotlin LSP servers to use"; - }; + servers = mkServersOption "Kotlin" servers defaultServers; }; extraDiagnostics = { diff --git a/modules/plugins/languages/lua.nix b/modules/plugins/languages/lua.nix index 651fe640..2b0a213f 100644 --- a/modules/plugins/languages/lua.nix +++ b/modules/plugins/languages/lua.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) bool enum listOf package; - inherit (lib.nvim.types) diagnostics mkGrammarOption; + inherit (lib.nvim.types) diagnostics mkGrammarOption mkServersOption; inherit (lib.nvim.dag) entryBefore; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -63,11 +63,7 @@ in { lsp = { enable = mkEnableOption "Lua LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Lua LSP servers to use"; - }; + servers = mkServersOption "Lua" servers defaultServers; lazydev.enable = mkEnableOption "lazydev.nvim integration, useful for neovim plugin developers"; }; diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 203af919..4fb8b6c1 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -10,7 +10,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.types) bool enum package listOf str nullOr; inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption; + inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption mkServersOption; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -60,12 +60,7 @@ in { lsp = { enable = mkEnableOption "Markdown LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - description = "Markdown LSP servers to use"; - type = listOf (enum (attrNames servers)); - default = defaultServers; - }; + servers = mkServersOption "Markdown" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/nim.nix b/modules/plugins/languages/nim.nix index 9b7add53..00567442 100644 --- a/modules/plugins/languages/nim.nix +++ b/modules/plugins/languages/nim.nix @@ -9,7 +9,7 @@ inherit (lib.meta) getExe'; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -57,12 +57,7 @@ in { lsp = { enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Nim LSP servers to use"; - }; + servers = mkServersOption "Nim" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 57a24e7f..4506b41f 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -10,7 +10,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum package listOf; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.nix; @@ -97,11 +97,7 @@ in { lsp = { enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Nix LSP servers to use"; - }; + servers = mkServersOption "Nix" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/nu.nix b/modules/plugins/languages/nu.nix index 73114100..9695d648 100644 --- a/modules/plugins/languages/nu.nix +++ b/modules/plugins/languages/nu.nix @@ -7,7 +7,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.types) enum listOf; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -44,12 +44,7 @@ in { lsp = { enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Nu LSP servers to use"; - }; + servers = mkServersOption "Nu" servers defaultServers; }; }; diff --git a/modules/plugins/languages/ocaml.nix b/modules/plugins/languages/ocaml.nix index 19a78133..1b60de0b 100644 --- a/modules/plugins/languages/ocaml.nix +++ b/modules/plugins/languages/ocaml.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -72,12 +72,7 @@ in { lsp = { enable = mkEnableOption "OCaml LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "OCaml LSP servers to use"; - }; + servers = mkServersOption "OCaml" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/odin.nix b/modules/plugins/languages/odin.nix index c97fab41..6d34728d 100644 --- a/modules/plugins/languages/odin.nix +++ b/modules/plugins/languages/odin.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.types) listOf enum; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -44,12 +44,7 @@ in { lsp = { enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Odin LSP servers to use"; - }; + servers = mkServersOption "Odin" servers defaultServers; }; }; diff --git a/modules/plugins/languages/php.nix b/modules/plugins/languages/php.nix index f42ead9c..be29c94d 100644 --- a/modules/plugins/languages/php.nix +++ b/modules/plugins/languages/php.nix @@ -9,7 +9,7 @@ inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -75,12 +75,7 @@ in { lsp = { enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "PHP LSP servers to use"; - }; + servers = mkServersOption "PHP" servers defaultServers; }; }; diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index 305cbe75..e7cf26d7 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -12,6 +12,7 @@ inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; + inherit (lib.nvim.types) mkServersOption; cfg = config.vim.languages.python; @@ -227,12 +228,7 @@ in { lsp = { enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Python LSP servers to use"; - }; + servers = mkServersOption "Python" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index b0ce1097..18e5d5bf 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf package; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -75,12 +75,7 @@ in { lsp = { enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "R LSP servers to use"; - }; + servers = mkServersOption "R" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 16ae5207..46218307 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -8,7 +8,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics; inherit (lib.types) listOf package enum; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -75,12 +75,7 @@ in { lsp = { enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Ruby LSP servers to use"; - }; + servers = mkServersOption "Ruby" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/sql.nix b/modules/plugins/languages/sql.nix index c921e557..ad254c27 100644 --- a/modules/plugins/languages/sql.nix +++ b/modules/plugins/languages/sql.nix @@ -9,7 +9,7 @@ inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) enum listOf package str; - inherit (lib.nvim.types) diagnostics; + inherit (lib.nvim.types) diagnostics mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -76,12 +76,7 @@ in { lsp = { enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "SQL LSP servers to use"; - }; + servers = mkServersOption "SQL" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index 956c6cc5..3c209b4f 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -88,12 +88,7 @@ in { lsp = { enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Svelte LSP servers to use"; - }; + servers = mkServersOption "Svelte" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/tailwind.nix b/modules/plugins/languages/tailwind.nix index 69b33924..eec0a6ec 100644 --- a/modules/plugins/languages/tailwind.nix +++ b/modules/plugins/languages/tailwind.nix @@ -11,6 +11,7 @@ inherit (lib.types) enum listOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; + inherit (lib.nvim.types) mkServersOption; cfg = config.vim.languages.tailwind; @@ -152,12 +153,7 @@ in { lsp = { enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Tailwindcss LSP servers to use"; - }; + servers = mkServersOption "Tailwindcss" servers defaultServers; }; }; diff --git a/modules/plugins/languages/terraform.nix b/modules/plugins/languages/terraform.nix index b619eb5d..14e9f49a 100644 --- a/modules/plugins/languages/terraform.nix +++ b/modules/plugins/languages/terraform.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.terraform; @@ -34,12 +34,7 @@ in { lsp = { enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Terraform LSP servers to use"; - }; + servers = mkServersOption "Terraform" servers defaultServers; }; }; config = mkIf cfg.enable (mkMerge [ diff --git a/modules/plugins/languages/typst.nix b/modules/plugins/languages/typst.nix index ebe4cc75..3c36158c 100644 --- a/modules/plugins/languages/typst.nix +++ b/modules/plugins/languages/typst.nix @@ -9,7 +9,7 @@ inherit (lib.types) nullOr enum attrsOf listOf package str; inherit (lib.attrsets) attrNames; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption; + inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption mkServersOption; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -112,12 +112,7 @@ in { lsp = { enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Typst LSP servers to use"; - }; + servers = mkServersOption "Typst" servers defaultServers; }; format = { diff --git a/modules/plugins/languages/vala.nix b/modules/plugins/languages/vala.nix index 4f941008..f4445375 100644 --- a/modules/plugins/languages/vala.nix +++ b/modules/plugins/languages/vala.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -72,11 +72,7 @@ in { lsp = { enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Vala LSP servers to use"; - }; + servers = mkServersOption "Vala" servers defaultServers; }; }; diff --git a/modules/plugins/languages/wgsl.nix b/modules/plugins/languages/wgsl.nix index e706913b..ddcd4c70 100644 --- a/modules/plugins/languages/wgsl.nix +++ b/modules/plugins/languages/wgsl.nix @@ -6,7 +6,7 @@ }: let inherit (builtins) attrNames; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.options) mkEnableOption mkOption; inherit (lib.types) enum listOf; inherit (lib.meta) getExe; @@ -35,12 +35,7 @@ in { lsp = { enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "WGSL LSP servers to use"; - }; + servers = mkServersOption "WGSL" servers defaultServers; }; }; diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix index 8aeb44fa..d56b3176 100644 --- a/modules/plugins/languages/yaml.nix +++ b/modules/plugins/languages/yaml.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.yaml; @@ -55,11 +55,7 @@ in { lsp = { enable = mkEnableOption "Yaml LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Yaml LSP servers to use"; - }; + servers = mkServersOption "Yaml" servers defaultServers; }; }; diff --git a/modules/plugins/languages/zig.nix b/modules/plugins/languages/zig.nix index d1ef8c27..1b28c7b8 100644 --- a/modules/plugins/languages/zig.nix +++ b/modules/plugins/languages/zig.nix @@ -8,7 +8,7 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge mkDefault; inherit (lib.types) bool listOf package enum; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption mkServersOption; inherit (lib.meta) getExe; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -65,12 +65,7 @@ in { lsp = { enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;}; - - servers = mkOption { - type = listOf (enum (attrNames servers)); - default = defaultServers; - description = "Zig LSP servers to use"; - }; + servers = mkServersOption "Zig" servers defaultServers; }; dap = {