Fix filtering of nimsuggest results
This commit is contained in:
parent
8a783c0d4b
commit
0a4fa1eb78
4 changed files with 25 additions and 14 deletions
|
|
@ -28,12 +28,10 @@ function! omni#nimsuggest(file, l, c)
|
||||||
let query = "sug " . a:file . ";" . tempfile . ":" . a:l . ":" . a:c
|
let query = "sug " . a:file . ";" . tempfile . ":" . a:l . ":" . a:c
|
||||||
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " --v2 --stdin " . a:file
|
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " --v2 --stdin " . a:file
|
||||||
let fullcmd = 'echo -e ' . shellescape(query, 1) . '|' . jobcmdstr
|
let fullcmd = 'echo -e ' . shellescape(query, 1) . '|' . jobcmdstr
|
||||||
let completions_raw = split(system(fullcmd), "\n")[4:-2]
|
let completions_raw = util#FilterCompletions(split(system(fullcmd), "\n"))
|
||||||
|
|
||||||
for line in completions_raw
|
for line in completions_raw
|
||||||
if len(split(line, " ")) > 7
|
call add(completions, omni#item(util#ParseV2(line)))
|
||||||
call add(completions, omni#item(util#ParseV2(line)))
|
|
||||||
endif
|
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
return completions
|
return completions
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,7 @@ function! s:NimSuggest.on_stderr(job, chunk)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:NimSuggest.on_exit()
|
function! s:NimSuggest.on_exit()
|
||||||
let temparr = []
|
let self.lines = util#FilterCompletions(self.lines)
|
||||||
for line in self.lines
|
|
||||||
if len(split(line, " ")) > 6
|
|
||||||
call add(temparr, line)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
let self.lines = temparr
|
|
||||||
|
|
||||||
if len(self.lines) > 0
|
if len(self.lines) > 0
|
||||||
call self.handler.run(self)
|
call self.handler.run(self)
|
||||||
|
|
@ -63,8 +57,10 @@ function! suggest#NewKnown(command, sync, useV2, file, line, col, handler)
|
||||||
if !result.isAsync
|
if !result.isAsync
|
||||||
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " " . (a:useV2 ? '--v2' : '') . " " . '--stdin' . " " . result.file
|
let jobcmdstr = g:nvim_nim_exec_nimsuggest . " " . (a:useV2 ? '--v2' : '') . " " . '--stdin' . " " . result.file
|
||||||
let fullcmd = 'echo -e ' . shellescape(query, 1) . '|' . jobcmdstr
|
let fullcmd = 'echo -e ' . shellescape(query, 1) . '|' . jobcmdstr
|
||||||
let result.lines = split(system(fullcmd), "\n")[4:-2]
|
let result.lines = util#FilterCompletions(split(system(fullcmd), "\n"))
|
||||||
call a:handler.run(result)
|
if len(result.lines) > 0
|
||||||
|
call a:handler.run(result)
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
call util#StartQuery()
|
call util#StartQuery()
|
||||||
let result.job_server = jobstart([g:nvim_nim_exec_nimsuggest, '--port:5999', '--address:localhost', (a:useV2 ? '--v2' : ''), result.file], s:NimSuggestServer)
|
let result.job_server = jobstart([g:nvim_nim_exec_nimsuggest, '--port:5999', '--address:localhost', (a:useV2 ? '--v2' : ''), result.file], s:NimSuggestServer)
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,23 @@ function! util#ParseV2(line)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! util#FilterCompletionLine(line)
|
||||||
|
let result = a:line =~ "^\\(def\\|sug\\|use\\|con\\)\\t"
|
||||||
|
return result
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
function! util#FilterCompletions(lines)
|
||||||
|
let result = []
|
||||||
|
for line in a:lines
|
||||||
|
if util#FilterCompletionLine(line)
|
||||||
|
call add(result, line)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return result
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
let s:nesting_chars = ['(', '[', '{']
|
let s:nesting_chars = ['(', '[', '{']
|
||||||
let s:unnesting_chars = [')', ']', '}']
|
let s:unnesting_chars = [')', ']', '}']
|
||||||
let s:strip_regex = '\v^\s*(.{-})\s*$'
|
let s:strip_regex = '\v^\s*(.{-})\s*$'
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ let b:current_syntax = "nim"
|
||||||
|
|
||||||
|
|
||||||
" Keywords
|
" Keywords
|
||||||
syntax keyword nimKeyword let const var static
|
syntax keyword nimKeyword let const var static async await
|
||||||
syntax keyword nimKeyword addr asm atomic bind cast defer discard
|
syntax keyword nimKeyword addr asm atomic bind cast defer discard
|
||||||
syntax keyword nimKeyword do expr stmt end generic mixin iterator
|
syntax keyword nimKeyword do expr stmt end generic mixin iterator
|
||||||
syntax keyword nimKeyword typedesc openarray out ptr ref return using
|
syntax keyword nimKeyword typedesc openarray out ptr ref return using
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue