From d73cfefed5e45fec91a422cd87054611ff711b30 Mon Sep 17 00:00:00 2001 From: tao <2471314@gmail.com> Date: Fri, 22 Aug 2025 10:55:45 +0800 Subject: fix(folds): error when deleting lines at end of buffer #35396 Problem: with `foldmethod=expr foldexpr=v:lua.vim.treesitter.foldexpr() foldminlines=0`, deleting lines at the end of the buffer always reports an invalid top error, because the top value (i.e. the start line number of the deletion) is always 1 greater than the total line number of the modified buffer. Solution: remove the ml_line_count validation --- src/nvim/lua/stdlib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/nvim/lua') diff --git a/src/nvim/lua/stdlib.c b/src/nvim/lua/stdlib.c index 4a3b8596b3..a57ca059b7 100644 --- a/src/nvim/lua/stdlib.c +++ b/src/nvim/lua/stdlib.c @@ -563,7 +563,7 @@ static int nlua_foldupdate(lua_State *lstate) } // input is zero-based end-exclusive range linenr_T top = (linenr_T)luaL_checkinteger(lstate, 2) + 1; - if (top < 1 || top > win->w_buffer->b_ml.ml_line_count) { + if (top < 1) { return luaL_error(lstate, "invalid top"); } linenr_T bot = (linenr_T)luaL_checkinteger(lstate, 3); -- cgit