vim-patch:9.1.0098: CompleteChanged not triggered when new leader added without matches (#27436)

Problem:  CompleteChanged not triggered when new leader added causing
          no matching item in the completion menu
Solution: When completion is active but no items matched still trigger
          CompleteChanged event
          (glepnir)

closes: vim/vim#13982

0d3c0a66a3

Fix #15077
This commit is contained in:
Raphael 2024-02-12 14:57:13 +08:00 committed by GitHub
parent 929e1b7f1c
commit 4682f158a0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 0 deletions

View File

@ -1279,6 +1279,9 @@ void ins_compl_show_pum(void)
}
if (compl_match_array == NULL) {
if (compl_started && has_event(EVENT_COMPLETECHANGED)) {
trigger_complete_changed_event(cur);
}
return;
}

View File

@ -1142,6 +1142,10 @@ func Test_CompleteChanged()
let g:event = copy(v:event)
let g:item = get(v:event, 'completed_item', {})
let g:word = get(g:item, 'word', v:null)
let l:line = getline('.')
if g:word == v:null && l:line == "bc"
let g:word = l:line
endif
endfunction
augroup AAAAA_Group
au!
@ -1161,6 +1165,8 @@ func Test_CompleteChanged()
call assert_equal(v:null, g:word)
call feedkeys("a\<C-N>\<C-N>\<C-N>\<C-N>\<C-P>", 'tx')
call assert_equal('foobar', g:word)
call feedkeys("S\<C-N>bc", 'tx')
call assert_equal("bc", g:word)
func Omni_test(findstart, base)
if a:findstart