This is also not 100% robust and is still a bit fragile. I'm thinking about changing the algorithm up a little bit, but don't want to throw away all this work.
There are a lot of edge cases that need to be caught with this approach. This was a PITA to test and I still don't think it works for some cases (e.g. deleting across columns).
Feel free to look at it but don't waste time fully reviewing it since I might change it to something easier (Atom's API should allow us to implement this with greater ease).
WIP. Waiting on Changes from https://github.com/geoffxy/tandem/pull/48 to be merged in.
This is also not 100% robust and is still a bit fragile. I'm thinking about changing the algorithm up a little bit, but don't want to throw away all this work.
There are a lot of edge cases that need to be caught with this approach. This was a PITA to test and I still don't think it works for some cases (e.g. deleting across columns). Feel free to look at it but don't waste time fully reviewing it since I might change it to something easier (Atom's API should allow us to implement this with greater ease).