Commit graph

39 commits

Author SHA1 Message Date
Steven R. Loomis
3658efa5f1 chore(common): remove rust (for now!) 🦀
Fixes #6290
2022-02-24 17:34:23 -06:00
Ross
8c8859bcf1 feat(windows): add process_queued_actions 2022-01-20 14:33:00 +10:00
rc-swag
4ca65e4fdb
feat(windows): commit suggestions github
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-01-20 09:43:22 +10:00
Ross
1b624c3d56 feat(windows): Address Review comments 2022-01-19 13:47:49 +10:00
rc-swag
87e34147e6
feat(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-01-18 09:25:03 +10:00
Ross
ca8108c642 feat(windows): remove extra logging add comments 2022-01-13 14:00:13 +10:00
Ross
a72697423a feat(windows): add logging to be removed later 2022-01-13 13:59:39 +10:00
Ross
cec762bd16 feat(windows): add get intermediate context 2022-01-13 13:56:03 +10:00
Ross
8bdd252a77 feat(windows): stashed changes conflict 2022-01-13 13:56:02 +10:00
Ross
9d320c6bd8 feat(windows): core queue_action_items unit test 2022-01-13 13:55:58 +10:00
Ross
993655d340 feat(windows): Some documentation 2022-01-13 13:55:56 +10:00
Ross
cd41989698 feat(windows): First cut queue action api WIP 2022-01-13 13:54:53 +10:00
Ross
490e6601bc feat(windows): Initial Commit 2022-01-13 13:54:30 +10:00
Ross
31d7200a63 feat(windows): replace insert_or_assign with[] for hashmap
Also update issue comment for future removal of winows processor code
2021-11-29 10:52:07 +10:00
rc-swag
4e1ccfdd4f feat(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-11-29 10:52:04 +10:00
Ross
ac16abdb18 feat(windows): rename key_rules -> key_list 2021-11-29 10:52:02 +10:00
Ross
9f44cf49fc feat(windows): fix pkeys index add comments
The pkeys was using the wrong counter as a index
in the map check therefore matching the incorrect key
2021-11-29 10:52:01 +10:00
Ross
72d8188a38 feat(windows): complete common core get rules api 2021-11-29 10:51:59 +10:00
Ross
9c1b6702b3 feat(windows): inital commit get rule keys api 2021-11-29 10:51:58 +10:00
Marc Durdin
41a9e8c26d
Merge pull request #5696 from keymanapp/feat/developer/5695-debugger-track-set-option-value
feat(developer): track changes to option values better in debugger 🐞
2021-09-20 16:12:39 +10:00
Marc Durdin
e1e2a51d9c chore(common/core): cleanup version headers
Fixes #5450.
2021-09-20 06:05:04 +10:00
Marc Durdin
547ede3a9b fix(developer): add version info to Core
Fixes #5672.

* Adds version information to meson build for Keyman Core DLL
* Removes verify.dpr patch added in #5649 so it will be tested at build
2021-09-17 12:47:01 +10:00
Marc Durdin
cec8d11759 feat(developer): track changes to option values better in debugger
Fixes #5695.

When the debugger is in single-step mode, reflects the value of option
stores at the time of the change rather than at the beginning of the
batch.
2021-09-15 15:29:44 +10:00
Marc Durdin
5a94012f01
Merge branch 'chore/common/core/debug-additional-tests' into chore/common/core/5488-delete-markers-reliably 2021-07-27 08:23:24 +10:00
Marc Durdin
1292b407bc
Merge branch 'master' into chore/common/core/debug-additional-tests 2021-07-27 08:17:53 +10:00
Marc Durdin
75ce10510a chore(common/core): address review comments
Also introduce a specific enum for backspace type rather than
inappropriately using the action item type enum.
2021-07-27 07:08:30 +10:00
Marc Durdin
796a2d4c85 chore(common/core): handle deletion of markers in actions
Fixes #5488.

This updates Keyman Core, corresponding tests, and Keyman Engine for
Linux to support deletion of markers through an action, ensuring that
the action queue does not desynchronize with the context.
2021-07-26 15:23:20 +10:00
Eberhard Beilharz
0eca43d4ea
feat(common/core): Implement capsAlwaysOff system store
This change implements the core part in a way that makes the tests
pass. This still needs corresponding changes in the engine.
2021-07-23 10:25:28 +02:00
Marc Durdin
507c5a4e78 chore(common/core): additional debug tests
Adds some tests for Keyman Core for debugging, verifying contents of
the action list after every keystroke in the test.

Also refactors some of the test helper files to make it easier to
diagnose failing tests and share helper functions.
2021-07-22 20:05:01 +10:00
Marc Durdin
4fbfd33943 feat(common/core): debug action index
Adds an action_index to each debug event (not all debug events
need it). This allows the debugger to partially execute a rule
including the possibility of multiple updates to context.
2021-07-20 14:07:33 +10:00
Marc Durdin
37bb7b77cf feat(common/core/desktop): add debug events
Adds debug events to the kmx processor and corresponding unit tests.
This corresponds largely to the way that keyman32 emits debug events,
but with one key change: debug events in keyman32 are processed
synchronously, whereas in Keyman Core, the full set of debug events will
be returned alongside the final action list for the key event.

Given this difference, there will likely need to be some more data
returned in individual debug events, specifically around intermediate
context manipulation, as required for step-by-step debugging. However,
that will come in a subsequent PR.
2021-07-08 11:16:58 +10:00
Marc Durdin
b1c0cbf405 chore(common): cleanup cross-platform code 2021-07-06 15:31:01 +10:00
Marc Durdin
2992e1ed83 feat(common/core/desktop): kmx debugger basic infrastructure
Part of #5013.

Adds all the debug infrastructure:

* public API headers
* public API implementation classes and functions
* basic unit tests
* helper classes for recording debug events
* minimal implementation of kmx-specific debug event signalling --
  just BEGIN and END events.
* tangential: unit test assertion macros and coloured output
2021-07-06 15:30:19 +10:00
Marc Durdin
8052ac9bbc feat(common): Rust infrastructure
Relates to #5069.

This establishes a baseline Rust build environment and linkage with
common/core/desktop.

This includes:

* build script build.sh which handles builds on Windows, macOS, *nix,
  with multiple targets on Windows only at present (M1 on mac to come
  when we do the mac integration work.)
* a mock rust processor with a very stubbed-out implementation
* bare bones interface between Rust library and C++ code
* unit tests on Rust and integration tests on C++ side to test the
  linkage between the libraries.

This should deliver a set of libraries that can be linked into our
target applications. For ease of deployment, it may be best to make
these static libraries, but I haven't made that decision at this point.
2021-06-02 13:51:50 +10:00
Eberhard Beilharz
389747b096
Update common/core/desktop/include/keyman/keyboardprocessor_vkeys.h
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-05-11 17:27:51 +02:00
Eberhard Beilharz
e871998113
fix(common/core): Add values for Caps and Nocaps modifiers
Also change the values for these to match the ones defined in
`kmx_file.h`.
2021-05-10 16:52:41 +02:00
Eberhard Beilharz
958fb3ac1f
docs(common): More readme improvements 2021-03-02 19:16:19 +01:00
Marc Durdin
8c10e8910c chore: cleanup keyboardprocessor.h.in
Re-applying changes from stale branch common-docs
2020-08-10 10:41:25 +10:00
Darcy
660a1459ff refactor(common): Rename keyboardprocessor to desktop 2020-02-26 16:34:29 +07:00