Remove compiler support for `clearcontext`, `fix`, `switch` statements
and remove corresponding `CODE_` definitions, as well as `CODE_KEY`,
which was never used.
These four statements have never been documented and have either never
been implemented, or long been unsupported. An earlier change (#16445)
marked `clearcontext` and `fix` as deprecated for v19 onwards, but
deprecation for an undocumented language feature is an unnecessary step,
so have opted to remove altogether in v19 to reduce complexity. This
means that `VERSION_190` is used now only for compile target
deprecations.
Follows: #16445
Test-bot: skip
When a store contains any unsupported statement (any, baselayout, beep,
call, context, if, index, layer, notany, nul, platform, reset, save,
set, use) or undocumented statement (clearcontext, fix, switch), then
emit a compile error. Previously, compiler would not detect use of these
statements in stores, which could lead to undefined behaviour at
runtime.
At time of writing, eight keyboards in the keyboards repository
(clavbur9, hausa_ajami_qwerty, sil_cameroon_qwerty, sil_cameroon_azerty,
sil_dzongkha, sil_yoruba8, sil_yoruba_bar, sil_yoruba_dot) make use of
either beep or nul in stores. Due to compiler unfolding of any/index
statements for key part of the rule, these would work in some cases, but
this was never supported explicitly nor completely, and so at this point
it is better to prevent misuse and add full support as a future task.
Fixes: #16718
Test-bot: skip
* Add deprecation warnings for legacy character code formats, legacy
`VERSION` header statement (was missing when other header statements
were checked), `$keymanonly` and `$keymanweb` compile targets.
* Make existing deprecation checks consistent and shift to
DeprecationChecks.cpp.
* Add unit tests for all deprecated features.
Fixes: #16699
Test-bot: skip
In order to resolve initialization order (see instigating property
`builder.lastPresentations`), split all constants into a separate object
`builderConstants`, inverting the dependency, which is both cleaner and
the first step of removing the multi-module initialization of a single
`builder` variable.
Take the @types/jquery and @types/jqueryui packages out of the
devDependencies and place the index.d.[c]ts files into the ext folder.
This is needed because of fragility elsewhere with implicitly imported
types, which is described for resolution in #16535. Keeping this as a
separate commit as preference would be to have these dependencies
managed through npm long-term.
See-also: #16535
Make minimal changes to Touch Layout Editor source files in order to
build with Typescript with noImplicitAny=false (to be cleaned up later).
Also make source files accessible through the web server for Developer
Console use.
Minimal changeover to esm, use tsc to build. Builds and runs. Installer
will still include source files and the editor should be moved outside
of the xml/ folder later.
Separate source javascript files from templates, assets, and xsl.
Will simplify future changes such as move to Typescript or serving
files from Server instead of internal web server. And just tidier.
removes comment
`TODO-KMC-CONVERT: Support <action> sub-element 'anonymous actions' in
the future`
from keylayout-xml.ts since this concept is not used in kmc-convert at
present and probably not planned to be worked on in near future
Test-bot: skip
This side-steps #8227 by removing an unnecessary confirmation dialog,
without needing to change exit codes from kmshell, which would be a more
impactful change. (Perhaps kmshell should return non-zero if the Cancel
button is pressed in the uninstall confirmation dialog, but don't want
to make that change at this point.)
Fixes: #8227
* Add more detail on each test name to show expected errors
* Rename `build-fixtures` action to `fixtures-build` in build.sh, to
reduce confusion with `build` action and allow shorthand usage.
Test-bot: skip
* Hint on multiple missing minDeviceWidth
* Disallow blank or whitespace minDeviceWidth value
* Additional tests for minDeviceWidth
Fixes: #16457
Test-bot: skip