Commit graph

390 commits

Author SHA1 Message Date
Marc Durdin
caeccfb64f chore(core): include patH 2023-02-24 05:17:16 +07:00
Marc Durdin
69fde22303 chore(core): make kmx_test_source available as a library
Linux builds require kmx_test_source.cpp in order to run tests. So make
this available even when other tests are disabled.
2023-02-23 15:50:58 +07:00
Marc Durdin
b968bcfdfd
Merge branch 'feature-ldml' into chore/core/cleanup-meson-build 2023-02-23 08:49:56 +11:00
Marc Durdin
19101c6a2a chore(core): cleanup meson build
This updates our meson min version on Windows to 1.0, which means that
we can avoid having Visual Studio on the path, as meson can find it
anyway. With this change, we can eliminate the batch-wrapper for the
build, significantly improving build performance and simplifying the
scripts.

This also adds a change to disable tests for dependency builds of core,
along with the `--no-tests` command line option for doing builds without
tests.

Minor cleanup includes eliminating various warnings from meson.build
files, and standardizing WASM cross-platform build options for Windows.
2023-02-21 12:12:28 +07:00
Steven R. Loomis
e1e5eea469 feat(core): ldml rename key2 to keys 🙀
- So in summary, since before #7532 basically keys was restructured, and the old 'keys' was moved into 'keys.kmap'.

#8069
2023-02-20 17:40:34 -06:00
Steven R. Loomis
d46f2c3f9b
Update core/tests/unit/ldml/ldml_test_source.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:35:17 -06:00
Steven R. Loomis
ce0a488fe0
Update core/tests/unit/ldml/ldml_test_source.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:35:11 -06:00
Steven R. Loomis
fceebaed76
Update core/tests/unit/ldml/ldml.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-18 09:34:53 -06:00
Steven R. Loomis
4433d85a82 feat(core): ldml json test executor 🙀
- add a somewhat-modified fr azerty as a test case
- fr azerty tests pass, with some TODOs

#7535
2023-02-16 13:59:44 -06:00
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
c40c19db3f feat(core): refactor ldml test 🙀
- rearrange classes so we can get to dynamic subtests
2023-02-16 12:32:57 -06:00
Steven R. Loomis
8ea87aa828 feat(common): ldml: merge keys into key2 🙀 2023-02-16 12:29:19 -06:00
Steven R. Loomis
c191f0a0b5 feat(core): auto generate test json 🙀
- example testdata for k_001_tiny
- meson to generate test json to ./build/arch/release/tests/unit/ldml/keyboards/k_001_tiny-test.json

#7535
2023-02-15 17:58:52 -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
41f77a874c feat(common): ldml different hardware support 🙀
- add HardwareToKeymap in common/web/types
- add a mt-iso keyboard, very close to stock mt.xml
- add machinery for parsing modifier key sequences
- more test machinery
- add assertions against invalid modifier sequences

Fixes: #7965
2023-02-03 19:00:57 -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
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
3eb7f05df6 feat(developer): ldml implied keys work 🙀
- update test cases per review

- review comment
2023-01-27 12:42:18 -06:00
Steven R. Loomis
0b497be277 chore(core): update tests per merge conflicts 2023-01-27 12:41:47 -06:00
Steven R. Loomis
727056cb87 feat(developer): ldml support implied keys 🙀
- automatically add the import

Fixes: #7964

Apply suggestions from code review

Co-authored-by: Marc Durdin <marc@durdin.net>
2023-01-27 12:41:39 -06:00
Steven R. Loomis
6fd2e418bc feat(common): ldml implement imports 🙀
add tests:
- k_100, k_101, k_102 all failed for different reasons.
- rename test cases from 'fail' to 'keytest' since they don't fail anymore

For: #7401

- update k101_fail.xml / k102_fail.xml to use an implied import
- update build.sh to bring over the imports from CLDR

For #7534
2023-01-27 12:40:22 -06:00
Steven R. Loomis
631cd5007e chore(developer): disable mt 🙀
- disable mt for now, as it will depend on imports

For: #7965
2023-01-26 13:49:49 -06:00
Steven R. Loomis
a1cfd7253d fix(common): update USVirtualKeyMap to actually be US🙀
comon/web/types:
- the USVirtualKeyMap was actually somewhat ISO-ish. Correct it.
- also, add the spacebar row.
- create a new ISOVirtualKeyMap, but not linked in anywhere.

core/tests:
- add a new test keyboard, k_010_mt.xml which is Maltese 47-key
- update k_003 which was impacted by this

For: #7965
2023-01-26 13:49:49 -06:00
Steven R. Loomis
666d71f342 chore(core): ldml: update unit tests 🙀
- add hardware="us"

For: #7986
2023-01-19 21:36:04 -06:00
Steven R. Loomis
e4799d2498
Merge pull request #7956 from keymanapp/fix/core/maqtugha
fix(core): ldml: fix spelling of maqtugħa 🙀
2023-01-07 22:54:48 -06:00
Steven R. Loomis
f7f40a2bb8 fix(core): ldml: fix spelling of maqtugħa 🙀
- maqtua should be maqtugħa (cut) but spelled as maqtugha where used as an NMTOKEN
2022-12-30 17:01:48 -06:00
Steven R. Loomis
b850e3f7d8 chore(core): ldml: fix merge 🙀
- correct merge issue with km_kbp_process_event()

For feat(developer): ldml: include all LDML data in kmx+ 🙀 #7042
2022-12-16 14:07:08 -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
Marc Durdin
42a9f2ca72 fix(core): emit keystroke was writing to wrong queue
Fixes #7649.

emit_keystroke code path in kmx processor was writing directly to the
core queue instead of to the internal kmx processor queue. This caused
it to be out-of-order in the actions sent to the engine/debugger.

Engines didn't really care but it broke the debugger, for example if
only a deadkey was in the buffer and backspace was pressed, Developer
would assert as it would get unexpected context for the deletions.
2022-11-08 16:31:30 +11:00
Marc Durdin
a8c3854431 fix(core): save() should be on internal kmx action queue
Fixes #7643.

The kmn statement `save()` action was being written directly to the
state queue, bypassing the internal kmx action queue. This caused two
issues:

1. save() actions were out-of-order with other actions on the same key
   event.
2. The number of items in the internal action queue became out of sync
   with the debug item queue, which would cause the debugger to fail
   with an assertion.

The new test in debug_api.cpp validates this second issue as the number
of items in the action queue now matches the expected count in the
corresponding debug item.
2022-11-07 10:28:58 +11:00
Steven R. Loomis
85da473a85 chore(developer): update DTD location 🙀
- dtd is in a subdirectory to match CLDR layout
2022-10-18 12:52:27 -05:00
Steven R. Loomis
66a5cdb1f9 chore(developer): ldml: update tools and data for keyboard-preview 🙀
- update tooling in common and kmc
- update spec
- update test files
2022-10-18 11:32:41 -05:00
Steven R. Loomis
fc554c4901 fix(core): xstring/utf32 review feedback
For: #7418

Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2022-10-13 17:05:39 -05:00
Steven R. Loomis
5a6389deb8 feat(core): ldml: basic transforms, again 🙀
- new test file for transforms
- new class, ldml_transforms

for #7234
2022-10-12 19:29:37 -05:00
Steven R. Loomis
8a6b4a7fd4 feat(core): ldml: Use new UTF-16 to UTF-32 function 🙀
- also a test case with a 🙀 key on the tiny keyboard

For #7418
2022-10-12 19:26:42 -05:00
Steven R. Loomis
20032d02b7 feat(core): kmx_xstring: New UTF-16 to UTF-32 function 🙀
- plus test

For #7418
2022-10-12 19:23:58 -05:00
Steven R. Loomis
35799e2306 feat(core): kmx_plus: add accessors for elem 🙀
- other refactor and cleanup in kmx_plus

for #7234
2022-10-11 15:43:44 -05:00
Marc Durdin
003f23d7b4 feat(developer): fixup and prepare build scripts and docs for kmc 2022-09-19 06:36:06 +10:00
Marc Durdin
3e6d9356c3
Merge pull request #7255 from keymanapp/chore/7222-optional-checksum
chore: make checksum optional 🙀
2022-09-13 06:30:04 +10:00
Marc Durdin
31a34f73d7 chore(core): add unit test for zero checksum 2022-09-12 05:46:13 +10:00
Marc Durdin
561899a2a0 refactor(developer): rename kmldmlc to kmc
Fixes #7237.

Full clean, configure and build will be required for Core, Developer
after this change.

kmc is much less unwieldy a name than kmldmlc, and becomes our platform
for future compiler integration. Start of implementation for #5283 also.
2022-09-09 09:13:39 +10:00
Steven R. Loomis
90131728e8 chore(core): improve xstring macros 🙀
- move Utf32CharToUtf16 to inline
- remove Is_SMP and call sites, use Utf32CharToUtf16 instead.

For: #7134
2022-09-08 12:29:04 -05:00
Steven R. Loomis
029a2737bf fix(core): ldml: improve utf-32 handling++ 🙀
- review comments
- kmx_xstring: add and document macros, add Utf32CharToUtf16
- unit tests for kmx_xstring macros

Fixes: #7134
2022-09-08 11:45:23 -05:00
Steven R. Loomis
7a71ed84cc fix(core): ldml: improve utf-32 handling 🙀
- remove hacky utf-32 processing
- add utf-32 test case to test_kmx_plus.cpp
- change kmx_plus to return std::u16string
- kmx_xstring: add Uni_IsBMP() macro

Fixes: #7134
2022-09-07 18:08:26 -05:00
Marc Durdin
d141274aed chore(core): update hextobin files with new format 2022-09-02 14:06:26 +10:00
Marc Durdin
655c872dc8 chore: Merge branch 'master' into chore/merge-master-feature-ldml 2022-08-30 06:31:04 +10:00
Marc Durdin
895ce930a0
Merge pull request #6993 from keymanapp/chore/core/rename-json-source
chore(core): rename json.hpp to jsonpp.hpp 🛩
2022-08-29 14:48:32 -05:00