buffer_updates: emit valid old_byte_size

Test this using treesitter highlighting, which is based on this
old_byte_size.
This commit is contained in:
Thomas Vigouroux 2020-07-16 09:28:18 +02:00
parent 409a1dcdc6
commit 2c34780c32
2 changed files with 49 additions and 1 deletions

View File

@ -1876,8 +1876,10 @@ errorret:
buf->b_ml.ml_line_lnum = lnum; buf->b_ml.ml_line_lnum = lnum;
buf->b_ml.ml_flags &= ~ML_LINE_DIRTY; buf->b_ml.ml_flags &= ~ML_LINE_DIRTY;
} }
if (will_change) if (will_change) {
buf->b_ml.ml_flags |= (ML_LOCKED_DIRTY | ML_LOCKED_POS); buf->b_ml.ml_flags |= (ML_LOCKED_DIRTY | ML_LOCKED_POS);
ml_add_deleted_len_buf(buf, buf->b_ml.ml_line_ptr, -1);
}
return buf->b_ml.ml_line_ptr; return buf->b_ml.ml_line_ptr;
} }

View File

@ -360,6 +360,52 @@ static int nlua_schedule(lua_State *const lstate)
{8:}} | {8:}} |
| |
]]} ]]}
feed("gg$")
feed("~")
screen:expect{grid=[[
{2:/// Schedule Lua callback on main loop's event queu^E} |
{3:static} {3:int} nlua_schedule({3:lua_State} *{3:const} lstate) |
{ |
{2:/*} |
{2: if (lua_type(lstate, 1) != LUA_TFUNCTION} |
{2: || lstate != lstate) {} |
{2: lua_pushliteral(lstate, "vim.schedule: expected function");} |
{2: return lua_error(lstate);} |
{2:*/} |
} |
|
{7:LuaRef} cb = nlua_ref(lstate, {5:1}); |
|
multiqueue_put(main_loop.events, nlua_schedule_event, |
{5:1}, ({3:void} *)({3:ptrdiff_t})cb); |
{4:return} {5:0}; |
{8:}} |
|
]]}
feed("re")
screen:expect{grid=[[
{2:/// Schedule Lua callback on main loop's event queu^e} |
{3:static} {3:int} nlua_schedule({3:lua_State} *{3:const} lstate) |
{ |
{2:/*} |
{2: if (lua_type(lstate, 1) != LUA_TFUNCTION} |
{2: || lstate != lstate) {} |
{2: lua_pushliteral(lstate, "vim.schedule: expected function");} |
{2: return lua_error(lstate);} |
{2:*/} |
} |
|
{7:LuaRef} cb = nlua_ref(lstate, {5:1}); |
|
multiqueue_put(main_loop.events, nlua_schedule_event, |
{5:1}, ({3:void} *)({3:ptrdiff_t})cb); |
{4:return} {5:0}; |
{8:}} |
|
]]}
end) end)
it('inspects language', function() it('inspects language', function()