mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 16:35:33 +00:00
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
61 lines
1.5 KiB
Markdown
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)
|