mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
modules/lsp/server: rename config
-> settings
`config` is a loaded term within modules and options. `settings` is the name usually used for freeform config in nixvim and most other module configurations.
This commit is contained in:
parent
fc6f00a7fd
commit
21688b1d2a
3 changed files with 38 additions and 12 deletions
|
@ -93,7 +93,7 @@ in
|
||||||
'';
|
'';
|
||||||
default = { };
|
default = { };
|
||||||
example = {
|
example = {
|
||||||
"*".config = {
|
"*".settings = {
|
||||||
root_markers = [ ".git" ];
|
root_markers = [ ".git" ];
|
||||||
capabilities.textDocument.semanticTokens = {
|
capabilities.textDocument.semanticTokens = {
|
||||||
multilineTokenSupport = true;
|
multilineTokenSupport = true;
|
||||||
|
@ -102,7 +102,7 @@ in
|
||||||
luals.enable = true;
|
luals.enable = true;
|
||||||
clangd = {
|
clangd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
settings = {
|
||||||
cmd = [
|
cmd = [
|
||||||
"clangd"
|
"clangd"
|
||||||
"--background-index"
|
"--background-index"
|
||||||
|
@ -127,6 +127,13 @@ in
|
||||||
builtins.attrValues
|
builtins.attrValues
|
||||||
(builtins.filter (server: server.enable))
|
(builtins.filter (server: server.enable))
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Collect per-server warnings
|
||||||
|
serverWarnings = lib.pipe cfg.servers [
|
||||||
|
builtins.attrValues
|
||||||
|
(builtins.catAttrs "warnings")
|
||||||
|
builtins.concatLists
|
||||||
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
extraPackages = builtins.catAttrs "package" enabledServers;
|
extraPackages = builtins.catAttrs "package" enabledServers;
|
||||||
|
@ -137,10 +144,10 @@ in
|
||||||
server:
|
server:
|
||||||
let
|
let
|
||||||
luaName = toLuaObject server.name;
|
luaName = toLuaObject server.name;
|
||||||
luaCfg = toLuaObject server.config;
|
luaSettings = toLuaObject server.settings;
|
||||||
in
|
in
|
||||||
''
|
''
|
||||||
vim.lsp.config(${luaName}, ${luaCfg})
|
vim.lsp.config(${luaName}, ${luaSettings})
|
||||||
''
|
''
|
||||||
+ lib.optionalString server.activate ''
|
+ lib.optionalString server.activate ''
|
||||||
vim.lsp.enable(${luaName})
|
vim.lsp.enable(${luaName})
|
||||||
|
@ -158,5 +165,8 @@ in
|
||||||
end
|
end
|
||||||
-- }}}
|
-- }}}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
# Propagate per-server warnings
|
||||||
|
warnings = lib.mkIf (serverWarnings != [ ]) serverWarnings;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,7 @@
|
||||||
{
|
{
|
||||||
name ? null,
|
name ? null,
|
||||||
package ? null,
|
package ? null,
|
||||||
# Avoid naming conflict with the `config` module arg
|
settings ? null,
|
||||||
# TODO: consider renaming the `config` option to something like `settings`?
|
|
||||||
configOption ? null,
|
|
||||||
pkgs ? { },
|
pkgs ? { },
|
||||||
}@args:
|
}@args:
|
||||||
{ lib, name, ... }:
|
{ lib, name, ... }:
|
||||||
|
@ -48,14 +46,14 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkOption {
|
settings = lib.mkOption {
|
||||||
type = with types; attrsOf anything;
|
type = with types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Configurations for ${displayName}. ${configOption.extraDescription or ""}
|
Configurations for ${displayName}. ${settings.extraDescription or ""}
|
||||||
'';
|
'';
|
||||||
default = { };
|
default = { };
|
||||||
example =
|
example =
|
||||||
configOption.example or {
|
settings.example or {
|
||||||
cmd = [
|
cmd = [
|
||||||
"clangd"
|
"clangd"
|
||||||
"--background-index"
|
"--background-index"
|
||||||
|
@ -70,5 +68,23 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# NOTE: we need a warnings option for `mkRenamedOptionModule` to warn about unexpected definitions
|
||||||
|
# This can be removed when all rename aliases are gone
|
||||||
|
warnings = lib.mkOption {
|
||||||
|
type = with types; listOf str;
|
||||||
|
description = "Warnings to propagate to nixvim's `warnings` option.";
|
||||||
|
default = [ ];
|
||||||
|
internal = true;
|
||||||
|
visible = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
# TODO: rename added 2025-04-30 (during the 25.05 cycle)
|
||||||
|
# The previous name `config` was introduced 2025-04-28 (during the 25.05 cycle)
|
||||||
|
# Because the previous name `config` never made it into a stable release,
|
||||||
|
# we could consider dropping this alias sooner than normal.
|
||||||
|
(lib.mkRenamedOptionModule [ "config" ] [ "settings" ])
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
example = {
|
example = {
|
||||||
lsp.servers = {
|
lsp.servers = {
|
||||||
"*".config = {
|
"*".settings = {
|
||||||
root_markers = [ ".git" ];
|
root_markers = [ ".git" ];
|
||||||
capabilities.textDocument.semanticTokens = {
|
capabilities.textDocument.semanticTokens = {
|
||||||
multilineTokenSupport = true;
|
multilineTokenSupport = true;
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
luals.enable = true;
|
luals.enable = true;
|
||||||
clangd = {
|
clangd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
settings = {
|
||||||
cmd = [
|
cmd = [
|
||||||
"clangd"
|
"clangd"
|
||||||
"--background-index"
|
"--background-index"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue