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 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 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)
|
||||
if modes == nil then
|
||||
modes = { "i", "c" }
|
||||
elseif type(modes) ~= "table" then
|
||||
modes = { modes }
|
||||
end
|
||||
return cmp.mapping(rhs, modes)
|
||||
end
|
||||
local abort = if_visible(cmp.mapping.abort())
|
||||
local confirm = if_visible(cmp.mapping.confirm { select = true })
|
||||
local confirm_or_complete =
|
||||
if_visible(cmp.mapping.confirm { select = true }, cmp.mapping.complete())
|
||||
|
||||
local scroll_docs_down = cmp.mapping.scroll_docs(3)
|
||||
local scroll_docs_up = cmp.mapping.scroll_docs(-3)
|
||||
|
||||
-- Mappings that should work in both command line and Insert mode.
|
||||
return {
|
||||
-- stylua: ignore start
|
||||
["<c-n>"] = cmp_map(next_or_complete),
|
||||
["<c-p>"] = cmp_map(prev_or_complete),
|
||||
["<c-n>"] = { i = next_or_complete, c = next_or_complete },
|
||||
["<c-p>"] = { i = prev_or_complete, c = prev_or_complete },
|
||||
|
||||
["<c-j>"] = cmp_map(next_or_complete),
|
||||
["<c-k>"] = cmp_map(prev_or_complete),
|
||||
["<c-j>"] = { i = next_or_complete, c = next },
|
||||
["<c-k>"] = { i = prev_or_complete, c = prev },
|
||||
|
||||
["<s-down>"] = cmp_map(cmp.mapping.scroll_docs( 3)),
|
||||
["<s-up>"] = cmp_map(cmp.mapping.scroll_docs(-3)),
|
||||
["<down>"] = { i = next_or_complete, c = next },
|
||||
["<up>"] = { i = prev_or_complete, c = prev },
|
||||
|
||||
["<c-e>"] = cmp_map(cmp.mapping.abort()),
|
||||
["<c-y>"] = cmp_map(cmp.mapping.confirm { select = true }),
|
||||
["<s-down>"] = { i = scroll_docs_down, c = scroll_docs_down },
|
||||
["<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
|
||||
}
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue