UNPKG

1.3 kBJavaScriptView Raw
1Prism.languages.aspnet = Prism.languages.extend('markup', {
2 'page-directive tag': {
3 pattern: /<%\s*@.*%>/i,
4 inside: {
5 'page-directive tag': /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,
6 rest: Prism.languages.markup.tag.inside
7 }
8 },
9 'directive tag': {
10 pattern: /<%.*%>/i,
11 inside: {
12 'directive tag': /<%\s*?[$=%#:]{0,2}|%>/i,
13 rest: Prism.languages.csharp
14 }
15 }
16});
17// Regexp copied from prism-markup, with a negative look-ahead added
18Prism.languages.aspnet.tag.pattern = /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
19
20// match directives of attribute value foo="<% Bar %>"
21Prism.languages.insertBefore('inside', 'punctuation', {
22 'directive tag': Prism.languages.aspnet['directive tag']
23}, Prism.languages.aspnet.tag.inside["attr-value"]);
24
25Prism.languages.insertBefore('aspnet', 'comment', {
26 'asp comment': /<%--[\s\S]*?--%>/
27});
28
29// script runat="server" contains csharp, not javascript
30Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', {
31 'asp script': {
32 pattern: /(<script(?=.*runat=['"]?server['"]?)[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,
33 lookbehind: true,
34 inside: Prism.languages.csharp || {}
35 }
36});
\No newline at end of file