mirror of
https://github.com/neovim/neovim.git
synced 2024-09-17 20:58:20 -04:00
fix(api): avoid immediate TextChanged with nvim_create_buf (#25492)
This commit is contained in:
parent
08aea256c8
commit
b2a8a93147
@ -941,6 +941,12 @@ Buffer nvim_create_buf(Boolean listed, Boolean scratch, Error *err)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
// Set last_changedtick to avoid triggering a TextChanged autocommand right
|
||||
// after it was added.
|
||||
buf->b_last_changedtick = buf_get_changedtick(buf);
|
||||
buf->b_last_changedtick_i = buf_get_changedtick(buf);
|
||||
buf->b_last_changedtick_pum = buf_get_changedtick(buf);
|
||||
|
||||
// Only strictly needed for scratch, but could just as well be consistent
|
||||
// and do this now. buffer is created NOW, not when it latter first happen
|
||||
// to reach a window or aucmd_prepbuf() ..
|
||||
|
@ -2869,6 +2869,18 @@ describe('API', function()
|
||||
eq(false, eval('g:fired'))
|
||||
end)
|
||||
|
||||
it('TextChanged and TextChangedI do not trigger without changes', function()
|
||||
local buf = meths.create_buf(true, false)
|
||||
command([[let g:changed = '']])
|
||||
meths.create_autocmd({'TextChanged', 'TextChangedI'}, {
|
||||
buffer = buf,
|
||||
command = 'let g:changed ..= mode()',
|
||||
})
|
||||
meths.set_current_buf(buf)
|
||||
feed('i')
|
||||
eq('', meths.get_var('changed'))
|
||||
end)
|
||||
|
||||
it('scratch-buffer', function()
|
||||
eq({id=2}, meths.create_buf(false, true))
|
||||
eq({id=3}, meths.create_buf(true, true))
|
||||
|
Loading…
Reference in New Issue
Block a user