@@ -107,7 +107,7 @@ function hljsDefineCshtmlRazor(hljs) {
107
107
{
108
108
relevance : 10
109
109
}
110
- ) ;
110
+ ) ;
111
111
var razor_inline_expresion = {
112
112
begin : "@[a-zA-Z]+" ,
113
113
returnBegin : true ,
@@ -118,7 +118,7 @@ function hljsDefineCshtmlRazor(hljs) {
118
118
begin : '@' ,
119
119
className : SPECIAL_SYMBOL_CLASSNAME
120
120
} ,
121
- {
121
+ {
122
122
begin : '".*(?!$)"' ,
123
123
skip : true
124
124
} ,
@@ -143,7 +143,7 @@ function hljsDefineCshtmlRazor(hljs) {
143
143
{
144
144
begin : "</text>" ,
145
145
className : SPECIAL_SYMBOL_CLASSNAME ,
146
- endsParent : true ,
146
+ endsParent : true
147
147
}
148
148
]
149
149
} ;
@@ -217,14 +217,26 @@ function hljsDefineCshtmlRazor(hljs) {
217
217
closed_brace
218
218
]
219
219
} ;
220
+ var razor_helper_block = {
221
+ begin : "^\\s*@helper[\\s]*[^{]+[\\s]*{" ,
222
+ returnBegin : true ,
223
+ returnEnd : true ,
224
+ end : "}" ,
225
+ subLanguage : "cshtml-razor" ,
226
+ contains : [
227
+ { begin : "@helper" , className : SPECIAL_SYMBOL_CLASSNAME } ,
228
+ { begin : "{" , className : SPECIAL_SYMBOL_CLASSNAME } ,
229
+ closed_brace
230
+ ]
231
+ } ;
220
232
var razor_code_block_variants = [
221
233
{ begin : "@for[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
222
234
{ begin : "@if[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
223
235
{ begin : "@switch[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
224
236
{ begin : "@while[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
225
237
{ begin : "@using[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
226
238
{ begin : "@lock[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
227
- { begin : "@foreach[\\s]*\\([^{]+[\\s]*{" , end : "}" } ,
239
+ { begin : "@foreach[\\s]*\\([^{]+[\\s]*{" , end : "}" }
228
240
] ;
229
241
var razor_code_block = {
230
242
variants : razor_code_block_variants ,
@@ -256,8 +268,8 @@ function hljsDefineCshtmlRazor(hljs) {
256
268
{ begin : "}" , className : SPECIAL_SYMBOL_CLASSNAME } ,
257
269
{
258
270
variants : [
259
- { begin : "[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" , } ,
260
- { begin : "[\\s]*else[\\s]*" , }
271
+ { begin : "[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" } ,
272
+ { begin : "[\\s]*else[\\s]*" }
261
273
] ,
262
274
subLanguage : "cs"
263
275
} ,
@@ -268,8 +280,7 @@ function hljsDefineCshtmlRazor(hljs) {
268
280
]
269
281
} ,
270
282
braces ,
271
- closed_brace ,
272
- //razor_block
283
+ closed_brace
273
284
]
274
285
} ;
275
286
var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{" ;
@@ -338,9 +349,10 @@ function hljsDefineCshtmlRazor(hljs) {
338
349
} ;
339
350
340
351
var result = {
341
- aliases : [ 'cshtml' , 'razor' , 'razor-cshtml' ] ,
352
+ aliases : [ 'cshtml' , 'razor' , 'razor-cshtml' ] ,
342
353
contains : [
343
354
razor_directives ,
355
+ razor_helper_block ,
344
356
razor_block ,
345
357
razor_code_block ,
346
358
razor_section_block ,
@@ -365,8 +377,8 @@ function hljsDefineCshtmlRazor(hljs) {
365
377
result . contains = result . contains . concat ( xml_blocks ) ;
366
378
367
379
[ razor_block , razor_code_block , razor_try_block ]
368
- . forEach ( function ( mode ) {
369
- var razorModes = result . contains . filter ( function ( c ) { return c !== mode ; } ) ;
380
+ . forEach ( function ( mode ) {
381
+ var razorModes = result . contains . filter ( function ( c ) { return c !== mode ; } ) ;
370
382
var replacerIndex = mode . contains . indexOf ( CONTENT_REPLACER ) ;
371
383
mode . contains . splice . apply ( mode . contains , [ replacerIndex , 1 ] . concat ( razorModes ) ) ;
372
384
} ) ;
0 commit comments