Commit graph

4256 commits

Author SHA1 Message Date
Marc Durdin
7644ce668f chore(developer): cleanup for kmx-builder 2022-08-26 04:44:00 +10:00
Marc Durdin
420dc1c10c feat(developer): emit kmxplus format 2022-08-26 04:40:25 +10:00
Sabine
097b9ed773 chore(developer): CheckFileNameConsistency changed to take KMX_WCHART const* (= wchar_t* const); used in compiler.cpp now 2022-08-25 12:21:44 +02:00
Marc Durdin
23d9aad0a0 chore(developer): cleanup 2022-08-25 15:12:00 +10:00
Marc Durdin
aed8f0d11a feat(developer): Write kmxplus section
Adds support for writing kmxplus section of a kmx file. Extends KMXFile
to a KMXPlusFile subclass. Adds KMXPlusBuilder which is called from
KMXBuilder if KMXBuilder finds that the file is a KMXPlusFile.

This means that KMXPlusBuilder generates a buffer that could be stored
independently of its parent .kmx file transport, if that is later
considered desirable.

Adds new constants for sizes of various table components, which makes
building the file much simpler.
2022-08-25 12:26:21 +10:00
Sabine
52d6629d58 Merge branch 'refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION' of https://github.com/keymanapp/keyman into refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION
# Conflicts:
#	developer/src/kmcmpdll/CheckNCapsConsistency.cpp
#	developer/src/kmcmpdll/UnreachableRules.cpp
#	developer/src/kmcmpdll/kmcmpdll.h

solved conflicts ( were only blanc lines)
2022-08-24 16:06:52 +02:00
Sabine
ec534ca898 chore(developer): removed #pragma once from wrong places, edited #includes 2022-08-24 16:01:06 +02:00
Sabine
296006de99 chore(developer): removed #pragma once from wrong places, edited #includes 2022-08-24 15:34:22 +02:00
Marc Durdin
6aeb20e77c
Revert "Revert "feat(core): turn @keymanapp/ldml-keyboard-constants into a module 🙀"" 2022-08-24 14:32:22 +10:00
Marc Durdin
8ebae9515e
Revert "feat(core): turn @keymanapp/ldml-keyboard-constants into a module 🙀" 2022-08-24 14:26:44 +10:00
Marc Durdin
5e296c98af feat(core): turn @keymanapp/ldml-keyboard-constants into a module
Splits the building of keyboardprocessor_ldml.h into a separate
tsconfig.build.json, and designates keyboardprocessor_ldml.ts as a new
Typescript/Node module @keymanapp/ldml-keyboard-constants.

Includes an example usage in the (currently unused) kmx-plus.ts.
2022-08-24 14:10:20 +10:00
Marc Durdin
a3e672e808 feat(developer): LDML compiler kmx-builder
Generates a valid .kmx file (legacy structures only) from an
intermediate in-memory structure. Included for completeness, although it
is anticipated that LDML keyboards will not have any groups, though they
will probably have some metadata stores.
2022-08-24 13:43:09 +10:00
Marc Durdin
d4553f674a chore(developer): rename structures 2022-08-24 09:42:08 +10:00
Marc Durdin
4018e528d9 feat(developer): groundwork - kmx file structures
Defines kmx binary structures and wireframe builder to emit a .kmx file.

Currently the builder will emit a roughly correct header. Next steps are
to build a .kmx file with stores, groups and keys, to match existing KMX
compiler behaviour. Once that is done, will return to generation of
KMXPlus data structures.

Compiler is designed to work independent of file system so it should run
inside browser or node environment. kmldmlc.ts is node-specific, but all
other modules should be multi-platform.
2022-08-24 09:32:30 +10:00
Marc Durdin
9ce6892112
Merge pull request #7101 from keymanapp/feat/developer/ldml-keyboard-ts-structures
feat(developer): LDML keyboard compiler - infrastructure 🙀
2022-08-23 18:29:49 -05:00
Marc Durdin
8cba43f989
chore: Apply suggestions from code review
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
Co-authored-by: Steven R. Loomis <srl295@gmail.com>
2022-08-24 09:29:03 +10:00
Marc Durdin
e6ff47f2b3 chore: Merge branch 'master' into feature-ldml 2022-08-24 04:21:21 +10:00
Marc Durdin
cc8875dc9e chore(developer): cleanup comments 2022-08-24 03:54:25 +10:00
Marc Durdin
c108e5ecd6 feat(developer): add kmldmlc to developer installer 2022-08-24 03:29:45 +10:00
Sabine
1482f18a73 chore(developer): tidied up code (not finished yet) 2022-08-23 18:33:22 +02:00
Marc Durdin
ab6f91c587 feat(developer): bundling of kmldmlc
Adds basic bundling of kmldmlc to Keyman Developer. Bundling script
built. Yet to come: .wxs integration.
2022-08-23 11:20:54 +10:00
Marc Durdin
1a0b67a242 feat(developer): LDML keyboard compiler - infrastructure 2022-08-23 10:27:34 +10:00
Sabine
6b52b97d54 chore(developer): mostly whitespace changes 2022-08-22 19:34:37 +02:00
Sabine
0595c2b3b4 chore(developer): replaced u16ncmp with u16nicmp at most places 2022-08-19 17:58:38 +02:00
Sabine
776d928785 chore(developer): tests using RTL run Ok ( changed RTu->RTL) 2022-08-19 08:01:50 +02:00
Sabine
1da8d115d8 chore(developer): added return Msgs for different types of errors while compiling 2022-08-19 08:01:28 +02:00
Steven R. Loomis
56aeee35c7 feat(core): add event_flags to process_event #7046
- pascal fix
2022-08-15 12:21:42 -05:00
Marc Durdin
f7189387b3
Merge pull request #7013 from keymanapp/fix/developer/keymanweb-readonly-groups-mismatches
fix(developer): compiler emitting garbage for readonly groups 🎾
2022-08-15 04:40:51 -05:00
Marc Durdin
1a001d6761
Merge pull request #7033 from keymanapp/fix/developer/7032-crash-compiling-ansi-for-web
fix(developer): prevent crash attempting to compile ansi keyboard 🎾
2022-08-15 02:16:02 -05:00
Marc Durdin
d9f8be05af chore(developer): fixup u16ncat 2022-08-12 18:12:12 +02:00
Sabine
d93462a0ae chore(developer): changef u16fmt 2022-08-12 17:06:56 +02:00
Steven R. Loomis
e8dff5cf4e feat(core): add event_flags to process_event #7046
- use a constant, KM_KBP_EVENT_FLAG_DEFAULT for 0
- update pascal and python
- update linux and windows
2022-08-12 09:58:58 -05:00
Sabine
bc5bf6971b chore(developer): fixed errors on running kmcompxtest 2022-08-12 16:46:10 +02:00
Sabine
d5d1cd7228 chore(developer): fopen 2022-08-12 16:04:49 +02:00
Sabine
7795ca5cd1 chore(developer): changed printf->u16sprintf 2022-08-12 15:41:25 +02:00
Sabine
56e4167e55 chore(developer): new functions e.g. string_from_wstring... 2022-08-12 15:32:07 +02:00
Sabine
051c3bbdea Merge branch 'refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION' of https://github.com/keymanapp/keyman into refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION 2022-08-11 17:32:50 +02:00
Marc Durdin
b2b3b81952 chore(developer): enable tests for keyboards repo for kmcompx 2022-08-11 17:30:20 +02:00
Sabine
2f599c0365 chore(developer): changed #includes ".." -> <..> 2022-08-11 15:45:45 +02:00
Sabine
ed0859c9a5 chore(developer): changed #includes ".." -> <..> 2022-08-11 15:37:03 +02:00
Sabine
80529075e7 chore(developer): removed doubled/overwritten functions 2022-08-11 14:57:26 +02:00
Sabine
f11c1b0db9 chore(developer): removed commented sections ( ** old **) if files 2022-08-11 14:31:33 +02:00
Sabine
071af34ed0 chore(developer): removed files from kmcompx/include/ 2022-08-11 14:21:06 +02:00
Sabine
b1428fbe96 chore(developer): chanched include of pch.h 2022-08-11 13:50:50 +02:00
Sabine
575ebae04c chore(developer): removed kmcompx/include/kmx_file.h 2022-08-11 12:05:30 +02:00
Sabine
83f4a5c9a6 chore(developper): removed typedefs of kmcompcx.h 2022-08-11 11:55:40 +02:00
Marc Durdin
38d3d97520
Merge branch 'refactor/core/move-kmx_file.h-to-common' into refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION 2022-08-11 04:41:37 -05:00
Marc Durdin
41320f7d10 chore(common): refactor shared types into km_types.h 2022-08-11 11:13:00 +02:00
Sabine
3447b8aa2f chore(developer): remove keyboardprocessor... 2022-08-11 10:55:52 +02:00
Sabine
bc53a08489 chore(developer): tidied up vkeys.H / .cpp 2022-08-11 10:39:56 +02:00