This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-02-10
Channels
- # beginners (140)
- # boot (18)
- # cider (4)
- # cljs-dev (28)
- # clojure (191)
- # clojure-greece (51)
- # clojure-russia (1)
- # clojure-spec (13)
- # clojure-uk (2)
- # clojurescript (38)
- # community-development (26)
- # core-logic (16)
- # cursive (6)
- # datomic (3)
- # defnpodcast (9)
- # editors (1)
- # emacs (1)
- # fulcro (10)
- # immutant (3)
- # jobs-discuss (2)
- # leiningen (17)
- # lumo (24)
- # off-topic (30)
- # quil (12)
- # re-frame (11)
- # reagent (103)
- # remote-jobs (2)
- # shadow-cljs (157)
- # spacemacs (4)
- # unrepl (18)
- # yada (2)
actually autocomplete for all functions doesn’t work.
First off, you don't need in-ns
at any point. Second, It doesn't sound like you have your source file folder on your classpath? You didn't mention build.boot
so I'm assuming you don't have one.
You'll want to tell Boot to put your source files on the classpath: (merge-env! :resource-paths #{"src"})
-- assuming you're creating files in the src
folder tree?
You can say (boot.user/merge-env! :resource-paths #{"src"})
if you're in a different namespace.
If you have a build.boot
file in your project folder (instead of project.clj
), and you do cider-jack-in
I would expect it to start a REPL using Boot (although it's been a long time since I used Emacs/CIDER).
As I recall, when you do cider-jack-in
, CIDER itself injects various dependencies which is what helps provide the auto-completion functionality I think? Otherwise, you'll just have a bare REPL with whatever dependencies you specified at startup.
Does any of that help @drewverlee?
@seancorfield I'm guessing it helps a ton. I'll need to get back to my computer to check ☺️
@drewverlee I'm back home and online (with a beer) so if you have any Qs, I'm around again 🙂
I teased out some of the details and i’m able to add projects without restarting my repl 🕺
I was going to pull in mount as a way to solve the next issue which was having to reload after re-defining multimethods. I need a fresh day to read about mount, component and integrant which all set out to help with application state. I did some reading about component and i understand a bit of the differences but i should dig deeper into the problem so i have less of a superficial understanding. Does using boot impact anything concerning application state managment?
@drewverlee We use Component at World Singles. It feels a bit OOP but it also feels a bit cleaner about state management. Mount looks "easier" but not "simpler" because it seems to still have global mutable state. I haven't looked at Integrant.
Thanks for the insight. i’ll fiddle a bit with them all to hopefully get a deeper understanding
or apparently try one of these strategies: https://stackoverflow.com/questions/44807442/how-to-reload-a-multimethod-in-clojure-rep. which is a bit odd. i’m confused about what namespace/clear is supposed to do . it says it clears all the state, but i would that effective remove everything… references to functions,etc… but those remain
@drewverlee are you already doing the trick where you def
the multimethod to nil
directly above the defmulti
?
@seancorfield nope. Is that one in the SO question?
Dunno. It's a technique to make reloading a namespace containing a multimethod work "as expected".
I didn't read the SO post.