MCPcopy
hub / github.com/anomalyco/opencode / registerOpencodeKeymap

Function registerOpencodeKeymap

packages/tui/src/keymap.tsx:214–244  ·  view source on GitHub ↗
(keymap: OpenTuiKeymap, renderer: CliRenderer, config: ResolvedKeymapConfig)

Source from the content-addressed store, hash-verified

212}
213
214export function registerOpencodeKeymap(keymap: OpenTuiKeymap, renderer: CliRenderer, config: ResolvedKeymapConfig) {
215 const modeStack = createOpencodeModeStack(keymap)
216 const offCommaBindings = registerCommaBindings(keymap)
217 const offAliasExpander = registerKeyAliases(keymap)
218 const offBaseLayout = registerBaseLayoutFallback(keymap)
219 const leader = leaderKey(config)
220 const offLeader = leader
221 ? registerTimedLeader(keymap, {
222 trigger: leader,
223 name: LEADER_TOKEN,
224 timeoutMs: config.leader_timeout,
225 })
226 : () => {}
227 const offEscape = registerEscapeClearsPendingSequence(keymap)
228 const offBackspace = registerBackspacePopsPendingSequence(keymap)
229 const offInputBindings = registerManagedTextareaLayer(keymap, renderer, {
230 enabled: () => hasManagedTextareaFocus(renderer),
231 bindings: config.keybinds.gather("input", inputCommands),
232 })
233
234 return () => {
235 offInputBindings()
236 offBackspace()
237 offEscape()
238 offLeader()
239 offAliasExpander()
240 offBaseLayout()
241 offCommaBindings()
242 modeStack.dispose()
243 }
244}
245
246export function useLeaderActive(): Accessor<boolean> {
247 return useKeymapSelector((keymap: OpenTuiKeymap) => keymap.getPendingSequence()[0]?.tokenName === LEADER_TOKEN)

Callers 5

HarnessFunction · 0.90
app.tsxFile · 0.90
HarnessFunction · 0.90
createRuntimeLifecycleFunction · 0.90
HarnessFunction · 0.85

Calls 5

createOpencodeModeStackFunction · 0.85
registerKeyAliasesFunction · 0.85
leaderKeyFunction · 0.85
hasManagedTextareaFocusFunction · 0.85
disposeMethod · 0.45

Tested by 3

HarnessFunction · 0.72
HarnessFunction · 0.72
HarnessFunction · 0.68