1
0
Fork 0
mirror of synced 2024-07-13 10:15:49 +12:00

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

View file

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