[OCaml] Mobile-friendly clone of cgit.
1
{
2
"information_for_contributors":[
3
"This file has been converted from https://github.com/jeff-hykin/better-objc-syntax/blob/master/autogenerated/objc.tmLanguage.json",
4
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
5
"Once accepted there, we are happy to receive an update request."
6
],
7
"version":"https://github.com/jeff-hykin/better-objc-syntax/commit/119b75fb1f4d3e8726fa62588e3b935e0b719294",
8
"name":"Objective-C",
9
"scopeName":"source.objc",
10
"patterns":[
11
{
12
"include":"#anonymous_pattern_1"
13
},
14
{
15
"include":"#anonymous_pattern_2"
16
},
17
{
18
"include":"#anonymous_pattern_3"
19
},
20
{
21
"include":"#anonymous_pattern_4"
22
},
23
{
24
"include":"#anonymous_pattern_5"
25
},
26
{
27
"include":"#apple_foundation_functional_macros"
28
},
29
{
30
"include":"#anonymous_pattern_7"
31
},
32
{
33
"include":"#anonymous_pattern_8"
34
},
35
{
36
"include":"#anonymous_pattern_9"
37
},
38
{
39
"include":"#anonymous_pattern_10"
40
},
41
{
42
"include":"#anonymous_pattern_11"
43
},
44
{
45
"include":"#anonymous_pattern_12"
46
},
47
{
48
"include":"#anonymous_pattern_13"
49
},
50
{
51
"include":"#anonymous_pattern_14"
52
},
53
{
54
"include":"#anonymous_pattern_15"
55
},
56
{
57
"include":"#anonymous_pattern_16"
58
},
59
{
60
"include":"#anonymous_pattern_17"
61
},
62
{
63
"include":"#anonymous_pattern_18"
64
},
65
{
66
"include":"#anonymous_pattern_19"
67
},
68
{
69
"include":"#anonymous_pattern_20"
70
},
71
{
72
"include":"#anonymous_pattern_21"
73
},
74
{
75
"include":"#anonymous_pattern_22"
76
},
77
{
78
"include":"#anonymous_pattern_23"
79
},
80
{
81
"include":"#anonymous_pattern_24"
82
},
83
{
84
"include":"#anonymous_pattern_25"
85
},
86
{
87
"include":"#anonymous_pattern_26"
88
},
89
{
90
"include":"#anonymous_pattern_27"
91
},
92
{
93
"include":"#anonymous_pattern_28"
94
},
95
{
96
"include":"#anonymous_pattern_29"
97
},
98
{
99
"include":"#anonymous_pattern_30"
100
},
101
{
102
"include":"#bracketed_content"
103
},
104
{
105
"include":"#c_lang"
106
}
107
],
108
"repository":{
109
"anonymous_pattern_1":{
110
"begin":"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",
111
"captures":{
112
"1":{
113
"name":"storage.type.objc"
114
},
115
"2":{
116
"name":"punctuation.definition.storage.type.objc"
117
},
118
"4":{
119
"name":"entity.name.type.objc"
120
},
121
"6":{
122
"name":"punctuation.definition.entity.other.inherited-class.objc"
123
},
124
"7":{
125
"name":"entity.other.inherited-class.objc"
126
},
127
"8":{
128
"name":"meta.divider.objc"
129
},
130
"9":{
131
"name":"meta.inherited-class.objc"
132
}
133
},
134
"contentName":"meta.scope.interface.objc",
135
"end":"((@)end)\\b",
136
"name":"meta.interface-or-protocol.objc",
137
"patterns":[
138
{
139
"include":"#interface_innards"
140
}
141
]
142
},
143
"anonymous_pattern_10":{
144
"captures":{
145
"1":{
146
"name":"punctuation.definition.keyword.objc"
147
}
148
},
149
"match":"(@)(defs|encode)\\b",
150
"name":"keyword.other.objc"
151
},
152
"anonymous_pattern_11":{
153
"match":"\\bid\\b",
154
"name":"storage.type.id.objc"
155
},
156
"anonymous_pattern_12":{
157
"match":"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",
158
"name":"storage.type.objc"
159
},
160
"anonymous_pattern_13":{
161
"captures":{
162
"1":{
163
"name":"punctuation.definition.storage.type.objc"
164
}
165
},
166
"match":"(@)(class|protocol)\\b",
167
"name":"storage.type.objc"
168
},
169
"anonymous_pattern_14":{
170
"begin":"((@)selector)\\s*(\\()",
171
"beginCaptures":{
172
"1":{
173
"name":"storage.type.objc"
174
},
175
"2":{
176
"name":"punctuation.definition.storage.type.objc"
177
},
178
"3":{
179
"name":"punctuation.definition.storage.type.objc"
180
}
181
},
182
"contentName":"meta.selector.method-name.objc",
183
"end":"(\\))",
184
"endCaptures":{
185
"1":{
186
"name":"punctuation.definition.storage.type.objc"
187
}
188
},
189
"name":"meta.selector.objc",
190
"patterns":[
191
{
192
"captures":{
193
"1":{
194
"name":"punctuation.separator.arguments.objc"
195
}
196
},
197
"match":"\\b(?:[a-zA-Z_:][\\w]*)+",
198
"name":"support.function.any-method.name-of-parameter.objc"
199
}
200
]
201
},
202
"anonymous_pattern_15":{
203
"captures":{
204
"1":{
205
"name":"punctuation.definition.storage.modifier.objc"
206
}
207
},
208
"match":"(@)(synchronized|public|package|private|protected)\\b",
209
"name":"storage.modifier.objc"
210
},
211
"anonymous_pattern_16":{
212
"match":"\\b(YES|NO|Nil|nil)\\b",
213
"name":"constant.language.objc"
214
},
215
"anonymous_pattern_17":{
216
"match":"\\bNSApp\\b",
217
"name":"support.variable.foundation.objc"
218
},
219
"anonymous_pattern_18":{
220
"captures":{
221
"1":{
222
"name":"punctuation.whitespace.support.function.cocoa.leopard.objc"
223
},
224
"2":{
225
"name":"support.function.cocoa.leopard.objc"
226
}
227
},
228
"match":"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"
229
},
230
"anonymous_pattern_19":{
231
"captures":{
232
"1":{
233
"name":"punctuation.whitespace.support.function.leading.cocoa.objc"
234
},
235
"2":{
236
"name":"support.function.cocoa.objc"
237
}
238
},
239
"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"
240
},
241
"anonymous_pattern_2":{
242
"begin":"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",
243
"captures":{
244
"1":{
245
"name":"storage.type.objc"
246
},
247
"2":{
248
"name":"punctuation.definition.storage.type.objc"
249
},
250
"4":{
251
"name":"entity.name.type.objc"
252
},
253
"5":{
254
"name":"entity.other.inherited-class.objc"
255
}
256
},
257
"contentName":"meta.scope.implementation.objc",
258
"end":"((@)end)\\b",
259
"name":"meta.implementation.objc",
260
"patterns":[
261
{
262
"include":"#implementation_innards"
263
}
264
]
265
},
266
"anonymous_pattern_20":{
267
"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",
268
"name":"support.class.cocoa.leopard.objc"
269
},
270
"anonymous_pattern_21":{
271
"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",
272
"name":"support.class.cocoa.objc"
273
},
274
"anonymous_pattern_22":{
275
"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",
276
"name":"support.type.cocoa.leopard.objc"
277
},
278
"anonymous_pattern_23":{
279
"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",
280
"name":"support.class.quartz.objc"
281
},
282
"anonymous_pattern_24":{
283
"match":"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",
284
"name":"support.type.quartz.objc"
285
},
286
"anonymous_pattern_25":{
287
"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",
288
"name":"support.type.cocoa.objc"
289
},
290
"anonymous_pattern_26":{
291
"match":"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",
292
"name":"support.constant.cocoa.objc"
293
},
294
"anonymous_pattern_27":{
295
"match":"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",
296
"name":"support.constant.notification.cocoa.leopard.objc"
297
},
298
"anonymous_pattern_28":{
299
"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",
300
"name":"support.constant.notification.cocoa.objc"
301
},
302
"anonymous_pattern_29":{
303
"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",
304
"name":"support.constant.cocoa.leopard.objc"
305
},
306
"anonymous_pattern_3":{
307
"begin":"@\"",
308
"beginCaptures":{
309
"0":{
310
"name":"punctuation.definition.string.begin.objc"
311
}
312
},
313
"end":"\"",
314
"endCaptures":{
315
"0":{
316
"name":"punctuation.definition.string.end.objc"
317
}
318
},
319
"name":"string.quoted.double.objc",
320
"patterns":[
321
{
322
"include":"#string_escaped_char"
323
},
324
{
325
"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",
326
"name":"constant.other.placeholder.objc"
327
},
328
{
329
"include":"#string_placeholder"
330
}
331
]
332
},
333
"anonymous_pattern_30":{
334
"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",
335
"name":"support.constant.cocoa.objc"
336
},
337
"anonymous_pattern_4":{
338
"begin":"\\b(id)\\s*(?=<)",
339
"beginCaptures":{
340
"1":{
341
"name":"storage.type.objc"
342
}
343
},
344
"end":"(?<=>)",
345
"name":"meta.id-with-protocol.objc",
346
"patterns":[
347
{
348
"include":"#protocol_list"
349
}
350
]
351
},
352
"anonymous_pattern_5":{
353
"match":"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",
354
"name":"keyword.control.macro.objc"
355
},
356
"anonymous_pattern_7":{
357
"captures":{
358
"1":{
359
"name":"punctuation.definition.keyword.objc"
360
}
361
},
362
"match":"(@)(try|catch|finally|throw)\\b",
363
"name":"keyword.control.exception.objc"
364
},
365
"anonymous_pattern_8":{
366
"captures":{
367
"1":{
368
"name":"punctuation.definition.keyword.objc"
369
}
370
},
371
"match":"(@)(synchronized)\\b",
372
"name":"keyword.control.synchronize.objc"
373
},
374
"anonymous_pattern_9":{
375
"captures":{
376
"1":{
377
"name":"punctuation.definition.keyword.objc"
378
}
379
},
380
"match":"(@)(required|optional)\\b",
381
"name":"keyword.control.protocol-specification.objc"
382
},
383
"apple_foundation_functional_macros":{
384
"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)+)?(\\()",
385
"end":"\\)",
386
"beginCaptures":{
387
"1":{
388
"name":"entity.name.function.preprocessor.apple-foundation.objc"
389
},
390
"2":{
391
"name":"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc"
392
}
393
},
394
"endCaptures":{
395
"0":{
396
"name":"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc"
397
}
398
},
399
"name":"meta.preprocessor.macro.callable.apple-foundation.objc",
400
"patterns":[
401
{
402
"include":"#c_lang"
403
}
404
]
405
},
406
"bracketed_content":{
407
"begin":"\\[",
408
"beginCaptures":{
409
"0":{
410
"name":"punctuation.section.scope.begin.objc"
411
}
412
},
413
"end":"\\]",
414
"endCaptures":{
415
"0":{
416
"name":"punctuation.section.scope.end.objc"
417
}
418
},
419
"name":"meta.bracketed.objc",
420
"patterns":[
421
{
422
"begin":"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",
423
"beginCaptures":{
424
"1":{
425
"name":"support.function.any-method.objc"
426
},
427
"2":{
428
"name":"punctuation.separator.arguments.objc"
429
}
430
},
431
"end":"(?=\\])",
432
"name":"meta.function-call.predicate.objc",
433
"patterns":[
434
{
435
"captures":{
436
"1":{
437
"name":"punctuation.separator.arguments.objc"
438
}
439
},
440
"match":"\\bargument(Array|s)(:)",
441
"name":"support.function.any-method.name-of-parameter.objc"
442
},
443
{
444
"captures":{
445
"1":{
446
"name":"punctuation.separator.arguments.objc"
447
}
448
},
449
"match":"\\b\\w+(:)",
450
"name":"invalid.illegal.unknown-method.objc"
451
},
452
{
453
"begin":"@\"",
454
"beginCaptures":{
455
"0":{
456
"name":"punctuation.definition.string.begin.objc"
457
}
458
},
459
"end":"\"",
460
"endCaptures":{
461
"0":{
462
"name":"punctuation.definition.string.end.objc"
463
}
464
},
465
"name":"string.quoted.double.objc",
466
"patterns":[
467
{
468
"match":"\\b(AND|OR|NOT|IN)\\b",
469
"name":"keyword.operator.logical.predicate.cocoa.objc"
470
},
471
{
472
"match":"\\b(ALL|ANY|SOME|NONE)\\b",
473
"name":"constant.language.predicate.cocoa.objc"
474
},
475
{
476
"match":"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",
477
"name":"constant.language.predicate.cocoa.objc"
478
},
479
{
480
"match":"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",
481
"name":"keyword.operator.comparison.predicate.cocoa.objc"
482
},
483
{
484
"match":"\\bC(ASEINSENSITIVE|I)\\b",
485
"name":"keyword.other.modifier.predicate.cocoa.objc"
486
},
487
{
488
"match":"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",
489
"name":"keyword.other.predicate.cocoa.objc"
490
},
491
{
492
"match":"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
493
"name":"constant.character.escape.objc"
494
},
495
{
496
"match":"\\\\.",
497
"name":"invalid.illegal.unknown-escape.objc"
498
}
499
]
500
},
501
{
502
"include":"#special_variables"
503
},
504
{
505
"include":"#c_functions"
506
},
507
{
508
"include":"$base"
509
}
510
]
511
},
512
{
513
"begin":"(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",
514
"beginCaptures":{
515
"1":{
516
"name":"support.function.any-method.objc"
517
},
518
"2":{
519
"name":"punctuation.separator.arguments.objc"
520
}
521
},
522
"end":"(?=\\])",
523
"name":"meta.function-call.objc",
524
"patterns":[
525
{
526
"captures":{
527
"1":{
528
"name":"punctuation.separator.arguments.objc"
529
}
530
},
531
"match":"\\b\\w+(:)",
532
"name":"support.function.any-method.name-of-parameter.objc"
533
},
534
{
535
"include":"#special_variables"
536
},
537
{
538
"include":"#c_functions"
539
},
540
{
541
"include":"$base"
542
}
543
]
544
},
545
{
546
"include":"#special_variables"
547
},
548
{
549
"include":"#c_functions"
550
},
551
{
552
"include":"$self"
553
}
554
]
555
},
556
"c_functions":{
557
"patterns":[
558
{
559
"captures":{
560
"1":{
561
"name":"punctuation.whitespace.support.function.leading.objc"
562
},
563
"2":{
564
"name":"support.function.C99.objc"
565
}
566
},
567
"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"
568
},
569
{
570
"captures":{
571
"1":{
572
"name":"punctuation.whitespace.function-call.leading.objc"
573
},
574
"2":{
575
"name":"support.function.any-method.objc"
576
},
577
"3":{
578
"name":"punctuation.definition.parameters.objc"
579
}
580
},
581
"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*(\\()",
582
"name":"meta.function-call.objc"
583
}
584
]
585
},
586
"c_lang":{
587
"patterns":[
588
{
589
"include":"#preprocessor-rule-enabled"
590
},
591
{
592
"include":"#preprocessor-rule-disabled"
593
},
594
{
595
"include":"#preprocessor-rule-conditional"
596
},
597
{
598
"include":"#comments"
599
},
600
{
601
"include":"#switch_statement"
602
},
603
{
604
"match":"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
605
"name":"keyword.control.objc"
606
},
607
{
608
"include":"#storage_types"
609
},
610
{
611
"match":"typedef",
612
"name":"keyword.other.typedef.objc"
613
},
614
{
615
"match":"\\bin\\b",
616
"name":"keyword.other.in.objc"
617
},
618
{
619
"match":"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",
620
"name":"storage.modifier.objc"
621
},
622
{
623
"match":"\\bk[A-Z]\\w*\\b",
624
"name":"constant.other.variable.mac-classic.objc"
625
},
626
{
627
"match":"\\bg[A-Z]\\w*\\b",
628
"name":"variable.other.readwrite.global.mac-classic.objc"
629
},
630
{
631
"match":"\\bs[A-Z]\\w*\\b",
632
"name":"variable.other.readwrite.static.mac-classic.objc"
633
},
634
{
635
"match":"\\b(NULL|true|false|TRUE|FALSE)\\b",
636
"name":"constant.language.objc"
637
},
638
{
639
"include":"#operators"
640
},
641
{
642
"include":"#numbers"
643
},
644
{
645
"include":"#strings"
646
},
647
{
648
"include":"#special_variables"
649
},
650
{
651
"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)?",
652
"beginCaptures":{
653
"1":{
654
"name":"keyword.control.directive.define.objc"
655
},
656
"2":{
657
"name":"punctuation.definition.directive.objc"
658
},
659
"3":{
660
"name":"entity.name.function.preprocessor.objc"
661
},
662
"5":{
663
"name":"punctuation.definition.parameters.begin.objc"
664
},
665
"6":{
666
"name":"variable.parameter.preprocessor.objc"
667
},
668
"8":{
669
"name":"punctuation.separator.parameters.objc"
670
},
671
"9":{
672
"name":"punctuation.definition.parameters.end.objc"
673
}
674
},
675
"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
676
"name":"meta.preprocessor.macro.objc",
677
"patterns":[
678
{
679
"include":"#preprocessor-rule-define-line-contents"
680
}
681
]
682
},
683
{
684
"begin":"^\\s*((#)\\s*(error|warning))\\b\\s*",
685
"beginCaptures":{
686
"1":{
687
"name":"keyword.control.directive.diagnostic.$3.objc"
688
},
689
"2":{
690
"name":"punctuation.definition.directive.objc"
691
}
692
},
693
"end":"(?<!\\\\)(?=\\n)",
694
"name":"meta.preprocessor.diagnostic.objc",
695
"patterns":[
696
{
697
"begin":"\"",
698
"beginCaptures":{
699
"0":{
700
"name":"punctuation.definition.string.begin.objc"
701
}
702
},
703
"end":"\"|(?<!\\\\)(?=\\s*\\n)",
704
"endCaptures":{
705
"0":{
706
"name":"punctuation.definition.string.end.objc"
707
}
708
},
709
"name":"string.quoted.double.objc",
710
"patterns":[
711
{
712
"include":"#line_continuation_character"
713
}
714
]
715
},
716
{
717
"begin":"'",
718
"beginCaptures":{
719
"0":{
720
"name":"punctuation.definition.string.begin.objc"
721
}
722
},
723
"end":"'|(?<!\\\\)(?=\\s*\\n)",
724
"endCaptures":{
725
"0":{
726
"name":"punctuation.definition.string.end.objc"
727
}
728
},
729
"name":"string.quoted.single.objc",
730
"patterns":[
731
{
732
"include":"#line_continuation_character"
733
}
734
]
735
},
736
{
737
"begin":"[^'\"]",
738
"end":"(?<!\\\\)(?=\\s*\\n)",
739
"name":"string.unquoted.single.objc",
740
"patterns":[
741
{
742
"include":"#line_continuation_character"
743
},
744
{
745
"include":"#comments"
746
}
747
]
748
}
749
]
750
},
751
{
752
"begin":"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",
753
"beginCaptures":{
754
"1":{
755
"name":"keyword.control.directive.$3.objc"
756
},
757
"2":{
758
"name":"punctuation.definition.directive.objc"
759
}
760
},
761
"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
762
"name":"meta.preprocessor.include.objc",
763
"patterns":[
764
{
765
"include":"#line_continuation_character"
766
},
767
{
768
"begin":"\"",
769
"beginCaptures":{
770
"0":{
771
"name":"punctuation.definition.string.begin.objc"
772
}
773
},
774
"end":"\"",
775
"endCaptures":{
776
"0":{
777
"name":"punctuation.definition.string.end.objc"
778
}
779
},
780
"name":"string.quoted.double.include.objc"
781
},
782
{
783
"begin":"<",
784
"beginCaptures":{
785
"0":{
786
"name":"punctuation.definition.string.begin.objc"
787
}
788
},
789
"end":">",
790
"endCaptures":{
791
"0":{
792
"name":"punctuation.definition.string.end.objc"
793
}
794
},
795
"name":"string.quoted.other.lt-gt.include.objc"
796
}
797
]
798
},
799
{
800
"include":"#pragma-mark"
801
},
802
{
803
"begin":"^\\s*((#)\\s*line)\\b",
804
"beginCaptures":{
805
"1":{
806
"name":"keyword.control.directive.line.objc"
807
},
808
"2":{
809
"name":"punctuation.definition.directive.objc"
810
}
811
},
812
"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
813
"name":"meta.preprocessor.objc",
814
"patterns":[
815
{
816
"include":"#strings"
817
},
818
{
819
"include":"#numbers"
820
},
821
{
822
"include":"#line_continuation_character"
823
}
824
]
825
},
826
{
827
"begin":"^\\s*(?:((#)\\s*undef))\\b",
828
"beginCaptures":{
829
"1":{
830
"name":"keyword.control.directive.undef.objc"
831
},
832
"2":{
833
"name":"punctuation.definition.directive.objc"
834
}
835
},
836
"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
837
"name":"meta.preprocessor.objc",
838
"patterns":[
839
{
840
"match":"[a-zA-Z_$][\\w$]*",
841
"name":"entity.name.function.preprocessor.objc"
842
},
843
{
844
"include":"#line_continuation_character"
845
}
846
]
847
},
848
{
849
"begin":"^\\s*(?:((#)\\s*pragma))\\b",
850
"beginCaptures":{
851
"1":{
852
"name":"keyword.control.directive.pragma.objc"
853
},
854
"2":{
855
"name":"punctuation.definition.directive.objc"
856
}
857
},
858
"end":"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
859
"name":"meta.preprocessor.pragma.objc",
860
"patterns":[
861
{
862
"include":"#strings"
863
},
864
{
865
"match":"[a-zA-Z_$][\\w\\-$]*",
866
"name":"entity.other.attribute-name.pragma.preprocessor.objc"
867
},
868
{
869
"include":"#numbers"
870
},
871
{
872
"include":"#line_continuation_character"
873
}
874
]
875
},
876
{
877
"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",
878
"name":"support.type.sys-types.objc"
879
},
880
{
881
"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",
882
"name":"support.type.pthread.objc"
883
},
884
{
885
"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",
886
"name":"support.type.stdint.objc"
887
},
888
{
889
"match":"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",
890
"name":"support.constant.mac-classic.objc"
891
},
892
{
893
"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",
894
"name":"support.type.mac-classic.objc"
895
},
896
{
897
"match":"\\b([A-Za-z0-9_]+_t)\\b",
898
"name":"support.type.posix-reserved.objc"
899
},
900
{
901
"include":"#block"
902
},
903
{
904
"include":"#parens"
905
},
906
{
907
"name":"meta.function.objc",
908
"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*\\()",
909
"end":"(?<=\\))",
910
"patterns":[
911
{
912
"include":"#function-innards"
913
}
914
]
915
},
916
{
917
"include":"#line_continuation_character"
918
},
919
{
920
"name":"meta.bracket.square.access.objc",
921
"begin":"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
922
"beginCaptures":{
923
"1":{
924
"name":"variable.object.objc"
925
},
926
"2":{
927
"name":"punctuation.definition.begin.bracket.square.objc"
928
}
929
},
930
"end":"\\]",
931
"endCaptures":{
932
"0":{
933
"name":"punctuation.definition.end.bracket.square.objc"
934
}
935
},
936
"patterns":[
937
{
938
"include":"#function-call-innards"
939
}
940
]
941
},
942
{
943
"name":"storage.modifier.array.bracket.square.objc",
944
"match":"\\[\\s*\\]"
945
},
946
{
947
"match":";",
948
"name":"punctuation.terminator.statement.objc"
949
},
950
{
951
"match":",",
952
"name":"punctuation.separator.delimiter.objc"
953
}
954
],
955
"repository":{
956
"probably_a_parameter":{
957
"match":"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
958
"captures":{
959
"1":{
960
"name":"variable.parameter.probably.objc"
961
}
962
}
963
},
964
"access-method":{
965
"name":"meta.function-call.member.objc",
966
"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]*)(\\()",
967
"beginCaptures":{
968
"1":{
969
"name":"variable.object.objc"
970
},
971
"2":{
972
"name":"punctuation.separator.dot-access.objc"
973
},
974
"3":{
975
"name":"punctuation.separator.pointer-access.objc"
976
},
977
"4":{
978
"patterns":[
979
{
980
"match":"\\.",
981
"name":"punctuation.separator.dot-access.objc"
982
},
983
{
984
"match":"->",
985
"name":"punctuation.separator.pointer-access.objc"
986
},
987
{
988
"match":"[a-zA-Z_][a-zA-Z_0-9]*",
989
"name":"variable.object.objc"
990
},
991
{
992
"name":"everything.else.objc",
993
"match":".+"
994
}
995
]
996
},
997
"5":{
998
"name":"entity.name.function.member.objc"
999
},
1000
"6":{
1001
"name":"punctuation.section.arguments.begin.bracket.round.function.member.objc"
1002
}
1003
},
1004
"end":"\\)",
1005
"endCaptures":{
1006
"0":{
1007
"name":"punctuation.section.arguments.end.bracket.round.function.member.objc"
1008
}
1009
},
1010
"patterns":[
1011
{
1012
"include":"#function-call-innards"
1013
}
1014
]
1015
},
1016
"block":{
1017
"patterns":[
1018
{
1019
"begin":"{",
1020
"beginCaptures":{
1021
"0":{
1022
"name":"punctuation.section.block.begin.bracket.curly.objc"
1023
}
1024
},
1025
"end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1026
"endCaptures":{
1027
"0":{
1028
"name":"punctuation.section.block.end.bracket.curly.objc"
1029
}
1030
},
1031
"name":"meta.block.objc",
1032
"patterns":[
1033
{
1034
"include":"#block_innards"
1035
}
1036
]
1037
}
1038
]
1039
},
1040
"block_innards":{
1041
"patterns":[
1042
{
1043
"include":"#preprocessor-rule-enabled-block"
1044
},
1045
{
1046
"include":"#preprocessor-rule-disabled-block"
1047
},
1048
{
1049
"include":"#preprocessor-rule-conditional-block"
1050
},
1051
{
1052
"include":"#method_access"
1053
},
1054
{
1055
"include":"#member_access"
1056
},
1057
{
1058
"include":"#c_function_call"
1059
},
1060
{
1061
"name":"meta.initialization.objc",
1062
"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",
1063
"beginCaptures":{
1064
"1":{
1065
"name":"variable.other.objc"
1066
},
1067
"2":{
1068
"name":"punctuation.section.parens.begin.bracket.round.initialization.objc"
1069
}
1070
},
1071
"end":"\\)",
1072
"endCaptures":{
1073
"0":{
1074
"name":"punctuation.section.parens.end.bracket.round.initialization.objc"
1075
}
1076
},
1077
"patterns":[
1078
{
1079
"include":"#function-call-innards"
1080
}
1081
]
1082
},
1083
{
1084
"begin":"{",
1085
"beginCaptures":{
1086
"0":{
1087
"name":"punctuation.section.block.begin.bracket.curly.objc"
1088
}
1089
},
1090
"end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1091
"endCaptures":{
1092
"0":{
1093
"name":"punctuation.section.block.end.bracket.curly.objc"
1094
}
1095
},
1096
"patterns":[
1097
{
1098
"include":"#block_innards"
1099
}
1100
]
1101
},
1102
{
1103
"include":"#parens-block"
1104
},
1105
{
1106
"include":"$base"
1107
}
1108
]
1109
},
1110
"c_function_call":{
1111
"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)",
1112
"end":"(?<=\\))(?!\\w)",
1113
"name":"meta.function-call.objc",
1114
"patterns":[
1115
{
1116
"include":"#function-call-innards"
1117
}
1118
]
1119
},
1120
"comments":{
1121
"patterns":[
1122
{
1123
"captures":{
1124
"1":{
1125
"name":"meta.toc-list.banner.block.objc"
1126
}
1127
},
1128
"match":"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
1129
"name":"comment.block.objc"
1130
},
1131
{
1132
"begin":"/\\*",
1133
"beginCaptures":{
1134
"0":{
1135
"name":"punctuation.definition.comment.begin.objc"
1136
}
1137
},
1138
"end":"\\*/",
1139
"endCaptures":{
1140
"0":{
1141
"name":"punctuation.definition.comment.end.objc"
1142
}
1143
},
1144
"name":"comment.block.objc"
1145
},
1146
{
1147
"captures":{
1148
"1":{
1149
"name":"meta.toc-list.banner.line.objc"
1150
}
1151
},
1152
"match":"^// =(\\s*.*?)\\s*=\\s*$\\n?",
1153
"name":"comment.line.banner.objc"
1154
},
1155
{
1156
"begin":"(^[ \\t]+)?(?=//)",
1157
"beginCaptures":{
1158
"1":{
1159
"name":"punctuation.whitespace.comment.leading.objc"
1160
}
1161
},
1162
"end":"(?!\\G)",
1163
"patterns":[
1164
{
1165
"begin":"//",
1166
"beginCaptures":{
1167
"0":{
1168
"name":"punctuation.definition.comment.objc"
1169
}
1170
},
1171
"end":"(?=\\n)",
1172
"name":"comment.line.double-slash.objc",
1173
"patterns":[
1174
{
1175
"include":"#line_continuation_character"
1176
}
1177
]
1178
}
1179
]
1180
}
1181
]
1182
},
1183
"disabled":{
1184
"begin":"^\\s*#\\s*if(n?def)?\\b.*$",
1185
"end":"^\\s*#\\s*endif\\b",
1186
"patterns":[
1187
{
1188
"include":"#disabled"
1189
},
1190
{
1191
"include":"#pragma-mark"
1192
}
1193
]
1194
},
1195
"line_continuation_character":{
1196
"patterns":[
1197
{
1198
"match":"(\\\\)\\n",
1199
"captures":{
1200
"1":{
1201
"name":"constant.character.escape.line-continuation.objc"
1202
}
1203
}
1204
}
1205
]
1206
},
1207
"parens":{
1208
"name":"meta.parens.objc",
1209
"begin":"\\(",
1210
"beginCaptures":{
1211
"0":{
1212
"name":"punctuation.section.parens.begin.bracket.round.objc"
1213
}
1214
},
1215
"end":"\\)",
1216
"endCaptures":{
1217
"0":{
1218
"name":"punctuation.section.parens.end.bracket.round.objc"
1219
}
1220
},
1221
"patterns":[
1222
{
1223
"include":"$base"
1224
}
1225
]
1226
},
1227
"parens-block":{
1228
"name":"meta.parens.block.objc",
1229
"begin":"\\(",
1230
"beginCaptures":{
1231
"0":{
1232
"name":"punctuation.section.parens.begin.bracket.round.objc"
1233
}
1234
},
1235
"end":"\\)",
1236
"endCaptures":{
1237
"0":{
1238
"name":"punctuation.section.parens.end.bracket.round.objc"
1239
}
1240
},
1241
"patterns":[
1242
{
1243
"include":"#block_innards"
1244
},
1245
{
1246
"match":"(?-mix:(?<!:):(?!:))",
1247
"name":"punctuation.range-based.objc"
1248
}
1249
]
1250
},
1251
"pragma-mark":{
1252
"captures":{
1253
"1":{
1254
"name":"meta.preprocessor.pragma.objc"
1255
},
1256
"2":{
1257
"name":"keyword.control.directive.pragma.pragma-mark.objc"
1258
},
1259
"3":{
1260
"name":"punctuation.definition.directive.objc"
1261
},
1262
"4":{
1263
"name":"entity.name.tag.pragma-mark.objc"
1264
}
1265
},
1266
"match":"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",
1267
"name":"meta.section.objc"
1268
},
1269
"operators":{
1270
"patterns":[
1271
{
1272
"match":"(?<![\\w$])(sizeof)(?![\\w$])",
1273
"name":"keyword.operator.sizeof.objc"
1274
},
1275
{
1276
"match":"--",
1277
"name":"keyword.operator.decrement.objc"
1278
},
1279
{
1280
"match":"\\+\\+",
1281
"name":"keyword.operator.increment.objc"
1282
},
1283
{
1284
"match":"%=|\\+=|-=|\\*=|(?<!\\()/=",
1285
"name":"keyword.operator.assignment.compound.objc"
1286
},
1287
{
1288
"match":"&=|\\^=|<<=|>>=|\\|=",
1289
"name":"keyword.operator.assignment.compound.bitwise.objc"
1290
},
1291
{
1292
"match":"<<|>>",
1293
"name":"keyword.operator.bitwise.shift.objc"
1294
},
1295
{
1296
"match":"!=|<=|>=|==|<|>",
1297
"name":"keyword.operator.comparison.objc"
1298
},
1299
{
1300
"match":"&&|!|\\|\\|",
1301
"name":"keyword.operator.logical.objc"
1302
},
1303
{
1304
"match":"&|\\||\\^|~",
1305
"name":"keyword.operator.objc"
1306
},
1307
{
1308
"match":"=",
1309
"name":"keyword.operator.assignment.objc"
1310
},
1311
{
1312
"match":"%|\\*|/|-|\\+",
1313
"name":"keyword.operator.objc"
1314
},
1315
{
1316
"begin":"(\\?)",
1317
"beginCaptures":{
1318
"1":{
1319
"name":"keyword.operator.ternary.objc"
1320
}
1321
},
1322
"end":"(:)",
1323
"endCaptures":{
1324
"1":{
1325
"name":"keyword.operator.ternary.objc"
1326
}
1327
},
1328
"patterns":[
1329
{
1330
"include":"#function-call-innards"
1331
},
1332
{
1333
"include":"$base"
1334
}
1335
]
1336
}
1337
]
1338
},
1339
"strings":{
1340
"patterns":[
1341
{
1342
"begin":"\"",
1343
"beginCaptures":{
1344
"0":{
1345
"name":"punctuation.definition.string.begin.objc"
1346
}
1347
},
1348
"end":"\"",
1349
"endCaptures":{
1350
"0":{
1351
"name":"punctuation.definition.string.end.objc"
1352
}
1353
},
1354
"name":"string.quoted.double.objc",
1355
"patterns":[
1356
{
1357
"include":"#string_escaped_char"
1358
},
1359
{
1360
"include":"#string_placeholder"
1361
},
1362
{
1363
"include":"#line_continuation_character"
1364
}
1365
]
1366
},
1367
{
1368
"begin":"'",
1369
"beginCaptures":{
1370
"0":{
1371
"name":"punctuation.definition.string.begin.objc"
1372
}
1373
},
1374
"end":"'",
1375
"endCaptures":{
1376
"0":{
1377
"name":"punctuation.definition.string.end.objc"
1378
}
1379
},
1380
"name":"string.quoted.single.objc",
1381
"patterns":[
1382
{
1383
"include":"#string_escaped_char"
1384
},
1385
{
1386
"include":"#line_continuation_character"
1387
}
1388
]
1389
}
1390
]
1391
},
1392
"string_escaped_char":{
1393
"patterns":[
1394
{
1395
"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} )",
1396
"name":"constant.character.escape.objc"
1397
},
1398
{
1399
"match":"\\\\.",
1400
"name":"invalid.illegal.unknown-escape.objc"
1401
}
1402
]
1403
},
1404
"string_placeholder":{
1405
"patterns":[
1406
{
1407
"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",
1408
"name":"constant.other.placeholder.objc"
1409
},
1410
{
1411
"match":"(%)(?!\"\\s*(PRI|SCN))",
1412
"captures":{
1413
"1":{
1414
"name":"invalid.illegal.placeholder.objc"
1415
}
1416
}
1417
}
1418
]
1419
},
1420
"storage_types":{
1421
"patterns":[
1422
{
1423
"match":"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",
1424
"name":"storage.type.built-in.primitive.objc"
1425
},
1426
{
1427
"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))",
1428
"name":"storage.type.built-in.objc"
1429
},
1430
{
1431
"match":"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",
1432
"name":"storage.type.$1.objc"
1433
}
1434
]
1435
},
1436
"vararg_ellipses":{
1437
"match":"(?<!\\.)\\.\\.\\.(?!\\.)",
1438
"name":"punctuation.vararg-ellipses.objc"
1439
},
1440
"preprocessor-rule-conditional":{
1441
"patterns":[
1442
{
1443
"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)",
1444
"beginCaptures":{
1445
"0":{
1446
"name":"meta.preprocessor.objc"
1447
},
1448
"1":{
1449
"name":"keyword.control.directive.conditional.objc"
1450
},
1451
"2":{
1452
"name":"punctuation.definition.directive.objc"
1453
}
1454
},
1455
"end":"^\\s*((#)\\s*endif\\b)",
1456
"endCaptures":{
1457
"0":{
1458
"name":"meta.preprocessor.objc"
1459
},
1460
"1":{
1461
"name":"keyword.control.directive.conditional.objc"
1462
},
1463
"2":{
1464
"name":"punctuation.definition.directive.objc"
1465
}
1466
},
1467
"patterns":[
1468
{
1469
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1470
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1471
"name":"meta.preprocessor.objc",
1472
"patterns":[
1473
{
1474
"include":"#preprocessor-rule-conditional-line"
1475
}
1476
]
1477
},
1478
{
1479
"include":"#preprocessor-rule-enabled-elif"
1480
},
1481
{
1482
"include":"#preprocessor-rule-enabled-else"
1483
},
1484
{
1485
"include":"#preprocessor-rule-disabled-elif"
1486
},
1487
{
1488
"begin":"^\\s*((#)\\s*elif\\b)",
1489
"beginCaptures":{
1490
"1":{
1491
"name":"keyword.control.directive.conditional.objc"
1492
},
1493
"2":{
1494
"name":"punctuation.definition.directive.objc"
1495
}
1496
},
1497
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1498
"name":"meta.preprocessor.objc",
1499
"patterns":[
1500
{
1501
"include":"#preprocessor-rule-conditional-line"
1502
}
1503
]
1504
},
1505
{
1506
"include":"$base"
1507
}
1508
]
1509
},
1510
{
1511
"match":"^\\s*#\\s*(else|elif|endif)\\b",
1512
"captures":{
1513
"0":{
1514
"name":"invalid.illegal.stray-$1.objc"
1515
}
1516
}
1517
}
1518
]
1519
},
1520
"preprocessor-rule-conditional-block":{
1521
"patterns":[
1522
{
1523
"begin":"^\\s*((#)\\s*if(?:n?def)?\\b)",
1524
"beginCaptures":{
1525
"0":{
1526
"name":"meta.preprocessor.objc"
1527
},
1528
"1":{
1529
"name":"keyword.control.directive.conditional.objc"
1530
},
1531
"2":{
1532
"name":"punctuation.definition.directive.objc"
1533
}
1534
},
1535
"end":"^\\s*((#)\\s*endif\\b)",
1536
"endCaptures":{
1537
"0":{
1538
"name":"meta.preprocessor.objc"
1539
},
1540
"1":{
1541
"name":"keyword.control.directive.conditional.objc"
1542
},
1543
"2":{
1544
"name":"punctuation.definition.directive.objc"
1545
}
1546
},
1547
"patterns":[
1548
{
1549
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1550
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1551
"name":"meta.preprocessor.objc",
1552
"patterns":[
1553
{
1554
"include":"#preprocessor-rule-conditional-line"
1555
}
1556
]
1557
},
1558
{
1559
"include":"#preprocessor-rule-enabled-elif-block"
1560
},
1561
{
1562
"include":"#preprocessor-rule-enabled-else-block"
1563
},
1564
{
1565
"include":"#preprocessor-rule-disabled-elif"
1566
},
1567
{
1568
"begin":"^\\s*((#)\\s*elif\\b)",
1569
"beginCaptures":{
1570
"1":{
1571
"name":"keyword.control.directive.conditional.objc"
1572
},
1573
"2":{
1574
"name":"punctuation.definition.directive.objc"
1575
}
1576
},
1577
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1578
"name":"meta.preprocessor.objc",
1579
"patterns":[
1580
{
1581
"include":"#preprocessor-rule-conditional-line"
1582
}
1583
]
1584
},
1585
{
1586
"include":"#block_innards"
1587
}
1588
]
1589
},
1590
{
1591
"match":"^\\s*#\\s*(else|elif|endif)\\b",
1592
"captures":{
1593
"0":{
1594
"name":"invalid.illegal.stray-$1.objc"
1595
}
1596
}
1597
}
1598
]
1599
},
1600
"preprocessor-rule-conditional-line":{
1601
"patterns":[
1602
{
1603
"match":"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",
1604
"name":"keyword.control.directive.conditional.objc"
1605
},
1606
{
1607
"match":"\\bdefined\\b",
1608
"name":"invalid.illegal.macro-name.objc"
1609
},
1610
{
1611
"include":"#comments"
1612
},
1613
{
1614
"include":"#strings"
1615
},
1616
{
1617
"include":"#numbers"
1618
},
1619
{
1620
"begin":"\\?",
1621
"beginCaptures":{
1622
"0":{
1623
"name":"keyword.operator.ternary.objc"
1624
}
1625
},
1626
"end":":",
1627
"endCaptures":{
1628
"0":{
1629
"name":"keyword.operator.ternary.objc"
1630
}
1631
},
1632
"patterns":[
1633
{
1634
"include":"#preprocessor-rule-conditional-line"
1635
}
1636
]
1637
},
1638
{
1639
"include":"#operators"
1640
},
1641
{
1642
"match":"\\b(NULL|true|false|TRUE|FALSE)\\b",
1643
"name":"constant.language.objc"
1644
},
1645
{
1646
"match":"[a-zA-Z_$][\\w$]*",
1647
"name":"entity.name.function.preprocessor.objc"
1648
},
1649
{
1650
"include":"#line_continuation_character"
1651
},
1652
{
1653
"begin":"\\(",
1654
"beginCaptures":{
1655
"0":{
1656
"name":"punctuation.section.parens.begin.bracket.round.objc"
1657
}
1658
},
1659
"end":"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1660
"endCaptures":{
1661
"0":{
1662
"name":"punctuation.section.parens.end.bracket.round.objc"
1663
}
1664
},
1665
"patterns":[
1666
{
1667
"include":"#preprocessor-rule-conditional-line"
1668
}
1669
]
1670
}
1671
]
1672
},
1673
"preprocessor-rule-disabled":{
1674
"patterns":[
1675
{
1676
"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1677
"beginCaptures":{
1678
"0":{
1679
"name":"meta.preprocessor.objc"
1680
},
1681
"1":{
1682
"name":"keyword.control.directive.conditional.objc"
1683
},
1684
"2":{
1685
"name":"punctuation.definition.directive.objc"
1686
}
1687
},
1688
"end":"^\\s*((#)\\s*endif\\b)",
1689
"endCaptures":{
1690
"0":{
1691
"name":"meta.preprocessor.objc"
1692
},
1693
"1":{
1694
"name":"keyword.control.directive.conditional.objc"
1695
},
1696
"2":{
1697
"name":"punctuation.definition.directive.objc"
1698
}
1699
},
1700
"patterns":[
1701
{
1702
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1703
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1704
"name":"meta.preprocessor.objc",
1705
"patterns":[
1706
{
1707
"include":"#preprocessor-rule-conditional-line"
1708
}
1709
]
1710
},
1711
{
1712
"include":"#comments"
1713
},
1714
{
1715
"include":"#preprocessor-rule-enabled-elif"
1716
},
1717
{
1718
"include":"#preprocessor-rule-enabled-else"
1719
},
1720
{
1721
"include":"#preprocessor-rule-disabled-elif"
1722
},
1723
{
1724
"begin":"^\\s*((#)\\s*elif\\b)",
1725
"beginCaptures":{
1726
"0":{
1727
"name":"meta.preprocessor.objc"
1728
},
1729
"1":{
1730
"name":"keyword.control.directive.conditional.objc"
1731
},
1732
"2":{
1733
"name":"punctuation.definition.directive.objc"
1734
}
1735
},
1736
"end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1737
"patterns":[
1738
{
1739
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1740
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1741
"name":"meta.preprocessor.objc",
1742
"patterns":[
1743
{
1744
"include":"#preprocessor-rule-conditional-line"
1745
}
1746
]
1747
},
1748
{
1749
"include":"$base"
1750
}
1751
]
1752
},
1753
{
1754
"contentName":"comment.block.preprocessor.if-branch.objc",
1755
"begin":"\\n",
1756
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1757
"patterns":[
1758
{
1759
"include":"#disabled"
1760
},
1761
{
1762
"include":"#pragma-mark"
1763
}
1764
]
1765
}
1766
]
1767
}
1768
]
1769
},
1770
"preprocessor-rule-disabled-block":{
1771
"patterns":[
1772
{
1773
"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1774
"beginCaptures":{
1775
"0":{
1776
"name":"meta.preprocessor.objc"
1777
},
1778
"1":{
1779
"name":"keyword.control.directive.conditional.objc"
1780
},
1781
"2":{
1782
"name":"punctuation.definition.directive.objc"
1783
}
1784
},
1785
"end":"^\\s*((#)\\s*endif\\b)",
1786
"endCaptures":{
1787
"0":{
1788
"name":"meta.preprocessor.objc"
1789
},
1790
"1":{
1791
"name":"keyword.control.directive.conditional.objc"
1792
},
1793
"2":{
1794
"name":"punctuation.definition.directive.objc"
1795
}
1796
},
1797
"patterns":[
1798
{
1799
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1800
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1801
"name":"meta.preprocessor.objc",
1802
"patterns":[
1803
{
1804
"include":"#preprocessor-rule-conditional-line"
1805
}
1806
]
1807
},
1808
{
1809
"include":"#comments"
1810
},
1811
{
1812
"include":"#preprocessor-rule-enabled-elif-block"
1813
},
1814
{
1815
"include":"#preprocessor-rule-enabled-else-block"
1816
},
1817
{
1818
"include":"#preprocessor-rule-disabled-elif"
1819
},
1820
{
1821
"begin":"^\\s*((#)\\s*elif\\b)",
1822
"beginCaptures":{
1823
"0":{
1824
"name":"meta.preprocessor.objc"
1825
},
1826
"1":{
1827
"name":"keyword.control.directive.conditional.objc"
1828
},
1829
"2":{
1830
"name":"punctuation.definition.directive.objc"
1831
}
1832
},
1833
"end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1834
"patterns":[
1835
{
1836
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1837
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1838
"name":"meta.preprocessor.objc",
1839
"patterns":[
1840
{
1841
"include":"#preprocessor-rule-conditional-line"
1842
}
1843
]
1844
},
1845
{
1846
"include":"#block_innards"
1847
}
1848
]
1849
},
1850
{
1851
"contentName":"comment.block.preprocessor.if-branch.in-block.objc",
1852
"begin":"\\n",
1853
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1854
"patterns":[
1855
{
1856
"include":"#disabled"
1857
},
1858
{
1859
"include":"#pragma-mark"
1860
}
1861
]
1862
}
1863
]
1864
}
1865
]
1866
},
1867
"preprocessor-rule-disabled-elif":{
1868
"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1869
"beginCaptures":{
1870
"0":{
1871
"name":"meta.preprocessor.objc"
1872
},
1873
"1":{
1874
"name":"keyword.control.directive.conditional.objc"
1875
},
1876
"2":{
1877
"name":"punctuation.definition.directive.objc"
1878
}
1879
},
1880
"end":"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1881
"patterns":[
1882
{
1883
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1884
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1885
"name":"meta.preprocessor.objc",
1886
"patterns":[
1887
{
1888
"include":"#preprocessor-rule-conditional-line"
1889
}
1890
]
1891
},
1892
{
1893
"include":"#comments"
1894
},
1895
{
1896
"contentName":"comment.block.preprocessor.elif-branch.objc",
1897
"begin":"\\n",
1898
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1899
"patterns":[
1900
{
1901
"include":"#disabled"
1902
},
1903
{
1904
"include":"#pragma-mark"
1905
}
1906
]
1907
}
1908
]
1909
},
1910
"preprocessor-rule-enabled":{
1911
"patterns":[
1912
{
1913
"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
1914
"beginCaptures":{
1915
"0":{
1916
"name":"meta.preprocessor.objc"
1917
},
1918
"1":{
1919
"name":"keyword.control.directive.conditional.objc"
1920
},
1921
"2":{
1922
"name":"punctuation.definition.directive.objc"
1923
},
1924
"3":{
1925
"name":"constant.numeric.preprocessor.objc"
1926
}
1927
},
1928
"end":"^\\s*((#)\\s*endif\\b)",
1929
"endCaptures":{
1930
"0":{
1931
"name":"meta.preprocessor.objc"
1932
},
1933
"1":{
1934
"name":"keyword.control.directive.conditional.objc"
1935
},
1936
"2":{
1937
"name":"punctuation.definition.directive.objc"
1938
}
1939
},
1940
"patterns":[
1941
{
1942
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1943
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1944
"name":"meta.preprocessor.objc",
1945
"patterns":[
1946
{
1947
"include":"#preprocessor-rule-conditional-line"
1948
}
1949
]
1950
},
1951
{
1952
"include":"#comments"
1953
},
1954
{
1955
"contentName":"comment.block.preprocessor.else-branch.objc",
1956
"begin":"^\\s*((#)\\s*else\\b)",
1957
"beginCaptures":{
1958
"0":{
1959
"name":"meta.preprocessor.objc"
1960
},
1961
"1":{
1962
"name":"keyword.control.directive.conditional.objc"
1963
},
1964
"2":{
1965
"name":"punctuation.definition.directive.objc"
1966
}
1967
},
1968
"end":"(?=^\\s*((#)\\s*endif\\b))",
1969
"patterns":[
1970
{
1971
"include":"#disabled"
1972
},
1973
{
1974
"include":"#pragma-mark"
1975
}
1976
]
1977
},
1978
{
1979
"contentName":"comment.block.preprocessor.if-branch.objc",
1980
"begin":"^\\s*((#)\\s*elif\\b)",
1981
"beginCaptures":{
1982
"0":{
1983
"name":"meta.preprocessor.objc"
1984
},
1985
"1":{
1986
"name":"keyword.control.directive.conditional.objc"
1987
},
1988
"2":{
1989
"name":"punctuation.definition.directive.objc"
1990
}
1991
},
1992
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1993
"patterns":[
1994
{
1995
"include":"#disabled"
1996
},
1997
{
1998
"include":"#pragma-mark"
1999
}
2000
]
2001
},
2002
{
2003
"begin":"\\n",
2004
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2005
"patterns":[
2006
{
2007
"include":"$base"
2008
}
2009
]
2010
}
2011
]
2012
}
2013
]
2014
},
2015
"preprocessor-rule-enabled-block":{
2016
"patterns":[
2017
{
2018
"begin":"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2019
"beginCaptures":{
2020
"0":{
2021
"name":"meta.preprocessor.objc"
2022
},
2023
"1":{
2024
"name":"keyword.control.directive.conditional.objc"
2025
},
2026
"2":{
2027
"name":"punctuation.definition.directive.objc"
2028
}
2029
},
2030
"end":"^\\s*((#)\\s*endif\\b)",
2031
"endCaptures":{
2032
"0":{
2033
"name":"meta.preprocessor.objc"
2034
},
2035
"1":{
2036
"name":"keyword.control.directive.conditional.objc"
2037
},
2038
"2":{
2039
"name":"punctuation.definition.directive.objc"
2040
}
2041
},
2042
"patterns":[
2043
{
2044
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2045
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2046
"name":"meta.preprocessor.objc",
2047
"patterns":[
2048
{
2049
"include":"#preprocessor-rule-conditional-line"
2050
}
2051
]
2052
},
2053
{
2054
"include":"#comments"
2055
},
2056
{
2057
"contentName":"comment.block.preprocessor.else-branch.in-block.objc",
2058
"begin":"^\\s*((#)\\s*else\\b)",
2059
"beginCaptures":{
2060
"0":{
2061
"name":"meta.preprocessor.objc"
2062
},
2063
"1":{
2064
"name":"keyword.control.directive.conditional.objc"
2065
},
2066
"2":{
2067
"name":"punctuation.definition.directive.objc"
2068
}
2069
},
2070
"end":"(?=^\\s*((#)\\s*endif\\b))",
2071
"patterns":[
2072
{
2073
"include":"#disabled"
2074
},
2075
{
2076
"include":"#pragma-mark"
2077
}
2078
]
2079
},
2080
{
2081
"contentName":"comment.block.preprocessor.if-branch.in-block.objc",
2082
"begin":"^\\s*((#)\\s*elif\\b)",
2083
"beginCaptures":{
2084
"0":{
2085
"name":"meta.preprocessor.objc"
2086
},
2087
"1":{
2088
"name":"keyword.control.directive.conditional.objc"
2089
},
2090
"2":{
2091
"name":"punctuation.definition.directive.objc"
2092
}
2093
},
2094
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2095
"patterns":[
2096
{
2097
"include":"#disabled"
2098
},
2099
{
2100
"include":"#pragma-mark"
2101
}
2102
]
2103
},
2104
{
2105
"begin":"\\n",
2106
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2107
"patterns":[
2108
{
2109
"include":"#block_innards"
2110
}
2111
]
2112
}
2113
]
2114
}
2115
]
2116
},
2117
"preprocessor-rule-enabled-elif":{
2118
"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2119
"beginCaptures":{
2120
"0":{
2121
"name":"meta.preprocessor.objc"
2122
},
2123
"1":{
2124
"name":"keyword.control.directive.conditional.objc"
2125
},
2126
"2":{
2127
"name":"punctuation.definition.directive.objc"
2128
}
2129
},
2130
"end":"(?=^\\s*((#)\\s*endif\\b))",
2131
"patterns":[
2132
{
2133
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2134
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2135
"name":"meta.preprocessor.objc",
2136
"patterns":[
2137
{
2138
"include":"#preprocessor-rule-conditional-line"
2139
}
2140
]
2141
},
2142
{
2143
"include":"#comments"
2144
},
2145
{
2146
"begin":"\\n",
2147
"end":"(?=^\\s*((#)\\s*(?:endif)\\b))",
2148
"patterns":[
2149
{
2150
"contentName":"comment.block.preprocessor.elif-branch.objc",
2151
"begin":"^\\s*((#)\\s*(else)\\b)",
2152
"beginCaptures":{
2153
"0":{
2154
"name":"meta.preprocessor.objc"
2155
},
2156
"1":{
2157
"name":"keyword.control.directive.conditional.objc"
2158
},
2159
"2":{
2160
"name":"punctuation.definition.directive.objc"
2161
}
2162
},
2163
"end":"(?=^\\s*((#)\\s*endif\\b))",
2164
"patterns":[
2165
{
2166
"include":"#disabled"
2167
},
2168
{
2169
"include":"#pragma-mark"
2170
}
2171
]
2172
},
2173
{
2174
"contentName":"comment.block.preprocessor.elif-branch.objc",
2175
"begin":"^\\s*((#)\\s*(elif)\\b)",
2176
"beginCaptures":{
2177
"0":{
2178
"name":"meta.preprocessor.objc"
2179
},
2180
"1":{
2181
"name":"keyword.control.directive.conditional.objc"
2182
},
2183
"2":{
2184
"name":"punctuation.definition.directive.objc"
2185
}
2186
},
2187
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2188
"patterns":[
2189
{
2190
"include":"#disabled"
2191
},
2192
{
2193
"include":"#pragma-mark"
2194
}
2195
]
2196
},
2197
{
2198
"include":"$base"
2199
}
2200
]
2201
}
2202
]
2203
},
2204
"preprocessor-rule-enabled-elif-block":{
2205
"begin":"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2206
"beginCaptures":{
2207
"0":{
2208
"name":"meta.preprocessor.objc"
2209
},
2210
"1":{
2211
"name":"keyword.control.directive.conditional.objc"
2212
},
2213
"2":{
2214
"name":"punctuation.definition.directive.objc"
2215
}
2216
},
2217
"end":"(?=^\\s*((#)\\s*endif\\b))",
2218
"patterns":[
2219
{
2220
"begin":"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2221
"end":"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2222
"name":"meta.preprocessor.objc",
2223
"patterns":[
2224
{
2225
"include":"#preprocessor-rule-conditional-line"
2226
}
2227
]
2228
},
2229
{
2230
"include":"#comments"
2231
},
2232
{
2233
"begin":"\\n",
2234
"end":"(?=^\\s*((#)\\s*(?:endif)\\b))",
2235
"patterns":[
2236
{
2237
"contentName":"comment.block.preprocessor.elif-branch.in-block.objc",
2238
"begin":"^\\s*((#)\\s*(else)\\b)",
2239
"beginCaptures":{
2240
"0":{
2241
"name":"meta.preprocessor.objc"
2242
},
2243
"1":{
2244
"name":"keyword.control.directive.conditional.objc"
2245
},
2246
"2":{
2247
"name":"punctuation.definition.directive.objc"
2248
}
2249
},
2250
"end":"(?=^\\s*((#)\\s*endif\\b))",
2251
"patterns":[
2252
{
2253
"include":"#disabled"
2254
},
2255
{
2256
"include":"#pragma-mark"
2257
}
2258
]
2259
},
2260
{
2261
"contentName":"comment.block.preprocessor.elif-branch.objc",
2262
"begin":"^\\s*((#)\\s*(elif)\\b)",
2263
"beginCaptures":{
2264
"0":{
2265
"name":"meta.preprocessor.objc"
2266
},
2267
"1":{
2268
"name":"keyword.control.directive.conditional.objc"
2269
},
2270
"2":{
2271
"name":"punctuation.definition.directive.objc"
2272
}
2273
},
2274
"end":"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2275
"patterns":[
2276
{
2277
"include":"#disabled"
2278
},
2279
{
2280
"include":"#pragma-mark"
2281
}
2282
]
2283
},
2284
{
2285
"include":"#block_innards"
2286
}
2287
]
2288
}
2289
]
2290
},
2291
"preprocessor-rule-enabled-else":{
2292
"begin":"^\\s*((#)\\s*else\\b)",
2293
"beginCaptures":{
2294
"0":{
2295
"name":"meta.preprocessor.objc"
2296
},
2297
"1":{
2298
"name":"keyword.control.directive.conditional.objc"
2299
},
2300
"2":{
2301
"name":"punctuation.definition.directive.objc"
2302
}
2303
},
2304
"end":"(?=^\\s*((#)\\s*endif\\b))",
2305
"patterns":[
2306
{
2307
"include":"$base"
2308
}
2309
]
2310
},
2311
"preprocessor-rule-enabled-else-block":{
2312
"begin":"^\\s*((#)\\s*else\\b)",
2313
"beginCaptures":{
2314
"0":{
2315
"name":"meta.preprocessor.objc"
2316
},
2317
"1":{
2318
"name":"keyword.control.directive.conditional.objc"
2319
},
2320
"2":{
2321
"name":"punctuation.definition.directive.objc"
2322
}
2323
},
2324
"end":"(?=^\\s*((#)\\s*endif\\b))",
2325
"patterns":[
2326
{
2327
"include":"#block_innards"
2328
}
2329
]
2330
},
2331
"preprocessor-rule-define-line-contents":{
2332
"patterns":[
2333
{
2334
"include":"#vararg_ellipses"
2335
},
2336
{
2337
"begin":"{",
2338
"beginCaptures":{
2339
"0":{
2340
"name":"punctuation.section.block.begin.bracket.curly.objc"
2341
}
2342
},
2343
"end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2344
"endCaptures":{
2345
"0":{
2346
"name":"punctuation.section.block.end.bracket.curly.objc"
2347
}
2348
},
2349
"name":"meta.block.objc",
2350
"patterns":[
2351
{
2352
"include":"#preprocessor-rule-define-line-blocks"
2353
}
2354
]
2355
},
2356
{
2357
"match":"\\(",
2358
"name":"punctuation.section.parens.begin.bracket.round.objc"
2359
},
2360
{
2361
"match":"\\)",
2362
"name":"punctuation.section.parens.end.bracket.round.objc"
2363
},
2364
{
2365
"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)",
2366
"end":"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",
2367
"name":"meta.function.objc",
2368
"patterns":[
2369
{
2370
"include":"#preprocessor-rule-define-line-functions"
2371
}
2372
]
2373
},
2374
{
2375
"begin":"\"",
2376
"beginCaptures":{
2377
"0":{
2378
"name":"punctuation.definition.string.begin.objc"
2379
}
2380
},
2381
"end":"\"|(?<!\\\\)(?=\\s*\\n)",
2382
"endCaptures":{
2383
"0":{
2384
"name":"punctuation.definition.string.end.objc"
2385
}
2386
},
2387
"name":"string.quoted.double.objc",
2388
"patterns":[
2389
{
2390
"include":"#string_escaped_char"
2391
},
2392
{
2393
"include":"#string_placeholder"
2394
},
2395
{
2396
"include":"#line_continuation_character"
2397
}
2398
]
2399
},
2400
{
2401
"begin":"'",
2402
"beginCaptures":{
2403
"0":{
2404
"name":"punctuation.definition.string.begin.objc"
2405
}
2406
},
2407
"end":"'|(?<!\\\\)(?=\\s*\\n)",
2408
"endCaptures":{
2409
"0":{
2410
"name":"punctuation.definition.string.end.objc"
2411
}
2412
},
2413
"name":"string.quoted.single.objc",
2414
"patterns":[
2415
{
2416
"include":"#string_escaped_char"
2417
},
2418
{
2419
"include":"#line_continuation_character"
2420
}
2421
]
2422
},
2423
{
2424
"include":"#method_access"
2425
},
2426
{
2427
"include":"#member_access"
2428
},
2429
{
2430
"include":"$base"
2431
}
2432
]
2433
},
2434
"preprocessor-rule-define-line-blocks":{
2435
"patterns":[
2436
{
2437
"begin":"{",
2438
"beginCaptures":{
2439
"0":{
2440
"name":"punctuation.section.block.begin.bracket.curly.objc"
2441
}
2442
},
2443
"end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2444
"endCaptures":{
2445
"0":{
2446
"name":"punctuation.section.block.end.bracket.curly.objc"
2447
}
2448
},
2449
"patterns":[
2450
{
2451
"include":"#preprocessor-rule-define-line-blocks"
2452
},
2453
{
2454
"include":"#preprocessor-rule-define-line-contents"
2455
}
2456
]
2457
},
2458
{
2459
"include":"#preprocessor-rule-define-line-contents"
2460
}
2461
]
2462
},
2463
"preprocessor-rule-define-line-functions":{
2464
"patterns":[
2465
{
2466
"include":"#comments"
2467
},
2468
{
2469
"include":"#storage_types"
2470
},
2471
{
2472
"include":"#vararg_ellipses"
2473
},
2474
{
2475
"include":"#method_access"
2476
},
2477
{
2478
"include":"#member_access"
2479
},
2480
{
2481
"include":"#operators"
2482
},
2483
{
2484
"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*(\\()",
2485
"beginCaptures":{
2486
"1":{
2487
"name":"entity.name.function.objc"
2488
},
2489
"2":{
2490
"name":"punctuation.section.arguments.begin.bracket.round.objc"
2491
}
2492
},
2493
"end":"(\\))|(?<!\\\\)(?=\\s*\\n)",
2494
"endCaptures":{
2495
"1":{
2496
"name":"punctuation.section.arguments.end.bracket.round.objc"
2497
}
2498
},
2499
"patterns":[
2500
{
2501
"include":"#preprocessor-rule-define-line-functions"
2502
}
2503
]
2504
},
2505
{
2506
"begin":"\\(",
2507
"beginCaptures":{
2508
"0":{
2509
"name":"punctuation.section.parens.begin.bracket.round.objc"
2510
}
2511
},
2512
"end":"(\\))|(?<!\\\\)(?=\\s*\\n)",
2513
"endCaptures":{
2514
"1":{
2515
"name":"punctuation.section.parens.end.bracket.round.objc"
2516
}
2517
},
2518
"patterns":[
2519
{
2520
"include":"#preprocessor-rule-define-line-functions"
2521
}
2522
]
2523
},
2524
{
2525
"include":"#preprocessor-rule-define-line-contents"
2526
}
2527
]
2528
},
2529
"function-innards":{
2530
"patterns":[
2531
{
2532
"include":"#comments"
2533
},
2534
{
2535
"include":"#storage_types"
2536
},
2537
{
2538
"include":"#operators"
2539
},
2540
{
2541
"include":"#vararg_ellipses"
2542
},
2543
{
2544
"name":"meta.function.definition.parameters.objc",
2545
"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*(\\()",
2546
"beginCaptures":{
2547
"1":{
2548
"name":"entity.name.function.objc"
2549
},
2550
"2":{
2551
"name":"punctuation.section.parameters.begin.bracket.round.objc"
2552
}
2553
},
2554
"end":"\\)",
2555
"endCaptures":{
2556
"0":{
2557
"name":"punctuation.section.parameters.end.bracket.round.objc"
2558
}
2559
},
2560
"patterns":[
2561
{
2562
"include":"#probably_a_parameter"
2563
},
2564
{
2565
"include":"#function-innards"
2566
}
2567
]
2568
},
2569
{
2570
"begin":"\\(",
2571
"beginCaptures":{
2572
"0":{
2573
"name":"punctuation.section.parens.begin.bracket.round.objc"
2574
}
2575
},
2576
"end":"\\)",
2577
"endCaptures":{
2578
"0":{
2579
"name":"punctuation.section.parens.end.bracket.round.objc"
2580
}
2581
},
2582
"patterns":[
2583
{
2584
"include":"#function-innards"
2585
}
2586
]
2587
},
2588
{
2589
"include":"$base"
2590
}
2591
]
2592
},
2593
"function-call-innards":{
2594
"patterns":[
2595
{
2596
"include":"#comments"
2597
},
2598
{
2599
"include":"#storage_types"
2600
},
2601
{
2602
"include":"#method_access"
2603
},
2604
{
2605
"include":"#member_access"
2606
},
2607
{
2608
"include":"#operators"
2609
},
2610
{
2611
"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*(\\()",
2612
"beginCaptures":{
2613
"1":{
2614
"name":"entity.name.function.objc"
2615
},
2616
"2":{
2617
"name":"punctuation.section.arguments.begin.bracket.round.objc"
2618
}
2619
},
2620
"end":"\\)",
2621
"endCaptures":{
2622
"0":{
2623
"name":"punctuation.section.arguments.end.bracket.round.objc"
2624
}
2625
},
2626
"patterns":[
2627
{
2628
"include":"#function-call-innards"
2629
}
2630
]
2631
},
2632
{
2633
"begin":"\\(",
2634
"beginCaptures":{
2635
"0":{
2636
"name":"punctuation.section.parens.begin.bracket.round.objc"
2637
}
2638
},
2639
"end":"\\)",
2640
"endCaptures":{
2641
"0":{
2642
"name":"punctuation.section.parens.end.bracket.round.objc"
2643
}
2644
},
2645
"patterns":[
2646
{
2647
"include":"#function-call-innards"
2648
}
2649
]
2650
},
2651
{
2652
"include":"#block_innards"
2653
}
2654
]
2655
},
2656
"default_statement":{
2657
"name":"meta.conditional.case.objc",
2658
"begin":"((?<!\\w)default(?!\\w))",
2659
"beginCaptures":{
2660
"1":{
2661
"name":"keyword.control.default.objc"
2662
}
2663
},
2664
"end":"(:)",
2665
"endCaptures":{
2666
"1":{
2667
"name":"punctuation.separator.case.default.objc"
2668
}
2669
},
2670
"patterns":[
2671
{
2672
"include":"#conditional_context"
2673
}
2674
]
2675
},
2676
"case_statement":{
2677
"name":"meta.conditional.case.objc",
2678
"begin":"((?<!\\w)case(?!\\w))",
2679
"beginCaptures":{
2680
"1":{
2681
"name":"keyword.control.case.objc"
2682
}
2683
},
2684
"end":"(:)",
2685
"endCaptures":{
2686
"1":{
2687
"name":"punctuation.separator.case.objc"
2688
}
2689
},
2690
"patterns":[
2691
{
2692
"include":"#conditional_context"
2693
}
2694
]
2695
},
2696
"switch_statement":{
2697
"name":"meta.block.switch.objc",
2698
"begin":"(((?<!\\w)switch(?!\\w)))",
2699
"beginCaptures":{
2700
"1":{
2701
"name":"meta.head.switch.objc"
2702
},
2703
"2":{
2704
"name":"keyword.control.switch.objc"
2705
}
2706
},
2707
"end":"(?:(?<=\\})|(?=[;>\\[\\]=]))",
2708
"patterns":[
2709
{
2710
"name":"meta.head.switch.objc",
2711
"begin":"\\G ?",
2712
"end":"((?:\\{|(?=;)))",
2713
"endCaptures":{
2714
"1":{
2715
"name":"punctuation.section.block.begin.bracket.curly.switch.objc"
2716
}
2717
},
2718
"patterns":[
2719
{
2720
"include":"#switch_conditional_parentheses"
2721
},
2722
{
2723
"include":"$base"
2724
}
2725
]
2726
},
2727
{
2728
"name":"meta.body.switch.objc",
2729
"begin":"(?<=\\{)",
2730
"end":"(\\})",
2731
"endCaptures":{
2732
"1":{
2733
"name":"punctuation.section.block.end.bracket.curly.switch.objc"
2734
}
2735
},
2736
"patterns":[
2737
{
2738
"include":"#default_statement"
2739
},
2740
{
2741
"include":"#case_statement"
2742
},
2743
{
2744
"include":"$base"
2745
},
2746
{
2747
"include":"#block_innards"
2748
}
2749
]
2750
},
2751
{
2752
"name":"meta.tail.switch.objc",
2753
"begin":"(?<=})[\\s\\n]*",
2754
"end":"[\\s\\n]*(?=;)",
2755
"patterns":[
2756
{
2757
"include":"$base"
2758
}
2759
]
2760
}
2761
]
2762
},
2763
"switch_conditional_parentheses":{
2764
"name":"meta.conditional.switch.objc",
2765
"begin":"(\\()",
2766
"beginCaptures":{
2767
"1":{
2768
"name":"punctuation.section.parens.begin.bracket.round.conditional.switch.objc"
2769
}
2770
},
2771
"end":"(\\))",
2772
"endCaptures":{
2773
"1":{
2774
"name":"punctuation.section.parens.end.bracket.round.conditional.switch.objc"
2775
}
2776
},
2777
"patterns":[
2778
{
2779
"include":"#conditional_context"
2780
}
2781
]
2782
},
2783
"static_assert":{
2784
"begin":"(static_assert|_Static_assert)\\s*(\\()",
2785
"beginCaptures":{
2786
"1":{
2787
"name":"keyword.other.static_assert.objc"
2788
},
2789
"2":{
2790
"name":"punctuation.section.arguments.begin.bracket.round.objc"
2791
}
2792
},
2793
"end":"(\\))",
2794
"endCaptures":{
2795
"1":{
2796
"name":"punctuation.section.arguments.end.bracket.round.objc"
2797
}
2798
},
2799
"patterns":[
2800
{
2801
"name":"meta.static_assert.message.objc",
2802
"begin":"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
2803
"beginCaptures":{
2804
"1":{
2805
"name":"punctuation.separator.delimiter.objc"
2806
}
2807
},
2808
"end":"(?=\\))",
2809
"patterns":[
2810
{
2811
"include":"#string_context"
2812
},
2813
{
2814
"include":"#string_context_c"
2815
}
2816
]
2817
},
2818
{
2819
"include":"#function_call_context"
2820
}
2821
]
2822
},
2823
"conditional_context":{
2824
"patterns":[
2825
{
2826
"include":"$base"
2827
},
2828
{
2829
"include":"#block_innards"
2830
}
2831
]
2832
},
2833
"member_access":{
2834
"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(?!\\())",
2835
"captures":{
2836
"1":{
2837
"patterns":[
2838
{
2839
"include":"#special_variables"
2840
},
2841
{
2842
"name":"variable.other.object.access.objc",
2843
"match":"(.+)"
2844
}
2845
]
2846
},
2847
"2":{
2848
"name":"punctuation.separator.dot-access.objc"
2849
},
2850
"3":{
2851
"name":"punctuation.separator.pointer-access.objc"
2852
},
2853
"4":{
2854
"patterns":[
2855
{
2856
"include":"#member_access"
2857
},
2858
{
2859
"include":"#method_access"
2860
},
2861
{
2862
"match":"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
2863
"captures":{
2864
"1":{
2865
"patterns":[
2866
{
2867
"include":"#special_variables"
2868
},
2869
{
2870
"name":"variable.other.object.access.objc",
2871
"match":"(.+)"
2872
}
2873
]
2874
},
2875
"2":{
2876
"name":"punctuation.separator.dot-access.objc"
2877
},
2878
"3":{
2879
"name":"punctuation.separator.pointer-access.objc"
2880
}
2881
}
2882
}
2883
]
2884
},
2885
"5":{
2886
"name":"variable.other.member.objc"
2887
}
2888
}
2889
},
2890
"method_access":{
2891
"contentName":"meta.function-call.member.objc",
2892
"begin":"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
2893
"beginCaptures":{
2894
"1":{
2895
"patterns":[
2896
{
2897
"include":"#special_variables"
2898
},
2899
{
2900
"name":"variable.other.object.access.objc",
2901
"match":"(.+)"
2902
}
2903
]
2904
},
2905
"2":{
2906
"name":"punctuation.separator.dot-access.objc"
2907
},
2908
"3":{
2909
"name":"punctuation.separator.pointer-access.objc"
2910
},
2911
"4":{
2912
"patterns":[
2913
{
2914
"include":"#member_access"
2915
},
2916
{
2917
"include":"#method_access"
2918
},
2919
{
2920
"match":"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
2921
"captures":{
2922
"1":{
2923
"patterns":[
2924
{
2925
"include":"#special_variables"
2926
},
2927
{
2928
"name":"variable.other.object.access.objc",
2929
"match":"(.+)"
2930
}
2931
]
2932
},
2933
"2":{
2934
"name":"punctuation.separator.dot-access.objc"
2935
},
2936
"3":{
2937
"name":"punctuation.separator.pointer-access.objc"
2938
}
2939
}
2940
}
2941
]
2942
},
2943
"5":{
2944
"name":"entity.name.function.member.objc"
2945
},
2946
"6":{
2947
"name":"punctuation.section.arguments.begin.bracket.round.function.member.objc"
2948
}
2949
},
2950
"end":"(\\))",
2951
"endCaptures":{
2952
"1":{
2953
"name":"punctuation.section.arguments.end.bracket.round.function.member.objc"
2954
}
2955
},
2956
"patterns":[
2957
{
2958
"include":"#function-call-innards"
2959
}
2960
]
2961
},
2962
"numbers":{
2963
"begin":"(?<!\\w)(?=\\d|\\.\\d)",
2964
"end":"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
2965
"patterns":[
2966
{
2967
"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])[+-]))",
2968
"captures":{
2969
"1":{
2970
"name":"keyword.other.unit.hexadecimal.objc"
2971
},
2972
"2":{
2973
"name":"constant.numeric.hexadecimal.objc",
2974
"patterns":[
2975
{
2976
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
2977
"name":"punctuation.separator.constant.numeric.objc"
2978
}
2979
]
2980
},
2981
"3":{
2982
"name":"punctuation.separator.constant.numeric.objc"
2983
},
2984
"4":{
2985
"name":"constant.numeric.hexadecimal.objc"
2986
},
2987
"5":{
2988
"name":"constant.numeric.hexadecimal.objc",
2989
"patterns":[
2990
{
2991
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
2992
"name":"punctuation.separator.constant.numeric.objc"
2993
}
2994
]
2995
},
2996
"6":{
2997
"name":"punctuation.separator.constant.numeric.objc"
2998
},
2999
"8":{
3000
"name":"keyword.other.unit.exponent.hexadecimal.objc"
3001
},
3002
"9":{
3003
"name":"keyword.operator.plus.exponent.hexadecimal.objc"
3004
},
3005
"10":{
3006
"name":"keyword.operator.minus.exponent.hexadecimal.objc"
3007
},
3008
"11":{
3009
"name":"constant.numeric.exponent.hexadecimal.objc",
3010
"patterns":[
3011
{
3012
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3013
"name":"punctuation.separator.constant.numeric.objc"
3014
}
3015
]
3016
},
3017
"12":{
3018
"name":"keyword.other.unit.suffix.floating-point.objc"
3019
}
3020
}
3021
},
3022
{
3023
"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])[+-]))",
3024
"captures":{
3025
"2":{
3026
"name":"constant.numeric.decimal.objc",
3027
"patterns":[
3028
{
3029
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3030
"name":"punctuation.separator.constant.numeric.objc"
3031
}
3032
]
3033
},
3034
"3":{
3035
"name":"punctuation.separator.constant.numeric.objc"
3036
},
3037
"4":{
3038
"name":"constant.numeric.decimal.point.objc"
3039
},
3040
"5":{
3041
"name":"constant.numeric.decimal.objc",
3042
"patterns":[
3043
{
3044
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3045
"name":"punctuation.separator.constant.numeric.objc"
3046
}
3047
]
3048
},
3049
"6":{
3050
"name":"punctuation.separator.constant.numeric.objc"
3051
},
3052
"8":{
3053
"name":"keyword.other.unit.exponent.decimal.objc"
3054
},
3055
"9":{
3056
"name":"keyword.operator.plus.exponent.decimal.objc"
3057
},
3058
"10":{
3059
"name":"keyword.operator.minus.exponent.decimal.objc"
3060
},
3061
"11":{
3062
"name":"constant.numeric.exponent.decimal.objc",
3063
"patterns":[
3064
{
3065
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3066
"name":"punctuation.separator.constant.numeric.objc"
3067
}
3068
]
3069
},
3070
"12":{
3071
"name":"keyword.other.unit.suffix.floating-point.objc"
3072
}
3073
}
3074
},
3075
{
3076
"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])[+-]))",
3077
"captures":{
3078
"1":{
3079
"name":"keyword.other.unit.binary.objc"
3080
},
3081
"2":{
3082
"name":"constant.numeric.binary.objc",
3083
"patterns":[
3084
{
3085
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3086
"name":"punctuation.separator.constant.numeric.objc"
3087
}
3088
]
3089
},
3090
"3":{
3091
"name":"punctuation.separator.constant.numeric.objc"
3092
},
3093
"4":{
3094
"name":"keyword.other.unit.suffix.integer.objc"
3095
}
3096
}
3097
},
3098
{
3099
"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])[+-]))",
3100
"captures":{
3101
"1":{
3102
"name":"keyword.other.unit.octal.objc"
3103
},
3104
"2":{
3105
"name":"constant.numeric.octal.objc",
3106
"patterns":[
3107
{
3108
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3109
"name":"punctuation.separator.constant.numeric.objc"
3110
}
3111
]
3112
},
3113
"3":{
3114
"name":"punctuation.separator.constant.numeric.objc"
3115
},
3116
"4":{
3117
"name":"keyword.other.unit.suffix.integer.objc"
3118
}
3119
}
3120
},
3121
{
3122
"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])[+-]))",
3123
"captures":{
3124
"1":{
3125
"name":"keyword.other.unit.hexadecimal.objc"
3126
},
3127
"2":{
3128
"name":"constant.numeric.hexadecimal.objc",
3129
"patterns":[
3130
{
3131
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3132
"name":"punctuation.separator.constant.numeric.objc"
3133
}
3134
]
3135
},
3136
"3":{
3137
"name":"punctuation.separator.constant.numeric.objc"
3138
},
3139
"5":{
3140
"name":"keyword.other.unit.exponent.hexadecimal.objc"
3141
},
3142
"6":{
3143
"name":"keyword.operator.plus.exponent.hexadecimal.objc"
3144
},
3145
"7":{
3146
"name":"keyword.operator.minus.exponent.hexadecimal.objc"
3147
},
3148
"8":{
3149
"name":"constant.numeric.exponent.hexadecimal.objc",
3150
"patterns":[
3151
{
3152
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3153
"name":"punctuation.separator.constant.numeric.objc"
3154
}
3155
]
3156
},
3157
"9":{
3158
"name":"keyword.other.unit.suffix.integer.objc"
3159
}
3160
}
3161
},
3162
{
3163
"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])[+-]))",
3164
"captures":{
3165
"2":{
3166
"name":"constant.numeric.decimal.objc",
3167
"patterns":[
3168
{
3169
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3170
"name":"punctuation.separator.constant.numeric.objc"
3171
}
3172
]
3173
},
3174
"3":{
3175
"name":"punctuation.separator.constant.numeric.objc"
3176
},
3177
"5":{
3178
"name":"keyword.other.unit.exponent.decimal.objc"
3179
},
3180
"6":{
3181
"name":"keyword.operator.plus.exponent.decimal.objc"
3182
},
3183
"7":{
3184
"name":"keyword.operator.minus.exponent.decimal.objc"
3185
},
3186
"8":{
3187
"name":"constant.numeric.exponent.decimal.objc",
3188
"patterns":[
3189
{
3190
"match":"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3191
"name":"punctuation.separator.constant.numeric.objc"
3192
}
3193
]
3194
},
3195
"9":{
3196
"name":"keyword.other.unit.suffix.integer.objc"
3197
}
3198
}
3199
},
3200
{
3201
"match":"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",
3202
"name":"invalid.illegal.constant.numeric.objc"
3203
}
3204
]
3205
}
3206
}
3207
},
3208
"comment":{
3209
"patterns":[
3210
{
3211
"begin":"/\\*",
3212
"captures":{
3213
"0":{
3214
"name":"punctuation.definition.comment.objc"
3215
}
3216
},
3217
"end":"\\*/",
3218
"name":"comment.block.objc"
3219
},
3220
{
3221
"begin":"(^[ \\t]+)?(?=//)",
3222
"beginCaptures":{
3223
"1":{
3224
"name":"punctuation.whitespace.comment.leading.objc"
3225
}
3226
},
3227
"end":"(?!\\G)",
3228
"patterns":[
3229
{
3230
"begin":"//",
3231
"beginCaptures":{
3232
"0":{
3233
"name":"punctuation.definition.comment.objc"
3234
}
3235
},
3236
"end":"\\n",
3237
"name":"comment.line.double-slash.objc",
3238
"patterns":[
3239
{
3240
"match":"(?>\\\\\\s*\\n)",
3241
"name":"punctuation.separator.continuation.objc"
3242
}
3243
]
3244
}
3245
]
3246
}
3247
]
3248
},
3249
"disabled":{
3250
"begin":"^\\s*#\\s*if(n?def)?\\b.*$",
3251
"comment":"eat nested preprocessor if(def)s",
3252
"end":"^\\s*#\\s*endif\\b.*$",
3253
"patterns":[
3254
{
3255
"include":"#disabled"
3256
},
3257
{
3258
"include":"#pragma-mark"
3259
}
3260
]
3261
},
3262
"implementation_innards":{
3263
"patterns":[
3264
{
3265
"include":"#preprocessor-rule-enabled-implementation"
3266
},
3267
{
3268
"include":"#preprocessor-rule-disabled-implementation"
3269
},
3270
{
3271
"include":"#preprocessor-rule-other-implementation"
3272
},
3273
{
3274
"include":"#property_directive"
3275
},
3276
{
3277
"include":"#method_super"
3278
},
3279
{
3280
"include":"$base"
3281
}
3282
]
3283
},
3284
"interface_innards":{
3285
"patterns":[
3286
{
3287
"include":"#preprocessor-rule-enabled-interface"
3288
},
3289
{
3290
"include":"#preprocessor-rule-disabled-interface"
3291
},
3292
{
3293
"include":"#preprocessor-rule-other-interface"
3294
},
3295
{
3296
"include":"#properties"
3297
},
3298
{
3299
"include":"#protocol_list"
3300
},
3301
{
3302
"include":"#method"
3303
},
3304
{
3305
"include":"$base"
3306
}
3307
]
3308
},
3309
"method":{
3310
"begin":"^(-|\\+)\\s*",
3311
"end":"(?=\\{|#)|;",
3312
"name":"meta.function.objc",
3313
"patterns":[
3314
{
3315
"begin":"(\\()",
3316
"beginCaptures":{
3317
"1":{
3318
"name":"punctuation.definition.type.begin.objc"
3319
}
3320
},
3321
"end":"(\\))\\s*(\\w+\\b)",
3322
"endCaptures":{
3323
"1":{
3324
"name":"punctuation.definition.type.end.objc"
3325
},
3326
"2":{
3327
"name":"entity.name.function.objc"
3328
}
3329
},
3330
"name":"meta.return-type.objc",
3331
"patterns":[
3332
{
3333
"include":"#protocol_list"
3334
},
3335
{
3336
"include":"#protocol_type_qualifier"
3337
},
3338
{
3339
"include":"$base"
3340
}
3341
]
3342
},
3343
{
3344
"match":"\\b\\w+(?=:)",
3345
"name":"entity.name.function.name-of-parameter.objc"
3346
},
3347
{
3348
"begin":"((:))\\s*(\\()",
3349
"beginCaptures":{
3350
"1":{
3351
"name":"entity.name.function.name-of-parameter.objc"
3352
},
3353
"2":{
3354
"name":"punctuation.separator.arguments.objc"
3355
},
3356
"3":{
3357
"name":"punctuation.definition.type.begin.objc"
3358
}
3359
},
3360
"end":"(\\))\\s*(\\w+\\b)?",
3361
"endCaptures":{
3362
"1":{
3363
"name":"punctuation.definition.type.end.objc"
3364
},
3365
"2":{
3366
"name":"variable.parameter.function.objc"
3367
}
3368
},
3369
"name":"meta.argument-type.objc",
3370
"patterns":[
3371
{
3372
"include":"#protocol_list"
3373
},
3374
{
3375
"include":"#protocol_type_qualifier"
3376
},
3377
{
3378
"include":"$base"
3379
}
3380
]
3381
},
3382
{
3383
"include":"#comment"
3384
}
3385
]
3386
},
3387
"method_super":{
3388
"begin":"^(?=-|\\+)",
3389
"end":"(?<=\\})|(?=#)",
3390
"name":"meta.function-with-body.objc",
3391
"patterns":[
3392
{
3393
"include":"#method"
3394
},
3395
{
3396
"include":"$base"
3397
}
3398
]
3399
},
3400
"pragma-mark":{
3401
"captures":{
3402
"1":{
3403
"name":"meta.preprocessor.objc"
3404
},
3405
"2":{
3406
"name":"keyword.control.import.pragma.objc"
3407
},
3408
"3":{
3409
"name":"meta.toc-list.pragma-mark.objc"
3410
}
3411
},
3412
"match":"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
3413
"name":"meta.section.objc"
3414
},
3415
"preprocessor-rule-disabled-implementation":{
3416
"begin":"^\\s*(#(if)\\s+(0)\\b).*",
3417
"captures":{
3418
"1":{
3419
"name":"meta.preprocessor.objc"
3420
},
3421
"2":{
3422
"name":"keyword.control.import.if.objc"
3423
},
3424
"3":{
3425
"name":"constant.numeric.preprocessor.objc"
3426
}
3427
},
3428
"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3429
"patterns":[
3430
{
3431
"begin":"^\\s*(#\\s*(else)\\b)",
3432
"captures":{
3433
"1":{
3434
"name":"meta.preprocessor.objc"
3435
},
3436
"2":{
3437
"name":"keyword.control.import.else.objc"
3438
}
3439
},
3440
"end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3441
"patterns":[
3442
{
3443
"include":"#interface_innards"
3444
}
3445
]
3446
},
3447
{
3448
"begin":"",
3449
"end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3450
"name":"comment.block.preprocessor.if-branch.objc",
3451
"patterns":[
3452
{
3453
"include":"#disabled"
3454
},
3455
{
3456
"include":"#pragma-mark"
3457
}
3458
]
3459
}
3460
]
3461
},
3462
"preprocessor-rule-disabled-interface":{
3463
"begin":"^\\s*(#(if)\\s+(0)\\b).*",
3464
"captures":{
3465
"1":{
3466
"name":"meta.preprocessor.objc"
3467
},
3468
"2":{
3469
"name":"keyword.control.import.if.objc"
3470
},
3471
"3":{
3472
"name":"constant.numeric.preprocessor.objc"
3473
}
3474
},
3475
"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3476
"patterns":[
3477
{
3478
"begin":"^\\s*(#\\s*(else)\\b)",
3479
"captures":{
3480
"1":{
3481
"name":"meta.preprocessor.objc"
3482
},
3483
"2":{
3484
"name":"keyword.control.import.else.objc"
3485
}
3486
},
3487
"end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3488
"patterns":[
3489
{
3490
"include":"#interface_innards"
3491
}
3492
]
3493
},
3494
{
3495
"begin":"",
3496
"end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3497
"name":"comment.block.preprocessor.if-branch.objc",
3498
"patterns":[
3499
{
3500
"include":"#disabled"
3501
},
3502
{
3503
"include":"#pragma-mark"
3504
}
3505
]
3506
}
3507
]
3508
},
3509
"preprocessor-rule-enabled-implementation":{
3510
"begin":"^\\s*(#(if)\\s+(0*1)\\b)",
3511
"captures":{
3512
"1":{
3513
"name":"meta.preprocessor.objc"
3514
},
3515
"2":{
3516
"name":"keyword.control.import.if.objc"
3517
},
3518
"3":{
3519
"name":"constant.numeric.preprocessor.objc"
3520
}
3521
},
3522
"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3523
"patterns":[
3524
{
3525
"begin":"^\\s*(#\\s*(else)\\b).*",
3526
"captures":{
3527
"1":{
3528
"name":"meta.preprocessor.objc"
3529
},
3530
"2":{
3531
"name":"keyword.control.import.else.objc"
3532
}
3533
},
3534
"contentName":"comment.block.preprocessor.else-branch.objc",
3535
"end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3536
"patterns":[
3537
{
3538
"include":"#disabled"
3539
},
3540
{
3541
"include":"#pragma-mark"
3542
}
3543
]
3544
},
3545
{
3546
"begin":"",
3547
"end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3548
"patterns":[
3549
{
3550
"include":"#implementation_innards"
3551
}
3552
]
3553
}
3554
]
3555
},
3556
"preprocessor-rule-enabled-interface":{
3557
"begin":"^\\s*(#(if)\\s+(0*1)\\b)",
3558
"captures":{
3559
"1":{
3560
"name":"meta.preprocessor.objc"
3561
},
3562
"2":{
3563
"name":"keyword.control.import.if.objc"
3564
},
3565
"3":{
3566
"name":"constant.numeric.preprocessor.objc"
3567
}
3568
},
3569
"end":"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3570
"patterns":[
3571
{
3572
"begin":"^\\s*(#\\s*(else)\\b).*",
3573
"captures":{
3574
"1":{
3575
"name":"meta.preprocessor.objc"
3576
},
3577
"2":{
3578
"name":"keyword.control.import.else.objc"
3579
}
3580
},
3581
"contentName":"comment.block.preprocessor.else-branch.objc",
3582
"end":"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
3583
"patterns":[
3584
{
3585
"include":"#disabled"
3586
},
3587
{
3588
"include":"#pragma-mark"
3589
}
3590
]
3591
},
3592
{
3593
"begin":"",
3594
"end":"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
3595
"patterns":[
3596
{
3597
"include":"#interface_innards"
3598
}
3599
]
3600
}
3601
]
3602
},
3603
"preprocessor-rule-other-implementation":{
3604
"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
3605
"captures":{
3606
"1":{
3607
"name":"meta.preprocessor.objc"
3608
},
3609
"2":{
3610
"name":"keyword.control.import.objc"
3611
}
3612
},
3613
"end":"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
3614
"patterns":[
3615
{
3616
"include":"#implementation_innards"
3617
}
3618
]
3619
},
3620
"preprocessor-rule-other-interface":{
3621
"begin":"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
3622
"captures":{
3623
"1":{
3624
"name":"meta.preprocessor.objc"
3625
},
3626
"2":{
3627
"name":"keyword.control.import.objc"
3628
}
3629
},
3630
"end":"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
3631
"patterns":[
3632
{
3633
"include":"#interface_innards"
3634
}
3635
]
3636
},
3637
"properties":{
3638
"patterns":[
3639
{
3640
"begin":"((@)property)\\s*(\\()",
3641
"beginCaptures":{
3642
"1":{
3643
"name":"keyword.other.property.objc"
3644
},
3645
"2":{
3646
"name":"punctuation.definition.keyword.objc"
3647
},
3648
"3":{
3649
"name":"punctuation.section.scope.begin.objc"
3650
}
3651
},
3652
"end":"(\\))",
3653
"endCaptures":{
3654
"1":{
3655
"name":"punctuation.section.scope.end.objc"
3656
}
3657
},
3658
"name":"meta.property-with-attributes.objc",
3659
"patterns":[
3660
{
3661
"match":"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",
3662
"name":"keyword.other.property.attribute.objc"
3663
}
3664
]
3665
},
3666
{
3667
"captures":{
3668
"1":{
3669
"name":"keyword.other.property.objc"
3670
},
3671
"2":{
3672
"name":"punctuation.definition.keyword.objc"
3673
}
3674
},
3675
"match":"((@)property)\\b",
3676
"name":"meta.property.objc"
3677
}
3678
]
3679
},
3680
"property_directive":{
3681
"captures":{
3682
"1":{
3683
"name":"punctuation.definition.keyword.objc"
3684
}
3685
},
3686
"match":"(@)(dynamic|synthesize)\\b",
3687
"name":"keyword.other.property.directive.objc"
3688
},
3689
"protocol_list":{
3690
"begin":"(<)",
3691
"beginCaptures":{
3692
"1":{
3693
"name":"punctuation.section.scope.begin.objc"
3694
}
3695
},
3696
"end":"(>)",
3697
"endCaptures":{
3698
"1":{
3699
"name":"punctuation.section.scope.end.objc"
3700
}
3701
},
3702
"name":"meta.protocol-list.objc",
3703
"patterns":[
3704
{
3705
"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",
3706
"name":"support.other.protocol.objc"
3707
}
3708
]
3709
},
3710
"protocol_type_qualifier":{
3711
"match":"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",
3712
"name":"storage.modifier.protocol.objc"
3713
},
3714
"special_variables":{
3715
"patterns":[
3716
{
3717
"match":"\\b_cmd\\b",
3718
"name":"variable.other.selector.objc"
3719
},
3720
{
3721
"match":"\\b(self|super)\\b",
3722
"name":"variable.language.objc"
3723
}
3724
]
3725
},
3726
"string_escaped_char":{
3727
"patterns":[
3728
{
3729
"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} )",
3730
"name":"constant.character.escape.objc"
3731
},
3732
{
3733
"match":"\\\\.",
3734
"name":"invalid.illegal.unknown-escape.objc"
3735
}
3736
]
3737
},
3738
"string_placeholder":{
3739
"patterns":[
3740
{
3741
"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",
3742
"name":"constant.other.placeholder.objc"
3743
},
3744
{
3745
"match":"(%)(?!\"\\s*(PRI|SCN))",
3746
"captures":{
3747
"1":{
3748
"name":"invalid.illegal.placeholder.objc"
3749
}
3750
}
3751
}
3752
]
3753
}
3754
}
3755
}