mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
plugins/lsp-format: use lsp.onAttach
instead of an autoCmd
This commit is contained in:
parent
a45b5f372f
commit
c26f5c2e31
2 changed files with 38 additions and 28 deletions
|
@ -96,35 +96,30 @@ lib.nixvim.plugins.mkNeovimPlugin {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
autoGroups.nixvim_lsp_fmt_setup.clear = false;
|
lsp.onAttach =
|
||||||
|
let
|
||||||
|
toLua = lib.nixvim.lua.toLua' {
|
||||||
|
multiline = false;
|
||||||
|
};
|
||||||
|
|
||||||
autoCmd = lib.optionals (cfg.lspServersToEnable != "none") [
|
wrapLua =
|
||||||
{
|
lua:
|
||||||
desc = "set up autoformatting on LSP attach";
|
if cfg.lspServersToEnable == "all" then
|
||||||
event = "LspAttach";
|
lua
|
||||||
group = "nixvim_lsp_fmt_setup";
|
else if lib.isList cfg.lspServersToEnable then
|
||||||
callback =
|
# lua
|
||||||
let
|
''
|
||||||
enableCondition =
|
if vim.list_contains(${toLua cfg.lspServersToEnable}, client.name) then
|
||||||
if cfg.lspServersToEnable == "all" then
|
${lib.removeSuffix "\n" lua}
|
||||||
"true"
|
|
||||||
else if lib.isList cfg.lspServersToEnable then
|
|
||||||
# Lua
|
|
||||||
"vim.list_contains(${lib.nixvim.toLuaObject cfg.lspServersToEnable}, client.name)"
|
|
||||||
else
|
|
||||||
throw "Unhandled value for `lspServersToEnable`: ${
|
|
||||||
lib.generators.toPretty { } cfg.lspServersToEnable
|
|
||||||
}";
|
|
||||||
in
|
|
||||||
lib.nixvim.mkRaw ''
|
|
||||||
function(args)
|
|
||||||
local client = assert(vim.lsp.get_client_by_id(args.data.client_id))
|
|
||||||
if ${enableCondition} then
|
|
||||||
require("lsp-format").on_attach(client, args.buf)
|
|
||||||
end
|
end
|
||||||
end
|
''
|
||||||
'';
|
else
|
||||||
}
|
throw "Unhandled value for `lspServersToEnable`: ${
|
||||||
];
|
lib.generators.toPretty { } cfg.lspServersToEnable
|
||||||
|
}";
|
||||||
|
in
|
||||||
|
lib.mkIf (cfg.lspServersToEnable != "none") (wrapLua ''
|
||||||
|
require("lsp-format").on_attach(client, bufnr)
|
||||||
|
'');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,4 +76,19 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
listed-servers = {
|
||||||
|
plugins = {
|
||||||
|
lspconfig.enable = true;
|
||||||
|
|
||||||
|
lsp-format = {
|
||||||
|
enable = true;
|
||||||
|
lspServersToEnable = [
|
||||||
|
"foo"
|
||||||
|
"bar"
|
||||||
|
"baz"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue