ver 2009.10.14

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 (188) hide show
  1. data/CHANGELOG +1404 -0
  2. data/MANIFEST +187 -0
  3. data/Rakefile +30 -0
  4. data/TODO +169 -0
  5. data/bin/ver +19 -0
  6. data/config/detect.rb +109 -0
  7. data/config/keymap/vim.rb +239 -0
  8. data/config/rc.rb +0 -0
  9. data/config/scratch +3 -0
  10. data/config/syntax/ANTLR.json +275 -0
  11. data/config/syntax/ASP VB.net.json +228 -0
  12. data/config/syntax/ASP.json +135 -0
  13. data/config/syntax/ActionScript.json +168 -0
  14. data/config/syntax/Ada.json +108 -0
  15. data/config/syntax/Apache.json +342 -0
  16. data/config/syntax/AppleScript.json +721 -0
  17. data/config/syntax/Bibtex.json +253 -0
  18. data/config/syntax/Blog (HTML).json +47 -0
  19. data/config/syntax/Blog (Markdown).json +50 -0
  20. data/config/syntax/Blog (Text).json +45 -0
  21. data/config/syntax/Blog (Textile).json +45 -0
  22. data/config/syntax/Bulletin Board.json +428 -0
  23. data/config/syntax/C++.json +323 -0
  24. data/config/syntax/C.json +694 -0
  25. data/config/syntax/CSS.json +346 -0
  26. data/config/syntax/DOT.json +79 -0
  27. data/config/syntax/Diff.json +136 -0
  28. data/config/syntax/Dylan.json +104 -0
  29. data/config/syntax/Eiffel.json +128 -0
  30. data/config/syntax/Erlang.json +1636 -0
  31. data/config/syntax/F-Script.json +137 -0
  32. data/config/syntax/FXScript.json +260 -0
  33. data/config/syntax/Gri.json +141 -0
  34. data/config/syntax/HTML (Mason).json +207 -0
  35. data/config/syntax/HTML (Rails).json +52 -0
  36. data/config/syntax/HTML (Tcl).json +42 -0
  37. data/config/syntax/HTML for ASP.net.json +736 -0
  38. data/config/syntax/HTML-ASP.json +45 -0
  39. data/config/syntax/HTML.json +614 -0
  40. data/config/syntax/Haskell.json +407 -0
  41. data/config/syntax/Inform.json +80 -0
  42. data/config/syntax/Ini.json +91 -0
  43. data/config/syntax/Io.json +142 -0
  44. data/config/syntax/Java.json +745 -0
  45. data/config/syntax/JavaProperties.json +42 -0
  46. data/config/syntax/JavaScript.json +446 -0
  47. data/config/syntax/LaTeX Beamer.json +65 -0
  48. data/config/syntax/LaTeX Log.json +88 -0
  49. data/config/syntax/LaTeX.json +962 -0
  50. data/config/syntax/Lighttpd.json +93 -0
  51. data/config/syntax/Lisp.json +101 -0
  52. data/config/syntax/Literate Haskell.json +55 -0
  53. data/config/syntax/Logtalk.json +289 -0
  54. data/config/syntax/Lua.json +146 -0
  55. data/config/syntax/M.json +744 -0
  56. data/config/syntax/MEL.json +161 -0
  57. data/config/syntax/MIPS.json +114 -0
  58. data/config/syntax/Mail.json +224 -0
  59. data/config/syntax/Makefile.json +66 -0
  60. data/config/syntax/Markdown.json +644 -0
  61. data/config/syntax/Modula-3.json +80 -0
  62. data/config/syntax/Movable Type.json +348 -0
  63. data/config/syntax/OCaml.json +1391 -0
  64. data/config/syntax/Objective-C++.json +21 -0
  65. data/config/syntax/OpenGL.json +24 -0
  66. data/config/syntax/PHP.json +2184 -0
  67. data/config/syntax/Pascal.json +128 -0
  68. data/config/syntax/Perl.json +2091 -0
  69. data/config/syntax/Plain text.json +49 -0
  70. data/config/syntax/Processing.json +188 -0
  71. data/config/syntax/Quake3 Config.json +54 -0
  72. data/config/syntax/R.json +157 -0
  73. data/config/syntax/Rez.json +137 -0
  74. data/config/syntax/Ruby on Rails.json +170 -0
  75. data/config/syntax/Ruby.json +1753 -0
  76. data/config/syntax/SQL (Rails).json +31 -0
  77. data/config/syntax/SQL.json +435 -0
  78. data/config/syntax/SWIG.json +96 -0
  79. data/config/syntax/Scheme.json +359 -0
  80. data/config/syntax/Shell-Unix-Generic.json +1198 -0
  81. data/config/syntax/Slate.json +265 -0
  82. data/config/syntax/Smarty.json +110 -0
  83. data/config/syntax/Standard ML.json +322 -0
  84. data/config/syntax/Subversion commit message.json +62 -0
  85. data/config/syntax/Tcl.json +278 -0
  86. data/config/syntax/TeX Math.json +83 -0
  87. data/config/syntax/TeX.json +157 -0
  88. data/config/syntax/Textile.json +273 -0
  89. data/config/syntax/Twiki.json +436 -0
  90. data/config/syntax/Vectorscript.json +97 -0
  91. data/config/syntax/XML strict.json +148 -0
  92. data/config/syntax/XML.json +301 -0
  93. data/config/syntax/XSL.json +96 -0
  94. data/config/syntax/YAML.json +293 -0
  95. data/config/syntax/iCalendar.json +51 -0
  96. data/config/syntax/reStructuredText.json +403 -0
  97. data/config/theme/Active4D.json +260 -0
  98. data/config/theme/All Hallow's Eve.json +171 -0
  99. data/config/theme/Amy.json +359 -0
  100. data/config/theme/BBEdit.json +269 -0
  101. data/config/theme/Bespin.json +322 -0
  102. data/config/theme/Blackboard.json +215 -0
  103. data/config/theme/BoysAndGirls01.json +156 -0
  104. data/config/theme/Brilliance Black.json +1695 -0
  105. data/config/theme/Brilliance Dull.json +1451 -0
  106. data/config/theme/Classic Modified.json +288 -0
  107. data/config/theme/Cobalt.json +345 -0
  108. data/config/theme/Cool Glow.json +215 -0
  109. data/config/theme/Dawn.json +258 -0
  110. data/config/theme/Eiffel.json +270 -0
  111. data/config/theme/Espresso Libre.json +247 -0
  112. data/config/theme/Fluidvision.json +272 -0
  113. data/config/theme/IDLE.json +159 -0
  114. data/config/theme/LAZY.json +178 -0
  115. data/config/theme/Mac Classic.json +277 -0
  116. data/config/theme/MagicWB (Amiga).json +231 -0
  117. data/config/theme/Merbivore Soft.json +181 -0
  118. data/config/theme/Merbivore.json +181 -0
  119. data/config/theme/Monokai.json +177 -0
  120. data/config/theme/Notepad2.json +166 -0
  121. data/config/theme/Pastels on Dark.json +437 -0
  122. data/config/theme/RubyBlue.json +226 -0
  123. data/config/theme/Sin City 2.json +361 -0
  124. data/config/theme/Slate.json +270 -0
  125. data/config/theme/Slush & Poppies.json +232 -0
  126. data/config/theme/SpaceCadet.json +143 -0
  127. data/config/theme/Sunburst.json +415 -0
  128. data/config/theme/Twilight BG FG.json +633 -0
  129. data/config/theme/Twilight.json +321 -0
  130. data/config/theme/Whys Poignant.json +119 -0
  131. data/config/theme/Zenburnesque.json +237 -0
  132. data/config/theme/barf.json +155 -0
  133. data/config/theme/fake.json +418 -0
  134. data/config/theme/happydeluxe.json +114 -0
  135. data/config/theme/iLife 05.json +393 -0
  136. data/config/theme/iPlastic.json +177 -0
  137. data/config/theme/mintBlue Dark.json +414 -0
  138. data/config/theme/mintBlue.json +415 -0
  139. data/config/theme/monoindustrial.json +276 -0
  140. data/config/theme/starlight.json +67 -0
  141. data/config/tutorial +74 -0
  142. data/config/welcome +115 -0
  143. data/help/index.verh +14 -0
  144. data/lib/ver.rb +156 -0
  145. data/lib/ver/entry.rb +97 -0
  146. data/lib/ver/keymap.rb +96 -0
  147. data/lib/ver/layout.rb +107 -0
  148. data/lib/ver/methods.rb +19 -0
  149. data/lib/ver/methods/completion.rb +116 -0
  150. data/lib/ver/methods/control.rb +340 -0
  151. data/lib/ver/methods/insert.rb +6 -0
  152. data/lib/ver/methods/move.rb +65 -0
  153. data/lib/ver/methods/search.rb +33 -0
  154. data/lib/ver/methods/select.rb +145 -0
  155. data/lib/ver/methods/views.rb +21 -0
  156. data/lib/ver/mode.rb +160 -0
  157. data/lib/ver/options.rb +207 -0
  158. data/lib/ver/plist.rb +106 -0
  159. data/lib/ver/status.rb +67 -0
  160. data/lib/ver/syntax.rb +68 -0
  161. data/lib/ver/syntax/detector.rb +53 -0
  162. data/lib/ver/syntax/processor.rb +48 -0
  163. data/lib/ver/text.rb +374 -0
  164. data/lib/ver/textpow.rb +357 -0
  165. data/lib/ver/theme.rb +162 -0
  166. data/lib/ver/vendor/fuzzy_file_finder.rb +340 -0
  167. data/lib/ver/view.rb +163 -0
  168. data/lib/ver/view/entry.rb +28 -0
  169. data/lib/ver/view/list.rb +137 -0
  170. data/lib/ver/view/list/buffer.rb +27 -0
  171. data/lib/ver/view/list/fuzzy_file_finder.rb +44 -0
  172. data/lib/ver/view/list/syntax.rb +13 -0
  173. data/lib/ver/view/list/theme.rb +13 -0
  174. data/spec/keymap.rb +224 -0
  175. data/tasks/bacon.rake +49 -0
  176. data/tasks/changelog.rake +18 -0
  177. data/tasks/gem.rake +22 -0
  178. data/tasks/gem_installer.rake +76 -0
  179. data/tasks/grancher.rake +12 -0
  180. data/tasks/install_dependencies.rake +6 -0
  181. data/tasks/manifest.rake +4 -0
  182. data/tasks/plist2json.rake +35 -0
  183. data/tasks/rcov.rake +18 -0
  184. data/tasks/release.rake +12 -0
  185. data/tasks/reversion.rake +8 -0
  186. data/tasks/syntax_list.rake +31 -0
  187. data/ver.gemspec +29 -0
  188. metadata +241 -0
@@ -0,0 +1,265 @@
1
+ {
2
+ "fileTypes": [
3
+ "slate"
4
+ ],
5
+ "foldingStartMarker": "^\\s*[_A-z0-9]+@.+$",
6
+ "foldingStopMarker": "^.*(\\])[A-z ]*\\.$",
7
+ "keyEquivalent": "^~S",
8
+ "name": "Slate",
9
+ "patterns": [
10
+ {
11
+ "match": "\\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|loop|ifNil:|ifNotNil:|ifNotNilDo:|if:|then:|else:|do:|\\^|error:|warn:|signal)\\b",
12
+ "name": "keyword.control.slate"
13
+ },
14
+ {
15
+ "match": "\\b(clone|new|copy|resend|forwardTo:|is:|isReally:|as:|[-+=<>,;\/\\\\*]+)\\b",
16
+ "name": "keyword.operator.slate"
17
+ },
18
+ {
19
+ "match": "&[A-Za-z0-9_]+:?",
20
+ "name": "keyword.other.name-of-parameter.slate"
21
+ },
22
+ {
23
+ "match": "\\b(lobby|it|thisContext|here)\\b",
24
+ "name": "variable.language.slate"
25
+ },
26
+ {
27
+ "begin": "\"",
28
+ "beginCaptures": {
29
+ "0": {
30
+ "name": "punctuation.definition.string.begin.slate"
31
+ }
32
+ },
33
+ "end": "\"",
34
+ "endCaptures": {
35
+ "0": {
36
+ "name": "punctuation.definition.string.end.slate"
37
+ }
38
+ },
39
+ "name": "string.quoted.double.slate",
40
+ "patterns": [
41
+ {
42
+ "match": "\\\\.",
43
+ "name": "constant.character.escape.slate"
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "begin": "'",
49
+ "beginCaptures": {
50
+ "0": {
51
+ "name": "punctuation.definition.string.begin.slate"
52
+ }
53
+ },
54
+ "end": "'",
55
+ "endCaptures": {
56
+ "0": {
57
+ "name": "punctuation.definition.string.end.slate"
58
+ }
59
+ },
60
+ "name": "string.quoted.single.slate",
61
+ "patterns": [
62
+ {
63
+ "match": "\\\\.",
64
+ "name": "constant.character.escape.slate"
65
+ }
66
+ ]
67
+ },
68
+ {
69
+ "begin": "\\#\\{",
70
+ "beginCaptures": {
71
+ "0": {
72
+ "name": "punctuation.definition.array.begin.slate"
73
+ }
74
+ },
75
+ "end": "\\}",
76
+ "endCaptures": {
77
+ "0": {
78
+ "name": "punctuation.definition.array.end.slate"
79
+ }
80
+ },
81
+ "name": "meta.array.slate",
82
+ "patterns": [
83
+ {
84
+ "include": "#nest_curly"
85
+ },
86
+ {
87
+ "include": "$self"
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ "begin": "\\#\\(",
93
+ "beginCaptures": {
94
+ "0": {
95
+ "name": "punctuation.definition.array.begin.slate"
96
+ }
97
+ },
98
+ "comment": "Should restrict contents to literals.",
99
+ "end": "\\)",
100
+ "endCaptures": {
101
+ "0": {
102
+ "name": "punctuation.definition.array.end.slate"
103
+ }
104
+ },
105
+ "name": "meta.array.literal.slate",
106
+ "patterns": [
107
+ {
108
+ "include": "#nest_parens"
109
+ }
110
+ ]
111
+ },
112
+ {
113
+ "match": "#([[:lower:]]|_|[+=\\-\/!%&*|><~?])(\\w|[+=\\-\/!%&*|><~?:])*",
114
+ "name": "meta.block.compact.slate"
115
+ },
116
+ {
117
+ "begin": "(\\[)(?:\\s*\\|\\s*((?::\\w+\\s+)*:\\w+)\\s*\\|)?",
118
+ "captures": {
119
+ "1": {
120
+ "name": "punctuation.section.block.slate"
121
+ },
122
+ "2": {
123
+ "name": "variable.parameter.block.slate"
124
+ }
125
+ },
126
+ "end": "(\\])",
127
+ "name": "meta.block.slate",
128
+ "patterns": [
129
+ {
130
+ "match": "\\s+",
131
+ "name": "meta.block.header.slate"
132
+ },
133
+ {
134
+ "begin": "(?:\\|(\\s*(?:\\w+\\s+)*\\w+\\s*)?\\||(?=[^\\s|]))",
135
+ "captures": {
136
+ "1": {
137
+ "name": "variable.other.local.slate"
138
+ }
139
+ },
140
+ "end": "(?=\\])",
141
+ "name": "meta.block.content.slate",
142
+ "patterns": [
143
+ {
144
+ "include": "$base"
145
+ }
146
+ ]
147
+ }
148
+ ]
149
+ },
150
+ {
151
+ "begin": "define: #(\\w+)",
152
+ "beginCaptures": {
153
+ "1": {
154
+ "name": "entity.name.type.slate"
155
+ }
156
+ },
157
+ "end": "\\s",
158
+ "name": "meta.definition.slate"
159
+ },
160
+ {
161
+ "match": "\\b(:\\w+|\\w+@)",
162
+ "name": "variable.parameter.slate"
163
+ },
164
+ {
165
+ "match": "\\b(\/\\\\|\\\\\/|and:|or:|not|xor:)\\b",
166
+ "name": "keyword.operator.logical.slate"
167
+ },
168
+ {
169
+ "match": "\\b(True|False|Nil|NoRole)\\b",
170
+ "name": "constant.language.slate"
171
+ },
172
+ {
173
+ "match": "\\b[+-]?([0-9]+[Rr][0-9A-Za-z]+([.][0-9A-Za-z]+)?|[0-9]+([.][0-9]+)?)\\b",
174
+ "name": "constant.numeric.slate"
175
+ },
176
+ {
177
+ "captures": {
178
+ "1": {
179
+ "name": "punctuation.definition.constant.slate"
180
+ }
181
+ },
182
+ "match": "(\\$)(\\S|\\\\[\\\\ntsbre0avf])",
183
+ "name": "constant.character.slate"
184
+ },
185
+ {
186
+ "captures": {
187
+ "1": {
188
+ "name": "punctuation.definition.constant.slate"
189
+ }
190
+ },
191
+ "match": "(#)\\S+",
192
+ "name": "constant.other.slate"
193
+ },
194
+ {
195
+ "match": "(\\b\\w+ traits\\b)",
196
+ "name": "support.class.slate"
197
+ },
198
+ {
199
+ "match": "\\`[-A-Za-z0-9+=*^<>?,;\/\\\\]+:?",
200
+ "name": "keyword.control.import.slate"
201
+ },
202
+ {
203
+ "match": "\\s+$",
204
+ "name": "invalid.deprecated.trailing-whitespace.slate"
205
+ },
206
+ {
207
+ "include": "#keyword"
208
+ },
209
+ {
210
+ "begin": "(\\w+)@",
211
+ "beginCaptures": {
212
+ "1": {
213
+ "name": "variable.parameter.function.slate"
214
+ }
215
+ },
216
+ "end": "($|\\[)",
217
+ "endCaptures": {
218
+ "1": {
219
+ "name": "entity.name.function.slate"
220
+ }
221
+ },
222
+ "name": "meta.function.unary.slate",
223
+ "patterns": [
224
+ {
225
+ "include": "$self"
226
+ }
227
+ ]
228
+ }
229
+ ],
230
+ "repository": {
231
+ "binary-selector": {
232
+ "match": "\\b([=+-\\\/?<>,;^*]+[A-Za-z0-9_=+-\\\/?<>,;^*]+[=+-\\\/?<>,;^*]+)\\b"
233
+ },
234
+ "escaped-char": {
235
+ "match": "\\\\."
236
+ },
237
+ "keyword": {
238
+ "match": "\\b([A-Za-z_][A-Za-z_0-9]+:)\\b",
239
+ "name": "variable.other.slate"
240
+ },
241
+ "nest_curly": {
242
+ "begin": "\\{",
243
+ "end": "\\}",
244
+ "patterns": [
245
+ {
246
+ "include": "#nest_curly"
247
+ }
248
+ ]
249
+ },
250
+ "nest_parens": {
251
+ "begin": "\\(",
252
+ "end": "\\)",
253
+ "patterns": [
254
+ {
255
+ "include": "#nest_parens"
256
+ }
257
+ ]
258
+ },
259
+ "unary-selector": {
260
+ "match": "\\b([A-Za-z_][A-Za-z_0-9]+)\\b"
261
+ }
262
+ },
263
+ "scopeName": "source.slate",
264
+ "uuid": "A7676F36-C7D2-4C3E-8519-944577C66C6A"
265
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "fileTypes": [
3
+
4
+ ],
5
+ "foldingStartMarker": "(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\b.*?>|\\{\\{?(if|foreach|capture|literal|foreach|php|section|strip)|\\{\\s*$)",
6
+ "foldingStopMarker": "(<\/(?i:(head|table|tr|div|style|script|ul|ol|form|dl))>|\\{\\{?\/(if|foreach|capture|literal|foreach|php|section|strip)|(^|\\s)\\})",
7
+ "name": "Smarty",
8
+ "patterns": [
9
+ {
10
+ "begin": "(?<=\\{)\\*",
11
+ "captures": {
12
+ "0": {
13
+ "name": "punctuation.definition.comment.smarty"
14
+ }
15
+ },
16
+ "end": "\\*(?=\\})",
17
+ "name": "comment.block.smarty"
18
+ },
19
+ {
20
+ "match": "\\b(if|else|elseif|foreach|foreachelse|section)\\b",
21
+ "name": "keyword.control.smarty"
22
+ },
23
+ {
24
+ "match": "\\b(capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|html_[a-z_]*)\\b",
25
+ "name": "support.function.built-in.smarty"
26
+ },
27
+ {
28
+ "match": "\\b(and|or)\\b",
29
+ "name": "keyword.operator.smarty"
30
+ },
31
+ {
32
+ "match": "\\b(eq|neq|gt|lt|gte|lte|is|not|even|odd|not|mod|div|by)\\b",
33
+ "name": "keyword.operator.other.smarty"
34
+ },
35
+ {
36
+ "match": "\\|(capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)",
37
+ "name": "support.function.variable-modifier.smarty"
38
+ },
39
+ {
40
+ "match": "\\b[a-zA-Z]+=",
41
+ "name": "meta.attribute.smarty"
42
+ },
43
+ {
44
+ "begin": "'",
45
+ "beginCaptures": {
46
+ "0": {
47
+ "name": "punctuation.definition.string.begin.smarty"
48
+ }
49
+ },
50
+ "end": "'",
51
+ "endCaptures": {
52
+ "0": {
53
+ "name": "punctuation.definition.string.end.smarty"
54
+ }
55
+ },
56
+ "name": "string.quoted.single.smarty",
57
+ "patterns": [
58
+ {
59
+ "match": "\\\\.",
60
+ "name": "constant.character.escape.smarty"
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ "begin": "\"",
66
+ "beginCaptures": {
67
+ "0": {
68
+ "name": "punctuation.definition.string.begin.smarty"
69
+ }
70
+ },
71
+ "end": "\"",
72
+ "endCaptures": {
73
+ "0": {
74
+ "name": "punctuation.definition.string.end.smarty"
75
+ }
76
+ },
77
+ "name": "string.quoted.double.smarty",
78
+ "patterns": [
79
+ {
80
+ "match": "\\\\.",
81
+ "name": "constant.character.escape.smarty"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "captures": {
87
+ "1": {
88
+ "name": "punctuation.definition.variable.smarty"
89
+ }
90
+ },
91
+ "match": "\\b(\\$)Smarty\\.",
92
+ "name": "variable.other.global.smarty"
93
+ },
94
+ {
95
+ "captures": {
96
+ "1": {
97
+ "name": "punctuation.definition.variable.smarty"
98
+ }
99
+ },
100
+ "match": "(\\$)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\\b",
101
+ "name": "variable.other.smarty"
102
+ },
103
+ {
104
+ "match": "\\b(TRUE|FALSE|true|false)\\b",
105
+ "name": "constant.language.smarty"
106
+ }
107
+ ],
108
+ "scopeName": "source.smarty",
109
+ "uuid": "4D6BBA54-E3FC-4296-9CA1-662B2AD537C6"
110
+ }
@@ -0,0 +1,322 @@
1
+ {
2
+ "fileTypes": [
3
+ "sml",
4
+ "sig"
5
+ ],
6
+ "foldingStartMarker": "\\(\\*|\\b(struct|sig)\\b",
7
+ "foldingStopMarker": "\\*\\)|\\bend\\b",
8
+ "keyEquivalent": "^~S",
9
+ "name": "Standard ML",
10
+ "patterns": [
11
+ {
12
+ "include": "#comments"
13
+ },
14
+ {
15
+ "match": "\\b(val|datatype|struct|as|let|in|abstype|local|where|case|of|fn|raise|exception|handle|ref|infix|infixr|before|end|structure|withtype)\\b",
16
+ "name": "keyword.other.ml"
17
+ },
18
+ {
19
+ "begin": "\\b(let)\\b",
20
+ "captures": {
21
+ "1": {
22
+ "name": "keyword.other.ml"
23
+ },
24
+ "2": {
25
+ "name": "keyword.other.ml"
26
+ }
27
+ },
28
+ "end": "\\b(end)\\b",
29
+ "name": "meta.exp.let.ml",
30
+ "patterns": [
31
+ {
32
+ "include": "$self"
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "include": "#sigexp"
38
+ },
39
+ {
40
+ "match": "\\b(if|then|else)\\b",
41
+ "name": "keyword.control.ml"
42
+ },
43
+ {
44
+ "begin": "\\b(fun|and)\\s+([\\w]+)\\b",
45
+ "captures": {
46
+ "1": {
47
+ "name": "keyword.control.fun.ml"
48
+ },
49
+ "2": {
50
+ "name": "entity.name.function.ml"
51
+ }
52
+ },
53
+ "end": "(?=val|type|eqtype|datatype|structure|local)",
54
+ "name": "meta.definition.fun.ml",
55
+ "patterns": [
56
+ {
57
+ "include": "source.ml"
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "begin": "\"",
63
+ "beginCaptures": {
64
+ "0": {
65
+ "name": "punctuation.definition.string.begin.ml"
66
+ }
67
+ },
68
+ "end": "\"",
69
+ "endCaptures": {
70
+ "0": {
71
+ "name": "punctuation.definition.string.end.ml"
72
+ }
73
+ },
74
+ "name": "string.quoted.double.ml",
75
+ "patterns": [
76
+ {
77
+ "match": "\\\\.",
78
+ "name": "constant.character.escape.ml"
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "captures": {
84
+ "1": {
85
+ "name": "punctuation.definition.constant.ml"
86
+ },
87
+ "3": {
88
+ "name": "punctuation.definition.constant.ml"
89
+ }
90
+ },
91
+ "match": "(#\")(\\\\)?.(\")",
92
+ "name": "constant.character.ml"
93
+ },
94
+ {
95
+ "match": "\\b\\d*\\.?\\d+\\b",
96
+ "name": "constant.numeric.ml"
97
+ },
98
+ {
99
+ "match": "\\b(andalso|orelse|not)\\b",
100
+ "name": "keyword.operator.logical.ml"
101
+ },
102
+ {
103
+ "begin": "(?x)\\b\n\t\t\t\t\t(functor|structure|signature|funsig)\\s+\n\t\t\t\t\t(\\w+)\\s* # identifier",
104
+ "captures": {
105
+ "1": {
106
+ "name": "storage.type.module.binder.ml"
107
+ },
108
+ "2": {
109
+ "name": "entity.name.type.module.ml"
110
+ }
111
+ },
112
+ "end": "(?==|:|:>|\\()",
113
+ "name": "meta.module.dec.ml"
114
+ },
115
+ {
116
+ "match": "\\b(open)\\b",
117
+ "name": "keyword.other.module.ml"
118
+ },
119
+ {
120
+ "match": "\\b(nil|true|false|NONE|SOME)\\b",
121
+ "name": "constant.language.ml"
122
+ },
123
+ {
124
+ "begin": "\\b(eqtype|type)\\s+([a-zA-Z][a-zA-Z0-9'_]*)\\s+=",
125
+ "captures": {
126
+ "1": {
127
+ "name": "keyword.other.typeabbrev.ml"
128
+ },
129
+ "2": {
130
+ "name": "variable.other.typename.ml"
131
+ }
132
+ },
133
+ "end": "(?==|end|fun|structure|functor|val|type|eqtype|where|datatype|exception)",
134
+ "name": "meta.typeabbrev.ml",
135
+ "patterns": [
136
+
137
+ ]
138
+ }
139
+ ],
140
+ "repository": {
141
+ "comments": {
142
+ "patterns": [
143
+ {
144
+ "begin": "\\(\\*",
145
+ "captures": {
146
+ "0": {
147
+ "name": "punctuation.definition.comment.ml"
148
+ }
149
+ },
150
+ "end": "\\*\\)",
151
+ "name": "comment.block.ml",
152
+ "patterns": [
153
+ {
154
+ "include": "#comments"
155
+ }
156
+ ]
157
+ }
158
+ ]
159
+ },
160
+ "sigexp": {
161
+ "patterns": [
162
+ {
163
+ "begin": "\\b(sig)\\b",
164
+ "captures": {
165
+ "1": {
166
+ "name": "keyword.other.delimiter.ml"
167
+ },
168
+ "2": {
169
+ "name": "keyword.other.delimiter.ml"
170
+ }
171
+ },
172
+ "end": "\\b(end)\\b",
173
+ "name": "meta.module.sigdec.ml",
174
+ "patterns": [
175
+ {
176
+ "include": "#comments"
177
+ },
178
+ {
179
+ "include": "#spec"
180
+ }
181
+ ]
182
+ }
183
+ ]
184
+ },
185
+ "spec": {
186
+ "patterns": [
187
+ {
188
+ "captures": {
189
+ "1": {
190
+ "name": "keyword.other.ml"
191
+ },
192
+ "2": {
193
+ "name": "entity.name.type.abbrev.ml"
194
+ }
195
+ },
196
+ "match": "\\b(type)\\s+([a-zA-Z][a-zA-Z0-9'_]*)",
197
+ "name": "meta.spec.ml.type"
198
+ },
199
+ {
200
+ "begin": "\\b(datatype)\\s+(\\(.*\\))?\\s*([a-zA-Z][a-zA-Z0-9'_]*)\\s*(?==)",
201
+ "captures": {
202
+ "1": {
203
+ "name": "keyword.other.ml"
204
+ },
205
+ "3": {
206
+ "name": "entity.name.type.datatype.ml"
207
+ }
208
+ },
209
+ "end": "(?=val|type|eqtype|datatype|structure|include|\\(\\*)",
210
+ "name": "meta.spec.ml.datatype",
211
+ "patterns": [
212
+ {
213
+ "captures": {
214
+ "1": {
215
+ "name": "keyword.other.ml"
216
+ },
217
+ "2": {
218
+ "name": "entity.name.type.datatype.ml"
219
+ }
220
+ },
221
+ "match": "\\b(and)\\s+([a-zA-Z][a-zA-Z0-9'_]*)\\s*(?==)",
222
+ "name": "meta.spec.ml.datatype"
223
+ },
224
+ {
225
+ "captures": {
226
+ "1": {
227
+ "name": "variable.other.dcon.ml"
228
+ },
229
+ "2": {
230
+ "name": "keyword.other.ml"
231
+ }
232
+ },
233
+ "match": "(?x)\n\t\t\t\t\t\t\t=\\s*([a-zA-Z][a-zA-Z0-9'_]*)(\\s+of)?",
234
+ "name": "meta.datatype.rule.main.ml"
235
+ },
236
+ {
237
+ "captures": {
238
+ "1": {
239
+ "name": "variable.other.dcon.ml"
240
+ },
241
+ "2": {
242
+ "name": "keyword.other.ml"
243
+ }
244
+ },
245
+ "match": "\\|\\s*([a-zA-Z][a-zA-Z0-9'_]*)(\\s+of)?",
246
+ "name": "meta.datatype.rule.other.ml"
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ "captures": {
252
+ "1": {
253
+ "name": "keyword.other.ml"
254
+ }
255
+ },
256
+ "match": "\\b(val)\\s*([^:]+)\\s*:",
257
+ "name": "meta.spec.ml.val"
258
+ },
259
+ {
260
+ "begin": "\\b(exception)\\s*(\\w+)\\s*",
261
+ "captures": {
262
+ "1": {
263
+ "name": "keyword.other.ml"
264
+ },
265
+ "2": {
266
+ "name": "entity.name.type.exception.ml"
267
+ }
268
+ },
269
+ "end": "(?=val|type|eqtype|datatype|structure|include|exception|end)",
270
+ "name": "meta.spec.ml.exception"
271
+ },
272
+ {
273
+ "begin": "\\b(structure)\\s*(\\w+)\\s*:",
274
+ "captures": {
275
+ "1": {
276
+ "name": "keyword.other.ml"
277
+ },
278
+ "2": {
279
+ "name": "entity.name.type.module.ml"
280
+ }
281
+ },
282
+ "end": "(?=val|type|eqtype|datatype|structure|include|exception|end)",
283
+ "name": "meta.spec.ml.structure",
284
+ "patterns": [
285
+ {
286
+ "match": "\\b(sharing type)\\b",
287
+ "name": "keyword.other.ml"
288
+ },
289
+ {
290
+ "match": "\\b(sharing)\\b",
291
+ "name": "keyword.other.ml"
292
+ },
293
+ {
294
+ "match": "\\b(where)\\b",
295
+ "name": "keyword.other.ml"
296
+ },
297
+ {
298
+ "include": "#sigexp"
299
+ },
300
+ {
301
+ "include": "#comments"
302
+ }
303
+ ]
304
+ },
305
+ {
306
+ "captures": {
307
+ "1": {
308
+ "name": "keyword.other.ml"
309
+ }
310
+ },
311
+ "match": "\\b(include)\\b",
312
+ "name": "meta.spec.ml.include"
313
+ },
314
+ {
315
+ "include": "#comments"
316
+ }
317
+ ]
318
+ }
319
+ },
320
+ "scopeName": "source.ml",
321
+ "uuid": "9B148AEA-F723-4EDE-8B7F-2F4FD730BC3A"
322
+ }