Commit graph

3067 commits

Author SHA1 Message Date
Joshua A. Horton
de5354b843 change(web): modularizes ModelManager 2023-03-20 09:25:06 +07:00
Joshua A. Horton
8a13a4e64d change(web): webview context configuration + connections 2023-03-17 14:10:05 +07:00
Joshua A. Horton
7be31d0372 refactor(common/web): PredictionContext reuse on context change, postApplication cleanup 2023-03-17 14:09:48 +07:00
Joshua A. Horton
0e3d995a81 chore(common/web): simplification tweak for Mock cloning 2023-03-17 14:06:18 +07:00
Joshua A. Horton
e00f157150 feat(common/web): mock selection unit tests 2023-03-17 13:17:34 +07:00
Joshua A. Horton
0f754f9be7 feat(common/web): mocks may now model selected text 2023-03-17 12:48:07 +07:00
Joshua A. Horton
581babe503 chore(web/engine): Merge branch 'feature-esmodule-web-engine' into change/web/engine-configuration 2023-03-17 09:06:03 +07:00
Joshua A. Horton
7ee7c6c917 chore(web): Merge branch 'change/web/osk-and-key-event-integration' into change/web/keyboard-requisition 2023-03-17 08:44:46 +07:00
Joshua A. Horton
2c702f7b6d chore(web): Merge branch 'change/web/top-level-modularization-design' into change/web/osk-and-key-event-integration 2023-03-17 08:31:12 +07:00
Joshua A. Horton
cdbd347af2 change(common/web): defaultOutput -> defaultRules 2023-03-17 08:28:57 +07:00
Joshua A. Horton
18b6c83597 chore(web): minor toolchain tweak 2023-03-15 10:46:47 +07:00
Joshua A. Horton
ebf100260b change(web): handling of embed/webview cache busting 2023-03-15 08:26:35 +07:00
Joshua A. Horton
b34cdb9c84 chore(web): Merge branch 'change/web/osk-and-key-event-integration' into change/web/keyboard-requisition 2023-03-14 13:11:34 +07:00
Joshua A. Horton
208dd453c1 chore(web): Merge branch 'change/web/top-level-modularization-design' into change/web/osk-and-key-event-integration 2023-03-14 13:09:51 +07:00
Joshua A. Horton
24c5ba3bec chore(web): Merge branch 'change/web/child-script-pattern' into change/web/top-level-modularization-design 2023-03-14 12:48:15 +07:00
Joshua A. Horton
f7d082981c chore: Merge branch 'master' into chore/feature-esmodule-master-update 2023-03-14 11:51:57 +07:00
Joshua A. Horton
d0d7b38ad7 chore(web): input-processor patchup, kmc-model as builder dep 2023-03-14 09:39:50 +07:00
Joshua A. Horton
befc3b4b3a chore(common): keyman-version clean action was incomplete 2023-03-14 09:39:09 +07:00
Joshua A. Horton
842f246e0f fix(common/web): unit-test patchup after sandbox pr spin-off 2023-03-14 09:27:24 +07:00
Joshua A. Horton
f5e64a10a5 chore: Merge branch 'chore/common/ldml-ts-and-node-updates' into chore/feature-esmodule-master-update 2023-03-14 09:23:39 +07:00
Joshua A. Horton
2439ba4e97 fix(developer): updates kmc, web/types module resolution, adds missing type import/exports 2023-03-14 08:41:29 +07:00
Joshua A. Horton
0da7ac24be chore(common): updates TS, sets export map for keyman-version 2023-03-14 08:22:26 +07:00
Joshua A. Horton
47dfb155e1 chore(common/web): touchup regarding registerStub func 2023-03-13 10:51:48 +07:00
Joshua A. Horton
248eb6e92a feat(web): unit tests for loading of cloud-queried keyboards 2023-03-13 10:27:05 +07:00
Marc Durdin
578b79e739 chore(common): fix typo 2023-03-13 08:08:10 +07:00
Marc Durdin
92ed99c4d6 chore(common): build script performance improvements
Improves build script performance by:
* using built-ins wherever possible (e.g. string splitting)
* eliminating redundant code
* using absolute (to $KEYMAN_ROOT) rather than relative paths to avoid realpath
* removing unnecessary `npm run` calls

BEFORE                         | AFTER
-------------------------------|----------------------
time ./core/build.sh --help    |
real    0m2.116s               | real    0m0.874s
user    0m0.578s               | user    0m0.198s
sys     0m0.984s               | sys     0m0.289s
-------------------------------|----------------------
time ./web/build.sh --help     |
real    0m3.523s               | real    0m0.757s
user    0m1.166s               | user    0m0.320s
sys     0m2.273s               | sys     0m0.455s
-------------------------------|----------------------
time ./web/build.sh -d         |
real    1m34.750s              | real    0m59.974s
user    0m9.721s               | user    0m6.284s
sys     0m19.652s              | sys     0m13.202s

@keymanapp-test-bot skip
2023-03-13 07:18:09 +07:00
Joshua A. Horton
f76e785ff6 feat(common/web): parallel keyboard loading tests 2023-03-09 09:26:22 +07:00
Marc Durdin
8251ec861a chore: cleanup additional --debug references 2023-03-08 05:46:32 +07:00
Joshua A. Horton
595411beb3 change(common/web): activeKeyboard vs loadedKeyboard 2023-03-04 09:49:54 +07:00
Marc Durdin
06afdd262b chore(common): cleanup build.inc.sh echo
Makes the output of log messages from builder scripts more consistent,
and uses color more effectively to highlight specific parts of lines.
2023-03-01 14:51:08 +07:00
Joshua A. Horton
629b985ccd change(web): keyboard requisitioner - addKeyboardArray, addLanguageKeyboards 2023-03-01 14:47:08 +07:00
Joshua A. Horton
1dad3b902c change(common/web): default K_oE2 output 2023-02-28 08:42:09 +07:00
Joshua A. Horton
39a807eeb1 change(web): engine key event forwarding, osk path config 2023-02-28 08:42:08 +07:00
Joshua A. Horton
d25b1ae846 change(web): modularizes extension of DefaultOutput rules 2023-02-28 08:36:40 +07:00
Joshua A. Horton
7c9c5a6d3f change(web): minor progress across multiple files, some legacy events 2023-02-28 08:34:50 +07:00
Joshua A. Horton
367d66e33b change(web): starts on modularized ContextManager base class, top-level module design 2023-02-28 08:34:45 +07:00
Marc Durdin
be4f036a3c feat(developer): Add support for building a folder to kmc
Relates to #2761.

kmc now supports passing in a folder and building all Keyman source
files found in the folder, even if a .kpj is not present in the folder.

If a .kpj file exists, `KeymanDeveloperProject/Options/Version` will be
checked to determine behaviour. If this field is missing or "1.0", then
the classical behaviour persists.

If the Version field is "2.0", the `Files` key is ignored, and .kmn,
.xml, .model.ts, and .kps files under `sourcePath` are enumerated and
added to the in-memory project for build.

If a .kpj is not present in the folder, a virtual project is constructed
in memory with the following defaults:

* `version`: `2.0`
* `buildPath`: `$PROJECTPATH/build`
* `sourcePath`: `$PROJECTPATH/source`
* `compilerWarningsAsErrors`: `false`
* `warnDeprecatedCode`: `true`
* `checkFilenameConventions`: `true`

It is still considered an error to include both a keyboard and a model
in the same file, but a version 2.0 project will not include the field
determining its type in `Options/ProjectType`; this will instead be
checked during build.

The call to `kmc` can reference a folder or a .kpj file. The .kpj file
must have the same basename as the folder name (e.g.
`khmer_angkor/khmer_angkor.kpj`).

WARNING: this does not add support for 2.0 projects to Keyman Developer;
it is likely that opening a version 2.0 project in Developer will
currently corrupt it.

WARNING: it is not anticipated that kmcomp.exe will be updated to
support version 2.0 projects -- rather kmcomp.exe will be removed before
release of v17, and replaced with kmc.
2023-02-27 13:11:22 +07:00
Marc Durdin
b04489a47b feat(developer): kmc .kpj support
Adds support for building .kpj projects. Required minor tweak to kmcomp
to allow it to build both .kmx and .js from .kmn command line.
Currently, calls kmcomp.exe to build .kmn files, until we support a
cross-platform kmc-kmn C++ project.
2023-02-27 06:14:06 +07:00
Marc Durdin
35c706576b chore(common): export kpj from module 2023-02-26 06:02:43 +07:00
Marc Durdin
647803ef28 feat(common): add .kpj typescript reader and schema 2023-02-25 11:17:39 +07:00
Joshua Horton
2fcd801119
Merge pull request #8271 from keymanapp/chore/web/namespaced-main
chore(web): renames folder for namespaced Web code 🧩
2023-02-24 08:15:38 +07:00
Joshua Horton
ba328a7cb1
Merge pull request #8270 from keymanapp/refactor/web/common-configuration
refactor(web): common config for both types of Keyman Engine for Web 🧩
2023-02-24 08:15:32 +07:00
Joshua Horton
ee9ab544b7
Merge pull request #8269 from keymanapp/change/web/keyboard-cache-fetch-modularization
change(web): keyboard caching, fetching modularization 🧩
2023-02-24 08:15:23 +07:00
Marc Durdin
a2ceb98948 chore: rewrite extra standard build script prolog 2023-02-23 08:09:41 +07:00
Marc Durdin
9eb472579c chore: Merge branch 'feature-ldml' into chore/merge-master-to-feature-ldml-A17S7-2 2023-02-23 08:05:31 +07:00
Marc Durdin
a0ecb30a9c
Merge pull request #8265 from keymanapp/feat/developer/epic-ldml/7238-touch-layout-compiler
feat(developer): touch layout compiler for LDML 🙀
2023-02-23 08:47:46 +11:00
Marc Durdin
def625525f
Merge pull request #8286 from keymanapp/chore/A17S7-master-to-feature-ldml
chore: merge master into feature-ldml A17S7 🙀
2023-02-23 08:47:27 +11:00
Marc Durdin
ce864ea923 chore: update standard script prolog to use builtin instead of dirname 2023-02-22 11:04:15 +07:00
Marc Durdin
463c7ff907 chore: remove greadlink from standard script prolog 2023-02-22 10:43:06 +07:00
Marc Durdin
e645b8665f chore: Merge branch 'feature-ldml' into chore/A17S7-master-to-feature-ldml
* core/build.sh -- accept feature-ldml changes (remove call to get_builder_OS)
* developer/src/kmlmc/build.sh -- delete file
*	linux/debian/rules -- accept master changes, fixup call to core/build.sh
*	linux/ibus-keyman/tests/Makefile.am -- accept master changes, fixup call to core/build.sh
*	linux/scripts/build.sh -- accept master changes, fixup call to core/build.sh
*	linux/scripts/reconf.sh -- accept master changes
2023-02-22 08:00:08 +07:00