fix(api): nvim_buf_set_text resets changelist to 0 #39965

Problem: changed_lines got a hardcoded 0, so the changelist entry
and '. mark always recorded column 0 instead of where the edit
actually happened.

Solution: pass start_col instead. changelist now tracks the real
column.
This commit is contained in:
glepnir
2026-06-30 02:38:07 +08:00
committed by GitHub
parent b22a8e2f00
commit 7312df77bb
2 changed files with 6 additions and 1 deletions

View File

@@ -975,6 +975,10 @@ describe('api/buf', function()
eq('hello foo!', curbuf_depr('get_line', 0))
-- cursor should be moved left by two columns (replacement is shorter by 2 chars)
eq({ 1, 9 }, api.nvim_win_get_cursor(0))
-- changelist entry reflects the edit column #28618
local changes = fn.getchangelist()[1]
eq(6, changes[#changes].col)
end)
it('updates the cursor position in non-current window', function()