source: node_modules/refractor/lang/aspnet.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.8 KB
Line 
1'use strict'
2var refractorCsharp = require('./csharp.js')
3module.exports = aspnet
4aspnet.displayName = 'aspnet'
5aspnet.aliases = []
6function aspnet(Prism) {
7 Prism.register(refractorCsharp)
8 Prism.languages.aspnet = Prism.languages.extend('markup', {
9 'page-directive': {
10 pattern: /<%\s*@.*%>/,
11 alias: 'tag',
12 inside: {
13 'page-directive': {
14 pattern:
15 /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,
16 alias: 'tag'
17 },
18 rest: Prism.languages.markup.tag.inside
19 }
20 },
21 directive: {
22 pattern: /<%.*%>/,
23 alias: 'tag',
24 inside: {
25 directive: {
26 pattern: /<%\s*?[$=%#:]{0,2}|%>/,
27 alias: 'tag'
28 },
29 rest: Prism.languages.csharp
30 }
31 }
32 }) // Regexp copied from prism-markup, with a negative look-ahead added
33 Prism.languages.aspnet.tag.pattern =
34 /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/ // match directives of attribute value foo="<% Bar %>"
35 Prism.languages.insertBefore(
36 'inside',
37 'punctuation',
38 {
39 directive: Prism.languages.aspnet['directive']
40 },
41 Prism.languages.aspnet.tag.inside['attr-value']
42 )
43 Prism.languages.insertBefore('aspnet', 'comment', {
44 'asp-comment': {
45 pattern: /<%--[\s\S]*?--%>/,
46 alias: ['asp', 'comment']
47 }
48 }) // script runat="server" contains csharp, not javascript
49 Prism.languages.insertBefore(
50 'aspnet',
51 Prism.languages.javascript ? 'script' : 'tag',
52 {
53 'asp-script': {
54 pattern:
55 /(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i,
56 lookbehind: true,
57 alias: ['asp', 'script'],
58 inside: Prism.languages.csharp || {}
59 }
60 }
61 )
62}
Note: See TracBrowser for help on using the repository browser.