Commit graph

2740 commits

Author SHA1 Message Date
Marc Durdin
15523dfe11 fix(developer): warn if layer switch key is missing ID
Fixes #8000.

In earlier versions of KeymanWeb, it was assumed that layer switch keys
would not necessarily need an identifier, as they would not be
generating a standard KeymanWeb key event. However, this assumption does
not really hold, so we should be warning on missing identifiers for
layer switch keys.
2023-11-01 09:48:13 +07:00
Marc Durdin
0ec76f0761 chore(developer): rename messages.ts for clarity
Renames two messages.ts to kmn-compiler-messages.ts and
kmw-compiler-messages.ts, as otherwise confusion reigns.

Also a minor cleanup of the error messages from touch layout processing,
to clarify message names and return appropriate message for missing
layout file.
2023-11-01 09:30:31 +07:00
Marc Durdin
4ce16a08fc fix(developer): don't use osk-always-visible on touch devices
Fixes #9845.

It seems that the logic for `osk-always-visible` is not quite right on
touch devices -- the OSK disappears on blur but remains touchable -- so
presses in the OSK region emit key events. For Keyman Developer Server,
the simple workaround is to only use `<body class="osk-always-visible">`
when on desktop devices.

We should review the logic for `osk-always-visible` in KeymanWeb, so
that this issue does not arise on touch devices. This patch addresses
the issue in Keyman Developer Server, and matches the behaviour we want
on touch devices in any case, as we don't really want the OSK visible
when blurred, unlike on desktop.
2023-11-01 05:57:13 +07:00
Marc Durdin
c759414e71 fix(developer): layout builder - maintain presentation during undo
Fixes #7852.

When undo is run in the layout builder, it is better to keep the user's
selected presentation if possible. (The selected presentation is not
stored in the undo stack, but is a view property affected by the
currently selected platform.)
2023-11-01 04:59:40 +07:00
Marc Durdin
b26b6a37d7 fix(developer): use KeymanWeb.Codes for 17.0+
Fixes #8147.

Keyboards debug-compiled for web 17.0+ will use `KeymanWeb.Codes.`
instead of `keyman.osk.`.
2023-11-01 04:43:42 +07:00
Marc Durdin
5b9608438e feat(developer): Compile button in TIKE toolbar
Fixes #7891.
2023-10-31 14:20:18 +07:00
Marc Durdin
8c1f3c4783 fix(developer): raise error if virtual key in context string
Fixes #7880.

Virtual keys have never been allowed in context. This should be an error
in a keyboard. Note: virtual keys in output are officially unsupported
but still kinda sorta a little bit work in Windows -- but I doubt they
will ever be officially supported.

Also includes small side journey to tidy up names and constants for two
other tests (error_duplicate_group and error_duplicate_store).
2023-10-31 14:04:26 +07:00
Marc Durdin
236b1ebc54 fix(developer): enable and update unit tests
Several unit tests were not running as they were not referenced in
developer/src/test/auto/Makefile. This meant that some tests were
outdated:

* two keyboard fixtures needed recompiling with kmcomp in order to match
* some interfaces had changed slightly, necessitating updates to
  corresponding unit tests.
2023-10-31 13:50:34 +07:00
Marc Durdin
0d36fc0cf8 fix(developer): enable line breaks in debugger
Fixes #9444.
2023-10-31 12:59:51 +07:00
Marc Durdin
3d6c3c81eb fix(developer): open editor links in new window
Fixes #9849.
2023-10-31 12:44:07 +07:00
Marc Durdin
3db78a2244 chore(developer): change field label to 'Related Package ID' in Related Packages dialog
Fixes #9853.
2023-10-31 11:50:53 +07:00
Marc Durdin
b2d628dc79 fix(developer): Project MRU now saves correctly
Fixes #9899.

Several problems resolved here:
* project mru did not refresh the welcome screen on first load, so the
  welcome screen was often showing projects that were no longer relevant
* content saved to registry did not match expectations on load, so mru
  never worked between sessions (always flushed on reload)
* synchronization between simultaneous sessions did not work, because
  the list was only saved when Keyman Developer exited

Minor tidyup:
* WideString -> string -- legacy cleanup from when Delphi was
  non-Unicode.
* Reordered functions to group more clearly.

Note: the issue was not that there was both registry and xml content;
the source of truth is the registry for Project MRU, and project_mru.xml
is copied from that for the welcome screen. So instead of taking the
fix recommended in #9899, have addressed this by fixing the above points
in the registry code.
2023-10-31 10:46:35 +07:00
Marc Durdin
68c1bcd454 fix(developer): debug flag for compiling keyboards
Fixes #9885.

The 'Include Debug Info' flag was being ignored by the kmc wrapper.
2023-10-31 09:39:35 +07:00
Marc Durdin
f3e4507484 fix(developer): compiler crash when no project loaded
Fixes #9889.

This arises from a deprecated way of using Keyman Developer by starting
Keyman Developer by opening a keyboard .kmn file from Explorer, which
causes Developer to run in a 'projectless' mode. This was not tested in
the new compiler integration, and that has caused this crash.

In 'projectless' mode, there is still a global 'untitled' project, but
the files loaded do not 'belong' to it. The compiler settings are
inherited from the global 'untitled' project in this case.
2023-10-31 06:06:02 +07:00
Darcy Wong
2064ac4556 chore(developer): Cleanup unused ZWNJ 2023-10-30 09:29:30 +07:00
Darcy Wong
4085612ad9 fix(developer): Revise check on special characters 2023-10-30 09:26:22 +07:00
Darcy Wong
1727278af0 chore(developer): Merge remote-tracking branch 'origin/master' into chore/developer/non-printing-chars 2023-10-30 09:25:55 +07:00
Marc Durdin
83ca8783e3
Merge pull request #9861 from keymanapp/fix/developer/9851-fill-from-layout-displaymap-path
fix(developer): handle displayMap correctly with 'fill from layout'
2023-10-28 17:50:13 +11:00
Steven R. Loomis
d1bbdbf07a fix(developer): ldml improve key compiler 🙀
- shorten one line

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 21:45:32 -05:00
Steven R. Loomis
3176f88ba4 fix(developer): ldml only hint on normalization=disabled 🙀
For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 21:42:21 -05:00
Darcy Wong
7bacbb2d8d chore(developer): Merge remote-tracking branch 'origin/master' into chore/developer/non-printing-chars 2023-10-27 06:47:43 +07:00
Steven R. Loomis
f72c571696
Merge branch 'master' into chore/developer/9838-cldr44-epic-ldml 2023-10-26 18:38:14 -05:00
Steven R. Loomis
a45dc5c345 chore(developer): ldml update to prefinal v44 🙀
-  fix binary size issue
- upstream: issue in abnt2 sample keyboard

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 18:21:56 -05:00
Steven R. Loomis
4d358cabda chore(developer): ldml update to prefinal v44 🙀
-  utilities for extracting key ids
-  more key validation and munging
-  touch layout
-  fix basic.txt

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 12:57:07 -05:00
Marc Durdin
e321e54458 fix(developer): handle displayMap correctly with 'fill from layout'
Fixes #9851.

Two fixes:

* errors from loading the displayMap from disk should be handled before
  passing result to next function
* temp compile of the .kmn for the 'fill from layout' function should be
  in the same path as the original .kmn, so that referenced files can be
  located
2023-10-26 14:47:53 +07:00
Marc Durdin
cff2e0e3ba feat(developer): extract font family from .ttf in kmc-keyboard-info
Instead of generating a name for the web fonts, we should be using the
font family from the .ttf, as we have it available. This allows us to
avoid downloading the font if the user already has it installed on their
system.

Uses ttfmeta npm package, which is a lightweight .ttf reader. Updates
the honking big unit test to do some basic tests on this functionality.
2023-10-26 14:15:54 +07:00
Marc Durdin
85c39ad846
Merge pull request #9839 from keymanapp/fix/developer/9830-confusing-unicode-fields
fix(developer): reduce confusion in Unicode fields in touch layout editor
2023-10-26 16:17:27 +11:00
Marc Durdin
762f343b52
Merge pull request #9824 from keymanapp/chore/common/kpj-handle-xml-error
chore(common): handle invalid XML in kpj-file-reader
2023-10-26 13:46:29 +11:00
Marc Durdin
72f7a6ec09
Merge pull request #9822 from keymanapp/fix/developer/9702-server-download-keyman-link
fix(developer): server download Keyman link
2023-10-26 13:46:19 +11:00
Marc Durdin
a51adc7787
Merge pull request #9821 from keymanapp/fix/developer/9797-package-compiler-handle-xml-error
fix(developer): handle xml errors in package compiler
2023-10-26 13:46:06 +11:00
Marc Durdin
d92bd1e70a chore(developer): handle failures to build kmp.json in kmc-package 2023-10-26 09:32:26 +07:00
Darcy Wong
7b00306954 fix(developer): Add check for CSpecialText17 2023-10-26 04:46:57 +07:00
Steven R. Loomis
a8e2be5e9e chore(developer): ldml update to prefinal v44 🙀
- more tweaks

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-25 15:40:24 -05:00
Steven R. Loomis
6da64553fc chore(developer): ldml update to prefinal v44 🙀
- form

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-25 08:56:55 -05:00
Darcy Wong
bf0a0938a8 chore(developer): Add handling for new characters 2023-10-25 14:59:23 +07:00
Darcy Wong
cd27628652 chore(developer): Add non-printing characters 2023-10-25 14:26:14 +07:00
Marc Durdin
cdac2dd01b chore(developer): verify kmp.json output from kmc-package 2023-10-25 12:07:46 +07:00
Steven R. Loomis
a9f437f97a chore(common,developer): ldml update to prefinal v44 🙀
- more data and developer fixes

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-24 17:40:34 -05:00
Steven R. Loomis
1ff2bfc4d7 chore(developer,common,core): ldml update to prefinal v44 🙀
- more data file updates
- now updating some developer files
- updating the KMX+ spec with some changes.
 (vkey was dropped in #7135, remove it from the spec)

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-24 17:28:08 -05:00
Steven R. Loomis
870cf76049 chore(developer,core): ldml update to prefinal v44 🙀
- more data files

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-24 14:56:09 -05:00
Steven R. Loomis
5dbda001fc chore(common,core): ldml update to prefinal v44 🙀
- common passes tests
- updated data files

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-24 14:47:22 -05:00
Marc Durdin
82177013e9 chore(core): Merge branch 'master' into feat/core/9720-actions-apis 2023-10-24 20:55:10 +07:00
Marc Durdin
6919004693 fix(developer): reduce confusion in Unicode fields in touch layout editor
Fixes #9830.
2023-10-24 20:04:25 +07:00
Marc Durdin
8aee151b5d chore: add comments to note internal APIs 2023-10-24 12:35:24 +07:00
Marc Durdin
0aa86501c6 chore(core): fix types and compile errors
Fixes #9832. Addresses a couple of other cross-platform compile issues.
2023-10-24 09:25:08 +07:00
Marc Durdin
c645707279 chore(common): handle invalid XML in kpj-file-reader 2023-10-23 08:53:30 +07:00
Marc Durdin
f3333bfe3b fix(developer): server download Keyman link
Fixes #9702.
2023-10-23 05:22:50 +07:00
Marc Durdin
234add1b38 fix(developer): handle xml errors in package compiler
Fixes #9797.
2023-10-22 07:36:45 +07:00
Eberhard Beilharz
fdc9baadb2
chore(linux): Merge remote-tracking branch 'origin/master' into chore/linux/9733_RenameLibknmkbp 2023-10-20 12:31:14 +02:00
Steven R. Loomis
85ae8e0d45
Merge branch 'feat/core/9468-normalization-epic-ldml' into feat/core/9468-test-improvement-epic-ldml 2023-10-19 17:14:41 -05:00