Commit graph

566 commits

Author SHA1 Message Date
Steven R. Loomis
43cd828e9d feat(core): change normalize_nfd() to use JS native call instead of ICU
- does not hit all ICU usage yet

#9467
2024-05-23 17:09:00 -05:00
Steven R. Loomis
d8b5c25954 chore(core): refactor to move most normalization calls into util_normalize.cpp
- fold ldml_utils.hpp into core_icu.h
- refactor to use km::core::util::normalize_nfd() functions where simple to do so

For #9467
2024-05-23 14:47:38 -05:00
Steven R. Loomis
e5ee26aaea fix(core): add a test to verify ICU and Unicode version
- load version data from node.js, Blocks.txt, and ICU4C
- support wasm: copy package.json, nodeversions.json and Blocks.txt into the keyboard area so that they can be mounted under wasm

also:
- rename 'fallback' macro to KMN_FALLBACK to not conflict with hedley in utfcodec.hpp
- fix ambiguous path type in tests

Fixes: #10183
2024-05-23 09:31:15 -05:00
Steven R. Loomis
d3c9fbbadc chore(core): update core to C++17 fixes
- remove some tangled templates in jsonpp
- remove one unneeded include of sstream, and rewrite another as a string conversion.

Fixes: #8800
2024-05-13 17:50:20 -05:00
Steven R. Loomis
02413c0251 chore(core): update core to C++17
- use utfcodec.hpp's convert<>() instead of codecvt

Fixes: #8800
2024-05-08 16:41:30 -05:00
Steven R. Loomis
6706ae0957 chore(core): km_core_cp -> km_core_cu
- km_core_cp represents a 16 bit code unit, not a code point.

Fixes: #11033
2024-05-02 17:39:15 -05:00
Steven R. Loomis
44f0dea3cd
Merge branch 'fix/core/10955-reset-on-frame' into fix/core/10955-double-marker-on-delete 2024-04-25 16:59:30 -05:00
Steven R. Loomis
fa1fd75157 fix(core): ldml fix for multiple marker deletion
- current code only deletes a single marker and falls through
- update the ldml test code, get rid of 'expected character' backspace logic (now that we have context object)
- update test cases
2024-04-25 16:59:20 -05:00
Steven R. Loomis
cd867ba801 fix(core): update vkey_should_invalidate_context per comment
Fixes #10955
2024-04-25 08:58:47 -05:00
Steven R. Loomis
ba8dcad949
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2024-04-24 08:22:41 -05:00
Steven R. Loomis
f77bbb2418 fix(core): update state_should_invalidate_context
- don't invalidate on keyup
- don't check context()->empty()
- clean up structure and comments

Fixes: #10955
2024-04-18 10:34:21 -05:00
Steven R. Loomis
dc965f4e1a fix(core): ldml backspace processing should delete all markers
- current code would only delete a single marker and fall through
- should loop consuming all markers until a non-marker char is hit
2024-04-18 08:57:19 -05:00
Steven R. Loomis
4f2ef499ea fix(core): update core to handle reset context
- clear the app context as well as the cached context

Fixes: #10955
2024-04-17 10:31:33 -05:00
Steven R. Loomis
37530acb14 fix(core): update core to handle reset context
- fix range check vk to use a static instead of c++17 function
2024-04-15 20:32:49 -05:00
Steven R. Loomis
4f8c9eb983 fix(core): update core to handle reset context
- range check vk
- split modifier test out to separate function
2024-04-15 10:49:41 -05:00
Steven R. Loomis
bd10290af3 fix(core): update core to handle reset context
- fixup comment
2024-04-11 23:34:20 -05:00
Steven R. Loomis
46239c6a96
Update core/src/state.hpp
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2024-04-11 22:27:02 -05:00
Steven R. Loomis
9ca4e99fb7 fix(core): update core to handle reset context
- mark event flags as unused for now

Fixes: #10955
2024-04-08 09:35:35 -05:00
Steven R. Loomis
51c93acb38 fix(core): update core to handle reset context
- it was the check for deletion that was unneeded

Fixes: #10955
2024-04-05 18:33:37 -05:00
Steven R. Loomis
11b07128b8 fix(core): update core to handle reset context
- reset for ctrl or alt modifiers, but NOT for key-up

Fixes: #10955
2024-04-05 18:23:39 -05:00
Steven R. Loomis
a455c5b95b fix(core): update core to handle reset context
- updates to debug_api test for rearranged items
- try to rearrange the action queue to match prior behavior

Fixes: #10955
2024-04-05 16:31:23 -05:00
Steven R. Loomis
55483e4ccc fix(core): update ldml test source to handle reset
- correct invalidate logic

Fixes: #10955
2024-04-05 14:42:52 -05:00
Steven R. Loomis
628d13d7a6 fix(core): core to automatically reset context if a frame key pressed
- update comments per review

Fixes: #10955
2024-04-05 12:05:57 -05:00
Steven R. Loomis
f1b0d8c837 fix(core): core to automatically reset context if a frame key pressed
- move the reset table into its own cpp
- update function signatures per review comments

Fixes: #10955
2024-04-05 11:58:47 -05:00
Steven R. Loomis
c91095f0ca fix(core): core to automatically reset context if a frame key pressed
- update ldml test with an exception for k_102_keytest
2024-04-04 17:12:26 -05:00
Steven R. Loomis
2c4d8e34e3 fix(core): skip leading trail surrogate char in km_core_state_context_set_if_needed() 2024-04-04 12:02:17 -05:00
Steven R. Loomis
5b1c853557 fix(common,core): support other lookup for modifiers
- the 'other' keyword was incorrectly called 'default'

Fixes: #11072
2024-04-01 23:21:33 -05:00
Steven R. Loomis
ae6f7b5d78 chore(core): support default lookup for modifiers
- fix spec

Fixes: #11072
2024-03-29 12:38:18 -05:00
Steven R. Loomis
bca037cbf3 chore(core): support default lookup for modifiers
- remove default flag from kmx_file.h

Fixes: #11072
2024-03-29 12:07:29 -05:00
Steven R. Loomis
89f5a0e090 fix(core): support default lookup for modifiers
Fixes: #11072
2024-03-28 13:12:01 -05:00
Steven R. Loomis
1691a59394
Merge branch 'feat/developer/11044-error-invalid-var' into feat/core/11072-default-modifier 2024-03-28 12:23:01 -05:00
Steven R. Loomis
313bbd32a7 feat(core): kmx+ scaffolding for modifiers=default
- add a new value, 0x10000 to indicate 'default'

For: #11072
2024-03-28 12:19:41 -05:00
Marc Durdin
5790f634cf
Merge pull request #11101 from keymanapp/fix/core/11067-fix-actions-normalize-utf32
fix(core): fix pointer math in actions_normalize() 🙀
2024-03-28 19:18:15 +11:00
Steven R. Loomis
92a4a2a0a2
Merge pull request #11094 from keymanapp/chore/core/11057-optimize-marker-context
chore(core): optimize ldml_event_state::emit_difference() when no diff 🙀
2024-03-28 00:13:45 -05:00
Steven R. Loomis
7106b662b7
Merge pull request #11100 from keymanapp/fix/core/11067-fix-actions-normalize-output-string
fix(core): actions_normalize() length and dead store fix 🙀
2024-03-28 00:13:21 -05:00
Steven R. Loomis
adc421974c chore(core): fix actions_normalize() pointer math - tests
- fix comments yet again
- add regression test in test_actions_normalize.cpp

For: #11067
2024-03-27 23:55:01 -05:00
Steven R. Loomis
d894db78f6 fix(core): add an assert on code_points_to_delete 2024-03-27 23:25:43 -05:00
Steven R. Loomis
ca34b5f00f fix(core): fix actions_normalize() UChar32 calculation
- UnicodeString is UTF-16, but can be used with UTF-32 boundaries.
- fix calculation of code_points_to_delete

Fixes: #11067
2024-03-27 19:37:08 -05:00
Steven R. Loomis
3f42b0b831 fix(core): fix actions_normalize() use of UnicodeString
- output[0] was used as a boolean, but needed to check output.isEmpty() instead
- dead store to  actions.code_points_to_delete

For: #11067 parts 1 and 2
2024-03-27 19:13:01 -05:00
Steven R. Loomis
8b5723028c chore(core): optimize ldml_event_state::emit_difference() when no difference
#11057
2024-03-27 08:18:03 -05:00
Steven R. Loomis
e8a8590eee fix(core): revert some interim fixes
- ldml_test_source fix moved off to issue #11083
- an optimization in ldml_processor also rolled back
2024-03-27 08:05:39 -05:00
Steven R. Loomis
18c6ecfc08 fix(core): fix 2 marker cases in ldml_event_state::emit_difference 🙀
- handle the case where old and new context strings are the same (i.e. no work to do).
- fix pointer arithmetic error in #10356 - the special case where one marker is being replaced by another. The named regression test didn't actually hit this case.

Fixes: bug(core): 'string too long' #11057
2024-03-25 16:45:01 -05:00
Steven R. Loomis
17a653fa19 chore(core): ldml update out of techpreview 🙀
- updates to support techpreview -> 45
- test changes

Fixes: #10900
2024-03-02 22:40:39 -06:00
Steven R. Loomis
2ee402c2b8
Update core/src/ldml/ldml_transforms.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2024-02-19 12:37:26 -06:00
Steven R. Loomis
6b229ffa14 fix(core): fix output append logic in any_group::apply_transform
- logic updating intermediate 'output' was incorrect
- update comments
- also replace size() with length() several places

Fixes #10736
2024-02-17 23:50:55 -06:00
Steven R. Loomis
ceb990e713 chore(core): more shuffling
For #10736
2024-02-16 18:27:35 -06:00
Steven R. Loomis
746af68afa chore(core): shuffle transform matcher. re-enable failing case
For #10736
2024-02-16 12:49:19 -06:00
Steven R. Loomis
e7b31113a3 chore(core): remove obsolete TODOs. Temporary change to test.
- TODO: 10734 There's a bug in the matching still. Come back and fix this, but the crasher is fixed.

For #10734
2024-02-15 16:21:53 -06:00
Steven R. Loomis
5edb70f07a fix(core): fix for ldml_transforms.cpp
For #10734
2024-02-15 15:26:30 -06:00
Marc Durdin
64daa6182b
Merge pull request #10618 from keymanapp/fix/core/10615-10616-10617-core-surrogates-and-app-context-markers-and-memory-leak
fix(core): surrogate handling, markers in app context, and memory leak
2024-02-07 14:43:12 +11:00