Index-based output: Outputs a mapped character according to a previous selection from a
call upon a
string, after deleting
keyman.interface.indexOutput(nd, store, index, Pelem);
KeymanWeb.KIO(nd, store, index, Pelem);
- The number of characters to be overwritten.
- The store string to be used for mapping a character previously detected via
keyman.interface.any(), which itself maps to a
- 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
- The HTML element receiving the output.
This function corresponds most directly to the keyboard language command
index, which operates upon text
stores 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
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.