spiegel-keyman/developer/src
Marc Durdin 8501f2aa6d feat(core): add deleted_context to km_core_actions struct
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.
2024-01-29 13:21:25 +07:00
..
common Merge pull request #10258 from keymanapp/feat/developer/10150-control-message-severity 2024-01-16 14:01:27 +11:00
ext fix(developer): partial Revert in test and json validator 2023-05-01 21:36:45 -05:00
images fix(developer): remove ancient samples 2022-11-01 17:04:38 +11:00
inst chore(developer): one component per file 2024-01-24 10:17:32 +07:00
kmanalyze fix(core): fix for incorrect earlier fix 2022-09-22 17:26:39 -05:00
kmc fix(developer): sentry-cli no longer injects into .d.ts 2024-01-24 10:22:08 +07:00
kmc-analyze feat(developer): common Messages exports from kmc modules 2023-12-14 09:40:18 +07:00
kmc-keyboard-info feat(developer): common Messages exports from kmc modules 2023-12-14 09:40:18 +07:00
kmc-kmn chore(developer): preserve const enums in kmc-kmn 2024-01-24 11:29:43 +07:00
kmc-ldml Merge branch 'feat/core/10319-escaping-you-epic-ldml' into feat/developer/10319-remove-old-escape-epic-ldml 2024-01-17 18:49:50 -06:00
kmc-model feat(developer): common Messages exports from kmc modules 2023-12-14 09:40:18 +07:00
kmc-model-info chore(developer): fix typo 2024-01-02 13:01:22 +07:00
kmc-package feat(developer): common Messages exports from kmc modules 2023-12-14 09:40:18 +07:00
kmcmplib feat(developer): warn on usage of virtual keys in rule output 2023-11-23 15:13:56 +10:00
kmconvert fix(developer): tidy up LDML keyboard project template 2024-01-23 14:00:39 +07:00
kmdecomp chore: copy files back 2022-11-29 10:19:07 +07:00
samples fix(windows): lower case filenames for projects 2022-11-28 19:29:48 +07:00
server fix(developer): model should activate instantly if matching keyboard exists when registered 2024-01-08 10:00:07 +07:00
setup chore(developer): increase label height in setup 2022-06-29 12:54:22 +10:00
test chore(developer): remove obsolete files 2023-12-01 12:00:56 +07:00
tike feat(core): add deleted_context to km_core_actions struct 2024-01-29 13:21:25 +07:00
tools Merge pull request #9736 from keymanapp/chore/merge-master-into-package-metadata 2023-10-11 11:28:07 +11:00
.eslintrc.cjs chore(developer): add eslint devDependency for kmc 2023-04-25 13:44:56 +07:00
.gitignore feat(developer): remove kmcomp 2023-09-09 17:47:15 +02:00
Defines.mak feat(developer): fixup and prepare build scripts and docs for kmc 2022-09-19 06:36:06 +10:00
developer.groupproj feat(developer): remove kmcomp 2023-09-09 17:47:15 +02:00
developer.sln feat(developer): remove kmcmpdll 2023-09-02 12:25:29 +04:00
Header.mak chore(developer): additional moves of developer scripts 2022-05-22 07:59:54 +10:00
history.md chore(developer): move source files to /developer/src 2022-05-18 10:34:48 +10:00
Makefile Merge pull request #9736 from keymanapp/chore/merge-master-into-package-metadata 2023-10-11 11:28:07 +11:00
README.md Merge pull request #9571 from keymanapp/feat/developer/remove-kmcmpdll 2023-10-03 15:35:19 +02:00
Target.mak chore(developer): move .mak to src 2022-05-19 09:26:00 +10:00

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.