for l:pattern in l:completer.patterns if l:line =~# l:pattern let s:completer = l:completer while l:pos > 0 if l:line[l:pos - 1] =~# '{\|,\|\[\|\\' \ || l:line[l:pos-2:l:pos-1] ==# ', ' let s:completer.context = matchstr(l:line, '\S*$') return l:pos else let l:pos -= 1 endif endwhile return -2 endif endfor