You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a couple potential issues with the standard TextInputPlugin used in Flutter:
Editing documents involves moving the whole document between native and Dart sides for each and every modification, including selection changes. With large documents this could be rather inefficient.
Since communication with the native side is asynchronous there is a risk of running into race conditions (which already happened once). Current workaround is to prevent document updates from being sent too often to the native side.
How custom text input plugin could address the above issues:
Instead of sending the whole document each time we can send the change Delta only. This should potentially scale to very large documents.
Assign a revision ID to each change Delta sent between Dart and native sides so that when a new change is received it can be handled based on the current state.
This requires a smarter native side implementation which (a) knows how to compose deltas; (b) keeps track of current revision so that updates can be sorted and applied in the correct order. Essentially this would require a local OT server running on the native side.
The text was updated successfully, but these errors were encountered:
There are a couple potential issues with the standard TextInputPlugin used in Flutter:
Editing documents involves moving the whole document between native and Dart sides for each and every modification, including selection changes. With large documents this could be rather inefficient.
Since communication with the native side is asynchronous there is a risk of running into race conditions (which already happened once). Current workaround is to prevent document updates from being sent too often to the native side.
How custom text input plugin could address the above issues:
This requires a smarter native side implementation which (a) knows how to compose deltas; (b) keeps track of current revision so that updates can be sorted and applied in the correct order. Essentially this would require a local OT server running on the native side.
The text was updated successfully, but these errors were encountered: