diff options
author | luukvbaal <luukvbaal@gmail.com> | 2024-12-02 15:11:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-02 06:11:38 -0800 |
commit | c7ec010ade0832e43c7a319ea69fae642771479d (patch) | |
tree | 30069d1b922083b11828512624f702b2eb32e011 | |
parent | 9d0117fd305d4a52552eca407dacb429132df82c (diff) | |
download | rneovim-c7ec010ade0832e43c7a319ea69fae642771479d.tar.gz rneovim-c7ec010ade0832e43c7a319ea69fae642771479d.tar.bz2 rneovim-c7ec010ade0832e43c7a319ea69fae642771479d.zip |
fix(extmark): builtin completion can still affect nearby extmarks #31387
Problem:
Built-in completion can still affect nearby extmarks. #31384
Solution:
Restore extmarks when completion leader changes.
-rw-r--r-- | src/nvim/insexpand.c | 1 | ||||
-rw-r--r-- | test/functional/editor/completion_spec.lua | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index 820647df97..a1cebb407e 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -1805,6 +1805,7 @@ static void ins_compl_new_leader(void) ins_compl_del_pum(); ins_compl_delete(); ins_bytes(compl_leader + get_compl_len()); + restore_orig_extmarks(); compl_used_match = false; if (compl_started) { diff --git a/test/functional/editor/completion_spec.lua b/test/functional/editor/completion_spec.lua index 030181764d..da4d7a6640 100644 --- a/test/functional/editor/completion_spec.lua +++ b/test/functional/editor/completion_spec.lua @@ -1302,5 +1302,15 @@ describe('completion', function() aaaaa | {5:-- INSERT --} | ]]) + -- Also when completion leader is changed #31384 + feed('<Esc>hi<C-N><C-P>a') + screen:expect({ + grid = [[ + {9:aa}a^aa | + {4:aaaa } | + {4:aaaaa } | + {5:-- Keyword completion (^N^P) }{19:Back at original} | + ]], + }) end) end) |