mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #14335 from chentau/extmark_delbytes
Extmarks: manually zero out `curbuf->deleted_bytes2` on substitute and join
This commit is contained in:
commit
f8990870ff
@ -4237,6 +4237,8 @@ skip:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
curbuf->deleted_bytes2 = 0;
|
||||||
|
|
||||||
if (first_line != 0) {
|
if (first_line != 0) {
|
||||||
/* Need to subtract the number of added lines from "last_line" to get
|
/* Need to subtract the number of added lines from "last_line" to get
|
||||||
* the line number before the change (same as adding the number of
|
* the line number before the change (same as adding the number of
|
||||||
|
@ -3992,6 +3992,7 @@ int do_join(size_t count,
|
|||||||
del_lines((long)count - 1, false);
|
del_lines((long)count - 1, false);
|
||||||
curwin->w_cursor.lnum = t;
|
curwin->w_cursor.lnum = t;
|
||||||
curbuf_splice_pending--;
|
curbuf_splice_pending--;
|
||||||
|
curbuf->deleted_bytes2 = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the cursor column:
|
* Set the cursor column:
|
||||||
|
@ -1001,6 +1001,39 @@ describe('lua: nvim_buf_attach on_bytes', function()
|
|||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it("flushes delbytes on substitute", function()
|
||||||
|
local check_events = setup_eventcheck(verify, {"AAA", "BBB", "CCC"})
|
||||||
|
|
||||||
|
feed("gg0")
|
||||||
|
command("s/AAA/GGG/")
|
||||||
|
|
||||||
|
check_events {
|
||||||
|
{ "test1", "bytes", 1, 3, 0, 0, 0, 0, 3, 3, 0, 3, 3 };
|
||||||
|
}
|
||||||
|
|
||||||
|
-- check that byte updates for :delete (which uses curbuf->deleted_bytes2)
|
||||||
|
-- are correct
|
||||||
|
command("delete")
|
||||||
|
check_events {
|
||||||
|
{ "test1", "bytes", 1, 4, 0, 0, 0, 1, 0, 4, 0, 0, 0 };
|
||||||
|
}
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("flushes delbytes on join", function()
|
||||||
|
local check_events = setup_eventcheck(verify, {"AAA", "BBB", "CCC"})
|
||||||
|
|
||||||
|
feed("gg0J")
|
||||||
|
|
||||||
|
check_events {
|
||||||
|
{ "test1", "bytes", 1, 3, 0, 3, 3, 1, 0, 1, 0, 1, 1 };
|
||||||
|
}
|
||||||
|
|
||||||
|
command("delete")
|
||||||
|
check_events {
|
||||||
|
{ "test1", "bytes", 1, 5, 0, 0, 0, 1, 0, 8, 0, 0, 0 };
|
||||||
|
}
|
||||||
|
end)
|
||||||
|
|
||||||
teardown(function()
|
teardown(function()
|
||||||
os.remove "Xtest-reload"
|
os.remove "Xtest-reload"
|
||||||
os.remove "Xtest-undofile"
|
os.remove "Xtest-undofile"
|
||||||
|
Loading…
Reference in New Issue
Block a user