From 64216f61a91f0efa7c7b8808d36cf8ae3c242f65 Mon Sep 17 00:00:00 2001 From: Dean Date: Mon, 3 Jul 2023 12:48:17 +0100 Subject: [PATCH] Added custom tab keybinding to support autocomplete and default editor tab behaviour --- .../common/CodeEditor/CodeEditor.svelte | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte index dadca85fac..e68d3fd842 100644 --- a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte +++ b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte @@ -7,6 +7,8 @@ closeBrackets, completionKeymap, closeBracketsKeymap, + acceptCompletion, + completionStatus, } from "@codemirror/autocomplete" import { EditorView, @@ -34,7 +36,8 @@ defaultKeymap, historyKeymap, history, - indentWithTab, + indentMore, + indentLess, } from "@codemirror/commands" import { Compartment } from "@codemirror/state" import { javascript } from "@codemirror/lang-javascript" @@ -107,6 +110,22 @@ let isDark = !currentTheme.includes("light") let themeConfig = new Compartment() + const indentWithTabCustom = { + key: "Tab", + run: view => { + if (completionStatus(view.state) == "active") { + acceptCompletion(view) + return true + } + indentMore(view) + return true + }, + shift: view => { + indentLess(view) + return true + }, + } + const buildKeymap = () => { const baseMap = [ ...closeBracketsKeymap, @@ -114,7 +133,7 @@ ...historyKeymap, ...foldKeymap, ...completionKeymap, - indentWithTab, + indentWithTabCustom, ] return baseMap }