parinfer

shaunlebron 2018-05-02T04:11:12.000125Z

@doglooksgood is there a need for it still? are you using parinfer-rust?

tianshu 2018-05-02T05:15:11.000096Z

not yet, but I want to use it. until there's changes, some issues can be fixed.

shaunlebron 2018-05-02T15:25:09.000219Z

can you elaborate on this

tianshu 2018-05-06T11:24:01.000008Z

yes,i will post on the issue

cfleming 2018-05-02T08:43:05.000009Z

@shaunlebron @doglooksgood FWIW I’m finding the edits a source of hard-to-fix bugs. I’m planning to move to a model which returns changed lines instead of all the individual edits. This should be easier since parinfer is quite line-based.

eraserhd 2018-05-02T11:52:56.000486Z

This will mess up smart mode, won't it?

shaunlebron 2018-05-02T15:26:24.000225Z

@eraserhd you’re mixing up input changes with output changes I think

shaunlebron 2018-05-02T15:28:19.000821Z

input changes need to be exact to infer the right output changes

shaunlebron 2018-05-02T15:29:22.000291Z

unless the output changes themselves become detected as input changes

eraserhd 2018-05-02T15:31:10.000957Z

Ahh.. Yeah, I didn't understand what Colin was saying.

cfleming 2018-05-02T21:31:19.000227Z

@eraserhd Right, Cursive’s implementation doesn’t split the input into lines, and instead of returning another whole document returns just the edits to the original document. This greatly reduces GC pressure and is much more efficient (in IntelliJ, at least, and I’m pretty sure most editors)

cfleming 2018-05-02T21:32:25.000308Z

But the implementation is tricky and it makes some things (like cursor holding) hard to implement. I’ve had a lot of edge case bugs as a result.

eraserhd 2018-05-02T23:38:21.000035Z

So, I have parinfer-rust building and running with WebAssembly. The wasm tools for Rust aren't quite sorted out, so it was rough. But not sure what to do next.