Commit graph

182 commits

Author SHA1 Message Date
Steven R. Loomis
4689c04533 feat(core): ldml json test executor 🙀
- can now use the new key2.kmap table to lookup keys. Basic test passes

#7535
2023-02-16 13:04:33 -06:00
Steven R. Loomis
47b222e8a8 feat(core): ldml json test executor 🙀
- intermediate, does not process context or actions yet
- embedded (non-json) tests pass
- utf-8 parsing
- bring in kmx+ into ldml_test_source for parsing, but key2 is not ready eyt
- temporary scaffolding mapping key ids to vkeys
- build fixes
- getting closer.
2023-02-16 12:33:32 -06:00
Steven R. Loomis
8ea87aa828 feat(common): ldml: merge keys into key2 🙀 2023-02-16 12:29:19 -06:00
Steven R. Loomis
bf15661fd0 spec(core): ldml: merge keys into key2 🙀
- rename keys to key2.kmap (vkey+mod -> key)
- drop key2.keys.vkey

#7042
2023-02-16 12:02:08 -06:00
Steven R. Loomis
cace5cf596 feat(core): ldml C++ helper for list / key2 🙀
For: #7985
2023-02-15 19:00:54 -06:00
Steven R. Loomis
4a2bb6b3da Review comments 2023-02-15 09:49:54 -06:00
Steven R. Loomis
e5620e83f1 feat(core): ldml C++ validate list / key2 🙀
- need helper objs still

For: #7985
2023-02-14 09:23:51 -06:00
Steven R. Loomis
aa0da57b70 fix(core): fix double precision err 2023-02-14 09:23:03 -06:00
Steven R. Loomis
ac2366f460 feat(core): ldml C++ updates to modifiers 🙀
- spec: change caps value to 0x100 #7533
- add a 'mod_all'  for validating valid modifier keys, plus tests
- add asserts on C++ side mapping modifiers to keyman constants
- use 'mod_all' to validate modifiers
- further fix modifier -> mod in binary

For: #7985 and related to #7533
2023-02-14 09:23:03 -06:00
Steven R. Loomis
7983fd9609 fix(developer): ldml spec: layr…mod needs to be a bitfield 🙀
- layr.layers.layer.mod needs to be a bit field just as keys.key.mod

Related to #7533
2023-02-14 09:23:03 -06:00
Steven R. Loomis
7c02ab85af feat(core): ldml C++ feature support 🙀
- make ldml.cpp print FAILED on failure especially because of https://github.com/microsoft/vscode-cpptools/issues/487
- add vkey validation (#7135)
- add disp validation
- fix: a latent bug in disp! disp.count was === vkey.count, oops. Fix and test cases.

For: #7985
2023-02-14 09:23:03 -06:00
Steven R. Loomis
db272e08e7 Merge remote-tracking branch 'upstream/master' into chore/merge-master-20230210-epic-ldml 2023-02-10 11:01:27 -06:00
Steven R. Loomis
5e445b32a1 feat(developer): ldml: modifier key updates 🙀
- per review comments
- drop opt, cmd, and shiftL/shiftR

For: #7533
2023-02-06 15:47:18 -06:00
Steven R. Loomis
af10312f84 feat(common): ldml modifier support 🙀
- spec: update spec for layr.mod field
- core/include/ldm: update constants
- bitfield modelled after s_modifier_names[]  / LCTRLFLAG etc.
- new test case k_004_tinyshift, also update k_010_mt
- update const builder to ignore all *_map properties
- split utility out to utils, add test

For: #7533
(cherry picked from commit 0346bea488)
2023-02-03 18:54:22 -06:00
Eberhard Beilharz
1c602b8e6b
chore(linux): Build static library only on Linux
The static library is currently only needed for the ibus-keyman
tests, so we only build it on Linux. It can't build with
emscripten, and on Windows it'd need some additional work.
2023-02-01 08:38:33 +01:00
Eberhard Beilharz
d39ba178fa chore(linux): Fix wasm build
emscripten doesn't support static libraries, so we explicitly
build a static library unless we're building for wasm.
2023-01-31 20:59:28 +01:00
Eberhard Beilharz
c176ebc6af
chore(linux): Address code review comments 2023-01-31 17:38:29 +01:00
Eberhard Beilharz
eb076c08c8
chore(linux): Build with meson instead of autotools
This change introduces meson for building ibus-keyman instead of
autotools.

Closes #5981.
2023-01-30 16:32:38 +01:00
Steven R. Loomis
1d7e0d1922
Merge pull request #8030 from keymanapp/spec/core/7986-hardware-enum-epic-ldml
spec(core): ldml: make hardware be an enum 🙀
2023-01-26 14:05:26 -06:00
Steven R. Loomis
d7ce2191bf feat(core): ldml: make hardware be an enum 🙀
For: #7986
2023-01-19 12:24:47 -06:00
Steven R. Loomis
5cf1a1fad3 spec(core): ldml: make hardware be an enum 🙀
- drop layers.flags as unneeded
- defer to UTS35 for hardware definitions

For: #7986
2023-01-18 18:20:08 -06:00
Steven R. Loomis
8a579a1650
Merge pull request #7992 from keymanapp/feat/core/7984-cxx-assert-on-invalid-epic-ldml
fix(core): ldml: add asserts to C++ 🙀
2023-01-18 08:58:34 -06:00
Steven R. Loomis
e58669008a feat(core): ldml: Drop all padding: common,core 🙀
- not even 32 bit padding

For: #7987
2023-01-16 19:22:34 -06:00
Steven R. Loomis
c0541c40c7 spec(core): ldml: make hardware be an enum 🙀
For: #7986
2023-01-16 19:07:05 -06:00
sgschantz
22f8ca1466 replace sprintf with snprintf 2023-01-16 13:51:23 +07:00
Steven R. Loomis
cbb5af2ae7 feat(core): ldml: Drop padding: common,core 🙀
- also add some checking in the builder
- add a Constants.str_section_id() for debugging
- update basic.txt

For: #7987
2023-01-09 16:35:47 -06:00
Steven R. Loomis
fbbed6d970 spec(core): ldml: Drop padding 🙀
- only guarantee is 32 bit alignment
- also note a cross ref TODO for #7533

For: #7987
2023-01-09 15:08:11 -06:00
Steven R. Loomis
57d4dfea75
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-01-07 22:46:41 -06:00
Steven R. Loomis
d552a46104
Merge pull request #7630 from keymanapp/feat/core/7532-layr-epic-ldml 2023-01-06 17:40:06 -06:00
Steven R. Loomis
2f44780e87 fix(core): ldml: add asserts to C++ 🙀
- found a logic bug in kmx_plus.cpp

Fixes #7984
2023-01-06 16:54:24 -06:00
Steven R. Loomis
564f98cc30
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-01-06 11:46:17 -06:00
Steven R. Loomis
efef796d75 feat(core): ldml: fix C++ layr helper 🙀
- reenable layr/key2/list in c++
- minor update to layr helper, missed ptr assignment

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-12-22 13:43:53 -06:00
Steven R. Loomis
05656ac499 feat(core): ldml: fix off-by-one on section count 🙀
- yes, sect was counting itself. Too much automation!
- disable layr/key2/list loading in C++ for now

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-12-22 13:12:08 -06:00
Steven R. Loomis
513f4581da feat(core): ldml: updates to C++ 🙀
- fix c++ to match spec

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-12-20 21:37:41 -06:00
Steven R. Loomis
343f234a8e feat(core): ldml: updates to basic.txt and builders 🙀
- strs and ALL TESTS pass

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-12-20 19:16:41 -06:00
Steven R. Loomis
bc14f18460 Merge remote-tracking branch 'origin/master' into chore/core/mergemaster4-epic-ldml 2022-12-15 17:55:13 -06:00
Steven R. Loomis
2d7aa026af feat(core): ldml: updating guide updates 🙀
- update notes on updating fixtures

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-29 18:05:04 -06:00
Steven R. Loomis
e5ec3cbb6a feat(core): ldml: spec updates 🙀
layr.keys is now a list of string ids

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-25 18:01:41 -06:00
Steven R. Loomis
273075c1f3 feat(core): ldml: updates to layr compiler 🙀
- layr compiler working

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-25 15:55:11 -06:00
Steven R. Loomis
8b77d1f764 feat(core): ldml: make sect builder an object 🙀
- remove one hardcoded list

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-23 15:25:51 -06:00
Steven R. Loomis
e0dcb30b51 spec(core): ldml: more document KMXPlus update process 🙀
- add some comments to kmx-plus.ts

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-22 19:11:53 -06:00
Steven R. Loomis
2d05c8f379 spec(core): ldml: document KMXPlus update process 🙀
For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-22 18:45:33 -06:00
Steven R. Loomis
3496939073 feat(core): ldml: steps for list/key2 🙀
- update kmx-plus.ts for key2 and list sections
- add tests for key2
- TODO: binary write, basic fixture, layr

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532
2022-11-22 18:39:25 -06:00
Steven R. Loomis
bccb64c911 feat(core): ldml: kmx-plus.ts for layr/key2/list 🙀
- update kmx-plus for layr/key2/list

For #7532
2022-11-17 15:37:25 -06:00
Steven R. Loomis
208a6e40a0 feat(core): ldml: C++ builds 🙀
For #7532
2022-11-17 14:17:55 -06:00
Steven R. Loomis
06308a26da feat(core): ldml: spec: correct length of list 🙀
For #7532
2022-11-17 14:17:07 -06:00
Steven R. Loomis
b639d80a01 feat(core): ldml: spec: correct padding key2 🙀
- also document key2.flicks.flags

For #7532
2022-11-16 19:05:14 -06:00
Steven R. Loomis
0e6aa6566f feat(core): ldml: First steps for layr 🙀
For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7532

- dummy Layr class for compilation
- fleshed out Layr class
- CPP validation side
2022-11-16 19:04:55 -06:00
Eberhard Beilharz
108e849459
fix(linux): Fix lintian warnings 2022-11-16 18:45:34 +01:00
Ross
2fcc0feed0 chore(windows): rearrange mock_options_update add commment 2022-11-15 11:03:41 +10:00