Commit graph

3594 commits

Author SHA1 Message Date
Marc Durdin
7a9983d958
Merge pull request #16456 from keymanapp/fix/developer/12423-ldml-validate-layer-attributes
fix(developer): validate id and modifiers attributes in Layr compiler
2026-09-02 15:59:40 +07:00
Marc Durdin
429011b8e5
Merge pull request #16455 from keymanapp/fix/developer/16454-validate-hardware-layout-count-only-in-layrs
fix(developer): validate the number of hardware layers only in Layr compiler
2026-09-02 15:59:29 +07:00
Marc Durdin
4426d4e64a
Merge pull request #16453 from keymanapp/feat/developer/kmc-out-dir
feat(developer): support output folder and `--continue-on-error`
2026-09-02 15:59:18 +07:00
Marc Durdin
945d2cf6d5
Merge pull request #16493 from keymanapp/fix/developer/16492-kmcmplib-message-pattern
fix(developer): add missing message parameters and cleanup kmc-kmn messages further
2026-09-01 22:33:15 +07:00
Marc Durdin
b2e72e94b9
Merge pull request #16445 from keymanapp/change/developer/14211-deprecate-fix-clearcontext
change(developer): deprecate `fix`, `clearcontext`, bump max .kmx version to 19.0
2026-09-01 22:32:31 +07:00
Marc Durdin
5c2702c51b
Merge pull request #16482 from keymanapp/fix/developer/10562-make-toolwindows-non-topmost-on-deactivate
fix(developer): make tool windows non-topmost when TIKE is deactivated
2026-09-01 15:50:33 +07:00
Marc Durdin
998574ef1a
Merge pull request #16480 from keymanapp/chore/developer/11249-strip-printing-support
chore(developer): strip out defunct printing support
2026-09-01 15:50:22 +07:00
Marc Durdin
e8fa870778 chore(developer): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-09-01 10:22:56 +02:00
Marc Durdin
f438a519e1 fix(developer): add missing message parameters and cleanup kmc-kmn messages further
* kmcmplib messages need to use a standard pattern for parameters, which
  cannot be named. Several of the messages had the wrong pattern
* Tidy up the kmn-compiler-messages module and make it more consistent
  to reduce risk of this happening in the future
* Add a unit test to further verify the structure of the module as far
  as possible

Fixes: #16492
Test-bot: skip
2026-09-01 10:14:11 +02:00
Marc Durdin
750ad89611 fix(developer): use KmcmpLibMessageParameters pattern for deprecation error message
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-01 07:42:50 +02:00
Marc Durdin
1e8cd24960
Merge pull request #16446 from keymanapp/fix/developer/13721-u16tok-targets-store-leading-whitespace
fix(developer): handle leading delimiters correctly in `u16tok()`
2026-09-01 12:27:16 +07:00
Marc Durdin
dd40dfcfbd
Merge pull request #16478 from keymanapp/chore/developer/server-remove-environment-version-duplication
chore(developer): remove duplicated versioning information from Server
2026-09-01 12:26:38 +07:00
Marc Durdin
1d83399b59
Merge pull request #16476 from keymanapp/fix/developer/12165-server-root-path-not-pwd
fix(developer): use path not dependent on pwd for starting Server
2026-09-01 12:26:27 +07:00
Marc Durdin
5a33d65081
Merge pull request #16483 from keymanapp/fix/windows/9694-show-console-window-twice
fix(developer): call 'Show Console' twice to make the console actually show on first use
2026-09-01 12:26:07 +07:00
Marc Durdin
0f3e84bcc7 fix(windows): call 'Show Console' twice to make the console actually show on first use
The underlying issue may be in the node-hide-console-window component.
This fix is adequate in my view, for a low-use code path.

Fixes: #9694
Test-bot: skip
2026-08-31 14:56:12 +02:00
Marc Durdin
d1558946dd fix(developer): make tool windows non-topmost when TIKE is deactivated
When TIKE deactivates, any undocked tool windows retain their
WS_EX_TOPMOST exstyle, which means they stay on top of other
applications. To be polite, remove the topmost style when Keyman
Developer is deactivated - and set it on again when Keyman Developer is
reactivated, so that the windows continue to behave as expected
otherwise.

Fixes: #10562
Test-bot: skip
2026-08-31 14:38:29 +02:00
Marc Durdin
3d3a5ca1fb chore(developer): strip out defunct printing support
Printing has not been supported from Keyman Developer for quite some
time. This does not appear to have been raised as a user issue. Remove
printing support, and cleanup user interface. As a side-effect, this
will fix #11249, as Delphi's printer support will no longer poll for
default printer on start.

Fixes: #11249
2026-08-31 10:36:00 +02:00
Marc Durdin
efedd63fa4 chore(developer): remove version-data tests and add environment tests
Server lacks tests at present. Removing version-data tests as no longer
relevant meant that there were no tests! So, added environment tests
which relate to changes in #16476.
2026-08-31 10:25:10 +02:00
Marc Durdin
4c2ba9f8e0 fix(developer): handle comment without trailing whitespace
Fixes: #12070
Test-bot: skip
2026-08-31 10:07:00 +02:00
Marc Durdin
9f7beafc57 chore(developer): remove duplicated versioning information from Server
Use `KEYMAN_VERSION` instead of parsing version information.

Test-bot: skip
2026-08-31 09:52:30 +02:00
Marc Durdin
f65299cb36 fix(developer): use path not dependent on pwd for starting Server
Fixes: #12165
Test-bot: skip
2026-08-31 09:28:34 +02:00
Marc Durdin
2f60544835 docs(developer): tweak comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
Co-authored-by: Sabine Schmitt <SabineSIL@users.noreply.github.com>
2026-08-28 17:31:06 +02:00
Marc Durdin
57f0dc4597 fix(developer): validate id and modifiers attributes in Layr compiler
Per the spec, the `id` attribute is required for touch layers, and
`modifiers` attribute is required for hardware layers. There is
ambiguity in the spec at present as to whether they should be allowed
for the alternative type.

* Validate that the attributes are present where required.
* Tighten validation of `modifiers` attribute - it cannot be empty or
  missing for hardware; "" != "none".
* Hint if the attribute is present when it probably shouldn't be (to be
  potentially raised to warning or error after spec clarified).
* Fixup all keyboard3 xml files to conform to spec and eliminate hints.
* Add unit tests.
* Removed threshold warning for coverage as kmc-ldml is already > 90%.

Fixes: #12423
2026-08-28 13:21:12 +02:00
Marc Durdin
369911397a fix(developer): validate the number of hardware layers only in Layr compiler
`KeysCompiler` runs before `LayrCompiler` so this verification needs to
defer rather than throw. We can assume that the `LayrCompiler` will
catch it.

Fixes: KEYMAN-DEVELOPER-3XD
Fixes: #16454
Test-bot: skip
2026-08-28 11:49:59 +02:00
Marc Durdin
cf22d460ff feat(developer): support output folder and --continue-on-error
Add support for specifying an output folder instead of filename for the
`--out-file` parameter of kmc. This allows for batch builds, which can
be much faster than invoking kmc for each file separately.

Alongside that, add a `--continue-on-error` parameter that allows for
batch builds to continue even if a single file fails to build. (Note
that if a fatal error is encountered, kmc aborts with exit code 70).
2026-08-28 10:29:28 +02:00
Marc Durdin
babb473682 fix(developer): handle leading whitespace correctly in u16tok()
A string with leading delimiters passed into `u16tok()` would not skip
those delimiters. This impacted `&targets` store and other locations.

Note that this tightens input parameter checks for delimiters and
context as well.

Fixes: #13721
Test-bot: skip
2026-08-27 11:15:14 +02:00
Marc Durdin
14b2a9a168 change(developer): deprecate fix, clearcontext, bump max .kmx version to 19.0
Fixes: #14211
Test-bot: skip
2026-08-27 09:24:50 +02:00
Marc Durdin
e18a76f289
Merge pull request #16420 from keymanapp/feat/developer/16407/kmc-convert-follow-up-1
feat(developer): kmc convert follow-up tasks
2026-08-21 22:08:44 +07:00
Sabine
0f35f1fc79 feat(developer): changes in kmc convert --help; import of ConverterArtifacts, ConverterToKmnArtifacts, ConverterResult, and ConverterToKmnResult 2026-08-21 16:16:35 +02:00
Marc Durdin
ee3ed010ef fix(developer): clean kmc-convert build.sh with new publish patterns
Test-bot: skip
2026-08-20 21:36:33 +02:00
Marc Durdin
ec64218e53
Merge pull request #16302 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/ip-address-10.4.0
chore(deps): bump ip-address from 10.2.0 to 10.5.0 in /developer/src/server/src/win32/trayicon/addon-src
2026-08-20 21:44:51 +07:00
Marc Durdin
058a68fc88
Merge pull request #16104 from keymanapp/dependabot/npm_and_yarn/ws-8.21.0
chore(deps): bump ws from 8.20.1 to 8.21.0
2026-08-20 21:41:24 +07:00
Marc Durdin
e5ad777534
Merge pull request #16347 from keymanapp/fix/developer/16214-tighten-touch-layout-file-validity
fix(developer): tighten touch layout file structural validity checks
2026-08-20 21:27:04 +07:00
Marc Durdin
430b6bdde3
Merge pull request #16109 from keymanapp/dependabot/npm_and_yarn/multer-2.2.0
chore(deps): bump multer from 2.1.1 to 2.2.0
2026-08-20 21:23:29 +07:00
Marc Durdin
e48bb4be14 chore(developer): add missing dev deps for server 2026-08-20 16:18:51 +02:00
Marc Durdin
3a4e72bc66 refactor(developer): rename validate-layout-file.ts
Rename `ValidateLayoutFile()` to `CompileLayoutFile()` to better reflect
the transform steps it performs, add documentation, and address review
comments.

Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-08-20 15:47:08 +02:00
Marc Durdin
51368402c4
Merge branch 'master' into epic/kmc-convert
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-18 20:26:07 +07:00
SabineSIL
882ede0c54
feat(developer): kmc-convert: new conversion .keylayout->kmn 😎 (#12564)
kmc-convert provides tooling to convert between various common keyboard
description file formats. Each conversion will be implemented in its
single, separate module (and each module will done in its own PR)

This PR will address the conversion **keylayout → kmn**

Co-authored-by: Marc Durdin <marc@durdin.net>
2026-08-18 15:16:02 +02:00
Keyman Server
7e8e53dbbc
Merge branch 'epic/kmc-convert' into auto/A19S35-merge-base-into-kmc-convert 2026-08-14 16:19:03 +02:00
Marc Durdin
3e7630e37a fix(developer): mark touch layout file as modified after applying template
Fixes: #16128
Test-bot: skip
2026-08-14 14:29:01 +02:00
SabineSIL
1f298027fd
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys 2026-08-13 11:26:08 +02:00
Sabine
7517531a3a chore(common): remove stray keylayout file 2026-08-13 11:22:52 +02:00
Marc Durdin
0624bc900a
Merge pull request #16095 from keymanapp/dependabot/npm_and_yarn/esbuild-0.28.1
chore(deps-dev): bump esbuild from 0.25.0 to 0.28.1
2026-08-13 08:21:33 +02:00
Sabine
a621106ef3 chore(common): remove namespace km::vkey 2026-08-12 10:04:20 +02:00
Marc Durdin
cd674fd7a0 fix(developer): tighten touch layout file structural validity checks
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Fixes: #16214
Fixes: KEYMAN-DEVELOPER-39Q
Test-bot: skip
2026-08-12 07:27:02 +02:00
SabineSIL
10aceeacb3
Merge branch 'master' into chore/developer/scatteredCode/cleanup_VKeys 2026-08-11 10:45:18 +02:00
Sabine
a2bf976e5e chore(common): remove commented old #defines; in some files remove paths for #include km_vkey 2026-08-11 09:46:49 +02:00
Keyman Server
8484cd326e
Merge branch 'epic/kmc-convert' into auto/A19S34-merge-base-into-kmc-convert 2026-08-10 09:54:22 +02:00
dependabot[bot]
92bf799430
chore(deps): bump ip-address
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Bumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.2.0 to 10.5.0.
- [Release notes](https://github.com/beaugunderson/ip-address/releases)
- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.5.0)

---
updated-dependencies:
- dependency-name: ip-address
  dependency-version: 10.4.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 06:50:21 +00:00
Marc Durdin
7d30136193
Merge pull request #16295 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/brace-expansion-5.0.9
chore(deps): bump brace-expansion from 5.0.6 to 5.0.9 in /developer/src/server/src/win32/trayicon/addon-src
2026-08-10 08:48:00 +02:00