mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -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
|
||||
@@ -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
|
||||
the cursor. This reduces the list of matches, often to one
|
||||
entry, and switches to the second state.
|
||||
When 'autocomplete' is set, clears the selected item in the
|
||||
menu.
|
||||
Any non-special character:
|
||||
Stop completion without changing the match and insert the
|
||||
typed character.
|
||||
@@ -1444,6 +1446,8 @@ Any non-special character:
|
||||
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
|
||||
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
|
||||
number of matches.
|
||||
any printable, non-white character:
|
||||
|
@@ -2424,6 +2424,10 @@ ins_compl_bs(void)
|
||||
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();
|
||||
if (compl_shown_match != NULL)
|
||||
// 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 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!
|
||||
call test_override("char_avail", 0)
|
||||
delfunc NonKeywordComplete
|
||||
|
@@ -724,6 +724,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1762,
|
||||
/**/
|
||||
1761,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user