Commit graph

539 commits

Author SHA1 Message Date
Marc Durdin
fa57d5c674 chore(developer): final work on build.sh for developer
Now builds from a clean repo:

  developer/src/build.sh configure build test publish

* Splits kmbrowserhost into kmdbrowserhost for Developer; this means
  that Developer Browser Host now inherits the Developer settings rather
  than the Keyman for Windows settings, and simplifies distribution and
  management. The only difference between the two is in the startup code
  so this seems like a good split.

* Cleanup of various build scripts and dependencies.
2024-05-20 06:34:53 +07:00
Marc Durdin
41df6d1cd7 chore(developer): refactor remaining build scripts
This finishes the changes for all build infrastructure for Keyman
Developer to use build.sh.
2024-05-20 06:34:50 +07:00
Marc Durdin
2d249cb8e6 chore(developer): cleanup test paths 2024-05-20 06:34:48 +07:00
Marc Durdin
c8a1c6aa39 chore(developer): use builder.inc.sh instead of build-utils.sh in build scripts
also, remove old Makefiles
2024-05-20 06:34:46 +07:00
Marc Durdin
2499ebf4bb chore(developer): move windows common Makefiles to build scripts
Relates to #11317.
2024-05-20 06:34:38 +07:00
Marc Durdin
86c62ff36c chore(developer): transition remaining projects to build.sh
Relates to #11317.

All projects now have a build.sh. Still need to work on inst/, remove
old Makefiles, and update CI.
2024-05-20 06:33:51 +07:00
Marc Durdin
8c14b20515 chore(developer): tike/build.sh 2024-05-20 06:33:49 +07:00
Steven R. Loomis
ca05471520 chore(windows): more updates for libkeymancore version 2024-05-08 09:07:01 -05:00
Steven R. Loomis
6706ae0957 chore(core): km_core_cp -> km_core_cu
- km_core_cp represents a 16 bit code unit, not a code point.

Fixes: #11033
2024-05-02 17:39:15 -05:00
Marc Durdin
83b925310a
Merge pull request #11271 from keymanapp/fix/developer/11262-crash-when-closing-in-help-form
fix(developer): report missing help to sentry instead of local xml
2024-04-23 18:55:20 +10:00
Marc Durdin
f199c6aec2
Merge pull request #11270 from keymanapp/fix/developer/11260-handle-invalid-unicode-values-in-layout-builder
fix(developer): handle invalid Unicode values in touch layout builder
2024-04-22 14:18:02 +10:00
Marc Durdin
65c056cb26 fix(developer): report missing help to sentry instead of local xml
Fixes #11262.

Avoid the crash by reporting missing help pages to Sentry instead of
attempting to write to a local .xml file. This gives us more data of
which help is missing from Keyman Developer, which is more useful to
us.
2024-04-22 09:21:53 +07:00
Marc Durdin
007f0bdc28 fix(developer): handle invalid Unicode values in touch layout builder
Fixes #11260.
2024-04-22 08:26:03 +07:00
Marc Durdin
5f7f9e905c fix(developer): test that MRU project exists before attempting to reference on startup
Fixes #11194.

If the last-used project file no longer exists (e.g. has been renamed),
then Keyman Developer would crash as it did not test that the file had
been loaded successfully before attempting to reference it.
2024-04-18 14:05:39 +07:00
Marc Durdin
9e369227b2 fix(developer): prevent error when scrolling touch layout editor with no selected key
Fixes #11107.
2024-03-28 10:42:19 +07:00
Marc Durdin
9cba6e7053
Merge pull request #10939 from keymanapp/docs/developer/10550-ldml-window-help-links
docs(developer): add help site links
2024-03-26 11:37:28 +11:00
Marc Durdin
a0d99ba07f
Merge pull request #11049 from keymanapp/fix/developer/11036-capture-alt-shortcuts-in-debugger
fix(developer): capture alt shortcuts in LDML keyboard debugger
2024-03-25 14:05:56 +11:00
Marc Durdin
b8291ec187 fix(developer): capture alt shortcuts in LDML keyboard debugger
Fixes #11036.

Also removes unused function ShortcutDisabled from both debuggers, to
avoid confusion.
2024-03-22 08:39:30 +07:00
Marc Durdin
523e5d4efb fix(developer): catch sharing violation when saving mru
Fixes #11041.

If two TIKE processes try to save the MRU at the same time, this can
result in a sharing violation. The relevant OLE error code is not
saved as a constant in Delphi lib, so I looked it up and added it here.
2024-03-22 06:11:34 +07:00
Marc Durdin
5a0f50088a
Merge pull request #10919 from keymanapp/fix/developer/10915-right-shift-in-developer-crash
fix(developer): Treat Right Shift as Shift in debugger
2024-03-07 18:12:59 +07:00
Marc Durdin
d406329f81 docs(developer): add help site links
Also fixes an inadvertent issue where F1 was not opening context help in
the text editor anywhere in Keyman Developer. This means that pressing
F1 while a keyword is highlighted in a .kmn keyboard will not re-open
the context help for that keyword once more (yay!)
2024-03-05 03:12:05 -06:00
Marc Durdin
e6db899453 fix(developer): hint text special characters
Fixes #10372.
2024-03-05 08:30:37 +07:00
Marc Durdin
219f375aeb fix(developer): Treat Right Shift as Shift in debugger
Fixes #10915.

Note that a more systemic fix to keyman core will involve ensuring that
the debug list is always properly terminated, but that does not need to
happen in beta.
2024-03-04 15:49:26 +07:00
Marc Durdin
05136e5dea fix(developer): make sure scroll bar appears when needed in global welcome
Fixes #10817.

This fix is a patch rather than a rework to use grid or flex css, which
would be better, but should not be done in beta.
2024-02-23 09:26:43 +07:00
Marc Durdin
b60243075d chore(common): upgrade sentry to 7.102.0 for Windows + Developer
Updates to version 7.102.0 of Sentry, in order to get working sourcemap
matching.
2024-02-22 12:51:01 +07:00
Marc Durdin
9a3d4e30f4 chore(developer): restore previous tags 2024-02-22 12:45:12 +07:00
Marc Durdin
d7411ec4c4 fix(developer): version string matches for sentry
Fixes two things:
* $VERSION_GIT_TAG was being misinterpreted by mkver as
  $VERSION + "_GIT_TAG". This has been addressed by making the $VERSION
  match the last one in the replaceVersionStrings_Mkver function, and
  also have moved to using the newer $VersionGitTag and $Environment
  vartiables instead.
* The 'dist' property was being set in sentry-cli sourcemap uploads,
  though we never set the dist prop when we initialize sentry.
2024-02-22 11:48:56 +07:00
Marc Durdin
dc93c5495c fix(developer): publish keymancore-1.dll symbols
Fixes #10737.

Two parts to this: first, Keyman Core release build needs to generate
the .pdb file, and second, the build needs to put it and the .dll into
a place where the sentry-cli scan will find it.
2024-02-21 13:53:52 +07:00
Marc Durdin
978fb125e6
Merge pull request #10781 from keymanapp/fix/developer/10684-crash-opening-invalid-project
fix(developer): crash opening invalid project
2024-02-21 12:00:57 +07:00
Marc Durdin
6a2bc432d6
Merge pull request #10780 from keymanapp/fix/developer/10545-reset-debugger-after-compile
fix(developer): reset debugger after ldml keyboard compile
2024-02-21 12:00:49 +07:00
Marc Durdin
16ece15653
Merge pull request #10779 from keymanapp/chore/developer/10543-ldml-project-text
chore(developer): add LDML specific text to Project view
2024-02-21 12:00:42 +07:00
Marc Durdin
7601ac9fca
Merge pull request #10775 from keymanapp/fix/developer/10546-tike-ide-message-formatting
fix(developer): match kmc console formatting for messages in IDE
2024-02-21 12:00:28 +07:00
Marc Durdin
5881645042 fix(developer): crash opening invalid project
Fixes #10684.

If a project .kpj file was not saved in UTF-8 or ANSI, or had a BOM,
then Keyman Developer would crash with an access violation due to an
uninitialized variable.
2024-02-20 13:04:07 +07:00
Marc Durdin
9045d2f970 fix(developer): reset debugger after ldml keyboard compile
Fixes #10545.
2024-02-20 12:51:36 +07:00
Marc Durdin
8115c15c3a chore(developer): add LDML specific text to Project view
Fixes #10543. Very basic text relating to LDML keyboards. Tweaks the
remaining text to match our project development model.
2024-02-20 12:03:34 +07:00
Marc Durdin
e431f850a0 fix(developer): match kmc console formatting for messages in IDE
Fixes #10546.

Format compiler messages in the same way as kmc, and match the colors
from kmc's console log messages.
2024-02-20 07:12:49 +07:00
Marc Durdin
013fdfaf0c fix(developer): prevent renaming of new project types in New Project dialog
Fixes #10548.
2024-02-19 15:32:31 +07:00
Marc Durdin
a918cc182f fix(developer): keyboard that targets only web can cause crashes and other problems
Fixes #10655.
Fixes #10663.

If a .kmn file had only a .js target, then Keyman Developer would return
an empty string for the target (based on .kmx). This meant that the path
for the compiler was an empty string, the path for opening the build
folder was an empty string.

Refactored the relevant code to simplify the logic a little.
2024-02-07 13:15:51 +07:00
Marc Durdin
1b88ab99be fix(core): make km_core_state_get_actions() idempotent
Fixes #10582.

Returned struct from the `km_core_state_get_actions()` API is now owned
by the state object. This is a change in API contract. The corresponding
`km_core_actions_dispose()` API has been made private, because there is
never any need for API consumers to call it. As this change is happening
in alpha, we won't bump the ABI version.

`state->app_context` is now guaranteed to be in sync with
`state->context` after `km_core_process_event()`, with the actions
struct populated at that point.

The next and final step in this refactor is to remove the actions queue
altogether from the Core and make that a kmn-only concept, but that will
wait until 18.0. The only consumers of the actions queue are the
kmn-specific interactive debugger in Keyman Developer, and kmn-specific
Input Method eXtensions in Keyman Engine for Windows.
2024-02-01 11:28:08 +07:00
Marc Durdin
f546c44048
Merge pull request #10390 from keymanapp/epic/core/9999-normalization
epic: Keyman Core normalization 🌱
2024-01-31 10:45:51 +11:00
Marc Durdin
868247e9fe chore(core): address review comments 2024-01-30 07:36:52 +07:00
Marc Durdin
8501f2aa6d feat(core): add deleted_context to km_core_actions struct
Fixes #10530.

Adds the deleted_context member to the km_core_actions struct, and
associated unit tests. Simplifies integration by providing the consumer
with all the data they need in order to execute the transform,
specifically around number of delete operations required, without
needing to query the target application context again. The number of
delete operations will vary according to application compliance and
selected encoding; for example a UTF-16 string may require 2
delete-backs for surrogate pairs in the text buffer for a compliant app,
whereas there will be a single delete-back key event for a non-compliant
app.

The deleted_context member should also be used for debug assertions.
2024-01-29 13:21:25 +07:00
Marc Durdin
0e16d7218b fix(developer): support surrogate pairs in ldml debugger
Fixes #10501.
2024-01-29 10:57:58 +07:00
Marc Durdin
95d3261a8a
Merge pull request #10473 from keymanapp/fix/developer/10469-use-keyboard3-tag
fix(developer): use keyboard3 tag rather than DTD to identify LDML keyboard xml files 🌱
2024-01-26 15:31:14 +11:00
Marc Durdin
c5e9a8ce35
Merge branch 'refactor/developer/10214-debugger-app-context' into feat/developer/10416-10458-ldml-debugger-markers 2024-01-26 09:50:06 +11:00
Marc Durdin
4f25e80ccb
Merge branch 'fix/developer/10456-ldml-keyboard-editor-font' into refactor/developer/10214-debugger-app-context 2024-01-24 19:39:45 +11:00
Marc Durdin
d6a9c74762
Merge branch 'fix/developer/10457-ldml-keyboard-editor-xml-mode' into fix/developer/10456-ldml-keyboard-editor-font 2024-01-24 19:39:30 +11:00
Marc Durdin
49b0c826ce
Merge branch 'feat/developer/10420-ldml-keyboard-test' into fix/developer/10457-ldml-keyboard-editor-xml-mode 2024-01-24 19:39:15 +11:00
Marc Durdin
5111e5b32b
Merge pull request #10359 from keymanapp/chore/developer/10357-ngrok-v3
chore(developer): upgrade ngrok to v3
2024-01-24 19:29:02 +11:00
Marc Durdin
e8cf7bf89c
Merge branch 'epic/core/9999-normalization' into feat/developer/10420-ldml-keyboard-test 2024-01-24 18:12:43 +11:00