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() describe('get_cursor', function()
before_each(spec.before) before_each(spec.before)
it('insert-mode', function() it('insert-mode', function()
feedkeys.call(keymap.t('i\t1234567890'), 'n', function() local cursor
assert.are.same(api.get_cursor()[2], 10) feedkeys.call(keymap.t('i\t1234567890'), 'nx', function()
cursor = api.get_cursor()
end) end)
feedkeys.call('', 'nx') assert.are.equal(cursor[2], 11)
end) end)
it('cmdline-mode', function() it('cmdline-mode', function()
feedkeys.call(keymap.t(':\t1234567890'), 'n', function() local cursor
assert.are.same(api.get_cursor()[2], 10) keymap.set_map(0, 'c', '<Plug>(cmp-spec-spy)', function()
end) cursor = api.get_cursor()
feedkeys.call('', 'nx') 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)
end) end)
describe('get_cursor_before_line', function() describe('get_cursor_before_line', function()
before_each(spec.before) before_each(spec.before)
it('insert-mode', function() it('insert-mode', function()
feedkeys.call(keymap.t(':\t1234567890<Left><Left>'), 'n', function() local cursor_before_line
assert.are.same(api.get_cursor_before_line(), '\t12345678') feedkeys.call(keymap.t('i\t1234567890<Left><Left>'), 'nx', function()
cursor_before_line = api.get_cursor_before_line()
end) end)
feedkeys.call('', 'nx') assert.are.same(cursor_before_line, '\t12345678')
end) end)
it('cmdline-mode', function() it('cmdline-mode', function()
feedkeys.call(keymap.t(':\t1234567890<Left><Left>'), 'n', function() local cursor_before_line
assert.are.same(api.get_cursor_before_line(), '\t12345678') keymap.set_map(0, 'c', '<Plug>(cmp-spec-spy)', function()
end) cursor_before_line = api.get_cursor_before_line()
feedkeys.call('', 'nx') 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) end)
end) end)

View File

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

View File

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

View File

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