aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/buffer_updates_spec.lua
diff options
context:
space:
mode:
authorAnton Adamansky <adamansky@gmail.com>2021-07-05 23:30:07 +0700
committerBjörn Linse <bjorn.linse@gmail.com>2021-10-07 20:21:23 +0200
commit7d171b1c48377aa5724d3bed0f497bf729b39b1c (patch)
treec08dcf367715697bceb75f64a514977a59ed2cfd /test/functional/lua/buffer_updates_spec.lua
parent206f4429c600620c7dad7225d1b128cbd5b35f6e (diff)
downloadrneovim-7d171b1c48377aa5724d3bed0f497bf729b39b1c.tar.gz
rneovim-7d171b1c48377aa5724d3bed0f497bf729b39b1c.tar.bz2
rneovim-7d171b1c48377aa5724d3bed0f497bf729b39b1c.zip
fix(buffer_updates): make `lockmarks` not affect extmarks and buffer updates. fixes #12861
Now mark_adjust() will trigger appropriate buf_updates_send_splice() called by extmark_adjust()
Diffstat (limited to 'test/functional/lua/buffer_updates_spec.lua')
-rw-r--r--test/functional/lua/buffer_updates_spec.lua48
1 files changed, 47 insertions, 1 deletions
diff --git a/test/functional/lua/buffer_updates_spec.lua b/test/functional/lua/buffer_updates_spec.lua
index 42b3d86eb0..f2740feb10 100644
--- a/test/functional/lua/buffer_updates_spec.lua
+++ b/test/functional/lua/buffer_updates_spec.lua
@@ -349,7 +349,12 @@ describe('lua: nvim_buf_attach on_bytes', function()
end
local text = meths.buf_get_lines(0, 0, -1, true)
- local bytes = table.concat(text, '\n') .. '\n'
+ local bytes = table.concat(text, '\n')
+ if #text ~= 1 or #bytes ~= 0 then
+ -- Not empty buffer.
+ -- Append '\n' only if buffer is not empty, see nvim_buf_get_lines().
+ bytes = bytes .. '\n'
+ end
eq(string.len(bytes), string.len(shadowbytes), '\non_bytes: total bytecount of buffer is wrong')
for i = 1, string.len(shadowbytes) do
@@ -1088,6 +1093,47 @@ describe('lua: nvim_buf_attach on_bytes', function()
}
end)
+ local function test_lockmarks(mode)
+ if not mode then mode = "" end
+ it("test_lockmarks " .. mode .. " %delete _", function()
+ local check_events = setup_eventcheck(verify, {"AAA", "BBB", "CCC"})
+
+ command(mode .. " %delete _")
+ check_events {
+ { "test1", "bytes", 1, 3, 0, 0, 0, 3, 0, 12, 0, 0, 0 };
+ }
+ end)
+
+ it("test_lockmarks " .. mode .. " append()", function()
+ local check_events = setup_eventcheck(verify)
+
+ command(mode .. " call append(0, 'CCC')")
+ check_events {
+ { "test1", "bytes", 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 4 };
+ }
+
+ command(mode .. " call append(1, 'BBBB')")
+ check_events {
+ { "test1", "bytes", 1, 3, 1, 0, 4, 0, 0, 0, 1, 0, 5 };
+ }
+
+ command(mode .. " call append(2, '')")
+ check_events {
+ { "test1", "bytes", 1, 4, 2, 0, 9, 0, 0, 0, 1, 0, 1 };
+ }
+
+ command(mode .. " $delete _")
+ check_events {
+ { "test1", "bytes", 1, 5, 3, 0, 10, 1, 0, 1, 0, 0, 0 };
+ }
+
+ eq("CCC|BBBB|", table.concat(meths.buf_get_lines(0, 0, -1, true), "|"))
+ end)
+ end
+
+ test_lockmarks()
+ test_lockmarks "lockmarks"
+
teardown(function()
os.remove "Xtest-reload"
os.remove "Xtest-undofile"