parinfer

cfleming 2017-07-16T05:49:35.732100Z

@shaunlebron Awesome, thanks. I think I have the changes ported to my internal version of parinfer, I’ll get the tests over tomorrow and try them out.

shaunlebron 2017-07-16T05:54:30.744674Z

@cfleming: you mean parinfer-jvm?

cfleming 2017-07-16T05:54:53.745722Z

@shaunlebron My internal version has diverged from that somewhat.

cfleming 2017-07-16T05:55:26.747191Z

I wanted to get the changes in there to actually try it out properly before I spent the time migrating to something that has no known actual clients 🙂

cfleming 2017-07-16T05:56:17.749498Z

I’m also planning to write something that records the changes made while editing code, to get a better idea of how to calculate the changes array.

cfleming 2017-07-16T05:56:48.750780Z

When a command creates overlapping changes, it’s actually difficult to know what to do.

shaunlebron 2017-07-16T05:58:17.754725Z

I can’t seem to remember the overlapping changes example

cfleming 2017-07-16T05:58:56.756451Z

I don’t think we’ve ever discussed one, but I believe when I initially investigated this idea I found that it was quite common.

cfleming 2017-07-16T05:59:15.757308Z

I’m planning to log all the changes while editing some code to get a better idea of when it might happen.

cfleming 2017-07-16T05:59:47.758829Z

Imagine that some command creates a change to some range of text, and then makes another change inside that range somewhere.

cfleming 2017-07-16T06:00:19.761208Z

I suspect the current change dx accumulation might not work correctly there.

cfleming 2017-07-16T06:00:39.762573Z

But I need to write some examples on a piece of paper to think it through.

shaunlebron 2017-07-16T06:01:39.766118Z

interesting, having a hard time to imagining an example, let me know when your logs catch one!

cfleming 2017-07-16T06:02:17.768037Z

I bet this could do it: https://twitter.com/CursiveIDE/status/879504166237818880

cfleming 2017-07-16T06:03:14.770825Z

Depending on how the various sub-steps are implemented.

shaunlebron 2017-07-16T06:05:01.775841Z

yikes

shaunlebron 2017-07-16T06:05:18.776615Z

I’d be tempted to avoid that problem somehow

cfleming 2017-07-16T06:06:32.780054Z

Cursive, after performing a paredit command, usually reformats the form. That could also create overlapping changes.

cfleming 2017-07-16T06:07:49.783604Z

Got to go, will report back.

shaunlebron 2017-07-16T06:10:01.789343Z

my gut is that when a change intersects another within the current batch, it should probably go into a new batch to run afterward