From 05cbc742a19b97060dcc5abfd8a0e75e7e555009 Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Wed, 23 Apr 2014 14:52:08 -0400 Subject: [PATCH] Use classpath op if available References #131. --- autoload/fireplace/nrepl.vim | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/autoload/fireplace/nrepl.vim b/autoload/fireplace/nrepl.vim index e47edaa..746b828 100644 --- a/autoload/fireplace/nrepl.vim +++ b/autoload/fireplace/nrepl.vim @@ -38,9 +38,17 @@ function! fireplace#nrepl#for(transport) abort \ client.describe.versions.nrepl.minor < 2 throw 'nREPL: 0.2.0 or higher required' endif - let response = client.process({'op': 'eval', 'code': - \ '[(System/getProperty "path.separator") (System/getProperty "java.class.path")]', 'session': ''}) - let client._path = split(eval(response.value[-1][5:-2]), response.value[-1][2]) + if client.has_op('classpath') + let response = client.message({'op': 'classpath'})[0] + if type(get(response, 'value')) == type([]) + let client._path = response.value + endif + endif + if !has_key(client, '_path') + let response = client.process({'op': 'eval', 'code': + \ '[(System/getProperty "path.separator") (System/getProperty "java.class.path")]', 'session': ''}) + let client._path = split(eval(response.value[-1][5:-2]), response.value[-1][2]) + endif let g:fireplace_nrepl_sessions[client.session] = client return client endfunction