Marc Durdin
c8376f95e6
chore: update 19.0 to 20.0 in docs and strings
...
Test-bot: skip
2026-10-06 15:08:01 +02:00
Marc Durdin
9ad48b66a4
Merge pull request #16726 from keymanapp/chore/common/remove-unused-clearcontext-fix-switch-key-codes
...
chore(common): remove `clearcontext`,`fix`,`switch`,`key` statements
2026-10-06 10:48:53 +02:00
Marc Durdin
3743fd989b
Merge pull request #16724 from keymanapp/maint/common/code__size
...
chore(common): move CODE__SIZE declaration to common
2026-10-06 10:48:29 +02:00
Marc Durdin
6d26b05d85
Merge pull request #16723 from keymanapp/fix/developer/16718-statement-use-in-stores
...
fix(developer): emit compile error when unsupported statements encountered in stores
2026-10-06 10:48:11 +02:00
Marc Durdin
00bfd7f15e
Merge pull request #16717 from keymanapp/fix/developer/16716-warn-on-vk-in-store-index-statement
...
fix(developer): check `any()` and `index()` for invalid use of virtual keys
2026-10-06 10:47:48 +02:00
Marc Durdin
92111eda18
Update developer/src/kmc-kmn/test/fixtures/invalid-keyboards/error_store_contains_unsupported_statement-return.kmn
...
Build-bot: skip
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-10-06 10:00:10 +02:00
Marc Durdin
3c8304ed94
Merge pull request #16710 from keymanapp/chore/developer/16699-warn-on-deprecated-language-features
...
chore(developer): warn on v19 deprecated language features
2026-10-06 07:51:09 +02:00
Marc Durdin
a056d41168
fix(developer): add check for notany for invalid virtual key use
2026-10-06 06:39:02 +02:00
Marc Durdin
10c2402934
chore(developer): add comments for deleted tokens
...
Build-bot: skip
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-10-06 06:29:16 +02:00
Marc Durdin
31aeaf2c52
chore(developer): fix typo in unit test fixture
2026-10-06 06:19:52 +02:00
Marc Durdin
342e543a98
Apply batched suggestions from code review
...
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-10-06 06:13:20 +02:00
Marc Durdin
7d4b19cdba
Merge pull request #16692 from keymanapp/dependabot/npm_and_yarn/multer-2.4.0
...
chore(deps): bump multer from 2.3.0 to 2.4.0
2026-10-05 15:55:59 +02:00
Marc Durdin
bc8c9b289d
Merge pull request #16698 from keymanapp/dependabot/npm_and_yarn/developer/src/server/src/win32/trayicon/addon-src/ip-address-10.7.2
...
chore(deps): bump ip-address from 10.5.0 to 10.7.2 in /developer/src/server/src/win32/trayicon/addon-src
2026-10-05 15:45:49 +02:00
Marc Durdin
669ca4b6fd
chore(common): remove clearcontext,fix,switch,key statements
...
Remove compiler support for `clearcontext`, `fix`, `switch` statements
and remove corresponding `CODE_` definitions, as well as `CODE_KEY`,
which was never used.
These four statements have never been documented and have either never
been implemented, or long been unsupported. An earlier change (#16445 )
marked `clearcontext` and `fix` as deprecated for v19 onwards, but
deprecation for an undocumented language feature is an unnecessary step,
so have opted to remove altogether in v19 to reduce complexity. This
means that `VERSION_190` is used now only for compile target
deprecations.
Follows: #16445
Test-bot: skip
2026-10-05 08:09:12 +02:00
Marc Durdin
620d736c0e
chore(common): move CODE__SIZE declaration to common
...
Remove duplicate CODE__SIZE C++ declarations.
Test-bot: skip
2026-10-03 12:17:39 +02:00
Marc Durdin
ef212c7e66
fix(developer): emit compile error when unsupported statements encountered in stores
...
When a store contains any unsupported statement (any, baselayout, beep,
call, context, if, index, layer, notany, nul, platform, reset, save,
set, use) or undocumented statement (clearcontext, fix, switch), then
emit a compile error. Previously, compiler would not detect use of these
statements in stores, which could lead to undefined behaviour at
runtime.
At time of writing, eight keyboards in the keyboards repository
(clavbur9, hausa_ajami_qwerty, sil_cameroon_qwerty, sil_cameroon_azerty,
sil_dzongkha, sil_yoruba8, sil_yoruba_bar, sil_yoruba_dot) make use of
either beep or nul in stores. Due to compiler unfolding of any/index
statements for key part of the rule, these would work in some cases, but
this was never supported explicitly nor completely, and so at this point
it is better to prevent misuse and add full support as a future task.
Fixes : #16718
Test-bot: skip
2026-10-03 11:41:42 +02:00
Marc Durdin
6ce0b0e1ac
fix(developer): check any() and index() for invalid use of virtual keys
...
Test is done in kmc-kmn, not kmcmplib, to match existing tests.
Fixes : #16716
2026-10-02 11:56:38 +02:00
Marc Durdin
45755d3894
chore(developer): warn on v19 deprecated language features
...
* Add deprecation warnings for legacy character code formats, legacy
`VERSION` header statement (was missing when other header statements
were checked), `$keymanonly` and `$keymanweb` compile targets.
* Make existing deprecation checks consistent and shift to
DeprecationChecks.cpp.
* Add unit tests for all deprecated features.
Fixes : #16699
Test-bot: skip
2026-10-02 08:54:10 +02:00
Marc Durdin
4803850814
Merge pull request #16694 from keymanapp/fix/developer/16682-handle-unpaired-surrogates-in-editor-safely
...
fix(developer): transform unpaired surrogates in editor to U+FFFD
2026-09-30 06:56:54 +02:00
Marc Durdin
a6f60e16e9
Merge pull request #16686 from keymanapp/fix/developer/16683-kmc-generate-git-ignore-fix
...
fix(developer): handle .gitignore in npm-based installations of kmc-generate
2026-09-30 06:21:52 +02:00
Marc Durdin
d6042f989e
Apply suggestion from @ermshiperete
...
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-09-30 06:21:10 +02:00
Marc Durdin
a63a131c36
Merge pull request #16697 from keymanapp/fix/developer/16681-kmc-package-empty-keyboard-name
...
fix(developer): handle missing `&name` store in package compiler
2026-09-30 06:19:40 +02:00
dependabot[bot]
9a2f95b654
chore(deps): bump ip-address
...
Bumps [ip-address](https://github.com/beaugunderson/ip-address ) from 10.5.0 to 10.7.2.
- [Release notes](https://github.com/beaugunderson/ip-address/releases )
- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.5.0...v10.7.2 )
---
updated-dependencies:
- dependency-name: ip-address
dependency-version: 10.7.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-29 07:45:24 +00:00
Marc Durdin
53a190b1ae
fix(developer): handle missing &name store in package compiler
...
If a .kmx file did not include an `&name` store, then the compiler would
fail with an internal error. In this situation, fall back to the kmx id
(filename without extension).
Fixes : #16681
Fixes: KEYMAN-DEVELOPER-218
Test-bot: skip
2026-09-29 08:45:52 +02:00
Marc Durdin
27d354cf10
fix(developer): transform unpaired surrogates in editor to U+FFFD
...
Avoid `URIError` in `encodeURIComponent()` by transforming any unpaired
surrogates in text editor buffer to `U+FFFD`` before sending data to
backend.
Fixes : #16682
Fixes: KEYMAN-DEVELOPER-39T
Test-bot: skip
2026-09-29 06:54:01 +02:00
dependabot[bot]
208ea6c153
chore(deps): bump multer from 2.3.0 to 2.4.0
...
Bumps [multer](https://github.com/expressjs/multer ) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/expressjs/multer/releases )
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/expressjs/multer/compare/v2.3.0...v2.4.0 )
---
updated-dependencies:
- dependency-name: multer
dependency-version: 2.4.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-29 01:25:52 +00:00
Marc Durdin
556f2864b8
fix(developer): handle .gitignore in npm-based installations of kmc-generate
...
npm does not package .gitignore files, which was causing the templates
to be incomplete and made kmc-generate crash when installed through npm.
Rename the file to 'gitignore' within the template, and dynamically
handle it during the run to workaround.
Fixes : #16683
Fixes: KEYMAN-DEVELOPER-2QS
2026-09-28 15:01:02 +02:00
Marc Durdin
e36b009a83
fix(developer): support Rich Edit in Charmap drag + drop
...
RichEdit controls have different parameters for EM_CHARFROMPOS.
Fixes : #16684
Fixes: KEYMAN-DEVELOPER-2S7
Test-bot: skip
2026-09-28 14:29:06 +02:00
Marc Durdin
75c5d8f416
Merge pull request #16665 from keymanapp/chore/developer/16646-touch-layout-editor-build
...
chore(developer): cleanup tike build.sh for touch-layout-editor
2026-09-25 15:51:46 +02:00
Marc Durdin
1afa9aca5d
Merge pull request #16661 from keymanapp/docs/web/16660-deprecate-moveToElement
...
docs(web): deprecate `keyman.moveToElement(elem)` API
2026-09-25 15:26:24 +02:00
Marc Durdin
5dd81f8b8b
Merge pull request #16543 from keymanapp/dependabot/npm_and_yarn/multer-2.3.0
...
chore(deps): bump multer from 2.2.0 to 2.3.0
2026-09-25 13:52:51 +02:00
Marc Durdin
21f6ef7161
chore(developer): cleanup tike build.sh for touch-layout-editor
...
And add another TODO comment for #16646 .
Relates-to: #16646
Test-bot: skip
2026-09-25 13:27:03 +02:00
Marc Durdin
5e710f885c
docs(web): deprecate keyman.moveToElement(elem) API
...
Use instead `elem.focus()`.
Fixes : #16660
Test-bot: skip
2026-09-25 08:19:57 +02:00
dependabot[bot]
ed4d33f5b8
chore(deps-dev): bump grunt
...
Bumps [grunt](https://github.com/gruntjs/grunt ) from 1.4.1 to 1.5.3.
- [Release notes](https://github.com/gruntjs/grunt/releases )
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG.md )
- [Commits](https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.3 )
---
updated-dependencies:
- dependency-name: grunt
dependency-version: 1.5.3
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-24 08:04:06 +00:00
Marc Durdin
d7e231a919
chore(developer): Merge branch 'change/developer/touch-layout-reorganize-files' into change/developer/touch-layout-editor-typescript
2026-09-24 09:06:57 +02:00
Marc Durdin
7bdf62f0bf
chore(developer): Merge branch 'master' into change/developer/touch-layout-reorganize-files
2026-09-24 09:05:12 +02:00
Marc Durdin
641fe66396
Merge branch 'change/developer/touch-layout-reorganize-files' into change/developer/touch-layout-editor-typescript
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-21 13:41:43 +07:00
Marc Durdin
c6c528c055
Merge branch 'master' into change/developer/touch-layout-reorganize-files
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-21 13:41:35 +07:00
Marc Durdin
e0fb38b211
Merge branch 'master' into fix/developer/touch-editor-crashes
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-21 13:41:00 +07:00
Marc Durdin
a522982dac
fix(developer): address crashes in touch layout editor
...
Crashes reported in user testing on #16520 .
* Fix crash selecting layer after deleting a layer (from #16509 )
* Fix crash resetting 'next layer' for flicks after layer deletion
(long-standing issue)
See-also: #16509
See-also: #16520
Cherry-picked-from: 099d039952
2026-09-16 05:52:48 +02:00
Marc Durdin
099d039952
fix(developer): address crashes in touch layout editor
...
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
* Fix crash dropping chars from character map (new issue)
* Fix crash deleting layers (from #16509 )
* Fix crash resetting 'next layer' for flicks after layer deletion
(long-standing issue)
2026-09-16 05:48:13 +02:00
Marc Durdin
05a78f3e69
Merge pull request #16538 from keymanapp/fix/developer/12668-trim-new-words-in-wordlist-editor
...
fix(developer): trim new words entered into the wordlist editor
2026-09-16 10:20:04 +07:00
Marc Durdin
5d98b66c2e
Merge pull request #16539 from keymanapp/maint/developer/remove-ajv-dep-from-kmc-convert
...
maint(developer): remove unused ajv dependency from kmc-convert
2026-09-10 11:46:29 +07:00
dependabot[bot]
b02ff51ba5
chore(deps): bump multer from 2.2.0 to 2.3.0
...
Bumps [multer](https://github.com/expressjs/multer ) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/expressjs/multer/releases )
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/expressjs/multer/compare/v2.2.0...v2.3.0 )
---
updated-dependencies:
- dependency-name: multer
dependency-version: 2.3.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 22:20:50 +00:00
dependabot[bot]
cb0c368478
chore(deps): bump qs and express
...
Bumps [qs](https://github.com/ljharb/qs ) to 6.16.0 and updates ancestor dependency [express](https://github.com/expressjs/express ). These dependencies need to be updated together.
Updates `qs` from 6.15.2 to 6.16.0
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.16.0 )
Updates `express` from 4.22.2 to 5.2.1
- [Release notes](https://github.com/expressjs/express/releases )
- [Changelog](https://github.com/expressjs/express/blob/master/History.md )
- [Commits](https://github.com/expressjs/express/compare/v4.22.2...v5.2.1 )
---
updated-dependencies:
- dependency-name: express
dependency-version: 5.2.1
dependency-type: direct:production
- dependency-name: qs
dependency-version: 6.16.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-09-07 09:20:28 +00:00
Marc Durdin
81585e5744
maint(developer): remove unused ajv dependency from kmc-convert
...
Test-bot: skip
2026-09-07 10:25:45 +02:00
Marc Durdin
862c5cefa1
fix(developer): trim new words entered into the wordlist editor
...
Fixes : #12668
2026-09-07 10:01:12 +02:00
Marc Durdin
98fee32e90
change(developer): refactor constants into separate object in touch layout editor
...
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
In order to resolve initialization order (see instigating property
`builder.lastPresentations`), split all constants into a separate object
`builderConstants`, inverting the dependency, which is both cleaner and
the first step of removing the multi-module initialization of a single
`builder` variable.
2026-09-07 07:12:54 +02:00
Marc Durdin
d86b2b5926
chore(developer): move jquery and jqueryui types into source tree
...
Take the @types/jquery and @types/jqueryui packages out of the
devDependencies and place the index.d.[c]ts files into the ext folder.
This is needed because of fragility elsewhere with implicitly imported
types, which is described for resolution in #16535 . Keeping this as a
separate commit as preference would be to have these dependencies
managed through npm long-term.
See-also: #16535
2026-09-07 06:50:22 +02:00
Marc Durdin
c1abf5f7ba
change(developer): move touch layout editor to typescript
...
Make minimal changes to Touch Layout Editor source files in order to
build with Typescript with noImplicitAny=false (to be cleaned up later).
Also make source files accessible through the web server for Developer
Console use.
2026-09-07 06:50:17 +02:00