Commit graph

4544 commits

Author SHA1 Message Date
Marc Durdin
3a91c7d197 chore(developer): move IDEOptions key responsibility into KeymanDeveloperOptions
First part of addressing #10161 is to refactor the existing usage of the
registry values into the common KeymanDeveloperOptions unit. This was
mostly straightforward except for the changes to KeymanSentryClient,
which happens to be the most important part of this particular fix.
2023-12-11 13:48:43 +07:00
Marc Durdin
d99c4cd669 chore(web): update LexicalModelCompiler call 2023-12-11 12:21:20 +07:00
Marc Durdin
52038e22aa chore(developer): remove unintended usage of callbacks.path/callbacks.fs in kmc 2023-12-11 11:43:24 +07:00
Marc Durdin
f9c3be09a6 refactor(developer): move outFile out of CompilerBaseOptions
`outFile` is not a compiler option, and so it should not be a part of
the `CompilerBaseOptions` interface. This formally separates the
command-line options from the compiler options, which eliminates a
number of restrictive structures.
2023-12-11 09:47:23 +07:00
Joshua Horton
0825db270f
chhcore(web): Update gestureDebugPath.ts
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-12-09 09:20:55 +07:00
Joshua Horton
2511e37dcc
Merge pull request #10190 from keymanapp/chore/merge-master-into-feature-gestures
chore: merge master into feature-gestures 🐵
2023-12-08 23:06:08 +07:00
Joshua Horton
cfedbc7410
Merge pull request #10185 from keymanapp/fix/common/models/worker-reset-context
fix(common/models): lm-worker context resets didn't properly manage context cache 🐵
2023-12-08 15:36:35 +07:00
Joshua A. Horton
e55daa6a83 fix(web): fixes within-branch bugs from prior commits 2023-12-08 11:51:43 +07:00
Joshua A. Horton
aebdc6a0d7 feat(web): adds gesture-engine path-segment-start replacement 2023-12-08 11:51:42 +07:00
Joshua A. Horton
b98a7c455e change(web): changes model-path evaluate signature 2023-12-08 11:50:36 +07:00
Joshua A. Horton
a8e732033a fix(web): post-rebase export mixup 2023-12-08 11:49:50 +07:00
Joshua A. Horton
a975bc1347 chore(web): updates test resources, specs 2023-12-08 11:48:55 +07:00
Joshua A. Horton
3e1ac6701c refactor(web): differentiated path/src types - default no longer persists all coords 2023-12-08 11:48:50 +07:00
Joshua A. Horton
00e902566b change(web): gesture processing stats-object based aside from subviews 2023-12-08 11:48:24 +07:00
Marc Durdin
aa458152cf
Merge branch 'feature-gestures' into chore/merge-master-into-feature-gestures 2023-12-08 14:24:38 +11:00
Joshua A. Horton
9470c8a55c chore(web): adds 'private' keyword on a method 2023-12-08 09:18:08 +07:00
Joshua A. Horton
c43a2a4cfe fix(common/models): lm-worker reset context didn't clear context cache 2023-12-08 09:13:48 +07:00
Joshua A. Horton
2f2195e645 fix(common/models): worker reset context did not auto-tag new context 2023-12-08 09:11:33 +07:00
Joshua Horton
a4373f16aa
chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-12-08 08:22:31 +07:00
Eberhard Beilharz
289e07572e
Merge pull request #10141 from keymanapp/fix/web/10099_null-property
fix(web): Fix null error with legacy keyboards
2023-12-07 08:13:38 +01:00
Joshua A. Horton
1a1a9712f3 fix(web): heterogenous longpress roaming 2023-12-07 11:17:47 +07:00
Marc Durdin
6bebefda10 feat(developer): move kmc-kmn to KeymanCompiler interface
Part of #9473.

KmnCompiler now implements KeymanCompiler, including the returned
artifacts. Also establishes the common types for the compiler interfaces
and consolidates and renames various API surfaces for kmc-kmn.
2023-12-07 11:05:31 +07:00
Joshua Horton
ef901a53d0
Merge pull request #10014 from keymanapp/fix/web/unwanted-banner-retoggle
fix(web): accidental suggestion-banner retoggle when disabling predictions
2023-12-07 09:52:21 +07:00
Eberhard Beilharz
38c783935e
fix(web): Fix null error with legacy keyboards
This uses a different approach in response to code review.

Fixes #10099.
2023-12-06 16:45:18 +01:00
Marc Durdin
d693bbd457 chore: address review comments 2023-12-06 13:00:04 +07:00
Marc Durdin
a330666515 fix(common): kpj loader needs to handle empty Files element
Fixes #10143.
2023-12-06 12:37:25 +07:00
Marc Durdin
6c918e6aa8 fix(developer): Option to disable prompting for project upgrade
Fixes #10146.

Some developers may wish to stick with kpj-1.0 for now, and the prompt
to upgrade would annoying because it cannot be hidden. This resolves
that.

Note that I haven't at this point renamed UrlRenderer.pas, although it
may be worth considering in the future.
2023-12-06 09:54:12 +07:00
Marc Durdin
56d5f379df
Merge pull request #10114 from keymanapp/feat/developer/multi-process-file-loading
feat(developer): Multi-process model for projects 🦕
2023-12-06 10:50:47 +11:00
Eberhard Beilharz
b58dcbcc3d
fix(web): Fix null error with legacy keyboards
Fixes #10099.
2023-12-05 18:11:18 +01:00
Joshua A. Horton
e9dd7a1216 chore(web): marks new default key's ID as private use 2023-12-05 08:47:40 +07:00
Joshua A. Horton
094492775b change(web): adds a 'default' nextlayer key in default shift-multitap rota 2023-12-05 08:44:11 +07:00
Joshua A. Horton
3c4e5d6ebd chore(web): Merge branch 'master' into chore/web/conflict-fix 2023-12-01 14:16:18 +07:00
Marc Durdin
39b7c882a3 feat(developer): Multi-process model for projects 🦕
This is a bit of an omnibus commit, apologies for that. This commit
moves Keyman Developer to a proper multi-process model, where editing
files from multiple projects is handled much more cleanly, with each
project loaded in a separate process.

Files that are edited outside of a project structure are loaded into a
'temporary project' in a single process, which provides a pathway for
existing users who may have legacy files outside the normal Keyman
Developer project model.

There are several components to this:

1. Inter-process communication (Multiprocess, CopyDataHelper units and
   multiprocess test project). These modules establish a method of
   enumerating running Keyman Developer instances (with EnumWindow),
   recording relevant metadata for each instance (by thread id) in the
   registry (registry used because it manages contention without
   additional effort from us), and communicating between processes with
   WM_COPYDATA.
2. Command-line parsing (TikeCommandLine). Determines project ownership
   (ProjectOwningFile) for each filename passed on the command-line, and
   passes these over to existing instances of Keyman Developer that have
   that project loaded, or starts new instances as needed.
3. Temporary project management. Mostly in ProjectUI.

Also, moved GlobalProjectStateWnd management out of ProjectFile.pas and
into Project.pas, alongside other global project variables.

A follow-up will add functionality to determine if a file opened within
the Keyman Developer UI should open in the same instance or in a
separate instance (see TfrmKeymanDeveloper.OpenFileInProject). This will
use the same methodology as TikeCommandLine does now, so may involve
further refactoring.

This commit establishes the idea of 'keyman.kpj' as a future default
filename for Keyman Developer projects, but does not enable it, in
ProjectOwningFile. It is planned to introduce this fixed filename in
version 18.0 (see #10113).
2023-12-01 11:48:09 +07:00
Joshua Horton
8e272d8d55
Merge pull request #10061 from keymanapp/fix/android/banner-event-loop
fix(android): no suggestions available when swapping pred-text target language 
2023-12-01 09:13:01 +07:00
Eberhard Beilharz
de2fb3aeac
Merge pull request #10089 from keymanapp/chore/web/sourcemap
fix(web): Also move source map
2023-11-29 09:41:01 +01:00
Marc Durdin
3ef4dc7f84
Merge pull request #10016 from keymanapp/fix/developer/project-internal-paths
fix(developer): projects 2.0 internal path enumeration 🦕
2023-11-29 16:50:25 +11:00
Eberhard Beilharz
7e47fa29e6
fix(web): Also move source map
Previously we renamed `dom-keyboard-loader.mjs` but forgot to move
the source map along.
2023-11-28 17:47:09 +01:00
Steven R. Loomis
02c8db9fdd
Merge branch 'master' into feat/developer-9446-bad-unicode-epic-ldml 2023-11-25 14:08:41 -06:00
Steven R. Loomis
d18134fcb3 feat(common): ldml improve bad character code 🙀
- use constants for PUA

For: #9446
2023-11-25 14:08:16 -06:00
Steven R. Loomis
bb63ba8a66
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-11-25 13:51:53 -06:00
Joshua A. Horton
736e06fd90 chore(web): drops single-use protected prop 2023-11-24 11:58:57 +07:00
Joshua A. Horton
129e193a13 chore(web): fully removes all remaining subsegmentation bits and baubles 2023-11-24 11:58:02 +07:00
Joshua A. Horton
12aad6ca25 fix(web): simplified mean 2023-11-24 11:55:26 +07:00
Joshua A. Horton
b9a584a141 docs(web): updates comments for the two path-stats variants 2023-11-24 11:46:40 +07:00
Joshua A. Horton
c86d417308 chore(web): splits path-stats object into simpler + full; full tree-shakes out 2023-11-24 11:41:28 +07:00
Joshua Horton
6f38fde42b
Merge pull request #10074 from keymanapp/chore/merge-master-into-feature-gestures
chore: merge master into feature-gestures 🐵
2023-11-24 11:36:56 +07:00
Joshua A. Horton
40f9e6ebd8 chore(web): Merge branch 'feature-gestures' into chore/merge-master-into-feature-gestures
Involved splicing feature-gestures banner changes into the newly-separated banner sources.
2023-11-24 08:29:39 +07:00
Eberhard Beilharz
f56033f537 chore(web): Add TAB output to test keyboard 2023-11-23 18:02:36 +01:00
Eberhard Beilharz
ef8b9888c8 chore(web): Update touch layout 2023-11-23 17:22:24 +01:00
Eberhard Beilharz
fb7c19fee4
chore(core): Add test keyboard for text selection tests
Part of #9073.
2023-11-23 10:51:59 +01:00