highlightjs-cshtml-razor
Version:
highlight.js syntax definition for ASP.NET Razor CSHTML language
68 lines • 4.67 kB
JavaScript
/*! `cshtml-razor` grammar compiled for Highlight.js 11.11.1 */
(()=>{var n=(()=>{"use strict";function n(n){
return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n
}var e,a;return n(a?e:(a=1,e=n=>{const e="built_in",a={},s={begin:"}",
className:e,endsParent:!0},i={begin:"{",end:"}",
contains:[n.QUOTE_STRING_MODE,"self"]},r=n.COMMENT("@\\*","\\*@",{relevance:10
}),t={begin:"@[A-Za-z0-9\\._:-]+",returnBegin:!0,end:"(\\r|\\n|<|\\s|\"|')",
subLanguage:"csharp",contains:[{begin:"@",className:e},{begin:"\\[",end:"\\]",
skip:!0},{begin:"\\(",end:"\\)",skip:!0}],returnEnd:!0},g={
begin:"[@]{0,1}<text>",returnBegin:!0,end:"</text>",returnEnd:!0,
subLanguage:"cshtml-razor",contains:[{begin:"[@]{0,1}<text>",className:e},{
begin:"</text>",className:e,endsParent:!0}]},c={begin:"@\\(",end:"\\)",
returnBegin:!0,returnEnd:!0,subLanguage:"csharp",contains:[{begin:"@\\(",
className:e},{begin:"\\(",end:"\\)",subLanguage:"csharp",
contains:[n.QUOTE_STRING_MODE,"self",g]},g,{begin:"\\)",className:e,
endsParent:!0}]},b=((n,e)=>{const a={endsWithParent:!0,illegal:/</,relevance:0,
contains:[{className:"attr",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{
begin:/=\s*/,relevance:0,contains:[{className:"string",variants:[{begin:/"/,
end:/"/,contains:e},{begin:/'/,end:/'/,contains:e},{begin:/[^\s"'=<>`]+/}]}]}]}
;return[{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{
begin:"\\[",end:"\\]"}]},n.COMMENT("\x3c!--","--\x3e",{relevance:10}),{
begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"meta",
begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
begin:"<style(?=\\s|>|$)",end:">",keywords:{name:"style"},contains:[a],starts:{
end:"</style>",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
begin:"<script(?=\\s|>|$)",end:">",keywords:{name:"script"},contains:[a],
starts:{end:"<\/script>",returnEnd:!0,
subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"tag",
begin:"</?",end:"/?>",contains:[{className:"name",begin:/[^/><\s]+/,relevance:0
},a]}].concat(e)
})(n,[t,c]),l="^\\s*@(page|model|using|inherits|inject|layout)",u={
begin:l+"[^\\r\\n{\\(]*$",end:"$",returnBegin:!0,returnEnd:!0,contains:[{
begin:l,className:e},{variants:[{begin:"\\r|\\n",endsParent:!0},{
begin:"\\s[^\\r\\n]+",end:"$"},{begin:"$"}],className:"type",endsParent:!0}]
},d={variants:[{begin:"@\\{",end:"}"},{begin:"@code\\s*\\{",end:"}"}],
returnBegin:!0,returnEnd:!0,subLanguage:"csharp",contains:[{
begin:"@(code\\s*)?\\{",className:e},a,{begin:"{",end:"}",contains:["self"],
skip:!0},{variants:[{begin:/"/,end:/"/,skip:!0},{begin:/'/,end:/'/,skip:!0}],
skip:!0},s]},o={begin:"^\\s*@helper\\s+[^{\\s]+(?:\\s+[^{\\s]+)*\\s*{",
returnBegin:!0,returnEnd:!0,end:"}",subLanguage:"cshtml-razor",contains:[{
begin:"@helper",className:e},{begin:"{",className:e},s]
},m=["for","if","switch","while","using","lock","foreach"].map((n=>({
begin:`@${n}(?![\\w\\d])[^{]*\\{`,end:"}"}))),p=[{
begin:"\\}\\s*else\\s*(if[^\\{]+|)\\{"}],h={variants:m,returnBegin:!0,
returnEnd:!0,subLanguage:"csharp",contains:[{variants:m.map((n=>({begin:n.begin
}))),returnBegin:!0,contains:[{begin:"@",className:e},{variants:m.map((n=>({
begin:(""+n.begin).substring(1,n.begin.length-2)}))),subLanguage:"csharp"},{
begin:"{",className:e}]},a,{variants:p,returnBegin:!0,contains:[{begin:"}",
className:e},{begin:p[0].begin.substring(2,p[0].begin.length-2),
subLanguage:"csharp"},{begin:"{",className:e}]},i,s]},N={begin:"@try\\s*{",
end:"}",returnBegin:!0,returnEnd:!0,subLanguage:"csharp",contains:[{begin:"@",
className:e},{begin:"try\\s*{",subLanguage:"csharp"},{variants:[{
begin:"}\\s*catch\\s*\\([^\\)]+\\)\\s*{"},{begin:"}\\s*finally\\s*{"}],
returnBegin:!0,contains:[{begin:"}",className:e},{variants:[{
begin:"\\s*catch\\s*\\([^\\)]+\\)\\s*"},{begin:"\\s*finally\\s*"}],
subLanguage:"csharp"},{begin:"{",className:e}]},a,i,s]
},v="@section\\s+[a-zA-Z0-9]+\\s*{",E=[u,o,d,h,{begin:v,returnBegin:!0,
returnEnd:!0,end:"}",subLanguage:"cshtml-razor",contains:[{begin:v,className:e
},i,s]},{begin:"@await ",returnBegin:!0,subLanguage:"csharp",
end:"(\\r|\\n|<|\\s)",contains:[{begin:"@await ",className:e},{
begin:"[<\\r\\n]",endsParent:!0}]},N,{variants:[{begin:"@@"},{begin:"[a-zA-Z]+@"
}],skip:!0},g,r,c,{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,
contains:[{begin:"\\[",end:"\\]"}]},{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",
relevance:10}].concat(b);return[d,h,N].forEach((n=>{
const e=E.filter((e=>e!==n)),s=n.contains.indexOf(a)
;n.contains.splice.apply(n.contains,[s,1].concat(e))})),{
aliases:["cshtml","razor","razor-cshtml","cshtml-razor"],contains:E}}))})()
;hljs.registerLanguage("cshtml-razor",n)})();