Commit graph

3907 commits

Author SHA1 Message Date
Steven R. Loomis
d7cb7b63a3 feat(developer): add an EventResolver
- it's a hook to the hook to allow the LDML compiler to resolve error message line numbers
- TODO still not extra performant, but maybe the right separation of concerns

Fixes: #10622
2025-03-03 13:14:41 -06:00
Steven R. Loomis
3e73a3f081 feat(developer): add CompilerEvent.offset
- per review, keep this as a separate field.

Fixes: #10622
2025-03-03 12:36:42 -06:00
Steven R. Loomis
4d9ea2db2d feat(developer): work around line number symbols
- add KeymanXMLReader.removeSymbols() and call it from tests

Fixes: #10622
2025-02-28 14:24:12 -06:00
Steven R. Loomis
819d9bf562 feat(developer): API for resolving line numbers for messages
- change to use a different fast-xml-parser PR, https://github.com/NaturalIntelligence/fast-xml-parser/pull/729

Fixes: #10622
2025-02-28 12:08:31 -06:00
Steven R. Loomis
650042fb6e feat(developer): API for resolving line numbers for messages
- simplify the error call site again

Fixes: #10622
2025-02-28 10:53:21 -06:00
Steven R. Loomis
d38025b4a1 feat(developer): API for resolving line numbers for messages
- Only read the xml file once

Fixes: #10622
2025-02-28 10:32:05 -06:00
Steven R. Loomis
c4ca359d18 feat(developer): API for resolving line numbers for messages
- add 'column' to CompilerEvent
- Add a LdmlCompilerMessages.col() function to set the column number
- add a LdmlCompilerMessages.resolveLineNumber() to map offsets to line number

Fixes: #10622
2025-02-28 09:27:25 -06:00
Steven R. Loomis
b60c64c3d3 feat(developer): test for line number extension to xml-utils
Fixes: #10622
2025-02-27 16:42:41 -06:00
Steven R. Loomis
ec68e74bde feat(developer): add experimental char-offset data
Depends on PR https://github.com/NaturalIntelligence/fast-xml-parser/pull/728 so uses srl repository "temporarily"

Fixes: #10622
2025-02-27 16:24:21 -06:00
Steven R. Loomis
61b9234daf feat(developer): document test cases
Fixes: #13175
2025-02-20 08:20:50 -06:00
Steven R. Loomis
7e28758892
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-02-20 08:18:55 -06:00
Steven R. Loomis
3c3d2586e6 chore(developer): ldml: build updates for ABNF
- fix build output

Fixes: #13175
2025-02-18 11:05:55 -06:00
Steven R. Loomis
92463b9a89 feat(developer): ldml: update tests for ABNF
- reinstate errors

Fixes: #13175
2025-02-17 16:17:03 -06:00
Steven R. Loomis
24f629a9f1 feat(developer): ldml: update tests for ABNF
- some error messages are less specific now than they were before ABNF, because we're not using custom code to test them.

Fixes: #13175
2025-02-14 16:29:16 -06:00
Steven R. Loomis
2e842bc19c feat(developer): update builder for abnf
- just convert over all abnf (as we do with copying imports)
- hard coded CLDR version number for now

Fixes: #13175
2025-02-14 13:12:11 -06:00
Steven R. Loomis
53b20e6adc feat(developer): use peggy grammar in from/to transform
Fixes: #13175
2025-02-14 12:27:15 -06:00
Steven R. Loomis
a2a0e79675 feat(core): convert abnf to peggy grammar
- convert each .abnf to a .pegjs file

Fixes: #13175
2025-02-14 12:27:15 -06:00
Steven R. Loomis
8c163594bc
Merge branch 'master' into feat/developer/12874-kmx-to-xml-cherrypick 2025-02-13 13:10:37 -06:00
Marc Durdin
342f216291 chore: increment to alpha 19.0 2025-02-11 14:14:15 +07:00
Steven R. Loomis
9a33a26d5c feat(developer): preserve CLDR version on serialize
Fixes: #12874
2025-02-10 12:35:25 -06:00
Steven R. Loomis
b59bb6d4de feat(developer): serialize KMXPlus into XML 🍒
Cherry pick of #12969
> feat(developer): serialize KMXPlus (back) into XML 🗼

(cherry picked from commit f93c45c9e8 #12969)

Fixes: #12874
2025-02-10 12:12:12 -06:00
Marc Durdin
7554786bc3
Merge pull request #13161 from keymanapp/fix/developer/13135-new-project-welcome-and-model-file-format
fix(developer): link welcome.htm in package for new projects; use v17 project format for new models
2025-02-10 09:10:07 +07:00
Marc Durdin
c1b930217b
Merge branch 'master' into feat/developer/13109-check-that-package-does-not-contain-itself 2025-02-10 08:20:05 +07:00
Marc Durdin
2d5e3ee440
Merge pull request #13156 from keymanapp/feat/developer/13134-improve-messages-and-links
feat(developer): improve compiler messages and user interface
2025-02-10 08:19:11 +07:00
Marc Durdin
b9c0c180db
Merge pull request #13131 from keymanapp/fix/developer/13052-support-non-us-base-keyboard-in-debugger
fix(developer): support non-US base keyboard layouts in debuggers
2025-02-10 08:19:04 +07:00
Marc Durdin
d5a594ad81
Merge pull request #13118 from keymanapp/feat/developer/13067-verify-version-format-in-kmc-package
feat(developer): verify package version number format in kmc-package
2025-02-10 08:18:53 +07:00
Marc Durdin
503d045fee fix(developer): for new projects, link welcome.htm in package; use v17 project format for new models
* Links welcome.htm in the package details for all project types
* Uses v17 project file format for new lexical model projects
* Nit: changes shortcut key for 'supported languages' from 'l' to 's'
  to fix conflict with 'full copyright'.

Fixes: #13135
2025-02-07 13:50:11 +07:00
Marc Durdin
a00e446ee7
chore(developer): use correct .kmp file extension in fixture
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2025-02-07 05:11:47 +01:00
Marc Durdin
4509aca88a feat(developer): verify that packages do not contain themselves in kmc-package
Fixes: #13109
2025-02-07 09:30:07 +07:00
Marc Durdin
bd4633333b feat(developer): improve compiler messages and user interface
* Add unit test to verify the format of message detail strings
  (max line length of 80 chars)
* Add unit test to verify non-null, non-empty message strings
* Tidy up a number of messages (to pass unit tests)
* Add message details for all kmw compiler messages
* Add a clickable link for the TIKE message window for each message
  so that explanations and further message details are more accessible
  to authors (`kmc message` is already available for command-line users)
* Fixes a number of minor issues with the messages window in TIKE,
  mostly relating to when popup menu commands are enabled and how
  messages are selected.

Fixes: #13134
2025-02-07 08:46:46 +07:00
Marc Durdin
432f975283 fix(developer): support non-US base keyboard layouts in debuggers
Keyman Core expects US English virtual key codes, so make sure that the
debuggers translate the key codes they receive from Windows to the hard-
coded values for US English, as defined in ScanCodeMap.

Fixes: #13052
2025-02-05 15:22:24 +07:00
Marc Durdin
662ad0f4c1
Merge pull request #13080 from keymanapp/chore/developer/add-verbose-logs-for-copier
chore(developer): add verbose logs for project copier
2025-02-05 11:30:33 +07:00
Marc Durdin
7d70b6c31d
Merge pull request #13076 from keymanapp/feat/developer/13073-kmc-copy-ui-in-developer
feat(developer): add user interface for `kmc copy` to TIKE
2025-02-05 11:30:22 +07:00
Marc Durdin
2df63dddae
Merge pull request #13075 from keymanapp/fix/developer/13072-make-kmc-log-options-consistent
fix(developer): make kmc log options consistent across all commands
2025-02-05 11:30:10 +07:00
Marc Durdin
9db0d086dc
Merge pull request #13113 from keymanapp/feat/developer/kmc-include-command-line-in-sentry-reports
feat(developer): include command line in kmc sentry reports
2025-02-04 11:43:12 +07:00
Marc Durdin
4a879acd9d chore(developer): minimize PII in sentry cmdline report 2025-02-04 10:12:23 +07:00
Marc Durdin
439c091c9e chore: update docs to reference node 20.0
Relates-to: keyman-keyboards/khmer_angkor#1
2025-02-04 07:58:52 +07:00
Marc Durdin
706f3996c2 chore(developer): prevent leading zeroes in initial component of version number 2025-02-03 14:07:38 +07:00
Marc Durdin
6dbc20f87b feat(developer): verify package version number format in kmc-package
Ensures that version number field is not blank, and is a recognized
format matching the pattern 'number[.number[.number]]'. Each number
component should be an integer, without leading zeroes.

The format chosen is more restrictive than semver, because much of our
existing infrastructure assumes this format anyway. This does lead to
a mismatch in version number format for LDML keyboards, which do support
semver according to the spec, so this may need to be revisited in the
future to allow for full semver formats.

Fixes: #13067
2025-02-03 14:00:58 +07:00
Marc Durdin
adf4b80bc0 chore(developer): make kmc-generate more resilient with nullish options 2025-02-03 10:30:13 +07:00
Marc Durdin
072c47b853 fix(developer): pass correct generator options from kmc
Also add some resilience to option usage in kmc-generate; more work may
need to be done here in future.

Fixes: #13110
2025-02-03 10:13:36 +07:00
Marc Durdin
05c17e3439 feat(developer): include command line in kmc sentry reports
In order to reproduce kmc errors, it's very helpful to know how it was
instantiated. This change includes the command line call for kmc. This
includes things such as a keyboard filename and may include file paths,
but does not include private personal information or secrets.
2025-02-03 09:53:45 +07:00
Steven R. Loomis
4f6c34de8c
Merge pull request #13099 from keymanapp/feat/developer/12749-ldml-local-import-workaround
chore(developer,core,resources): LDML v46 update and remove workaround for import base
2025-01-31 11:16:12 -06:00
Steven R. Loomis
72928c19ef chore(developer): LDML update issue
- missed a windows installer location

Fixes: #11307
2025-01-31 09:04:45 -06:00
Steven R. Loomis
622900a5d8 chore(developer): LDML update issue
- test needed to be updated

Fixes: #11307
2025-01-30 23:42:10 -06:00
Steven R. Loomis
b54ea40770 chore(developer): update comments per review
- note that 45,46,47 are the same data and so aliased

Fixes: #11307
2025-01-30 23:13:36 -06:00
Marc Durdin
60b00e8645
Merge pull request #13081 from keymanapp/chore/developer/handle-forward-slash-in-paths-in-package-editor
chore(developer): handle forward slashes in paths in package editor
2025-01-31 11:51:02 +07:00
Marc Durdin
595f486414
chore: Apply suggestions from code review
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2025-01-31 05:05:23 +01:00
Marc Durdin
afa3e3a0b2 feat(developer): clarify project id format for kmc-copy UI
Fixes: #13073
2025-01-31 11:01:40 +07:00
Marc Durdin
46be7a8b10 chore(developer): roll back unwanted package editor form changes 2025-01-31 08:58:19 +07:00