highlighting 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/highlighting/post_message.rb +4 -0
- data/lib/highlighting/version.rb +1 -1
- data/vendor/assets/javascripts/prism-bash.js +3 -1
- data/vendor/assets/javascripts/prism-bash.min.js +1 -1
- data/vendor/assets/javascripts/prism-bro.js +50 -0
- data/vendor/assets/javascripts/prism-bro.min.js +1 -0
- data/vendor/assets/javascripts/prism-clike.js +4 -1
- data/vendor/assets/javascripts/prism-clike.min.js +1 -1
- data/vendor/assets/javascripts/prism-coffeescript.js +7 -1
- data/vendor/assets/javascripts/prism-coffeescript.min.js +1 -1
- data/vendor/assets/javascripts/prism-core.js +82 -29
- data/vendor/assets/javascripts/prism-core.min.js +1 -1
- data/vendor/assets/javascripts/prism-csharp.js +8 -0
- data/vendor/assets/javascripts/prism-csharp.min.js +1 -1
- data/vendor/assets/javascripts/prism-groovy.js +15 -1
- data/vendor/assets/javascripts/prism-groovy.min.js +1 -1
- data/vendor/assets/javascripts/prism-haskell.js +4 -1
- data/vendor/assets/javascripts/prism-haskell.min.js +1 -1
- data/vendor/assets/javascripts/prism-java.js +9 -1
- data/vendor/assets/javascripts/prism-java.min.js +1 -1
- data/vendor/assets/javascripts/prism-javascript.js +4 -2
- data/vendor/assets/javascripts/prism-javascript.min.js +1 -1
- data/vendor/assets/javascripts/prism-kotlin.js +1 -7
- data/vendor/assets/javascripts/prism-kotlin.min.js +1 -1
- data/vendor/assets/javascripts/prism-lua.js +4 -1
- data/vendor/assets/javascripts/prism-lua.min.js +1 -1
- data/vendor/assets/javascripts/prism-powershell.js +5 -1
- data/vendor/assets/javascripts/prism-powershell.min.js +1 -1
- data/vendor/assets/javascripts/prism-protobuf.js +8 -0
- data/vendor/assets/javascripts/prism-protobuf.min.js +1 -0
- data/vendor/assets/javascripts/prism-python.js +4 -1
- data/vendor/assets/javascripts/prism-python.min.js +1 -1
- data/vendor/assets/javascripts/prism-sas.js +2 -2
- data/vendor/assets/javascripts/prism-sas.min.js +1 -1
- data/vendor/assets/javascripts/prism-scala.js +10 -1
- data/vendor/assets/javascripts/prism-scala.min.js +1 -1
- data/vendor/assets/javascripts/prism-swift.js +1 -0
- data/vendor/assets/javascripts/prism-swift.min.js +1 -1
- data/vendor/assets/javascripts/prism-yaml.js +1 -1
- data/vendor/assets/javascripts/prism-yaml.min.js +1 -1
- data/vendor/assets/javascripts/prism.js +115 -47
- data/vendor/assets/stylesheets/prism-coy.css +0 -1
- data/vendor/assets/stylesheets/prism-dark.css +0 -1
- data/vendor/assets/stylesheets/prism-funky.css +0 -1
- data/vendor/assets/stylesheets/prism-okaidia.css +0 -1
- data/vendor/assets/stylesheets/prism-solarizedlight.css +0 -1
- data/vendor/assets/stylesheets/prism-tomorrow.css +0 -1
- data/vendor/assets/stylesheets/prism-twilight.css +4 -5
- data/vendor/assets/stylesheets/prism.css +0 -1
- metadata +10 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6a69034ac807b3123816d059d8046e96e18ebf7
|
4
|
+
data.tar.gz: ba514c1e9f3542533fbc917002321e3dca0feb36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a5b43b0fdc0a328c1f0b5f291d79217c1265e015ee3df9051e76b97446617609ebde3a9939c681235187d23df3b498e0be40f9324a06133dc973228d5ee7277
|
7
|
+
data.tar.gz: 5fd381408897c85685d2714ac6838716c95e089662381140cff3f2f7bf9cf1c518e11e1e5695bbf0829174d0dd2a49b947436db418dc7425a20a22db0a7608a7
|
data/README.md
CHANGED
data/lib/highlighting/version.rb
CHANGED
@@ -44,10 +44,12 @@
|
|
44
44
|
{
|
45
45
|
pattern: /((?:^|[^<])<<\s*)(?:"|')?(\w+?)(?:"|')?\s*\r?\n(?:[\s\S])*?\r?\n\2/g,
|
46
46
|
lookbehind: true,
|
47
|
+
greedy: true,
|
47
48
|
inside: insideString
|
48
49
|
},
|
49
50
|
{
|
50
|
-
pattern: /("
|
51
|
+
pattern: /(["'])(?:\\\\|\\?[^\\])*?\1/g,
|
52
|
+
greedy: true,
|
51
53
|
inside: insideString
|
52
54
|
}
|
53
55
|
],
|
@@ -1 +1 @@
|
|
1
|
-
!function(e){var t={variable:[{pattern:/\$?\(\([\w\W]+?\)\)/,inside:{variable:[{pattern:/(^\$\(\([\w\W]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee]-?\d+)?)\b/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\([^)]+\)|`[^`]+`/,inside:{variable:/^\$\(|^`|\)$|`$/}},/\$(?:[a-z0-9_#\?\*!@]+|\{[^}]+\})/i]};e.languages.bash={shebang:{pattern:/^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,alias:"important"},comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\s*)(?:"|')?(\w+?)(?:"|')?\s*\r?\n(?:[\s\S])*?\r?\n\2/g,lookbehind:!0,inside:t},{pattern:/("
|
1
|
+
!function(e){var t={variable:[{pattern:/\$?\(\([\w\W]+?\)\)/,inside:{variable:[{pattern:/(^\$\(\([\w\W]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee]-?\d+)?)\b/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\([^)]+\)|`[^`]+`/,inside:{variable:/^\$\(|^`|\)$|`$/}},/\$(?:[a-z0-9_#\?\*!@]+|\{[^}]+\})/i]};e.languages.bash={shebang:{pattern:/^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,alias:"important"},comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\s*)(?:"|')?(\w+?)(?:"|')?\s*\r?\n(?:[\s\S])*?\r?\n\2/g,lookbehind:!0,greedy:!0,inside:t},{pattern:/(["'])(?:\\\\|\\?[^\\])*?\1/g,greedy:!0,inside:t}],variable:t.variable,"function":{pattern:/(^|\s|;|\||&)(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|\s|;|\||&)/,lookbehind:!0},keyword:{pattern:/(^|\s|;|\||&)(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|\s|;|\||&)/,lookbehind:!0},"boolean":{pattern:/(^|\s|;|\||&)(?:true|false)(?=$|\s|;|\||&)/,lookbehind:!0},operator:/&&?|\|\|?|==?|!=?|<<<?|>>|<=?|>=?|=~/,punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];]/};var a=t.variable[1].inside;a["function"]=e.languages.bash["function"],a.keyword=e.languages.bash.keyword,a.boolean=e.languages.bash.boolean,a.operator=e.languages.bash.operator,a.punctuation=e.languages.bash.punctuation}(Prism);
|
@@ -0,0 +1,50 @@
|
|
1
|
+
Prism.languages.bro = {
|
2
|
+
|
3
|
+
'comment': {
|
4
|
+
pattern: /(^|[^\\$])#.*/,
|
5
|
+
lookbehind: true,
|
6
|
+
inside: {
|
7
|
+
'italic': /\b(TODO|FIXME|XXX)\b/
|
8
|
+
}
|
9
|
+
},
|
10
|
+
|
11
|
+
'string': {
|
12
|
+
pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
13
|
+
greedy: true
|
14
|
+
},
|
15
|
+
|
16
|
+
'boolean': /\b(T|F)\b/,
|
17
|
+
|
18
|
+
'function': {
|
19
|
+
pattern: /(?:function|hook|event) [a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)?/,
|
20
|
+
inside: {
|
21
|
+
keyword: /^(?:function|hook|event)/
|
22
|
+
}
|
23
|
+
},
|
24
|
+
|
25
|
+
'variable': {
|
26
|
+
pattern: /(?:global|local) [a-zA-Z0-9_]+/i,
|
27
|
+
inside: {
|
28
|
+
keyword: /(?:global|local)/
|
29
|
+
}
|
30
|
+
},
|
31
|
+
|
32
|
+
'builtin':
|
33
|
+
/(@(load(-(sigs|plugin))?|unload|prefixes|ifn?def|else|(end)?if|DIR|FILENAME))|(&?(redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,
|
34
|
+
|
35
|
+
'constant': {
|
36
|
+
pattern: /const [a-zA-Z0-9_]+/i,
|
37
|
+
inside: {
|
38
|
+
keyword: /const/
|
39
|
+
}
|
40
|
+
},
|
41
|
+
|
42
|
+
'keyword':
|
43
|
+
/\b(break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,
|
44
|
+
|
45
|
+
'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,
|
46
|
+
|
47
|
+
'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,
|
48
|
+
|
49
|
+
'punctuation': /[{}[\];(),.:]/
|
50
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
Prism.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(TODO|FIXME|XXX)\b/}},string:{pattern:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"boolean":/\b(T|F)\b/,"function":{pattern:/(?:function|hook|event) [a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) [a-zA-Z0-9_]+/i,inside:{keyword:/(?:global|local)/}},builtin:/(@(load(-(sigs|plugin))?|unload|prefixes|ifn?def|else|(end)?if|DIR|FILENAME))|(&?(redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const [a-zA-Z0-9_]+/i,inside:{keyword:/const/}},keyword:/\b(break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,punctuation:/[{}[\];(),.:]/};
|
@@ -9,7 +9,10 @@ Prism.languages.clike = {
|
|
9
9
|
lookbehind: true
|
10
10
|
}
|
11
11
|
],
|
12
|
-
'string':
|
12
|
+
'string': {
|
13
|
+
pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
14
|
+
greedy: true
|
15
|
+
},
|
13
16
|
'class-name': {
|
14
17
|
pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,
|
15
18
|
lookbehind: true,
|
@@ -1 +1 @@
|
|
1
|
-
Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};
|
1
|
+
Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};
|
@@ -12,11 +12,15 @@ Prism.languages.coffeescript = Prism.languages.extend('javascript', {
|
|
12
12
|
'string': [
|
13
13
|
|
14
14
|
// Strings are multiline
|
15
|
-
|
15
|
+
{
|
16
|
+
pattern: /'(?:\\?[^\\])*?'/,
|
17
|
+
greedy: true,
|
18
|
+
},
|
16
19
|
|
17
20
|
{
|
18
21
|
// Strings are multiline
|
19
22
|
pattern: /"(?:\\?[^\\])*?"/,
|
23
|
+
greedy: true,
|
20
24
|
inside: {
|
21
25
|
'interpolation': interpolation
|
22
26
|
}
|
@@ -62,10 +66,12 @@ Prism.languages.insertBefore('coffeescript', 'string', {
|
|
62
66
|
'multiline-string': [
|
63
67
|
{
|
64
68
|
pattern: /'''[\s\S]*?'''/,
|
69
|
+
greedy: true,
|
65
70
|
alias: 'string'
|
66
71
|
},
|
67
72
|
{
|
68
73
|
pattern: /"""[\s\S]*?"""/,
|
74
|
+
greedy: true,
|
69
75
|
alias: 'string',
|
70
76
|
inside: {
|
71
77
|
interpolation: interpolation
|
@@ -1 +1 @@
|
|
1
|
-
!function(e){var
|
1
|
+
!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\?[^\\])*?'/,greedy:!0},{pattern:/"(?:\\?[^\\])*?"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\?[\s\S])*?`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/})}(Prism);
|
@@ -89,19 +89,19 @@ var _ = _self.Prism = {
|
|
89
89
|
insertBefore: function (inside, before, insert, root) {
|
90
90
|
root = root || _.languages;
|
91
91
|
var grammar = root[inside];
|
92
|
-
|
92
|
+
|
93
93
|
if (arguments.length == 2) {
|
94
94
|
insert = arguments[1];
|
95
|
-
|
95
|
+
|
96
96
|
for (var newToken in insert) {
|
97
97
|
if (insert.hasOwnProperty(newToken)) {
|
98
98
|
grammar[newToken] = insert[newToken];
|
99
99
|
}
|
100
100
|
}
|
101
|
-
|
101
|
+
|
102
102
|
return grammar;
|
103
103
|
}
|
104
|
-
|
104
|
+
|
105
105
|
var ret = {};
|
106
106
|
|
107
107
|
for (var token in grammar) {
|
@@ -121,7 +121,7 @@ var _ = _self.Prism = {
|
|
121
121
|
ret[token] = grammar[token];
|
122
122
|
}
|
123
123
|
}
|
124
|
-
|
124
|
+
|
125
125
|
// Update references in other language definitions
|
126
126
|
_.languages.DFS(_.languages, function(key, value) {
|
127
127
|
if (value === root[inside] && key != inside) {
|
@@ -152,12 +152,19 @@ var _ = _self.Prism = {
|
|
152
152
|
}
|
153
153
|
},
|
154
154
|
plugins: {},
|
155
|
-
|
155
|
+
|
156
156
|
highlightAll: function(async, callback) {
|
157
|
-
var
|
157
|
+
var env = {
|
158
|
+
callback: callback,
|
159
|
+
selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
|
160
|
+
};
|
161
|
+
|
162
|
+
_.hooks.run("before-highlightall", env);
|
163
|
+
|
164
|
+
var elements = env.elements || document.querySelectorAll(env.selector);
|
158
165
|
|
159
166
|
for (var i=0, element; element = elements[i++];) {
|
160
|
-
_.highlightElement(element, async === true, callback);
|
167
|
+
_.highlightElement(element, async === true, env.callback);
|
161
168
|
}
|
162
169
|
},
|
163
170
|
|
@@ -193,7 +200,9 @@ var _ = _self.Prism = {
|
|
193
200
|
code: code
|
194
201
|
};
|
195
202
|
|
196
|
-
|
203
|
+
_.hooks.run('before-sanity-check', env);
|
204
|
+
|
205
|
+
if (!env.code || !env.grammar) {
|
197
206
|
_.hooks.run('complete', env);
|
198
207
|
return;
|
199
208
|
}
|
@@ -267,6 +276,7 @@ var _ = _self.Prism = {
|
|
267
276
|
var pattern = patterns[j],
|
268
277
|
inside = pattern.inside,
|
269
278
|
lookbehind = !!pattern.lookbehind,
|
279
|
+
greedy = !!pattern.greedy,
|
270
280
|
lookbehindLength = 0,
|
271
281
|
alias = pattern.alias;
|
272
282
|
|
@@ -287,36 +297,76 @@ var _ = _self.Prism = {
|
|
287
297
|
|
288
298
|
pattern.lastIndex = 0;
|
289
299
|
|
290
|
-
var match = pattern.exec(str)
|
300
|
+
var match = pattern.exec(str),
|
301
|
+
delNum = 1;
|
291
302
|
|
292
|
-
|
293
|
-
|
294
|
-
|
303
|
+
// Greedy patterns can override/remove up to two previously matched tokens
|
304
|
+
if (!match && greedy && i != strarr.length - 1) {
|
305
|
+
// Reconstruct the original text using the next two tokens
|
306
|
+
var nextToken = strarr[i + 1].matchedStr || strarr[i + 1],
|
307
|
+
combStr = str + nextToken;
|
308
|
+
|
309
|
+
if (i < strarr.length - 2) {
|
310
|
+
combStr += strarr[i + 2].matchedStr || strarr[i + 2];
|
295
311
|
}
|
296
312
|
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
313
|
+
// Try the pattern again on the reconstructed text
|
314
|
+
pattern.lastIndex = 0;
|
315
|
+
match = pattern.exec(combStr);
|
316
|
+
if (!match) {
|
317
|
+
continue;
|
318
|
+
}
|
303
319
|
|
304
|
-
var
|
320
|
+
var from = match.index + (lookbehind ? match[1].length : 0);
|
321
|
+
// To be a valid candidate, the new match has to start inside of str
|
322
|
+
if (from >= str.length) {
|
323
|
+
continue;
|
324
|
+
}
|
325
|
+
var to = match.index + match[0].length,
|
326
|
+
len = str.length + nextToken.length;
|
305
327
|
|
306
|
-
|
307
|
-
|
328
|
+
// Number of tokens to delete and replace with the new match
|
329
|
+
delNum = 3;
|
330
|
+
|
331
|
+
if (to <= len) {
|
332
|
+
if (strarr[i + 1].greedy) {
|
333
|
+
continue;
|
334
|
+
}
|
335
|
+
delNum = 2;
|
336
|
+
combStr = combStr.slice(0, len);
|
308
337
|
}
|
338
|
+
str = combStr;
|
339
|
+
}
|
309
340
|
|
310
|
-
|
341
|
+
if (!match) {
|
342
|
+
continue;
|
343
|
+
}
|
311
344
|
|
312
|
-
|
345
|
+
if(lookbehind) {
|
346
|
+
lookbehindLength = match[1].length;
|
347
|
+
}
|
313
348
|
|
314
|
-
|
315
|
-
|
316
|
-
|
349
|
+
var from = match.index + lookbehindLength,
|
350
|
+
match = match[0].slice(lookbehindLength),
|
351
|
+
to = from + match.length,
|
352
|
+
before = str.slice(0, from),
|
353
|
+
after = str.slice(to);
|
317
354
|
|
318
|
-
|
355
|
+
var args = [i, delNum];
|
356
|
+
|
357
|
+
if (before) {
|
358
|
+
args.push(before);
|
359
|
+
}
|
360
|
+
|
361
|
+
var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);
|
362
|
+
|
363
|
+
args.push(wrapped);
|
364
|
+
|
365
|
+
if (after) {
|
366
|
+
args.push(after);
|
319
367
|
}
|
368
|
+
|
369
|
+
Array.prototype.splice.apply(strarr, args);
|
320
370
|
}
|
321
371
|
}
|
322
372
|
}
|
@@ -349,10 +399,13 @@ var _ = _self.Prism = {
|
|
349
399
|
}
|
350
400
|
};
|
351
401
|
|
352
|
-
var Token = _.Token = function(type, content, alias) {
|
402
|
+
var Token = _.Token = function(type, content, alias, matchedStr, greedy) {
|
353
403
|
this.type = type;
|
354
404
|
this.content = content;
|
355
405
|
this.alias = alias;
|
406
|
+
// Copy of the full string this token was created from
|
407
|
+
this.matchedStr = matchedStr || null;
|
408
|
+
this.greedy = !!greedy;
|
356
409
|
};
|
357
410
|
|
358
411
|
Token.stringify = function(o, language, parent) {
|
@@ -1 +1 @@
|
|
1
|
-
var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function(e){var t=n.util.type(e);switch(t){case"Object":var a={};for(var r in e)e.hasOwnProperty(r)&&(a[r]=n.util.clone(e[r]));return a;case"Array":return e.map&&e.map(function(e){return n.util.clone(e)})}return e}},languages:{extend:function(e,t){var a=n.util.clone(n.languages[e]);for(var r in t)a[r]=t[r];return a},insertBefore:function(e,t,a,r){r=r||n.languages;var
|
1
|
+
var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function(e){var t=n.util.type(e);switch(t){case"Object":var a={};for(var r in e)e.hasOwnProperty(r)&&(a[r]=n.util.clone(e[r]));return a;case"Array":return e.map&&e.map(function(e){return n.util.clone(e)})}return e}},languages:{extend:function(e,t){var a=n.util.clone(n.languages[e]);for(var r in t)a[r]=t[r];return a},insertBefore:function(e,t,a,r){r=r||n.languages;var l=r[e];if(2==arguments.length){a=arguments[1];for(var i in a)a.hasOwnProperty(i)&&(l[i]=a[i]);return l}var o={};for(var s in l)if(l.hasOwnProperty(s)){if(s==t)for(var i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);o[s]=l[s]}return n.languages.DFS(n.languages,function(t,n){n===r[e]&&t!=e&&(this[t]=o)}),r[e]=o},DFS:function(e,t,a,r){r=r||{};for(var l in e)e.hasOwnProperty(l)&&(t.call(e,l,e[l],a||l),"Object"!==n.util.type(e[l])||r[n.util.objId(e[l])]?"Array"!==n.util.type(e[l])||r[n.util.objId(e[l])]||(r[n.util.objId(e[l])]=!0,n.languages.DFS(e[l],t,l,r)):(r[n.util.objId(e[l])]=!0,n.languages.DFS(e[l],t,null,r)))}},plugins:{},highlightAll:function(e,t){var a={callback:t,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};n.hooks.run("before-highlightall",a);for(var r,l=a.elements||document.querySelectorAll(a.selector),i=0;r=l[i++];)n.highlightElement(r,e===!0,a.callback)},highlightElement:function(t,a,r){for(var l,i,o=t;o&&!e.test(o.className);)o=o.parentNode;o&&(l=(o.className.match(e)||[,""])[1],i=n.languages[l]),t.className=t.className.replace(e,"").replace(/\s+/g," ")+" language-"+l,o=t.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,"").replace(/\s+/g," ")+" language-"+l);var s=t.textContent,u={element:t,language:l,grammar:i,code:s};if(n.hooks.run("before-sanity-check",u),!u.code||!u.grammar)return n.hooks.run("complete",u),void 0;if(n.hooks.run("before-highlight",u),a&&_self.Worker){var c=new Worker(n.filename);c.onmessage=function(e){u.highlightedCode=e.data,n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,r&&r.call(u.element),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},c.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=n.highlight(u.code,u.grammar,u.language),n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,r&&r.call(t),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},highlight:function(e,t,r){var l=n.tokenize(e,t);return a.stringify(n.util.encode(l),r)},tokenize:function(e,t){var a=n.Token,r=[e],l=t.rest;if(l){for(var i in l)t[i]=l[i];delete t.rest}e:for(var i in t)if(t.hasOwnProperty(i)&&t[i]){var o=t[i];o="Array"===n.util.type(o)?o:[o];for(var s=0;s<o.length;++s){var u=o[s],c=u.inside,g=!!u.lookbehind,h=!!u.greedy,f=0,d=u.alias;u=u.pattern||u;for(var p=0;p<r.length;p++){var m=r[p];if(r.length>e.length)break e;if(!(m instanceof a)){u.lastIndex=0;var y=u.exec(m),v=1;if(!y&&h&&p!=r.length-1){var b=r[p+1].matchedStr||r[p+1],k=m+b;if(p<r.length-2&&(k+=r[p+2].matchedStr||r[p+2]),u.lastIndex=0,y=u.exec(k),!y)continue;var w=y.index+(g?y[1].length:0);if(w>=m.length)continue;var _=y.index+y[0].length,P=m.length+b.length;if(v=3,P>=_){if(r[p+1].greedy)continue;v=2,k=k.slice(0,P)}m=k}if(y){g&&(f=y[1].length);var w=y.index+f,y=y[0].slice(f),_=w+y.length,S=m.slice(0,w),O=m.slice(_),j=[p,v];S&&j.push(S);var A=new a(i,c?n.tokenize(y,c):y,d,y,h);j.push(A),O&&j.push(O),Array.prototype.splice.apply(r,j)}}}}}return r},hooks:{all:{},add:function(e,t){var a=n.hooks.all;a[e]=a[e]||[],a[e].push(t)},run:function(e,t){var a=n.hooks.all[e];if(a&&a.length)for(var r,l=0;r=a[l++];)r(t)}}},a=n.Token=function(e,t,n,a,r){this.type=e,this.content=t,this.alias=n,this.matchedStr=a||null,this.greedy=!!r};if(a.stringify=function(e,t,r){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return a.stringify(n,t,e)}).join("");var l={type:e.type,content:a.stringify(e.content,t,r),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:r};if("comment"==l.type&&(l.attributes.spellcheck="true"),e.alias){var i="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run("wrap",l);var o="";for(var s in l.attributes)o+=(o?" ":"")+s+'="'+(l.attributes[s]||"")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'" '+o+">"+l.content+"</"+l.tag+">"},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var t=JSON.parse(e.data),a=t.language,r=t.code,l=t.immediateClose;_self.postMessage(n.highlight(r,n.languages[a],a)),l&&_self.close()},!1),_self.Prism):_self.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return r&&(n.filename=r.src,document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",n.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
|
@@ -8,6 +8,14 @@ Prism.languages.csharp = Prism.languages.extend('clike', {
|
|
8
8
|
});
|
9
9
|
|
10
10
|
Prism.languages.insertBefore('csharp', 'keyword', {
|
11
|
+
'generic-method': {
|
12
|
+
pattern: /[a-z0-9_]+\s*<[^>\r\n]+?>\s*(?=\()/i,
|
13
|
+
alias: 'function',
|
14
|
+
inside: {
|
15
|
+
keyword: Prism.languages.csharp.keyword,
|
16
|
+
punctuation: /[<>(),.:]/
|
17
|
+
}
|
18
|
+
},
|
11
19
|
'preprocessor': {
|
12
20
|
pattern: /(^\s*)#.*/m,
|
13
21
|
lookbehind: true,
|
@@ -1 +1 @@
|
|
1
|
-
Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,/("|')(\\?.)*?\1/],number:/\b-?(0x[\da-f]+|\d*\.?\d+f?)\b/i}),Prism.languages.insertBefore("csharp","keyword",{preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});
|
1
|
+
Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,/("|')(\\?.)*?\1/],number:/\b-?(0x[\da-f]+|\d*\.?\d+f?)\b/i}),Prism.languages.insertBefore("csharp","keyword",{"generic-method":{pattern:/[a-z0-9_]+\s*<[^>\r\n]+?>\s*(?=\()/i,alias:"function",inside:{keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});
|
@@ -1,6 +1,15 @@
|
|
1
1
|
Prism.languages.groovy = Prism.languages.extend('clike', {
|
2
2
|
'keyword': /\b(as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,
|
3
|
-
'string':
|
3
|
+
'string': [
|
4
|
+
{
|
5
|
+
pattern: /("""|''')[\W\w]*?\1|(\$\/)(\$\/\$|[\W\w])*?\/\$/,
|
6
|
+
greedy: true
|
7
|
+
},
|
8
|
+
{
|
9
|
+
pattern: /("|'|\/)(?:\\?.)*?\1/,
|
10
|
+
greedy: true
|
11
|
+
},
|
12
|
+
],
|
4
13
|
'number': /\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,
|
5
14
|
'operator': {
|
6
15
|
pattern: /(^|[^.])(~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,
|
@@ -22,6 +31,7 @@ Prism.languages.insertBefore('groovy', 'punctuation', {
|
|
22
31
|
|
23
32
|
Prism.languages.insertBefore('groovy', 'function', {
|
24
33
|
'annotation': {
|
34
|
+
alias: 'punctuation',
|
25
35
|
pattern: /(^|[^.])@\w+/,
|
26
36
|
lookbehind: true
|
27
37
|
}
|
@@ -37,6 +47,10 @@ Prism.hooks.add('wrap', function(env) {
|
|
37
47
|
if (delimiter === '$') {
|
38
48
|
pattern = /([^\$])(\$(\{.*?\}|[\w\.]+))/;
|
39
49
|
}
|
50
|
+
|
51
|
+
// To prevent double HTML-ecoding we have to decode env.content first
|
52
|
+
env.content = env.content.replace(/&/g, '&').replace(/</g, '<');
|
53
|
+
|
40
54
|
env.content = Prism.highlight(env.content, {
|
41
55
|
'expression': {
|
42
56
|
pattern: pattern,
|
@@ -1 +1 @@
|
|
1
|
-
Prism.languages.groovy=Prism.languages.extend("clike",{keyword:/\b(as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,string:/("""|''')[\W\w]*?\1|(
|
1
|
+
Prism.languages.groovy=Prism.languages.extend("clike",{keyword:/\b(as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,string:[{pattern:/("""|''')[\W\w]*?\1|(\$\/)(\$\/\$|[\W\w])*?\/\$/,greedy:!0},{pattern:/("|'|\/)(?:\\?.)*?\1/,greedy:!0}],number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),Prism.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),Prism.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(setup|given|when|then|and|cleanup|expect|where):/}),Prism.languages.insertBefore("groovy","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),Prism.hooks.add("wrap",function(e){if("groovy"===e.language&&"string"===e.type){var t=e.content[0];if("'"!=t){var n=/([^\\])(\$(\{.*?\}|[\w\.]+))/;"$"===t&&(n=/([^\$])(\$(\{.*?\}|[\w\.]+))/),e.content=e.content.replace(/&/g,"&").replace(/</g,"<"),e.content=Prism.highlight(e.content,{expression:{pattern:n,lookbehind:!0,inside:Prism.languages.groovy}}),e.classes.push("/"===t?"regex":"gstring")}}});
|
@@ -4,7 +4,10 @@ Prism.languages.haskell= {
|
|
4
4
|
lookbehind: true
|
5
5
|
},
|
6
6
|
'char': /'([^\\']|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,
|
7
|
-
'string':
|
7
|
+
'string': {
|
8
|
+
pattern: /"([^\\"]|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,
|
9
|
+
greedy: true
|
10
|
+
},
|
8
11
|
'keyword' : /\b(case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,
|
9
12
|
'import_statement' : {
|
10
13
|
// The imported or hidden names are not included in this import
|
@@ -1 +1 @@
|
|
1
|
-
Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\w\W]*?-})/m,lookbehind:!0},"char":/'([^\\']|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:/"([^\\"]|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,keyword:/\b(case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,import_statement:{pattern:/(\r?\n|\r|^)\s*import\s+(qualified\s+)?([A-Z][_a-zA-Z0-9']*)(\.[A-Z][_a-zA-Z0-9']*)*(\s+as\s+([A-Z][_a-zA-Z0-9']*)(\.[A-Z][_a-zA-Z0-9']*)*)?(\s+hiding\b)?/m,inside:{keyword:/\b(import|qualified|as|hiding)\b/}},builtin:/\b(abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(\d+(\.\d+)?(e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*`/,hvariable:/\b([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*\b/,constant:/\b([A-Z][_a-zA-Z0-9']*\.)*[A-Z][_a-zA-Z0-9']*\b/,punctuation:/[{}[\];(),.:]/};
|
1
|
+
Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\w\W]*?-})/m,lookbehind:!0},"char":/'([^\\']|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:{pattern:/"([^\\"]|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,greedy:!0},keyword:/\b(case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,import_statement:{pattern:/(\r?\n|\r|^)\s*import\s+(qualified\s+)?([A-Z][_a-zA-Z0-9']*)(\.[A-Z][_a-zA-Z0-9']*)*(\s+as\s+([A-Z][_a-zA-Z0-9']*)(\.[A-Z][_a-zA-Z0-9']*)*)?(\s+hiding\b)?/m,inside:{keyword:/\b(import|qualified|as|hiding)\b/}},builtin:/\b(abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(\d+(\.\d+)?(e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*`/,hvariable:/\b([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*\b/,constant:/\b([A-Z][_a-zA-Z0-9']*\.)*[A-Z][_a-zA-Z0-9']*\b/,punctuation:/[{}[\];(),.:]/};
|
@@ -5,4 +5,12 @@ Prism.languages.java = Prism.languages.extend('clike', {
|
|
5
5
|
pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,
|
6
6
|
lookbehind: true
|
7
7
|
}
|
8
|
-
});
|
8
|
+
});
|
9
|
+
|
10
|
+
Prism.languages.insertBefore('java','function', {
|
11
|
+
'annotation': {
|
12
|
+
alias: 'punctuation',
|
13
|
+
pattern: /(^|[^.])@\w+/,
|
14
|
+
lookbehind: true
|
15
|
+
}
|
16
|
+
});
|