Skip to content

Commit 2fb844d

Browse files
fhammerschmidtcristianoc
authored andcommitted
Restore some modules and JSX grammar
1 parent 6e7370b commit 2fb844d

File tree

1 file changed

+127
-2
lines changed

1 file changed

+127
-2
lines changed

grammars/rescript.tmLanguage.json

Lines changed: 127 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,133 @@
350350
]
351351
},
352352
"jsx": {
353-
"match": "<>|</>|</|/>",
354-
"name": "punctuation.definition.tag"
353+
"patterns": [
354+
{
355+
"match": "<>|</>|</|/>",
356+
"name": "punctuation.definition.tag"
357+
},
358+
{
359+
"match": "</([A-Z_][0-9a-zA-Z_]*)",
360+
"captures": {
361+
"0": {
362+
"name": "punctuation.definition.tag"
363+
},
364+
"1": {
365+
"name": "entity.name.namespace"
366+
}
367+
}
368+
},
369+
{
370+
"match": "</([a-z_][0-9a-zA-Z_]*)",
371+
"captures": {
372+
"0": {
373+
"name": "punctuation.definition.tag"
374+
},
375+
"1": {
376+
"name": "variable"
377+
}
378+
}
379+
},
380+
{
381+
"match": "<([A-Z_][0-9a-zA-Z_]*)",
382+
"captures": {
383+
"0": {
384+
"name": "punctuation.definition.tag"
385+
},
386+
"1": {
387+
"name": "entity.name.namespace"
388+
}
389+
}
390+
}
391+
]
392+
},
393+
"openOrIncludeModule": {
394+
"patterns": [
395+
{
396+
"match": "\\b(open|include)\\s+([A-Z_][0-9a-zA-Z_]*((\\.)([A-Z_][0-9a-zA-Z_]*))*)",
397+
"captures": {
398+
"1": {
399+
"name": "keyword"
400+
},
401+
"2": {
402+
"patterns": [
403+
{
404+
"include": "#moduleAccessEndsWithModule"
405+
}
406+
]
407+
}
408+
}
409+
},
410+
{
411+
"match": "\\b(open|include)\\s+",
412+
"name": "keyword"
413+
}
414+
]
415+
},
416+
"moduleAccessEndsWithModule": {
417+
"patterns": [
418+
{
419+
"match": "[A-Z_][0-9a-zA-Z_]*",
420+
"name": "entity.name.namespace"
421+
},
422+
{
423+
"match": "(\\.)([A-Z_][0-9a-zA-Z_]*)",
424+
"captures": {
425+
"1": {
426+
"name": "punctuation.accessor"
427+
},
428+
"2": {
429+
"name": "entity.name.namespace"
430+
}
431+
}
432+
}
433+
]
434+
},
435+
"moduleAccess": {
436+
"patterns": [
437+
{
438+
"match": "\\b([A-Z_][0-9a-zA-Z_]*)(\\.)",
439+
"captures": {
440+
"1": {
441+
"name": "entity.name.namespace"
442+
},
443+
"2": {
444+
"name": "punctuation.accessor"
445+
}
446+
}
447+
}
448+
]
449+
},
450+
"moduleDeclaration": {
451+
"patterns": [
452+
{
453+
"match": "\\b(module)\\s+(type\\s+)?(of\\s+)?([A-Z_][0-9a-zA-Z_]*)",
454+
"captures": {
455+
"1": {
456+
"name": "keyword"
457+
},
458+
"2": {
459+
"name": "keyword"
460+
},
461+
"3": {
462+
"name": "keyword"
463+
},
464+
"4": {
465+
"name": "entity.name.namespace"
466+
}
467+
},
468+
"patterns": [
469+
{
470+
"match": "\\s*:\\s*([A-Z_][0-9a-zA-Z_]*)",
471+
"captures": {
472+
"1": {
473+
"name": "entity.name.namespace"
474+
}
475+
}
476+
}
477+
]
478+
}
479+
]
355480
}
356481
},
357482
"patterns": [

0 commit comments

Comments
 (0)