1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0">
4 <dict>
5 <key>uuid</key>
6 <string>E07EC438-7B75-4437-8AA1-DA94C1E6EACC</string>
7 <key>patterns</key>
8 <array>
9 <dict>
10 <key>name</key>
11 <string>keyword.command.dosbatch</string>
12 <key>match</key>
13 <string>\b(?i)(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\b</string>
14 </dict>
15 <dict>
16 <key>name</key>
17 <string>keyword.control.statement.dosbatch</string>
18 <key>match</key>
19 <string>\b(?i)(?:goto|call|exit)\b</string>
20 </dict>
21 <dict>
22 <key>name</key>
23 <string>keyword.control.conditional.if.dosbatch</string>
24 <key>match</key>
25 <string>\b(?i)if\s+((not)\s+)(exist|defined|errorlevel|cmdextversion)\b</string>
26 </dict>
27 <dict>
28 <key>name</key>
29 <string>keyword.control.conditional.dosbatch</string>
30 <key>match</key>
31 <string>\b(?i)(?:if|else)\b</string>
32 </dict>
33 <dict>
34 <key>name</key>
35 <string>keyword.control.repeat.dosbatch</string>
36 <key>match</key>
37 <string>\b(?i)for\b</string>
38 </dict>
39 <dict>
40 <key>name</key>
41 <string>keyword.operator.dosbatch</string>
42 <key>match</key>
43 <string>\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\b</string>
44 </dict>
45 <dict>
46 <key>name</key>
47 <string>comment.line.rem.dosbatch</string>
48 <key>match</key>
49 <string>\b(?i)rem(?:$|\s.*$)</string>
50 </dict>
51 <dict>
52 <key>name</key>
53 <string>comment.line.colons.dosbatch</string>
54 <key>match</key>
55 <string>\s*:\s*:.*$</string>
56 </dict>
57 <dict>
58 <key>captures</key>
59 <dict>
60 <key>1</key>
61 <dict>
62 <key>name</key>
63 <string>variable.parameter.function.begin.shell</string>
64 </dict>
65 </dict>
66 <key>name</key>
67 <string>variable.parameter.function.dosbatch</string>
68 <key>match</key>
69 <string>(?i)(%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?\d</string>
70 </dict>
71 <dict>
72 <key>captures</key>
73 <dict>
74 <key>1</key>
75 <dict>
76 <key>name</key>
77 <string>variable.parameter.loop.begin.shell</string>
78 </dict>
79 </dict>
80 <key>name</key>
81 <string>variable.parameter.loop.dosbatch</string>
82 <key>match</key>
83 <string>(?i)(%%)(~(?:f|d|p|n|x|s|a|t|z|\$[^:]*:)*)?[a-z]</string>
84 </dict>
85 <dict>
86 <key>captures</key>
87 <dict>
88 <key>1</key>
89 <dict>
90 <key>name</key>
91 <string>variable.other.parsetime.begin.shell</string>
92 </dict>
93 <key>2</key>
94 <dict>
95 <key>name</key>
96 <string>variable.other.parsetime.end.shell</string>
97 </dict>
98 </dict>
99 <key>name</key>
100 <string>variable.other.parsetime.dosbatch</string>
101 <key>match</key>
102 <string>(%)[^%]+(%)</string>
103 </dict>
104 <dict>
105 <key>captures</key>
106 <dict>
107 <key>1</key>
108 <dict>
109 <key>name</key>
110 <string>variable.other.delayed.begin.shell</string>
111 </dict>
112 <key>2</key>
113 <dict>
114 <key>name</key>
115 <string>variable.other.delayed.end.shell</string>
116 </dict>
117 </dict>
118 <key>name</key>
119 <string>variable.other.delayed.dosbatch</string>
120 <key>match</key>
121 <string>(!)[^!]+(!)</string>
122 </dict>
123 <dict>
124 <key>begin</key>
125 <string>"</string>
126 <key>endCaptures</key>
127 <dict>
128 <key>0</key>
129 <dict>
130 <key>name</key>
131 <string>punctuation.definition.string.end.shell</string>
132 </dict>
133 </dict>
134 <key>beginCaptures</key>
135 <dict>
136 <key>0</key>
137 <dict>
138 <key>name</key>
139 <string>punctuation.definition.string.begin.shell</string>
140 </dict>
141 </dict>
142 <key>name</key>
143 <string>string.quoted.double.dosbatch</string>
144 <key>end</key>
145 <string>"|$</string>
146 </dict>
147 <dict>
148 <key>name</key>
149 <string>keyword.operator.pipe.dosbatch</string>
150 <key>match</key>
151 <string>[|]</string>
152 </dict>
153 <dict>
154 <key>name</key>
155 <string>keyword.operator.redirect.shell</string>
156 <key>match</key>
157 <string>&amp;&gt;|\d*&gt;&amp;\d*|\d*(&gt;&gt;|&gt;|&lt;)|\d*&lt;&amp;|\d*&lt;&gt;</string>
158 </dict>
159 </array>
160 <key>name</key>
161 <string>Batch File</string>
162 <key>scopeName</key>
163 <string>source.dosbatch</string>
164 <key>fileTypes</key>
165 <array>
166 <string>bat</string>
167 </array>
168 </dict>
169</plist>