Fixes#6455.
This involved adding an extra hint to the data passed into the lexical
model layer, being the CasingForm that the current layer wants to use.
Given there are several entry points to the lexical model layer, this
meant a few places where we needed to check the current layer.
I refactored the very long function `InputProcessor.processKeyEvent` to
extract out the `buildAlternates` function. There should be no
functional changes to the `buildAlternates` code. But it makes
`processKeyEvent` significantly easier to read.
Fixes#6005.
If a key has no default behavior, and the expectation is to trigger the
key default, then set the output behavior to null, so that the caller
will do the action.
This fixes a regression in #5553, which handled the situation where a
rule was triggered but then default output was expected (common example
is final sigma transform only when a word is finished).
The regression resulted in suggestions rotating unexpectedly when
pressing a modifier key.
This change modifies the `run-tests.sh` script so that tests
run on both Wayland (if supported) and X11 unless
`--no-wayland` or `--no-x11` is specified.
This change also adds the new argument `--wayland` to the
`ibus-keyman-tests` executable which runs the tests under
Wayland.
Note that running Wayland tests is only possible in Ubuntu 21.10+
because it requires a version of `mutter` that supports the
headless option which got added in mutter 40.
Fixes#5063.
It can be useful to be able to insert multiple keys into the active
keyboard source file. With this tweak, the dialog no longer closes with
the Insert button, only with the Close button.
There was confusion in the compiler between INFO and HINT type messages.
The problem is that INFO messages will be suppressed by -s/-ss in
kmcomp, but we actually still want HINT messages to be emitted. So I
have gone ahead and renamed CERR_INFO to CERR_HINT and updated all the
places.
This was necessary in order for the kmcomp e2e test 194 to pass.
Fixes#194.
Adds a check for all the various file types that may be referenced by a
.kmn file to ensure that the case of the reference matches the case in
the filesystem, to ensure that files are transportable across to
case-sensitive filesystems.
The output is provided as a Hint (Info) level message so that it does
not fail keyboard builds.
Fixes#2185.
If a wordlist file is not in the same folder as the .model.ts file,
Keyman Developer will now ask the user if they want it copied into the
folder.
Also minor fix: if the user deletes a row in a wordlist, it marks the
file as modified.
Also very minor: the initial folder for the Add Wordlist dialog is now
the same as the .model.ts file.
This adds 4 tests for unreachable code and 1 future test. It also fixes
test.bat so that it exits with an error if the tests fail, and ensures
that tests are run by fixing the parent Makefile.
This is a follow-up for #6331. We still did not have enough detail to
be able to trace the root cause of the load errors. This adds a little
more diagnostics.
Fixes#355.
Fixes#1710.
This is structured as a feature so it is tested as such, but was part of
the set of fixes scheduled for 15.0 beta. Any rule in a group that
Keyman Developer assesses as 'unreachable' will receive a hint message.
The current rule match is fairly simplistic -- it only does an exact
comparison -- so duplication which is indirect, through `any(store)`
references in the context would still result in unreachable rules that
are not picked up.