Skip to content

Commit 463c9fe

Browse files
authored
Merge pull request #7 from Himura2la/support-helper
Support @Helper keyword
2 parents 58e0a18 + 42be957 commit 463c9fe

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

cshtml-razor.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function hljsDefineCshtmlRazor(hljs) {
107107
{
108108
relevance: 10
109109
}
110-
);
110+
);
111111
var razor_inline_expresion = {
112112
begin: "@[a-zA-Z]+",
113113
returnBegin: true,
@@ -118,7 +118,7 @@ function hljsDefineCshtmlRazor(hljs) {
118118
begin: '@',
119119
className: SPECIAL_SYMBOL_CLASSNAME
120120
},
121-
{
121+
{
122122
begin: '".*(?!$)"',
123123
skip: true
124124
},
@@ -143,7 +143,7 @@ function hljsDefineCshtmlRazor(hljs) {
143143
{
144144
begin: "</text>",
145145
className: SPECIAL_SYMBOL_CLASSNAME,
146-
endsParent: true,
146+
endsParent: true
147147
}
148148
]
149149
};
@@ -217,14 +217,26 @@ function hljsDefineCshtmlRazor(hljs) {
217217
closed_brace
218218
]
219219
};
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+
};
220232
var razor_code_block_variants = [
221233
{ begin: "@for[\\s]*\\([^{]+[\\s]*{", end: "}" },
222234
{ begin: "@if[\\s]*\\([^{]+[\\s]*{", end: "}" },
223235
{ begin: "@switch[\\s]*\\([^{]+[\\s]*{", end: "}" },
224236
{ begin: "@while[\\s]*\\([^{]+[\\s]*{", end: "}" },
225237
{ begin: "@using[\\s]*\\([^{]+[\\s]*{", end: "}" },
226238
{ begin: "@lock[\\s]*\\([^{]+[\\s]*{", end: "}" },
227-
{ begin: "@foreach[\\s]*\\([^{]+[\\s]*{", end: "}" },
239+
{ begin: "@foreach[\\s]*\\([^{]+[\\s]*{", end: "}" }
228240
];
229241
var razor_code_block = {
230242
variants: razor_code_block_variants,
@@ -256,8 +268,8 @@ function hljsDefineCshtmlRazor(hljs) {
256268
{ begin: "}", className: SPECIAL_SYMBOL_CLASSNAME },
257269
{
258270
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]*" }
261273
],
262274
subLanguage: "cs"
263275
},
@@ -268,8 +280,7 @@ function hljsDefineCshtmlRazor(hljs) {
268280
]
269281
},
270282
braces,
271-
closed_brace,
272-
//razor_block
283+
closed_brace
273284
]
274285
};
275286
var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{";
@@ -338,9 +349,10 @@ function hljsDefineCshtmlRazor(hljs) {
338349
};
339350

340351
var result = {
341-
aliases: ['cshtml','razor','razor-cshtml'],
352+
aliases: ['cshtml', 'razor', 'razor-cshtml'],
342353
contains: [
343354
razor_directives,
355+
razor_helper_block,
344356
razor_block,
345357
razor_code_block,
346358
razor_section_block,
@@ -365,8 +377,8 @@ function hljsDefineCshtmlRazor(hljs) {
365377
result.contains = result.contains.concat(xml_blocks);
366378

367379
[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; });
370382
var replacerIndex = mode.contains.indexOf(CONTENT_REPLACER);
371383
mode.contains.splice.apply(mode.contains, [replacerIndex, 1].concat(razorModes));
372384
});

0 commit comments

Comments
 (0)