diff --git a/src/codemirror/fcTemplateLang/index.js b/src/codemirror/fcTemplateLang/index.js index f79b6741..f9af37ed 100644 --- a/src/codemirror/fcTemplateLang/index.js +++ b/src/codemirror/fcTemplateLang/index.js @@ -9,7 +9,7 @@ import { import { styleTags, tags as t } from '@lezer/highlight' import { parseMixed } from '@lezer/common' import { javascriptLanguage } from '@codemirror/lang-javascript' -import { javascriptCompletionSources } from '../javascriptLang' +import { javascriptCompletionSupport } from '../javascriptLang' import { xmlLanguage, completeFromSchema, @@ -105,8 +105,6 @@ export function fcTemplateLang(options = {}) { ) }), autoCloseTags, - javascriptLanguage.data.of({ - autocomplete: javascriptCompletionSources(jsScope) - }) + ...javascriptCompletionSupport(jsScope) ]) } diff --git a/src/codemirror/javascriptLang/index.js b/src/codemirror/javascriptLang/index.js index 89980e57..c7722a19 100644 --- a/src/codemirror/javascriptLang/index.js +++ b/src/codemirror/javascriptLang/index.js @@ -1,10 +1,7 @@ -import { completeFromList } from '@codemirror/autocomplete' import { javascript, javascriptLanguage, - localCompletionSource, - scopeCompletionSource, - snippets + scopeCompletionSource } from '@codemirror/lang-javascript' import { nodeJsScope } from './nodeScope.js' @@ -31,14 +28,20 @@ export function nodeScopeCompletionSource(autoCompleteObject) { } /** - * Completions for mixed languages that mount `javascriptLanguage` - * without `javascript()` (snippets + locals + Node globals). + * Support extensions for mixed languages that mount + * `javascriptLanguage` without `javascript()` itself (snippets, + * keywords, locals, and Node globals). + * + * Each source must be a separate `languageData` entry. CodeMirror + * treats an `autocomplete` *array* as `completeFromList` options, not + * as multiple completion sources. */ -export function javascriptCompletionSources(autoCompleteObject) { +export function javascriptCompletionSupport(autoCompleteObject) { return [ - completeFromList(snippets), - localCompletionSource, - nodeScopeCompletionSource(autoCompleteObject) + javascript().support, + javascriptLanguage.data.of({ + autocomplete: nodeScopeCompletionSource(autoCompleteObject) + }) ] }