From 0c973bf442d86b8b954d34df8cc7f5cb5167ad59 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 8 Jul 2025 06:38:32 +0800 Subject: [PATCH] test(api): nvim_get_keymap returns correct lhsraw and lhsrawalt --- test/functional/api/keymap_spec.lua | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua index 2c44905274..a249baf974 100644 --- a/test/functional/api/keymap_spec.lua +++ b/test/functional/api/keymap_spec.lua @@ -316,7 +316,11 @@ describe('nvim_get_keymap', function() } local function cpomap(lhs, rhs, mode) local ret = shallowcopy(cpo_table) + local lhsraw = api.nvim_eval(('"%s"'):format(lhs:gsub('\\', '\\\\'):gsub('<', '\\<*'))) + local lhsrawalt = api.nvim_eval(('"%s"'):format(lhs:gsub('\\', '\\\\'):gsub('<', '\\<'))) ret.lhs = lhs + ret.lhsraw = lhsraw + ret.lhsrawalt = lhsrawalt ~= lhsraw and lhsrawalt or nil ret.rhs = rhs ret.mode = mode ret.mode_bits = mode_bits_map[mode] @@ -339,16 +343,6 @@ describe('nvim_get_keymap', function() command('onoremap \\C-a>\\ \\C-b>\\') command('onoremap \\C-c>\\ \\C-d>\\') - -- wrapper around get_keymap() that drops "lhsraw" and "lhsrawalt" which are hard to check - local function get_keymap_noraw(...) - local ret = api.nvim_get_keymap(...) - for _, item in ipairs(ret) do - item.lhsraw = nil - item.lhsrawalt = nil - end - return ret - end - for _, cmd in ipairs({ 'set cpo-=B', 'set cpo+=B', @@ -357,19 +351,19 @@ describe('nvim_get_keymap', function() eq({ cpomap('\\C-c>\\', '\\C-d>\\', 'n'), cpomap('\\C-a>\\', '\\C-b>\\', 'n'), - }, get_keymap_noraw('n')) + }, api.nvim_get_keymap('n')) eq({ cpomap('\\C-c>\\', '\\C-d>\\', 'x'), cpomap('\\C-a>\\', '\\C-b>\\', 'x'), - }, get_keymap_noraw('x')) + }, api.nvim_get_keymap('x')) eq({ cpomap('C-c>C-c> ', 'C-d>C-d>', 's'), cpomap('C-a>C-a> ', 'C-b>C-b>', 's'), - }, get_keymap_noraw('s')) + }, api.nvim_get_keymap('s')) eq({ cpomap('C-c>C-c> ', 'C-d>C-d>', 'o'), cpomap('C-a>C-a> ', 'C-b>C-b>', 'o'), - }, get_keymap_noraw('o')) + }, api.nvim_get_keymap('o')) end end)