languages: add and move to mkServersOption

This commit is contained in:
poz 2025-07-21 10:53:09 +02:00
commit d47a771d19
No known key found for this signature in database
35 changed files with 89 additions and 224 deletions

View file

@ -9,6 +9,6 @@
in { in {
inherit (typesDag) dagOf; inherit (typesDag) dagOf;
inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption luaInline pluginType borderType; inherit (typesPlugin) pluginsOpt extraPluginType mkPluginSetupOption luaInline pluginType borderType;
inherit (typesLanguage) diagnostics mkGrammarOption; inherit (typesLanguage) diagnostics mkGrammarOption mkServersOption;
inherit (customTypes) char hexColor mergelessListOf; inherit (customTypes) char hexColor mergelessListOf;
} }

View file

@ -32,6 +32,13 @@
mkPackageOption pkgs ["${grammar} treesitter"] { mkPackageOption pkgs ["${grammar} treesitter"] {
default = ["vimPlugins" "nvim-treesitter" "builtGrammars" grammar]; 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 { in {
inherit diagnostics diagnosticSubmodule mkGrammarOption; inherit diagnostics diagnosticSubmodule mkGrammarOption mkServersOption;
} }

View file

@ -8,7 +8,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) package enum listOf; inherit (lib.types) package enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -33,11 +33,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Assembly LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Assembly LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Assembly" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Assembly LSP servers to use";
};
}; };
}; };
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [

View file

@ -12,7 +12,7 @@
inherit (lib.types) enum either listOf package str; inherit (lib.types) enum either listOf package str;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
cfg = config.vim.languages.astro; cfg = config.vim.languages.astro;
@ -90,11 +90,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Astro" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Astro LSP servers to use";
};
}; };
format = { format = {

View file

@ -11,7 +11,7 @@
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.types) enum either package listOf str bool; inherit (lib.types) enum either package listOf str bool;
inherit (lib.generators) mkLuaInline; 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.lua) expToLua;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -56,11 +56,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Bash LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Bash LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Bash" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Bash LSP servers to use";
};
}; };
format = { format = {

View file

@ -10,7 +10,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.lists) isList; inherit (lib.lists) isList;
inherit (lib.types) enum either listOf package str; 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.lua) expToLua;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -36,11 +36,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Clojure" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Clojure LSP servers to use";
};
}; };
}; };

View file

@ -13,7 +13,7 @@
inherit (lib.types) enum either listOf package nullOr str bool; inherit (lib.types) enum either listOf package nullOr str bool;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -53,11 +53,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Dart LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Dart LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Dart" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Dart LSP servers to use";
};
}; };
dap = { dap = {

View file

@ -11,7 +11,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum either listOf package str; inherit (lib.types) enum either listOf package str;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.dag) entryAnywhere;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -62,11 +62,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Elixir" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Elixir LSP servers to use";
};
}; };
format = { format = {

View file

@ -11,7 +11,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum either listOf package str; inherit (lib.types) enum either listOf package str;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.gleam; cfg = config.vim.languages.gleam;
@ -36,11 +36,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Gleam" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Gleam LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.modules) mkIf mkMerge; 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.dag) entryAfter entryBefore;
inherit (lib.nvim.lua) expToLua; inherit (lib.nvim.lua) expToLua;
inherit (lib.meta) getExe'; inherit (lib.meta) getExe';
@ -76,11 +76,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Haskell LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Haskell LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Haskell" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Haskell LSP servers to use";
};
}; };
dap = { dap = {

View file

@ -9,7 +9,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) package bool enum listOf; inherit (lib.types) package bool enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.hcl; cfg = config.vim.languages.hcl;
@ -41,11 +41,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "HCL LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "HCL LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "HCL" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "HCL LSP servers to use";
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.helm; cfg = config.vim.languages.helm;
@ -48,11 +48,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Helm" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Helm LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.types) listOf enum; inherit (lib.types) listOf enum;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.nvim.dag) entryBefore; inherit (lib.nvim.dag) entryBefore;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -71,11 +71,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Java" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Java LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.types) listOf enum; inherit (lib.types) listOf enum;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.nvim.dag) entryBefore; inherit (lib.nvim.dag) entryBefore;
@ -96,23 +96,23 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Java LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers =
type = listOf (enum (attrNames servers)); mkServersOption "Julia" servers defaultServers
default = defaultServers; // {
description = '' description = ''
Julia LSP servers to use Julia LSP servers to use
::: {.note} ::: {.note}
The entirety of Julia is bundled with nvf, if you enable this The entirety of Julia is bundled with nvf, if you enable this
option, since there is no way to provide only the LSP server. option, since there is no way to provide only the LSP server.
If you want to avoid that, you have to change If you want to avoid that, you have to change
[](#opt-vim.languages.julia.lsp.package) to use the Julia binary [](#opt-vim.languages.julia.lsp.package) to use the Julia binary
in {env}`PATH` (set it to `null`), and add the `LanguageServer` package to in {env}`PATH` (set it to `null`), and add the `LanguageServer` package to
Julia in your devshells. Julia in your devshells.
::: :::
''; '';
}; };
}; };
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.meta) getExe' getExe; inherit (lib.meta) getExe' getExe;
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -62,11 +62,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Kotlin" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Kotlin LSP servers to use";
};
}; };
extraDiagnostics = { extraDiagnostics = {

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) bool enum listOf package; 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.dag) entryBefore;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -63,11 +63,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Lua LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Lua LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Lua" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Lua LSP servers to use";
};
lazydev.enable = mkEnableOption "lazydev.nvim integration, useful for neovim plugin developers"; lazydev.enable = mkEnableOption "lazydev.nvim integration, useful for neovim plugin developers";
}; };

View file

@ -10,7 +10,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) bool enum package listOf str nullOr; inherit (lib.types) bool enum package listOf str nullOr;
inherit (lib.nvim.lua) toLuaObject; 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.dag) entryAnywhere;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -60,12 +60,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Markdown LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Markdown LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Markdown" servers defaultServers;
servers = mkOption {
description = "Markdown LSP servers to use";
type = listOf (enum (attrNames servers));
default = defaultServers;
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.meta) getExe'; inherit (lib.meta) getExe';
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf package; inherit (lib.types) enum listOf package;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -57,12 +57,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Nim" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Nim LSP servers to use";
};
}; };
format = { format = {

View file

@ -10,7 +10,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum package listOf; inherit (lib.types) enum package listOf;
inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.types) mkGrammarOption mkServersOption diagnostics;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.nix; cfg = config.vim.languages.nix;
@ -97,11 +97,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Nix" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Nix LSP servers to use";
};
}; };
format = { format = {

View file

@ -7,7 +7,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -44,12 +44,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Nu" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Nu LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf package; inherit (lib.types) enum listOf package;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -72,12 +72,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "OCaml LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "OCaml LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "OCaml" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "OCaml LSP servers to use";
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) listOf enum; inherit (lib.types) listOf enum;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -44,12 +44,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Odin" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Odin LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -75,12 +75,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "PHP" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "PHP LSP servers to use";
};
}; };
}; };

View file

@ -12,6 +12,7 @@
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.dag) entryBefore; inherit (lib.nvim.dag) entryBefore;
inherit (lib.nvim.types) mkServersOption;
cfg = config.vim.languages.python; cfg = config.vim.languages.python;
@ -227,12 +228,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Python" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Python LSP servers to use";
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf package; inherit (lib.types) enum listOf package;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -75,12 +75,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "R" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "R LSP servers to use";
};
}; };
format = { format = {

View file

@ -8,7 +8,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; 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.types) listOf package enum;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -75,12 +75,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Ruby" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Ruby LSP servers to use";
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) enum listOf package str; 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.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -76,12 +76,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "SQL" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "SQL LSP servers to use";
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf package; 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.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -88,12 +88,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Svelte" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Svelte LSP servers to use";
};
}; };
format = { format = {

View file

@ -11,6 +11,7 @@
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.types) mkServersOption;
cfg = config.vim.languages.tailwind; cfg = config.vim.languages.tailwind;
@ -152,12 +153,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Tailwindcss" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Tailwindcss LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.terraform; cfg = config.vim.languages.terraform;
@ -34,12 +34,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Terraform" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Terraform LSP servers to use";
};
}; };
}; };
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [

View file

@ -9,7 +9,7 @@
inherit (lib.types) nullOr enum attrsOf listOf package str; inherit (lib.types) nullOr enum attrsOf listOf package str;
inherit (lib.attrsets) attrNames; inherit (lib.attrsets) attrNames;
inherit (lib.meta) getExe; 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.dag) entryAnywhere;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -112,12 +112,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Typst" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Typst LSP servers to use";
};
}; };
format = { format = {

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
@ -72,11 +72,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Vala" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Vala LSP servers to use";
};
}; };
}; };

View file

@ -6,7 +6,7 @@
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
@ -35,12 +35,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "WGSL" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "WGSL LSP servers to use";
};
}; };
}; };

View file

@ -9,7 +9,7 @@
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.types) enum listOf; inherit (lib.types) enum listOf;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
cfg = config.vim.languages.yaml; cfg = config.vim.languages.yaml;
@ -55,11 +55,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Yaml LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Yaml LSP support" // {default = config.vim.lsp.enable;};
servers = mkOption { servers = mkServersOption "Yaml" servers defaultServers;
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Yaml LSP servers to use";
};
}; };
}; };

View file

@ -8,7 +8,7 @@
inherit (lib.options) mkEnableOption mkOption; inherit (lib.options) mkEnableOption mkOption;
inherit (lib.modules) mkIf mkMerge mkDefault; inherit (lib.modules) mkIf mkMerge mkDefault;
inherit (lib.types) bool listOf package enum; inherit (lib.types) bool listOf package enum;
inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.types) mkGrammarOption mkServersOption;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -65,12 +65,7 @@ in {
lsp = { lsp = {
enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;}; enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;};
servers = mkServersOption "Zig" servers defaultServers;
servers = mkOption {
type = listOf (enum (attrNames servers));
default = defaultServers;
description = "Zig LSP servers to use";
};
}; };
dap = { dap = {