Commit graph

5356 commits

Author SHA1 Message Date
Marc Durdin
a52437c407 chore: Merge branch 'master' into chore/b18s4-merge-beta-to-master 2025-03-29 05:38:08 +07:00
Marc Durdin
e1d8abcb5a chore(common): rebuild keyboard fixture with kmcomp 2025-03-22 06:08:16 +07:00
Eberhard Beilharz
930de0f04f
test(common): add baseline test for resetting context 2025-03-21 18:15:46 +01:00
Marc Durdin
0ea9938036
Merge pull request #9390 from keymanapp/epic/linux-mcompile
epic: linux and mac mcompile 🐘
2025-03-18 14:36:37 +07:00
rc-swag
df938fef51 Merge pull request #13444 from keymanapp/feat/windows/13106-hard-code-osk-font-colour
feat(windows): hard code key cap colour
2025-03-17 17:14:45 +10:00
Steven R. Loomis
a0c2daf25b
Merge pull request #13494 from keymanapp/chore/core/9446-kmx-plus-tests-gtest
feat(core): move kmx_plus.tests.cpp to GTest 🙀
2025-03-14 09:18:34 -05:00
Marc Durdin
39e519c5f5
Merge branch 'epic/linux-mcompile' into chore/merge-master-into-linux-mcompile 2025-03-14 10:58:16 +07:00
Marc Durdin
1a0b830c0b
Merge branch 'master' into chore/b18s3-merge-beta-to-master 2025-03-14 08:54:50 +07:00
Steven R. Loomis
1306cf8760 feat(core): move kmx_plus.tests.cpp to GTest
- also update test_assert.h to vector to GTest if present
2025-03-13 15:05:55 -05:00
rc-swag
805e6d5f50 feat(windows): key cap hardcoded to KeyFontColor_Cap
Fixes: #13106
2025-03-07 11:39:41 +10:00
rc-swag
44109b7bfa feat(windows): hard code key cap colour
Fixes: #13106
2025-03-06 20:46:44 +10:00
Marc Durdin
03001bd971 chore(common): add unit test for nul and context() in context part of rule
The compiler and Core appear to be working correctly in this situation;
this test verifies Core's behaviour.

Fixes: #13299
2025-03-04 11:22:35 +01:00
Marc Durdin
81560c3612
Merge branch 'epic/linux-mcompile' into chore/merge-master-into-linux-mcompile 2025-03-01 16:01:48 +07:00
Marc Durdin
f61a104acf
Merge branch 'master' into chore/merge-beta-into-master-B18S2 2025-03-01 15:45:19 +07:00
Marc Durdin
213bbd7d31
Merge pull request #13311 from keymanapp/chore/core/13303-unit-tests-for-nul-index-context
chore(core): add unit tests to validate `nul` with `index` and `context`
2025-02-28 23:36:40 +07:00
Marc Durdin
7be92a8668
Merge pull request #13327 from keymanapp/chore/add-build-edit-action-for-delphi-projects
chore: add build.sh edit action for Delphi projects
2025-02-28 23:27:03 +07:00
rc-swag
fa166c6578 feat(windows): store larger images and source file
Store the source image generator and larger images for the
Keyman for Windows Configuration icons.
Update graphic artist was Hannah Durdin.
2025-02-27 13:31:38 +10:00
Marc Durdin
f9ab3c7045
Apply suggestions from code review
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-02-24 09:58:48 +01:00
Marc Durdin
ef60c08d7c chore: add build.sh edit action for Delphi projects
This opens up the Delphi IDE with the correct KEYMAN_ROOT environment,
which allows for debugging. This is very helpful when working with
multiple worktrees, and also helps to avoid editing a project in the
wrong tree.
2025-02-22 06:18:47 +01:00
Marc Durdin
2b9b8eb419 chore(core): add unit tests to validate nul with index and context
Add 4 test keyboards to validate `nul` and `if` used in conjunction with
`index` and `context` and corresponding references in core unit tests.

Add a script to rebuild baseline keyboards using a copy of kmcomp.exe
16.0.138; this is setup and tested only on Windows (YMMV on WINE, etc).

Add the 4 additional baseline test keyboards to kmcmplib unit tests for
build consistency between kmcomp 16 and kmcmplib 18 (all pass).

Note: two of the new Core tests currently fail. This is expected, see
issue #13304.

Fixes: #13303
2025-02-21 13:06:29 +07:00
Marc Durdin
f57aec64bb
Merge branch 'epic/linux-mcompile' into chore/merge-master-into-linux-mcompile 2025-02-13 20:37:44 +07:00
Steven R. Loomis
b59bb6d4de feat(developer): serialize KMXPlus into XML 🍒
Cherry pick of #12969
> feat(developer): serialize KMXPlus (back) into XML 🗼

(cherry picked from commit f93c45c9e8 #12969)

Fixes: #12874
2025-02-10 12:12:12 -06:00
Marc Durdin
2d5e3ee440
Merge pull request #13156 from keymanapp/feat/developer/13134-improve-messages-and-links
feat(developer): improve compiler messages and user interface
2025-02-10 08:19:11 +07:00
Marc Durdin
d4ecd83459 chore(developer): use kmn.sh instead of deeplink into help.keyman.com for message links 2025-02-07 12:50:38 +07:00
Marc Durdin
bd4633333b feat(developer): improve compiler messages and user interface
* Add unit test to verify the format of message detail strings
  (max line length of 80 chars)
* Add unit test to verify non-null, non-empty message strings
* Tidy up a number of messages (to pass unit tests)
* Add message details for all kmw compiler messages
* Add a clickable link for the TIKE message window for each message
  so that explanations and further message details are more accessible
  to authors (`kmc message` is already available for command-line users)
* Fixes a number of minor issues with the messages window in TIKE,
  mostly relating to when popup menu commands are enabled and how
  messages are selected.

Fixes: #13134
2025-02-07 08:46:46 +07:00
rc-swag
46c6a44f90
Merge pull request #13115 from keymanapp/feat/windows/13114/merge-update-reg-key
feat(windows): check updates and automatic update merged
2025-02-06 21:46:45 +10:00
Marc Durdin
7d70b6c31d
Merge pull request #13076 from keymanapp/feat/developer/13073-kmc-copy-ui-in-developer
feat(developer): add user interface for `kmc copy` to TIKE
2025-02-05 11:30:22 +07:00
Dr Mark C. Sinclair
6ead43b899
Merge pull request #13122 from keymanapp/fix/common/web/types/12945-replace-invalid-StrsItem-identity-checks-with-isEqual
fix(common/web): replace invalid StrsItem identity checks with isEqual()
2025-02-04 11:20:53 +00:00
Dr Mark C. Sinclair
6d060df601 fix(common/web): add two test cases for Strs.allocString() 2025-02-03 15:02:05 +00:00
Dr Mark C. Sinclair
0fabe6614a fix(common/web): add test cases for Strs implicit constructor and allocString for a one-character string 2025-02-03 12:47:58 +00:00
Dr Mark C. Sinclair
bdfa21128e fix(common/web): initial boiler plate for kmx-plus-tests.ts 2025-02-03 11:57:05 +00:00
Marc Durdin
5fea5b32cd fix(common): handle undefined input in @keymanapp/langtags lookups
Matches prior behaviour when langtags was part of kmc-keyboard-info.

Fixes: #13116
2025-02-03 12:40:10 +07:00
rc-swag
9eec271011 feat(windows): check updates and automatic update merged
Check updates meaning has slightly changed it is now automatic updates
and it will now check, download and when possible start the install.

Previously it just meant a check for upates was made and notified
the user of updates.

Fixes:#13114
2025-02-03 14:25:44 +10:00
Steven R. Loomis
4f6c34de8c
Merge pull request #13099 from keymanapp/feat/developer/12749-ldml-local-import-workaround
chore(developer,core,resources): LDML v46 update and remove workaround for import base
2025-01-31 11:16:12 -06:00
Steven R. Loomis
2c32fb7903 chore(resources, developer,core): CLDR 46 and workaround
Fixes: #11307
- import from CLDR 46, mostly unchanged

Fixes: #12749
- workaround LDML DTD bug CLDR-18138 where base= does not imply base=cldr
2025-01-30 15:41:34 -06:00
Marc Durdin
abd86e5126
Merge branch 'epic/linux-mcompile' into chore/merge-master-into-linux-mcompile 2025-01-30 18:50:57 +07:00
Marc Durdin
ffdbfab775 chore: add copyright and license to langtags readme 2025-01-30 14:04:38 +07:00
Marc Durdin
46fc4d52cf feat(developer): add user interface for kmc copy to TIKE
Adds a new set of 'New Project' dialogs to allow authors to easily copy
keyboards from local filesystem, Keyman Cloud (including a keyboard
search web page, implemented in keymanapp/keyman.com#536), and
directly from a GitHub URL. Adds related documentation.

Fixes: #13073
Depends-on: keymanapp/keyman.com#536
2025-01-30 11:04:18 +07:00
Marc Durdin
c74e841ed7 chore(common): add README.md for langtags package 2025-01-27 11:55:10 +07:00
Marc Durdin
b49334d9cf chore(developer): use langtags.json for kmc-generate language names
Also fills out the remaining functionality in @keymanapp/langtags.

Fixes: #13045
2025-01-27 11:47:25 +07:00
Marc Durdin
75d77704a2 refactor: move langtags to @keymanapp/langtags npm module
We want to use langtags in several modules, so it makes sense to make it
into its own NPM module.

Relates-to: #13045
2025-01-27 09:59:38 +07:00
Marc Durdin
60a88584e4
Merge branch 'master' into fix/developer/12123-support-displaymap-font-in-web-debugger 2025-01-20 15:14:45 +07:00
Dr Mark C. Sinclair
d5c3e43f20
Merge pull request #12882 from keymanapp/fix/common/web/types/1288-handle-invalid-order-and-tertiary-arguments-to-ElementString-fromString
fix(common/web): handle invalid order and tertiary arguments to ElementString.fromString()
2025-01-18 15:58:55 +00:00
Dr Mark C. Sinclair
77f085eb1a chore(common/web): Merge branch 'master' into fix/common/web/types/1288-handle-invalid-order-and-tertiary-arguments-to-ElementString-fromString 2025-01-17 12:50:48 +00:00
Dr Mark C. Sinclair
49b64a05ac chore(common/web): Merge branch 'master' into fix/common/web/types/12867-add-StrsItem-isEqual-method 2025-01-17 12:46:47 +00:00
Steven R. Loomis
a245f14524
Merge branch 'master' into test/common/web/types/9052-unit-tests-element-string 2025-01-16 21:53:57 -08:00
Marc Durdin
2a2392c319
Merge branch 'epic/linux-mcompile' into chore/merge-master-into-linux-mcompile 2025-01-17 05:34:52 +01:00
Marc Durdin
7cb6be6a97 fix(developer): support &displayMap font in web debugger
Adds a new design-time font property for when `&displayMap` is in use in
a keyboard, so that the web debugger can use that font as appropriate.

If the keyboard does not have a `&displayMap` store, then the DisplayMap
font property is disabled, and the web debugger will use the OSK Font
instead, as previously was the case.

Note that the font for `&displayMap` has to be installed on the keyboard
author's system in order for it to be served up.

Fixes: #12123
2025-01-17 11:03:20 +07:00
rc-swag
16a529c52c chore: Merge branch 'master' into chore/merge-master-epic-windows-updates
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2025-01-16 09:16:01 +10:00
Dr Mark C. Sinclair
d48ccda140 fix(common/web): add test cases for parseIntOrZero() 2025-01-13 12:05:39 +00:00