3 ms·
Currently it's at an entry/line level like you suggest, although theoretically I could flip (for lack of a better term) the algorithm and apply it laterally on
by sambigeara 5y ago
Currently it's at an entry/line level like you suggest, although theoretically I could flip (for lack of a better term) the algorithm and apply it laterally on a per character basis.
The data structure is a WAL storing all mutation events, each of which has a reference to another uniquely identifiable item (by some UUID:timestamp combo). Rather than treating each line as a uniquely identifiable object, I could treat each character as such.
Downside of the current implementation is that two people operating offline on the same line will see unpredictable results when they're able to sync again (basically it will just honour the most recent update event). The per-char change above would remedy that, I think!