Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
Find a file
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
.github maint(windows): move to vs2026 arm runner for GHA 2026-08-21 11:46:17 +02:00
android chore(android): remove unused map-polyfill.js and es6-shim.min.js polyfills 2026-09-23 11:25:13 +02:00
common chore(common): fix TC reporter reporting failures 2026-09-23 21:43:07 +02:00
core Merge pull request #16502 from keymanapp/chore/developer/improve-kmc-ldml-test-messages 2026-09-03 21:48:19 +07:00
developer fix(developer): emit compile error when unsupported statements encountered in stores 2026-10-03 11:41:42 +02:00
docs Merge pull request #16445 from keymanapp/change/developer/14211-deprecate-fix-clearcontext 2026-09-01 22:32:31 +07:00
ios chore(android): upload webview source map during android and ios build 2026-08-27 18:57:18 +02:00
linux change(developer): deprecate fix, clearcontext, bump max .kmx version to 19.0 2026-08-27 09:24:50 +02:00
mac Merge pull request #16676 from keymanapp/fix/mac/config-menu 2026-09-28 16:31:16 -04:00
oem/firstvoices maint(windows): remove koSwitchLanguageForAllApplications, koAutoSwitchOSKPages, osVista, osWin7, osWin8, cleanup 2026-08-27 07:47:25 +02:00
resources maint(mac): use build/upload as upload path for downloads.keyman.com 2026-09-24 13:10:26 +02:00
web Merge pull request #16582 from keymanapp/maint/web/build-perf 2026-09-29 11:04:09 +02:00
windows Merge pull request #16544 from keymanapp/docs/windows/13703/remove-keep-in-touch-and-add-update-tab-docs-to-help-file 2026-09-24 10:23:01 +02:00
.clang-format feat(linux): work on 2nd round of comments on PR 11816 2024-06-20 17:44:21 +02:00
.editorconfig chore(linux): Address a few more lintian warnings 2022-03-15 15:32:10 +01:00
.eslintrc.cjs maint: patchup eslint configuration 2025-05-02 14:06:33 +07:00
.flake8 chore(linux): Add integration tests for ibus-keyman 2021-11-04 09:22:28 +01:00
.gitattributes maint(common): use LF line endings for scripts 2025-08-18 17:50:28 +02:00
.gitignore chore(developer): consolidate api-extractor usage in Developer 2026-06-24 14:45:05 +02:00
.nycrc.json feat(developer): fixup and prepare build scripts and docs for kmc 2022-09-19 06:36:06 +10:00
.shellcheckrc maint(linux): remove several shellcheck directives and warnings 2025-09-23 18:30:16 +02:00
build.sh maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-10-08 10:46:53 +11:00
configure-repo.sh chore: update docs and non-standard readlink refs 2023-02-22 10:41:54 +07:00
CONTRIBUTING.md chore: add maint to CONTRIBUTING.md 2025-04-29 11:15:55 +07:00
crowdin.yml fix(common): Remove custom language mappings in crowdin.yml 2026-01-13 10:49:52 +07:00
HISTORY.md auto: increment master version to 19.0.295 2026-09-28 13:01:20 -05:00
LICENSE.md maint(linux): fix lintian warnings 2025-05-13 20:07:32 +02:00
package-lock.json Merge pull request #16543 from keymanapp/dependabot/npm_and_yarn/multer-2.3.0 2026-09-25 13:52:51 +02:00
package.json change(developer): convert layout editor to esmodules and tsc build 2026-09-07 06:35:40 +02:00
README.md docs(common): update README with number of languages and keyboards 2025-05-21 20:36:20 +02:00
TIER.md Update TIER.md 2022-11-14 07:34:26 +11:00
tsconfig.base.json chore(common): disable strictNullChecks for TypeScript for now 2026-08-17 11:25:04 +02:00
tsconfig.json Merge branch 'epic/kmc-convert' into auto/A19S30-merge-master-into-kmc-convert 2026-06-02 13:24:54 +02:00
VERSION.md auto: increment master version to 19.0.295 2026-09-28 13:01:20 -05:00

Keyman

Keyman makes it possible for you to type in any language on Windows, macOS, Linux, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. Create keyboard layouts with Keyman Developer and share them with the community in the keyboards repository. The Keyman Community have so far contributed well over 1,000 keyboard layouts for over 2,500 languages!

License

Copyright (c) SIL Global.

Keyman is an open source project distributed under the MIT license.

Get Involved

Development Status

Important Links