Commit graph

33210 commits

Author SHA1 Message Date
Marc Durdin
8f3b2b06c9
Merge pull request #15670 from keymanapp/fix/developer/13958-setup-feedback
fix(developer): improve UI feedback on upgrade
2026-03-05 19:20:51 +07:00
Marc Durdin
a4b0c02473
Merge pull request #15667 from keymanapp/fix/developer/15630-missing-description-in-windows-import
fix(developer): apply keyboard description in Windows keyboard import
2026-03-05 19:19:09 +07:00
Keyman Server
d3c129026b
Merge pull request #15678 from keymanapp/auto/version-master-19.0.210
auto: increment master version to 19.0.210
2026-03-04 19:04:10 +01:00
Keyman Build Agent
ba10f48694 auto: increment master version to 19.0.210
Test-bot: skip
Build-bot: skip
2026-03-04 12:01:49 -06:00
Eberhard Beilharz
87da33796a
Merge pull request #15656 from keymanapp/refactor/core/cleanup
refactor(core): cleanup 

- fix whitespace
- rename private fields of `ldml_processor` to start with underscore

Precedes: #15609
2026-03-04 15:27:47 +01:00
Eberhard Beilharz
bf388295ca
Merge pull request #15576 from keymanapp/feat/linux/7784_diagreport
feat(linux): implement diagnostic report

This change allows to collect data for a diagnostic report. This can be done either from the command line through the new `km-diag-report` tool, or in `km-config` from the new `Support` tab that allows to generate the report and then copy it to the clipboard or save as a file.

The diagnostic report contains installed browsers and their versions and installation methods as well as the default browser. It checks for browsers installed through apt (Ubuntu/Debian), snap, and flatpak.
    
The change also has an implementation for pacman (Arch Linux) and dnf/yum (Fedora), although these have not been tested.

Fixes: #7784
2026-03-04 10:32:47 +01:00
Marc Durdin
26cf278cc1 fix(developer): improve UI feedback on upgrade
Show a progress dialog when running the Keyman Developer upgrade
(`-au` parameter).

Fixes: #13958
Test-bot: skip
2026-03-04 06:27:36 +01:00
Marc Durdin
a0ecd51c60 fix(developer): apply keyboard description in Windows keyboard import
Fixes: #15630
Test-bot: skip
2026-03-04 04:57:56 +01:00
Shawn Schantz
5a26e59add
Merge pull request #15655 from keymanapp/maint/ios/fv/xcode-26
maint(ios): update fv Cartfile for Xcode 26
2026-03-03 15:57:47 -05:00
Keyman Server
8b8b6b045f
Merge pull request #15666 from keymanapp/auto/version-master-19.0.209
auto: increment master version to 19.0.209
2026-03-03 19:03:55 +01:00
Keyman Build Agent
b0bfc6be6f auto: increment master version to 19.0.209
Test-bot: skip
Build-bot: skip
2026-03-03 12:02:02 -06:00
Marc Durdin
0e0b858269
Merge pull request #15653 from keymanapp/fix/developer/15627-checkPackageInfo-null-return-values
fix(developer): use correct return values and nullish checks in package-validation
2026-03-03 20:25:45 +07:00
Marc Durdin
cb099d2490
Merge pull request #15622 from keymanapp/fix/developer/15621-handle-missing-package-object-in-kps-file
fix(developer): handle .kps file that has no `<Package>` element
2026-03-03 20:25:37 +07:00
Marc Durdin
ddb06c6f4b
Merge pull request #15616 from keymanapp/fix/developer/15601-crlf-in-ldml-debugger
fix(developer): handle CRLF as CR internally in LDML debugger
2026-03-03 20:25:27 +07:00
Eberhard Beilharz
8aea535d55
Merge pull request #15629 from keymanapp/docs/core/docs
docs(core): add keyhandling doc

This documents the state of `km_core_actions.emit_keystroke` for different keys pressed. Also some cleanup in other docs.

This documents the state after merging #15609 (for ldml keyboards) and NN (for kmn keyboards).

Follows: #15609
2026-03-02 20:22:34 +01:00
Keyman Server
aa54ce23d8
Merge pull request #15657 from keymanapp/auto/version-master-19.0.208
auto: increment master version to 19.0.208
2026-03-02 19:04:03 +01:00
Keyman Build Agent
e06868a622 auto: increment master version to 19.0.208
Test-bot: skip
Build-bot: skip
2026-03-02 12:01:33 -06:00
Eberhard Beilharz
2bd6cfd735
refactor(core): rename fields to start with underscore
Test-bot: skip
2026-03-02 17:27:15 +01:00
Eberhard Beilharz
d8a5f694da
refactor(core): fix whitespace
Build-bot: skip
Test-bot: skip
2026-03-02 17:26:14 +01:00
Shawn Schantz
dddd500052 maint(fv): update Cartfile for Xcode 26 2026-03-02 09:16:38 -05:00
Marc Durdin
42eec30825 fix(developer): handle CRLF as CR internally in LDML debugger
While the debugger memo internally uses CRLF, in all references, CRLF
should be converted to CR for consistent text manipulation operations.
This follows a similar fix in the kmn debugger in #13334.

Also addresses review comments from @ermshiperete.

Fixes: #15601
Relates-to: #13334
2026-03-02 14:44:18 +01:00
Marc Durdin
3e41d7094f chore(developer): cleanup kps file reader per review comments
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-03-02 14:38:45 +01:00
Marc Durdin
7377a17216
Merge pull request #15618 from keymanapp/fix/developer/15617-handle-null-window-on-destroy
fix(developer): handle window already destroyed when closing editor
2026-03-02 20:30:45 +07:00
Marc Durdin
b09eb3d589
Merge pull request #15620 from keymanapp/fix/developer/15619-handle-missing-info-section-in-kmp-compiler
fix(developer): package compiler handle missing `info` section in .kps file
2026-03-02 20:04:42 +07:00
Marc Durdin
9666227b48 chore(developer): add null guard to TframeCEFHost.SetFocus
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-03-02 14:04:00 +01:00
Marc Durdin
343cf45672 fix(developer): use correct return values and nullish checks in package-validation
Turned on strictNullChecks to verify the file and found a few other
problems in this file. However, there are many null check errors
reported across the kmc-package source which should be addressed in a
future patch. (This is a broader problem for the entire Typescript
source of Keyman.)

Fixes: #15627
Test-bot: skip
Build-bot: skip build:developer
2026-03-02 10:42:33 +01:00
Darcy Wong
2f9f7c15ca
Merge pull request #15605 from keymanapp/fix/ios/fv/build-sh
chore(ios): Cleanup `RELEASE_OEM_FIRSTVOICES` var in build.sh scripts
2026-03-02 11:19:25 +07:00
Darcy Wong
eaab2f25fb
Merge branch 'master' into fix/ios/fv/build-sh 2026-02-27 07:57:31 +07:00
Eberhard Beilharz
76866b275b
feat(linux): address code review comments
- add date to header and filename
- add state of ibus
- add privacy statement and link to privacy policy
2026-02-26 17:04:49 +01:00
Eberhard Beilharz
f07f95452f
docs(core): add keyhandling doc
This documents the state of `km_core_actions.emit_keystroke` for
different keys pressed. Also some cleanup in other docs.

This documents the state after merging #15609 (for ldml keyboards) and
NN (for kmn keyboards).

Follows: #15609
Build-bot: skip
Test-bot: skip
2026-02-25 19:31:00 +01:00
Keyman Server
b526238b70
Merge pull request #15628 from keymanapp/auto/version-master-19.0.207
auto: increment master version to 19.0.207
2026-02-25 19:08:12 +01:00
Keyman Build Agent
1cc1e972ad auto: increment master version to 19.0.207
Test-bot: skip
Build-bot: skip
2026-02-25 12:01:25 -06:00
Shawn Schantz
c65a46f552
Merge pull request #15498 from keymanapp/maint/ios/15475-xcode-26
maint(ios): upgrade to Xcode 26.2
2026-02-25 11:57:13 -05:00
Keyman Server
3f8961f2b4
Merge pull request #15623 from keymanapp/auto/version-master-19.0.206
auto: increment master version to 19.0.206
2026-02-24 19:07:26 +01:00
Keyman Build Agent
464421a9ff auto: increment master version to 19.0.206
Test-bot: skip
Build-bot: skip
2026-02-24 12:01:46 -06:00
Eberhard Beilharz
f51a3a4c06
Merge pull request #15608 from keymanapp/test/core/minkbd
test(core): add LDML baseline test with minimal keyboard

This replaces and enables the commented `k_000_null_keyboard` test which didn't work because keys that are not on any layer don't produce output. This instead defines a minimal keyboard with just two keys and then tests typing a key that is on the keyboard followed by a key not on the keyboard.
2026-02-24 17:40:18 +01:00
Eberhard Beilharz
3db661cd42
Merge pull request #15600 from keymanapp/refactor/core/loop
refactor(core): simplify loop for removing text

Instead of using an iterator to loop over the context items, incrementing a counter on each iteration, and then finally removing the calculated number of context items from the list, this change loops through the list and looks at the last context item, removing it if necessary.

Follows: #15596
2026-02-24 17:39:13 +01:00
Eberhard Beilharz
d359908d87
Merge pull request #15596 from keymanapp/fix/core/ldmltest
fix(core): fix iterator in backspace handling

This change replaces the reverse iterator loop that holds a stale iterator across `pop_back()` calls with a pattern that directly accesses `context.back()` on each iteration. This avoids undefined behavior from iterator invalidation when mutating the list or vector.

While so far the previous code didn't show problems, it might still access released memory depending on the implementation. The documentation for `pop_back()` says "References and iterators to the erased element are invalidated", so the previous implementation was clearly wrong.
2026-02-24 17:37:17 +01:00
Marc Durdin
9fca089dc8 fix(developer): handle .kps file that has no <Package> element
Fixes: #15621
Fixes: KEYMAN-DEVELOPER-37D
Test-bot: skip
2026-02-24 16:48:03 +01:00
Marc Durdin
79d13a4ad2 fix(developer): package compiler handle missing info section in .kps file
Fixes: #15619
Fixes: KEYMAN-DEVELOPER-27R
Test-bot: skip
2026-02-24 16:17:06 +01:00
Marc Durdin
0bd6f59382 fix(developer): handle window already destroyed when closing editor
Fixes: #15617
Fixes: KEYMAN-DEVELOPER-1JD
Fixes: KEYMAN-DEVELOPER-36K
Fixes: KEYMAN-DEVELOPER-2P5
Test-bot: skip
2026-02-24 15:35:44 +01:00
Shawn Schantz
610ccc11c2 Revert "maint(ios): resolved warnings for Xcode 26"
This reverts commit a91f098ed6.
Apply these changes in a separate PR.
2026-02-23 13:38:01 -05:00
Keyman Server
bc546d004c
Merge pull request #15610 from keymanapp/auto/version-master-19.0.205
auto: increment master version to 19.0.205
2026-02-20 19:07:13 +01:00
Keyman Build Agent
60e49fe271 auto: increment master version to 19.0.205
Test-bot: skip
Build-bot: skip
2026-02-20 12:01:18 -06:00
Eberhard Beilharz
2237db95f6
test(core): add LDML baseline test with minimal keyboard
This replaces and enables the commented `k_000_null_keyboard` test which
didn't work because keys that are not on any layer don't produce output.
This instead defines a minimal keyboard with just two keys and then tests
typing a key that is on the keyboard followed by a key not on the keyboard.

Test-bot: skip
2026-02-20 12:09:08 +01:00
Joshua Horton
46374e6a92
Merge pull request #15598 from keymanapp/maint/web/spaced-path-handling
maint(web): ensure Web build scripts handle paths with spaces properly
2026-02-20 14:10:40 +07:00
Darcy Wong
a6d92d30f4 chore(ios): Cleanup RELEASE_OEM_FIRSTVOICES var in build.sh scripts
Fixes #9051

* Fixes unbound variable in tools/prepRelease.sh
* Checks `RELEASE_OEM_FIRSTVOICES` env var for build targets
2026-02-20 10:34:55 +07:00
Shawn Schantz
a91f098ed6 maint(ios): resolved warnings for Xcode 26
the keyboard is blank when running in the simulator
unsure why and removing these warnings does not
resolve the issue
2026-02-19 11:21:54 -05:00
Eberhard Beilharz
b405bf5842
refactor(core): simplify loop for removing text
Instead of using an iterator to loop over the context items, incrementing
a counter on each iteration, and then finally removing the calculated
number of context items from the list, this change loops through the list
and looks at the last context item, removing it if necessary.

Follows: #15596
Test-bot: skip
2026-02-18 17:34:02 +01:00
Eberhard Beilharz
df2b675202
fix(core): changed ldml tests to use context list instead of vector
Production code uses a list of context items, so this change modifies
the tests to also use a list instead of a vector to more closely match
production code.

Addresses code review comment.

Test-bot: skip
2026-02-18 16:08:59 +01:00