OLD | NEW |
(Empty) | |
| 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+ in \([^)]+\) do/im, |
| 29 lookbehind: true, |
| 30 inside: { |
| 31 'keyword': /^for\b|\b(?:in|do)\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+))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|e
xist \S+|(?:"[^"]*"|\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|\S+))/im
, |
| 42 lookbehind: true, |
| 43 inside: { |
| 44 'keyword': /^if\b|\b(?:not|cmdextversion
|defined|errorlevel|exist)\b/i, |
| 45 'string': string, |
| 46 'parameter': parameter, |
| 47 'variable': variable, |
| 48 'number': number, |
| 49 'operator': /\^|==|\b(?:equ|neq|lss|leq|
gtr|geq)\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+))?)* (?:[^^&)\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]))*/im, |
| 80 lookbehind: true, |
| 81 inside: { |
| 82 'keyword': /^\w+\b/i, |
| 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)); |
OLD | NEW |