We'd like to provide text handling that feels native to our users' platform. A major requirement is for the framework to recognize inputs like Shift+Arrow or Ctrl+Del and update the selection accordingly.
We also want to let developers provide keyboard shortcut configuration so that users can pick their own keybindings. Moreover, on MacOS the platform itself lets users customize keybindings and expect all apps to match (see this discussion on zulip).
Here is what I think we should do:
Create a TextUpdate enum that represents all common movements and text editions. Things like "Go to end of line", "Remove previous word".
For each enum variant, implement unit tests that check it's handled properly.
Providing a keybinding handler that maps key combinations to TextUpdates. That handler should be serializable, so we can feed it user configs.
Find a way to construct that handler from MacOS's user settings.
We'd like to provide text handling that feels native to our users' platform. A major requirement is for the framework to recognize inputs like
Shift+Arrow
orCtrl+Del
and update the selection accordingly.We also want to let developers provide keyboard shortcut configuration so that users can pick their own keybindings. Moreover, on MacOS the platform itself lets users customize keybindings and expect all apps to match (see this discussion on zulip).
Here is what I think we should do:
TextUpdate
enum that represents all common movements and text editions. Things like "Go to end of line", "Remove previous word".