Send and filter by id
This commit is contained in:
parent
023c8573ab
commit
c7258fce7c
@ -45,6 +45,15 @@ function! s:shellesc(arg) abort
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
if !exists('s:id')
|
||||||
|
let s:vim_id = localtime()
|
||||||
|
let s:id = 0
|
||||||
|
endif
|
||||||
|
function! s:id() abort
|
||||||
|
let s:id += 1
|
||||||
|
return 'fireplace-'.hostname().'-'.s:vim_id.'-'.s:id
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! nrepl#fireplace_connection#prompt() abort
|
function! nrepl#fireplace_connection#prompt() abort
|
||||||
return fireplace#input_host_port()
|
return fireplace#input_host_port()
|
||||||
endfunction
|
endfunction
|
||||||
@ -171,6 +180,9 @@ endfunction
|
|||||||
|
|
||||||
function! s:nrepl_call(payload) dict abort
|
function! s:nrepl_call(payload) dict abort
|
||||||
let payload = copy(a:payload)
|
let payload = copy(a:payload)
|
||||||
|
if !has_key(payload, 'id')
|
||||||
|
let payload.id = s:id()
|
||||||
|
endif
|
||||||
if empty(get(payload, 'session', 1))
|
if empty(get(payload, 'session', 1))
|
||||||
unlet payload.session
|
unlet payload.session
|
||||||
elseif !has_key(self, 'session')
|
elseif !has_key(self, 'session')
|
||||||
@ -183,7 +195,7 @@ function! s:nrepl_call(payload) dict abort
|
|||||||
elseif !has_key(payload, 'session')
|
elseif !has_key(payload, 'session')
|
||||||
let payload.session = self.session
|
let payload.session = self.session
|
||||||
endif
|
endif
|
||||||
return self.dispatch('call', nrepl#fireplace_connection#bencode(payload))
|
return filter(self.dispatch('call', nrepl#fireplace_connection#bencode(payload)), 'v:val.id == payload.id')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:nrepl = {
|
let s:nrepl = {
|
||||||
|
Loading…
Reference in New Issue
Block a user