mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 00:25:42 +02:00
Convert the `attrsOf (servers.nix)` option to a freeform submodule. Declare a `servers.nix` option for each lsp server listed in `lsp-packages.nix` that has a known nixpkgs package.
67 lines
1.8 KiB
Nix
67 lines
1.8 KiB
Nix
{
|
|
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
|
|
HeitorAugustoLN
|
|
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/index.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
|
|
]
|
|
}
|
|
'';
|
|
}
|
|
];
|
|
};
|
|
}
|