wuub / SublimeREPL

SublimeREPL - run an interpreter inside ST2 (Clojure, CoffeeScript, F#, Groovy, Haskell, Lua, MozRepl, NodeJS, Python, R, Ruby, Scala, shell or configure one yourself)
https://github.com/wuub/SublimeREPL
Other
2.14k stars 312 forks source link

ClojureScript + Node.js REPL #304

Open scttnlsn opened 10 years ago

scttnlsn commented 10 years ago

Is it possible to use https://github.com/bodil/cljs-noderepl in conjunction with SublimeREPL?

The problem I'm running into is that cljs-noderepl is just a Clojure REPL so when I try to eval some ClojureScript I get Cannot find REPL for 'clojurescript'.

scttnlsn commented 10 years ago

I also get this error when sending (+ 1 2) to the REPL from a Clojure buffer:

nREPL server started on port 63446 on host 127.0.0.1
REPL-y 0.2.1
Clojure 1.5.1
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> (require '[cljs.repl.node :as node])
(require '[cljs.repl.node :as node])
nil
user=> (node/run-node-nrepl)
(node/run-node-nrepl)
Type `:cljs/quit` to stop the ClojureScript REPL
nil
cljs.user=> (binding [*ns* (or (find-ns 'example.core) (find-ns 'user))] (load-s 
tring "(+ 1 2)"))
WARNING: Use of undeclared Var cljs.user/*ns* at line 1 
WARNING: cljs.user/*ns* not declared ^:dynamic at line 1 
WARNING: Use of undeclared Var cljs.user/*ns* at line 1 
WARNING: Use of undeclared Var cljs.user/*ns* at line 1 
WARNING: Use of undeclared Var cljs.user/*ns* at line 1 
WARNING: Use of undeclared Var cljs.user/find-ns at line 1 
WARNING: Use of undeclared Var cljs.user/find-ns at line 1 
WARNING: Use of undeclared Var cljs.user/load-string at line 1 
"Error evaluating:" (binding [*ns* (or (find-ns (quote example.core)) (find-ns (quote user)))] (load-string "(+ 1 2)")) :as "var _STAR_ns_STAR_6615_6617 = cljs.user._STAR_ns_STAR_;\ntry{cljs.user._STAR_ns_STAR_ = (function (){var or__3943__auto__ = cljs.user.find_ns.call(null,new cljs.core.Symbol(null,\"example.core\",\"example.core\",-1775393956,null));\nif(cljs.core.truth_(or__3943__auto__))\n{return or__3943__auto__;\n} else\n{return cljs.user.find_ns.call(null,new cljs.core.Symbol(null,\"user\",\"user\",-1636932220,null));\n}\n})();\ncljs.user.load_string.call(null,\"(+ 1 2)\");\n}finally {cljs.user._STAR_ns_STAR_ = _STAR_ns_STAR_6615_6617;\n}"
TypeError: Cannot call method 'call' of undefined
    at <cljs repl>:2:86
    at <cljs repl>:8:3
    at <cljs repl>:11:4
    at <cljs repl>:16:3
    at Socket.eval (eval at <anonymous> ([eval]:1:20), <anonymous>:68:29)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Socket.<anonymous> (_stream_readable.js:699:14)
    at Socket.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:382:10)
    at emitReadable (_stream_readable.js:377:5)
nil
cljs.user=>