nvf/modules/plugins/lsp/lspkind/config.nix

47 lines
1.2 KiB
Nix
Raw Normal View History

2023-04-17 22:48:44 +00:00
{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkForce;
inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.lua) toLuaObject;
cfg = config.vim.lsp.lspkind;
2025-01-11 20:32:30 +00:00
usingCmp = config.vim.autocomplete.nvim-cmp.enable;
usingBlink = config.vim.autocomplete.blink-cmp.enable;
2023-04-17 22:48:44 +00:00
in {
config = mkIf cfg.enable {
assertions = [
{
2025-01-11 20:32:30 +00:00
assertion = usingCmp || usingBlink;
message = ''
While lspkind supports Neovim's native lsp upstream, using that over
2025-01-11 20:32:30 +00:00
nvim-cmp/blink.cmp isn't recommended, nor supported by nvf.
2025-01-11 20:32:30 +00:00
Please migrate to nvim-cmp/blink.cmp if you want to use lspkind.
'';
2023-04-17 22:48:44 +00:00
}
];
vim = {
startPlugins = ["lspkind"];
lsp.lspkind.setupOpts.before = config.vim.autocomplete.nvim-cmp.format;
2025-01-11 20:32:30 +00:00
autocomplete = {
nvim-cmp = mkIf usingCmp {
setupOpts.formatting.format = mkForce (mkLuaInline ''
require("lspkind").cmp_format(${toLuaObject cfg.setupOpts})
'');
};
blink-cmp = mkIf usingBlink {
setupOpts.appearance.kind_icons = mkLuaInline ''
require("lspkind").symbol_map
'';
};
};
};
2023-04-17 22:48:44 +00:00
};
}