kmc-convert provides tooling to convert between various common keyboard
description file formats. Each conversion will be implemented in its
single, separate module (and each module will done in its own PR)
This PR will address the conversion **keylayout → kmn**
Co-authored-by: Marc Durdin <marc@durdin.net>
* Remove irrelevant context from toast and add more context for Sentry
report.
* Add a test keyboard with a script error that will trigger the toast on
first keystroke.
* Rearrange common/test/keyboards/invalid to make a good place for
compiled invalid keyboards.
Fixes: #16145
Test-bot: skip
For Keyman Developer Server, add app.webmanifest so that it can be saved
to the home screen; other pages should not require this.
Fixes: #16172
Test-bot: skip
- Drops the `Suggestion.transformId` field in favor of just reusing `.transform.id`
- Updates documentation on .transform.id as a unique identifier of the transition,
not specific to a single Transform.
Does not modify the `.transform` or `.id` properties because we've been publishing
lexical model types, and that would change the public model API.
Build-bot: skip build:web
Test-bot: skip
* Centralize the api-extractor.json files, update usage
* Support @since
* Tidy up a few warnings relating to API documentation content
Fixes: #14838
Test-bot: skip
If a Keyman Cloud keyboard is legacy and has no source available, make
this more obvious to the author when they attempt to clone it. Add also
messages to help the author complete the other required steps to clone
a keyboard.
Fixes: #15606
Test-bot: skip
In order to maintain roughly the current build artifact size, strip out
the unfinished core integration from what we merge with preflight.
Test-bot: skip
Build-bot: release:android,ios,developer,web
Turns out `end(result, true)` didn't actually do anything except calling
`end(result, true)` on each child, which resulted basically in a no-op.
Therefore this change removes the `force` parameter from `end()`.
Previously the loop at the beginning of `end` had an infinite loop
because the child was never removed from `childrenToVisit`. This change
refactors and fixes the loop.
Build-bot: skip build:web
Test-bot: skip
* Add `TKeymanPaths.KeymanLocalePath` for consistent access to locales
folder, and update references.
* Remove the `SKDefaultLanguageCode` string and hard code the default
language in CustomisationMessages.pas.
* Hide the test locale 'qqq' on release builds.
Fixes: #15164
* Move the following files from common/windows/cpp/include/ to
common/include/:
* keymanversion.h
* vkeys.h
* Move the following file from common/windows/cpp/ to common/cpp/:
* vkeys.cpp
* Move crc32.cpp,crc32.h into kmcmplib, as they are only used there.
* Remove unused ConvertUTF.c and ConvertUTF.h.
* Update references to the above files.
* Remove precompiled header refs from vkeys.cpp and change data type to
`char*` for types in vkeys.cpp (unless `USE_CHAR16_T` is defined), so
that it is more cross-platform accessible, update usages accordingly,
fixup project definitions accordingly.
* Remove unused define `KMN_KBP_EXPORTING` from kmcmplib/meson.build.
Fixes: #15565
Test-bot: skip
Simplify usage of `TestCompilerCallbacks` by making it responsible for
the `beforeEach` and `afterEach` incantations itself. There are a couple
of more complex usages of `TestCompilerCallbacks` which have been
excluded from this change on purpose.
Renamed `testCallbacks` to `callbacks` in the one place where it was
different.
Hoist @types/node and @types/mocha because inconsistent versions of
@types/mocha were causing compiler errors with this change.
Also added a cast to `fs.readFileSync` to `Uint8Array` to eliminate
compiler warnings/errors in test files.
Fixes: #15654
Test-bot: skip