" example
" :Unite alpaca:word:next
let s:source = {
\ "name" : "alpaca",
\ "description" : "",
\}
function! s:source.gather_candidates(args, context)
let word = get(a:args, 0, "")
return map(eval(join(map(a:args, "alpaca_english#get_record(v:val)"), "+")), '{
\ "word" : v:val[1] . " : " . v:val[2]
\ }')
endfunction
call unite#define_source(s:source)
unlet s:source
IiBleGFtcGxlCiIgOlVuaXRlIGFscGFjYTp3b3JkOm5leHQKbGV0IHM6c291cmNlID0gewpcICAgICJuYW1lIiA6ICJhbHBhY2EiLApcCSJkZXNjcmlwdGlvbiIgOiAiIiwKXH0KCmZ1bmN0aW9uISBzOnNvdXJjZS5nYXRoZXJfY2FuZGlkYXRlcyhhcmdzLCBjb250ZXh0KQoJbGV0IHdvcmQgPSBnZXQoYTphcmdzLCAwLCAiIikKCXJldHVybiBtYXAoZXZhbChqb2luKG1hcChhOmFyZ3MsICJhbHBhY2FfZW5nbGlzaCNnZXRfcmVjb3JkKHY6dmFsKSIpLCAiKyIpKSwgJ3sKXAkJIndvcmQiIDogdjp2YWxbMV0gLiAiIDogIiAuIHY6dmFsWzJdClwJfScpCmVuZGZ1bmN0aW9uCgpjYWxsIHVuaXRlI2RlZmluZV9zb3VyY2Uoczpzb3VyY2UpCnVubGV0IHM6c291cmNlCgo=