PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.27.3
Code Block Pro – Beautiful Syntax Highlighting v1.27.3
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / objective-c.tmLanguage.json

objective-c.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.27.3, at build/shiki/languages/objective-c.tmLanguage.json

3,756 lines 157.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }
3756