protorepl

fabrao 2017-11-16T13:59:16.000565Z

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?

seancorfield 2017-11-16T16:08:24.000564Z

I followed Jason Gilman's "opinionated" setup (except for turning off the three auto-refresh options). So that includes paredit and parinfer. @fabrao

2017-11-16T16:16:57.000285Z

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:

mattly 2017-11-16T17:24:00.000419Z

if anything I think the autocomplete is too aggressive

seancorfield 2017-11-16T17:39:08.000022Z

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

2017-11-16T17:51:10.000450Z

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!

rcolyer 2017-11-16T21:16:11.000483Z

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

gdeer81 2017-11-16T21:29:53.000303Z

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?

seancorfield 2017-11-16T21:32:33.000214Z

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.

seancorfield 2017-11-16T21:32:48.000365Z

Can't remember how much I've customized my keymap tho'...

seancorfield 2017-11-16T21:34:13.000424Z

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)

gdeer81 2017-11-16T22:13:03.000014Z

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

2017-11-16T22:23:46.000581Z

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!

seancorfield 2017-11-16T22:26:10.000162Z

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

gdeer81 2017-11-16T22:27:19.000158Z

Okay, good, I just wanted to make sure I wasn't trying anything that will break it

seancorfield 2017-11-16T22:29:21.000125Z

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.

seancorfield 2017-11-16T22:31:10.000047Z

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

gdeer81 2017-11-16T22:44:29.000055Z

oh wow, I need to get on that level

gdeer81 2017-11-16T22:45:01.000119Z

I've been putting off learning boot and component for too long

2017-11-16T23:10:55.000359Z

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?

2017-11-16T23:11:14.000241Z

Or rather is anyone running 1.9.0-alpha17 as well?