From 9407a3e1c6d046dc4c292b2f6ee649ecafa40d5e Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sat, 19 Jul 2025 01:33:04 +0200 Subject: [PATCH] languages: coerce server type to list for compat --- lib/types/custom.nix | 5 ++++- lib/types/default.nix | 2 +- modules/plugins/languages/asm.nix | 6 +++--- modules/plugins/languages/astro.nix | 8 +++----- modules/plugins/languages/bash.nix | 10 ++++------ modules/plugins/languages/clang.nix | 6 +++--- modules/plugins/languages/csharp.nix | 6 +++--- modules/plugins/languages/css.nix | 4 ++-- modules/plugins/languages/dart.nix | 8 +++----- modules/plugins/languages/elixir.nix | 8 +++----- modules/plugins/languages/fsharp.nix | 6 +++--- modules/plugins/languages/gleam.nix | 8 +++----- modules/plugins/languages/go.nix | 4 ++-- modules/plugins/languages/helm.nix | 6 +++--- modules/plugins/languages/julia.nix | 6 +++--- modules/plugins/languages/markdown.nix | 4 ++-- modules/plugins/languages/nim.nix | 6 +++--- modules/plugins/languages/nix.nix | 6 +++--- modules/plugins/languages/nu.nix | 6 +++--- modules/plugins/languages/ocaml.nix | 6 +++--- modules/plugins/languages/odin.nix | 6 +++--- modules/plugins/languages/php.nix | 6 +++--- modules/plugins/languages/python.nix | 5 +++-- modules/plugins/languages/r.nix | 8 ++++---- modules/plugins/languages/ruby.nix | 6 +++--- modules/plugins/languages/sql.nix | 6 +++--- modules/plugins/languages/svelte.nix | 6 +++--- modules/plugins/languages/tailwind.nix | 5 +++-- modules/plugins/languages/ts.nix | 4 ++-- modules/plugins/languages/typst.nix | 4 ++-- modules/plugins/languages/vala.nix | 6 +++--- modules/plugins/languages/wgsl.nix | 6 +++--- modules/plugins/languages/yaml.nix | 6 +++--- modules/plugins/languages/zig.nix | 6 +++--- 34 files changed, 98 insertions(+), 103 deletions(-) diff --git a/lib/types/custom.nix b/lib/types/custom.nix index c42cd2ce..ae509f59 100644 --- a/lib/types/custom.nix +++ b/lib/types/custom.nix @@ -1,7 +1,8 @@ {lib}: let inherit (lib.options) mergeEqualOption; + inherit (lib.lists) singleton; inherit (lib.strings) isString stringLength match; - inherit (lib.types) listOf mkOptionType; + inherit (lib.types) listOf mkOptionType coercedTo; in { mergelessListOf = elemType: let super = listOf elemType; @@ -27,4 +28,6 @@ in { description = "RGB color in hex format"; check = v: isString v && (match "#?[0-9a-fA-F]{6}" v) != null; }; + + singleOrListOf = t: coercedTo t singleton (listOf t); } diff --git a/lib/types/default.nix b/lib/types/default.nix index 044a8221..c91473a2 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -10,5 +10,5 @@ in { inherit (typesDag) dagOf; inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption luaInline pluginType borderType; inherit (typesLanguage) diagnostics mkGrammarOption; - inherit (customTypes) char hexColor mergelessListOf; + inherit (customTypes) char hexColor mergelessListOf singleOrListOf; } diff --git a/modules/plugins/languages/asm.nix b/modules/plugins/languages/asm.nix index c0887d77..9d296755 100644 --- a/modules/plugins/languages/asm.nix +++ b/modules/plugins/languages/asm.nix @@ -7,8 +7,8 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) package enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.meta) getExe; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -34,7 +34,7 @@ in { lsp = { enable = mkEnableOption "Assembly LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Assembly LSP server to use"; }; diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index 35de328b..a16f286e 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -7,12 +7,10 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; inherit (lib.meta) getExe; - inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.lua) expToLua; + inherit (lib.types) enum package; inherit (lib.nvim.attrsets) mapListToAttrs; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.types) mkGrammarOption diagnostics singleOrListOf; inherit (lib.generators) mkLuaInline; cfg = config.vim.languages.astro; @@ -91,7 +89,7 @@ in { lsp = { enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Astro LSP server to use"; }; diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index e34edccb..4597666a 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -5,14 +5,12 @@ ... }: let inherit (builtins) attrNames; - inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.options) mkOption mkEnableOption; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; - inherit (lib.types) enum either package listOf str bool; + inherit (lib.types) enum package bool; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) diagnostics mkGrammarOption; - inherit (lib.nvim.lua) expToLua; + inherit (lib.nvim.types) diagnostics mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.bash; @@ -57,7 +55,7 @@ in { lsp = { enable = mkEnableOption "Bash LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Bash LSP server to use"; }; diff --git a/modules/plugins/languages/clang.nix b/modules/plugins/languages/clang.nix index 299731f6..487bc151 100644 --- a/modules/plugins/languages/clang.nix +++ b/modules/plugins/languages/clang.nix @@ -6,11 +6,11 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) bool enum package listOf; + inherit (lib.types) bool enum package; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.dag) entryAfter; @@ -198,7 +198,7 @@ in { servers = mkOption { description = "The clang LSP server to use"; - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; }; }; diff --git a/modules/plugins/languages/csharp.nix b/modules/plugins/languages/csharp.nix index ea09892a..a9708cae 100644 --- a/modules/plugins/languages/csharp.nix +++ b/modules/plugins/languages/csharp.nix @@ -7,12 +7,12 @@ }: let inherit (builtins) attrNames concatMap; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) listOf enum; + inherit (lib.types) enum; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.strings) optionalString; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -148,7 +148,7 @@ in { enable = mkEnableOption "C# LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { description = "C# LSP server to use"; - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; }; }; diff --git a/modules/plugins/languages/css.nix b/modules/plugins/languages/css.nix index 1b0376ad..2d767ffc 100644 --- a/modules/plugins/languages/css.nix +++ b/modules/plugins/languages/css.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum package; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.css; diff --git a/modules/plugins/languages/dart.nix b/modules/plugins/languages/dart.nix index de267e7c..52dcd560 100644 --- a/modules/plugins/languages/dart.nix +++ b/modules/plugins/languages/dart.nix @@ -8,12 +8,10 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.trivial) boolToString; - inherit (lib.lists) isList; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) enum either listOf package nullOr str bool; + inherit (lib.types) enum package nullOr str bool; inherit (lib.strings) optionalString; - inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -54,7 +52,7 @@ in { lsp = { enable = mkEnableOption "Dart LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Dart LSP server to use"; }; diff --git a/modules/plugins/languages/elixir.nix b/modules/plugins/languages/elixir.nix index 5204c96b..20d6c668 100644 --- a/modules/plugins/languages/elixir.nix +++ b/modules/plugins/languages/elixir.nix @@ -7,12 +7,10 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; inherit (lib.meta) getExe; - inherit (lib.types) enum either listOf package str; + inherit (lib.types) enum package; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.nvim.lua) expToLua; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -63,7 +61,7 @@ in { lsp = { enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Elixir LSP server to use"; }; diff --git a/modules/plugins/languages/fsharp.nix b/modules/plugins/languages/fsharp.nix index 5a6f8e4e..9ead9a48 100644 --- a/modules/plugins/languages/fsharp.nix +++ b/modules/plugins/languages/fsharp.nix @@ -6,11 +6,11 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) listOf package enum; + inherit (lib.types) package enum; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; defaultServer = ["fsautocomplete"]; @@ -72,7 +72,7 @@ in { lsp = { enable = mkEnableOption "F# LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServer; description = "F# LSP server to use"; }; diff --git a/modules/plugins/languages/gleam.nix b/modules/plugins/languages/gleam.nix index 26a001eb..984d21aa 100644 --- a/modules/plugins/languages/gleam.nix +++ b/modules/plugins/languages/gleam.nix @@ -7,11 +7,9 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; inherit (lib.meta) getExe; - inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.gleam; @@ -37,7 +35,7 @@ in { lsp = { enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Gleam LSP server to use"; }; diff --git a/modules/plugins/languages/go.nix b/modules/plugins/languages/go.nix index 3ecc5d28..5b1aeebb 100644 --- a/modules/plugins/languages/go.nix +++ b/modules/plugins/languages/go.nix @@ -9,8 +9,8 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; - inherit (lib.types) bool enum package listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) bool enum package; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.attrsets) mapListToAttrs; diff --git a/modules/plugins/languages/helm.nix b/modules/plugins/languages/helm.nix index f5fe7b64..1971eb31 100644 --- a/modules/plugins/languages/helm.nix +++ b/modules/plugins/languages/helm.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.helm; @@ -49,7 +49,7 @@ in { lsp = { enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Helm LSP server to use"; }; diff --git a/modules/plugins/languages/julia.nix b/modules/plugins/languages/julia.nix index d5310613..6db31289 100644 --- a/modules/plugins/languages/julia.nix +++ b/modules/plugins/languages/julia.nix @@ -6,10 +6,10 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) listOf enum; + inherit (lib.types) enum; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.dag) entryBefore; @@ -97,7 +97,7 @@ in { lsp = { enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = '' Julia LSP Server to Use diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 78e9d67b..0a3f0945 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 singleOrListOf; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -63,7 +63,7 @@ in { servers = mkOption { description = "Markdown LSP server to use"; - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; }; }; diff --git a/modules/plugins/languages/nim.nix b/modules/plugins/languages/nim.nix index 289c9691..b4fab356 100644 --- a/modules/plugins/languages/nim.nix +++ b/modules/plugins/languages/nim.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.meta) getExe'; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum package; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -59,7 +59,7 @@ in { enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Nim LSP server to use"; }; diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index c460ca50..6127f78e 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -9,8 +9,8 @@ inherit (lib.meta) getExe; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum package listOf; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.types) enum package; + inherit (lib.nvim.types) mkGrammarOption diagnostics singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.nix; @@ -98,7 +98,7 @@ in { lsp = { enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Nix LSP server to use"; }; diff --git a/modules/plugins/languages/nu.nix b/modules/plugins/languages/nu.nix index 55711104..d58e39a3 100644 --- a/modules/plugins/languages/nu.nix +++ b/modules/plugins/languages/nu.nix @@ -5,9 +5,9 @@ ... }: let inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) enum listOf; + inherit (lib.types) enum; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -46,7 +46,7 @@ in { enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Nu LSP server to use"; }; diff --git a/modules/plugins/languages/ocaml.nix b/modules/plugins/languages/ocaml.nix index a8f964e9..cf9fdd93 100644 --- a/modules/plugins/languages/ocaml.nix +++ b/modules/plugins/languages/ocaml.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum package; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -74,7 +74,7 @@ in { enable = mkEnableOption "OCaml LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "OCaml LSP server to use"; }; diff --git a/modules/plugins/languages/odin.nix b/modules/plugins/languages/odin.nix index 1b1bd751..f18a3383 100644 --- a/modules/plugins/languages/odin.nix +++ b/modules/plugins/languages/odin.nix @@ -7,9 +7,9 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) listOf enum; + inherit (lib.types) enum; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -46,7 +46,7 @@ in { enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Odin LSP server to use"; }; diff --git a/modules/plugins/languages/php.nix b/modules/plugins/languages/php.nix index 9eaae168..353b1137 100644 --- a/modules/plugins/languages/php.nix +++ b/modules/plugins/languages/php.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -77,7 +77,7 @@ in { enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "PHP LSP server to use"; }; diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index aba4cd7e..6f97f70c 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -8,8 +8,9 @@ inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum listOf package str bool; + inherit (lib.types) enum package bool; inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib.nvim.types) singleOrListOf; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; @@ -229,7 +230,7 @@ in { enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Python LSP server to use"; }; diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index 9f28900a..873edaa3 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -5,11 +5,11 @@ ... }: let inherit (builtins) attrNames; - inherit (lib.options) mkEnableOption mkOption literalExpression; + inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum listOf package; + inherit (lib.types) enum package; inherit (lib.meta) getExe; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -77,7 +77,7 @@ in { enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "R LSP server to use"; }; diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 6b2e63da..94e27277 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption diagnostics; - inherit (lib.types) listOf package enum; + inherit (lib.nvim.types) mkGrammarOption diagnostics singleOrListOf; + inherit (lib.types) package enum; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.ruby; @@ -77,7 +77,7 @@ in { enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Ruby LSP server to use"; }; diff --git a/modules/plugins/languages/sql.nix b/modules/plugins/languages/sql.nix index 7321dcf5..c1ea6678 100644 --- a/modules/plugins/languages/sql.nix +++ b/modules/plugins/languages/sql.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) enum listOf package str; - inherit (lib.nvim.types) diagnostics; + inherit (lib.types) enum package str; + inherit (lib.nvim.types) diagnostics singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -78,7 +78,7 @@ in { enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "SQL LSP server to use"; }; diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index a876f65d..42e6d320 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf package; - inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.types) enum package; + inherit (lib.nvim.types) mkGrammarOption diagnostics singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -90,7 +90,7 @@ in { enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Svelte LSP server to use"; }; diff --git a/modules/plugins/languages/tailwind.nix b/modules/plugins/languages/tailwind.nix index 601f0f88..a5950636 100644 --- a/modules/plugins/languages/tailwind.nix +++ b/modules/plugins/languages/tailwind.nix @@ -8,8 +8,9 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf; + inherit (lib.types) enum; inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib.nvim.types) singleOrListOf; inherit (lib.generators) mkLuaInline; cfg = config.vim.languages.tailwind; @@ -154,7 +155,7 @@ in { enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Tailwindcss LSP server to use"; }; diff --git a/modules/plugins/languages/ts.nix b/modules/plugins/languages/ts.nix index 9b99de07..9f15ff24 100644 --- a/modules/plugins/languages/ts.nix +++ b/modules/plugins/languages/ts.nix @@ -8,11 +8,11 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf package bool; + inherit (lib.types) enum package bool; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.types) mkGrammarOption diagnostics mkPluginSetupOption; + inherit (lib.nvim.types) mkGrammarOption diagnostics mkPluginSetupOption singleOrListOf; inherit (lib.nvim.dag) entryAnywhere entryBefore; cfg = config.vim.languages.ts; diff --git a/modules/plugins/languages/typst.nix b/modules/plugins/languages/typst.nix index 2bc4af42..fbeb0ce2 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 singleOrListOf; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -114,7 +114,7 @@ in { enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Typst LSP server to use"; }; diff --git a/modules/plugins/languages/vala.nix b/modules/plugins/languages/vala.nix index 85058e32..722b0d3b 100644 --- a/modules/plugins/languages/vala.nix +++ b/modules/plugins/languages/vala.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.generators) mkLuaInline; @@ -73,7 +73,7 @@ in { lsp = { enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Vala LSP server to use"; }; diff --git a/modules/plugins/languages/wgsl.nix b/modules/plugins/languages/wgsl.nix index 3b278a27..ceeb7e9e 100644 --- a/modules/plugins/languages/wgsl.nix +++ b/modules/plugins/languages/wgsl.nix @@ -6,9 +6,9 @@ }: let inherit (builtins) attrNames; inherit (lib.modules) mkIf mkMerge; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) enum listOf; + inherit (lib.types) enum; inherit (lib.meta) getExe; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -37,7 +37,7 @@ in { enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "WGSL LSP server to use"; }; diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix index de503e9c..1869b1c1 100644 --- a/modules/plugins/languages/yaml.nix +++ b/modules/plugins/languages/yaml.nix @@ -8,8 +8,8 @@ inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.types) enum listOf; - inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.types) enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.yaml; @@ -56,7 +56,7 @@ in { lsp = { enable = mkEnableOption "Yaml LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Yaml LSP server to use"; }; diff --git a/modules/plugins/languages/zig.nix b/modules/plugins/languages/zig.nix index db38cc51..966e9369 100644 --- a/modules/plugins/languages/zig.nix +++ b/modules/plugins/languages/zig.nix @@ -7,8 +7,8 @@ inherit (builtins) attrNames; 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.types) bool package enum; + inherit (lib.nvim.types) mkGrammarOption singleOrListOf; inherit (lib.meta) getExe; inherit (lib.nvim.attrsets) mapListToAttrs; @@ -67,7 +67,7 @@ in { enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { - type = listOf (enum (attrNames servers)); + type = singleOrListOf (enum (attrNames servers)); default = defaultServers; description = "Zig LSP server to use"; };