@@ -17,11 +17,10 @@ function getXmlBlocks(hljs, additional_blocks) {
1717 var string = {
1818 className : 'string' ,
1919 variants : [
20- { begin : / " / , end : / " / } ,
21- { begin : / ' / , end : / ' / } ,
20+ { begin : / " / , end : / " / , contains : additional_blocks } ,
21+ { begin : / ' / , end : / ' / , contains : additional_blocks } ,
2222 { begin : / [ ^ \s " ' = < > ` ] + / }
23- ] ,
24- contains : additional_blocks
23+ ]
2524 } ;
2625 var xml_tag_internal = {
2726 endsWithParent : true ,
@@ -101,6 +100,12 @@ function hljsDefineCshtmlRazor(hljs) {
101100 end : "}" ,
102101 contains : [ hljs . QUOTE_STRING_MODE , 'self' ]
103102 } ;
103+ var csbraces = {
104+ begin : "{" ,
105+ end : "}" ,
106+ contains : [ 'self' ] ,
107+ skip : true
108+ } ;
104109 var razor_comment = hljs . COMMENT (
105110 '@\\*' ,
106111 '\\*@' ,
@@ -109,10 +114,10 @@ function hljsDefineCshtmlRazor(hljs) {
109114 }
110115 ) ;
111116 var razor_inline_expresion = {
112- begin : "@[a-zA-Z]+" ,
117+ begin : '@[A-Za-z0-9\\._:-]+' ,
113118 returnBegin : true ,
114- subLanguage : 'csharp' ,
115119 end : "(\\r|\\n|<|\\s|\"|')" ,
120+ subLanguage : 'cs' ,
116121 contains : [
117122 {
118123 begin : '@' ,
@@ -160,7 +165,7 @@ function hljsDefineCshtmlRazor(hljs) {
160165 end : "\\)" ,
161166 returnBegin : true ,
162167 returnEnd : true ,
163- subLanguage : "csharp" ,
168+ subLanguage : 'cs' ,
164169 contains : [
165170 {
166171 begin : "@\\(" ,
@@ -169,7 +174,7 @@ function hljsDefineCshtmlRazor(hljs) {
169174 {
170175 begin : "\\(" ,
171176 end : "\\)" ,
172- subLanguage : 'csharp ' ,
177+ subLanguage : 'cs ' ,
173178 contains : [ hljs . QUOTE_STRING_MODE , 'self' , razor_text_block ]
174179 } ,
175180 razor_text_block ,
@@ -193,7 +198,7 @@ function hljsDefineCshtmlRazor(hljs) {
193198 } ,
194199 {
195200 variants : [
196- { begin : "\\r|\\n" , endsParent : true } ,
201+ { begin : "\\r|\\n" , endsParent : true } ,
197202 { begin : "\\s[^\\r\\n]+" , end : "$" } ,
198203 { begin : "$" }
199204 ] ,
@@ -202,18 +207,22 @@ function hljsDefineCshtmlRazor(hljs) {
202207 }
203208 ]
204209 } ;
210+ var cs_code_block_variants = [
211+ { begin : "@\\{" , end : "}" } ,
212+ { begin : "@code\\s*\\{" , end : "}" }
213+ ] ;
205214 var razor_block = {
206- begin : "@\\{" ,
215+ variants : cs_code_block_variants ,
207216 returnBegin : true ,
208217 returnEnd : true ,
209- end : "\\}" ,
210- subLanguage : 'csharp' ,
218+ subLanguage : 'cs' ,
211219 contains : [
212220 {
213- begin : "@\\{" ,
221+ begin : "@(code\\s*)? \\{" ,
214222 className : SPECIAL_SYMBOL_CLASSNAME
215223 } ,
216224 CONTENT_REPLACER ,
225+ csbraces ,
217226 closed_brace
218227 ]
219228 } ;
@@ -242,8 +251,7 @@ function hljsDefineCshtmlRazor(hljs) {
242251 variants : razor_code_block_variants ,
243252 returnBegin : true ,
244253 returnEnd : true ,
245- end : "}" ,
246- subLanguage : 'csharp' ,
254+ subLanguage : 'cs' ,
247255 contains : [
248256 {
249257 variants : razor_code_block_variants . map ( function ( v ) { return { begin : v . begin } ; } ) ,
@@ -252,7 +260,7 @@ function hljsDefineCshtmlRazor(hljs) {
252260 { begin : "@" , className : SPECIAL_SYMBOL_CLASSNAME } ,
253261 {
254262 variants : razor_code_block_variants . map ( function ( v ) { return { begin : v . begin . substr ( 1 , v . begin . length - 2 ) } ; } ) ,
255- subLanguage : "csharp"
263+ subLanguage : 'cs'
256264 } ,
257265 { begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
258266 ]
@@ -271,7 +279,7 @@ function hljsDefineCshtmlRazor(hljs) {
271279 { begin : "[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" } ,
272280 { begin : "[\\s]*else[\\s]*" }
273281 ] ,
274- subLanguage : "csharp"
282+ subLanguage : 'cs'
275283 } ,
276284 {
277285 begin : "{" ,
@@ -283,16 +291,15 @@ function hljsDefineCshtmlRazor(hljs) {
283291 closed_brace
284292 ]
285293 } ;
286- var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{" ;
287294 var razor_try_block = {
288295 begin : "@try[\\s]*{" ,
289296 end : "}" ,
290297 returnBegin : true ,
291298 returnEnd : true ,
292- subLanguage : "csharp" ,
299+ subLanguage : 'cs' ,
293300 contains : [
294301 { begin : "@" , className : SPECIAL_SYMBOL_CLASSNAME } ,
295- { begin : "try[\\s]*{" , subLanguage : "csharp" } ,
302+ { begin : "try[\\s]*{" , subLanguage : 'cs' } ,
296303 {
297304 variants : [
298305 { begin : "}[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*{" } ,
@@ -306,7 +313,7 @@ function hljsDefineCshtmlRazor(hljs) {
306313 { begin : "[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*" , } ,
307314 { begin : "[\\s]*finally[\\s]*" , } ,
308315 ] ,
309- subLanguage : "csharp"
316+ subLanguage : 'cs'
310317 } ,
311318 { begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME }
312319 ]
@@ -316,6 +323,7 @@ function hljsDefineCshtmlRazor(hljs) {
316323 closed_brace
317324 ]
318325 } ;
326+ var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{" ;
319327 var razor_section_block = {
320328 begin : section_begin ,
321329 returnBegin : true ,
@@ -334,7 +342,7 @@ function hljsDefineCshtmlRazor(hljs) {
334342 var rasor_await = {
335343 begin : "@await " ,
336344 returnBegin : true ,
337- subLanguage : 'csharp ' ,
345+ subLanguage : 'cs ' ,
338346 end : "(\\r|\\n|<|\\s)" ,
339347 contains : [
340348 {
0 commit comments