mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
plugins.lsp: alias onAttach
to new lsp.onAttach
This simplifies the impl by doing global on-attach logic in a `LspAttach` autocmd instead of adding lua lines to each server's individual `on_attach` callback. This is effectively a `mkAliasOptionModule` alias, other than the alias only being applied when `plugins.lsp.enable`.
This commit is contained in:
parent
c26f5c2e31
commit
5c52e8f9e4
5 changed files with 53 additions and 53 deletions
|
@ -173,7 +173,6 @@ in
|
|||
server = {
|
||||
inherit (cfg.server) standalone;
|
||||
settings.rust-analyzer = lib.filterAttrs (n: v: n != "standalone") cfg.server;
|
||||
on_attach = lib.nixvim.mkRaw "__lspOnAttach";
|
||||
};
|
||||
} // cfg.extraOptions;
|
||||
in
|
||||
|
|
|
@ -53,43 +53,30 @@ lib.nixvim.plugins.mkNeovimPlugin {
|
|||
|
||||
callSetup = false;
|
||||
hasLuaConfig = false;
|
||||
extraConfig =
|
||||
cfg:
|
||||
mkMerge [
|
||||
{
|
||||
globals.rustaceanvim = cfg.settings;
|
||||
extraConfig = cfg: {
|
||||
globals.rustaceanvim = cfg.settings;
|
||||
|
||||
assertions = lib.nixvim.mkAssertions "plugins.rustaceanvim" {
|
||||
assertion = cfg.enable -> !config.plugins.lsp.servers.rust_analyzer.enable;
|
||||
message = ''
|
||||
Both `plugins.rustaceanvim.enable` and `plugins.lsp.servers.rust_analyzer.enable` are true.
|
||||
Disable one of them otherwise you will have multiple clients attached to each buffer.
|
||||
'';
|
||||
};
|
||||
assertions = lib.nixvim.mkAssertions "plugins.rustaceanvim" {
|
||||
assertion = cfg.enable -> !config.plugins.lsp.servers.rust_analyzer.enable;
|
||||
message = ''
|
||||
Both `plugins.rustaceanvim.enable` and `plugins.lsp.servers.rust_analyzer.enable` are true.
|
||||
Disable one of them otherwise you will have multiple clients attached to each buffer.
|
||||
'';
|
||||
};
|
||||
|
||||
# TODO: remove after 24.11
|
||||
warnings = lib.nixvim.mkWarnings "plugins.rustaceanvim" {
|
||||
when = hasAttrByPath [
|
||||
"settings"
|
||||
"server"
|
||||
"settings"
|
||||
] cfg;
|
||||
message = ''
|
||||
The `settings.server.settings' option has been renamed to `settings.server.default_settings'.
|
||||
# TODO: remove after 24.11
|
||||
warnings = lib.nixvim.mkWarnings "plugins.rustaceanvim" {
|
||||
when = hasAttrByPath [
|
||||
"settings"
|
||||
"server"
|
||||
"settings"
|
||||
] cfg;
|
||||
message = ''
|
||||
The `settings.server.settings' option has been renamed to `settings.server.default_settings'.
|
||||
|
||||
Note that if you supplied an attrset and not a function you need to set this attr set in:
|
||||
`settings.server.default_settings.rust-analyzer'.
|
||||
'';
|
||||
};
|
||||
}
|
||||
# If nvim-lspconfig is enabled:
|
||||
(mkIf config.plugins.lsp.enable {
|
||||
# Use the same `on_attach` callback as for the other LSP servers
|
||||
plugins.rustaceanvim.settings.server.on_attach = mkDefault ''
|
||||
function(client, bufnr)
|
||||
return _M.lspOnAttach(client, bufnr)
|
||||
end
|
||||
'';
|
||||
})
|
||||
];
|
||||
Note that if you supplied an attrset and not a function you need to set this attr set in:
|
||||
`settings.server.default_settings.rust-analyzer'.
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -234,11 +234,7 @@ with lib;
|
|||
```
|
||||
'';
|
||||
|
||||
on_attach = helpers.mkNullOrLuaFn ''
|
||||
Function to call on attach.
|
||||
If `plugins.lsp` is enabled, it defaults to the Nixvim global `__lspOnAttach` function.
|
||||
Otherwise it defaults to `null`.
|
||||
'';
|
||||
on_attach = helpers.defaultNullOpts.mkLuaFn null "Function to call when rustaceanvim attaches to a buffer.";
|
||||
|
||||
cmd = helpers.mkNullOrStrLuaFnOr (with types; listOf str) ''
|
||||
Command and arguments for starting rust-analyzer.
|
||||
|
|
|
@ -19,7 +19,7 @@ lib.nixvim.plugins.mkNeovimPlugin {
|
|||
];
|
||||
|
||||
settingsOptions = {
|
||||
on_attach = defaultNullOpts.mkLuaFn "__lspOnAttach" "Lua code to run when tsserver attaches to a buffer.";
|
||||
on_attach = defaultNullOpts.mkLuaFn null "Function to call when tsserver attaches to a buffer.";
|
||||
|
||||
handlers = lib.mkOption {
|
||||
type = with lib.types; nullOr (attrsOf strLuaFn);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue