ultraviolet 0.10.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. data/.gitmodules +3 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +28 -0
  4. data/Rakefile +18 -47
  5. data/Readme.md +89 -0
  6. data/bin/theme2latexrender +0 -0
  7. data/bin/theme2xhtmlrender +0 -0
  8. data/bin/uv +0 -0
  9. data/lib/uv.rb +78 -75
  10. data/lib/uv/render_processor.rb +128 -119
  11. data/lib/uv/utility.rb +62 -62
  12. data/lib/uv/version.rb +3 -0
  13. data/spec/spec_helper.rb +2 -0
  14. data/spec/ultraviolet_spec.rb +13 -0
  15. data/ultraviolet.gemspec +15 -0
  16. metadata +123 -271
  17. data/History.txt +0 -25
  18. data/Manifest.txt +0 -233
  19. data/README.txt +0 -52
  20. data/syntax/actionscript.syntax +0 -97
  21. data/syntax/active4d.syntax +0 -276
  22. data/syntax/active4d_html.syntax +0 -311
  23. data/syntax/active4d_ini.syntax +0 -50
  24. data/syntax/active4d_library.syntax +0 -21
  25. data/syntax/ada.syntax +0 -33
  26. data/syntax/antlr.syntax +0 -151
  27. data/syntax/apache.syntax +0 -191
  28. data/syntax/applescript.syntax +0 -384
  29. data/syntax/asp.syntax +0 -70
  30. data/syntax/asp_vb.net.syntax +0 -129
  31. data/syntax/bibtex.syntax +0 -151
  32. data/syntax/blog_html.syntax +0 -41
  33. data/syntax/blog_markdown.syntax +0 -42
  34. data/syntax/blog_text.syntax +0 -27
  35. data/syntax/blog_textile.syntax +0 -27
  36. data/syntax/build.syntax +0 -53
  37. data/syntax/bulletin_board.syntax +0 -287
  38. data/syntax/c++.syntax +0 -109
  39. data/syntax/c.syntax +0 -326
  40. data/syntax/cake.syntax +0 -55
  41. data/syntax/camlp4.syntax +0 -36
  42. data/syntax/cm.syntax +0 -32
  43. data/syntax/coldfusion.syntax +0 -119
  44. data/syntax/context_free.syntax +0 -176
  45. data/syntax/cs.syntax +0 -59
  46. data/syntax/css.syntax +0 -195
  47. data/syntax/css_experimental.syntax +0 -1925
  48. data/syntax/csv.syntax +0 -68
  49. data/syntax/d.syntax +0 -142
  50. data/syntax/diff.syntax +0 -81
  51. data/syntax/dokuwiki.syntax +0 -204
  52. data/syntax/dot.syntax +0 -47
  53. data/syntax/doxygen.syntax +0 -43
  54. data/syntax/dylan.syntax +0 -62
  55. data/syntax/eiffel.syntax +0 -78
  56. data/syntax/erlang.syntax +0 -922
  57. data/syntax/f-script.syntax +0 -80
  58. data/syntax/fortran.syntax +0 -141
  59. data/syntax/fxscript.syntax +0 -142
  60. data/syntax/greasemonkey.syntax +0 -34
  61. data/syntax/gri.syntax +0 -83
  62. data/syntax/groovy.syntax +0 -191
  63. data/syntax/gtd.syntax +0 -22
  64. data/syntax/gtdalt.syntax +0 -143
  65. data/syntax/haml.syntax +0 -88
  66. data/syntax/haskell.syntax +0 -88
  67. data/syntax/html-asp.syntax +0 -27
  68. data/syntax/html.syntax +0 -362
  69. data/syntax/html_django.syntax +0 -36
  70. data/syntax/html_for_asp.net.syntax +0 -424
  71. data/syntax/html_mason.syntax +0 -119
  72. data/syntax/html_rails.syntax +0 -40
  73. data/syntax/html_tcl.syntax +0 -26
  74. data/syntax/icalendar.syntax +0 -32
  75. data/syntax/inform.syntax +0 -48
  76. data/syntax/ini.syntax +0 -55
  77. data/syntax/installer_distribution_script.syntax +0 -77
  78. data/syntax/io.syntax +0 -81
  79. data/syntax/java.syntax +0 -211
  80. data/syntax/javaproperties.syntax +0 -20
  81. data/syntax/javascript.syntax +0 -256
  82. data/syntax/javascript_+_prototype.syntax +0 -72
  83. data/syntax/javascript_+_prototype_bracketed.syntax +0 -140
  84. data/syntax/jquery_javascript.syntax +0 -114
  85. data/syntax/json.syntax +0 -136
  86. data/syntax/languagedefinition.syntax +0 -708
  87. data/syntax/latex.syntax +0 -566
  88. data/syntax/latex_beamer.syntax +0 -41
  89. data/syntax/latex_log.syntax +0 -50
  90. data/syntax/latex_memoir.syntax +0 -64
  91. data/syntax/lexflex.syntax +0 -219
  92. data/syntax/lighttpd.syntax +0 -54
  93. data/syntax/lilypond.syntax +0 -492
  94. data/syntax/lisp.syntax +0 -61
  95. data/syntax/literate_haskell.syntax +0 -24
  96. data/syntax/logo.syntax +0 -29
  97. data/syntax/logtalk.syntax +0 -152
  98. data/syntax/lua.syntax +0 -86
  99. data/syntax/m.syntax +0 -142
  100. data/syntax/macports_portfile.syntax +0 -163
  101. data/syntax/mail.syntax +0 -118
  102. data/syntax/makefile.syntax +0 -36
  103. data/syntax/man.syntax +0 -17
  104. data/syntax/markdown.syntax +0 -543
  105. data/syntax/mediawiki.syntax +0 -567
  106. data/syntax/mel.syntax +0 -92
  107. data/syntax/mips.syntax +0 -66
  108. data/syntax/mod_perl.syntax +0 -50
  109. data/syntax/modula-3.syntax +0 -47
  110. data/syntax/moinmoin.syntax +0 -189
  111. data/syntax/mootools.syntax +0 -572
  112. data/syntax/movable_type.syntax +0 -162
  113. data/syntax/multimarkdown.syntax +0 -39
  114. data/syntax/objective-c++.syntax +0 -18
  115. data/syntax/objective-c.syntax +0 -233
  116. data/syntax/ocaml.syntax +0 -764
  117. data/syntax/ocamllex.syntax +0 -167
  118. data/syntax/ocamlyacc.syntax +0 -184
  119. data/syntax/opengl.syntax +0 -14
  120. data/syntax/pascal.syntax +0 -77
  121. data/syntax/perl.syntax +0 -1115
  122. data/syntax/php.syntax +0 -1253
  123. data/syntax/plain_text.syntax +0 -32
  124. data/syntax/pmwiki.syntax +0 -113
  125. data/syntax/postscript.syntax +0 -114
  126. data/syntax/processing.syntax +0 -106
  127. data/syntax/prolog.syntax +0 -40
  128. data/syntax/property_list.syntax +0 -635
  129. data/syntax/python.syntax +0 -868
  130. data/syntax/python_django.syntax +0 -21
  131. data/syntax/qmake_project.syntax +0 -114
  132. data/syntax/qt_c++.syntax +0 -26
  133. data/syntax/quake3_config.syntax +0 -32
  134. data/syntax/r.syntax +0 -81
  135. data/syntax/r_console.syntax +0 -16
  136. data/syntax/ragel.syntax +0 -201
  137. data/syntax/rd_r_documentation.syntax +0 -91
  138. data/syntax/regexp.syntax +0 -50
  139. data/syntax/regular_expressions_oniguruma.syntax +0 -107
  140. data/syntax/regular_expressions_python.syntax +0 -109
  141. data/syntax/release_notes.syntax +0 -46
  142. data/syntax/remind.syntax +0 -253
  143. data/syntax/restructuredtext.syntax +0 -250
  144. data/syntax/rez.syntax +0 -80
  145. data/syntax/ruby.syntax +0 -1035
  146. data/syntax/ruby_experimental.syntax +0 -145
  147. data/syntax/ruby_on_rails.syntax +0 -88
  148. data/syntax/s5.syntax +0 -69
  149. data/syntax/scheme.syntax +0 -347
  150. data/syntax/scilab.syntax +0 -41
  151. data/syntax/setext.syntax +0 -147
  152. data/syntax/shell-unix-generic.syntax +0 -384
  153. data/syntax/slate.syntax +0 -149
  154. data/syntax/smarty.syntax +0 -63
  155. data/syntax/sql.syntax +0 -237
  156. data/syntax/sql_rails.syntax +0 -18
  157. data/syntax/ssh-config.syntax +0 -33
  158. data/syntax/standard_ml.syntax +0 -121
  159. data/syntax/strings_file.syntax +0 -39
  160. data/syntax/subversion_commit_message.syntax +0 -36
  161. data/syntax/sweave.syntax +0 -84
  162. data/syntax/swig.syntax +0 -57
  163. data/syntax/tcl.syntax +0 -152
  164. data/syntax/template_toolkit.syntax +0 -121
  165. data/syntax/tex.syntax +0 -86
  166. data/syntax/tex_math.syntax +0 -49
  167. data/syntax/textile.syntax +0 -215
  168. data/syntax/tsv.syntax +0 -50
  169. data/syntax/twiki.syntax +0 -241
  170. data/syntax/txt2tags.syntax +0 -79
  171. data/syntax/vectorscript.syntax +0 -57
  172. data/syntax/xhtml_1.0.syntax +0 -4027
  173. data/syntax/xml.syntax +0 -180
  174. data/syntax/xml_strict.syntax +0 -92
  175. data/syntax/xsl.syntax +0 -60
  176. data/syntax/yaml.syntax +0 -160
  177. data/syntax/yui_javascript.syntax +0 -176
  178. data/test/test_uv.rb +0 -0
@@ -1,764 +0,0 @@
1
- ---
2
- name: OCaml
3
- fileTypes:
4
- - ml
5
- - mli
6
- scopeName: source.ocaml
7
- repository:
8
- moduleref:
9
- patterns:
10
- - name: meta.module-reference.ocaml
11
- beginCaptures:
12
- "1":
13
- name: support.other.module.ocaml
14
- "2":
15
- name: punctuation.separator.module-reference.ocaml
16
- match: \b([A-Z][a-zA-Z0-9'_]*)(\.)
17
- variables:
18
- patterns:
19
- - name: variable.parameter.unit.ocaml
20
- match: \(\)
21
- - include: "#constants"
22
- - include: "#moduleref"
23
- - name: variable.parameter.labeled.ocaml
24
- begin: (~)([a-z][a-zA-Z0-9'_]*)(\s*:\s*)?
25
- beginCaptures:
26
- "1":
27
- name: punctuation.definition.labeled-parameter.ocaml
28
- "2":
29
- name: entity.name.tag.label.ocaml
30
- "3":
31
- name: punctuation.separator.label.ocaml
32
- end: \s
33
- patterns:
34
- - include: "#variables"
35
- - name: variable.parameter.optional.ocaml
36
- captures:
37
- "1":
38
- name: punctuation.definition.optional-parameter.ocaml
39
- "2":
40
- name: entity.name.tag.label.optional.ocaml
41
- match: (\?)([a-z][a-zA-Z0-9_]*)
42
- - name: variable.parameter.optional.ocaml
43
- endCaptures:
44
- "1":
45
- name: punctuation.definition.optional-parameter.ocaml
46
- begin: (\?)(\()([a-z_][a-zA-Z0-9'_]*)\s*(=)
47
- beginCaptures:
48
- "1":
49
- name: punctuation.definition.optional-parameter.ocaml
50
- "2":
51
- name: punctuation.definition.optional-parameter.ocaml
52
- "3":
53
- name: entity.name.tag.label.optional.ocaml
54
- "4":
55
- name: punctuation.separator.optional-parameter-assignment.ocaml
56
- end: (\))
57
- patterns:
58
- - include: $self
59
- - name: meta.parameter.type-constrained.ocaml
60
- endCaptures:
61
- "1":
62
- name: punctuation.section.type-constraint.ocaml
63
- begin: (\()(?=(~[a-z][a-zA-Z0-9_]*:|("(\\"|[^"])*")|[^\(\)~"])+(?<!:)(:>|:(?![:=])))
64
- beginCaptures:
65
- "1":
66
- name: punctuation.section.type-constraint.ocaml
67
- end: (\))
68
- patterns:
69
- - name: storage.type.ocaml
70
- begin: (?<!:)(:>|:(?![:=]))
71
- beginCaptures:
72
- "1":
73
- name: punctuation.separator.type-constraint.ocaml
74
- end: (?=\))
75
- patterns:
76
- - name: meta.paren.group
77
- begin: \(
78
- end: \)
79
- - include: "#variables"
80
- - include: "#comments"
81
- - name: meta.paren-group.ocaml
82
- begin: \(
83
- end: \)
84
- patterns:
85
- - include: "#variables"
86
- - name: variable.parameter.tuple.ocaml
87
- endCaptures:
88
- "1":
89
- name: punctuation.definition.tuple.ocaml
90
- begin: (\()
91
- beginCaptures:
92
- "1":
93
- name: punctuation.definition.tuple.ocaml
94
- end: (\))
95
- patterns:
96
- - include: "#matchpatterns"
97
- - include: "#variables"
98
- - name: punctuation.separator.tuple.ocaml
99
- match: ","
100
- - name: variable.parameter.record.ocaml
101
- endCaptures:
102
- "1":
103
- name: punctuation.definition.record.ocaml
104
- begin: (\{)
105
- beginCaptures:
106
- "1":
107
- name: punctuation.definition.record.ocaml
108
- end: (\})
109
- patterns:
110
- - include: "#moduleref"
111
- - name: meta.recordfield.match.ocaml
112
- endCaptures:
113
- "1":
114
- name: punctuation.separator.record.ocaml
115
- begin: \b([a-z][a-zA-Z0-9'_]*)\s*(=)
116
- beginCaptures:
117
- "1":
118
- name: entity.name.tag.record.ocaml
119
- "2":
120
- name: punctuation.separator.record.field-assignment.ocaml
121
- end: (;)|(?=\})
122
- patterns:
123
- - include: "#matchpatterns"
124
- - include: "#storagetypes"
125
- - name: variable.parameter.ocaml
126
- match: \b[a-z_][a-zA-Z0-9'_]*
127
- typedefs:
128
- patterns:
129
- - name: punctuation.separator.variant-definition.ocaml
130
- match: \|
131
- - include: "#comments"
132
- - name: meta.paren-group.ocaml
133
- begin: \(
134
- end: \)
135
- patterns:
136
- - include: "#typedefs"
137
- - name: keyword.other.ocaml
138
- match: \bof\b
139
- - include: "#storagetypes"
140
- - name: storage.type.ocaml
141
- match: (?<=\s|\()['a-z_][a-zA-Z0-9_]*\b
142
- - name: meta.module.type.ocaml
143
- captures:
144
- "1":
145
- name: support.other.module.ocaml
146
- "2":
147
- name: storage.type.module.ocaml
148
- match: \b((?:[A-Z][a-zA-Z0-9'_]*)(?:\.[A-Z][a-zA-Z0-9'_]+)*)(\.[a-zA-Z0-9'_]+)
149
- - name: meta.polymorphic-variant.definition.ocaml
150
- endCaptures:
151
- "1":
152
- name: punctuation.definition.polymorphic-variant.ocaml
153
- begin: (\[(>|<)?)
154
- beginCaptures:
155
- "1":
156
- name: punctuation.definition.polymorphic-variant.ocaml
157
- end: (\])
158
- patterns:
159
- - include: "#typedefs"
160
- - include: $self
161
- - name: punctuation.separator.algebraic-type.ocaml
162
- match: \|
163
- storagetypes:
164
- patterns:
165
- - name: storage.type.ocaml
166
- match: \b(int|char|float|string|list|array|bool|unit|exn|option|int32|int64|nativeint|format4|lazy_t)\b
167
- - name: storage.type.variant.polymorphic.ocaml
168
- match: "#[a-z_][a-zA-Z0-9_]*"
169
- module-signature:
170
- patterns:
171
- - name: meta.module.signature.val.ocaml
172
- begin: (val)\s+([a-z_][a-zA-Z0-9_']*)\s*(:)
173
- beginCaptures:
174
- "1":
175
- name: keyword.other.ocaml
176
- "2":
177
- name: entity.name.type.value-signature.ocaml
178
- "3":
179
- name: punctuation.separator.type-constraint.ocaml
180
- end: (?=\b(type|val|external|class|module|end)\b)|^\s*$
181
- patterns:
182
- - name: variable.parameter.optional.ocaml
183
- captures:
184
- "1":
185
- name: punctuation.definition.optional-parameter.ocaml
186
- "2":
187
- name: entity.name.tag.label.optional.ocaml
188
- "3":
189
- name: punctuation.separator.optional-parameter.ocaml
190
- match: (\?)([a-z][a-zA-Z0-9_]*)\s*(:)
191
- - name: variable.parameter.labeled.ocaml
192
- begin: (~)([a-z][a-zA-Z0-9'_]*)\s*(:)\s*
193
- beginCaptures:
194
- "1":
195
- name: punctuation.definition.labeled-parameter.ocaml
196
- "2":
197
- name: entity.name.tag.label.ocaml
198
- "3":
199
- name: punctuation.separator.label.ocaml
200
- end: \s
201
- patterns:
202
- - include: "#variables"
203
- - include: "#typedefs"
204
- - name: meta.module.signature.external.ocaml
205
- begin: (external)\s+([a-z_][a-zA-Z0-9_']*)\s*(:)
206
- beginCaptures:
207
- "1":
208
- name: keyword.other.ocaml
209
- "2":
210
- name: entity.name.type.external-signature.ocaml
211
- "3":
212
- name: punctuation.separator.type-constraint.ocaml
213
- end: (?=\b(type|val|external|class|module|end)\b)|^\s*$
214
- patterns:
215
- - name: variable.parameter.optional.ocaml
216
- captures:
217
- "1":
218
- name: punctuation.definition.optional-parameter.ocaml
219
- "2":
220
- name: entity.name.tag.label.optional.ocaml
221
- "3":
222
- name: punctuation.separator.optional-parameter.ocaml
223
- match: (\?)([a-z][a-zA-Z0-9_]*)\s*(:)
224
- - name: variable.parameter.labeled.ocaml
225
- begin: (~)([a-z][a-zA-Z0-9'_]*)\s*(:)\s*
226
- beginCaptures:
227
- "1":
228
- name: punctuation.definition.labeled-parameter.ocaml
229
- "2":
230
- name: entity.name.tag.label.ocaml
231
- "3":
232
- name: punctuation.separator.label.ocaml
233
- end: \s
234
- patterns:
235
- - include: "#variables"
236
- - include: "#strings"
237
- - include: "#typedefs"
238
- matchpatterns:
239
- patterns:
240
- - name: constant.language.universal-match.ocaml
241
- match: \b_\b
242
- - name: punctuation.separator.match-pattern.ocaml
243
- match: \|(?=\s*\S)
244
- - name: meta.match-option.ocaml
245
- endCaptures:
246
- "1":
247
- name: punctuation.definition.match-option.ocaml
248
- begin: (\()(?=(?!=.*?->).*?\|)
249
- beginCaptures:
250
- "1":
251
- name: punctuation.definition.match-option.ocaml
252
- end: (\))
253
- patterns:
254
- - name: punctuation.separator.match-option.ocaml
255
- match: \|
256
- - include: "#matchpatterns"
257
- - include: "#moduleref"
258
- - include: "#constants"
259
- - include: "#variables"
260
- - include: $self
261
- comments:
262
- patterns:
263
- - name: comment.block.ocaml
264
- captures:
265
- "1":
266
- name: comment.block.empty.ocaml
267
- match: \(\*\*?(\*)\)
268
- - name: comment.block.ocaml
269
- begin: \(\*
270
- end: \*\)
271
- patterns:
272
- - include: "#comments"
273
- - name: comment.block.ocamlyacc
274
- begin: /\*
275
- end: \*/
276
- patterns:
277
- - include: "#comments"
278
- - name: comment.block.string.quoted.double.ocaml
279
- begin: (?=[^\\])(")
280
- end: "\""
281
- patterns:
282
- - name: comment.block.string.constant.character.escape.ocaml
283
- match: \\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])
284
- lists:
285
- patterns:
286
- - name: meta.list.ocaml
287
- endCaptures:
288
- "1":
289
- name: punctuation.definition.list.end.ocaml
290
- begin: (\[)(?!\||<|>)
291
- beginCaptures:
292
- "1":
293
- name: punctuation.definition.list.begin.ocaml
294
- end: (?<!\||>)(])
295
- patterns:
296
- - include: "#lists"
297
- - include: $self
298
- strings:
299
- patterns:
300
- - name: string.quoted.double.ocaml
301
- endCaptures:
302
- "1":
303
- name: punctuation.definition.string.end.ocaml
304
- begin: (?=[^\\])(")
305
- beginCaptures:
306
- "1":
307
- name: punctuation.definition.string.begin.ocaml
308
- end: (")
309
- patterns:
310
- - name: punctuation.separator.string.ignore-eol.ocaml
311
- match: \\$[ \t]*
312
- - name: constant.character.string.escape.ocaml
313
- match: \\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])
314
- - name: constant.character.regexp.escape.ocaml
315
- match: \\[\|\(\)1-9$^.*+?\[\]]
316
- - name: invalid.illegal.character.string.escape
317
- match: \\(?!(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\]|[\|\(\)1-9$^.*+?\[\]]|$[ \t]*))(?:.)
318
- constants:
319
- patterns:
320
- - name: constant.language.pseudo-variable.ocaml
321
- captures:
322
- "1":
323
- name: meta.empty-typing-pair.ocaml
324
- "2":
325
- name: meta.empty-typing-pair.parens.ocaml
326
- "3":
327
- name: meta.empty-typing-pair.ocaml
328
- match: (?:\[\s*(\])|\((\))|\(\s*(\)))
329
- - name: constant.language.boolean.ocaml
330
- match: \b(true|false)\b
331
- - name: constant.numeric.floating-point.ocaml
332
- match: \b-?[0-9][0-9_]*((\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))
333
- - name: constant.numeric.integer.nativeint.ocaml
334
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))n
335
- - name: constant.numeric.integer.int64.ocaml
336
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))L
337
- - name: constant.numeric.integer.int32.ocaml
338
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))l
339
- - name: constant.numeric.integer.ocaml
340
- match: \b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))
341
- - name: constant.character.ocaml
342
- match: "'(.|\\\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\\d\\d|[bnrt'\"\\\\]))'"
343
- arrays:
344
- patterns:
345
- - name: meta.array.ocaml
346
- endCaptures:
347
- "1":
348
- name: punctuation.definition.array.end.ocaml
349
- begin: (\[\|)
350
- beginCaptures:
351
- "1":
352
- name: punctuation.definition.array.begin.ocaml
353
- end: (\|])
354
- patterns:
355
- - include: "#arrays"
356
- - include: $self
357
- uuid: F816FA69-6EE8-11D9-BF2D-000D93589AF6
358
- foldingStartMarker: (\b(module|class|)\s.*?=\s*$|\bbegin|sig|struct|(object(\s*\(_?[a-z]+\))?)\s*$|\bwhile\s.*?\bdo\s*$|^let(?:\s+rec)?\s+[a-z_][a-zA-Z0-9_]*\s+(?!=)\S)
359
- patterns:
360
- - name: meta.module.binding
361
- captures:
362
- "1":
363
- name: keyword.other.module-binding.ocaml
364
- "2":
365
- name: keyword.other.module-definition.ocaml
366
- "3":
367
- name: support.other.module.ocaml
368
- "4":
369
- name: punctuation.separator.module-binding.ocmal
370
- match: \b(let)\s+(module)\s+([A-Z][a-zA-Z0-9'_]*)\s*(=)
371
- - name: meta.function.ocaml
372
- endCaptures:
373
- "1":
374
- name: punctuation.separator.function.type-constraint.ocaml
375
- "2":
376
- name: storage.type.ocaml
377
- "3":
378
- name: keyword.operator.ocaml
379
- "4":
380
- name: keyword.operator.ocaml
381
- begin: \b(let|and)\s+(?!\(\*)((rec\s+)([a-z_][a-zA-Z0-9_']*)\b|([a-z_][a-zA-Z0-9_']*|\([^)]+\))(?=\s)((?=\s*=\s*(?=fun(?:ction)\b))|(?!\s*=)))
382
- beginCaptures:
383
- "1":
384
- name: keyword.other.function-definition.ocaml
385
- "3":
386
- name: keyword.other.funtion-definition.ocaml
387
- "4":
388
- name: entity.name.function.ocaml
389
- "5":
390
- name: entity.name.function.ocaml
391
- end: (?:(:)\s*([^=]+))?(?:(=)|(=)\s*(?=fun(?:ction)\b))
392
- patterns:
393
- - include: "#variables"
394
- - name: meta.function.anonymous.ocaml
395
- endCaptures:
396
- "1":
397
- name: punctuation.definition.function.anonymous.ocaml
398
- begin: (\()(?=fun\s)
399
- beginCaptures:
400
- "1":
401
- name: punctuation.definition.function.anonymous.ocaml
402
- end: (\))
403
- patterns:
404
- - name: meta.function.anonymous.definition.ocaml
405
- endCaptures:
406
- "1":
407
- name: punctuation.separator.function-definition.ocaml
408
- begin: (?<=\()(fun)\s
409
- beginCaptures:
410
- "1":
411
- name: keyword.other.function-definition.ocaml
412
- end: (->)
413
- patterns:
414
- - include: "#variables"
415
- - include: $self
416
- - name: meta.type-definition-group.ocaml
417
- begin: ^\s*(?=type\s)
418
- end: \b(?=let|end)|^\s*$
419
- patterns:
420
- - name: meta.type-definition.ocaml
421
- begin: \b(type|and)\s+([^=]*)(=)?
422
- beginCaptures:
423
- "1":
424
- name: keyword.other.type-definition.ocaml
425
- "2":
426
- name: storage.type.user-defined.ocaml
427
- "3":
428
- name: punctuation.separator.type-definition.ocaml
429
- end: (?=\b(type|and|let|end)\b)|(?=^\s*$)
430
- patterns:
431
- - include: "#typedefs"
432
- - name: meta.pattern-match.ocaml
433
- endCaptures:
434
- "1":
435
- name: punctuation.separator.match-definition.ocaml
436
- "2":
437
- name: keyword.control.match-condition.ocaml
438
- begin: \b(with|function)(?=(\s*$|.*->))\b|((?<!\|)(\|)(?!\|)(?=.*->))
439
- beginCaptures:
440
- "1":
441
- name: keyword.control.match-definition.ocaml
442
- "2":
443
- name: keyword.other.function-definition.ocaml
444
- "3":
445
- name: keyword.control.match-definition.ocaml
446
- end: (?:(->)|\b(when)\b|\s(?=\|))
447
- patterns:
448
- - include: "#matchpatterns"
449
- - name: meta.class.type-definition.ocaml
450
- captures:
451
- "1":
452
- name: keyword.other.class-type-definition.ocaml
453
- "2":
454
- name: entity.name.type.class-type.ocaml
455
- "4":
456
- name: storage.type.user-defined.ocaml
457
- match: ^[ \t]*(class\s+type\s+)((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
458
- - name: meta.class.ocaml
459
- endCaptures:
460
- "1":
461
- name: keyword.operator.ocaml
462
- begin: ^[ \t]*(class)(?:\s+(?!(?:virtual)\s+))((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
463
- beginCaptures:
464
- "1":
465
- name: keyword.other.class-definition.ocaml
466
- "2":
467
- name: entity.name.type.class.ocaml
468
- "4":
469
- name: storage.type.user-defined.ocaml
470
- end: (=)
471
- patterns:
472
- - include: "#variables"
473
- - name: meta.class.virtual.ocaml
474
- endCaptures:
475
- "1":
476
- name: keyword.operator.ocaml
477
- begin: ^[ \t]*(class\s+virtual\s+)((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
478
- beginCaptures:
479
- "1":
480
- name: keyword.other.class-definition.ocaml
481
- "2":
482
- name: entity.name.type.class.ocaml
483
- "4":
484
- name: storage.type.user-defined.ocaml
485
- end: (=)
486
- patterns:
487
- - include: "#variables"
488
- - name: meta.class.virtual.type-definition.ocaml
489
- captures:
490
- "1":
491
- name: keyword.other.class-type-definition.ocaml
492
- "2":
493
- name: entity.name.type.class-type.ocaml
494
- "4":
495
- name: storage.type.user-defined.ocaml
496
- match: ^[ \t]*(class\s+type\s+virtual)((\[\s*('[A-Za-z][a-zA-Z0-9_']*(?:\s*,\s*'[A-Za-z][a-zA-Z0-9_']*)*)\s*\]\s+)?[a-z_][a-zA-Z0-9'_]*)
497
- - name: meta.record.ocaml
498
- endCaptures:
499
- "1":
500
- name: punctuation.definition.record.ocaml
501
- begin: (\{)
502
- beginCaptures:
503
- "1":
504
- name: punctuation.definition.record.ocaml
505
- end: (\})
506
- patterns:
507
- - name: keyword.other.language.ocaml
508
- match: \bwith\b
509
- - name: meta.record.definition.ocaml
510
- endCaptures:
511
- "1":
512
- name: keyword.operator.ocaml
513
- begin: (\bmutable\s+)?\b([a-z_][a-zA-Z0-9_']*)\s*(:)
514
- beginCaptures:
515
- "1":
516
- name: keyword.other.storage.modifier.ocaml
517
- "2":
518
- name: source.ocaml
519
- "3":
520
- name: punctuation.definition.record.ocaml
521
- end: (;|(?=}))
522
- patterns:
523
- - include: "#typedefs"
524
- - include: $self
525
- - name: meta.object.ocaml
526
- endCaptures:
527
- "1":
528
- name: keyword.control.object.ocaml
529
- "2":
530
- name: punctuation.terminator.expression.ocaml
531
- begin: \b(object)\s*(?:(\()(_?[a-z]+)(\)))?\s*$
532
- beginCaptures:
533
- "1":
534
- name: keyword.other.object-definition.ocaml
535
- "2":
536
- name: punctuation.definition.self-binding.ocaml
537
- "3":
538
- name: entity.name.type.self-binding.ocaml
539
- "4":
540
- name: punctuation.definition.self-binding.ocaml
541
- end: \b(end)\b
542
- patterns:
543
- - name: meta.method.ocaml
544
- endCaptures:
545
- "1":
546
- name: keyword.operator.ocaml
547
- begin: \b(method)\s+(virtual\s+)?(private\s+)?([a-z_][a-zA-Z0-9'_]*)
548
- beginCaptures:
549
- "1":
550
- name: keyword.other.method-definition.ocaml
551
- "2":
552
- name: keyword.other.method-definition.ocaml
553
- "3":
554
- name: keyword.other.method-restriction.ocaml
555
- "4":
556
- name: entity.name.function.method.ocaml
557
- end: (=|:)
558
- patterns:
559
- - include: "#variables"
560
- - name: meta.object.type-constraint.ocaml
561
- endCaptures:
562
- "1":
563
- name: storage.type.polymorphic-variant.ocaml
564
- "2":
565
- name: storage.type.ocaml
566
- "3":
567
- name: storage.type.user-defined.ocaml
568
- begin: (constraint)\s+([a-z_'][a-zA-Z0-9'_]*)\s+(=)
569
- beginCaptures:
570
- "1":
571
- name: keyword.other.language.ocaml
572
- "2":
573
- name: storage.type.user-defined.ocaml
574
- "3":
575
- name: keyword.operator.ocaml
576
- end: (#[a-z_][a-zA-Z0-9'_]*)|(int|char|float|string|list|array|bool|unit|exn|option|int32|int64|nativeint|format4|lazy_t)|([a-z_][a-zA-Z0-9'_]*)\s*$
577
- - include: $self
578
- - name: meta.method-call.ocaml
579
- captures:
580
- "1":
581
- name: punctuation.separator.method-call.ocaml
582
- match: (?<=\w|\)|')(#)[a-z_][a-zA-Z0-9'_]*
583
- - name: meta.module.ocaml
584
- captures:
585
- "1":
586
- name: keyword.other.module-definition.ocaml
587
- "2":
588
- name: entity.name.type.module.ocaml
589
- "3":
590
- name: punctuation.separator.module-definition.ocaml
591
- "4":
592
- name: entity.name.type.module-type.ocaml
593
- match: ^[ \t]*(module)\s+([A-Z_][a-zA-Z0-9'_]*)(?:\s*(:)\s*([A-Z][a-zA-Z0-9'_]*)?)?
594
- - name: meta.module.type.ocaml
595
- captures:
596
- "1":
597
- name: keyword.other.module-type-definition.ocaml
598
- "2":
599
- name: entity.name.type.module-type.ocaml
600
- match: ^[ \t]*(module\s+type\s+)([A-Z][a-zA-Z0-9'_]*)
601
- - name: meta.module.signature.ocaml
602
- endCaptures:
603
- "1":
604
- name: keyword.other.module.signature.ocaml
605
- "2":
606
- name: punctuation.terminator.expression.ocaml
607
- "3":
608
- name: keyword.operator.ocaml
609
- begin: \b(sig)\b
610
- beginCaptures:
611
- "1":
612
- name: keyword.other.module.signature.ocaml
613
- end: \b(end)\b
614
- patterns:
615
- - include: "#module-signature"
616
- - include: $self
617
- - name: meta.module.structure.ocaml
618
- endCaptures:
619
- "1":
620
- name: keyword.other.module.structure.ocaml
621
- begin: \b(struct)\b
622
- beginCaptures:
623
- "1":
624
- name: keyword.other.module.structure.ocaml
625
- end: \b(end)\b
626
- patterns:
627
- - include: $self
628
- - include: "#moduleref"
629
- - name: meta.module.open.ocaml
630
- begin: \b(open)\s+([A-Z][a-zA-Z0-9'_]*)(?=(\.[A-Z][a-zA-Z0-9_]*)*)
631
- beginCaptures:
632
- "1":
633
- name: keyword.other.ocaml
634
- "2":
635
- name: support.other.module.ocaml
636
- end: (\s|$)
637
- patterns:
638
- - name: support.other.module.ocaml
639
- captures:
640
- "1":
641
- name: punctuation.separator.module-reference.ocaml
642
- match: (\.)([A-Z][a-zA-Z0-9'_]*)
643
- - name: meta.exception.ocaml
644
- captures:
645
- "1":
646
- name: keyword.other.ocaml
647
- "2":
648
- name: entity.name.type.exception.ocaml
649
- match: \b(exception)\s+([A-Z][a-zA-Z0-9'_]*)\b
650
- - name: source.camlp4.embedded.ocaml
651
- endCaptures:
652
- "1":
653
- name: punctuation.definition.camlp4-stream.ocaml
654
- begin: (?=(\[<)(?![^\[]+?[^>]]))
655
- end: (>])
656
- patterns:
657
- - include: source.camlp4.ocaml
658
- - include: "#strings"
659
- - include: "#constants"
660
- - include: "#comments"
661
- - include: "#lists"
662
- - include: "#arrays"
663
- - name: meta.type-constraint.ocaml
664
- endCaptures:
665
- "1":
666
- name: punctuation.separator.type-constraint.ocaml
667
- "2":
668
- name: storage.type.ocaml
669
- "3":
670
- name: punctuation.section.type-constraint.ocaml
671
- begin: (\()(?=(~[a-z][a-zA-Z0-9_]*:|("(\\"|[^"])*")|[^\(\)~"])+(?<!:)(:>|:(?![:=])))
672
- beginCaptures:
673
- "1":
674
- name: punctuation.section.type-constraint.ocaml
675
- end: (?<!:)(:>|:(?![:=]))(.*?)(\))
676
- patterns:
677
- - include: $self
678
- - name: keyword.other.directive.ocaml
679
- match: ^[ \t]*#[a-zA-Z]+
680
- - name: keyword.other.directive.line-number.ocaml
681
- match: ^[ \t]*#[0-9]*
682
- - include: "#storagetypes"
683
- - name: keyword.other.storage.modifier.ocaml
684
- match: \b(mutable|ref)\b
685
- - name: entity.name.type.variant.polymorphic.ocaml
686
- match: `[A-Za-z][a-zA-Z0-9'_]*\b
687
- - name: entity.name.type.variant.ocaml
688
- match: \b[A-Z][a-zA-Z0-9'_]*\b
689
- - name: keyword.operator.symbol.ocaml
690
- match: "!=|:=|>|<"
691
- - name: keyword.operator.infix.floating-point.ocaml
692
- match: "[*+/-]\\."
693
- - name: keyword.operator.prefix.floating-point.ocaml
694
- match: ~-\.
695
- - name: punctuation.definition.list.constructor.ocaml
696
- match: "::"
697
- - name: punctuation.terminator.expression.ocaml
698
- match: ;;
699
- - name: punctuation.separator.ocaml
700
- match: ;
701
- - name: punctuation.separator.function-return.ocaml
702
- match: ->
703
- - name: keyword.operator.infix.ocaml
704
- match: "[=<>@^&+\\-*/$%|][|!$%&*+./:<=>?@^~-]*"
705
- - name: keyword.operator.prefix.ocaml
706
- match: \bnot\b|!|[!\?~][!$%&*+./:<=>?@^~-]+
707
- - name: entity.name.tag.label.ocaml
708
- captures:
709
- "1":
710
- name: punctuation.separator.argument-label.ocaml
711
- match: ~[a-z][a-z0-9'_]*(:)?
712
- - name: meta.begin-end-group.ocaml
713
- endCaptures:
714
- "1":
715
- name: keyword.control.begin-end.ocaml
716
- begin: \b(begin)\b
717
- beginCaptures:
718
- "1":
719
- name: keyword.control.begin-end.ocaml
720
- end: \b(end)\b
721
- patterns:
722
- - include: $self
723
- - name: meta.for-loop.ocaml
724
- endCaptures:
725
- "1":
726
- name: keyword.control.for-loop.ocaml
727
- begin: \b(for)\b
728
- beginCaptures:
729
- "1":
730
- name: keyword.control.for-loop.ocaml
731
- end: \b(done)\b
732
- patterns:
733
- - name: keyword.control.loop.ocaml
734
- match: \bdo\b
735
- - include: $self
736
- - name: meta.while-loop.ocaml
737
- endCaptures:
738
- "1":
739
- name: keyword.control.while-loop.ocaml
740
- begin: \b(while)\b
741
- beginCaptures:
742
- "1":
743
- name: keyword.control.while-loop.ocaml
744
- end: \b(done)\b
745
- patterns:
746
- - name: keyword.control.loop.ocaml
747
- match: \bdo\b
748
- - include: $self
749
- - name: meta.paren-group.ocaml
750
- begin: \(
751
- end: \)
752
- patterns:
753
- - include: $self
754
- - name: keyword.operator.ocaml
755
- match: \b(and|land|lor|lsl|lsr|lxor|mod|or)\b
756
- - name: keyword.control.ocaml
757
- match: \b(downto|if|else|match|then|to|when|with|try)\b
758
- - name: keyword.other.ocaml
759
- match: \b(as|assert|class|constraint|exception|functor|in|include|inherit|initializer|lazy|let|mod|module|mutable|new|object|open|private|rec|sig|struct|type|val|virtual)\b
760
- - include: "#module-signature"
761
- - name: invalid.illegal.unrecognized-character.ocaml
762
- match: "(\xE2\x80\x99|\xE2\x80\x98|\xE2\x80\x9C|\xE2\x80\x9D)"
763
- foldingStopMarker: (\bend(\s+in)?[ \t]*(;{1,2}|=)?|\bdone;?|^\s*;;|^\s*in)[ \t]*$
764
- keyEquivalent: ^~O