plugins/lspconfig: init

A simplified replacement for `plugins.lsp`.

Eventually, once the `lsp` and `plugins.lspconfig` modules are mature,
`plugins.lsp` will be deprecated and/or aliased.
This commit is contained in:
Matt Sturgeon 2025-04-28 14:24:52 +01:00
parent 29aa60b43a
commit 556eb29548
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 92 additions and 2 deletions

View file

@ -0,0 +1,66 @@
{
lib,
config,
options,
...
}:
let
# cfg = config.plugins.lspconfig;
opts = options.plugins.lspconfig;
oldCfg = config.plugins.lsp;
oldOpts = options.plugins.lsp;
in
lib.nixvim.plugins.mkNeovimPlugin {
name = "lspconfig";
packPathName = "nvim-lspconfig";
package = "nvim-lspconfig";
maintainers = with lib.maintainers; [
GaetanLepage
MattSturgeon
khaneliman
traxys
];
description = ''
[nvim-lspconfig] provides default configs for many language servers, but it does not enable any of them.
You should use the [`lsp`] module to configure and enable LSP servers.
> [!NOTE]
> This plugin module will soon replace [`plugins.lsp`].
>
> Both `${opts.enable}` and `${oldOpts.enable}` will install nvim-lspconfig,
> however the older [`plugins.lsp`] module includes additional options and
> setup that relate to neovim's builtin LSP and are now being moved to the
> new [`lsp`] module.
[`lsp`]: ../../lsp/servers.md
[`plugins.lsp`]: ../lsp/index.md
[nvim-lspconfig]: ${opts.package.default.meta.homepage}
'';
# nvim-lspconfig provides configs for `vim.lsp.config` and requires no setup
# all configuration should be done via nvim's builtin `vim.lsp` API
callSetup = false;
hasLuaConfig = false;
hasSettings = false;
extraConfig = {
warnings = lib.nixvim.mkWarnings "plugins.lspconfig" [
{
when = oldCfg.enable;
message = ''
Both `${opts.enable}' and `${oldOpts.enable}' configure the same plugin (nvim-lspconfig).
${lib.pipe
[ opts oldOpts ]
[
(builtins.catAttrs "enable")
(map (o: "`${o}' defined in ${lib.options.showFiles o.files}."))
lib.strings.concatLines
]
}
'';
}
];
};
}