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

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

7,248 lines 276.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "information_for_contributors": [
3 "This file has been converted from https://github.com/jeff-hykin/better-objcpp-syntax/blob/master/autogenerated/objcpp.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-objcpp-syntax/commit/5a7eb15eee382dd5aa388bc04fdb60a0d2128e14",
8 "name": "objective-cpp",
9 "scopeName": "source.objcpp",
10 "patterns": [
11 {
12 "include": "#cpp_lang"
13 },
14 {
15 "include": "#anonymous_pattern_1"
16 },
17 {
18 "include": "#anonymous_pattern_2"
19 },
20 {
21 "include": "#anonymous_pattern_3"
22 },
23 {
24 "include": "#anonymous_pattern_4"
25 },
26 {
27 "include": "#anonymous_pattern_5"
28 },
29 {
30 "include": "#apple_foundation_functional_macros"
31 },
32 {
33 "include": "#anonymous_pattern_7"
34 },
35 {
36 "include": "#anonymous_pattern_8"
37 },
38 {
39 "include": "#anonymous_pattern_9"
40 },
41 {
42 "include": "#anonymous_pattern_10"
43 },
44 {
45 "include": "#anonymous_pattern_11"
46 },
47 {
48 "include": "#anonymous_pattern_12"
49 },
50 {
51 "include": "#anonymous_pattern_13"
52 },
53 {
54 "include": "#anonymous_pattern_14"
55 },
56 {
57 "include": "#anonymous_pattern_15"
58 },
59 {
60 "include": "#anonymous_pattern_16"
61 },
62 {
63 "include": "#anonymous_pattern_17"
64 },
65 {
66 "include": "#anonymous_pattern_18"
67 },
68 {
69 "include": "#anonymous_pattern_19"
70 },
71 {
72 "include": "#anonymous_pattern_20"
73 },
74 {
75 "include": "#anonymous_pattern_21"
76 },
77 {
78 "include": "#anonymous_pattern_22"
79 },
80 {
81 "include": "#anonymous_pattern_23"
82 },
83 {
84 "include": "#anonymous_pattern_24"
85 },
86 {
87 "include": "#anonymous_pattern_25"
88 },
89 {
90 "include": "#anonymous_pattern_26"
91 },
92 {
93 "include": "#anonymous_pattern_27"
94 },
95 {
96 "include": "#anonymous_pattern_28"
97 },
98 {
99 "include": "#anonymous_pattern_29"
100 },
101 {
102 "include": "#anonymous_pattern_30"
103 },
104 {
105 "include": "#bracketed_content"
106 },
107 {
108 "include": "#c_lang"
109 }
110 ],
111 "repository": {
112 "anonymous_pattern_1": {
113 "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",
114 "captures": {
115 "1": {
116 "name": "storage.type.objcpp"
117 },
118 "2": {
119 "name": "punctuation.definition.storage.type.objcpp"
120 },
121 "4": {
122 "name": "entity.name.type.objcpp"
123 },
124 "6": {
125 "name": "punctuation.definition.entity.other.inherited-class.objcpp"
126 },
127 "7": {
128 "name": "entity.other.inherited-class.objcpp"
129 },
130 "8": {
131 "name": "meta.divider.objcpp"
132 },
133 "9": {
134 "name": "meta.inherited-class.objcpp"
135 }
136 },
137 "contentName": "meta.scope.interface.objcpp",
138 "end": "((@)end)\\b",
139 "name": "meta.interface-or-protocol.objcpp",
140 "patterns": [
141 {
142 "include": "#interface_innards"
143 }
144 ]
145 },
146 "anonymous_pattern_10": {
147 "captures": {
148 "1": {
149 "name": "punctuation.definition.keyword.objcpp"
150 }
151 },
152 "match": "(@)(defs|encode)\\b",
153 "name": "keyword.other.objcpp"
154 },
155 "anonymous_pattern_11": {
156 "match": "\\bid\\b",
157 "name": "storage.type.id.objcpp"
158 },
159 "anonymous_pattern_12": {
160 "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",
161 "name": "storage.type.objcpp"
162 },
163 "anonymous_pattern_13": {
164 "captures": {
165 "1": {
166 "name": "punctuation.definition.storage.type.objcpp"
167 }
168 },
169 "match": "(@)(class|protocol)\\b",
170 "name": "storage.type.objcpp"
171 },
172 "anonymous_pattern_14": {
173 "begin": "((@)selector)\\s*(\\()",
174 "beginCaptures": {
175 "1": {
176 "name": "storage.type.objcpp"
177 },
178 "2": {
179 "name": "punctuation.definition.storage.type.objcpp"
180 },
181 "3": {
182 "name": "punctuation.definition.storage.type.objcpp"
183 }
184 },
185 "contentName": "meta.selector.method-name.objcpp",
186 "end": "(\\))",
187 "endCaptures": {
188 "1": {
189 "name": "punctuation.definition.storage.type.objcpp"
190 }
191 },
192 "name": "meta.selector.objcpp",
193 "patterns": [
194 {
195 "captures": {
196 "1": {
197 "name": "punctuation.separator.arguments.objcpp"
198 }
199 },
200 "match": "\\b(?:[a-zA-Z_:][\\w]*)+",
201 "name": "support.function.any-method.name-of-parameter.objcpp"
202 }
203 ]
204 },
205 "anonymous_pattern_15": {
206 "captures": {
207 "1": {
208 "name": "punctuation.definition.storage.modifier.objcpp"
209 }
210 },
211 "match": "(@)(synchronized|public|package|private|protected)\\b",
212 "name": "storage.modifier.objcpp"
213 },
214 "anonymous_pattern_16": {
215 "match": "\\b(YES|NO|Nil|nil)\\b",
216 "name": "constant.language.objcpp"
217 },
218 "anonymous_pattern_17": {
219 "match": "\\bNSApp\\b",
220 "name": "support.variable.foundation.objcpp"
221 },
222 "anonymous_pattern_18": {
223 "captures": {
224 "1": {
225 "name": "punctuation.whitespace.support.function.cocoa.leopard.objcpp"
226 },
227 "2": {
228 "name": "support.function.cocoa.leopard.objcpp"
229 }
230 },
231 "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"
232 },
233 "anonymous_pattern_19": {
234 "captures": {
235 "1": {
236 "name": "punctuation.whitespace.support.function.leading.cocoa.objcpp"
237 },
238 "2": {
239 "name": "support.function.cocoa.objcpp"
240 }
241 },
242 "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"
243 },
244 "anonymous_pattern_2": {
245 "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",
246 "captures": {
247 "1": {
248 "name": "storage.type.objcpp"
249 },
250 "2": {
251 "name": "punctuation.definition.storage.type.objcpp"
252 },
253 "4": {
254 "name": "entity.name.type.objcpp"
255 },
256 "5": {
257 "name": "entity.other.inherited-class.objcpp"
258 }
259 },
260 "contentName": "meta.scope.implementation.objcpp",
261 "end": "((@)end)\\b",
262 "name": "meta.implementation.objcpp",
263 "patterns": [
264 {
265 "include": "#implementation_innards"
266 }
267 ]
268 },
269 "anonymous_pattern_20": {
270 "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",
271 "name": "support.class.cocoa.leopard.objcpp"
272 },
273 "anonymous_pattern_21": {
274 "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",
275 "name": "support.class.cocoa.objcpp"
276 },
277 "anonymous_pattern_22": {
278 "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",
279 "name": "support.type.cocoa.leopard.objcpp"
280 },
281 "anonymous_pattern_23": {
282 "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",
283 "name": "support.class.quartz.objcpp"
284 },
285 "anonymous_pattern_24": {
286 "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",
287 "name": "support.type.quartz.objcpp"
288 },
289 "anonymous_pattern_25": {
290 "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",
291 "name": "support.type.cocoa.objcpp"
292 },
293 "anonymous_pattern_26": {
294 "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",
295 "name": "support.constant.cocoa.objcpp"
296 },
297 "anonymous_pattern_27": {
298 "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",
299 "name": "support.constant.notification.cocoa.leopard.objcpp"
300 },
301 "anonymous_pattern_28": {
302 "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",
303 "name": "support.constant.notification.cocoa.objcpp"
304 },
305 "anonymous_pattern_29": {
306 "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",
307 "name": "support.constant.cocoa.leopard.objcpp"
308 },
309 "anonymous_pattern_3": {
310 "begin": "@\"",
311 "beginCaptures": {
312 "0": {
313 "name": "punctuation.definition.string.begin.objcpp"
314 }
315 },
316 "end": "\"",
317 "endCaptures": {
318 "0": {
319 "name": "punctuation.definition.string.end.objcpp"
320 }
321 },
322 "name": "string.quoted.double.objcpp",
323 "patterns": [
324 {
325 "include": "#string_escaped_char"
326 },
327 {
328 "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",
329 "name": "constant.other.placeholder.objcpp"
330 },
331 {
332 "include": "#string_placeholder"
333 }
334 ]
335 },
336 "anonymous_pattern_30": {
337 "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",
338 "name": "support.constant.cocoa.objcpp"
339 },
340 "anonymous_pattern_4": {
341 "begin": "\\b(id)\\s*(?=<)",
342 "beginCaptures": {
343 "1": {
344 "name": "storage.type.objcpp"
345 }
346 },
347 "end": "(?<=>)",
348 "name": "meta.id-with-protocol.objcpp",
349 "patterns": [
350 {
351 "include": "#protocol_list"
352 }
353 ]
354 },
355 "anonymous_pattern_5": {
356 "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",
357 "name": "keyword.control.macro.objcpp"
358 },
359 "anonymous_pattern_7": {
360 "captures": {
361 "1": {
362 "name": "punctuation.definition.keyword.objcpp"
363 }
364 },
365 "match": "(@)(try|catch|finally|throw)\\b",
366 "name": "keyword.control.exception.objcpp"
367 },
368 "anonymous_pattern_8": {
369 "captures": {
370 "1": {
371 "name": "punctuation.definition.keyword.objcpp"
372 }
373 },
374 "match": "(@)(synchronized)\\b",
375 "name": "keyword.control.synchronize.objcpp"
376 },
377 "anonymous_pattern_9": {
378 "captures": {
379 "1": {
380 "name": "punctuation.definition.keyword.objcpp"
381 }
382 },
383 "match": "(@)(required|optional)\\b",
384 "name": "keyword.control.protocol-specification.objcpp"
385 },
386 "apple_foundation_functional_macros": {
387 "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)+)?(\\()",
388 "end": "\\)",
389 "beginCaptures": {
390 "1": {
391 "name": "entity.name.function.preprocessor.apple-foundation.objcpp"
392 },
393 "2": {
394 "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp"
395 }
396 },
397 "endCaptures": {
398 "0": {
399 "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp"
400 }
401 },
402 "name": "meta.preprocessor.macro.callable.apple-foundation.objcpp",
403 "patterns": [
404 {
405 "include": "#c_lang"
406 }
407 ]
408 },
409 "bracketed_content": {
410 "begin": "\\[",
411 "beginCaptures": {
412 "0": {
413 "name": "punctuation.section.scope.begin.objcpp"
414 }
415 },
416 "end": "\\]",
417 "endCaptures": {
418 "0": {
419 "name": "punctuation.section.scope.end.objcpp"
420 }
421 },
422 "name": "meta.bracketed.objcpp",
423 "patterns": [
424 {
425 "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",
426 "beginCaptures": {
427 "1": {
428 "name": "support.function.any-method.objcpp"
429 },
430 "2": {
431 "name": "punctuation.separator.arguments.objcpp"
432 }
433 },
434 "end": "(?=\\])",
435 "name": "meta.function-call.predicate.objcpp",
436 "patterns": [
437 {
438 "captures": {
439 "1": {
440 "name": "punctuation.separator.arguments.objcpp"
441 }
442 },
443 "match": "\\bargument(Array|s)(:)",
444 "name": "support.function.any-method.name-of-parameter.objcpp"
445 },
446 {
447 "captures": {
448 "1": {
449 "name": "punctuation.separator.arguments.objcpp"
450 }
451 },
452 "match": "\\b\\w+(:)",
453 "name": "invalid.illegal.unknown-method.objcpp"
454 },
455 {
456 "begin": "@\"",
457 "beginCaptures": {
458 "0": {
459 "name": "punctuation.definition.string.begin.objcpp"
460 }
461 },
462 "end": "\"",
463 "endCaptures": {
464 "0": {
465 "name": "punctuation.definition.string.end.objcpp"
466 }
467 },
468 "name": "string.quoted.double.objcpp",
469 "patterns": [
470 {
471 "match": "\\b(AND|OR|NOT|IN)\\b",
472 "name": "keyword.operator.logical.predicate.cocoa.objcpp"
473 },
474 {
475 "match": "\\b(ALL|ANY|SOME|NONE)\\b",
476 "name": "constant.language.predicate.cocoa.objcpp"
477 },
478 {
479 "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",
480 "name": "constant.language.predicate.cocoa.objcpp"
481 },
482 {
483 "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",
484 "name": "keyword.operator.comparison.predicate.cocoa.objcpp"
485 },
486 {
487 "match": "\\bC(ASEINSENSITIVE|I)\\b",
488 "name": "keyword.other.modifier.predicate.cocoa.objcpp"
489 },
490 {
491 "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",
492 "name": "keyword.other.predicate.cocoa.objcpp"
493 },
494 {
495 "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
496 "name": "constant.character.escape.objcpp"
497 },
498 {
499 "match": "\\\\.",
500 "name": "invalid.illegal.unknown-escape.objcpp"
501 }
502 ]
503 },
504 {
505 "include": "#special_variables"
506 },
507 {
508 "include": "#c_functions"
509 },
510 {
511 "include": "$base"
512 }
513 ]
514 },
515 {
516 "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",
517 "beginCaptures": {
518 "1": {
519 "name": "support.function.any-method.objcpp"
520 },
521 "2": {
522 "name": "punctuation.separator.arguments.objcpp"
523 }
524 },
525 "end": "(?=\\])",
526 "name": "meta.function-call.objcpp",
527 "patterns": [
528 {
529 "captures": {
530 "1": {
531 "name": "punctuation.separator.arguments.objcpp"
532 }
533 },
534 "match": "\\b\\w+(:)",
535 "name": "support.function.any-method.name-of-parameter.objcpp"
536 },
537 {
538 "include": "#special_variables"
539 },
540 {
541 "include": "#c_functions"
542 },
543 {
544 "include": "$base"
545 }
546 ]
547 },
548 {
549 "include": "#special_variables"
550 },
551 {
552 "include": "#c_functions"
553 },
554 {
555 "include": "$self"
556 }
557 ]
558 },
559 "c_functions": {
560 "patterns": [
561 {
562 "captures": {
563 "1": {
564 "name": "punctuation.whitespace.support.function.leading.objcpp"
565 },
566 "2": {
567 "name": "support.function.C99.objcpp"
568 }
569 },
570 "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"
571 },
572 {
573 "captures": {
574 "1": {
575 "name": "punctuation.whitespace.function-call.leading.objcpp"
576 },
577 "2": {
578 "name": "support.function.any-method.objcpp"
579 },
580 "3": {
581 "name": "punctuation.definition.parameters.objcpp"
582 }
583 },
584 "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*(\\()",
585 "name": "meta.function-call.objcpp"
586 }
587 ]
588 },
589 "c_lang": {
590 "patterns": [
591 {
592 "include": "#preprocessor-rule-enabled"
593 },
594 {
595 "include": "#preprocessor-rule-disabled"
596 },
597 {
598 "include": "#preprocessor-rule-conditional"
599 },
600 {
601 "include": "#comments"
602 },
603 {
604 "include": "#switch_statement"
605 },
606 {
607 "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
608 "name": "keyword.control.objcpp"
609 },
610 {
611 "include": "#storage_types"
612 },
613 {
614 "match": "typedef",
615 "name": "keyword.other.typedef.objcpp"
616 },
617 {
618 "match": "\\bin\\b",
619 "name": "keyword.other.in.objcpp"
620 },
621 {
622 "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",
623 "name": "storage.modifier.objcpp"
624 },
625 {
626 "match": "\\bk[A-Z]\\w*\\b",
627 "name": "constant.other.variable.mac-classic.objcpp"
628 },
629 {
630 "match": "\\bg[A-Z]\\w*\\b",
631 "name": "variable.other.readwrite.global.mac-classic.objcpp"
632 },
633 {
634 "match": "\\bs[A-Z]\\w*\\b",
635 "name": "variable.other.readwrite.static.mac-classic.objcpp"
636 },
637 {
638 "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
639 "name": "constant.language.objcpp"
640 },
641 {
642 "include": "#operators"
643 },
644 {
645 "include": "#numbers"
646 },
647 {
648 "include": "#strings"
649 },
650 {
651 "include": "#special_variables"
652 },
653 {
654 "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)?",
655 "beginCaptures": {
656 "1": {
657 "name": "keyword.control.directive.define.objcpp"
658 },
659 "2": {
660 "name": "punctuation.definition.directive.objcpp"
661 },
662 "3": {
663 "name": "entity.name.function.preprocessor.objcpp"
664 },
665 "5": {
666 "name": "punctuation.definition.parameters.begin.objcpp"
667 },
668 "6": {
669 "name": "variable.parameter.preprocessor.objcpp"
670 },
671 "8": {
672 "name": "punctuation.separator.parameters.objcpp"
673 },
674 "9": {
675 "name": "punctuation.definition.parameters.end.objcpp"
676 }
677 },
678 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
679 "name": "meta.preprocessor.macro.objcpp",
680 "patterns": [
681 {
682 "include": "#preprocessor-rule-define-line-contents"
683 }
684 ]
685 },
686 {
687 "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*",
688 "beginCaptures": {
689 "1": {
690 "name": "keyword.control.directive.diagnostic.$3.objcpp"
691 },
692 "2": {
693 "name": "punctuation.definition.directive.objcpp"
694 }
695 },
696 "end": "(?<!\\\\)(?=\\n)",
697 "name": "meta.preprocessor.diagnostic.objcpp",
698 "patterns": [
699 {
700 "begin": "\"",
701 "beginCaptures": {
702 "0": {
703 "name": "punctuation.definition.string.begin.objcpp"
704 }
705 },
706 "end": "\"|(?<!\\\\)(?=\\s*\\n)",
707 "endCaptures": {
708 "0": {
709 "name": "punctuation.definition.string.end.objcpp"
710 }
711 },
712 "name": "string.quoted.double.objcpp",
713 "patterns": [
714 {
715 "include": "#line_continuation_character"
716 }
717 ]
718 },
719 {
720 "begin": "'",
721 "beginCaptures": {
722 "0": {
723 "name": "punctuation.definition.string.begin.objcpp"
724 }
725 },
726 "end": "'|(?<!\\\\)(?=\\s*\\n)",
727 "endCaptures": {
728 "0": {
729 "name": "punctuation.definition.string.end.objcpp"
730 }
731 },
732 "name": "string.quoted.single.objcpp",
733 "patterns": [
734 {
735 "include": "#line_continuation_character"
736 }
737 ]
738 },
739 {
740 "begin": "[^'\"]",
741 "end": "(?<!\\\\)(?=\\s*\\n)",
742 "name": "string.unquoted.single.objcpp",
743 "patterns": [
744 {
745 "include": "#line_continuation_character"
746 },
747 {
748 "include": "#comments"
749 }
750 ]
751 }
752 ]
753 },
754 {
755 "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",
756 "beginCaptures": {
757 "1": {
758 "name": "keyword.control.directive.$3.objcpp"
759 },
760 "2": {
761 "name": "punctuation.definition.directive.objcpp"
762 }
763 },
764 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
765 "name": "meta.preprocessor.include.objcpp",
766 "patterns": [
767 {
768 "include": "#line_continuation_character"
769 },
770 {
771 "begin": "\"",
772 "beginCaptures": {
773 "0": {
774 "name": "punctuation.definition.string.begin.objcpp"
775 }
776 },
777 "end": "\"",
778 "endCaptures": {
779 "0": {
780 "name": "punctuation.definition.string.end.objcpp"
781 }
782 },
783 "name": "string.quoted.double.include.objcpp"
784 },
785 {
786 "begin": "<",
787 "beginCaptures": {
788 "0": {
789 "name": "punctuation.definition.string.begin.objcpp"
790 }
791 },
792 "end": ">",
793 "endCaptures": {
794 "0": {
795 "name": "punctuation.definition.string.end.objcpp"
796 }
797 },
798 "name": "string.quoted.other.lt-gt.include.objcpp"
799 }
800 ]
801 },
802 {
803 "include": "#pragma-mark"
804 },
805 {
806 "begin": "^\\s*((#)\\s*line)\\b",
807 "beginCaptures": {
808 "1": {
809 "name": "keyword.control.directive.line.objcpp"
810 },
811 "2": {
812 "name": "punctuation.definition.directive.objcpp"
813 }
814 },
815 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
816 "name": "meta.preprocessor.objcpp",
817 "patterns": [
818 {
819 "include": "#strings"
820 },
821 {
822 "include": "#numbers"
823 },
824 {
825 "include": "#line_continuation_character"
826 }
827 ]
828 },
829 {
830 "begin": "^\\s*(?:((#)\\s*undef))\\b",
831 "beginCaptures": {
832 "1": {
833 "name": "keyword.control.directive.undef.objcpp"
834 },
835 "2": {
836 "name": "punctuation.definition.directive.objcpp"
837 }
838 },
839 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
840 "name": "meta.preprocessor.objcpp",
841 "patterns": [
842 {
843 "match": "[a-zA-Z_$][\\w$]*",
844 "name": "entity.name.function.preprocessor.objcpp"
845 },
846 {
847 "include": "#line_continuation_character"
848 }
849 ]
850 },
851 {
852 "begin": "^\\s*(?:((#)\\s*pragma))\\b",
853 "beginCaptures": {
854 "1": {
855 "name": "keyword.control.directive.pragma.objcpp"
856 },
857 "2": {
858 "name": "punctuation.definition.directive.objcpp"
859 }
860 },
861 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
862 "name": "meta.preprocessor.pragma.objcpp",
863 "patterns": [
864 {
865 "include": "#strings"
866 },
867 {
868 "match": "[a-zA-Z_$][\\w\\-$]*",
869 "name": "entity.other.attribute-name.pragma.preprocessor.objcpp"
870 },
871 {
872 "include": "#numbers"
873 },
874 {
875 "include": "#line_continuation_character"
876 }
877 ]
878 },
879 {
880 "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",
881 "name": "support.type.sys-types.objcpp"
882 },
883 {
884 "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",
885 "name": "support.type.pthread.objcpp"
886 },
887 {
888 "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",
889 "name": "support.type.stdint.objcpp"
890 },
891 {
892 "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",
893 "name": "support.constant.mac-classic.objcpp"
894 },
895 {
896 "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",
897 "name": "support.type.mac-classic.objcpp"
898 },
899 {
900 "match": "\\b([A-Za-z0-9_]+_t)\\b",
901 "name": "support.type.posix-reserved.objcpp"
902 },
903 {
904 "include": "#block"
905 },
906 {
907 "include": "#parens"
908 },
909 {
910 "name": "meta.function.objcpp",
911 "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*\\()",
912 "end": "(?<=\\))",
913 "patterns": [
914 {
915 "include": "#function-innards"
916 }
917 ]
918 },
919 {
920 "include": "#line_continuation_character"
921 },
922 {
923 "name": "meta.bracket.square.access.objcpp",
924 "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
925 "beginCaptures": {
926 "1": {
927 "name": "variable.object.objcpp"
928 },
929 "2": {
930 "name": "punctuation.definition.begin.bracket.square.objcpp"
931 }
932 },
933 "end": "\\]",
934 "endCaptures": {
935 "0": {
936 "name": "punctuation.definition.end.bracket.square.objcpp"
937 }
938 },
939 "patterns": [
940 {
941 "include": "#function-call-innards"
942 }
943 ]
944 },
945 {
946 "name": "storage.modifier.array.bracket.square.objcpp",
947 "match": "\\[\\s*\\]"
948 },
949 {
950 "match": ";",
951 "name": "punctuation.terminator.statement.objcpp"
952 },
953 {
954 "match": ",",
955 "name": "punctuation.separator.delimiter.objcpp"
956 }
957 ],
958 "repository": {
959 "probably_a_parameter": {
960 "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
961 "captures": {
962 "1": {
963 "name": "variable.parameter.probably.objcpp"
964 }
965 }
966 },
967 "access-method": {
968 "name": "meta.function-call.member.objcpp",
969 "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]*)(\\()",
970 "beginCaptures": {
971 "1": {
972 "name": "variable.object.objcpp"
973 },
974 "2": {
975 "name": "punctuation.separator.dot-access.objcpp"
976 },
977 "3": {
978 "name": "punctuation.separator.pointer-access.objcpp"
979 },
980 "4": {
981 "patterns": [
982 {
983 "match": "\\.",
984 "name": "punctuation.separator.dot-access.objcpp"
985 },
986 {
987 "match": "->",
988 "name": "punctuation.separator.pointer-access.objcpp"
989 },
990 {
991 "match": "[a-zA-Z_][a-zA-Z_0-9]*",
992 "name": "variable.object.objcpp"
993 },
994 {
995 "name": "everything.else.objcpp",
996 "match": ".+"
997 }
998 ]
999 },
1000 "5": {
1001 "name": "entity.name.function.member.objcpp"
1002 },
1003 "6": {
1004 "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp"
1005 }
1006 },
1007 "end": "\\)",
1008 "endCaptures": {
1009 "0": {
1010 "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp"
1011 }
1012 },
1013 "patterns": [
1014 {
1015 "include": "#function-call-innards"
1016 }
1017 ]
1018 },
1019 "block": {
1020 "patterns": [
1021 {
1022 "begin": "{",
1023 "beginCaptures": {
1024 "0": {
1025 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
1026 }
1027 },
1028 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1029 "endCaptures": {
1030 "0": {
1031 "name": "punctuation.section.block.end.bracket.curly.objcpp"
1032 }
1033 },
1034 "name": "meta.block.objcpp",
1035 "patterns": [
1036 {
1037 "include": "#block_innards"
1038 }
1039 ]
1040 }
1041 ]
1042 },
1043 "block_innards": {
1044 "patterns": [
1045 {
1046 "include": "#preprocessor-rule-enabled-block"
1047 },
1048 {
1049 "include": "#preprocessor-rule-disabled-block"
1050 },
1051 {
1052 "include": "#preprocessor-rule-conditional-block"
1053 },
1054 {
1055 "include": "#method_access"
1056 },
1057 {
1058 "include": "#member_access"
1059 },
1060 {
1061 "include": "#c_function_call"
1062 },
1063 {
1064 "name": "meta.initialization.objcpp",
1065 "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",
1066 "beginCaptures": {
1067 "1": {
1068 "name": "variable.other.objcpp"
1069 },
1070 "2": {
1071 "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp"
1072 }
1073 },
1074 "end": "\\)",
1075 "endCaptures": {
1076 "0": {
1077 "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp"
1078 }
1079 },
1080 "patterns": [
1081 {
1082 "include": "#function-call-innards"
1083 }
1084 ]
1085 },
1086 {
1087 "begin": "{",
1088 "beginCaptures": {
1089 "0": {
1090 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
1091 }
1092 },
1093 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
1094 "endCaptures": {
1095 "0": {
1096 "name": "punctuation.section.block.end.bracket.curly.objcpp"
1097 }
1098 },
1099 "patterns": [
1100 {
1101 "include": "#block_innards"
1102 }
1103 ]
1104 },
1105 {
1106 "include": "#parens-block"
1107 },
1108 {
1109 "include": "$base"
1110 }
1111 ]
1112 },
1113 "c_function_call": {
1114 "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)",
1115 "end": "(?<=\\))(?!\\w)",
1116 "name": "meta.function-call.objcpp",
1117 "patterns": [
1118 {
1119 "include": "#function-call-innards"
1120 }
1121 ]
1122 },
1123 "comments": {
1124 "patterns": [
1125 {
1126 "captures": {
1127 "1": {
1128 "name": "meta.toc-list.banner.block.objcpp"
1129 }
1130 },
1131 "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
1132 "name": "comment.block.objcpp"
1133 },
1134 {
1135 "begin": "/\\*",
1136 "beginCaptures": {
1137 "0": {
1138 "name": "punctuation.definition.comment.begin.objcpp"
1139 }
1140 },
1141 "end": "\\*/",
1142 "endCaptures": {
1143 "0": {
1144 "name": "punctuation.definition.comment.end.objcpp"
1145 }
1146 },
1147 "name": "comment.block.objcpp"
1148 },
1149 {
1150 "captures": {
1151 "1": {
1152 "name": "meta.toc-list.banner.line.objcpp"
1153 }
1154 },
1155 "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
1156 "name": "comment.line.banner.objcpp"
1157 },
1158 {
1159 "begin": "(^[ \\t]+)?(?=//)",
1160 "beginCaptures": {
1161 "1": {
1162 "name": "punctuation.whitespace.comment.leading.objcpp"
1163 }
1164 },
1165 "end": "(?!\\G)",
1166 "patterns": [
1167 {
1168 "begin": "//",
1169 "beginCaptures": {
1170 "0": {
1171 "name": "punctuation.definition.comment.objcpp"
1172 }
1173 },
1174 "end": "(?=\\n)",
1175 "name": "comment.line.double-slash.objcpp",
1176 "patterns": [
1177 {
1178 "include": "#line_continuation_character"
1179 }
1180 ]
1181 }
1182 ]
1183 }
1184 ]
1185 },
1186 "disabled": {
1187 "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
1188 "end": "^\\s*#\\s*endif\\b",
1189 "patterns": [
1190 {
1191 "include": "#disabled"
1192 },
1193 {
1194 "include": "#pragma-mark"
1195 }
1196 ]
1197 },
1198 "line_continuation_character": {
1199 "patterns": [
1200 {
1201 "match": "(\\\\)\\n",
1202 "captures": {
1203 "1": {
1204 "name": "constant.character.escape.line-continuation.objcpp"
1205 }
1206 }
1207 }
1208 ]
1209 },
1210 "parens": {
1211 "name": "meta.parens.objcpp",
1212 "begin": "\\(",
1213 "beginCaptures": {
1214 "0": {
1215 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
1216 }
1217 },
1218 "end": "\\)",
1219 "endCaptures": {
1220 "0": {
1221 "name": "punctuation.section.parens.end.bracket.round.objcpp"
1222 }
1223 },
1224 "patterns": [
1225 {
1226 "include": "$base"
1227 }
1228 ]
1229 },
1230 "parens-block": {
1231 "name": "meta.parens.block.objcpp",
1232 "begin": "\\(",
1233 "beginCaptures": {
1234 "0": {
1235 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
1236 }
1237 },
1238 "end": "\\)",
1239 "endCaptures": {
1240 "0": {
1241 "name": "punctuation.section.parens.end.bracket.round.objcpp"
1242 }
1243 },
1244 "patterns": [
1245 {
1246 "include": "#block_innards"
1247 },
1248 {
1249 "match": "(?-mix:(?<!:):(?!:))",
1250 "name": "punctuation.range-based.objcpp"
1251 }
1252 ]
1253 },
1254 "pragma-mark": {
1255 "captures": {
1256 "1": {
1257 "name": "meta.preprocessor.pragma.objcpp"
1258 },
1259 "2": {
1260 "name": "keyword.control.directive.pragma.pragma-mark.objcpp"
1261 },
1262 "3": {
1263 "name": "punctuation.definition.directive.objcpp"
1264 },
1265 "4": {
1266 "name": "entity.name.tag.pragma-mark.objcpp"
1267 }
1268 },
1269 "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",
1270 "name": "meta.section.objcpp"
1271 },
1272 "operators": {
1273 "patterns": [
1274 {
1275 "match": "(?<![\\w$])(sizeof)(?![\\w$])",
1276 "name": "keyword.operator.sizeof.objcpp"
1277 },
1278 {
1279 "match": "--",
1280 "name": "keyword.operator.decrement.objcpp"
1281 },
1282 {
1283 "match": "\\+\\+",
1284 "name": "keyword.operator.increment.objcpp"
1285 },
1286 {
1287 "match": "%=|\\+=|-=|\\*=|(?<!\\()/=",
1288 "name": "keyword.operator.assignment.compound.objcpp"
1289 },
1290 {
1291 "match": "&=|\\^=|<<=|>>=|\\|=",
1292 "name": "keyword.operator.assignment.compound.bitwise.objcpp"
1293 },
1294 {
1295 "match": "<<|>>",
1296 "name": "keyword.operator.bitwise.shift.objcpp"
1297 },
1298 {
1299 "match": "!=|<=|>=|==|<|>",
1300 "name": "keyword.operator.comparison.objcpp"
1301 },
1302 {
1303 "match": "&&|!|\\|\\|",
1304 "name": "keyword.operator.logical.objcpp"
1305 },
1306 {
1307 "match": "&|\\||\\^|~",
1308 "name": "keyword.operator.objcpp"
1309 },
1310 {
1311 "match": "=",
1312 "name": "keyword.operator.assignment.objcpp"
1313 },
1314 {
1315 "match": "%|\\*|/|-|\\+",
1316 "name": "keyword.operator.objcpp"
1317 },
1318 {
1319 "begin": "(\\?)",
1320 "beginCaptures": {
1321 "1": {
1322 "name": "keyword.operator.ternary.objcpp"
1323 }
1324 },
1325 "end": "(:)",
1326 "endCaptures": {
1327 "1": {
1328 "name": "keyword.operator.ternary.objcpp"
1329 }
1330 },
1331 "patterns": [
1332 {
1333 "include": "#function-call-innards"
1334 },
1335 {
1336 "include": "$base"
1337 }
1338 ]
1339 }
1340 ]
1341 },
1342 "strings": {
1343 "patterns": [
1344 {
1345 "begin": "\"",
1346 "beginCaptures": {
1347 "0": {
1348 "name": "punctuation.definition.string.begin.objcpp"
1349 }
1350 },
1351 "end": "\"",
1352 "endCaptures": {
1353 "0": {
1354 "name": "punctuation.definition.string.end.objcpp"
1355 }
1356 },
1357 "name": "string.quoted.double.objcpp",
1358 "patterns": [
1359 {
1360 "include": "#string_escaped_char"
1361 },
1362 {
1363 "include": "#string_placeholder"
1364 },
1365 {
1366 "include": "#line_continuation_character"
1367 }
1368 ]
1369 },
1370 {
1371 "begin": "'",
1372 "beginCaptures": {
1373 "0": {
1374 "name": "punctuation.definition.string.begin.objcpp"
1375 }
1376 },
1377 "end": "'",
1378 "endCaptures": {
1379 "0": {
1380 "name": "punctuation.definition.string.end.objcpp"
1381 }
1382 },
1383 "name": "string.quoted.single.objcpp",
1384 "patterns": [
1385 {
1386 "include": "#string_escaped_char"
1387 },
1388 {
1389 "include": "#line_continuation_character"
1390 }
1391 ]
1392 }
1393 ]
1394 },
1395 "string_escaped_char": {
1396 "patterns": [
1397 {
1398 "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} )",
1399 "name": "constant.character.escape.objcpp"
1400 },
1401 {
1402 "match": "\\\\.",
1403 "name": "invalid.illegal.unknown-escape.objcpp"
1404 }
1405 ]
1406 },
1407 "string_placeholder": {
1408 "patterns": [
1409 {
1410 "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",
1411 "name": "constant.other.placeholder.objcpp"
1412 },
1413 {
1414 "match": "(%)(?!\"\\s*(PRI|SCN))",
1415 "captures": {
1416 "1": {
1417 "name": "invalid.illegal.placeholder.objcpp"
1418 }
1419 }
1420 }
1421 ]
1422 },
1423 "storage_types": {
1424 "patterns": [
1425 {
1426 "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",
1427 "name": "storage.type.built-in.primitive.objcpp"
1428 },
1429 {
1430 "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))",
1431 "name": "storage.type.built-in.objcpp"
1432 },
1433 {
1434 "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",
1435 "name": "storage.type.$1.objcpp"
1436 }
1437 ]
1438 },
1439 "vararg_ellipses": {
1440 "match": "(?<!\\.)\\.\\.\\.(?!\\.)",
1441 "name": "punctuation.vararg-ellipses.objcpp"
1442 },
1443 "preprocessor-rule-conditional": {
1444 "patterns": [
1445 {
1446 "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
1447 "beginCaptures": {
1448 "0": {
1449 "name": "meta.preprocessor.objcpp"
1450 },
1451 "1": {
1452 "name": "keyword.control.directive.conditional.objcpp"
1453 },
1454 "2": {
1455 "name": "punctuation.definition.directive.objcpp"
1456 }
1457 },
1458 "end": "^\\s*((#)\\s*endif\\b)",
1459 "endCaptures": {
1460 "0": {
1461 "name": "meta.preprocessor.objcpp"
1462 },
1463 "1": {
1464 "name": "keyword.control.directive.conditional.objcpp"
1465 },
1466 "2": {
1467 "name": "punctuation.definition.directive.objcpp"
1468 }
1469 },
1470 "patterns": [
1471 {
1472 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1473 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1474 "name": "meta.preprocessor.objcpp",
1475 "patterns": [
1476 {
1477 "include": "#preprocessor-rule-conditional-line"
1478 }
1479 ]
1480 },
1481 {
1482 "include": "#preprocessor-rule-enabled-elif"
1483 },
1484 {
1485 "include": "#preprocessor-rule-enabled-else"
1486 },
1487 {
1488 "include": "#preprocessor-rule-disabled-elif"
1489 },
1490 {
1491 "begin": "^\\s*((#)\\s*elif\\b)",
1492 "beginCaptures": {
1493 "1": {
1494 "name": "keyword.control.directive.conditional.objcpp"
1495 },
1496 "2": {
1497 "name": "punctuation.definition.directive.objcpp"
1498 }
1499 },
1500 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1501 "name": "meta.preprocessor.objcpp",
1502 "patterns": [
1503 {
1504 "include": "#preprocessor-rule-conditional-line"
1505 }
1506 ]
1507 },
1508 {
1509 "include": "$base"
1510 }
1511 ]
1512 },
1513 {
1514 "match": "^\\s*#\\s*(else|elif|endif)\\b",
1515 "captures": {
1516 "0": {
1517 "name": "invalid.illegal.stray-$1.objcpp"
1518 }
1519 }
1520 }
1521 ]
1522 },
1523 "preprocessor-rule-conditional-block": {
1524 "patterns": [
1525 {
1526 "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
1527 "beginCaptures": {
1528 "0": {
1529 "name": "meta.preprocessor.objcpp"
1530 },
1531 "1": {
1532 "name": "keyword.control.directive.conditional.objcpp"
1533 },
1534 "2": {
1535 "name": "punctuation.definition.directive.objcpp"
1536 }
1537 },
1538 "end": "^\\s*((#)\\s*endif\\b)",
1539 "endCaptures": {
1540 "0": {
1541 "name": "meta.preprocessor.objcpp"
1542 },
1543 "1": {
1544 "name": "keyword.control.directive.conditional.objcpp"
1545 },
1546 "2": {
1547 "name": "punctuation.definition.directive.objcpp"
1548 }
1549 },
1550 "patterns": [
1551 {
1552 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1553 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1554 "name": "meta.preprocessor.objcpp",
1555 "patterns": [
1556 {
1557 "include": "#preprocessor-rule-conditional-line"
1558 }
1559 ]
1560 },
1561 {
1562 "include": "#preprocessor-rule-enabled-elif-block"
1563 },
1564 {
1565 "include": "#preprocessor-rule-enabled-else-block"
1566 },
1567 {
1568 "include": "#preprocessor-rule-disabled-elif"
1569 },
1570 {
1571 "begin": "^\\s*((#)\\s*elif\\b)",
1572 "beginCaptures": {
1573 "1": {
1574 "name": "keyword.control.directive.conditional.objcpp"
1575 },
1576 "2": {
1577 "name": "punctuation.definition.directive.objcpp"
1578 }
1579 },
1580 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1581 "name": "meta.preprocessor.objcpp",
1582 "patterns": [
1583 {
1584 "include": "#preprocessor-rule-conditional-line"
1585 }
1586 ]
1587 },
1588 {
1589 "include": "#block_innards"
1590 }
1591 ]
1592 },
1593 {
1594 "match": "^\\s*#\\s*(else|elif|endif)\\b",
1595 "captures": {
1596 "0": {
1597 "name": "invalid.illegal.stray-$1.objcpp"
1598 }
1599 }
1600 }
1601 ]
1602 },
1603 "preprocessor-rule-conditional-line": {
1604 "patterns": [
1605 {
1606 "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",
1607 "name": "keyword.control.directive.conditional.objcpp"
1608 },
1609 {
1610 "match": "\\bdefined\\b",
1611 "name": "invalid.illegal.macro-name.objcpp"
1612 },
1613 {
1614 "include": "#comments"
1615 },
1616 {
1617 "include": "#strings"
1618 },
1619 {
1620 "include": "#numbers"
1621 },
1622 {
1623 "begin": "\\?",
1624 "beginCaptures": {
1625 "0": {
1626 "name": "keyword.operator.ternary.objcpp"
1627 }
1628 },
1629 "end": ":",
1630 "endCaptures": {
1631 "0": {
1632 "name": "keyword.operator.ternary.objcpp"
1633 }
1634 },
1635 "patterns": [
1636 {
1637 "include": "#preprocessor-rule-conditional-line"
1638 }
1639 ]
1640 },
1641 {
1642 "include": "#operators"
1643 },
1644 {
1645 "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
1646 "name": "constant.language.objcpp"
1647 },
1648 {
1649 "match": "[a-zA-Z_$][\\w$]*",
1650 "name": "entity.name.function.preprocessor.objcpp"
1651 },
1652 {
1653 "include": "#line_continuation_character"
1654 },
1655 {
1656 "begin": "\\(",
1657 "beginCaptures": {
1658 "0": {
1659 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
1660 }
1661 },
1662 "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1663 "endCaptures": {
1664 "0": {
1665 "name": "punctuation.section.parens.end.bracket.round.objcpp"
1666 }
1667 },
1668 "patterns": [
1669 {
1670 "include": "#preprocessor-rule-conditional-line"
1671 }
1672 ]
1673 }
1674 ]
1675 },
1676 "preprocessor-rule-disabled": {
1677 "patterns": [
1678 {
1679 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1680 "beginCaptures": {
1681 "0": {
1682 "name": "meta.preprocessor.objcpp"
1683 },
1684 "1": {
1685 "name": "keyword.control.directive.conditional.objcpp"
1686 },
1687 "2": {
1688 "name": "punctuation.definition.directive.objcpp"
1689 }
1690 },
1691 "end": "^\\s*((#)\\s*endif\\b)",
1692 "endCaptures": {
1693 "0": {
1694 "name": "meta.preprocessor.objcpp"
1695 },
1696 "1": {
1697 "name": "keyword.control.directive.conditional.objcpp"
1698 },
1699 "2": {
1700 "name": "punctuation.definition.directive.objcpp"
1701 }
1702 },
1703 "patterns": [
1704 {
1705 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1706 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1707 "name": "meta.preprocessor.objcpp",
1708 "patterns": [
1709 {
1710 "include": "#preprocessor-rule-conditional-line"
1711 }
1712 ]
1713 },
1714 {
1715 "include": "#comments"
1716 },
1717 {
1718 "include": "#preprocessor-rule-enabled-elif"
1719 },
1720 {
1721 "include": "#preprocessor-rule-enabled-else"
1722 },
1723 {
1724 "include": "#preprocessor-rule-disabled-elif"
1725 },
1726 {
1727 "begin": "^\\s*((#)\\s*elif\\b)",
1728 "beginCaptures": {
1729 "0": {
1730 "name": "meta.preprocessor.objcpp"
1731 },
1732 "1": {
1733 "name": "keyword.control.directive.conditional.objcpp"
1734 },
1735 "2": {
1736 "name": "punctuation.definition.directive.objcpp"
1737 }
1738 },
1739 "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1740 "patterns": [
1741 {
1742 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1743 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1744 "name": "meta.preprocessor.objcpp",
1745 "patterns": [
1746 {
1747 "include": "#preprocessor-rule-conditional-line"
1748 }
1749 ]
1750 },
1751 {
1752 "include": "$base"
1753 }
1754 ]
1755 },
1756 {
1757 "contentName": "comment.block.preprocessor.if-branch.objcpp",
1758 "begin": "\\n",
1759 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1760 "patterns": [
1761 {
1762 "include": "#disabled"
1763 },
1764 {
1765 "include": "#pragma-mark"
1766 }
1767 ]
1768 }
1769 ]
1770 }
1771 ]
1772 },
1773 "preprocessor-rule-disabled-block": {
1774 "patterns": [
1775 {
1776 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1777 "beginCaptures": {
1778 "0": {
1779 "name": "meta.preprocessor.objcpp"
1780 },
1781 "1": {
1782 "name": "keyword.control.directive.conditional.objcpp"
1783 },
1784 "2": {
1785 "name": "punctuation.definition.directive.objcpp"
1786 }
1787 },
1788 "end": "^\\s*((#)\\s*endif\\b)",
1789 "endCaptures": {
1790 "0": {
1791 "name": "meta.preprocessor.objcpp"
1792 },
1793 "1": {
1794 "name": "keyword.control.directive.conditional.objcpp"
1795 },
1796 "2": {
1797 "name": "punctuation.definition.directive.objcpp"
1798 }
1799 },
1800 "patterns": [
1801 {
1802 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1803 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1804 "name": "meta.preprocessor.objcpp",
1805 "patterns": [
1806 {
1807 "include": "#preprocessor-rule-conditional-line"
1808 }
1809 ]
1810 },
1811 {
1812 "include": "#comments"
1813 },
1814 {
1815 "include": "#preprocessor-rule-enabled-elif-block"
1816 },
1817 {
1818 "include": "#preprocessor-rule-enabled-else-block"
1819 },
1820 {
1821 "include": "#preprocessor-rule-disabled-elif"
1822 },
1823 {
1824 "begin": "^\\s*((#)\\s*elif\\b)",
1825 "beginCaptures": {
1826 "0": {
1827 "name": "meta.preprocessor.objcpp"
1828 },
1829 "1": {
1830 "name": "keyword.control.directive.conditional.objcpp"
1831 },
1832 "2": {
1833 "name": "punctuation.definition.directive.objcpp"
1834 }
1835 },
1836 "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1837 "patterns": [
1838 {
1839 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1840 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1841 "name": "meta.preprocessor.objcpp",
1842 "patterns": [
1843 {
1844 "include": "#preprocessor-rule-conditional-line"
1845 }
1846 ]
1847 },
1848 {
1849 "include": "#block_innards"
1850 }
1851 ]
1852 },
1853 {
1854 "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp",
1855 "begin": "\\n",
1856 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1857 "patterns": [
1858 {
1859 "include": "#disabled"
1860 },
1861 {
1862 "include": "#pragma-mark"
1863 }
1864 ]
1865 }
1866 ]
1867 }
1868 ]
1869 },
1870 "preprocessor-rule-disabled-elif": {
1871 "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
1872 "beginCaptures": {
1873 "0": {
1874 "name": "meta.preprocessor.objcpp"
1875 },
1876 "1": {
1877 "name": "keyword.control.directive.conditional.objcpp"
1878 },
1879 "2": {
1880 "name": "punctuation.definition.directive.objcpp"
1881 }
1882 },
1883 "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
1884 "patterns": [
1885 {
1886 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1887 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
1888 "name": "meta.preprocessor.objcpp",
1889 "patterns": [
1890 {
1891 "include": "#preprocessor-rule-conditional-line"
1892 }
1893 ]
1894 },
1895 {
1896 "include": "#comments"
1897 },
1898 {
1899 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
1900 "begin": "\\n",
1901 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1902 "patterns": [
1903 {
1904 "include": "#disabled"
1905 },
1906 {
1907 "include": "#pragma-mark"
1908 }
1909 ]
1910 }
1911 ]
1912 },
1913 "preprocessor-rule-enabled": {
1914 "patterns": [
1915 {
1916 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
1917 "beginCaptures": {
1918 "0": {
1919 "name": "meta.preprocessor.objcpp"
1920 },
1921 "1": {
1922 "name": "keyword.control.directive.conditional.objcpp"
1923 },
1924 "2": {
1925 "name": "punctuation.definition.directive.objcpp"
1926 },
1927 "3": {
1928 "name": "constant.numeric.preprocessor.objcpp"
1929 }
1930 },
1931 "end": "^\\s*((#)\\s*endif\\b)",
1932 "endCaptures": {
1933 "0": {
1934 "name": "meta.preprocessor.objcpp"
1935 },
1936 "1": {
1937 "name": "keyword.control.directive.conditional.objcpp"
1938 },
1939 "2": {
1940 "name": "punctuation.definition.directive.objcpp"
1941 }
1942 },
1943 "patterns": [
1944 {
1945 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
1946 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
1947 "name": "meta.preprocessor.objcpp",
1948 "patterns": [
1949 {
1950 "include": "#preprocessor-rule-conditional-line"
1951 }
1952 ]
1953 },
1954 {
1955 "include": "#comments"
1956 },
1957 {
1958 "contentName": "comment.block.preprocessor.else-branch.objcpp",
1959 "begin": "^\\s*((#)\\s*else\\b)",
1960 "beginCaptures": {
1961 "0": {
1962 "name": "meta.preprocessor.objcpp"
1963 },
1964 "1": {
1965 "name": "keyword.control.directive.conditional.objcpp"
1966 },
1967 "2": {
1968 "name": "punctuation.definition.directive.objcpp"
1969 }
1970 },
1971 "end": "(?=^\\s*((#)\\s*endif\\b))",
1972 "patterns": [
1973 {
1974 "include": "#disabled"
1975 },
1976 {
1977 "include": "#pragma-mark"
1978 }
1979 ]
1980 },
1981 {
1982 "contentName": "comment.block.preprocessor.if-branch.objcpp",
1983 "begin": "^\\s*((#)\\s*elif\\b)",
1984 "beginCaptures": {
1985 "0": {
1986 "name": "meta.preprocessor.objcpp"
1987 },
1988 "1": {
1989 "name": "keyword.control.directive.conditional.objcpp"
1990 },
1991 "2": {
1992 "name": "punctuation.definition.directive.objcpp"
1993 }
1994 },
1995 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
1996 "patterns": [
1997 {
1998 "include": "#disabled"
1999 },
2000 {
2001 "include": "#pragma-mark"
2002 }
2003 ]
2004 },
2005 {
2006 "begin": "\\n",
2007 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2008 "patterns": [
2009 {
2010 "include": "$base"
2011 }
2012 ]
2013 }
2014 ]
2015 }
2016 ]
2017 },
2018 "preprocessor-rule-enabled-block": {
2019 "patterns": [
2020 {
2021 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2022 "beginCaptures": {
2023 "0": {
2024 "name": "meta.preprocessor.objcpp"
2025 },
2026 "1": {
2027 "name": "keyword.control.directive.conditional.objcpp"
2028 },
2029 "2": {
2030 "name": "punctuation.definition.directive.objcpp"
2031 }
2032 },
2033 "end": "^\\s*((#)\\s*endif\\b)",
2034 "endCaptures": {
2035 "0": {
2036 "name": "meta.preprocessor.objcpp"
2037 },
2038 "1": {
2039 "name": "keyword.control.directive.conditional.objcpp"
2040 },
2041 "2": {
2042 "name": "punctuation.definition.directive.objcpp"
2043 }
2044 },
2045 "patterns": [
2046 {
2047 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2048 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
2049 "name": "meta.preprocessor.objcpp",
2050 "patterns": [
2051 {
2052 "include": "#preprocessor-rule-conditional-line"
2053 }
2054 ]
2055 },
2056 {
2057 "include": "#comments"
2058 },
2059 {
2060 "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp",
2061 "begin": "^\\s*((#)\\s*else\\b)",
2062 "beginCaptures": {
2063 "0": {
2064 "name": "meta.preprocessor.objcpp"
2065 },
2066 "1": {
2067 "name": "keyword.control.directive.conditional.objcpp"
2068 },
2069 "2": {
2070 "name": "punctuation.definition.directive.objcpp"
2071 }
2072 },
2073 "end": "(?=^\\s*((#)\\s*endif\\b))",
2074 "patterns": [
2075 {
2076 "include": "#disabled"
2077 },
2078 {
2079 "include": "#pragma-mark"
2080 }
2081 ]
2082 },
2083 {
2084 "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp",
2085 "begin": "^\\s*((#)\\s*elif\\b)",
2086 "beginCaptures": {
2087 "0": {
2088 "name": "meta.preprocessor.objcpp"
2089 },
2090 "1": {
2091 "name": "keyword.control.directive.conditional.objcpp"
2092 },
2093 "2": {
2094 "name": "punctuation.definition.directive.objcpp"
2095 }
2096 },
2097 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2098 "patterns": [
2099 {
2100 "include": "#disabled"
2101 },
2102 {
2103 "include": "#pragma-mark"
2104 }
2105 ]
2106 },
2107 {
2108 "begin": "\\n",
2109 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2110 "patterns": [
2111 {
2112 "include": "#block_innards"
2113 }
2114 ]
2115 }
2116 ]
2117 }
2118 ]
2119 },
2120 "preprocessor-rule-enabled-elif": {
2121 "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2122 "beginCaptures": {
2123 "0": {
2124 "name": "meta.preprocessor.objcpp"
2125 },
2126 "1": {
2127 "name": "keyword.control.directive.conditional.objcpp"
2128 },
2129 "2": {
2130 "name": "punctuation.definition.directive.objcpp"
2131 }
2132 },
2133 "end": "(?=^\\s*((#)\\s*endif\\b))",
2134 "patterns": [
2135 {
2136 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2137 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2138 "name": "meta.preprocessor.objcpp",
2139 "patterns": [
2140 {
2141 "include": "#preprocessor-rule-conditional-line"
2142 }
2143 ]
2144 },
2145 {
2146 "include": "#comments"
2147 },
2148 {
2149 "begin": "\\n",
2150 "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
2151 "patterns": [
2152 {
2153 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
2154 "begin": "^\\s*((#)\\s*(else)\\b)",
2155 "beginCaptures": {
2156 "0": {
2157 "name": "meta.preprocessor.objcpp"
2158 },
2159 "1": {
2160 "name": "keyword.control.directive.conditional.objcpp"
2161 },
2162 "2": {
2163 "name": "punctuation.definition.directive.objcpp"
2164 }
2165 },
2166 "end": "(?=^\\s*((#)\\s*endif\\b))",
2167 "patterns": [
2168 {
2169 "include": "#disabled"
2170 },
2171 {
2172 "include": "#pragma-mark"
2173 }
2174 ]
2175 },
2176 {
2177 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
2178 "begin": "^\\s*((#)\\s*(elif)\\b)",
2179 "beginCaptures": {
2180 "0": {
2181 "name": "meta.preprocessor.objcpp"
2182 },
2183 "1": {
2184 "name": "keyword.control.directive.conditional.objcpp"
2185 },
2186 "2": {
2187 "name": "punctuation.definition.directive.objcpp"
2188 }
2189 },
2190 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2191 "patterns": [
2192 {
2193 "include": "#disabled"
2194 },
2195 {
2196 "include": "#pragma-mark"
2197 }
2198 ]
2199 },
2200 {
2201 "include": "$base"
2202 }
2203 ]
2204 }
2205 ]
2206 },
2207 "preprocessor-rule-enabled-elif-block": {
2208 "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
2209 "beginCaptures": {
2210 "0": {
2211 "name": "meta.preprocessor.objcpp"
2212 },
2213 "1": {
2214 "name": "keyword.control.directive.conditional.objcpp"
2215 },
2216 "2": {
2217 "name": "punctuation.definition.directive.objcpp"
2218 }
2219 },
2220 "end": "(?=^\\s*((#)\\s*endif\\b))",
2221 "patterns": [
2222 {
2223 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
2224 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
2225 "name": "meta.preprocessor.objcpp",
2226 "patterns": [
2227 {
2228 "include": "#preprocessor-rule-conditional-line"
2229 }
2230 ]
2231 },
2232 {
2233 "include": "#comments"
2234 },
2235 {
2236 "begin": "\\n",
2237 "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
2238 "patterns": [
2239 {
2240 "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp",
2241 "begin": "^\\s*((#)\\s*(else)\\b)",
2242 "beginCaptures": {
2243 "0": {
2244 "name": "meta.preprocessor.objcpp"
2245 },
2246 "1": {
2247 "name": "keyword.control.directive.conditional.objcpp"
2248 },
2249 "2": {
2250 "name": "punctuation.definition.directive.objcpp"
2251 }
2252 },
2253 "end": "(?=^\\s*((#)\\s*endif\\b))",
2254 "patterns": [
2255 {
2256 "include": "#disabled"
2257 },
2258 {
2259 "include": "#pragma-mark"
2260 }
2261 ]
2262 },
2263 {
2264 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
2265 "begin": "^\\s*((#)\\s*(elif)\\b)",
2266 "beginCaptures": {
2267 "0": {
2268 "name": "meta.preprocessor.objcpp"
2269 },
2270 "1": {
2271 "name": "keyword.control.directive.conditional.objcpp"
2272 },
2273 "2": {
2274 "name": "punctuation.definition.directive.objcpp"
2275 }
2276 },
2277 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
2278 "patterns": [
2279 {
2280 "include": "#disabled"
2281 },
2282 {
2283 "include": "#pragma-mark"
2284 }
2285 ]
2286 },
2287 {
2288 "include": "#block_innards"
2289 }
2290 ]
2291 }
2292 ]
2293 },
2294 "preprocessor-rule-enabled-else": {
2295 "begin": "^\\s*((#)\\s*else\\b)",
2296 "beginCaptures": {
2297 "0": {
2298 "name": "meta.preprocessor.objcpp"
2299 },
2300 "1": {
2301 "name": "keyword.control.directive.conditional.objcpp"
2302 },
2303 "2": {
2304 "name": "punctuation.definition.directive.objcpp"
2305 }
2306 },
2307 "end": "(?=^\\s*((#)\\s*endif\\b))",
2308 "patterns": [
2309 {
2310 "include": "$base"
2311 }
2312 ]
2313 },
2314 "preprocessor-rule-enabled-else-block": {
2315 "begin": "^\\s*((#)\\s*else\\b)",
2316 "beginCaptures": {
2317 "0": {
2318 "name": "meta.preprocessor.objcpp"
2319 },
2320 "1": {
2321 "name": "keyword.control.directive.conditional.objcpp"
2322 },
2323 "2": {
2324 "name": "punctuation.definition.directive.objcpp"
2325 }
2326 },
2327 "end": "(?=^\\s*((#)\\s*endif\\b))",
2328 "patterns": [
2329 {
2330 "include": "#block_innards"
2331 }
2332 ]
2333 },
2334 "preprocessor-rule-define-line-contents": {
2335 "patterns": [
2336 {
2337 "include": "#vararg_ellipses"
2338 },
2339 {
2340 "begin": "{",
2341 "beginCaptures": {
2342 "0": {
2343 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
2344 }
2345 },
2346 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2347 "endCaptures": {
2348 "0": {
2349 "name": "punctuation.section.block.end.bracket.curly.objcpp"
2350 }
2351 },
2352 "name": "meta.block.objcpp",
2353 "patterns": [
2354 {
2355 "include": "#preprocessor-rule-define-line-blocks"
2356 }
2357 ]
2358 },
2359 {
2360 "match": "\\(",
2361 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
2362 },
2363 {
2364 "match": "\\)",
2365 "name": "punctuation.section.parens.end.bracket.round.objcpp"
2366 },
2367 {
2368 "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)",
2369 "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",
2370 "name": "meta.function.objcpp",
2371 "patterns": [
2372 {
2373 "include": "#preprocessor-rule-define-line-functions"
2374 }
2375 ]
2376 },
2377 {
2378 "begin": "\"",
2379 "beginCaptures": {
2380 "0": {
2381 "name": "punctuation.definition.string.begin.objcpp"
2382 }
2383 },
2384 "end": "\"|(?<!\\\\)(?=\\s*\\n)",
2385 "endCaptures": {
2386 "0": {
2387 "name": "punctuation.definition.string.end.objcpp"
2388 }
2389 },
2390 "name": "string.quoted.double.objcpp",
2391 "patterns": [
2392 {
2393 "include": "#string_escaped_char"
2394 },
2395 {
2396 "include": "#string_placeholder"
2397 },
2398 {
2399 "include": "#line_continuation_character"
2400 }
2401 ]
2402 },
2403 {
2404 "begin": "'",
2405 "beginCaptures": {
2406 "0": {
2407 "name": "punctuation.definition.string.begin.objcpp"
2408 }
2409 },
2410 "end": "'|(?<!\\\\)(?=\\s*\\n)",
2411 "endCaptures": {
2412 "0": {
2413 "name": "punctuation.definition.string.end.objcpp"
2414 }
2415 },
2416 "name": "string.quoted.single.objcpp",
2417 "patterns": [
2418 {
2419 "include": "#string_escaped_char"
2420 },
2421 {
2422 "include": "#line_continuation_character"
2423 }
2424 ]
2425 },
2426 {
2427 "include": "#method_access"
2428 },
2429 {
2430 "include": "#member_access"
2431 },
2432 {
2433 "include": "$base"
2434 }
2435 ]
2436 },
2437 "preprocessor-rule-define-line-blocks": {
2438 "patterns": [
2439 {
2440 "begin": "{",
2441 "beginCaptures": {
2442 "0": {
2443 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
2444 }
2445 },
2446 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
2447 "endCaptures": {
2448 "0": {
2449 "name": "punctuation.section.block.end.bracket.curly.objcpp"
2450 }
2451 },
2452 "patterns": [
2453 {
2454 "include": "#preprocessor-rule-define-line-blocks"
2455 },
2456 {
2457 "include": "#preprocessor-rule-define-line-contents"
2458 }
2459 ]
2460 },
2461 {
2462 "include": "#preprocessor-rule-define-line-contents"
2463 }
2464 ]
2465 },
2466 "preprocessor-rule-define-line-functions": {
2467 "patterns": [
2468 {
2469 "include": "#comments"
2470 },
2471 {
2472 "include": "#storage_types"
2473 },
2474 {
2475 "include": "#vararg_ellipses"
2476 },
2477 {
2478 "include": "#method_access"
2479 },
2480 {
2481 "include": "#member_access"
2482 },
2483 {
2484 "include": "#operators"
2485 },
2486 {
2487 "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*(\\()",
2488 "beginCaptures": {
2489 "1": {
2490 "name": "entity.name.function.objcpp"
2491 },
2492 "2": {
2493 "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
2494 }
2495 },
2496 "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
2497 "endCaptures": {
2498 "1": {
2499 "name": "punctuation.section.arguments.end.bracket.round.objcpp"
2500 }
2501 },
2502 "patterns": [
2503 {
2504 "include": "#preprocessor-rule-define-line-functions"
2505 }
2506 ]
2507 },
2508 {
2509 "begin": "\\(",
2510 "beginCaptures": {
2511 "0": {
2512 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
2513 }
2514 },
2515 "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
2516 "endCaptures": {
2517 "1": {
2518 "name": "punctuation.section.parens.end.bracket.round.objcpp"
2519 }
2520 },
2521 "patterns": [
2522 {
2523 "include": "#preprocessor-rule-define-line-functions"
2524 }
2525 ]
2526 },
2527 {
2528 "include": "#preprocessor-rule-define-line-contents"
2529 }
2530 ]
2531 },
2532 "function-innards": {
2533 "patterns": [
2534 {
2535 "include": "#comments"
2536 },
2537 {
2538 "include": "#storage_types"
2539 },
2540 {
2541 "include": "#operators"
2542 },
2543 {
2544 "include": "#vararg_ellipses"
2545 },
2546 {
2547 "name": "meta.function.definition.parameters.objcpp",
2548 "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*(\\()",
2549 "beginCaptures": {
2550 "1": {
2551 "name": "entity.name.function.objcpp"
2552 },
2553 "2": {
2554 "name": "punctuation.section.parameters.begin.bracket.round.objcpp"
2555 }
2556 },
2557 "end": "\\)",
2558 "endCaptures": {
2559 "0": {
2560 "name": "punctuation.section.parameters.end.bracket.round.objcpp"
2561 }
2562 },
2563 "patterns": [
2564 {
2565 "include": "#probably_a_parameter"
2566 },
2567 {
2568 "include": "#function-innards"
2569 }
2570 ]
2571 },
2572 {
2573 "begin": "\\(",
2574 "beginCaptures": {
2575 "0": {
2576 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
2577 }
2578 },
2579 "end": "\\)",
2580 "endCaptures": {
2581 "0": {
2582 "name": "punctuation.section.parens.end.bracket.round.objcpp"
2583 }
2584 },
2585 "patterns": [
2586 {
2587 "include": "#function-innards"
2588 }
2589 ]
2590 },
2591 {
2592 "include": "$base"
2593 }
2594 ]
2595 },
2596 "function-call-innards": {
2597 "patterns": [
2598 {
2599 "include": "#comments"
2600 },
2601 {
2602 "include": "#storage_types"
2603 },
2604 {
2605 "include": "#method_access"
2606 },
2607 {
2608 "include": "#member_access"
2609 },
2610 {
2611 "include": "#operators"
2612 },
2613 {
2614 "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*(\\()",
2615 "beginCaptures": {
2616 "1": {
2617 "name": "entity.name.function.objcpp"
2618 },
2619 "2": {
2620 "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
2621 }
2622 },
2623 "end": "\\)",
2624 "endCaptures": {
2625 "0": {
2626 "name": "punctuation.section.arguments.end.bracket.round.objcpp"
2627 }
2628 },
2629 "patterns": [
2630 {
2631 "include": "#function-call-innards"
2632 }
2633 ]
2634 },
2635 {
2636 "begin": "\\(",
2637 "beginCaptures": {
2638 "0": {
2639 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
2640 }
2641 },
2642 "end": "\\)",
2643 "endCaptures": {
2644 "0": {
2645 "name": "punctuation.section.parens.end.bracket.round.objcpp"
2646 }
2647 },
2648 "patterns": [
2649 {
2650 "include": "#function-call-innards"
2651 }
2652 ]
2653 },
2654 {
2655 "include": "#block_innards"
2656 }
2657 ]
2658 },
2659 "default_statement": {
2660 "name": "meta.conditional.case.objcpp",
2661 "begin": "((?<!\\w)default(?!\\w))",
2662 "beginCaptures": {
2663 "1": {
2664 "name": "keyword.control.default.objcpp"
2665 }
2666 },
2667 "end": "(:)",
2668 "endCaptures": {
2669 "1": {
2670 "name": "punctuation.separator.case.default.objcpp"
2671 }
2672 },
2673 "patterns": [
2674 {
2675 "include": "#conditional_context"
2676 }
2677 ]
2678 },
2679 "case_statement": {
2680 "name": "meta.conditional.case.objcpp",
2681 "begin": "((?<!\\w)case(?!\\w))",
2682 "beginCaptures": {
2683 "1": {
2684 "name": "keyword.control.case.objcpp"
2685 }
2686 },
2687 "end": "(:)",
2688 "endCaptures": {
2689 "1": {
2690 "name": "punctuation.separator.case.objcpp"
2691 }
2692 },
2693 "patterns": [
2694 {
2695 "include": "#conditional_context"
2696 }
2697 ]
2698 },
2699 "switch_statement": {
2700 "name": "meta.block.switch.objcpp",
2701 "begin": "(((?<!\\w)switch(?!\\w)))",
2702 "beginCaptures": {
2703 "1": {
2704 "name": "meta.head.switch.objcpp"
2705 },
2706 "2": {
2707 "name": "keyword.control.switch.objcpp"
2708 }
2709 },
2710 "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))",
2711 "patterns": [
2712 {
2713 "name": "meta.head.switch.objcpp",
2714 "begin": "\\G ?",
2715 "end": "((?:\\{|(?=;)))",
2716 "endCaptures": {
2717 "1": {
2718 "name": "punctuation.section.block.begin.bracket.curly.switch.objcpp"
2719 }
2720 },
2721 "patterns": [
2722 {
2723 "include": "#switch_conditional_parentheses"
2724 },
2725 {
2726 "include": "$base"
2727 }
2728 ]
2729 },
2730 {
2731 "name": "meta.body.switch.objcpp",
2732 "begin": "(?<=\\{)",
2733 "end": "(\\})",
2734 "endCaptures": {
2735 "1": {
2736 "name": "punctuation.section.block.end.bracket.curly.switch.objcpp"
2737 }
2738 },
2739 "patterns": [
2740 {
2741 "include": "#default_statement"
2742 },
2743 {
2744 "include": "#case_statement"
2745 },
2746 {
2747 "include": "$base"
2748 },
2749 {
2750 "include": "#block_innards"
2751 }
2752 ]
2753 },
2754 {
2755 "name": "meta.tail.switch.objcpp",
2756 "begin": "(?<=})[\\s\\n]*",
2757 "end": "[\\s\\n]*(?=;)",
2758 "patterns": [
2759 {
2760 "include": "$base"
2761 }
2762 ]
2763 }
2764 ]
2765 },
2766 "switch_conditional_parentheses": {
2767 "name": "meta.conditional.switch.objcpp",
2768 "begin": "(\\()",
2769 "beginCaptures": {
2770 "1": {
2771 "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp"
2772 }
2773 },
2774 "end": "(\\))",
2775 "endCaptures": {
2776 "1": {
2777 "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objcpp"
2778 }
2779 },
2780 "patterns": [
2781 {
2782 "include": "#conditional_context"
2783 }
2784 ]
2785 },
2786 "static_assert": {
2787 "begin": "(static_assert|_Static_assert)\\s*(\\()",
2788 "beginCaptures": {
2789 "1": {
2790 "name": "keyword.other.static_assert.objcpp"
2791 },
2792 "2": {
2793 "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
2794 }
2795 },
2796 "end": "(\\))",
2797 "endCaptures": {
2798 "1": {
2799 "name": "punctuation.section.arguments.end.bracket.round.objcpp"
2800 }
2801 },
2802 "patterns": [
2803 {
2804 "name": "meta.static_assert.message.objcpp",
2805 "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
2806 "beginCaptures": {
2807 "1": {
2808 "name": "punctuation.separator.delimiter.objcpp"
2809 }
2810 },
2811 "end": "(?=\\))",
2812 "patterns": [
2813 {
2814 "include": "#string_context"
2815 },
2816 {
2817 "include": "#string_context_c"
2818 }
2819 ]
2820 },
2821 {
2822 "include": "#function_call_context"
2823 }
2824 ]
2825 },
2826 "conditional_context": {
2827 "patterns": [
2828 {
2829 "include": "$base"
2830 },
2831 {
2832 "include": "#block_innards"
2833 }
2834 ]
2835 },
2836 "member_access": {
2837 "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(?!\\())",
2838 "captures": {
2839 "1": {
2840 "patterns": [
2841 {
2842 "include": "#special_variables"
2843 },
2844 {
2845 "name": "variable.other.object.access.objcpp",
2846 "match": "(.+)"
2847 }
2848 ]
2849 },
2850 "2": {
2851 "name": "punctuation.separator.dot-access.objcpp"
2852 },
2853 "3": {
2854 "name": "punctuation.separator.pointer-access.objcpp"
2855 },
2856 "4": {
2857 "patterns": [
2858 {
2859 "include": "#member_access"
2860 },
2861 {
2862 "include": "#method_access"
2863 },
2864 {
2865 "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
2866 "captures": {
2867 "1": {
2868 "patterns": [
2869 {
2870 "include": "#special_variables"
2871 },
2872 {
2873 "name": "variable.other.object.access.objcpp",
2874 "match": "(.+)"
2875 }
2876 ]
2877 },
2878 "2": {
2879 "name": "punctuation.separator.dot-access.objcpp"
2880 },
2881 "3": {
2882 "name": "punctuation.separator.pointer-access.objcpp"
2883 }
2884 }
2885 }
2886 ]
2887 },
2888 "5": {
2889 "name": "variable.other.member.objcpp"
2890 }
2891 }
2892 },
2893 "method_access": {
2894 "contentName": "meta.function-call.member.objcpp",
2895 "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
2896 "beginCaptures": {
2897 "1": {
2898 "patterns": [
2899 {
2900 "include": "#special_variables"
2901 },
2902 {
2903 "name": "variable.other.object.access.objcpp",
2904 "match": "(.+)"
2905 }
2906 ]
2907 },
2908 "2": {
2909 "name": "punctuation.separator.dot-access.objcpp"
2910 },
2911 "3": {
2912 "name": "punctuation.separator.pointer-access.objcpp"
2913 },
2914 "4": {
2915 "patterns": [
2916 {
2917 "include": "#member_access"
2918 },
2919 {
2920 "include": "#method_access"
2921 },
2922 {
2923 "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
2924 "captures": {
2925 "1": {
2926 "patterns": [
2927 {
2928 "include": "#special_variables"
2929 },
2930 {
2931 "name": "variable.other.object.access.objcpp",
2932 "match": "(.+)"
2933 }
2934 ]
2935 },
2936 "2": {
2937 "name": "punctuation.separator.dot-access.objcpp"
2938 },
2939 "3": {
2940 "name": "punctuation.separator.pointer-access.objcpp"
2941 }
2942 }
2943 }
2944 ]
2945 },
2946 "5": {
2947 "name": "entity.name.function.member.objcpp"
2948 },
2949 "6": {
2950 "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp"
2951 }
2952 },
2953 "end": "(\\))",
2954 "endCaptures": {
2955 "1": {
2956 "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp"
2957 }
2958 },
2959 "patterns": [
2960 {
2961 "include": "#function-call-innards"
2962 }
2963 ]
2964 },
2965 "numbers": {
2966 "begin": "(?<!\\w)(?=\\d|\\.\\d)",
2967 "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",
2968 "patterns": [
2969 {
2970 "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])[+-]))",
2971 "captures": {
2972 "1": {
2973 "name": "keyword.other.unit.hexadecimal.objcpp"
2974 },
2975 "2": {
2976 "name": "constant.numeric.hexadecimal.objcpp",
2977 "patterns": [
2978 {
2979 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
2980 "name": "punctuation.separator.constant.numeric.objcpp"
2981 }
2982 ]
2983 },
2984 "3": {
2985 "name": "punctuation.separator.constant.numeric.objcpp"
2986 },
2987 "4": {
2988 "name": "constant.numeric.hexadecimal.objcpp"
2989 },
2990 "5": {
2991 "name": "constant.numeric.hexadecimal.objcpp",
2992 "patterns": [
2993 {
2994 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
2995 "name": "punctuation.separator.constant.numeric.objcpp"
2996 }
2997 ]
2998 },
2999 "6": {
3000 "name": "punctuation.separator.constant.numeric.objcpp"
3001 },
3002 "8": {
3003 "name": "keyword.other.unit.exponent.hexadecimal.objcpp"
3004 },
3005 "9": {
3006 "name": "keyword.operator.plus.exponent.hexadecimal.objcpp"
3007 },
3008 "10": {
3009 "name": "keyword.operator.minus.exponent.hexadecimal.objcpp"
3010 },
3011 "11": {
3012 "name": "constant.numeric.exponent.hexadecimal.objcpp",
3013 "patterns": [
3014 {
3015 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3016 "name": "punctuation.separator.constant.numeric.objcpp"
3017 }
3018 ]
3019 },
3020 "12": {
3021 "name": "keyword.other.unit.suffix.floating-point.objcpp"
3022 }
3023 }
3024 },
3025 {
3026 "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])[+-]))",
3027 "captures": {
3028 "2": {
3029 "name": "constant.numeric.decimal.objcpp",
3030 "patterns": [
3031 {
3032 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3033 "name": "punctuation.separator.constant.numeric.objcpp"
3034 }
3035 ]
3036 },
3037 "3": {
3038 "name": "punctuation.separator.constant.numeric.objcpp"
3039 },
3040 "4": {
3041 "name": "constant.numeric.decimal.point.objcpp"
3042 },
3043 "5": {
3044 "name": "constant.numeric.decimal.objcpp",
3045 "patterns": [
3046 {
3047 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3048 "name": "punctuation.separator.constant.numeric.objcpp"
3049 }
3050 ]
3051 },
3052 "6": {
3053 "name": "punctuation.separator.constant.numeric.objcpp"
3054 },
3055 "8": {
3056 "name": "keyword.other.unit.exponent.decimal.objcpp"
3057 },
3058 "9": {
3059 "name": "keyword.operator.plus.exponent.decimal.objcpp"
3060 },
3061 "10": {
3062 "name": "keyword.operator.minus.exponent.decimal.objcpp"
3063 },
3064 "11": {
3065 "name": "constant.numeric.exponent.decimal.objcpp",
3066 "patterns": [
3067 {
3068 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3069 "name": "punctuation.separator.constant.numeric.objcpp"
3070 }
3071 ]
3072 },
3073 "12": {
3074 "name": "keyword.other.unit.suffix.floating-point.objcpp"
3075 }
3076 }
3077 },
3078 {
3079 "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])[+-]))",
3080 "captures": {
3081 "1": {
3082 "name": "keyword.other.unit.binary.objcpp"
3083 },
3084 "2": {
3085 "name": "constant.numeric.binary.objcpp",
3086 "patterns": [
3087 {
3088 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3089 "name": "punctuation.separator.constant.numeric.objcpp"
3090 }
3091 ]
3092 },
3093 "3": {
3094 "name": "punctuation.separator.constant.numeric.objcpp"
3095 },
3096 "4": {
3097 "name": "keyword.other.unit.suffix.integer.objcpp"
3098 }
3099 }
3100 },
3101 {
3102 "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])[+-]))",
3103 "captures": {
3104 "1": {
3105 "name": "keyword.other.unit.octal.objcpp"
3106 },
3107 "2": {
3108 "name": "constant.numeric.octal.objcpp",
3109 "patterns": [
3110 {
3111 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3112 "name": "punctuation.separator.constant.numeric.objcpp"
3113 }
3114 ]
3115 },
3116 "3": {
3117 "name": "punctuation.separator.constant.numeric.objcpp"
3118 },
3119 "4": {
3120 "name": "keyword.other.unit.suffix.integer.objcpp"
3121 }
3122 }
3123 },
3124 {
3125 "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])[+-]))",
3126 "captures": {
3127 "1": {
3128 "name": "keyword.other.unit.hexadecimal.objcpp"
3129 },
3130 "2": {
3131 "name": "constant.numeric.hexadecimal.objcpp",
3132 "patterns": [
3133 {
3134 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3135 "name": "punctuation.separator.constant.numeric.objcpp"
3136 }
3137 ]
3138 },
3139 "3": {
3140 "name": "punctuation.separator.constant.numeric.objcpp"
3141 },
3142 "5": {
3143 "name": "keyword.other.unit.exponent.hexadecimal.objcpp"
3144 },
3145 "6": {
3146 "name": "keyword.operator.plus.exponent.hexadecimal.objcpp"
3147 },
3148 "7": {
3149 "name": "keyword.operator.minus.exponent.hexadecimal.objcpp"
3150 },
3151 "8": {
3152 "name": "constant.numeric.exponent.hexadecimal.objcpp",
3153 "patterns": [
3154 {
3155 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3156 "name": "punctuation.separator.constant.numeric.objcpp"
3157 }
3158 ]
3159 },
3160 "9": {
3161 "name": "keyword.other.unit.suffix.integer.objcpp"
3162 }
3163 }
3164 },
3165 {
3166 "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])[+-]))",
3167 "captures": {
3168 "2": {
3169 "name": "constant.numeric.decimal.objcpp",
3170 "patterns": [
3171 {
3172 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3173 "name": "punctuation.separator.constant.numeric.objcpp"
3174 }
3175 ]
3176 },
3177 "3": {
3178 "name": "punctuation.separator.constant.numeric.objcpp"
3179 },
3180 "5": {
3181 "name": "keyword.other.unit.exponent.decimal.objcpp"
3182 },
3183 "6": {
3184 "name": "keyword.operator.plus.exponent.decimal.objcpp"
3185 },
3186 "7": {
3187 "name": "keyword.operator.minus.exponent.decimal.objcpp"
3188 },
3189 "8": {
3190 "name": "constant.numeric.exponent.decimal.objcpp",
3191 "patterns": [
3192 {
3193 "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",
3194 "name": "punctuation.separator.constant.numeric.objcpp"
3195 }
3196 ]
3197 },
3198 "9": {
3199 "name": "keyword.other.unit.suffix.integer.objcpp"
3200 }
3201 }
3202 },
3203 {
3204 "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",
3205 "name": "invalid.illegal.constant.numeric.objcpp"
3206 }
3207 ]
3208 }
3209 }
3210 },
3211 "comment": {
3212 "patterns": [
3213 {
3214 "begin": "/\\*",
3215 "captures": {
3216 "0": {
3217 "name": "punctuation.definition.comment.objcpp"
3218 }
3219 },
3220 "end": "\\*/",
3221 "name": "comment.block.objcpp"
3222 },
3223 {
3224 "begin": "(^[ \\t]+)?(?=//)",
3225 "beginCaptures": {
3226 "1": {
3227 "name": "punctuation.whitespace.comment.leading.objcpp"
3228 }
3229 },
3230 "end": "(?!\\G)",
3231 "patterns": [
3232 {
3233 "begin": "//",
3234 "beginCaptures": {
3235 "0": {
3236 "name": "punctuation.definition.comment.objcpp"
3237 }
3238 },
3239 "end": "\\n",
3240 "name": "comment.line.double-slash.objcpp",
3241 "patterns": [
3242 {
3243 "match": "(?>\\\\\\s*\\n)",
3244 "name": "punctuation.separator.continuation.objcpp"
3245 }
3246 ]
3247 }
3248 ]
3249 }
3250 ]
3251 },
3252 "cpp_lang": {
3253 "patterns": [
3254 {
3255 "include": "#special_block"
3256 },
3257 {
3258 "include": "#strings"
3259 },
3260 {
3261 "match": "\\b(friend|explicit|virtual|override|final|noexcept)\\b",
3262 "name": "storage.modifier.objcpp"
3263 },
3264 {
3265 "match": "\\b(private:|protected:|public:)",
3266 "name": "storage.type.modifier.access.objcpp"
3267 },
3268 {
3269 "match": "\\b(catch|try|throw|using)\\b",
3270 "name": "keyword.control.objcpp"
3271 },
3272 {
3273 "match": "\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])",
3274 "name": "keyword.control.objcpp"
3275 },
3276 {
3277 "match": "\\b(f|m)[A-Z]\\w*\\b",
3278 "name": "variable.other.readwrite.member.objcpp"
3279 },
3280 {
3281 "match": "\\bthis\\b",
3282 "name": "variable.language.this.objcpp"
3283 },
3284 {
3285 "match": "\\bnullptr\\b",
3286 "name": "constant.language.objcpp"
3287 },
3288 {
3289 "include": "#template_definition"
3290 },
3291 {
3292 "match": "\\btemplate\\b\\s*",
3293 "name": "storage.type.template.objcpp"
3294 },
3295 {
3296 "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",
3297 "name": "keyword.operator.cast.objcpp"
3298 },
3299 {
3300 "name": "punctuation.separator.namespace.access.objcpp",
3301 "match": "((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)",
3302 "captures": {
3303 "1": {
3304 "name": "entity.scope.objcpp"
3305 },
3306 "2": {
3307 "name": "entity.scope.name.objcpp"
3308 },
3309 "3": {
3310 "name": "punctuation.separator.namespace.access.objcpp"
3311 }
3312 }
3313 },
3314 {
3315 "match": "\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b",
3316 "name": "keyword.operator.objcpp"
3317 },
3318 {
3319 "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b",
3320 "name": "storage.type.objcpp"
3321 },
3322 {
3323 "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b",
3324 "name": "storage.modifier.objcpp"
3325 },
3326 {
3327 "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",
3328 "beginCaptures": {
3329 "1": {
3330 "name": "entity.name.function.objcpp"
3331 },
3332 "2": {
3333 "name": "punctuation.definition.parameters.begin.objcpp"
3334 }
3335 },
3336 "end": "\\)",
3337 "endCaptures": {
3338 "0": {
3339 "name": "punctuation.definition.parameters.end.objcpp"
3340 }
3341 },
3342 "name": "meta.function.destructor.objcpp",
3343 "patterns": [
3344 {
3345 "include": "$base"
3346 }
3347 ]
3348 },
3349 {
3350 "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",
3351 "beginCaptures": {
3352 "1": {
3353 "name": "entity.name.function.objcpp"
3354 },
3355 "2": {
3356 "name": "punctuation.definition.parameters.begin.objcpp"
3357 }
3358 },
3359 "end": "\\)",
3360 "endCaptures": {
3361 "0": {
3362 "name": "punctuation.definition.parameters.end.objcpp"
3363 }
3364 },
3365 "name": "meta.function.destructor.prototype.objcpp",
3366 "patterns": [
3367 {
3368 "include": "$base"
3369 }
3370 ]
3371 },
3372 {
3373 "include": "#c_lang"
3374 }
3375 ],
3376 "repository": {
3377 "template_definition": {
3378 "begin": "\\b(template)\\s*(<)\\s*",
3379 "beginCaptures": {
3380 "1": {
3381 "name": "storage.type.template.objcpp"
3382 },
3383 "2": {
3384 "name": "meta.template.angle-brackets.start.objcpp"
3385 }
3386 },
3387 "end": ">",
3388 "endCaptures": {
3389 "0": {
3390 "name": "meta.template.angle-brackets.end.objcpp"
3391 }
3392 },
3393 "name": "template.definition.objcpp",
3394 "patterns": [
3395 {
3396 "include": "#template_definition_argument"
3397 }
3398 ]
3399 },
3400 "template_definition_argument": {
3401 "match": "\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))",
3402 "captures": {
3403 "1": {
3404 "name": "storage.type.template.objcpp"
3405 },
3406 "2": {
3407 "name": "storage.type.template.objcpp"
3408 },
3409 "3": {
3410 "name": "entity.name.type.template.objcpp"
3411 },
3412 "4": {
3413 "name": "storage.type.template.objcpp"
3414 },
3415 "5": {
3416 "name": "meta.template.operator.ellipsis.objcpp"
3417 },
3418 "6": {
3419 "name": "entity.name.type.template.objcpp"
3420 },
3421 "7": {
3422 "name": "storage.type.template.objcpp"
3423 },
3424 "8": {
3425 "name": "entity.name.type.template.objcpp"
3426 },
3427 "9": {
3428 "name": "keyword.operator.assignment.objcpp"
3429 },
3430 "10": {
3431 "name": "constant.language.objcpp"
3432 },
3433 "11": {
3434 "name": "meta.template.operator.comma.objcpp"
3435 }
3436 }
3437 },
3438 "angle_brackets": {
3439 "begin": "<",
3440 "end": ">",
3441 "name": "meta.angle-brackets.objcpp",
3442 "patterns": [
3443 {
3444 "include": "#angle_brackets"
3445 },
3446 {
3447 "include": "$base"
3448 }
3449 ]
3450 },
3451 "block": {
3452 "begin": "\\{",
3453 "beginCaptures": {
3454 "0": {
3455 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
3456 }
3457 },
3458 "end": "\\}",
3459 "endCaptures": {
3460 "0": {
3461 "name": "punctuation.section.block.end.bracket.curly.objcpp"
3462 }
3463 },
3464 "name": "meta.block.objcpp",
3465 "patterns": [
3466 {
3467 "captures": {
3468 "1": {
3469 "name": "support.function.any-method.objcpp"
3470 },
3471 "2": {
3472 "name": "punctuation.definition.parameters.objcpp"
3473 }
3474 },
3475 "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",
3476 "name": "meta.function-call.objcpp"
3477 },
3478 {
3479 "include": "$base"
3480 }
3481 ]
3482 },
3483 "constructor": {
3484 "patterns": [
3485 {
3486 "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",
3487 "beginCaptures": {
3488 "1": {
3489 "name": "entity.name.function.constructor.objcpp"
3490 },
3491 "2": {
3492 "name": "punctuation.definition.parameters.begin.objcpp"
3493 }
3494 },
3495 "end": "\\)",
3496 "endCaptures": {
3497 "0": {
3498 "name": "punctuation.definition.parameters.end.objcpp"
3499 }
3500 },
3501 "name": "meta.function.constructor.objcpp",
3502 "patterns": [
3503 {
3504 "include": "#probably_a_parameter"
3505 },
3506 {
3507 "include": "#function-innards"
3508 }
3509 ]
3510 },
3511 {
3512 "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",
3513 "beginCaptures": {
3514 "1": {
3515 "name": "punctuation.definition.parameters.objcpp"
3516 }
3517 },
3518 "end": "(?=\\{)",
3519 "name": "meta.function.constructor.initializer-list.objcpp",
3520 "patterns": [
3521 {
3522 "include": "$base"
3523 }
3524 ]
3525 }
3526 ]
3527 },
3528 "special_block": {
3529 "patterns": [
3530 {
3531 "begin": "\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)",
3532 "beginCaptures": {
3533 "1": {
3534 "name": "keyword.control.objcpp"
3535 },
3536 "2": {
3537 "name": "storage.type.namespace.objcpp"
3538 },
3539 "3": {
3540 "name": "entity.name.type.objcpp"
3541 }
3542 },
3543 "end": ";",
3544 "endCaptures": {
3545 "0": {
3546 "name": "punctuation.terminator.statement.objcpp"
3547 }
3548 },
3549 "name": "meta.using-namespace-declaration.objcpp"
3550 },
3551 {
3552 "begin": "\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+",
3553 "beginCaptures": {
3554 "1": {
3555 "name": "storage.type.namespace.objcpp"
3556 },
3557 "2": {
3558 "name": "entity.name.type.objcpp"
3559 }
3560 },
3561 "captures": {
3562 "1": {
3563 "name": "keyword.control.namespace.$2.objcpp"
3564 }
3565 },
3566 "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",
3567 "name": "meta.namespace-block.objcpp",
3568 "patterns": [
3569 {
3570 "begin": "\\{",
3571 "beginCaptures": {
3572 "0": {
3573 "name": "punctuation.definition.scope.objcpp"
3574 }
3575 },
3576 "end": "\\}",
3577 "endCaptures": {
3578 "0": {
3579 "name": "punctuation.definition.scope.objcpp"
3580 }
3581 },
3582 "patterns": [
3583 {
3584 "include": "#special_block"
3585 },
3586 {
3587 "include": "#constructor"
3588 },
3589 {
3590 "include": "$base"
3591 }
3592 ]
3593 },
3594 {
3595 "include": "$base"
3596 }
3597 ]
3598 },
3599 {
3600 "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",
3601 "beginCaptures": {
3602 "1": {
3603 "name": "storage.type.class.objcpp"
3604 },
3605 "2": {
3606 "name": "storage.type.struct.objcpp"
3607 },
3608 "3": {
3609 "name": "entity.name.type.objcpp"
3610 },
3611 "5": {
3612 "name": "storage.type.modifier.access.objcpp"
3613 },
3614 "6": {
3615 "name": "entity.name.type.inherited.objcpp"
3616 },
3617 "7": {
3618 "patterns": [
3619 {
3620 "match": "(public|protected|private)",
3621 "name": "storage.type.modifier.access.objcpp"
3622 },
3623 {
3624 "match": "[_A-Za-z][_A-Za-z0-9]*",
3625 "name": "entity.name.type.inherited.objcpp"
3626 }
3627 ]
3628 }
3629 },
3630 "end": "(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))",
3631 "name": "meta.class-struct-block.objcpp",
3632 "patterns": [
3633 {
3634 "include": "#angle_brackets"
3635 },
3636 {
3637 "begin": "\\{",
3638 "beginCaptures": {
3639 "0": {
3640 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
3641 }
3642 },
3643 "end": "(\\})(\\s*\\n)?",
3644 "endCaptures": {
3645 "1": {
3646 "name": "punctuation.section.block.end.bracket.curly.objcpp"
3647 },
3648 "2": {
3649 "name": "invalid.illegal.you-forgot-semicolon.objcpp"
3650 }
3651 },
3652 "patterns": [
3653 {
3654 "include": "#special_block"
3655 },
3656 {
3657 "include": "#constructor"
3658 },
3659 {
3660 "include": "$base"
3661 }
3662 ]
3663 },
3664 {
3665 "include": "$base"
3666 }
3667 ]
3668 },
3669 {
3670 "begin": "\\b(extern)(?=\\s*\")",
3671 "beginCaptures": {
3672 "1": {
3673 "name": "storage.modifier.objcpp"
3674 }
3675 },
3676 "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",
3677 "name": "meta.extern-block.objcpp",
3678 "patterns": [
3679 {
3680 "begin": "\\{",
3681 "beginCaptures": {
3682 "0": {
3683 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
3684 }
3685 },
3686 "end": "\\}|(?=\\s*#\\s*endif\\b)",
3687 "endCaptures": {
3688 "0": {
3689 "name": "punctuation.section.block.end.bracket.curly.objcpp"
3690 }
3691 },
3692 "patterns": [
3693 {
3694 "include": "#special_block"
3695 },
3696 {
3697 "include": "$base"
3698 }
3699 ]
3700 },
3701 {
3702 "include": "$base"
3703 }
3704 ]
3705 }
3706 ]
3707 },
3708 "strings": {
3709 "patterns": [
3710 {
3711 "begin": "(u|u8|U|L)?\"",
3712 "beginCaptures": {
3713 "0": {
3714 "name": "punctuation.definition.string.begin.objcpp"
3715 },
3716 "1": {
3717 "name": "meta.encoding.objcpp"
3718 }
3719 },
3720 "end": "\"",
3721 "endCaptures": {
3722 "0": {
3723 "name": "punctuation.definition.string.end.objcpp"
3724 }
3725 },
3726 "name": "string.quoted.double.objcpp",
3727 "patterns": [
3728 {
3729 "match": "\\\\u\\h{4}|\\\\U\\h{8}",
3730 "name": "constant.character.escape.objcpp"
3731 },
3732 {
3733 "match": "\\\\['\"?\\\\abfnrtv]",
3734 "name": "constant.character.escape.objcpp"
3735 },
3736 {
3737 "match": "\\\\[0-7]{1,3}",
3738 "name": "constant.character.escape.objcpp"
3739 },
3740 {
3741 "match": "\\\\x\\h+",
3742 "name": "constant.character.escape.objcpp"
3743 },
3744 {
3745 "include": "#string_placeholder"
3746 }
3747 ]
3748 },
3749 {
3750 "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
3751 "beginCaptures": {
3752 "0": {
3753 "name": "punctuation.definition.string.begin.objcpp"
3754 },
3755 "1": {
3756 "name": "meta.encoding.objcpp"
3757 },
3758 "3": {
3759 "name": "invalid.illegal.delimiter-too-long.objcpp"
3760 }
3761 },
3762 "end": "\\)\\2(\\3)\"",
3763 "endCaptures": {
3764 "0": {
3765 "name": "punctuation.definition.string.end.objcpp"
3766 },
3767 "1": {
3768 "name": "invalid.illegal.delimiter-too-long.objcpp"
3769 }
3770 },
3771 "name": "string.quoted.double.raw.objcpp"
3772 }
3773 ]
3774 }
3775 }
3776 },
3777 "cpp_lang_newish": {
3778 "patterns": [
3779 {
3780 "include": "#special_block"
3781 },
3782 {
3783 "match": "(?-mix:##[a-zA-Z_]\\w*(?!\\w))",
3784 "name": "variable.other.macro.argument.objcpp"
3785 },
3786 {
3787 "include": "#strings"
3788 },
3789 {
3790 "match": "(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)",
3791 "name": "storage.modifier.specificer.functional.pre-parameters.$1.objcpp"
3792 },
3793 {
3794 "match": "(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))",
3795 "name": "storage.modifier.specifier.functional.post-parameters.$1.objcpp"
3796 },
3797 {
3798 "match": "(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)",
3799 "name": "storage.modifier.specifier.$1.objcpp"
3800 },
3801 {
3802 "match": "(?<!\\w)((?:private|protected|public)) *:",
3803 "name": "storage.type.modifier.access.control.$1.objcpp"
3804 },
3805 {
3806 "match": "(?<!\\w)(?:throw|try|catch)(?!\\w)",
3807 "name": "keyword.control.exception.$1.objcpp"
3808 },
3809 {
3810 "match": "(?<!\\w)(using|typedef)(?!\\w)",
3811 "name": "keyword.other.$1.objcpp"
3812 },
3813 {
3814 "include": "#memory_operators"
3815 },
3816 {
3817 "match": "\\bthis\\b",
3818 "name": "variable.language.this.objcpp"
3819 },
3820 {
3821 "include": "#constants"
3822 },
3823 {
3824 "include": "#template_definition"
3825 },
3826 {
3827 "match": "\\btemplate\\b\\s*",
3828 "name": "storage.type.template.objcpp"
3829 },
3830 {
3831 "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",
3832 "name": "keyword.operator.cast.$1.objcpp"
3833 },
3834 {
3835 "include": "#scope_resolution"
3836 },
3837 {
3838 "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b",
3839 "name": "storage.type.objcpp"
3840 },
3841 {
3842 "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b",
3843 "name": "storage.modifier.objcpp"
3844 },
3845 {
3846 "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",
3847 "beginCaptures": {
3848 "1": {
3849 "name": "entity.name.function.destructor.objcpp"
3850 },
3851 "2": {
3852 "name": "punctuation.definition.parameters.begin.destructor.objcpp"
3853 }
3854 },
3855 "end": "\\)",
3856 "endCaptures": {
3857 "0": {
3858 "name": "punctuation.definition.parameters.end.destructor.objcpp"
3859 }
3860 },
3861 "name": "meta.function.destructor.objcpp",
3862 "patterns": [
3863 {
3864 "include": "$base"
3865 }
3866 ]
3867 },
3868 {
3869 "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",
3870 "beginCaptures": {
3871 "1": {
3872 "name": "entity.name.function.objcpp"
3873 },
3874 "2": {
3875 "name": "punctuation.definition.parameters.begin.objcpp"
3876 }
3877 },
3878 "end": "\\)",
3879 "endCaptures": {
3880 "0": {
3881 "name": "punctuation.definition.parameters.end.objcpp"
3882 }
3883 },
3884 "name": "meta.function.destructor.prototype.objcpp",
3885 "patterns": [
3886 {
3887 "include": "$base"
3888 }
3889 ]
3890 },
3891 {
3892 "include": "#preprocessor-rule-enabled"
3893 },
3894 {
3895 "include": "#preprocessor-rule-disabled"
3896 },
3897 {
3898 "include": "#preprocessor-rule-conditional"
3899 },
3900 {
3901 "include": "#comments-c"
3902 },
3903 {
3904 "match": "\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b",
3905 "name": "keyword.control.$1.objcpp"
3906 },
3907 {
3908 "include": "#storage_types_c"
3909 },
3910 {
3911 "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b",
3912 "name": "storage.modifier.objcpp"
3913 },
3914 {
3915 "include": "#operators"
3916 },
3917 {
3918 "include": "#operator_overload"
3919 },
3920 {
3921 "include": "#number_literal"
3922 },
3923 {
3924 "include": "#strings-c"
3925 },
3926 {
3927 "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)?",
3928 "beginCaptures": {
3929 "1": {
3930 "name": "keyword.control.directive.define.objcpp"
3931 },
3932 "2": {
3933 "name": "punctuation.definition.directive.objcpp"
3934 },
3935 "3": {
3936 "name": "entity.name.function.preprocessor.objcpp"
3937 },
3938 "5": {
3939 "name": "punctuation.definition.parameters.begin.objcpp"
3940 },
3941 "6": {
3942 "name": "variable.parameter.preprocessor.objcpp"
3943 },
3944 "8": {
3945 "name": "punctuation.separator.parameters.objcpp"
3946 },
3947 "9": {
3948 "name": "punctuation.definition.parameters.end.objcpp"
3949 }
3950 },
3951 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
3952 "name": "meta.preprocessor.macro.objcpp",
3953 "patterns": [
3954 {
3955 "include": "#preprocessor-rule-define-line-contents"
3956 }
3957 ]
3958 },
3959 {
3960 "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*",
3961 "beginCaptures": {
3962 "1": {
3963 "name": "keyword.control.directive.diagnostic.$3.objcpp"
3964 },
3965 "2": {
3966 "name": "punctuation.definition.directive.objcpp"
3967 }
3968 },
3969 "end": "(?<!\\\\)(?=\\n)",
3970 "name": "meta.preprocessor.diagnostic.objcpp",
3971 "patterns": [
3972 {
3973 "begin": "\"",
3974 "beginCaptures": {
3975 "0": {
3976 "name": "punctuation.definition.string.begin.objcpp"
3977 }
3978 },
3979 "end": "\"|(?<!\\\\)(?=\\s*\\n)",
3980 "endCaptures": {
3981 "0": {
3982 "name": "punctuation.definition.string.end.objcpp"
3983 }
3984 },
3985 "name": "string.quoted.double.objcpp",
3986 "patterns": [
3987 {
3988 "include": "#line_continuation_character"
3989 }
3990 ]
3991 },
3992 {
3993 "begin": "'",
3994 "beginCaptures": {
3995 "0": {
3996 "name": "punctuation.definition.string.begin.objcpp"
3997 }
3998 },
3999 "end": "'|(?<!\\\\)(?=\\s*\\n)",
4000 "endCaptures": {
4001 "0": {
4002 "name": "punctuation.definition.string.end.objcpp"
4003 }
4004 },
4005 "name": "string.quoted.single.objcpp",
4006 "patterns": [
4007 {
4008 "include": "#line_continuation_character"
4009 }
4010 ]
4011 },
4012 {
4013 "begin": "[^'\"]",
4014 "end": "(?<!\\\\)(?=\\s*\\n)",
4015 "name": "string.unquoted.single.objcpp",
4016 "patterns": [
4017 {
4018 "include": "#line_continuation_character"
4019 },
4020 {
4021 "include": "#comments-c"
4022 }
4023 ]
4024 }
4025 ]
4026 },
4027 {
4028 "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",
4029 "beginCaptures": {
4030 "1": {
4031 "name": "keyword.control.directive.$3.objcpp"
4032 },
4033 "2": {
4034 "name": "punctuation.definition.directive.objcpp"
4035 }
4036 },
4037 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
4038 "name": "meta.preprocessor.include.objcpp",
4039 "patterns": [
4040 {
4041 "include": "#line_continuation_character"
4042 },
4043 {
4044 "begin": "\"",
4045 "beginCaptures": {
4046 "0": {
4047 "name": "punctuation.definition.string.begin.objcpp"
4048 }
4049 },
4050 "end": "\"",
4051 "endCaptures": {
4052 "0": {
4053 "name": "punctuation.definition.string.end.objcpp"
4054 }
4055 },
4056 "name": "string.quoted.double.include.objcpp"
4057 },
4058 {
4059 "begin": "<",
4060 "beginCaptures": {
4061 "0": {
4062 "name": "punctuation.definition.string.begin.objcpp"
4063 }
4064 },
4065 "end": ">",
4066 "endCaptures": {
4067 "0": {
4068 "name": "punctuation.definition.string.end.objcpp"
4069 }
4070 },
4071 "name": "string.quoted.other.lt-gt.include.objcpp"
4072 }
4073 ]
4074 },
4075 {
4076 "include": "#pragma-mark"
4077 },
4078 {
4079 "begin": "^\\s*((#)\\s*line)\\b",
4080 "beginCaptures": {
4081 "1": {
4082 "name": "keyword.control.directive.line.objcpp"
4083 },
4084 "2": {
4085 "name": "punctuation.definition.directive.objcpp"
4086 }
4087 },
4088 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
4089 "name": "meta.preprocessor.objcpp",
4090 "patterns": [
4091 {
4092 "include": "#strings-c"
4093 },
4094 {
4095 "include": "#number_literal"
4096 },
4097 {
4098 "include": "#line_continuation_character"
4099 }
4100 ]
4101 },
4102 {
4103 "begin": "^\\s*(?:((#)\\s*undef))\\b",
4104 "beginCaptures": {
4105 "1": {
4106 "name": "keyword.control.directive.undef.objcpp"
4107 },
4108 "2": {
4109 "name": "punctuation.definition.directive.objcpp"
4110 }
4111 },
4112 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
4113 "name": "meta.preprocessor.objcpp",
4114 "patterns": [
4115 {
4116 "match": "[a-zA-Z_$][\\w$]*",
4117 "name": "entity.name.function.preprocessor.objcpp"
4118 },
4119 {
4120 "include": "#line_continuation_character"
4121 }
4122 ]
4123 },
4124 {
4125 "begin": "^\\s*(?:((#)\\s*pragma))\\b",
4126 "beginCaptures": {
4127 "1": {
4128 "name": "keyword.control.directive.pragma.objcpp"
4129 },
4130 "2": {
4131 "name": "punctuation.definition.directive.objcpp"
4132 }
4133 },
4134 "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",
4135 "name": "meta.preprocessor.pragma.objcpp",
4136 "patterns": [
4137 {
4138 "include": "#strings-c"
4139 },
4140 {
4141 "match": "[a-zA-Z_$][\\w\\-$]*",
4142 "name": "entity.other.attribute-name.pragma.preprocessor.objcpp"
4143 },
4144 {
4145 "include": "#number_literal"
4146 },
4147 {
4148 "include": "#line_continuation_character"
4149 }
4150 ]
4151 },
4152 {
4153 "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",
4154 "name": "support.type.sys-types.objcpp"
4155 },
4156 {
4157 "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",
4158 "name": "support.type.pthread.objcpp"
4159 },
4160 {
4161 "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",
4162 "name": "support.type.stdint.objcpp"
4163 },
4164 {
4165 "match": "(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)",
4166 "name": "support.type.posix-reserved.objcpp"
4167 },
4168 {
4169 "include": "#block-c"
4170 },
4171 {
4172 "include": "#parens-c"
4173 },
4174 {
4175 "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|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|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",
4176 "end": "(?<=\\))",
4177 "name": "meta.function.definition.objcpp",
4178 "patterns": [
4179 {
4180 "include": "#function-innards-c"
4181 }
4182 ]
4183 },
4184 {
4185 "include": "#line_continuation_character"
4186 },
4187 {
4188 "name": "meta.bracket.square.access.objcpp",
4189 "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
4190 "beginCaptures": {
4191 "1": {
4192 "name": "variable.other.object.objcpp"
4193 },
4194 "2": {
4195 "name": "punctuation.definition.begin.bracket.square.objcpp"
4196 }
4197 },
4198 "end": "\\]",
4199 "endCaptures": {
4200 "0": {
4201 "name": "punctuation.definition.end.bracket.square.objcpp"
4202 }
4203 },
4204 "patterns": [
4205 {
4206 "include": "#function-call-innards-c"
4207 }
4208 ]
4209 },
4210 {
4211 "name": "storage.modifier.array.bracket.square.objcpp",
4212 "match": "(?-mix:(?<!delete))\\\\[\\\\s*\\\\]"
4213 },
4214 {
4215 "match": ";",
4216 "name": "punctuation.terminator.statement.objcpp"
4217 },
4218 {
4219 "match": ",",
4220 "name": "punctuation.separator.delimiter.objcpp"
4221 }
4222 ],
4223 "repository": {
4224 "literal_numeric_seperator": {
4225 "match": "(?<!')'(?!')",
4226 "name": "punctuation.separator.constant.numeric.objcpp"
4227 },
4228 "number_literal": {
4229 "match": "((?<!\\w)(?:(?:(?:(0[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]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))",
4230 "captures": {
4231 "2": {
4232 "name": "keyword.other.unit.hexadecimal.objcpp"
4233 },
4234 "3": {
4235 "name": "constant.numeric.hexadecimal.objcpp",
4236 "patterns": [
4237 {
4238 "include": "#literal_numeric_seperator"
4239 }
4240 ]
4241 },
4242 "4": {
4243 "name": "punctuation.separator.constant.numeric.objcpp"
4244 },
4245 "5": {
4246 "name": "constant.numeric.hexadecimal.objcpp"
4247 },
4248 "6": {
4249 "name": "constant.numeric.hexadecimal.objcpp",
4250 "patterns": [
4251 {
4252 "include": "#literal_numeric_seperator"
4253 }
4254 ]
4255 },
4256 "7": {
4257 "name": "punctuation.separator.constant.numeric.objcpp"
4258 },
4259 "8": {
4260 "name": "keyword.other.unit.exponent.hexadecimal.objcpp"
4261 },
4262 "9": {
4263 "name": "keyword.operator.plus.exponent.hexadecimal.objcpp"
4264 },
4265 "10": {
4266 "name": "keyword.operator.minus.exponent.hexadecimal.objcpp"
4267 },
4268 "11": {
4269 "name": "constant.numeric.exponent.hexadecimal.objcpp",
4270 "patterns": [
4271 {
4272 "include": "#literal_numeric_seperator"
4273 }
4274 ]
4275 },
4276 "12": {
4277 "name": "constant.numeric.decimal.objcpp",
4278 "patterns": [
4279 {
4280 "include": "#literal_numeric_seperator"
4281 }
4282 ]
4283 },
4284 "13": {
4285 "name": "punctuation.separator.constant.numeric.objcpp"
4286 },
4287 "14": {
4288 "name": "constant.numeric.decimal.point.objcpp"
4289 },
4290 "15": {
4291 "name": "constant.numeric.decimal.objcpp",
4292 "patterns": [
4293 {
4294 "include": "#literal_numeric_seperator"
4295 }
4296 ]
4297 },
4298 "16": {
4299 "name": "punctuation.separator.constant.numeric.objcpp"
4300 },
4301 "17": {
4302 "name": "keyword.other.unit.exponent.decimal.objcpp"
4303 },
4304 "18": {
4305 "name": "keyword.operator.plus.exponent.decimal.objcpp"
4306 },
4307 "19": {
4308 "name": "keyword.operator.minus.exponent.decimal.objcpp"
4309 },
4310 "20": {
4311 "name": "constant.numeric.exponent.decimal.objcpp",
4312 "patterns": [
4313 {
4314 "include": "#literal_numeric_seperator"
4315 }
4316 ]
4317 },
4318 "21": {
4319 "name": "keyword.other.unit.suffix.floating-point.objcpp"
4320 },
4321 "22": {
4322 "name": "keyword.other.unit.binary.objcpp"
4323 },
4324 "23": {
4325 "name": "constant.numeric.binary.objcpp",
4326 "patterns": [
4327 {
4328 "include": "#literal_numeric_seperator"
4329 }
4330 ]
4331 },
4332 "24": {
4333 "name": "punctuation.separator.constant.numeric.objcpp"
4334 },
4335 "25": {
4336 "name": "keyword.other.unit.octal.objcpp"
4337 },
4338 "26": {
4339 "name": "constant.numeric.octal.objcpp",
4340 "patterns": [
4341 {
4342 "include": "#literal_numeric_seperator"
4343 }
4344 ]
4345 },
4346 "27": {
4347 "name": "punctuation.separator.constant.numeric.objcpp"
4348 },
4349 "28": {
4350 "name": "keyword.other.unit.hexadecimal.objcpp"
4351 },
4352 "29": {
4353 "name": "constant.numeric.hexadecimal.objcpp",
4354 "patterns": [
4355 {
4356 "include": "#literal_numeric_seperator"
4357 }
4358 ]
4359 },
4360 "30": {
4361 "name": "punctuation.separator.constant.numeric.objcpp"
4362 },
4363 "31": {
4364 "name": "keyword.other.unit.exponent.hexadecimal.objcpp"
4365 },
4366 "32": {
4367 "name": "keyword.operator.plus.exponent.hexadecimal.objcpp"
4368 },
4369 "33": {
4370 "name": "keyword.operator.minus.exponent.hexadecimal.objcpp"
4371 },
4372 "34": {
4373 "name": "constant.numeric.exponent.hexadecimal.objcpp",
4374 "patterns": [
4375 {
4376 "include": "#literal_numeric_seperator"
4377 }
4378 ]
4379 },
4380 "35": {
4381 "name": "constant.numeric.decimal.objcpp",
4382 "patterns": [
4383 {
4384 "include": "#literal_numeric_seperator"
4385 }
4386 ]
4387 },
4388 "36": {
4389 "name": "punctuation.separator.constant.numeric.objcpp"
4390 },
4391 "37": {
4392 "name": "keyword.other.unit.exponent.decimal.objcpp"
4393 },
4394 "38": {
4395 "name": "keyword.operator.plus.exponent.decimal.objcpp"
4396 },
4397 "39": {
4398 "name": "keyword.operator.minus.exponent.decimal.objcpp"
4399 },
4400 "40": {
4401 "name": "constant.numeric.exponent.decimal.objcpp",
4402 "patterns": [
4403 {
4404 "include": "#literal_numeric_seperator"
4405 }
4406 ]
4407 },
4408 "41": {
4409 "name": "keyword.other.unit.suffix.integer.objcpp"
4410 },
4411 "42": {
4412 "name": "keyword.other.unit.user-defined.objcpp"
4413 }
4414 }
4415 },
4416 "constants": {
4417 "match": "(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)",
4418 "name": "constant.language.objcpp"
4419 },
4420 "storage_types_c": {
4421 "patterns": [
4422 {
4423 "match": "(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)",
4424 "name": "storage.type.primitive.objcpp"
4425 },
4426 {
4427 "match": "(?<!\\w)(?: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)(?!\\w)",
4428 "name": "storage.type.objcpp"
4429 },
4430 {
4431 "match": "(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)",
4432 "name": "storage.type.$1.objcpp"
4433 }
4434 ]
4435 },
4436 "memory_operators": {
4437 "match": "(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)",
4438 "captures": {
4439 "1": {
4440 "name": "keyword.operator.memory.delete.array.objcpp"
4441 },
4442 "2": {
4443 "name": "keyword.operator.memory.delete.array.bracket.objcpp"
4444 },
4445 "3": {
4446 "name": "keyword.operator.memory.delete.objcpp"
4447 },
4448 "4": {
4449 "name": "keyword.operator.memory.new.objcpp"
4450 }
4451 },
4452 "name": "keyword.operator.memory.objcpp"
4453 },
4454 "template_call_innards": {
4455 "match": "<(?:[\\s<>,\\w])*>\\s*",
4456 "captures": {
4457 "0": {
4458 "name": "meta.template.call.objcpp",
4459 "patterns": [
4460 {
4461 "include": "#storage_types_c"
4462 },
4463 {
4464 "include": "#constants"
4465 },
4466 {
4467 "include": "#scope_resolution"
4468 },
4469 {
4470 "match": "(?<!\\w)[a-zA-Z_]\\w*(?!\\w)",
4471 "name": "storage.type.user-defined.objcpp"
4472 },
4473 {
4474 "include": "#operators"
4475 },
4476 {
4477 "include": "#number_literal"
4478 },
4479 {
4480 "include": "#strings"
4481 },
4482 {
4483 "match": ",",
4484 "name": "punctuation.separator.comma.template.argument.objcpp"
4485 }
4486 ]
4487 }
4488 }
4489 },
4490 "template_definition": {
4491 "name": "meta.template.definition.objcpp",
4492 "begin": "(?-mix:(?<!\\w)(template)\\s*(<))",
4493 "beginCaptures": {
4494 "1": {
4495 "name": "storage.type.template.objcpp"
4496 },
4497 "2": {
4498 "name": "punctuation.section.angle-brackets.start.template.definition.objcpp"
4499 }
4500 },
4501 "end": "(?-mix:(>))",
4502 "endCaptures": {
4503 "1": {
4504 "name": "punctuation.section.angle-brackets.end.template.definition.objcpp"
4505 }
4506 },
4507 "patterns": [
4508 {
4509 "include": "#scope_resolution"
4510 },
4511 {
4512 "include": "#template_definition_argument"
4513 },
4514 {
4515 "include": "#template_call_innards"
4516 }
4517 ]
4518 },
4519 "template_definition_argument": {
4520 "match": "((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))",
4521 "captures": {
4522 "2": {
4523 "name": "storage.type.template.argument.$1.objcpp"
4524 },
4525 "3": {
4526 "name": "storage.type.template.argument.$2.objcpp"
4527 },
4528 "4": {
4529 "name": "entity.name.type.template.objcpp"
4530 },
4531 "5": {
4532 "name": "storage.type.template.objcpp"
4533 },
4534 "6": {
4535 "name": "keyword.operator.ellipsis.template.definition.objcpp"
4536 },
4537 "7": {
4538 "name": "entity.name.type.template.objcpp"
4539 },
4540 "8": {
4541 "name": "storage.type.template.objcpp"
4542 },
4543 "9": {
4544 "name": "entity.name.type.template.objcpp"
4545 },
4546 "10": {
4547 "name": "keyword.operator.assignment.objcpp"
4548 },
4549 "11": {
4550 "name": "constant.other.objcpp"
4551 },
4552 "12": {
4553 "name": "punctuation.separator.comma.template.argument.objcpp"
4554 }
4555 }
4556 },
4557 "scope_resolution": {
4558 "match": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)",
4559 "captures": {
4560 "1": {
4561 "patterns": [
4562 {
4563 "include": "#scope_resolution"
4564 }
4565 ]
4566 },
4567 "2": {
4568 "name": "entity.name.namespace.scope-resolution.objcpp"
4569 },
4570 "3": {
4571 "patterns": [
4572 {
4573 "include": "#template_call_innards"
4574 }
4575 ]
4576 },
4577 "4": {
4578 "name": "punctuation.separator.namespace.access.objcpp"
4579 }
4580 },
4581 "name": "meta.scope-resolution.objcpp"
4582 },
4583 "angle_brackets": {
4584 "begin": "<",
4585 "end": ">",
4586 "name": "meta.angle-brackets.objcpp",
4587 "patterns": [
4588 {
4589 "include": "#angle_brackets"
4590 },
4591 {
4592 "include": "$base"
4593 }
4594 ]
4595 },
4596 "block": {
4597 "begin": "\\{",
4598 "beginCaptures": {
4599 "0": {
4600 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
4601 }
4602 },
4603 "end": "\\}",
4604 "endCaptures": {
4605 "0": {
4606 "name": "punctuation.section.block.end.bracket.curly.objcpp"
4607 }
4608 },
4609 "name": "meta.block.objcpp",
4610 "patterns": [
4611 {
4612 "captures": {
4613 "1": {
4614 "name": "support.function.any-method.objcpp"
4615 },
4616 "2": {
4617 "name": "punctuation.definition.parameters.objcpp"
4618 }
4619 },
4620 "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",
4621 "name": "meta.function-call.objcpp"
4622 },
4623 {
4624 "include": "$base"
4625 }
4626 ]
4627 },
4628 "constructor": {
4629 "patterns": [
4630 {
4631 "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",
4632 "beginCaptures": {
4633 "1": {
4634 "name": "entity.name.function.constructor.objcpp"
4635 },
4636 "2": {
4637 "name": "punctuation.definition.parameters.begin.constructor.objcpp"
4638 }
4639 },
4640 "end": "\\)",
4641 "endCaptures": {
4642 "0": {
4643 "name": "punctuation.definition.parameters.end.constructor.objcpp"
4644 }
4645 },
4646 "name": "meta.function.constructor.objcpp",
4647 "patterns": [
4648 {
4649 "include": "#probably_a_parameter"
4650 },
4651 {
4652 "include": "#function-innards-c"
4653 }
4654 ]
4655 },
4656 {
4657 "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",
4658 "beginCaptures": {
4659 "1": {
4660 "name": "punctuation.definition.initializer-list.parameters.objcpp"
4661 }
4662 },
4663 "end": "(?=\\{)",
4664 "name": "meta.function.constructor.initializer-list.objcpp",
4665 "patterns": [
4666 {
4667 "include": "$base"
4668 }
4669 ]
4670 }
4671 ]
4672 },
4673 "special_block": {
4674 "patterns": [
4675 {
4676 "comment": "https://en.cppreference.com/w/cpp/language/namespace",
4677 "begin": "\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)",
4678 "beginCaptures": {
4679 "1": {
4680 "name": "keyword.other.using.directive.objcpp"
4681 },
4682 "2": {
4683 "name": "keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp"
4684 },
4685 "3": {
4686 "patterns": [
4687 {
4688 "include": "#scope_resolution"
4689 }
4690 ]
4691 },
4692 "4": {
4693 "name": "entity.name.namespace.objcpp"
4694 }
4695 },
4696 "end": ";",
4697 "endCaptures": {
4698 "0": {
4699 "name": "punctuation.terminator.statement.objcpp"
4700 }
4701 },
4702 "name": "meta.using-namespace-declaration.objcpp"
4703 },
4704 {
4705 "begin": "(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))",
4706 "beginCaptures": {
4707 "1": {
4708 "name": "keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp"
4709 },
4710 "2": {
4711 "patterns": [
4712 {
4713 "match": "(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))",
4714 "name": "entity.name.type.objcpp"
4715 },
4716 {
4717 "match": "::",
4718 "name": "punctuation.separator.namespace.access.objcpp"
4719 }
4720 ]
4721 }
4722 },
4723 "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",
4724 "name": "meta.namespace-block.objcpp",
4725 "patterns": [
4726 {
4727 "begin": "\\{",
4728 "beginCaptures": {
4729 "0": {
4730 "name": "punctuation.definition.scope.objcpp"
4731 }
4732 },
4733 "end": "\\}",
4734 "endCaptures": {
4735 "0": {
4736 "name": "punctuation.definition.scope.objcpp"
4737 }
4738 },
4739 "patterns": [
4740 {
4741 "include": "#special_block"
4742 },
4743 {
4744 "include": "#constructor"
4745 },
4746 {
4747 "include": "$base"
4748 }
4749 ]
4750 },
4751 {
4752 "include": "$base"
4753 }
4754 ]
4755 },
4756 {
4757 "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",
4758 "beginCaptures": {
4759 "1": {
4760 "name": "storage.type.class.objcpp"
4761 },
4762 "2": {
4763 "name": "storage.type.struct.objcpp"
4764 },
4765 "3": {
4766 "name": "entity.name.type.objcpp"
4767 },
4768 "5": {
4769 "name": "storage.type.modifier.access.objcpp"
4770 },
4771 "6": {
4772 "name": "entity.name.type.inherited.objcpp"
4773 },
4774 "7": {
4775 "patterns": [
4776 {
4777 "match": "(public|protected|private)",
4778 "name": "storage.type.modifier.access.objcpp"
4779 },
4780 {
4781 "match": "[_A-Za-z][_A-Za-z0-9]*",
4782 "name": "entity.name.type.inherited.objcpp"
4783 }
4784 ]
4785 }
4786 },
4787 "end": "(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))",
4788 "endCaptures": {
4789 "1": {
4790 "name": "punctuation.terminator.statement.objcpp"
4791 }
4792 },
4793 "name": "meta.class-struct-block.objcpp",
4794 "patterns": [
4795 {
4796 "include": "#angle_brackets"
4797 },
4798 {
4799 "begin": "\\{",
4800 "beginCaptures": {
4801 "0": {
4802 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
4803 }
4804 },
4805 "end": "(\\})(\\s*\\n)?",
4806 "endCaptures": {
4807 "1": {
4808 "name": "punctuation.section.block.end.bracket.curly.objcpp"
4809 },
4810 "2": {
4811 "name": "invalid.illegal.you-forgot-semicolon.objcpp"
4812 }
4813 },
4814 "patterns": [
4815 {
4816 "include": "#special_block"
4817 },
4818 {
4819 "include": "#constructor"
4820 },
4821 {
4822 "include": "$base"
4823 }
4824 ]
4825 },
4826 {
4827 "include": "$base"
4828 }
4829 ]
4830 },
4831 {
4832 "begin": "\\b(extern)(?=\\s*\")",
4833 "beginCaptures": {
4834 "1": {
4835 "name": "storage.modifier.objcpp"
4836 }
4837 },
4838 "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",
4839 "name": "meta.extern-block.objcpp",
4840 "patterns": [
4841 {
4842 "begin": "\\{",
4843 "beginCaptures": {
4844 "0": {
4845 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
4846 }
4847 },
4848 "end": "\\}|(?=\\s*#\\s*endif\\b)",
4849 "endCaptures": {
4850 "0": {
4851 "name": "punctuation.section.block.end.bracket.curly.objcpp"
4852 }
4853 },
4854 "patterns": [
4855 {
4856 "include": "#special_block"
4857 },
4858 {
4859 "include": "$base"
4860 }
4861 ]
4862 },
4863 {
4864 "include": "$base"
4865 }
4866 ]
4867 }
4868 ]
4869 },
4870 "strings": {
4871 "patterns": [
4872 {
4873 "begin": "(u|u8|U|L)?\"",
4874 "beginCaptures": {
4875 "0": {
4876 "name": "punctuation.definition.string.begin.objcpp"
4877 },
4878 "1": {
4879 "name": "meta.encoding.objcpp"
4880 }
4881 },
4882 "end": "\"",
4883 "endCaptures": {
4884 "0": {
4885 "name": "punctuation.definition.string.end.objcpp"
4886 }
4887 },
4888 "name": "string.quoted.double.objcpp",
4889 "patterns": [
4890 {
4891 "match": "\\\\u\\h{4}|\\\\U\\h{8}",
4892 "name": "constant.character.escape.objcpp"
4893 },
4894 {
4895 "match": "\\\\['\"?\\\\abfnrtv]",
4896 "name": "constant.character.escape.objcpp"
4897 },
4898 {
4899 "match": "\\\\[0-7]{1,3}",
4900 "name": "constant.character.escape.objcpp"
4901 },
4902 {
4903 "match": "\\\\x\\h+",
4904 "name": "constant.character.escape.objcpp"
4905 },
4906 {
4907 "include": "#string_placeholder-c"
4908 }
4909 ]
4910 },
4911 {
4912 "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
4913 "beginCaptures": {
4914 "0": {
4915 "name": "punctuation.definition.string.begin.objcpp"
4916 },
4917 "1": {
4918 "name": "meta.encoding.objcpp"
4919 },
4920 "3": {
4921 "name": "invalid.illegal.delimiter-too-long.objcpp"
4922 }
4923 },
4924 "end": "\\)\\2(\\3)\"",
4925 "endCaptures": {
4926 "0": {
4927 "name": "punctuation.definition.string.end.objcpp"
4928 },
4929 "1": {
4930 "name": "invalid.illegal.delimiter-too-long.objcpp"
4931 }
4932 },
4933 "name": "string.quoted.double.raw.objcpp"
4934 }
4935 ]
4936 },
4937 "probably_a_parameter": {
4938 "match": "(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))",
4939 "captures": {
4940 "1": {
4941 "name": "variable.parameter.probably.defaulted.objcpp"
4942 },
4943 "2": {
4944 "name": "variable.parameter.probably.objcpp"
4945 }
4946 }
4947 },
4948 "operator_overload": {
4949 "begin": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()",
4950 "beginCaptures": {
4951 "1": {
4952 "name": "entity.scope.objcpp"
4953 },
4954 "2": {
4955 "name": "keyword.other.operator.overload.objcpp"
4956 },
4957 "3": {
4958 "name": "entity.name.operator.overloadee.objcpp"
4959 },
4960 "4": {
4961 "name": "punctuation.section.parameters.begin.bracket.round.objcpp"
4962 }
4963 },
4964 "end": "\\)",
4965 "endCaptures": {
4966 "0": {
4967 "name": "punctuation.section.parameters.end.bracket.round.objcpp"
4968 }
4969 },
4970 "name": "meta.function.definition.parameters.operator-overload.objcpp",
4971 "patterns": [
4972 {
4973 "include": "#probably_a_parameter"
4974 },
4975 {
4976 "include": "#function-innards-c"
4977 }
4978 ]
4979 },
4980 "access-method": {
4981 "name": "meta.function-call.member.objcpp",
4982 "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]*)(\\()",
4983 "beginCaptures": {
4984 "1": {
4985 "name": "variable.other.object.objcpp"
4986 },
4987 "2": {
4988 "name": "punctuation.separator.dot-access.objcpp"
4989 },
4990 "3": {
4991 "name": "punctuation.separator.pointer-access.objcpp"
4992 },
4993 "4": {
4994 "patterns": [
4995 {
4996 "match": "\\.",
4997 "name": "punctuation.separator.dot-access.objcpp"
4998 },
4999 {
5000 "match": "->",
5001 "name": "punctuation.separator.pointer-access.objcpp"
5002 },
5003 {
5004 "match": "[a-zA-Z_][a-zA-Z_0-9]*",
5005 "name": "variable.other.object.objcpp"
5006 },
5007 {
5008 "name": "everything.else.objcpp",
5009 "match": ".+"
5010 }
5011 ]
5012 },
5013 "5": {
5014 "name": "entity.name.function.member.objcpp"
5015 },
5016 "6": {
5017 "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp"
5018 }
5019 },
5020 "end": "\\)",
5021 "endCaptures": {
5022 "0": {
5023 "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp"
5024 }
5025 },
5026 "patterns": [
5027 {
5028 "include": "#function-call-innards-c"
5029 }
5030 ]
5031 },
5032 "access-member": {
5033 "name": "variable.other.object.access.objcpp",
5034 "match": "(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|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))([a-zA-Z_]\\w*)\\b(?!\\()",
5035 "captures": {
5036 "1": {
5037 "name": "variable.other.object.objcpp"
5038 },
5039 "2": {
5040 "name": "punctuation.separator.dot-access.objcpp"
5041 },
5042 "3": {
5043 "name": "punctuation.separator.pointer-access.objcpp"
5044 },
5045 "4": {
5046 "patterns": [
5047 {
5048 "match": "\\.",
5049 "name": "punctuation.separator.dot-access.objcpp"
5050 },
5051 {
5052 "match": "->",
5053 "name": "punctuation.separator.pointer-access.objcpp"
5054 },
5055 {
5056 "match": "[a-zA-Z_]\\w*",
5057 "name": "variable.other.object.objcpp"
5058 },
5059 {
5060 "match": ".+",
5061 "name": "everything.else.objcpp"
5062 }
5063 ]
5064 },
5065 "5": {
5066 "name": "variable.other.member.objcpp"
5067 }
5068 }
5069 },
5070 "block-c": {
5071 "patterns": [
5072 {
5073 "begin": "{",
5074 "beginCaptures": {
5075 "0": {
5076 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
5077 }
5078 },
5079 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
5080 "endCaptures": {
5081 "0": {
5082 "name": "punctuation.section.block.end.bracket.curly.objcpp"
5083 }
5084 },
5085 "name": "meta.block.objcpp",
5086 "patterns": [
5087 {
5088 "include": "#block_innards-c"
5089 }
5090 ]
5091 }
5092 ]
5093 },
5094 "block_innards-c": {
5095 "patterns": [
5096 {
5097 "include": "#preprocessor-rule-enabled-block"
5098 },
5099 {
5100 "include": "#preprocessor-rule-disabled-block"
5101 },
5102 {
5103 "include": "#preprocessor-rule-conditional-block"
5104 },
5105 {
5106 "include": "#access-method"
5107 },
5108 {
5109 "include": "#access-member"
5110 },
5111 {
5112 "include": "#c_function_call"
5113 },
5114 {
5115 "name": "meta.initialization.objcpp",
5116 "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",
5117 "beginCaptures": {
5118 "1": {
5119 "name": "variable.other.objcpp"
5120 },
5121 "2": {
5122 "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp"
5123 }
5124 },
5125 "end": "\\)",
5126 "endCaptures": {
5127 "0": {
5128 "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp"
5129 }
5130 },
5131 "patterns": [
5132 {
5133 "include": "#function-call-innards-c"
5134 }
5135 ]
5136 },
5137 {
5138 "begin": "{",
5139 "beginCaptures": {
5140 "0": {
5141 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
5142 }
5143 },
5144 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
5145 "endCaptures": {
5146 "0": {
5147 "name": "punctuation.section.block.end.bracket.curly.objcpp"
5148 }
5149 },
5150 "patterns": [
5151 {
5152 "include": "#block_innards-c"
5153 }
5154 ]
5155 },
5156 {
5157 "include": "#parens-block-c"
5158 },
5159 {
5160 "include": "$base"
5161 }
5162 ]
5163 },
5164 "c_function_call": {
5165 "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|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*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
5166 "end": "(?<=\\))(?!\\w)",
5167 "name": "meta.function-call.objcpp",
5168 "patterns": [
5169 {
5170 "include": "#function-call-innards-c"
5171 }
5172 ]
5173 },
5174 "comments-c": {
5175 "patterns": [
5176 {
5177 "captures": {
5178 "1": {
5179 "name": "meta.toc-list.banner.block.objcpp"
5180 }
5181 },
5182 "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
5183 "name": "comment.block.objcpp"
5184 },
5185 {
5186 "begin": "/\\*",
5187 "beginCaptures": {
5188 "0": {
5189 "name": "punctuation.definition.comment.begin.objcpp"
5190 }
5191 },
5192 "end": "\\*/",
5193 "endCaptures": {
5194 "0": {
5195 "name": "punctuation.definition.comment.end.objcpp"
5196 }
5197 },
5198 "name": "comment.block.objcpp"
5199 },
5200 {
5201 "captures": {
5202 "1": {
5203 "name": "meta.toc-list.banner.line.objcpp"
5204 }
5205 },
5206 "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
5207 "name": "comment.line.banner.objcpp"
5208 },
5209 {
5210 "begin": "(^[ \\t]+)?(?=//)",
5211 "beginCaptures": {
5212 "1": {
5213 "name": "punctuation.whitespace.comment.leading.objcpp"
5214 }
5215 },
5216 "end": "(?!\\G)",
5217 "patterns": [
5218 {
5219 "begin": "//",
5220 "beginCaptures": {
5221 "0": {
5222 "name": "punctuation.definition.comment.objcpp"
5223 }
5224 },
5225 "end": "(?=\\n)",
5226 "name": "comment.line.double-slash.objcpp",
5227 "patterns": [
5228 {
5229 "include": "#line_continuation_character"
5230 }
5231 ]
5232 }
5233 ]
5234 }
5235 ]
5236 },
5237 "disabled": {
5238 "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
5239 "end": "^\\s*#\\s*endif\\b",
5240 "patterns": [
5241 {
5242 "include": "#disabled"
5243 },
5244 {
5245 "include": "#pragma-mark"
5246 }
5247 ]
5248 },
5249 "line_continuation_character": {
5250 "patterns": [
5251 {
5252 "match": "(\\\\)\\n",
5253 "captures": {
5254 "1": {
5255 "name": "constant.character.escape.line-continuation.objcpp"
5256 }
5257 }
5258 }
5259 ]
5260 },
5261 "parens-c": {
5262 "name": "punctuation.section.parens-c\b.objcpp",
5263 "begin": "\\(",
5264 "beginCaptures": {
5265 "0": {
5266 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
5267 }
5268 },
5269 "end": "\\)",
5270 "endCaptures": {
5271 "0": {
5272 "name": "punctuation.section.parens.end.bracket.round.objcpp"
5273 }
5274 },
5275 "patterns": [
5276 {
5277 "include": "$base"
5278 }
5279 ]
5280 },
5281 "parens-block-c": {
5282 "name": "meta.block.parens.objcpp",
5283 "begin": "\\(",
5284 "beginCaptures": {
5285 "0": {
5286 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
5287 }
5288 },
5289 "end": "\\)",
5290 "endCaptures": {
5291 "0": {
5292 "name": "punctuation.section.parens.end.bracket.round.objcpp"
5293 }
5294 },
5295 "patterns": [
5296 {
5297 "include": "#block_innards-c"
5298 },
5299 {
5300 "match": "(?<!:):(?!:)",
5301 "name": "punctuation.range-based.objcpp"
5302 }
5303 ]
5304 },
5305 "pragma-mark": {
5306 "captures": {
5307 "1": {
5308 "name": "meta.preprocessor.pragma.objcpp"
5309 },
5310 "2": {
5311 "name": "keyword.control.directive.pragma.pragma-mark.objcpp"
5312 },
5313 "3": {
5314 "name": "punctuation.definition.directive.objcpp"
5315 },
5316 "4": {
5317 "name": "entity.name.tag.pragma-mark.objcpp"
5318 }
5319 },
5320 "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",
5321 "name": "meta.section.objcpp"
5322 },
5323 "operators": {
5324 "patterns": [
5325 {
5326 "match": "(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))",
5327 "name": "keyword.operator.$1.objcpp"
5328 },
5329 {
5330 "match": "--",
5331 "name": "keyword.operator.decrement.objcpp"
5332 },
5333 {
5334 "match": "\\+\\+",
5335 "name": "keyword.operator.increment.objcpp"
5336 },
5337 {
5338 "match": "%=|\\+=|-=|\\*=|(?<!\\()/=",
5339 "name": "keyword.operator.assignment.compound.objcpp"
5340 },
5341 {
5342 "match": "&=|\\^=|<<=|>>=|\\|=",
5343 "name": "keyword.operator.assignment.compound.bitwise.objcpp"
5344 },
5345 {
5346 "match": "<<|>>",
5347 "name": "keyword.operator.bitwise.shift.objcpp"
5348 },
5349 {
5350 "match": "!=|<=|>=|==|<|>",
5351 "name": "keyword.operator.comparison.objcpp"
5352 },
5353 {
5354 "match": "&&|!|\\|\\|",
5355 "name": "keyword.operator.logical.objcpp"
5356 },
5357 {
5358 "match": "&|\\||\\^|~",
5359 "name": "keyword.operator.objcpp"
5360 },
5361 {
5362 "match": "=",
5363 "name": "keyword.operator.assignment.objcpp"
5364 },
5365 {
5366 "match": "%|\\*|/|-|\\+",
5367 "name": "keyword.operator.objcpp"
5368 },
5369 {
5370 "begin": "\\?",
5371 "beginCaptures": {
5372 "0": {
5373 "name": "keyword.operator.ternary.objcpp"
5374 }
5375 },
5376 "end": ":",
5377 "applyEndPatternLast": true,
5378 "endCaptures": {
5379 "0": {
5380 "name": "keyword.operator.ternary.objcpp"
5381 }
5382 },
5383 "patterns": [
5384 {
5385 "include": "#access-method"
5386 },
5387 {
5388 "include": "#access-member"
5389 },
5390 {
5391 "include": "#c_function_call"
5392 },
5393 {
5394 "include": "$base"
5395 }
5396 ]
5397 }
5398 ]
5399 },
5400 "strings-c": {
5401 "patterns": [
5402 {
5403 "begin": "\"",
5404 "beginCaptures": {
5405 "0": {
5406 "name": "punctuation.definition.string.begin.objcpp"
5407 }
5408 },
5409 "end": "\"",
5410 "endCaptures": {
5411 "0": {
5412 "name": "punctuation.definition.string.end.objcpp"
5413 }
5414 },
5415 "name": "string.quoted.double.objcpp",
5416 "patterns": [
5417 {
5418 "include": "#string_escaped_char-c"
5419 },
5420 {
5421 "include": "#string_placeholder-c"
5422 },
5423 {
5424 "include": "#line_continuation_character"
5425 }
5426 ]
5427 },
5428 {
5429 "begin": "(?-mix:(?<![\\da-fA-F])')",
5430 "beginCaptures": {
5431 "0": {
5432 "name": "punctuation.definition.string.begin.objcpp"
5433 }
5434 },
5435 "end": "'",
5436 "endCaptures": {
5437 "0": {
5438 "name": "punctuation.definition.string.end.objcpp"
5439 }
5440 },
5441 "name": "string.quoted.single.objcpp",
5442 "patterns": [
5443 {
5444 "include": "#string_escaped_char-c"
5445 },
5446 {
5447 "include": "#line_continuation_character"
5448 }
5449 ]
5450 }
5451 ]
5452 },
5453 "string_escaped_char-c": {
5454 "patterns": [
5455 {
5456 "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} )",
5457 "name": "constant.character.escape.objcpp"
5458 },
5459 {
5460 "match": "\\\\.",
5461 "name": "invalid.illegal.unknown-escape.objcpp"
5462 }
5463 ]
5464 },
5465 "string_placeholder-c": {
5466 "patterns": [
5467 {
5468 "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",
5469 "name": "constant.other.placeholder.objcpp"
5470 }
5471 ]
5472 },
5473 "vararg_ellipses-c": {
5474 "match": "(?<!\\.)\\.\\.\\.(?!\\.)",
5475 "name": "punctuation.vararg-ellipses.objcpp"
5476 },
5477 "preprocessor-rule-conditional": {
5478 "patterns": [
5479 {
5480 "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
5481 "beginCaptures": {
5482 "0": {
5483 "name": "meta.preprocessor.objcpp"
5484 },
5485 "1": {
5486 "name": "keyword.control.directive.conditional.objcpp"
5487 },
5488 "2": {
5489 "name": "punctuation.definition.directive.objcpp"
5490 }
5491 },
5492 "end": "^\\s*((#)\\s*endif\\b)",
5493 "endCaptures": {
5494 "0": {
5495 "name": "meta.preprocessor.objcpp"
5496 },
5497 "1": {
5498 "name": "keyword.control.directive.conditional.objcpp"
5499 },
5500 "2": {
5501 "name": "punctuation.definition.directive.objcpp"
5502 }
5503 },
5504 "patterns": [
5505 {
5506 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5507 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5508 "name": "meta.preprocessor.objcpp",
5509 "patterns": [
5510 {
5511 "include": "#preprocessor-rule-conditional-line"
5512 }
5513 ]
5514 },
5515 {
5516 "include": "#preprocessor-rule-enabled-elif"
5517 },
5518 {
5519 "include": "#preprocessor-rule-enabled-else"
5520 },
5521 {
5522 "include": "#preprocessor-rule-disabled-elif"
5523 },
5524 {
5525 "begin": "^\\s*((#)\\s*elif\\b)",
5526 "beginCaptures": {
5527 "1": {
5528 "name": "keyword.control.directive.conditional.objcpp"
5529 },
5530 "2": {
5531 "name": "punctuation.definition.directive.objcpp"
5532 }
5533 },
5534 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5535 "name": "meta.preprocessor.objcpp",
5536 "patterns": [
5537 {
5538 "include": "#preprocessor-rule-conditional-line"
5539 }
5540 ]
5541 },
5542 {
5543 "include": "$base"
5544 }
5545 ]
5546 },
5547 {
5548 "match": "^\\s*#\\s*(else|elif|endif)\\b",
5549 "captures": {
5550 "0": {
5551 "name": "invalid.illegal.stray-$1.objcpp"
5552 }
5553 }
5554 }
5555 ]
5556 },
5557 "preprocessor-rule-conditional-block": {
5558 "patterns": [
5559 {
5560 "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",
5561 "beginCaptures": {
5562 "0": {
5563 "name": "meta.preprocessor.objcpp"
5564 },
5565 "1": {
5566 "name": "keyword.control.directive.conditional.objcpp"
5567 },
5568 "2": {
5569 "name": "punctuation.definition.directive.objcpp"
5570 }
5571 },
5572 "end": "^\\s*((#)\\s*endif\\b)",
5573 "endCaptures": {
5574 "0": {
5575 "name": "meta.preprocessor.objcpp"
5576 },
5577 "1": {
5578 "name": "keyword.control.directive.conditional.objcpp"
5579 },
5580 "2": {
5581 "name": "punctuation.definition.directive.objcpp"
5582 }
5583 },
5584 "patterns": [
5585 {
5586 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5587 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5588 "name": "meta.preprocessor.objcpp",
5589 "patterns": [
5590 {
5591 "include": "#preprocessor-rule-conditional-line"
5592 }
5593 ]
5594 },
5595 {
5596 "include": "#preprocessor-rule-enabled-elif-block"
5597 },
5598 {
5599 "include": "#preprocessor-rule-enabled-else-block"
5600 },
5601 {
5602 "include": "#preprocessor-rule-disabled-elif"
5603 },
5604 {
5605 "begin": "^\\s*((#)\\s*elif\\b)",
5606 "beginCaptures": {
5607 "1": {
5608 "name": "keyword.control.directive.conditional.objcpp"
5609 },
5610 "2": {
5611 "name": "punctuation.definition.directive.objcpp"
5612 }
5613 },
5614 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5615 "name": "meta.preprocessor.objcpp",
5616 "patterns": [
5617 {
5618 "include": "#preprocessor-rule-conditional-line"
5619 }
5620 ]
5621 },
5622 {
5623 "include": "#block_innards-c"
5624 }
5625 ]
5626 },
5627 {
5628 "match": "^\\s*#\\s*(else|elif|endif)\\b",
5629 "captures": {
5630 "0": {
5631 "name": "invalid.illegal.stray-$1.objcpp"
5632 }
5633 }
5634 }
5635 ]
5636 },
5637 "preprocessor-rule-conditional-line": {
5638 "patterns": [
5639 {
5640 "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",
5641 "name": "keyword.control.directive.conditional.objcpp"
5642 },
5643 {
5644 "match": "\\bdefined\\b",
5645 "name": "invalid.illegal.macro-name.objcpp"
5646 },
5647 {
5648 "include": "#comments-c"
5649 },
5650 {
5651 "include": "#strings-c"
5652 },
5653 {
5654 "include": "#number_literal"
5655 },
5656 {
5657 "begin": "\\?",
5658 "beginCaptures": {
5659 "0": {
5660 "name": "keyword.operator.ternary.objcpp"
5661 }
5662 },
5663 "end": ":",
5664 "endCaptures": {
5665 "0": {
5666 "name": "keyword.operator.ternary.objcpp"
5667 }
5668 },
5669 "patterns": [
5670 {
5671 "include": "#preprocessor-rule-conditional-line"
5672 }
5673 ]
5674 },
5675 {
5676 "include": "#operators"
5677 },
5678 {
5679 "include": "#constants"
5680 },
5681 {
5682 "match": "[a-zA-Z_$][\\w$]*",
5683 "name": "entity.name.function.preprocessor.objcpp"
5684 },
5685 {
5686 "include": "#line_continuation_character"
5687 },
5688 {
5689 "begin": "\\(",
5690 "beginCaptures": {
5691 "0": {
5692 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
5693 }
5694 },
5695 "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5696 "endCaptures": {
5697 "0": {
5698 "name": "punctuation.section.parens.end.bracket.round.objcpp"
5699 }
5700 },
5701 "patterns": [
5702 {
5703 "include": "#preprocessor-rule-conditional-line"
5704 }
5705 ]
5706 }
5707 ]
5708 },
5709 "preprocessor-rule-disabled": {
5710 "patterns": [
5711 {
5712 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
5713 "beginCaptures": {
5714 "0": {
5715 "name": "meta.preprocessor.objcpp"
5716 },
5717 "1": {
5718 "name": "keyword.control.directive.conditional.objcpp"
5719 },
5720 "2": {
5721 "name": "punctuation.definition.directive.objcpp"
5722 }
5723 },
5724 "end": "^\\s*((#)\\s*endif\\b)",
5725 "endCaptures": {
5726 "0": {
5727 "name": "meta.preprocessor.objcpp"
5728 },
5729 "1": {
5730 "name": "keyword.control.directive.conditional.objcpp"
5731 },
5732 "2": {
5733 "name": "punctuation.definition.directive.objcpp"
5734 }
5735 },
5736 "patterns": [
5737 {
5738 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5739 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
5740 "name": "meta.preprocessor.objcpp",
5741 "patterns": [
5742 {
5743 "include": "#preprocessor-rule-conditional-line"
5744 }
5745 ]
5746 },
5747 {
5748 "include": "#comments-c"
5749 },
5750 {
5751 "include": "#preprocessor-rule-enabled-elif"
5752 },
5753 {
5754 "include": "#preprocessor-rule-enabled-else"
5755 },
5756 {
5757 "include": "#preprocessor-rule-disabled-elif"
5758 },
5759 {
5760 "begin": "^\\s*((#)\\s*elif\\b)",
5761 "beginCaptures": {
5762 "0": {
5763 "name": "meta.preprocessor.objcpp"
5764 },
5765 "1": {
5766 "name": "keyword.control.directive.conditional.objcpp"
5767 },
5768 "2": {
5769 "name": "punctuation.definition.directive.objcpp"
5770 }
5771 },
5772 "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
5773 "patterns": [
5774 {
5775 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5776 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5777 "name": "meta.preprocessor.objcpp",
5778 "patterns": [
5779 {
5780 "include": "#preprocessor-rule-conditional-line"
5781 }
5782 ]
5783 },
5784 {
5785 "include": "$base"
5786 }
5787 ]
5788 },
5789 {
5790 "begin": "\\n",
5791 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
5792 "contentName": "comment.block.preprocessor.if-branch.objcpp",
5793 "patterns": [
5794 {
5795 "include": "#disabled"
5796 },
5797 {
5798 "include": "#pragma-mark"
5799 }
5800 ]
5801 }
5802 ]
5803 }
5804 ]
5805 },
5806 "preprocessor-rule-disabled-block": {
5807 "patterns": [
5808 {
5809 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
5810 "beginCaptures": {
5811 "0": {
5812 "name": "meta.preprocessor.objcpp"
5813 },
5814 "1": {
5815 "name": "keyword.control.directive.conditional.objcpp"
5816 },
5817 "2": {
5818 "name": "punctuation.definition.directive.objcpp"
5819 }
5820 },
5821 "end": "^\\s*((#)\\s*endif\\b)",
5822 "endCaptures": {
5823 "0": {
5824 "name": "meta.preprocessor.objcpp"
5825 },
5826 "1": {
5827 "name": "keyword.control.directive.conditional.objcpp"
5828 },
5829 "2": {
5830 "name": "punctuation.definition.directive.objcpp"
5831 }
5832 },
5833 "patterns": [
5834 {
5835 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5836 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
5837 "name": "meta.preprocessor.objcpp",
5838 "patterns": [
5839 {
5840 "include": "#preprocessor-rule-conditional-line"
5841 }
5842 ]
5843 },
5844 {
5845 "include": "#comments-c"
5846 },
5847 {
5848 "include": "#preprocessor-rule-enabled-elif-block"
5849 },
5850 {
5851 "include": "#preprocessor-rule-enabled-else-block"
5852 },
5853 {
5854 "include": "#preprocessor-rule-disabled-elif"
5855 },
5856 {
5857 "begin": "^\\s*((#)\\s*elif\\b)",
5858 "beginCaptures": {
5859 "0": {
5860 "name": "meta.preprocessor.objcpp"
5861 },
5862 "1": {
5863 "name": "keyword.control.directive.conditional.objcpp"
5864 },
5865 "2": {
5866 "name": "punctuation.definition.directive.objcpp"
5867 }
5868 },
5869 "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
5870 "patterns": [
5871 {
5872 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5873 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5874 "name": "meta.preprocessor.objcpp",
5875 "patterns": [
5876 {
5877 "include": "#preprocessor-rule-conditional-line"
5878 }
5879 ]
5880 },
5881 {
5882 "include": "#block_innards-c"
5883 }
5884 ]
5885 },
5886 {
5887 "begin": "\\n",
5888 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
5889 "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp",
5890 "patterns": [
5891 {
5892 "include": "#disabled"
5893 },
5894 {
5895 "include": "#pragma-mark"
5896 }
5897 ]
5898 }
5899 ]
5900 }
5901 ]
5902 },
5903 "preprocessor-rule-disabled-elif": {
5904 "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",
5905 "beginCaptures": {
5906 "0": {
5907 "name": "meta.preprocessor.objcpp"
5908 },
5909 "1": {
5910 "name": "keyword.control.directive.conditional.objcpp"
5911 },
5912 "2": {
5913 "name": "punctuation.definition.directive.objcpp"
5914 }
5915 },
5916 "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",
5917 "patterns": [
5918 {
5919 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5920 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
5921 "name": "meta.preprocessor.objcpp",
5922 "patterns": [
5923 {
5924 "include": "#preprocessor-rule-conditional-line"
5925 }
5926 ]
5927 },
5928 {
5929 "include": "#comments-c"
5930 },
5931 {
5932 "begin": "\\n",
5933 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
5934 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
5935 "patterns": [
5936 {
5937 "include": "#disabled"
5938 },
5939 {
5940 "include": "#pragma-mark"
5941 }
5942 ]
5943 }
5944 ]
5945 },
5946 "preprocessor-rule-enabled": {
5947 "patterns": [
5948 {
5949 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
5950 "beginCaptures": {
5951 "0": {
5952 "name": "meta.preprocessor.objcpp"
5953 },
5954 "1": {
5955 "name": "keyword.control.directive.conditional.objcpp"
5956 },
5957 "2": {
5958 "name": "punctuation.definition.directive.objcpp"
5959 },
5960 "3": {
5961 "name": "constant.numeric.preprocessor.objcpp"
5962 }
5963 },
5964 "end": "^\\s*((#)\\s*endif\\b)",
5965 "endCaptures": {
5966 "0": {
5967 "name": "meta.preprocessor.objcpp"
5968 },
5969 "1": {
5970 "name": "keyword.control.directive.conditional.objcpp"
5971 },
5972 "2": {
5973 "name": "punctuation.definition.directive.objcpp"
5974 }
5975 },
5976 "patterns": [
5977 {
5978 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
5979 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
5980 "name": "meta.preprocessor.objcpp",
5981 "patterns": [
5982 {
5983 "include": "#preprocessor-rule-conditional-line"
5984 }
5985 ]
5986 },
5987 {
5988 "include": "#comments-c"
5989 },
5990 {
5991 "begin": "^\\s*((#)\\s*else\\b)",
5992 "beginCaptures": {
5993 "0": {
5994 "name": "meta.preprocessor.objcpp"
5995 },
5996 "1": {
5997 "name": "keyword.control.directive.conditional.objcpp"
5998 },
5999 "2": {
6000 "name": "punctuation.definition.directive.objcpp"
6001 }
6002 },
6003 "end": "(?=^\\s*((#)\\s*endif\\b))",
6004 "contentName": "comment.block.preprocessor.else-branch.objcpp",
6005 "patterns": [
6006 {
6007 "include": "#disabled"
6008 },
6009 {
6010 "include": "#pragma-mark"
6011 }
6012 ]
6013 },
6014 {
6015 "begin": "^\\s*((#)\\s*elif\\b)",
6016 "beginCaptures": {
6017 "0": {
6018 "name": "meta.preprocessor.objcpp"
6019 },
6020 "1": {
6021 "name": "keyword.control.directive.conditional.objcpp"
6022 },
6023 "2": {
6024 "name": "punctuation.definition.directive.objcpp"
6025 }
6026 },
6027 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
6028 "contentName": "comment.block.preprocessor.if-branch.objcpp",
6029 "patterns": [
6030 {
6031 "include": "#disabled"
6032 },
6033 {
6034 "include": "#pragma-mark"
6035 }
6036 ]
6037 },
6038 {
6039 "begin": "\\n",
6040 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
6041 "patterns": [
6042 {
6043 "include": "$base"
6044 }
6045 ]
6046 }
6047 ]
6048 }
6049 ]
6050 },
6051 "preprocessor-rule-enabled-block": {
6052 "patterns": [
6053 {
6054 "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
6055 "beginCaptures": {
6056 "0": {
6057 "name": "meta.preprocessor.objcpp"
6058 },
6059 "1": {
6060 "name": "keyword.control.directive.conditional.objcpp"
6061 },
6062 "2": {
6063 "name": "punctuation.definition.directive.objcpp"
6064 }
6065 },
6066 "end": "^\\s*((#)\\s*endif\\b)",
6067 "endCaptures": {
6068 "0": {
6069 "name": "meta.preprocessor.objcpp"
6070 },
6071 "1": {
6072 "name": "keyword.control.directive.conditional.objcpp"
6073 },
6074 "2": {
6075 "name": "punctuation.definition.directive.objcpp"
6076 }
6077 },
6078 "patterns": [
6079 {
6080 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
6081 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",
6082 "name": "meta.preprocessor.objcpp",
6083 "patterns": [
6084 {
6085 "include": "#preprocessor-rule-conditional-line"
6086 }
6087 ]
6088 },
6089 {
6090 "include": "#comments-c"
6091 },
6092 {
6093 "begin": "^\\s*((#)\\s*else\\b)",
6094 "beginCaptures": {
6095 "0": {
6096 "name": "meta.preprocessor.objcpp"
6097 },
6098 "1": {
6099 "name": "keyword.control.directive.conditional.objcpp"
6100 },
6101 "2": {
6102 "name": "punctuation.definition.directive.objcpp"
6103 }
6104 },
6105 "end": "(?=^\\s*((#)\\s*endif\\b))",
6106 "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp",
6107 "patterns": [
6108 {
6109 "include": "#disabled"
6110 },
6111 {
6112 "include": "#pragma-mark"
6113 }
6114 ]
6115 },
6116 {
6117 "begin": "^\\s*((#)\\s*elif\\b)",
6118 "beginCaptures": {
6119 "0": {
6120 "name": "meta.preprocessor.objcpp"
6121 },
6122 "1": {
6123 "name": "keyword.control.directive.conditional.objcpp"
6124 },
6125 "2": {
6126 "name": "punctuation.definition.directive.objcpp"
6127 }
6128 },
6129 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
6130 "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp",
6131 "patterns": [
6132 {
6133 "include": "#disabled"
6134 },
6135 {
6136 "include": "#pragma-mark"
6137 }
6138 ]
6139 },
6140 {
6141 "begin": "\\n",
6142 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
6143 "patterns": [
6144 {
6145 "include": "#block_innards-c"
6146 }
6147 ]
6148 }
6149 ]
6150 }
6151 ]
6152 },
6153 "preprocessor-rule-enabled-elif": {
6154 "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
6155 "beginCaptures": {
6156 "0": {
6157 "name": "meta.preprocessor.objcpp"
6158 },
6159 "1": {
6160 "name": "keyword.control.directive.conditional.objcpp"
6161 },
6162 "2": {
6163 "name": "punctuation.definition.directive.objcpp"
6164 }
6165 },
6166 "end": "(?=^\\s*((#)\\s*endif\\b))",
6167 "patterns": [
6168 {
6169 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
6170 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
6171 "name": "meta.preprocessor.objcpp",
6172 "patterns": [
6173 {
6174 "include": "#preprocessor-rule-conditional-line"
6175 }
6176 ]
6177 },
6178 {
6179 "include": "#comments-c"
6180 },
6181 {
6182 "begin": "\\n",
6183 "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
6184 "patterns": [
6185 {
6186 "begin": "^\\s*((#)\\s*(else)\\b)",
6187 "beginCaptures": {
6188 "0": {
6189 "name": "meta.preprocessor.objcpp"
6190 },
6191 "1": {
6192 "name": "keyword.control.directive.conditional.objcpp"
6193 },
6194 "2": {
6195 "name": "punctuation.definition.directive.objcpp"
6196 }
6197 },
6198 "end": "(?=^\\s*((#)\\s*endif\\b))",
6199 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
6200 "patterns": [
6201 {
6202 "include": "#disabled"
6203 },
6204 {
6205 "include": "#pragma-mark"
6206 }
6207 ]
6208 },
6209 {
6210 "begin": "^\\s*((#)\\s*(elif)\\b)",
6211 "beginCaptures": {
6212 "0": {
6213 "name": "meta.preprocessor.objcpp"
6214 },
6215 "1": {
6216 "name": "keyword.control.directive.conditional.objcpp"
6217 },
6218 "2": {
6219 "name": "punctuation.definition.directive.objcpp"
6220 }
6221 },
6222 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
6223 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
6224 "patterns": [
6225 {
6226 "include": "#disabled"
6227 },
6228 {
6229 "include": "#pragma-mark"
6230 }
6231 ]
6232 },
6233 {
6234 "include": "$base"
6235 }
6236 ]
6237 }
6238 ]
6239 },
6240 "preprocessor-rule-enabled-elif-block": {
6241 "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",
6242 "beginCaptures": {
6243 "0": {
6244 "name": "meta.preprocessor.objcpp"
6245 },
6246 "1": {
6247 "name": "keyword.control.directive.conditional.objcpp"
6248 },
6249 "2": {
6250 "name": "punctuation.definition.directive.objcpp"
6251 }
6252 },
6253 "end": "(?=^\\s*((#)\\s*endif\\b))",
6254 "patterns": [
6255 {
6256 "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",
6257 "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",
6258 "name": "meta.preprocessor.objcpp",
6259 "patterns": [
6260 {
6261 "include": "#preprocessor-rule-conditional-line"
6262 }
6263 ]
6264 },
6265 {
6266 "include": "#comments-c"
6267 },
6268 {
6269 "begin": "\\n",
6270 "end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
6271 "patterns": [
6272 {
6273 "begin": "^\\s*((#)\\s*(else)\\b)",
6274 "beginCaptures": {
6275 "0": {
6276 "name": "meta.preprocessor.objcpp"
6277 },
6278 "1": {
6279 "name": "keyword.control.directive.conditional.objcpp"
6280 },
6281 "2": {
6282 "name": "punctuation.definition.directive.objcpp"
6283 }
6284 },
6285 "end": "(?=^\\s*((#)\\s*endif\\b))",
6286 "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp",
6287 "patterns": [
6288 {
6289 "include": "#disabled"
6290 },
6291 {
6292 "include": "#pragma-mark"
6293 }
6294 ]
6295 },
6296 {
6297 "begin": "^\\s*((#)\\s*(elif)\\b)",
6298 "beginCaptures": {
6299 "0": {
6300 "name": "meta.preprocessor.objcpp"
6301 },
6302 "1": {
6303 "name": "keyword.control.directive.conditional.objcpp"
6304 },
6305 "2": {
6306 "name": "punctuation.definition.directive.objcpp"
6307 }
6308 },
6309 "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
6310 "contentName": "comment.block.preprocessor.elif-branch.objcpp",
6311 "patterns": [
6312 {
6313 "include": "#disabled"
6314 },
6315 {
6316 "include": "#pragma-mark"
6317 }
6318 ]
6319 },
6320 {
6321 "include": "#block_innards-c"
6322 }
6323 ]
6324 }
6325 ]
6326 },
6327 "preprocessor-rule-enabled-else": {
6328 "begin": "^\\s*((#)\\s*else\\b)",
6329 "beginCaptures": {
6330 "0": {
6331 "name": "meta.preprocessor.objcpp"
6332 },
6333 "1": {
6334 "name": "keyword.control.directive.conditional.objcpp"
6335 },
6336 "2": {
6337 "name": "punctuation.definition.directive.objcpp"
6338 }
6339 },
6340 "end": "(?=^\\s*((#)\\s*endif\\b))",
6341 "patterns": [
6342 {
6343 "include": "$base"
6344 }
6345 ]
6346 },
6347 "preprocessor-rule-enabled-else-block": {
6348 "begin": "^\\s*((#)\\s*else\\b)",
6349 "beginCaptures": {
6350 "0": {
6351 "name": "meta.preprocessor.objcpp"
6352 },
6353 "1": {
6354 "name": "keyword.control.directive.conditional.objcpp"
6355 },
6356 "2": {
6357 "name": "punctuation.definition.directive.objcpp"
6358 }
6359 },
6360 "end": "(?=^\\s*((#)\\s*endif\\b))",
6361 "patterns": [
6362 {
6363 "include": "#block_innards-c"
6364 }
6365 ]
6366 },
6367 "preprocessor-rule-define-line-contents": {
6368 "patterns": [
6369 {
6370 "include": "#vararg_ellipses-c"
6371 },
6372 {
6373 "match": "(?-mix:##?[a-zA-Z_]\\w*(?!\\w))",
6374 "name": "variable.other.macro.argument.objcpp"
6375 },
6376 {
6377 "begin": "{",
6378 "beginCaptures": {
6379 "0": {
6380 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
6381 }
6382 },
6383 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
6384 "endCaptures": {
6385 "0": {
6386 "name": "punctuation.section.block.end.bracket.curly.objcpp"
6387 }
6388 },
6389 "name": "meta.block.objcpp",
6390 "patterns": [
6391 {
6392 "include": "#preprocessor-rule-define-line-blocks"
6393 }
6394 ]
6395 },
6396 {
6397 "match": "\\(",
6398 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
6399 },
6400 {
6401 "match": "\\)",
6402 "name": "punctuation.section.parens.end.bracket.round.objcpp"
6403 },
6404 {
6405 "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|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)",
6406 "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",
6407 "name": "meta.function.objcpp",
6408 "patterns": [
6409 {
6410 "include": "#preprocessor-rule-define-line-functions"
6411 }
6412 ]
6413 },
6414 {
6415 "begin": "\"",
6416 "beginCaptures": {
6417 "0": {
6418 "name": "punctuation.definition.string.begin.objcpp"
6419 }
6420 },
6421 "end": "\"|(?<!\\\\)(?=\\s*\\n)",
6422 "endCaptures": {
6423 "0": {
6424 "name": "punctuation.definition.string.end.objcpp"
6425 }
6426 },
6427 "name": "string.quoted.double.objcpp",
6428 "patterns": [
6429 {
6430 "include": "#string_escaped_char-c"
6431 },
6432 {
6433 "include": "#string_placeholder-c"
6434 },
6435 {
6436 "include": "#line_continuation_character"
6437 }
6438 ]
6439 },
6440 {
6441 "begin": "'",
6442 "beginCaptures": {
6443 "0": {
6444 "name": "punctuation.definition.string.begin.objcpp"
6445 }
6446 },
6447 "end": "'|(?<!\\\\)(?=\\s*\\n)",
6448 "endCaptures": {
6449 "0": {
6450 "name": "punctuation.definition.string.end.objcpp"
6451 }
6452 },
6453 "name": "string.quoted.single.objcpp",
6454 "patterns": [
6455 {
6456 "include": "#string_escaped_char-c"
6457 },
6458 {
6459 "include": "#line_continuation_character"
6460 }
6461 ]
6462 },
6463 {
6464 "include": "#access-method"
6465 },
6466 {
6467 "include": "#access-member"
6468 },
6469 {
6470 "include": "$base"
6471 }
6472 ]
6473 },
6474 "preprocessor-rule-define-line-blocks": {
6475 "patterns": [
6476 {
6477 "begin": "{",
6478 "beginCaptures": {
6479 "0": {
6480 "name": "punctuation.section.block.begin.bracket.curly.objcpp"
6481 }
6482 },
6483 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",
6484 "endCaptures": {
6485 "0": {
6486 "name": "punctuation.section.block.end.bracket.curly.objcpp"
6487 }
6488 },
6489 "patterns": [
6490 {
6491 "include": "#preprocessor-rule-define-line-blocks"
6492 },
6493 {
6494 "include": "#preprocessor-rule-define-line-contents"
6495 }
6496 ]
6497 },
6498 {
6499 "include": "#preprocessor-rule-define-line-contents"
6500 }
6501 ]
6502 },
6503 "preprocessor-rule-define-line-functions": {
6504 "patterns": [
6505 {
6506 "include": "#comments-c"
6507 },
6508 {
6509 "include": "#storage_types_c"
6510 },
6511 {
6512 "include": "#vararg_ellipses-c"
6513 },
6514 {
6515 "include": "#access-method"
6516 },
6517 {
6518 "include": "#access-member"
6519 },
6520 {
6521 "include": "#operators"
6522 },
6523 {
6524 "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|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*(\\()",
6525 "beginCaptures": {
6526 "1": {
6527 "name": "entity.name.function.objcpp"
6528 },
6529 "2": {
6530 "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
6531 }
6532 },
6533 "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
6534 "endCaptures": {
6535 "1": {
6536 "name": "punctuation.section.arguments.end.bracket.round.objcpp"
6537 }
6538 },
6539 "patterns": [
6540 {
6541 "include": "#preprocessor-rule-define-line-functions"
6542 }
6543 ]
6544 },
6545 {
6546 "begin": "\\(",
6547 "beginCaptures": {
6548 "0": {
6549 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
6550 }
6551 },
6552 "end": "(\\))|(?<!\\\\)(?=\\s*\\n)",
6553 "endCaptures": {
6554 "1": {
6555 "name": "punctuation.section.parens.end.bracket.round.objcpp"
6556 }
6557 },
6558 "patterns": [
6559 {
6560 "include": "#preprocessor-rule-define-line-functions"
6561 }
6562 ]
6563 },
6564 {
6565 "include": "#preprocessor-rule-define-line-contents"
6566 }
6567 ]
6568 },
6569 "function-innards-c": {
6570 "patterns": [
6571 {
6572 "include": "#comments-c"
6573 },
6574 {
6575 "include": "#storage_types_c"
6576 },
6577 {
6578 "include": "#operators"
6579 },
6580 {
6581 "include": "#vararg_ellipses-c"
6582 },
6583 {
6584 "name": "meta.function.definition.parameters.objcpp",
6585 "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|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*(\\()",
6586 "beginCaptures": {
6587 "1": {
6588 "name": "entity.name.function.objcpp"
6589 },
6590 "2": {
6591 "name": "punctuation.section.parameters.begin.bracket.round.objcpp"
6592 }
6593 },
6594 "end": "\\)|:",
6595 "endCaptures": {
6596 "0": {
6597 "name": "punctuation.section.parameters.end.bracket.round.objcpp"
6598 }
6599 },
6600 "patterns": [
6601 {
6602 "include": "#probably_a_parameter"
6603 },
6604 {
6605 "include": "#function-innards-c"
6606 }
6607 ]
6608 },
6609 {
6610 "begin": "\\(",
6611 "beginCaptures": {
6612 "0": {
6613 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
6614 }
6615 },
6616 "end": "\\)",
6617 "endCaptures": {
6618 "0": {
6619 "name": "punctuation.section.parens.end.bracket.round.objcpp"
6620 }
6621 },
6622 "patterns": [
6623 {
6624 "include": "#function-innards-c"
6625 }
6626 ]
6627 },
6628 {
6629 "include": "$base"
6630 }
6631 ]
6632 },
6633 "function-call-innards-c": {
6634 "patterns": [
6635 {
6636 "include": "#comments-c"
6637 },
6638 {
6639 "include": "#storage_types_c"
6640 },
6641 {
6642 "include": "#access-method"
6643 },
6644 {
6645 "include": "#access-member"
6646 },
6647 {
6648 "include": "#operators"
6649 },
6650 {
6651 "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
6652 "beginCaptures": {
6653 "1": {
6654 "name": "keyword.operator.memory.new.objcpp"
6655 },
6656 "2": {
6657 "patterns": [
6658 {
6659 "include": "#template_call_innards"
6660 }
6661 ]
6662 },
6663 "3": {
6664 "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
6665 }
6666 },
6667 "end": "\\)",
6668 "endCaptures": {
6669 "0": {
6670 "name": "punctuation.section.arguments.end.bracket.round.objcpp"
6671 }
6672 },
6673 "patterns": [
6674 {
6675 "include": "#function-call-innards-c"
6676 }
6677 ]
6678 },
6679 {
6680 "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|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|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()",
6681 "beginCaptures": {
6682 "1": {
6683 "patterns": [
6684 {
6685 "include": "#scope_resolution"
6686 }
6687 ]
6688 },
6689 "2": {
6690 "name": "entity.name.function.call.objcpp"
6691 },
6692 "3": {
6693 "patterns": [
6694 {
6695 "include": "#template_call_innards"
6696 }
6697 ]
6698 },
6699 "4": {
6700 "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
6701 }
6702 },
6703 "end": "\\)",
6704 "endCaptures": {
6705 "0": {
6706 "name": "punctuation.section.arguments.end.bracket.round.objcpp"
6707 }
6708 },
6709 "patterns": [
6710 {
6711 "include": "#function-call-innards-c"
6712 }
6713 ]
6714 },
6715 {
6716 "begin": "\\(",
6717 "beginCaptures": {
6718 "0": {
6719 "name": "punctuation.section.parens.begin.bracket.round.objcpp"
6720 }
6721 },
6722 "end": "\\)",
6723 "endCaptures": {
6724 "0": {
6725 "name": "punctuation.section.parens.end.bracket.round.objcpp"
6726 }
6727 },
6728 "patterns": [
6729 {
6730 "include": "#function-call-innards-c"
6731 }
6732 ]
6733 },
6734 {
6735 "include": "#block_innards-c"
6736 }
6737 ]
6738 }
6739 }
6740 },
6741 "disabled": {
6742 "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
6743 "comment": "eat nested preprocessor if(def)s",
6744 "end": "^\\s*#\\s*endif\\b.*$",
6745 "patterns": [
6746 {
6747 "include": "#disabled"
6748 },
6749 {
6750 "include": "#pragma-mark"
6751 }
6752 ]
6753 },
6754 "implementation_innards": {
6755 "patterns": [
6756 {
6757 "include": "#preprocessor-rule-enabled-implementation"
6758 },
6759 {
6760 "include": "#preprocessor-rule-disabled-implementation"
6761 },
6762 {
6763 "include": "#preprocessor-rule-other-implementation"
6764 },
6765 {
6766 "include": "#property_directive"
6767 },
6768 {
6769 "include": "#method_super"
6770 },
6771 {
6772 "include": "$base"
6773 }
6774 ]
6775 },
6776 "interface_innards": {
6777 "patterns": [
6778 {
6779 "include": "#preprocessor-rule-enabled-interface"
6780 },
6781 {
6782 "include": "#preprocessor-rule-disabled-interface"
6783 },
6784 {
6785 "include": "#preprocessor-rule-other-interface"
6786 },
6787 {
6788 "include": "#properties"
6789 },
6790 {
6791 "include": "#protocol_list"
6792 },
6793 {
6794 "include": "#method"
6795 },
6796 {
6797 "include": "$base"
6798 }
6799 ]
6800 },
6801 "method": {
6802 "begin": "^(-|\\+)\\s*",
6803 "end": "(?=\\{|#)|;",
6804 "name": "meta.function.objcpp",
6805 "patterns": [
6806 {
6807 "begin": "(\\()",
6808 "beginCaptures": {
6809 "1": {
6810 "name": "punctuation.definition.type.begin.objcpp"
6811 }
6812 },
6813 "end": "(\\))\\s*(\\w+\\b)",
6814 "endCaptures": {
6815 "1": {
6816 "name": "punctuation.definition.type.end.objcpp"
6817 },
6818 "2": {
6819 "name": "entity.name.function.objcpp"
6820 }
6821 },
6822 "name": "meta.return-type.objcpp",
6823 "patterns": [
6824 {
6825 "include": "#protocol_list"
6826 },
6827 {
6828 "include": "#protocol_type_qualifier"
6829 },
6830 {
6831 "include": "$base"
6832 }
6833 ]
6834 },
6835 {
6836 "match": "\\b\\w+(?=:)",
6837 "name": "entity.name.function.name-of-parameter.objcpp"
6838 },
6839 {
6840 "begin": "((:))\\s*(\\()",
6841 "beginCaptures": {
6842 "1": {
6843 "name": "entity.name.function.name-of-parameter.objcpp"
6844 },
6845 "2": {
6846 "name": "punctuation.separator.arguments.objcpp"
6847 },
6848 "3": {
6849 "name": "punctuation.definition.type.begin.objcpp"
6850 }
6851 },
6852 "end": "(\\))\\s*(\\w+\\b)?",
6853 "endCaptures": {
6854 "1": {
6855 "name": "punctuation.definition.type.end.objcpp"
6856 },
6857 "2": {
6858 "name": "variable.parameter.function.objcpp"
6859 }
6860 },
6861 "name": "meta.argument-type.objcpp",
6862 "patterns": [
6863 {
6864 "include": "#protocol_list"
6865 },
6866 {
6867 "include": "#protocol_type_qualifier"
6868 },
6869 {
6870 "include": "$base"
6871 }
6872 ]
6873 },
6874 {
6875 "include": "#comment"
6876 }
6877 ]
6878 },
6879 "method_super": {
6880 "begin": "^(?=-|\\+)",
6881 "end": "(?<=\\})|(?=#)",
6882 "name": "meta.function-with-body.objcpp",
6883 "patterns": [
6884 {
6885 "include": "#method"
6886 },
6887 {
6888 "include": "$base"
6889 }
6890 ]
6891 },
6892 "pragma-mark": {
6893 "captures": {
6894 "1": {
6895 "name": "meta.preprocessor.objcpp"
6896 },
6897 "2": {
6898 "name": "keyword.control.import.pragma.objcpp"
6899 },
6900 "3": {
6901 "name": "meta.toc-list.pragma-mark.objcpp"
6902 }
6903 },
6904 "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
6905 "name": "meta.section.objcpp"
6906 },
6907 "preprocessor-rule-disabled-implementation": {
6908 "begin": "^\\s*(#(if)\\s+(0)\\b).*",
6909 "captures": {
6910 "1": {
6911 "name": "meta.preprocessor.objcpp"
6912 },
6913 "2": {
6914 "name": "keyword.control.import.if.objcpp"
6915 },
6916 "3": {
6917 "name": "constant.numeric.preprocessor.objcpp"
6918 }
6919 },
6920 "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
6921 "patterns": [
6922 {
6923 "begin": "^\\s*(#\\s*(else)\\b)",
6924 "captures": {
6925 "1": {
6926 "name": "meta.preprocessor.objcpp"
6927 },
6928 "2": {
6929 "name": "keyword.control.import.else.objcpp"
6930 }
6931 },
6932 "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
6933 "patterns": [
6934 {
6935 "include": "#interface_innards"
6936 }
6937 ]
6938 },
6939 {
6940 "begin": "",
6941 "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
6942 "name": "comment.block.preprocessor.if-branch.objcpp",
6943 "patterns": [
6944 {
6945 "include": "#disabled"
6946 },
6947 {
6948 "include": "#pragma-mark"
6949 }
6950 ]
6951 }
6952 ]
6953 },
6954 "preprocessor-rule-disabled-interface": {
6955 "begin": "^\\s*(#(if)\\s+(0)\\b).*",
6956 "captures": {
6957 "1": {
6958 "name": "meta.preprocessor.objcpp"
6959 },
6960 "2": {
6961 "name": "keyword.control.import.if.objcpp"
6962 },
6963 "3": {
6964 "name": "constant.numeric.preprocessor.objcpp"
6965 }
6966 },
6967 "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
6968 "patterns": [
6969 {
6970 "begin": "^\\s*(#\\s*(else)\\b)",
6971 "captures": {
6972 "1": {
6973 "name": "meta.preprocessor.objcpp"
6974 },
6975 "2": {
6976 "name": "keyword.control.import.else.objcpp"
6977 }
6978 },
6979 "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
6980 "patterns": [
6981 {
6982 "include": "#interface_innards"
6983 }
6984 ]
6985 },
6986 {
6987 "begin": "",
6988 "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
6989 "name": "comment.block.preprocessor.if-branch.objcpp",
6990 "patterns": [
6991 {
6992 "include": "#disabled"
6993 },
6994 {
6995 "include": "#pragma-mark"
6996 }
6997 ]
6998 }
6999 ]
7000 },
7001 "preprocessor-rule-enabled-implementation": {
7002 "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
7003 "captures": {
7004 "1": {
7005 "name": "meta.preprocessor.objcpp"
7006 },
7007 "2": {
7008 "name": "keyword.control.import.if.objcpp"
7009 },
7010 "3": {
7011 "name": "constant.numeric.preprocessor.objcpp"
7012 }
7013 },
7014 "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
7015 "patterns": [
7016 {
7017 "begin": "^\\s*(#\\s*(else)\\b).*",
7018 "captures": {
7019 "1": {
7020 "name": "meta.preprocessor.objcpp"
7021 },
7022 "2": {
7023 "name": "keyword.control.import.else.objcpp"
7024 }
7025 },
7026 "contentName": "comment.block.preprocessor.else-branch.objcpp",
7027 "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
7028 "patterns": [
7029 {
7030 "include": "#disabled"
7031 },
7032 {
7033 "include": "#pragma-mark"
7034 }
7035 ]
7036 },
7037 {
7038 "begin": "",
7039 "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
7040 "patterns": [
7041 {
7042 "include": "#implementation_innards"
7043 }
7044 ]
7045 }
7046 ]
7047 },
7048 "preprocessor-rule-enabled-interface": {
7049 "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
7050 "captures": {
7051 "1": {
7052 "name": "meta.preprocessor.objcpp"
7053 },
7054 "2": {
7055 "name": "keyword.control.import.if.objcpp"
7056 },
7057 "3": {
7058 "name": "constant.numeric.preprocessor.objcpp"
7059 }
7060 },
7061 "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
7062 "patterns": [
7063 {
7064 "begin": "^\\s*(#\\s*(else)\\b).*",
7065 "captures": {
7066 "1": {
7067 "name": "meta.preprocessor.objcpp"
7068 },
7069 "2": {
7070 "name": "keyword.control.import.else.objcpp"
7071 }
7072 },
7073 "contentName": "comment.block.preprocessor.else-branch.objcpp",
7074 "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
7075 "patterns": [
7076 {
7077 "include": "#disabled"
7078 },
7079 {
7080 "include": "#pragma-mark"
7081 }
7082 ]
7083 },
7084 {
7085 "begin": "",
7086 "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
7087 "patterns": [
7088 {
7089 "include": "#interface_innards"
7090 }
7091 ]
7092 }
7093 ]
7094 },
7095 "preprocessor-rule-other-implementation": {
7096 "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
7097 "captures": {
7098 "1": {
7099 "name": "meta.preprocessor.objcpp"
7100 },
7101 "2": {
7102 "name": "keyword.control.import.objcpp"
7103 }
7104 },
7105 "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
7106 "patterns": [
7107 {
7108 "include": "#implementation_innards"
7109 }
7110 ]
7111 },
7112 "preprocessor-rule-other-interface": {
7113 "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
7114 "captures": {
7115 "1": {
7116 "name": "meta.preprocessor.objcpp"
7117 },
7118 "2": {
7119 "name": "keyword.control.import.objcpp"
7120 }
7121 },
7122 "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
7123 "patterns": [
7124 {
7125 "include": "#interface_innards"
7126 }
7127 ]
7128 },
7129 "properties": {
7130 "patterns": [
7131 {
7132 "begin": "((@)property)\\s*(\\()",
7133 "beginCaptures": {
7134 "1": {
7135 "name": "keyword.other.property.objcpp"
7136 },
7137 "2": {
7138 "name": "punctuation.definition.keyword.objcpp"
7139 },
7140 "3": {
7141 "name": "punctuation.section.scope.begin.objcpp"
7142 }
7143 },
7144 "end": "(\\))",
7145 "endCaptures": {
7146 "1": {
7147 "name": "punctuation.section.scope.end.objcpp"
7148 }
7149 },
7150 "name": "meta.property-with-attributes.objcpp",
7151 "patterns": [
7152 {
7153 "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",
7154 "name": "keyword.other.property.attribute.objcpp"
7155 }
7156 ]
7157 },
7158 {
7159 "captures": {
7160 "1": {
7161 "name": "keyword.other.property.objcpp"
7162 },
7163 "2": {
7164 "name": "punctuation.definition.keyword.objcpp"
7165 }
7166 },
7167 "match": "((@)property)\\b",
7168 "name": "meta.property.objcpp"
7169 }
7170 ]
7171 },
7172 "property_directive": {
7173 "captures": {
7174 "1": {
7175 "name": "punctuation.definition.keyword.objcpp"
7176 }
7177 },
7178 "match": "(@)(dynamic|synthesize)\\b",
7179 "name": "keyword.other.property.directive.objcpp"
7180 },
7181 "protocol_list": {
7182 "begin": "(<)",
7183 "beginCaptures": {
7184 "1": {
7185 "name": "punctuation.section.scope.begin.objcpp"
7186 }
7187 },
7188 "end": "(>)",
7189 "endCaptures": {
7190 "1": {
7191 "name": "punctuation.section.scope.end.objcpp"
7192 }
7193 },
7194 "name": "meta.protocol-list.objcpp",
7195 "patterns": [
7196 {
7197 "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",
7198 "name": "support.other.protocol.objcpp"
7199 }
7200 ]
7201 },
7202 "protocol_type_qualifier": {
7203 "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",
7204 "name": "storage.modifier.protocol.objcpp"
7205 },
7206 "special_variables": {
7207 "patterns": [
7208 {
7209 "match": "\\b_cmd\\b",
7210 "name": "variable.other.selector.objcpp"
7211 },
7212 {
7213 "match": "\\b(self|super)\\b",
7214 "name": "variable.language.objcpp"
7215 }
7216 ]
7217 },
7218 "string_escaped_char": {
7219 "patterns": [
7220 {
7221 "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} )",
7222 "name": "constant.character.escape.objcpp"
7223 },
7224 {
7225 "match": "\\\\.",
7226 "name": "invalid.illegal.unknown-escape.objcpp"
7227 }
7228 ]
7229 },
7230 "string_placeholder": {
7231 "patterns": [
7232 {
7233 "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",
7234 "name": "constant.other.placeholder.objcpp"
7235 },
7236 {
7237 "match": "(%)(?!\"\\s*(PRI|SCN))",
7238 "captures": {
7239 "1": {
7240 "name": "invalid.illegal.placeholder.objcpp"
7241 }
7242 }
7243 }
7244 ]
7245 }
7246 }
7247 }
7248