View raw

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 }