@@ -6,7 +6,7 @@ import { StreamLanguage } from "@codemirror/language";
66const rescriptLanguage = StreamLanguage . define ( {
77 name : "rescript" ,
88 startState : ( ) => ( { tokenize : null , context : [ ] } ) ,
9-
9+
1010 token ( stream , state ) {
1111 // Handle whitespace
1212 if ( stream . eatSpace ( ) ) return null ;
@@ -26,15 +26,19 @@ const rescriptLanguage = StreamLanguage.define({
2626 state . tokenize = tokenString ;
2727 return state . tokenize ( stream , state ) ;
2828 }
29-
29+
3030 // Handle template/interpolation strings
3131 if ( stream . match ( / ^ b ? ` / ) ) {
3232 state . tokenize = tokenTemplateString ;
3333 return state . tokenize ( stream , state ) ;
3434 }
3535
3636 // Handle character literals
37- if ( stream . match ( / ' (?: [ ^ ' \\ ] | \\ (?: [ n r t 0 ' " ] | x [ \d a - f A - F ] { 2 } | u \{ [ \d a - f A - F ] { 6 } \} ) ) ' / ) ) {
37+ if (
38+ stream . match (
39+ / ' (?: [ ^ ' \\ ] | \\ (?: [ n r t 0 ' " ] | x [ \d a - f A - F ] { 2 } | u \{ [ \d a - f A - F ] { 6 } \} ) ) ' / ,
40+ )
41+ ) {
3842 return "string-2" ;
3943 }
4044
@@ -44,7 +48,11 @@ const rescriptLanguage = StreamLanguage.define({
4448 }
4549
4650 // Handle numbers
47- if ( stream . match ( / ^ (?: (?: [ 0 - 9 ] [ 0 - 9 _ ] * ) (?: (?: [ E e ] [ + - ] ? [ 0 - 9 _ ] + ) | \. [ 0 - 9 _ ] + (?: [ E e ] [ + - ] ? [ 0 - 9 _ ] + ) ? ) (?: f 3 2 | f 6 4 ) ? ) | (?: 0 (?: b [ 0 1 _ ] + | (?: o [ 0 - 7 _ ] + ) | (?: x [ 0 - 9 a - f A - F _ ] + ) ) | (?: [ 0 - 9 ] [ 0 - 9 _ ] * ) ) (?: u 8 | u 1 6 | u 3 2 | u 6 4 | i 8 | i 1 6 | i 3 2 | i 6 4 | i s i z e | u s i z e ) ? / ) ) {
51+ if (
52+ stream . match (
53+ / ^ (?: (?: [ 0 - 9 ] [ 0 - 9 _ ] * ) (?: (?: [ E e ] [ + - ] ? [ 0 - 9 _ ] + ) | \. [ 0 - 9 _ ] + (?: [ E e ] [ + - ] ? [ 0 - 9 _ ] + ) ? ) (?: f 3 2 | f 6 4 ) ? ) | (?: 0 (?: b [ 0 1 _ ] + | (?: o [ 0 - 7 _ ] + ) | (?: x [ 0 - 9 a - f A - F _ ] + ) ) | (?: [ 0 - 9 ] [ 0 - 9 _ ] * ) ) (?: u 8 | u 1 6 | u 3 2 | u 6 4 | i 8 | i 1 6 | i 3 2 | i 6 4 | i s i z e | u s i z e ) ? / ,
54+ )
55+ ) {
4856 return "number" ;
4957 }
5058
@@ -55,7 +63,11 @@ const rescriptLanguage = StreamLanguage.define({
5563 }
5664
5765 // Handle keywords
58- if ( stream . match ( / ^ (?: a n d | a s | a s s e r t | c a t c h | a s y n c | a w a i t | c o n s t r a i n t | d o w n t o | e l s e | e x c e p t i o n | e x p o r t | e x t e r n a l | f a l s e | f o r | i f | i m p o r t | i n | i n c l u d e | l a z y | l e t | m o d u l e | m u t a b l e | o f | o p e n | p r i v a t e | s w i t c h | t o | t r u e | t r y | t y p e | w h e n | w h i l e | w i t h \! ) \b / ) ) {
66+ if (
67+ stream . match (
68+ / ^ (?: a n d | a s | a s s e r t | c a t c h | a s y n c | a w a i t | c o n s t r a i n t | d o w n t o | e l s e | e x c e p t i o n | e x p o r t | e x t e r n a l | f a l s e | f o r | i f | i m p o r t | i n | i n c l u d e | l a z y | l e t | m o d u l e | m u t a b l e | o f | o p e n | p r i v a t e | s w i t c h | t o | t r u e | t r y | t y p e | w h e n | w h i l e | w i t h \! ) \b / ,
69+ )
70+ ) {
5971 return "keyword" ;
6072 }
6173
@@ -108,7 +120,7 @@ const rescriptLanguage = StreamLanguage.define({
108120 stream . next ( ) ;
109121 return null ;
110122 } ,
111-
123+
112124 tokenTable : {
113125 comment : "comment" ,
114126 string : "string" ,
@@ -121,8 +133,8 @@ const rescriptLanguage = StreamLanguage.define({
121133 typeName : "typeName" ,
122134 meta : "meta" ,
123135 operator : "operator" ,
124- variableName : "variableName"
125- }
136+ variableName : "variableName" ,
137+ } ,
126138} ) ;
127139
128140function tokenString ( stream , state ) {
0 commit comments