spiegel-keyman/web/docs/engine/reference/interface/keyMatch.md
Marc Durdin 6c145cb775 refactor(web): move web engine help to app repo
Note: build.sh updated to make sure that test:help build action:target
doesn't also call test.sh by adding `:_all` meta-target.

Note: CI will need a new help-keyman-com.sh build step to deploy web
engine help.

Fixes: #12347
2024-10-31 11:00:06 +07:00

61 lines
1.5 KiB
Markdown

---
title: keyMatch (KKM)
---
## Summary
Keystroke matching: Returns `true` if the event matches the rule's shift mask and key code.
## Syntax
```c
keyman.interface.keyMatch(e, shiftCode, keyCode);
```
or
```c
KeymanWeb.KKM(e, shiftCode, keyCode); // Shorthand
```
### Parameters
`e`
: Type: `Object`
: A keystroke-related event object to match.
`shiftCode`
: Type: `number`
: The shift-state code the event object should match.
`keyCode`
: Type: `number`
: The key code the event object should match.
### Return Value
`boolean`
: `true` if the keystroke matches the desired values, otherwise `false`.
## Description
This is a core element of keyboard input management within KeymanWeb, typically called automatically during keystroke processing events. For comparison with [Developer 'rules'](/developer/language/guide/rules) from keyboard source code, in the rule
```keyman
"a" + "'" > "á"
```
a keyboard would check that the triggering keystroke (`"'"`) matches by using
```keyman
keyman.interface.keyMatch(e, 0, 39)
```
from within a raised keystroke event with object `e`, which checks that the keystroke represented by `e` is unshifted and matches the underlying keycode value for `"'"`, which is `39` in ASCII and Unicode.
As `keyman.interface.keyMatch()` receives an event object as one of its parameters, it does not need a direct link to the element receiving input.
## See also
- [`keyman.interface.contextMatch()`](contextMatch)
- [`keyman.interface.stateMatch()`](stateMatch)