parinfer

henrik 2017-07-31T04:38:12.702122Z

Trying out smart mode in Atom, and it’s looking good!

chrisoakman 2017-07-31T04:39:25.713151Z

It's not completely done yet 😉

chrisoakman 2017-07-31T04:39:32.714150Z

Shaun and I are both working on it right now.

henrik 2017-07-31T04:39:41.715404Z

@chrisoakman I completely understand that 🙂

henrik 2017-07-31T04:40:28.722077Z

I thought I’d try it out anyway

henrik 2017-07-31T04:40:32.722606Z

Oh great!

chrisoakman 2017-07-31T04:41:19.729192Z

Nice to see early adopters! I know people are wanting to test it out.

henrik 2017-07-31T04:42:39.740795Z

Yeah, I thought I might catch you a few bugs maybe. But perhaps it’s a bit too early, give us a shout when you want beta testers. 🙂

chrisoakman 2017-07-31T04:43:05.744364Z

Will do :thumbsup:

chrisoakman 2017-07-31T04:43:28.747649Z

I think Shaun is jumping into help because he wants to see it "out in the field" sooner than later.

chrisoakman 2017-07-31T04:44:06.752973Z

I should have more time now. I was teaching a coding bootcamp class that just ended.

chrisoakman 2017-07-31T04:44:34.757162Z

I'm also traveling for work this week, so would like to at least get something working before that trip.

chrisoakman 2017-07-31T05:01:38.908874Z

@henrik If you want to be on the super-bleeding edge, give this a try: https://github.com/oakmac/atom-parinfer/pull/80

1👍
henrik 2017-07-31T05:25:20.121900Z

Yep, the above problem is certainly gone.

shaunlebron 2017-07-31T05:56:04.417921Z

thanks for trying it @henrik!

henrik 2017-07-31T05:56:25.421604Z

No problem, thanks for all the hard work'

shaunlebron 2017-07-31T05:56:27.422026Z

getting close, I really want tabStops in there, will get to it in the morning

shaunlebron 2017-07-31T05:56:38.423996Z

tab stops are so helpful

henrik 2017-07-31T05:57:28.432234Z

Yeah, I was just thinking about that one, since I saw you demoing it earlier. But overall, I’d say it works really well already. I’ll keep using it for now and see if I run into any more oddities.

shaunlebron 2017-07-31T06:05:10.515537Z

thanks, looking forward to feedback

henrik 2017-07-31T10:12:10.076040Z

I’ve been using it for a while now, and so far, no surprises.

dominicm 2017-07-31T12:37:24.768993Z

Naa: put them on a newline 😉 https://github.com/shaunlebron/parinfer/issues/92

henrik 2017-07-31T13:08:13.539967Z

It’s not precisely the same situation though. In my case, it’s better that they stay on the same line. For example, I don’t want

[{:hello "world"}]
to turn into
[{:hello "world" ;; Comment :-)
}]
Rather,
[{:hello "world"}] ;; Comment :-)
… is the result I desire in this case.

shaunlebron 2017-07-31T14:41:02.677208Z

@henrik thanks, i see that from time to time and I’m always taken aback by it

shaunlebron 2017-07-31T14:41:49.706916Z

another good use case for smart mode to inspect the change and react accordingly

henrik 2017-07-31T14:42:11.720896Z

To be honest, the most common use case for me would be that I’m clumsy 🙂

henrik 2017-07-31T14:42:39.738609Z

I hit the semicolon when I try to hit colon, and accidentally comment out x number of brackets

henrik 2017-07-31T14:43:31.771783Z

Other than that, a whole day of programming with v3 and I have nothing to complain about. It’s a great improvement over the last version.

shaunlebron 2017-07-31T14:43:49.783165Z

come to think of it, I think they were also accidents when it happened to me

shaunlebron 2017-07-31T14:44:21.803784Z

as long as it’s not destructive, it’s not too pressing, but a good thing for polish to reduce the surprise there

henrik 2017-07-31T14:44:41.816088Z

Yeah, it’s not that hard to position the cursor at the end of the line when you DO want to make a comment.

shaunlebron 2017-07-31T14:44:44.817741Z

good to hear!

henrik 2017-07-31T14:47:06.908198Z

My general experience of using parinfer is that I get the feeling of my editor doing what I intend for it to do, rather than what I (in strict terms) tell it to do. In that sense it fits the general feeling of the project to mitigate the effects of the accidental commenting

1🎉
shaunlebron 2017-07-31T14:50:59.056189Z

at the beginning of the project, my intuition was that there was not enough information to understand user intention, so I leaned on modes for explicit intention—which part of the indentation-paren invariant do you want to control?

shaunlebron 2017-07-31T14:52:29.113369Z

i’m much more optimistic now that user intention can be inferred from changes (mostly?)

2👍
shaunlebron 2017-07-31T14:54:23.186068Z

thanks for sharing your thoughts on how parinfer relates to user intention, I’ll be keeping that in mind

shaunlebron 2017-07-31T14:55:34.231964Z

smart mode made me a believer that user intention is encoded somewhere, just needs a creative person to wrangle it out

shaunlebron 2017-07-31T14:57:08.292989Z

i.e. parinfer’s users