fix(coding-agent): delegate extension shortcuts instead of copying (#947)

Extension shortcuts registered via registerShortcut() were not firing
when the extension also used setEditorComponent(). This happened because
setEditorComponent() copied onExtensionShortcut from defaultEditor at
creation time, capturing undefined if setupExtensionShortcuts() hadn't
run yet.

The fix is to delegate to defaultEditor.onExtensionShortcut at call
time.
This commit is contained in:
Sviatoslav Abakumov 2026-01-25 22:20:51 +04:00 committed by GitHub
parent 62209c4a0f
commit f1b1d54955
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1575,7 +1575,7 @@ export class InteractiveMode {
customEditor.onEscape = this.defaultEditor.onEscape;
customEditor.onCtrlD = this.defaultEditor.onCtrlD;
customEditor.onPasteImage = this.defaultEditor.onPasteImage;
customEditor.onExtensionShortcut = this.defaultEditor.onExtensionShortcut;
customEditor.onExtensionShortcut = (data: string) => this.defaultEditor.onExtensionShortcut?.(data);
// Copy action handlers (clear, suspend, model switching, etc.)
for (const [action, handler] of this.defaultEditor.actionHandlers) {
(customEditor.actionHandlers as Map<string, () => void>).set(action, handler);