Created
February 20, 2015 21:12
-
-
Save malyn/646e291d01101dcc8b48 to your computer and use it in GitHub Desktop.
vim-fireplace patches/hack for compatibility with Figwheel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/plugin/fireplace.vim b/plugin/fireplace.vim | |
index 6c32caa..a415bf8 100644 | |
--- a/plugin/fireplace.vim | |
+++ b/plugin/fireplace.vim | |
@@ -232,7 +232,9 @@ function! s:repl.piggieback(arg, ...) abort | |
else | |
let arg = ' :repl-env ' . a:arg | |
endif | |
- let response = connection.eval('(cemerick.piggieback/cljs-repl'.arg.')') | |
+ "let response = connection.eval('(cemerick.piggieback/cljs-repl'.arg.')') | |
+ call connection.eval("(use 'figwheel-sidecar.repl-api)") | |
+ let response = connection.eval('(cljs-repl)') | |
if empty(get(response, 'ex')) | |
call insert(self.piggiebacks, extend({'connection': connection}, deepcopy(s:piggieback))) |
I have to confirm that this patch is still relevant.
To reproduce, I've started a new figwheel template
lein new figwheel hello-world -- --reagent
Opened the figwheel repl via either lein figwheel
(or lein repl
, followed by (fig-start)
).
Then opened a clojure file in vim and called :Piggyback
. Then sent a form to the repl with cpp
.
In the unpatched version, this was the error:
org.mozilla.javascript.EvaluatorException: Java class "[Ljava.lang.StackTraceElement;"
has no public instance field or method named "cljs$lang$protocol_mask$partition0$". (rhino.clj#41)^@'}
In the patched version, the result of e.g. (println "hello")
appears in the browser console, the result of a side-effect-free evaluation (e.g. (+ 1 2)
)appears right in vim. Excellent!
thanks. the patch works (took me a while to find it).
According to this issue tpope/vim-fireplace#222 there is no need for this patch any more.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@Gonzih I'm still having to use this hack because the method described here gets me an NPE. I'm thinking figwheel-sidecar.repl-api/cljs-repl is returning nil.