commit 0af780e8df849f6d393873124afaa31681ab43ec
parent e39cdafed96813567128c931a6b784b6858dcc13
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat, 22 Mar 2025 06:32:49 +0800
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>
Diffstat:
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git 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
@@ -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&