Fix tests
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user