From 853bb3c274276f4c66375f89a522b91f7254b48b Mon Sep 17 00:00:00 2001 From: Jordan Kiesel Date: Tue, 24 Mar 2026 22:38:21 -0600 Subject: [PATCH] build: update tree-sitter dependencies and remove WASM file from src --- package.json | 8 +++---- src/node-types.ts | 2 +- src/printers/expressions.ts | 5 +++-- src/tree-sitter-java_orchard.wasm | Bin 419071 -> 0 bytes test/test-utils.ts | 2 +- .../_input.java | 1 + .../_output.java | 2 ++ .../operator-position-end/_input.java | 11 +++++++++ .../operator-position-end/_output.java | 11 +++++++++ .../operator-position-start/_input.java | 11 +++++++++ .../operator-position-start/_output.java | 11 +++++++++ test/unit-test/cast/_input.java | 8 +++++++ test/unit-test/cast/_output.java | 11 +++++++++ test/unit-test/constructors/_input.java | 10 +++++++++ test/unit-test/constructors/_output.java | 10 +++++++++ test/unit-test/expressions/_input.java | 9 ++++++++ test/unit-test/expressions/_output.java | 9 ++++++++ test/unit-test/pattern-matching/_input.java | 6 +++++ test/unit-test/pattern-matching/_output.java | 9 ++++++++ test/unit-test/text-blocks/_input.java | 13 +++++++++++ test/unit-test/text-blocks/_output.java | 14 ++++++++++++ test/unit-test/variables/_input.java | 21 +++++++++++++++++- test/unit-test/variables/_output.java | 19 ++++++++++++++++ yarn.lock | 16 ++++++------- 24 files changed, 202 insertions(+), 17 deletions(-) delete mode 100755 src/tree-sitter-java_orchard.wasm diff --git a/package.json b/package.json index 1a3840c6c..0ee6939c1 100644 --- a/package.json +++ b/package.json @@ -24,12 +24,12 @@ "dist" ], "scripts": { - "build": "tsdown && cp src/tree-sitter-java_orchard.wasm dist/", + "build": "tsdown && cp node_modules/tree-sitter-java-orchard/tree-sitter-java_orchard.wasm dist/", "ci": "yarn build && yarn lint && yarn format:validate && yarn test", "clone-samples": "node scripts/clone-samples.js", "format:fix": "prettier --write \"**/*.@(js|json|ts)\"", "format:validate": "prettier --list-different \"**/*.@(js|json|ts)\"", - "postinstall": "cp node_modules/tree-sitter-java-orchard/tree-sitter-java_orchard.wasm src/ && node scripts/generate-node-types.ts && prettier --write src/node-types.ts", + "postinstall": "node scripts/generate-node-types.ts && prettier --write src/node-types.ts", "lerna:publish": "lerna publish from-git --yes", "lerna:version": "lerna version --exact --no-private", "lint": "eslint src test", @@ -52,7 +52,7 @@ ] }, "dependencies": { - "web-tree-sitter": "0.26.6" + "web-tree-sitter": "0.26.7" }, "devDependencies": { "@eslint/js": "^10.0.1", @@ -68,7 +68,7 @@ "mitata": "^1.0.34", "mocha": "^11.7.5", "prettier": "^3.8.1", - "tree-sitter-java-orchard": "0.5.4", + "tree-sitter-java-orchard": "0.5.6", "tsdown": "^0.21.4", "typescript": "^5.9.3", "typescript-eslint": "^8.57.1" diff --git a/src/node-types.ts b/src/node-types.ts index 3bb7e611f..31dee7c8c 100644 --- a/src/node-types.ts +++ b/src/node-types.ts @@ -1037,7 +1037,7 @@ export interface InstanceofExpressionNode extends NamedNodeBase { leftNode: ExpressionNode; nameNode?: IdentifierNode; patternNode?: RecordPatternNode; - rightNode?: TypeNode; + rightNode?: UnannotatedTypeNode; } export interface IntegralTypeNode extends NamedNodeBase { diff --git a/src/printers/expressions.ts b/src/printers/expressions.ts index 586f91cee..fe04000b5 100644 --- a/src/printers/expressions.ts +++ b/src/printers/expressions.ts @@ -298,8 +298,9 @@ export default { return group( indent( path.map(child => { + const doc = print(child, { annotationMode: "noBreak" }); if (!child.previous) { - return print(child); + return doc; } const separator = ( @@ -310,7 +311,7 @@ export default { ? line : " "; - return [separator, print(child)]; + return [separator, doc]; }, "children") ) ); diff --git a/src/tree-sitter-java_orchard.wasm b/src/tree-sitter-java_orchard.wasm deleted file mode 100755 index 0c4473de4b87da4b8d5ca431d23b0014a72b7a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419071 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

aaR+MB82lbu=GYbW^7j-XOoQL zB^J(dz587;64jtSq3q4R&_b3ds)t>v&O>#|Nt~<43ksL(pt`RAH?8ddf6Q7q{^VjHsGGG0&^ zuS3$*SKu~xd)aPt;F;c5VMsV%Q;z^iN3e#Y!lG1loJ}%{RVgt9l=p@l3_ zR1dpSormg_lQ_306k;J;rgu7Nce}eQ?oQ%ShH$^v8vCh^ zvq?tr5{qOJ9@U^ep%Po-BZo#+eSH*5I*-_f><=Uq#s{qh%|q_tvOVO$GkvJSkZ``H zxhx&Qc8(hRsgAQrM)4AhWDy?Kpgy4zTjC>!Mpb=%6iYgf*oN#6Cltm9tp$y~@AdSK zEJg5pW$)$G?RdAWkJ0zep5KxAU6n^^W&S%TTkdp^R`0ta^RqmB-#VY(k+DVtk>YH{ zKsi&x_3%1v&O>#|Nu0;iJ2DosW%`tp_OyGt;+`TNWeDeMVCju=%-F6v&L$bf zODvK_cvOS>gt9l=p@l3_R1dpSormg_lQ>T$6k;J;rq4QQ&$;I+?pfkdhH$VKVD0{OVTF4Sb^{^||d8ke~iSukiAr`V_`ht`8qI5X#C*seOxCK<&`ERscdRD=42vNzkIg)C8254%#Ghw7A*I4>j=Vj)|mFE^m2 zsf26j7s9K|Rpy$;7Ft-2+slrlaOVd{66qQv7ST&Z@Dg2?g>|Z|ocg}(!uCor&zIdR zk%c`mGW|U=R-#?1N1*q-jEWFzipZ-99QksLLGei_?0ualOzW7V@S0+GQ>6J^h|eYr zDpF;oc|7()#U^&WzV<@d+c;9w48om|_dq?qu@$zo7h)yarLVc68Mle4ftxg&JSbvl z_J(&91LKzvXBoq>Z$;UEZ{BuqN7`5;37{9cO@=ly8<}lSjUPK^?^d4+hvZAGw< zeO@r1zEl*F=s?r z%bR2W)b?IN;aH(?=Lrynm@`oLarw!f<^Dk-A|o(fb_NP^U>35;jxUC&`J#eVdCB6H z0{<*4WhBa;EK;cb=s@0E;#UE$6ni!P?jZlxLB7&njejlhpE`)QTY;;}J$tj*VYR-Y zK|R9@SM`52h(ARj|4ZT(T7G&kkmW4B#yh|8RC#nDuO{;?wEXn9z@7*3`ARrBhJ|Cc zZ!q7}g7tVPnBQfAd}5IA^kDq=19|fxpWMG$=l4^IUn$DtDaF$BU4ea>Al{0B{8X?$ z&jd2<@bswCmG53E%V#$nf0NH#n2I1gu9UNka8H(4Pk3j28BqO8JtwD!>gn~+=ufYU zMm@bg8uj!#VZDU+;@>U)k)GDMF;3}EHhyTG^g3#cPp_v&J-x0P_4N8;J@tBgdYv`u z>Gjqa=hYtSq1RudKfMkc_4Imd)YI#-QGb39@#%Hi=ufZLMm@c58};=1ZPe52xKU59 z=SDrft{e6A`fk+I>%37~Csr~RN&Px}Jvsn>B*;#SliK53t5 z^r!uzF+S}Zje6QY8uhe~H0o(TY1GrF;zm8~FQl*b7ZbjpUQAZseswX^LRskRa+b;2 zU)ZzkrC`6`C)giPuEo!?8DxK~0-Pywk(Hkg3go$p_`1)`SB|8*iHr5&ehB|?KZHKq z522U+uv)iV^okGomHT5^zbXCbnxFv3@DKMv=)-*w`fwkFKHLYP5BEXn!+j8X*#~hr zP=7qna9_mua9@Nz+!vuI{4^f7a9@OfxGzF~eh=##?u+mb_eJQ#eG&R_Uxc3U-dI23 zzEL0Ui-;5Mi_nMrBJ|(=)-*x`e0wo>-(I6T+Tbo_LKQn^8SH5uk2fueRv>$9{B%9 zp1E-6M*WLDAsL=VI@rM}wNO1auct8ug+(Ibu* ze!uxa;fHuxcCvilEfbpjL$MdnjGt15-3InR&a$5uo*Ms};PdqFf^|MOu-`29GC$ox zEr?f+uk639*^RxbUO(ij{+k1PDZ`!zcF2`Ih@Y1-?Dk5EKaC#0NIqZkSN?UG?oU&* zXW8!q`FA20&vbmuO*MNZSN2l_yU2nQr>@uIxv1c}tUt@v6kJ#GVUn-RPxTiT z9Y22!Z&~)^01qPqd8Q!W+`;SWf*}4j0e+?k>RUO8zi?nby0%_fHfIp;!XV$bg89B1 zj1T4i3+$5w@vjczPZju27s!tU{?iBcKL+-50{e`C{KH^|tBOQuo#4Yof&b{RQGsQ7v*ay8y_LJ2P8Fn{4aqFlZGVC25zn$74*X-K|c9LuM z9RfSaHT#Z%o#dK*r@&5f&AxMBCmHs^A(@WVicy>qMRi)XS!uI&7}-^Ghx%9TBM z9e3*ci0S-^#_#HlFJ+9k&(`xphQ0Imx*am?w*EQGK!&};pC`ZR>>ZBeAOBLW+4u1Bvz_FceRN?BwAS1G?gzLYCFulE7o_)@Oy9LcZ0lxucBKimEMEFb8_FXd|dGnD_^p1qV| zFZP4O)DF33KRmFLT(ch$*h#M0zZcj^uI!IceMforQik2~@tj)ikYOLh{zt1FGVC^Z zeM7G757T)6b8{(I_CJuF_J!h^s4ZpK2L-QB$gsQM^$8jFL5znVX?)0)omc93&tA%v zo!93C&tA$k`-y>_~W_+KccF3^XyMz3t413{!UND~In*A4non+YE%k}t>VK3sJAB-m%_Wbtxc*w99 z<9`{9CmHtqj$nK#!)|#$^Y@2RhP@NK{vg9%9FL2={CvDfuGudM>?GIhzY6Rm*X)-D zc9JVQ93RNA4`KXVuHzxs>{kSKl3};O{stNLBHoq3c#>=O zs{%X8uv>n=^p9UD!(PO{Iv7tf?3T}u`Qu9&_92gw{Tgq4DOYx0pKCpPDc9`R1$L5Q zx6JwZOBwb-0sbJvK7{f1J1>4I!#GiYxbK1JIOWs?*lu@HTx}ro#dMR*1%43 zW#{$0&9j$sW#{_;;Mq$V_K8@2Q0Y-``8Q zvh(+&5jx(MGVG3z*K%ryT(d79*h#M0R|xDR*X%0>c9LPw@2}Sn8FqIM*}d~5kYP7Z z*T+MK-SK|9vX{SPdGPr*l1CJtRlT{$Ic4RCDP{hQ%9D)s^Ax{#>G&DQYf@d0yp*eYSe_)X zd$Q&4&ok)yK`yG{r^O1c%4a#=+!_xu@)h!2fnDV+n^NKx&osr(C&WFV`60tTi0zN5 z9Wv~W?Ki3&GVGS^zfn76*v&r*u9_d@(w=2Y6o&wI`v1$tzp|fQ%)FdFY0nDeDLd?{ z_E!S?%C@kV4kmw{#j0NVKR*KhRi&Q7i=Wmh;ww&;DI-x_;!wBAMPL0cP|9?_)WRmjnE-vC0PgGe?d8>KlE0svNzrY>hm{MQOtMUt9FBl)<4f^o)0{wZx>jL`lbpd^d zf9ON}L*G+9A^zbX;vf1D|Iml{hd#tV^d_sHbRM{&T_722DmzTUPCmYxboByUJNMM}f2YI&cN$IxtHQV*~s^7BhYRpVUm`zmG$%?DgMaO&!7Du2w z475HXSGX)?J}1EkC)Ss*H{`Qi&-|J%khAQD`uY_1Sp$EP5ig&N*dc0%47(XtxK=oW zT-hfN?4?}V>9@Yx>&Un>$+D*A4`ljnweD}(e|Gf`<$T$C{!*@RT*~ovhcb@N{RiJ4 zpby_ypqKZRA}Lj7ayo7qZIw`D-y>P^8rzqweV;Ps?Ye&`y9>#_q|P65mG8{@{0sXM zfj`NmzZt~w4puwln*BS0on+XH_)DoBGVGS)4^um2*gI_BRPB&!_RRu2$u;{nft_U7 zi+oe69Wv}izOB^`8TMj6%cvc4WiPKQp;_?5xcYS_#{EL{#WUMW8RKnWhYWij#D@&K z4eXF%@9_J;mRdh#*o))stv}?N-CO^{?ybMQnBvc&@gZZpy@2dijS^kn@j8J5uow%Ej^aULTN=-|_qI0vaDO5@ru^+A2PsU$J$0 z3i-TNcyWC*(n$I}0P#cF4Jj-LZy>|Jz@PVe3T68QWt!28AIQb$fJMCdFg{2|d~;$^ zX_X%`?8W#+gYlkhdA$$Oc%fX>>%AT!*Wxc0#3#9CUp%mr4100>y!{a}?1Oo~@%A&w zHM_ST7Ish0|1IkS|4<&p*PZ=X>w^sc!EC=s?V;>={m#(>Fn+Pw^H-lyMix#d?2N z$3rf>8GoM1-t_=61poa-N?^+)nYMW!l#E^?0iW{x6~F~R#Zc%Amrb%Km_EO6<)Z$gIMhWSbv_F^C3 z+>6hzW0Gt3Edo2qm7QM)-uqgSpJdn_*T0&Mhg{izO?JXl@l4c}GVJDrx*am?`A_P0 z$gmgl+e+g@hTR4@gM!Lof0jKj z^RMJZYwsH-59Sxjj$g;?Xnx43&pL|izs^e;cE_?mUS$2gf$#UL72o@-GP9csR^`o# zm$u3;2KMIy`T3e`2LG2TdRXTX%JwX>&!X!HxlCyCbBh_3B7OcYWhk=sr9SxEGsu5t zFJ2%Q`5y`DdBi*4kI((|_Z}2e*9&_2epc;w)%Okh`;kU}iGy-wJsu76lU&S_UT1@N zz3x+cDBBzA>k-OBc>EJOK9uuw$X@(un#3t(ooD%ZGnYI%&$_+oAIKlej|F!AeCYd^`(B~tr#}~*#`}xN z#WO#J@*QHwgtIpS`F4?uXMVc9;57c)wbv_Sogc6pdpb$<`mN$0A@<^#pS~vFr%Su( zoK3oYs^gPoPZyrm@a!3pD@7>t@2#4j?y4HdABbE$^HcqE2VdL5k1Bj5KOpwX;r&3q zOXT92pGvv(H~F<3xD8I_?n`J^7uQZ1TB+JmudzRC(4FdohZiwhHRpwT2U8o~p&qvc&`c83Ow&f&5?~ z-x|pC2J$R{{CO~+H-r4M2L2BO{!0e-WdeEmKwcq`R}JJf0(s3q4v*LRfqk<;{!dWv z@W4K8Aa4`M+XnKEfxJr~?;6O%0(q{QZ0sPaZ$l4n%hd3}*Ff__@yX{ce0jk@zA2Em z6uEfjr|-(~t>mo*|CKy4IR1wQ{vXs{S0=x)7>W8!z6j0d+^SxaFHG_%l{|YCT{z(vja3C)i$jb-v%Ap+OTRV{X{ncO3?F0E6fn0vi zDzdQYH-Y`~K)y1NuM6bs1NrbkUM0ZCw!wOquiL7g55!(X;iruQdEY?ZFp&2NRAQ}rQoR}=hCai3Bm)!&eQG$p9N>NWe3n%KK z6i*|F6*O`byRm@D?fzQpw|ZLnldR(+*{>b6-&yFwi9Kl*na=E4E zkaNCN=UX)&_w%0R7^&KQnVq+nlcG)6^76B#^3PeGw>^e^-BI=NxmayG{7YL;dA_RZ zx^Bt$SIIwby}SohThDB*AO5Q47ijsvX!$#>ytOd?Z>Y8NX03dYwftmx>$j8aelUDp z%<0Z?W95aQolH4&JngM?JngP@JngS^JnO-DyB)+MwEeP&wqBo8+I<}N(XJ;qnrrCP zm!(Y)YWbz!?dg;6b2?2n$*RZKmBAaF{aEF>KeO7c$_Zh8|EoP8pHVRfo%}K_-%MMt zDcbhD-;+0d?ald}?O^52|s=zPOe@C%;+i zzjDv=44*o0sQL}xDOS6+Jg=jz{o#=Dw2wK=O679Z{6fso`a8|DTywfCZ`WshY!2CZ z?$bQy5n_y5ey>*Fv0A@W(eiDz`P*puomzgI*%YTeRkiJ(qm@5Jo8H*UCo4!;>zB;W z)bhMfoxkK{F;=U8vX+l(>pxtZ|9($-!;r^Co~!-`Jky0}&7Ul= z-D*!Vf1f#&%!)^}<*oC~Z}{t4<&!gv^t6ZP2HJid)B10gmha`Q-`C2l**PAqeDZSx zYPp6gCxrF60jGR3RYJW#CRyIwZo`nzqpBv4Kck8^-6y9z@82*|z0>(DwP!tz6z_Dy zcbc{yR$hLF*E|lB?Xt&vKmQ=a1zNw};psQSQ0E&}5AXLhhn(}tyH?(ui$xmqJo9s& z@azYM|DQ~M!s!qHW-Y&k{0e7!s(haGKyp7de2vZJIorX?^ITFpAKBx-xB7uvp)Mt`Tia)|Gw4_FKW~8x0YxAFaPVHO{cy5nU%-^K|A?#@@l#oVWh}@ zy3y&EDzYD6bd_(T)&G`OzslS7Rgv{Ee=@&?{F-E*_ZyO@J@)hz?{hyRMQ)er$>}`f zH%mI@%bDKZHT_kqeT0k8AzR)>Dx~ETCVAa z=e#2X{qCyY@HH@7Vz*a_pS0;aJj)kiy_P@dDbM-blQ&Yl^BYDLmRHTyKJR(P@X7V7 z?m8ZNYV~>BYxsJY?RU0=mFIcAcmLA%Qz3rP*26q~CfjBBReZv%T^23(lsA0d=k12i z`#ix&@y>4;-scZSid@f@$>s4~AD-=Gq+0Vk>t#J}F}DwM+S|+U>Ca*A@YKU|e=Wa8 z%ipc#*J=4LwDs24%i9k^c(=C@6`uKp*rnxnd-8@M_g^+$vfpp@Y=6FwPix;hTK-3K zPG|n7wfRr?ERWZS_1@)vs6!|?Spt9JGeE6?i+!(6VtV6jxIhw1z|?a1@g%jRhH?EwDtS5ImuaWj;CFQ&w9S-tdEs9`++%~`EJnanITulHNBCR zKcJPrQ=7irY=^Vl470otbIpzCEcaqhzi=O*)$@k79Qubpdw#?4GyPa6@9RdsG@0i* z?U~>3wJ`HeyR1B)@${V6xX(4)<&=~4u4c)c2N+5&-(22mSH7uMzm?}ZDzy3Jb<_QR zmF~><57+)6^J^)?dBn3kYrMUDo`-7tgPg}{AMYvg^sg1inD1JSjBCtij!&7%Jzop0 zo_5}T_jRJQ`}%I>&GU$-o|alYPkZX&z4BW7^z&LLRvNXu{4@~3O_U#(5Q$?QkFe+-`<=h^C+-|$&`hFxBW zMc(;S_18bzeZ61am$~n+@AA~o`${}{Bjp6jw@dc7;jd4Ayp#9I`x~BPnyp|vr^x)I zWS;k!Yscj@v!q>~?^x5OpY54$_@46gm-YI9`$}`H{I83)f5_|f(B$%slzN`}_%%dr zzaHK%E-u35wG@j{vPF%}h zul4su+WN@-k=H}!SlKV${a1+FwfT?p%rC?!EkD4sKkyx#TE57WH#4s7!FLX7?e~7p zlIQW-^3M0vXP9U2^~v?&GelZ_{XOM5mbB?jwd29s)$RV_J@Q)lIi9?cs>hv<@k|$D zxVHSawe?x#DQ~36*TZ+a*2nt%qtl)XwEE_F_b201PoCd5(w29VwmhzL{Mq#zDcucNFx{f-_o2`|<-qT+~eBhaG`1SQ0>zOV;(~iAN`hNN|F1)e?y37Zn5}g<0WHqEKXw55z-( z(NvZjq>=G}Y?e92T$(u)Du_kng(5LV{?B>@Nm#1T8lDrST!flMVXz<;4ipBn>}843 z;b_j-EK0~Fi*P6sOlAs-!i97iW9XJpBtI)J9>_O~(TR+s9xEqT#+A1k;u;}~PY4x` z$%+RP(V}=xFyWdQjEo6Ha)P;8d90sPX>Qb&i3bad*Z|Jd;8ii|O31!&l1nTp2caVJK20*Uw&;31dR^xRak43WjrC`NYIX4yzjpO`^q4v2b8? zFzgvaR&`Y%k_gGZHTN8I9}AGn4dw;tUp7~W?G?%&L+1zc3Pp7EmBAb~=4kpnz(8I& z8eqH0E=~wmn=PFX<{n^g!h~Qqu$Gn(v0%I)L52b`K+wUI1t`*MB32>l} zjuuhap2@ZBEV;k9k8jx+^N14c?aoo}9BHDGqfcbfOJkzB$u*3|odb%-%f4n5y(-k! z=NJyNd&L4FeU!C*Jg zkw|cK1Y8@<>NJtaVYPFuvlSi9&M&v4kcVY3KAtJAk*cg~jJ>_G>>a?~VAP;GW(-TE z!kjSy)`ugWrdsEh78OUXjcRI3NMeJ@+Wsr&wayLh zLh591RvL?PwJ_J{s#rLb6Y{QdC^DXgT3f(6GF)TqbA47K7R+HsQw5760j>tl`I{ps zu8$hc_1Rk}77wwFJ@e%R5{2%1xax%RBl4W<87nWkSvedI=7rj|+^nL=xFU`{Iv_X8 zI_p+iPVL98IYXQ<`#b7G;}pi$ISC!dzf-=(F(QCR;nTU05Em z?9d!T_87GdCn;g zB6a9k_gT#nXvn%`2#y$a9#a<)kspk(d2+0I%qxb7a4TVNtvDT|uI^&Ic_txm-eGal zFXGnLKAUj?u&(%GqWAcq&7lgJ5hW1X-^sMA+G$W4h^B17(6<}J3mC;EF?;|Fsi!0J)CS9bbi{8D{#Tn_MeY$9uF50GxR_UT; zx@aaRh+d*+PkH~~+*xvMj&bhlY#m}bvt6=;=c;ViedtkW-|2HpJvJEW zta{hJDw{8LRF$1vcYaoVoesIu%2!v(;_C48j7x4tZ_Tc&rhT((z5+_tb?7Bhy+%rw zFz=M*Yb9q4ml5Z7#BOqBo!&{i&rVjM-+m>MQ_RIB@57w&mE1=s=do|6oYIxwODAV= z?x~ZbJf{&}+{ufc>rOIR?$A5R@){AlkR*`%v1o<4dR7@B#Byt$6oC^XAP(GxPb#&;MsW zA~~dp_2l`G(MLz99{BhBr}7#qANzl|+vWQHe_Q9nZO#8({ZM&pDmdUsw8YwHzIPvhyLzA*zk$@8-z9D-{?4bart{9rW;|?~$|I-ic<}T$-l@5Or%)^S zMBDwmySS7`QxEYiw&(LpTu<=?dkwz`b|=5Gb))FR_vZKIJ7Y4$Iv$9x?u@@RY& z56GADtzfT-t9cLnWU+{M>0BkQ<#+V#zZMKg{V)>p+lr(BCSi%Pf>e_4rj<&u0q;Y8 zLgq)vPa>|vTPVk;_*#*l%9Z4|ipWov%6G}hPtwY77m}Ymke_0gZczBtwwML^Z3L2h zSDgH0`-AuayD^n_9?ilTyyL19F2M*Tn{)=s@FjL&Cz@8_(;=Zo_u$ zz+UXbL8W$8zU3Qra0Z59As$y=A^j5H;|J_j_^NqP4<{)tNTt?F2I*zU#+8WSM$E(< zEWpc1J(gcPK)RAiDqV&E#-SL~aWm#(9&W=TEI|pDDNm9iFz%y8- zl#xp1*n&NZzdGNXfm*1Ix@e8I=!nkff^JAdx^g+`C}bgkamqAOX*yX0& zH||ybN_rn2#NV(8OYkV3L7C#OK|4_swNVGH(H3b)S1uzRiBU>6X#mB_bkdtK2lH?% z7GVjNV+EeUD&=F+f1(^)@GW*Cm5*=MKuy#}9rQ%HavrI4F)l$C0+@s;n2tMeHy+1w zJcm_EDd{>GHQ5g6tYnZ5#8g~|>y;ZwXW?c%h=t0-q$OCUtRj_4u?FjuO{AN_M@&r_ zq=Rq{!kB@Z!B_W-w&<&5k`Bj6j6y&OlI9_T7>Y0zbCd<7Yq4H=om48rUhKo*I-G+r z44JqDmnkDjMdTc44o=SNDn+AWosbo6z5AjHWmngE0)5xD+Fl zKaonKlq}L~P>d(=Bv#^iWi{yrhp-5bq6AOkX*`cotiwxq17+BN_wi5oJF=c=hBoMgZa5RY(GPcE zKJLT)*o%EQ2!AK8`{;x@Sb!H$frH?-OS~|Q^gPZhe`ERB53!K*>O&lpXo9wAhYUn8 z1@o~0JJ8@^%Aq-C;3m9|GQ5R%l=nzCVJD15d}BWRsETT+f#%3S0@q63T{ zt5B+}CY3(I$0)~_*op5Uzeb@7jzvuzkNRkeR%ne5=!lWH93jN;3B)5@S2nUAVI5w@ zPY`=J|Lmn4K7joAVinXy12k5ekhVr!bjO+KjXp{SX+QMG01U+Acn72Q@lBUV-_Lmg zb8#!yqXK&{?tmphDos!(l1f)A*N{q6un)}+a@|Hhj6@#hV*#GWYOKdAcoT19BR<3? z(6i>Z8XQN;w?W8nST}$DSN;OA{FPt%OS*gusrk+CqezRf7a4pIp%BG5-h{BkY95te>&nAr5b5B^uU?u zt@I@wj%j!DHCywSEi9J!;4sh z50y=%lBi>d<53sw&=(mf#toRE%p#qQxtNdpum~miC*;>f)j%!OMqRW}i#dr*Buoml;Vm|KoDBj0M z@}qxz{O}A6P>M;H;AurPFvLm7z(9zG^cNOjGY+E4iH0~2l1(e5Hi+N0gq-J_XT;V-nTS0U1i1bS?y6(^Lh= z;8;{gM+{W5NrTA87+i^&_={4`*VFBU{MfgYirT1yE+|n%Q$yT!D$8qOhzN?&za`uC z3`0~vbfkZ}(kB>*Z0zmN_yObxk_HUX7-9_PlPg&dT!9##M;X3>7)w3KK!4<50Z(FD!V94(a7 zNToLDjIQW`G^H1*be1xRR60i)N-7P*`M3ZV;$r1eQfY+pCsJvYl0_;7FdDf^KIxSR zBaT8$z(h>OwMsGROx%Qfa6cZzLM+BoJO^GSiOmo30P|s=NaLqWGSHZ>Hff6c-|&eN zlz-(D6&NKSbpFV6^Q$3K#E`lvoaW2dHw-~V~|lX@1U(WP}gmqwpw*O{0D4b z`+0ua5k1d$wzstnyzvBmJG^N2lQ*6qw}rc}tmRw#m$fb2{pF4&$X5*=Xl0h@$1iH7 zi_tiny(oxtc|jb;`Se;8mx=mBBI@(YTqp4By(fqPL>~qs7kOqRLe^&2cj_Va{CxTT zM_fKjG(Y09vOO&n9tF^DUSDA(vXlVnBs`$-5>-fc{NyQyrDv5=(hYbYyYM4kqZ%)b;m2=@r}Sn%sSnP=APmM(48sMA z9(T!Od=aK%8m8md#9vlYel6DHWxR^l;f}{_CBF?jAmcIzVN_>*@oVEVy_shK24OIU zVi<yI zgF)=4CuDr-JY-@7rs7EBOqIozUSj??P=*hn$C(-uQ#uh%(FWa=9;8y5(udR?j~Yk* zdfb3JaTiu%og!-Ud>t}AH6IJ`KRMnsir7*XLKuhNBmPvcffax1N-E<|7eS9d#Tl1? zj6=NxcO2?t^5ysf)rmPBhgvuh?)a39P3du|ro^7wp(A=>Abu`RRmSuWA>&miL&mGF zKsF|03T9#+?t&f1Dq(mPUceg=CtLBXOwth;iv)`C9b`PK2QqLDWL)d#;#p-(e;e;Y z#;|1k>VIO~szy_`5Beel7c1jPr76lh(tA;cP1vG*Mp^-1v;TaY>(|7$rnLWk;#=j^ za}e%0*BKoTALqJ@X?MdN@A|#sTy}gb`VjZ3xCS!L^(}r&eCxDDgb@`xo>feKEz0l# z%Av=#+Ap@^Sr?Jo@vLHoOCjS~AD|p|{HpsB_B9McCPp9|cKk|@N9|ymj7ROlzY~x8 zaw)M}e1i(?!M_uq`Xl2~f*4aRG{qU{g02{b^YL5bR<(&eod`RA)t6z(j$;KG{!hfO z_8UCYgdWE#_wkGrg4mQE&zi)zVjM|4Ye6c{mvA($<;1m8s_~o=RZs(!#kbC6d{6XM zelFg%jWVM8Z;yAKMtrLy(vSfe_X?o^di-l?O`boa1nxN4KJt1TEVCBRfiWE=aL2&} zF|L8ggN%Vq!LwMc*m1B5@_QhT=b0{5m$88^#89>R#B5JwV6 zE2Z3OWi6?+9b` z$89A4A!JNW#^OGOjK}rCAVtRD?!w{XZxzJg_Godq?u}SBWGpTdBVfnlZe{pkEXI?l zEI!wr*jrDfH)%ThVh}Ph0+q$><}iL9ZozGkF}wv>3>nAU1<}Nb-}Pj;56(g+M&j4T z^D?>;^Fn3uytDwz)8cvAS8{HF9oH*m_+{Afy$XiEhm7-em+?HvIA114;BfK2SOGB) z=yAXEqr8^^bD_umK4n}5zQuoc{BQnBVt%N2jr|GYP2NL-ju?pGTl5urub{C|rlzOj**EyRcHH|T{hij?a~rF(E6?#E-$oSf(L!69eI2A3> z3TE9WvS*>TH`TdcTc2I)C)$1flKg!3QvK*lfksQBexVwXo6w=5%exk1G*W$ZE& zBXBf+X~i!qexhITd&M#3gS8#V5?l|3k62HN$PuZ;Z~Vl2su07eDndM*5Az!m1^j+a zgm;rgc?cTg!C{>5vrh1a>_Q%96^Y~d_VGGmf~YGd5(nZ@n)%%ovZb>i|0WPyxSbL2 zGTa8$QJOAG@O)-3!~Aqf_CddhrB)Fc)i~F4e>RV6X!c3OySbKRKjRk_@|wb*{NEZf zvz7i=*7=u8IJ1p^!Y>~AyI*X3+%Hz53=5Hmq1eC7FRobb7q>B-NjuKNvc-P!)6;%& z%L>1UF7k^j(U|dVsOtdb1~Gg#hM*p0j)5Q5;X_SSQ1&|<&+q}#-PncgXvnx9Ne|*D zoIw5@>I$=*ex$w8AKg&ExXqL~m*EDK`;y@=a0TsdiEkM0!?b^qHfH*T43A-+4ANdW zmUY?6v@J*@KW(XBG@@MgBh<qj{sX&v&{ zQO`q2Vfr=9dlA#7l7>h}P-Zjre#Z3EsAoI*s^r5=dy8>BSw;=&*iGtVd_xRkT6Lxk zp}tPc^FG7N(SdneP%ee?yD0O`62JI?aW67$6)s@f#AFm68*OuvV+v(cSpU&b;TF<*VuLv<`-+I^4tMQiG4M45plesKw! zp%nEPx0JeSGQ6L1Uy^n~7-Lw!eWcSVa~tUm7)RL+q`9Q;QobSer&0G=dDBGX(9h5V^C21Hl(HW0mCCZq# z8s}1HZ|Z)KG#%eEZX4~XOMR0mcP|>CCN5)n7h(jCquf^7Se18UwXliyl+%V) zc#3)_kj}%y*obt>VBCJDA4h(G>;r}yGAy@~Jico)?qkx%->UvBsA44;bs0u1oPasU7T diff --git a/test/test-utils.ts b/test/test-utils.ts index afdfeab79..7a5d2b35b 100644 --- a/test/test-utils.ts +++ b/test/test-utils.ts @@ -4,7 +4,7 @@ import { cpSync, existsSync, readdirSync, readFileSync, rmSync } from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; import prettier from "prettier"; -import plugin from "../src/index.ts"; +import plugin from "../dist/index.mjs"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); diff --git a/test/unit-test/annotation_interface_declaration/_input.java b/test/unit-test/annotation_interface_declaration/_input.java index fd130fe93..2100c5a6c 100644 --- a/test/unit-test/annotation_interface_declaration/_input.java +++ b/test/unit-test/annotation_interface_declaration/_input.java @@ -5,4 +5,5 @@ Integer[][] annotatedArray = (Integer[][]) new Object[4][2]; @RandomAnnotationWithObject({"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"}) V[][] annotatedArray = (V[][]) new Object[rowList.size()][columnList.size()]; + record Config(String a, String b) {} } \ No newline at end of file diff --git a/test/unit-test/annotation_interface_declaration/_output.java b/test/unit-test/annotation_interface_declaration/_output.java index 9a5e4d989..9e6468e7f 100644 --- a/test/unit-test/annotation_interface_declaration/_output.java +++ b/test/unit-test/annotation_interface_declaration/_output.java @@ -26,4 +26,6 @@ "Ten", }) V[][] annotatedArray = (V[][]) new Object[rowList.size()][columnList.size()]; + + record Config(String a, String b) {} } diff --git a/test/unit-test/binary_expressions/operator-position-end/_input.java b/test/unit-test/binary_expressions/operator-position-end/_input.java index b75745604..4bf5a64ee 100644 --- a/test/unit-test/binary_expressions/operator-position-end/_input.java +++ b/test/unit-test/binary_expressions/operator-position-end/_input.java @@ -129,5 +129,16 @@ void instanceOf() { Foo.get(longlinelonglinelonglinelonglinelongline) instanceof NumberNumberNumberNumber n && n.foo(); + + e instanceof @Ann final E baz; + f instanceof final @Ann E qux; + } + + void unaryExpression() { + int a = -x + y; + int b = ~x & y; + boolean c = !x && !y; + int d = -(x + y); + Object e = (int) -x; } } diff --git a/test/unit-test/binary_expressions/operator-position-end/_output.java b/test/unit-test/binary_expressions/operator-position-end/_output.java index 608543822..47140de83 100644 --- a/test/unit-test/binary_expressions/operator-position-end/_output.java +++ b/test/unit-test/binary_expressions/operator-position-end/_output.java @@ -244,5 +244,16 @@ void instanceOf() { var a = Foo.get(longlinelonglinelonglinelonglinelongline) instanceof NumberNumberNumberNumber n && n.foo(); + + e instanceof @Ann final E baz; + f instanceof final @Ann E qux; + } + + void unaryExpression() { + int a = -x + y; + int b = ~x & y; + boolean c = !x && !y; + int d = -(x + y); + Object e = (int) -x; } } diff --git a/test/unit-test/binary_expressions/operator-position-start/_input.java b/test/unit-test/binary_expressions/operator-position-start/_input.java index b75745604..4bf5a64ee 100644 --- a/test/unit-test/binary_expressions/operator-position-start/_input.java +++ b/test/unit-test/binary_expressions/operator-position-start/_input.java @@ -129,5 +129,16 @@ void instanceOf() { Foo.get(longlinelonglinelonglinelonglinelongline) instanceof NumberNumberNumberNumber n && n.foo(); + + e instanceof @Ann final E baz; + f instanceof final @Ann E qux; + } + + void unaryExpression() { + int a = -x + y; + int b = ~x & y; + boolean c = !x && !y; + int d = -(x + y); + Object e = (int) -x; } } diff --git a/test/unit-test/binary_expressions/operator-position-start/_output.java b/test/unit-test/binary_expressions/operator-position-start/_output.java index 7b9ccd169..e97cb9b92 100644 --- a/test/unit-test/binary_expressions/operator-position-start/_output.java +++ b/test/unit-test/binary_expressions/operator-position-start/_output.java @@ -239,5 +239,16 @@ void instanceOf() { var a = Foo.get(longlinelonglinelonglinelonglinelongline) instanceof NumberNumberNumberNumber n && n.foo(); + + e instanceof @Ann final E baz; + f instanceof final @Ann E qux; + } + + void unaryExpression() { + int a = -x + y; + int b = ~x & y; + boolean c = !x && !y; + int d = -(x + y); + Object e = (int) -x; } } diff --git a/test/unit-test/cast/_input.java b/test/unit-test/cast/_input.java index e4dcb2b69..b574abbf2 100644 --- a/test/unit-test/cast/_input.java +++ b/test/unit-test/cast/_input.java @@ -18,4 +18,12 @@ void many_nested_casts() { ((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map)((Map) ((Map) map).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1)).get(1); } + void intersectionCastExpression() { + Object o1 = (A & B) (C) o; + Object o2 = (A & B) ~0; + Object o3 = (A & B) switch (x) { default -> null; }; + Object o4 = (A & B) !x; + Object o5 = (A & B) + x; + Object o6 = (A & B) - x; + } } diff --git a/test/unit-test/cast/_output.java b/test/unit-test/cast/_output.java index cb200b035..c9d3bb80a 100644 --- a/test/unit-test/cast/_output.java +++ b/test/unit-test/cast/_output.java @@ -58,4 +58,15 @@ void many_nested_casts() { ).get(1) ).get(1); } + + void intersectionCastExpression() { + Object o1 = (A & B) (C) o; + Object o2 = (A & B) ~0; + Object o3 = (A & B) switch (x) { + default -> null; + }; + Object o4 = (A & B) !x; + Object o5 = (A & B) + x; + Object o6 = (A & B) - x; + } } diff --git a/test/unit-test/constructors/_input.java b/test/unit-test/constructors/_input.java index a8686bef1..3b139df22 100644 --- a/test/unit-test/constructors/_input.java +++ b/test/unit-test/constructors/_input.java @@ -49,4 +49,14 @@ public Constructors() { public GenericConstructor(T genericParameter) {} public GenericConstructor(T genericParameter) {} + + FlexibleConstructorBody(int x) { + this.x = x; + super(x); + } + + FlexibleConstructorBody() { + var v = 42; + this(v); + } } diff --git a/test/unit-test/constructors/_output.java b/test/unit-test/constructors/_output.java index cb354a9b7..fb7b8bbcf 100644 --- a/test/unit-test/constructors/_output.java +++ b/test/unit-test/constructors/_output.java @@ -62,4 +62,14 @@ public Constructors() { public GenericConstructor(T genericParameter) {} public GenericConstructor(T genericParameter) {} + + FlexibleConstructorBody(int x) { + this.x = x; + super(x); + } + + FlexibleConstructorBody() { + var v = 42; + this(v); + } } diff --git a/test/unit-test/expressions/_input.java b/test/unit-test/expressions/_input.java index f1e9fc969..bf7572e8f 100644 --- a/test/unit-test/expressions/_input.java +++ b/test/unit-test/expressions/_input.java @@ -246,4 +246,13 @@ void parenthesesWithoutBreak() { Aaaaaaaaaa aaaaaaaaaa = (bbbbbbbbbb -> cccccccccc ? dddddddddd : eeeeeeeeee)::ffffffffff; Aaaaaaaaaa aaaaaaaaaa = (bbbbbbbbbb -> cccccccccc ? dddddddddd : eeeeeeeeee)[ffffffffff]; } + + void unaryExpression() { + int a = +x; + int b = -x; + int c = ~x; + boolean d = !x; + int e = ~~x; + int f = -+x; + } } diff --git a/test/unit-test/expressions/_output.java b/test/unit-test/expressions/_output.java index 7bef95cbf..efdfc3be5 100644 --- a/test/unit-test/expressions/_output.java +++ b/test/unit-test/expressions/_output.java @@ -340,4 +340,13 @@ void parenthesesWithoutBreak() { Aaaaaaaaaa aaaaaaaaaa = (bbbbbbbbbb -> cccccccccc ? dddddddddd : eeeeeeeeee)[ffffffffff]; } + + void unaryExpression() { + int a = +x; + int b = -x; + int c = ~x; + boolean d = !x; + int e = ~~x; + int f = -+x; + } } diff --git a/test/unit-test/pattern-matching/_input.java b/test/unit-test/pattern-matching/_input.java index 000023a76..ad6fc2119 100644 --- a/test/unit-test/pattern-matching/_input.java +++ b/test/unit-test/pattern-matching/_input.java @@ -43,6 +43,10 @@ case Buyer b when ( } int recordPatterns(MyRecord r) { + if (o instanceof Foo(@Bar String s)) {} + switch (obj) { + case final String s: break; + } return switch (r) { case null, default -> 0; case MyRecord(A a) -> 0; @@ -52,6 +56,8 @@ int recordPatterns(MyRecord r) { case MyRecord(LongTypeName longVariableName, LongTypeName longVariableName) -> 0; case MyRecord(LongTypeName longVariableName, LongTypeName longVariableName) when this.longVariableName > longVariableName && this.longVariableName > longVariableName -> 0; case MyRecord(LongTypeName longVariableName, LongTypeName longVariableName) when this.longVariableName > longVariableName && this.longVariableName > longVariableName -> longMethodName(longVariableName, longVariableName, longVariableName, longVariableName); + case Outer.Inner(String s) -> {} + case final String s -> s; }; } } diff --git a/test/unit-test/pattern-matching/_output.java b/test/unit-test/pattern-matching/_output.java index 087f5fbb7..a3190a4fe 100644 --- a/test/unit-test/pattern-matching/_output.java +++ b/test/unit-test/pattern-matching/_output.java @@ -66,6 +66,12 @@ case Buyer b when ( } int recordPatterns(MyRecord r) { + if (o instanceof Foo(@Bar String s)) { + } + switch (obj) { + case final String s: + break; + } return switch (r) { case null, default -> 0; case MyRecord(A a) -> 0; @@ -104,6 +110,9 @@ case MyRecord( longVariableName, longVariableName ); + case Outer.Inner(String s) -> { + } + case final String s -> s; }; } } diff --git a/test/unit-test/text-blocks/_input.java b/test/unit-test/text-blocks/_input.java index 0780d47ee..66b7ecda3 100644 --- a/test/unit-test/text-blocks/_input.java +++ b/test/unit-test/text-blocks/_input.java @@ -55,4 +55,17 @@ public void print(%s object) { ); } + String escapes = """ + 1+1 equals \ + 2 maybe + """; + + String escapes = """ + \"""var msg = hello world!\"""; + """; + + String escapes = """ + \n\t\r\f\b\s\\ + \077 + \u0041"""; } diff --git a/test/unit-test/text-blocks/_output.java b/test/unit-test/text-blocks/_output.java index 566eeff16..8bc70f2f0 100644 --- a/test/unit-test/text-blocks/_output.java +++ b/test/unit-test/text-blocks/_output.java @@ -52,4 +52,18 @@ public void print(%s object) { abc""" ); } + + String escapes = """ + 1+1 equals \ + 2 maybe + """; + + String escapes = """ + \"""var msg = hello world!\"""; + """; + + String escapes = """ + \n\t\r\f\b\s\\ + \077 + \u0041"""; } diff --git a/test/unit-test/variables/_input.java b/test/unit-test/variables/_input.java index 253b87977..1425653d1 100644 --- a/test/unit-test/variables/_input.java +++ b/test/unit-test/variables/_input.java @@ -33,8 +33,27 @@ public class Variables { private Range creator3 = this.dateRangeField.new Range<>(from, to); private Range creator3 = new Range<>(from, to); + private int intLiteral = 1__0; + private int intLiteral = 0_00_00; + private int intLiteral = 0_7; + private int intLiteral = 0__7; private int hexLiteral = 0x0000; - private int octLiteral = 001; + private int hexLiteral = 0xa__b; + private int hexLiteral = 0x1p0993; + private int hexLiteral = 0x1p-0993; + private int octLiteral = 001; + private int binaryLiteral = 0b1__0; + private double floatingPointLiteral = 0d; + private double floatingPointLiteral = 0D; + private double floatingPointLiteral = 00d; + private double floatingPointLiteral = 1.0d; + private double floatingPointLiteral = 1.0D; + private float floatingPointLiteral = 1.0f; + private float floatingPointLiteral = 1.0F; + private float floatingPointLiteral = 1e4f; + private double floatingPointLiteral = 1e4d; + private float floatingPointLiteral = 007f; + private double floatingPointLiteral = 00e1; private Interface anonymousClassVariable = new Interface(){ @Override diff --git a/test/unit-test/variables/_output.java b/test/unit-test/variables/_output.java index 64226a990..a4f443c39 100644 --- a/test/unit-test/variables/_output.java +++ b/test/unit-test/variables/_output.java @@ -58,8 +58,27 @@ public class Variables { ); private Range creator3 = new Range<>(from, to); + private int intLiteral = 1__0; + private int intLiteral = 0_00_00; + private int intLiteral = 0_7; + private int intLiteral = 0__7; private int hexLiteral = 0x0000; + private int hexLiteral = 0xa__b; + private int hexLiteral = 0x1p0993; + private int hexLiteral = 0x1p-0993; private int octLiteral = 001; + private int binaryLiteral = 0b1__0; + private double floatingPointLiteral = 0d; + private double floatingPointLiteral = 0D; + private double floatingPointLiteral = 00d; + private double floatingPointLiteral = 1.0d; + private double floatingPointLiteral = 1.0D; + private float floatingPointLiteral = 1.0f; + private float floatingPointLiteral = 1.0F; + private float floatingPointLiteral = 1e4f; + private double floatingPointLiteral = 1e4d; + private float floatingPointLiteral = 007f; + private double floatingPointLiteral = 00e1; private Interface anonymousClassVariable = new Interface() { @Override diff --git a/yarn.lock b/yarn.lock index 0f3eb2803..b3626b649 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4771,10 +4771,10 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -tree-sitter-java-orchard@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/tree-sitter-java-orchard/-/tree-sitter-java-orchard-0.5.4.tgz#8c698a57566ff99ce979bf3f53a313f0f7888eec" - integrity sha512-MpEi4ic9ksqU9CerMt0XXxOJN5CfDsosGrop++4z6Z9XRkT86bu+I/7LCNJS0rrvA5SoY2t98icBeotSaTtY4A== +tree-sitter-java-orchard@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/tree-sitter-java-orchard/-/tree-sitter-java-orchard-0.5.6.tgz#9bcac73eee928ef8fbf4c2c8c57de2d0627711b3" + integrity sha512-nn6D9bE73ltYTtLudi3fxJ4/lFQCcRyXb9qaVRGOcv5Xi+y0xQNZ/z4PJaVki+KqaiIcR70tViZztLhnSvouYA== dependencies: node-addon-api "^8.3.1" node-gyp-build "^4.8.4" @@ -4963,10 +4963,10 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-tree-sitter@0.26.6: - version "0.26.6" - resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.26.6.tgz#9e4ed73f1d6fde58e7742cebf89be7eb1f6d3814" - integrity sha512-fSPR7VBW/fZQdUSp/bXTDLT+i/9dwtbnqgEBMzowrM4U3DzeCwDbY3MKo0584uQxID4m/1xpLflrlT/rLIRPew== +web-tree-sitter@0.26.7: + version "0.26.7" + resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.26.7.tgz#09fde4367c464fe56dec9bf1240014a3d269d988" + integrity sha512-KiZhelTvBA/ziUHEO7Emb75cGVAq8iGZNabYaZm53Zpy50NsXyOW+xSHlwHt5CVg/TRPZBfeVLTTobF0LjFJ1w== which@^2.0.1: version "2.0.2"