Hello, I’m noticing something goofy, and I’m not sure if I’m doing something silly or not.
I have one language:
export const glimmerLanguage = glimmerPlain.configure({
wrap: configureNesting(defaultNesting),
});
export function glimmer() {
return new LanguageSupport(glimmerLanguage, [
autoCloseTags,
htmlLanguage.data.of({ autocomplete: htmlCompletionSourceWith({}) }),
// nested languages
javascript().support,
css().support,
]);
}
And then I wrap
export function gjs() {
return new LanguageSupport(gjsLanguage, [glimmer().support, css().support, javascript().support]);
}
export const gjsLanguage = LRLanguage.define({
parser: metaParser.configure({
wrap: parseMixed((node) => {
if (node.type.name === 'Document') return null;
if (node.type.name === 'GlimmerTemplateTag') return { parser: glimmerParser };
return { parser: javascriptLanguage.parser };
}),
}),
});
my tests with just glimmer correctly highlight <style>
tags’ contents as CSS, but that is not the case when I try to use gjs
In both tests, I’m doing, I’m setting up Codemirror this way:
export const mainView = new EditorView({
state: EditorState.create({
doc,
extensions: [
basicSetup,
gjs(), // or glimmer()
oneDark,
EditorView.lineWrapping,
syncAST,
],
}),
parent: document.querySelector('#editor'),
});
is there something silly I’m doing to not get the deeply nested mixed-parsing? or is it not supported?