spiegel-keyman/common/core/web/keyboard-processor
Marc Durdin cacbbee5cc fix(web): properly handle selection
Relates to #5853 and others.

Selection management was not working properly with the various
OutputTargets:

1. When there is a non-empty selection, rules have no context -- it's
   like new text.
2. Backspace over a selection deletes just the selection.
3. Typing a character replaces the selection, of course, and collapses
   the caret to the end of the new text.
4. `hasSelection` is a very strange name for `OutputTarget` descendants.
   It doesn't mean "has an active selection" but rather, kinda means
   "supports selection internally".
5. Added `isSelectionEmpty` which is used for some of the new selection
   rules above.

Note that the `touchAlias` OutputTarget class does not currently support
selection. I hope we can deprecate `touchAlias` with the use of
`inputMode` (#3030) in the future, rather than adding support for
selection.
2022-02-23 15:12:58 +11:00
..
src fix(web): properly handle selection 2022-02-23 15:12:58 +11:00
tests/cases chore(common/core/web): tweaks name of a unit test 2021-08-06 10:34:13 +07:00
.gitignore change(web/engine): addresses most of PR review 2020-04-29 14:28:30 +07:00
package-lock.json auto: increment master version to 15.0.202 2022-02-21 13:02:21 -05:00
package.json auto: increment master version to 15.0.202 2022-02-21 13:02:21 -05:00
README.md docs(web/engine): cleans readme.md for keyboard-processor 2020-04-24 13:45:16 +07:00
test.sh fix(common): build script help param 2021-05-28 09:50:40 +10:00

Keyman: Keyboard Processor Module

The Original Code is (C) 2017-2020 SIL International

The Keyboard Processor module is an internal component of KeymanWeb, seen within this repo at /web/.

Minimum Compilation Requirements

  • A local installation of Node.js v8.9+.
    • Builds will call npm install to automatically install further necessary build dependencies.

    • Linux users can run the following to update to LTS version of nodejs

sudo apt-get install python-software-properties
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

The build script may be found at src/build.sh.