diff options
author | zeertzjq <zeertzjq@outlook.com> | 2025-03-22 06:32:49 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2025-03-27 07:26:42 +0800 |
commit | 0af780e8df849f6d393873124afaa31681ab43ec (patch) | |
tree | 6dc54fcd969c977ad35c02fc6ad3c5ce91f74e27 | |
parent | e39cdafed96813567128c931a6b784b6858dcc13 (diff) | |
download | rneovim-0af780e8df849f6d393873124afaa31681ab43ec.tar.gz rneovim-0af780e8df849f6d393873124afaa31681ab43ec.tar.bz2 rneovim-0af780e8df849f6d393873124afaa31681ab43ec.zip |
vim-patch:9.1.1228: completion: current position column wrong after got a match
Problem: The current_pos.col was incorrectly updated to the length of
the matching text. This will cause the next search to start
from the wrong position.
Solution: current_pos has already been updated in search_str_in_line and
does not need to be changed (glepnir)
closes: vim/vim#16941
https://github.com/vim/vim/commit/5753084042e17d794627d77e4300def031ce5498
Co-authored-by: glepnir <glephunter@gmail.com>
-rw-r--r-- | src/nvim/search.c | 1 | ||||
-rw-r--r-- | test/old/testdir/test_ins_complete.vim | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/search.c b/src/nvim/search.c index 6db5fc159b..b38296ac5c 100644 --- a/src/nvim/search.c +++ b/src/nvim/search.c @@ -3749,7 +3749,6 @@ bool search_for_fuzzy_match(buf_T *buf, pos_T *pos, char *pattern, int dir, pos_ } } *len = (int)(next_word_end - *ptr); - current_pos.col = *len; } } *pos = current_pos; diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim index 135e85b6c2..4bb537c081 100644 --- a/test/old/testdir/test_ins_complete.vim +++ b/test/old/testdir/test_ins_complete.vim @@ -2996,6 +2996,10 @@ func Test_complete_fuzzy_collect() call feedkeys("Sh\<C-X>\<C-K>\<C-N>\<C-N>\<CR>\<Esc>0", 'tx!') call assert_equal('think', getline(line('.') - 1)) + call setline(1, ['foo bar fuzzy', 'completefuzzycollect']) + call feedkeys("Gofuzzy\<C-X>\<C-N>\<C-N>\<C-N>\<C-Y>\<Esc>0", 'tx!') + call assert_equal('completefuzzycollect', getline('.')) + bw! bw! set dict& |