Fix mixed parser

This commit is contained in:
Gregory Schier
2023-03-17 17:57:43 -07:00
parent f39d3e7eed
commit 92114b7368
3 changed files with 11 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ import { LanguageSupport, LRLanguage } from '@codemirror/language';
import { parser } from './text';
const textLanguage = LRLanguage.define({
name: 'text',
parser,
languageData: {},
});

View File

@@ -34,10 +34,16 @@ function mixedOrPlainLanguage(base?: LanguageSupport): LRLanguage {
}
const parser = twigParser.configure({
wrap: parseMixed(() => ({
parser: base.language.parser,
overlay: (node) => node.type.name === 'Text' || node.type.name === 'Template',
})),
wrap: parseMixed((node) => {
// If the base language is text, we can overwrite at the top
if (base.language.name !== 'text' && !node.type.isTop) {
return null;
}
return {
parser: base.language.parser,
overlay: (node) => node.type.name === 'Text' || node.type.name === 'Template',
};
}),
});
return LRLanguage.define({ name, parser });