Before

…lines 1–5594 unchanged (5594 lines)
5595 call feedkeys("Sprefix->fo\<C-W>\<F2>\<Esc>0", 'tx!')
5596 call assert_equal(['fooze', 'faberge'], b:matches->mapnew('v:val.word'))
5597 call feedkeys("Sprefix->\<Esc>afo\<C-U>\<F2>\<Esc>0", 'tx!')
5598 call assert_equal(['fooze', 'faberge'], b:matches->mapnew('v:val.word'))
5599
5600 " Test 9: Trigger autocomplete immediately upon entering Insert mode
5601 call feedkeys("Sprefix->foo\<Esc>a\<F2>\<Esc>0", 'tx!')
5602 call assert_equal(['foobar', 'fooze', 'faberge'], b:matches->mapnew('v:val.word'))
5603 call feedkeys("Sprefix->fooxx\<Esc>hcw\<F2>\<Esc>0", 'tx!')
5604 call assert_equal(['foobar', 'fooze', 'faberge'], b:matches->mapnew('v:val.word'))
5605
5606 bw!
5607 call Ntest_override("char_avail", 0)
5608 delfunc NonKeywordComplete
5609 delfunc TestComplete
5610 set autocomplete& omnifunc& complete&
…lines 5611–6304 unchanged (694 lines)
6305 call feedkeys("Goa\<Esc>0", 'tx!')
6306 call feedkeys(":h\<CR>", 'tx') " used to throw E149 exception
6307 call Ntest_override("char_avail", 0)
6308 set autocomplete& completeopt& complete&
6309 bw!
6310endfunc
6311
6312" vim: shiftwidth=2 sts=2 expandtab nofoldenable
6313

After

…lines 1–5594 unchanged (5594 lines)
5595 call feedkeys("Sprefix->fo\<C-W>\<F2>\<Esc>0", 'tx!')
5596 call assert_equal(['fooze', 'faberge'], b:matches->mapnew('v:val.word'))
5597 call feedkeys("Sprefix->\<Esc>afo\<C-U>\<F2>\<Esc>0", 'tx!')
5598 call assert_equal(['fooze', 'faberge'], b:matches->mapnew('v:val.word'))
5599
5600 " Test 9: Trigger autocomplete immediately upon entering Insert mode
5601 " 'faberge' is filtered out because it doesn't start with the current prefix
5602 " 'foo'; non-prefix omnifunc matches are excluded from the PUM when leader
5603 " is NULL (compl_orig_text is used as a fallback filter).
5604 call feedkeys("Sprefix->foo\<Esc>a\<F2>\<Esc>0", 'tx!')
5605 call assert_equal(['foobar', 'fooze'], b:matches->mapnew('v:val.word'))
5606 call feedkeys("Sprefix->fooxx\<Esc>hcw\<F2>\<Esc>0", 'tx!')
5607 call assert_equal(['foobar', 'fooze'], b:matches->mapnew('v:val.word'))
5608
5609 bw!
5610 call Ntest_override("char_avail", 0)
5611 delfunc NonKeywordComplete
5612 delfunc TestComplete
5613 set autocomplete& omnifunc& complete&
…lines 5614–6308 unchanged (695 lines)
6309 call feedkeys(":h\<CR>", 'tx') " used to throw E149 exception
6310 call Ntest_override("char_avail", 0)
6311 set autocomplete& completeopt& complete&
6312 bw!
6313endfunc
6314
6315func Test_autocomplete_preinsert_null_leader()
6316 " Test that non-prefix matches from omnifunc are filtered when leader is NULL.
6317 " When autocomplete first fires, compl_leader is NULL. Previously the prefix
6318 " filter was bypassed, allowing non-prefix fuzzy matches to be incorrectly
6319 " shown in the PUM and preinserted.
6320 func NonPrefixOmni(findstart, base)
6321 if a:findstart
6322 return col(".") - 1
6323 endif
6324 " Return "key" (doesn't start with 'y') and "yellow" (starts with 'y').
6325 " Simulates what a fuzzy omnifunc returns (e.g. vimcomplete#Complete with
6326 " wildoptions=fuzzy).
6327 return ["key", "yellow"]
6328 endfunc
6329
6330 call Ntest_override("char_avail", 1)
6331 new
6332 set omnifunc=NonPrefixOmni complete=o
6333 set completeopt=preinsert autocomplete
6334
6335 func GetState()
6336 let g:line = getline('.')
6337 let g:col = col('.')
6338 let g:matches = complete_info(['matches']).matches->mapnew('v:val.word')
6339 endfunc
6340 inoremap <buffer> <F5> <C-R>=GetState()<CR>
6341
6342 " Type 'y': "key" should be filtered out (doesn't start with 'y'),
6343 " "yellow" should be the only PUM entry and preinserted with cursor after 'y'.
6344 call feedkeys("iy\<F5>\<C-E>\<Esc>", 'tx')
6345 call assert_equal("yellow", g:line)
6346 call assert_equal(2, g:col)
6347 call assert_equal(['yellow'], g:matches)
6348
6349 bw!
6350 set omnifunc& complete& completeopt& autocomplete&
6351 call Ntest_override("char_avail", 0)
6352 delfunc NonPrefixOmni
6353 delfunc GetState
6354endfunc
6355
6356" vim: shiftwidth=2 sts=2 expandtab nofoldenable
6357

Before

script_file
comment "\" Test for insert completion"
source_statement
source "source"
filename "screendump.vim"
source_statement
source "source"
filename "check.vim"
source_statement
source "source"
filename "vim9.vim"
comment "\" Test for insert expansion"
function_definition (+524 nodes collapsed)
function_definition (+93 nodes collapsed)
function_definition (+110 nodes collapsed)
function_definition (+171 nodes collapsed)
function_definition (+113 nodes collapsed)
function_definition (+311 nodes collapsed)
function_definition (+32 nodes collapsed)
function_definition (+72 nodes collapsed)
function_definition
function "func"
function_declaration
scoped_identifier
scope "s:"
identifier "CompleteDone_CheckCompletedItemNone"
parameters
( "("
) ")"
body
let_statement
let "let"
scoped_identifier
scope "s:"
identifier "called_completedone"
= "="
integer_literal "1"
endfunction "endfunc"
function_definition (+146 nodes collapsed)
function_definition (+181 nodes collapsed)
function_definition (+703 nodes collapsed)
function_definition (+195 nodes collapsed)
function_definition (+63 nodes collapsed)
function_definition (+108 nodes collapsed)
function_definition (+121 nodes collapsed)
function_definition (+30 nodes collapsed)
function_definition (+108 nodes collapsed)
function_definition (+167 nodes collapsed)
function_definition (+106 nodes collapsed)
function_definition (+64 nodes collapsed)
function_definition (+32 nodes collapsed)
function_definition (+154 nodes collapsed)
comment "\" For ^N completion, `completefunc` receives the same leader"...
comment "\" 'info' and 'expansion' phases (the leader is not removed b"...
comment "\" This avoids flicker when `completefunc` (e.g. an LSP clien"...
comment "\" 'sleep', which triggers out_flush()."
function_definition (+221 nodes collapsed)
function_definition (+86 nodes collapsed)
function_definition (+24 nodes collapsed)
function_definition (+24 nodes collapsed)
function_definition (+123 nodes collapsed)
function_definition (+67 nodes collapsed)
function_definition (+63 nodes collapsed)
function_definition (+344 nodes collapsed)
function_definition (+273 nodes collapsed)
comment "\" Test that mouse scrolling/movement should not interrupt co"...
function_definition (+441 nodes collapsed)
comment "\" Check that when using feedkeys() typeahead does not interr"...
comment "\" completions."
function_definition (+49 nodes collapsed)
function_definition
function "func"
function_declaration
scoped_identifier
scope "s:"
identifier "ComplInCmdwin_GlobalCompletion"
parameters
( "("
identifier "a"
, ","
identifier "l"
, ","
identifier "p"
) ")"
body
return_statement
return "return"
string_literal "'global'"
endfunction "endfunc"
function_definition
function "func"
function_declaration
scoped_identifier
scope "s:"
identifier "ComplInCmdwin_LocalCompletion"
parameters
( "("
identifier "a"
, ","
identifier "l"
, ","
identifier "p"
) ")"
body
return_statement
return "return"
string_literal "'local'"
endfunction "endfunc"
function_definition (+466 nodes collapsed)
comment "\" Test for insert path completion with completeslash option"
function_definition (+240 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+49 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+110 nodes collapsed)
function_definition (+83 nodes collapsed)
comment "\" Test for inserting the tag search pattern in insert mode"
function_definition (+104 nodes collapsed)
comment "\" Test for 'completefunc' deleting text"
function_definition (+350 nodes collapsed)
comment "\" Test for returning non-string values from 'completefunc'"
function_definition (+152 nodes collapsed)
comment "\" Test for errors in using complete() function"
function_definition (+114 nodes collapsed)
comment "\" Test for recursively starting completion mode using comple"...
function_definition (+81 nodes collapsed)
comment "\" Test for using complete() with completeopt+=longest"
function_definition (+117 nodes collapsed)
comment "\" Test for buffer-local value of 'completeopt'"
function_definition (+941 nodes collapsed)
comment "\" Test for completing words following a completed word in a "...
function_definition (+120 nodes collapsed)
comment "\" Test for completing special characters"
function_definition (+46 nodes collapsed)
comment "\" Test for completion when text is wrapped across lines."
function_definition (+58 nodes collapsed)
comment "\" Test for completing words with a '.' at the end of a word."
function_definition (+55 nodes collapsed)
comment "\" Test for using CTRL-L to add one character when completing"...
function_definition (+116 nodes collapsed)
comment "\" Test for using CTRL-X CTRL-L to complete whole lines lines"
function_definition (+264 nodes collapsed)
comment "\" Test for using CTRL-X CTRL-S to complete spell suggestions"
function_definition (+81 nodes collapsed)
comment "\" Test insert completion with 'cindent' (adjust the indent)"
function_definition (+102 nodes collapsed)
comment "\" Test for <CTRL-X> <CTRL-V> completion. Complete commands a"...
function_definition (+128 nodes collapsed)
comment "\" Test for <CTRL-X> <CTRL-Z> stopping completion without cha"...
function_definition (+349 nodes collapsed)
comment "\" Test for typing CTRL-R in insert completion mode to insert"...
comment "\" content."
function_definition (+89 nodes collapsed)
function_definition (+55 nodes collapsed)
comment "\" Test for 'longest' setting in 'completeopt' with latin1 an"...
function_definition (+126 nodes collapsed)
comment "\" Test for removing the first displayed completion match and"...
comment "\" match just before that."
function_definition (+59 nodes collapsed)
comment "\" Test for completing words from unloaded buffers"
function_definition (+113 nodes collapsed)
comment "\" Test for completing whole lines from unloaded buffers"
function_definition (+94 nodes collapsed)
comment "\" Test for completing words from unlisted buffers"
function_definition (+111 nodes collapsed)
comment "\" Test for completing whole lines from unlisted buffers"
function_definition (+94 nodes collapsed)
comment "\" Test for adding a multibyte character using CTRL-L in comp"...
function_definition (+76 nodes collapsed)
comment "\" Test for using <C-X><C-P> for local expansion even if 'com"...
comment "\" not to complete matches from the local buffer. Also test u"...
comment "\" <C-X> to cancel the current completion mode."
function_definition (+257 nodes collapsed)
comment "\" Test for undoing changes after a insert-mode completion"
function_definition (+189 nodes collapsed)
comment "\" Test for completing a very long word"
function_definition (+165 nodes collapsed)
comment "\" Test for some fields in the complete items used by complet"...
function_definition (+393 nodes collapsed)
comment "\" Test for the \"refresh\" item in the dict returned by an ins"...
comment "\" function"
function_definition (+327 nodes collapsed)
comment "\" Test for 'cpt' user func that fails (return -2/-3) when re"...
function_definition (+638 nodes collapsed)
comment "\" Select items before they are removed by refresh:always"
function_definition (+812 nodes collapsed)
comment "\" Test two functions together, each returning refresh:always"
function_definition (+875 nodes collapsed)
comment "\" Test for completing from a thesaurus file without read per"...
function_definition (+77 nodes collapsed)
comment "\" Test to ensure 'Scanning...' messages are not recorded in "...
function_definition (+53 nodes collapsed)
comment "\" A mapping is not used for the key after CTRL-X."
function_definition (+69 nodes collapsed)
comment "\" Test for different ways of setting a function in 'complete"...
function_definition (+385 nodes collapsed)
comment "\" Test for different ways of setting the 'completefunc' opti"...
function_definition (+527 nodes collapsed)
comment "\" Test for different ways of setting the 'omnifunc' option"
function_definition (+579 nodes collapsed)
comment "\" Test for different ways of setting the 'thesaurusfunc' opt"...
function_definition (+939 nodes collapsed)
function_definition (+42 nodes collapsed)
function_definition (+146 nodes collapsed)
function_definition (+21 nodes collapsed)
function_definition (+123 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+26 nodes collapsed)
function_definition (+25 nodes collapsed)
comment "\" This was using freed memory, since 'complete' was in a wip"...
comment "\" Also using a window that was closed."
function_definition (+32 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "\" 'tagfunc' calling complete() should not cause hang or E684"...
function_definition (+130 nodes collapsed)
function_definition (+78 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+1308 nodes collapsed)
function_definition (+82 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+1335 nodes collapsed)
function_definition (+1089 nodes collapsed)
comment "\" Issue #18752"
function_definition (+71 nodes collapsed)
function_definition (+533 nodes collapsed)
function_definition (+166 nodes collapsed)
comment "\" Check that tie breaking is stable for completeopt+=fuzzy ("...
comment "\" behave the same on different platforms)."
function_definition (+135 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+567 nodes collapsed)
function_definition (+282 nodes collapsed)
function_definition (+109 nodes collapsed)
function_definition (+1393 nodes collapsed)
function_definition (+967 nodes collapsed)
comment "\" Check that mark positions are correct after triggering mul"...
function_definition (+369 nodes collapsed)
function_definition (+1407 nodes collapsed)
function_definition (+192 nodes collapsed)
comment "\" Test normal mode (^N/^P/^X^N/^X^P) with smartcase when 1) "...
comment "\" found and 2) matches are filtered (when a character is typ"...
function_definition (+694 nodes collapsed)
comment "\" Test 'nearest' flag of 'completeopt'"
function_definition (+897 nodes collapsed)
function_definition (+728 nodes collapsed)
comment "\" Test refresh:always with unloaded buffers (issue #17363)"
function_definition (+212 nodes collapsed)
comment "\" Verify that the order of matches from each source is consi"...
comment "\" during both ^N and ^P completions (Issue #17425)."
function_definition (+399 nodes collapsed)
function_definition (+163 nodes collapsed)
comment "\" Test that option shortmess=c turns off completion messages"
function_definition (+127 nodes collapsed)
comment "\" Test 'complete' containing F{func} that complete from nonk"...
function_definition (+1210 nodes collapsed)
function_definition
function "func"
function_declaration
identifier "Test_autocomplete_trigger"
parameters
( "("
) ")"
body
comment "\" Trigger expansion even when another char is waiting in the"...
call_statement
call "call"
call_expression
identifier "Ntest_override"
( "("
string_literal "\"char_avail\""
, ","
integer_literal "1"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
function_definition (+116 nodes collapsed)
unknown_builtin_statement
unknown_command_name "new"
map_statement (+27 nodes collapsed)
map_statement (+29 nodes collapsed)
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "'abc'"
, ","
string_literal "'abcd'"
, ","
string_literal "'fo'"
, ","
string_literal "'b'"
, ","
string_literal "''"
] "]"
) ")"
set_statement
set "set"
set_item
option_name "autocomplete"
comment "\" Test 1a: Nonkeyword doesn't open menu without F{func} when"...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"GS=\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
scoped_identifier
scope "b:"
identifier "matches"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'='"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" ^N opens menu of keywords (of len > 1)"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S=\\<C-E>\\<C-N>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'=abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 1b: With F{func} nonkeyword collects matches"
set_statement
set "set"
set_item
option_name "complete"
= "="
set_value ".,FNonKeywordComplete"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S=\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'='"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S->\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'->'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 1c: Keyword after nonkeyword can collect both types o"...
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a.\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "3"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a.a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "4"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.a'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 1d: Nonkeyword after keyword collects items again"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'a'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa#\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'a#'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 2: Filter nonkeyword and keyword matches with differe"...
for_loop (+312 nodes collapsed)
comment "\" Test 3: Navigate menu containing nonkeyword and keyword it"...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#afoo'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a.a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.afoo'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.abar'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 4a: When autocomplete menu is active, ^X^N completes "...
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<C-E>\\<C-X>\\<C-N>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Test 4b: When autocomplete menu is active, ^X^O completes "...
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
set_statement
set "set"
set_item
option_name "omnifunc"
= "="
set_value "NonKeywordComplete"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<C-X>\\<C-O>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "3"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Test 4c: When autocomplete menu is active, ^E^N completes "...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa\\<C-E>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa\\<C-E>\\<C-N>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Test 4d: When autocomplete menu is active, ^X^L completes "...
range_statement
file "%"
ERROR
marker_definition "d"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"afoo bar\""
, ","
string_literal "\"barbar foo\""
, ","
string_literal "\"foo bar\""
, ","
string_literal "\"and\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Goa\\<C-X>\\<C-L>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Issue #18044"
range_statement
file "%"
ERROR
marker_definition "d"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"first line\""
, ","
string_literal "\"second line\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Gof\\<C-X>\\<C-L>\\<Esc>\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "\"first line\""
, ","
call_expression
identifier "getline"
( "("
integer_literal "3"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sf\\<C-X>\\<C-L>\\<C-X>\\<C-L>\\<Esc>\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "\"second line\""
, ","
call_expression
identifier "getline"
( "("
integer_literal "4"
) ")"
) ")"
comment "\" Test 5: When invalid prefix stops completion, backspace sh"...
range_statement
file "%"
ERROR
marker_definition "d"
set_statement
set "set"
set_item
default_option
option_name "complete"
& "&"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"afoo bar\""
, ","
string_literal "\"barbar foo\""
, ","
string_literal "\"foo bar\""
, ","
string_literal "\"and\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Goabc\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sabc\\<BS>\\<BS>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Szx\\<BS>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sazx\\<Left>\\<BS>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
comment "\" Test 6: <BS> should clear the selected item (PR #18265)"
range_statement
file "%"
ERROR
marker_definition "d"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"foobarfoo\""
, ","
string_literal "\"foobar\""
, ","
string_literal "\"foobarbaz\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Gofo\\<C-N>\\<C-N>\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sfo\\<C-N>\\<C-N>\\<BS>\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "-1"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'fooba'"
, ","
call_expression
identifier "getline"
( "("
integer_literal "4"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sfo\\<C-N>\\<C-N>\\<BS>\\<C-N>\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "0"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'foobarbaz'"
, ","
call_expression
identifier "getline"
( "("
integer_literal "4"
) ")"
) ")"
comment "\" Test 7: Remove selection when menu contents change (PR #18"...
range_statement
file "%"
ERROR
marker_definition "d"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"foobar\""
, ","
string_literal "\"fodxyz\""
, ","
string_literal "\"fodabc\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Gofoo\\<C-N>\\<BS>\\<BS>\\<BS>\\<BS>d\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "-1"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
comment "\" Test 8: Ctrl_W / Ctrl_U (delete word/line) should restart "...
function_definition (+39 nodes collapsed)
set_statement
set "set"
set_item
option_name "omnifunc"
= "="
set_value "TestComplete"
set_statement
set "set"
set_item
option_name "complete"
+= "+="
set_value "o"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->fo\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->fo\\<C-W>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->\\<Esc>afo\\<C-U>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
comment "\" Test 9: Trigger autocomplete immediately upon entering Ins"...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->foo\\<Esc>a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
string_literal "'foobar'"
, ","
string_literal "'fooze'"
, ","
string_literal "'faberge'"
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->fooxx\\<Esc>hcw\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
string_literal "'foobar'"
, ","
string_literal "'fooze'"
, ","
string_literal "'faberge'"
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
unknown_builtin_statement
unknown_command_name "bw"
bang
! "!"
call_statement
call "call"
call_expression
identifier "Ntest_override"
( "("
string_literal "\"char_avail\""
, ","
integer_literal "0"
) ")"
unknown_builtin_statement
unknown_command_name "delfunc"
arguments
command_argument "NonKeywordComplete"
unknown_builtin_statement
unknown_command_name "delfunc"
arguments
command_argument "TestComplete"
set_statement
set "set"
set_item
default_option
option_name "autocomplete"
& "&"
" "
set_item
default_option
option_name "omnifunc"
& "&"
" "
set_item
default_option
option_name "complete"
& "&"
unlet_statement
unlet "unlet"
scoped_identifier
scope "g:"
identifier "CallCount"
endfunction "endfunc"
comment "\" Test autocomplete timing"
function_definition (+1109 nodes collapsed)
function_definition (+35 nodes collapsed)
comment "\" Issue 17869"
function_definition (+203 nodes collapsed)
comment "\" Issue #17907"
function_definition (+156 nodes collapsed)
function_definition (+463 nodes collapsed)
function_definition (+350 nodes collapsed)
comment "\" Preinsert longest prefix when autocomplete"
function_definition (+1626 nodes collapsed)
comment "\" Issue #18326"
function_definition (+136 nodes collapsed)
comment "\" Issue #18378: crash when fuzzy reorders items during refre"...
function_definition (+150 nodes collapsed)
function_definition (+234 nodes collapsed)
comment "\" Issue 18493"
function_definition (+141 nodes collapsed)
comment "\" Issue 19114"
function_definition (+159 nodes collapsed)
comment "\" Issue 19130"
function_definition (+127 nodes collapsed)
comment "\" vim: shiftwidth=2 sts=2 expandtab nofoldenable"

After

script_file
comment "\" Test for insert completion"
source_statement
source "source"
filename "screendump.vim"
source_statement
source "source"
filename "check.vim"
source_statement
source "source"
filename "vim9.vim"
comment "\" Test for insert expansion"
function_definition (+524 nodes collapsed)
function_definition (+93 nodes collapsed)
function_definition (+110 nodes collapsed)
function_definition (+171 nodes collapsed)
function_definition (+113 nodes collapsed)
function_definition (+311 nodes collapsed)
function_definition (+32 nodes collapsed)
function_definition (+72 nodes collapsed)
function_definition
function "func"
function_declaration
scoped_identifier
scope "s:"
identifier "CompleteDone_CheckCompletedItemNone"
parameters
( "("
) ")"
body
let_statement
let "let"
scoped_identifier
scope "s:"
identifier "called_completedone"
= "="
integer_literal "1"
endfunction "endfunc"
function_definition (+146 nodes collapsed)
function_definition (+181 nodes collapsed)
function_definition (+703 nodes collapsed)
function_definition (+195 nodes collapsed)
function_definition (+63 nodes collapsed)
function_definition (+108 nodes collapsed)
function_definition (+121 nodes collapsed)
function_definition (+30 nodes collapsed)
function_definition (+108 nodes collapsed)
function_definition (+167 nodes collapsed)
function_definition (+106 nodes collapsed)
function_definition (+64 nodes collapsed)
function_definition (+32 nodes collapsed)
function_definition (+154 nodes collapsed)
comment "\" For ^N completion, `completefunc` receives the same leader"...
comment "\" 'info' and 'expansion' phases (the leader is not removed b"...
comment "\" This avoids flicker when `completefunc` (e.g. an LSP clien"...
comment "\" 'sleep', which triggers out_flush()."
function_definition (+221 nodes collapsed)
function_definition (+86 nodes collapsed)
function_definition (+24 nodes collapsed)
function_definition (+24 nodes collapsed)
function_definition (+123 nodes collapsed)
function_definition (+67 nodes collapsed)
function_definition (+63 nodes collapsed)
function_definition (+344 nodes collapsed)
function_definition (+273 nodes collapsed)
comment "\" Test that mouse scrolling/movement should not interrupt co"...
function_definition (+441 nodes collapsed)
comment "\" Check that when using feedkeys() typeahead does not interr"...
comment "\" completions."
function_definition (+49 nodes collapsed)
function_definition
function "func"
function_declaration
scoped_identifier
scope "s:"
identifier "ComplInCmdwin_GlobalCompletion"
parameters
( "("
identifier "a"
, ","
identifier "l"
, ","
identifier "p"
) ")"
body
return_statement
return "return"
string_literal "'global'"
endfunction "endfunc"
function_definition
function "func"
function_declaration
scoped_identifier
scope "s:"
identifier "ComplInCmdwin_LocalCompletion"
parameters
( "("
identifier "a"
, ","
identifier "l"
, ","
identifier "p"
) ")"
body
return_statement
return "return"
string_literal "'local'"
endfunction "endfunc"
function_definition (+466 nodes collapsed)
comment "\" Test for insert path completion with completeslash option"
function_definition (+240 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+49 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+110 nodes collapsed)
function_definition (+83 nodes collapsed)
comment "\" Test for inserting the tag search pattern in insert mode"
function_definition (+104 nodes collapsed)
comment "\" Test for 'completefunc' deleting text"
function_definition (+350 nodes collapsed)
comment "\" Test for returning non-string values from 'completefunc'"
function_definition (+152 nodes collapsed)
comment "\" Test for errors in using complete() function"
function_definition (+114 nodes collapsed)
comment "\" Test for recursively starting completion mode using comple"...
function_definition (+81 nodes collapsed)
comment "\" Test for using complete() with completeopt+=longest"
function_definition (+117 nodes collapsed)
comment "\" Test for buffer-local value of 'completeopt'"
function_definition (+941 nodes collapsed)
comment "\" Test for completing words following a completed word in a "...
function_definition (+120 nodes collapsed)
comment "\" Test for completing special characters"
function_definition (+46 nodes collapsed)
comment "\" Test for completion when text is wrapped across lines."
function_definition (+58 nodes collapsed)
comment "\" Test for completing words with a '.' at the end of a word."
function_definition (+55 nodes collapsed)
comment "\" Test for using CTRL-L to add one character when completing"...
function_definition (+116 nodes collapsed)
comment "\" Test for using CTRL-X CTRL-L to complete whole lines lines"
function_definition (+264 nodes collapsed)
comment "\" Test for using CTRL-X CTRL-S to complete spell suggestions"
function_definition (+81 nodes collapsed)
comment "\" Test insert completion with 'cindent' (adjust the indent)"
function_definition (+102 nodes collapsed)
comment "\" Test for <CTRL-X> <CTRL-V> completion. Complete commands a"...
function_definition (+128 nodes collapsed)
comment "\" Test for <CTRL-X> <CTRL-Z> stopping completion without cha"...
function_definition (+349 nodes collapsed)
comment "\" Test for typing CTRL-R in insert completion mode to insert"...
comment "\" content."
function_definition (+89 nodes collapsed)
function_definition (+55 nodes collapsed)
comment "\" Test for 'longest' setting in 'completeopt' with latin1 an"...
function_definition (+126 nodes collapsed)
comment "\" Test for removing the first displayed completion match and"...
comment "\" match just before that."
function_definition (+59 nodes collapsed)
comment "\" Test for completing words from unloaded buffers"
function_definition (+113 nodes collapsed)
comment "\" Test for completing whole lines from unloaded buffers"
function_definition (+94 nodes collapsed)
comment "\" Test for completing words from unlisted buffers"
function_definition (+111 nodes collapsed)
comment "\" Test for completing whole lines from unlisted buffers"
function_definition (+94 nodes collapsed)
comment "\" Test for adding a multibyte character using CTRL-L in comp"...
function_definition (+76 nodes collapsed)
comment "\" Test for using <C-X><C-P> for local expansion even if 'com"...
comment "\" not to complete matches from the local buffer. Also test u"...
comment "\" <C-X> to cancel the current completion mode."
function_definition (+257 nodes collapsed)
comment "\" Test for undoing changes after a insert-mode completion"
function_definition (+189 nodes collapsed)
comment "\" Test for completing a very long word"
function_definition (+165 nodes collapsed)
comment "\" Test for some fields in the complete items used by complet"...
function_definition (+393 nodes collapsed)
comment "\" Test for the \"refresh\" item in the dict returned by an ins"...
comment "\" function"
function_definition (+327 nodes collapsed)
comment "\" Test for 'cpt' user func that fails (return -2/-3) when re"...
function_definition (+638 nodes collapsed)
comment "\" Select items before they are removed by refresh:always"
function_definition (+812 nodes collapsed)
comment "\" Test two functions together, each returning refresh:always"
function_definition (+875 nodes collapsed)
comment "\" Test for completing from a thesaurus file without read per"...
function_definition (+77 nodes collapsed)
comment "\" Test to ensure 'Scanning...' messages are not recorded in "...
function_definition (+53 nodes collapsed)
comment "\" A mapping is not used for the key after CTRL-X."
function_definition (+69 nodes collapsed)
comment "\" Test for different ways of setting a function in 'complete"...
function_definition (+385 nodes collapsed)
comment "\" Test for different ways of setting the 'completefunc' opti"...
function_definition (+527 nodes collapsed)
comment "\" Test for different ways of setting the 'omnifunc' option"
function_definition (+579 nodes collapsed)
comment "\" Test for different ways of setting the 'thesaurusfunc' opt"...
function_definition (+939 nodes collapsed)
function_definition (+42 nodes collapsed)
function_definition (+146 nodes collapsed)
function_definition (+21 nodes collapsed)
function_definition (+123 nodes collapsed)
function_definition (+29 nodes collapsed)
function_definition (+26 nodes collapsed)
function_definition (+25 nodes collapsed)
comment "\" This was using freed memory, since 'complete' was in a wip"...
comment "\" Also using a window that was closed."
function_definition (+32 nodes collapsed)
function_definition (+37 nodes collapsed)
comment "\" 'tagfunc' calling complete() should not cause hang or E684"...
function_definition (+130 nodes collapsed)
function_definition (+78 nodes collapsed)
function_definition (+22 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+1308 nodes collapsed)
function_definition (+82 nodes collapsed)
function_definition (+101 nodes collapsed)
function_definition (+1335 nodes collapsed)
function_definition (+1089 nodes collapsed)
comment "\" Issue #18752"
function_definition (+71 nodes collapsed)
function_definition (+533 nodes collapsed)
function_definition (+166 nodes collapsed)
comment "\" Check that tie breaking is stable for completeopt+=fuzzy ("...
comment "\" behave the same on different platforms)."
function_definition (+135 nodes collapsed)
function_definition (+57 nodes collapsed)
function_definition (+567 nodes collapsed)
function_definition (+282 nodes collapsed)
function_definition (+109 nodes collapsed)
function_definition (+1393 nodes collapsed)
function_definition (+967 nodes collapsed)
comment "\" Check that mark positions are correct after triggering mul"...
function_definition (+369 nodes collapsed)
function_definition (+1407 nodes collapsed)
function_definition (+192 nodes collapsed)
comment "\" Test normal mode (^N/^P/^X^N/^X^P) with smartcase when 1) "...
comment "\" found and 2) matches are filtered (when a character is typ"...
function_definition (+694 nodes collapsed)
comment "\" Test 'nearest' flag of 'completeopt'"
function_definition (+897 nodes collapsed)
function_definition (+728 nodes collapsed)
comment "\" Test refresh:always with unloaded buffers (issue #17363)"
function_definition (+212 nodes collapsed)
comment "\" Verify that the order of matches from each source is consi"...
comment "\" during both ^N and ^P completions (Issue #17425)."
function_definition (+399 nodes collapsed)
function_definition (+163 nodes collapsed)
comment "\" Test that option shortmess=c turns off completion messages"
function_definition (+127 nodes collapsed)
comment "\" Test 'complete' containing F{func} that complete from nonk"...
function_definition (+1210 nodes collapsed)
function_definition
function "func"
function_declaration
identifier "Test_autocomplete_trigger"
parameters
( "("
) ")"
body
comment "\" Trigger expansion even when another char is waiting in the"...
call_statement
call "call"
call_expression
identifier "Ntest_override"
( "("
string_literal "\"char_avail\""
, ","
integer_literal "1"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
function_definition (+116 nodes collapsed)
unknown_builtin_statement
unknown_command_name "new"
map_statement (+27 nodes collapsed)
map_statement (+29 nodes collapsed)
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "'abc'"
, ","
string_literal "'abcd'"
, ","
string_literal "'fo'"
, ","
string_literal "'b'"
, ","
string_literal "''"
] "]"
) ")"
set_statement
set "set"
set_item
option_name "autocomplete"
comment "\" Test 1a: Nonkeyword doesn't open menu without F{func} when"...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"GS=\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
scoped_identifier
scope "b:"
identifier "matches"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'='"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" ^N opens menu of keywords (of len > 1)"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S=\\<C-E>\\<C-N>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'=abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 1b: With F{func} nonkeyword collects matches"
set_statement
set "set"
set_item
option_name "complete"
= "="
set_value ".,FNonKeywordComplete"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S=\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'='"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S->\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'->'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 1c: Keyword after nonkeyword can collect both types o"...
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a.\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "3"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a.a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "4"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.a'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 1d: Nonkeyword after keyword collects items again"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'a'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa#\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'a#'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 2: Filter nonkeyword and keyword matches with differe"...
for_loop (+312 nodes collapsed)
comment "\" Test 3: Navigate menu containing nonkeyword and keyword it"...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#afoo'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a.a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.afoo'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.abc'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
call_statement (+21 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'#a.abar'"
, ","
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
) ")"
comment "\" Test 4a: When autocomplete menu is active, ^X^N completes "...
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<C-E>\\<C-X>\\<C-N>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Test 4b: When autocomplete menu is active, ^X^O completes "...
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
set_statement
set "set"
set_item
option_name "omnifunc"
= "="
set_value "NonKeywordComplete"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"S#a\\<C-X>\\<C-O>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "3"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Test 4c: When autocomplete menu is active, ^E^N completes "...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa\\<C-E>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sa\\<C-E>\\<C-N>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Test 4d: When autocomplete menu is active, ^X^L completes "...
range_statement
file "%"
ERROR
marker_definition "d"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "CallCount"
= "="
integer_literal "0"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"afoo bar\""
, ","
string_literal "\"barbar foo\""
, ","
string_literal "\"foo bar\""
, ","
string_literal "\"and\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Goa\\<C-X>\\<C-L>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "g:"
identifier "CallCount"
) ")"
comment "\" Issue #18044"
range_statement
file "%"
ERROR
marker_definition "d"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"first line\""
, ","
string_literal "\"second line\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Gof\\<C-X>\\<C-L>\\<Esc>\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "\"first line\""
, ","
call_expression
identifier "getline"
( "("
integer_literal "3"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sf\\<C-X>\\<C-L>\\<C-X>\\<C-L>\\<Esc>\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "\"second line\""
, ","
call_expression
identifier "getline"
( "("
integer_literal "4"
) ")"
) ")"
comment "\" Test 5: When invalid prefix stops completion, backspace sh"...
range_statement
file "%"
ERROR
marker_definition "d"
set_statement
set "set"
set_item
default_option
option_name "complete"
& "&"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"afoo bar\""
, ","
string_literal "\"barbar foo\""
, ","
string_literal "\"foo bar\""
, ","
string_literal "\"and\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Goabc\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sabc\\<BS>\\<BS>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Szx\\<BS>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sazx\\<Left>\\<BS>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
comment "\" Test 6: <BS> should clear the selected item (PR #18265)"
range_statement
file "%"
ERROR
marker_definition "d"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"foobarfoo\""
, ","
string_literal "\"foobar\""
, ","
string_literal "\"foobarbaz\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Gofo\\<C-N>\\<C-N>\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "1"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sfo\\<C-N>\\<C-N>\\<BS>\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "-1"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'fooba'"
, ","
call_expression
identifier "getline"
( "("
integer_literal "4"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sfo\\<C-N>\\<C-N>\\<BS>\\<C-N>\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+25 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "0"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'foobarbaz'"
, ","
call_expression
identifier "getline"
( "("
integer_literal "4"
) ")"
) ")"
comment "\" Test 7: Remove selection when menu contents change (PR #18"...
range_statement
file "%"
ERROR
marker_definition "d"
call_statement
call "call"
call_expression
identifier "setline"
( "("
integer_literal "1"
, ","
list
[ "["
string_literal "\"foobar\""
, ","
string_literal "\"fodxyz\""
, ","
string_literal "\"fodabc\""
] "]"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Gofoo\\<C-N>\\<BS>\\<BS>\\<BS>\\<BS>d\\<F2>\\<F3>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "-1"
, ","
scoped_identifier
scope "b:"
identifier "selected"
) ")"
comment "\" Test 8: Ctrl_W / Ctrl_U (delete word/line) should restart "...
function_definition (+39 nodes collapsed)
set_statement
set "set"
set_item
option_name "omnifunc"
= "="
set_value "TestComplete"
set_statement
set "set"
set_item
option_name "complete"
+= "+="
set_value "o"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->fo\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->fo\\<C-W>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->\\<Esc>afo\\<C-U>\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement (+23 nodes collapsed)
comment "\" Test 9: Trigger autocomplete immediately upon entering Ins"...
comment "\" 'faberge' is filtered out because it doesn't start with th"...
comment "\" 'foo'; non-prefix omnifunc matches are excluded from the P"...
comment "\" is NULL (compl_orig_text is used as a fallback filter)."
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->foo\\<Esc>a\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
string_literal "'foobar'"
, ","
string_literal "'fooze'"
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"Sprefix->fooxx\\<Esc>hcw\\<F2>\\<Esc>0\""
, ","
string_literal "'tx!'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
string_literal "'foobar'"
, ","
string_literal "'fooze'"
] "]"
, ","
method_expression
scoped_identifier
scope "b:"
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
) ")"
unknown_builtin_statement
unknown_command_name "bw"
bang
! "!"
call_statement
call "call"
call_expression
identifier "Ntest_override"
( "("
string_literal "\"char_avail\""
, ","
integer_literal "0"
) ")"
unknown_builtin_statement
unknown_command_name "delfunc"
arguments
command_argument "NonKeywordComplete"
unknown_builtin_statement
unknown_command_name "delfunc"
arguments
command_argument "TestComplete"
set_statement
set "set"
set_item
default_option
option_name "autocomplete"
& "&"
" "
set_item
default_option
option_name "omnifunc"
& "&"
" "
set_item
default_option
option_name "complete"
& "&"
unlet_statement
unlet "unlet"
scoped_identifier
scope "g:"
identifier "CallCount"
endfunction "endfunc"
comment "\" Test autocomplete timing"
function_definition (+1109 nodes collapsed)
function_definition (+35 nodes collapsed)
comment "\" Issue 17869"
function_definition (+203 nodes collapsed)
comment "\" Issue #17907"
function_definition (+156 nodes collapsed)
function_definition (+463 nodes collapsed)
function_definition (+350 nodes collapsed)
comment "\" Preinsert longest prefix when autocomplete"
function_definition (+1626 nodes collapsed)
comment "\" Issue #18326"
function_definition (+136 nodes collapsed)
comment "\" Issue #18378: crash when fuzzy reorders items during refre"...
function_definition (+150 nodes collapsed)
function_definition (+234 nodes collapsed)
comment "\" Issue 18493"
function_definition (+141 nodes collapsed)
comment "\" Issue 19114"
function_definition (+159 nodes collapsed)
comment "\" Issue 19130"
function_definition (+127 nodes collapsed)
function_definition
function "func"
function_declaration
identifier "Test_autocomplete_preinsert_null_leader"
parameters
( "("
) ")"
body
comment "\" Test that non-prefix matches from omnifunc are filtered wh"...
comment "\" When autocomplete first fires, compl_leader is NULL. Prev"...
comment "\" filter was bypassed, allowing non-prefix fuzzy matches to "...
comment "\" shown in the PUM and preinserted."
function_definition
function "func"
function_declaration
identifier "NonPrefixOmni"
parameters
( "("
identifier "findstart"
, ","
identifier "base"
) ")"
body
if_statement
if "if"
argument
a: "a:"
identifier "findstart"
body
return_statement
return "return"
binary_operation
call_expression
identifier "col"
( "("
string_literal "\".\""
) ")"
- "-"
integer_literal "1"
endif "endif"
comment "\" Return \"key\" (doesn't start with 'y') and \"yellow\" (starts"...
comment "\" Simulates what a fuzzy omnifunc returns (e.g. vimcomplete#"...
comment "\" wildoptions=fuzzy)."
return_statement
return "return"
list
[ "["
string_literal "\"key\""
, ","
string_literal "\"yellow\""
] "]"
endfunction "endfunc"
call_statement
call "call"
call_expression
identifier "Ntest_override"
( "("
string_literal "\"char_avail\""
, ","
integer_literal "1"
) ")"
unknown_builtin_statement
unknown_command_name "new"
set_statement
set "set"
set_item
option_name "omnifunc"
= "="
set_value "NonPrefixOmni"
" "
set_item
option_name "complete"
= "="
set_value "o"
set_statement
set "set"
set_item
option_name "completeopt"
= "="
set_value "preinsert"
" "
set_item
option_name "autocomplete"
function_definition
function "func"
function_declaration
identifier "GetState"
parameters
( "("
) ")"
body
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "line"
= "="
call_expression
identifier "getline"
( "("
string_literal "'.'"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "col"
= "="
call_expression
identifier "col"
( "("
string_literal "'.'"
) ")"
let_statement
let "let"
scoped_identifier
scope "g:"
identifier "matches"
= "="
method_expression
field_expression
call_expression
identifier "complete_info"
( "("
list
[ "["
string_literal "'matches'"
] "]"
) ")"
. "."
identifier "matches"
-> "->"
call_expression
identifier "mapnew"
( "("
string_literal "'v:val.word'"
) ")"
endfunction "endfunc"
map_statement
inoremap "inoremap"
<buffer> "<buffer>"
map_side
keycode
< "<"
> ">"
map_side
keycode
< "<"
> ">"
keycode
< "<"
> ">"
comment "\" Type 'y': \"key\" should be filtered out (doesn't start with"...
comment "\" \"yellow\" should be the only PUM entry and preinserted with"...
call_statement
call "call"
call_expression
identifier "feedkeys"
( "("
string_literal "\"iy\\<F5>\\<C-E>\\<Esc>\""
, ","
string_literal "'tx'"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "\"yellow\""
, ","
scoped_identifier
scope "g:"
identifier "line"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
scoped_identifier
scope "g:"
identifier "col"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
list
[ "["
string_literal "'yellow'"
] "]"
, ","
scoped_identifier
scope "g:"
identifier "matches"
) ")"
unknown_builtin_statement
unknown_command_name "bw"
bang
! "!"
set_statement
set "set"
set_item
default_option
option_name "omnifunc"
& "&"
" "
set_item
default_option
option_name "complete"
& "&"
" "
set_item
default_option
option_name "completeopt"
& "&"
" "
set_item
default_option
option_name "autocomplete"
& "&"
call_statement
call "call"
call_expression
identifier "Ntest_override"
( "("
string_literal "\"char_avail\""
, ","
integer_literal "0"
) ")"
unknown_builtin_statement
unknown_command_name "delfunc"
arguments
command_argument "NonPrefixOmni"
unknown_builtin_statement
unknown_command_name "delfunc"
arguments
command_argument "GetState"
endfunction "endfunc"
comment "\" vim: shiftwidth=2 sts=2 expandtab nofoldenable"