mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.0.0669: CTRL-N at start of the buffer does not work correctly (#8600)
Problem: In Insert mode, CTRL-N at start of the buffer does not work
correctly. (zuloloxi)
Solution: Wrap around the start of the buffer. (Christian Brabandt)
24a9e348aa
This commit is contained in:
parent
6e55c5997e
commit
b454d24e04
@ -3708,9 +3708,15 @@ static int ins_compl_get_exp(pos_T *ini)
|
||||
if (*e_cpt == '.' && !curbuf->b_scanned) {
|
||||
ins_buf = curbuf;
|
||||
first_match_pos = *ini;
|
||||
/* So that ^N can match word immediately after cursor */
|
||||
if (l_ctrl_x_mode == 0)
|
||||
dec(&first_match_pos);
|
||||
// Move the cursor back one character so that ^N can match the
|
||||
// word immediately after the cursor.
|
||||
if (ctrl_x_mode == 0 && dec(&first_match_pos) < 0) {
|
||||
// Move the cursor to after the last character in the
|
||||
// buffer, so that word at start of buffer is found
|
||||
// correctly.
|
||||
first_match_pos.lnum = ins_buf->b_ml.ml_line_count;
|
||||
first_match_pos.col = (colnr_T)STRLEN(ml_get(first_match_pos.lnum));
|
||||
}
|
||||
last_match_pos = first_match_pos;
|
||||
type = 0;
|
||||
|
||||
|
@ -650,5 +650,19 @@ func Test_complete_func_mess()
|
||||
set completefunc=
|
||||
endfunc
|
||||
|
||||
func Test_complete_CTRLN_startofbuffer()
|
||||
new
|
||||
call setline(1, [ 'organize(cupboard, 3, 2);',
|
||||
\ 'prioritize(bureau, 8, 7);',
|
||||
\ 'realize(bannister, 4, 4);',
|
||||
\ 'moralize(railing, 3,9);'])
|
||||
let expected=['cupboard.organize(3, 2);',
|
||||
\ 'bureau.prioritize(8, 7);',
|
||||
\ 'bannister.realize(4, 4);',
|
||||
\ 'railing.moralize(3,9);']
|
||||
call feedkeys("qai\<c-n>\<c-n>.\<esc>3wdW\<cr>q3@a", 'tx')
|
||||
call assert_equal(expected, getline(1,'$'))
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
Loading…
Reference in New Issue
Block a user