Commit graph

4102 commits

Author SHA1 Message Date
Sabine
f86bd1f235 feat(developer): started with run returning artifacts 2025-06-25 17:53:55 +02:00
Sabine
072ecbe97b feat(developer): work on comments of PR 12564: replace if/else with array; change in util.ts to prevent NFD characters to be omitted 2025-06-25 15:25:42 +02:00
Sabine
e345798b4b feat(developer): work on more comments:
- make convert() private
- 2 new versions of write()
- tests for new versions of write()
- use keyman verion number
- remove process.cwd from keylayout-file-reader.ts
- add ERROR_UnsupportedCharactersDetected
2025-06-24 17:30:49 +02:00
Sabine
b400d57701 feat(developer): kmn-file writer print out UnicodeCharacters, edit tests using ConverterMsg;new func convertToUnicodeCharacter() with tests 2025-05-26 14:12:45 +02:00
Sabine
a9b8d544c7 feat(developer): push directly to 2D array; add Errors to ConverterMessages 2025-05-20 12:40:50 +02:00
Sabine
6193f392b6 feat(developer): used_key_count, start change throw Error-> callbacks.reportMessage, change header of file 2025-05-14 11:08:09 +02:00
Sabine
ab46494934 feat(developer): edit comments in file header, edit layout of error msg 2025-05-12 18:21:29 +02:00
SabineSIL
c7f6d15105
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2025-04-25 09:38:14 +02:00
Sabine
5c7d217ed4 feat(developer): converter messages 2025-04-24 14:08:51 +02:00
Marc Durdin
6ab557914b
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-04-24 19:07:51 +07:00
Sabine
6ac48da82a feat(developer): use callback for error msg in kmn-file-writer 2025-04-24 14:06:52 +02:00
Sabine
cb795f2b5d feat(developer): use callback for error msg 2025-04-22 18:56:01 +02:00
Marc Durdin
4f829f5c8f chore: Merge remote-tracking branch 'origin/master' into chore/merge-beta-to-master-b18s5 2025-04-21 07:13:35 +07:00
Sabine
a10849b939 feat(developer): replace empty output in test.keylayout 2025-04-16 17:31:12 +02:00
Sabine
94d3e542eb feat(developer): use test.keylayout in all tests; use single paths instead of relative path for test/data 2025-04-16 17:22:35 +02:00
Sabine
ca3697b7c2 feat(developer): create our own test.keylayout and use it in tests 2025-04-16 14:07:28 +02:00
Sabine
60f588e996 feat(developer): delete interface rule_object; unversion and move testfiles to test/data; use constants to specify folder 2025-04-15 17:38:43 +02:00
Sabine
1634cc0efb feat(developer): remove interface rule_object and use Rule instead 2025-04-14 14:54:24 +02:00
Sabine
b8e4a79211 feat(developer): use NodeAssert.rejects for tests of run() only; other tests changed back to before 2025-04-08 19:53:21 +02:00
Sabine
2a2b214e7f feat(developer): use chai-as-promised instead of { assert } from 'chai' 2025-04-04 18:30:06 +02:00
Sabine
b07202bbf0 feat(developer): add constant for file subfolder; rename rule_object->rules 2025-04-03 17:54:52 +02:00
Marc Durdin
21486882eb
Apply suggestions from code review 2025-04-03 16:44:36 +02:00
Sabine
91bdddf714 feat(developer): move convertToUnicodeCodePoint to util.ts 2025-04-03 16:04:22 +02:00
Sabine
ba12920195 feat(developer): move tests for kmn-file-writer and keylayout-file-reader in separate testfiles 2025-04-03 15:10:19 +02:00
Marc Durdin
838aea52ed refactor(developer): consolidate project loader
Consolidates project loading code from kmc and kmc-copy, in preparation
for kmc-test epic. This leaves open a change we need to make to
CompilerCallbacks, to consolidate the fsAsync and net callbacks into
CompilerCallbacks as a first-class part of CompilerCallbacks. We will
then need to start to move all the fs and net callback interactions to
the async model across all kmc modules, at some point.
2025-04-03 11:37:54 +07:00
Marc Durdin
cf16c37869 refactor(developer): move sentry and developer options into console apps
Move the sentry dependency out of developer-utils and into the console
apps kmc and server, in process of making sure that developer-utils has
no node dependencies.

Also copy the options.ts module into kmc and server, for the same
reason.

This first step duplicates two units, options.ts and KeymanSentry.ts. We
do need to refactor this again later to avoid this duplication (maybe
via yet another internal package?)
2025-04-03 09:56:46 +07:00
Marc Durdin
70838ff1ac refactor(developer): rename to developer-utils-messages.ts
Renames common-messages.ts to developer-utils-messages.ts. This was
split from /common/web/types, but the messages module retained the old
name, which was confusing (two modules with same name).
2025-04-03 09:26:27 +07:00
Marc Durdin
ac6eb0b767 chore: use explicit node: prefix for node imports
This makes it easier for us to enumerate modules that have node
dependencies. There may be others I have not yet picked up.
2025-04-03 08:01:08 +07:00
Marc Durdin
da5b05a195
Merge pull request #13640 from keymanapp/fix/developer/13600-follow-remove-redundant-lm-fields-from-kps
fix(developer): remove redundant Name and RTL fields from .kps `LexicalModel`
2025-04-03 05:40:32 +07:00
Marc Durdin
a4f33caf65
Merge pull request #13600 from keymanapp/fix/developer/13576-13593-remove-redundant-keyboard-fields-from-kps
fix(developer): remove redundant keyboard fields from .kps
2025-04-03 05:40:18 +07:00
Sabine
c08642f569 feat(developer): move read() and write() to modules 2025-04-02 17:20:56 +02:00
Marc Durdin
0f05da957f fix(developer): remove redundant Name and RTL fields from .kps LexicalModel
Follows on from the similar changes to `Keyboard` fields in #13600. This
deprecates the `RTL` and `Name` fields. `RTL` was never used. `Name` was
written but never presented to end users, so effectively irrelevant.
`Name` also was present in `File.Description` (already deprecated) for
the corresponding model.js _and_ `Info.Name`, so doubly redundant.

Also updates the schema documentation to mark the deprecated fields.

Relates-to: #13600
2025-04-02 05:39:09 +07:00
Sabine
c39eeff7c6 feat(developer): use fs and path from callbacks 2025-04-01 12:30:14 +02:00
SabineSIL
b89d55e60a
Merge branch 'epic/kmc-convert' into feat/developer/kmc-convert 2025-03-31 18:51:35 +02:00
Sabine
e3e8874091 feat(developer): rename test files according to new standard 2025-03-31 17:50:10 +02:00
Sabine
0fe56a4d88 feat(developer): change use of Backslash as Path Separator; remove all markers 2025-03-31 10:07:05 +02:00
Marc Durdin
9c1c417457 fix(developer): add special handling for 'und' in kmc-keyboard-info
This is a workaround for missing 'und' language tag.

`(new Intl.Locale('und')).language` returns `undefined` in V8, as of 31
March 2025. This means we cannot rely on `Intl.Locale` to parse the
bcp47 string for us. The implemented workaround is to replace `und` with
a known-good language subtag, and then swap it back out in later
processing.

Also adds unit test and new warning messages for invalid language tags
that were exposed during testing of this.

Fixes: #13610
2025-03-31 12:30:05 +07:00
Marc Durdin
4eb03c862e
Merge branch 'epic/kmc-convert' into chore/merge-master-into-kmc-convert 2025-03-31 12:13:38 +07:00
Marc Durdin
ab59fa29b4
Merge branch 'master' into chore/b18s4-merge-beta-to-master 2025-03-29 05:41:03 +07:00
Marc Durdin
a52437c407 chore: Merge branch 'master' into chore/b18s4-merge-beta-to-master 2025-03-29 05:38:08 +07:00
Marc Durdin
f9739e5e9b chore(developer): remove unreferenced kps fields from test 2025-03-29 04:21:41 +07:00
Marc Durdin
de5a02f8ce chore(developer): rewrap detail on semver LDML message 2025-03-29 04:14:38 +07:00
Sabine
91153a3eaa feat(developer): switch to write/not write rules with associated warnings 2025-03-28 20:12:00 +01:00
Sabine
f24ee130c9 feat(developer): add warning for superior rules 2025-03-28 17:47:50 +01:00
Marc Durdin
dbfe03aa8e chore(developer): improve kmc-ldml 'invalid version' message
Suggested by @Nnyny. Give more detail on the semantic version format for
keyboard version, as well as details on the limitations to semver
imposed by the Keyman toolchain.
2025-03-28 15:01:11 +07:00
Marc Durdin
86d457837f chore(developer): remove unreferenced fields from kmc-generate test fixtures
Relates-to: #13576
2025-03-28 14:59:07 +07:00
Marc Durdin
52d016fe7c chore(developer): remove redundant fields from kps reader unit test
Note: the round-trip test still passes because the XML data passes
basically unmodified through, even though we make no reference to the
fields in the code.

Fixes: #13576
2025-03-28 14:27:08 +07:00
Marc Durdin
9dabcc0306 fix(developer): remove redundant keyboard fields from .kps
The fields 'name', 'version', and 'rtl' were defined in the .kps file,
but were not actually used by the compiler, as kmc-package reads the
metadata from the keyboard file rather than relying on this data, which
often is out of date. This led to confusion for keyboard authors, so
this change removes that metadata from the package.

The one visible side-effect (apart from the data disappearing from
future .kps files) is that the package editor no longer shows this
metadata in the Keyboards view (but as it may be out-of-date, this is
probably a good thing).

Fixes: #13576
Fixes: #13593
2025-03-28 14:07:23 +07:00
Sabine
c25e3d2ffb Merge branch 'feat/developer/kmc-convert' of https://github.com/keymanapp/keyman into feat/developer/kmc-convert 2025-03-28 07:40:04 +01:00
Sabine
8cd457dbce feat(developer): add/remove input files 2025-03-28 07:37:55 +01:00