Commit graph

24382 commits

Author SHA1 Message Date
Marc Durdin
2abaead178 chore(core): string include 2024-02-01 12:38:58 +07:00
Marc Durdin
56cda3fff4 chore(core): address cross-platform builds 2024-02-01 12:17:10 +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
9ee5777e48 chore(core): move action apis into keyman_core_api_actions.h
Fixes #10520.

The definitions for `struct km_core_action_item`, `struct
km_core_backspace_item`, `enum km_core_backspace_type`, `enum
km_core_action_type`, `km_core_state_action_items()`,
`km_core_state_queue_action_items()`, `km_core_process_queued_actions()`
are now in keyman_core_api_actions.h rather than in the primary
keyman_core_api.h, as they should not be used by engines in general.

The current users of those APIs are the interactive kmx debugger, and
the IMX integration in Keyman Engine for Windows. Both of these depend
on the old action queue model rather than the actions struct.

In a future version, we may refactor these further to make them apply
directly to the KMX processor, and provide access via an interface to
the KMX processor rather than as a general Core API. Once this change is
made, then Core itself will no longer support action queues at all, and
will expect keyboard processors to fill in an action struct (this is
already done for LDML).
2024-01-31 11:32:09 +07:00
rc-swag
118466f6b2 feat(windows): use delete-context for backspace
Use the delete_context memember of the action struct to
check for surrogates and determine the code units to delete.
2024-01-31 10:31:59 +10:00
rc-swag
5ff8092bde chore(windows): Merge branch 'master' into feat/windows/use-km-core-actions-struct 2024-01-31 09:59:12 +10: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
Keyman Server
e4af19c8ba
Merge pull request #10564 from keymanapp/auto/version-master-17.0.257
auto: increment master version to 17.0.257
2024-01-31 01:04:04 +07:00
Keyman Build Agent
26196bada6 auto: increment master version to 17.0.257 2024-01-30 13:03:34 -05:00
Steven R. Loomis
2964b8496b
Merge pull request #10528 from keymanapp/feat/developer/10317-compiler-norm-epic-ldml
feat(developer): turn on developer side normalization 🙀
2024-01-30 10:06:36 -06:00
Eberhard Beilharz
f075324e07
Merge pull request #10537 from keymanapp/fix/linux/deb-packaging
fix(linux): packaging on Ubuntu and Debian servers should give message instead of warning because we don't have patched ibus there
2024-01-30 10:34:30 +01:00
Eberhard Beilharz
59729b0ea0
Merge pull request #10538 from keymanapp/chore/core/fixbuild
chore(core): `process_output_action` needs const `output_utf32` parameter 🌱
2024-01-30 10:34:08 +01:00
rc-swag
1e554c8804 feat(windows): don't write persisted option back to core
When the action from the core is to persist an option there
is no need to write that value back to the core as it has already
been updated, by the core.
2024-01-30 15:42:17 +10:00
rc-swag
d8c232dc7c feat(windows): refactor to use km_core_actions struct 2024-01-30 14:07:55 +10:00
Marc Durdin
4c95fef55a
Merge pull request #10533 from keymanapp/feat/core/10530-actions-deleted-context
feat(core): add `deleted_context` to `km_core_actions` struct 🌱
2024-01-30 11:46:10 +11:00
Marc Durdin
46d162d95d
Merge pull request #10532 from keymanapp/fix/developer/10501-ldml-debugger-surrogate-pairs
fix(developer): support surrogate pairs in ldml debugger 🌱
2024-01-30 11:45:57 +11:00
Marc Durdin
868247e9fe chore(core): address review comments 2024-01-30 07:36:52 +07:00
Keyman Server
c9ed30f373
Merge pull request #10540 from keymanapp/auto/version-master-17.0.256
auto: increment master version to 17.0.256
2024-01-30 01:30:13 +07:00
Keyman Build Agent
330752bab7 auto: increment master version to 17.0.256 2024-01-29 13:29:44 -05:00
Eberhard Beilharz
60746e02d0
chore(core): Fix compilation error 2024-01-29 18:00:14 +01:00
Eberhard Beilharz
6b5b44eddd
fix(linux): Fix packaging on Ubuntu and Debian servers
When building packages warnings are treated as errors. When building on
Ubuntu and Debian servers we don't have a patched ibus version but still
want to build the packages. So this change outputs a message instead of
a warning when building packages.
2024-01-29 17:50:04 +01:00
Eberhard Beilharz
eeb03e1c0c
Merge pull request #10483 from jbicha/webkit4.1
chore(linux): Build with webkitgtk 4.1 instead of 4.0
2024-01-29 16:59:54 +01:00
Eberhard Beilharz
9183185b8c
Merge pull request #10480 from keymanapp/refactor/linux/10353_actionstruct
refactor(linux): Use `km_core_actions` struct instead of queue 🌱
2024-01-29 16:59:17 +01:00
Eberhard Beilharz
7ec33eb4b3
Merge pull request #10439 from keymanapp/fix/core/10100-ContextNuances
fix(core): Fix nuances when updating context 🌱
2024-01-29 16:52:36 +01:00
Steven R. Loomis
5ce6490a1f feat(developer): dev side norm 🙀
- repertoire test needed normalization also

For: #10317
2024-01-29 09:31:48 -06:00
Steven R. Loomis
8482f26bcd
Merge branch 'master' into feat/developer/10317-compiler-norm-epic-ldml 2024-01-29 08:37:46 -06:00
Steven R. Loomis
1e04746b21 feat(developer): dev side norm 🙀
- re-sort string by NFD

For: #10317
2024-01-29 08:37:23 -06:00
Steven R. Loomis
a504d4f4e2
Merge pull request #10527 from keymanapp/feat/developer/10516-marker-norm-epic-ldml
feat(developer): ldml marker normalization fix 🙀
2024-01-29 08:28:57 -06:00
Eberhard Beilharz
2ebca107e0
chore(core): Fix build failures 2024-01-29 12:17:27 +01:00
Eberhard Beilharz
5404c02315
chore(core): Merge remote-tracking branch 'origin/epic/core/9999-normalization' into fix/core/10100-ContextNuances
# Conflicts:
#	core/tests/unit/kmnkbd/state_context_api.cpp
2024-01-29 12:05:17 +01: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
Shawn Schantz
2ede49035a
Merge pull request #10446 from keymanapp/chore/ios/8737-remove-xcglogger
chore(ios): eliminate xcglogger dependency
2024-01-29 12:31:37 +07:00
Shawn Schantz
0d6facb443
Merge branch 'master' into chore/ios/8737-remove-xcglogger 2024-01-29 12:30:57 +07:00
Marc Durdin
0e16d7218b fix(developer): support surrogate pairs in ldml debugger
Fixes #10501.
2024-01-29 10:57:58 +07:00
Keyman Server
d4f8162ee6
Merge pull request #10529 from keymanapp/auto/version-master-17.0.255
auto: increment master version to 17.0.255
2024-01-28 01:02:20 +07:00
Keyman Build Agent
948cf597a4 auto: increment master version to 17.0.255 2024-01-27 13:01:50 -05:00
Steven R. Loomis
1e3ae9b8f6 feat(developer): dev side norm 🙀
- normalize in key.to, tran.from, tran.to
- add as an option in the strs pipeline

- also, assertCodePoints utility for asserting with escapes

For: #10317
2024-01-26 19:10:00 -06:00
Steven R. Loomis
6ca5a29675 chore(developer): ldml add tests expecting dev side norm 🙀
- also, change this.X to Class.X for statics

For: #10317
2024-01-26 18:06:31 -06:00
Steven R. Loomis
6c59835b27
Merge branch 'master' into feat/developer/10516-marker-norm-epic-ldml 2024-01-26 14:55:23 -06:00
Steven R. Loomis
a643c48ec4
Merge pull request #10517 from keymanapp/feat/core/10516-marker-norm-epic-ldml
feat(core): ldml marker normalization fix 🙀
2024-01-26 14:54:48 -06:00
Steven R. Loomis
44d8ba7198 feat(developer): ldml marker normalization fix 🙀
- ts side

For: #10516
2024-01-26 14:54:15 -06:00
Steven R. Loomis
580e372a7e feat(core): ldml marker normalization fix 🙀
- document per code review

For: #10516
2024-01-26 14:45:54 -06:00
Keyman Server
35966c3ddd
Merge pull request #10525 from keymanapp/auto/version-master-17.0.254
auto: increment master version to 17.0.254
2024-01-27 01:02:54 +07:00
Keyman Build Agent
d38ae4011f auto: increment master version to 17.0.254 2024-01-26 13:02:19 -05:00
Marc Durdin
5c63ec588e
Merge pull request #10474 from keymanapp/fix/developer/10470-ldml-keyboard-template
fix(developer): tidy up LDML keyboard project template 🌱
2024-01-26 15:31:27 +11: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
fa91bdcd85
Merge pull request #10472 from keymanapp/feat/developer/10416-10458-ldml-debugger-markers
feat(developer): LDML keyboard test window marker support 🌱
2024-01-26 15:31:01 +11:00
Joshua Horton
5c5f5ac4c7
Merge pull request #10504 from keymanapp/fix/web/layout-fontsize
fix(web): touch-layout fontsize property use ⛲
2024-01-26 10:44:09 +07:00
Joshua Horton
7d999eed40
Merge pull request #10475 from keymanapp/feat/web/key-event-rule-processing-tests
feat(web): key-event rule processing unit tests for mnemonic, KMW 1.0 keyboards 🧓
2024-01-26 10:40:57 +07:00
Joshua Horton
a0adacf04a
Merge pull request #10464 from keymanapp/feat/web/key-event-preprocessing-tests
feat(web): keystroke pre-processing unit tests 🧓
2024-01-26 10:40:47 +07:00