-
Notifications
You must be signed in to change notification settings - Fork 28
/
plsql.tmLanguage
373 lines (373 loc) · 15.9 KB
/
plsql.tmLanguage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>sql</string>
<string>ddl</string>
<string>dml</string>
<string>pkh</string>
<string>pks</string>
<string>pkb</string>
<string>pck</string>
<string>pls</string>
<string>plb</string>
</array>
<key>foldingStartMarker</key>
<string>(?i)^\s*(begin|if|loop)\b</string>
<key>foldingStopMarker</key>
<string>(?i)^\s*(end)\b</string>
<key>keyEquivalent</key>
<string>^~S</string>
<key>name</key>
<string>PL/SQL (Oracle)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>/\*</string>
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.oracle</string>
</dict>
<dict>
<key>match</key>
<string>--.*$</string>
<key>name</key>
<string>comment.line.double-dash.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)(?:^\s*)rem(?:\s+.*$)</string>
<key>name</key>
<string>comment.line.sqlplus.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)(?:^\s*)prompt(?:\s+.*$)</string>
<key>name</key>
<string>comment.line.sqlplus-prompt.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)^\s*(create)(\s+or\s+replace)?\s+</string>
<key>name</key>
<string>meta.create.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.type.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)\b(package)(\s+body)?\s+(\S+)</string>
<key>name</key>
<string>meta.package.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)\b(type)\s+"([^"]+)"</string>
<key>name</key>
<string>meta.type.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)^\s*(function|procedure)\s+"?([-a-z0-9_]+)"?</string>
<key>name</key>
<string>meta.procedure.oracle</string>
</dict>
<dict>
<key>match</key>
<string>[!<>:]?=|<>|<|>|\+|(?<!\.)\*|-|(?<!^)/|\|\|</string>
<key>name</key>
<string>keyword.operator.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(true|false|null|is\s+(not\s+)?null)\b</string>
<key>name</key>
<string>constant.language.oracle</string>
</dict>
<dict>
<key>match</key>
<string>\b\d+(\.\d+)?\b</string>
<key>name</key>
<string>constant.numeric.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(if|elsif|else|end\s+if|loop|end\s+loop|for|while|case|end\s+case|continue|return|goto)\b</string>
<key>name</key>
<string>keyword.control.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(or|and|not|like)\b</string>
<key>name</key>
<!--<string>keyword.operator.oracle</string> => No color for some themes (light+) -->
<string>keyword.other.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\b</string>
<key>name</key>
<string>support.function.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(sql|sqlcode)\b</string>
<key>name</key>
<string>variable.language.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\b</string>
<key>name</key>
<string>support.function.builtin.char.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\b</string>
<key>name</key>
<string>support.function.builtin.date.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(avg|count|sum|max|min|median|corr|corr_\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\b</string>
<key>name</key>
<string>support.function.builtin.aggregate.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\s+)?user|userenv|cardinality|(bulk\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\s+immediate|alter\s+session)\b</string>
<key>name</key>
<string>support.function.builtin.advanced.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\b</string>
<key>name</key>
<string>support.function.builtin.convert.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\b</string>
<key>name</key>
<string>support.function.builtin.math.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\b</string>
<key>name</key>
<string>support.function.builtin.collection.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\b</string>
<key>name</key>
<string>support.function.builtin.data_mining.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\b</string>
<key>name</key>
<string>support.function.builtin.xml.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(pragma\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\b</string>
<key>name</key>
<string>keyword.other.pragma.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(p(i|o|io)_[-a-z0-9_]+)\b</string>
<key>name</key>
<string>variable.parameter.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(l_[-a-z0-9_]+)\b</string>
<key>name</key>
<string>variable.other.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i):\b(new|old)\b</string>
<key>name</key>
<string>variable.trigger.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(connect\s+by\s+(nocycle\s+)?(prior|level)|connect_by_(root|icycle)|level|start\s+with)\b</string>
<key>name</key>
<string>keyword.hierarchical.sql.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(language|name|java|c)\b</string>
<key>name</key>
<string>keyword.wrapper.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\s+by|result_cache|constant|comment|\.(nextval|currval))\b</string>
<key>name</key>
<string>keyword.other.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(grant|revoke|alter|drop|force|add|check|constraint|primary\s+key|foreign\s+key|references|unique(\s+index)?|column|sequence|increment\s+by|cache|(materialized\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\b</string>
<key>name</key>
<string>keyword.other.ddl.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(with|select|from|where|order\s+(siblings\s+)?by|group\s+by|rollup|cube|((left|right|cross|natural)\s+(outer\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\s+between|nulls\s+first|nulls\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\s+by|merge|using|matched|pivot|unpivot)\b</string>
<key>name</key>
<string>keyword.other.sql.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(define|whenever\s+sqlerror|exec|timing\s+start|timing\s+stop)\b</string>
<key>name</key>
<string>keyword.other.sqlplus.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\b</string>
<key>name</key>
<string>support.type.exception.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>support.class.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)\b((dbms|utl|owa|apex)_\w+\.(\w+))\b</string>
<key>name</key>
<string>support.function.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>support.class.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)\b((htf|htp)\.(\w+))\b</string>
<key>name</key>
<string>support.function.oracle</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>support.class.user-defined.oracle</string>
</dict>
</dict>
<key>match</key>
<string>(?i)\b((\w+_pkg|pkg_\w+)\.(\w+))\b</string>
<key>name</key>
<string>support.function.user-defined.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(raise|raise_application_error)\b</string>
<key>name</key>
<string>support.function.oracle</string>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>end</key>
<string>'</string>
<key>name</key>
<string>string.quoted.single.oracle</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.quoted.double.oracle</string>
</dict>
<dict>
<key>match</key>
<string>(?i)\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\s+with(\s+local)?\s+time\s+zone)?|interval\s*day(\(\d*\))?\s*to\s*month|interval\s*year(\(\d*\))?\s*to\s*second(\(\d*\))?|xmltype|blob|clob|nclob|bfile|long|long\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\b</string>
<key>name</key>
<string>storage.type.oracle</string>
</dict>
</array>
<key>scopeName</key>
<string>source.plsql.oracle</string>
<key>uuid</key>
<string>28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163</string>
</dict>
</plist>