mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06: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;
|
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
|
// 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
|
// and do this now. buffer is created NOW, not when it latter first happen
|
||||||
// to reach a window or aucmd_prepbuf() ..
|
// to reach a window or aucmd_prepbuf() ..
|
||||||
|
@ -2869,6 +2869,18 @@ describe('API', function()
|
|||||||
eq(false, eval('g:fired'))
|
eq(false, eval('g:fired'))
|
||||||
end)
|
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()
|
it('scratch-buffer', function()
|
||||||
eq({id=2}, meths.create_buf(false, true))
|
eq({id=2}, meths.create_buf(false, true))
|
||||||
eq({id=3}, meths.create_buf(true, true))
|
eq({id=3}, meths.create_buf(true, true))
|
||||||
|
Loading…
Reference in New Issue
Block a user