mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
fix(redo): make redo of Lua mappings in op-pending mode work
(cherry picked from commit 5e9ef7b95b
)
This commit is contained in:

committed by
github-actions[bot]
![github-actions[bot]](/assets/img/avatar_default.png)
parent
9652f7c4c9
commit
06bee06ee5
@@ -813,19 +813,18 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
it('can make lua mappings', function()
|
||||
eq(0, exec_lua [[
|
||||
GlobalCount = 0
|
||||
vim.api.nvim_set_keymap ('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
return GlobalCount
|
||||
]])
|
||||
|
||||
feed('asdf\n')
|
||||
|
||||
eq(1, exec_lua[[return GlobalCount]])
|
||||
|
||||
end)
|
||||
|
||||
it (':map command shows lua mapping correctly', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_set_keymap ('n', 'asdf', '', {callback = function() print('jkl;') end })
|
||||
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() print('jkl;') end })
|
||||
]]
|
||||
assert.truthy(
|
||||
string.match(
|
||||
@@ -837,7 +836,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
|
||||
it ('mapcheck() returns lua mapping correctly', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_set_keymap ('n', 'asdf', '', {callback = function() print('jkl;') end })
|
||||
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() print('jkl;') end })
|
||||
]]
|
||||
assert.truthy(string.match(funcs.mapcheck('asdf', 'n'),
|
||||
"^<Lua %d+>"))
|
||||
@@ -871,7 +870,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
|
||||
it('can make lua expr mappings replacing keycodes', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_set_keymap ('n', 'aa', '', {callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end, expr = true, replace_keycodes = true })
|
||||
vim.api.nvim_set_keymap('n', 'aa', '', {callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end, expr = true, replace_keycodes = true })
|
||||
]]
|
||||
|
||||
feed('aa')
|
||||
@@ -881,7 +880,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
|
||||
it('can make lua expr mappings without replacing keycodes', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_set_keymap ('i', 'aa', '', {callback = function() return '<space>' end, expr = true })
|
||||
vim.api.nvim_set_keymap('i', 'aa', '', {callback = function() return '<space>' end, expr = true })
|
||||
]]
|
||||
|
||||
feed('iaa<esc>')
|
||||
@@ -891,7 +890,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
|
||||
it('lua expr mapping returning nil is equivalent to returning an empty string', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_set_keymap ('i', 'aa', '', {callback = function() return nil end, expr = true })
|
||||
vim.api.nvim_set_keymap('i', 'aa', '', {callback = function() return nil end, expr = true })
|
||||
]]
|
||||
|
||||
feed('iaa<esc>')
|
||||
@@ -902,17 +901,29 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
it('does not reset pum in lua mapping', function()
|
||||
eq(0, exec_lua [[
|
||||
VisibleCount = 0
|
||||
vim.api.nvim_set_keymap ('i', '<F2>', '', {callback = function() VisibleCount = VisibleCount + vim.fn.pumvisible() end})
|
||||
vim.api.nvim_set_keymap('i', '<F2>', '', {callback = function() VisibleCount = VisibleCount + vim.fn.pumvisible() end})
|
||||
return VisibleCount
|
||||
]])
|
||||
feed('i<C-X><C-V><F2><F2><esc>')
|
||||
eq(2, exec_lua[[return VisibleCount]])
|
||||
end)
|
||||
|
||||
it('redo of lua mappings in op-pending mode work', function()
|
||||
eq(0, exec_lua [[
|
||||
OpCount = 0
|
||||
vim.api.nvim_set_keymap('o', '<F2>', '', {callback = function() OpCount = OpCount + 1 end})
|
||||
return OpCount
|
||||
]])
|
||||
feed('d<F2>')
|
||||
eq(1, exec_lua[[return OpCount]])
|
||||
feed('.')
|
||||
eq(2, exec_lua[[return OpCount]])
|
||||
end)
|
||||
|
||||
it('can overwrite lua mappings', function()
|
||||
eq(0, exec_lua [[
|
||||
GlobalCount = 0
|
||||
vim.api.nvim_set_keymap ('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
return GlobalCount
|
||||
]])
|
||||
|
||||
@@ -921,7 +932,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
eq(1, exec_lua[[return GlobalCount]])
|
||||
|
||||
exec_lua [[
|
||||
vim.api.nvim_set_keymap ('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount - 1 end })
|
||||
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount - 1 end })
|
||||
]]
|
||||
|
||||
feed('asdf\n')
|
||||
@@ -932,7 +943,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
it('can unmap lua mappings', function()
|
||||
eq(0, exec_lua [[
|
||||
GlobalCount = 0
|
||||
vim.api.nvim_set_keymap ('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
return GlobalCount
|
||||
]])
|
||||
|
||||
@@ -1078,7 +1089,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
|
||||
it('can make lua mappings', function()
|
||||
eq(0, exec_lua [[
|
||||
GlobalCount = 0
|
||||
vim.api.nvim_buf_set_keymap (0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
return GlobalCount
|
||||
]])
|
||||
|
||||
@@ -1089,7 +1100,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
|
||||
|
||||
it('can make lua expr mappings replacing keycodes', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_buf_set_keymap (0, 'n', 'aa', '', {callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end, expr = true, replace_keycodes = true })
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'aa', '', {callback = function() return '<Insert>π<C-V><M-π>foo<lt><Esc>' end, expr = true, replace_keycodes = true })
|
||||
]]
|
||||
|
||||
feed('aa')
|
||||
@@ -1099,7 +1110,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
|
||||
|
||||
it('can make lua expr mappings without replacing keycodes', function()
|
||||
exec_lua [[
|
||||
vim.api.nvim_buf_set_keymap (0, 'i', 'aa', '', {callback = function() return '<space>' end, expr = true })
|
||||
vim.api.nvim_buf_set_keymap(0, 'i', 'aa', '', {callback = function() return '<space>' end, expr = true })
|
||||
]]
|
||||
|
||||
feed('iaa<esc>')
|
||||
@@ -1111,7 +1122,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
|
||||
it('can overwrite lua mappings', function()
|
||||
eq(0, exec_lua [[
|
||||
GlobalCount = 0
|
||||
vim.api.nvim_buf_set_keymap (0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
return GlobalCount
|
||||
]])
|
||||
|
||||
@@ -1120,7 +1131,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
|
||||
eq(1, exec_lua[[return GlobalCount]])
|
||||
|
||||
exec_lua [[
|
||||
vim.api.nvim_buf_set_keymap (0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount - 1 end })
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount - 1 end })
|
||||
]]
|
||||
|
||||
feed('asdf\n')
|
||||
@@ -1131,7 +1142,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
|
||||
it('can unmap lua mappings', function()
|
||||
eq(0, exec_lua [[
|
||||
GlobalCount = 0
|
||||
vim.api.nvim_buf_set_keymap (0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'asdf', '', {callback = function() GlobalCount = GlobalCount + 1 end })
|
||||
return GlobalCount
|
||||
]])
|
||||
|
||||
|
Reference in New Issue
Block a user