1
1
/*
2
2
* Language: cshtml-razor
3
- * Requires: xml.js, cs.js
3
+ * Requires: xml.js, cs.js, css.js, javascript.js
4
4
* Author: Roman Resh <[email protected] >
5
5
*/
6
6
@@ -56,17 +56,6 @@ function getXmlBlocks(hljs, additional_blocks) {
56
56
className : 'meta' ,
57
57
begin : / < \? x m l / , end : / \? > / , relevance : 10
58
58
} ,
59
- {
60
- begin : / < \? ( p h p ) ? / , end : / \? > / ,
61
- subLanguage : 'php' ,
62
- contains : [
63
- { begin : '/\\*' , end : '\\*/' , skip : true } ,
64
- { begin : 'b"' , end : '"' , skip : true } ,
65
- { begin : 'b\'' , end : '\'' , skip : true } ,
66
- hljs . inherit ( hljs . APOS_STRING_MODE , { illegal : null , className : null , contains : null , skip : true } ) ,
67
- hljs . inherit ( hljs . QUOTE_STRING_MODE , { illegal : null , className : null , contains : null , skip : true } )
68
- ]
69
- } ,
70
59
{
71
60
className : 'tag' ,
72
61
begin : '<style(?=\\s|>|$)' , end : '>' ,
@@ -101,6 +90,7 @@ function getXmlBlocks(hljs, additional_blocks) {
101
90
}
102
91
function hljsDefineCshtmlRazor ( hljs ) {
103
92
var SPECIAL_SYMBOL_CLASSNAME = "built_in" ;
93
+ var CONTENT_REPLACER = { } ;
104
94
var closed_brace = {
105
95
begin : "}" ,
106
96
className : SPECIAL_SYMBOL_CLASSNAME ,
@@ -215,6 +205,7 @@ function hljsDefineCshtmlRazor(hljs) {
215
205
begin : "@\\{" ,
216
206
className : SPECIAL_SYMBOL_CLASSNAME
217
207
} ,
208
+ CONTENT_REPLACER ,
218
209
closed_brace
219
210
]
220
211
} ;
@@ -246,6 +237,7 @@ function hljsDefineCshtmlRazor(hljs) {
246
237
{ begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
247
238
]
248
239
} ,
240
+ CONTENT_REPLACER ,
249
241
{
250
242
variants : [
251
243
{ begin : "}[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" } ,
@@ -278,7 +270,7 @@ function hljsDefineCshtmlRazor(hljs) {
278
270
end : "}" ,
279
271
returnBegin : true ,
280
272
returnEnd : true ,
281
- subLanguage : [ "cs" ] ,
273
+ subLanguage : "cs" ,
282
274
contains : [
283
275
{ begin : "@" , className : SPECIAL_SYMBOL_CLASSNAME } ,
284
276
{ begin : "try[\\s]*{" , subLanguage : "cs" } ,
@@ -300,32 +292,26 @@ function hljsDefineCshtmlRazor(hljs) {
300
292
{ begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
301
293
]
302
294
} ,
303
- razor_text_block ,
295
+ CONTENT_REPLACER ,
304
296
braces ,
305
297
closed_brace
306
298
]
307
299
} ;
308
-
309
- razor_try_block . contains = razor_try_block . contains . concat ( xml_blocks ) ;
310
300
var razor_section_block = {
311
301
begin : section_begin ,
312
302
returnBegin : true ,
313
303
returnEnd : true ,
314
304
end : "}" ,
315
- subLanguage : [ 'cshtml-razor' ] ,
305
+ subLanguage : 'cshtml-razor' ,
316
306
contains : [
317
307
{
318
308
begin : section_begin ,
319
309
className : SPECIAL_SYMBOL_CLASSNAME
320
310
} ,
321
- razor_code_block ,
322
- razor_block ,
323
- razor_try_block ,
324
311
braces ,
325
312
closed_brace
326
313
]
327
314
} ;
328
- razor_section_block . contains = razor_section_block . contains . concat ( xml_blocks ) ;
329
315
var rasor_await = {
330
316
begin : "@await " ,
331
317
returnBegin : true ,
@@ -344,7 +330,7 @@ function hljsDefineCshtmlRazor(hljs) {
344
330
} ;
345
331
346
332
var result = {
347
- aliases : [ 'cshtml' ] ,
333
+ aliases : [ 'cshtml' , 'razor' , 'razor-cshtml' ] ,
348
334
contains : [
349
335
razor_directives ,
350
336
razor_block ,
@@ -369,10 +355,11 @@ function hljsDefineCshtmlRazor(hljs) {
369
355
} ;
370
356
result . contains = result . contains . concat ( xml_blocks ) ;
371
357
372
- [ razor_block , razor_code_block ]
358
+ [ razor_block , razor_code_block , razor_try_block ]
373
359
. forEach ( function ( mode ) {
374
360
var razorModes = result . contains . filter ( function ( c ) { return c !== mode ; } ) ;
375
- mode . contains . splice . apply ( mode . contains , [ 1 , 0 ] . concat ( razorModes ) ) ;
361
+ var replacerIndex = mode . contains . indexOf ( CONTENT_REPLACER ) ;
362
+ mode . contains . splice . apply ( mode . contains , [ replacerIndex , 1 ] . concat ( razorModes ) ) ;
376
363
} ) ;
377
364
378
365
return result ;
0 commit comments