Fork me on GitHub
Drew Verlee00:02:45

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?

Drew Verlee00:02:56

@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 🙂

Drew Verlee04:02:24

I teased out some of the details and i’m able to add projects without restarting my repl 🕺

Drew Verlee04:02:29

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.

Drew Verlee04:02:13

Thanks for the insight. i’ll fiddle a bit with them all to hopefully get a deeper understanding

Drew Verlee04:02:52

or apparently try one of these strategies: 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?

Drew Verlee04:02:15

@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.