nvim-cmp: use border style

This commit is contained in:
diniamo 2024-11-12 22:35:09 +01:00
parent 5a450f2b24
commit 6941da67f5

View file

@ -3,13 +3,26 @@
config, config,
... ...
}: let }: let
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge mkDefault;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
inherit (builtins) attrNames typeOf tryEval concatStringsSep; inherit (builtins) attrNames typeOf tryEval concatStringsSep;
borders = config.vim.ui.borders.plugins.nvim-cmp;
# From https://github.com/hrsh7th/nvim-cmp/blob/main/lua/cmp/config/window.lua
# This way users can still override the options
windowOpts = {
border = borders.style;
winhighlight = "Normal:Normal,FloatBorder:FloatBorder,CursorLine:Visual,Search:None";
zindex = 1001;
scrolloff = 0;
col_offset = 0;
side_padding = 1;
scrollbar = true;
};
cfg = config.vim.autocomplete.nvim-cmp; cfg = config.vim.autocomplete.nvim-cmp;
luasnipEnable = config.vim.snippets.luasnip.enable; luasnipEnable = config.vim.snippets.luasnip.enable;
getPluginName = plugin: getPluginName = plugin:
@ -81,10 +94,9 @@ in {
setupOpts = { setupOpts = {
sources = map (s: {name = s;}) (attrNames cfg.sources); sources = map (s: {name = s;}) (attrNames cfg.sources);
# TODO: try to get nvim-cmp to follow global border style window = mkIf borders.enable {
window = mkIf config.vim.ui.borders.enable { completion = mkDefault windowOpts;
completion = mkLuaInline "cmp.config.window.bordered()"; documentation = mkDefault windowOpts;
documentation = mkLuaInline "cmp.config.window.bordered()";
}; };
formatting.format = cfg.format; formatting.format = cfg.format;