Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/vitest-dev/vscode. VS Code extension for Vitest vitest.dev/vscode
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>name</key> <string>Vitest Snapshot</string> <key>scopeName</key> <string>source.vitest.snap</string> <key>fileTypes</key> <array> <string>.snap</string> </array> <key>uuid</key> <string>805315ec-f614-11f5-8993-5843fe63ea82</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#directives</string> </dict> <dict> <key>include</key> <string>#statements</string> </dict> <dict> <key>name</key> <string>comment.line.shebang.ts</string> <key>match</key> <string>\A(#!).*(?=$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.comment.ts</string> </dict> </dict> </dict> </array> <key>repository</key> <dict> <key>statements</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#template</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#literal</string> </dict> <dict> <key>include</key> <string>#declaration</string> </dict> <dict> <key>include</key> <string>#switch-statement</string> </dict> <dict> <key>include</key> <string>#for-loop</string> </dict> <dict> <key>include</key> <string>#after-operator-block</string> </dict> <dict> <key>include</key> <string>#decl-block</string> </dict> <dict> <key>include</key> <string>#control-statement</string> </dict> <dict> <key>include</key> <string>#expression</string> </dict> <dict> <key>include</key> <string>#punctuation-semicolon</string> </dict> </array> </dict> <key>var-expr</key> <dict> <key>name</key> <string>meta.var.expr.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?\b(var|let|const(?!\s+enum\b))\b(?!\$)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|;|}|(\s+(of|in)\s+))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#destructuring-variable</string> </dict> <dict> <key>include</key> <string>#var-single-variable</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>var-single-variable</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.var-single-variable.expr.tsx</string> <key>begin</key> <string>(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\s* (=\s*( (async\s+) | (function\s*[(<]) | (function\s+) | ([_$[:alpha:]][_$[:alnum:]]*\s*=>) | ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)) ) | (:\s*( (<) | ([(]\s*( ([)]) | (\.\.\.) | ([_$[:alnum:]]+\s*( ([:,?=])| ([)]\s*=>) )) ))) ))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>meta.definition.variable.tsx entity.name.function.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|[;,=}]|(\s+(of|in)\s+))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.var-single-variable.expr.tsx</string> <key>begin</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>meta.definition.variable.tsx variable.other.readwrite.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|[;,=}]|(\s+(of|in)\s+))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> </array> </dict> </array> </dict> <key>destructuring-variable</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.object-binding-pattern-variable.tsx</string> <key>begin</key> <string>(?<!=|:|of|in)\s*(?=\{)</string> <key>end</key> <string>(?=$|[;,=}]|(\s+(of|in)\s+))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#object-binding-pattern</string> </dict> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.array-binding-pattern-variable.tsx</string> <key>begin</key> <string>(?<!=|:|of|in)\s*(?=\[)</string> <key>end</key> <string>(?=$|[;,=}]|(\s+(of|in)\s+))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#array-binding-pattern</string> </dict> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> </array> </dict> </array> </dict> <key>object-binding-element</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>begin</key> <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string> <key>end</key> <string>(?=,|\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#object-binding-element-propertyName</string> </dict> <dict> <key>include</key> <string>#binding-element</string> </dict> </array> </dict> <dict> <key>include</key> <string>#object-binding-pattern</string> </dict> <dict> <key>include</key> <string>#destructuring-variable-rest</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>object-binding-element-propertyName</key> <dict> <key>begin</key> <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string> <key>end</key> <string>(:)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.destructuring.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#array-literal</string> </dict> <dict> <key>name</key> <string>variable.object.property.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> </dict> </array> </dict> <key>binding-element</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#object-binding-pattern</string> </dict> <dict> <key>include</key> <string>#array-binding-pattern</string> </dict> <dict> <key>include</key> <string>#destructuring-variable-rest</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> </array> </dict> <key>destructuring-variable-rest</key> <dict> <key>match</key> <string>(?:(\.\.\.)\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>meta.definition.variable.tsx variable.other.readwrite.tsx</string> </dict> </dict> </dict> <key>object-binding-pattern</key> <dict> <key>begin</key> <string>(?:(\.\.\.)\s*)?(\{)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.object.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.object.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#object-binding-element</string> </dict> </array> </dict> <key>array-binding-pattern</key> <dict> <key>begin</key> <string>(?:(\.\.\.)\s*)?(\[)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.array.tsx</string> </dict> </dict> <key>end</key> <string>\]</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.array.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#binding-element</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>ternary-expression</key> <dict> <key>begin</key> <string>(\?)</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.operator.ternary.tsx</string> </dict> </dict> <key>end</key> <string>(:)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.operator.ternary.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>expression</key> <dict> <key>name</key> <string>meta.expression.tsx</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#regex</string> </dict> <dict> <key>include</key> <string>#template</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#literal</string> </dict> <dict> <key>include</key> <string>#function-declaration</string> </dict> <dict> <key>include</key> <string>#class-or-interface-declaration</string> </dict> <dict> <key>include</key> <string>#arrow-function</string> </dict> <dict> <key>include</key> <string>#cast</string> </dict> <dict> <key>include</key> <string>#ternary-expression</string> </dict> <dict> <key>include</key> <string>#new-expr</string> </dict> <dict> <key>include</key> <string>#object-literal</string> </dict> <dict> <key>include</key> <string>#expression-operators</string> </dict> <dict> <key>include</key> <string>#function-call</string> </dict> <dict> <key>include</key> <string>#support-objects</string> </dict> <dict> <key>include</key> <string>#identifiers</string> </dict> <dict> <key>include</key> <string>#paren-expression</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> <dict> <key>include</key> <string>#punctuation-accessor</string> </dict> </array> </dict> <key>control-statement</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>keyword.control.trycatch.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(catch|finally|throw|try)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.control.loop.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(break|continue|do|goto|while)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.control.flow.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(return)\b(?!\$)</string> </dict> <dict> <key>match</key> <string>(?<!\.|\$)\b(yield)\b(?!\$)(?:\s*(\*))?</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.flow.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>keyword.control.switch.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(case|default|switch)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.control.conditional.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(else|if)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.control.with.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(with)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.other.debugger.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(debugger)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>storage.modifier.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(declare)\b(?!\$)</string> </dict> </array> </dict> <key>declaration</key> <dict> <key>name</key> <string>meta.declaration.tsx</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#decorator</string> </dict> <dict> <key>include</key> <string>#var-expr</string> </dict> <dict> <key>include</key> <string>#function-declaration</string> </dict> <dict> <key>include</key> <string>#class-or-interface-declaration</string> </dict> <dict> <key>include</key> <string>#type-declaration</string> </dict> <dict> <key>include</key> <string>#enum-declaration</string> </dict> <dict> <key>include</key> <string>#namespace-declaration</string> </dict> <dict> <key>include</key> <string>#import-equals-declaration</string> </dict> <dict> <key>include</key> <string>#import-declaration</string> </dict> <dict> <key>include</key> <string>#export-declaration</string> </dict> </array> </dict> <key>decorator</key> <dict> <key>name</key> <string>meta.decorator.tsx</string> <key>begin</key> <string>(?<!\.|\$)\@</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.decorator.tsx</string> </dict> </dict> <key>end</key> <string>(?=\s)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>type-declaration</key> <dict> <key>name</key> <string>meta.type.declaration.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?\b(type)\b\s+([_$[:alpha:]][_$[:alnum:]]*)\s*</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.type.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>entity.name.type.tsx</string> </dict> </dict> <key>end</key> <string>(?=[};]|\bvar\b|\blet\b|\bconst\b|\btype\b|\bfunction\b|\bclass\b|\binterface\b|\bnamespace\b|\bmodule\b|\bimport\b|\benum\b|\bdeclare\b|\bexport\b|\babstract\b|\basync\b)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> <dict> <key>match</key> <string>(=)\s*</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> </dict> </dict> </dict> </array> </dict> <key>enum-declaration</key> <dict> <key>name</key> <string>meta.enum.declaration.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?(?:\b(const)\s+)?\b(enum)\s+([_$[:alpha:]][_$[:alnum:]]*)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.enum.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>entity.name.type.enum.tsx</string> </dict> </dict> <key>end</key> <string>(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>begin</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>variable.other.enummember.tsx</string> </dict> </dict> <key>end</key> <string>(?=,|\}|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> </array> </dict> <dict> <key>begin</key> <string>(?=((\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\])))</string> <key>end</key> <string>(?=,|\}|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#array-literal</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> </array> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> </array> </dict> <key>namespace-declaration</key> <dict> <key>name</key> <string>meta.namespace.declaration.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?\b(namespace|module)\s+</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.namespace.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|\{)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>name</key> <string>entity.name.type.module.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> </dict> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> <key>match</key> <string>\.</string> </dict> </array> </dict> <key>import-equals-declaration</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.import-equals.external.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?\b(import)\s+([_$[:alpha:]][_$[:alnum:]]*)\s*(=)\s*(require)\s*(\()</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.control.import.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.other.readwrite.alias.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>keyword.control.require.tsx</string> </dict> <key>6</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.import-equals.internal.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?\b(import)\s+([_$[:alpha:]][_$[:alnum:]]*)\s*(=)\s*(?!require\b)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.control.import.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.other.readwrite.alias.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> </dict> </dict> <key>end</key> <string>(?=;|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)\s*(\.)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>entity.name.type.module.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>variable.other.readwrite.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> </dict> </array> </dict> </array> </dict> <key>import-declaration</key> <dict> <key>name</key> <string>meta.import.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:(\bexport)\s+)?\b(import)(?!(\s*:)|(\$))\b</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.control.import.tsx</string> </dict> </dict> <key>end</key> <string>(?=;|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#import-export-declaration</string> </dict> </array> </dict> <key>export-declaration</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>(?<!\.|\$)\b(export)\s+(as)\s+(namespace)\s+([_$[:alpha:]][_$[:alnum:]]*)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.control.as.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.namespace.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>entity.name.type.module.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>meta.export.default.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(export)(?:(?:\s*(=))|(?:\s+(default)(?=\s+)))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>keyword.control.default.tsx</string> </dict> </dict> <key>end</key> <string>(?=;|\bexport\b|\bfunction\b|\bclass\b|\binterface\b|\blet\b|\bvar\b|\bconst\b|\bimport\b|\benum\b|\bnamespace\b|\bmodule\b|\btype\b|\babstract\b|\bdeclare\b|\basync\b|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.export.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(export)(?!(\s*:)|(\$))\b</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> </dict> <key>end</key> <string>(?=;|\bexport\b|\bfunction\b|\bclass\b|\binterface\b|\blet\b|\bvar\b|\bconst\b|\bimport\b|\benum\b|\bnamespace\b|\bmodule\b|\btype\b|\babstract\b|\bdeclare\b|\basync\b|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#import-export-declaration</string> </dict> </array> </dict> </array> </dict> <key>import-export-declaration</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#import-export-block</string> </dict> <dict> <key>name</key> <string>keyword.control.from.tsx</string> <key>match</key> <string>\bfrom\b</string> </dict> <dict> <key>include</key> <string>#import-export-clause</string> </dict> </array> </dict> <key>import-export-block</key> <dict> <key>name</key> <string>meta.block.tsx</string> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#import-export-clause</string> </dict> </array> </dict> <key>import-export-clause</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>comment</key> <string>(default|*|name) as alias</string> <key>match</key> <string>(?x) (?: \b(default)\b | (\*) | ([_$[:alpha:]][_$[:alnum:]]*)) \s+ (as) \s+ (?: (\b default \b | \*) | ([_$[:alpha:]][_$[:alnum:]]*))</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.default.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>constant.language.import-export-all.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.other.readwrite.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.control.as.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>invalid.illegal.tsx</string> </dict> <key>6</key> <dict> <key>name</key> <string>variable.other.readwrite.alias.tsx</string> </dict> </dict> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> <dict> <key>name</key> <string>constant.language.import-export-all.tsx</string> <key>match</key> <string>\*</string> </dict> <dict> <key>name</key> <string>keyword.control.default.tsx</string> <key>match</key> <string>\b(default)\b</string> </dict> <dict> <key>name</key> <string>variable.other.readwrite.alias.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> </dict> </array> </dict> <key>class-or-interface-declaration</key> <dict> <key>name</key> <string>meta.class.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(?:(export)\s+)?\b(?:(abstract)\s+)?\b(?:(class)|(interface))\b</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.class.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>storage.type.interface.tsx</string> </dict> </dict> <key>end</key> <string>(?<=\})</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#class-or-interface-heritage</string> </dict> <dict> <key>match</key> <string>[_$[:alpha:]][_$[:alnum:]]*</string> <key>captures</key> <dict> <key>0</key> <dict> <key>name</key> <string>entity.name.type.class.tsx</string> </dict> </dict> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#class-or-interface-body</string> </dict> </array> </dict> <key>class-or-interface-heritage</key> <dict> <key>begin</key> <string>(?<!\.|\$)(?:\b(extends|implements)\b)(?!\$)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> </dict> <key>end</key> <string>(?=\{)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#class-or-interface-heritage</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)\s*(\.)(?=\s*[_$[:alpha:]][_$[:alnum:]]*(\s*\.\s*[_$[:alpha:]][_$[:alnum:]]*)*\s*([,<{]|extends|implements|//|/\*))</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>entity.name.type.module.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)(?=\s*([,<{]|extends|implements|//|/\*))</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>entity.other.inherited-class.tsx</string> </dict> </dict> </dict> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>class-or-interface-body</key> <dict> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#decorator</string> </dict> <dict> <key>include</key> <string>#method-declaration</string> </dict> <dict> <key>include</key> <string>#indexer-declaration</string> </dict> <dict> <key>include</key> <string>#field-declaration</string> </dict> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> <dict> <key>include</key> <string>#access-modifier</string> </dict> <dict> <key>include</key> <string>#property-accessor</string> </dict> <dict> <key>include</key> <string>#expression</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> <dict> <key>include</key> <string>#punctuation-semicolon</string> </dict> </array> </dict> <key>type-object</key> <dict> <key>name</key> <string>meta.object.type.tsx</string> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-object-members</string> </dict> </array> </dict> <key>type-object-members</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#method-declaration</string> </dict> <dict> <key>include</key> <string>#indexer-declaration</string> </dict> <dict> <key>include</key> <string>#indexer-mapped-type-declaration</string> </dict> <dict> <key>include</key> <string>#field-declaration</string> </dict> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>begin</key> <string>\.\.\.</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.operator.spread.tsx</string> </dict> </dict> <key>end</key> <string>(?=\}|;|,|$)|(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> <dict> <key>include</key> <string>#punctuation-semicolon</string> </dict> </array> </dict> <key>field-declaration</key> <dict> <key>name</key> <string>meta.field.declaration.tsx</string> <key>begin</key> <string>(?<!\()(?:(?<!\.|\$)\b(readonly)\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> </dict> <key>end</key> <string>(?=\}|;|,|$)|(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#variable-initializer</string> </dict> <dict> <key>begin</key> <string>(?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\?\s*)?(=|:))</string> <key>end</key> <string>(?=[};,=]|$)|(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#array-literal</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>name</key> <string>meta.definition.property.tsx entity.name.function.tsx</string> <key>match</key> <string>(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\?\s*)?\s* (=\s*( (async\s+) | (function\s*[(<]) | (function\s+) | ([_$[:alpha:]][_$[:alnum:]]*\s*=>) | ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)) ) | (:\s*( (<) | ([(]\s*( ([)]) | (\.\.\.) | ([_$[:alnum:]]+\s*( ([:,?=])| ([)]\s*=>) )) ))) ))</string> </dict> <dict> <key>name</key> <string>meta.definition.property.tsx variable.object.property.tsx</string> <key>match</key> <string>[_$[:alpha:]][_$[:alnum:]]*</string> </dict> <dict> <key>name</key> <string>keyword.operator.optional.tsx</string> <key>match</key> <string>\?</string> </dict> </array> </dict> </array> </dict> <key>method-declaration</key> <dict> <key>name</key> <string>meta.method.declaration.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$|:))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\<]))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>storage.type.property.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>keyword.operator.new.tsx</string> </dict> <key>6</key> <dict> <key>name</key> <string>storage.type.tsx</string> </dict> <key>7</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> </dict> <key>end</key> <string>(?=\}|;|,)|(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#method-declaration-name</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#function-parameters</string> </dict> <dict> <key>include</key> <string>#return-type</string> </dict> <dict> <key>include</key> <string>#method-overload-declaration</string> </dict> <dict> <key>include</key> <string>#decl-block</string> </dict> </array> </dict> <key>method-overload-declaration</key> <dict> <key>begin</key> <string>(?<!\.|\$)(?:\b(public|private|protected)\s+)?(?:\b(abstract)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(?:\b(?:(new)|(constructor))\b(?!\$|:))|(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\<]))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>storage.type.property.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>keyword.operator.new.tsx</string> </dict> <key>6</key> <dict> <key>name</key> <string>storage.type.tsx</string> </dict> <key>7</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> </dict> <key>end</key> <string>(?=\(|\<)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#method-declaration-name</string> </dict> </array> </dict> <key>method-declaration-name</key> <dict> <key>begin</key> <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??)\s*[\(\<])</string> <key>end</key> <string>(?=\(|\<)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#array-literal</string> </dict> <dict> <key>name</key> <string>meta.definition.method.tsx entity.name.function.tsx</string> <key>match</key> <string>[_$[:alpha:]][_$[:alnum:]]*</string> </dict> <dict> <key>name</key> <string>keyword.operator.optional.tsx</string> <key>match</key> <string>\?</string> </dict> </array> </dict> <key>object-literal-method-declaration</key> <dict> <key>name</key> <string>meta.method.declaration.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\<])</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.property.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> </dict> <key>end</key> <string>(?=\}|;|,)|(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#method-declaration-name</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#function-parameters</string> </dict> <dict> <key>include</key> <string>#return-type</string> </dict> <dict> <key>include</key> <string>#method-overload-declaration</string> </dict> <dict> <key>include</key> <string>#decl-block</string> </dict> </array> </dict> <key>object-literal-method-overload-declaration</key> <dict> <key>begin</key> <string>(?<!\.|\$)(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\*)\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(\??))?\s*[\(\<])</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.property.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> </dict> <key>end</key> <string>(?=\(|\<)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#method-declaration-name</string> </dict> </array> </dict> <key>indexer-declaration</key> <dict> <key>name</key> <string>meta.indexer.declaration.tsx</string> <key>begin</key> <string>(?:(?<!\.|\$)\b(readonly)\s*)?(\[)\s*([_$[:alpha:]][_$[:alnum:]]*)\s*(?=:)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.parameter.tsx</string> </dict> </dict> <key>end</key> <string>(\])\s*(\?\s*)?|$</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.operator.optional.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-annotation</string> </dict> </array> </dict> <key>indexer-mapped-type-declaration</key> <dict> <key>name</key> <string>meta.indexer.mappedtype.declaration.tsx</string> <key>begin</key> <string>(?:(?<!\.|\$)\b(readonly)\s*)?(\[)\s*([_$[:alpha:]][_$[:alnum:]]*)\s+(in)\s+</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>entity.name.type.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.operator.expression.in.tsx</string> </dict> </dict> <key>end</key> <string>(\])\s*(\?\s*)?|$</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.operator.optional.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <key>function-declaration</key> <dict> <key>name</key> <string>meta.function.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s*(\*))?(?:(?:\s+|(?<=\*))([_$[:alpha:]][_$[:alnum:]]*))?\s*</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.function.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>meta.definition.function.tsx entity.name.function.tsx</string> </dict> </dict> <key>end</key> <string>(?=;|\})|(?<=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#function-parameters</string> </dict> <dict> <key>include</key> <string>#return-type</string> </dict> <dict> <key>include</key> <string>#function-overload-declaration</string> </dict> <dict> <key>include</key> <string>#decl-block</string> </dict> </array> </dict> <key>function-overload-declaration</key> <dict> <key>name</key> <string>meta.function.overload.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(?:(export)\s+)?(?:(async)\s+)?(function\b)(?:\s*(\*))?(?:(?:\s+|(?<=\*))([_$[:alpha:]][_$[:alnum:]]*))?\s*</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.export.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.function.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.generator.asterisk.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>meta.definition.function.tsx entity.name.function.tsx</string> </dict> </dict> </dict> <key>object-literal</key> <dict> <key>name</key> <string>meta.objectliteral.tsx</string> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#object-member</string> </dict> </array> </dict> <key>decl-block</key> <dict> <key>name</key> <string>meta.block.tsx</string> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#statements</string> </dict> </array> </dict> <key>after-operator-block</key> <dict> <key>name</key> <string>meta.objectliteral.tsx</string> <key>begin</key> <string>(?<=[=(,\[?+!]|await|return|yield|throw|in|of|typeof|&&|\|\||\*)\s*(\{)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#object-member</string> </dict> </array> </dict> <key>parameter-name</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\s*\b(public|protected|private|readonly)(?=\s+(public|protected|private|readonly)\s+)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x)(?:\s*\b(public|private|protected|readonly)\s+)?(\.\.\.)?\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\s*(\??)(?=\s* (=\s*( (async\s+) | (function\s*[(<]) | (function\s+) | ([_$[:alpha:]][_$[:alnum:]]*\s*=>) | ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)) ) | (:\s*( (<) | ([(]\s*( ([)]) | (\.\.\.) | ([_$[:alnum:]]+\s*( ([:,?=])| ([)]\s*=>) )) ))) ))</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>entity.name.function.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.operator.optional.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?:\s*\b(public|private|protected|readonly)\s+)?(\.\.\.)?\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\s*(\??)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.parameter.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>keyword.operator.optional.tsx</string> </dict> </dict> </dict> </array> </dict> <key>destructuring-parameter</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.parameter.object-binding-pattern.tsx</string> <key>begin</key> <string>(?<!=|:)\s*(\{)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.object.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.object.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#parameter-object-binding-element</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.paramter.array-binding-pattern.tsx</string> <key>begin</key> <string>(?<!=|:)\s*(\[)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.array.tsx</string> </dict> </dict> <key>end</key> <string>\]</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.array.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#parameter-binding-element</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> </array> </dict> <key>parameter-object-binding-element</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>begin</key> <string>(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\'[^']*\')|(\"[^"]*\")|(\[([^\[\]]|\[[^\[\]]*\])+\]))\s*(:))</string> <key>end</key> <string>(?=,|\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#object-binding-element-propertyName</string> </dict> <dict> <key>include</key> <string>#parameter-binding-element</string> </dict> </array> </dict> <dict> <key>include</key> <string>#parameter-object-binding-pattern</string> </dict> <dict> <key>include</key> <string>#destructuring-parameter-rest</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>parameter-binding-element</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#parameter-object-binding-pattern</string> </dict> <dict> <key>include</key> <string>#parameter-array-binding-pattern</string> </dict> <dict> <key>include</key> <string>#destructuring-parameter-rest</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> </array> </dict> <key>destructuring-parameter-rest</key> <dict> <key>match</key> <string>(?:(\.\.\.)\s*)?([_$[:alpha:]][_$[:alnum:]]*)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.parameter.tsx</string> </dict> </dict> </dict> <key>parameter-object-binding-pattern</key> <dict> <key>begin</key> <string>(?:(\.\.\.)\s*)?(\{)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.object.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.object.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#parameter-object-binding-element</string> </dict> </array> </dict> <key>parameter-array-binding-pattern</key> <dict> <key>begin</key> <string>(?:(\.\.\.)\s*)?(\[)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.rest.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.array.tsx</string> </dict> </dict> <key>end</key> <string>\]</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.binding-pattern.array.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#parameter-binding-element</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>return-type</key> <dict> <key>name</key> <string>meta.return.type.tsx</string> <key>begin</key> <string>(?<=\))\s*(:)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.type.annotation.tsx</string> </dict> </dict> <key>end</key> <string>(?<!:)((?=$)|(?=\{|;|//|\}))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>name</key> <string>meta.object.type.tsx</string> <key>begin</key> <string>(?<=:)\s*(\{)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-object-members</string> </dict> </array> </dict> <dict> <key>include</key> <string>#type-predicate-operator</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <key>type-predicate-operator</key> <dict> <key>name</key> <string>keyword.operator.expression.is.tsx</string> <key>match</key> <string>(?<!\.|\$)\bis\b(?!\$)</string> </dict> <key>type-annotation</key> <dict> <key>name</key> <string>meta.type.annotation.tsx</string> <key>begin</key> <string>:</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.operator.type.annotation.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|[,);\}\]]|//)|(?==[^>])|(?<=[\}>\]\)]|[_$[:alpha:]])\s*(?=\{)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <key>type</key> <dict> <key>name</key> <string>meta.type.tsx</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#numeric-literal</string> </dict> <dict> <key>include</key> <string>#type-primitive</string> </dict> <dict> <key>include</key> <string>#type-builtin-literals</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#type-tuple</string> </dict> <dict> <key>include</key> <string>#type-object</string> </dict> <dict> <key>include</key> <string>#type-operators</string> </dict> <dict> <key>include</key> <string>#type-fn-type-parameters</string> </dict> <dict> <key>include</key> <string>#type-paren-or-function-parameters</string> </dict> <dict> <key>include</key> <string>#type-function-return-type</string> </dict> <dict> <key>include</key> <string>#type-name</string> </dict> </array> </dict> <key>function-parameters</key> <dict> <key>name</key> <string>meta.parameters.tsx</string> <key>begin</key> <string>\(</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.parameters.begin.tsx</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.parameters.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#decorator</string> </dict> <dict> <key>include</key> <string>#destructuring-parameter</string> </dict> <dict> <key>include</key> <string>#parameter-name</string> </dict> <dict> <key>include</key> <string>#type-annotation</string> </dict> <dict> <key>include</key> <string>#variable-initializer</string> </dict> <dict> <key>name</key> <string>punctuation.separator.parameter.tsx</string> <key>match</key> <string>,</string> </dict> </array> </dict> <key>type-primitive</key> <dict> <key>name</key> <string>support.type.primitive.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(string|number|boolean|symbol|any|void|never)\b(?!\$)</string> </dict> <key>type-builtin-literals</key> <dict> <key>name</key> <string>support.type.builtin.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(this|true|false|undefined|null)\b(?!\$)</string> </dict> <key>type-paren-or-function-parameters</key> <dict> <key>name</key> <string>meta.type.paren.cover.tsx</string> <key>begin</key> <string>\(</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type</string> </dict> <dict> <key>include</key> <string>#function-parameters</string> </dict> </array> </dict> <key>type-fn-type-parameters</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.type.constructor.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(new)\b(?=\s*\<)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.new.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>meta.type.constructor.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(new)\b\s*(?=\()</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.new.tsx</string> </dict> </dict> <key>end</key> <string>(?<=\))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#function-parameters</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.type.function.tsx</string> <key>begin</key> <string>(?<=\>)\s*(?=\()</string> <key>end</key> <string>(?<=\))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#function-parameters</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.type.function.tsx</string> <key>begin</key> <string>(?x)( (?= [(]\s*( ([)]) | (\.\.\.) | ([_$[:alnum:]]+\s*( ([:,?=])| ([)]\s*=>) )) ) ))</string> <key>end</key> <string>(?<=\))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#function-parameters</string> </dict> </array> </dict> </array> </dict> <key>type-operators</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#typeof-operator</string> </dict> <dict> <key>name</key> <string>keyword.operator.type.tsx</string> <key>match</key> <string>[&|]</string> </dict> <dict> <key>name</key> <string>keyword.operator.expression.keyof.tsx</string> <key>match</key> <string>(?<!\.|\$)\bkeyof\b(?!\$)</string> </dict> </array> </dict> <key>type-function-return-type</key> <dict> <key>name</key> <string>meta.type.function.return.tsx</string> <key>begin</key> <string>=></string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>storage.type.function.arrow.tsx</string> </dict> </dict> <key>end</key> <string>(?<!=>)(?=[,\]\)\{\}=;>]|//|$)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>name</key> <string>meta.object.type.tsx</string> <key>begin</key> <string>(?<==>)\s*(\{)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-object-members</string> </dict> </array> </dict> <dict> <key>include</key> <string>#type-predicate-operator</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <key>type-tuple</key> <dict> <key>name</key> <string>meta.type.tuple.tsx</string> <key>begin</key> <string>\[</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> </dict> <key>end</key> <string>\]</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>type-name</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)\s*(\.)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>entity.name.type.module.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>entity.name.type.tsx</string> <key>match</key> <string>[_$[:alpha:]][_$[:alnum:]]*</string> </dict> </array> </dict> <key>type-parameters</key> <dict> <key>name</key> <string>meta.type.parameters.tsx</string> <key>begin</key> <string>(<)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.typeparameters.begin.tsx</string> </dict> </dict> <key>end</key> <string>(?=$)|(>)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.typeparameters.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>name</key> <string>storage.modifier.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(extends)\b(?!\$)</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>variable-initializer</key> <dict> <key>begin</key> <string>(?<!=|!)(=)(?!=)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|[,);}\]])</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>for-loop</key> <dict> <key>begin</key> <string>(?<!\.|\$)\b(for)\s*(\()</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.loop.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#var-expr</string> </dict> <dict> <key>include</key> <string>#expression</string> </dict> <dict> <key>include</key> <string>#punctuation-semicolon</string> </dict> </array> </dict> <key>switch-expression</key> <dict> <key>name</key> <string>switch-expression.expr.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(switch)\s*(\()</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.switch.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>switch-block</key> <dict> <key>name</key> <string>switch-block.expr.tsx</string> <key>begin</key> <string>\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>end</key> <string>(?=\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#case-clause</string> </dict> <dict> <key>include</key> <string>#statements</string> </dict> </array> </dict> <key>case-clause</key> <dict> <key>name</key> <string>case-clause.expr.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(case|default(?=:))\b(?!\$)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.control.switch.tsx</string> </dict> </dict> <key>end</key> <string>:</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.section.case-statement.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>switch-statement</key> <dict> <key>name</key> <string>switch-statement.expr.tsx</string> <key>begin</key> <string>(?<!\.|\$)(?=\bswitch\s*\()</string> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.block.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#switch-expression</string> </dict> <dict> <key>include</key> <string>#switch-block</string> </dict> </array> </dict> <key>support-objects</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>variable.language.arguments.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(arguments)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>support.class.builtin.tsx</string> <key>match</key> <string>(?x)(?<!\.|\$)\b(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator |GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>support.class.error.tsx</string> <key>match</key> <string>(?<!\.|\$)\b((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>support.function.tsx</string> <key>match</key> <string>(?x)(?<!\.|\$)\b(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval| isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\s*\() </string> </dict> <dict> <key>match</key> <string>(?x)(?<!\.|\$)\b(Math)(?:\s*(\.)\s*(?: (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp| expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random| round|sign|sin|sinh|sqrt|tan|tanh|trunc) | (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.constant.math.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.function.math.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>support.constant.property.math.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x)(?<!\.|\$)\b(console)(?:\s*(\.)\s*( assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.class.console.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.function.console.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?<!\.|\$)\b(JSON)(?:\s*(\.)\s*(parse|stringify))?\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.constant.json.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.function.json.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x) (\.) \s* (?: (constructor|length|prototype|__proto__) | (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY))\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.variable.property.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.constant.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x) (?<!\.|\$) \b (?: (document|event|navigator|performance|screen|window) | (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult |XSLTProcessor))\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.variable.dom.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.class.dom.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x) (\.) \s* (?: (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR) | (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\b(?!\$|\s*(<([^<>]|\<[^<>]+\>)+>\s*)?\()</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.constant.dom.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.variable.property.dom.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>support.class.node.tsx</string> <key>match</key> <string>(?x)(?<!\.|\$)\b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>support.module.node.tsx</string> <key>match</key> <string>(?x)(?<!\.|\$)\b(assert|buffer|child_process|cluster|constants|crypto|dgram|dns|domain|events|fs|http|https|net |os|path|punycode|querystring|readline|repl|stream|string_decoder|timers|tls|tty|url|util|vm|zlib)\b(?!\$)</string> </dict> <dict> <key>match</key> <string>(?x)(?<!\.|\$)\b(process)(?:(\.)(?: (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions) | (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)))?\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.variable.object.process.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.variable.property.process.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>support.function.process.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?<!\.|\$)\b(?:(exports)|(module)(?:(\.)(exports|id|filename|loaded|parent|children))?)\b(?!\$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.type.object.module.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.type.object.module.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>support.type.object.module.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>support.variable.object.node.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(global|GLOBAL|root|__dirname|__filename)\b(?!\$)</string> </dict> <dict> <key>match</key> <string>(?x) (\.) \s* (?: (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset| Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove| Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)| Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help| Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate| Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover| Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error| Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort) ) | (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages| scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort| sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours| Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)| Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice| savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat| contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup| createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)| test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift| untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse| print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file| fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor| forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert| abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload| releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear| Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)| Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo| moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back ) | (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append| appendChild|appendData|before|blur|canPlayType|captureStream| caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click| cloneContents|cloneNode|cloneRange|close|closest|collapse| compareBoundaryPoints|compareDocumentPosition|comparePoint|contains| convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute| createAttributeNS|createCaption|createCDATASection|createComment| createContextualFragment|createDocument|createDocumentFragment| createDocumentType|createElement|createElementNS|createEntityReference| createEvent|createExpression|createHTMLDocument|createNodeIterator| createNSResolver|createProcessingInstruction|createRange|createShadowRoot| createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete| deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot| deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint| enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen| exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get| getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode| getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads| getClientRects|getContext|getDestinationInsertionPoints|getElementById| getElementsByClassName|getElementsByName|getElementsByTagName| getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate| getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes| hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement| insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData| insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode| isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI| lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild| moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open| parentNode|pause|play|postMessage|prepend|preventDefault|previousNode| previousSibling|probablySupportsContext|queryCommandEnabled| queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue| querySelector|querySelectorAll|registerContentHandler|registerElement| registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute| removeAttributeNode|removeAttributeNS|removeChild|removeEventListener| removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity| requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView| scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute| setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture| setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem| setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore| slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation| submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob| toDataURL|toggle|toString|values|write|writeln ))(?=\s*\()</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.function.event-handler.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>support.function.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>support.function.dom.tsx</string> </dict> </dict> </dict> </array> </dict> <key>function-call</key> <dict> <key>begin</key> <string>(?=(\.\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>]|\<[^<>]+\>)+>\s*)?\()</string> <key>end</key> <string>(?<=\))(?!(\.\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(<([^<>]|\<[^<>]+\>)+>\s*)?\()</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#support-objects</string> </dict> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> <key>match</key> <string>\.</string> </dict> <dict> <key>name</key> <string>entity.name.function.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)</string> </dict> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>name</key> <string>meta.type.parameters.tsx</string> <key>begin</key> <string>\<</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.typeparameters.begin.tsx</string> </dict> </dict> <key>end</key> <string>\></string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.typeparameters.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#type</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <dict> <key>include</key> <string>#paren-expression</string> </dict> </array> </dict> <key>identifiers</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>support.class.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)(?=\s*\.\s*prototype\b(?!\$))</string> </dict> <dict> <key>match</key> <string>(?x)(\.)\s*(?: ([[:upper:]][_$[:digit:][:upper:]]*) | ([_$[:alpha:]][_$[:alnum:]]*))(?=\s*\.\s*[_$[:alpha:]][_$[:alnum:]]*)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>constant.other.object.property.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.other.object.property.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x)(?:(\.)\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\s*=\s*( (async\s+)|(function\s*[(<])|(function\s+)| ([_$[:alpha:]][_$[:alnum:]]*\s*=>)| ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)))</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>entity.name.function.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(\.)\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>constant.other.property.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(\.)\s*([_$[:alpha:]][_$[:alnum:]]*)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.other.property.tsx</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x)(?: ([[:upper:]][_$[:digit:][:upper:]]*) | ([_$[:alpha:]][_$[:alnum:]]*))(?=\s*\.\s*[_$[:alpha:]][_$[:alnum:]]*)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>constant.other.object.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.other.object.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>constant.other.tsx</string> <key>match</key> <string>([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])</string> </dict> <dict> <key>name</key> <string>variable.other.readwrite.tsx</string> <key>match</key> <string>[_$[:alpha:]][_$[:alnum:]]*</string> </dict> </array> </dict> <key>cast</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx</string> </dict> </array> </dict> <key>new-expr</key> <dict> <key>name</key> <string>new.expr.tsx</string> <key>begin</key> <string>(?<!\.|\$)\b(new)\b(?!\$)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.new.tsx</string> </dict> </dict> <key>end</key> <string>(?<=\))|(?=[;),]|$|((?<!\.|\$)\bnew\b(?!\$)))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#paren-expression</string> </dict> <dict> <key>include</key> <string>#class-or-interface-declaration</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <key>object-member</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#object-literal-method-declaration</string> </dict> <dict> <key>name</key> <string>meta.object.member.tsx</string> <key>begin</key> <string>(?=(?:(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[([^\[\]]|\[[^\[\]]*\])+\]))\s*:)</string> <key>end</key> <string>(?=,|\})</string> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.object-literal.key.tsx</string> <key>begin</key> <string>(?=(?:(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[([^\[\]]|\[[^\[\]]*\])+\]))\s*:)</string> <key>end</key> <string>:</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.separator.key-value.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#string</string> </dict> <dict> <key>include</key> <string>#array-literal</string> </dict> </array> </dict> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.object.member.tsx</string> <key>begin</key> <string>(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\s*(:)(?=\s*( (async\s+)|(function\s*[(<])|(function\s+)| ([_$[:alpha:]][_$[:alnum:]]*\s*=>)| ((<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>))))</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.object-literal.key.tsx</string> </dict> <key>1</key> <dict> <key>name</key> <string>entity.name.function.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.separator.key-value.tsx</string> </dict> </dict> <key>end</key> <string>(?=,|\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.object.member.tsx</string> <key>begin</key> <string>(?:[_$[:alpha:]][_$[:alnum:]]*)\s*(:)</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.object-literal.key.tsx</string> </dict> <key>1</key> <dict> <key>name</key> <string>punctuation.separator.key-value.tsx</string> </dict> </dict> <key>end</key> <string>(?=,|\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.object.member.tsx</string> <key>begin</key> <string>\.\.\.</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.operator.spread.tsx</string> </dict> </dict> <key>end</key> <string>(?=,|\})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.object.member.tsx</string> <key>match</key> <string>([_$[:alpha:]][_$[:alnum:]]*)\s*(?=,|\}|$)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>variable.other.readwrite.tsx</string> </dict> </dict> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>expression-operators</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>keyword.control.flow.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(await)\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.operator.expression.delete.tsx</string> <key>match</key> <string>(?<!\.|\$)\bdelete\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.operator.expression.in.tsx</string> <key>match</key> <string>(?<!\.|\$)\bin\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.operator.expression.of.tsx</string> <key>match</key> <string>(?<!\.|\$)\bof\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.operator.expression.instanceof.tsx</string> <key>match</key> <string>(?<!\.|\$)\binstanceof\b(?!\$)</string> </dict> <dict> <key>name</key> <string>keyword.operator.new.tsx</string> <key>match</key> <string>(?<!\.|\$)\bnew\b(?!\$)</string> </dict> <dict> <key>include</key> <string>#typeof-operator</string> </dict> <dict> <key>name</key> <string>keyword.operator.expression.void.tsx</string> <key>match</key> <string>(?<!\.|\$)\bvoid\b(?!\$)</string> </dict> <dict> <key>begin</key> <string>(?<!\.|\$)\bas\b(?!\$)</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.control.as.tsx</string> </dict> </dict> <key>end</key> <string>(?=$|[;,:})\]])</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <dict> <key>name</key> <string>keyword.operator.spread.tsx</string> <key>match</key> <string>\.\.\.</string> </dict> <dict> <key>name</key> <string>keyword.operator.assignment.compound.tsx</string> <key>match</key> <string>\*=|(?<!\()/=|%=|\+=|\-=</string> </dict> <dict> <key>name</key> <string>keyword.operator.assignment.compound.bitwise.tsx</string> <key>match</key> <string>\&=|\^=|<<=|>>=|>>>=|\|=</string> </dict> <dict> <key>name</key> <string>keyword.operator.bitwise.shift.tsx</string> <key>match</key> <string><<|>>>|>></string> </dict> <dict> <key>name</key> <string>keyword.operator.comparison.tsx</string> <key>match</key> <string>===|!==|==|!=</string> </dict> <dict> <key>name</key> <string>keyword.operator.relational.tsx</string> <key>match</key> <string><=|>=|<>|<|></string> </dict> <dict> <key>name</key> <string>keyword.operator.logical.tsx</string> <key>match</key> <string>\!|&&|\|\|</string> </dict> <dict> <key>name</key> <string>keyword.operator.bitwise.tsx</string> <key>match</key> <string>\&|~|\^|\|</string> </dict> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> <key>match</key> <string>\=</string> </dict> <dict> <key>name</key> <string>keyword.operator.decrement.tsx</string> <key>match</key> <string>--</string> </dict> <dict> <key>name</key> <string>keyword.operator.increment.tsx</string> <key>match</key> <string>\+\+</string> </dict> <dict> <key>name</key> <string>keyword.operator.arithmetic.tsx</string> <key>match</key> <string>%|\*|/|-|\+</string> </dict> <dict> <key>match</key> <string>(?<=[_$[:alnum:]])\s*(/)(?![/*])</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.arithmetic.tsx</string> </dict> </dict> </dict> </array> </dict> <key>typeof-operator</key> <dict> <key>name</key> <string>keyword.operator.expression.typeof.tsx</string> <key>match</key> <string>(?<!\.|\$)\btypeof\b(?!\$)</string> </dict> <key>arrow-function</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.arrow.tsx</string> <key>match</key> <string>(?<!\.|\$)(\basync)(?=\s*[<(])</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>meta.arrow.tsx</string> <key>match</key> <string>(?:(?<!\.|\$)(\basync)\s*)?([_$[:alpha:]][_$[:alnum:]]*)\s*(?==>)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.modifier.async.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.parameter.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>meta.arrow.tsx</string> <key>begin</key> <string>(?x)\s*(?=(<([^<>]|\<[^<>]+\>)+>\s*)?\(([^()]|\([^()]*\))*\)(\s*:\s*(.)*)?\s*=>)</string> <key>end</key> <string>(?==>)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#type-parameters</string> </dict> <dict> <key>include</key> <string>#function-parameters</string> </dict> <dict> <key>include</key> <string>#arrow-return-type</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.arrow.tsx</string> <key>begin</key> <string>=></string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>storage.type.function.arrow.tsx</string> </dict> </dict> <key>end</key> <string>(?<=\})|((?!\{)(?=\S))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#decl-block</string> </dict> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> </array> </dict> <key>arrow-return-type</key> <dict> <key>name</key> <string>meta.return.type.arrow.tsx</string> <key>begin</key> <string>(?<=\))\s*(:)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>keyword.operator.type.annotation.tsx</string> </dict> </dict> <key>end</key> <string>(?<!:)((?=$)|(?==>|;|//))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#type-predicate-operator</string> </dict> <dict> <key>include</key> <string>#type</string> </dict> </array> </dict> <key>punctuation-comma</key> <dict> <key>name</key> <string>punctuation.separator.comma.tsx</string> <key>match</key> <string>,</string> </dict> <key>punctuation-semicolon</key> <dict> <key>name</key> <string>punctuation.terminator.statement.tsx</string> <key>match</key> <string>;</string> </dict> <key>punctuation-accessor</key> <dict> <key>name</key> <string>punctuation.accessor.tsx</string> <key>match</key> <string>\.</string> </dict> <key>paren-expression</key> <dict> <key>begin</key> <string>\(</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.round.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>qstring-double</key> <dict> <key>name</key> <string>string.quoted.double.tsx</string> <key>begin</key> <string>"</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.begin.tsx</string> </dict> </dict> <key>end</key> <string>(")|((?:[^\\\n])$)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.string.end.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>invalid.illegal.newline.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#string-character-escape</string> </dict> </array> </dict> <key>qstring-single</key> <dict> <key>name</key> <string>string.quoted.single.tsx</string> <key>begin</key> <string>'</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.begin.tsx</string> </dict> </dict> <key>end</key> <string>(\')|((?:[^\\\n])$)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.string.end.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>invalid.illegal.newline.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#string-character-escape</string> </dict> </array> </dict> <key>regex</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>string.regex.tsx</string> <key>begin</key> <string>(?<=[=(:,\[?+!]|return|case|=>|&&|\|\||\*\/)\s*(/)(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.string.begin.tsx</string> </dict> </dict> <key>end</key> <string>(/)([gimuy]*)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.string.end.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.other.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#regexp</string> </dict> </array> </dict> <dict> <key>name</key> <string>string.regex.tsx</string> <key>begin</key> <string>(?<![_$[:alnum:]])/(?![/*])(?=(?:[^/\\\[]|\\.|\[([^\]\\]|\\.)+\])+/(?![/*])[gimy]*(?!\s*[a-zA-Z0-9_$]))</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.begin.tsx</string> </dict> </dict> <key>end</key> <string>(/)([gimuy]*)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.string.end.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.other.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#regexp</string> </dict> </array> </dict> </array> </dict> <key>regexp</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>keyword.control.anchor.regexp</string> <key>match</key> <string>\\[bB]|\^|\$</string> </dict> <dict> <key>name</key> <string>keyword.other.back-reference.regexp</string> <key>match</key> <string>\\[1-9]\d*</string> </dict> <dict> <key>name</key> <string>keyword.operator.quantifier.regexp</string> <key>match</key> <string>[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??</string> </dict> <dict> <key>name</key> <string>keyword.operator.or.regexp</string> <key>match</key> <string>\|</string> </dict> <dict> <key>name</key> <string>meta.group.assertion.regexp</string> <key>begin</key> <string>(\()((\?=)|(\?!))</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.group.regexp</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.group.assertion.regexp</string> </dict> <key>3</key> <dict> <key>name</key> <string>meta.assertion.look-ahead.regexp</string> </dict> <key>4</key> <dict> <key>name</key> <string>meta.assertion.negative-look-ahead.regexp</string> </dict> </dict> <key>end</key> <string>(\))</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.group.regexp</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#regexp</string> </dict> </array> </dict> <dict> <key>name</key> <string>meta.group.regexp</string> <key>begin</key> <string>\((\?:)?</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.group.regexp</string> </dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.group.capture.regexp</string> </dict> </dict> <key>end</key> <string>\)</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.group.regexp</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#regexp</string> </dict> </array> </dict> <dict> <key>name</key> <string>constant.other.character-class.set.regexp</string> <key>begin</key> <string>(\[)(\^)?</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.character-class.regexp</string> </dict> <key>2</key> <dict> <key>name</key> <string>keyword.operator.negation.regexp</string> </dict> </dict> <key>end</key> <string>(\])</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.character-class.regexp</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>name</key> <string>constant.other.character-class.range.regexp</string> <key>match</key> <string>(?:.|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>constant.character.numeric.regexp</string> </dict> <key>2</key> <dict> <key>name</key> <string>constant.character.control.regexp</string> </dict> <key>3</key> <dict> <key>name</key> <string>constant.character.escape.backslash.regexp</string> </dict> <key>4</key> <dict> <key>name</key> <string>constant.character.numeric.regexp</string> </dict> <key>5</key> <dict> <key>name</key> <string>constant.character.control.regexp</string> </dict> <key>6</key> <dict> <key>name</key> <string>constant.character.escape.backslash.regexp</string> </dict> </dict> </dict> <dict> <key>include</key> <string>#regex-character-class</string> </dict> </array> </dict> <dict> <key>include</key> <string>#regex-character-class</string> </dict> </array> </dict> <key>regex-character-class</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>constant.other.character-class.regexp</string> <key>match</key> <string>\\[wWsSdDtrnvf]|\.</string> </dict> <dict> <key>name</key> <string>constant.character.numeric.regexp</string> <key>match</key> <string>\\([0-7]{3}|x\h\h|u\h\h\h\h)</string> </dict> <dict> <key>name</key> <string>constant.character.control.regexp</string> <key>match</key> <string>\\c[A-Z]</string> </dict> <dict> <key>name</key> <string>constant.character.escape.backslash.regexp</string> <key>match</key> <string>\\.</string> </dict> </array> </dict> <key>string</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#qstring-single</string> </dict> <dict> <key>include</key> <string>#qstring-double</string> </dict> </array> </dict> <key>template</key> <dict> <key>name</key> <string>string.template.tsx</string> <key>begin</key> <string>([_$[:alpha:]][_$[:alnum:]]*)?(`)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>entity.name.function.tagged-template.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.string.template.begin.tsx</string> </dict> </dict> <key>end</key> <string>`</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.template.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#template-substitution-element</string> </dict> <dict> <key>include</key> <string>#string-character-escape</string> </dict> <dict> <key>include</key> <string>#jsx-tag-without-attributes</string> </dict> <dict> <key>include</key> <string>#jsx-child-tag</string> </dict> <dict> <key>include</key> <string>#jsx-tag-invalid</string> </dict> <dict> <key>include</key> <string>#jsx-evaluated-code</string> </dict> <dict> <key>include</key> <string>#jsx-entities</string> </dict> </array> </dict> <key>string-character-escape</key> <dict> <key>name</key> <string>constant.character.escape.tsx</string> <key>match</key> <string>\\(x\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)</string> </dict> <key>template-substitution-element</key> <dict> <key>name</key> <string>meta.template.expression.tsx</string> <key>begin</key> <string>\$\{</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.template-expression.begin.tsx</string> </dict> </dict> <key>end</key> <string>\}</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.template-expression.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>literal</key> <dict> <key>name</key> <string>literal.tsx</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#numeric-literal</string> </dict> <dict> <key>include</key> <string>#boolean-literal</string> </dict> <dict> <key>include</key> <string>#null-literal</string> </dict> <dict> <key>include</key> <string>#undefined-literal</string> </dict> <dict> <key>include</key> <string>#numericConstant-literal</string> </dict> <dict> <key>include</key> <string>#array-literal</string> </dict> <dict> <key>include</key> <string>#this-literal</string> </dict> <dict> <key>include</key> <string>#super-literal</string> </dict> </array> </dict> <key>array-literal</key> <dict> <key>name</key> <string>meta.array.literal.tsx</string> <key>begin</key> <string>\[</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> </dict> <key>end</key> <string>\]</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.brace.square.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> <dict> <key>include</key> <string>#punctuation-comma</string> </dict> </array> </dict> <key>numeric-literal</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>constant.numeric.hex.tsx</string> <key>match</key> <string>\b(?<!\$)0(x|X)[0-9a-fA-F]+\b(?!\$)</string> </dict> <dict> <key>name</key> <string>constant.numeric.binary.tsx</string> <key>match</key> <string>\b(?<!\$)0(b|B)[01]+\b(?!\$)</string> </dict> <dict> <key>name</key> <string>constant.numeric.octal.tsx</string> <key>match</key> <string>\b(?<!\$)0(o|O)?[0-7]+\b(?!\$)</string> </dict> <dict> <key>match</key> <string>(?x)(?<!\$)(?: (?:\b[0-9]+(\.)[0-9]+[eE][+-]?[0-9]+\b)| # 1.1E+3 (?:\b[0-9]+(\.)[eE][+-]?[0-9]+\b)| # 1.E+3 (?:\B(\.)[0-9]+[eE][+-]?[0-9]+\b)| # .1E+3 (?:\b[0-9]+[eE][+-]?[0-9]+\b)| # 1E+3 (?:\b[0-9]+(\.)[0-9]+\b)| # 1.1 (?:\b[0-9]+(\.)\B)| # 1. (?:\B(\.)[0-9]+\b)| # .1 (?:\b[0-9]+\b(?!\.)) # 1)(?!\$)</string> <key>captures</key> <dict> <key>0</key> <dict> <key>name</key> <string>constant.numeric.decimal.tsx</string> </dict> <key>1</key> <dict> <key>name</key> <string>meta.delimiter.decimal.period.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>meta.delimiter.decimal.period.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>meta.delimiter.decimal.period.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>meta.delimiter.decimal.period.tsx</string> </dict> <key>5</key> <dict> <key>name</key> <string>meta.delimiter.decimal.period.tsx</string> </dict> <key>6</key> <dict> <key>name</key> <string>meta.delimiter.decimal.period.tsx</string> </dict> </dict> </dict> </array> </dict> <key>boolean-literal</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>constant.language.boolean.true.tsx</string> <key>match</key> <string>(?<!\.|\$)\btrue\b(?!\$)</string> </dict> <dict> <key>name</key> <string>constant.language.boolean.false.tsx</string> <key>match</key> <string>(?<!\.|\$)\bfalse\b(?!\$)</string> </dict> </array> </dict> <key>null-literal</key> <dict> <key>name</key> <string>constant.language.null.tsx</string> <key>match</key> <string>(?<!\.|\$)\bnull\b(?!\$)</string> </dict> <key>this-literal</key> <dict> <key>name</key> <string>variable.language.this.tsx</string> <key>match</key> <string>(?<!\.|\$)\bthis\b(?!\$)</string> </dict> <key>super-literal</key> <dict> <key>name</key> <string>variable.language.super.tsx</string> <key>match</key> <string>(?<!\.|\$)\bsuper\b(?!\$)</string> </dict> <key>undefined-literal</key> <dict> <key>name</key> <string>constant.language.undefined.tsx</string> <key>match</key> <string>(?<!\.|\$)\bundefined\b(?!\$)</string> </dict> <key>numericConstant-literal</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>constant.language.nan.tsx</string> <key>match</key> <string>(?<!\.|\$)\bNaN\b(?!\$)</string> </dict> <dict> <key>name</key> <string>constant.language.infinity.tsx</string> <key>match</key> <string>(?<!\.|\$)\bInfinity\b(?!\$)</string> </dict> </array> </dict> <key>access-modifier</key> <dict> <key>name</key> <string>storage.modifier.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(abstract|public|protected|private|readonly|static)\b(?!\$)</string> </dict> <key>property-accessor</key> <dict> <key>name</key> <string>storage.type.property.tsx</string> <key>match</key> <string>(?<!\.|\$)\b(get|set)\b(?!\$)</string> </dict> <key>comment</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>comment.block.documentation.tsx</string> <key>begin</key> <string>/\*\*(?!/)</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.tsx</string> </dict> </dict> <key>end</key> <string>\*/</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#docblock</string> </dict> </array> </dict> <dict> <key>name</key> <string>comment.block.tsx</string> <key>begin</key> <string>/\*</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.tsx</string> </dict> </dict> <key>end</key> <string>\*/</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.tsx</string> </dict> </dict> </dict> <dict> <key>begin</key> <string>(^[ \t]+)?(?=//)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.whitespace.comment.leading.tsx</string> </dict> </dict> <key>end</key> <string>(?=$)</string> <key>patterns</key> <array> <dict> <key>name</key> <string>comment.line.double-slash.tsx</string> <key>begin</key> <string>//</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.comment.tsx</string> </dict> </dict> <key>end</key> <string>(?=$)</string> </dict> </array> </dict> </array> </dict> <key>directives</key> <dict> <key>name</key> <string>comment.line.triple-slash.directive.tsx</string> <key>begin</key> <string>^(///)\s*(?=<(reference|amd-dependency|amd-module)(\s+(path|types|no-default-lib|name)\s*=\s*((\'[^']*\')|(\"[^"]*\")))+\s*/>\s*$)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.comment.tsx</string> </dict> </dict> <key>end</key> <string>(?=$)</string> <key>patterns</key> <array> <dict> <key>name</key> <string>meta.tag.tsx</string> <key>begin</key> <string>(<)(reference|amd-dependency|amd-module)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.directive.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>entity.name.tag.directive.tsx</string> </dict> </dict> <key>end</key> <string>/></string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.tag.directive.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>name</key> <string>entity.other.attribute-name.directive.tsx</string> <key>match</key> <string>path|types|no-default-lib|name</string> </dict> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> <key>match</key> <string>=</string> </dict> <dict> <key>include</key> <string>#string</string> </dict> </array> </dict> </array> </dict> <key>docblock</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>storage.type.class.jsdoc</string> <key>match</key> <string>(?x)(?<!\w)@( abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class |classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc |description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file |fileoverview|final|fires|for|function|global|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance |interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|modifies|module|name|namespace |noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|preserve|private|prop|property |protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|suppress |template|this|throws|todo|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\b</string> </dict> <dict> <key>name</key> <string>other.meta.jsdoc</string> <key>match</key> <string>(?x)( \[ [^\]]+ # Optional [link text] preceding {@link syntax} \]
(?! # Check to avoid highlighting two sets of link text { @\w+ # Tagname \s+ [^\s|}]+ # Namepath/URL [\s|] # Whitespace or bar delimiting description [^}]* } ))?
(?: { ( @ (?: link # Name of tag | linkcode | linkplain | tutorial ) )
\s+
([^\s|}]+) # Namepath or URL
(?: # Optional link text following link target [\s|] # Bar or space separating target and text [^}]* # Actual text )? })</string> <key>captures</key> <dict> <key>0</key> <dict> <key>name</key> <string>entity.name.type.instance.jsdoc</string> </dict> <key>1</key> <dict> <key>name</key> <string>constant.other.description.jsdoc</string> </dict> <key>2</key> <dict> <key>name</key> <string>storage.type.class.jsdoc</string> </dict> <key>3</key> <dict> <key>name</key> <string>variable.other.description.jsdoc</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x)
(?:(?<=@param)|(?<=@arg)|(?<=@argument)|(?<=@type)|(?<=@property)|(?<=@prop))
\s+
({(?: \* | # {*} any type \? | # {?} unknown type
(?: (?: # Check for a prefix \? | # {?string} nullable type ! | # {!string} non-nullable type \.{3} # {...string} variable number of parameters )?
(?: (?: function # {function(string, number)} function type \s* \( \s* (?: [a-zA-Z_$][\w$]* (?: \s*,\s* [a-zA-Z_$][\w$]* )* )? \s* \) (?: # {function(): string} function return type \s*:\s* [a-zA-Z_$][\w$]* )? )? | (?: \( # Opening bracket of multiple types with parenthesis {(string|number)} [a-zA-Z_$]+ (?: (?: [\w$]* (?:\[\])? # {(string[]|number)} type application, an array of strings or a number ) | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) (?: [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback [a-zA-Z_$]+ (?: (?: [\w$]* (?:\[\])? # {(string|number[])} type application, a string or an array of numbers ) | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) )* \) | [a-zA-Z_$]+ (?: (?: [\w$]* (?:\[\])? # {(string|number[])} type application, a string or an array of numbers ) | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) (?: [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback [a-zA-Z_$]+ (?: [\w$]* | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) )* ) ) # Check for suffix (?:\[\])? # {string[]} type application, an array of strings =? # {string=} optional parameter ))})
\s+
( \[ # [foo] optional parameter \s* (?: [a-zA-Z_$][\w$]* (?: (?:\[\])? # Foo[].bar properties within an array \. # Foo.Bar namespaced parameter [a-zA-Z_$][\w$]* )* (?: \s* = # [foo=bar] Default parameter value \s* [\w$\s]* )? ) \s* \] | (?: [a-zA-Z_$][\w$]* (?: (?:\[\])? # Foo[].bar properties within an array \. # Foo.Bar namespaced parameter [a-zA-Z_$][\w$]* )* )?)
\s+
(?:-\s+)? # optional hyphen before the description
((?:(?!\*\/).)*) # The type description</string> <key>captures</key> <dict> <key>0</key> <dict> <key>name</key> <string>other.meta.jsdoc</string> </dict> <key>1</key> <dict> <key>name</key> <string>entity.name.type.instance.jsdoc</string> </dict> <key>2</key> <dict> <key>name</key> <string>variable.other.jsdoc</string> </dict> <key>3</key> <dict> <key>name</key> <string>other.description.jsdoc</string> </dict> </dict> </dict> <dict> <key>match</key> <string>(?x)
({(?: \* | # {*} any type \? | # {?} unknown type
(?: (?: # Check for a prefix \? | # {?string} nullable type ! | # {!string} non-nullable type \.{3} # {...string} variable number of parameters )?
(?: (?: function # {function(string, number)} function type \s* \( \s* (?: [a-zA-Z_$][\w$]* (?: \s*,\s* [a-zA-Z_$][\w$]* )* )? \s* \) (?: # {function(): string} function return type \s*:\s* [a-zA-Z_$][\w$]* )? )? | (?: \( # Opening bracket of multiple types with parenthesis {(string|number)} [a-zA-Z_$]+ (?: [\w$]* | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) (?: [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback [a-zA-Z_$]+ (?: [\w$]* | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) )* \) | [a-zA-Z_$]+ (?: [\w$]* | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) (?: [\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback [a-zA-Z_$]+ (?: [\w$]* | \.?<[\w$]+(?:,\s+[\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .) ) )* ) ) # Check for suffix (?:\[\])? # {string[]} type application, an array of strings =? # {string=} optional parameter ))})
\s+
(?:-\s+)? # optional hyphen before the description
((?:(?!\*\/).)*) # The type description</string> <key>captures</key> <dict> <key>0</key> <dict> <key>name</key> <string>other.meta.jsdoc</string> </dict> <key>1</key> <dict> <key>name</key> <string>entity.name.type.instance.jsdoc</string> </dict> <key>2</key> <dict> <key>name</key> <string>other.description.jsdoc</string> </dict> </dict> </dict> </array> </dict> <key>jsx-tag-attributes</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-tag-attribute-name</string> </dict> <dict> <key>include</key> <string>#jsx-tag-attribute-assignment</string> </dict> <dict> <key>include</key> <string>#jsx-string-double-quoted</string> </dict> <dict> <key>include</key> <string>#jsx-string-single-quoted</string> </dict> <dict> <key>include</key> <string>#jsx-evaluated-code</string> </dict> </array> </dict> <key>jsx-tag-attribute-name</key> <dict> <key>match</key> <string>(?x) \s* ([_$a-zA-Z][-$\w]*) (?=\s|=|/?>|/\*|//)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>entity.other.attribute-name.tsx</string> </dict> </dict> </dict> <key>jsx-tag-attribute-assignment</key> <dict> <key>name</key> <string>keyword.operator.assignment.tsx</string> <key>match</key> <string>=(?=\s*(?:'|"|{|/\*|//|\n))</string> </dict> <key>jsx-string-double-quoted</key> <dict> <key>name</key> <string>string.quoted.double.tsx</string> <key>begin</key> <string>"</string> <key>end</key> <string>"</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.begin.tsx</string> </dict> </dict> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-entities</string> </dict> </array> </dict> <key>jsx-string-single-quoted</key> <dict> <key>name</key> <string>string.quoted.single.tsx</string> <key>begin</key> <string>'</string> <key>end</key> <string>'</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.begin.tsx</string> </dict> </dict> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.definition.string.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-entities</string> </dict> </array> </dict> <key>jsx-entities</key> <dict> <key>patterns</key> <array> <dict> <key>name</key> <string>constant.character.entity.tsx</string> <key>match</key> <string>(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)</string> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.entity.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>punctuation.definition.entity.tsx</string> </dict> </dict> </dict> <dict> <key>name</key> <string>invalid.illegal.bad-ampersand.tsx</string> <key>match</key> <string>&</string> </dict> </array> </dict> <key>jsx-evaluated-code</key> <dict> <key>name</key> <string>meta.embedded.expression.tsx</string> <key>begin</key> <string>\{</string> <key>end</key> <string>\}</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.section.embedded.begin.tsx</string> </dict> </dict> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>punctuation.section.embedded.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#expression</string> </dict> </array> </dict> <key>jsx-tag-attributes-illegal</key> <dict> <key>name</key> <string>invalid.illegal.attribute.tsx</string> <key>match</key> <string>\S+</string> </dict> <key>jsx-tag-without-attributes</key> <dict> <key>name</key> <string>meta.tag.without-attributes.tsx</string> <key>begin</key> <string>(<)\s*([_$a-zA-Z][-$\w.]*(?<!\.|-))\s*(>)</string> <key>end</key> <string>(</)\s*([_$a-zA-Z][-$\w.]*(?<!\.|-))\s*(>)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.begin.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>entity.name.tag.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> </dict> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.begin.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>entity.name.tag.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> </dict> <key>contentName</key> <string>meta.jsx.children.tsx</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-children</string> </dict> </array> </dict> <key>jsx-tag-in-expression</key> <dict> <key>begin</key> <string>(?x) (?<=[({\[,?=>:*]|&&|\|\||\?|\Wreturn|^return|\Wdefault|^)\s* (?!(<)\s*([_$a-zA-Z][-$\w.]*(?<!\.|-))\s*(>)) #look ahead is not start of tag without attributes (?!<\s*[_$[:alpha:]][_$[:alnum:]]*((\s+extends\s+[^=>])|,)) # look ahead is not type parameter of arrow (?=(<)\s* ([_$a-zA-Z][-$\w.]*(?<!\.|-)) (?=\s+(?!\?)|/?>))</string> <key>end</key> <string>(/>)|(?:(</)\s*([_$a-zA-Z][-$\w.]*(?<!\.|-))\s*(>))</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.tag.tsx</string> </dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.tag.begin.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>entity.name.tag.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-tag</string> </dict> </array> </dict> <key>jsx-child-tag</key> <dict> <key>begin</key> <string>(?x) (?=(<)\s* ([_$a-zA-Z][-$\w.]*(?<!\.|-)) (?=\s+(?!\?)|/?>))</string> <key>end</key> <string>(/>)|(?:(</)\s*([_$a-zA-Z][-$\w.]*(?<!\.|-))\s*(>))</string> <key>endCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>meta.tag.tsx</string> </dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.definition.tag.begin.tsx</string> </dict> <key>3</key> <dict> <key>name</key> <string>entity.name.tag.tsx</string> </dict> <key>4</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-tag</string> </dict> </array> </dict> <key>jsx-tag</key> <dict> <key>name</key> <string>meta.tag.tsx</string> <key>begin</key> <string>(?x) (?=(<)\s* ([_$a-zA-Z][-$\w.]*(?<!\.|-)) (?=\s+(?!\?)|/?>))</string> <key>end</key> <string>(?=(/>)|(?:(</)\s*([_$a-zA-Z][-$\w.]*(?<!\.|-))\s*(>)))</string> <key>patterns</key> <array> <dict> <key>begin</key> <string>(?x) (<)\s* ([_$a-zA-Z][-$\w.]*(?<!\.|-)) (?=\s+(?!\?)|/?>)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.begin.tsx</string> </dict> <key>2</key> <dict> <key>name</key> <string>entity.name.tag.tsx</string> </dict> </dict> <key>end</key> <string>(?=[/]?>)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comment</string> </dict> <dict> <key>include</key> <string>#jsx-tag-attributes</string> </dict> <dict> <key>include</key> <string>#jsx-tag-attributes-illegal</string> </dict> </array> </dict> <dict> <key>begin</key> <string>(>)</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>punctuation.definition.tag.end.tsx</string> </dict> </dict> <key>end</key> <string>(?=</)</string> <key>contentName</key> <string>meta.jsx.children.tsx</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-children</string> </dict> </array> </dict> </array> </dict> <key>jsx-tag-invalid</key> <dict> <key>name</key> <string>invalid.illegal.tag.incomplete.tsx</string> <key>match</key> <string><\s*></string> </dict> <key>jsx-children</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-tag-without-attributes</string> </dict> <dict> <key>include</key> <string>#jsx-child-tag</string> </dict> <dict> <key>include</key> <string>#jsx-tag-invalid</string> </dict> <dict> <key>include</key> <string>#jsx-evaluated-code</string> </dict> <dict> <key>include</key> <string>#jsx-entities</string> </dict> </array> </dict> <key>jsx</key> <dict> <key>patterns</key> <array> <dict> <key>include</key> <string>#jsx-tag-without-attributes</string> </dict> <dict> <key>include</key> <string>#jsx-tag-in-expression</string> </dict> <dict> <key>include</key> <string>#jsx-tag-invalid</string> </dict> </array> </dict> </dict> </dict></plist>