- Sep 05, 2022
-
-
Marc Durdin authored
Adds definitions for LDML keyboard transform elements `transforms`, `backspaces`, and `reorders`, and the binary format sections `bksp`, `elem`, `finl`, `ordr`, and `tran`. Minimally updates the compiler so that it will build, but no other changes to the compiler. Compiler and Typescript updates to support building these sections will come in the next PR.
-
Marc Durdin authored
The purpose of these tests is to ensure that our slightly WET constant definitions for compiler errors are consistent in their usage: * that names are consistent between the message functions and constants * that constants have unique codes * that constants have the right error mask for their type This means we don't have to worry about DRYing out the constants, which would probably require us to have a preprocessing step, which has its own negatives. Also, added more reporting to e2e test in case of failures. -
Marc Durdin authored
-
Marc Durdin authored
Uses our `K_xxx` constants for the CLDR VKey Enum mapping. Renames us-virtual-keys to virtual-key-constants, better reflecting its purpose, and adds a unit test to verify that the codes in the CLDR VKey Enum mapping correspond to our expected Keyman virtual key codes.
-
Marc Durdin authored
vkeyMaps table compiler, unit test, and fixes to json schema. Adds a vkeyMaps entry to the basic e2e test. us-virtual-keys.ts has a new mapping for CLDR VKey Enums, but I will tweak this in an upcoming commit to use constants instead of hard-coded values.
-
- Sep 04, 2022
-
-
Marc Durdin authored
-
Marc Durdin authored
Just wanted to rename this to make it clearer. Also added a prefix to each message generator to indicate the type of message, as otherwise it is not obvious within the compiler which messages are going to cause the compiler to fail. Note that the message generator function prefixes are Title Cased whereas the message identifier constant prefixes are CAPS. I guess this could be confusing but I think it works okay in practice.
-
Marc Durdin authored
If a loca entry is either formatted wrongly (e.g. wrong case), or is not minimal, then the compiler will now report a hint.
-
Marc Durdin authored
-
Marc Durdin authored
-
Marc Durdin authored
Just reorders all work around the various sections to match the binary format order -- that is, 'sect' first, then all other sections alphabetically. This also means the compiler now emits the sections in the expected order. No other changes to functionality.
-
Marc Durdin authored
Updates compiler, headers and documentation for the 'name' section, which will always be present as the LDML keyboard spec requires at least one name in the `<names>` element.
-
- Sep 03, 2022
-
-
Marc Durdin authored
Also uses `index()` to get count of strings automatically. Reformat basic.txt to make it more readable as it will get less 'basic' over time!
-
Marc Durdin authored
Adds an `index` command as suggested by #7186. > Future enhancement suggestion: include ... index() for block indices > within these repeated blocks. Would be very useful for string tables > in the example ref.
-
Marc Durdin authored
-
Marc Durdin authored
-
- Sep 02, 2022
-
-
Marc Durdin authored
Also adds semver package for validating the version field.
-
Marc Durdin authored
-
Marc Durdin authored
This makes it easier to write a binary file which contains offsets and size values. Using this for unit tests for the LDML keyboard compiler. Example kmldmlc basic.txt is updated and included. Future enhancement suggestion: include count() for repeated blocks and index() for block indices within these repeated blocks. Would be very useful for string tables in the example ref.
-
Marc Durdin authored
This is reasonably random, but wanted to add another test for content rather than structure, just to verify that the DTD-XSD-jsonschema translation is doing the right thing according to what we expect. Looking good.
-
- Sep 01, 2022
-
-
Marc Durdin authored
As we do not appear to have access to a good DTD validation library in Node.js, we will instead convert the DTD to a JSON schema file and use that for validation. I have not verified every aspect of the JSON schema at this point, but will incrementally do so as I implement further aspects of the compiler. This updates all the testing to use the schema. As the schema validation is slow, I have increased the 'normal' time for tests.
-
Marc Durdin authored
Also removes `-test` from normal `make build` for kmlmc, moving that responsibility to `make test` (but uses `-tdd` to avoid rebuild).
-
Marc Durdin authored
feat(developer): loca minimization + cleanup kmldmlc error list
🙀 -
Marc Durdin authored
feat(developer): add loca tests
🙀 -
Steven R. Loomis authored
chore(core): split out validators
🙀 -
Marc Durdin authored
feat(developer): add unit tests for meta compiler
🙀 -
Marc Durdin authored
-
Steven R. Loomis authored
- copy over asserts from 'old' code #7136
-
Steven R. Loomis authored
yes, a kmxplus file does not start with a 'sect' ! #7136
-
Steven R. Loomis authored
#7136
-
Marc Durdin authored
chore: merge master into feature-ldml
🙀
-
- Aug 31, 2022
-
-
Marc Durdin authored
-
Marc Durdin authored
Yeah two for the price of one: - minimize locales at compile time - cleans up the list of errors to make it easier to maintain and use
-
Marc Durdin authored
-
Marc Durdin authored
-
Marc Durdin authored
Note: bumps target to es2020 for better Intl.* support. Verified as supported by Node 16+ and modern browsers. Adds support for multiple locales and basic canonicalization. Does not support normalization of locales.
-
Marc Durdin authored
chore(developer): Merge branch 'chore/merge-master-into-feature-ldml' into feat/developer/kmldmlc-meta-tests-and-cleanup
-
Marc Durdin authored
Merge pull request #7153 from keymanapp/refactor/developer/kmldmlc-pure-functional-section-compilers refactor(developer): each section compiler is a pure function
🙀 -
Steven R. Loomis authored
feat(core): set -DDEBUG for debug
🙀 -
Keyman Server authored
auto: increment master version to 16.0.55
-