modules/nvim-cmp: add edge case for autopairs in cr mapping

This commit is contained in:
diniamo 2024-06-25 09:23:35 +02:00
parent 335fbea0c0
commit c2c85d70ee
2 changed files with 13 additions and 10 deletions

View file

@ -4,7 +4,6 @@
... ...
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.strings) optionalString;
inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.dag) entryAnywhere;
inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.lua) toLuaObject;
@ -14,7 +13,7 @@ in {
vim.startPlugins = ["nvim-autopairs"]; vim.startPlugins = ["nvim-autopairs"];
vim.luaConfigRC.autopairs = entryAnywhere '' vim.luaConfigRC.autopairs = entryAnywhere ''
require("nvim-autopairs").setup{} require("nvim-autopairs").setup({ map_cr = ${toLuaObject (!config.vim.autocomplete.enable)} })
''; '';
}; };
} }

View file

@ -61,12 +61,16 @@ in {
(mkSetLuaBinding mappings.complete '' (mkSetLuaBinding mappings.complete ''
require('cmp').complete require('cmp').complete
'') '')
(mkSetLuaBinding mappings.confirm '' (let
defaultKeys =
if config.vim.autopairs.enable
then "require('nvim-autopairs').autopairs_cr()"
else "vim.api.nvim_replace_termcodes(${toJSON mappings.confirm.value}, true, false, true)";
in
mkSetLuaBinding mappings.confirm ''
function() function()
if not require('cmp').confirm({ select = true }) then if not require('cmp').confirm({ select = true }) then
local termcode = vim.api.nvim_replace_termcodes(${toJSON mappings.confirm.value}, true, false, true) vim.fn.feedkeys(${defaultKeys}, 'n')
vim.fn.feedkeys(termcode, 'n')
end end
end end
'') '')