@@ -42,9 +42,9 @@ let outputView = null
4242onMounted (async () => {
4343 const { EditorView , basicSetup } = await import (' codemirror' )
4444 const { EditorState , Compartment } = await import (' @codemirror/state' )
45- const { StreamLanguage } = await import (' @codemirror/language' )
4645 const { json } = await import (' @codemirror/lang-json' )
4746 const { oneDark } = await import (' @codemirror/theme-one-dark' )
47+ const { maml: mamlLanguage } = await import (' codemirror-maml' )
4848 const maml = await import (' maml.js' )
4949
5050 const themeCompartment = new Compartment ()
@@ -54,59 +54,6 @@ onMounted(async () => {
5454 return isDark .value ? oneDark : EditorView .theme ({})
5555 }
5656
57- const mamlLanguage = StreamLanguage .define ({
58- startState () {
59- return { inRawString: false }
60- },
61- token (stream , state ) {
62- if (state .inRawString ) {
63- if (stream .match (' """' )) {
64- state .inRawString = false
65- return ' string'
66- }
67- stream .skipToEnd ()
68- return ' string'
69- }
70-
71- if (stream .eatSpace ()) return null
72-
73- if (stream .eat (' #' )) {
74- stream .skipToEnd ()
75- return ' lineComment'
76- }
77-
78- if (stream .match (' """' )) {
79- state .inRawString = true
80- return ' string'
81- }
82-
83- if (stream .eat (' "' )) {
84- while (! stream .eol ()) {
85- const ch = stream .next ()
86- if (ch === ' "' ) return ' string'
87- if (ch === ' \\ ' ) stream .next ()
88- }
89- return ' string'
90- }
91-
92- if (stream .match (/ -? (?:0| [1-9 ] \d * )(?:\. \d + )? (?:[eE][+-] ? \d + )? (?=[\s ,\]\} ] | $ )/ )) {
93- return ' number'
94- }
95-
96- if (stream .match (/ \b (?:true| false| null)\b / )) {
97- return ' atom'
98- }
99-
100- if (stream .match (/ [A-Za-z _][A-Za-z0-9 _-] * / )) {
101- return ' variableName'
102- }
103-
104- const ch = stream .next ()
105- if (' {}[],:' .includes (ch)) return ' punctuation'
106- return null
107- },
108- })
109-
11057 function parse (doc ) {
11158 try {
11259 const result = maml .parse (doc)
@@ -130,7 +77,7 @@ onMounted(async () => {
13077 doc: defaultMAML,
13178 extensions: [
13279 basicSetup,
133- mamlLanguage,
80+ mamlLanguage () ,
13481 themeCompartment .of (getTheme ()),
13582 EditorView .updateListener .of ((update ) => {
13683 if (update .docChanged ) {
0 commit comments