|
@@ -90,16 +90,12 @@ export var language = <ILanguage> {
|
|
// delimiters and operators
|
|
// delimiters and operators
|
|
[/}/, { cases: {
|
|
[/}/, { cases: {
|
|
'$S2==interpolatedstring' : { token: 'string.quote', next: '@pop' }
|
|
'$S2==interpolatedstring' : { token: 'string.quote', next: '@pop' }
|
|
|
|
+ '$S2==litinterpstring' : { token: 'string.quote', next: '@pop' }
|
|
, '@default' : '@brackets' } }],
|
|
, '@default' : '@brackets' } }],
|
|
[/[{}()\[\]]/, '@brackets'],
|
|
[/[{}()\[\]]/, '@brackets'],
|
|
[/[<>](?!@symbols)/, '@brackets'],
|
|
[/[<>](?!@symbols)/, '@brackets'],
|
|
[/@symbols/, { cases: { '@operators': 'delimiter', '@default' : '' } } ],
|
|
[/@symbols/, { cases: { '@operators': 'delimiter', '@default' : '' } } ],
|
|
|
|
|
|
- // literal string
|
|
|
|
- [/\@"/, { token: 'string.quote', next: '@litstring' } ],
|
|
|
|
-
|
|
|
|
- // interpolated string
|
|
|
|
- [/\$"/, { token: 'string.quote', next: '@interpolatedstring' } ],
|
|
|
|
|
|
|
|
// numbers
|
|
// numbers
|
|
[/\d*\.\d+([eE][\-+]?\d+)?[fFdD]?/, 'number.float'],
|
|
[/\d*\.\d+([eE][\-+]?\d+)?[fFdD]?/, 'number.float'],
|
|
@@ -112,6 +108,9 @@ export var language = <ILanguage> {
|
|
// strings
|
|
// strings
|
|
[/"([^"\\]|\\.)*$/, 'string.invalid' ], // non-teminated string
|
|
[/"([^"\\]|\\.)*$/, 'string.invalid' ], // non-teminated string
|
|
[/"/, { token: 'string.quote', next: '@string' } ],
|
|
[/"/, { token: 'string.quote', next: '@string' } ],
|
|
|
|
+ [/\$\@"/, { token: 'string.quote', next: '@litinterpstring' } ],
|
|
|
|
+ [/\@"/, { token: 'string.quote', next: '@litstring' } ],
|
|
|
|
+ [/\$"/, { token: 'string.quote', next: '@interpolatedstring' } ],
|
|
|
|
|
|
// characters
|
|
// characters
|
|
[/'[^\\']'/, 'string'],
|
|
[/'[^\\']'/, 'string'],
|
|
@@ -155,6 +154,15 @@ export var language = <ILanguage> {
|
|
[/"/, { token: 'string.quote', next: '@pop' } ]
|
|
[/"/, { token: 'string.quote', next: '@pop' } ]
|
|
],
|
|
],
|
|
|
|
|
|
|
|
+ litinterpstring: [
|
|
|
|
+ [/[^"{]+/, 'string'],
|
|
|
|
+ [/""/, 'string.escape'],
|
|
|
|
+ [/{{/, 'string.escape'],
|
|
|
|
+ [/}}/, 'string.escape'],
|
|
|
|
+ [/{/, { token: 'string.quote', next: 'root.litinterpstring' } ],
|
|
|
|
+ [/"/, { token: 'string.quote', next: '@pop' } ]
|
|
|
|
+ ],
|
|
|
|
+
|
|
interpolatedstring: [
|
|
interpolatedstring: [
|
|
[/[^\\"{]+/, 'string'],
|
|
[/[^\\"{]+/, 'string'],
|
|
[/@escapes/, 'string.escape'],
|
|
[/@escapes/, 'string.escape'],
|
|
@@ -173,4 +181,4 @@ export var language = <ILanguage> {
|
|
[/\/\/.*$/, 'comment'],
|
|
[/\/\/.*$/, 'comment'],
|
|
],
|
|
],
|
|
},
|
|
},
|
|
-};
|
|
|
|
|
|
+};
|