1 | (function (Prism) {
|
2 |
|
3 | Prism.languages.diff = {
|
4 | 'coord': [
|
5 |
|
6 | /^(?:\*{3}|-{3}|\+{3}).*$/m,
|
7 |
|
8 | /^@@.*@@$/m,
|
9 |
|
10 | /^\d+.*$/m
|
11 | ]
|
12 |
|
13 |
|
14 | };
|
15 |
|
16 | |
17 |
|
18 |
|
19 |
|
20 |
|
21 | var PREFIXES = {
|
22 | 'deleted-sign': '-',
|
23 | 'deleted-arrow': '<',
|
24 | 'inserted-sign': '+',
|
25 | 'inserted-arrow': '>',
|
26 | 'unchanged': ' ',
|
27 | 'diff': '!',
|
28 | };
|
29 |
|
30 |
|
31 | Object.keys(PREFIXES).forEach(function (name) {
|
32 | var prefix = PREFIXES[name];
|
33 |
|
34 | var alias = [];
|
35 | if (!/^\w+$/.test(name)) {
|
36 | alias.push(/\w+/.exec(name)[0]);
|
37 | }
|
38 | if (name === "diff") {
|
39 | alias.push("bold");
|
40 | }
|
41 |
|
42 | Prism.languages.diff[name] = {
|
43 | pattern: RegExp('^(?:[' + prefix + '].*(?:\r\n?|\n|(?![\\s\\S])))+', 'm'),
|
44 | alias: alias,
|
45 | inside: {
|
46 | 'line': {
|
47 | pattern: /(.)(?=[\s\S]).*(?:\r\n?|\n)?/,
|
48 | lookbehind: true
|
49 | },
|
50 | 'prefix': {
|
51 | pattern: /[\s\S]/,
|
52 | alias: /\w+/.exec(name)[0]
|
53 | }
|
54 | }
|
55 | };
|
56 |
|
57 | });
|
58 |
|
59 |
|
60 | Object.defineProperty(Prism.languages.diff, 'PREFIXES', {
|
61 | value: PREFIXES
|
62 | });
|
63 |
|
64 | }(Prism));
|