Keyboard Support

Contact and Search Homepage

Header bottom

Other versions
Version 17.0 (current version)Version 16.0Version 15.0Version 14.0Version 13.0Version 12.0Version 11.0Version 10.0

On this page

indexOutput (KIO)


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.


keyman.interface.indexOutput(nd, store, index, Pelem);


KeymanWeb.KIO(nd, store, index, Pelem);


Type: number
The number of characters to be overwritten.
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.
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().
Type: Element
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 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.

See also