Commit graph

147 commits

Author SHA1 Message Date
Marc Durdin
900f248558 chore(common): cleanup meson deprecations and warnings
Most warnings have been cleaned up:

* min meson version is now 1.0
* additional parameters such as check, recursive added
* uses now global_source_root() instead of source_root()
* catting files on Windows wasn't actually working -- used in unit
  tests. This is because meson passes paths with forward slashes to
  cmd.exe `type` command, which doesn't understand them. This is bad,
  because we were running effectively null tests for the affected tests.
  Fortunately, the same tests were configured correctly on macOS and
  Linux, and were all passing, so no serious damage.

There is one significant warning left:

`WARNING: Project targets '>=1.0' but uses feature deprecated since
'0.64.0': copy arg in configure_file. Use fs.copyfile instead`

Refer to mesonbuild/meson#12792. I have opened a PR against that to
undeprecate `copy` kwarg in a future version of meson.

Fixes: #8399
2024-05-24 08:46:52 +07:00
Marc Durdin
93d4e60e63
Merge pull request #11254 from keymanapp/fix/core/10955-double-marker-on-delete
fix(core): ldml backspace processing should delete all markers 🙀
2024-04-26 18:36:08 +10:00
Marc Durdin
a5765d0cc9
Merge pull request #11172 from keymanapp/fix/core/10955-reset-on-frame
fix(core): reset on frame keys 🙀
2024-04-26 18:35:46 +10: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
ebc914cfa0 chore(core): data update from CLDR v45
- fix the name of the test azerty keyboard
2024-04-19 17:34:27 -05:00
Steven R. Loomis
7fb97efa43 fix(developer): escape plus and asterisk sign
- additional tests for asterisk and plus

Fixes: #11233
2024-04-19 16:37:16 -05:00
Steven R. Loomis
f5f406b74a fix(developer): escape plus sign
- asterisk also

Fixes: #11233
2024-04-19 15:16:46 -05:00
Steven R. Loomis
5d7361a051 fix(developer): escape plus sign
- improve test case in core

Fixes: #11233
2024-04-19 15:05:58 -05:00
Steven R. Loomis
f0ff05a9a9 fix(developer): escape plus sign
Fixes: #11233
2024-04-19 13:58:31 -05:00
Steven R. Loomis
784a994f12 fix(core): update ldml test source to handle reset
Fixes: #10955
2024-04-05 13:22:47 -05:00
Steven R. Loomis
c86ab582a7 chore(core): reinstate context reset test in ldml
- reverts 04a6e164d7 for k_102_keytest.xml
2024-04-04 12:14:54 -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
89f5a0e090 fix(core): support default lookup for modifiers
Fixes: #11072
2024-03-28 13:12:01 -05:00
Steven R. Loomis
1ac5bdfaa1
Merge pull request #11071 from keymanapp/fix/core/11057-string-too-long
fix(core): calculate offset correctly when replacing marker in transform (fixes crash)🙀
2024-03-28 00:12:18 -05:00
Steven R. Loomis
5f836d72f0
Merge pull request #11059 from keymanapp/fix/core/11045-assert-marker
fix(core,developer): variable/marker substitution in sets and strings🙀
2024-03-28 00:11:28 -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
f2ad7d4e68 fix(common): further improvement to string/set substitution
- tran: check for \uXXXX earlier in the chain, because we emit this format further down
- add test cases for syntax chars being used in variables

Fixes: bug(core): assert when matching markers #11045
Fixes: bug(developer): escape on string substitution if syntax char #11037
2024-03-25 14:52:32 -05:00
Steven R. Loomis
bc5a639cff
chore(core): fix for ldml test DTD reference🙀
Typo from earlier fix #10900
2024-03-25 12:02:49 -05:00
Steven R. Loomis
67838e60a2 fix(developer,core): fix for marker substitution in sets
- for bug(core): assert when matching markers #11045
- track raw and marker-substituted sets
2024-03-25 12:00:55 -05:00
Steven R. Loomis
28bdbbcfd7 bug(core): repro for assertion
- test case with a set of markers
2024-03-25 11:51:26 -05:00
Steven R. Loomis
6d2ae221af chore(core,developer,resources): ldml update out of techpreview 🙀
- further fixes
2024-03-04 08:21:45 -06: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
209717a24a chore(core,developer): rename unicodeSet to uset in xml
chore(developer): rename unicodeSet to uset 🙀  #10657
2024-02-27 18:11:18 -06:00
Steven R. Loomis
b1d74ce809 chore(core): describe what is being tested in each stage
Fixes: #10505
2024-02-22 16:19:21 -06:00
Steven R. Loomis
993f5252e9 chore(core): describe what is being tested in each stage
Fixes: #10505
2024-02-22 13:15:46 -06:00
Steven R. Loomis
9ef198ff19 chore(core): update sample ldml keyboard
Fixes: #10505
2024-02-20 12:47:25 -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
503f196e42 chore(core): update test case with TODO for known issue
For #10734
2024-02-15 16:27:26 -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
e099ffa3a1 chore(core): update ldml_test
- includes crasher from #10734

For #10505
2024-02-15 15:26:09 -06:00
Steven R. Loomis
5f01fca679 chore(core): create sample LDML keyboard that exercises effectively all functionality
- test keyboard was wrong

For #10505
2024-02-15 14:26:44 -06:00
Steven R. Loomis
e415f411e4 chore(core): create sample LDML keyboard that exercises effectively all functionality
- add some more functionality

For #10505
2024-02-15 14:26:44 -06:00
Steven R. Loomis
701291a7f7 chore(core): create sample LDML keyboard that exercises effectively all functionality
For #10505
2024-02-15 14:26:44 -06:00
Steven R. Loomis
3a538c103f feat(developer): support normalization=disabled 🙀
- test and code fixes

#10554
2024-02-01 18:40:02 -06:00
Steven R. Loomis
7572c9476e feat(developer): support normalization=disabled 🙀
- main core changes and test changes

#10554
2024-02-01 17:32:42 -06:00
Steven R. Loomis
9120bb4c87 feat(core,developer): normalization=disabled 🙀
- failing tests and initial work

#10554
2024-01-31 22:38:06 -06:00
Steven R. Loomis
b429dc3383 feat(core): markers and reorder 🙀
- reorders don't interact with markers, but must transit them
- add updated tests
- simplify reorder_group::apply(): the 'common prefix' discussion
was out-of-date as std::mismatch is handled by the ldml_processor
and the core context.
- add_back_markers() promoted to SPI so it can be called from reordering.

Fixes: #10516
2024-01-31 17:44:21 -06:00
Marc Durdin
f546c44048
Merge pull request #10390 from keymanapp/epic/core/9999-normalization
epic: Keyman Core normalization 🌱
2024-01-31 10:45:51 +11:00
Steven R. Loomis
4108ecd298 feat(core): ldml marker normalization fix 🙀
- decomp the 'glued' char before storing in map

For: #10516
2024-01-25 17:45:59 -06:00
Steven R. Loomis
04a6e164d7 feat(core): ldml actions: updates per code review 🌱
- fix backspace processing
- fix k_102 - we can no longer test for context invalidation here
- fix a test that assumed non-const km_core_actions.output

For: #10410
2024-01-19 11:24:41 -06:00
Steven R. Loomis
eb39bba374 chore(developer,core): change sample and test files to use \u{…} 🙀
- #10389 will require this, but at least change the test files

#10319
2024-01-15 17:27:41 -06:00
Steven R. Loomis
b2b897970d feat(core): stacked markers 🙀
- renamed the single-segment functions to normalize_nfd_markers_segment() since they should only be run on a single segment
- commented out NFC for now, dead code
- add some additional checks/DebugLog around normalization

#10320
2024-01-06 11:33:51 -06:00
Steven R. Loomis
763f7abeb0 chore(core): failing test with markers 🙀
- marker overrun! the 40th marker becomes a parenthesis, breaking regex

feat(core): ldml proper regex implementation 🙀🙀 #9121
2023-12-28 18:57:33 -06:00
Steven R. Loomis
ae96008c11 feat(core): ldml more regex tests 🙀
- match in a set
- quantifiers

For: #9121
2023-12-28 17:38:21 -06:00
Steven R. Loomis
53201263d9 fix(core): use marker-safe normalization in between transform stages 🙀
- the intermediate stages of transforms also need to use marker-safe normalization
- re-enable a test that was failing previously due to this

For: #9468
2023-12-22 17:51:18 -06:00
Steven R. Loomis
9d1599d557 chore(core): add some more marker tests 🙀
- one disabled for now

For #9468
2023-12-21 11:36:35 -06:00
Steven R. Loomis
12aa9a5b69 chore(core): add some more marker tests 🙀
For #9468
2023-12-20 19:23:29 -06:00
Steven R. Loomis
0b3e7a94e8 chore(core): uncomment some more tests 🙀
For #9468
2023-12-20 18:50:21 -06:00
Steven R. Loomis
1e32a2a963 feat(core): ldml improve key-not-found 🙀
- copy exception table for reset from VKScanCodes.cpp
- update test

For: #9451
2023-12-07 17:15:44 -06:00