Fixes #10530. Adds the deleted_context member to the km_core_actions struct, and associated unit tests. Simplifies integration by providing the consumer with all the data they need in order to execute the transform, specifically around number of delete operations required, without needing to query the target application context again. The number of delete operations will vary according to application compliance and selected encoding; for example a UTF-16 string may require 2 delete-backs for surrogate pairs in the text buffer for a compliant app, whereas there will be a single delete-back key event for a non-compliant app. The deleted_context member should also be used for debug assertions. |
||
|---|---|---|
| .. | ||
| common | ||
| ext | ||
| images | ||
| inst | ||
| kmanalyze | ||
| kmc | ||
| kmc-analyze | ||
| kmc-keyboard-info | ||
| kmc-kmn | ||
| kmc-ldml | ||
| kmc-model | ||
| kmc-model-info | ||
| kmc-package | ||
| kmcmplib | ||
| kmconvert | ||
| kmdecomp | ||
| samples | ||
| server | ||
| setup | ||
| test | ||
| tike | ||
| tools | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| Defines.mak | ||
| developer.groupproj | ||
| developer.sln | ||
| Header.mak | ||
| history.md | ||
| Makefile | ||
| README.md | ||
| Target.mak | ||
Keyman Developer
This is the current home for Keyman Developer.
Cross-dependencies
We do not have 100% clean separation between Keyman Developer and Keyman for Windows. Shared units are intended to live in common, however the following projects will need to be updated in the future.
- kmbrowserhost in Windows is included as part of Keyman Developer.
Folders
src/common
Units shared among Keyman Developer projects, Delphi
src/ext
3rd party code and components, mostly Delphi
src/inst - keymandeveloper.msi
Building and signing of the installation archive keymandeveloper.msi.
src/inst/node
Contains a minimal distribution of node.js intended just for running kmc. If more dependencies are required, then the developer will be expected to install node.js themselves; this gets users going without requiring a large installer or a full node.js install.
src/kmanalyze - kmanalyze.exe
A keyboard source analysis and automated regression test tool. Testing for logical errors of a keyboard.
src/kmconvert - kmconvert.exe & kmconvert.x64.exe
KMConvert converts keyboard layouts between different formats. KMConvert will generate a full Keyman template project from the imported layout or data, in a new folder named with the ID of the keyboard. It will not overwrite an existing folder. Also used to generate new projects from templates.
src/kmdecomp - kmdecomp.exe
Unsupported utility decompiles a Keyman .kmx keyboard. It will produce a .kmn source file and optionally a .ico or .bmp image. see kmdecomp/kmdecomp.md for details.
src/kmc
node-based next generation compiler, hosts kmc, (and legacy kmlmc, kmlmp)
src/kmc-analyze - Analysis tools
File analysis tools for Keyman files.
src/kmc-keyboard-info - Keyboard Info Compiler
Builds .keyboard_info files for use on the Keyman Cloud keyboard repository at https://github.com/keymanapp/keyboards. Command line access through kmc.
src/kmc-kmn - Keyboard Compiler
Builds .kmx files from .kmn. Command line access through kmc.
src/kmc-ldml - LDML Keyboard Compiler
Next Generation keyboard compiler - LDML keyboards. Command line access through kmc.
src/kmc-model - Lexical Model Compiler
The Lexical Model Compiler, runs on nodeJS on all supported desktop platforms. Command line access through kmc.
src/kmc-model-info - Model Info Compiler
Builds .model_info files for use on the Keyman Cloud lexical model repository at https://github.com/keymanapp/lexical-models. Command line access through kmc.
src/kmc-package - Package Compiler
Compiles .kps packages into .kmp files. Works with both lexical model packages and keyboard packages. Command line access through kmc.
src/samples
Contains sample keyboards and sample developer projects. See readme.txt for details.
src/server
Keyman Developer Server. Node-based, cross platform host app for Keyman Developer. Used currently for web-based test and deployment. In future, will be the foundation for a web-based Keyman Developer project.
src/setup - setup.exe
Installation program for Keyman Developer for Windows. Bundles with keymandeveloper.msi to generate single deployable installer executable.
src/tike - "Tavultesoft Integrated Keyboard Editor"
This is the designer side of the Developer. Used for designing, developing, testing and packing keyboards for distribution.
src/tools
Various build-time tools for Keyman Developer.