11/*
22 * Language: cshtml-razor
3- * Requires: xml.js, cs.js
3+ * Requires: xml.js, cs.js, css.js, javascript.js
44 * Author: Roman Resh <[email protected] > 55*/
66
@@ -56,17 +56,6 @@ function getXmlBlocks(hljs, additional_blocks) {
5656 className : 'meta' ,
5757 begin : / < \? x m l / , end : / \? > / , relevance : 10
5858 } ,
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- } ,
7059 {
7160 className : 'tag' ,
7261 begin : '<style(?=\\s|>|$)' , end : '>' ,
@@ -101,6 +90,7 @@ function getXmlBlocks(hljs, additional_blocks) {
10190}
10291function hljsDefineCshtmlRazor ( hljs ) {
10392 var SPECIAL_SYMBOL_CLASSNAME = "built_in" ;
93+ var CONTENT_REPLACER = { } ;
10494 var closed_brace = {
10595 begin : "}" ,
10696 className : SPECIAL_SYMBOL_CLASSNAME ,
@@ -215,6 +205,7 @@ function hljsDefineCshtmlRazor(hljs) {
215205 begin : "@\\{" ,
216206 className : SPECIAL_SYMBOL_CLASSNAME
217207 } ,
208+ CONTENT_REPLACER ,
218209 closed_brace
219210 ]
220211 } ;
@@ -246,6 +237,7 @@ function hljsDefineCshtmlRazor(hljs) {
246237 { begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
247238 ]
248239 } ,
240+ CONTENT_REPLACER ,
249241 {
250242 variants : [
251243 { begin : "}[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" } ,
@@ -278,7 +270,7 @@ function hljsDefineCshtmlRazor(hljs) {
278270 end : "}" ,
279271 returnBegin : true ,
280272 returnEnd : true ,
281- subLanguage : [ "cs" ] ,
273+ subLanguage : "cs" ,
282274 contains : [
283275 { begin : "@" , className : SPECIAL_SYMBOL_CLASSNAME } ,
284276 { begin : "try[\\s]*{" , subLanguage : "cs" } ,
@@ -300,32 +292,26 @@ function hljsDefineCshtmlRazor(hljs) {
300292 { begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
301293 ]
302294 } ,
303- razor_text_block ,
295+ CONTENT_REPLACER ,
304296 braces ,
305297 closed_brace
306298 ]
307299 } ;
308-
309- razor_try_block . contains = razor_try_block . contains . concat ( xml_blocks ) ;
310300 var razor_section_block = {
311301 begin : section_begin ,
312302 returnBegin : true ,
313303 returnEnd : true ,
314304 end : "}" ,
315- subLanguage : [ 'cshtml-razor' ] ,
305+ subLanguage : 'cshtml-razor' ,
316306 contains : [
317307 {
318308 begin : section_begin ,
319309 className : SPECIAL_SYMBOL_CLASSNAME
320310 } ,
321- razor_code_block ,
322- razor_block ,
323- razor_try_block ,
324311 braces ,
325312 closed_brace
326313 ]
327314 } ;
328- razor_section_block . contains = razor_section_block . contains . concat ( xml_blocks ) ;
329315 var rasor_await = {
330316 begin : "@await " ,
331317 returnBegin : true ,
@@ -344,7 +330,7 @@ function hljsDefineCshtmlRazor(hljs) {
344330 } ;
345331
346332 var result = {
347- aliases : [ 'cshtml' ] ,
333+ aliases : [ 'cshtml' , 'razor' , 'razor-cshtml' ] ,
348334 contains : [
349335 razor_directives ,
350336 razor_block ,
@@ -369,10 +355,11 @@ function hljsDefineCshtmlRazor(hljs) {
369355 } ;
370356 result . contains = result . contains . concat ( xml_blocks ) ;
371357
372- [ razor_block , razor_code_block ]
358+ [ razor_block , razor_code_block , razor_try_block ]
373359 . forEach ( function ( mode ) {
374360 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 ) ) ;
376363 } ) ;
377364
378365 return result ;
0 commit comments