Commit graph

20 commits

Author SHA1 Message Date
Marc Durdin
2add4d354d fix(developer): use U+0001 for deadkey markers in the debugger
Previously, we used U+FFFC as a marker in the debugger (for deadkeys and
LDML keyboard markers), which displayed as the letters OBJ in a small
dotted square. However, we switched the underlying component to
RichEdit, in order to better support rendering of many scripts (EDIT has
some problems). The RichEdit control silently converts U+FFFC to U+0020.
I switched to U+0001 as this is handled better, but has an unfortunate
missing-glyph marker.

In the future, it would be better to use a non-character marker
(leveraging RichEdit), but this is a much more complex change, and this
fix at least matches previous functionality.

Fixes: #13293
2025-02-24 10:38:33 +01:00
Marc Durdin
cd29991697 fix(developer): additional cleanup of CRLF in debugger 2025-02-24 10:32:24 +01:00
Marc Durdin
249428db7b
refactor(developer): km_core_keyboard_load_from_blob in debugger
Replaces `km_core_keyboard_load` with `km_core_keyboard_load_from_blob`.

Fixes: #12690
Cherry-pick: #12711
2024-11-27 16:17:48 +01:00
rc-swag
440997289c chore(windows): remove QIT_VSHIFTDOWN QITSHIFTUP
QIT_VSHIFTDOWN and QIT_VSHIFTUP is no longer sent out in the windows
engine. This commit cleans up any rement references to these
2024-07-17 14:20:43 +10:00
Marc Durdin
52093720f4 chore(developer): add extra logging for assertion failure when pressing backspace in debugger
I have not been able to reproduce this problem, so adding some extra
debug logs in an attempt to determine what is causing the assertion
failure.

Relates to: #11706
2024-06-06 08:54:38 +07:00
Marc Durdin
c52d32cca6 fix(developer): handle KM_CORE_IT_INVALIDATE_CONTEXT in debugger
The output from Keyman Core changed in #11172 to emit a
`KM_CORE_IT_INVALIDATE_CONTEXT` action when a frame key is pressed, but
the debugger was not catering for this scenario, causing an assertion
failure.

Fixes: #11486
Fixes: KEYMAN-DEVELOPER-1Y4
2024-05-21 09:02:28 +07: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
0e16d7218b fix(developer): support surrogate pairs in ldml debugger
Fixes #10501.
2024-01-29 10:57:58 +07:00
Marc Durdin
7e41ecb358 feat(developer): LDML keyboard test window marker support
Fixes #10458.

Refactors the LDML keyboard test window significantly, in order to be
able to support markers. Cleans up the state machine for the debug
window in the process, as that was complicating the changes. Removes
a lot of extraneous code in the debug window.
2024-01-23 12:42:28 +07:00
Marc Durdin
39b64be67a refactor(developer): use km_core_state_get_actions for LDML keyboard debugger
Relates to #10416.

Moves from using action queue to action struct for the LDML keyboard
debugger. Does not do the same for the KMX keyboard debugger, because
that relies on action items to do single-step debugging.
2024-01-23 12:42:27 +07:00
Marc Durdin
aee59db892 refactor(developer): update app context as well as cached context for KMN keyboard debugger
Fixes #10214.
2024-01-22 08:42:00 +07:00
Marc Durdin
236865f046 feat(developer): LDML Keyboard Test Window
Fixes #10420.

Implements a basic LDML keyboard test window. Press F5 or Keyboard/Test
to start test. Shows a character grid for each character in the text.

Does not yet support display of markers (#10458). Does not support
interactive debugging, nor any more detailed status information.
2024-01-22 06:41:13 +07:00
Eberhard Beilharz
52bb859817
chore(linux): Rename (lib)kmnkbp to (lib)keymancore 2023-10-19 10:35:09 +02:00
Marc Durdin
0e4c4cbcf0 chore: rename _km_kbp_ to _km_core_ 2023-10-09 14:53:23 +07:00
Marc Durdin
db76e2541d chore: rename KM_KBP_ to KM_CORE_ 2023-10-09 14:53:22 +07:00
Marc Durdin
ba5f18defd chore: rename km_kbp_ to km_core_ 2023-10-09 14:53:13 +07:00
Marc Durdin
22362d435f chore: rename pkm_kbp_ to pkm_core_ 2023-10-09 14:52:23 +07:00
Marc Durdin
42a9f2ca72 fix(core): emit keystroke was writing to wrong queue
Fixes #7649.

emit_keystroke code path in kmx processor was writing directly to the
core queue instead of to the internal kmx processor queue. This caused
it to be out-of-order in the actions sent to the engine/debugger.

Engines didn't really care but it broke the debugger, for example if
only a deadkey was in the buffer and backspace was pressed, Developer
would assert as it would get unexpected context for the deletions.
2022-11-08 16:31:30 +11:00
Marc Durdin
393083509a chore(windows): move tike files from global to developer
These files used only by TIKE so moved into that project.

Noticed obsolete refs to UMD5Hash and removed those at the same time.
2022-06-23 09:34:03 +10:00
Marc Durdin
a160a5c709 chore(developer): move source files to /developer/src 2022-05-18 10:34:48 +10:00