From 01e16d236badac9bdc5e8d245711ae16b0db2f5e Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Tue, 7 Jan 2014 23:28:39 -0500 Subject: [PATCH] Extract payload preparation --- autoload/nrepl/fireplace_connection.vim | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/autoload/nrepl/fireplace_connection.vim b/autoload/nrepl/fireplace_connection.vim index 89b9ce1..38aa4be 100644 --- a/autoload/nrepl/fireplace_connection.vim +++ b/autoload/nrepl/fireplace_connection.vim @@ -182,7 +182,7 @@ function! s:nrepl_dispatch(command, ...) dict abort throw 'nREPL: '.out endfunction -function! s:nrepl_call(payload) dict abort +function! s:nrepl_prepare(payload) dict abort let payload = copy(a:payload) if !has_key(payload, 'id') let payload.id = s:id() @@ -199,11 +199,17 @@ function! s:nrepl_call(payload) dict abort elseif !has_key(payload, 'session') let payload.session = self.session endif + return payload +endfunction + +function! s:nrepl_call(payload) dict abort + let payload = self.prepare(a:payload) return filter(self.dispatch('call', nrepl#fireplace_connection#bencode(payload)), 'v:val.id == payload.id') endfunction let s:nrepl = { \ 'dispatch': s:function('s:nrepl_dispatch'), + \ 'prepare': s:function('s:nrepl_prepare'), \ 'call': s:function('s:nrepl_call'), \ 'eval': s:function('s:nrepl_eval'), \ 'path': s:function('s:nrepl_path'),