Fork me on GitHub

I second that it is definitely more than worth the effort to setup Dirac :thumbsup: I use it every day.


Also Cursive REPL can connect to a Dirac session so you can run code from Cursive in the Chrome runtime.


@shaun-mahood Of course, it’s not a Cursive-specific problem, any of the REPL script solutions will have the same problem since they’re not lein based.


@pseud So, to answer a bunch of your questions - the support for lein is so extremely poor because I am lazy and useless.


But you can run a lein task by creating a leiningen run config, and putting whatever config you like in there, and selecting the profiles that you want.


You are also correct that Cursive fails to ruin remote nREPL connections, which work fine.


I’m also planning to add a figwheel run config shortly which should do exactly what you want.


To answer your other question, what you are missing is that Cursive, Leiningen and Figwheel are all monstrously complicated internally, and lein in particular is not designed to be embedded.


@cfleming: you know, that makes total sense - I just try things until they work. Have you experimented with socket repls or boot much? Coming to the conj again this year?


@shaun-mahood Yeah, I’m actually planning to fix all this (socket repls and figwheel CLJS REPLs) shortly. And yes, I’d love to support boot better, it’s a fairly large change unfortunately, but one that I definitely want to do ASAP.


And yeah, hopefully I’ll be at the conj


Are you going again this year?


@gpetukhov Cursive doesn’t (yet) provide any native CLJS debugging capabilities. Dirac seems to be the best option right now, and I’m hoping to help with the setup too. I’ve been meaning to look at that for a while now but have been busy with other changes.


@cfleming: thanks for your answer!


@cfleming: I'm going to the conj again, really looking forward to it! For my purposes all the repls work well enough, I'm just glad I don't have to figure out how they work.


@cfleming Yea, I - as an outsider who became frustrated over losing some 5 hours tinkering when I really needed something done, lay the blame at whatever object was the most visible to me. I need to tinker more, but I'm certainly seeing the complex interplay (i.e. the fail to observe checkout dependencies for figwheel seems to come as soon as nrepl is even involved, so not exclusively a Cursive thing). I'll be a cursive user professionally but I'll hold off on buying a personal license for a while. Hopefully this situation gets better, somehow.


@pseud Sure, no worries - CLJS REPLs have always been a bit of a house of cards, hopefully things will be better soon when I get figwheel properly integrated.


I do have a question, though. Reading up on boot I begin to see the appeal (for personal projects, anyway - workplace has its own policies). @cfleming - you said boot wasn’t supported in cursive right now. What does that entail, exactly ? Can I still navigate code, go to definitions and the like if I get an nrepl session going ?


@pseud I believe so, yes. There are a couple of options for emulating boot support in Cursive:


Basically, as part of your boot build you generate either a project.clj or a pom, and import that into Cursive.


Probably the biggest issue will be lack of symbol resolution in the boot file itself - all the project code should be fine.


I’m also not sure how their CLJS REPL works, nREPL should work fine if you can start one of those easily.


Actually, re-reading your question, note that Cursive doesn’t actually need a REPL for symbol resolution (navigation, completion, etc) - you might be used to needing one from Cider and other environments.


@cfleming When I hit a stacktrace in general, 99% of the times I have to scroll back to the start of it. Would it be possible to have cursive do that for me? Would be really nice to not have to scroll myself all the time. Especially given that they are so long in clojure.


@cfleming - (wrt. nREPL & symbol resolution), that’s very good to know. Thanks 🙂 I’ll definitely play with cursive & boot in the near future


@sveri Are they still too long even with the folding of lines not in your project? Is this clj or cljs?


I'm using Cursive for the first time on Windows and the shortcuts include a meta key. Is this broken or am I missing something?


I suppose it is, I reported it a while back


I modified them and created a chestography cheat sheet which I published.


Anyone see the REPL hang sometimes on reload (or run tests)? I think I see this rarely with normal run, more often w/ debug.


I see “Loading namespace <x> …” and that’s as far as it gets.


I’m tailing the log to see if anything pops up there next time.


… and of course, now it doesn’t manifest.


Is there an easy way to get all of your requires to :reload in the REPL? This would be incredibly helpful for when you are working on two different libraries at once and you want the code that was changed from a dependency to be reloaded in the REPL. Right now I have to manually type (require 'my.ns :reload) every time I want to reload my.ns.