fix: cmdline <CR> fallthrough when no selection

This commit is contained in:
QQ 2026-06-11 15:21:18 +08:00
parent dc82aa4ad8
commit 3bfbb680fb
1 changed files with 26 additions and 2 deletions

View File

@ -105,7 +105,19 @@ return {
-- 命令栏补全Tab 导航,回车无选择时直接执行)
require('cmp').setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
mapping = {
['<Tab>'] = cmp.mapping(cmp.mapping.select_next_item(), { 'c' }),
['<S-Tab>'] = cmp.mapping(cmp.mapping.select_prev_item(), { 'c' }),
['<CR>'] = cmp.mapping({
c = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ select = false })
else
fallback()
end
end,
}),
},
sources = {
{ name = 'cmdline' },
{ name = 'path' },
@ -114,7 +126,19 @@ return {
-- 搜索栏补全
require('cmp').setup.cmdline('/', {
mapping = cmp.mapping.preset.cmdline(),
mapping = {
['<Tab>'] = cmp.mapping(cmp.mapping.select_next_item(), { 'c' }),
['<S-Tab>'] = cmp.mapping(cmp.mapping.select_prev_item(), { 'c' }),
['<CR>'] = cmp.mapping({
c = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ select = false })
else
fallback()
end
end,
}),
},
sources = {
{ name = 'buffer' },
}