Skip to content

Commit ff00eec

Browse files
committed
(mini.clue) Do not reproduce non-default register in Insert mode.
1 parent 8535cfc commit ff00eec

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

lua/mini/clue.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,11 +1432,11 @@ H.compute_exec_keys = function()
14321432

14331433
-- Using `feedkeys()` inside Operator-pending mode leads to its cancel into
14341434
-- Normal/Insert mode so extra work should be done to rebuild all keys
1435-
if cur_mode:find('^no') ~= nil then
1435+
if vim.startswith(cur_mode, 'no') then
14361436
local operator_tweak = H.operator_tweaks[vim.v.operator] or function(x) return x end
14371437
res = operator_tweak(vim.v.operator .. H.get_forced_submode() .. res)
1438-
elseif H.get_default_register() ~= vim.v.register then
1439-
-- Force a non-default register
1438+
elseif not vim.startswith(cur_mode, 'i') and H.get_default_register() ~= vim.v.register then
1439+
-- Force non-default register but not in Insert mode
14401440
res = '"' .. vim.v.register .. res
14411441
end
14421442

tests/test_clue.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2249,6 +2249,16 @@ T['Reproducing keys']['works for user keymaps in Insert mode'] = function()
22492249
eq(get_test_map_count('i', ' g'), 1)
22502250
end
22512251

2252+
T['Reproducing keys']['does not reproduce register in Insert mode'] = function()
2253+
child.api.nvim_buf_set_keymap(0, 'n', 'i', '"_cc', { noremap = true })
2254+
load_module({ triggers = { { mode = 'i', keys = '<C-x>' } } })
2255+
2256+
set_lines({ 'aa', '' })
2257+
set_cursor(2, 0)
2258+
type_keys('i', '<C-x>', '<C-v>')
2259+
eq(get_lines()[2] ~= '"_', true)
2260+
end
2261+
22522262
T['Reproducing keys']['works for builtin keymaps in Visual mode'] = function()
22532263
load_module({ triggers = { { mode = 'x', keys = 'g' }, { mode = 'x', keys = 'a' } } })
22542264
validate_trigger_keymap('x', 'g')

0 commit comments

Comments
 (0)