diff --git a/developer/src/tike/xml/help/contexthelp.xml b/developer/src/tike/xml/help/contexthelp.xml index 0bb9a98f51..7a3ce376ec 100644 --- a/developer/src/tike/xml/help/contexthelp.xml +++ b/developer/src/tike/xml/help/contexthelp.xml @@ -2,10 +2,225 @@ - -

(TODO: add documentation on group)

+ + + +

The store() statement lets you store a string of characters or keys in a buffer for + use elsewhere in the keyboard source file. The store() statement can be used with any() + and index() to reduce sets of similar rules down to a single rule.



+

Syntax

+
+ store(storeName) value +
+ +

The &name store lets you give a more descriptive name to your keyboard than just the + file name. If &name isn't specified in the keyboard file, Keyman will use the filename + of the keyboard, excluding the extension, so the &name statement is optional.



+

Syntax

+
+ store(&name) "nameText" +
+
+ + +

The &version store allows Keyman to distinguish what version of Keyman the keyboard + was written for and handle it accordingly. The &version store is optional. For most keyboards, + it should be omitted. +



+ If the &version store is omitted, the compiler will infer the lowest version that + supports the full set of features used in the keyboard, and assign that version number + value to this store internally. The compiler will also report on the version it infers + in the compile process.



+

Syntax

+
+ store(&version) "version" +
+
+ + +

The begin rule tells Keyman which groups should be entry points to the keyboard.



+

Syntax

+
+ begin [entrypoint] > use(startGroup) +
+
+ + +

The use() statement tells Keyman to switch processing to a new group; after Keyman + has gone through the new group, and any other nested groups, it will return to the + previous one. The use() statement can be used with the match and nomatch rules; it will + work the same way.



+

Syntax

+
+ begin > use(groupName)

+ ... > use(groupName) +
+
+ + +

The outs() statement simply copies the store 'storeName' into the position in which it + has been inserted. This can be used in stores, in the context and the output. If the + store to be emitted is a single character or virtual key, it can also be used in the + key part of the rule.



+

Syntax

+
+ store(store1) ... outs(storeName) ...

+ ... outs(storeName) ... + ... > ...

+ ... > ... outs(storeName) ... +
+
+ + +

The any() statement will match any character that is in the store 'inputStore'. This + statement is only valid on the left side of a rule; the index() statement is used to match + again or output the character matched by the any() statement in the output. The any() + statement remembers the offset in the store where the match occurred for later use with + the index() statement.



+

Syntax

+
+ any(inputStore) +
+
+ + +

The index() statement works together with any() to map an array of characters in + 'inputStore' to a corresponding array in 'outputStore'. index() can be used in the context + and output sections of a rule. If used in the context section, the offset parameter must + be less than the offset of the index() statement in the context.



+

Syntax

+
+ any(inputStore) > index(outputStore,offset) +
+
+ + +

The group() statement tells Keyman to start a new set of rules. Keyman supports + three sorts of groups: key processing groups, read-only groups, and context processing + groups.



+

Syntax

+
+ group(groupName)

+ group(groupName) using keys

+ group(groupName) readonly +
+
+ + +

The context statement reproduces the context stored from the rule match, or a single + character of it, into the output. Use the context statement as much as possible as it is + significantly faster than using the index statement.



+

Syntax

+
+ ... > context

+ ... > context(offset)

+ ... context(offset) > ... +
+
+ + +

The beep statement produces a beep with the system speaker when the rule is matched. + In Keyman Desktop, beep will produce the sound specified by "Asterisk" in Windows Sounds + configuration.



+

Syntax

+
+ beep +
+
+ + +

The platform() statement allows rules to match based on the device on which the + Keyman keyboard is running.



+

Syntax

+
+ platform("platformConstraint") ... > ...

+ if(&platform = "platformConstraint") ... > ... +
+
+ + +

The nul statement has two purposes: in the output of a rule, it signifies deleting + context and keystroke, and at the start of the context it signifies that the context + buffer in the application must be empty (or no longer than the context of the rule) in + order for the rule to match.



+

Syntax

+
+ nul [...] [+ key] > output

+ [...] [+ key] > nul +
+
+ + +

The &copyright store allows a keyboard author to embed a copyright statement in + a keyboard when it is compiled.



+

Syntax

+
+ store(&copyright) "message" +
+
+ + +

This is a generic message, such as a shareware notice that you can display when the + keyboard is installed. This statement is optional.The MESSAGE statement is deprecated + and the &message store should be used instead.



+

Syntax

+
+ store(&message) "messageText" +
+
+ + +

The &targets store specifies the target platforms for which a keyboard should be built.



+

Syntax

+
+ store(&targets) "target [target ...]" +
+
+ + +

The &layoutfile store specifies a touch layout .JSON file to incorporate in the Keyman + keyboard. If a touch layout is not specified, then Keyman will build one from the visual + keyboard description file referenced in the &visualkeyboard store. If neither is specified, + then Keyman builds a touch layout based on the US English desktop keyboard layout. +



+

Syntax

+
+ store(&layoutfile) "layoutFilename" +
+
+ + +

The &keyboardversion store documents the version of the keyboard. Keyman uses this on + touch platforms to check for updated versions of the keyboard and update them + automatically.



+

Syntax

+
+ store(&keyboardversion) "version" +
+
+ + +

The bitmap can be in two different formats: .bmp or .ico. A .bmp file must be a 16x16 + image. Keyman supports .ico files with multiple image sizes, and the appropriate size + will be used if available.



+

Syntax

+
+ store(&bitmap) "filename" +
+
+ + +

The &visualkeyboard store specifies a .kvks file to reference in the compiled Keyman + keyboard. The .kvks (XML format) is compiled into a .kvk binary On Screen Keyboard which + needs to be distributed with the .kmx.



+

Syntax

+
+ store(&visualkeyboard) "visualkeyboardname" +
+
+ +

The Filter allows a user to reduce the number of characters displayed in the character map. The standard filter options used are by font name or block name.