MCPcopy Create free account
hub / github.com/ZenNotes/zennotes / sequenceTokenFromEvent

Function sequenceTokenFromEvent

packages/app-core/src/lib/keymaps.ts:1379–1402  ·  view source on GitHub ↗
(event: KeyboardEvent)

Source from the content-addressed store, hash-verified

1377}
1378
1379export function sequenceTokenFromEvent(event: KeyboardEvent): string | null {
1380 const resolved = resolveKeyFromEvent(event);
1381 // Sequence tokens are case-sensitive for letters (`<leader>q` vs
1382 // `<leader>Q` are different bindings). resolveKeyFromEvent returns
1383 // uppercase letters — fold them down so unmodified letters still
1384 // produce lowercase tokens, then promote to upper if Shift is held.
1385 let base: string | null
1386 if (resolved && /^[A-Z]$/.test(resolved)) {
1387 base = event.shiftKey ? resolved : resolved.toLowerCase()
1388 } else if (resolved) {
1389 base = resolved
1390 } else {
1391 base = normalizeSequenceBaseToken(event.key);
1392 }
1393 if (!base) return null;
1394 const modifiers: string[] = [];
1395 if (event.ctrlKey) modifiers.push("Ctrl");
1396 if (event.altKey) modifiers.push("Alt");
1397 if (event.metaKey) modifiers.push("Meta");
1398 if (event.shiftKey && base.length !== 1) modifiers.push("Shift");
1399 return normalizeSequenceToken(
1400 modifiers.length > 0 ? `${modifiers.join("+")}+${base}` : base,
1401 );
1402}
1403
1404export function matchesShortcutBinding(
1405 event: KeyboardEvent,

Callers 11

onKeyFunction · 0.90
handlerFunction · 0.90
onKeyUpFunction · 0.90
handleSidebarKeyFunction · 0.90
handleNoteListKeyFunction · 0.90
handleConnectionsKeyFunction · 0.90
handleCommentsKeyFunction · 0.90
handlePreviewKeyFunction · 0.90
keymaps.test.tsFile · 0.90
matchesSequenceTokenFunction · 0.85
advanceSequenceFunction · 0.85

Calls 3

resolveKeyFromEventFunction · 0.85
normalizeSequenceTokenFunction · 0.85

Tested by

no test coverage detected