Fork me on GitHub
#cider
<
2015-06-10
>
bozhidar06:06:01

@gjnoonan: Thanks!

jonas07:06:01

@bozhidar: You talked about cljs repl support for Cider was tricky due to recent clojurescript changes. Why is that the case since it works so well in inf-clojure?

bozhidar07:06:25

because inf-clojure just runs the default cljs repl and sends text to it

bozhidar07:06:43

the interactions between cider, nrepl & piggieback are way more complex

bozhidar07:06:13

e.g. var definition location is not tracked by nrepl’s eval op

jonas07:06:19

but it gives other benefits I suppose?

bozhidar07:06:46

so we had implemented a hack relying on loading dummy files in the repl, instead of using eval

bozhidar07:06:11

but the behaviour of piggieback changed, because of an upstream change in cljs

bozhidar07:06:23

and this broke cider...

bozhidar07:06:37

yep, cider is way more powerful

bozhidar07:06:17

there are limits to what you can do just by piping plain text in a repl

bozhidar07:06:51

e.g. eldoc is not enabled in inf-clojure, because evaluating all the time the necessary code is super slow there for some reason

bozhidar07:06:10

and implementing something like cider’s debugger would be impossible

bozhidar07:06:30

although one can always use a repl debugger with inf-clojure (e.g. clj-debugger)

bozhidar07:06:23

inf-clojure exists mostly as a simpler tool, for people who don’t need all the power (and complexity) that comes with cider

jonas07:06:41

@bozhidar: ok, I’ve been very happy with using cljs+inf-clojure but I still prefer Cider for ordinary Clojure development

bozhidar07:06:42

but cider is definitely the way to go if you do a lot of Clojure programming

bozhidar07:06:24

yeah, sadly I haven’t had much time to refine the cljs support in cider

bozhidar07:06:48

but I hope it will be solid by the time we reach version 1.0

jonas07:06:59

@bozhidar: Cool! I would like to help out but not sure where to start simple_smile

bozhidar07:06:11

there’s plenty of things that don’t work the same way on cljs as they do on clj

bozhidar07:06:54

and this was the issue I referred to on the podcast https://github.com/clojure-emacs/cider/issues/1088

bozhidar07:06:16

this requires some work to be done in cljs and nrepl themselves

bozhidar07:06:38

but if something like this gets implemented it will benefit the entire community