Commit graph

4244 commits

Author SHA1 Message Date
Marc Durdin
7c5064af47 feat(developer): show keyboard version in web debugger
This shows the keyboard version from the loaded keyboard .js file in the
Keyman Developer Web Debugger, once the keyboard has been loaded. The
version information is not visible in the keyboard menu, because the
version data has not been loaded at that point (being available only in
the compiled .js file).

Fixes: #14212
Test-bot: skip
2025-12-10 22:28:44 +08:00
DavidLRowe
8ca724ff07
Clarify keystrokes 2025-12-08 13:28:41 -09:00
Marc Durdin
de875ff39c fix(developer): verify project file loaded successfully in analyze
Fixes: #15315
Fixes: KEYMAN-DEVELOPER-338
Test-bot: skip
Build-bot: skip
2025-12-08 08:08:08 +01:00
Marc Durdin
f813442c40
Merge pull request #15276 from keymanapp/revert-14799-change/windows/include-map2pdb-for-relevant-projects
change(windows): Revert "change(windows): include map2pdb generation for relevant Delphi projects"
2025-12-05 07:10:52 +01:00
Marc Durdin
cb8150c896
Merge pull request #15275 from keymanapp/docs/developer/api-refresh
docs(developer): add/update API docs
2025-12-03 15:02:41 +01:00
Marc Durdin
6c99f33bcc
Revert "change(windows): include map2pdb generation for relevant Delphi projects" 2025-12-03 14:13:54 +01:00
dependabot[bot]
e4606e4925
chore(deps): bump glob
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 12:55:03 +00:00
Marc Durdin
9de8371cfe docs(developer): add/update API docs
Test-bot: skip
Build-bot: skip
2025-12-03 13:51:30 +01:00
Marc Durdin
3eaaacd706 fix(developer): handle errors in .keyman-touch-layout file when loading
If the .keyman-touch-layout file has validation errors, Keyman Developer
will now report the first validation error in the message window, rather
than silently closing the whole keyboard editor. The
.keyman-touch-layout file will be loaded in Code view, and once the
first validation error is addressed, switching to Design view will
report the next error.

For future improvement:
* reporting multiple validation errors
* reporting line number of error

Fixes: #15242
Test-bot: skip
2025-11-27 05:50:36 +01:00
Marc Durdin
eb4b10996d
Merge pull request #15087 from keymanapp/fix/developer/11363-prevent-race-on-server-load-kmw
fix(developer): avoid race in page.onload vs kmw.init in Server
2025-11-21 10:39:43 +01:00
Marc Durdin
6e470efa3e
Merge pull request #14799 from keymanapp/change/windows/include-map2pdb-for-relevant-projects
change(windows): include map2pdb generation for relevant Delphi projects
2025-11-17 17:02:25 +01:00
Marc Durdin
edca16f508 change(windows): include map2pdb generation for relevant Delphi projects
Adds a call to map2pdb for Delphi projects, if map2pdb is an executable
on the path. This way, we get .pdb files we can use for debugging and
for performance profiling. This also replaces tds2dbg.

If map2dbg is available, then the build and install actions will copy
the PDB to be alongside the corresponding executable, making most debug
actions relatively seamless for finding symbols.

Also fixes up setup.exe in Windows and Developer to extend setup.exe to
a 512-byte boundary after map2pdb patches the PE.

Relates-to: #14787
Build-bot: skip release:developer,windows
Test-bot: skip
2025-11-13 14:48:18 +01:00
Marc Durdin
5dbc438f53 maint(resources): add builder_launch function
Use `builder_launch` to launch other builder scripts rather than calling
directly, so that inheritable state and options are passed through.

Test-bot: skip
2025-11-10 11:46:14 +01:00
Marc Durdin
23b5dca1b3 fix(developer): remove package version if FollowKeyboardVersion is set in Package Editor
To reduce confusion when 'Follow Keyboard Version' is set, clear the
cached package version data from UI and .kps source when saving the
package or making changes to it.

Fixes: #11892
Test-bot: skip
2025-11-03 10:54:44 +01:00
Marc Durdin
756a0e2b58 fix(developer): avoid race in page.onload vs kmw.init in Server
Also adds `server:run` action for build.sh, and adds check for scenario
where an ad blocker/privacy extension blocks sentry javascript loading.

Fixes: #11363
Fixes: KEYMAN-DEVELOPER-30X
2025-11-03 09:52:33 +01:00
Marc Durdin
933ea5bb58 change(developer): remove kmlmc and kmlmp
These were replaced by kmc in v17.0. We kept them as legacy alternatives
in v18.0, but it is time to remove them now to reduce the maintenance of
having multiple entry points to kmc.

Fixes: #13181
Test-bot: skip
2025-10-31 17:08:56 +01:00
Marc Durdin
702a64c281
Merge pull request #15062 from keymanapp/chore/windows/vs2022
chore(windows): upgrade VC++ projects to v143 (VS2022)
2025-10-31 15:38:25 +01:00
Marc Durdin
aba67ef682
Merge pull request #15061 from keymanapp/chore/developer/kmc-package-nullish-cleanup
chore(developer): fix always-false nullish coalescing
2025-10-31 06:30:48 +01:00
Marc Durdin
344fd4bd3d
Merge pull request #15060 from keymanapp/fix/developer/handle-load-errors-for-touch-layout-builder
fix(developer): handle exceptions loading .keyman-touch-layout files
2025-10-31 06:30:42 +01:00
Marc Durdin
c255e78857
Merge pull request #15058 from keymanapp/chore/developer/11916-extra-debugging-crash-on-exit
chore(developer): add breadcrumbs to trace sporadic crashes on exit
2025-10-31 06:30:27 +01:00
Marc Durdin
9e1fe8e6de chore(windows): upgrade VC++ projects to v143 (VS2022)
Test-bot: skip
Build-bot: skip release:developer,windows
2025-10-30 16:31:45 +01:00
Marc Durdin
8e6ca01175 chore(developer): fix always-false nullish coalescing
Test-bot: skip
Build-bot: skip
2025-10-30 15:24:15 +01:00
Marc Durdin
0b17c632a0 fix(developer): handle exceptions loading .keyman-touch-layout files
If file is unreadable or contains invalid encoding, show a message
instead of crashing.

Build-bot: skip
Test-bot: skip
2025-10-30 15:22:47 +01:00
Marc Durdin
037e199f3c chore(developer): add breadcrumbs to trace sporadic crashes on exit
Relates-to: #11916
Test-bot: skip
2025-10-30 15:01:37 +01:00
Marc Durdin
2ba22bbe51 chore(developer): further debugging for assertion failure
Adds breadcrumbs for debug memo to try and narrow down sequence of
events leading to assertion failure with backspace.

Relates-to: #11706
Test-bot: skip
2025-10-30 14:36:25 +01:00
Marc Durdin
19264fdbe2
Merge pull request #15030 from cvosoft/test/add-osk-character-use-format-tests
test(developer): add kmc-analyze tests for AnalyzeOskCharacterUse output formats
2025-10-30 06:04:30 +01:00
Marc Durdin
df212364a2 maint(resources): add repository record for all published packages
While not documented as such, it appears that the repository record is
required with trusted publishing of npm packages.

Test-bot: skip
Build-bot: skip
2025-10-29 14:35:31 +01:00
Christoph Völker
d49c23646a Merge remote-tracking branch 'upstream/master' into test/add-osk-character-use-format-tests 2025-10-29 14:17:10 +01:00
Marc Durdin
12511894ef chore(developer): skip git date test for shallow clones
If the repository is a shallow checkout, then the only commit will be
the most recent one, and the test will fail. We could lookup the date of
the most recent test, but it's a pretty meaningless test, so instead we
will skip the test in this scenario.

For example, this happens on GitHub Actions when we do a shallow
checkout. The only risk we have is if we move all builds to shallow
checkouts and end up always skipping this test, but (a) the code is
unlikely to change, and (b) issuse would be  picked up on local builds
in that situation pretty quickly.
2025-10-29 10:30:27 +01:00
Marc Durdin
dd20ad068e maint(developer): reduce coverage threshold for node 24 for dev-utils
I am not entirely clear why the coverage dropped, but I suspect it's due
to code paths that are not activated in node 24. For now, just dropping
coverage threshold to 40%.
2025-10-29 10:29:33 +01:00
Christoph Völker
e2eb10312f test(kmc-analyze): add supplementary plane tests for stringToUnicodeSequence 2025-10-28 17:46:07 +01:00
Christoph Völker
3d10ac4b87 test(kmc-analyze): add tests for AnalyzeOskCharacterUse output formats 2025-10-28 16:50:04 +01:00
Marc Durdin
fe6e8e72a8
Merge pull request #15029 from keymanapp/maint/resources/14963-npm-publish-on-gha
maint(resources): move npm package publishing to GitHub Actions
2025-10-28 07:57:35 +01:00
Christoph Völker
ac6d305b79 format update 2025-10-27 19:10:40 +01:00
Christoph Völker
e06ac524fb test(kmc-analyze): add tests for AnalyzeOskCharacterUse output formats 2025-10-27 17:45:44 +01:00
Marc Durdin
ba411774f6 maint(resources): move NPM package publishing to GitHub Actions
Due to recent changes in NPM package publishing security requirements,
we have to move from TeamCity build to a GitHub Action to publish our
NPM packages, so we can take advantage of trusted publishing. This
change also consolidates and centralizes the npm publishing into
resources/build/ci/npm-publish.sh, which removes a lot of boilerplate
from each of the build.sh scripts, and ensures consistency.

Packages will be `npm pack`ed on PR and test builds, and published in
release builds.

Ref: https://docs.npmjs.com/trusted-publishers
Ref: https://github.blog/changelog/2025-09-29-strengthening-npm-security-important-changes-to-authentication-and-token-management/
Fixes: #14963
Test-bot: skip
Build-bot: release:developer
2025-10-27 16:31:55 +01:00
Marc Durdin
4a685ba8aa
Merge pull request #15021 from cvosoft/test/add-osk-character-use-warnings
test(developer): add coverage tests for warning messages in kmc-analyze/AnalyzeOskCharacterUse
2025-10-27 16:00:41 +01:00
Christoph Völker
368766acdc test(kmc-analyze): fix import paths and order 2025-10-27 14:05:13 +01:00
Christoph Völker
469149e72d test(kmc-analyze): add message coverage tests for AnalyzeOskCharacterUse 2025-10-27 08:36:56 +01:00
Christoph Völker
07c13e81ac test(kmc-analyze): add message coverage tests for AnalyzeOskCharacterUse 2025-10-25 07:38:28 +02:00
Marc Durdin
55d6efe482 fix(developer): prevent ANSI keyboards crashing debugger
Note: #11909 has some additional future cleanup we could do, but these
code paths are not currently accessible, so in the interest of moving
forward, am leaving them for now.

Fixes: #11909
Test-bot: skip
2025-10-24 14:45:17 +02:00
Christoph Völker
cbaae084f7 test(kmc-analyze): add warnings coverage tests for AnalyzeOskCharacterUse 2025-10-24 13:31:15 +02:00
Marc Durdin
da364f978d
Merge pull request #14038 from cvosoft/test-warn-previousmap
test(developer): add test to kmc-analyze for Warn_PreviousMapFileCouldNotBeLoaded
2025-10-24 11:07:22 +02:00
Marc Durdin
a7a8cb0b72
Merge pull request #15002 from keymanapp/fix/developer/14411-handle-missing-begin-unicode
fix(developer): handle missing `begin Unicode` in KMW compiler
2025-10-24 09:19:10 +02:00
Christoph Völker
15ea1f321e test(developer): use unitTestEndPoints for loadPreviousMap and clean up test 2025-10-24 08:09:14 +02:00
Christoph Völker
d57274b26d test(developer): add unit test for Warn_PreviousMapFileCouldNotBeLoaded and raise coverage threshold to 75% 2025-10-23 21:03:52 +02:00
Marc Durdin
c6a96fc457 fix(developer): handle missing begin Unicode in KMW compiler
This probably arose with the move to kmcmplib in WASM, and as it was
never unit tested, we missed it. A simple signed vs unsigned issue.

Fixes: #14411
Test-bot: skip
2025-10-23 15:08:12 +02:00
Marc Durdin
a6f476e557 fix(developer): do not treat backslash as a string escape in syntax highlighting
Adjust two incorrect rules that caused backslash to be treated as an
escape in strings in syntax highlighting in .kmn language.

Fixes: #14988
Test-bot: skip
Build-bot: skip
2025-10-23 11:55:17 +02:00
DavidLRowe
618fd3b1a0
Update keyboard-editor.md
I think this change avoids the misunderstanding that deleting the rightmost ("last") key on the row will delete the entire row.
2025-10-09 11:20:52 -08:00
Eberhard Beilharz
f8ab9c7192
Update developer/docs/help/reference/file-types/metadata.md
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-09-17 08:12:14 +02:00