This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-10-04
Channels
- # 100-days-of-code (8)
- # announcements (4)
- # beginners (77)
- # boot (11)
- # business (13)
- # cider (69)
- # clara (2)
- # cljdoc (51)
- # clojure (59)
- # clojure-dev (18)
- # clojure-italy (4)
- # clojure-nl (11)
- # clojure-spec (54)
- # clojure-uk (115)
- # clojurescript (33)
- # core-async (4)
- # cursive (95)
- # datomic (27)
- # duct (1)
- # emacs (58)
- # figwheel (22)
- # figwheel-main (63)
- # garden (1)
- # graphql (10)
- # hyperfiddle (1)
- # leiningen (1)
- # luminus (6)
- # off-topic (12)
- # planck (7)
- # portkey (1)
- # quil (3)
- # re-frame (3)
- # reagent (5)
- # ring-swagger (3)
- # shadow-cljs (34)
- # slack-help (19)
- # spacemacs (57)
- # testing (2)
- # timbre (2)
- # tools-deps (42)
- # yada (6)
PSA - the Cursive EAP build I pushed yesterday allows using -m figwheel.main
in clojure.main REPLs, so it’s easier to get a nice Figwheel REPL going.
If you’re using deps, yes. So you can use deps to manage your, um, deps, and run your REPLs via the CLI tools.
So they can choose either an nREPL REPL or clojure.main, and decide whether they want to run it using the classpath of the IntelliJ project or via lein/deps (depending on how they’re managing their module).
When Cursive syncs the project to IntelliJ from lein/deps, it adds libraries etc so IntelliJ knows what the classpath should be, but that may happen using different profiles/aliases than they want to use for running, so they can also run via lein/deps to handle that.
Yes, arbitrary numbers of them, and they can run concurrently and they get docked in tabs.
My next step is to have a more complex tabbed interface which will allow for a particular REPL having CLJ and CLJS REPLs running concurrently in tabs, and server.log etc in another tab.
That will allow users to send clj or cljs forms and have them go to the right REPL automatically - I think CIDER does this already.
I’m not sure how many config options for the various REPLs they expose though - I should look at that.
If they choose to run nREPL with deps I add the nREPL bundled with Cursive at the end of the classpath, and -i
a file which starts the server and pings Cursive with the port.
there are config options but there isn’t a notion of having many repl configurations for a build
So for figwheel, users can either use an alias with deps and add the alias there, or they can just enter -m figwheel.main
in the “Parameters” box.
That’s Cursive specific obviously, presumably they may also want to run the REPL on the command line, or if they have heathen co-workers using something else.
No, I don’t - all the language support is via static analysis and works without the REPL. However nREPL does offer nice things like colourisation and formatting of output forms, which streaming ones don’t.
Yes, params from aliases get added first, and then the IntelliJ ones after, so they could add something like a max memory in the IntelliJ box if they just wanted that temporarily or something like that.
I’m actually slowly working on my doc generation system which will make it less like scratching my eyes out, and I’m going to get stricter on documenting all this stuff.
Yeah, last year when there was a group of folks declaring defiantly that they never use an editor connected REPL.
I remember reading about some gnarly bugs found in the onyx project using generative tests
I must confess that I don’t use a CLJS REPL myself, because the tests were easier to set up
Once the Cursive CLJS REPL story is better I’ll have things like interactive test integration, which is super nice for clj
and its behavior wouldn’t actually watch but rather it would check before compile for changes to the bundle file and then run webpack it if there has been a change
hmmm I guess you’re thinking about re-reading the build config file at runtime when it changes
my feeling is changing your index.js
is a bit like changing your deps - making this auto-reload seems like a lot of machinery for something that happens less frequently than working on your application
@pesterhazy but you actually have some of this stuff automated, I was trying to bring some of that automation to figwheel, but perhaps this is better done as an on-start operation and not an on build operation
@shaun-mahood @pesterhazy here is an initial doc on using NPM from ClojureScript via figwheel.main https://figwheel.org/docs/npm.html