Commit graph

974 commits

Author SHA1 Message Date
Marc Durdin
94cfbae33d
Merge pull request #5923 from keymanapp/fix/developer/5905-debugger-render-on-touch-devices
fix(developer): render OSK nicely on touch devices
2021-11-29 06:37:15 +11:00
Marc Durdin
9259ba5827 fix(developer): move web osk beneath text area
Fixes #5926.

This gives space for the popups to appear, even if they are large.
2021-11-18 15:00:44 +11:00
Marc Durdin
68135b9a5e fix(developer): use correct tike icon
Fixes #5924.

I'm not sure when this happened. But it should be right now.
2021-11-17 16:48:42 +11:00
Marc Durdin
5789d39deb fix(developer): render osk nicely on touch devices
Fixes #5905.

Touch devices now use a touch keyboard only in the web debugger.
2021-11-17 15:46:04 +11:00
Marc Durdin
a25b9cd8eb
Merge pull request #5894 from keymanapp/feat/developer/2858-u_xxxx_yyyy
feat(developer): support for U_xxxx_yyyy
2021-11-14 15:47:55 +11:00
Marc Durdin
b9c492a66b feat(developer): validate .kps files during compile
Fixes #5464.

The keyboards repository already has code to validate .xsd files, using
xmllint. This adds the same functionality directly into kmcomp and TIKE.
2021-11-11 14:41:04 +11:00
Marc Durdin
33a2e230f6 chore(developer): enforce file versions for feature 2021-11-11 13:26:56 +11:00
Marc Durdin
66be206d96 feat(developer): support for U_xxxx_yyyy 2021-11-11 13:08:39 +11:00
Marc Durdin
954717c0b2
Merge pull request #5776 from keymanapp/fix/developer/5718-handle-shortcut-keys-in-debugger
fix(developer): handle shortcut keys in debugger
2021-11-11 07:21:54 +11:00
Marc Durdin
024a36da9f
Merge pull request #5787 from keymanapp/chore/sentry-io
chore: sentry.io dsn 👮‍♂️
2021-10-06 07:32:43 +11:00
Marc Durdin
0cf4a3c512
Merge pull request #5723 from keymanapp/feat/developer/touch-layout-testing
feat(developer): touch layout testing 🎩
2021-10-05 17:40:26 +11:00
Marc Durdin
3219b44624 chore: sentry.io dsn 2021-10-04 15:01:36 +11:00
Marc Durdin
6882e97ae0
Merge pull request #5749 from keymanapp/fix/web/2924-variable-stores-and-fat-fingering
fix(web): support variable stores with predictive text
2021-10-02 11:12:34 +10:00
rc-swag
96da136a95
Merge pull request #5443 from keymanapp/feat/windows/keyman-core-integration-2
feat(windows): Keyman Core integration 🥑
2021-09-30 10:54:17 +10:00
Marc Durdin
3a53d662d2 fix(developer): handle shortcut keys in debugger
Fixes #5718.

The debugger memo control will now filter out action shortcut keys such
as Ctrl+A, Ctrl+O, so that the keyboard being debugged can get the first
chance to look at them and handle them if it wishes.

If the keyboard does not handle the keystroke, then a set of editor
shortcut keys will be handled by the debugger, namely:

* Ctrl+A - select all
* Ctrl+C - copy
* Ctrl+V - paste
* Ctrl+X - cut
* Ctrl+Z - undo

Note that undo semantics are a little weird with the debugger, but that
is not related to this fix. By a little weird, I mean that characters
emitted by the keyboard being debugged do not flow into the undo buffer,
so undo often has no effect. I am not planning to fix this idiosyncrasy
at this time.
2021-09-30 07:51:07 +10:00
Marc Durdin
1b16a0d957
Merge pull request #5746 from keymanapp/fix/developer/5702-shift-6-ampersand
fix(developer): move ampersand to shift+7 on touch
2021-09-30 06:09:24 +10:00
Marc Durdin
c0ac074618
Merge pull request #5720 from keymanapp/fix/developer/5327-touch-remove-empty-rows
fix(developer): remove empty touch rows on save
2021-09-29 07:38:31 +10:00
rc-swag
b71fde66f9
Merge branch 'master' into feat/windows/keyman-core-integration-2 2021-09-27 21:40:22 +10:00
Marc Durdin
a65b55e1b5 fix(web): support variable stores with predictive text
Fixes #2924.

When a keyboard includes variable stores, predictive text fat-fingering
tests will no longer affect the variable store values.
2021-09-27 06:54:24 +10:00
Marc Durdin
d4b9f18106 fix(developer): move ampersand to shift+7 on touch
Fixes #5702.

On the phone layout for two templates, ampersand (`&`) was on Shift+6
instead of on Shift+7.
2021-09-24 14:01:24 +10:00
Marc Durdin
eee06e18be chore(developer): cleanup links and display attributes 2021-09-23 14:03:39 +10:00
Marc Durdin
896b922865 chore(developer): refactoring - minor 2021-09-23 13:51:54 +10:00
Marc Durdin
05cefaf9f8 feat(developer): improve look and feel of test view 2021-09-22 11:02:54 +10:00
Marc Durdin
6b39383743 feat(developer): touch layout testing
Adds support for testing touch layouts without requiring use of device
emulation. Uses new InlinedOSKView.

Does not yet add a view within Keyman Developer; this will come shortly.
2021-09-22 11:02:53 +10:00
Marc Durdin
6b8d941f9e chore: add KeymanDeveloperPaths to kmcomp project 2021-09-21 06:45:26 +10:00
Marc Durdin
e6190ee05f fix(developer): run kmlmc from Keyman source path
Makes it possible to run the kmlmc.cmd compiler wrapper script from
Keyman Developer while debugging from source.

Adds a new class `TKeymanDeveloperPaths` which is similar to
`TKeymanPaths`, to provide a future single location for all Keyman
Developer path-related functions. There are a number scattered through
the source at present, e.g. in `RedistFiles.pas`, so this is just a
starting point.
2021-09-21 06:25:35 +10:00
Marc Durdin
ffd66e32e1
Merge pull request #5697 from keymanapp/fix/developer/5013-debugger-ralt-not-working
fix(developer): support chiral modifiers in debugger 🐞
2021-09-20 16:12:47 +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
6de2238a25 fix(developer): remove empty touch rows on save
Fixes #5327.
2021-09-20 09:15:09 +10:00
Marc Durdin
838693d132
Merge pull request #5647 from keymanapp/feat/developer/debugger-keyboard-options
feat(developer): Debugger keyboard options 🐞
2021-09-17 10:11:29 +10:00
Marc Durdin
7295ea9af3
Merge pull request #5640 from keymanapp/feat/developer/debugger-platform-option
feat(developer): Debugger platform option 🐞
2021-09-17 10:10:53 +10:00
Marc Durdin
72e6188192 fix(developer): support chiral modifiers in debugger
The ralt, rctrl, lalt, lctrl modifiers were not working correctly
in the debugger.

Relates to #5013.
2021-09-15 15:55:42 +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
564a8a019a chore(developer): Merge branch 'feat/developer/debugger-platform-option' into feat/developer/debugger-keyboard-options 2021-09-14 14:18:39 +10:00
Marc Durdin
207bf84fd9 fix(developer): iOS platform is touch not hardware 2021-09-14 06:24:37 +10:00
Marc Durdin
4aeb06f98d feat(developer): handle form factor in platform options 2021-09-13 15:51:20 +10:00
Marc Durdin
bab345cb65 chore(developer): Merge branch 'master' into fix/developer/5577-import-from-layout-dirty-flag 2021-09-13 12:27:12 +10:00
Marc Durdin
36c21657e2 fix(developer): ensure file modified after import from layout
Fixes #5577.

This ensures that the touch layout file is marked as modified after
running Import From Layout in Keyman Developer, so that changes are
not lost when you save.
2021-09-10 14:19:47 +10:00
Marc Durdin
986743b05e chore(developer): fixup merge issue 2021-09-10 12:02:16 +10:00
Marc Durdin
8dffc75e00
Merge branch 'feat/developer/debugger-platform-option' into feat/developer/debugger-keyboard-options 2021-09-10 10:48:29 +10:00
Marc Durdin
e1bcf00117 chore(developer): Merge branch 'fix/developer/5648-debugger-include-keyman-core' into feat/developer/debugger-keyboard-options 2021-09-10 10:44:10 +10:00
Marc Durdin
f022a121df chore(developer): Merge branch 'fix/developer/5648-debugger-include-keyman-core' into feat/developer/debugger-platform-option 2021-09-10 10:43:44 +10:00
Marc Durdin
5b9e49ce4e chore: sign kmnkbp0-0.dll 2021-08-27 17:22:23 +10:00
Marc Durdin
fbdbf65553 chore(developer): build core with developer 2021-08-27 16:24:44 +10:00
Marc Durdin
adc2509c5c fix(developer): include Keyman Core in Keyman Developer
Fixes #5648.

Includes kmnkbp0-0.dll in the installer for Keyman Developer.
2021-08-27 13:22:19 +10:00
Marc Durdin
3d488c4ead feat(developer): Debugger keyboard options
Fixes #5642.
Relates to #5013.

This adds support for viewing and setting keyboard options in the
debugger. This initial implementation does not have 100% coverage of
keyboard options; specifically:

1. keyboard options are not saved between debug sessions.
2. in single-step debugging, the keyboard options will be shown as
   updated at the start of a keystroke batch, not when the rule which
   calls `set()` is fired. This level of granularity is not currently
   visible from the engine. It does not impact the correctness of the
   rule processing, only the view of the current state of the keyboard
   option.

I do not anticipate supporting either of those functions in 15.0.

This commit renames the existing `TfrmDebugStatus_Options` to
`TfrmDebugStatus_Platform`. I had originally planned to show both the
platform and keyboard options in the same debug status window, but for
space reasons I have split them. (I'm sorry if this makes reading the
PR a little more challenging.)

There is a significant amount of rewriting of kmxfileutils.pas and
debugkeyboard.pas. This extends support for working with kmx files and
modernises the code (e.g. using generics for list types).

Note in particular the `ExpandSentinel` function in kmxfileutils.pas.
This is copied from CompileKeymanWeb.pas but has different internal
references, so cannot be used as-is -- CompileKeymanWeb works with
intermediate object 'files' from the kmx compiler, whereas the debugger
works with final binary .kmx files which have a different in-memory
layout. It may be possible to unify this in future but that would
involve additional risk. (Seriously, I would probably prefer to rewrite
CompileKeymanWeb.pas in C++, Rust or TypeScript than to invest in
merging these two use cases.)
2021-08-27 11:07:00 +10:00
Marc Durdin
1f6aac7fd7 feat(developer): Debugger platform option
Relates to #5013.

Adds a debug status page to allow the user to select an alternative
platform so they can debug rules relating to those platforms which
are constrained by the `platform()` statement in the keyboard source.

Note that while touch platforms are listed here, there is not yet any
method of activating touch key events (e.g. `[T_foo]`). This
functionality is planned for a future update.
2021-08-26 10:12:57 +10:00
Marc Durdin
3f2ca56a39 fix(developer): F6 in debugger and cef focus
Relates to #5013.

If user presses F6 in the debugger (while not in run mode), will now
switch to editor view, and vice-versa.

Also fixes the inversion of the focus test in CEF so that focus controls
work correctly for web hosts.
2021-08-18 15:28:37 +10:00
Marc Durdin
bb351a7d0b chore(developer): hide debug events panel
Relates to #5013.

Hide the debug events panel by default, and add
a Tools menu item to make it visible for dev purposes
(Ctrl+Shift+click on Tools menu to view).
2021-08-18 09:05:53 +10:00
Marc Durdin
9f0ba213aa fix(developer): null check 2021-08-18 08:31:00 +10:00