Commit graph

4564 commits

Author SHA1 Message Date
Marc Durdin
26e99047b6
Merge pull request #11110 from keymanapp/fix/common/11084-isemptytransform-nullish-is-empty
fix(common): make `isEmptyTransform` return true if passed a nullish transform
2024-03-29 15:23:22 +11:00
Marc Durdin
4e403e9374
Merge pull request #11032 from keymanapp/fix/web/7866-layer-switch-key-deletes-selection
fix(web): prevent layer switch key from erasing selection
2024-03-29 15:22:58 +11: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
d9c97c0b78
Merge pull request #11065 from keymanapp/fix/common/unicodeset-errcheck
fix(common): properly handle illegal UnicodeSets to prevent crash in kmc-ldml compiler 🙀
2024-03-28 00:04:39 -05:00
Marc Durdin
1bc5db3527 fix(common): make isEmptyTransform return true if passed a nullish transform
Fixes #11084.
2024-03-28 10:45:08 +07:00
Steven R. Loomis
baeb3c80fc fix(developer): fix an additional issue on illegal UnicodeSets
- update comments per review comments
- improve logic of checks around malloc
2024-03-26 17:24:56 -05:00
Darcy Wong
25de69ff17
Merge pull request #11035 from keymanapp/chore/osk-font-4-1
chore(common): Update keymanweb-osk.ttf to 4.1
2024-03-26 14:09:43 +07: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
f773066fa0 fix(developer): store set variables in literal form, unescape in tran
- update the tran compiler to call escapeStringForRegex() on set items being substituted into an expression
2024-03-25 12:46:55 -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
18ba46d874 fix(common): fix an additional issue on illegal UnicodeSets
- similar fix to https://github.com/keymanapp/keyman/pull/9492
- again may be due to a wasm version variant
- also additional rangechecking on the input side
2024-03-25 10:26:33 -05:00
Marc Durdin
5825c011de
Merge pull request #11009 from keymanapp/fix/developer/11002-kps-editor-should-not-emit-empty-fields
fix(developer): suppress emission of new empty fields in package editor
2024-03-22 09:17:53 +11:00
Darcy Wong
48bbd85858 chore(common): Update keymanweb-osk.ttf to 4.1 2024-03-21 20:06:11 +07:00
Marc Durdin
ea8366455c chore(web): update test fixture 2024-03-21 14:03:40 +07:00
Marc Durdin
8fbb0c3281 chore(web): update tests 2024-03-21 10:38:43 +07:00
Marc Durdin
a54053bec6 fix(web): prevent layer switch key from erasing selection
Fixes #7866.

When the transform generated by a key event results in no changes to the
text, this will no longer trigger a change event in the apps. This means
that layer switch keys will no longer erase the selection.

Fix proposed by @jahorton.
2024-03-21 10:08:23 +07:00
Marc Durdin
374955d838 fix(developer): suppress emission of new empty fields in package editor
Fixes #11002.

The fields `<RelatedPackages/>` and `<Examples/>` should not be emitted
if they have no content, to improve file backward-compatibility.
2024-03-15 18:41:56 -05:00
Marc Durdin
812e914e87 fix(developer): min Keyman version for LDML is 17.0
Fixes #10959.
2024-03-11 15:15:47 -05:00
Marc Durdin
ffe43d29ef
Merge branch 'beta' into fix/developer/10942-normalize-paths-in-kmc-package 2024-03-07 18:13:43 +07:00
Marc Durdin
7d03010479 fix(developer): normalize all input paths in .kps compiler
Fixes #10942.
2024-03-05 17:34:06 -06:00
Steven R. Loomis
8975a38109 chore(common): ldml update out of techpreview 🙀
- updates to support techpreview -> 45

Fixes: #10900
2024-03-02 22:40:38 -06:00
Marc Durdin
abd5a86196
Merge branch 'beta' into refactor/developer/10207-message-detail 2024-03-01 07:54:31 +07:00
Marc Durdin
d4f73ac499
Merge pull request #10819 from keymanapp/chore/common/9843-keyman-touch-layout-schema-restrictive-layer-id
chore(common): loosen .keyman-touch-layout schema layer id requirements
2024-03-01 07:52:13 +07:00
Marc Durdin
4bb9b39ba2 refactor(developer): reorganize messages for adding details
Moved the ERROR_Message line above the Error_Message line for every
message in the compiler message files, as it makes the grouping clearer
once we start adding message details. For example, see the start of the
KmnCompilerMessages class.

Also wraps potentially-undefined parameters to the messages with a new
function `def`, shorthand for `CompilerMessageDef`, which converts the
parameter to '<param>' if it is undefined, which is helpful for
documentation.
2024-02-28 16:00:02 +07:00
Marc Durdin
c7afed7201 refactor(developer): split messages with callstacks into separate generator
Relates to #10207.

In order to include message detail in messages, it is helpful to split
out the exception messages which have a separate parameter, so that
parameter at the same position can be the message detail.

Introduces the CompilerMessageSpecWithException function which takes an
exceptionVar parameter to achieve this differentiation.
2024-02-28 11:34:49 +07:00
Steven R. Loomis
9c2a73a290 chore(common,developer): rename unicodeSet to uset in code
Fixes: rename unicodeSet to uset 🙀  #10657
2024-02-27 18:15:57 -06:00
Marc Durdin
e1a8ce47e3
Merge pull request #10821 from keymanapp/fix/developer/10396-repeated-options-in-kmc
fix(developer): repeated options in kmc must now be fully specified
2024-02-27 16:04:50 +07:00
Marc Durdin
70a50f0f67 refactor(developer): move osk module from common-types to developer-utils
This module is used only by Keyman Developer compiler. It was originally
in common-types because we didn't have a shared module for Developer.

Moving it to @keymanapp/developer-utils in order to improve its
documentation.
2024-02-26 14:57:27 +07:00
Marc Durdin
7b198eb4a4 fix(developer): repeated options in kmc must now be fully specified
Fixes #10396.

Instead of `--message 20ae 5006`, which is ambiguous, because 5006 could
be a filename, you must now specify the parameter option flag each time:
`--message 20ae --message 5006` (or `-m 20ae -m 5006`).
2024-02-23 13:17:11 +07:00
Marc Durdin
144456821b chore(common): loosen .keyman-touch-layout schema layer id requirements
Fixes #9843.
2024-02-23 10:38:45 +07:00
Joshua A. Horton
36e7a2b51a chore(web): proper reporting of errors from es5 KMW 2024-02-22 10:20:32 +07:00
Marc Durdin
457275e46f fix(developer): ensure fatal errors report message or made non-fatal
Fixes #10678.

Some messages have been reduced to ERROR instead of FATAL, as they are
not internal compiler errors.

Where fatal messages are raised, the message will now be reported
through correctly to Sentry.
2024-02-20 11:10:39 +07:00
Steven R. Loomis
7cd2e2d4e0 fix(developer): fix for incorrectly-stateful regex
- take out the /g flag for regex used with .exec

For #10734
2024-02-15 15:47:41 -06:00
Joshua A. Horton
593189b30d chore(web): Merge branch 'beta' into fix/web/transform-selection-interactions 2024-02-15 10:47:42 +07:00
Steven R. Loomis
8787073c40 feat(developer): errs on \uXXXX escapes 🙀
- note, some older test cases had to be fixed also.

For: #10389
2024-02-13 12:26:46 -06:00
Steven R. Loomis
b99a2cf2a5
Merge branch 'master' into feat/developer/10389-bad-regex-no-biscuit 2024-02-13 10:17:58 -06:00
Joshua A. Horton
0e06b7a20b docs(web): adds a bit of extra documentation re: method return value paradigm 2024-02-13 11:05:38 +07:00
Joshua Horton
c246993a0f
Merge pull request #10641 from keymanapp/fix/web/invalid-longpress-shortcut
fix(web): prevent invalid longpress shortcut triggers
2024-02-13 09:47:57 +07:00
Steven R. Loomis
da4b544471 feat(developer): errs on unparseable regex 🙀
- also, make sure NFD-incompliant ranges get mapped to escaped chars
- also, propagate UnicodeSet errs out

For: #10389
2024-02-12 18:16:34 -06:00
rc-swag
89f6770a78 chore(windows): add const to argument definition
Updated the call stack to keep a const string for the value parameter
being written to registry.

SaveKeyboardOptionCoretoRegistry calls
IntSaveKeyboardOptionCoretoRegistry which calls
RegistryFullAccess::WriteString which calls
RegSetValueExW, which takes a const data parameter.
2024-02-09 11:11:27 +10:00
Joshua A. Horton
444aeec509 chore(web): unit test patchup after method rename 2024-02-08 15:40:39 +07:00
Joshua A. Horton
aefef2181d chore(web): further PR cleanup 2024-02-08 13:12:26 +07:00
Joshua A. Horton
f36aba7bad chore(web): explicit edge case condition 2024-02-08 11:52:13 +07:00
Joshua A. Horton
c32691c2e7 feat(web): extra edge-case unit tests 2024-02-08 08:19:40 +07:00
Joshua A. Horton
0f0784a0e7 change(web): simpler return value 2024-02-07 16:24:42 +07:00
Joshua A. Horton
1222b2b3e2 chore(web): minor simplification 2024-02-07 16:04:42 +07:00
Joshua A. Horton
b1adb857b3 fix(web): forgot to delete a ref to deleted name 2024-02-07 15:41:56 +07:00
Joshua A. Horton
e3da931606 change(web): clearer maxInterval handling 2024-02-07 15:40:36 +07:00
Joshua A. Horton
a903bb91e7 chore(web): some more cleanup + docs 2024-02-07 15:36:21 +07:00
Joshua A. Horton
7d4e3c70d0 change(web): replaces function for unit tests (just one instance) 2024-02-07 15:27:14 +07:00