Fix tests

This commit is contained in:
hrsh7th
2021-11-08 15:47:35 +09:00
parent ec788bebd0
commit 1628c934d1
4 changed files with 33 additions and 24 deletions

View File

@@ -7,32 +7,40 @@ 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)
local cursor
feedkeys.call(keymap.t('i\t1234567890'), 'nx', function()
cursor = api.get_cursor()
end)
feedkeys.call('', 'nx')
assert.are.equal(cursor[2], 11)
end)
it('cmdline-mode', function()
feedkeys.call(keymap.t(':\t1234567890'), 'n', function()
assert.are.same(api.get_cursor()[2], 10)
end)
feedkeys.call('', 'nx')
local cursor
keymap.set_map(0, 'c', '<Plug>(cmp-spec-spy)', function()
cursor = api.get_cursor()
end, { expr = true, noremap = true })
feedkeys.call(keymap.t(':\t1234567890'), 'n')
feedkeys.call(keymap.t('<Plug>(cmp-spec-spy)'), 'x')
assert.are.equal(cursor[2], 11)
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')
local cursor_before_line
feedkeys.call(keymap.t('i\t1234567890<Left><Left>'), 'nx', function()
cursor_before_line = api.get_cursor_before_line()
end)
feedkeys.call('', 'nx')
assert.are.same(cursor_before_line, '\t12345678')
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')
local cursor_before_line
keymap.set_map(0, 'c', '<Plug>(cmp-spec-spy)', function()
cursor_before_line = api.get_cursor_before_line()
end, { expr = true, noremap = true })
feedkeys.call(keymap.t(':\t1234567890<Left><Left>'), 'n')
feedkeys.call(keymap.t('<Plug>(cmp-spec-spy)'), 'x')
assert.are.same(cursor_before_line, '\t12345678')
end)
end)
end)

View File

@@ -12,22 +12,19 @@ feedkeys.call = setmetatable({
end
local is_insert = string.match(mode, 'i') ~= nil
local is_immediate = string.match(mode, 'x') ~= nil
local queue = {}
if #keys > 0 then
table.insert(queue, { keymap.t('<Cmd>set lazyredraw<CR>'), 'n' })
table.insert(queue, { keymap.t('<Cmd>set eventignore=all<CR>'), 'n' })
table.insert(queue, { keys, string.gsub(mode, '[it]', ''), true })
table.insert(queue, { keys, string.gsub(mode, '[itx]', ''), true })
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 callback then
local id = misc.id('cmp.utils.feedkeys.call')
self.callbacks[id] = function()
if callback then
callback()
end
end
self.callbacks[id] = callback
table.insert(queue, { keymap.t('<Cmd>call v:lua.cmp.utils.feedkeys.call.run(%s)<CR>'):format(id), 'n', true })
end
@@ -40,6 +37,9 @@ feedkeys.call = setmetatable({
vim.api.nvim_feedkeys(queue[i][1], queue[i][2], queue[i][3])
end
end
if is_immediate then
vim.api.nvim_feedkeys('', 'x', true)
end
end,
})
misc.set(_G, { 'cmp', 'utils', 'feedkeys', 'call', 'run' }, function(id)

View File

@@ -7,9 +7,10 @@ describe('feedkeys', function()
before_each(spec.before)
it('dot-repeat', function()
feedkeys.call(keymap.t('iaiueo<Esc>'), 'n', function()
assert.are.equal(vim.fn.getreg('.'), keymap.t('aiueo'))
local reg
feedkeys.call(keymap.t('iaiueo<Esc>'), 'nx', function()
reg = vim.fn.getreg('.')
end)
feedkeys.call('', 'nx')
assert.are.equal(reg, keymap.t('aiueo'))
end)
end)

View File

@@ -258,7 +258,7 @@ keymap.set_map = setmetatable({
end
})
misc.set(_G, { 'cmp', 'utils', 'keymap', 'set_map' }, function(id)
return keymap.set_map.callbacks[id]()
return keymap.set_map.callbacks[id]() or ''
end)
return keymap