diff --git a/packages/editor-ui/src/components/CodeNodeEditor/baseExtensions.ts b/packages/editor-ui/src/components/CodeNodeEditor/baseExtensions.ts index a2abdb1240..cf1e972d8d 100644 --- a/packages/editor-ui/src/components/CodeNodeEditor/baseExtensions.ts +++ b/packages/editor-ui/src/components/CodeNodeEditor/baseExtensions.ts @@ -14,6 +14,7 @@ import { indentWithTab, insertNewlineAndIndent, toggleComment, + redo, } from '@codemirror/commands'; import { lintGutter } from '@codemirror/lint'; @@ -36,6 +37,7 @@ export const baseExtensions = [ { key: 'Tab', run: acceptCompletion }, { key: 'Enter', run: acceptCompletion }, { key: 'Mod-/', run: toggleComment }, + { key: 'Mod-Shift-z', run: redo }, indentWithTab, ]), EditorView.lineWrapping, diff --git a/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalInput.vue b/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalInput.vue index a5b49355d1..9a433a931f 100644 --- a/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalInput.vue +++ b/packages/editor-ui/src/components/ExpressionEditorModal/ExpressionEditorModalInput.vue @@ -6,7 +6,7 @@ import mixins from 'vue-typed-mixins'; import { EditorView, keymap } from '@codemirror/view'; import { EditorState, Prec } from '@codemirror/state'; -import { history } from '@codemirror/commands'; +import { history, redo } from '@codemirror/commands'; import { workflowHelpers } from '@/mixins/workflowHelpers'; import { expressionManager } from '@/mixins/expressionManager'; @@ -54,6 +54,7 @@ export default mixins(expressionManager, completionManager, workflowHelpers).ext return false; }, }, + { key: 'Mod-Shift-z', run: redo }, ]), ), n8nLang(), diff --git a/packages/editor-ui/src/components/HtmlEditor/HtmlEditor.vue b/packages/editor-ui/src/components/HtmlEditor/HtmlEditor.vue index 8919a068a0..9f11e07bb6 100644 --- a/packages/editor-ui/src/components/HtmlEditor/HtmlEditor.vue +++ b/packages/editor-ui/src/components/HtmlEditor/HtmlEditor.vue @@ -10,7 +10,7 @@ import cssParser from 'prettier/parser-postcss'; import jsParser from 'prettier/parser-babel'; import { htmlLanguage, autoCloseTags, html } from 'codemirror-lang-html-n8n'; import { autocompletion } from '@codemirror/autocomplete'; -import { indentWithTab, insertNewlineAndIndent, history } from '@codemirror/commands'; +import { indentWithTab, insertNewlineAndIndent, history, redo } from '@codemirror/commands'; import { bracketMatching, ensureSyntaxTree, @@ -86,7 +86,11 @@ export default mixins(expressionManager).extend({ this.disableExpressionCompletions ? html() : htmlWithCompletions(), autoCloseTags, expressionInputHandler(), - keymap.of([indentWithTab, { key: 'Enter', run: insertNewlineAndIndent }]), + keymap.of([ + indentWithTab, + { key: 'Enter', run: insertNewlineAndIndent }, + { key: 'Mod-Shift-z', run: redo }, + ]), indentOnInput(), theme, lineNumbers(), diff --git a/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorInput.vue b/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorInput.vue index fde32c76de..a795c5ade6 100644 --- a/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorInput.vue +++ b/packages/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorInput.vue @@ -7,7 +7,7 @@ import mixins from 'vue-typed-mixins'; import { mapStores } from 'pinia'; import { EditorView, keymap } from '@codemirror/view'; import { EditorState, Prec } from '@codemirror/state'; -import { history } from '@codemirror/commands'; +import { history, redo } from '@codemirror/commands'; import { autocompletion, completionStatus } from '@codemirror/autocomplete'; import { useNDVStore } from '@/stores/ndv'; @@ -87,6 +87,7 @@ export default mixins(completionManager, expressionManager, workflowHelpers).ext return false; }, }, + { key: 'Mod-Shift-z', run: redo }, ]), ), autocompletion(),