diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2021-01-22 09:55:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-22 09:55:00 +0100 |
commit | b803bfa5aab1a2f8c74984fbf1176d1ff57d8540 (patch) | |
tree | f155fe3a7c5afd6457e3e726ea868a41b2bcd3a3 /test/functional/api/extmark_spec.lua | |
parent | 1607dd071fe1685cf42b0182b8d1d72152af2c40 (diff) | |
parent | 2ac0ca2025746c39d10aad0e32749174b4222448 (diff) | |
download | rneovim-b803bfa5aab1a2f8c74984fbf1176d1ff57d8540.tar.gz rneovim-b803bfa5aab1a2f8c74984fbf1176d1ff57d8540.tar.bz2 rneovim-b803bfa5aab1a2f8c74984fbf1176d1ff57d8540.zip |
Merge pull request #13679 from chentau/gravity
Extmarks api: allow for gravity
Diffstat (limited to 'test/functional/api/extmark_spec.lua')
-rw-r--r-- | test/functional/api/extmark_spec.lua | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/functional/api/extmark_spec.lua b/test/functional/api/extmark_spec.lua index ab913ba4a4..d2b555ee5b 100644 --- a/test/functional/api/extmark_spec.lua +++ b/test/functional/api/extmark_spec.lua @@ -1389,6 +1389,40 @@ describe('API/extmarks', function() undo]],false) eq(2, meths.eval('1+1')) -- did not crash end) + + it('works with left and right gravity', function() + -- right gravity should move with inserted text, while + -- left gravity should stay in place. + curbufmeths.set_extmark(ns, 0, 5, {right_gravity = false}) + curbufmeths.set_extmark(ns, 0, 5, {right_gravity = true}) + feed([[Aasdfasdf]]) + + eq({ {1, 0, 5}, {2, 0, 13} }, + curbufmeths.get_extmarks(ns, 0, -1, {})) + + -- but both move when text is inserted before + feed([[<esc>Iasdf<esc>]]) + -- eq({}, curbufmeths.get_lines(0, -1, true)) + eq({ {1, 0, 9}, {2, 0, 17} }, + curbufmeths.get_extmarks(ns, 0, -1, {})) + + -- clear text + curbufmeths.set_text(0, 0, 0, 17, {}) + + -- handles set_text correctly as well + eq({ {1, 0, 0}, {2, 0, 0} }, + meths.buf_get_extmarks(0, ns, 0, -1, {})) + curbufmeths.set_text(0, 0, 0, 0, {'asdfasdf'}) + eq({ {1, 0, 0}, {2, 0, 8} }, + curbufmeths.get_extmarks(ns, 0, -1, {})) + + feed('u') + -- handles pasting + meths.exec([[let @a='asdfasdf']], false) + feed([["ap]]) + eq({ {1, 0, 0}, {2, 0, 8} }, + meths.buf_get_extmarks(0, ns, 0, -1, {})) + end) end) describe('Extmarks buffer api with many marks', function() |