40 lines
1.1 KiB
VimL
40 lines
1.1 KiB
VimL
if exists("s:loaded")
|
|
finish
|
|
endif
|
|
let s:loaded = 1
|
|
|
|
|
|
let s:findInProject = 1
|
|
|
|
" NimSuggest
|
|
let s:NimSuggest = {}
|
|
|
|
function! s:NimSuggest.on_stdout(job, chunk)
|
|
if len(a:chunk[0]) != 0 && !(a:chunk[0] =~ "^usage")
|
|
call extend(self.lines, a:chunk)
|
|
endif
|
|
endfunction
|
|
|
|
function! s:NimSuggest.on_stderr()
|
|
endfunction
|
|
|
|
function! s:NimSuggest.on_exit()
|
|
call self.handler.run(self)
|
|
endfunction
|
|
|
|
function! suggest#New(command, useV2, handler)
|
|
let result = copy(s:NimSuggest)
|
|
let result.lines = []
|
|
let result.file = expand("%:p")
|
|
let result.tempfile = result.file . ".temp"
|
|
let result.line = line(".")
|
|
let result.col = col(".")
|
|
let result.handler = a:handler
|
|
" if a:useTempFile
|
|
" call writefile(getline(1, '$'), result.tempfile)
|
|
" endif
|
|
" let nimcom = completion . " " . file . (a:useTempFile ? (";" . result.tempfile) : "") . ":" . line . ":" . col
|
|
let result.job = jobstart([g:nvim_nim_exec_nimsuggest, (a:useV2 ? '--v2' : ''), '--stdin', result.file], result)
|
|
call jobsend(result.job, a:command . " " . result.file . ":" . result.line . ":" . result.col . "\nquit\n")
|
|
return result
|
|
endfunction
|