ultraviolet 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/Manifest.txt +216 -0
- data/README.txt +52 -0
- data/Rakefile +51 -0
- data/bin/theme2render +104 -0
- data/bin/uv +162 -0
- data/lib/uv.rb +84 -0
- data/lib/uv/html_processor.rb +89 -0
- data/render/old/txt2tags.render +131 -0
- data/render/xhtml/active4d.render +105 -0
- data/render/xhtml/all_hallows_eve.render +69 -0
- data/render/xhtml/amy.render +144 -0
- data/render/xhtml/blackboard.render +84 -0
- data/render/xhtml/brilliance_black.render +575 -0
- data/render/xhtml/brilliance_dull.render +534 -0
- data/render/xhtml/cobalt.render +135 -0
- data/render/xhtml/dawn.render +99 -0
- data/render/xhtml/eiffel.render +105 -0
- data/render/xhtml/espresso_libre.render +96 -0
- data/render/xhtml/files/css/active4d.css +114 -0
- data/render/xhtml/files/css/all_hallows_eve.css +72 -0
- data/render/xhtml/files/css/amy.css +144 -0
- data/render/xhtml/files/css/blackboard.css +88 -0
- data/render/xhtml/files/css/brilliance_black.css +632 -0
- data/render/xhtml/files/css/brilliance_dull.css +579 -0
- data/render/xhtml/files/css/cobalt.css +149 -0
- data/render/xhtml/files/css/dawn.css +121 -0
- data/render/xhtml/files/css/eiffel.css +121 -0
- data/render/xhtml/files/css/espresso_libre.css +109 -0
- data/render/xhtml/files/css/idle.css +62 -0
- data/render/xhtml/files/css/iplastic.css +80 -0
- data/render/xhtml/files/css/lazy.css +73 -0
- data/render/xhtml/files/css/mac_classic.css +123 -0
- data/render/xhtml/files/css/magicwb_amiga.css +101 -0
- data/render/xhtml/files/css/pastels_on_dark.css +188 -0
- data/render/xhtml/files/css/slush_poppies.css +85 -0
- data/render/xhtml/files/css/spacecadet.css +51 -0
- data/render/xhtml/files/css/sunburst.css +180 -0
- data/render/xhtml/files/css/twilight.css +137 -0
- data/render/xhtml/files/css/zenburnesque.css +88 -0
- data/render/xhtml/idle.render +66 -0
- data/render/xhtml/iplastic.render +72 -0
- data/render/xhtml/lazy.render +69 -0
- data/render/xhtml/mac_classic.render +108 -0
- data/render/xhtml/magicwb_amiga.render +90 -0
- data/render/xhtml/pastels_on_dark.render +177 -0
- data/render/xhtml/slush_poppies.render +96 -0
- data/render/xhtml/spacecadet.render +54 -0
- data/render/xhtml/sunburst.render +159 -0
- data/render/xhtml/twilight.render +126 -0
- data/render/xhtml/zenburnesque.render +99 -0
- data/syntax/actionscript.syntax +97 -0
- data/syntax/active4d.syntax +276 -0
- data/syntax/active4d_html.syntax +311 -0
- data/syntax/active4d_ini.syntax +50 -0
- data/syntax/active4d_library.syntax +21 -0
- data/syntax/ada.syntax +33 -0
- data/syntax/antlr.syntax +128 -0
- data/syntax/apache.syntax +176 -0
- data/syntax/applescript.syntax +384 -0
- data/syntax/asp.syntax +70 -0
- data/syntax/asp_vb.net.syntax +129 -0
- data/syntax/bibtex.syntax +151 -0
- data/syntax/blog_html.syntax +41 -0
- data/syntax/blog_markdown.syntax +42 -0
- data/syntax/blog_text.syntax +27 -0
- data/syntax/blog_textile.syntax +27 -0
- data/syntax/buggy/nemerle.yaml +74 -0
- data/syntax/build.syntax +53 -0
- data/syntax/bulletin_board.syntax +287 -0
- data/syntax/c++.syntax +109 -0
- data/syntax/c.syntax +326 -0
- data/syntax/cake.syntax +55 -0
- data/syntax/camlp4.syntax +36 -0
- data/syntax/coldfusion.syntax +118 -0
- data/syntax/context_free.syntax +176 -0
- data/syntax/cs.syntax +59 -0
- data/syntax/css.syntax +190 -0
- data/syntax/css_experimental.syntax +1925 -0
- data/syntax/csv.syntax +68 -0
- data/syntax/d.syntax +138 -0
- data/syntax/diff.syntax +81 -0
- data/syntax/dokuwiki.syntax +204 -0
- data/syntax/dot.syntax +47 -0
- data/syntax/doxygen.syntax +43 -0
- data/syntax/dylan.syntax +62 -0
- data/syntax/eiffel.syntax +78 -0
- data/syntax/erlang.syntax +922 -0
- data/syntax/f-script.syntax +80 -0
- data/syntax/fortran.syntax +141 -0
- data/syntax/fxscript.syntax +142 -0
- data/syntax/greasemonkey.syntax +34 -0
- data/syntax/gri.syntax +83 -0
- data/syntax/groovy.syntax +189 -0
- data/syntax/gtd2_text.syntax +31 -0
- data/syntax/gtdalt.syntax +143 -0
- data/syntax/haml.syntax +88 -0
- data/syntax/haskell.syntax +88 -0
- data/syntax/html-asp.syntax +27 -0
- data/syntax/html.syntax +362 -0
- data/syntax/html_django.syntax +36 -0
- data/syntax/html_for_asp.net.syntax +424 -0
- data/syntax/html_mason.syntax +119 -0
- data/syntax/html_rails.syntax +40 -0
- data/syntax/html_tcl.syntax +26 -0
- data/syntax/icalendar.syntax +32 -0
- data/syntax/inform.syntax +48 -0
- data/syntax/ini.syntax +54 -0
- data/syntax/installer_distribution_script.syntax +77 -0
- data/syntax/io.syntax +81 -0
- data/syntax/java.syntax +211 -0
- data/syntax/javaproperties.syntax +20 -0
- data/syntax/javascript.syntax +255 -0
- data/syntax/javascript_+_prototype.syntax +72 -0
- data/syntax/javascript_+_prototype_bracketed.syntax +140 -0
- data/syntax/jquery_javascript.syntax +114 -0
- data/syntax/json.syntax +136 -0
- data/syntax/languagedefinition.syntax +697 -0
- data/syntax/latex.syntax +566 -0
- data/syntax/latex_beamer.syntax +41 -0
- data/syntax/latex_log.syntax +50 -0
- data/syntax/latex_memoir.syntax +64 -0
- data/syntax/lexflex.syntax +219 -0
- data/syntax/lighttpd.syntax +54 -0
- data/syntax/lilypond.syntax +492 -0
- data/syntax/lisp.syntax +61 -0
- data/syntax/literate_haskell.syntax +24 -0
- data/syntax/logo.syntax +29 -0
- data/syntax/logtalk.syntax +152 -0
- data/syntax/lua.syntax +86 -0
- data/syntax/m.syntax +142 -0
- data/syntax/macports_portfile.syntax +143 -0
- data/syntax/mail.syntax +118 -0
- data/syntax/makefile.syntax +35 -0
- data/syntax/man.syntax +17 -0
- data/syntax/markdown.syntax +543 -0
- data/syntax/mediawiki.syntax +567 -0
- data/syntax/mel.syntax +92 -0
- data/syntax/mips.syntax +66 -0
- data/syntax/mod_perl.syntax +50 -0
- data/syntax/modula-3.syntax +47 -0
- data/syntax/moinmoin.syntax +189 -0
- data/syntax/mootools.syntax +572 -0
- data/syntax/movable_type.syntax +162 -0
- data/syntax/multimarkdown.syntax +39 -0
- data/syntax/objective-c++.syntax +18 -0
- data/syntax/objective-c.syntax +226 -0
- data/syntax/ocaml.syntax +764 -0
- data/syntax/ocamllex.syntax +167 -0
- data/syntax/ocamlyacc.syntax +184 -0
- data/syntax/old/YAML.yaml +160 -0
- data/syntax/old/txt2tags.yaml +139 -0
- data/syntax/opengl.syntax +14 -0
- data/syntax/pascal.syntax +77 -0
- data/syntax/perl.syntax +1075 -0
- data/syntax/php.syntax +678 -0
- data/syntax/plain_text.syntax +32 -0
- data/syntax/postscript.syntax +114 -0
- data/syntax/processing.syntax +106 -0
- data/syntax/prolog.syntax +40 -0
- data/syntax/property_list.syntax +645 -0
- data/syntax/python.syntax +865 -0
- data/syntax/python_django.syntax +21 -0
- data/syntax/qmake_project.syntax +114 -0
- data/syntax/qt_c++.syntax +26 -0
- data/syntax/quake3_config.syntax +32 -0
- data/syntax/r.syntax +81 -0
- data/syntax/r_console.syntax +16 -0
- data/syntax/ragel.syntax +201 -0
- data/syntax/rd_r_documentation.syntax +91 -0
- data/syntax/regexp.syntax +50 -0
- data/syntax/regular_expressions_oniguruma.syntax +107 -0
- data/syntax/regular_expressions_python.syntax +109 -0
- data/syntax/release_notes.syntax +37 -0
- data/syntax/remind.syntax +253 -0
- data/syntax/restructuredtext.syntax +250 -0
- data/syntax/rez.syntax +80 -0
- data/syntax/ruby.syntax +1035 -0
- data/syntax/ruby_experimental.syntax +145 -0
- data/syntax/ruby_on_rails.syntax +88 -0
- data/syntax/s5.syntax +69 -0
- data/syntax/scheme.syntax +347 -0
- data/syntax/scilab.syntax +41 -0
- data/syntax/setext.syntax +147 -0
- data/syntax/shell-unix-generic.syntax +384 -0
- data/syntax/slate.syntax +149 -0
- data/syntax/smarty.syntax +63 -0
- data/syntax/sql.syntax +237 -0
- data/syntax/sql_rails.syntax +18 -0
- data/syntax/ssh-config.syntax +33 -0
- data/syntax/standard_ml.syntax +45 -0
- data/syntax/strings_file.syntax +39 -0
- data/syntax/subversion_commit_message.syntax +36 -0
- data/syntax/sweave.syntax +84 -0
- data/syntax/swig.syntax +57 -0
- data/syntax/tcl.syntax +152 -0
- data/syntax/template_toolkit.syntax +121 -0
- data/syntax/tex.syntax +86 -0
- data/syntax/tex_math.syntax +49 -0
- data/syntax/textile.syntax +215 -0
- data/syntax/tsv.syntax +50 -0
- data/syntax/twiki.syntax +241 -0
- data/syntax/txt2tags.syntax +79 -0
- data/syntax/vectorscript.syntax +57 -0
- data/syntax/xhtml_1.0.syntax +4027 -0
- data/syntax/xml.syntax +179 -0
- data/syntax/xml_strict.syntax +92 -0
- data/syntax/xsl.syntax +60 -0
- data/syntax/yaml.syntax +160 -0
- data/syntax/yui_javascript.syntax +176 -0
- data/test/test_uv.rb +0 -0
- metadata +270 -0
@@ -0,0 +1,162 @@
|
|
1
|
+
---
|
2
|
+
name: Movable Type
|
3
|
+
fileTypes:
|
4
|
+
- mtml
|
5
|
+
firstLineMatch: <\$?MT
|
6
|
+
scopeName: text.html.mt
|
7
|
+
repository:
|
8
|
+
tag-stuff:
|
9
|
+
patterns:
|
10
|
+
- include: "#tag-generic-attribute"
|
11
|
+
- include: "#string-double-quoted"
|
12
|
+
- include: "#string-single-quoted"
|
13
|
+
string-double-quoted:
|
14
|
+
name: string.quoted.double.html
|
15
|
+
endCaptures:
|
16
|
+
"0":
|
17
|
+
name: punctuation.definition.string.end.html
|
18
|
+
begin: "\""
|
19
|
+
beginCaptures:
|
20
|
+
"0":
|
21
|
+
name: punctuation.definition.string.begin.html
|
22
|
+
end: "\""
|
23
|
+
patterns:
|
24
|
+
- include: "#embedded-code"
|
25
|
+
- include: "#entities"
|
26
|
+
mt-container-tag:
|
27
|
+
patterns:
|
28
|
+
- name: meta.tag.mt.container.html
|
29
|
+
endCaptures:
|
30
|
+
"0":
|
31
|
+
name: punctuation.definition.tag.mt
|
32
|
+
begin: (</?)(MT\w+)
|
33
|
+
beginCaptures:
|
34
|
+
"1":
|
35
|
+
name: punctuation.definition.tag.mt
|
36
|
+
"2":
|
37
|
+
name: entity.name.tag.mt
|
38
|
+
end: ">"
|
39
|
+
patterns:
|
40
|
+
- include: "#tag-stuff"
|
41
|
+
php:
|
42
|
+
patterns:
|
43
|
+
- name: source.php.embedded.html
|
44
|
+
captures:
|
45
|
+
"1":
|
46
|
+
name: punctuation.section.embedded.php
|
47
|
+
begin: (?:^\s*)(<\?(php|=)?)(?!.*\?>)
|
48
|
+
end: (\?>)(?:\s*$\n)?
|
49
|
+
patterns:
|
50
|
+
- include: "#php-source"
|
51
|
+
comment: match only multi-line PHP with leading whitespace
|
52
|
+
- name: source.php.embedded.html
|
53
|
+
captures:
|
54
|
+
"0":
|
55
|
+
name: punctuation.section.embedded.php
|
56
|
+
begin: <\?(php|=)?
|
57
|
+
end: \?>
|
58
|
+
patterns:
|
59
|
+
- include: "#php-source"
|
60
|
+
mt-variable-tag:
|
61
|
+
patterns:
|
62
|
+
- name: meta.tag.mt.variable.html
|
63
|
+
endCaptures:
|
64
|
+
"1":
|
65
|
+
name: variable.other.mt
|
66
|
+
"2":
|
67
|
+
name: punctuation.definition.tag.mt
|
68
|
+
begin: (<)(\$MT\w+)
|
69
|
+
beginCaptures:
|
70
|
+
"1":
|
71
|
+
name: punctuation.definition.tag.mt
|
72
|
+
"2":
|
73
|
+
name: variable.other.mt
|
74
|
+
end: (\$)?(>)
|
75
|
+
patterns:
|
76
|
+
- include: "#tag-stuff"
|
77
|
+
php-source:
|
78
|
+
patterns:
|
79
|
+
- name: comment.line.number-sign.ruby
|
80
|
+
captures:
|
81
|
+
"1":
|
82
|
+
name: punctuation.definition.comment.php
|
83
|
+
match: (#).*?(?=\?>)
|
84
|
+
- name: comment.line.double-slash.ruby
|
85
|
+
captures:
|
86
|
+
"1":
|
87
|
+
name: punctuation.definition.comment.php
|
88
|
+
match: (//).*?(?=\?>)
|
89
|
+
- include: source.php
|
90
|
+
entities:
|
91
|
+
patterns:
|
92
|
+
- name: constant.character.entity.html
|
93
|
+
captures:
|
94
|
+
"1":
|
95
|
+
name: punctuation.definition.constant.html
|
96
|
+
"3":
|
97
|
+
name: punctuation.definition.constant.html
|
98
|
+
match: (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)
|
99
|
+
- name: invalid.illegal.bad-ampersand.html
|
100
|
+
match: "&"
|
101
|
+
string-single-quoted:
|
102
|
+
name: string.quoted.single.html
|
103
|
+
endCaptures:
|
104
|
+
"0":
|
105
|
+
name: punctuation.definition.string.end.html
|
106
|
+
begin: "'"
|
107
|
+
beginCaptures:
|
108
|
+
"0":
|
109
|
+
name: punctuation.definition.string.begin.html
|
110
|
+
end: "'"
|
111
|
+
patterns:
|
112
|
+
- include: "#embedded-code"
|
113
|
+
- include: "#entities"
|
114
|
+
tag-generic-attribute:
|
115
|
+
name: entity.other.attribute-name.html
|
116
|
+
match: \b([a-zA-Z-_:]+)
|
117
|
+
ruby:
|
118
|
+
name: source.ruby.embedded.html
|
119
|
+
captures:
|
120
|
+
"0":
|
121
|
+
name: punctuation.section.embedded.ruby
|
122
|
+
begin: <%+(?!>)=?
|
123
|
+
end: -?%>
|
124
|
+
patterns:
|
125
|
+
- name: comment.line.number-sign.ruby
|
126
|
+
captures:
|
127
|
+
"1":
|
128
|
+
name: punctuation.definition.comment.ruby
|
129
|
+
match: (#).*?(?=-?%>)
|
130
|
+
- include: source.ruby
|
131
|
+
smarty:
|
132
|
+
name: source.smarty.embedded.xhtml
|
133
|
+
captures:
|
134
|
+
"0":
|
135
|
+
name: punctuation.section.embedded.smarty
|
136
|
+
begin: "{{|{"
|
137
|
+
end: "}}|}"
|
138
|
+
disabled: "1"
|
139
|
+
patterns:
|
140
|
+
- include: source.smarty
|
141
|
+
embedded-code:
|
142
|
+
patterns:
|
143
|
+
- include: "#php"
|
144
|
+
- include: "#ruby"
|
145
|
+
- include: "#smarty"
|
146
|
+
uuid: 7071B5CA-849A-4D88-A96E-DD725ED622BF
|
147
|
+
foldingStartMarker: (<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?>|<MT\w+\b.*?>|\{\{(if|foreach|capture|literal|foreach|php|section|strip)|\{\s*$)
|
148
|
+
patterns:
|
149
|
+
- include: "#mt-container-tag"
|
150
|
+
- include: "#mt-variable-tag"
|
151
|
+
- include: text.html.basic
|
152
|
+
comment: This is set to use XHTML standards, but you can change that by changing .strict to .basic for HTML standards
|
153
|
+
- name: source.smarty.embedded.html
|
154
|
+
captures:
|
155
|
+
"0":
|
156
|
+
name: punctuation.section.embedded.smarty
|
157
|
+
begin: "{{"
|
158
|
+
end: "}}"
|
159
|
+
patterns:
|
160
|
+
- include: source.smarty
|
161
|
+
foldingStopMarker: (</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))>|<\/MT\w+\b.*?>|\{\{/(if|foreach|capture|literal|foreach|php|section|strip)|(^|\s)\}\})
|
162
|
+
keyEquivalent: ^~M
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
name: MultiMarkdown
|
3
|
+
firstLineMatch: ^Format:\s*(?i:complete)\s*$
|
4
|
+
scopeName: text.html.markdown.multimarkdown
|
5
|
+
uuid: F5E04BF4-69A9-45AE-9205-B3F3C2B00130
|
6
|
+
foldingStartMarker: |-
|
7
|
+
(?x)
|
8
|
+
(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
|
9
|
+
|<!--(?!.*-->)
|
10
|
+
|\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
|
11
|
+
)
|
12
|
+
patterns:
|
13
|
+
- name: meta.header.multimarkdown
|
14
|
+
begin: ^([A-Za-z0-9]+)(:)\s*
|
15
|
+
beginCaptures:
|
16
|
+
"1":
|
17
|
+
name: keyword.other.multimarkdown
|
18
|
+
"2":
|
19
|
+
name: punctuation.separator.key-value.multimarkdown
|
20
|
+
end: ^$|^(?=[A-Za-z0-9]+:)
|
21
|
+
patterns:
|
22
|
+
- name: string.unquoted.multimarkdown
|
23
|
+
match: .+
|
24
|
+
comment: |-
|
25
|
+
The reason for not setting scopeName = "string.unquoted"
|
26
|
+
(for the parent rule) is that we do not want
|
27
|
+
newlines to be marked as string.unquoted
|
28
|
+
- name: meta.content.multimarkdown
|
29
|
+
begin: ^(?!=[A-Za-z0-9]+:)
|
30
|
+
end: ^(?=not)possible$
|
31
|
+
patterns:
|
32
|
+
- include: text.html.markdown
|
33
|
+
foldingStopMarker: |-
|
34
|
+
(?x)
|
35
|
+
(</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>
|
36
|
+
|^\s*-->
|
37
|
+
|(^|\s)\}
|
38
|
+
)
|
39
|
+
keyEquivalent: ^~M
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
name: Objective-C++
|
3
|
+
fileTypes:
|
4
|
+
- mm
|
5
|
+
- M
|
6
|
+
- h
|
7
|
+
scopeName: source.objc++
|
8
|
+
uuid: FDAB1813-6B1C-11D9-BCAC-000D93589AF6
|
9
|
+
foldingStartMarker: "(?x)\n\
|
10
|
+
\t\t /\\*\\*(?!\\*)\n\
|
11
|
+
\t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\n\
|
12
|
+
\t\t|^@(interface|protocol|implementation)\\b\n\
|
13
|
+
\t"
|
14
|
+
patterns:
|
15
|
+
- include: source.objc
|
16
|
+
- include: source.c++
|
17
|
+
foldingStopMarker: (?<!\*)\*\*/|^\s*\}|^@end\b
|
18
|
+
keyEquivalent: ~^O
|
@@ -0,0 +1,226 @@
|
|
1
|
+
---
|
2
|
+
name: Objective-C
|
3
|
+
fileTypes:
|
4
|
+
- m
|
5
|
+
- h
|
6
|
+
scopeName: source.objc
|
7
|
+
repository:
|
8
|
+
protocol_type_qualifier:
|
9
|
+
name: storage.modifier.protocol.objc
|
10
|
+
match: \b(in|out|inout|oneway|bycopy|byref)\b
|
11
|
+
bracketed_content:
|
12
|
+
name: meta.bracketed.objc
|
13
|
+
captures:
|
14
|
+
"0":
|
15
|
+
name: punctuation.section.scope.objc
|
16
|
+
begin: \[
|
17
|
+
end: \]
|
18
|
+
patterns:
|
19
|
+
- name: meta.function-call.objc
|
20
|
+
begin: (?=\w)(?<=[\w\])"] )(\w+(?:(:)|(?=\])))
|
21
|
+
beginCaptures:
|
22
|
+
"1":
|
23
|
+
name: support.function.any-method.objc
|
24
|
+
"2":
|
25
|
+
name: punctuation.separator.arguments.objc
|
26
|
+
end: (?=\])
|
27
|
+
patterns:
|
28
|
+
- name: support.function.any-method.name-of-parameter.objc
|
29
|
+
captures:
|
30
|
+
"1":
|
31
|
+
name: punctuation.separator.arguments.objc
|
32
|
+
match: \b\w+(:)
|
33
|
+
- include: $base
|
34
|
+
- include: $base
|
35
|
+
protocol_list:
|
36
|
+
name: meta.protocol-list.objc
|
37
|
+
captures:
|
38
|
+
"6":
|
39
|
+
name: punctuation.separator.arguments.objc
|
40
|
+
"7":
|
41
|
+
name: entity.other.inherited-protocol.objc
|
42
|
+
"8":
|
43
|
+
name: punctuation.section.scope.end.objc
|
44
|
+
"1":
|
45
|
+
name: punctuation.section.scope.begin.objc
|
46
|
+
"4":
|
47
|
+
name: entity.other.inherited-protocol.objc
|
48
|
+
match: (<)((?:\s*)(([A-Za-z][A-Za-z0-9]*)((?:\s*)(,)(?:\s*)([A-Za-z][A-Za-z0-9]*)?)*)?(?:\s*))?(>)?
|
49
|
+
method:
|
50
|
+
name: meta.function.objc
|
51
|
+
begin: ^(-|\+)\s*
|
52
|
+
end: (?=\{)|;
|
53
|
+
patterns:
|
54
|
+
- name: meta.return-type.objc
|
55
|
+
captures:
|
56
|
+
"1":
|
57
|
+
name: punctuation.definition.type.objc
|
58
|
+
"2":
|
59
|
+
name: entity.name.function.objc
|
60
|
+
begin: (\()
|
61
|
+
end: (\))\s*(\w+\b)
|
62
|
+
patterns:
|
63
|
+
- include: "#protocol_list"
|
64
|
+
- include: "#protocol_type_qualifier"
|
65
|
+
- include: $base
|
66
|
+
- name: entity.name.function.name-of-parameter.objc
|
67
|
+
match: \b\w+(?=:)
|
68
|
+
- name: meta.argument-type.objc
|
69
|
+
endCaptures:
|
70
|
+
"1":
|
71
|
+
name: punctuation.definition.type.objc
|
72
|
+
"2":
|
73
|
+
name: variable.parameter.function.objc
|
74
|
+
begin: ((:))\s*(\()
|
75
|
+
beginCaptures:
|
76
|
+
"1":
|
77
|
+
name: entity.name.function.name-of-parameter.objc
|
78
|
+
"2":
|
79
|
+
name: punctuation.separator.arguments.objc
|
80
|
+
"3":
|
81
|
+
name: punctuation.definition.type.objc
|
82
|
+
end: (\))\s*(\w+\b)?
|
83
|
+
patterns:
|
84
|
+
- include: "#protocol_list"
|
85
|
+
- include: "#protocol_type_qualifier"
|
86
|
+
- include: $base
|
87
|
+
- include: "#comment"
|
88
|
+
comment:
|
89
|
+
patterns:
|
90
|
+
- name: comment.block.objc
|
91
|
+
captures:
|
92
|
+
"0":
|
93
|
+
name: punctuation.definition.comment.objc
|
94
|
+
begin: /\*
|
95
|
+
end: \*/
|
96
|
+
- name: comment.line.double-slash.c++
|
97
|
+
begin: //
|
98
|
+
beginCaptures:
|
99
|
+
"0":
|
100
|
+
name: punctuation.definition.comment.objc
|
101
|
+
end: $\n?
|
102
|
+
patterns:
|
103
|
+
- name: punctuation.separator.continuation.c++
|
104
|
+
match: (?>\\\s*\n)
|
105
|
+
uuid: F85CC716-6B1C-11D9-9A20-000D93589AF6
|
106
|
+
foldingStartMarker: "(?x)\n\
|
107
|
+
\t\t /\\*\\*(?!\\*)\n\
|
108
|
+
\t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\n\
|
109
|
+
\t\t|^@(interface|protocol|implementation)\\b\n\
|
110
|
+
\t"
|
111
|
+
patterns:
|
112
|
+
- name: meta.interface-or-protocol.objc
|
113
|
+
captures:
|
114
|
+
"6":
|
115
|
+
name: punctuation.definition.entity.other.inherited-class.objc
|
116
|
+
"7":
|
117
|
+
name: entity.other.inherited-class.objc
|
118
|
+
"8":
|
119
|
+
name: meta.inherited-class.objc
|
120
|
+
"13":
|
121
|
+
name: entity.other.inherited-protocol.objc
|
122
|
+
"9":
|
123
|
+
name: meta.protocol-list.objc
|
124
|
+
"15":
|
125
|
+
name: punctuation.separator.arguments.objc
|
126
|
+
"16":
|
127
|
+
name: entity.other.inherited-protocol.objc
|
128
|
+
"17":
|
129
|
+
name: punctuation.section.scope.end.objc
|
130
|
+
"1":
|
131
|
+
name: storage.type.objc
|
132
|
+
"2":
|
133
|
+
name: punctuation.definition.storage.type.objc
|
134
|
+
"18":
|
135
|
+
name: meta.inherited-protocol.end.objc
|
136
|
+
"4":
|
137
|
+
name: entity.name.type.objc
|
138
|
+
"10":
|
139
|
+
name: punctuation.section.scope.begin.objc
|
140
|
+
begin: ((@)(interface|protocol))(?!.+;)\s+([A-Za-z][A-Za-z0-9]*)\s*((:)(?:\s*)([A-Za-z][A-Za-z0-9]*)(\s|\n)?)?((?:\s*)(<)((?:\s*)(([A-Za-z][A-Za-z0-9]*)((?:\s*)(,)(?:\s*)([A-Za-z][A-Za-z0-9]*)?)*)?(?:\s*))?(>)?)?(\s|\n)?
|
141
|
+
contentName: meta.scope.interface.objc
|
142
|
+
end: ((@)end)\b
|
143
|
+
patterns:
|
144
|
+
- include: "#method"
|
145
|
+
- include: $base
|
146
|
+
- name: meta.implementation.objc
|
147
|
+
captures:
|
148
|
+
"1":
|
149
|
+
name: storage.type.objc
|
150
|
+
"2":
|
151
|
+
name: punctuation.definition.storage.type.objc
|
152
|
+
"4":
|
153
|
+
name: entity.name.type.objc
|
154
|
+
"5":
|
155
|
+
name: entity.other.inherited-class.objc
|
156
|
+
begin: ((@)(implementation))\s+([A-Za-z][A-Za-z0-9]+)\s*(?::\s*([A-Za-z][A-Za-z0-9]+))?
|
157
|
+
contentName: meta.scope.implementation.objc
|
158
|
+
end: ((@)end)\b
|
159
|
+
patterns:
|
160
|
+
- name: variable.other.selector.objc
|
161
|
+
match: \b_cmd\b
|
162
|
+
- name: variable.language.objc
|
163
|
+
match: \b(self|super)\b
|
164
|
+
- include: "#method"
|
165
|
+
- include: $base
|
166
|
+
- name: string.quoted.double.objc
|
167
|
+
endCaptures:
|
168
|
+
"0":
|
169
|
+
name: punctuation.definition.string.end.objc
|
170
|
+
begin: "@\""
|
171
|
+
beginCaptures:
|
172
|
+
"0":
|
173
|
+
name: punctuation.definition.string.begin.objc
|
174
|
+
end: "\""
|
175
|
+
patterns:
|
176
|
+
- name: constant.character.escape.objc
|
177
|
+
match: \\(\\|[abefnrtv'"?]|[0-3]\d{,2}|[4-7]\d?|x[a-zA-Z0-9]+)
|
178
|
+
- name: invalid.illegal.unknown-escape.objc
|
179
|
+
match: \\.
|
180
|
+
- name: keyword.control.macro.objc
|
181
|
+
match: \b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\b
|
182
|
+
- name: keyword.control.exception.objc
|
183
|
+
captures:
|
184
|
+
"1":
|
185
|
+
name: punctuation.definition.keyword.objc
|
186
|
+
match: (@)(try|catch|finally|throw)\b
|
187
|
+
- name: keyword.control.synchronize.objc
|
188
|
+
captures:
|
189
|
+
"1":
|
190
|
+
name: punctuation.definition.keyword.objc
|
191
|
+
match: (@)(synchronized)\b
|
192
|
+
- name: keyword.other.objc
|
193
|
+
captures:
|
194
|
+
"1":
|
195
|
+
name: punctuation.definition.keyword.objc
|
196
|
+
match: (@)(defs|encode)\b
|
197
|
+
- name: storage.type.objc
|
198
|
+
match: \b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class)\b
|
199
|
+
- name: storage.type.objc
|
200
|
+
captures:
|
201
|
+
"1":
|
202
|
+
name: punctuation.definition.storage.type.objc
|
203
|
+
match: (@)(class|selector|protocol)\b
|
204
|
+
- name: storage.modifier.objc
|
205
|
+
captures:
|
206
|
+
"1":
|
207
|
+
name: punctuation.definition.storage.modifier.objc
|
208
|
+
match: (@)(synchronized|public|private|protected)\b
|
209
|
+
- name: constant.language.objc
|
210
|
+
match: \b(YES|NO|Nil|nil)\b
|
211
|
+
- name: support.variable.foundation
|
212
|
+
match: \bNSApp\b
|
213
|
+
- include: source.c
|
214
|
+
- name: support.function.cocoa
|
215
|
+
match: \bNS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object))))\b
|
216
|
+
- name: support.class.cocoa
|
217
|
+
match: \bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\b
|
218
|
+
- name: support.type.cocoa
|
219
|
+
match: \bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\b
|
220
|
+
- name: support.constant.cocoa
|
221
|
+
match: \bNS(NotFound|Ordered(Ascending|Descending|Same))\b
|
222
|
+
- name: support.constant.cocoa
|
223
|
+
match: \bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\b
|
224
|
+
- include: "#bracketed_content"
|
225
|
+
foldingStopMarker: (?<!\*)\*\*/|^\s*\}|^@end\b
|
226
|
+
keyEquivalent: ^~O
|
data/syntax/ocaml.syntax
ADDED
@@ -0,0 +1,764 @@
|
|
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
|