tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,3750 @@
1
+ {
2
+ "displayName": "Objective-C",
3
+ "name": "objective-c",
4
+ "patterns": [
5
+ {
6
+ "include": "#anonymous_pattern_1"
7
+ },
8
+ {
9
+ "include": "#anonymous_pattern_2"
10
+ },
11
+ {
12
+ "include": "#anonymous_pattern_3"
13
+ },
14
+ {
15
+ "include": "#anonymous_pattern_4"
16
+ },
17
+ {
18
+ "include": "#anonymous_pattern_5"
19
+ },
20
+ {
21
+ "include": "#apple_foundation_functional_macros"
22
+ },
23
+ {
24
+ "include": "#anonymous_pattern_7"
25
+ },
26
+ {
27
+ "include": "#anonymous_pattern_8"
28
+ },
29
+ {
30
+ "include": "#anonymous_pattern_9"
31
+ },
32
+ {
33
+ "include": "#anonymous_pattern_10"
34
+ },
35
+ {
36
+ "include": "#anonymous_pattern_11"
37
+ },
38
+ {
39
+ "include": "#anonymous_pattern_12"
40
+ },
41
+ {
42
+ "include": "#anonymous_pattern_13"
43
+ },
44
+ {
45
+ "include": "#anonymous_pattern_14"
46
+ },
47
+ {
48
+ "include": "#anonymous_pattern_15"
49
+ },
50
+ {
51
+ "include": "#anonymous_pattern_16"
52
+ },
53
+ {
54
+ "include": "#anonymous_pattern_17"
55
+ },
56
+ {
57
+ "include": "#anonymous_pattern_18"
58
+ },
59
+ {
60
+ "include": "#anonymous_pattern_19"
61
+ },
62
+ {
63
+ "include": "#anonymous_pattern_20"
64
+ },
65
+ {
66
+ "include": "#anonymous_pattern_21"
67
+ },
68
+ {
69
+ "include": "#anonymous_pattern_22"
70
+ },
71
+ {
72
+ "include": "#anonymous_pattern_23"
73
+ },
74
+ {
75
+ "include": "#anonymous_pattern_24"
76
+ },
77
+ {
78
+ "include": "#anonymous_pattern_25"
79
+ },
80
+ {
81
+ "include": "#anonymous_pattern_26"
82
+ },
83
+ {
84
+ "include": "#anonymous_pattern_27"
85
+ },
86
+ {
87
+ "include": "#anonymous_pattern_28"
88
+ },
89
+ {
90
+ "include": "#anonymous_pattern_29"
91
+ },
92
+ {
93
+ "include": "#anonymous_pattern_30"
94
+ },
95
+ {
96
+ "include": "#bracketed_content"
97
+ },
98
+ {
99
+ "include": "#c_lang"
100
+ }
101
+ ],
102
+ "repository": {
103
+ "anonymous_pattern_1": {
104
+ "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",
105
+ "captures": {
106
+ "1": {
107
+ "name": "storage.type.objc"
108
+ },
109
+ "2": {
110
+ "name": "punctuation.definition.storage.type.objc"
111
+ },
112
+ "4": {
113
+ "name": "entity.name.type.objc"
114
+ },
115
+ "6": {
116
+ "name": "punctuation.definition.entity.other.inherited-class.objc"
117
+ },
118
+ "7": {
119
+ "name": "entity.other.inherited-class.objc"
120
+ },
121
+ "8": {
122
+ "name": "meta.divider.objc"
123
+ },
124
+ "9": {
125
+ "name": "meta.inherited-class.objc"
126
+ }
127
+ },
128
+ "contentName": "meta.scope.interface.objc",
129
+ "end": "((@)end)\\b",
130
+ "name": "meta.interface-or-protocol.objc",
131
+ "patterns": [
132
+ {
133
+ "include": "#interface_innards"
134
+ }
135
+ ]
136
+ },
137
+ "anonymous_pattern_10": {
138
+ "captures": {
139
+ "1": {
140
+ "name": "punctuation.definition.keyword.objc"
141
+ }
142
+ },
143
+ "match": "(@)(defs|encode)\\b",
144
+ "name": "keyword.other.objc"
145
+ },
146
+ "anonymous_pattern_11": {
147
+ "match": "\\bid\\b",
148
+ "name": "storage.type.id.objc"
149
+ },
150
+ "anonymous_pattern_12": {
151
+ "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",
152
+ "name": "storage.type.objc"
153
+ },
154
+ "anonymous_pattern_13": {
155
+ "captures": {
156
+ "1": {
157
+ "name": "punctuation.definition.storage.type.objc"
158
+ }
159
+ },
160
+ "match": "(@)(class|protocol)\\b",
161
+ "name": "storage.type.objc"
162
+ },
163
+ "anonymous_pattern_14": {
164
+ "begin": "((@)selector)\\s*(\\()",
165
+ "beginCaptures": {
166
+ "1": {
167
+ "name": "storage.type.objc"
168
+ },
169
+ "2": {
170
+ "name": "punctuation.definition.storage.type.objc"
171
+ },
172
+ "3": {
173
+ "name": "punctuation.definition.storage.type.objc"
174
+ }
175
+ },
176
+ "contentName": "meta.selector.method-name.objc",
177
+ "end": "(\\))",
178
+ "endCaptures": {
179
+ "1": {
180
+ "name": "punctuation.definition.storage.type.objc"
181
+ }
182
+ },
183
+ "name": "meta.selector.objc",
184
+ "patterns": [
185
+ {
186
+ "captures": {
187
+ "1": {
188
+ "name": "punctuation.separator.arguments.objc"
189
+ }
190
+ },
191
+ "match": "\\b(?:[a-zA-Z_:][\\w]*)+",
192
+ "name": "support.function.any-method.name-of-parameter.objc"
193
+ }
194
+ ]
195
+ },
196
+ "anonymous_pattern_15": {
197
+ "captures": {
198
+ "1": {
199
+ "name": "punctuation.definition.storage.modifier.objc"
200
+ }
201
+ },
202
+ "match": "(@)(synchronized|public|package|private|protected)\\b",
203
+ "name": "storage.modifier.objc"
204
+ },
205
+ "anonymous_pattern_16": {
206
+ "match": "\\b(YES|NO|Nil|nil)\\b",
207
+ "name": "constant.language.objc"
208
+ },
209
+ "anonymous_pattern_17": {
210
+ "match": "\\bNSApp\\b",
211
+ "name": "support.variable.foundation.objc"
212
+ },
213
+ "anonymous_pattern_18": {
214
+ "captures": {
215
+ "1": {
216
+ "name": "punctuation.whitespace.support.function.cocoa.leopard.objc"
217
+ },
218
+ "2": {
219
+ "name": "support.function.cocoa.leopard.objc"
220
+ }
221
+ },
222
+ "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"
223
+ },
224
+ "anonymous_pattern_19": {
225
+ "captures": {
226
+ "1": {
227
+ "name": "punctuation.whitespace.support.function.leading.cocoa.objc"
228
+ },
229
+ "2": {
230
+ "name": "support.function.cocoa.objc"
231
+ }
232
+ },
233
+ "match": "(\\s*)\\b(NS(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"
234
+ },
235
+ "anonymous_pattern_2": {
236
+ "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",
237
+ "captures": {
238
+ "1": {
239
+ "name": "storage.type.objc"
240
+ },
241
+ "2": {
242
+ "name": "punctuation.definition.storage.type.objc"
243
+ },
244
+ "4": {
245
+ "name": "entity.name.type.objc"
246
+ },
247
+ "5": {
248
+ "name": "entity.other.inherited-class.objc"
249
+ }
250
+ },
251
+ "contentName": "meta.scope.implementation.objc",
252
+ "end": "((@)end)\\b",
253
+ "name": "meta.implementation.objc",
254
+ "patterns": [
255
+ {
256
+ "include": "#implementation_innards"
257
+ }
258
+ ]
259
+ },
260
+ "anonymous_pattern_20": {
261
+ "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",
262
+ "name": "support.class.cocoa.leopard.objc"
263
+ },
264
+ "anonymous_pattern_21": {
265
+ "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",
266
+ "name": "support.class.cocoa.objc"
267
+ },
268
+ "anonymous_pattern_22": {
269
+ "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",
270
+ "name": "support.type.cocoa.leopard.objc"
271
+ },
272
+ "anonymous_pattern_23": {
273
+ "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",
274
+ "name": "support.class.quartz.objc"
275
+ },
276
+ "anonymous_pattern_24": {
277
+ "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",
278
+ "name": "support.type.quartz.objc"
279
+ },
280
+ "anonymous_pattern_25": {
281
+ "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",
282
+ "name": "support.type.cocoa.objc"
283
+ },
284
+ "anonymous_pattern_26": {
285
+ "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",
286
+ "name": "support.constant.cocoa.objc"
287
+ },
288
+ "anonymous_pattern_27": {
289
+ "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",
290
+ "name": "support.constant.notification.cocoa.leopard.objc"
291
+ },
292
+ "anonymous_pattern_28": {
293
+ "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",
294
+ "name": "support.constant.notification.cocoa.objc"
295
+ },
296
+ "anonymous_pattern_29": {
297
+ "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",
298
+ "name": "support.constant.cocoa.leopard.objc"
299
+ },
300
+ "anonymous_pattern_3": {
301
+ "begin": "@\"",
302
+ "beginCaptures": {
303
+ "0": {
304
+ "name": "punctuation.definition.string.begin.objc"
305
+ }
306
+ },
307
+ "end": "\"",
308
+ "endCaptures": {
309
+ "0": {
310
+ "name": "punctuation.definition.string.end.objc"
311
+ }
312
+ },
313
+ "name": "string.quoted.double.objc",
314
+ "patterns": [
315
+ {
316
+ "include": "#string_escaped_char"
317
+ },
318
+ {
319
+ "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t",
320
+ "name": "constant.other.placeholder.objc"
321
+ },
322
+ {
323
+ "include": "#string_placeholder"
324
+ }
325
+ ]
326
+ },
327
+ "anonymous_pattern_30": {
328
+ "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",
329
+ "name": "support.constant.cocoa.objc"
330
+ },
331
+ "anonymous_pattern_4": {
332
+ "begin": "\\b(id)\\s*(?=<)",
333
+ "beginCaptures": {
334
+ "1": {
335
+ "name": "storage.type.objc"
336
+ }
337
+ },
338
+ "end": "(?<=>)",
339
+ "name": "meta.id-with-protocol.objc",
340
+ "patterns": [
341
+ {
342
+ "include": "#protocol_list"
343
+ }
344
+ ]
345
+ },
346
+ "anonymous_pattern_5": {
347
+ "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",
348
+ "name": "keyword.control.macro.objc"
349
+ },
350
+ "anonymous_pattern_7": {
351
+ "captures": {
352
+ "1": {
353
+ "name": "punctuation.definition.keyword.objc"
354
+ }
355
+ },
356
+ "match": "(@)(try|catch|finally|throw)\\b",
357
+ "name": "keyword.control.exception.objc"
358
+ },
359
+ "anonymous_pattern_8": {
360
+ "captures": {
361
+ "1": {
362
+ "name": "punctuation.definition.keyword.objc"
363
+ }
364
+ },
365
+ "match": "(@)(synchronized)\\b",
366
+ "name": "keyword.control.synchronize.objc"
367
+ },
368
+ "anonymous_pattern_9": {
369
+ "captures": {
370
+ "1": {
371
+ "name": "punctuation.definition.keyword.objc"
372
+ }
373
+ },
374
+ "match": "(@)(required|optional)\\b",
375
+ "name": "keyword.control.protocol-specification.objc"
376
+ },
377
+ "apple_foundation_functional_macros": {
378
+ "begin": "(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",
379
+ "beginCaptures": {
380
+ "1": {
381
+ "name": "entity.name.function.preprocessor.apple-foundation.objc"
382
+ },
383
+ "2": {
384
+ "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc"
385
+ }
386
+ },
387
+ "end": "\\)",
388
+ "endCaptures": {
389
+ "0": {
390
+ "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc"
391
+ }
392
+ },
393
+ "name": "meta.preprocessor.macro.callable.apple-foundation.objc",
394
+ "patterns": [
395
+ {
396
+ "include": "#c_lang"
397
+ }
398
+ ]
399
+ },
400
+ "bracketed_content": {
401
+ "begin": "\\[",
402
+ "beginCaptures": {
403
+ "0": {
404
+ "name": "punctuation.section.scope.begin.objc"
405
+ }
406
+ },
407
+ "end": "\\]",
408
+ "endCaptures": {
409
+ "0": {
410
+ "name": "punctuation.section.scope.end.objc"
411
+ }
412
+ },
413
+ "name": "meta.bracketed.objc",
414
+ "patterns": [
415
+ {
416
+ "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",
417
+ "beginCaptures": {
418
+ "1": {
419
+ "name": "support.function.any-method.objc"
420
+ },
421
+ "2": {
422
+ "name": "punctuation.separator.arguments.objc"
423
+ }
424
+ },
425
+ "end": "(?=\\])",
426
+ "name": "meta.function-call.predicate.objc",
427
+ "patterns": [
428
+ {
429
+ "captures": {
430
+ "1": {
431
+ "name": "punctuation.separator.arguments.objc"
432
+ }
433
+ },
434
+ "match": "\\bargument(Array|s)(:)",
435
+ "name": "support.function.any-method.name-of-parameter.objc"
436
+ },
437
+ {
438
+ "captures": {
439
+ "1": {
440
+ "name": "punctuation.separator.arguments.objc"
441
+ }
442
+ },
443
+ "match": "\\b\\w+(:)",
444
+ "name": "invalid.illegal.unknown-method.objc"
445
+ },
446
+ {
447
+ "begin": "@\"",
448
+ "beginCaptures": {
449
+ "0": {
450
+ "name": "punctuation.definition.string.begin.objc"
451
+ }
452
+ },
453
+ "end": "\"",
454
+ "endCaptures": {
455
+ "0": {
456
+ "name": "punctuation.definition.string.end.objc"
457
+ }
458
+ },
459
+ "name": "string.quoted.double.objc",
460
+ "patterns": [
461
+ {
462
+ "match": "\\b(AND|OR|NOT|IN)\\b",
463
+ "name": "keyword.operator.logical.predicate.cocoa.objc"
464
+ },
465
+ {
466
+ "match": "\\b(ALL|ANY|SOME|NONE)\\b",
467
+ "name": "constant.language.predicate.cocoa.objc"
468
+ },
469
+ {
470
+ "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",
471
+ "name": "constant.language.predicate.cocoa.objc"
472
+ },
473
+ {
474
+ "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",
475
+ "name": "keyword.operator.comparison.predicate.cocoa.objc"
476
+ },
477
+ {
478
+ "match": "\\bC(ASEINSENSITIVE|I)\\b",
479
+ "name": "keyword.other.modifier.predicate.cocoa.objc"
480
+ },
481
+ {
482
+ "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",
483
+ "name": "keyword.other.predicate.cocoa.objc"
484
+ },
485
+ {
486
+ "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
487
+ "name": "constant.character.escape.objc"
488
+ },
489
+ {
490
+ "match": "\\\\.",
491
+ "name": "invalid.illegal.unknown-escape.objc"
492
+ }
493
+ ]
494
+ },
495
+ {
496
+ "include": "#special_variables"
497
+ },
498
+ {
499
+ "include": "#c_functions"
500
+ },
501
+ {
502
+ "include": "$base"
503
+ }
504
+ ]
505
+ },
506
+ {
507
+ "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",
508
+ "beginCaptures": {
509
+ "1": {
510
+ "name": "support.function.any-method.objc"
511
+ },
512
+ "2": {
513
+ "name": "punctuation.separator.arguments.objc"
514
+ }
515
+ },
516
+ "end": "(?=\\])",
517
+ "name": "meta.function-call.objc",
518
+ "patterns": [
519
+ {
520
+ "captures": {
521
+ "1": {
522
+ "name": "punctuation.separator.arguments.objc"
523
+ }
524
+ },
525
+ "match": "\\b\\w+(:)",
526
+ "name": "support.function.any-method.name-of-parameter.objc"
527
+ },
528
+ {
529
+ "include": "#special_variables"
530
+ },
531
+ {
532
+ "include": "#c_functions"
533
+ },
534
+ {
535
+ "include": "$base"
536
+ }
537
+ ]
538
+ },
539
+ {
540
+ "include": "#special_variables"
541
+ },
542
+ {
543
+ "include": "#c_functions"
544
+ },
545
+ {
546
+ "include": "$self"
547
+ }
548
+ ]
549
+ },
550
+ "c_functions": {
551
+ "patterns": [
552
+ {
553
+ "captures": {
554
+ "1": {
555
+ "name": "punctuation.whitespace.support.function.leading.objc"
556
+ },
557
+ "2": {
558
+ "name": "support.function.C99.objc"
559
+ }
560
+ },
561
+ "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"
562
+ },
563
+ {
564
+ "captures": {
565
+ "1": {
566
+ "name": "punctuation.whitespace.function-call.leading.objc"
567
+ },
568
+ "2": {
569
+ "name": "support.function.any-method.objc"
570
+ },
571
+ "3": {
572
+ "name": "punctuation.definition.parameters.objc"
573
+ }
574
+ },
575
+ "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()",
576
+ "name": "meta.function-call.objc"
577
+ }
578
+ ]
579
+ },
580
+ "c_lang": {
581
+ "patterns": [
582
+ {
583
+ "include": "#preprocessor-rule-enabled"
584
+ },
585
+ {
586
+ "include": "#preprocessor-rule-disabled"
587
+ },
588
+ {
589
+ "include": "#preprocessor-rule-conditional"
590
+ },
591
+ {
592
+ "include": "#comments"
593
+ },
594
+ {
595
+ "include": "#switch_statement"
596
+ },
597
+ {
598
+ "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
599
+ "name": "keyword.control.objc"
600
+ },
601
+ {
602
+ "include": "#storage_types"
603
+ },
604
+ {
605
+ "match": "typedef",
606
+ "name": "keyword.other.typedef.objc"
607
+ },
608
+ {
609
+ "match": "\\bin\\b",
610
+ "name": "keyword.other.in.objc"
611
+ },
612
+ {
613
+ "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",
614
+ "name": "storage.modifier.objc"
615
+ },
616
+ {
617
+ "match": "\\bk[A-Z]\\w*\\b",
618
+ "name": "constant.other.variable.mac-classic.objc"
619
+ },
620
+ {
621
+ "match": "\\bg[A-Z]\\w*\\b",
622
+ "name": "variable.other.readwrite.global.mac-classic.objc"
623
+ },
624
+ {
625
+ "match": "\\bs[A-Z]\\w*\\b",
626
+ "name": "variable.other.readwrite.static.mac-classic.objc"
627
+ },
628
+ {
629
+ "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
630
+ "name": "constant.language.objc"
631
+ },
632
+ {
633
+ "include": "#operators"
634
+ },
635
+ {
636
+ "include": "#numbers"
637
+ },
638
+ {
639
+ "include": "#strings"
640
+ },
641
+ {
642
+ "include": "#special_variables"
643
+ },
644
+ {
645
+ "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",
646
+ "beginCaptures": {
647
+ "1": {
648
+ "name": "keyword.control.directive.define.objc"
649
+ },
650
+ "2": {
651
+ "name": "punctuation.definition.directive.objc"
652
+ },
653
+ "3": {
654
+ "name": "entity.name.function.preprocessor.objc"
655
+ },
656
+ "5": {
657
+ "name": "punctuation.definition.parameters.begin.objc"
658
+ },
659
+ "6": {
660
+ "name": "variable.parameter.preprocessor.objc"
661
+ },
662
+ "8": {
663
+ "name": "punctuation.separator.parameters.objc"
664
+ },
665
+ "9": {
666
+ "name": "punctuation.definition.parameters.end.objc"
667
+ }
668
+ },
669
+ "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
670
+ "name": "meta.preprocessor.macro.objc",
671
+ "patterns": [
672
+ {
673
+ "include": "#preprocessor-rule-define-line-contents"
674
+ }
675
+ ]
676
+ },
677
+ {
678
+ "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*",
679
+ "beginCaptures": {
680
+ "1": {
681
+ "name": "keyword.control.directive.diagnostic.$3.objc"
682
+ },
683
+ "2": {
684
+ "name": "punctuation.definition.directive.objc"
685
+ }
686
+ },
687
+ "end": "(?<!\\\\)(?=\\n)",
688
+ "name": "meta.preprocessor.diagnostic.objc",
689
+ "patterns": [
690
+ {
691
+ "begin": "\"",
692
+ "beginCaptures": {
693
+ "0": {
694
+ "name": "punctuation.definition.string.begin.objc"
695
+ }
696
+ },
697
+ "end": "\"|(?<!\\\\)(?=\\s*\\n)",
698
+ "endCaptures": {
699
+ "0": {
700
+ "name": "punctuation.definition.string.end.objc"
701
+ }
702
+ },
703
+ "name": "string.quoted.double.objc",
704
+ "patterns": [
705
+ {
706
+ "include": "#line_continuation_character"
707
+ }
708
+ ]
709
+ },
710
+ {
711
+ "begin": "'",
712
+ "beginCaptures": {
713
+ "0": {
714
+ "name": "punctuation.definition.string.begin.objc"
715
+ }
716
+ },
717
+ "end": "'|(?<!\\\\)(?=\\s*\\n)",
718
+ "endCaptures": {
719
+ "0": {
720
+ "name": "punctuation.definition.string.end.objc"
721
+ }
722
+ },
723
+ "name": "string.quoted.single.objc",
724
+ "patterns": [
725
+ {
726
+ "include": "#line_continuation_character"
727
+ }
728
+ ]
729
+ },
730
+ {
731
+ "begin": "[^'\"]",
732
+ "end": "(?<!\\\\)(?=\\s*\\n)",
733
+ "name": "string.unquoted.single.objc",
734
+ "patterns": [
735
+ {
736
+ "include": "#line_continuation_character"
737
+ },
738
+ {
739
+ "include": "#comments"
740
+ }
741
+ ]
742
+ }
743
+ ]
744
+ },
745
+ {
746
+ "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",
747
+ "beginCaptures": {
748
+ "1": {
749
+ "name": "keyword.control.directive.$3.objc"
750
+ },
751
+ "2": {
752
+ "name": "punctuation.definition.directive.objc"
753
+ }
754
+ },
755
+ "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
756
+ "name": "meta.preprocessor.include.objc",
757
+ "patterns": [
758
+ {
759
+ "include": "#line_continuation_character"
760
+ },
761
+ {
762
+ "begin": "\"",
763
+ "beginCaptures": {
764
+ "0": {
765
+ "name": "punctuation.definition.string.begin.objc"
766
+ }
767
+ },
768
+ "end": "\"",
769
+ "endCaptures": {
770
+ "0": {
771
+ "name": "punctuation.definition.string.end.objc"
772
+ }
773
+ },
774
+ "name": "string.quoted.double.include.objc"
775
+ },
776
+ {
777
+ "begin": "<",
778
+ "beginCaptures": {
779
+ "0": {
780
+ "name": "punctuation.definition.string.begin.objc"
781
+ }
782
+ },
783
+ "end": ">",
784
+ "endCaptures": {
785
+ "0": {
786
+ "name": "punctuation.definition.string.end.objc"
787
+ }
788
+ },
789
+ "name": "string.quoted.other.lt-gt.include.objc"
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ "include": "#pragma-mark"
795
+ },
796
+ {
797
+ "begin": "^\\s*((#)\\s*line)\\b",
798
+ "beginCaptures": {
799
+ "1": {
800
+ "name": "keyword.control.directive.line.objc"
801
+ },
802
+ "2": {
803
+ "name": "punctuation.definition.directive.objc"
804
+ }
805
+ },
806
+ "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
807
+ "name": "meta.preprocessor.objc",
808
+ "patterns": [
809
+ {
810
+ "include": "#strings"
811
+ },
812
+ {
813
+ "include": "#numbers"
814
+ },
815
+ {
816
+ "include": "#line_continuation_character"
817
+ }
818
+ ]
819
+ },
820
+ {
821
+ "begin": "^\\s*(?:((#)\\s*undef))\\b",
822
+ "beginCaptures": {
823
+ "1": {
824
+ "name": "keyword.control.directive.undef.objc"
825
+ },
826
+ "2": {
827
+ "name": "punctuation.definition.directive.objc"
828
+ }
829
+ },
830
+ "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
831
+ "name": "meta.preprocessor.objc",
832
+ "patterns": [
833
+ {
834
+ "match": "[a-zA-Z_$][\\w$]*",
835
+ "name": "entity.name.function.preprocessor.objc"
836
+ },
837
+ {
838
+ "include": "#line_continuation_character"
839
+ }
840
+ ]
841
+ },
842
+ {
843
+ "begin": "^\\s*(?:((#)\\s*pragma))\\b",
844
+ "beginCaptures": {
845
+ "1": {
846
+ "name": "keyword.control.directive.pragma.objc"
847
+ },
848
+ "2": {
849
+ "name": "punctuation.definition.directive.objc"
850
+ }
851
+ },
852
+ "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
853
+ "name": "meta.preprocessor.pragma.objc",
854
+ "patterns": [
855
+ {
856
+ "include": "#strings"
857
+ },
858
+ {
859
+ "match": "[a-zA-Z_$][\\w\\-$]*",
860
+ "name": "entity.other.attribute-name.pragma.preprocessor.objc"
861
+ },
862
+ {
863
+ "include": "#numbers"
864
+ },
865
+ {
866
+ "include": "#line_continuation_character"
867
+ }
868
+ ]
869
+ },
870
+ {
871
+ "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",
872
+ "name": "support.type.sys-types.objc"
873
+ },
874
+ {
875
+ "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",
876
+ "name": "support.type.pthread.objc"
877
+ },
878
+ {
879
+ "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",
880
+ "name": "support.type.stdint.objc"
881
+ },
882
+ {
883
+ "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",
884
+ "name": "support.constant.mac-classic.objc"
885
+ },
886
+ {
887
+ "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",
888
+ "name": "support.type.mac-classic.objc"
889
+ },
890
+ {
891
+ "match": "\\b([A-Za-z0-9_]+_t)\\b",
892
+ "name": "support.type.posix-reserved.objc"
893
+ },
894
+ {
895
+ "include": "#block"
896
+ },
897
+ {
898
+ "include": "#parens"
899
+ },
900
+ {
901
+ "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",
902
+ "end": "(?<=\\))",
903
+ "name": "meta.function.objc",
904
+ "patterns": [
905
+ {
906
+ "include": "#function-innards"
907
+ }
908
+ ]
909
+ },
910
+ {
911
+ "include": "#line_continuation_character"
912
+ },
913
+ {
914
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
915
+ "beginCaptures": {
916
+ "1": {
917
+ "name": "variable.object.objc"
918
+ },
919
+ "2": {
920
+ "name": "punctuation.definition.begin.bracket.square.objc"
921
+ }
922
+ },
923
+ "end": "\\]",
924
+ "endCaptures": {
925
+ "0": {
926
+ "name": "punctuation.definition.end.bracket.square.objc"
927
+ }
928
+ },
929
+ "name": "meta.bracket.square.access.objc",
930
+ "patterns": [
931
+ {
932
+ "include": "#function-call-innards"
933
+ }
934
+ ]
935
+ },
936
+ {
937
+ "match": "\\[\\s*\\]",
938
+ "name": "storage.modifier.array.bracket.square.objc"
939
+ },
940
+ {
941
+ "match": ";",
942
+ "name": "punctuation.terminator.statement.objc"
943
+ },
944
+ {
945
+ "match": ",",
946
+ "name": "punctuation.separator.delimiter.objc"
947
+ }
948
+ ],
949
+ "repository": {
950
+ "access-method": {
951
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
952
+ "beginCaptures": {
953
+ "1": {
954
+ "name": "variable.object.objc"
955
+ },
956
+ "2": {
957
+ "name": "punctuation.separator.dot-access.objc"
958
+ },
959
+ "3": {
960
+ "name": "punctuation.separator.pointer-access.objc"
961
+ },
962
+ "4": {
963
+ "patterns": [
964
+ {
965
+ "match": "\\.",
966
+ "name": "punctuation.separator.dot-access.objc"
967
+ },
968
+ {
969
+ "match": "->",
970
+ "name": "punctuation.separator.pointer-access.objc"
971
+ },
972
+ {
973
+ "match": "[a-zA-Z_][a-zA-Z_0-9]*",
974
+ "name": "variable.object.objc"
975
+ },
976
+ {
977
+ "match": ".+",
978
+ "name": "everything.else.objc"
979
+ }
980
+ ]
981
+ },
982
+ "5": {
983
+ "name": "entity.name.function.member.objc"
984
+ },
985
+ "6": {
986
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc"
987
+ }
988
+ },
989
+ "end": "\\)",
990
+ "endCaptures": {
991
+ "0": {
992
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objc"
993
+ }
994
+ },
995
+ "name": "meta.function-call.member.objc",
996
+ "patterns": [
997
+ {
998
+ "include": "#function-call-innards"
999
+ }
1000
+ ]
1001
+ },
1002
+ "block": {
1003
+ "patterns": [
1004
+ {
1005
+ "begin": "{",
1006
+ "beginCaptures": {
1007
+ "0": {
1008
+ "name": "punctuation.section.block.begin.bracket.curly.objc"
1009
+ }
1010
+ },
1011
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1012
+ "endCaptures": {
1013
+ "0": {
1014
+ "name": "punctuation.section.block.end.bracket.curly.objc"
1015
+ }
1016
+ },
1017
+ "name": "meta.block.objc",
1018
+ "patterns": [
1019
+ {
1020
+ "include": "#block_innards"
1021
+ }
1022
+ ]
1023
+ }
1024
+ ]
1025
+ },
1026
+ "block_innards": {
1027
+ "patterns": [
1028
+ {
1029
+ "include": "#preprocessor-rule-enabled-block"
1030
+ },
1031
+ {
1032
+ "include": "#preprocessor-rule-disabled-block"
1033
+ },
1034
+ {
1035
+ "include": "#preprocessor-rule-conditional-block"
1036
+ },
1037
+ {
1038
+ "include": "#method_access"
1039
+ },
1040
+ {
1041
+ "include": "#member_access"
1042
+ },
1043
+ {
1044
+ "include": "#c_function_call"
1045
+ },
1046
+ {
1047
+ "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
1048
+ "beginCaptures": {
1049
+ "1": {
1050
+ "name": "variable.other.objc"
1051
+ },
1052
+ "2": {
1053
+ "name": "punctuation.section.parens.begin.bracket.round.initialization.objc"
1054
+ }
1055
+ },
1056
+ "end": "\\)",
1057
+ "endCaptures": {
1058
+ "0": {
1059
+ "name": "punctuation.section.parens.end.bracket.round.initialization.objc"
1060
+ }
1061
+ },
1062
+ "name": "meta.initialization.objc",
1063
+ "patterns": [
1064
+ {
1065
+ "include": "#function-call-innards"
1066
+ }
1067
+ ]
1068
+ },
1069
+ {
1070
+ "begin": "{",
1071
+ "beginCaptures": {
1072
+ "0": {
1073
+ "name": "punctuation.section.block.begin.bracket.curly.objc"
1074
+ }
1075
+ },
1076
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1077
+ "endCaptures": {
1078
+ "0": {
1079
+ "name": "punctuation.section.block.end.bracket.curly.objc"
1080
+ }
1081
+ },
1082
+ "patterns": [
1083
+ {
1084
+ "include": "#block_innards"
1085
+ }
1086
+ ]
1087
+ },
1088
+ {
1089
+ "include": "#parens-block"
1090
+ },
1091
+ {
1092
+ "include": "$base"
1093
+ }
1094
+ ]
1095
+ },
1096
+ "c_function_call": {
1097
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
1098
+ "end": "(?<=\\))(?!\\w)",
1099
+ "name": "meta.function-call.objc",
1100
+ "patterns": [
1101
+ {
1102
+ "include": "#function-call-innards"
1103
+ }
1104
+ ]
1105
+ },
1106
+ "case_statement": {
1107
+ "begin": "((?<!\\w)case(?!\\w))",
1108
+ "beginCaptures": {
1109
+ "1": {
1110
+ "name": "keyword.control.case.objc"
1111
+ }
1112
+ },
1113
+ "end": "(:)",
1114
+ "endCaptures": {
1115
+ "1": {
1116
+ "name": "punctuation.separator.case.objc"
1117
+ }
1118
+ },
1119
+ "name": "meta.conditional.case.objc",
1120
+ "patterns": [
1121
+ {
1122
+ "include": "#conditional_context"
1123
+ }
1124
+ ]
1125
+ },
1126
+ "comments": {
1127
+ "patterns": [
1128
+ {
1129
+ "captures": {
1130
+ "1": {
1131
+ "name": "meta.toc-list.banner.block.objc"
1132
+ }
1133
+ },
1134
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
1135
+ "name": "comment.block.objc"
1136
+ },
1137
+ {
1138
+ "begin": "/\\*",
1139
+ "beginCaptures": {
1140
+ "0": {
1141
+ "name": "punctuation.definition.comment.begin.objc"
1142
+ }
1143
+ },
1144
+ "end": "\\*/",
1145
+ "endCaptures": {
1146
+ "0": {
1147
+ "name": "punctuation.definition.comment.end.objc"
1148
+ }
1149
+ },
1150
+ "name": "comment.block.objc"
1151
+ },
1152
+ {
1153
+ "captures": {
1154
+ "1": {
1155
+ "name": "meta.toc-list.banner.line.objc"
1156
+ }
1157
+ },
1158
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
1159
+ "name": "comment.line.banner.objc"
1160
+ },
1161
+ {
1162
+ "begin": "(^[ \\t]+)?(?=//)",
1163
+ "beginCaptures": {
1164
+ "1": {
1165
+ "name": "punctuation.whitespace.comment.leading.objc"
1166
+ }
1167
+ },
1168
+ "end": "(?!\\G)",
1169
+ "patterns": [
1170
+ {
1171
+ "begin": "//",
1172
+ "beginCaptures": {
1173
+ "0": {
1174
+ "name": "punctuation.definition.comment.objc"
1175
+ }
1176
+ },
1177
+ "end": "(?=\\n)",
1178
+ "name": "comment.line.double-slash.objc",
1179
+ "patterns": [
1180
+ {
1181
+ "include": "#line_continuation_character"
1182
+ }
1183
+ ]
1184
+ }
1185
+ ]
1186
+ }
1187
+ ]
1188
+ },
1189
+ "conditional_context": {
1190
+ "patterns": [
1191
+ {
1192
+ "include": "$base"
1193
+ },
1194
+ {
1195
+ "include": "#block_innards"
1196
+ }
1197
+ ]
1198
+ },
1199
+ "default_statement": {
1200
+ "begin": "((?<!\\w)default(?!\\w))",
1201
+ "beginCaptures": {
1202
+ "1": {
1203
+ "name": "keyword.control.default.objc"
1204
+ }
1205
+ },
1206
+ "end": "(:)",
1207
+ "endCaptures": {
1208
+ "1": {
1209
+ "name": "punctuation.separator.case.default.objc"
1210
+ }
1211
+ },
1212
+ "name": "meta.conditional.case.objc",
1213
+ "patterns": [
1214
+ {
1215
+ "include": "#conditional_context"
1216
+ }
1217
+ ]
1218
+ },
1219
+ "disabled": {
1220
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
1221
+ "end": "^\\s*#\\s*endif\\b",
1222
+ "patterns": [
1223
+ {
1224
+ "include": "#disabled"
1225
+ },
1226
+ {
1227
+ "include": "#pragma-mark"
1228
+ }
1229
+ ]
1230
+ },
1231
+ "function-call-innards": {
1232
+ "patterns": [
1233
+ {
1234
+ "include": "#comments"
1235
+ },
1236
+ {
1237
+ "include": "#storage_types"
1238
+ },
1239
+ {
1240
+ "include": "#method_access"
1241
+ },
1242
+ {
1243
+ "include": "#member_access"
1244
+ },
1245
+ {
1246
+ "include": "#operators"
1247
+ },
1248
+ {
1249
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
1250
+ "beginCaptures": {
1251
+ "1": {
1252
+ "name": "entity.name.function.objc"
1253
+ },
1254
+ "2": {
1255
+ "name": "punctuation.section.arguments.begin.bracket.round.objc"
1256
+ }
1257
+ },
1258
+ "end": "\\)",
1259
+ "endCaptures": {
1260
+ "0": {
1261
+ "name": "punctuation.section.arguments.end.bracket.round.objc"
1262
+ }
1263
+ },
1264
+ "patterns": [
1265
+ {
1266
+ "include": "#function-call-innards"
1267
+ }
1268
+ ]
1269
+ },
1270
+ {
1271
+ "begin": "\\(",
1272
+ "beginCaptures": {
1273
+ "0": {
1274
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
1275
+ }
1276
+ },
1277
+ "end": "\\)",
1278
+ "endCaptures": {
1279
+ "0": {
1280
+ "name": "punctuation.section.parens.end.bracket.round.objc"
1281
+ }
1282
+ },
1283
+ "patterns": [
1284
+ {
1285
+ "include": "#function-call-innards"
1286
+ }
1287
+ ]
1288
+ },
1289
+ {
1290
+ "include": "#block_innards"
1291
+ }
1292
+ ]
1293
+ },
1294
+ "function-innards": {
1295
+ "patterns": [
1296
+ {
1297
+ "include": "#comments"
1298
+ },
1299
+ {
1300
+ "include": "#storage_types"
1301
+ },
1302
+ {
1303
+ "include": "#operators"
1304
+ },
1305
+ {
1306
+ "include": "#vararg_ellipses"
1307
+ },
1308
+ {
1309
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
1310
+ "beginCaptures": {
1311
+ "1": {
1312
+ "name": "entity.name.function.objc"
1313
+ },
1314
+ "2": {
1315
+ "name": "punctuation.section.parameters.begin.bracket.round.objc"
1316
+ }
1317
+ },
1318
+ "end": "\\)",
1319
+ "endCaptures": {
1320
+ "0": {
1321
+ "name": "punctuation.section.parameters.end.bracket.round.objc"
1322
+ }
1323
+ },
1324
+ "name": "meta.function.definition.parameters.objc",
1325
+ "patterns": [
1326
+ {
1327
+ "include": "#probably_a_parameter"
1328
+ },
1329
+ {
1330
+ "include": "#function-innards"
1331
+ }
1332
+ ]
1333
+ },
1334
+ {
1335
+ "begin": "\\(",
1336
+ "beginCaptures": {
1337
+ "0": {
1338
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
1339
+ }
1340
+ },
1341
+ "end": "\\)",
1342
+ "endCaptures": {
1343
+ "0": {
1344
+ "name": "punctuation.section.parens.end.bracket.round.objc"
1345
+ }
1346
+ },
1347
+ "patterns": [
1348
+ {
1349
+ "include": "#function-innards"
1350
+ }
1351
+ ]
1352
+ },
1353
+ {
1354
+ "include": "$base"
1355
+ }
1356
+ ]
1357
+ },
1358
+ "line_continuation_character": {
1359
+ "patterns": [
1360
+ {
1361
+ "captures": {
1362
+ "1": {
1363
+ "name": "constant.character.escape.line-continuation.objc"
1364
+ }
1365
+ },
1366
+ "match": "(\\\\)\\n"
1367
+ }
1368
+ ]
1369
+ },
1370
+ "member_access": {
1371
+ "captures": {
1372
+ "1": {
1373
+ "patterns": [
1374
+ {
1375
+ "include": "#special_variables"
1376
+ },
1377
+ {
1378
+ "match": "(.+)",
1379
+ "name": "variable.other.object.access.objc"
1380
+ }
1381
+ ]
1382
+ },
1383
+ "2": {
1384
+ "name": "punctuation.separator.dot-access.objc"
1385
+ },
1386
+ "3": {
1387
+ "name": "punctuation.separator.pointer-access.objc"
1388
+ },
1389
+ "4": {
1390
+ "patterns": [
1391
+ {
1392
+ "include": "#member_access"
1393
+ },
1394
+ {
1395
+ "include": "#method_access"
1396
+ },
1397
+ {
1398
+ "captures": {
1399
+ "1": {
1400
+ "patterns": [
1401
+ {
1402
+ "include": "#special_variables"
1403
+ },
1404
+ {
1405
+ "match": "(.+)",
1406
+ "name": "variable.other.object.access.objc"
1407
+ }
1408
+ ]
1409
+ },
1410
+ "2": {
1411
+ "name": "punctuation.separator.dot-access.objc"
1412
+ },
1413
+ "3": {
1414
+ "name": "punctuation.separator.pointer-access.objc"
1415
+ }
1416
+ },
1417
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"
1418
+ }
1419
+ ]
1420
+ },
1421
+ "5": {
1422
+ "name": "variable.other.member.objc"
1423
+ }
1424
+ },
1425
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())"
1426
+ },
1427
+ "method_access": {
1428
+ "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
1429
+ "beginCaptures": {
1430
+ "1": {
1431
+ "patterns": [
1432
+ {
1433
+ "include": "#special_variables"
1434
+ },
1435
+ {
1436
+ "match": "(.+)",
1437
+ "name": "variable.other.object.access.objc"
1438
+ }
1439
+ ]
1440
+ },
1441
+ "2": {
1442
+ "name": "punctuation.separator.dot-access.objc"
1443
+ },
1444
+ "3": {
1445
+ "name": "punctuation.separator.pointer-access.objc"
1446
+ },
1447
+ "4": {
1448
+ "patterns": [
1449
+ {
1450
+ "include": "#member_access"
1451
+ },
1452
+ {
1453
+ "include": "#method_access"
1454
+ },
1455
+ {
1456
+ "captures": {
1457
+ "1": {
1458
+ "patterns": [
1459
+ {
1460
+ "include": "#special_variables"
1461
+ },
1462
+ {
1463
+ "match": "(.+)",
1464
+ "name": "variable.other.object.access.objc"
1465
+ }
1466
+ ]
1467
+ },
1468
+ "2": {
1469
+ "name": "punctuation.separator.dot-access.objc"
1470
+ },
1471
+ "3": {
1472
+ "name": "punctuation.separator.pointer-access.objc"
1473
+ }
1474
+ },
1475
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"
1476
+ }
1477
+ ]
1478
+ },
1479
+ "5": {
1480
+ "name": "entity.name.function.member.objc"
1481
+ },
1482
+ "6": {
1483
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc"
1484
+ }
1485
+ },
1486
+ "contentName": "meta.function-call.member.objc",
1487
+ "end": "(\\))",
1488
+ "endCaptures": {
1489
+ "1": {
1490
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objc"
1491
+ }
1492
+ },
1493
+ "patterns": [
1494
+ {
1495
+ "include": "#function-call-innards"
1496
+ }
1497
+ ]
1498
+ },
1499
+ "numbers": {
1500
+ "begin": "(?<!\\w)(?=\\d|\\.\\d)",
1501
+ "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
1502
+ "patterns": [
1503
+ {
1504
+ "captures": {
1505
+ "1": {
1506
+ "name": "keyword.other.unit.hexadecimal.objc"
1507
+ },
1508
+ "10": {
1509
+ "name": "keyword.operator.minus.exponent.hexadecimal.objc"
1510
+ },
1511
+ "11": {
1512
+ "name": "constant.numeric.exponent.hexadecimal.objc",
1513
+ "patterns": [
1514
+ {
1515
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1516
+ "name": "punctuation.separator.constant.numeric.objc"
1517
+ }
1518
+ ]
1519
+ },
1520
+ "12": {
1521
+ "name": "keyword.other.unit.suffix.floating-point.objc"
1522
+ },
1523
+ "2": {
1524
+ "name": "constant.numeric.hexadecimal.objc",
1525
+ "patterns": [
1526
+ {
1527
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1528
+ "name": "punctuation.separator.constant.numeric.objc"
1529
+ }
1530
+ ]
1531
+ },
1532
+ "3": {
1533
+ "name": "punctuation.separator.constant.numeric.objc"
1534
+ },
1535
+ "4": {
1536
+ "name": "constant.numeric.hexadecimal.objc"
1537
+ },
1538
+ "5": {
1539
+ "name": "constant.numeric.hexadecimal.objc",
1540
+ "patterns": [
1541
+ {
1542
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1543
+ "name": "punctuation.separator.constant.numeric.objc"
1544
+ }
1545
+ ]
1546
+ },
1547
+ "6": {
1548
+ "name": "punctuation.separator.constant.numeric.objc"
1549
+ },
1550
+ "8": {
1551
+ "name": "keyword.other.unit.exponent.hexadecimal.objc"
1552
+ },
1553
+ "9": {
1554
+ "name": "keyword.operator.plus.exponent.hexadecimal.objc"
1555
+ }
1556
+ },
1557
+ "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"
1558
+ },
1559
+ {
1560
+ "captures": {
1561
+ "10": {
1562
+ "name": "keyword.operator.minus.exponent.decimal.objc"
1563
+ },
1564
+ "11": {
1565
+ "name": "constant.numeric.exponent.decimal.objc",
1566
+ "patterns": [
1567
+ {
1568
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1569
+ "name": "punctuation.separator.constant.numeric.objc"
1570
+ }
1571
+ ]
1572
+ },
1573
+ "12": {
1574
+ "name": "keyword.other.unit.suffix.floating-point.objc"
1575
+ },
1576
+ "2": {
1577
+ "name": "constant.numeric.decimal.objc",
1578
+ "patterns": [
1579
+ {
1580
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1581
+ "name": "punctuation.separator.constant.numeric.objc"
1582
+ }
1583
+ ]
1584
+ },
1585
+ "3": {
1586
+ "name": "punctuation.separator.constant.numeric.objc"
1587
+ },
1588
+ "4": {
1589
+ "name": "constant.numeric.decimal.point.objc"
1590
+ },
1591
+ "5": {
1592
+ "name": "constant.numeric.decimal.objc",
1593
+ "patterns": [
1594
+ {
1595
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1596
+ "name": "punctuation.separator.constant.numeric.objc"
1597
+ }
1598
+ ]
1599
+ },
1600
+ "6": {
1601
+ "name": "punctuation.separator.constant.numeric.objc"
1602
+ },
1603
+ "8": {
1604
+ "name": "keyword.other.unit.exponent.decimal.objc"
1605
+ },
1606
+ "9": {
1607
+ "name": "keyword.operator.plus.exponent.decimal.objc"
1608
+ }
1609
+ },
1610
+ "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"
1611
+ },
1612
+ {
1613
+ "captures": {
1614
+ "1": {
1615
+ "name": "keyword.other.unit.binary.objc"
1616
+ },
1617
+ "2": {
1618
+ "name": "constant.numeric.binary.objc",
1619
+ "patterns": [
1620
+ {
1621
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1622
+ "name": "punctuation.separator.constant.numeric.objc"
1623
+ }
1624
+ ]
1625
+ },
1626
+ "3": {
1627
+ "name": "punctuation.separator.constant.numeric.objc"
1628
+ },
1629
+ "4": {
1630
+ "name": "keyword.other.unit.suffix.integer.objc"
1631
+ }
1632
+ },
1633
+ "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"
1634
+ },
1635
+ {
1636
+ "captures": {
1637
+ "1": {
1638
+ "name": "keyword.other.unit.octal.objc"
1639
+ },
1640
+ "2": {
1641
+ "name": "constant.numeric.octal.objc",
1642
+ "patterns": [
1643
+ {
1644
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1645
+ "name": "punctuation.separator.constant.numeric.objc"
1646
+ }
1647
+ ]
1648
+ },
1649
+ "3": {
1650
+ "name": "punctuation.separator.constant.numeric.objc"
1651
+ },
1652
+ "4": {
1653
+ "name": "keyword.other.unit.suffix.integer.objc"
1654
+ }
1655
+ },
1656
+ "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"
1657
+ },
1658
+ {
1659
+ "captures": {
1660
+ "1": {
1661
+ "name": "keyword.other.unit.hexadecimal.objc"
1662
+ },
1663
+ "2": {
1664
+ "name": "constant.numeric.hexadecimal.objc",
1665
+ "patterns": [
1666
+ {
1667
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1668
+ "name": "punctuation.separator.constant.numeric.objc"
1669
+ }
1670
+ ]
1671
+ },
1672
+ "3": {
1673
+ "name": "punctuation.separator.constant.numeric.objc"
1674
+ },
1675
+ "5": {
1676
+ "name": "keyword.other.unit.exponent.hexadecimal.objc"
1677
+ },
1678
+ "6": {
1679
+ "name": "keyword.operator.plus.exponent.hexadecimal.objc"
1680
+ },
1681
+ "7": {
1682
+ "name": "keyword.operator.minus.exponent.hexadecimal.objc"
1683
+ },
1684
+ "8": {
1685
+ "name": "constant.numeric.exponent.hexadecimal.objc",
1686
+ "patterns": [
1687
+ {
1688
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1689
+ "name": "punctuation.separator.constant.numeric.objc"
1690
+ }
1691
+ ]
1692
+ },
1693
+ "9": {
1694
+ "name": "keyword.other.unit.suffix.integer.objc"
1695
+ }
1696
+ },
1697
+ "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"
1698
+ },
1699
+ {
1700
+ "captures": {
1701
+ "2": {
1702
+ "name": "constant.numeric.decimal.objc",
1703
+ "patterns": [
1704
+ {
1705
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1706
+ "name": "punctuation.separator.constant.numeric.objc"
1707
+ }
1708
+ ]
1709
+ },
1710
+ "3": {
1711
+ "name": "punctuation.separator.constant.numeric.objc"
1712
+ },
1713
+ "5": {
1714
+ "name": "keyword.other.unit.exponent.decimal.objc"
1715
+ },
1716
+ "6": {
1717
+ "name": "keyword.operator.plus.exponent.decimal.objc"
1718
+ },
1719
+ "7": {
1720
+ "name": "keyword.operator.minus.exponent.decimal.objc"
1721
+ },
1722
+ "8": {
1723
+ "name": "constant.numeric.exponent.decimal.objc",
1724
+ "patterns": [
1725
+ {
1726
+ "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
1727
+ "name": "punctuation.separator.constant.numeric.objc"
1728
+ }
1729
+ ]
1730
+ },
1731
+ "9": {
1732
+ "name": "keyword.other.unit.suffix.integer.objc"
1733
+ }
1734
+ },
1735
+ "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"
1736
+ },
1737
+ {
1738
+ "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",
1739
+ "name": "invalid.illegal.constant.numeric.objc"
1740
+ }
1741
+ ]
1742
+ },
1743
+ "operators": {
1744
+ "patterns": [
1745
+ {
1746
+ "match": "(?<![\\w$])(sizeof)(?![\\w$])",
1747
+ "name": "keyword.operator.sizeof.objc"
1748
+ },
1749
+ {
1750
+ "match": "--",
1751
+ "name": "keyword.operator.decrement.objc"
1752
+ },
1753
+ {
1754
+ "match": "\\+\\+",
1755
+ "name": "keyword.operator.increment.objc"
1756
+ },
1757
+ {
1758
+ "match": "%=|\\+=|-=|\\*=|(?<!\\()/=",
1759
+ "name": "keyword.operator.assignment.compound.objc"
1760
+ },
1761
+ {
1762
+ "match": "&=|\\^=|<<=|>>=|\\|=",
1763
+ "name": "keyword.operator.assignment.compound.bitwise.objc"
1764
+ },
1765
+ {
1766
+ "match": "<<|>>",
1767
+ "name": "keyword.operator.bitwise.shift.objc"
1768
+ },
1769
+ {
1770
+ "match": "!=|<=|>=|==|<|>",
1771
+ "name": "keyword.operator.comparison.objc"
1772
+ },
1773
+ {
1774
+ "match": "&&|!|\\|\\|",
1775
+ "name": "keyword.operator.logical.objc"
1776
+ },
1777
+ {
1778
+ "match": "&|\\||\\^|~",
1779
+ "name": "keyword.operator.objc"
1780
+ },
1781
+ {
1782
+ "match": "=",
1783
+ "name": "keyword.operator.assignment.objc"
1784
+ },
1785
+ {
1786
+ "match": "%|\\*|/|-|\\+",
1787
+ "name": "keyword.operator.objc"
1788
+ },
1789
+ {
1790
+ "begin": "(\\?)",
1791
+ "beginCaptures": {
1792
+ "1": {
1793
+ "name": "keyword.operator.ternary.objc"
1794
+ }
1795
+ },
1796
+ "end": "(:)",
1797
+ "endCaptures": {
1798
+ "1": {
1799
+ "name": "keyword.operator.ternary.objc"
1800
+ }
1801
+ },
1802
+ "patterns": [
1803
+ {
1804
+ "include": "#function-call-innards"
1805
+ },
1806
+ {
1807
+ "include": "$base"
1808
+ }
1809
+ ]
1810
+ }
1811
+ ]
1812
+ },
1813
+ "parens": {
1814
+ "begin": "\\(",
1815
+ "beginCaptures": {
1816
+ "0": {
1817
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
1818
+ }
1819
+ },
1820
+ "end": "\\)",
1821
+ "endCaptures": {
1822
+ "0": {
1823
+ "name": "punctuation.section.parens.end.bracket.round.objc"
1824
+ }
1825
+ },
1826
+ "name": "meta.parens.objc",
1827
+ "patterns": [
1828
+ {
1829
+ "include": "$base"
1830
+ }
1831
+ ]
1832
+ },
1833
+ "parens-block": {
1834
+ "begin": "\\(",
1835
+ "beginCaptures": {
1836
+ "0": {
1837
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
1838
+ }
1839
+ },
1840
+ "end": "\\)",
1841
+ "endCaptures": {
1842
+ "0": {
1843
+ "name": "punctuation.section.parens.end.bracket.round.objc"
1844
+ }
1845
+ },
1846
+ "name": "meta.parens.block.objc",
1847
+ "patterns": [
1848
+ {
1849
+ "include": "#block_innards"
1850
+ },
1851
+ {
1852
+ "match": "(?-mix:(?<!:):(?!:))",
1853
+ "name": "punctuation.range-based.objc"
1854
+ }
1855
+ ]
1856
+ },
1857
+ "pragma-mark": {
1858
+ "captures": {
1859
+ "1": {
1860
+ "name": "meta.preprocessor.pragma.objc"
1861
+ },
1862
+ "2": {
1863
+ "name": "keyword.control.directive.pragma.pragma-mark.objc"
1864
+ },
1865
+ "3": {
1866
+ "name": "punctuation.definition.directive.objc"
1867
+ },
1868
+ "4": {
1869
+ "name": "entity.name.tag.pragma-mark.objc"
1870
+ }
1871
+ },
1872
+ "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",
1873
+ "name": "meta.section.objc"
1874
+ },
1875
+ "preprocessor-rule-conditional": {
1876
+ "patterns": [
1877
+ {
1878
+ "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
1879
+ "beginCaptures": {
1880
+ "0": {
1881
+ "name": "meta.preprocessor.objc"
1882
+ },
1883
+ "1": {
1884
+ "name": "keyword.control.directive.conditional.objc"
1885
+ },
1886
+ "2": {
1887
+ "name": "punctuation.definition.directive.objc"
1888
+ }
1889
+ },
1890
+ "end": "^\\s*((#)\\s*endif\\b)",
1891
+ "endCaptures": {
1892
+ "0": {
1893
+ "name": "meta.preprocessor.objc"
1894
+ },
1895
+ "1": {
1896
+ "name": "keyword.control.directive.conditional.objc"
1897
+ },
1898
+ "2": {
1899
+ "name": "punctuation.definition.directive.objc"
1900
+ }
1901
+ },
1902
+ "patterns": [
1903
+ {
1904
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1905
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1906
+ "name": "meta.preprocessor.objc",
1907
+ "patterns": [
1908
+ {
1909
+ "include": "#preprocessor-rule-conditional-line"
1910
+ }
1911
+ ]
1912
+ },
1913
+ {
1914
+ "include": "#preprocessor-rule-enabled-elif"
1915
+ },
1916
+ {
1917
+ "include": "#preprocessor-rule-enabled-else"
1918
+ },
1919
+ {
1920
+ "include": "#preprocessor-rule-disabled-elif"
1921
+ },
1922
+ {
1923
+ "begin": "^\\s*((#)\\s*elif\\b)",
1924
+ "beginCaptures": {
1925
+ "1": {
1926
+ "name": "keyword.control.directive.conditional.objc"
1927
+ },
1928
+ "2": {
1929
+ "name": "punctuation.definition.directive.objc"
1930
+ }
1931
+ },
1932
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1933
+ "name": "meta.preprocessor.objc",
1934
+ "patterns": [
1935
+ {
1936
+ "include": "#preprocessor-rule-conditional-line"
1937
+ }
1938
+ ]
1939
+ },
1940
+ {
1941
+ "include": "$base"
1942
+ }
1943
+ ]
1944
+ },
1945
+ {
1946
+ "captures": {
1947
+ "0": {
1948
+ "name": "invalid.illegal.stray-$1.objc"
1949
+ }
1950
+ },
1951
+ "match": "^\\s*#\\s*(else|elif|endif)\\b"
1952
+ }
1953
+ ]
1954
+ },
1955
+ "preprocessor-rule-conditional-block": {
1956
+ "patterns": [
1957
+ {
1958
+ "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
1959
+ "beginCaptures": {
1960
+ "0": {
1961
+ "name": "meta.preprocessor.objc"
1962
+ },
1963
+ "1": {
1964
+ "name": "keyword.control.directive.conditional.objc"
1965
+ },
1966
+ "2": {
1967
+ "name": "punctuation.definition.directive.objc"
1968
+ }
1969
+ },
1970
+ "end": "^\\s*((#)\\s*endif\\b)",
1971
+ "endCaptures": {
1972
+ "0": {
1973
+ "name": "meta.preprocessor.objc"
1974
+ },
1975
+ "1": {
1976
+ "name": "keyword.control.directive.conditional.objc"
1977
+ },
1978
+ "2": {
1979
+ "name": "punctuation.definition.directive.objc"
1980
+ }
1981
+ },
1982
+ "patterns": [
1983
+ {
1984
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1985
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1986
+ "name": "meta.preprocessor.objc",
1987
+ "patterns": [
1988
+ {
1989
+ "include": "#preprocessor-rule-conditional-line"
1990
+ }
1991
+ ]
1992
+ },
1993
+ {
1994
+ "include": "#preprocessor-rule-enabled-elif-block"
1995
+ },
1996
+ {
1997
+ "include": "#preprocessor-rule-enabled-else-block"
1998
+ },
1999
+ {
2000
+ "include": "#preprocessor-rule-disabled-elif"
2001
+ },
2002
+ {
2003
+ "begin": "^\\s*((#)\\s*elif\\b)",
2004
+ "beginCaptures": {
2005
+ "1": {
2006
+ "name": "keyword.control.directive.conditional.objc"
2007
+ },
2008
+ "2": {
2009
+ "name": "punctuation.definition.directive.objc"
2010
+ }
2011
+ },
2012
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2013
+ "name": "meta.preprocessor.objc",
2014
+ "patterns": [
2015
+ {
2016
+ "include": "#preprocessor-rule-conditional-line"
2017
+ }
2018
+ ]
2019
+ },
2020
+ {
2021
+ "include": "#block_innards"
2022
+ }
2023
+ ]
2024
+ },
2025
+ {
2026
+ "captures": {
2027
+ "0": {
2028
+ "name": "invalid.illegal.stray-$1.objc"
2029
+ }
2030
+ },
2031
+ "match": "^\\s*#\\s*(else|elif|endif)\\b"
2032
+ }
2033
+ ]
2034
+ },
2035
+ "preprocessor-rule-conditional-line": {
2036
+ "patterns": [
2037
+ {
2038
+ "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",
2039
+ "name": "keyword.control.directive.conditional.objc"
2040
+ },
2041
+ {
2042
+ "match": "\\bdefined\\b",
2043
+ "name": "invalid.illegal.macro-name.objc"
2044
+ },
2045
+ {
2046
+ "include": "#comments"
2047
+ },
2048
+ {
2049
+ "include": "#strings"
2050
+ },
2051
+ {
2052
+ "include": "#numbers"
2053
+ },
2054
+ {
2055
+ "begin": "\\?",
2056
+ "beginCaptures": {
2057
+ "0": {
2058
+ "name": "keyword.operator.ternary.objc"
2059
+ }
2060
+ },
2061
+ "end": ":",
2062
+ "endCaptures": {
2063
+ "0": {
2064
+ "name": "keyword.operator.ternary.objc"
2065
+ }
2066
+ },
2067
+ "patterns": [
2068
+ {
2069
+ "include": "#preprocessor-rule-conditional-line"
2070
+ }
2071
+ ]
2072
+ },
2073
+ {
2074
+ "include": "#operators"
2075
+ },
2076
+ {
2077
+ "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
2078
+ "name": "constant.language.objc"
2079
+ },
2080
+ {
2081
+ "match": "[a-zA-Z_$][\\w$]*",
2082
+ "name": "entity.name.function.preprocessor.objc"
2083
+ },
2084
+ {
2085
+ "include": "#line_continuation_character"
2086
+ },
2087
+ {
2088
+ "begin": "\\(",
2089
+ "beginCaptures": {
2090
+ "0": {
2091
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
2092
+ }
2093
+ },
2094
+ "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2095
+ "endCaptures": {
2096
+ "0": {
2097
+ "name": "punctuation.section.parens.end.bracket.round.objc"
2098
+ }
2099
+ },
2100
+ "patterns": [
2101
+ {
2102
+ "include": "#preprocessor-rule-conditional-line"
2103
+ }
2104
+ ]
2105
+ }
2106
+ ]
2107
+ },
2108
+ "preprocessor-rule-define-line-blocks": {
2109
+ "patterns": [
2110
+ {
2111
+ "begin": "{",
2112
+ "beginCaptures": {
2113
+ "0": {
2114
+ "name": "punctuation.section.block.begin.bracket.curly.objc"
2115
+ }
2116
+ },
2117
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2118
+ "endCaptures": {
2119
+ "0": {
2120
+ "name": "punctuation.section.block.end.bracket.curly.objc"
2121
+ }
2122
+ },
2123
+ "patterns": [
2124
+ {
2125
+ "include": "#preprocessor-rule-define-line-blocks"
2126
+ },
2127
+ {
2128
+ "include": "#preprocessor-rule-define-line-contents"
2129
+ }
2130
+ ]
2131
+ },
2132
+ {
2133
+ "include": "#preprocessor-rule-define-line-contents"
2134
+ }
2135
+ ]
2136
+ },
2137
+ "preprocessor-rule-define-line-contents": {
2138
+ "patterns": [
2139
+ {
2140
+ "include": "#vararg_ellipses"
2141
+ },
2142
+ {
2143
+ "begin": "{",
2144
+ "beginCaptures": {
2145
+ "0": {
2146
+ "name": "punctuation.section.block.begin.bracket.curly.objc"
2147
+ }
2148
+ },
2149
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2150
+ "endCaptures": {
2151
+ "0": {
2152
+ "name": "punctuation.section.block.end.bracket.curly.objc"
2153
+ }
2154
+ },
2155
+ "name": "meta.block.objc",
2156
+ "patterns": [
2157
+ {
2158
+ "include": "#preprocessor-rule-define-line-blocks"
2159
+ }
2160
+ ]
2161
+ },
2162
+ {
2163
+ "match": "\\(",
2164
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
2165
+ },
2166
+ {
2167
+ "match": "\\)",
2168
+ "name": "punctuation.section.parens.end.bracket.round.objc"
2169
+ },
2170
+ {
2171
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
2172
+ "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",
2173
+ "name": "meta.function.objc",
2174
+ "patterns": [
2175
+ {
2176
+ "include": "#preprocessor-rule-define-line-functions"
2177
+ }
2178
+ ]
2179
+ },
2180
+ {
2181
+ "begin": "\"",
2182
+ "beginCaptures": {
2183
+ "0": {
2184
+ "name": "punctuation.definition.string.begin.objc"
2185
+ }
2186
+ },
2187
+ "end": "\"|(?<!\\\\)(?=\\s*\\n)",
2188
+ "endCaptures": {
2189
+ "0": {
2190
+ "name": "punctuation.definition.string.end.objc"
2191
+ }
2192
+ },
2193
+ "name": "string.quoted.double.objc",
2194
+ "patterns": [
2195
+ {
2196
+ "include": "#string_escaped_char"
2197
+ },
2198
+ {
2199
+ "include": "#string_placeholder"
2200
+ },
2201
+ {
2202
+ "include": "#line_continuation_character"
2203
+ }
2204
+ ]
2205
+ },
2206
+ {
2207
+ "begin": "'",
2208
+ "beginCaptures": {
2209
+ "0": {
2210
+ "name": "punctuation.definition.string.begin.objc"
2211
+ }
2212
+ },
2213
+ "end": "'|(?<!\\\\)(?=\\s*\\n)",
2214
+ "endCaptures": {
2215
+ "0": {
2216
+ "name": "punctuation.definition.string.end.objc"
2217
+ }
2218
+ },
2219
+ "name": "string.quoted.single.objc",
2220
+ "patterns": [
2221
+ {
2222
+ "include": "#string_escaped_char"
2223
+ },
2224
+ {
2225
+ "include": "#line_continuation_character"
2226
+ }
2227
+ ]
2228
+ },
2229
+ {
2230
+ "include": "#method_access"
2231
+ },
2232
+ {
2233
+ "include": "#member_access"
2234
+ },
2235
+ {
2236
+ "include": "$base"
2237
+ }
2238
+ ]
2239
+ },
2240
+ "preprocessor-rule-define-line-functions": {
2241
+ "patterns": [
2242
+ {
2243
+ "include": "#comments"
2244
+ },
2245
+ {
2246
+ "include": "#storage_types"
2247
+ },
2248
+ {
2249
+ "include": "#vararg_ellipses"
2250
+ },
2251
+ {
2252
+ "include": "#method_access"
2253
+ },
2254
+ {
2255
+ "include": "#member_access"
2256
+ },
2257
+ {
2258
+ "include": "#operators"
2259
+ },
2260
+ {
2261
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
2262
+ "beginCaptures": {
2263
+ "1": {
2264
+ "name": "entity.name.function.objc"
2265
+ },
2266
+ "2": {
2267
+ "name": "punctuation.section.arguments.begin.bracket.round.objc"
2268
+ }
2269
+ },
2270
+ "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
2271
+ "endCaptures": {
2272
+ "1": {
2273
+ "name": "punctuation.section.arguments.end.bracket.round.objc"
2274
+ }
2275
+ },
2276
+ "patterns": [
2277
+ {
2278
+ "include": "#preprocessor-rule-define-line-functions"
2279
+ }
2280
+ ]
2281
+ },
2282
+ {
2283
+ "begin": "\\(",
2284
+ "beginCaptures": {
2285
+ "0": {
2286
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
2287
+ }
2288
+ },
2289
+ "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
2290
+ "endCaptures": {
2291
+ "1": {
2292
+ "name": "punctuation.section.parens.end.bracket.round.objc"
2293
+ }
2294
+ },
2295
+ "patterns": [
2296
+ {
2297
+ "include": "#preprocessor-rule-define-line-functions"
2298
+ }
2299
+ ]
2300
+ },
2301
+ {
2302
+ "include": "#preprocessor-rule-define-line-contents"
2303
+ }
2304
+ ]
2305
+ },
2306
+ "preprocessor-rule-disabled": {
2307
+ "patterns": [
2308
+ {
2309
+ "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
2310
+ "beginCaptures": {
2311
+ "0": {
2312
+ "name": "meta.preprocessor.objc"
2313
+ },
2314
+ "1": {
2315
+ "name": "keyword.control.directive.conditional.objc"
2316
+ },
2317
+ "2": {
2318
+ "name": "punctuation.definition.directive.objc"
2319
+ }
2320
+ },
2321
+ "end": "^\\s*((#)\\s*endif\\b)",
2322
+ "endCaptures": {
2323
+ "0": {
2324
+ "name": "meta.preprocessor.objc"
2325
+ },
2326
+ "1": {
2327
+ "name": "keyword.control.directive.conditional.objc"
2328
+ },
2329
+ "2": {
2330
+ "name": "punctuation.definition.directive.objc"
2331
+ }
2332
+ },
2333
+ "patterns": [
2334
+ {
2335
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2336
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2337
+ "name": "meta.preprocessor.objc",
2338
+ "patterns": [
2339
+ {
2340
+ "include": "#preprocessor-rule-conditional-line"
2341
+ }
2342
+ ]
2343
+ },
2344
+ {
2345
+ "include": "#comments"
2346
+ },
2347
+ {
2348
+ "include": "#preprocessor-rule-enabled-elif"
2349
+ },
2350
+ {
2351
+ "include": "#preprocessor-rule-enabled-else"
2352
+ },
2353
+ {
2354
+ "include": "#preprocessor-rule-disabled-elif"
2355
+ },
2356
+ {
2357
+ "begin": "^\\s*((#)\\s*elif\\b)",
2358
+ "beginCaptures": {
2359
+ "0": {
2360
+ "name": "meta.preprocessor.objc"
2361
+ },
2362
+ "1": {
2363
+ "name": "keyword.control.directive.conditional.objc"
2364
+ },
2365
+ "2": {
2366
+ "name": "punctuation.definition.directive.objc"
2367
+ }
2368
+ },
2369
+ "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
2370
+ "patterns": [
2371
+ {
2372
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2373
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2374
+ "name": "meta.preprocessor.objc",
2375
+ "patterns": [
2376
+ {
2377
+ "include": "#preprocessor-rule-conditional-line"
2378
+ }
2379
+ ]
2380
+ },
2381
+ {
2382
+ "include": "$base"
2383
+ }
2384
+ ]
2385
+ },
2386
+ {
2387
+ "begin": "\\n",
2388
+ "contentName": "comment.block.preprocessor.if-branch.objc",
2389
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2390
+ "patterns": [
2391
+ {
2392
+ "include": "#disabled"
2393
+ },
2394
+ {
2395
+ "include": "#pragma-mark"
2396
+ }
2397
+ ]
2398
+ }
2399
+ ]
2400
+ }
2401
+ ]
2402
+ },
2403
+ "preprocessor-rule-disabled-block": {
2404
+ "patterns": [
2405
+ {
2406
+ "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
2407
+ "beginCaptures": {
2408
+ "0": {
2409
+ "name": "meta.preprocessor.objc"
2410
+ },
2411
+ "1": {
2412
+ "name": "keyword.control.directive.conditional.objc"
2413
+ },
2414
+ "2": {
2415
+ "name": "punctuation.definition.directive.objc"
2416
+ }
2417
+ },
2418
+ "end": "^\\s*((#)\\s*endif\\b)",
2419
+ "endCaptures": {
2420
+ "0": {
2421
+ "name": "meta.preprocessor.objc"
2422
+ },
2423
+ "1": {
2424
+ "name": "keyword.control.directive.conditional.objc"
2425
+ },
2426
+ "2": {
2427
+ "name": "punctuation.definition.directive.objc"
2428
+ }
2429
+ },
2430
+ "patterns": [
2431
+ {
2432
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2433
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2434
+ "name": "meta.preprocessor.objc",
2435
+ "patterns": [
2436
+ {
2437
+ "include": "#preprocessor-rule-conditional-line"
2438
+ }
2439
+ ]
2440
+ },
2441
+ {
2442
+ "include": "#comments"
2443
+ },
2444
+ {
2445
+ "include": "#preprocessor-rule-enabled-elif-block"
2446
+ },
2447
+ {
2448
+ "include": "#preprocessor-rule-enabled-else-block"
2449
+ },
2450
+ {
2451
+ "include": "#preprocessor-rule-disabled-elif"
2452
+ },
2453
+ {
2454
+ "begin": "^\\s*((#)\\s*elif\\b)",
2455
+ "beginCaptures": {
2456
+ "0": {
2457
+ "name": "meta.preprocessor.objc"
2458
+ },
2459
+ "1": {
2460
+ "name": "keyword.control.directive.conditional.objc"
2461
+ },
2462
+ "2": {
2463
+ "name": "punctuation.definition.directive.objc"
2464
+ }
2465
+ },
2466
+ "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
2467
+ "patterns": [
2468
+ {
2469
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2470
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2471
+ "name": "meta.preprocessor.objc",
2472
+ "patterns": [
2473
+ {
2474
+ "include": "#preprocessor-rule-conditional-line"
2475
+ }
2476
+ ]
2477
+ },
2478
+ {
2479
+ "include": "#block_innards"
2480
+ }
2481
+ ]
2482
+ },
2483
+ {
2484
+ "begin": "\\n",
2485
+ "contentName": "comment.block.preprocessor.if-branch.in-block.objc",
2486
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2487
+ "patterns": [
2488
+ {
2489
+ "include": "#disabled"
2490
+ },
2491
+ {
2492
+ "include": "#pragma-mark"
2493
+ }
2494
+ ]
2495
+ }
2496
+ ]
2497
+ }
2498
+ ]
2499
+ },
2500
+ "preprocessor-rule-disabled-elif": {
2501
+ "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
2502
+ "beginCaptures": {
2503
+ "0": {
2504
+ "name": "meta.preprocessor.objc"
2505
+ },
2506
+ "1": {
2507
+ "name": "keyword.control.directive.conditional.objc"
2508
+ },
2509
+ "2": {
2510
+ "name": "punctuation.definition.directive.objc"
2511
+ }
2512
+ },
2513
+ "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
2514
+ "patterns": [
2515
+ {
2516
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2517
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2518
+ "name": "meta.preprocessor.objc",
2519
+ "patterns": [
2520
+ {
2521
+ "include": "#preprocessor-rule-conditional-line"
2522
+ }
2523
+ ]
2524
+ },
2525
+ {
2526
+ "include": "#comments"
2527
+ },
2528
+ {
2529
+ "begin": "\\n",
2530
+ "contentName": "comment.block.preprocessor.elif-branch.objc",
2531
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2532
+ "patterns": [
2533
+ {
2534
+ "include": "#disabled"
2535
+ },
2536
+ {
2537
+ "include": "#pragma-mark"
2538
+ }
2539
+ ]
2540
+ }
2541
+ ]
2542
+ },
2543
+ "preprocessor-rule-enabled": {
2544
+ "patterns": [
2545
+ {
2546
+ "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2547
+ "beginCaptures": {
2548
+ "0": {
2549
+ "name": "meta.preprocessor.objc"
2550
+ },
2551
+ "1": {
2552
+ "name": "keyword.control.directive.conditional.objc"
2553
+ },
2554
+ "2": {
2555
+ "name": "punctuation.definition.directive.objc"
2556
+ },
2557
+ "3": {
2558
+ "name": "constant.numeric.preprocessor.objc"
2559
+ }
2560
+ },
2561
+ "end": "^\\s*((#)\\s*endif\\b)",
2562
+ "endCaptures": {
2563
+ "0": {
2564
+ "name": "meta.preprocessor.objc"
2565
+ },
2566
+ "1": {
2567
+ "name": "keyword.control.directive.conditional.objc"
2568
+ },
2569
+ "2": {
2570
+ "name": "punctuation.definition.directive.objc"
2571
+ }
2572
+ },
2573
+ "patterns": [
2574
+ {
2575
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2576
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2577
+ "name": "meta.preprocessor.objc",
2578
+ "patterns": [
2579
+ {
2580
+ "include": "#preprocessor-rule-conditional-line"
2581
+ }
2582
+ ]
2583
+ },
2584
+ {
2585
+ "include": "#comments"
2586
+ },
2587
+ {
2588
+ "begin": "^\\s*((#)\\s*else\\b)",
2589
+ "beginCaptures": {
2590
+ "0": {
2591
+ "name": "meta.preprocessor.objc"
2592
+ },
2593
+ "1": {
2594
+ "name": "keyword.control.directive.conditional.objc"
2595
+ },
2596
+ "2": {
2597
+ "name": "punctuation.definition.directive.objc"
2598
+ }
2599
+ },
2600
+ "contentName": "comment.block.preprocessor.else-branch.objc",
2601
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2602
+ "patterns": [
2603
+ {
2604
+ "include": "#disabled"
2605
+ },
2606
+ {
2607
+ "include": "#pragma-mark"
2608
+ }
2609
+ ]
2610
+ },
2611
+ {
2612
+ "begin": "^\\s*((#)\\s*elif\\b)",
2613
+ "beginCaptures": {
2614
+ "0": {
2615
+ "name": "meta.preprocessor.objc"
2616
+ },
2617
+ "1": {
2618
+ "name": "keyword.control.directive.conditional.objc"
2619
+ },
2620
+ "2": {
2621
+ "name": "punctuation.definition.directive.objc"
2622
+ }
2623
+ },
2624
+ "contentName": "comment.block.preprocessor.if-branch.objc",
2625
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2626
+ "patterns": [
2627
+ {
2628
+ "include": "#disabled"
2629
+ },
2630
+ {
2631
+ "include": "#pragma-mark"
2632
+ }
2633
+ ]
2634
+ },
2635
+ {
2636
+ "begin": "\\n",
2637
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2638
+ "patterns": [
2639
+ {
2640
+ "include": "$base"
2641
+ }
2642
+ ]
2643
+ }
2644
+ ]
2645
+ }
2646
+ ]
2647
+ },
2648
+ "preprocessor-rule-enabled-block": {
2649
+ "patterns": [
2650
+ {
2651
+ "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2652
+ "beginCaptures": {
2653
+ "0": {
2654
+ "name": "meta.preprocessor.objc"
2655
+ },
2656
+ "1": {
2657
+ "name": "keyword.control.directive.conditional.objc"
2658
+ },
2659
+ "2": {
2660
+ "name": "punctuation.definition.directive.objc"
2661
+ }
2662
+ },
2663
+ "end": "^\\s*((#)\\s*endif\\b)",
2664
+ "endCaptures": {
2665
+ "0": {
2666
+ "name": "meta.preprocessor.objc"
2667
+ },
2668
+ "1": {
2669
+ "name": "keyword.control.directive.conditional.objc"
2670
+ },
2671
+ "2": {
2672
+ "name": "punctuation.definition.directive.objc"
2673
+ }
2674
+ },
2675
+ "patterns": [
2676
+ {
2677
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2678
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2679
+ "name": "meta.preprocessor.objc",
2680
+ "patterns": [
2681
+ {
2682
+ "include": "#preprocessor-rule-conditional-line"
2683
+ }
2684
+ ]
2685
+ },
2686
+ {
2687
+ "include": "#comments"
2688
+ },
2689
+ {
2690
+ "begin": "^\\s*((#)\\s*else\\b)",
2691
+ "beginCaptures": {
2692
+ "0": {
2693
+ "name": "meta.preprocessor.objc"
2694
+ },
2695
+ "1": {
2696
+ "name": "keyword.control.directive.conditional.objc"
2697
+ },
2698
+ "2": {
2699
+ "name": "punctuation.definition.directive.objc"
2700
+ }
2701
+ },
2702
+ "contentName": "comment.block.preprocessor.else-branch.in-block.objc",
2703
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2704
+ "patterns": [
2705
+ {
2706
+ "include": "#disabled"
2707
+ },
2708
+ {
2709
+ "include": "#pragma-mark"
2710
+ }
2711
+ ]
2712
+ },
2713
+ {
2714
+ "begin": "^\\s*((#)\\s*elif\\b)",
2715
+ "beginCaptures": {
2716
+ "0": {
2717
+ "name": "meta.preprocessor.objc"
2718
+ },
2719
+ "1": {
2720
+ "name": "keyword.control.directive.conditional.objc"
2721
+ },
2722
+ "2": {
2723
+ "name": "punctuation.definition.directive.objc"
2724
+ }
2725
+ },
2726
+ "contentName": "comment.block.preprocessor.if-branch.in-block.objc",
2727
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2728
+ "patterns": [
2729
+ {
2730
+ "include": "#disabled"
2731
+ },
2732
+ {
2733
+ "include": "#pragma-mark"
2734
+ }
2735
+ ]
2736
+ },
2737
+ {
2738
+ "begin": "\\n",
2739
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2740
+ "patterns": [
2741
+ {
2742
+ "include": "#block_innards"
2743
+ }
2744
+ ]
2745
+ }
2746
+ ]
2747
+ }
2748
+ ]
2749
+ },
2750
+ "preprocessor-rule-enabled-elif": {
2751
+ "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2752
+ "beginCaptures": {
2753
+ "0": {
2754
+ "name": "meta.preprocessor.objc"
2755
+ },
2756
+ "1": {
2757
+ "name": "keyword.control.directive.conditional.objc"
2758
+ },
2759
+ "2": {
2760
+ "name": "punctuation.definition.directive.objc"
2761
+ }
2762
+ },
2763
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2764
+ "patterns": [
2765
+ {
2766
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2767
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2768
+ "name": "meta.preprocessor.objc",
2769
+ "patterns": [
2770
+ {
2771
+ "include": "#preprocessor-rule-conditional-line"
2772
+ }
2773
+ ]
2774
+ },
2775
+ {
2776
+ "include": "#comments"
2777
+ },
2778
+ {
2779
+ "begin": "\\n",
2780
+ "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
2781
+ "patterns": [
2782
+ {
2783
+ "begin": "^\\s*((#)\\s*(else)\\b)",
2784
+ "beginCaptures": {
2785
+ "0": {
2786
+ "name": "meta.preprocessor.objc"
2787
+ },
2788
+ "1": {
2789
+ "name": "keyword.control.directive.conditional.objc"
2790
+ },
2791
+ "2": {
2792
+ "name": "punctuation.definition.directive.objc"
2793
+ }
2794
+ },
2795
+ "contentName": "comment.block.preprocessor.elif-branch.objc",
2796
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2797
+ "patterns": [
2798
+ {
2799
+ "include": "#disabled"
2800
+ },
2801
+ {
2802
+ "include": "#pragma-mark"
2803
+ }
2804
+ ]
2805
+ },
2806
+ {
2807
+ "begin": "^\\s*((#)\\s*(elif)\\b)",
2808
+ "beginCaptures": {
2809
+ "0": {
2810
+ "name": "meta.preprocessor.objc"
2811
+ },
2812
+ "1": {
2813
+ "name": "keyword.control.directive.conditional.objc"
2814
+ },
2815
+ "2": {
2816
+ "name": "punctuation.definition.directive.objc"
2817
+ }
2818
+ },
2819
+ "contentName": "comment.block.preprocessor.elif-branch.objc",
2820
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2821
+ "patterns": [
2822
+ {
2823
+ "include": "#disabled"
2824
+ },
2825
+ {
2826
+ "include": "#pragma-mark"
2827
+ }
2828
+ ]
2829
+ },
2830
+ {
2831
+ "include": "$base"
2832
+ }
2833
+ ]
2834
+ }
2835
+ ]
2836
+ },
2837
+ "preprocessor-rule-enabled-elif-block": {
2838
+ "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2839
+ "beginCaptures": {
2840
+ "0": {
2841
+ "name": "meta.preprocessor.objc"
2842
+ },
2843
+ "1": {
2844
+ "name": "keyword.control.directive.conditional.objc"
2845
+ },
2846
+ "2": {
2847
+ "name": "punctuation.definition.directive.objc"
2848
+ }
2849
+ },
2850
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2851
+ "patterns": [
2852
+ {
2853
+ "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2854
+ "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2855
+ "name": "meta.preprocessor.objc",
2856
+ "patterns": [
2857
+ {
2858
+ "include": "#preprocessor-rule-conditional-line"
2859
+ }
2860
+ ]
2861
+ },
2862
+ {
2863
+ "include": "#comments"
2864
+ },
2865
+ {
2866
+ "begin": "\\n",
2867
+ "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
2868
+ "patterns": [
2869
+ {
2870
+ "begin": "^\\s*((#)\\s*(else)\\b)",
2871
+ "beginCaptures": {
2872
+ "0": {
2873
+ "name": "meta.preprocessor.objc"
2874
+ },
2875
+ "1": {
2876
+ "name": "keyword.control.directive.conditional.objc"
2877
+ },
2878
+ "2": {
2879
+ "name": "punctuation.definition.directive.objc"
2880
+ }
2881
+ },
2882
+ "contentName": "comment.block.preprocessor.elif-branch.in-block.objc",
2883
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2884
+ "patterns": [
2885
+ {
2886
+ "include": "#disabled"
2887
+ },
2888
+ {
2889
+ "include": "#pragma-mark"
2890
+ }
2891
+ ]
2892
+ },
2893
+ {
2894
+ "begin": "^\\s*((#)\\s*(elif)\\b)",
2895
+ "beginCaptures": {
2896
+ "0": {
2897
+ "name": "meta.preprocessor.objc"
2898
+ },
2899
+ "1": {
2900
+ "name": "keyword.control.directive.conditional.objc"
2901
+ },
2902
+ "2": {
2903
+ "name": "punctuation.definition.directive.objc"
2904
+ }
2905
+ },
2906
+ "contentName": "comment.block.preprocessor.elif-branch.objc",
2907
+ "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2908
+ "patterns": [
2909
+ {
2910
+ "include": "#disabled"
2911
+ },
2912
+ {
2913
+ "include": "#pragma-mark"
2914
+ }
2915
+ ]
2916
+ },
2917
+ {
2918
+ "include": "#block_innards"
2919
+ }
2920
+ ]
2921
+ }
2922
+ ]
2923
+ },
2924
+ "preprocessor-rule-enabled-else": {
2925
+ "begin": "^\\s*((#)\\s*else\\b)",
2926
+ "beginCaptures": {
2927
+ "0": {
2928
+ "name": "meta.preprocessor.objc"
2929
+ },
2930
+ "1": {
2931
+ "name": "keyword.control.directive.conditional.objc"
2932
+ },
2933
+ "2": {
2934
+ "name": "punctuation.definition.directive.objc"
2935
+ }
2936
+ },
2937
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2938
+ "patterns": [
2939
+ {
2940
+ "include": "$base"
2941
+ }
2942
+ ]
2943
+ },
2944
+ "preprocessor-rule-enabled-else-block": {
2945
+ "begin": "^\\s*((#)\\s*else\\b)",
2946
+ "beginCaptures": {
2947
+ "0": {
2948
+ "name": "meta.preprocessor.objc"
2949
+ },
2950
+ "1": {
2951
+ "name": "keyword.control.directive.conditional.objc"
2952
+ },
2953
+ "2": {
2954
+ "name": "punctuation.definition.directive.objc"
2955
+ }
2956
+ },
2957
+ "end": "(?=^\\s*((#)\\s*endif\\b))",
2958
+ "patterns": [
2959
+ {
2960
+ "include": "#block_innards"
2961
+ }
2962
+ ]
2963
+ },
2964
+ "probably_a_parameter": {
2965
+ "captures": {
2966
+ "1": {
2967
+ "name": "variable.parameter.probably.objc"
2968
+ }
2969
+ },
2970
+ "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"
2971
+ },
2972
+ "static_assert": {
2973
+ "begin": "(static_assert|_Static_assert)\\s*(\\()",
2974
+ "beginCaptures": {
2975
+ "1": {
2976
+ "name": "keyword.other.static_assert.objc"
2977
+ },
2978
+ "2": {
2979
+ "name": "punctuation.section.arguments.begin.bracket.round.objc"
2980
+ }
2981
+ },
2982
+ "end": "(\\))",
2983
+ "endCaptures": {
2984
+ "1": {
2985
+ "name": "punctuation.section.arguments.end.bracket.round.objc"
2986
+ }
2987
+ },
2988
+ "patterns": [
2989
+ {
2990
+ "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
2991
+ "beginCaptures": {
2992
+ "1": {
2993
+ "name": "punctuation.separator.delimiter.objc"
2994
+ }
2995
+ },
2996
+ "end": "(?=\\))",
2997
+ "name": "meta.static_assert.message.objc",
2998
+ "patterns": [
2999
+ {
3000
+ "include": "#string_context"
3001
+ },
3002
+ {
3003
+ "include": "#string_context_c"
3004
+ }
3005
+ ]
3006
+ },
3007
+ {
3008
+ "include": "#function_call_context"
3009
+ }
3010
+ ]
3011
+ },
3012
+ "storage_types": {
3013
+ "patterns": [
3014
+ {
3015
+ "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",
3016
+ "name": "storage.type.built-in.primitive.objc"
3017
+ },
3018
+ {
3019
+ "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",
3020
+ "name": "storage.type.built-in.objc"
3021
+ },
3022
+ {
3023
+ "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",
3024
+ "name": "storage.type.$1.objc"
3025
+ }
3026
+ ]
3027
+ },
3028
+ "string_escaped_char": {
3029
+ "patterns": [
3030
+ {
3031
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
3032
+ "name": "constant.character.escape.objc"
3033
+ },
3034
+ {
3035
+ "match": "\\\\.",
3036
+ "name": "invalid.illegal.unknown-escape.objc"
3037
+ }
3038
+ ]
3039
+ },
3040
+ "string_placeholder": {
3041
+ "patterns": [
3042
+ {
3043
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
3044
+ "name": "constant.other.placeholder.objc"
3045
+ },
3046
+ {
3047
+ "captures": {
3048
+ "1": {
3049
+ "name": "invalid.illegal.placeholder.objc"
3050
+ }
3051
+ },
3052
+ "match": "(%)(?!\"\\s*(PRI|SCN))"
3053
+ }
3054
+ ]
3055
+ },
3056
+ "strings": {
3057
+ "patterns": [
3058
+ {
3059
+ "begin": "\"",
3060
+ "beginCaptures": {
3061
+ "0": {
3062
+ "name": "punctuation.definition.string.begin.objc"
3063
+ }
3064
+ },
3065
+ "end": "\"",
3066
+ "endCaptures": {
3067
+ "0": {
3068
+ "name": "punctuation.definition.string.end.objc"
3069
+ }
3070
+ },
3071
+ "name": "string.quoted.double.objc",
3072
+ "patterns": [
3073
+ {
3074
+ "include": "#string_escaped_char"
3075
+ },
3076
+ {
3077
+ "include": "#string_placeholder"
3078
+ },
3079
+ {
3080
+ "include": "#line_continuation_character"
3081
+ }
3082
+ ]
3083
+ },
3084
+ {
3085
+ "begin": "'",
3086
+ "beginCaptures": {
3087
+ "0": {
3088
+ "name": "punctuation.definition.string.begin.objc"
3089
+ }
3090
+ },
3091
+ "end": "'",
3092
+ "endCaptures": {
3093
+ "0": {
3094
+ "name": "punctuation.definition.string.end.objc"
3095
+ }
3096
+ },
3097
+ "name": "string.quoted.single.objc",
3098
+ "patterns": [
3099
+ {
3100
+ "include": "#string_escaped_char"
3101
+ },
3102
+ {
3103
+ "include": "#line_continuation_character"
3104
+ }
3105
+ ]
3106
+ }
3107
+ ]
3108
+ },
3109
+ "switch_conditional_parentheses": {
3110
+ "begin": "(\\()",
3111
+ "beginCaptures": {
3112
+ "1": {
3113
+ "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objc"
3114
+ }
3115
+ },
3116
+ "end": "(\\))",
3117
+ "endCaptures": {
3118
+ "1": {
3119
+ "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objc"
3120
+ }
3121
+ },
3122
+ "name": "meta.conditional.switch.objc",
3123
+ "patterns": [
3124
+ {
3125
+ "include": "#conditional_context"
3126
+ }
3127
+ ]
3128
+ },
3129
+ "switch_statement": {
3130
+ "begin": "(((?<!\\w)switch(?!\\w)))",
3131
+ "beginCaptures": {
3132
+ "1": {
3133
+ "name": "meta.head.switch.objc"
3134
+ },
3135
+ "2": {
3136
+ "name": "keyword.control.switch.objc"
3137
+ }
3138
+ },
3139
+ "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))",
3140
+ "name": "meta.block.switch.objc",
3141
+ "patterns": [
3142
+ {
3143
+ "begin": "\\G ?",
3144
+ "end": "((?:\\{|(?=;)))",
3145
+ "endCaptures": {
3146
+ "1": {
3147
+ "name": "punctuation.section.block.begin.bracket.curly.switch.objc"
3148
+ }
3149
+ },
3150
+ "name": "meta.head.switch.objc",
3151
+ "patterns": [
3152
+ {
3153
+ "include": "#switch_conditional_parentheses"
3154
+ },
3155
+ {
3156
+ "include": "$base"
3157
+ }
3158
+ ]
3159
+ },
3160
+ {
3161
+ "begin": "(?<=\\{)",
3162
+ "end": "(\\})",
3163
+ "endCaptures": {
3164
+ "1": {
3165
+ "name": "punctuation.section.block.end.bracket.curly.switch.objc"
3166
+ }
3167
+ },
3168
+ "name": "meta.body.switch.objc",
3169
+ "patterns": [
3170
+ {
3171
+ "include": "#default_statement"
3172
+ },
3173
+ {
3174
+ "include": "#case_statement"
3175
+ },
3176
+ {
3177
+ "include": "$base"
3178
+ },
3179
+ {
3180
+ "include": "#block_innards"
3181
+ }
3182
+ ]
3183
+ },
3184
+ {
3185
+ "begin": "(?<=})[\\s\\n]*",
3186
+ "end": "[\\s\\n]*(?=;)",
3187
+ "name": "meta.tail.switch.objc",
3188
+ "patterns": [
3189
+ {
3190
+ "include": "$base"
3191
+ }
3192
+ ]
3193
+ }
3194
+ ]
3195
+ },
3196
+ "vararg_ellipses": {
3197
+ "match": "(?<!\\.)\\.\\.\\.(?!\\.)",
3198
+ "name": "punctuation.vararg-ellipses.objc"
3199
+ }
3200
+ }
3201
+ },
3202
+ "comment": {
3203
+ "patterns": [
3204
+ {
3205
+ "begin": "/\\*",
3206
+ "captures": {
3207
+ "0": {
3208
+ "name": "punctuation.definition.comment.objc"
3209
+ }
3210
+ },
3211
+ "end": "\\*/",
3212
+ "name": "comment.block.objc"
3213
+ },
3214
+ {
3215
+ "begin": "(^[ \\t]+)?(?=//)",
3216
+ "beginCaptures": {
3217
+ "1": {
3218
+ "name": "punctuation.whitespace.comment.leading.objc"
3219
+ }
3220
+ },
3221
+ "end": "(?!\\G)",
3222
+ "patterns": [
3223
+ {
3224
+ "begin": "//",
3225
+ "beginCaptures": {
3226
+ "0": {
3227
+ "name": "punctuation.definition.comment.objc"
3228
+ }
3229
+ },
3230
+ "end": "\\n",
3231
+ "name": "comment.line.double-slash.objc",
3232
+ "patterns": [
3233
+ {
3234
+ "match": "(?>\\\\\\s*\\n)",
3235
+ "name": "punctuation.separator.continuation.objc"
3236
+ }
3237
+ ]
3238
+ }
3239
+ ]
3240
+ }
3241
+ ]
3242
+ },
3243
+ "disabled": {
3244
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
3245
+ "comment": "eat nested preprocessor if(def)s",
3246
+ "end": "^\\s*#\\s*endif\\b.*$",
3247
+ "patterns": [
3248
+ {
3249
+ "include": "#disabled"
3250
+ },
3251
+ {
3252
+ "include": "#pragma-mark"
3253
+ }
3254
+ ]
3255
+ },
3256
+ "implementation_innards": {
3257
+ "patterns": [
3258
+ {
3259
+ "include": "#preprocessor-rule-enabled-implementation"
3260
+ },
3261
+ {
3262
+ "include": "#preprocessor-rule-disabled-implementation"
3263
+ },
3264
+ {
3265
+ "include": "#preprocessor-rule-other-implementation"
3266
+ },
3267
+ {
3268
+ "include": "#property_directive"
3269
+ },
3270
+ {
3271
+ "include": "#method_super"
3272
+ },
3273
+ {
3274
+ "include": "$base"
3275
+ }
3276
+ ]
3277
+ },
3278
+ "interface_innards": {
3279
+ "patterns": [
3280
+ {
3281
+ "include": "#preprocessor-rule-enabled-interface"
3282
+ },
3283
+ {
3284
+ "include": "#preprocessor-rule-disabled-interface"
3285
+ },
3286
+ {
3287
+ "include": "#preprocessor-rule-other-interface"
3288
+ },
3289
+ {
3290
+ "include": "#properties"
3291
+ },
3292
+ {
3293
+ "include": "#protocol_list"
3294
+ },
3295
+ {
3296
+ "include": "#method"
3297
+ },
3298
+ {
3299
+ "include": "$base"
3300
+ }
3301
+ ]
3302
+ },
3303
+ "method": {
3304
+ "begin": "^(-|\\+)\\s*",
3305
+ "end": "(?=\\{|#)|;",
3306
+ "name": "meta.function.objc",
3307
+ "patterns": [
3308
+ {
3309
+ "begin": "(\\()",
3310
+ "beginCaptures": {
3311
+ "1": {
3312
+ "name": "punctuation.definition.type.begin.objc"
3313
+ }
3314
+ },
3315
+ "end": "(\\))\\s*(\\w+\\b)",
3316
+ "endCaptures": {
3317
+ "1": {
3318
+ "name": "punctuation.definition.type.end.objc"
3319
+ },
3320
+ "2": {
3321
+ "name": "entity.name.function.objc"
3322
+ }
3323
+ },
3324
+ "name": "meta.return-type.objc",
3325
+ "patterns": [
3326
+ {
3327
+ "include": "#protocol_list"
3328
+ },
3329
+ {
3330
+ "include": "#protocol_type_qualifier"
3331
+ },
3332
+ {
3333
+ "include": "$base"
3334
+ }
3335
+ ]
3336
+ },
3337
+ {
3338
+ "match": "\\b\\w+(?=:)",
3339
+ "name": "entity.name.function.name-of-parameter.objc"
3340
+ },
3341
+ {
3342
+ "begin": "((:))\\s*(\\()",
3343
+ "beginCaptures": {
3344
+ "1": {
3345
+ "name": "entity.name.function.name-of-parameter.objc"
3346
+ },
3347
+ "2": {
3348
+ "name": "punctuation.separator.arguments.objc"
3349
+ },
3350
+ "3": {
3351
+ "name": "punctuation.definition.type.begin.objc"
3352
+ }
3353
+ },
3354
+ "end": "(\\))\\s*(\\w+\\b)?",
3355
+ "endCaptures": {
3356
+ "1": {
3357
+ "name": "punctuation.definition.type.end.objc"
3358
+ },
3359
+ "2": {
3360
+ "name": "variable.parameter.function.objc"
3361
+ }
3362
+ },
3363
+ "name": "meta.argument-type.objc",
3364
+ "patterns": [
3365
+ {
3366
+ "include": "#protocol_list"
3367
+ },
3368
+ {
3369
+ "include": "#protocol_type_qualifier"
3370
+ },
3371
+ {
3372
+ "include": "$base"
3373
+ }
3374
+ ]
3375
+ },
3376
+ {
3377
+ "include": "#comment"
3378
+ }
3379
+ ]
3380
+ },
3381
+ "method_super": {
3382
+ "begin": "^(?=-|\\+)",
3383
+ "end": "(?<=\\})|(?=#)",
3384
+ "name": "meta.function-with-body.objc",
3385
+ "patterns": [
3386
+ {
3387
+ "include": "#method"
3388
+ },
3389
+ {
3390
+ "include": "$base"
3391
+ }
3392
+ ]
3393
+ },
3394
+ "pragma-mark": {
3395
+ "captures": {
3396
+ "1": {
3397
+ "name": "meta.preprocessor.objc"
3398
+ },
3399
+ "2": {
3400
+ "name": "keyword.control.import.pragma.objc"
3401
+ },
3402
+ "3": {
3403
+ "name": "meta.toc-list.pragma-mark.objc"
3404
+ }
3405
+ },
3406
+ "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
3407
+ "name": "meta.section.objc"
3408
+ },
3409
+ "preprocessor-rule-disabled-implementation": {
3410
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
3411
+ "captures": {
3412
+ "1": {
3413
+ "name": "meta.preprocessor.objc"
3414
+ },
3415
+ "2": {
3416
+ "name": "keyword.control.import.if.objc"
3417
+ },
3418
+ "3": {
3419
+ "name": "constant.numeric.preprocessor.objc"
3420
+ }
3421
+ },
3422
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3423
+ "patterns": [
3424
+ {
3425
+ "begin": "^\\s*(#\\s*(else)\\b)",
3426
+ "captures": {
3427
+ "1": {
3428
+ "name": "meta.preprocessor.objc"
3429
+ },
3430
+ "2": {
3431
+ "name": "keyword.control.import.else.objc"
3432
+ }
3433
+ },
3434
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3435
+ "patterns": [
3436
+ {
3437
+ "include": "#interface_innards"
3438
+ }
3439
+ ]
3440
+ },
3441
+ {
3442
+ "begin": "",
3443
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3444
+ "name": "comment.block.preprocessor.if-branch.objc",
3445
+ "patterns": [
3446
+ {
3447
+ "include": "#disabled"
3448
+ },
3449
+ {
3450
+ "include": "#pragma-mark"
3451
+ }
3452
+ ]
3453
+ }
3454
+ ]
3455
+ },
3456
+ "preprocessor-rule-disabled-interface": {
3457
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
3458
+ "captures": {
3459
+ "1": {
3460
+ "name": "meta.preprocessor.objc"
3461
+ },
3462
+ "2": {
3463
+ "name": "keyword.control.import.if.objc"
3464
+ },
3465
+ "3": {
3466
+ "name": "constant.numeric.preprocessor.objc"
3467
+ }
3468
+ },
3469
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3470
+ "patterns": [
3471
+ {
3472
+ "begin": "^\\s*(#\\s*(else)\\b)",
3473
+ "captures": {
3474
+ "1": {
3475
+ "name": "meta.preprocessor.objc"
3476
+ },
3477
+ "2": {
3478
+ "name": "keyword.control.import.else.objc"
3479
+ }
3480
+ },
3481
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3482
+ "patterns": [
3483
+ {
3484
+ "include": "#interface_innards"
3485
+ }
3486
+ ]
3487
+ },
3488
+ {
3489
+ "begin": "",
3490
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3491
+ "name": "comment.block.preprocessor.if-branch.objc",
3492
+ "patterns": [
3493
+ {
3494
+ "include": "#disabled"
3495
+ },
3496
+ {
3497
+ "include": "#pragma-mark"
3498
+ }
3499
+ ]
3500
+ }
3501
+ ]
3502
+ },
3503
+ "preprocessor-rule-enabled-implementation": {
3504
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
3505
+ "captures": {
3506
+ "1": {
3507
+ "name": "meta.preprocessor.objc"
3508
+ },
3509
+ "2": {
3510
+ "name": "keyword.control.import.if.objc"
3511
+ },
3512
+ "3": {
3513
+ "name": "constant.numeric.preprocessor.objc"
3514
+ }
3515
+ },
3516
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3517
+ "patterns": [
3518
+ {
3519
+ "begin": "^\\s*(#\\s*(else)\\b).*",
3520
+ "captures": {
3521
+ "1": {
3522
+ "name": "meta.preprocessor.objc"
3523
+ },
3524
+ "2": {
3525
+ "name": "keyword.control.import.else.objc"
3526
+ }
3527
+ },
3528
+ "contentName": "comment.block.preprocessor.else-branch.objc",
3529
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3530
+ "patterns": [
3531
+ {
3532
+ "include": "#disabled"
3533
+ },
3534
+ {
3535
+ "include": "#pragma-mark"
3536
+ }
3537
+ ]
3538
+ },
3539
+ {
3540
+ "begin": "",
3541
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3542
+ "patterns": [
3543
+ {
3544
+ "include": "#implementation_innards"
3545
+ }
3546
+ ]
3547
+ }
3548
+ ]
3549
+ },
3550
+ "preprocessor-rule-enabled-interface": {
3551
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
3552
+ "captures": {
3553
+ "1": {
3554
+ "name": "meta.preprocessor.objc"
3555
+ },
3556
+ "2": {
3557
+ "name": "keyword.control.import.if.objc"
3558
+ },
3559
+ "3": {
3560
+ "name": "constant.numeric.preprocessor.objc"
3561
+ }
3562
+ },
3563
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3564
+ "patterns": [
3565
+ {
3566
+ "begin": "^\\s*(#\\s*(else)\\b).*",
3567
+ "captures": {
3568
+ "1": {
3569
+ "name": "meta.preprocessor.objc"
3570
+ },
3571
+ "2": {
3572
+ "name": "keyword.control.import.else.objc"
3573
+ }
3574
+ },
3575
+ "contentName": "comment.block.preprocessor.else-branch.objc",
3576
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3577
+ "patterns": [
3578
+ {
3579
+ "include": "#disabled"
3580
+ },
3581
+ {
3582
+ "include": "#pragma-mark"
3583
+ }
3584
+ ]
3585
+ },
3586
+ {
3587
+ "begin": "",
3588
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3589
+ "patterns": [
3590
+ {
3591
+ "include": "#interface_innards"
3592
+ }
3593
+ ]
3594
+ }
3595
+ ]
3596
+ },
3597
+ "preprocessor-rule-other-implementation": {
3598
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
3599
+ "captures": {
3600
+ "1": {
3601
+ "name": "meta.preprocessor.objc"
3602
+ },
3603
+ "2": {
3604
+ "name": "keyword.control.import.objc"
3605
+ }
3606
+ },
3607
+ "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
3608
+ "patterns": [
3609
+ {
3610
+ "include": "#implementation_innards"
3611
+ }
3612
+ ]
3613
+ },
3614
+ "preprocessor-rule-other-interface": {
3615
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
3616
+ "captures": {
3617
+ "1": {
3618
+ "name": "meta.preprocessor.objc"
3619
+ },
3620
+ "2": {
3621
+ "name": "keyword.control.import.objc"
3622
+ }
3623
+ },
3624
+ "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
3625
+ "patterns": [
3626
+ {
3627
+ "include": "#interface_innards"
3628
+ }
3629
+ ]
3630
+ },
3631
+ "properties": {
3632
+ "patterns": [
3633
+ {
3634
+ "begin": "((@)property)\\s*(\\()",
3635
+ "beginCaptures": {
3636
+ "1": {
3637
+ "name": "keyword.other.property.objc"
3638
+ },
3639
+ "2": {
3640
+ "name": "punctuation.definition.keyword.objc"
3641
+ },
3642
+ "3": {
3643
+ "name": "punctuation.section.scope.begin.objc"
3644
+ }
3645
+ },
3646
+ "end": "(\\))",
3647
+ "endCaptures": {
3648
+ "1": {
3649
+ "name": "punctuation.section.scope.end.objc"
3650
+ }
3651
+ },
3652
+ "name": "meta.property-with-attributes.objc",
3653
+ "patterns": [
3654
+ {
3655
+ "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",
3656
+ "name": "keyword.other.property.attribute.objc"
3657
+ }
3658
+ ]
3659
+ },
3660
+ {
3661
+ "captures": {
3662
+ "1": {
3663
+ "name": "keyword.other.property.objc"
3664
+ },
3665
+ "2": {
3666
+ "name": "punctuation.definition.keyword.objc"
3667
+ }
3668
+ },
3669
+ "match": "((@)property)\\b",
3670
+ "name": "meta.property.objc"
3671
+ }
3672
+ ]
3673
+ },
3674
+ "property_directive": {
3675
+ "captures": {
3676
+ "1": {
3677
+ "name": "punctuation.definition.keyword.objc"
3678
+ }
3679
+ },
3680
+ "match": "(@)(dynamic|synthesize)\\b",
3681
+ "name": "keyword.other.property.directive.objc"
3682
+ },
3683
+ "protocol_list": {
3684
+ "begin": "(<)",
3685
+ "beginCaptures": {
3686
+ "1": {
3687
+ "name": "punctuation.section.scope.begin.objc"
3688
+ }
3689
+ },
3690
+ "end": "(>)",
3691
+ "endCaptures": {
3692
+ "1": {
3693
+ "name": "punctuation.section.scope.end.objc"
3694
+ }
3695
+ },
3696
+ "name": "meta.protocol-list.objc",
3697
+ "patterns": [
3698
+ {
3699
+ "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",
3700
+ "name": "support.other.protocol.objc"
3701
+ }
3702
+ ]
3703
+ },
3704
+ "protocol_type_qualifier": {
3705
+ "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",
3706
+ "name": "storage.modifier.protocol.objc"
3707
+ },
3708
+ "special_variables": {
3709
+ "patterns": [
3710
+ {
3711
+ "match": "\\b_cmd\\b",
3712
+ "name": "variable.other.selector.objc"
3713
+ },
3714
+ {
3715
+ "match": "\\b(self|super)\\b",
3716
+ "name": "variable.language.objc"
3717
+ }
3718
+ ]
3719
+ },
3720
+ "string_escaped_char": {
3721
+ "patterns": [
3722
+ {
3723
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
3724
+ "name": "constant.character.escape.objc"
3725
+ },
3726
+ {
3727
+ "match": "\\\\.",
3728
+ "name": "invalid.illegal.unknown-escape.objc"
3729
+ }
3730
+ ]
3731
+ },
3732
+ "string_placeholder": {
3733
+ "patterns": [
3734
+ {
3735
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
3736
+ "name": "constant.other.placeholder.objc"
3737
+ },
3738
+ {
3739
+ "captures": {
3740
+ "1": {
3741
+ "name": "invalid.illegal.placeholder.objc"
3742
+ }
3743
+ },
3744
+ "match": "(%)(?!\"\\s*(PRI|SCN))"
3745
+ }
3746
+ ]
3747
+ }
3748
+ },
3749
+ "scopeName": "source.objc"
3750
+ }