Fix suggestion menus blocked by placeholder marks (#11796)

* Initial plan

* fix: suggestion menus not opening when typing trigger inside placeholder mark

Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com>
This commit is contained in:
Copilot
2026-03-19 17:45:03 -04:00
committed by GitHub
parent 05eac5bc3b
commit 14fc3b01db
@@ -53,6 +53,37 @@ export class SuggestionsMenuPlugin extends Plugin {
});
}
// Another plugin (e.g. the Placeholder mark) may consume the
// handleTextInput event by returning true, which prevents the
// InputRule from evaluating the trigger character. We use a timeout
// here so the re-evaluation happens after all synchronous handlers
// have run, ensuring the suggestion menu still opens in those cases.
if (
!event.ctrlKey &&
!event.metaKey &&
!event.altKey &&
event.key.length === 1
) {
setTimeout(() => {
const { pos: fromPos } = view.state.selection.$from;
this.execute(
view,
fromPos,
fromPos,
openRegex,
action((_, match) => {
if (match) {
if (match[0].length <= 2) {
extensionState.open = true;
}
extensionState.query = match[1];
}
return null;
})
);
});
}
// If the menu is open then just ignore the key events in the editor
// itself until we're done.
if (