mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 9.1.1762: completion: selected item not cleared on <BS> with 'ac'
Problem: completion: selected item not cleared on backspace when 'autocomplete' is set Solution: Clear the selected item (Girish Palya) closes: #18260 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
ba36510920
commit
5c9b71d63c
@@ -1,4 +1,4 @@
|
|||||||
*insert.txt* For Vim version 9.1. Last change: 2025 Sep 11
|
*insert.txt* For Vim version 9.1. Last change: 2025 Sep 15
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1437,6 +1437,8 @@ In the first state these keys have a special meaning:
|
|||||||
<BS> and CTRL-H Delete one character, find the matches for the word before
|
<BS> and CTRL-H Delete one character, find the matches for the word before
|
||||||
the cursor. This reduces the list of matches, often to one
|
the cursor. This reduces the list of matches, often to one
|
||||||
entry, and switches to the second state.
|
entry, and switches to the second state.
|
||||||
|
When 'autocomplete' is set, clears the selected item in the
|
||||||
|
menu.
|
||||||
Any non-special character:
|
Any non-special character:
|
||||||
Stop completion without changing the match and insert the
|
Stop completion without changing the match and insert the
|
||||||
typed character.
|
typed character.
|
||||||
@@ -1444,6 +1446,8 @@ Any non-special character:
|
|||||||
In the second and third state these keys have a special meaning:
|
In the second and third state these keys have a special meaning:
|
||||||
<BS> and CTRL-H Delete one character, find the matches for the shorter word
|
<BS> and CTRL-H Delete one character, find the matches for the shorter word
|
||||||
before the cursor. This may find more matches.
|
before the cursor. This may find more matches.
|
||||||
|
When 'autocomplete' is set, clears the selected item in the
|
||||||
|
menu.
|
||||||
CTRL-L Add one character from the current match, may reduce the
|
CTRL-L Add one character from the current match, may reduce the
|
||||||
number of matches.
|
number of matches.
|
||||||
any printable, non-white character:
|
any printable, non-white character:
|
||||||
|
@@ -2424,6 +2424,10 @@ ins_compl_bs(void)
|
|||||||
return K_BS;
|
return K_BS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clear selection if a menu item is currently selected in autocompletion
|
||||||
|
if (compl_autocomplete && compl_first_match)
|
||||||
|
compl_shown_match = compl_first_match;
|
||||||
|
|
||||||
ins_compl_new_leader();
|
ins_compl_new_leader();
|
||||||
if (compl_shown_match != NULL)
|
if (compl_shown_match != NULL)
|
||||||
// Make sure current match is not a hidden item.
|
// Make sure current match is not a hidden item.
|
||||||
|
@@ -5247,6 +5247,21 @@ func Test_autocomplete_trigger()
|
|||||||
call feedkeys("Sazx\<Left>\<BS>\<F2>\<Esc>0", 'tx!')
|
call feedkeys("Sazx\<Left>\<BS>\<F2>\<Esc>0", 'tx!')
|
||||||
call assert_equal(['and', 'afoo'], b:matches->mapnew('v:val.word'))
|
call assert_equal(['and', 'afoo'], b:matches->mapnew('v:val.word'))
|
||||||
|
|
||||||
|
" Test 6: <BS> should clear the selected item
|
||||||
|
%d
|
||||||
|
call setline(1, ["foobarfoo", "foobar", "foobarbaz"])
|
||||||
|
call feedkeys("Gofo\<C-N>\<C-N>\<F2>\<F3>\<Esc>0", 'tx!')
|
||||||
|
call assert_equal(['foobarbaz', 'foobar', 'foobarfoo'], b:matches->mapnew('v:val.word'))
|
||||||
|
call assert_equal(1, b:selected)
|
||||||
|
call feedkeys("Sfo\<C-N>\<C-N>\<BS>\<F2>\<F3>\<Esc>0", 'tx!')
|
||||||
|
call assert_equal(['foobarbaz', 'foobar', 'foobarfoo'], b:matches->mapnew('v:val.word'))
|
||||||
|
call assert_equal(-1, b:selected)
|
||||||
|
call assert_equal('fooba', getline(4))
|
||||||
|
call feedkeys("Sfo\<C-N>\<C-N>\<BS>\<C-N>\<F2>\<F3>\<Esc>0", 'tx!')
|
||||||
|
call assert_equal(['foobarbaz', 'foobar', 'foobarfoo'], b:matches->mapnew('v:val.word'))
|
||||||
|
call assert_equal(0, b:selected)
|
||||||
|
call assert_equal('foobarbaz', getline(4))
|
||||||
|
|
||||||
bw!
|
bw!
|
||||||
call test_override("char_avail", 0)
|
call test_override("char_avail", 0)
|
||||||
delfunc NonKeywordComplete
|
delfunc NonKeywordComplete
|
||||||
|
@@ -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 */
|
||||||
|
/**/
|
||||||
|
1762,
|
||||||
/**/
|
/**/
|
||||||
1761,
|
1761,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user