mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00:00
patch 9.1.1201: 'completefuzzycollect' does not handle dictionary correctly
Problem: 'completefuzzycollect' does not handle dictionary correctly Solution: check for ctrl_x_mode_dictionary (glepnir) closes: #16867 Signed-off-by: glepnir <glephunter@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
1dc731a49f
commit
587601671c
@ -2113,17 +2113,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
find completion candidates instead of the standard prefix-based
|
find completion candidates instead of the standard prefix-based
|
||||||
matching. This option can contain the following values:
|
matching. This option can contain the following values:
|
||||||
|
|
||||||
keyword keywords in the current file |i_CTRL-X_CTRL-N|
|
keyword keywords in the current file |i_CTRL-X_CTRL-N|
|
||||||
keywords with the ".", "w", "b", "u", "U" and
|
keywords with flags ".", "w", |i_CTRL-N| |i_CTRL-P|
|
||||||
"k{dict}" flags in 'complete'. |i_CTRL-N| |i_CTRL-P|
|
"b", "u", "U" and "k{dict}" in 'complete'
|
||||||
|
keywords in 'dictionary' |i_CTRL-X_CTRL-K|
|
||||||
|
|
||||||
files file names |i_CTRL-X_CTRL-F|
|
files file names |i_CTRL-X_CTRL-F|
|
||||||
|
|
||||||
whole_line whole lines |i_CTRL-X_CTRL-L|
|
whole_line whole lines |i_CTRL-X_CTRL-L|
|
||||||
|
|
||||||
When used with 'completeopt' "longest" option, fuzzy collection can
|
When used the 'completeopt' "longest" option value, fuzzy collection
|
||||||
identify the longest common string among the best fuzzy matches and
|
can identify the longest common string among the best fuzzy matches
|
||||||
automatically insert it.
|
and insert it automatically.
|
||||||
|
|
||||||
*'completeitemalign'* *'cia'*
|
*'completeitemalign'* *'cia'*
|
||||||
'completeitemalign' 'cia' string (default: "abbr,kind,menu")
|
'completeitemalign' 'cia' string (default: "abbr,kind,menu")
|
||||||
|
@ -764,17 +764,14 @@ ins_compl_add_infercase(
|
|||||||
static int
|
static int
|
||||||
cfc_has_mode(void)
|
cfc_has_mode(void)
|
||||||
{
|
{
|
||||||
switch (ctrl_x_mode)
|
if (ctrl_x_mode_normal() || ctrl_x_mode_dictionary())
|
||||||
{
|
return (cfc_flags & CFC_KEYWORD) != 0;
|
||||||
case CTRL_X_NORMAL:
|
else if (ctrl_x_mode_files())
|
||||||
return (cfc_flags & CFC_KEYWORD) != 0;
|
return (cfc_flags & CFC_FILES) != 0;
|
||||||
case CTRL_X_FILES:
|
else if (ctrl_x_mode_whole_line())
|
||||||
return (cfc_flags & CFC_FILES) != 0;
|
return (cfc_flags & CFC_WHOLELINE) != 0;
|
||||||
case CTRL_X_WHOLE_LINE:
|
else
|
||||||
return (cfc_flags & CFC_WHOLELINE) != 0;
|
return FALSE;
|
||||||
default:
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1792,7 +1789,7 @@ ins_compl_files(
|
|||||||
int add_r;
|
int add_r;
|
||||||
char_u *leader = NULL;
|
char_u *leader = NULL;
|
||||||
int leader_len = 0;
|
int leader_len = 0;
|
||||||
int in_fuzzy_collect = cfc_has_mode() && ctrl_x_mode_normal();
|
int in_fuzzy_collect = cfc_has_mode();
|
||||||
int score = 0;
|
int score = 0;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
char_u *line_end = NULL;
|
char_u *line_end = NULL;
|
||||||
|
@ -2955,8 +2955,17 @@ func Test_complete_fuzzy_collect()
|
|||||||
call feedkeys("Gofuzzy\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<CR>\<Esc>0", 'tx!')
|
call feedkeys("Gofuzzy\<C-X>\<C-N>\<C-N>\<C-N>\<C-N>\<CR>\<Esc>0", 'tx!')
|
||||||
call assert_equal('completefuzzycollect', getline(line('.') - 1))
|
call assert_equal('completefuzzycollect', getline(line('.') - 1))
|
||||||
|
|
||||||
|
" keywords in 'dictonary'
|
||||||
|
call writefile(['hello', 'think'], 'test_dict.txt', 'D')
|
||||||
|
set dict=test_dict.txt
|
||||||
|
call feedkeys("Sh\<C-X>\<C-K>\<C-N>\<CR>\<Esc>0", 'tx!')
|
||||||
|
call assert_equal('hello', getline(line('.') - 1))
|
||||||
|
call feedkeys("Sh\<C-X>\<C-K>\<C-N>\<C-N>\<CR>\<Esc>0", 'tx!')
|
||||||
|
call assert_equal('think', getline(line('.') - 1))
|
||||||
|
|
||||||
bw!
|
bw!
|
||||||
bw!
|
bw!
|
||||||
|
set dict&
|
||||||
set completeopt& cfc& cpt&
|
set completeopt& cfc& cpt&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@ -704,6 +704,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 */
|
||||||
|
/**/
|
||||||
|
1201,
|
||||||
/**/
|
/**/
|
||||||
1200,
|
1200,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user