main
Last change
on this file since d24f17c was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago |
Initial commit
|
-
Property mode
set to
100644
|
File size:
2.4 KB
|
Line | |
---|
1 | (function (Prism) {
|
---|
2 | var variable = /%%?[~:\w]+%?|!\S+!/;
|
---|
3 | var parameter = {
|
---|
4 | pattern: /\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,
|
---|
5 | alias: 'attr-name',
|
---|
6 | inside: {
|
---|
7 | 'punctuation': /:/
|
---|
8 | }
|
---|
9 | };
|
---|
10 | var string = /"(?:[\\"]"|[^"])*"(?!")/;
|
---|
11 | var number = /(?:\b|-)\d+\b/;
|
---|
12 |
|
---|
13 | Prism.languages.batch = {
|
---|
14 | 'comment': [
|
---|
15 | /^::.*/m,
|
---|
16 | {
|
---|
17 | pattern: /((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
|
---|
18 | lookbehind: true
|
---|
19 | }
|
---|
20 | ],
|
---|
21 | 'label': {
|
---|
22 | pattern: /^:.*/m,
|
---|
23 | alias: 'property'
|
---|
24 | },
|
---|
25 | 'command': [
|
---|
26 | {
|
---|
27 | // FOR command
|
---|
28 | pattern: /((?:^|[&(])[ \t]*)for(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* \S+ in \([^)]+\) do/im,
|
---|
29 | lookbehind: true,
|
---|
30 | inside: {
|
---|
31 | 'keyword': /\b(?:do|in)\b|^for\b/i,
|
---|
32 | 'string': string,
|
---|
33 | 'parameter': parameter,
|
---|
34 | 'variable': variable,
|
---|
35 | 'number': number,
|
---|
36 | 'punctuation': /[()',]/
|
---|
37 | }
|
---|
38 | },
|
---|
39 | {
|
---|
40 | // IF command
|
---|
41 | pattern: /((?:^|[&(])[ \t]*)if(?: \/[a-z?](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|(?!")(?:(?!==)\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:"[^"]*"|[^\s"]\S*))/im,
|
---|
42 | lookbehind: true,
|
---|
43 | inside: {
|
---|
44 | 'keyword': /\b(?:cmdextversion|defined|errorlevel|exist|not)\b|^if\b/i,
|
---|
45 | 'string': string,
|
---|
46 | 'parameter': parameter,
|
---|
47 | 'variable': variable,
|
---|
48 | 'number': number,
|
---|
49 | 'operator': /\^|==|\b(?:equ|geq|gtr|leq|lss|neq)\b/i
|
---|
50 | }
|
---|
51 | },
|
---|
52 | {
|
---|
53 | // ELSE command
|
---|
54 | pattern: /((?:^|[&()])[ \t]*)else\b/im,
|
---|
55 | lookbehind: true,
|
---|
56 | inside: {
|
---|
57 | 'keyword': /^else\b/i
|
---|
58 | }
|
---|
59 | },
|
---|
60 | {
|
---|
61 | // SET command
|
---|
62 | pattern: /((?:^|[&(])[ \t]*)set(?: \/[a-z](?:[ :](?:"[^"]*"|[^\s"/]\S*))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,
|
---|
63 | lookbehind: true,
|
---|
64 | inside: {
|
---|
65 | 'keyword': /^set\b/i,
|
---|
66 | 'string': string,
|
---|
67 | 'parameter': parameter,
|
---|
68 | 'variable': [
|
---|
69 | variable,
|
---|
70 | /\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/
|
---|
71 | ],
|
---|
72 | 'number': number,
|
---|
73 | 'operator': /[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,
|
---|
74 | 'punctuation': /[()',]/
|
---|
75 | }
|
---|
76 | },
|
---|
77 | {
|
---|
78 | // Other commands
|
---|
79 | pattern: /((?:^|[&(])[ \t]*@?)\w+\b(?:"(?:[\\"]"|[^"])*"(?!")|[^"^&)\r\n]|\^(?:\r\n|[\s\S]))*/m,
|
---|
80 | lookbehind: true,
|
---|
81 | inside: {
|
---|
82 | 'keyword': /^\w+\b/,
|
---|
83 | 'string': string,
|
---|
84 | 'parameter': parameter,
|
---|
85 | 'label': {
|
---|
86 | pattern: /(^\s*):\S+/m,
|
---|
87 | lookbehind: true,
|
---|
88 | alias: 'property'
|
---|
89 | },
|
---|
90 | 'variable': variable,
|
---|
91 | 'number': number,
|
---|
92 | 'operator': /\^/
|
---|
93 | }
|
---|
94 | }
|
---|
95 | ],
|
---|
96 | 'operator': /[&@]/,
|
---|
97 | 'punctuation': /[()']/
|
---|
98 | };
|
---|
99 | }(Prism));
|
---|
Note:
See
TracBrowser
for help on using the repository browser.