mirror of
https://github.com/vim/vim.git
synced 2025-10-21 08:24:06 -04:00
patch 9.1.1747: completion: redo (.) broken with preinsert and autocompletion
Problem: completion: redo (.) broken with preinsert and autocompletion Solution: Make redo (.) work with preinsert and autocompletion (Girish Palya) closes: #18253 Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
80981e1db9
commit
306a138172
@@ -154,9 +154,8 @@ static string_T compl_leader = {NULL, 0};
|
|||||||
static int compl_get_longest = FALSE; // put longest common string
|
static int compl_get_longest = FALSE; // put longest common string
|
||||||
// in compl_leader
|
// in compl_leader
|
||||||
|
|
||||||
// This flag indicates that one of the items in the match list is currently
|
// This flag is FALSE when no match is selected (by ^N/^P) or the match was
|
||||||
// selected. FALSE when no match is selected or the match was edited or using
|
// edited or using the longest common string.
|
||||||
// the longest common string.
|
|
||||||
static int compl_used_match;
|
static int compl_used_match;
|
||||||
|
|
||||||
// didn't finish finding completions.
|
// didn't finish finding completions.
|
||||||
@@ -5960,7 +5959,8 @@ ins_compl_insert(int move_cursor, int preinsert_prefix)
|
|||||||
curwin->w_cursor.col -= (colnr_T)(cp_str_len - leader_len);
|
curwin->w_cursor.col -= (colnr_T)(cp_str_len - leader_len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (match_at_original_text(compl_shown_match) || preinsert)
|
if (match_at_original_text(compl_shown_match)
|
||||||
|
|| (preinsert && !compl_autocomplete))
|
||||||
compl_used_match = FALSE;
|
compl_used_match = FALSE;
|
||||||
else
|
else
|
||||||
compl_used_match = TRUE;
|
compl_used_match = TRUE;
|
||||||
|
@@ -5634,6 +5634,13 @@ func Test_autocomplete_completeopt_preinsert()
|
|||||||
" Should not work with fuzzy
|
" Should not work with fuzzy
|
||||||
set cot+=fuzzy
|
set cot+=fuzzy
|
||||||
call DoTest("f", 'f', 2)
|
call DoTest("f", 'f', 2)
|
||||||
|
set cot-=fuzzy
|
||||||
|
|
||||||
|
" Verify that redo (dot) works
|
||||||
|
call setline(1, ["foobar", "foozbar", "foobaz", "changed", "change"])
|
||||||
|
call feedkeys($"/foo\<CR>", 'tx')
|
||||||
|
call feedkeys($"cwch\<C-N>\<Esc>n.n.", 'tx')
|
||||||
|
call assert_equal(repeat(['changed'], 3), getline(1, 3))
|
||||||
|
|
||||||
%delete _
|
%delete _
|
||||||
let &l:undolevels = &l:undolevels
|
let &l:undolevels = &l:undolevels
|
||||||
|
@@ -724,6 +724,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1747,
|
||||||
/**/
|
/**/
|
||||||
1746,
|
1746,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user