Commit graph

2740 commits

Author SHA1 Message Date
Marc Durdin
b3b2825168 fix(developer): path separator for kmc-package
Fixes #10027.
2023-11-23 16:45:12 +10:00
Marc Durdin
e983818bda feat(developer): warn on usage of virtual keys in rule output
Fixes #10059.

Use of the unsupported and undocumented virtual key output, that doesn't
work in recent Keyman versions, at all, now results in a build warning.

Only a warning, because it did kinda work in old versions of Keyman.
2023-11-23 15:13:56 +10:00
Marc Durdin
94a9e91e61 fix(developer): generate version 2.0 keyboard project 2023-11-22 09:33:55 +10:00
Steven R. Loomis
c42615420d feat(developer): err/hint on illegal/pua 🙀
- 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
2023-11-17 22:41:58 +00:00
Steven R. Loomis
fffac6716e fix(developer): vis kbd callbacks instead of throw 🙀
- fix API and call sites

For: #9438
2023-11-17 12:42:48 -06:00
Steven R. Loomis
eebb88699d feat(developer): refactor a little bit to give a postValidate() phase
- postValidate() is called after all other compilation happens
- also make SectionCompiler actually abstract
- test fixes to support this

For: #9446
2023-11-17 18:08:07 +00:00
Steven R. Loomis
b802d14af1 feat(developer): ldml fix call to LdmlKeyboardVisualKeyboardCompiler() 🙀
- fix a call site

For: #9438
2023-11-17 08:55:42 -06:00
Steven R. Loomis
361c7d8ec6 fix(developer): vis kbd callbacks instead of throw 🙀
- fix API and call sites

For: #9438
2023-11-16 14:40:39 -06:00
Marc Durdin
38f9b29cc9 fix(developer): show relative path in Distribution tab
For the Project view, the Distribution tab now shows file relative
paths, which helps with organization. Have opted _not_ to show the
relative paths in the other tabs, because that information is visible
when the file details are expanded, and because those files should
always be in SourcePath anyway.
2023-11-16 11:50:54 +07:00
Marc Durdin
55c0c6fd08 fix(developer): projects 2.0 internal path enumeration
Restricts enumeration of files for the project to the project folder and
the SourcePath folder. This prevents problems where a project may be in
a folder with many subfolders which would take a long time to enumerate,
and avoids confusion where there are source-type files in other folders.

At the same time, sorts out forward slash vs backslash in paths. While
forward slash works in many scenarios, there are several filename
manipulation functions, such as ExpandFileName, which would build valid
but non-optimal paths when forward slashes were encountered, which
cascaded into files appearing to be different and presentation issues.
2023-11-16 11:47:35 +07:00
Darcy Wong
284ec099ee
Merge pull request #9993 from keymanapp/chore/common/keymanweb-osk-ttf
chore(web,developer): Move keymanweb-osk.ttf to common/resources
2023-11-15 19:10:27 +07:00
Marc Durdin
a355721e1b
Merge pull request #9996 from keymanapp/chore/developer/9948-handle-project-version-cleanly-in-kmc
chore(developer): handle project version checks cleanly in kmc 🦕
2023-11-15 13:48:44 +11:00
Marc Durdin
e2b7c69f61
Merge pull request #9995 from keymanapp/chore/developer/9948-only-source-path-files-in-project-views
chore(developer): show only source path files in project views 🦕
2023-11-15 13:48:37 +11:00
Marc Durdin
dce6de57c9
Merge pull request #9989 from keymanapp/feat/developer/9948-handle-errors-loading-projects
feat(developer): handle errors loading projects 🦕
2023-11-15 13:48:29 +11:00
Marc Durdin
4ac71cca19
Merge pull request #9986 from keymanapp/chore/developer/9948-manage-sourcepath-in-upgrade-project
chore(developer): manage SourcePath in project upgrade 🦕
2023-11-15 13:48:19 +11:00
Marc Durdin
16bea3442e
Merge pull request #9985 from keymanapp/chore/developer/9948-only-build-source-files
chore(developer): only build source files 🦕
2023-11-15 13:48:09 +11:00
Marc Durdin
8895775d12
Merge pull request #9984 from keymanapp/feat/developer/9948-project-settings-20-form
feat(developer): Project Settings Form for 17.0+ projects 🦕
2023-11-15 13:47:44 +11:00
Marc Durdin
e77472c658
Merge pull request #9969 from keymanapp/fix/developer/9948-show-project-upgrade-messages-in-messages-panel
fix(developer): Project upgrade messages now show in Messages panel 🦕
2023-11-15 13:47:35 +11:00
Marc Durdin
7d204d5b06
Merge pull request #9966 from keymanapp/fix/developer/kmc-build-ldml-create-outdir
fix(developer): kmc build ldml keyboard should create output folder 🦕
2023-11-15 13:47:26 +11:00
Marc Durdin
ad2f6b33c9
Merge pull request #9964 from keymanapp/feat/developer/9948-show-ldml-xml-keyboards-in-project
feat(developer): show .xml LDML keyboards in project 🦕
2023-11-15 13:47:16 +11:00
Marc Durdin
b8dcc1b43d
Merge branch 'master' into feat/developer/9948-load-xml-ldml-files 2023-11-15 13:46:52 +11:00
Marc Durdin
26900f7b2c
Merge pull request #9956 from keymanapp/chore/developer/9948-hide-remove-project
chore(developer): hide 'Remove From Project' for v2.0 projects 🦕
2023-11-15 13:46:26 +11:00
Marc Durdin
c060666c0a
Merge pull request #9950 from keymanapp/feat/developer/9869-new-project-description-and-tweaks
feat(developer): New Project - Description field and tweaks 🦕
2023-11-15 13:46:16 +11:00
Marc Durdin
a937f3c7de
Merge pull request #9949 from keymanapp/feat/developer/tike-2.0-projects
feat(developer): Support v2.0 projects in TIKE 🦕
2023-11-15 13:46:07 +11:00
Darcy Wong
9af4ce3f53 fix(developer): Attempt 2 to copy font 2023-11-15 09:07:04 +07:00
Darcy Wong
71ea3c3fd1 fix(developer): Update Makefile to copy keymanweb-osk.ttf 2023-11-15 06:41:13 +07:00
Darcy Wong
2f9bb5be7f fix(developer): Add configure output for font 2023-11-14 08:32:18 +07:00
Marc Durdin
65b7b20dc8 chore(developer): handle project version checks cleanly in kmc
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.
2023-11-14 06:24:28 +07:00
Marc Durdin
4fe5df1e69 chore(developer): show only source path files in project views
Relates to #9948.

For v2.0 projects, only show .kmn, .kps, .model.ts, .tsv, and .xml files
if they are source files within Options.SourcePath.
2023-11-14 06:02:04 +07:00
Darcy Wong
799a84579a chore(developer): Add configure step to copy font 2023-11-13 20:31:14 +07:00
Darcy Wong
6ff0cd202d chore(common): Move keymanweb-osk.ttf to common/ 2023-11-13 15:44:46 +07:00
Marc Durdin
53b57939e4 feat(developer): handle errors loading projects
Relates to #9948.

Prevents loading of projects other than v1.0, v2.0, and also handles
error cases when attempting to load projects.
2023-11-13 13:41:58 +07:00
Marc Durdin
c488460c71 chore(developer): manage SourcePath in project upgrade
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.
2023-11-13 12:12:11 +07:00
Marc Durdin
d39af4edc5 chore(developer): only build source files
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.
2023-11-12 06:43:39 +07:00
Marc Durdin
f9272aac21 feat(developer): Project Settings Form for 17.0+ projects 2023-11-12 06:40:58 +07:00
Marc Durdin
3c0b7a9b51 fix(developer): Project upgrade messages now show in Messages panel
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.
2023-11-08 12:33:42 +07:00
Marc Durdin
974bbd1ee3 fix(developer): kmc build ldml keyboard should create output folder
Relates to #9948.
2023-11-08 10:38:35 +07:00
Marc Durdin
5e9056f142 feat(developer): show .xml LDML keyboards in project
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.
2023-11-08 10:06:25 +07:00
Marc Durdin
a923537ed4 feat(developer): Actions to support LdmlKeyboardEditor
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
2023-11-08 08:16:11 +07:00
Marc Durdin
7c937e7d94 feat(developer): Split dmActionsDebugger out of dmActionsKeyboardEditor
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.
2023-11-08 06:22:50 +07:00
Marc Durdin
befe2b87a1 refactor(developer): add xmlLdml types and form, rename ActiveEditor
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.
2023-11-08 06:03:11 +07:00
Marc Durdin
7b8fe32161 feat(developer): Add basic LDML XML keyboard file support to TIKE projects 2023-11-08 05:51:28 +07:00
Darcy Wong
71a9b9d66a
Merge pull request #9846 from keymanapp/chore/developer/non-printing-chars
feat(developer): Add more non-printing characters
2023-11-07 15:20:21 +07:00
Marc Durdin
857017f4ad chore(developer): remove obsolete project code
Removes old state load/save from each project file type, and the
unused WarnAsError property, in preparation for xmlLdmlProjectFile.
2023-11-07 14:57:40 +07:00
Marc Durdin
96e78c6818 chore(developer): fix typo 2023-11-07 14:57:08 +07:00
Marc Durdin
a312f735ad chore(developer): tweak prompt for project upgrade 2023-11-07 14:29:04 +07:00
Marc Durdin
eb97eb94b5 chore(developer): hide 'Remove From Project' for v2.0 projects
Relates to #9948.
2023-11-07 14:26:49 +07:00
Marc Durdin
0285993fcf feat(developer): New Project - Description field and tweaks
Fixes #9869.

Adds a 'Description' field, tweaks Copyright strings, and tweaks
default content for documentation to the New Project wizards and
kmconvert.
2023-11-07 06:04:33 +07:00
Marc Durdin
4c5a91081f feat(developer): Support v2.0 projects in TIKE
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
2023-11-07 05:18:25 +07:00
Darcy Wong
5902c764c7
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-11-06 15:26:32 +07:00