I guess what I'm saying is shouldn't we "reset" the transaction for any movement not associated with text insertion or backspace? All the more reason I think to handle this in `TextBuffer`. We need an API that gives us the most recent contiguous inserted text from the most recent transaction. Perhaps that could be the return value of committing a transaction?