@@ -17,11 +17,10 @@ function getXmlBlocks(hljs, additional_blocks) {
17
17
var string = {
18
18
className : 'string' ,
19
19
variants : [
20
- { begin : / " / , end : / " / } ,
21
- { begin : / ' / , end : / ' / } ,
20
+ { begin : / " / , end : / " / , contains : additional_blocks } ,
21
+ { begin : / ' / , end : / ' / , contains : additional_blocks } ,
22
22
{ begin : / [ ^ \s " ' = < > ` ] + / }
23
- ] ,
24
- contains : additional_blocks
23
+ ]
25
24
} ;
26
25
var xml_tag_internal = {
27
26
endsWithParent : true ,
@@ -101,6 +100,12 @@ function hljsDefineCshtmlRazor(hljs) {
101
100
end : "}" ,
102
101
contains : [ hljs . QUOTE_STRING_MODE , 'self' ]
103
102
} ;
103
+ var csbraces = {
104
+ begin : "{" ,
105
+ end : "}" ,
106
+ contains : [ 'self' ] ,
107
+ skip : true
108
+ } ;
104
109
var razor_comment = hljs . COMMENT (
105
110
'@\\*' ,
106
111
'\\*@' ,
@@ -109,10 +114,10 @@ function hljsDefineCshtmlRazor(hljs) {
109
114
}
110
115
) ;
111
116
var razor_inline_expresion = {
112
- begin : "@[a-zA-Z]+" ,
117
+ begin : '@[A-Za-z0-9\\._:-]+' ,
113
118
returnBegin : true ,
114
- subLanguage : 'csharp' ,
115
119
end : "(\\r|\\n|<|\\s|\"|')" ,
120
+ subLanguage : 'cs' ,
116
121
contains : [
117
122
{
118
123
begin : '@' ,
@@ -160,7 +165,7 @@ function hljsDefineCshtmlRazor(hljs) {
160
165
end : "\\)" ,
161
166
returnBegin : true ,
162
167
returnEnd : true ,
163
- subLanguage : "csharp" ,
168
+ subLanguage : 'cs' ,
164
169
contains : [
165
170
{
166
171
begin : "@\\(" ,
@@ -169,7 +174,7 @@ function hljsDefineCshtmlRazor(hljs) {
169
174
{
170
175
begin : "\\(" ,
171
176
end : "\\)" ,
172
- subLanguage : 'csharp ' ,
177
+ subLanguage : 'cs ' ,
173
178
contains : [ hljs . QUOTE_STRING_MODE , 'self' , razor_text_block ]
174
179
} ,
175
180
razor_text_block ,
@@ -193,7 +198,7 @@ function hljsDefineCshtmlRazor(hljs) {
193
198
} ,
194
199
{
195
200
variants : [
196
- { begin : "\\r|\\n" , endsParent : true } ,
201
+ { begin : "\\r|\\n" , endsParent : true } ,
197
202
{ begin : "\\s[^\\r\\n]+" , end : "$" } ,
198
203
{ begin : "$" }
199
204
] ,
@@ -202,18 +207,22 @@ function hljsDefineCshtmlRazor(hljs) {
202
207
}
203
208
]
204
209
} ;
210
+ var cs_code_block_variants = [
211
+ { begin : "@\\{" , end : "}" } ,
212
+ { begin : "@code\\s*\\{" , end : "}" }
213
+ ] ;
205
214
var razor_block = {
206
- begin : "@\\{" ,
215
+ variants : cs_code_block_variants ,
207
216
returnBegin : true ,
208
217
returnEnd : true ,
209
- end : "\\}" ,
210
- subLanguage : 'csharp' ,
218
+ subLanguage : 'cs' ,
211
219
contains : [
212
220
{
213
- begin : "@\\{" ,
221
+ begin : "@(code\\s*)? \\{" ,
214
222
className : SPECIAL_SYMBOL_CLASSNAME
215
223
} ,
216
224
CONTENT_REPLACER ,
225
+ csbraces ,
217
226
closed_brace
218
227
]
219
228
} ;
@@ -242,8 +251,7 @@ function hljsDefineCshtmlRazor(hljs) {
242
251
variants : razor_code_block_variants ,
243
252
returnBegin : true ,
244
253
returnEnd : true ,
245
- end : "}" ,
246
- subLanguage : 'csharp' ,
254
+ subLanguage : 'cs' ,
247
255
contains : [
248
256
{
249
257
variants : razor_code_block_variants . map ( function ( v ) { return { begin : v . begin } ; } ) ,
@@ -252,7 +260,7 @@ function hljsDefineCshtmlRazor(hljs) {
252
260
{ begin : "@" , className : SPECIAL_SYMBOL_CLASSNAME } ,
253
261
{
254
262
variants : razor_code_block_variants . map ( function ( v ) { return { begin : v . begin . substr ( 1 , v . begin . length - 2 ) } ; } ) ,
255
- subLanguage : "csharp"
263
+ subLanguage : 'cs'
256
264
} ,
257
265
{ begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
258
266
]
@@ -271,7 +279,7 @@ function hljsDefineCshtmlRazor(hljs) {
271
279
{ begin : "[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" } ,
272
280
{ begin : "[\\s]*else[\\s]*" }
273
281
] ,
274
- subLanguage : "csharp"
282
+ subLanguage : 'cs'
275
283
} ,
276
284
{
277
285
begin : "{" ,
@@ -283,16 +291,15 @@ function hljsDefineCshtmlRazor(hljs) {
283
291
closed_brace
284
292
]
285
293
} ;
286
- var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{" ;
287
294
var razor_try_block = {
288
295
begin : "@try[\\s]*{" ,
289
296
end : "}" ,
290
297
returnBegin : true ,
291
298
returnEnd : true ,
292
- subLanguage : "csharp" ,
299
+ subLanguage : 'cs' ,
293
300
contains : [
294
301
{ begin : "@" , className : SPECIAL_SYMBOL_CLASSNAME } ,
295
- { begin : "try[\\s]*{" , subLanguage : "csharp" } ,
302
+ { begin : "try[\\s]*{" , subLanguage : 'cs' } ,
296
303
{
297
304
variants : [
298
305
{ begin : "}[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*{" } ,
@@ -306,7 +313,7 @@ function hljsDefineCshtmlRazor(hljs) {
306
313
{ begin : "[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*" , } ,
307
314
{ begin : "[\\s]*finally[\\s]*" , } ,
308
315
] ,
309
- subLanguage : "csharp"
316
+ subLanguage : 'cs'
310
317
} ,
311
318
{ begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
312
319
]
@@ -316,6 +323,7 @@ function hljsDefineCshtmlRazor(hljs) {
316
323
closed_brace
317
324
]
318
325
} ;
326
+ var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{" ;
319
327
var razor_section_block = {
320
328
begin : section_begin ,
321
329
returnBegin : true ,
@@ -334,7 +342,7 @@ function hljsDefineCshtmlRazor(hljs) {
334
342
var rasor_await = {
335
343
begin : "@await " ,
336
344
returnBegin : true ,
337
- subLanguage : 'csharp ' ,
345
+ subLanguage : 'cs ' ,
338
346
end : "(\\r|\\n|<|\\s)" ,
339
347
contains : [
340
348
{
0 commit comments