function! lbdb_omni#complete(findstart, base) if a:findstart let l:comma_pos = searchpos('[:,]\zs', 'bncW', line('.')) if l:comma_pos[0] == line('.') return l:comma_pos[1] else return 0 endif else let l:out = split(system('lbdbq '.shellescape(a:base)), '\n') if ! len(l:out) | return | endif echo l:out[0].' '.a:base let l:out = l:out[1:] let l:matches = [] if ! len(l:out) | return | endif for [l:addr, l:name, l:added] in map(l:out, 'split(v:val, "\t")') let l:matches+=[{ \ 'word': '"'.l:name.'" <'.l:addr.'>', \ 'menu': l:added }] endfor return [a:base]+l:matches endif endfunction