1 | Prism.languages.livescript = {
|
2 | 'comment': [
|
3 | {
|
4 | pattern: /(^|[^\\])\/\*[\s\S]*?\*\//,
|
5 | lookbehind: true
|
6 | },
|
7 | {
|
8 | pattern: /(^|[^\\])#.*/,
|
9 | lookbehind: true
|
10 | }
|
11 | ],
|
12 | 'interpolated-string': {
|
13 | |
14 |
|
15 | pattern: /(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,
|
16 | lookbehind: true,
|
17 | greedy: true,
|
18 | inside: {
|
19 | 'variable': {
|
20 | pattern: /(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,
|
21 | lookbehind: true
|
22 | },
|
23 | 'interpolation': {
|
24 | pattern: /(^|[^\\])#\{[^}]+\}/m,
|
25 | lookbehind: true,
|
26 | inside: {
|
27 | 'interpolation-punctuation': {
|
28 | pattern: /^#\{|\}$/,
|
29 | alias: 'variable'
|
30 | }
|
31 |
|
32 | }
|
33 | },
|
34 | 'string': /[\s\S]+/
|
35 | }
|
36 | },
|
37 | 'string': [
|
38 | {
|
39 | pattern: /('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,
|
40 | greedy: true
|
41 | },
|
42 | {
|
43 | pattern: /<\[[\s\S]*?\]>/,
|
44 | greedy: true
|
45 | },
|
46 | /\\[^\s,;\])}]+/
|
47 | ],
|
48 | 'regex': [
|
49 | {
|
50 | pattern: /\/\/(?:\[[^\r\n\]]*\]|\\.|(?!\/\/)[^\\\[])+\/\/[gimyu]{0,5}/,
|
51 | greedy: true,
|
52 | inside: {
|
53 | 'comment': {
|
54 | pattern: /(^|[^\\])#.*/,
|
55 | lookbehind: true
|
56 | }
|
57 | }
|
58 | },
|
59 | {
|
60 | pattern: /\/(?:\[[^\r\n\]]*\]|\\.|[^/\\\r\n\[])+\/[gimyu]{0,5}/,
|
61 | greedy: true
|
62 | }
|
63 | ],
|
64 | 'keyword': {
|
65 | pattern: /(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,
|
66 | lookbehind: true
|
67 | },
|
68 | 'keyword-operator': {
|
69 | pattern: /(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,
|
70 | lookbehind: true,
|
71 | alias: 'operator'
|
72 | },
|
73 | 'boolean': {
|
74 | pattern: /(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,
|
75 | lookbehind: true
|
76 | },
|
77 | 'argument': {
|
78 |
|
79 | pattern: /(^|(?!\.&\.)[^&])&(?!&)\d*/m,
|
80 | lookbehind: true,
|
81 | alias: 'variable'
|
82 | },
|
83 | 'number': /\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,
|
84 | 'identifier': /[a-z_](?:-?[a-z]|[\d_])*/i,
|
85 | 'operator': [
|
86 |
|
87 | {
|
88 | pattern: /( )\.(?= )/,
|
89 | lookbehind: true
|
90 | },
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 |
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 |
|
105 |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 |
|
114 | /\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/
|
115 | ],
|
116 | 'punctuation': /[(){}\[\]|.,:;`]/
|
117 | };
|
118 |
|
119 | Prism.languages.livescript['interpolated-string'].inside['interpolation'].inside.rest = Prism.languages.livescript;
|
120 |
|
\ | No newline at end of file |