Fix missing CursorHoldI events (#3758)

Fixes https://github.com/neovim/neovim/issues/3757.
This commit is contained in:
Daniel Hahler 2019-07-16 01:35:43 +02:00 committed by GitHub
parent 046deeeaa1
commit b06f29318d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 1 deletions

View File

@ -649,7 +649,9 @@ static int insert_execute(VimState *state, int key)
s->c = key;
// Don't want K_EVENT with cursorhold for the second key, e.g., after CTRL-V.
did_cursorhold = true;
if (key != K_EVENT) {
did_cursorhold = true;
}
if (p_hkmap && KeyTyped) {
s->c = hkmap(s->c); // Hebrew mode mapping

View File

@ -0,0 +1,31 @@
local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local eq = helpers.eq
local eval = helpers.eval
local feed = helpers.feed
local retry = helpers.retry
local source = helpers.source
local sleep = helpers.sleep
describe('CursorHoldI', function()
before_each(clear)
-- NOTE: since this test uses RPC it is not necessary to trigger the initial
-- issue (#3757) via timer's or RPC callbacks in the first place.
it('is triggered after input', function()
source([[
set updatetime=1
let g:cursorhold = 0
augroup test
au CursorHoldI * let g:cursorhold += 1
augroup END
]])
feed('ifoo')
retry(5, nil, function()
sleep(1)
eq(1, eval('g:cursorhold'))
end)
end)
end)