You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
JavaScript
49 lines
1.8 KiB
JavaScript
Prism.languages.aspnet = Prism.languages.extend('markup', {
|
|
'page-directive tag': {
|
|
pattern: /<%\s*@.*%>/gi,
|
|
inside: {
|
|
'page-directive tag': /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master|MasterType|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/ig,
|
|
rest: Prism.languages.markup.tag.inside
|
|
}
|
|
},
|
|
'directive tag': {
|
|
pattern: /<%.*%>/gi,
|
|
inside: {
|
|
'directive tag': /<%\s*?[$=%#:]{0,2}|%>/gi,
|
|
rest: Prism.languages.csharp
|
|
}
|
|
}
|
|
});
|
|
|
|
// match directives of attribute value foo="<% Bar %>"
|
|
Prism.languages.insertBefore('inside', 'punctuation', {
|
|
'directive tag': Prism.languages.aspnet['directive tag']
|
|
}, Prism.languages.aspnet.tag.inside["attr-value"]);
|
|
|
|
Prism.languages.insertBefore('aspnet', 'comment', {
|
|
'asp comment': /<%--[\w\W]*?--%>/g
|
|
});
|
|
|
|
// script runat="server" contains csharp, not javascript
|
|
Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', {
|
|
'asp script': {
|
|
pattern: /<script(?=.*runat=['"]?server['"]?)[\w\W]*?>[\w\W]*?<\/script>/ig,
|
|
inside: {
|
|
tag: {
|
|
pattern: /<\/?script\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/gi,
|
|
inside: Prism.languages.aspnet.tag.inside
|
|
},
|
|
rest: Prism.languages.csharp || {}
|
|
}
|
|
}
|
|
});
|
|
|
|
// Hacks to fix eager tag matching finishing too early: <script src="<% Foo.Bar %>"> => <script src="<% Foo.Bar %>
|
|
if ( Prism.languages.aspnet.style ) {
|
|
Prism.languages.aspnet.style.inside.tag.pattern = /<\/?style\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|\w+))?\s*)*\/?>/gi;
|
|
Prism.languages.aspnet.style.inside.tag.inside = Prism.languages.aspnet.tag.inside;
|
|
}
|
|
if ( Prism.languages.aspnet.script ) {
|
|
Prism.languages.aspnet.script.inside.tag.pattern = Prism.languages.aspnet['asp script'].inside.tag.pattern;
|
|
Prism.languages.aspnet.script.inside.tag.inside = Prism.languages.aspnet.tag.inside;
|
|
} |