Merge pull request #210 from Deraen/cider-nrepl-0.9.0
Cider nrepl 0.9.0 completion support
This commit is contained in:
commit
819438bdf4
|
@ -81,6 +81,25 @@ function! fireplace#ns_complete(A, L, P) abort
|
||||||
return filter(map(matches, 's:to_ns(v:val)'), 'a:A ==# "" || a:A ==# v:val[0 : strlen(a:A)-1]')
|
return filter(map(matches, 's:to_ns(v:val)'), 'a:A ==# "" || a:A ==# v:val[0 : strlen(a:A)-1]')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
let s:short_types = {
|
||||||
|
\ 'function': 'f',
|
||||||
|
\ 'macro': 'm',
|
||||||
|
\ 'var': 'v',
|
||||||
|
\ 'special-form': 's',
|
||||||
|
\ 'class': 'c'
|
||||||
|
\ }
|
||||||
|
|
||||||
|
function! s:candidate(val) abort
|
||||||
|
let type = get(a:val, 'type', '')
|
||||||
|
let arglists = get(a:val, 'arglists', [])
|
||||||
|
return {
|
||||||
|
\ 'word': get(a:val, 'candidate'),
|
||||||
|
\ 'kind': get(s:short_types, type, type),
|
||||||
|
\ 'info': get(a:val, 'doc', ''),
|
||||||
|
\ 'menu': empty(arglists) ? '' : '(' . join(arglists, ' ') . ')'
|
||||||
|
\ }
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! fireplace#omnicomplete(findstart, base) abort
|
function! fireplace#omnicomplete(findstart, base) abort
|
||||||
if a:findstart
|
if a:findstart
|
||||||
let line = getline('.')[0 : col('.')-2]
|
let line = getline('.')[0 : col('.')-2]
|
||||||
|
@ -89,11 +108,13 @@ function! fireplace#omnicomplete(findstart, base) abort
|
||||||
try
|
try
|
||||||
|
|
||||||
if fireplace#op_available('complete')
|
if fireplace#op_available('complete')
|
||||||
let response = fireplace#message({'op': 'complete', 'symbol': a:base})
|
let response = fireplace#message({'op': 'complete', 'symbol': a:base, 'extra-metadata': ['arglists', 'doc']})
|
||||||
let trans = '{"word": (v:val =~# ''[./]'' ? "" : matchstr(a:base, ''^.\+/'')) . v:val}'
|
let trans = '{"word": (v:val =~# ''[./]'' ? "" : matchstr(a:base, ''^.\+/'')) . v:val}'
|
||||||
let value = get(response[0], 'value', get(response[0], 'completions'))
|
let value = get(response[0], 'value', get(response[0], 'completions'))
|
||||||
if type(value) == type([])
|
if type(value) == type([])
|
||||||
if type(get(value, 0)) == type([])
|
if type(get(value, 0)) == type({})
|
||||||
|
return map(value, 's:candidate(v:val)')
|
||||||
|
elseif type(get(value, 0)) == type([])
|
||||||
return map(value[0], trans)
|
return map(value[0], trans)
|
||||||
elseif type(get(value, 0)) == type('')
|
elseif type(get(value, 0)) == type('')
|
||||||
return map(value, trans)
|
return map(value, trans)
|
||||||
|
|
Loading…
Reference in New Issue