indexOutput (KIO)
Summary
Index-based output: Outputs a mapped character according to a previous selection from a keyman.interface.any()
call upon a store
string, after deleting nd
characters.
Syntax
keyman.interface.indexOutput(nd, store, index, Pelem);
or
KeymanWeb.KIO(nd, store, index, Pelem);
Parameters
nd
: Type: number
: The number of characters to be overwritten.
store
: Type: string
: The store string to be used for mapping a character previously detected via keyman.interface.any()
, which itself maps to a any
call.
index
: Type: number
: The index id to which the detected character's index in the original matching array was saved. The index id should be incremented by 1 relative to the value specified in keyman.interface.any()
.
Pelem
: Type: Element
: The HTML element receiving the output.
Description
This function corresponds most directly to the keyboard language command index
, which operates upon text store
s to allow for array-based input-output text matching. For example,
store(keys) 'abcde'
store(output) 'αβγδε'
+ any(keys) > index(output,1)
facilitates mapping the characters 'abcde'
to their respective entry in the output store 'αβγδε'
. keyman.interface.indexOutput()
's role in this process is usually optimized out into individual mappings for performance reasons, though it is often involved when any
is involved as part of a rule's context
, rather than upon the triggering keystroke itself.
In order to output the desired character corresponding to 'a'
in the output
store above, the code
keyman.interface.indexOutput(0, 'αβγδε', 1, Pelem)
would suffice, overwriting no characters and using the previously-matched index (id = 0 + 1). Note that the keyman.interface.indexOutput()
call must increment the id by 1 due to Keyman's keyboard language rules, which corresponds directly to the index
call in the keyboard source above.