Added autocomplete flag

This commit is contained in:
Dean 2023-07-17 10:21:35 +01:00
parent 18a05faf67
commit 8ea6feb720
2 changed files with 26 additions and 19 deletions

View File

@ -32,7 +32,6 @@
import CodeEditor from "components/common/CodeEditor/CodeEditor.svelte"
import {
bindingsToCompletions,
jsAutocomplete,
hbAutocomplete,
EditorModes,
} from "components/common/CodeEditor"
@ -73,8 +72,12 @@
$: isUpdateRow = stepId === ActionStepID.UPDATE_ROW
$: codeMode =
stepId === "EXECUTE_BASH" ? EditorModes.Handlebars : EditorModes.JS
$: buildCompletions =
stepId === "EXECUTE_BASH" ? hbAutocomplete : jsAutocomplete
$: stepCompletions =
codeMode === EditorModes.Handlebars
? [hbAutocomplete([...bindingsToCompletions(bindings, codeMode)])]
: []
/**
* TODO - Remove after November 2023
* *******************************
@ -500,12 +503,9 @@
onChange({ detail: e.detail }, key)
inputData[key] = e.detail
}}
completions={[
buildCompletions([
...bindingsToCompletions(bindings, codeMode),
]),
]}
completions={stepCompletions}
mode={codeMode}
autocompleteEnabled={codeMode != EditorModes.JS}
height={500}
/>
<div class="messaging">

View File

@ -48,6 +48,7 @@
export let mode = EditorModes.Handlebars
export let value = ""
export let placeholder = null
export let autocompleteEnabled = true
// Export a function to expose caret position
export const getCaretPosition = () => {
@ -131,12 +132,6 @@
syntaxHighlighting(oneDarkHighlightStyle, { fallback: true }),
highlightActiveLineGutter(),
highlightSpecialChars(),
autocompletion({
override: [...completions],
closeOnBlur: true,
icons: false,
optionClass: () => "autocomplete-option",
}),
EditorView.lineWrapping,
EditorView.updateListener.of(v => {
const docStr = v.state.doc?.toString()
@ -159,11 +154,16 @@
const buildExtensions = base => {
const complete = [...base]
if (mode.name == "javascript") {
complete.push(javascript())
complete.push(highlightWhitespace())
complete.push(lineNumbers())
complete.push(foldGutter())
if (autocompleteEnabled) {
complete.push(
autocompletion({
override: [...completions],
closeOnBlur: true,
icons: false,
optionClass: () => "autocomplete-option",
})
)
complete.push(
EditorView.inputHandler.of((view, from, to, insert) => {
if (insert === "$") {
@ -193,6 +193,13 @@
)
}
if (mode.name == "javascript") {
complete.push(javascript())
complete.push(highlightWhitespace())
complete.push(lineNumbers())
complete.push(foldGutter())
}
if (placeholder) {
complete.push(placeholderFn(placeholder))
}