- also found that kmc's validate() should have been async but wasn't, a little bit of churn because of this
- unassigned not implemented yet, but tests in place for it.
- change SectionCompiler.postValidate to only be called during the validate() run of compilation. This way messages will only show once.
For: #9446
Relates to #9948.
While the schema validation does check the version already, it gives a
fairly obtuse message, and we can do better.
Found a secondary issue with a iterator type guard needed in
kpj-file-reader when preparing unit test, which was probably masked in
other tests by not verifying all messages generated, so updated all
infrastructure message tests to verify the full set of messages
generated.
Relates to #9948.
When upgrading a project to v2.0, it is important that all source files
are in the same folder. This change makes the upgrade process verify
that this is the case and blocks the upgrade if there are source files
in multiple folders.
Source files are .kmn, .xml (ldml keyboard), .kps, and .model.ts.
For batch builds (e.g. project/compile all) of v2.0 projects, we only
want to build files that are listed in the project's $SOURCEPATH, so
that the project can contain extra folders with source file types that
won't break a project-level build.
Any source file types in extra folders can still be built one-by-one,
which is helpful for investigation and test for keyboard authors, but
will not be built if project build is selected.
This commit also formalizes the source/ SourcePath for upgraded projects
which contain a source/ folder. If the project to be upgraded does not
contain the source/ folder, then no SourcePath is assigned, and any
source file in any folder will be built.
Relates to #9948.
Having the project upgrade messages in the Messages panel means that
users can refer to them as they clean up their projects to bring them
into the v17 format.
Identifies .xml keyboards when building file list, then shows those
appropriately in the keyboard list. Also enables grouped actions such
as keyboard_compileall for those keyboards.
Adds actions to support LdmlKeyboardEditor, and refactors and
reorganizes the existing actions along the way to make them clearer.
Compile, Install, and Uninstall supported at this time
Because the debugger actions are used only with the kmn keyboard editor,
it makes sense to keep them as a separate module, in preparation for
supporting XmlLdmlKeyboards.
Adds XmlLdml keyboard editor form based on the plain text Editor for
now.
ActiveEditor is a name used for multiple purposes. Rename to
ActiveKmnKeyboardEditor and introduce ActiveLdmlKeyboardEditor
alongside.
Fixes#9869.
Adds a 'Description' field, tweaks Copyright strings, and tweaks
default content for documentation to the New Project wizards and
kmconvert.
Relates to #9948. Starts basic support for v2.0 projects.
For all operating modes:
- Remove blank projects / untitled projects mode
- Add Open Project Folder buttons and links
- Remove Project Save As
- Render uses in-memory XML
- Upgrade to v2.0 project file (along with checks)
For v2.0 projects:
- Remove 'Add File to Project'
- Populate Files to list all files in folder (note: consider efficiency
here as currently files are parsed for subfile data)
- Version 2.0 project options and defaults