This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-08-14
Channels
- # aleph (1)
- # announcements (1)
- # beginners (59)
- # boot (2)
- # calva (5)
- # cider (8)
- # clj-kondo (6)
- # cljdoc (5)
- # cljsrn (11)
- # clojure (123)
- # clojure-dusseldorf (1)
- # clojure-europe (4)
- # clojure-italy (22)
- # clojure-losangeles (4)
- # clojure-nl (10)
- # clojure-spec (18)
- # clojure-uk (22)
- # clojurescript (103)
- # cursive (32)
- # data-science (1)
- # datomic (21)
- # events (2)
- # figwheel (1)
- # fulcro (12)
- # graalvm (3)
- # graphql (8)
- # jobs (2)
- # kaocha (4)
- # klipse (2)
- # lein-figwheel (4)
- # leiningen (23)
- # off-topic (11)
- # planck (11)
- # re-frame (8)
- # reagent (2)
- # reitit (3)
- # rewrite-clj (1)
- # ring (1)
- # ring-swagger (31)
- # schema (2)
- # shadow-cljs (66)
- # spacemacs (3)
- # specter (16)
- # sql (9)
- # tools-deps (16)
- # vim (26)
Curious if anyone has any suggestions for the following clojurescript heavy REPL workflow. In order to get REPL workflow working correctly,
1. Run clj -R:nREPL -m nrepl.cmdline --middleware "[cider.piggieback/wrap-cljs-repl]"
where
{:aliases {:nREPL {:extra-deps
{nrepl/nrepl {:mvn/version "0.6.0"}
cider/piggieback {:mvn/version "0.4.0"}
com.bhauman/figwheel-main {:mvn/version "0.2.0"}
com.bhauman/rebel-readline-cljs {:mvn/version "0.1.4"}
} ... }
2. Start a remote repl session connecting to the leiningen port
3. Run (do (use 'figwheel.main.api) (start "dev"))
to kickstart the REPL session.
it all works flawlessly except for the fact that if I screwed up my compilation, need to redo my webpack, or whatever, I need to restart all three steps.
Does anyone have a cleaner clojurescript workflow for Cursive?Could REPLs be named based on the Run Configuration name instead of the namespace you are in? I have several different REPLs with different context modules and have no idea which REPL was started within which project.
@kenny Yes, I’m actually working on a large bunch of REPL improvements, and that’s one of them. Now the current ns is shown in an overlay over the input pane:
I haven’t changed the tab title yet, but I’m planning to have a Title field in the Run Config itself, since you might want a shorter name in the tab.
@goomba As part of those REPL changes I’m also working on CLJS REPLs, so that should get easier soon.
I have socket REPL support working, and I’m hoping to have native support for CLJS REPLs that won’t require piggieback.
Not sure if this fits in those changes but being able to select text in the REPL output panel using "extend selection" action would be great.
Hmm, yeah, that’s trickier since that is just text, it’s not structured like the input pane.
Wooooo!! That would be great. If you don't mind me scope creeping you, it would be really fantastic if you could put in some shortcut keys or something to make switching between multiple simultaneous REPL sessions easier as well. You know, while you're in there.
(preferably can view them side by side). Ok I'm done.
Yeah, that’s on the list. There will also be dual clj/cljs REPLs, so it’ll send things to one or the other (or both) depending on the file type.
drool
I’ve thought about that, and was considering reusing the debugger UI, but it’s finicky and complicated, and needs a lot of screen space.
That would be very helpful, personally, when I'm doing simultaneous server/front end development, especially for websocket work. It's a lot of ping pong. That being said I'd settle for good keyboard shortcuts to switch if making the REPL tabs into breakout windows is too irritating
What about interleaving them in the same REPL? So you could switch in the input pane which REPL you’re sending to, and the output would be marked somehow with the REPL it came from.
As in the output of server and client goes to same REPL output area? Hell yeah that would be even better.
Ok, I’ll try that and see how it works, and maybe get a dev build so that people can try it.
Yasss. You spoil us.
I’ve had to park the REPL stuff for a bit to work on a Deps change, but I’ll be back on it soon.
I'm amazed you can keep up with all the tooling changes. And somehow answer slack
Well, I’m just adding support for Socket REPL which came out, what, 2 years ago? And I’m also planning to add support for the NPM requires for CLJS which must be about the same, so…
You're supporting the npm? Audacious. Even the docs itself say it's unstable in advanced.
I’d like to add proper support for that too, which should be easier after this round of Deps fixes.
Yeah. This is probably why clojure is such a hard language to get into. Fortunately you've done a lot to make it approachable. Thanks again!