Hello @seancorfield, sorry bothering you, but did you see many differences about using Atom + Protorepl and Emacs + Cider ? What kind of tools do you use in your code editor to automatic indent? What packges do you use in Atom to be more productive using clojure?
I followed Jason Gilman's "opinionated" setup (except for turning off the three auto-refresh options). So that includes paredit and parinfer. @fabrao
Is the autocomplete for clojure files in Atom sufficient for you guys? I’m talking about outside of the repl. Mine seems spotty/doesn’t really seem to detect the vars available in a given namespace, but I’m thinking it has something to do with my Atom setup. Thinking about just nuking Atom and reinstalling :thinking_face:
if anything I think the autocomplete is too aggressive
@ciacci1234 Auto-complete works in two ways in Atom: without code eval'd into the REPL, it just auto-completes on the code it has seen open in tabs, during this editing session; with code eval'd into the REPL, it auto-completes off all the symbols it can find "in memory" (so, all of clojure.core
and any namespaces you have required into the current ns.
okay thanks, that helps! I don’t think that kind of behavior is happening, so I’m probably gonna go ahead and reinstall Atom. Good excuse to review and clean up my packages anyways 👌 Appreciate it!
I'd love to have proton, proto-repl in VSCode. I guess not having something like ink for VSCode is at the very least a show-stopper
for evaluating forms in atom I'm using the default control comma and b but that feels so awkward vs what my muscle memory wants me to do control x and e (the emacs keybinding I have) Does anyone have a key combo that feels more natural or did you just change the key bindings to match emacs?
I'm on a Mac so opt-cmd-b is evaluate form and opt-cmd-shift-b is evaluate top-level form, which I like.
Can't remember how much I've customized my keymap tho'...
https://github.com/seancorfield/proto-repl-setup/blob/master/keymap.cson (my other tweaks are in that repo too -- but not settings since it differs between Mac and Windows)
I also find it kind of annoying switching projects. removing the current project folder and adding a new one seems kind of tedious, so I was thinking of just adding my entire <clojure_projects> folder to the workspace and then when I want to switch I just kill the repl, open up a different project.clj and then fire up the repl again. or I could just try to stick with one project for more than an hour, but I can't guarantee that
yeah, I currently just have a few Atom windows open with different projects and just fire up a repl on each one of them. Not the greatest, but good enough for now!
@gdeer81 I have eight projects open in Atom right now -- varies between six and a dozen. Since nearly all of them use Boot, it's pretty easy to just add all the dependencies I need to a single REPL at any point. Then I only need to kill & restart the REPL if I have conflicting dependencies in different projects.
Okay, good, I just wanted to make sure I wasn't trying anything that will break it
Leiningen makes that harder, since project.clj
is declarative and can't just be "eval'd" into an open REPL. Boot's build.boot
has executable code and (set-env! :dependencies '[[...] [...] [...]])
can just be evaluated in the REPL and those dependencies get fetched and loaded without a restart.
And if your apps are all built around Component, you can easily define and start
multiple applications in a single REPL as long as they don't conflict on ports or classpath resources (something we're fairly careful about since we have over half a dozen Clojure web apps in our mono-repo now and can run them all in one REPL 🙂 )
oh wow, I need to get on that level
I've been putting off learning boot and component for too long
Update on my autocomplete issue, I decided not to reinstall atom because I was able to get the expected behavior for the proto-repl-demo
project, and I actually didn’t have many additional packages installed, so it is unlikely package interference is at play.
I checked the project.clj
files for my projects where I am encountering the problem and I noticed that they all specify
org.clojure/clojure "1.9.0-alpha17"
While in the proto-repl demo 1.8.0 is specified.
Does anyone think that could be the issue?
Or rather is anyone running 1.9.0-alpha17 as well?