|
10 | 10 | Prism.languages.haml = {
|
11 | 11 | // Multiline stuff should appear before the rest
|
12 | 12 |
|
13 |
| - 'multiline-comment': [ |
14 |
| - { |
15 |
| - pattern: /((?:^|\n)([\t ]*))\/.*(\n\2[\t ]+.+)*/, |
16 |
| - lookbehind: true, |
17 |
| - alias: 'comment' |
18 |
| - }, |
19 |
| - { |
20 |
| - pattern: /((?:^|\n)([\t ]*))-#.*(\n\2[\t ]+.+)*/, |
21 |
| - lookbehind: true, |
22 |
| - alias: 'comment' |
23 |
| - } |
24 |
| - ], |
| 13 | + 'multiline-comment': { |
| 14 | + pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*((?:\r?\n|\r)\2[\t ]+.+)*/, |
| 15 | + lookbehind: true, |
| 16 | + alias: 'comment' |
| 17 | + }, |
25 | 18 |
|
26 | 19 | 'multiline-code': [
|
27 | 20 | {
|
28 |
| - pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(\n\2[\t ]+.*,[\t ]*)*(\n\2[\t ]+.+)/, |
| 21 | + pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*((?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*((?:\r?\n|\r)\2[\t ]+.+)/, |
29 | 22 | lookbehind: true,
|
30 | 23 | inside: {
|
31 | 24 | rest: Prism.languages.ruby
|
32 | 25 | }
|
33 | 26 | },
|
34 | 27 | {
|
35 |
| - pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(\n\2[\t ]+.*\|[\t ]*)*/, |
| 28 | + pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*((?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/, |
36 | 29 | lookbehind: true,
|
37 | 30 | inside: {
|
38 | 31 | rest: Prism.languages.ruby
|
|
42 | 35 |
|
43 | 36 | // See at the end of the file for known filters
|
44 | 37 | 'filter': {
|
45 |
| - pattern: /((?:^|\n)([\t ]*)):[\w-]+(\n(?:\2[\t ]+.+|\s*?(?=\n)))+/, |
| 38 | + pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+((?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/, |
46 | 39 | lookbehind: true,
|
47 | 40 | inside: {
|
48 | 41 | 'filter-name': {
|
|
53 | 46 | },
|
54 | 47 |
|
55 | 48 | 'markup': {
|
56 |
| - pattern: /((?:^|\n)[\t ]*)<.+/, |
| 49 | + pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/, |
57 | 50 | lookbehind: true,
|
58 | 51 | inside: {
|
59 | 52 | rest: Prism.languages.markup
|
60 | 53 | }
|
61 | 54 | },
|
62 | 55 | 'doctype': {
|
63 |
| - pattern: /((?:^|\n)[\t ]*)!!!(?: .+)?/, |
| 56 | + pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/, |
64 | 57 | lookbehind: true
|
65 | 58 | },
|
66 | 59 | 'tag': {
|
67 | 60 | // Allows for one nested group of braces
|
68 |
| - pattern: /((?:^|\n)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/, |
| 61 | + pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/, |
69 | 62 | lookbehind: true,
|
70 | 63 | inside: {
|
71 | 64 | 'attributes': [
|
|
100 | 93 | }
|
101 | 94 | },
|
102 | 95 | 'code': {
|
103 |
| - pattern: /((?:^|\n)[\t ]*(?:[~-]|[&!]?=)).+/, |
| 96 | + pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/, |
104 | 97 | lookbehind: true,
|
105 | 98 | inside: {
|
106 | 99 | rest: Prism.languages.ruby
|
|
118 | 111 | }
|
119 | 112 | },
|
120 | 113 | 'punctuation': {
|
121 |
| - pattern: /((?:^|\n)[\t ]*)[~=\-&!]/, |
| 114 | + pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]/, |
122 | 115 | lookbehind: true
|
123 | 116 | }
|
124 | 117 | };
|
125 | 118 |
|
126 |
| - var filter_pattern = '((?:^|\\n)([\\t ]*)):{{filter_name}}(\\n(?:\\2[\\t ]+.+|\\s*?(?=\\n)))+'; |
| 119 | + var filter_pattern = '((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(\\n(?:\\2[\\t ]+.+|\\s*?(?=\\n)))+'; |
127 | 120 |
|
128 | 121 | // Non exhaustive list of available filters and associated languages
|
129 | 122 | var filters = [
|
|
0 commit comments