Commit graph

19634 commits

Author SHA1 Message Date
Darcy Wong
1aecb95eff chore(common): Update crowdin strings for Simplified Chinese 2023-04-24 09:42:31 +07:00
Marc Durdin
9f150b99d4
Merge pull request #8642 from keymanapp/feat/developer/kmc-package-followkeyboardversion-support
feat(developer): support FollowKeyboardVersion in kmc-package
2023-04-24 11:53:43 +10:00
Marc Durdin
1e69c8326f
Merge pull request #8641 from keymanapp/feat/common/kmx-file-reader-ts
feat(common): kmx file reader
2023-04-24 11:53:35 +10:00
Marc Durdin
34ae4a1397 chore(developer): additional unit tests 2023-04-23 06:48:31 +07:00
Keyman Server
69e189aadf
Merge pull request #8649 from keymanapp/auto/version-master-17.0.93
auto: increment master version to 17.0.93
2023-04-22 01:02:44 +07:00
Keyman Build Agent
40d3236eff auto: increment master version to 17.0.93 2023-04-21 14:02:09 -04:00
Marc Durdin
66a7a6fc4e feat(developer): support FollowKeyboardVersion in kmc-package
Fixes #7340.

Removes the unused <Version> element from <LexicalModel> element in the
.kps schema. (This needs to be copied to api.keyman.com also.)

Updates compiler to check for <FollowKeyboardVersion> and read the
version data from the .kmx in that case.

Unit tests updated. Some of the fixtures were incorrect as they had
<FollowKeyboardVersion> set for model-type packages or packages that
contained no keyboards. Fixed.
2023-04-21 14:04:06 +07:00
Marc Durdin
8ec69471dc feat(common): kmx file reader
Read a .kmx file into memory in Typescript. Currently only reads stores
from the file, as these are the most common things needed for other
processes. Will add support for reading other metadata and rules in
future when required.
2023-04-21 11:52:18 +07:00
Marc Durdin
38ab39944c
Merge pull request #8637 from keymanapp/refactor/developer/kmc-model-CompilerEvent
refactor(developer): kmc-model to use `CompilerEvent`
2023-04-21 13:36:04 +10:00
Marc Durdin
d255639358
Merge pull request #8636 from keymanapp/refactor/developer/kmn_compiler_errors.h
refactor(developer): move comperr.h to kmn_compiler_errors.h
2023-04-21 13:35:55 +10:00
Marc Durdin
7615febe28
Merge pull request #8635 from keymanapp/chore/developer/only-run-keyboards-repo-tests-on-full-test
chore(developer): only run keyboards-repo tests for a full-test
2023-04-21 13:35:46 +10:00
Marc Durdin
469bee3f58
Merge pull request #8634 from keymanapp/fix/developer/kmc-package-path-ref
fix(developer): kmc-package path reference
2023-04-21 13:35:39 +10:00
Marc Durdin
e30c513fe5 chore(developer): add missing dependency 2023-04-21 08:18:07 +07:00
Keyman Server
30f1ca6274
Merge pull request #8640 from keymanapp/auto/version-master-17.0.92
auto: increment master version to 17.0.92
2023-04-21 01:03:50 +07:00
Keyman Build Agent
abecbb1083 auto: increment master version to 17.0.92 2023-04-20 14:03:15 -04:00
Marc Durdin
e0ed058e89 refactor(developer): kmc-model to use CompilerEvent
Replaces the existing error reporting in kmc-model with CompilerEvent
style messages. Some of the existing error reporting was kinda nice, but
consistency trumps pretty here.

One downside at present is the global filename and line variables in the
model-compiler-errors.ts unit. This is fragile, and should probably be
refactored further in the future.

Where it made sense, I converted various throws into ModelCompilerError
instances. If it appeared to be an internal error, I left it as-is, but
the external API interfaces wrap all unknown exceptions and convert them
into a compiler error message, so these APIs (compileModel and
loadFromFilename) now have a guarantee that they will never throw.

At this point, all of the error messages in the model compiler are
unrecoverable -- they will halt the compile entirely. However, the
pathway is there to support recoverable errors through the normal
callbacks.reportMessage mechanisms.

The message-counting mechanism is currently missing from this, as it
belongs in the API consumer, rather than in the low-level reporting
infrastructure. This means that models with large numbers of warnings
are going to generate scads of messages for now.

Note that the _users_ of CompilerCallbacks are subject to change in the
future, once we have all the compilers using the callbacks.
2023-04-20 16:40:04 +07:00
Marc Durdin
39d473fb2d refactor(developer): move comperr.h to kmn_compiler_errors.h
Consolidates the two copies of comperr.h (they were identical) and
moves to a common folder. Updates all references to comperr.h, except
for one github commit ref.
2023-04-20 13:20:29 +07:00
Marc Durdin
d9713a2e32 chore(developer): only run keyboards-repo tests for a full-test
If kmcmplib build includes the --full-test flag, then configure and run
tests that include pulling in the keyboards repo; otherwise skip all of
that.

This will require CI changes to run full tests, relating to #8361.
2023-04-20 12:59:00 +07:00
Marc Durdin
0e8861d407 fix(developer): kmc-package path reference 2023-04-20 12:05:26 +07:00
Darcy Wong
89b9b0c637
Merge pull request #8611 from keymanapp/fix/android/undo-suggestion
fix(android/engine): Fix resetContext calls when selection changes
2023-04-20 11:40:29 +07:00
Joshua Horton
4588fbcb68
Merge pull request #8629 from keymanapp/fix/common/web/pred-text-test-dependency
chore(web): sets kmc-model as dependency of input-processor test action
2023-04-20 11:24:25 +07:00
Marc Durdin
cc187ce858
Merge pull request #8628 from keymanapp/feat/developer/8150-non-binary-kvk-file-warning
feat(developer): warn if .kps file includes a non-binary .kvk file
2023-04-20 13:46:11 +10:00
Marc Durdin
c129dfe9a2
Merge pull request #8627 from keymanapp/feat/developer/8150-kmc-package-messages
feat(developer): add CompilerMessages support to kmc-package
2023-04-20 13:45:18 +10:00
Marc Durdin
954b1bc399
Merge pull request #8626 from keymanapp/refactor/developer/shared-test-helpers
refactor(developer): move shared test helpers into common
2023-04-20 13:45:10 +10:00
Marc Durdin
7d14ab4870
Merge pull request #8625 from keymanapp/feat/developer/kmc-kmn-use-new-message-infrastructure
feat(developer): use new message infrastructure in kmc-kmn
2023-04-20 13:45:01 +10:00
Marc Durdin
11058c4843
Merge pull request #8623 from keymanapp/feat/developer/kmc-warning-options
feat(developer): add warning options to kmc
2023-04-20 13:44:52 +10:00
Marc Durdin
cdc3775be9
Merge pull request #8622 from keymanapp/refactor/developer/build-activities-under-build
refactor(developer): move build activities
2023-04-20 13:44:44 +10:00
Marc Durdin
49c561c495
Merge pull request #8618 from keymanapp/fix/developer/8602-double-extension-on-model-build
fix(developer): kmc no longer emits double file extension for models
2023-04-20 13:44:37 +10:00
Marc Durdin
3cd8c5274e
Merge pull request #8617 from keymanapp/fix/developer/8615-kmc-fails-on-warnings
fix(developer): kmc-kmn would abort build on warnings
2023-04-20 13:44:29 +10:00
Marc Durdin
0ce42db399 chore: address review comments 2023-04-20 10:42:42 +07:00
Joshua A. Horton
78562a0bd9 chore(web): cleanup per PR reviews 2023-04-20 10:30:49 +07:00
Darcy Wong
6147fb6400 chore(android/engine): Also update ShouldIgnoreTextChange 2023-04-20 08:42:43 +07:00
Keyman Server
6281987453
Merge pull request #8633 from keymanapp/auto/version-master-17.0.91
auto: increment master version to 17.0.91
2023-04-20 01:02:34 +07:00
Keyman Build Agent
1f470e63bf auto: increment master version to 17.0.91 2023-04-19 14:01:55 -04:00
Marc Durdin
527ae24137
Merge pull request #8606 from keymanapp/fix/developer/8595-package-editor-lm-rtl
fix(developer): package editor no longer loses RTL flag for LMs
2023-04-19 19:52:31 +10:00
Marc Durdin
2f7407b4b8 feat(developer): warn if .kps file includes a non-binary .kvk file
Relates to #8150.

Legacy .kmp compiler would transform xml-format .kvk files into a binary
.kvk file; now we want that to remain the responsibility of the keyboard
compiler, so we'll warn the few users who are still doing this.
2023-04-19 15:32:29 +07:00
Marc Durdin
e89568c2d3 fix(developer): KmpCompiler call in kmlmp, kmlmi 2023-04-19 15:31:28 +07:00
Joshua A. Horton
60a7373046 fix(web): forgot to adjust calling script to changes 2023-04-19 15:19:52 +07:00
Joshua A. Horton
66da792319 chore(web): sets kmc-model as dependency of input-processor test action 2023-04-19 14:26:44 +07:00
Marc Durdin
88601f2409 feat(developer): add file-existence check to kmc-package 2023-04-19 12:44:52 +07:00
Marc Durdin
7644979dee chore(developer): unit test for absolute path warning 2023-04-19 12:17:29 +07:00
Marc Durdin
161fb924b9 feat(developer): add CompilerMessages support to kmc-package
Adds basic infrastructure for CompilerMessages events. Additional warnings,
errors, and hints to come.
2023-04-19 11:57:02 +07:00
Marc Durdin
5e1fbfa0b7 refactor(developer): move shared test helpers into common
Sadly, a lot of plumbing required to share code. But it should work now;
these test helpers are used only in dev so should not require
publication.
2023-04-19 11:43:27 +07:00
Marc Durdin
57bc98c096 chore(developer): ignore interface-only files for c8 2023-04-19 11:42:49 +07:00
Marc Durdin
1d496b7f6c chore(developer): ignore lexical-model.ts interface-only file for c8 2023-04-19 11:32:42 +07:00
Darcy Wong
f956d718a6
Merge pull request #8612 from keymanapp/chore/android/cleanup-old-sdk
chore(android/engine): Cleanup old SDK calls
2023-04-19 10:21:58 +07:00
Marc Durdin
c3b06ace63 chore(developer): add c8 exclusions to remaining modules 2023-04-19 10:18:18 +07:00
Marc Durdin
66542f6323 feat(developer): use new message infrastructure in kmc-kmn
Moves to using the `reportMessage` callback for reporting all errors in
kmc-kmn.

This required some patching to common/web/types in order to get the new
constants in place and add support for line numbers to `CompilerEvent`,
so at the same time I refactored `compilerErrorSeverityName` into the
module.

After the refactor, coverage tests were failing because they included
the test/ folder, so cleaned that up at the same time.
2023-04-19 10:13:14 +07:00
Darcy Wong
75d447cecc fix(android/engine): Revert change to KMTextView 2023-04-19 09:07:01 +07:00
Marc Durdin
2c8dadb327 feat(developer): add warning options to kmc
Adds --compiler-warnings-as-errors and --no-warn-deprecated-code options
to kmc command line and interfaces.

Note that most compilers do not yet honour these options, only kmc-kmn.

Both of these should be handled in error filtering and reporting rather
than at the compiler level, so management of these may be factored out
of kmcmplib and into kmc later (although this goal may be blocked by
kmcmpdll's need to also use them).
2023-04-19 05:35:39 +07:00