nvim: fix annoyances with completion key map
This commit is contained in:
parent
c6e0d17e27
commit
80136704e7
1 changed files with 23 additions and 16 deletions
|
@ -17,30 +17,37 @@ local make_keymap = function(cmp)
|
||||||
local select = { behavior = cmp.SelectBehavior.Select }
|
local select = { behavior = cmp.SelectBehavior.Select }
|
||||||
local next_or_complete = if_visible(cmp.mapping.select_next_item(select), cmp.mapping.complete())
|
local next_or_complete = if_visible(cmp.mapping.select_next_item(select), cmp.mapping.complete())
|
||||||
local prev_or_complete = if_visible(cmp.mapping.select_prev_item(select), cmp.mapping.complete())
|
local prev_or_complete = if_visible(cmp.mapping.select_prev_item(select), cmp.mapping.complete())
|
||||||
|
local next = if_visible(cmp.mapping.select_next_item(select))
|
||||||
|
local prev = if_visible(cmp.mapping.select_prev_item(select))
|
||||||
|
|
||||||
local cmp_map = function(rhs, modes)
|
local abort = if_visible(cmp.mapping.abort())
|
||||||
if modes == nil then
|
local confirm = if_visible(cmp.mapping.confirm { select = true })
|
||||||
modes = { "i", "c" }
|
local confirm_or_complete =
|
||||||
elseif type(modes) ~= "table" then
|
if_visible(cmp.mapping.confirm { select = true }, cmp.mapping.complete())
|
||||||
modes = { modes }
|
|
||||||
end
|
local scroll_docs_down = cmp.mapping.scroll_docs(3)
|
||||||
return cmp.mapping(rhs, modes)
|
local scroll_docs_up = cmp.mapping.scroll_docs(-3)
|
||||||
end
|
|
||||||
|
|
||||||
-- Mappings that should work in both command line and Insert mode.
|
-- Mappings that should work in both command line and Insert mode.
|
||||||
return {
|
return {
|
||||||
-- stylua: ignore start
|
-- stylua: ignore start
|
||||||
["<c-n>"] = cmp_map(next_or_complete),
|
["<c-n>"] = { i = next_or_complete, c = next_or_complete },
|
||||||
["<c-p>"] = cmp_map(prev_or_complete),
|
["<c-p>"] = { i = prev_or_complete, c = prev_or_complete },
|
||||||
|
|
||||||
["<c-j>"] = cmp_map(next_or_complete),
|
["<c-j>"] = { i = next_or_complete, c = next },
|
||||||
["<c-k>"] = cmp_map(prev_or_complete),
|
["<c-k>"] = { i = prev_or_complete, c = prev },
|
||||||
|
|
||||||
["<s-down>"] = cmp_map(cmp.mapping.scroll_docs( 3)),
|
["<down>"] = { i = next_or_complete, c = next },
|
||||||
["<s-up>"] = cmp_map(cmp.mapping.scroll_docs(-3)),
|
["<up>"] = { i = prev_or_complete, c = prev },
|
||||||
|
|
||||||
["<c-e>"] = cmp_map(cmp.mapping.abort()),
|
["<s-down>"] = { i = scroll_docs_down, c = scroll_docs_down },
|
||||||
["<c-y>"] = cmp_map(cmp.mapping.confirm { select = true }),
|
["<s-up>"] = { i = scroll_docs_up, c = scroll_docs_up },
|
||||||
|
|
||||||
|
["<c-c>"] = { i = abort, c = abort },
|
||||||
|
["<c-e>"] = { i = abort, c = abort },
|
||||||
|
["<c-y>"] = { i = confirm, c = confirm },
|
||||||
|
|
||||||
|
["<tab>"] = { i = confirm, c = confirm_or_complete },
|
||||||
-- stylua: ignore end
|
-- stylua: ignore end
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue