Merge pull request #5202 from node-red/5198-monaco-esc-handling

Better Monaco `esc` key bubbling
This commit is contained in:
Nick O'Leary
2025-07-21 15:24:12 +01:00
committed by GitHub

View File

@@ -1426,6 +1426,15 @@ RED.editor.codeEditor.monaco = (function() {
ed.gotoLine(row, col);
}
ed.type = type;
ed.onKeyDown((event) => {
if (event.keyCode === monaco.KeyCode.Escape) {
if (monacoWidgetsAreOpen(ed)) {
event.preventDefault();
}
}
})
return ed;
}
@@ -1435,6 +1444,16 @@ RED.editor.codeEditor.monaco = (function() {
return true;
}
function monacoWidgetsAreOpen(editor) {
/** @type {HTMLElement} */
const editorDomNode = editor.getDomNode()
const suggestVisible = !!editorDomNode.querySelector('.monaco-editor .suggest-widget.visible');
const parameterHintsVisible = !!editorDomNode.querySelector('.monaco-editor .parameter-hints-widget.visible');
const findWidgetVisible = !!editorDomNode.querySelector('.monaco-editor .find-widget.visible');
const renameInputVisible = !!editorDomNode.querySelector('.monaco-editor .rename-box');
return suggestVisible || parameterHintsVisible || findWidgetVisible || renameInputVisible
}
return {
/**
* Editor type