mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-08 23:17:29 +00:00
Merge pull request #9046 from keymanapp/chore/developer/kmc-web-compiler-cleanup
refactor(developer): move constants and globals for kmw compiler 🗜
This commit is contained in:
commit
23ef2da1be
6 changed files with 637 additions and 633 deletions
|
|
@ -8,6 +8,9 @@ export let FMnemonic: boolean;
|
|||
export let options: CompilerOptions;
|
||||
export let callbacks: CompilerCallbacks;
|
||||
export let kmnfile: string;
|
||||
export let FUnreachableKeys: KMX.KEY[];
|
||||
export let FCallFunctions: string[];
|
||||
export let FFix183_LadderLength: number;
|
||||
|
||||
export function setupGlobals(_callbacks: CompilerCallbacks, _options: CompilerOptions, _tab: string, _nl: string, _keyboard: KMX.KEYBOARD, _kmnfile: string) {
|
||||
callbacks = _callbacks;
|
||||
|
|
@ -16,6 +19,9 @@ export function setupGlobals(_callbacks: CompilerCallbacks, _options: CompilerOp
|
|||
nl = _nl;
|
||||
fk = _keyboard;
|
||||
kmnfile = _kmnfile;
|
||||
FUnreachableKeys = [];
|
||||
FCallFunctions = [];
|
||||
FFix183_LadderLength = 100; // TODO: option
|
||||
}
|
||||
|
||||
export function IsKeyboardVersion10OrLater(): boolean {
|
||||
|
|
|
|||
71
developer/src/kmc-kmn/src/kmw-compiler/constants.ts
Normal file
71
developer/src/kmc-kmn/src/kmw-compiler/constants.ts
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
export enum TRequiredKey {
|
||||
K_LOPT, K_BKSP, K_ENTER
|
||||
}; // I4447
|
||||
|
||||
export const
|
||||
CRequiredKeys: TRequiredKey[] = [TRequiredKey.K_LOPT, TRequiredKey.K_BKSP, TRequiredKey.K_ENTER]; // I4447
|
||||
|
||||
// See also builder.js: specialCharacters; web/source/osk/oskKey.ts: specialCharacters
|
||||
export const
|
||||
CSpecialText10: string = '*Shift*\0*Enter*\0*Tab*\0*BkSp*\0*Menu*\0*Hide*\0*Alt*\0*Ctrl*\0*Caps*\0' +
|
||||
'*ABC*\0*abc*\0*123*\0*Symbol*\0*Currency*\0*Shifted*\0*AltGr*\0*TabLeft*',
|
||||
// these names were added in Keyman 14
|
||||
CSpecialText14: string = '*LTREnter*\0*LTRBkSp*\0*RTLEnter*\0*RTLBkSp*\0*ShiftLock*\0*ShiftedLock*\0*ZWNJ*\0*ZWNJiOS*\0*ZWNJAndroid*',
|
||||
CSpecialText14ZWNJ: string = '*ZWNJ*\0*ZWNJiOS*\0*ZWNJAndroid*',
|
||||
CSpecialText14Map: string[][] = [
|
||||
['*LTREnter*', '*Enter*'],
|
||||
['*LTRBkSp*', '*BkSp*'],
|
||||
['*RTLEnter*', '*Enter*'],
|
||||
['*RTLBkSp*', '*BkSp*'],
|
||||
['*ShiftLock*', '*Shift*'],
|
||||
['*ShiftedLock*', '*Shifted*'],
|
||||
['*ZWNJ*', '<|>'],
|
||||
['*ZWNJiOS*', '<|>'],
|
||||
['*ZWNJAndroid*', '<|>']
|
||||
];
|
||||
|
||||
|
||||
// These correspond to TSS_ values in kmx.ts
|
||||
export const
|
||||
KMXCodeNames: string[] = [
|
||||
'',
|
||||
'any', 'index', 'context', 'nul', 'use', 'return', 'beep', 'deadkey',
|
||||
'',
|
||||
'extended', '', 'switch', 'key', 'clearcontext', 'call',
|
||||
'', 'contextex', 'notany',
|
||||
'set', 'if', 'save', 'reset', // I3429
|
||||
'if(&system)', 'set(&system)']; // I3430 // I3437
|
||||
|
||||
|
||||
export const
|
||||
USEnglishUnshift: string = ' `' + '1234567890' + '-' + '=' + 'qwertyuiop' + '[' + ']' + '\\' + 'asdfghjkl' + ';' + '\'' + 'zxcvbnm' + ',' + '.' + '/',
|
||||
USEnglishShift: string = 0xFF + '~' + '!@#$%^&*()' + '_' + '+' + 'QWERTYUIOP' + '{' + '}' + '|' + 'ASDFGHJKL' + ':' + '"' + 'ZXCVBNM' + '<' + '>' + '?',
|
||||
USEnglishValues: string = 0x20 + 0xc0 + '1234567890' + 0xbd + 0xbb + 'QWERTYUIOP' + 0xdb + 0xdd + 0xdc + 'ASDFGHJKL' + 0xba + 0xde + 'ZXCVBNM' + 0xbc + 0xbe + 0xbf,
|
||||
UnreachableKeyCodes: number[] = [ // I4141
|
||||
0x00, // &H0
|
||||
0x01, //VK_LBUTTON, // &H1
|
||||
0x02, //VK_RBUTTON, // &H2
|
||||
0x03, //VK_CANCEL, // &H3
|
||||
0x04, //VK_MBUTTON, // &H4
|
||||
0x05, // &H5
|
||||
0x06, // &H6
|
||||
0x07, // &H7
|
||||
0x0A, // &HA
|
||||
0x0B, // &HB
|
||||
0x0E, // &HE
|
||||
0x0F, // &HF
|
||||
0x10, //VK_SHIFT, // &H10
|
||||
0x11, //VK_CONTROL, // &H11
|
||||
0x12, //VK_MENU, // &H12
|
||||
0x13, //VK_PAUSE, // &H13
|
||||
0x14, //VK_CAPITAL, // &H14
|
||||
0x1B, //VK_ESCAPE, // &H1B
|
||||
|
||||
0x90, //VK_NUMLOCK, // &H90
|
||||
0x91 //VK_SCROLL // &H91
|
||||
];
|
||||
|
||||
/**
|
||||
* The character set that we allow for identifiers for JavaScript
|
||||
*/
|
||||
export const SValidIdentifierCharSet = /[A-Za-z0-9_]/;
|
||||
|
|
@ -1,15 +1,11 @@
|
|||
import { TSentinelRecord, GetSuppChar, ExpandSentinel, incxstr, xstrlen, xstrlen_printing } from "./util.js";
|
||||
import { KMX } from "@keymanapp/common-types";
|
||||
|
||||
import { callbacks, FMnemonic, FTabStop, IsKeyboardVersion10OrLater, IsKeyboardVersion14OrLater, nl, options } from "./compiler-globals.js";
|
||||
import { callbacks, FCallFunctions, FFix183_LadderLength, FMnemonic, FTabStop, FUnreachableKeys, IsKeyboardVersion10OrLater, IsKeyboardVersion14OrLater, nl, options } from "./compiler-globals.js";
|
||||
import { KmwCompilerMessages } from "./messages.js";
|
||||
import { FFix183_LadderLength, FormatModifierAsBitflags, RuleIsExcludedByPlatform } from "./write-compiled-keyboard.js";
|
||||
|
||||
const SValidIdentifierCharSet = /[A-Za-z0-9_]/;
|
||||
|
||||
// TODO: lifecycle
|
||||
let FUnreachableKeys: KMX.KEY[] = [];
|
||||
let FCallFunctions: string[] = [];
|
||||
import { FormatModifierAsBitflags, RuleIsExcludedByPlatform } from "./write-compiled-keyboard.js";
|
||||
import { KMXCodeNames, SValidIdentifierCharSet, UnreachableKeyCodes, USEnglishShift, USEnglishUnshift, USEnglishValues } from "./constants.js";
|
||||
import { KMWVKeyNames, TKeymanWebTouchStandardKey, VKeyNames } from "./keymanweb-key-codes.js";
|
||||
|
||||
export function JavaScript_Name(i: number, pwszName: string, KeepNameForPersistentStorage: boolean = false): string { // I3659
|
||||
let FChanged: boolean = false;
|
||||
|
|
@ -235,34 +231,6 @@ export function JavaScript_Rules(keyboard: KMX.KEYBOARD, fMnemonic: boolean, fgp
|
|||
return result;
|
||||
}
|
||||
|
||||
const
|
||||
USEnglishUnshift: string = ' `' + '1234567890' + '-' + '=' + 'qwertyuiop' + '[' + ']' + '\\' + 'asdfghjkl' + ';' + '\'' + 'zxcvbnm' + ',' + '.' + '/',
|
||||
USEnglishShift: string = 0xFF + '~' + '!@#$%^&*()' + '_' + '+' + 'QWERTYUIOP' + '{' + '}' + '|' + 'ASDFGHJKL' + ':' + '"' + 'ZXCVBNM' + '<' + '>' + '?',
|
||||
USEnglishValues: string = 0x20 + 0xc0 + '1234567890' + 0xbd + 0xbb + 'QWERTYUIOP' + 0xdb + 0xdd + 0xdc + 'ASDFGHJKL' + 0xba + 0xde + 'ZXCVBNM' + 0xbc + 0xbe + 0xbf,
|
||||
UnreachableKeyCodes: number[] = [ // I4141
|
||||
0x00, // &H0
|
||||
0x01, //VK_LBUTTON, // &H1
|
||||
0x02, //VK_RBUTTON, // &H2
|
||||
0x03, //VK_CANCEL, // &H3
|
||||
0x04, //VK_MBUTTON, // &H4
|
||||
0x05, // &H5
|
||||
0x06, // &H6
|
||||
0x07, // &H7
|
||||
0x0A, // &HA
|
||||
0x0B, // &HB
|
||||
0x0E, // &HE
|
||||
0x0F, // &HF
|
||||
0x10, //VK_SHIFT, // &H10
|
||||
0x11, //VK_CONTROL, // &H11
|
||||
0x12, //VK_MENU, // &H12
|
||||
0x13, //VK_PAUSE, // &H13
|
||||
0x14, //VK_CAPITAL, // &H14
|
||||
0x1B, //VK_ESCAPE, // &H1B
|
||||
|
||||
0x90, //VK_NUMLOCK, // &H90
|
||||
0x91 //VK_SCROLL // &H91
|
||||
];
|
||||
|
||||
export function JavaScript_Shift(fkp: KMX.KEY, FMnemonic: boolean): number {
|
||||
if (FMnemonic) {
|
||||
if (fkp.ShiftFlags & KMX.KMXFile.VIRTUALCHARKEY) {
|
||||
|
|
@ -320,294 +288,6 @@ export function JavaScript_ShiftAsString(fkp: KMX.KEY, FMnemonic: boolean): stri
|
|||
return ' '+FormatModifierAsBitflags(JavaScript_Shift(fkp, FMnemonic));
|
||||
}
|
||||
|
||||
export const VKeyNames = [ // from vkeys.h
|
||||
// Key Codes
|
||||
"K_?00", // &H0
|
||||
"K_LBUTTON", // &H1
|
||||
"K_RBUTTON", // &H2
|
||||
"K_CANCEL", // &H3
|
||||
"K_MBUTTON", // &H4
|
||||
"K_?05", // &H5
|
||||
"K_?06", // &H6
|
||||
"K_?07", // &H7
|
||||
"K_BKSP", // &H8
|
||||
"K_TAB", // &H9
|
||||
"K_?0A", // &HA
|
||||
"K_?0B", // &HB
|
||||
"K_KP5", // &HC
|
||||
"K_ENTER", // &HD
|
||||
"K_?0E", // &HE
|
||||
"K_?0F", // &HF
|
||||
"K_SHIFT", // &H10
|
||||
"K_CONTROL", // &H11
|
||||
"K_ALT", // &H12
|
||||
"K_PAUSE", // &H13
|
||||
"K_CAPS", // &H14
|
||||
"K_KANJI?15", // &H15
|
||||
"K_KANJI?16", // &H16
|
||||
"K_KANJI?17", // &H17
|
||||
"K_KANJI?18", // &H18
|
||||
"K_KANJI?19", // &H19
|
||||
"K_?1A", // &H1A
|
||||
"K_ESC", // &H1B
|
||||
"K_KANJI?1C", // &H1C
|
||||
"K_KANJI?1D", // &H1D
|
||||
"K_KANJI?1E", // &H1E
|
||||
"K_KANJI?1F", // &H1F
|
||||
"K_SPACE", // &H20
|
||||
"K_PGUP", // &H21
|
||||
"K_PGDN", // &H22
|
||||
"K_END", // &H23
|
||||
"K_HOME", // &H24
|
||||
"K_LEFT", // &H25
|
||||
"K_UP", // &H26
|
||||
"K_RIGHT", // &H27
|
||||
"K_DOWN", // &H28
|
||||
"K_SEL", // &H29
|
||||
"K_PRINT", // &H2A
|
||||
"K_EXEC", // &H2B
|
||||
"K_PRTSCN", // &H2C
|
||||
"K_INS", // &H2D
|
||||
"K_DEL", // &H2E
|
||||
"K_HELP", // &H2F
|
||||
"K_0", // &H30
|
||||
"K_1", // &H31
|
||||
"K_2", // &H32
|
||||
"K_3", // &H33
|
||||
"K_4", // &H34
|
||||
"K_5", // &H35
|
||||
"K_6", // &H36
|
||||
"K_7", // &H37
|
||||
"K_8", // &H38
|
||||
"K_9", // &H39
|
||||
"K_?3A", // &H3A
|
||||
"K_?3B", // &H3B
|
||||
"K_?3C", // &H3C
|
||||
"K_?3D", // &H3D
|
||||
"K_?3E", // &H3E
|
||||
"K_?3F", // &H3F
|
||||
"K_?40", // &H40
|
||||
|
||||
"K_A", // &H41
|
||||
"K_B", // &H42
|
||||
"K_C", // &H43
|
||||
"K_D", // &H44
|
||||
"K_E", // &H45
|
||||
"K_F", // &H46
|
||||
"K_G", // &H47
|
||||
"K_H", // &H48
|
||||
"K_I", // &H49
|
||||
"K_J", // &H4A
|
||||
"K_K", // &H4B
|
||||
"K_L", // &H4C
|
||||
"K_M", // &H4D
|
||||
"K_N", // &H4E
|
||||
"K_O", // &H4F
|
||||
"K_P", // &H50
|
||||
"K_Q", // &H51
|
||||
"K_R", // &H52
|
||||
"K_S", // &H53
|
||||
"K_T", // &H54
|
||||
"K_U", // &H55
|
||||
"K_V", // &H56
|
||||
"K_W", // &H57
|
||||
"K_X", // &H58
|
||||
"K_Y", // &H59
|
||||
"K_Z", // &H5A
|
||||
"K_?5B", // &H5B
|
||||
"K_?5C", // &H5C
|
||||
"K_?5D", // &H5D
|
||||
"K_?5E", // &H5E
|
||||
"K_?5F", // &H5F
|
||||
"K_NP0", // &H60
|
||||
"K_NP1", // &H61
|
||||
"K_NP2", // &H62
|
||||
"K_NP3", // &H63
|
||||
"K_NP4", // &H64
|
||||
"K_NP5", // &H65
|
||||
"K_NP6", // &H66
|
||||
"K_NP7", // &H67
|
||||
"K_NP8", // &H68
|
||||
"K_NP9", // &H69
|
||||
"K_NPSTAR", // &H6A
|
||||
"K_NPPLUS", // &H6B
|
||||
"K_SEPARATOR", // &H6C
|
||||
"K_NPMINUS", // &H6D
|
||||
"K_NPDOT", // &H6E
|
||||
"K_NPSLASH", // &H6F
|
||||
"K_F1", // &H70
|
||||
"K_F2", // &H71
|
||||
"K_F3", // &H72
|
||||
"K_F4", // &H73
|
||||
"K_F5", // &H74
|
||||
"K_F6", // &H75
|
||||
"K_F7", // &H76
|
||||
"K_F8", // &H77
|
||||
"K_F9", // &H78
|
||||
"K_F10", // &H79
|
||||
"K_F11", // &H7A
|
||||
"K_F12", // &H7B
|
||||
"K_F13", // &H7C
|
||||
"K_F14", // &H7D
|
||||
"K_F15", // &H7E
|
||||
"K_F16", // &H7F
|
||||
"K_F17", // &H80
|
||||
"K_F18", // &H81
|
||||
"K_F19", // &H82
|
||||
"K_F20", // &H83
|
||||
"K_F21", // &H84
|
||||
"K_F22", // &H85
|
||||
"K_F23", // &H86
|
||||
"K_F24", // &H87
|
||||
|
||||
"K_?88", // &H88
|
||||
"K_?89", // &H89
|
||||
"K_?8A", // &H8A
|
||||
"K_?8B", // &H8B
|
||||
"K_?8C", // &H8C
|
||||
"K_?8D", // &H8D
|
||||
"K_?8E", // &H8E
|
||||
"K_?8F", // &H8F
|
||||
|
||||
"K_NUMLOCK", // &H90
|
||||
"K_SCROLL", // &H91
|
||||
|
||||
"K_?92", // &H92
|
||||
"K_?93", // &H93
|
||||
"K_?94", // &H94
|
||||
"K_?95", // &H95
|
||||
"K_?96", // &H96
|
||||
"K_?97", // &H97
|
||||
"K_?98", // &H98
|
||||
"K_?99", // &H99
|
||||
"K_?9A", // &H9A
|
||||
"K_?9B", // &H9B
|
||||
"K_?9C", // &H9C
|
||||
"K_?9D", // &H9D
|
||||
"K_?9E", // &H9E
|
||||
"K_?9F", // &H9F
|
||||
"K_?A0", // &HA0
|
||||
"K_?A1", // &HA1
|
||||
"K_?A2", // &HA2
|
||||
"K_?A3", // &HA3
|
||||
"K_?A4", // &HA4
|
||||
"K_?A5", // &HA5
|
||||
"K_?A6", // &HA6
|
||||
"K_?A7", // &HA7
|
||||
"K_?A8", // &HA8
|
||||
"K_?A9", // &HA9
|
||||
"K_?AA", // &HAA
|
||||
"K_?AB", // &HAB
|
||||
"K_?AC", // &HAC
|
||||
"K_?AD", // &HAD
|
||||
"K_?AE", // &HAE
|
||||
"K_?AF", // &HAF
|
||||
"K_?B0", // &HB0
|
||||
"K_?B1", // &HB1
|
||||
"K_?B2", // &HB2
|
||||
"K_?B3", // &HB3
|
||||
"K_?B4", // &HB4
|
||||
"K_?B5", // &HB5
|
||||
"K_?B6", // &HB6
|
||||
"K_?B7", // &HB7
|
||||
"K_?B8", // &HB8
|
||||
"K_?B9", // &HB9
|
||||
|
||||
"K_COLON", // &HBA
|
||||
"K_EQUAL", // &HBB
|
||||
"K_COMMA", // &HBC
|
||||
"K_HYPHEN", // &HBD
|
||||
"K_PERIOD", // &HBE
|
||||
"K_SLASH", // &HBF
|
||||
"K_BKQUOTE", // &HC0
|
||||
|
||||
"K_?C1", // &HC1
|
||||
"K_?C2", // &HC2
|
||||
"K_?C3", // &HC3
|
||||
"K_?C4", // &HC4
|
||||
"K_?C5", // &HC5
|
||||
"K_?C6", // &HC6
|
||||
"K_?C7", // &HC7
|
||||
"K_?C8", // &HC8
|
||||
"K_?C9", // &HC9
|
||||
"K_?CA", // &HCA
|
||||
"K_?CB", // &HCB
|
||||
"K_?CC", // &HCC
|
||||
"K_?CD", // &HCD
|
||||
"K_?CE", // &HCE
|
||||
"K_?CF", // &HCF
|
||||
"K_?D0", // &HD0
|
||||
"K_?D1", // &HD1
|
||||
"K_?D2", // &HD2
|
||||
"K_?D3", // &HD3
|
||||
"K_?D4", // &HD4
|
||||
"K_?D5", // &HD5
|
||||
"K_?D6", // &HD6
|
||||
"K_?D7", // &HD7
|
||||
"K_?D8", // &HD8
|
||||
"K_?D9", // &HD9
|
||||
"K_?DA", // &HDA
|
||||
|
||||
"K_LBRKT", // &HDB
|
||||
"K_BKSLASH", // &HDC
|
||||
"K_RBRKT", // &HDD
|
||||
"K_QUOTE", // &HDE
|
||||
"K_oDF", // &HDF
|
||||
"K_oE0", // &HE0
|
||||
"K_oE1", // &HE1
|
||||
"K_oE2", // &HE2
|
||||
"K_oE3", // &HE3
|
||||
"K_oE4", // &HE4
|
||||
|
||||
"K_?E5", // &HE5
|
||||
|
||||
"K_oE6", // &HE6
|
||||
|
||||
"K_?E7", // &HE7
|
||||
"K_?E8", // &HE8
|
||||
|
||||
"K_oE9", // &HE9
|
||||
"K_oEA", // &HEA
|
||||
"K_oEB", // &HEB
|
||||
"K_oEC", // &HEC
|
||||
"K_oED", // &HED
|
||||
"K_oEE", // &HEE
|
||||
"K_oEF", // &HEF
|
||||
"K_oF0", // &HF0
|
||||
"K_oF1", // &HF1
|
||||
"K_oF2", // &HF2
|
||||
"K_oF3", // &HF3
|
||||
"K_oF4", // &HF4
|
||||
"K_oF5", // &HF5
|
||||
|
||||
"K_?F6", // &HF6
|
||||
"K_?F7", // &HF7
|
||||
"K_?F8", // &HF8
|
||||
"K_?F9", // &HF9
|
||||
"K_?FA", // &HFA
|
||||
"K_?FB", // &HFB
|
||||
"K_?FC", // &HFC
|
||||
"K_?FD", // &HFD
|
||||
"K_?FE", // &HFE
|
||||
"K_?FF" // &HFF
|
||||
];
|
||||
|
||||
const enum
|
||||
TKeymanWebTouchStandardKey {
|
||||
K_LOPT = 50001,
|
||||
K_ROPT = 50002,
|
||||
K_NUMERALS = 50003,
|
||||
K_SYMBOLS = 50004,
|
||||
K_CURRENCIES = 50005,
|
||||
K_UPPER = 50006,
|
||||
K_LOWER = 50007,
|
||||
K_ALPHA = 50008,
|
||||
K_SHIFTED = 50009,
|
||||
K_ALTGR = 50010,
|
||||
K_TABBACK = 50011,
|
||||
K_TABFWD = 50012
|
||||
};
|
||||
|
||||
function FormatKeyForErrorMessage(fkp: KMX.KEY, FMnemonic: boolean): string {
|
||||
function FormatShift(ShiftFlags: number): string {
|
||||
const
|
||||
|
|
@ -736,16 +416,6 @@ function JavaScript_ContextLength(Context: string): number {
|
|||
return xstrlen_printing(Context);
|
||||
}
|
||||
|
||||
const
|
||||
KMXCodeNames: string[] = [
|
||||
'',
|
||||
'any', 'index', 'context', 'nul', 'use', 'return', 'beep', 'deadkey',
|
||||
'',
|
||||
'extended', '', 'switch', 'key', 'clearcontext', 'call',
|
||||
'', 'contextex', 'notany',
|
||||
'set', 'if', 'save', 'reset', // I3429
|
||||
'if(&system)', 'set(&system)']; // I3430 // I3437
|
||||
|
||||
function GetCodeName(code: number): string {
|
||||
if (code >= 0 && code < KMXCodeNames.length && KMXCodeNames[code] != '') {
|
||||
return KMXCodeNames[code];
|
||||
|
|
@ -1273,270 +943,6 @@ export function zeroPadHex(n: number, len: number): string {
|
|||
return result;
|
||||
}
|
||||
|
||||
// TODO: move elsewhere
|
||||
///
|
||||
/// Virtual key names used in KeymanWeb. Blanks indicate a
|
||||
/// virtual key that is not recognised by KeymanWeb.
|
||||
///
|
||||
const KMWVKeyNames: string[] = [
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_BKSP',
|
||||
'K_TAB',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_ENTER',
|
||||
'',
|
||||
'',
|
||||
'K_SHIFT',
|
||||
'K_CONTROL',
|
||||
'K_ALT',
|
||||
'K_PAUSE',
|
||||
'K_CAPS',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_ESC',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_SPACE',
|
||||
'K_PGUP',
|
||||
'K_PGDN',
|
||||
'K_END',
|
||||
'K_HOME',
|
||||
'K_LEFT',
|
||||
'K_UP',
|
||||
'K_RIGHT',
|
||||
'K_DOWN',
|
||||
'K_SEL',
|
||||
'K_PRINT',
|
||||
'K_EXEC',
|
||||
'',
|
||||
'K_INS',
|
||||
'K_DEL',
|
||||
'K_HELP',
|
||||
'K_0',
|
||||
'K_1',
|
||||
'K_2',
|
||||
'K_3',
|
||||
'K_4',
|
||||
'K_5',
|
||||
'K_6',
|
||||
'K_7',
|
||||
'K_8',
|
||||
'K_9',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_A',
|
||||
'K_B',
|
||||
'K_C',
|
||||
'K_D',
|
||||
'K_E',
|
||||
'K_F',
|
||||
'K_G',
|
||||
'K_H',
|
||||
'K_I',
|
||||
'K_J',
|
||||
'K_K',
|
||||
'K_L',
|
||||
'K_M',
|
||||
'K_N',
|
||||
'K_O',
|
||||
'K_P',
|
||||
'K_Q',
|
||||
'K_R',
|
||||
'K_S',
|
||||
'K_T',
|
||||
'K_U',
|
||||
'K_V',
|
||||
'K_W',
|
||||
'K_X',
|
||||
'K_Y',
|
||||
'K_Z',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_NP0',
|
||||
'K_NP1',
|
||||
'K_NP2',
|
||||
'K_NP3',
|
||||
'K_NP4',
|
||||
'K_NP5',
|
||||
'K_NP6',
|
||||
'K_NP7',
|
||||
'K_NP8',
|
||||
'K_NP9',
|
||||
'K_NPSTAR',
|
||||
'K_NPPLUS',
|
||||
'K_SEPARATOR',
|
||||
'K_NPMINUS',
|
||||
'K_NPDOT',
|
||||
'K_NPSLASH',
|
||||
'K_F1',
|
||||
'K_F2',
|
||||
'K_F3',
|
||||
'K_F4',
|
||||
'K_F5',
|
||||
'K_F6',
|
||||
'K_F7',
|
||||
'K_F8',
|
||||
'K_F9',
|
||||
'K_F10',
|
||||
'K_F11',
|
||||
'K_F12',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_NUMLOCK',
|
||||
'K_SCROLL',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_LSHIFT',
|
||||
'K_RSHIFT',
|
||||
'K_LCONTROL',
|
||||
'K_RCONTROL',
|
||||
'K_LALT',
|
||||
'K_RALT',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_COLON',
|
||||
'K_EQUAL',
|
||||
'K_COMMA',
|
||||
'K_HYPHEN',
|
||||
'K_PERIOD',
|
||||
'K_SLASH',
|
||||
'K_BKQUOTE',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_LBRKT',
|
||||
'K_BKSLASH',
|
||||
'K_RBRKT',
|
||||
'K_QUOTE',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_oE2',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
''
|
||||
];
|
||||
|
||||
/**
|
||||
* Converts a key value into a constant
|
||||
*
|
||||
|
|
|
|||
|
|
@ -268,4 +268,555 @@ export const
|
|||
0x00, // L"K_?FD", // &HFD
|
||||
0x00, // L"K_?FE", // &HFE
|
||||
0x00 // L"K_?FF" // &HFF
|
||||
];
|
||||
];
|
||||
|
||||
///
|
||||
/// Virtual key names used in KeymanWeb. Blanks indicate a
|
||||
/// virtual key that is not recognised by KeymanWeb.
|
||||
///
|
||||
export const KMWVKeyNames: string[] = [
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_BKSP',
|
||||
'K_TAB',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_ENTER',
|
||||
'',
|
||||
'',
|
||||
'K_SHIFT',
|
||||
'K_CONTROL',
|
||||
'K_ALT',
|
||||
'K_PAUSE',
|
||||
'K_CAPS',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_ESC',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_SPACE',
|
||||
'K_PGUP',
|
||||
'K_PGDN',
|
||||
'K_END',
|
||||
'K_HOME',
|
||||
'K_LEFT',
|
||||
'K_UP',
|
||||
'K_RIGHT',
|
||||
'K_DOWN',
|
||||
'K_SEL',
|
||||
'K_PRINT',
|
||||
'K_EXEC',
|
||||
'',
|
||||
'K_INS',
|
||||
'K_DEL',
|
||||
'K_HELP',
|
||||
'K_0',
|
||||
'K_1',
|
||||
'K_2',
|
||||
'K_3',
|
||||
'K_4',
|
||||
'K_5',
|
||||
'K_6',
|
||||
'K_7',
|
||||
'K_8',
|
||||
'K_9',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_A',
|
||||
'K_B',
|
||||
'K_C',
|
||||
'K_D',
|
||||
'K_E',
|
||||
'K_F',
|
||||
'K_G',
|
||||
'K_H',
|
||||
'K_I',
|
||||
'K_J',
|
||||
'K_K',
|
||||
'K_L',
|
||||
'K_M',
|
||||
'K_N',
|
||||
'K_O',
|
||||
'K_P',
|
||||
'K_Q',
|
||||
'K_R',
|
||||
'K_S',
|
||||
'K_T',
|
||||
'K_U',
|
||||
'K_V',
|
||||
'K_W',
|
||||
'K_X',
|
||||
'K_Y',
|
||||
'K_Z',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_NP0',
|
||||
'K_NP1',
|
||||
'K_NP2',
|
||||
'K_NP3',
|
||||
'K_NP4',
|
||||
'K_NP5',
|
||||
'K_NP6',
|
||||
'K_NP7',
|
||||
'K_NP8',
|
||||
'K_NP9',
|
||||
'K_NPSTAR',
|
||||
'K_NPPLUS',
|
||||
'K_SEPARATOR',
|
||||
'K_NPMINUS',
|
||||
'K_NPDOT',
|
||||
'K_NPSLASH',
|
||||
'K_F1',
|
||||
'K_F2',
|
||||
'K_F3',
|
||||
'K_F4',
|
||||
'K_F5',
|
||||
'K_F6',
|
||||
'K_F7',
|
||||
'K_F8',
|
||||
'K_F9',
|
||||
'K_F10',
|
||||
'K_F11',
|
||||
'K_F12',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_NUMLOCK',
|
||||
'K_SCROLL',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_LSHIFT',
|
||||
'K_RSHIFT',
|
||||
'K_LCONTROL',
|
||||
'K_RCONTROL',
|
||||
'K_LALT',
|
||||
'K_RALT',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_COLON',
|
||||
'K_EQUAL',
|
||||
'K_COMMA',
|
||||
'K_HYPHEN',
|
||||
'K_PERIOD',
|
||||
'K_SLASH',
|
||||
'K_BKQUOTE',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_LBRKT',
|
||||
'K_BKSLASH',
|
||||
'K_RBRKT',
|
||||
'K_QUOTE',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'K_oE2',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
''
|
||||
];
|
||||
|
||||
export const VKeyNames = [ // from vkeys.h
|
||||
// Key Codes
|
||||
"K_?00", // &H0
|
||||
"K_LBUTTON", // &H1
|
||||
"K_RBUTTON", // &H2
|
||||
"K_CANCEL", // &H3
|
||||
"K_MBUTTON", // &H4
|
||||
"K_?05", // &H5
|
||||
"K_?06", // &H6
|
||||
"K_?07", // &H7
|
||||
"K_BKSP", // &H8
|
||||
"K_TAB", // &H9
|
||||
"K_?0A", // &HA
|
||||
"K_?0B", // &HB
|
||||
"K_KP5", // &HC
|
||||
"K_ENTER", // &HD
|
||||
"K_?0E", // &HE
|
||||
"K_?0F", // &HF
|
||||
"K_SHIFT", // &H10
|
||||
"K_CONTROL", // &H11
|
||||
"K_ALT", // &H12
|
||||
"K_PAUSE", // &H13
|
||||
"K_CAPS", // &H14
|
||||
"K_KANJI?15", // &H15
|
||||
"K_KANJI?16", // &H16
|
||||
"K_KANJI?17", // &H17
|
||||
"K_KANJI?18", // &H18
|
||||
"K_KANJI?19", // &H19
|
||||
"K_?1A", // &H1A
|
||||
"K_ESC", // &H1B
|
||||
"K_KANJI?1C", // &H1C
|
||||
"K_KANJI?1D", // &H1D
|
||||
"K_KANJI?1E", // &H1E
|
||||
"K_KANJI?1F", // &H1F
|
||||
"K_SPACE", // &H20
|
||||
"K_PGUP", // &H21
|
||||
"K_PGDN", // &H22
|
||||
"K_END", // &H23
|
||||
"K_HOME", // &H24
|
||||
"K_LEFT", // &H25
|
||||
"K_UP", // &H26
|
||||
"K_RIGHT", // &H27
|
||||
"K_DOWN", // &H28
|
||||
"K_SEL", // &H29
|
||||
"K_PRINT", // &H2A
|
||||
"K_EXEC", // &H2B
|
||||
"K_PRTSCN", // &H2C
|
||||
"K_INS", // &H2D
|
||||
"K_DEL", // &H2E
|
||||
"K_HELP", // &H2F
|
||||
"K_0", // &H30
|
||||
"K_1", // &H31
|
||||
"K_2", // &H32
|
||||
"K_3", // &H33
|
||||
"K_4", // &H34
|
||||
"K_5", // &H35
|
||||
"K_6", // &H36
|
||||
"K_7", // &H37
|
||||
"K_8", // &H38
|
||||
"K_9", // &H39
|
||||
"K_?3A", // &H3A
|
||||
"K_?3B", // &H3B
|
||||
"K_?3C", // &H3C
|
||||
"K_?3D", // &H3D
|
||||
"K_?3E", // &H3E
|
||||
"K_?3F", // &H3F
|
||||
"K_?40", // &H40
|
||||
|
||||
"K_A", // &H41
|
||||
"K_B", // &H42
|
||||
"K_C", // &H43
|
||||
"K_D", // &H44
|
||||
"K_E", // &H45
|
||||
"K_F", // &H46
|
||||
"K_G", // &H47
|
||||
"K_H", // &H48
|
||||
"K_I", // &H49
|
||||
"K_J", // &H4A
|
||||
"K_K", // &H4B
|
||||
"K_L", // &H4C
|
||||
"K_M", // &H4D
|
||||
"K_N", // &H4E
|
||||
"K_O", // &H4F
|
||||
"K_P", // &H50
|
||||
"K_Q", // &H51
|
||||
"K_R", // &H52
|
||||
"K_S", // &H53
|
||||
"K_T", // &H54
|
||||
"K_U", // &H55
|
||||
"K_V", // &H56
|
||||
"K_W", // &H57
|
||||
"K_X", // &H58
|
||||
"K_Y", // &H59
|
||||
"K_Z", // &H5A
|
||||
"K_?5B", // &H5B
|
||||
"K_?5C", // &H5C
|
||||
"K_?5D", // &H5D
|
||||
"K_?5E", // &H5E
|
||||
"K_?5F", // &H5F
|
||||
"K_NP0", // &H60
|
||||
"K_NP1", // &H61
|
||||
"K_NP2", // &H62
|
||||
"K_NP3", // &H63
|
||||
"K_NP4", // &H64
|
||||
"K_NP5", // &H65
|
||||
"K_NP6", // &H66
|
||||
"K_NP7", // &H67
|
||||
"K_NP8", // &H68
|
||||
"K_NP9", // &H69
|
||||
"K_NPSTAR", // &H6A
|
||||
"K_NPPLUS", // &H6B
|
||||
"K_SEPARATOR", // &H6C
|
||||
"K_NPMINUS", // &H6D
|
||||
"K_NPDOT", // &H6E
|
||||
"K_NPSLASH", // &H6F
|
||||
"K_F1", // &H70
|
||||
"K_F2", // &H71
|
||||
"K_F3", // &H72
|
||||
"K_F4", // &H73
|
||||
"K_F5", // &H74
|
||||
"K_F6", // &H75
|
||||
"K_F7", // &H76
|
||||
"K_F8", // &H77
|
||||
"K_F9", // &H78
|
||||
"K_F10", // &H79
|
||||
"K_F11", // &H7A
|
||||
"K_F12", // &H7B
|
||||
"K_F13", // &H7C
|
||||
"K_F14", // &H7D
|
||||
"K_F15", // &H7E
|
||||
"K_F16", // &H7F
|
||||
"K_F17", // &H80
|
||||
"K_F18", // &H81
|
||||
"K_F19", // &H82
|
||||
"K_F20", // &H83
|
||||
"K_F21", // &H84
|
||||
"K_F22", // &H85
|
||||
"K_F23", // &H86
|
||||
"K_F24", // &H87
|
||||
|
||||
"K_?88", // &H88
|
||||
"K_?89", // &H89
|
||||
"K_?8A", // &H8A
|
||||
"K_?8B", // &H8B
|
||||
"K_?8C", // &H8C
|
||||
"K_?8D", // &H8D
|
||||
"K_?8E", // &H8E
|
||||
"K_?8F", // &H8F
|
||||
|
||||
"K_NUMLOCK", // &H90
|
||||
"K_SCROLL", // &H91
|
||||
|
||||
"K_?92", // &H92
|
||||
"K_?93", // &H93
|
||||
"K_?94", // &H94
|
||||
"K_?95", // &H95
|
||||
"K_?96", // &H96
|
||||
"K_?97", // &H97
|
||||
"K_?98", // &H98
|
||||
"K_?99", // &H99
|
||||
"K_?9A", // &H9A
|
||||
"K_?9B", // &H9B
|
||||
"K_?9C", // &H9C
|
||||
"K_?9D", // &H9D
|
||||
"K_?9E", // &H9E
|
||||
"K_?9F", // &H9F
|
||||
"K_?A0", // &HA0
|
||||
"K_?A1", // &HA1
|
||||
"K_?A2", // &HA2
|
||||
"K_?A3", // &HA3
|
||||
"K_?A4", // &HA4
|
||||
"K_?A5", // &HA5
|
||||
"K_?A6", // &HA6
|
||||
"K_?A7", // &HA7
|
||||
"K_?A8", // &HA8
|
||||
"K_?A9", // &HA9
|
||||
"K_?AA", // &HAA
|
||||
"K_?AB", // &HAB
|
||||
"K_?AC", // &HAC
|
||||
"K_?AD", // &HAD
|
||||
"K_?AE", // &HAE
|
||||
"K_?AF", // &HAF
|
||||
"K_?B0", // &HB0
|
||||
"K_?B1", // &HB1
|
||||
"K_?B2", // &HB2
|
||||
"K_?B3", // &HB3
|
||||
"K_?B4", // &HB4
|
||||
"K_?B5", // &HB5
|
||||
"K_?B6", // &HB6
|
||||
"K_?B7", // &HB7
|
||||
"K_?B8", // &HB8
|
||||
"K_?B9", // &HB9
|
||||
|
||||
"K_COLON", // &HBA
|
||||
"K_EQUAL", // &HBB
|
||||
"K_COMMA", // &HBC
|
||||
"K_HYPHEN", // &HBD
|
||||
"K_PERIOD", // &HBE
|
||||
"K_SLASH", // &HBF
|
||||
"K_BKQUOTE", // &HC0
|
||||
|
||||
"K_?C1", // &HC1
|
||||
"K_?C2", // &HC2
|
||||
"K_?C3", // &HC3
|
||||
"K_?C4", // &HC4
|
||||
"K_?C5", // &HC5
|
||||
"K_?C6", // &HC6
|
||||
"K_?C7", // &HC7
|
||||
"K_?C8", // &HC8
|
||||
"K_?C9", // &HC9
|
||||
"K_?CA", // &HCA
|
||||
"K_?CB", // &HCB
|
||||
"K_?CC", // &HCC
|
||||
"K_?CD", // &HCD
|
||||
"K_?CE", // &HCE
|
||||
"K_?CF", // &HCF
|
||||
"K_?D0", // &HD0
|
||||
"K_?D1", // &HD1
|
||||
"K_?D2", // &HD2
|
||||
"K_?D3", // &HD3
|
||||
"K_?D4", // &HD4
|
||||
"K_?D5", // &HD5
|
||||
"K_?D6", // &HD6
|
||||
"K_?D7", // &HD7
|
||||
"K_?D8", // &HD8
|
||||
"K_?D9", // &HD9
|
||||
"K_?DA", // &HDA
|
||||
|
||||
"K_LBRKT", // &HDB
|
||||
"K_BKSLASH", // &HDC
|
||||
"K_RBRKT", // &HDD
|
||||
"K_QUOTE", // &HDE
|
||||
"K_oDF", // &HDF
|
||||
"K_oE0", // &HE0
|
||||
"K_oE1", // &HE1
|
||||
"K_oE2", // &HE2
|
||||
"K_oE3", // &HE3
|
||||
"K_oE4", // &HE4
|
||||
|
||||
"K_?E5", // &HE5
|
||||
|
||||
"K_oE6", // &HE6
|
||||
|
||||
"K_?E7", // &HE7
|
||||
"K_?E8", // &HE8
|
||||
|
||||
"K_oE9", // &HE9
|
||||
"K_oEA", // &HEA
|
||||
"K_oEB", // &HEB
|
||||
"K_oEC", // &HEC
|
||||
"K_oED", // &HED
|
||||
"K_oEE", // &HEE
|
||||
"K_oEF", // &HEF
|
||||
"K_oF0", // &HF0
|
||||
"K_oF1", // &HF1
|
||||
"K_oF2", // &HF2
|
||||
"K_oF3", // &HF3
|
||||
"K_oF4", // &HF4
|
||||
"K_oF5", // &HF5
|
||||
|
||||
"K_?F6", // &HF6
|
||||
"K_?F7", // &HF7
|
||||
"K_?F8", // &HF8
|
||||
"K_?F9", // &HF9
|
||||
"K_?FA", // &HFA
|
||||
"K_?FB", // &HFB
|
||||
"K_?FC", // &HFC
|
||||
"K_?FD", // &HFD
|
||||
"K_?FE", // &HFE
|
||||
"K_?FF" // &HFF
|
||||
];
|
||||
|
||||
export const enum
|
||||
TKeymanWebTouchStandardKey {
|
||||
K_LOPT = 50001,
|
||||
K_ROPT = 50002,
|
||||
K_NUMERALS = 50003,
|
||||
K_SYMBOLS = 50004,
|
||||
K_CURRENCIES = 50005,
|
||||
K_UPPER = 50006,
|
||||
K_LOWER = 50007,
|
||||
K_ALPHA = 50008,
|
||||
K_SHIFTED = 50009,
|
||||
K_ALTGR = 50010,
|
||||
K_TABBACK = 50011,
|
||||
K_TABFWD = 50012
|
||||
};
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
import { KMX, Osk, TouchLayout, TouchLayoutFileReader, TouchLayoutFileWriter } from "@keymanapp/common-types";
|
||||
import { callbacks, IsKeyboardVersion14OrLater, IsKeyboardVersion15OrLater } from "./compiler-globals.js";
|
||||
import { JavaScript_Key, VKeyNames } from "./javascript-strings.js";
|
||||
import { JavaScript_Key } from "./javascript-strings.js";
|
||||
import { TRequiredKey, CRequiredKeys, CSpecialText10, CSpecialText14, CSpecialText14ZWNJ, CSpecialText14Map } from "./constants.js";
|
||||
import { VKeyNames } from "./keymanweb-key-codes.js";
|
||||
|
||||
|
||||
interface VLFOutput {
|
||||
|
|
@ -46,36 +48,6 @@ function KeyIdType(FId: string): TKeyIdType { // I4142
|
|||
return TKeyIdType.Key_Invalid;
|
||||
}
|
||||
|
||||
enum TRequiredKey { K_LOPT, K_BKSP, K_ENTER }; // I4447
|
||||
|
||||
const
|
||||
CRequiredKeys: TRequiredKey[] = [TRequiredKey.K_LOPT, TRequiredKey.K_BKSP, TRequiredKey.K_ENTER]; // I4447
|
||||
|
||||
// See also builder.js: specialCharacters; web/source/osk/oskKey.ts: specialCharacters
|
||||
const
|
||||
CSpecialText10: string =
|
||||
'*Shift*\0*Enter*\0*Tab*\0*BkSp*\0*Menu*\0*Hide*\0*Alt*\0*Ctrl*\0*Caps*\0'+
|
||||
'*ABC*\0*abc*\0*123*\0*Symbol*\0*Currency*\0*Shifted*\0*AltGr*\0*TabLeft*',
|
||||
|
||||
// these names were added in Keyman 14
|
||||
CSpecialText14: string =
|
||||
'*LTREnter*\0*LTRBkSp*\0*RTLEnter*\0*RTLBkSp*\0*ShiftLock*\0*ShiftedLock*\0*ZWNJ*\0*ZWNJiOS*\0*ZWNJAndroid*',
|
||||
CSpecialText14ZWNJ: string =
|
||||
'*ZWNJ*\0*ZWNJiOS*\0*ZWNJAndroid*',
|
||||
|
||||
CSpecialText14Map: string[][] = [
|
||||
['*LTREnter*', '*Enter*'],
|
||||
['*LTRBkSp*', '*BkSp*'],
|
||||
['*RTLEnter*', '*Enter*'],
|
||||
['*RTLBkSp*', '*BkSp*'],
|
||||
['*ShiftLock*', '*Shift*'],
|
||||
['*ShiftedLock*', '*Shifted*'],
|
||||
['*ZWNJ*', '<|>'],
|
||||
['*ZWNJiOS*', '<|>'],
|
||||
['*ZWNJAndroid*', '<|>']
|
||||
];
|
||||
|
||||
// TODO lifecycle
|
||||
|
||||
function CheckKey(FPlatform: TouchLayout.TouchLayoutPlatform,
|
||||
FId: string, FText: string, FNextLayer: string, FKeyType: TouchLayout.TouchLayoutKeySp,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
import { KMX, CompilerOptions, CompilerCallbacks, KvkFileReader, VisualKeyboard, KmxFileReader, Osk } from "@keymanapp/common-types";
|
||||
import { ExpandSentinel, incxstr, xstrlen } from "./util.js";
|
||||
import { options, nl, FTabStop, setupGlobals, IsKeyboardVersion10OrLater, callbacks } from "./compiler-globals.js";
|
||||
import { options, nl, FTabStop, setupGlobals, IsKeyboardVersion10OrLater, callbacks, FFix183_LadderLength } from "./compiler-globals.js";
|
||||
import { JavaScript_ContextMatch, JavaScript_KeyAsString, JavaScript_Name, JavaScript_OutputString, JavaScript_Rules, JavaScript_Shift, JavaScript_ShiftAsString, JavaScript_Store, zeroPadHex } from './javascript-strings.js';
|
||||
import { KmwCompilerMessages } from "./messages.js";
|
||||
import { ValidateLayoutFile } from "./validate-layout-file.js";
|
||||
import { VisualKeyboardFromFile } from "./visual-keyboard-compiler.js";
|
||||
|
||||
export let FFix183_LadderLength: number = 100; // TODO: option
|
||||
|
||||
function requote(s: string): string {
|
||||
return "'" + s.replaceAll(/(['\\])/, "\\$1") + "'";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue