Commit graph

2884 commits

Author SHA1 Message Date
Marc Durdin
2a9f2a3958
Merge pull request #12586 from keymanapp/feat/developer/kmc-copy-github-and-cloud-support
feat(developer): add GitHub and Cloud support to kmc-copy
2024-11-08 05:14:14 +01:00
Marc Durdin
eefbdc413d
Merge pull request #12555 from keymanapp/feat/developer/kmc-copy
feat(developer): kmc-copy
2024-11-08 05:14:02 +01:00
Marc Durdin
b80c124ec8
Merge pull request #11014 from keymanapp/feat/developer/kmc-generate
feat(developer): kmc generate
2024-11-08 05:13:51 +01:00
Steven R. Loomis
422a2625b5
Merge pull request #12613 from keymanapp/fix/developer/12467-invalid-marker-names
fix(common): check for invalid markers
2024-11-07 13:26:15 -06:00
Steven R. Loomis
774eba727e chore(developer): fix typo in test comment
Co-authored-by: Marc Durdin <marc@durdin.net>
2024-11-07 09:37:54 -06:00
Marc Durdin
78999fb7bc
Merge pull request #12588 from keymanapp/feat/developer/12505-report-key-address-in-layout-compiler
feat(developer): Report key 'address' in validation failures in layout compiler
2024-11-07 07:06:51 +01:00
Marc Durdin
08215e28fa
Merge pull request #12622 from keymanapp/feat/developer/9767-kmc-analyze-extend-mapping
feat(developer): analyze osk-char-use merge with existing mapping file
2024-11-07 05:51:33 +01:00
Marc Durdin
59adf5e4ff
Merge pull request #12630 from keymanapp/chore/developer/12623-skip-masaram-gondi
chore(developer): skip masaram_gondi in kmcmplib full test
2024-11-07 05:47:00 +01:00
Marc Durdin
20b72ed63b
Merge pull request #12629 from keymanapp/fix/developer/12107-regression-debug-store
fix(developer): use 'N' for nomatch store debug strings (regression in #12107)
2024-11-07 05:46:45 +01:00
Marc Durdin
6002024525 chore(developer): add address to Error_TouchLayoutInvalidIdentifier message 2024-11-07 07:27:02 +07:00
Marc Durdin
393a15e2f2 chore(developer): skip masaram_gondi in kmcmplib full test
masaram_gondi.kmx fixture is built from a known-bad source, which is
caught in kmcmplib 18.0.

This failure is because the keyboard source had non-BMP characters in
the key part of the rule on line 215, which has been picked up by the
18.0 compiler in #11806:

```
$keymanonly: if(opt1 = 'gondi') any(Vyanjana)"𑵄" + any(Vyanjana)	>	index(Vyanjana,2) U+11D45
```

The trick here is that the compiled fixture
developer/src/kmcmplib/tests/fixtures/keyboards-repo/masaram_gondi.kmx
is based on a [broken version of the keyboard
source](965ef1941f/release/m/masaram_gondi/source/masaram_gondi.kmn)
in the keyboards repo ([fixed
version](06cfd2d186/release/m/masaram_gondi/source/masaram_gondi.kmn)),
and updating to the fixed version will also trigger updates to a bunch
of other keyboards. I think the simplest resolution is probably to skip
masaram_gondi for 18.0.

Relates-to: #12623
Relates-to: #11806
2024-11-06 09:49:39 +07:00
Marc Durdin
baf08c77e6 fix(developer): correct regression from #12107
Fixes a regression arising from #12107 in debug store strings.

Relates-to: #12623
Relates-to: #12107
2024-11-06 09:48:00 +07:00
Marc Durdin
7af4ae42ae
chore: Apply suggestions from code review 2024-11-06 03:06:47 +01:00
Marc Durdin
f717b2ba5c fix(developer): handle merge commits when checking git log date
Relates-to: keymanapp/keyboards#3143
Fixes: #12626
Fixes: KEYMAN-DEVELOPER-2AY
2024-11-06 06:11:38 +07:00
Marc Durdin
c683657969 feat(developer): analyze osk-char-use merge with existing mapping file
A gap in the kmc-analyze module displayMap support was that it was not
possible to extend an existing mapping file, but only to rewrite one.
This caused issues because the mappings could change between runs, if
keyboards changed, meaning fonts would not be backward compatible. This
change guarantees an existing mapping file will have exactly the same
character mappings, and only adds new mappings that are found.

Also adds unit tests and enables for kmc-analyze.

Fixes: #9767
2024-11-05 14:43:29 +07:00
Marc Durdin
ea6714956f
Merge pull request #12608 from keymanapp/fix/developer/12607-force-server-directory-before-config-save
fix(developer): create Server config directory before options save
2024-11-05 07:07:02 +01:00
Marc Durdin
1fc6558eea
Merge pull request #12596 from keymanapp/fix/developer/12553-kmc-model-handle-missing-files
fix(developer): handle missing files in kmc-model
2024-11-05 07:06:03 +01:00
Marc Durdin
9c403bc947
Merge pull request #12595 from keymanapp/fix/developer/12546-kmc-kmn-handle-missing-files
fix(developer): handle missing files in kmc-kmn
2024-11-05 07:05:52 +01:00
Marc Durdin
60e7f869fb
Merge pull request #12594 from keymanapp/fix/developer/12517-paste-into-wordlist-editor
fix(developer): handle paste of TSV into Wordlist grid
2024-11-05 07:05:40 +01:00
Steven R. Loomis
3eac4f12c9 fix(common): check for invalid markers
- pattern parser update
- correct spelling of Error_InvalidVariableIdentifier
- track and report bad marker strings (look like markers but not)
- fix: may have missed markers mentioned in variables
- tests for above

Fixes: 12467
2024-11-04 10:15:56 -06:00
Marc Durdin
0467febf46
chore(developer): apply review suggestions 2024-11-04 05:01:43 +01:00
Marc Durdin
ae9a4210c3 fix(developer): create Server config directory before options save
Also use back-off logic for saving in case config file is locked by
another process.

Fixes: #12607
Fixes: KEYMAN-DEVELOPER-1Z1
2024-11-04 08:08:28 +07:00
Steven R. Loomis
c057112c9f fix(developer): add a test for empty varable id, fix message
- stray \u in Error_InvalidVariableIdentifer
- add a test for an empty variable id
2024-11-01 13:47:39 -05:00
Steven R. Loomis
ac99a4c54d fix(developer): ldml don't allow a uset as right-hand-side variable
- to="$[triisap]" is a mistake and not allowed.
- it's either meant to be a regular variable, or a map. Both of those are different syntax.
- add a test for the failing case, and also for the escaped case (to="\$[…)
2024-11-01 13:03:31 -05:00
Marc Durdin
10a933aba4 chore(developer): kmc-copy: warn or info on missing files on GitHub, rather than error 2024-10-31 12:00:13 +07:00
Marc Durdin
2a0e17cab7 fix(developer): handle missing files in kmc-model
If a file is not found, loadfile returns null, which kmc-model now
handles with a clear error message rather than a generic exception.
Checks added for missing .model.ts and missing wordlist.tsv files. Added
corresponding unit tests.

Fixes: #12553
Fixes: KEYMAN-DEVELOPER-294
2024-10-31 09:29:46 +07:00
Marc Durdin
55e3f73a36 fix(developer): handle missing files in kmc-kmn
If a file is not found, the loadfile callback now returns an empty array
rather than null, which kmcmplib interprets as a missing file. This
means a zero-byte file will have the same outcome but as it is also
generally invalid, I think that is acceptable.

Fixes: #12546
Fixes: KEYMAN-DEVELOPER-292
2024-10-31 09:08:44 +07:00
Marc Durdin
ad1e77731f fix(developer): handle paste of TSV into Wordlist grid
When pasting into the wordlist grid, the editor will now check if the
clipboard text contains newlines or tabs, and if so, will paste the
text as new rows in the wordlist (with a prompt), rather than pasting
the whole text into the current cell.

If the clipboard text does not contain NL or TAB then the default
in-cell editor paste handling will run.

Fixes: #12517
2024-10-31 08:40:02 +07:00
Marc Durdin
91fc7f99bd chore(developer): fix import path 2024-10-30 13:11:42 +07:00
Marc Durdin
a38f46040e feat(developer): Report key 'address' in validation failures in layout compiler
All messages that reference keys in the touch layout will now give the
row+column index of the key with the issue (and longpress/flick/multitap
index as well if relevant).

Fixes: #12505
2024-10-30 12:34:15 +07:00
Dr Mark C. Sinclair
8ac4267ce3 chore(developer): added commented-out unit test for multiple grouped virtual keys (see #12307) 2024-10-29 14:13:36 +00:00
Dr Mark C. Sinclair
feb7c51f8f chore(developer): four additional test cases with spaces around the names of custom virtual keys 2024-10-29 13:20:20 +00:00
Dr Mark C. Sinclair
2da8f7b17b chore(developer): add two test cases for VKeyMayBeVCKey when FMnemonicLayout is set 2024-10-29 13:13:49 +00:00
Dr Mark C. Sinclair
ac1931140e chore(developer): Merge branch 'master' into test/developer/kmcmplib-compiler-unit-tests-4 2024-10-29 10:47:18 +00:00
Marc Durdin
d68a64252e feat(developer): add GitHub and Cloud support to kmc-copy
This requires a significant refactor to the compiler interfaces to allow
for asynchronous filesystem and network access. For now, only kmc-copy
uses the asynchronous interfaces, but over time we may try and
consolidate them where other compiler modules find them useful. This
adds a big set of unit test fixtures to avoid network instability in
tests (the fixtures can be regenerated by setting environment variable
`TEST_SAVE_FIXTURES`).
2024-10-28 10:33:42 +07:00
Dr Mark C. Sinclair
c36f093a91 chore(developer): some clarification of comments on test cases for custom name virtual keys 2024-10-24 12:40:21 +01:00
Dr Mark C. Sinclair
4b30cc9f3f chore(developer): added virtual key names to initVKDictionary() 2024-10-24 12:29:02 +01:00
Marc Durdin
f6549befd7 chore(developer): ignore new line form when testing kmc-copy 2024-10-22 15:49:57 +07:00
Marc Durdin
6df121a05a feat(developer): kmc-copy cleanup and documentation
* Hides details on --rename and online sources for projects
  until implemented
2024-10-22 10:28:04 +07:00
Marc Durdin
089478d140 feat(developer): kmc-copy functionality and unit tests 2024-10-22 10:28:03 +07:00
Marc Durdin
40db1c2051 feat(common): add isDirectory, helper functions for kmc-copy 2024-10-22 10:28:03 +07:00
Marc Durdin
4b228a6161 feat(developer): add unit test fixtures for kmc-copy 2024-10-22 10:28:02 +07:00
Marc Durdin
1e084e99f0 refactor(developer): add kps-file-reader and kps-file-writer
Relates to kmc-copy project.

Moves the .kps file reader out of kmc-package and adds corresponding
kps file writer unit in developer-utils. Also moves related test and
error message definition.
2024-10-22 10:28:01 +07:00
Marc Durdin
521a9b24c8 feat(developer): add .kpj file writer 2024-10-22 10:28:00 +07:00
Marc Durdin
7d17913e18 feat(developer): seed kmc-copy 2024-10-22 10:28:00 +07:00
Marc Durdin
4c0588ea39 refactor(developer): define output path in kmc-generate artifacts 2024-10-22 10:25:30 +07:00
Dr Mark C. Sinclair
6ec4a47214 chore(developer): three test cases for custom virtual key names 2024-10-21 12:30:08 +01:00
Dr Mark C. Sinclair
e54762e1eb chore(developer): add two test cases for long virtual key names 2024-10-21 11:55:41 +01:00
Dr Mark C. Sinclair
b3635680a6 chore(developer): correct extern variable initialisation (kmcmp::FMnemonicLayout) 2024-10-21 10:48:36 +01:00
Marc Durdin
e0cc39ee32 refactor(developer): add kps-file-reader and kps-file-writer
Relates to kmc-copy project.

Moves the .kps file reader out of kmc-package and adds corresponding
kps file writer unit in developer-utils. Also moves related test and
error message definition.
2024-10-16 08:45:35 +07:00