Fix cmdline confirmation

This commit is contained in:
hrsh7th
2021-11-05 22:44:43 +09:00
parent d0231d06de
commit 1774ff0f84
7 changed files with 82 additions and 27 deletions

View File

@@ -0,0 +1,39 @@
local spec = require('cmp.utils.spec')
local keymap = require('cmp.utils.keymap')
local feedkeys = require('cmp.utils.feedkeys')
local api = require('cmp.utils.api')
describe('api', function()
describe('get_cursor', function()
before_each(spec.before)
it('insert-mode', function()
feedkeys.call(keymap.t('i\t1234567890'), 'n', function()
assert.are.same(api.get_cursor()[2], 10)
end)
feedkeys.call('', 'nx')
end)
it('cmdline-mode', function()
feedkeys.call(keymap.t(':\t1234567890'), 'n', function()
assert.are.same(api.get_cursor()[2], 10)
end)
feedkeys.call('', 'nx')
end)
end)
describe('get_cursor_before_line', function()
before_each(spec.before)
it('insert-mode', function()
feedkeys.call(keymap.t(':\t1234567890<Left><Left>'), 'n', function()
assert.are.same(api.get_cursor_before_line(), '\t12345678')
end)
feedkeys.call('', 'nx')
end)
it('cmdline-mode', function()
feedkeys.call(keymap.t(':\t1234567890<Left><Left>'), 'n', function()
assert.are.same(api.get_cursor_before_line(), '\t12345678')
end)
feedkeys.call('', 'nx')
end)
end)
end)

View File

@@ -21,7 +21,7 @@ feedkeys.call = setmetatable({
table.insert(queue, { keymap.t('<Cmd>set %slazyredraw<CR>'):format(vim.o.lazyredraw and '' or 'no'), 'n' })
table.insert(queue, { keymap.t('<Cmd>set eventignore=%s<CR>'):format(vim.o.eventignore or ''), 'n' })
end
if #keys > 0 or callback then
if callback then
local id = misc.id('cmp.utils.feedkeys.call')
self.callbacks[id] = function()
if callback then

View File

@@ -7,17 +7,9 @@ describe('feedkeys', function()
before_each(spec.before)
it('dot-repeat', function()
feedkeys.call(keymap.t('iaiueo<Esc>'), 'nx')
assert.are.equal(vim.fn.getreg('.'), keymap.t('aiueo'))
end)
it('macro', function()
vim.fn.setreg('q', '')
vim.cmd([[normal! qq]])
feedkeys.call(keymap.t('iaiueo'), 'nt')
feedkeys.call(keymap.t('<Esc>'), 'nt', function()
vim.cmd([[normal! q]])
assert.are.equal(vim.fn.getreg('q'), keymap.t('iaiueo<Esc>'))
print(vim.fn.getreg('q'))
feedkeys.call(keymap.t('iaiueo<Esc>'), 'n', function()
assert.are.equal(vim.fn.getreg('.'), keymap.t('aiueo'))
end)
feedkeys.call('', 'nx')
end)
end)

View File

@@ -62,6 +62,7 @@ describe('keymap', function()
end)
end)
describe('realworld', function()
before_each(spec.before)
it('#226', function()
keymap.listen('i', '<c-n>', function(_, fallback)
fallback()

View File

@@ -8,9 +8,21 @@ spec.before = function()
vim.cmd([[
bdelete!
enew!
imapclear
imapclear <buffer>
cmapclear
cmapclear <buffer>
smapclear
smapclear <buffer>
xmapclear
xmapclear <buffer>
tmapclear
tmapclear <buffer>
setlocal noswapfile
setlocal virtualedit=all
setlocal completeopt=menu,menuone,noselect
]])
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<Esc>', true, true, true), 'x', true)
end
spec.state = function(text, row, col)