For Keyman Developer Server, add app.webmanifest so that it can be saved
to the home screen; other pages should not require this.
Fixes: #16172
Test-bot: skip
I uncovered one race, documented in the source. Not trying to resolve
that race at this time (it is not consequential). There is a second
condition which is unclear -- and may have other consequences. So report
a warning to Sentry when this arises, but do not crash out on the user.
Fixes: #11916
Test-bot: skip
* Remove Server's 'config.json' redundant user options handling
* Refactor options.ts in Server and kmc to share common cross-platform
code
* Move option defaults into common code and sync with .pas defaults
* Rename config.ts to standardPaths.ts to better represent the remaining
purpose of the module.
Fixes: #13458
Also address fixup after renaming a layer so that it does not touch the
key `layer` property, because that refers actually to "modifier", not
"layer" (these terms were conflated in the original design).
Fixes: #15340
Test-bot: skip
If a Keyman Cloud keyboard is legacy and has no source available, make
this more obvious to the author when they attempt to clone it. Add also
messages to help the author complete the other required steps to clone
a keyboard.
Fixes: #15606
Test-bot: skip
This change removes unused `*_load.js` files and inlines the code from
`laokeys_load.js`. Current Keyman versions no longer produce _load.js
files when compiling a keyboard, so these files were pretty outdated.
Build-bot: skip build:web
Test-bot: skip
When option 'SkipMetadataFiles' is not set in the project (inverse of
'Build metadata files for Keyman Cloud' in Project Settings dialog),
then will run the validation step and generate .keyboard_info /
.model_info from the IDE. Also add corresponding log messages (and add
formatting for some others that were missing).
Fixes: #16068
Test-bot: skip
Fix regression arising from #15471, caused TIKE to crash on start. Also
fix typo in fieldname default_options (not currently used in .pas
sources).
Test-bot: skip
* Move the following files from common/windows/cpp/include/ to
common/include/:
* keymanversion.h
* vkeys.h
* Move the following file from common/windows/cpp/ to common/cpp/:
* vkeys.cpp
* Move crc32.cpp,crc32.h into kmcmplib, as they are only used there.
* Remove unused ConvertUTF.c and ConvertUTF.h.
* Update references to the above files.
* Remove precompiled header refs from vkeys.cpp and change data type to
`char*` for types in vkeys.cpp (unless `USE_CHAR16_T` is defined), so
that it is more cross-platform accessible, update usages accordingly,
fixup project definitions accordingly.
* Remove unused define `KMN_KBP_EXPORTING` from kmcmplib/meson.build.
Fixes: #15565
Test-bot: skip
jsonpp was being used only in a single unit test, and so this was a lot
of overhead and complexity for very little benefit. We may want to add
some more unit tests in the future for state_api.tests.cpp to do a
deep comparison of the state?
Test-bot: skip
Use RichEdit's `ITextDocument` interface to retrieve the selection
anchor/caret information, and avoid the side-effects that can arise with
the hacky `EM_GETSEL` / `EM_SETSEL` pattern we used previously.
Changing the selection with `EM_SETSEL` in order to find the anchor
point causes notification messages to be generated that can arrive at an
unexpected time in some text selection scenarios, which ended up with us
having a saved selection in the debugger pointing to the wrong text
range.
The name `Anchor` was a misnomer, because it was actually returning the
caret position, not the anchor for the selection, which is the far side
of the selection from the anchor!
Fixes: #11706
Fixes: KEYMAN-DEVELOPER-18A
The new project UI process detects if the target project folder already
exists in a given path, and asks if the author wants to overwrite it.
However, this has been inconsistently implemented -- in the clone
keyboard case, the process would fail with a message "error KM0B004:
Output path <PATH> already exists, not overwriting". In other cases, no
files would be removed, but existing files would be overwritten where
there was a collision, resulting in a messy project folder.
I have opted to prevent this situation in a consistent manner, requiring
the author to remove the folder themselves in Windows Explorer, even
though this is higher friction, because it pushes them into verifying
that they actually want to delete the contents of the folder.
I also took the opportunity to DRY out this verification process in the
six different New Project dialogs.
Fixes: #15063
While the debugger memo internally uses CRLF, in all references, CRLF
should be converted to CR for consistent text manipulation operations.
This follows a similar fix in the kmn debugger in #13334.
Also addresses review comments from @ermshiperete.
Fixes: #15601
Relates-to: #13334
The existing ngrok package is no longer maintained, so this commit
switches to @ngrok/ngrok. However, this means a number of deployment
changes, as the new module uses a node binary module rather than a
standalone executable, and the path to the module is assumed to be on
the Node search path.
The new module also requires VC++ redistributable, so installation of
that has been added to the Server Options dialog.
Use of ngrok with Keyman Developer Server should be in theory possible
with non-Windows platforms with this change, if the user installs the
appropriate @ngrok binary package (e.g. @ngrok/ngrok-darwin-universal)
globally before starting the server.
Fixes: #15625
Build-bot: skip release:developer
PR #12769 removed `km_core_keyboard_load` that allowed loading a keyboard
from a path. Instead we now pass a BLOB to core to load a keyboard.
With the function gone there is no longer a need to have a field with the
path.
Follow-up-of: #12497
Related-to: #12769
Test-bot: skip
If the .keyman-touch-layout file has validation errors, Keyman Developer
will now report the first validation error in the message window, rather
than silently closing the whole keyboard editor. The
.keyman-touch-layout file will be loaded in Code view, and once the
first validation error is addressed, switching to Design view will
report the next error.
For future improvement:
* reporting multiple validation errors
* reporting line number of error
Fixes: #15242
Test-bot: skip