neovim-flake/modules/plugins/lsp/lspkind/config.nix
2024-12-26 05:46:05 +01:00

35 lines
916 B
Nix

{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkForce;
inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.lua) toLuaObject;
cfg = config.vim.lsp.lspkind;
inherit (config.vim) autocomplete;
in {
config = mkIf cfg.enable {
assertions = [
{
assertion = autocomplete.nvim-cmp.enable || autocomplete.blink-cmp.enable;
message = ''
While lspkind supports Neovim's native lsp upstream, using that over
nvim-cmp isn't recommended, nor supported by nvf.
Please migrate to nvim-cmp if you want to use lspkind.
'';
}
];
vim = {
startPlugins = ["lspkind"];
lsp.lspkind.setupOpts.before = config.vim.autocomplete.nvim-cmp.format;
autocomplete.nvim-cmp.setupOpts.formatting.format = mkForce (mkLuaInline ''
require("lspkind").cmp_format(${toLuaObject cfg.setupOpts})
'');
};
};
}