MCPcopy
hub / github.com/wavetermdev/waveterm / checkKeyPressed

Function checkKeyPressed

frontend/util/keyutil.ts:188–229  ·  view source on GitHub ↗
(event: WaveKeyboardEvent, keyDescription: string)

Source from the content-addressed store, hash-verified

186}
187
188function checkKeyPressed(event: WaveKeyboardEvent, keyDescription: string): boolean {
189 let keyPress = parseKeyDescription(keyDescription);
190 if (notMod(keyPress.mods.Option, event.option)) {
191 return false;
192 }
193 if (notMod(keyPress.mods.Cmd, event.cmd)) {
194 return false;
195 }
196 if (notMod(keyPress.mods.Shift, event.shift)) {
197 return false;
198 }
199 if (notMod(keyPress.mods.Ctrl, event.control)) {
200 return false;
201 }
202 if (notMod(keyPress.mods.Alt, event.alt)) {
203 return false;
204 }
205 if (notMod(keyPress.mods.Meta, event.meta)) {
206 return false;
207 }
208 let eventKey = "";
209 let descKey = keyPress.key;
210 if (keyPress.keyType == KeyTypeCode) {
211 eventKey = event.code;
212 }
213 if (keyPress.keyType == KeyTypeKey) {
214 eventKey = event.key;
215 if (eventKey != null && eventKey.length == 1 && /[A-Z]/.test(eventKey.charAt(0))) {
216 // key is upper case A-Z, this means shift is applied, we want to allow
217 // "Shift:e" as well as "Shift:E" or "E"
218 eventKey = eventKey.toLocaleLowerCase();
219 descKey = descKey.toLocaleLowerCase();
220 } else if (eventKey == " ") {
221 eventKey = "Space";
222 // a space key is shown as " ", we want users to be able to set space key as "Space" or " ", whichever they prefer
223 }
224 }
225 if (descKey != eventKey) {
226 return false;
227 }
228 return true;
229}
230
231function adaptFromReactOrNativeKeyEvent(event: React.KeyboardEvent | KeyboardEvent): WaveKeyboardEvent {
232 let rtn: WaveKeyboardEvent = {} as WaveKeyboardEvent;

Callers 12

handleKeyDownFunction · 0.90
keyDownHandlerMethod · 0.90
convertVDomFuncFunction · 0.90
handleKeyDownMethod · 0.90
keyDownHandlerMethod · 0.90
keyDownHandlerMethod · 0.90
codeEditKeyDownHandlerFunction · 0.90
DirectoryPreviewFunction · 0.90
keyDownHandlerMethod · 0.90
waveconfig.tsxFile · 0.90
isInputEventFunction · 0.70

Calls 2

parseKeyDescriptionFunction · 0.70
notModFunction · 0.70

Tested by

no test coverage detected