is there any reason to use parinfer over paredit if i'm already used to paredit?
@cjhowe I think they complement each other nicely
you can use both?
maybe i'll try it then
It's there any plan to make parinfer-codemirror an ide or feature-rich editor for clojure?
@cjhowe in theory, as long as paredit operations result in properly indented code (according to our inference thresholds), it should work fine.
parinfer doesn't have things like slurp and stuff right? that seems like the main benefit to me
I’ve seen some people graduate from parinfer to paredit, and that’s more of what I expect
parinfer is to get people in the door
in some cases, parinfer behaves like that, but it’s not as granular as paredit slurp/barf
so is paredit's and parinfer's indentation compatible? are there any reports of teams using both?
i only used on paredit on vim, and I can’t remember how it behaved in terms of indentation
does emacs-paredit auto-indent code after operations?
there are only two rules that we follow: https://github.com/shaunlebron/parlinter#two-rules
@cjhowe I’d love to have help looking into paredit/parinfer compatibility. I’m guessing it will be editor-specific since implementations might differ
yes it auto-indents
in my experience it's compatible with those two rules
it might be easiest just to try it, I’ve heard of folks using them together though
i'll try it, then!
i would consider myself a paredit beginner honestly, but there are some functions i use regularly that i don't want to lose
so i think it's a good fit
cool, thanks for asking, looking forward to hearing how it works 🙂
@doglooksgood codemirror is used by LightTable. I don’t know of other clojure editors that use it
I don’t have plans to turn it into one. I am aware of some sites that use it for small editors and REPLs
I mainly created it for the parinfer home page and demo editor, so it could be a proper environment for showing canonical behavior
oh, there's an online parinfer repl?
I'm always searching for a good Clojure development environment, but never satisfied with any of them.
@cjhowe and in case you don’t know, this is the demo editor for playing with: http://shaunlebron.github.io/parinfer/demo
thanks!
the online demo is actually really useful because there's a lot of online clojure challenges that don't have a good text editor (like codefights)
i was in an interview the other day where I could choose my language of choice
the clojure editor was so bad, I had to switch to js
so yeah, parinfer-codemirror could help there
we can see a lot of shining ideas in all kinds of Clojure development tools, but there's no one make people feel perfect.
I recently use Emacs, but it has almost no support for Java and JavaScript.
well, there's http://jdee.sourceforge.net/ if you're into that
do you have an example of a perfect environment in another language?
tbh cider is by far the closest i've found to perfect for any functional language
@shaunlebron were you using their provided editor or something?
what do you mean?
Atom + Parinfer + Proto REPL has been pretty good for me, but I'm also in Clojure beginner-land
and Proto REPL still needs quite a bit more work on the CLJS side of things
(P.S. I wrote a set-up guide: https://clojurescript.org/tools/atom ...but things that work in CLJ like saved values, autocompletion, and jump-to-definition still don't work in CLJS)
@dominicm oh, it was an online collaborative editor, I can’t remember which
@rgdelato I’m excited about shadow-cljs for that reason—better tool integration
it exposes the analyzer data for things like that
Floobits is the only good one afaik :)
i talked to thomas heller for several hours about all the things it could do and agreed to help him write documentation to get more people involved with it
Oh interesting, I wonder if we should look at shadow for our translation needs if it exposes that info.
My current plan was to write to a file every time the macro expanded.
I’m stretched too thin on cljs stuff though
wow, goog hangout video chat while screensharing, i want to try that
I've heard of it, but haven't given it a good look. I'll take a closer look at shadow-cljs
it might be hairy trying to look into it, but he’s got very ambitious goals and I’m excited for it
@shaunlebron I hadn't even thought of mentioning it to you as a code streaming thing: yah you can use it for that.
Better than twitch because I can jump around files. Less viewers though.
I the viewer.
he has fundamental disagreements over what should be in cljs core vs separate tooling. he still uses cljs.analyzer, cljs.compiler, but replaces cljs.closure to control how it creates files to support better options and deterministic build things
his latest server thing allows instant subsequent startup times, and a code analysis UI viewable on browser, and eventually visual stuff like we did in cuttle: https://github.com/oakmac/cuttle
it’s had support for figwheel-like hotloading for years, and solves a lot of small problems he’s encountered over the years—like warnings only showing up on the most recently saved file
and he cares about easy integration of cljs into existing js projects
I'm mostly waiting on native boot support before switching.
i put that together for him after chatting with him, and then @rgdelato had to distract me with the Smart Mode idea 😉
even if I don't understand how it really works under the hood, if I can understand -enough- to intergrate it with ProtoREPL, that would be awesome
he’s been using it for production-level stuff for years
my only worry was that it was too far from native cljs compiler, but it uses the same stuff and only replaces the file creation, so it stays in sync with latest stuff from core
i’ll actually put that in a PR on readme, and try to connect folks who want to help
the downside right now is that he is changing it all the time, but he will probably stabilize the interface a bit more if more people start using it
man, Smart Mode is so nice, I can't wait for it to actually be out in Atom
drafting the communication of new parinfer stuff
You've built a really nice tool there. Must have taken some time.
filed an issue here for protorepl support: https://github.com/thheller/shadow-cljs/issues/76
@dominicm it was kinda scary ripping out some of that code for a standalone parinfer-codemirror, but I’m glad that it worked out because the recording code got a little crazy and edge-casey
codemirror reports on changes pretty well, and I just playback the change and parinfer does its normal processing after it is applied
could I get feedback on these animations? http://shaunlebron.github.io/parinfer/2017.html
@shaunlebron looks good! I think they illustrate the concepts clearly
"snap" and "compromise" animations look good. "indent" animation feels a little off and I'm not sure why. (maybe because it begins and ends with invalid code?)
@rgdelato yeah I think I agree
I’ll try a second pass, will take suggestions too
thanks for looking!
“safeguards” is hard to show