From 79c2a718dafe5dfe08e8ffa7b732817b496dd10e Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Sat, 12 Apr 2014 20:06:12 -0400 Subject: [PATCH] Allow checking for nREPL op --- autoload/fireplace/nrepl.vim | 5 +++++ plugin/fireplace.vim | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/autoload/fireplace/nrepl.vim b/autoload/fireplace/nrepl.vim index 43171f2..15adc51 100644 --- a/autoload/fireplace/nrepl.vim +++ b/autoload/fireplace/nrepl.vim @@ -207,6 +207,10 @@ function! s:nrepl_message(msg, ...) dict abort return call(self.call, [msg, ['done'], sel] + a:000, self) endfunction +function! s:nrepl_has_op(op) dict abort + return has_key(self.describe.ops, a:op) +endfunction + let s:nrepl = { \ 'close': s:function('s:nrepl_close'), \ 'clone': s:function('s:nrepl_clone'), @@ -214,5 +218,6 @@ let s:nrepl = { \ 'call': s:function('s:nrepl_call'), \ 'message': s:function('s:nrepl_message'), \ 'eval': s:function('s:nrepl_eval'), + \ 'has_op': s:function('s:nrepl_has_op'), \ 'path': s:function('s:nrepl_path'), \ 'process': s:function('s:nrepl_process')} diff --git a/plugin/fireplace.vim b/plugin/fireplace.vim index 7640a8e..859bc96 100644 --- a/plugin/fireplace.vim +++ b/plugin/fireplace.vim @@ -539,6 +539,13 @@ function! fireplace#message(payload, ...) abort return call(client.message, [payload] + a:000, client) endfunction +function! fireplace#op_available(op) abort + let client = fireplace#platform() + if has_key(client, 'connection') + return client.connection.has_op(a:op) + endif +endfunction + function! fireplace#findresource(resource, ...) abort if a:resource ==# '' return ''