mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-09-13 00:14:33 +08:00
Support Escape out of multi-cursor mode (#833)
This commit is contained in:
parent
4c9b1f374e
commit
66390dc677
1 changed files with 32 additions and 15 deletions
|
@ -305,21 +305,8 @@ function handleDocumentKeyDown(hook, event) {
|
|||
keyBuffer.reset();
|
||||
|
||||
if (key === "Escape") {
|
||||
const monacoInputOpen = !!event.target.closest(".monaco-inputbox");
|
||||
|
||||
const editor = event.target.closest(".monaco-editor.focused");
|
||||
|
||||
const completionBoxOpen = !!(
|
||||
editor &&
|
||||
editor.querySelector(".editor-widget.parameter-hints-widget.visible")
|
||||
);
|
||||
const signatureDetailsOpen = !!(
|
||||
editor && editor.querySelector(".editor-widget.suggest-widget.visible")
|
||||
);
|
||||
|
||||
// Ignore Escape if it's supposed to close some Monaco input
|
||||
// (like the find/replace box), or an intellisense widget
|
||||
if (!monacoInputOpen && !completionBoxOpen && !signatureDetailsOpen) {
|
||||
// Ignore Escape if it's supposed to close an editor widget
|
||||
if (!escapesMonacoWidget(event)) {
|
||||
escapeInsertMode(hook);
|
||||
}
|
||||
} else if (cmd && shift && !alt && key === "Enter") {
|
||||
|
@ -411,6 +398,36 @@ function handleDocumentKeyDown(hook, event) {
|
|||
}
|
||||
}
|
||||
|
||||
function escapesMonacoWidget(event) {
|
||||
// Escape pressed in an editor input
|
||||
if (event.target.closest(".monaco-inputbox")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const editor = event.target.closest(".monaco-editor.focused");
|
||||
|
||||
if (!editor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Completion box open
|
||||
if (editor.querySelector(".editor-widget.parameter-hints-widget.visible")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Signature details open
|
||||
if (editor.querySelector(".editor-widget.suggest-widget.visible")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Multi-cursor selection enabled
|
||||
if (editor.querySelectorAll(".cursor").length > 1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Focuses/blurs a cell when the user clicks somewhere.
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue