Merge pull request #13899 from chentau/set_text_fix

correctly mark changed regions for set_text
This commit is contained in:
Björn Linse 2021-02-08 19:08:43 +01:00 committed by GitHub
commit b2b47e4618
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -722,7 +722,8 @@ void nvim_buf_set_text(uint64_t channel_id, Buffer buffer,
kExtmarkUndo);
changed_lines((linenr_T)start_row, 0, (linenr_T)end_row, (long)extra, true);
changed_lines((linenr_T)start_row, 0, (linenr_T)end_row + 1,
(long)extra, true);
// adjust cursor like an extmark ( i e it was inside last_part_len)
if (curwin->w_cursor.lnum == end_row && curwin->w_cursor.col > end_col) {

View File

@ -513,6 +513,28 @@ describe('api/buf', function()
eq({0, 8}, curbufmeths.get_extmark_by_id(ns, id2, {}))
eq({0, 8}, curbufmeths.get_extmark_by_id(ns, id3, {}))
end)
it("correctly marks changed region for redraw #13890", function()
local screen = Screen.new(20, 5)
screen:attach()
insert([[
AAA
BBB
]])
curbufmeths.set_text(0, 0, 1, 3, {'XXX', 'YYY'})
screen:expect([[
XXX |
YYY |
^ |
~ |
|
]])
end)
end)
describe('nvim_buf_get_offset', function()