@jxsuite/studio 10.2.0 → 10.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{2020-bx702wqa.js → 2020-906vx2dq.js} +3 -3
- package/dist/chunks/adapter-hnvad61x.js +4 -0
- package/dist/chunks/add-new-flow-3tkn72ey.js +4 -0
- package/dist/chunks/cf-account-picker-xb8vvt2h.js +4 -0
- package/dist/chunks/cf-settings-mkbcz4z2.js +4 -0
- package/dist/chunks/components-w5zqwva1.js +4 -0
- package/dist/chunks/content-source-1vzxq1ba.js +4 -0
- package/dist/chunks/convert-to-repeater-gwzh9gar.js +4 -0
- package/dist/chunks/editor-wvf5e6j9.js +4 -0
- package/dist/chunks/entry-commands-mx2whrjx.js +4 -0
- package/dist/chunks/extension-sections-338ee35t.js +4 -0
- package/dist/chunks/file-ops-9bxvk59j.js +4 -0
- package/dist/chunks/files-t07yqqej.js +4 -0
- package/dist/chunks/format-host-5ja5gxyk.js +4 -0
- package/dist/chunks/fs-events-3424ezp3.js +4 -0
- package/dist/chunks/grid-open-1mpq9mzb.js +4 -0
- package/dist/chunks/{grid-view-tghcwrrt.js → grid-view-w9nfy203.js} +16 -16
- package/dist/chunks/icons-gb967qc8.js +4 -0
- package/dist/chunks/iframe-host-wsg0bn73.js +4 -0
- package/dist/chunks/image-bake-4afr4y6a.js +4 -0
- package/dist/chunks/image-editor-x7t8jbjn.js +4 -0
- package/dist/chunks/index-f9qr7kzh.js +4 -0
- package/dist/chunks/{index-vr006kbt.js → index-yjrfeks8.js} +3 -3
- package/dist/chunks/{javascript-z1g3s9fd.js → javascript-hy2mws8v.js} +3 -3
- package/dist/chunks/{jsonMode-7szwg8c4.js → jsonMode-vj30te2h.js} +6 -6
- package/dist/chunks/jx-validate-ttr5ewf0.js +4 -0
- package/dist/chunks/layers-m49nmwvx.js +4 -0
- package/dist/chunks/layers-panel-hvy2e549.js +4 -0
- package/dist/chunks/lit-html-k2mb9k0r.js +4 -0
- package/dist/chunks/media-library-ae67q4at.js +4 -0
- package/dist/chunks/media-open-yp9jm834.js +4 -0
- package/dist/chunks/media-picker-s41ngdfr.js +4 -0
- package/dist/chunks/{monaco-binding-v42w9c1v.js → monaco-binding-a51py33c.js} +3 -3
- package/dist/chunks/monaco-buffer-pa0g6ax7.js +4 -0
- package/dist/chunks/{monaco-setup-7bffxd6v.js → monaco-setup-g9kterhx.js} +3 -3
- package/dist/chunks/notify-bwehrp7q.js +4 -0
- package/dist/chunks/parse-hee7ne9b.js +4 -0
- package/dist/chunks/platform-kv0k65cy.js +4 -0
- package/dist/chunks/publish-panel-gzfxcm0t.js +4 -0
- package/dist/chunks/publish-quick-w3nxd7q4.js +4 -0
- package/dist/chunks/publish-workspace-dppd82tc.js +4 -0
- package/dist/chunks/quick-search-tdxaam55.js +4 -0
- package/dist/chunks/references-vqyr5s9x.js +4 -0
- package/dist/chunks/right-panel-0yrw4cgz.js +4 -0
- package/dist/chunks/source-control-6fk72me2.js +4 -0
- package/dist/chunks/{studio-j3d2fjqz.js → studio-0939t1q1.js} +4 -4
- package/dist/chunks/studio-0gvvqj3h.js +5 -0
- package/dist/chunks/studio-0khd8xtx.js +4 -0
- package/dist/chunks/studio-0w3541dg.js +7 -0
- package/dist/chunks/{studio-9b7177jq.js → studio-0x6f3nk9.js} +4 -4
- package/dist/chunks/studio-1410q5dw.js +5 -0
- package/dist/chunks/{studio-awxwjawq.js → studio-15hwqgd8.js} +4 -4
- package/dist/chunks/studio-1ks5d9y4.js +5 -0
- package/dist/chunks/{studio-881z1xrx.js → studio-2ggfzrrd.js} +4 -4
- package/dist/chunks/{studio-4jhw38b2.js → studio-321ym1tt.js} +4 -4
- package/dist/chunks/studio-3c10v2q1.js +5 -0
- package/dist/chunks/{studio-bvs9kpst.js → studio-3na1r48j.js} +8 -8
- package/dist/chunks/{studio-86r8hp7r.js → studio-3q7mhbgx.js} +5 -5
- package/dist/chunks/studio-3qr08sxq.js +4 -0
- package/dist/chunks/studio-3xk9zdgb.js +5 -0
- package/dist/chunks/{studio-qh8berdz.js → studio-423tfdte.js} +4 -4
- package/dist/chunks/{studio-75kcdbsk.js → studio-45mj4jqe.js} +4 -4
- package/dist/chunks/studio-4f7thq0p.js +5 -0
- package/dist/chunks/studio-4fnb5648.js +5 -0
- package/dist/chunks/studio-4zd6an2b.js +5 -0
- package/dist/chunks/studio-53wy9ek3.js +5 -0
- package/dist/chunks/studio-5n193zqd.js +5 -0
- package/dist/chunks/{studio-9rbe2xpw.js → studio-5tet77de.js} +3 -3
- package/dist/chunks/{studio-ybnwymxw.js → studio-7rrdbvex.js} +4 -4
- package/dist/chunks/studio-8kx6m0rg.js +5 -0
- package/dist/chunks/{studio-sxdb9h3q.js → studio-90zkgne5.js} +7 -7
- package/dist/chunks/studio-9c6cbq2c.js +4 -0
- package/dist/chunks/studio-9dq7rwc7.js +5 -0
- package/dist/chunks/{studio-cg1bfyhf.js → studio-9qx1ywbv.js} +8 -8
- package/dist/chunks/studio-a65kbs2e.js +9 -0
- package/dist/chunks/studio-aam8zt8z.js +5 -0
- package/dist/chunks/{studio-er5f383a.js → studio-abh9kfdh.js} +4 -4
- package/dist/chunks/studio-b4e0ftkt.js +5 -0
- package/dist/chunks/studio-b68k0z00.js +5 -0
- package/dist/chunks/{studio-399a25za.js → studio-bct64zmj.js} +4 -4
- package/dist/chunks/studio-bz0b5brj.js +6 -0
- package/dist/chunks/studio-cfnn70h1.js +5 -0
- package/dist/chunks/studio-daksw8kh.js +5 -0
- package/dist/chunks/{studio-r7pf0rkv.js → studio-e7vjyp04.js} +7 -7
- package/dist/chunks/studio-ea6r1zyr.js +5 -0
- package/dist/chunks/studio-egnjpyde.js +9 -0
- package/dist/chunks/studio-ejrypvmq.js +5 -0
- package/dist/chunks/studio-eqcddvc2.js +928 -0
- package/dist/chunks/studio-f8tyeyzt.js +5 -0
- package/dist/chunks/studio-fj6c905s.js +5 -0
- package/dist/chunks/{studio-646nn2ys.js → studio-fkrr7kgg.js} +5 -5
- package/dist/chunks/studio-fspe7m9t.js +5 -0
- package/dist/chunks/studio-g0hxtcga.js +5 -0
- package/dist/chunks/{studio-th7z3fg7.js → studio-g9brbewz.js} +4 -4
- package/dist/chunks/studio-ggx3j7nd.js +5 -0
- package/dist/chunks/{studio-43y04qck.js → studio-hfxttkyr.js} +4 -4
- package/dist/chunks/studio-hh394phe.js +5 -0
- package/dist/chunks/{studio-pjtntksy.js → studio-j0zf5x2x.js} +4 -4
- package/dist/chunks/studio-jeb7hth3.js +5 -0
- package/dist/chunks/studio-k0xzrse2.js +64 -0
- package/dist/chunks/studio-k1xqrgm5.js +5 -0
- package/dist/chunks/studio-k2evngrj.js +7 -0
- package/dist/chunks/studio-k3we3kqb.js +5 -0
- package/dist/chunks/{studio-sevbc3xv.js → studio-n9qba0gx.js} +4 -4
- package/dist/chunks/{studio-6hzdjfv0.js → studio-nf8esxxc.js} +4 -4
- package/dist/chunks/studio-nn4f9m9c.js +5 -0
- package/dist/chunks/studio-nskxe9q1.js +6 -0
- package/dist/chunks/{studio-ea74s8c1.js → studio-nvcn2ykc.js} +4 -4
- package/dist/chunks/studio-nwynxqtb.js +5 -0
- package/dist/chunks/studio-nzemfbkk.js +14 -0
- package/dist/chunks/studio-p2a03pgm.js +5 -0
- package/dist/chunks/{studio-4g8yb6jn.js → studio-pm17wdc4.js} +4 -4
- package/dist/chunks/{studio-71m92v9s.js → studio-q80fg1d6.js} +7 -7
- package/dist/chunks/studio-r050sez0.js +6 -0
- package/dist/chunks/studio-s7t4vp1d.js +6 -0
- package/dist/chunks/studio-s9fng7m8.js +7 -0
- package/dist/chunks/studio-sce30r7b.js +4 -0
- package/dist/chunks/studio-stahswgb.js +7 -0
- package/dist/chunks/studio-swedpd82.js +5 -0
- package/dist/chunks/studio-thz5t120.js +5 -0
- package/dist/chunks/studio-tpxcryf2.js +5 -0
- package/dist/chunks/{studio-wc6za3zs.js → studio-v5wktj6f.js} +4 -4
- package/dist/chunks/{studio-kg1abnz0.js → studio-vpevkfxw.js} +4 -4
- package/dist/chunks/studio-waekn290.js +5 -0
- package/dist/chunks/studio-wfct4h6n.js +5 -0
- package/dist/chunks/studio-wgc54sxf.js +5 -0
- package/dist/chunks/studio-wqfaqw4m.js +5 -0
- package/dist/chunks/studio-wse1rs8t.js +7 -0
- package/dist/chunks/studio-x0gsfr1d.js +16 -0
- package/dist/chunks/{studio-hhp4x8xf.js → studio-xpx91fby.js} +5 -5
- package/dist/chunks/studio-y1b86ast.js +5 -0
- package/dist/chunks/studio-yrcrncev.js +5 -0
- package/dist/chunks/{studio-rzqaz21g.js → studio-yzpskb0j.js} +4 -4
- package/dist/chunks/studio-zfdbmhp3.js +5 -0
- package/dist/chunks/{tsMode-f54j66ym.js → tsMode-jg1dtphj.js} +7 -7
- package/dist/chunks/workspace-9btkc8tk.js +4 -0
- package/dist/chunks/workspace-home-qcc4z5ag.js +4 -0
- package/dist/chunks/{ws-client-e8kj684q.js → ws-client-arz2qsy9.js} +3 -3
- package/dist/iframe-entry.js +13 -13
- package/dist/manifest.json +83 -78
- package/dist/studio.js +84 -84
- package/package.json +2 -2
- package/src/browse/library-pane.ts +44 -29
- package/src/browse/library-preview.ts +6 -2
- package/src/canvas/asset-refs.ts +13 -4
- package/src/canvas/asset-resolve.ts +54 -11
- package/src/canvas/canvas-render.ts +25 -0
- package/src/canvas/iframe-entry.ts +5 -1
- package/src/canvas/iframe-host.ts +16 -6
- package/src/canvas/iframe-protocol.ts +9 -1
- package/src/commands/context.ts +5 -0
- package/src/commands/live-context.ts +5 -2
- package/src/editor/shortcuts.ts +3 -0
- package/src/files/asset-versions.ts +108 -2
- package/src/files/file-ops.ts +11 -1
- package/src/files/files.ts +111 -48
- package/src/files/media-paths.ts +12 -4
- package/src/files/media-upload.ts +195 -21
- package/src/files/new-file-name.ts +39 -1
- package/src/media/image-bake.ts +164 -0
- package/src/media/image-editor.ts +846 -0
- package/src/media/image-format.ts +262 -0
- package/src/media/image-recipe.ts +651 -0
- package/src/media/media-commands.ts +65 -1
- package/src/media/media-library-model.ts +1 -1
- package/src/media/media-library.ts +175 -15
- package/src/media/media-open.ts +156 -3
- package/src/media/media-pane.ts +8 -4
- package/src/panels/pane-context.ts +6 -1
- package/src/panels/tab-strip.ts +12 -3
- package/src/studio.ts +13 -2
- package/src/surfaces/image-editor.json +1390 -0
- package/src/surfaces/image-editor.ts +272 -0
- package/src/surfaces/media-library.json +129 -1
- package/src/surfaces/media-library.ts +17 -2
- package/src/types.ts +2 -1
- package/src/workspace/tab-workspace.ts +2 -1
- package/src/workspace/workspace-switch.ts +3 -1
- package/src/workspace/workspace.ts +22 -1
- package/dist/chunks/adapter-pp011m5x.js +0 -4
- package/dist/chunks/add-new-flow-ecqmzz76.js +0 -4
- package/dist/chunks/cf-account-picker-c07znkqt.js +0 -4
- package/dist/chunks/cf-settings-0v2bmqy0.js +0 -4
- package/dist/chunks/components-yn0dn2pq.js +0 -4
- package/dist/chunks/content-source-g0j41yy6.js +0 -4
- package/dist/chunks/convert-to-repeater-sbjk7tgn.js +0 -4
- package/dist/chunks/editor-xz02jeh1.js +0 -4
- package/dist/chunks/entry-commands-kmt02crp.js +0 -4
- package/dist/chunks/extension-sections-0rprf12d.js +0 -4
- package/dist/chunks/file-ops-mexj5qed.js +0 -4
- package/dist/chunks/files-b2tcppdd.js +0 -4
- package/dist/chunks/format-host-btsevv0c.js +0 -4
- package/dist/chunks/fs-events-r0apejva.js +0 -4
- package/dist/chunks/grid-open-n2a8xkht.js +0 -4
- package/dist/chunks/icons-853n6qt3.js +0 -4
- package/dist/chunks/iframe-host-gx0ypyh3.js +0 -4
- package/dist/chunks/index-bs4k9tr6.js +0 -4
- package/dist/chunks/jx-validate-ymf10teh.js +0 -4
- package/dist/chunks/layers-p9nfya38.js +0 -4
- package/dist/chunks/layers-panel-tt1hzhhf.js +0 -4
- package/dist/chunks/lit-html-x18n2sfz.js +0 -4
- package/dist/chunks/media-library-0n45gv8r.js +0 -4
- package/dist/chunks/media-picker-s09at95z.js +0 -4
- package/dist/chunks/monaco-buffer-een2ea0v.js +0 -4
- package/dist/chunks/notify-qwb8radt.js +0 -4
- package/dist/chunks/parse-v77xtwv7.js +0 -4
- package/dist/chunks/platform-8jnez0wr.js +0 -4
- package/dist/chunks/publish-panel-aysnj611.js +0 -4
- package/dist/chunks/publish-quick-kpbqs9mz.js +0 -4
- package/dist/chunks/publish-workspace-nd0a8q99.js +0 -4
- package/dist/chunks/quick-search-vg0jkhk2.js +0 -4
- package/dist/chunks/references-a7v6a0e2.js +0 -4
- package/dist/chunks/right-panel-cvk1vxx5.js +0 -4
- package/dist/chunks/source-control-fsqzc6he.js +0 -4
- package/dist/chunks/studio-05jfwbmf.js +0 -5
- package/dist/chunks/studio-0q5jwddh.js +0 -9
- package/dist/chunks/studio-0w2dr0q8.js +0 -5
- package/dist/chunks/studio-1tzpds97.js +0 -9
- package/dist/chunks/studio-216b27sv.js +0 -4
- package/dist/chunks/studio-2ejhqns4.js +0 -5
- package/dist/chunks/studio-2r90cts3.js +0 -16
- package/dist/chunks/studio-399xknkb.js +0 -6
- package/dist/chunks/studio-4ncmwqw5.js +0 -5
- package/dist/chunks/studio-5atwjgkj.js +0 -7
- package/dist/chunks/studio-5frqk7c0.js +0 -5
- package/dist/chunks/studio-6cwj6xrx.js +0 -5
- package/dist/chunks/studio-78pywnp2.js +0 -6
- package/dist/chunks/studio-886t6ztg.js +0 -5
- package/dist/chunks/studio-8wnvtr4z.js +0 -5
- package/dist/chunks/studio-8z66jk4z.js +0 -5
- package/dist/chunks/studio-b2qpt0xy.js +0 -14
- package/dist/chunks/studio-c71806xz.js +0 -7
- package/dist/chunks/studio-cbwks69x.js +0 -928
- package/dist/chunks/studio-cg710sk9.js +0 -5
- package/dist/chunks/studio-cw0wb9qk.js +0 -7
- package/dist/chunks/studio-cyheys7k.js +0 -5
- package/dist/chunks/studio-ea5m9kg5.js +0 -5
- package/dist/chunks/studio-efdxjwyp.js +0 -64
- package/dist/chunks/studio-egmw2837.js +0 -5
- package/dist/chunks/studio-f746039f.js +0 -5
- package/dist/chunks/studio-fmdymd9v.js +0 -5
- package/dist/chunks/studio-gcm12z00.js +0 -6
- package/dist/chunks/studio-gj98m8gy.js +0 -7
- package/dist/chunks/studio-hasbgjah.js +0 -5
- package/dist/chunks/studio-hz5n7x27.js +0 -5
- package/dist/chunks/studio-jeraxdgv.js +0 -7
- package/dist/chunks/studio-jvgek9xt.js +0 -5
- package/dist/chunks/studio-jws1a87n.js +0 -5
- package/dist/chunks/studio-k2sz13zg.js +0 -5
- package/dist/chunks/studio-k3m4jkdk.js +0 -5
- package/dist/chunks/studio-kg5ya5r2.js +0 -5
- package/dist/chunks/studio-khwbgrtg.js +0 -5
- package/dist/chunks/studio-mx6wzh25.js +0 -5
- package/dist/chunks/studio-mxs3ar9t.js +0 -5
- package/dist/chunks/studio-nm4szey4.js +0 -5
- package/dist/chunks/studio-nqxqf8p2.js +0 -4
- package/dist/chunks/studio-qn7z4krm.js +0 -5
- package/dist/chunks/studio-qyed0ah6.js +0 -5
- package/dist/chunks/studio-r4bcdwhq.js +0 -5
- package/dist/chunks/studio-rtfnhrdg.js +0 -5
- package/dist/chunks/studio-s5tzw84t.js +0 -5
- package/dist/chunks/studio-t51y8v1d.js +0 -5
- package/dist/chunks/studio-t98vq4r6.js +0 -5
- package/dist/chunks/studio-tsxpqvh0.js +0 -6
- package/dist/chunks/studio-v1yascv2.js +0 -5
- package/dist/chunks/studio-wxq6v5sv.js +0 -5
- package/dist/chunks/studio-y60sts62.js +0 -4
- package/dist/chunks/studio-zndrqawb.js +0 -5
- package/dist/chunks/studio-zwaxn5s2.js +0 -5
- package/dist/chunks/workspace-home-x1787wpv.js +0 -4
- package/dist/chunks/workspace-zpe1np43.js +0 -4
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import{ot,bg,_f,N1,fR,vo,A1,Kn,Ns,S2,ny,Bn,Vi,O1,C2,R0,iy,ee,yt,gi,Tr,yo,H,cc,Vh,sa,au,$n,k2,cn,As,ro,ni,He,dc,E2,za,oy,vg,e,b,nn,ve,ai,Jr,Os,Ro,T2,Wa,Ni,Ms,Re,aa,ze,Lr,N,d,i,de,mR,zn,dn,I,o,hc,Do,$r,Ps,la,hs,ho,we,qe,D0,un,Uh,sy,Sl,q,s,t,F,S,ps,qh,cr,N0,P1,ay,Cl,yg,kl,Gh,L2,Kh,fs,F1,wg,ly,A0,qt,Ke,cy,ii,j1,Va,Ui,Ci,Yn,Rt,dr,Sf,O0,lu,El,No,Fs,In,pc,Tl,cu,R2,H1,hd,li,Xe,ci,Zt,fc,D2,N2,qi,Ir,bi,di,ke,da,A2,oi,se,_g,du,Gi,Ko,Jh,kf,gR,uu,P0,Gt,vi,F0,f,Rn,B1,ur,W,ri,O2,M2,Je,P2,pd,j,je,js,so,bR,W1,vR,Yh,hr,fd,B,mn,c,Ct,F2,hu,j0,H0,uy,ki,B0,ua,at,V1,j2,kt,hy,Ao,Ll,Qt,$l,Ot,Hs,pu,Ef,Ge,$e,Tf,T,Ee,yi,k,gn,x,H2,Oo,po,Ua,z0,Ie,Zr,yR,he,Lf,Sn,A,ie,Te,Et,Dn,wo,ut,ms,gc,J,Ue,Le,L,M,G,pt,Nn,$f,l,Ai,Zn,bc,Ki,Cn,lt,Wn,en,Ji,B2,md,An,gs,z2,Oi,W2,If,U1,V2,fu,Ye,q1,ao,wR,kg,Rf,tn,U,py,pr,Mo,K,O,W0,U2,fe,si,bs,re,xt,_e,kn,Df,Rr,lo,ht,fy,ha,Nf,vc,Xr,Jo,Qr,vs,mu,my,V,Af,V0,K1,J1,q2,ne,Kt,U0,Eg,Il,Po,gt,Yi,Of,xo,ui,xR,Tg,D,yc,y,gy,z,_R,Fo,Tt,G2,Rl,Xi,ys,gd,Vn,jo,Mi,vy,Xh,on,Qh,yy,Y1,K2,Dl,P,a,Dr,be,Lg,Ae,q0,$g,Be,Xt,Ig,Yo,qa,Ho,Pf,Rg,J2,Ga,Ff,Bs,jf,Y2,bd,Dg,Z2,pa,X2,wc,Q2,Ng,wy,Hf,Z1,X1,eP,tP,nP,iP,ep,bu,G0,vu,xy,Q1,SR,K0,J0,Bf,Y0,oP,Z0,ek,tk,Ag,tp,Og,_y,np,vd,Mg,yd,Nl,Sy,fr,ip,Lt,$t,Mt,Ei,X0,Al,mt,Ol,nk,wd,Q0,zf,CR,Pg,rP,Wf,yu,Cy,et,Ti,kR,Fg,Nt,ky,Pi,Ey,op,es,jg,ok,Vf,xc,r,Uf,We,bn,Li,sP,rk,Hg,t_,sk,ak,hn,Sc,wt,Nr,ER,lP,ge,n_,Ar,cP,ma,Xn,Bg,fo,Ty,vn,i_,o_,r_,s_,lk,dP,wu,ck,xd,ue,_d,Cc,On,xu,uP,ws,Qn,zg,qf,dk,uk,hk,TR,fP,sp,ts,Ly,Sd,mP,Mn,ap,Or,fk,$y,a_,_o,Ml,Zo,gP,Bo,LR,l_,Mr,Wg,En,Pn,kc,c_,mk,gk,Iy,uo,xs,tt,wi,Kf,d_,$R,qg,mr,$i,De,So,Ec,Ry,Dy,Ny,vk,Jf,Cd,Gg,yP,Pl,yk,Ay,Qi,Oy,wk,Tc,u_,mo,h_,p_,Lc,xk,f_,m_,g_,b_,v_,ba,IR,_k,Sk,Ck,rn,y_,Pr,kk,Ja,zs,va,Ek,wP,xP,Tk,_P,Lk,$c,Ic,$k,w_,Yt,Fl,Kg,ya,lp,Py,Su,Cu,Nk,Ya,Pt,Ak,Fy,RR,_s,ns,Ok,Ii,Eu,kd,Za,__,xi,ct,S_,dp,up,Xa,jy,Mk,Qf,Ss,Hy,em,NR,SP,AR,tm,xe}from"./studio-eqcddvc2.js";import{ce}from"./studio-0939t1q1.js";class vf{constructor(u,n,h,g,p){this._onDidChange=new tm,this._onDidExtraLibsChange=new tm,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(u),this.setDiagnosticsOptions(n),this.setWorkerOptions(h),this.setInlayHintsOptions(g),this.setModeConfiguration(p),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(u,n){let h;if(typeof n>"u")h=`ts:extralib-${Math.random().toString(36).substring(2,15)}`;else h=n;if(this._extraLibs[h]&&this._extraLibs[h].content===u)return{dispose:()=>{}};let g=1;if(this._removedExtraLibs[h])g=this._removedExtraLibs[h]+1;if(this._extraLibs[h])g=this._extraLibs[h].version+1;return this._extraLibs[h]={content:u,version:g},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let p=this._extraLibs[h];if(!p)return;if(p.version!==g)return;delete this._extraLibs[h],this._removedExtraLibs[h]=g,this._fireOnDidExtraLibsChangeSoon()}}}setExtraLibs(u){for(let n in this._extraLibs)this._removedExtraLibs[n]=this._extraLibs[n].version;if(this._extraLibs=Object.create(null),u&&u.length>0)for(let n of u){let h=n.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,g=n.content,p=1;if(this._removedExtraLibs[h])p=this._removedExtraLibs[h]+1;this._extraLibs[h]={content:g,version:p}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){if(this._onDidExtraLibsChangeTimeout!==-1)return;this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0)}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(u){this._compilerOptions=u||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(u){this._diagnosticsOptions=u||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(u){this._workerOptions=u||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(u){this._inlayHintsOptions=u||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(u){}setEagerModelSync(u){this._eagerModelSync=u}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(u){this._modeConfiguration=u||Object.create(null),this._onDidChange.fire(void 0)}}var VS={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},pR=new vf({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},VS),qE=new vf({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},VS);function zS(){return ce("jg1dtphj"),import("./tsMode-jg1dtphj.js")}xe.onLanguage("typescript",()=>zS().then((u)=>u.setupTypeScript(pR)));xe.onLanguage("javascript",()=>zS().then((u)=>u.setupJavaScript(qE)));class KS extends U{constructor(){super({id:"editor.action.forceRetokenize",label:b(1606,"Developer: Force Retokenize"),precondition:void 0})}run(u,n){if(!n.hasModel())return;let h=n.getModel();h.tokenization.resetTokenization();let g=new dn;h.tokenization.forceTokenization(h.getLineCount()),g.stop(),console.log(`tokenization took ${g.elapsed()}`)}}O(KS);class Ht{static{this.sep="."}static{this.None=new Ht("@@none@@")}static{this.Empty=new Ht("")}constructor(u){this.value=u}equals(u){return this.value===u.value}contains(u){return this.equals(u)||this.value===""||u.value.startsWith(this.value+Ht.sep)}intersects(u){return this.contains(u)||u.contains(this)}append(...u){return new Ht((this.value?[this.value,...u]:u).join(Ht.sep))}}var jE=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},$E=function(u,n){return function(h,g){n(h,g,u)}},GE=ue.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:H1,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0,widthInEm:1}});class wf extends i{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(u,n,h,g,p){super();this.typeId=u,this.editor=n,this.range=h,this.delegate=p,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(g),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(u){this.domNode=x(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=u;let n=x("span.icon");this.domNode.append(n),n.classList.add(...J.asClassNameArray(S.loading),"codicon-modifier-spin");let h=()=>{let g=this.editor.getOption(75);this.domNode.style.height=`${g}px`,this.domNode.style.width=`${Math.ceil(0.8*g)}px`};h(),this._register(this.editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(61)||g.hasChanged(75))h()})),this._register(c(this.domNode,T.CLICK,(g)=>{this.delegate.cancel()}))}getId(){return wf.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}var Jv=class u extends i{constructor(n,h,g){super();this.id=n,this._editor=h,this._instantiationService=g,this._showDelay=500,this._showPromise=this._register(new de),this._currentWidget=this._register(new de),this._operationIdPool=0,this._currentDecorations=h.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(n,h,g,p,m){let _=this._operationIdPool++;this._currentOperation=_,this.clear(),this._showPromise.value=bi(()=>{let v=t.fromPositions(n);if(this._currentDecorations.set([{range:v,options:GE}]).length>0)this._currentWidget.value=this._instantiationService.createInstance(wf,this.id,this._editor,v,h,p)},m??this._showDelay);try{return await g}finally{if(this._currentOperation===_)this.clear(),this._currentOperation=void 0}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};Jv=jE([$E(2,A)],Jv);var ZE=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},US=function(u,n){return function(h,g){n(h,g,u)}},Ou,hi=class u{static{Ou=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new M("messageVisible",!1,e(1353,"Whether the editor is currently showing an inline message"))}static get(n){return n.getContribution(Ou.ID)}constructor(n,h,g){this._openerService=g,this._messageWidget=new de,this._messageListeners=new d,this._mouseOverMessage=!1,this._editor=n,this._visible=Ou.MESSAGE_VISIBLE.bindTo(h)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(n,h){if(Vn(Or(n)?n.value:n),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),Or(n)){let p=this._messageListeners.add(Ml(n,{actionHandler:(m,_)=>{this.closeMessage(),LR(this._openerService,m,_.isTrusted)}}));this._messageWidget.value=new Pu(this._editor,h,p.element)}else this._messageWidget.value=new Pu(this._editor,h,n);this._messageListeners.add(I.debounce(this._editor.onDidBlurEditorText,(p,m)=>m,0)(()=>{if(this._mouseOverMessage)return;if(this._messageWidget.value&&Qt(Ot(),this._messageWidget.value.getDomNode()))return;this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(c(this._messageWidget.value.getDomNode(),T.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(c(this._messageWidget.value.getDomNode(),T.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let g;this._messageListeners.add(this._editor.onMouseMove((p)=>{if(!p.target.position)return;if(!g)g=new t(h.lineNumber-3,1,p.target.position.lineNumber+3,1);else if(!g.containsPosition(p.target.position))this.closeMessage()}))}closeMessage(){if(this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value)this._messageListeners.add(Pu.fadeOut(this._messageWidget.value))}};hi=Ou=ZE([US(1,G),US(2,Zo)],hi);var XE=tn.bindToContribution(hi.get);K(new XE({id:"leaveEditorMessage",precondition:hi.MESSAGE_VISIBLE,handler:(u)=>u.closeMessage(),kbOpts:{weight:130,primary:9}}));class Pu{static fadeOut(u){let n=()=>{u.dispose(),clearTimeout(h),u.getDomNode().removeEventListener("animationend",n)},h=setTimeout(n,110);return u.getDomNode().addEventListener("animationend",n),u.getDomNode().classList.add("fadeOut"),{dispose:n}}constructor(u,{lineNumber:n,column:h},g){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=u,this._editor.revealLinesInCenterIfOutsideViewport(n,n,0),this._position={lineNumber:n,column:h},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";let p=document.createElement("div");p.classList.add("anchor","top"),this._domNode.appendChild(p);let m=document.createElement("div");if(typeof g==="string")m.classList.add("message"),m.textContent=g;else g.classList.add("message"),m.appendChild(g);this._domNode.appendChild(m);let _=document.createElement("div");_.classList.add("anchor","below"),this._domNode.appendChild(_),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(u){this._domNode.classList.toggle("below",u===2)}}fe(hi.ID,hi,4);var Cf=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},cl=function(u,n){return function(h,g){n(h,g,u)}};class Fu{constructor(u){this.copyMimeTypes=[],this.kind=u,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(u,n,h,g,p){let m=await this.getEdit(h,p);if(!m)return;return{edits:[{insertText:m.insertText,title:m.title,kind:m.kind,handledMimeType:m.handledMimeType,yieldTo:m.yieldTo}],dispose(){}}}async provideDocumentDropEdits(u,n,h,g){let p=await this.getEdit(h,g);if(!p)return;return{edits:[{insertText:p.insertText,title:p.title,kind:p.kind,handledMimeType:p.handledMimeType,yieldTo:p.yieldTo}],dispose(){}}}}class Hh extends Fu{static{this.id="text"}constructor(){super(Ht.Empty.append("text","plain"));this.id=Hh.id,this.dropMimeTypes=[kn.text],this.pasteMimeTypes=[kn.text]}async getEdit(u,n){let h=u.get(kn.text);if(!h)return;if(u.has(kn.uriList))return;let g=await h.asString();return{handledMimeType:kn.text,title:e(980,"Insert Plain Text"),insertText:g,kind:this.kind}}}class yf extends Fu{constructor(){super(Ht.Empty.append("uri","path","absolute"));this.dropMimeTypes=[kn.uriList],this.pasteMimeTypes=[kn.uriList]}async getEdit(u,n){let h=await jS(u);if(!h.length||n.isCancellationRequested)return;let g=0,p=h.map(({uri:_,originalText:v})=>{if(_.scheme===se.file)return _.fsPath;else return g++,v}).join(" "),m;if(g>0)m=h.length>1?e(981,"Insert Uris"):e(982,"Insert Uri");else m=h.length>1?e(983,"Insert Paths"):e(984,"Insert Path");return{handledMimeType:kn.uriList,insertText:p,title:m,kind:this.kind}}}var Au=class u extends Fu{constructor(n){super(Ht.Empty.append("uri","path","relative"));this._workspaceContextService=n,this.dropMimeTypes=[kn.uriList],this.pasteMimeTypes=[kn.uriList]}async getEdit(n,h){let g=await jS(n);if(!g.length||h.isCancellationRequested)return;let p=vo(g.map(({uri:m})=>{let _=this._workspaceContextService.getWorkspaceFolder(m);return _?V2(_.uri,m):void 0}));if(!p.length)return;return{handledMimeType:kn.uriList,insertText:p.join(" "),title:g.length>1?e(985,"Insert Relative Paths"):e(986,"Insert Relative Path"),kind:this.kind}}};Au=Cf([cl(0,va)],Au);class qS{constructor(){this.kind=new Ht("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:kn.text}]}async provideDocumentPasteEdits(u,n,h,g,p){if(g.triggerKind!==yg.PasteAs&&!g.only?.contains(this.kind))return;let _=await h.get("text/html")?.asString();if(!_||p.isCancellationRequested)return;return{dispose(){},edits:[{insertText:_,yieldTo:this._yieldTo,title:e(987,"Insert HTML"),kind:this.kind}]}}}async function jS(u){let n=u.get(kn.uriList);if(!n)return[];let h=await n.asString(),g=[];for(let p of Pg.parse(h))try{g.push({uri:q.parse(p),originalText:p})}catch{}return g}var xa={scheme:"*",hasAccessToAllModels:!0},S1=class u extends i{constructor(n,h){super();this._register(n.documentDropEditProvider.register(xa,new Hh)),this._register(n.documentDropEditProvider.register(xa,new yf)),this._register(n.documentDropEditProvider.register(xa,new Au(h)))}};S1=Cf([cl(0,z),cl(1,va)],S1);var C1=class u extends i{constructor(n,h){super();this._register(n.documentPasteEditProvider.register(xa,new Hh)),this._register(n.documentPasteEditProvider.register(xa,new yf)),this._register(n.documentPasteEditProvider.register(xa,new Au(h))),this._register(n.documentPasteEditProvider.register(xa,new qS))}};C1=Cf([cl(0,z),cl(1,va)],C1);class Tn{constructor(){this.value="",this.pos=0}static{this._table={[36]:0,[58]:1,[44]:2,[123]:3,[125]:4,[92]:5,[47]:6,[124]:7,[43]:11,[45]:12,[63]:13}}static isDigitCharacter(u){return u>=48&&u<=57}static isVariableCharacter(u){return u===95||u>=97&&u<=122||u>=65&&u<=90}text(u){this.value=u,this.pos=0}tokenText(u){return this.value.substr(u.pos,u.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let u=this.pos,n=0,h=this.value.charCodeAt(u),g;if(g=Tn._table[h],typeof g==="number")return this.pos+=1,{type:g,pos:u,len:1};if(Tn.isDigitCharacter(h)){g=8;do n+=1,h=this.value.charCodeAt(u+n);while(Tn.isDigitCharacter(h));return this.pos+=n,{type:g,pos:u,len:n}}if(Tn.isVariableCharacter(h)){g=9;do h=this.value.charCodeAt(u+ ++n);while(Tn.isVariableCharacter(h)||Tn.isDigitCharacter(h));return this.pos+=n,{type:g,pos:u,len:n}}g=10;do n+=1,h=this.value.charCodeAt(u+n);while(!isNaN(h)&&typeof Tn._table[h]>"u"&&!Tn.isDigitCharacter(h)&&!Tn.isVariableCharacter(h));return this.pos+=n,{type:g,pos:u,len:n}}}class Ia{constructor(){this._children=[]}appendChild(u){if(u instanceof pi&&this._children[this._children.length-1]instanceof pi)this._children[this._children.length-1].value+=u.value;else u.parent=this,this._children.push(u);return this}replace(u,n){let{parent:h}=u,g=h.children.indexOf(u),p=h.children.slice(0);p.splice(g,1,...n),h._children=p,function m(_,v){for(let w of _)w.parent=v,m(w.children,w)}(n,h)}get children(){return this._children}get rightMostDescendant(){if(this._children.length>0)return this._children[this._children.length-1].rightMostDescendant;return this}get snippet(){let u=this;while(!0){if(!u)return;if(u instanceof Pd)return u;u=u.parent}}toString(){return this.children.reduce((u,n)=>u+n.toString(),"")}len(){return 0}}class pi extends Ia{constructor(u){super();this.value=u}toString(){return this.value}len(){return this.value.length}clone(){return new pi(this.value)}}class xf extends Ia{}class co extends xf{static compareByIndex(u,n){if(u.index===n.index)return 0;else if(u.isFinalTabstop)return 1;else if(n.isFinalTabstop)return-1;else if(u.index<n.index)return-1;else if(u.index>n.index)return 1;else return 0}constructor(u){super();this.index=u}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof La?this._children[0]:void 0}clone(){let u=new co(this.index);if(this.transform)u.transform=this.transform.clone();return u._children=this.children.map((n)=>n.clone()),u}}class La extends Ia{constructor(){super(...arguments);this.options=[]}appendChild(u){if(u instanceof pi)u.parent=this,this.options.push(u);return this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let u=new La;return this.options.forEach(u.appendChild,u),u}}class Mf extends Ia{constructor(){super(...arguments);this.regexp=new RegExp("")}resolve(u){let n=this,h=!1,g=u.replace(this.regexp,function(){return h=!0,n._replace(Array.prototype.slice.call(arguments,0,-2))});if(!h&&this._children.some((p)=>p instanceof Fn&&Boolean(p.elseValue)))g=this._replace([]);return g}_replace(u){let n="";for(let h of this._children)if(h instanceof Fn){let g=u[h.index]||"";g=h.resolve(g),n+=g}else n+=h.toString();return n}toString(){return""}clone(){let u=new Mf;return u.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),u._children=this.children.map((n)=>n.clone()),u}}class Fn extends Ia{constructor(u,n,h,g){super();this.index=u,this.shorthandName=n,this.ifValue=h,this.elseValue=g}resolve(u){if(this.shorthandName==="upcase")return!u?"":u.toLocaleUpperCase();else if(this.shorthandName==="downcase")return!u?"":u.toLocaleLowerCase();else if(this.shorthandName==="capitalize")return!u?"":u[0].toLocaleUpperCase()+u.substr(1);else if(this.shorthandName==="pascalcase")return!u?"":this._toPascalCase(u);else if(this.shorthandName==="camelcase")return!u?"":this._toCamelCase(u);else if(this.shorthandName==="kebabcase")return!u?"":this._toKebabCase(u);else if(this.shorthandName==="snakecase")return!u?"":this._toSnakeCase(u);else if(Boolean(u)&&typeof this.ifValue==="string")return this.ifValue;else if(!Boolean(u)&&typeof this.elseValue==="string")return this.elseValue;else return u||""}_toKebabCase(u){if(!u.match(/[\p{L}0-9]+/gu))return u;if(!u.match(/[\p{L}0-9]/u))return u.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");let h=u.trim().replace(/^_+|_+$/g,""),g=h.match(/\p{Lu}{2,}(?=\p{Lu}\p{Ll}+[0-9]*|[\s_-]|$)|\p{Lu}?\p{Ll}+[0-9]*|\p{Lu}(?=\p{Lu}\p{Ll})|\p{Lu}(?=[\s_-]|$)|[0-9]+/gu);if(!g)return h.split(/[\s_-]+/).filter((p)=>p.length>0).map((p)=>p.toLowerCase()).join("-");return g.map((p)=>p.toLowerCase()).join("-")}_toPascalCase(u){let n=u.match(/[\p{L}0-9]+/gu);if(!n)return u;return n.map((h)=>h.charAt(0).toUpperCase()+h.substr(1)).join("")}_toCamelCase(u){let n=u.match(/[\p{L}0-9]+/gu);if(!n)return u;return n.map((h,g)=>{if(g===0)return h.charAt(0).toLowerCase()+h.substr(1);return h.charAt(0).toUpperCase()+h.substr(1)}).join("")}_toSnakeCase(u){return u.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new Fn(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class ls extends xf{constructor(u){super();this.name=u}resolve(u){let n=u.resolve(this);if(this.transform)n=this.transform.resolve(n||"");if(n!==void 0)return this._children=[new pi(n)],!0;return!1}clone(){let u=new ls(this.name);if(this.transform)u.transform=this.transform.clone();return u._children=this.children.map((n)=>n.clone()),u}}function $S(u,n){let h=[...u];while(h.length>0){let g=h.shift();if(!n(g))break;h.unshift(...g.children)}}class Pd extends Ia{get placeholderInfo(){if(!this._placeholders){let u=[],n;this.walk(function(h){if(h instanceof co)u.push(h),n=!n||n.index<h.index?h:n;return!0}),this._placeholders={all:u,last:n}}return this._placeholders}get placeholders(){let{all:u}=this.placeholderInfo;return u}offset(u){let n=0,h=!1;if(this.walk((g)=>{if(g===u)return h=!0,!1;return n+=g.len(),!0}),!h)return-1;return n}fullLen(u){let n=0;return $S([u],(h)=>(n+=h.len(),!0)),n}enclosingPlaceholders(u){let n=[],{parent:h}=u;while(h){if(h instanceof co)n.push(h);h=h.parent}return n}resolveVariables(u){return this.walk((n)=>{if(n instanceof ls){if(n.resolve(u))this._placeholders=void 0}return!0}),this}appendChild(u){return this._placeholders=void 0,super.appendChild(u)}replace(u,n){return this._placeholders=void 0,super.replace(u,n)}clone(){let u=new Pd;return u._children=this.children.map((n)=>n.clone()),u}walk(u){$S(this.children,u)}}class go{constructor(){this._scanner=new Tn,this._token={type:14,pos:0,len:0}}static escape(u){return u.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(u){return/\${?CLIPBOARD/.test(u)}parse(u,n,h){let g=new Pd;return this.parseFragment(u,g),this.ensureFinalTabstop(g,h??!1,n??!1),g}parseFragment(u,n){let h=n.children.length;this._scanner.text(u),this._token=this._scanner.next();while(this._parse(n));let g=new Map,p=[];n.walk((v)=>{if(v instanceof co)if(v.isFinalTabstop)g.set(0,void 0);else if(!g.has(v.index)&&v.children.length>0)g.set(v.index,v.children);else p.push(v);return!0});let m=(v,w)=>{let C=g.get(v.index);if(!C)return;let E=new co(v.index);E.transform=v.transform;for(let R of C){let Z=R.clone();if(E.appendChild(Z),Z instanceof co&&g.has(Z.index)&&!w.has(Z.index))w.add(Z.index),m(Z,w),w.delete(Z.index)}n.replace(v,[E])},_=new Set;for(let v of p)m(v,_);return n.children.slice(h)}ensureFinalTabstop(u,n,h){if(n||h&&u.placeholders.length>0){if(!u.placeholders.find((p)=>p.index===0))u.appendChild(new co(0))}}_accept(u,n){if(u===void 0||this._token.type===u){let h=!n?!0:this._scanner.tokenText(this._token);return this._token=this._scanner.next(),h}return!1}_backTo(u){return this._scanner.pos=u.pos+u.len,this._token=u,!1}_until(u){let n=this._token;while(this._token.type!==u){if(this._token.type===14)return!1;else if(this._token.type===5){let g=this._scanner.next();if(g.type!==0&&g.type!==4&&g.type!==5)return!1}this._token=this._scanner.next()}let h=this._scanner.value.substring(n.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),h}_parse(u){return this._parseEscaped(u)||this._parseTabstopOrVariableName(u)||this._parseComplexPlaceholder(u)||this._parseComplexVariable(u)||this._parseAnything(u)}_parseEscaped(u){let n;if(n=this._accept(5,!0))return n=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||n,u.appendChild(new pi(n)),!0;return!1}_parseTabstopOrVariableName(u){let n,h=this._token;if(!(this._accept(0)&&(n=this._accept(9,!0)||this._accept(8,!0))))return this._backTo(h);return u.appendChild(/^\d+$/.test(n)?new co(Number(n)):new ls(n)),!0}_parseComplexPlaceholder(u){let n,h=this._token;if(!(this._accept(0)&&this._accept(3)&&(n=this._accept(8,!0))))return this._backTo(h);let p=new co(Number(n));if(this._accept(1))while(!0){if(this._accept(4))return u.appendChild(p),!0;if(this._parse(p))continue;return u.appendChild(new pi("${"+n+":")),p.children.forEach(u.appendChild,u),!0}else if(p.index>0&&this._accept(7)){let m=new La;while(!0){if(this._parseChoiceElement(m)){if(this._accept(2))continue;if(this._accept(7)){if(p.appendChild(m),this._accept(4))return u.appendChild(p),!0}}return this._backTo(h),!1}}else if(this._accept(6)){if(this._parseTransform(p))return u.appendChild(p),!0;return this._backTo(h),!1}else if(this._accept(4))return u.appendChild(p),!0;else return this._backTo(h)}_parseChoiceElement(u){let n=this._token,h=[];while(!0){if(this._token.type===2||this._token.type===7)break;let g;if(g=this._accept(5,!0))g=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||g;else g=this._accept(void 0,!0);if(!g)return this._backTo(n),!1;h.push(g)}if(h.length===0)return this._backTo(n),!1;return u.appendChild(new pi(h.join(""))),!0}_parseComplexVariable(u){let n,h=this._token;if(!(this._accept(0)&&this._accept(3)&&(n=this._accept(9,!0))))return this._backTo(h);let p=new ls(n);if(this._accept(1))while(!0){if(this._accept(4))return u.appendChild(p),!0;if(this._parse(p))continue;return u.appendChild(new pi("${"+n+":")),p.children.forEach(u.appendChild,u),!0}else if(this._accept(6)){if(this._parseTransform(p))return u.appendChild(p),!0;return this._backTo(h),!1}else if(this._accept(4))return u.appendChild(p),!0;else return this._backTo(h)}_parseTransform(u){let n=new Mf,h="",g="";while(!0){if(this._accept(6))break;let p;if(p=this._accept(5,!0)){p=this._accept(6,!0)||p,h+=p;continue}if(this._token.type!==14){h+=this._accept(void 0,!0);continue}return!1}while(!0){if(this._accept(6))break;let p;if(p=this._accept(5,!0)){p=this._accept(5,!0)||this._accept(6,!0)||p,n.appendChild(new pi(p));continue}if(this._parseFormatString(n)||this._parseAnything(n))continue;return!1}while(!0){if(this._accept(4))break;if(this._token.type!==14){g+=this._accept(void 0,!0);continue}return!1}try{n.regexp=new RegExp(h,g)}catch(p){return!1}return u.transform=n,!0}_parseFormatString(u){let n=this._token;if(!this._accept(0))return!1;let h=!1;if(this._accept(3))h=!0;let g=this._accept(8,!0);if(!g)return this._backTo(n),!1;else if(!h)return u.appendChild(new Fn(Number(g))),!0;else if(this._accept(4))return u.appendChild(new Fn(Number(g))),!0;else if(!this._accept(1))return this._backTo(n),!1;if(this._accept(6)){let p=this._accept(9,!0);if(!p||!this._accept(4))return this._backTo(n),!1;else return u.appendChild(new Fn(Number(g),p)),!0}else if(this._accept(11)){let p=this._until(4);if(p)return u.appendChild(new Fn(Number(g),void 0,p,void 0)),!0}else if(this._accept(12)){let p=this._until(4);if(p)return u.appendChild(new Fn(Number(g),void 0,void 0,p)),!0}else if(this._accept(13)){let p=this._until(1);if(p){let m=this._until(4);if(m)return u.appendChild(new Fn(Number(g),void 0,p,m)),!0}}else{let p=this._until(4);if(p)return u.appendChild(new Fn(Number(g),void 0,void 0,p)),!0}return this._backTo(n),!1}_parseAnything(u){if(this._token.type!==14)return u.appendChild(new pi(this._scanner.tokenText(this._token))),this._accept(void 0),!0;return!1}}function Hu(u,n,h){if(typeof h.insertText==="string"?h.insertText==="":h.insertText.snippet==="")return{edits:h.additionalEdit?.edits??[]};return{edits:[...n.map((g)=>new Ic(u,{range:g,text:typeof h.insertText==="string"?go.escape(h.insertText)+"$0":h.insertText.snippet,insertAsSnippet:!0})),...h.additionalEdit?.edits??[]]}}function k1(u){function n(_,v){if("mimeType"in _)return _.mimeType===v.handledMimeType;return!!v.kind&&_.kind.contains(v.kind)}let h=new Map;for(let _ of u)for(let v of _.yieldTo??[])for(let w of u){if(w===_)continue;if(n(v,w)){let C=h.get(_);if(!C)C=[],h.set(_,C);C.push(w)}}if(!h.size)return Array.from(u);let g=new Set,p=[];function m(_){if(!_.length)return[];let v=_[0];if(p.includes(v))return console.warn("Yield to cycle detected",v),_;if(g.has(v))return m(_.slice(1));let w=[],C=h.get(v);if(C)p.push(v),w=m(C),p.pop();return g.add(v),[...w,v,...m(_.slice(1))]}return m(Array.from(u))}function Gf(u,n){if(n&&(u.stack||u.stacktrace))return e(33,"{0}: {1}",ZS(u),GS(u.stack)||GS(u.stacktrace));return ZS(u)}function GS(u){if(Array.isArray(u))return u.join(`
|
|
2
|
+
`);return u}function ZS(u){if(u.code==="ERR_UNC_HOST_NOT_ALLOWED")return`${u.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;if(typeof u.code==="string"&&typeof u.errno==="number"&&typeof u.syscall==="string")return e(34,"A system error occurred ({0})",u.message);return u.message||e(35,"An unknown error occurred. Please consult the log for more details.")}function Yv(u=null,n=!1){if(!u)return e(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(u)){let h=vo(u),g=Yv(h[0],n);if(h.length>1)return e(37,"{0} ({1} errors in total)",g,h.length);return g}if($n(u))return u;if(u.detail){let h=u.detail;if(h.error)return Gf(h.error,n);if(h.exception)return Gf(h.exception,n)}if(u.stack)return Gf(u,n);if(u.message)return u.message;return e(38,"An unknown error occurred. Please consult the log for more details.")}class Zf extends i{constructor(u){super();this._onChange=this._register(new o),this.onChange=this._onChange.event,this._checked=!!u.checked,this._title=u.title??u.ariaLabel,this.domNode=x("button.monaco-switch"),this.domNode.type="button",this.domNode.setAttribute("role","switch"),k(this.domNode,x(".monaco-switch-thumb")),this._register($i().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}))),this.setAriaLabel(u.ariaLabel,u.title),this.disabled=!!u.disabled,this._applyState(),this._register(c(this.domNode,T.CLICK,(n)=>{if(Ee.stop(n,!0),this.domNode.disabled)return;this._checked=!this._checked,this._applyState(),this._onChange.fire(this._checked)}))}get checked(){return this._checked}set checked(u){if(this._checked!==u)this._checked=u,this._applyState()}get disabled(){return this.domNode.disabled}set disabled(u){this.domNode.disabled=u}setAriaLabel(u,n=u){this.domNode.setAttribute("aria-label",u),this._title=n}_applyState(){this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked)}}var YE=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},XS=function(u,n){return function(h,g){n(h,g,u)}},Ad=class u extends i{get enabled(){return this._enabled}set enabled(n){if(n)this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1;else this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0;this._enabled=n}constructor(n,h,g={},p,m){super();this._link=h,this._hoverService=p,this._enabled=!0,this.el=k(n,x("a.monaco-link",{tabIndex:h.tabIndex??0,href:h.href},h.label)),this.hoverDelegate=g.hoverDelegate??mr("mouse"),this.setTooltip(h.title),this.el.setAttribute("role","button");let _=this._register(new mt(this.el,"click")),v=this._register(new mt(this.el,"keydown")),w=I.chain(v.event,(R)=>R.map((Z)=>new Xe(Z)).filter((Z)=>Z.keyCode===3||Z.keyCode===10)),C=this._register(new mt(this.el,$t.Tap)).event;this._register(Mt.addTarget(this.el));let E=I.any(_.event,w,C);this._register(E((R)=>{if(!this.enabled)return;if(Ee.stop(R,!0),g?.opener)g.opener(this._link.href);else m.open(this._link.href,{allowCommands:!0})})),this.enabled=!0}setTooltip(n){if(!this.hover&&n)this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,n));else if(this.hover)this.hover.update(n)}};Ad=YE([XS(3,On),XS(4,Zo)],Ad);var I_=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},us=function(u,n){return function(h,g){n(h,g,u)}},Xf,Bu="acceptSelectedCodeAction",Vu="previewSelectedCodeAction",JE=new Set([Bu,Vu,"toggleSectionCodeAction"]),QE="actionList.remove";class YS{get templateId(){return"header"}renderTemplate(u){u.classList.add("group-header");let n=document.createElement("span");return u.append(n),{container:u,text:n}}renderElement(u,n,h){h.text.textContent=u.group?.title??u.label??""}disposeTemplate(u){}}class JS{get templateId(){return"separator"}renderTemplate(u){u.classList.add("separator");let n=document.createElement("span");return u.append(n),{container:u,text:n}}renderElement(u,n,h){h.container.classList.toggle("has-label",!!u.label),h.text.textContent=u.label??""}disposeTemplate(u){}}function QS(u){return!!u.submenuActions?.length&&!u.hover?.content||!!u.hover?.expandable}function eC(u){return QS(u)&&u.hover?.showIndicator!==!1}var Yf=class u{get templateId(){return"action"}constructor(n,h,g,p,m,_,v,w,C,E,R,Z){this._supportsPreview=n,this._onRemoveItem=h,this._onShowSubmenu=g,this._reservesSubmenuSpace=p,this._groupTitleByIndex=m,this._linkHandler=_,this._hideDefaultKeybindingTooltip=v,this._stopToolbarPointerPropagation=w,this._registerStandaloneToggle=C,this._registerToolbar=E,this._keybindingService=R,this._openerService=Z}renderTemplate(n){n.classList.add(this.templateId);let h=document.createElement("div");h.className="icon",n.append(h);let g=document.createElement("span");g.className="title",n.append(g);let p=document.createElement("span");p.className="action-item-badge",p.ariaHidden="true",n.append(p);let m=document.createElement("span");m.className="description",n.append(m);let _=document.createElement("span");_.className="group-title",n.append(_);let v=document.createElement("span");v.className="detail",n.append(v);let w=new Ya(n,Ni),C=document.createElement("div");C.className="action-list-item-toolbar",n.append(C);let E=document.createElement("div");E.className="action-list-submenu-indicator",n.append(E);let R=document.createElement("div");R.className="action-list-item-inline-toggle",n.append(R);let Z=new d;return{container:n,icon:h,text:g,detail:v,badge:p,description:m,groupTitle:_,keybinding:w,toolbar:C,submenuIndicator:E,inlineToggleContainer:R,elementDisposables:Z}}renderElement(n,h,g){if(g.elementDisposables.clear(),n.iconClasses?.length)g.icon.className=["icon",...n.iconClasses].join(" "),g.icon.style.color="";else if(n.group?.icon)g.icon.className=J.asClassName(n.group.icon),g.icon.style.color=n.group.icon.color?P(n.group.icon.color.id):"";else g.icon.className=J.asClassName(S.lightBulb),g.icon.style.color="var(--vscode-editorLightBulb-foreground)";if(!n.item&&!n.standaloneToggle||!n.label)return;if(H2(!n.hideIcon,g.icon),n.isSectionToggle){let E=n.group?.icon===S.chevronDown;g.container.setAttribute("aria-expanded",String(E))}else g.container.removeAttribute("aria-expanded");if(g.previousClassNames?.length)g.container.classList.remove(...g.previousClassNames);let p=n.className?.split(/\s+/).filter((E)=>E.length>0)??[];if(g.container.classList.toggle("action-list-custom",p.length>0),p.length)g.container.classList.add(...p);if(g.previousClassNames=p,g.text.textContent=sn(n.label),n.badge)g.badge.textContent=n.badge,g.badge.style.display="";else g.badge.textContent="",g.badge.style.display="none";if(n.keybinding)g.description.textContent=n.keybinding.getLabel(),g.description.style.display="inline",g.description.style.letterSpacing="0.5px";else if(n.description){if(mn(g.description),typeof n.description==="string")g.description.textContent=sn(n.description);else{let E=Ml(n.description,{actionHandler:(R)=>{let Z=q.parse(R);if(this._linkHandler)this._linkHandler(Z,n);else this._openerService.open(Z,{allowCommands:!0})}});g.elementDisposables.add(E),g.description.appendChild(E.element)}g.description.style.display="inline"}else g.description.textContent="",g.description.style.display="none";let m=this._groupTitleByIndex.get(h);if(m)g.groupTitle.textContent=m,g.groupTitle.style.display="";else g.groupTitle.textContent="",g.groupTitle.style.display="none";if(n.detail)g.detail.textContent=sn(n.detail),g.detail.style.display="";else g.detail.textContent="",g.detail.style.display="none";g.container.classList.toggle("has-detail",!!n.detail),mn(g.inlineToggleContainer);let _=n.standaloneToggle??n.inlineToggle;if(_){let E=document.createElement("span");if(E.className="action-list-item-inline-toggle-label",E.textContent=sn(_.label),!n.standaloneToggle)g.inlineToggleContainer.append(E);g.inlineToggleContainer.style.display="",g.container.classList.toggle("has-inline-toggle",!!n.inlineToggle),g.container.classList.toggle("has-standalone-toggle",!!n.standaloneToggle);let R=g.elementDisposables.add(new Zf({ariaLabel:_.title??_.label,checked:_.checked,disabled:_.disabled}));if(g.inlineToggleContainer.append(R.domNode),n.standaloneToggle)g.elementDisposables.add(this._registerStandaloneToggle(n,R));g.elementDisposables.add(R.onChange(()=>_.onChange(R.checked))),g.elementDisposables.add(c(g.inlineToggleContainer,T.CLICK,(Z)=>Z.stopPropagation()))}else g.inlineToggleContainer.style.display="none",g.container.classList.remove("has-inline-toggle"),g.container.classList.remove("has-standalone-toggle");let v=this._keybindingService.lookupKeybinding(Bu)?.getLabel(),w=this._keybindingService.lookupKeybinding(Vu)?.getLabel();if(g.container.classList.toggle("option-disabled",!!n.disabled),n.hover!==void 0)g.container.title="";else if(n.tooltip)g.container.title=n.tooltip;else if(n.disabled)g.container.title=n.label;else if(n.standaloneToggle)g.container.title="";else if(this._hideDefaultKeybindingTooltip)g.container.title="";else if(v&&w)if(this._supportsPreview&&n.canPreview)g.container.title=e(1731,"{0} to Apply, {1} to Preview",v,w);else g.container.title=e(1732,"{0} to Apply",v);else g.container.title="";mn(g.toolbar);let C=[...n.toolbarActions??[]];if(n.onRemove)C.push(gc({id:QE,label:e(1733,"Remove"),class:J.asClassName(S.close),run:async()=>{await n.onRemove(),this._onRemoveItem?.(n)}}));if(g.container.classList.toggle("has-toolbar",C.length>0),C.length>0){let E=new Qi(g.toolbar);if(g.elementDisposables.add(E),this._stopToolbarPointerPropagation)g.elementDisposables.add(hu(g.toolbar,(R)=>{R.preventDefault(),R.stopPropagation()})),g.elementDisposables.add(c(g.toolbar,T.CLICK,(R)=>R.stopPropagation())),g.elementDisposables.add(c(g.toolbar,$t.Tap,(R)=>R.stopPropagation()));else g.elementDisposables.add(hu(g.toolbar,(R)=>R.preventDefault()));E.push(C,{icon:!0,label:!1}),g.elementDisposables.add(this._registerToolbar(n,E))}if(eC(n))g.submenuIndicator.className="action-list-submenu-indicator has-submenu "+J.asClassName(S.chevronRight),g.submenuIndicator.style.display="",g.submenuIndicator.style.visibility="",g.elementDisposables.add(c(g.submenuIndicator,T.CLICK,(E)=>{E.stopPropagation(),this._onShowSubmenu?.(n)}));else if(this._reservesSubmenuSpace())g.submenuIndicator.className="action-list-submenu-indicator",g.submenuIndicator.style.display="",g.submenuIndicator.style.visibility="hidden";else g.submenuIndicator.className="action-list-submenu-indicator",g.submenuIndicator.style.display="none";if(QS(n))g.container.setAttribute("aria-haspopup",n.hover?.expandable?"dialog":"menu"),g.container.setAttribute("aria-expanded","false");else if(g.container.removeAttribute("aria-haspopup"),!n.isSectionToggle)g.container.removeAttribute("aria-expanded")}disposeTemplate(n){n.keybinding.dispose(),n.elementDisposables.dispose()}};Yf=I_([us(10,ge),us(11,Zo)],Yf);class e_ extends UIEvent{constructor(){super("acceptSelectedAction")}}class C_ extends UIEvent{constructor(){super("previewSelectedAction")}}function eD(u){if(u.kind==="action")return u.label;return}var x_=Xf=class u extends i{constructor(n,h,g,p,m,_,v,w,C){super();if(this._supportsPreview=h,this._delegate=p,this._options=_,this._keybindingService=v,this._openerService=w,this._instantiationService=C,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new qe),this._submenuDisposables=this._register(new d),this._submenuHoverActionElements=[],this._itemMoveAnimation=this._register(new de),this._collapsedSections=new Set,this._filterText="",this._imeSessionInProgress=!1,this._isMeasuringWidth=!1,this._suppressHover=!1,this._hoverEnabled=!0,this._ignoreInitialHover=!0,this._hasLaidOut=!1,this._filterCts=this._register(new de),this._groupTitleByIndex=new Map,this._standaloneToggles=new Map,this._itemToolbars=new Map,this._onDidRequestLayout=this._register(new o),this.onDidRequestLayout=this._onDidRequestLayout.event,this._visibleMenuItems=g,this._initialFocusItemId=this._options?.initialFocusItemId,this._filterText=this._options?.showFilter?this._options.initialFilterValue??"":"",this.domNode=document.createElement("div"),this.domNode.classList.add("actionList"),this._options?.inlineDescription)this.domNode.classList.add("inline-description");if(this._options?.className){let X=this._options.className.split(/\s+/).filter((Y)=>Y.length>0);if(X.length>0)this.domNode.classList.add(...X)}if(this._actionLineHeight=24,this._submenuContainer=document.createElement("div"),this._submenuContainer.className="action-list-submenu-panel action-widget",this._submenuContainer.style.display="none",this._options?.persistentHover)this._submenuContainer.style.boxSizing="border-box";if(this._submenuContainer.tabIndex=-1,this.domNode.append(this._submenuContainer),this._register(c(this._submenuContainer,"keydown",(X)=>{if((X.key==="Enter"||X.key===" ")&&this._currentSubmenuElement?.hover?.tabThroughPanel){let Q=$e(X.target)?X.target:void 0;if(Q&&this._currentSubmenuElement.hover.getTabbableElements?.().includes(Q)){X.stopPropagation();return}}if(X.key!=="ArrowLeft"&&X.key!=="Escape")return;Ee.stop(X,!0);let Y=X.key==="Escape"&&this._currentSubmenuWidget!==void 0;if(this._hideSubmenu(),Y){this.hide();return}this._setKeyboardNavigation(!0),this._list.domFocus()})),this._register(c(this._submenuContainer,"mouseenter",()=>{if(this._cancelSubmenuHide(),this._usesSubmenuPointerIntent())this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._register(c(this._submenuContainer,"mouseleave",()=>{this._scheduleSubmenuHide()})),this._register(c(this.domNode,T.MOUSE_LEAVE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._usesSubmenuPointerIntent())this._register(c(this.domNode,T.MOUSE_MOVE,(X)=>{if($e(X.target)&&this._expandedTrigger?.contains(X.target))this._updateSubmenuPointer(X)}));if(this._register(N(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(let X of this._options.collapsedByDefault)this._collapsedSections.add(X);let E={getHeight:(X)=>this._getItemHeight(X),getTemplateId:(X)=>X.kind},R=()=>{let X=this._options?.reserveSubmenuSpace??!0;return X==="always"||X&&this._allMenuItems.some(eC)};this._list=this._register(new So(n,this.domNode,E,[new Yf(this._supportsPreview,(X)=>this._removeItem(X),(X)=>this._showSubmenuForItem(X),R,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._options?.stopToolbarPointerPropagation??!1,(X,Y)=>(this._standaloneToggles.set(X,Y),N(()=>{if(this._standaloneToggles.get(X)===Y)this._standaloneToggles.delete(X)})),(X,Y)=>(this._itemToolbars.set(X,Y),this._updateToolbarFocusability(),N(()=>{if(this._itemToolbars.get(X)===Y)this._itemToolbars.delete(X)})),this._keybindingService,this._openerService),new YS,new JS],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter&&!this._options?.onType,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:eD},accessibilityProvider:{getAriaLabel:(X)=>{if(X.kind==="action"){let Y=X.label?sn(X?.label):"";if(X.badge)Y=Y+", "+sn(X.badge);if(X.detail)Y=Y+", "+sn(X.detail);if(X.ariaDescription)Y=Y+", "+sn(X.ariaDescription);else if(X.description){let te=typeof X.description==="string"?X.description:X.description.value;Y=Y+", "+sn(te)}if(X.hover?.content&&!X.ariaDescription&&!X.description){let te=X.hover.content,oe=typeof te==="string"?te:Or(te)?te.value:$e(te)?te.textContent??void 0:void 0;if(oe&&(!X.detail||sn(X.detail)!==sn(oe)))Y=Y+", "+sn(oe)}if(X.group?.title)Y=Y+", "+X.group.title;let Q=X.standaloneToggle??X.inlineToggle;if(Q)Y=X.standaloneToggle?Q.checked?e(1734,"{0}, on",Q.label):e(1735,"{0}, off",Q.label):Y+", "+(Q.checked?e(1736,"{0}, on",Q.label):e(1737,"{0}, off",Q.label));if(X.disabled)Y=e(1738,"{0}, Disabled Reason: {1}",Y,X.disabled);if(X.submenuActions?.length)Y=e(1739,"{0}, use right arrow to access options",Y);return Y}return null},getWidgetAriaLabel:()=>e(1740,"Action Widget"),getSetSize:()=>this._visibleMenuItems.filter((X)=>X.kind==="action").length,getPosInSet:(X,Y)=>Math.max(this._visibleMenuItems.slice(0,Y+1).filter((Q)=>Q.kind==="action").length,1),getRole:(X)=>{switch(X.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...m}})),this._list.style(Jf),this._register(this._list.onKeyDown(()=>this._setKeyboardNavigation(!0))),this._register(c(this._list.getHTMLElement(),T.MOUSE_MOVE,(X)=>{if(X.movementX!==0||X.movementY!==0)this._setKeyboardNavigation(!1)})),this._register(this._list.onMouseClick((X)=>this.onListClick(X))),this._register(this._list.onMouseOver((X)=>{if(!this._ignoreInitialHover)this.onListHover(X)}));let Z=this._register(new de);if(Z.value=this._list.onMouseMove((X)=>{if(X.browserEvent.movementX!==0||X.browserEvent.movementY!==0)Z.clear(),this._ignoreInitialHover=!1,this.onListHover(X)}),this._register(this._list.onMouseDown(()=>{Z.clear(),this._ignoreInitialHover=!1,this._setKeyboardNavigation(!1)})),this._register(this._list.onDidChangeFocus(()=>{this._updateToolbarFocusability(),this.onFocus()})),this._register(this._list.onDidChangeSelection((X)=>this.onListSelection(X))),this._register(this._list.onDidScroll(()=>{if(!this._isMeasuringWidth)this._layoutSubmenu?.()})),this._allMenuItems=[...g],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement("div"),this._filterContainer.className="action-list-filter";let X=k(this._filterContainer,x(".action-list-filter-row"));if(this._options?.showFilter){if(this._filterInput=document.createElement("input"),this._filterInput.type="text",this._filterInput.className="action-list-filter-input",this._filterInput.placeholder=this._options?.filterPlaceholder??e(1741,"Search..."),this._filterInput.value=this._filterText,this._filterInput.setAttribute("aria-label",e(1742,"Filter items")),X.appendChild(this._filterInput),this._register(c(this._filterInput,T.KEY_DOWN,(te)=>{if(this._setKeyboardNavigation(!0),te.isComposing||!this._filterInput?.closest(".action-list-submenu-panel"))return;let oe=this._keybindingService.softDispatch(new Xe(te),this._filterInput);if(oe.kind===2&&oe.commandId!==null&&JE.has(oe.commandId)||te.key.length===1&&!te.ctrlKey&&!te.metaKey&&!te.altKey)te.stopPropagation()})),this._register(c(this._filterInput,T.MOUSE_DOWN,()=>this._setKeyboardNavigation(!1))),this._options.tabThroughItemActions)this._register(c(this._filterInput,"keydown",(te)=>this._handleTabThroughPanelKeyDown(te),!0));if(this._options.filterAsCombobox){let te=this._list.getHTMLElement();te.id=this._list.domId,this._filterInput.setAttribute("role","combobox"),this._filterInput.setAttribute("aria-label",this._filterInput.placeholder),this._filterInput.setAttribute("aria-autocomplete","list"),this._filterInput.setAttribute("aria-expanded","true"),this._filterInput.setAttribute("aria-controls",te.id),this._register(this._list.onDidChangeFocus(()=>this._updateFilterActiveDescendant())),this._register(c(this._filterInput,"focus",()=>this._updateFilterActiveDescendant())),this._register(c(this._filterInput,"blur",()=>this._updateFilterActiveDescendant())),this._register(Ct(this._filterInput,"keydown",(oe)=>{if(this._imeSessionInProgress||oe.browserEvent.isComposing||oe.keyCode===114||oe.keyCode===15||oe.keyCode===17||oe.keyCode===14||oe.keyCode===13){oe.stopPropagation();return}let pe=oe.keyCode===16||oe.keyCode===18;if(!pe&&oe.keyCode!==3)return;if(oe.ctrlKey||oe.metaKey||oe.altKey||oe.shiftKey){if(pe)oe.stopPropagation();return}if(Ee.stop(oe,!0),oe.keyCode===16)this.focusPrevious();else if(oe.keyCode===18)this.focusNext();else this.acceptSelected()}))}let Y=this._options?.filterActions??[];if(Y.length>0){let te=k(X,x(".action-list-filter-actions"));this._register(new Qi(te)).push(Y,{icon:!0,label:!1})}let Q=()=>{let te=this._filterInput.value;if(this._imeSessionInProgress||te===this._filterText&&!this._filterCts.value?.token.isCancellationRequested)return;this._filterText=te,this._applyOrUpdateFilter()};this._register(c(this._filterInput,"compositionstart",()=>{this._imeSessionInProgress=!0,this._filterCts.value?.cancel()})),this._register(c(this._filterInput,"compositionend",()=>{this._imeSessionInProgress=!1,Q()})),this._register(c(this._filterInput,"input",Q))}if(this._options?.secondaryHeading){let Y=k(X,x(".action-list-filter-label"));Y.textContent=this._options.secondaryHeading}}if(this._options?.footerText)this._footerContainer=document.createElement("div"),this._footerContainer.className="action-list-footer",this._footerContainer.textContent=this._options.footerText;if(this._options?.headerText){if(this._headerContainer=document.createElement("div"),this._headerContainer.className="action-list-header",this._options.headerIcon){let Y=k(this._headerContainer,x("span.action-list-header-icon"));Y.classList.add(...J.asClassNameArray(this._options.headerIcon)),Y.setAttribute("aria-hidden","true")}let X=k(this._headerContainer,x("span.action-list-header-text"));if(X.textContent=this._options.headerText,this._register(c(this._headerContainer,T.MOUSE_ENTER,()=>{if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer();else this._hideSubmenu()})),this._options.headerLink){let{label:Y,uri:Q}=this._options.headerLink;X.textContent+=" ",this._register(this._instantiationService.createInstance(Ad,X,{label:Y,href:Q.toString(!0)},{}))}if(this._options.headerDismiss){let Y=this._options.headerDismiss,Q=k(this._headerContainer,x("span.action-list-header-dismiss"));Q.appendChild(x(J.asCSSSelector(S.close))),Q.tabIndex=0,Q.setAttribute("role","button"),Q.setAttribute("aria-label",e(1743,"Dismiss"));let te=()=>{Y(),this.focus(),this._headerContainer?.remove(),this._headerContainer=void 0,this._onDidRequestLayout.fire()};this._register(j0(Q,()=>te())),this._register(c(Q,T.KEY_DOWN,(oe)=>{if(oe.key==="Enter"||oe.key===" ")oe.preventDefault(),te()}))}}if(this._applyFilter(),this._list.length)this._focusCheckedOrFirst();if(this._register(c(this.domNode,"keydown",(X)=>{if(X.key==="ArrowRight"&&!X.isComposing){let Y=this._list.getFocus();if(Y.length>0){let Q=this._list.element(Y[0]);if(Q?.submenuActions?.length||Q?.hover?.expandable){Ee.stop(X,!0);let te=this._getRowElement(Y[0]);if(te)if(this._showSubmenuForElement(Q,te),Q.hover?.tabThroughPanel)this._focusFirstTabThroughPanelControl(Q,te);else if(this._currentSubmenuWidget)this._currentSubmenuWidget.focus();else this._submenuContainer.focus()}}}})),this._register(c(this.domNode,"keydown",(X)=>this._handleTabThroughPanelKeyDown(X),!0)),this._filterInput||this._options?.onType)this._register(c(this.domNode,"keydown",(X)=>{let Y=X.target;if((this._options?.onType||this._options?.filterAsCombobox)&&$e(Y)&&(Zr(Y)||Y.closest('button, a, [contenteditable="true"], .action-list-submenu-panel')))return;if((!this._filterInput||!Hs(this._filterInput))&&!X.isComposing&&X.key.length===1&&X.key!==" "&&!X.ctrlKey&&!X.metaKey&&!X.altKey)if(X.preventDefault(),X.stopPropagation(),this._filterInput)this._filterInput.focus(),this._filterInput.value=X.key,this._filterText=X.key,this._applyOrUpdateFilter();else this._options?.onType?.(X.key)}))}_toggleSection(n){let h=this._collapsedSections.has(n);if(h)this._collapsedSections.delete(n);else{this._collapsedSections.add(n);let g=this.getFocusedElement();if(g?.section===n&&!g.isSectionToggle){let p=this._visibleMenuItems.findIndex((m)=>m.section===n&&m.isSectionToggle);if(p>=0)this._list.setFocus([p])}}if(this._options?.onDidToggleSection?.(n,this._collapsedSections.has(n)),this._applyFilter(),h)this._revealFirstItemOfSection(n)}_revealFirstItemOfSection(n){for(let h=0;h<this._list.length;h++){let g=this._list.element(h);if(g.section===n&&!g.isSectionToggle){this._list.reveal(h);return}}}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}let n=this._filterText;this._filterCts.value?.cancel();let h=new qe;this._filterCts.value=h,this._delegate.onFilter(n,h.token).then((g)=>{if(h.token.isCancellationRequested)return;this._allMenuItems=[...g],this._applyFilter(!0)}).catch(()=>{}).finally(()=>{if(this._filterCts.value===h&&!h.token.isCancellationRequested)this._filterCts.clear()})}_applyFilter(n=!1,h=!0,g){this._itemMoveAnimation.clear();let p=n?"":this._filterText.toLowerCase(),m=!n&&p.length>0,_=[],v=this._list.getFocus(),w;if(v.length>0)w=this._list.element(v[0]);if(m){let Q,te=[],oe=!1,le=()=>{if(Q&&oe)_.push(Q);_.push(...te),Q=void 0,te=[],oe=!1},pe=(Se)=>{let Ce=(Se.label??"").toLowerCase(),ae=typeof Se.description==="string"?Se.description:Se.description?.value??"";return Ce.includes(p)||ae.toLowerCase().includes(p)};for(let Se of this._allMenuItems){if(Se.kind==="header")continue;if(Se.kind==="separator"){le(),Q=Se.label?Se:void 0;continue}if(Se.showAlways){te.push(Se);continue}if(Se.isSectionToggle)continue;if(Se.filterItems){let Ce=pe(Se)?Se.filterItems:Se.filterItems.filter(pe);if(Ce.length>0)oe=!0,te.push(...Ce);continue}if(pe(Se))oe=!0,te.push(Se)}le()}else for(let Q of this._allMenuItems){if(Q.kind==="header"){_.push(Q);continue}if(Q.kind==="separator"){if(Q.section&&this._collapsedSections.has(Q.section))continue;_.push(Q);continue}if(Q.isSectionToggle&&Q.section){let te=this._collapsedSections.has(Q.section);_.push({...Q,group:{...Q.group,icon:te?S.chevronRight:S.chevronDown}});continue}if(Q.section&&this._collapsedSections.has(Q.section))continue;_.push(Q)}let C=[],E=!1;for(let Q=0;Q<_.length;Q++)if(C[Q]=E,_[Q].kind==="action")E=!0;let R=[],Z=!1;for(let Q=_.length-1;Q>=0;Q--){if(_[Q].kind==="action"){Z=!0;continue}if(_[Q].kind!=="separator")continue;R[Q]=Z,Z=!1}for(let Q=_.length-1;Q>=0;Q--){let te=_[Q];if(te.kind!=="separator")continue;let oe=R[Q],le=!te.label&&!C[Q];if(!oe||le)_.splice(Q,1)}if(this._options?.showGroupTitleOnFirstItem)this._recomputeGroupTitles(_);let X=this._filterInput&&Hs(this._filterInput),Y=pu(this._list.getHTMLElement());if(this._visibleMenuItems=_,this._list.splice(0,this._list.length,_),h)this._onDidRequestLayout.fire();if(X)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut){if(w||g){let Q=g??w?.item?.id;if(Q){for(let te=0;te<this._list.length;te++)if(this._list.element(te).item?.id===Q){this._list.setFocus([te]),this._list.reveal(te);break}if(Y)this._focusCheckedOrFirst(),this._list.domFocus()}}}}get filterContainer(){return this._filterContainer}get footerContainer(){return this._footerContainer}get headerContainer(){return this._headerContainer}get filterInput(){return this._filterInput}get closeAnimation(){return this._options?.closeAnimation}focusCondition(n){return!n.disabled&&n.kind==="action"}_setKeyboardNavigation(n){if(this._keyboardNavigation===n)return;this._keyboardNavigation=n;let h=this._list.getHTMLElement();h.classList.toggle("keyboard-navigation",n===!0),h.classList.toggle("mouse-navigation",n===!1)}_updateFilterActiveDescendant(){if(!this._filterInput)return;let[n]=this._list.getFocus();if(Hs(this._filterInput)&&n!==void 0)this._filterInput.setAttribute("aria-activedescendant",this._list.getElementID(n));else this._filterInput.removeAttribute("aria-activedescendant")}focus(){if(this._setKeyboardNavigation(void 0),this._filterInput&&this._options?.focusFilterOnOpen){this._filterInput.focus(),this._focusCheckedOrFirst();return}this._list.domFocus(),this._focusCheckedOrFirst(),this._showTabThroughPanelForFocusedItem()}clearFocus(){this._list.setFocus([])}getFocusedElement(){let n=this._list.getFocus();if(n.length>0)return this._list.element(n[0]);return}_updateToolbarFocusability(){if(!this._options?.tabThroughItemActions)return;let[n]=this._list.getFocus(),h=n!==void 0&&n<this._list.length?this._list.element(n):void 0;for(let[g,p]of this._itemToolbars)p.setFocusable(g===h)}_focusCheckedOrFirst(){let n=this._suppressHover;this._suppressHover=!0;try{let h=this._initialFocusItemId;if(this._initialFocusItemId=void 0,h)for(let m=0;m<this._list.length;m++){let _=this._list.element(m);if(this.focusCondition(_)&&_.item?.id===h){this._list.setFocus([m]),this._list.reveal(m);return}}let[g]=this._list.getFocus();if(g!==void 0){let m=this._list.element(g);if(m&&this.focusCondition(m)){this._list.reveal(g);return}}for(let m=0;m<this._list.length;m++){let _=this._list.element(m);if(this.focusCondition(_)&&_.item?.checked){this._list.setFocus([m]),this._list.reveal(m);return}}this._list.focusFirst(void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}finally{if(this._suppressHover=n,this._options?.filterAsCombobox)this._updateFilterActiveDescendant()}}hide(n){this._delegate.onHide(n),this.cts.cancel(),this._filterCts.value?.cancel(),this._filterCts.clear(),this._hideSubmenu()}clearFilter(){if(this._filterInput&&this._filterText)return this._filterInput.value="",this._filterText="",this._applyOrUpdateFilter(),!0;return!1}get hasDynamicHeight(){if(this._options?.showFilter)return!0;return this._allMenuItems.some((n)=>n.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(n){return this._itemHeightWith(n,this._options)}_itemHeightWith(n,h){switch(n.kind){case"header":return this._headerLineHeight;case"separator":return n.label?this._actionLineHeight:this._separatorLineHeight;default:if(n.inlineToggle)return h?.inlineToggleItemHeight??70;return n.detail?h?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){return this.computeHeightForItems(this._allMenuItems,void 0,this._options)}computeHeightForItems(n,h,g){let p=0;for(let m of n){if(h&&m.section&&!m.isSectionToggle&&h.has(m.section))continue;p+=this._itemHeightWith(m,g)}return p}computeListHeight(){let n=this._list.length,h=0;for(let g=0;g<n;g++){let p=this._list.element(g);h+=this._getItemHeight(p)}return h}layout(n,h){this._hasLaidOut=!0,this._list.layout(n,h),this.domNode.style.height=`${n}px`;let g=this.domNode.parentElement;if(g&&this._filterContainer?.parentElement===g)g.insertBefore(this._filterContainer,this.domNode);this._layoutSubmenu?.()}computeMaxWidth(n){let h=this._list.length,g=Math.max(n,this._options?.minWidth??0),p=this._options?.maxWidth??Number.POSITIVE_INFINITY,m=Math.max(p,g),_=(E)=>Math.min(Math.max(E,g),m),v=this._allMenuItems.length;if(v>=50)return _(380);if(v>h){let E=[];for(let Q=0;Q<h;Q++)E.push(this._list.element(Q));let R=this._list.renderHeight,Z=this._list.scrollTop,X=this._list.getFocus(),Y=this._isMeasuringWidth;this._isMeasuringWidth=!0;try{let Q=[...this._allMenuItems];this._list.splice(0,h,Q);let te=0;for(let le of Q)te+=this._getItemHeight(le);this._list.layout(te);let oe=this._measureItemWidths(Q);return _(Math.max(...oe))}finally{try{this._list.splice(0,this._list.length,E),this._list.layout(R),this._list.scrollTop=Z;let Q=this._suppressHover;this._suppressHover=!0;try{this._list.setFocus(X)}finally{this._suppressHover=Q}}finally{this._isMeasuringWidth=Y}}}let w=[];for(let E=0;E<h;E++)w.push(this._list.element(E));let C=this._measureItemWidths(w);return _(Math.max(...C))}focusPrevious(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("previous"))return;if(this._filterInput&&Hs(this._filterInput)){this._list.domFocus();let g=this._list.getFocus();if(g.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0&&p[0]>=g[0])this._filterInput.focus();else if(p.length>0)this._list.reveal(p[0])}else{this._list.focusLast(void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}return}let n=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);let h=this._list.getFocus();if(h.length>0){if(this._filterInput&&n.length>0&&h[0]>n[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(h[0])}}focusNext(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("next"))return;if(this._filterInput&&Hs(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}else{this._list.focusFirst(void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0)this._list.reveal(p[0])}return}let n=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);let h=this._list.getFocus();if(h.length>0){if(this._filterInput&&n.length>0&&h[0]<n[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(h[0])}}_focusFilterResult(n){if(!this._options?.filterAsCombobox||!this._filterInput||!Hs(this._filterInput))return!1;if(n==="previous")this._list.focusPrevious(1,!0,void 0,this.focusCondition);else this._list.focusNext(1,!0,void 0,this.focusCondition);let[h]=this._list.getFocus();if(h!==void 0)this._list.reveal(h);return!0}collapseFocusedSection(){let n=this._getFocusedSection();if(n&&!this._collapsedSections.has(n))this._toggleSection(n)}expandFocusedSection(){let n=this._getFocusedSection();if(n&&this._collapsedSections.has(n))this._toggleSection(n)}toggleFocusedSection(){let n=this._list.getFocus();if(n.length===0)return!1;let h=this._list.element(n[0]);if(h.isSectionToggle&&h.section)return this._toggleSection(h.section),!0;return!1}_getFocusedSection(){let n=this._list.getFocus();if(n.length===0)return;let h=this._list.element(n[0]);if(h.isSectionToggle&&h.section)return h.section;return h.section}acceptSelected(n){let h=this._list.getFocus();if(h.length===0)return;let g=h[0],p=this._list.element(g);if(!this.focusCondition(p))return;let m=n?new C_:new e_;this._list.setSelection([g],m)}onListSelection(n){if(!n.elements.length)return;let h=n.elements[0];if(h.standaloneToggle){this._list.setSelection([]);let p=this._standaloneToggles.get(h);if(p&&!p.disabled)p.checked=!p.checked,h.standaloneToggle.onChange(p.checked);return}if(h.isSectionToggle&&h.section){this._list.setSelection([]);let p=h.section;queueMicrotask(()=>{this._toggleSection(p)});return}let g=Tf(n.browserEvent)||n.browserEvent?.type===$t.Tap;if(g){let p=n.browserEvent.target;if($e(p)&&(p.closest(".action-list-item-toolbar")||p.closest(".action-list-submenu-indicator")||p.closest(".action-list-item-inline-toggle"))){this._list.setSelection([]);return}}if(h.openSubmenuOnClick&&h.submenuActions?.length&&(g||n.browserEvent instanceof e_)){if(this._list.setSelection([]),this._showSubmenuForItem(h),!g)this._currentSubmenuWidget?.focus();return}if(h.item&&this.focusCondition(h)){let p=n.browserEvent instanceof C_;this._delegate.onSelect(h.item,p&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){let n=this._list.getFocus();if(n.length===0)return;let h=n[0],g=this._list.element(h);if(this._delegate.onFocus?.(g.item),!this._suppressHover){if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer(),this._list.reveal(h);this._showHoverForElement(g,h)}}_removeItem(n){let h=this._allMenuItems.indexOf(n);if(h>=0)this._allMenuItems.splice(h,1),this._applyFilter()}_recomputeGroupTitles(n){this._groupTitleByIndex.clear();let h=new Set;for(let g=0;g<n.length;g++){let p=n[g];if(p.kind==="action"&&p.group?.title&&!h.has(p.group.title))h.add(p.group.title),this._groupTitleByIndex.set(g,p.group.title)}}_measureItemWidths(n){let h=[];for(let g=0;g<n.length;g++){let p=this._getRowElement(g);if(p)p.style.width="auto",h.push({element:p,item:n[g]})}try{return h.map(({element:g,item:p})=>g.getBoundingClientRect().width+(p.detail?0:this._computeToolbarWidth(p)))}finally{for(let{element:g}of h)g.style.width=""}}_computeToolbarWidth(n){let h=n.toolbarActions?.length??0;if(n.onRemove)h++;if(h===0)return 0;return h*22+6+10}_getRowElement(n){if(n<0)return null;return this.domNode.ownerDocument.getElementById(this._list.getElementID(n))}_showTabThroughPanelForFocusedItem(){let n=this._list.getFocus();if(n.length===0)return;let h=n[0],g=this._list.element(h);if(!g.hover?.tabThroughPanel)return;let p=this._getRowElement(h);if(p)this._showSubmenuForElement(g,p)}_getTabThroughPanelControls(n,h){if(n.hover?.tabThroughPanel&&this._currentSubmenuElement!==n)this._showSubmenuForElement(n,h);return{toolbar:this._itemToolbars.get(n),panelControls:[...n.hover?.getTabbableElements?.()??[],...this._submenuHoverActionElements]}}_focusFirstTabThroughPanelControl(n,h){let g=this._getTabThroughPanelControls(n,h);if(g.toolbar?.length())g.toolbar.focus(0);else(g.panelControls[0]??this._list.getHTMLElement()).focus()}_handleTabThroughPanelKeyDown(n){if(n.isComposing)return;let h=this._list.getFocus();if(h.length===0)return;let g=h[0],p=this._list.element(g);if(!p.hover?.tabThroughPanel&&!this._options?.tabThroughItemActions)return;let m=this._getRowElement(g),_=Ot();if(!m||!$e(_))return;let v=this._getTabThroughPanelControls(p,m),w=v.toolbar?.isFocused()??!1,C=this._submenuContainer.contains(_);if((n.key==="ArrowUp"||n.key==="ArrowDown")&&(w||C)){if(Ee.stop(n,!0),this._list.domFocus(),n.key==="ArrowUp")this.focusPrevious();else this.focusNext();return}if(n.key!=="Tab"||n.ctrlKey||n.metaKey||n.altKey)return;let E;if(n.shiftKey){if(C){let R=v.panelControls.indexOf(_);if(R>0)E=v.panelControls[R-1];else if(v.toolbar?.length()){Ee.stop(n,!0),v.toolbar.focus(v.toolbar.length()-1);return}else E=this._list.getHTMLElement()}else if(v.toolbar?.isFocused()){let R=v.toolbar.viewItems.findIndex((Z,X)=>v.toolbar?.isFocused(X));if(R>0){Ee.stop(n,!0),v.toolbar.focus(R-1);return}E=this._options?.filterAsCombobox?this._filterInput:this._list.getHTMLElement()}}else if(_===this._list.getHTMLElement()||_===this._filterInput){if(v.toolbar?.length()){Ee.stop(n,!0),v.toolbar.focus(0);return}E=v.panelControls[0]}else if(v.toolbar?.isFocused()){let R=v.toolbar.viewItems.findIndex((Z,X)=>v.toolbar?.isFocused(X));if(R+1<v.toolbar.length()){Ee.stop(n,!0),v.toolbar.focus(R+1);return}E=v.panelControls[0]}else{let R=v.panelControls.indexOf(_);if(R>=0)E=v.panelControls[R+1]??this._list.getHTMLElement()}if(E)Ee.stop(n,!0),E.focus()}_showHoverForElement(n,h){if(this._currentSubmenuElement===n)return;let g=!!n.hover?.content,p=!!n.submenuActions?.length;if(g||p){let m=this._getRowElement(h);if(m)this._showSubmenuForElement(n,m);return}if(!this._options?.persistentHover)this._hideSubmenu()}_showSubmenuForItem(n){let h=this._list.indexOf(n);if(h>=0){let g=this._getRowElement(h);if(g)this._showSubmenuForElement(n,g)}}_showSubmenuForElement(n,h){if(!this._hoverEnabled||this._currentSubmenuElement===n)return;if(this._currentSubmenuElement=n,this._clearSubmenuContainer(),h.setAttribute("aria-expanded","true"),this._expandedTrigger=h,this._submenuPanelClassName=n.hover?.panelClassName,this._submenuPanelClassName)this._submenuContainer.classList.add(this._submenuPanelClassName);let g=n.hover?.preserveVerticalPosition,p=!!n.submenuActions?.length,m=g?x(".action-list-submenu-content"):this._submenuContainer,_=g?x(".action-list-submenu-viewport",void 0,m):void 0,v=_&&!p?this._submenuDisposables.add(new Al(_,{horizontal:2,vertical:1,consumeMouseWheelIfScrollbarIsNeeded:!0,useShadows:!1})):void 0;if(v&&_)this._submenuContainer.appendChild(v.getDomNode()),this._submenuDisposables.add(c(_,T.SCROLL,()=>v.scanDomNode())),this._submenuDisposables.add(c(this._submenuContainer,T.KEY_DOWN,(oe)=>{let le=new Xe(oe);if(le.equals(12)||le.equals(11))Ee.stop(oe,!0),v.setScrollPosition({scrollTop:v.getScrollPosition().scrollTop+(le.equals(12)?1:-1)*_.clientHeight})}));else if(_)this._submenuContainer.appendChild(_);let w,C=typeof n.hover?.content==="function"?n.hover.content():n.hover?.content;if(C){if($e(C)){if(w=C,n.hover?.disposable)this._register(n.hover.disposable)}else{let oe=typeof C==="string"?new Mn(C):C,le=this._options?.linkHandler,pe=Ml(oe,{actionHandler:(Se)=>{let Ce=q.parse(Se);if(le)le(Ce,n);else this._openerService.open(Ce,{allowCommands:!0})}});this._submenuDisposables.add(pe),w=pe.element}if(w.classList.add("action-list-submenu-hover-header"),w.classList.toggle("content-owns-padding",n.hover?.contentOwnsPadding===!0),n.submenuActions?.length)w.classList.add("has-submenu");m.appendChild(w)}if(n.hover?.actions?.length){let oe=x(".hover-row.status-bar"),le=k(oe,x(".actions"));for(let pe of n.hover.actions){let Se=this._keybindingService.lookupKeybinding(pe.commandId),Ce=this._submenuDisposables.add(qf.render(le,{label:pe.label,commandId:pe.commandId,run:(ae)=>pe.run(ae),iconClass:pe.iconClass},Se?.getLabel()??null));this._submenuHoverActionElements.push(Ce.actionContainer)}this._submenuContainer.appendChild(oe)}if(this._submenuContainer.style.display="",this._submenuContainer.style.position="absolute",n.hover?.expandable){if(this._submenuContainer.setAttribute("role","dialog"),n.label)this._submenuContainer.setAttribute("aria-label",n.label)}else this._submenuContainer.removeAttribute("role");let E=B(this.domNode),R=0,Z=w?w.offsetWidth:0,X;if(p){let oe=this._createSubmenuItems(n.submenuActions),le={onHide:()=>{},onSelect:(Ce)=>{Ce.run();let ae=this._currentSubmenuElement?.item;if(this._hideSubmenu(),ae)this._delegate.onSelect(ae);this.hide()}},pe=this._submenuDisposables.add(this._instantiationService.createInstance(Xf,"submenu",!1,oe,le,void 0,n.submenuOptions));if(X=pe,pe.headerContainer)m.appendChild(pe.headerContainer);if(pe.filterContainer)m.appendChild(pe.filterContainer);if(m.appendChild(pe.domNode),pe.footerContainer)m.appendChild(pe.footerContainer);this._currentSubmenuWidget=pe,pe.clearFocus(),R=pe.computeListHeight(),pe.layout(R);let Se=pe.computeMaxWidth(0);if(Z=Math.max(Z,Se,pe.footerContainer?.offsetWidth??0),pe.layout(R,Z),pe.domNode.style.width=`${Z}px`,n.submenuOptions)this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${Z+10}px`;this._submenuDisposables.add(pe.onDidRequestLayout(()=>{R=pe.computeListHeight(),pe.layout(R,Z),this._layoutSubmenu?.()})),this._submenuDisposables.add(c(m,"keydown",(Ce)=>{if(Ce.key==="Escape")Ee.stop(Ce,!0),this._hideSubmenu(),this.hide();else if(Ce.key==="ArrowLeft")Ee.stop(Ce,!0),this._hideSubmenu(),this._setKeyboardNavigation(!0),this._list.domFocus();else if(Ce.key==="Enter"||Ce.key===" ")Ee.stop(Ce,!0),pe.acceptSelected();else if(Ce.key==="ArrowDown")Ee.stop(Ce,!0),pe.focusNext();else if(Ce.key==="ArrowUp")Ee.stop(Ce,!0),pe.focusPrevious()}))}let Y,Q,te=()=>{let oe=this._currentSubmenuElement;if(!oe||this._layoutSubmenu!==te)return;let le=this._list.indexOf(oe),pe=le>=0?this._getRowElement(le):null,Se=this._options?.persistentHover;if(!pe&&(!Se||!this._allMenuItems.includes(oe))){this._hideSubmenu();return}if(this._expandedTrigger!==pe){if(this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=pe??void 0}pe?.setAttribute("aria-expanded","true");let Ce=this.domNode.getBoundingClientRect(),ae=Se||oe.hover?.alignToParent,me=ae?this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect()??Ce:Ce,Ne=pe?.getBoundingClientRect()??me,Me=ae||g?hy(this.domNode):1;if(Se)this._submenuContainer.style.width=`${me.width/Me}px`;let Oe=this._submenuContainer.getBoundingClientRect(),ye=ae?Oe.width:Z+10,Pe=E.innerWidth-(ae?me.right:Ne.right),it=me.left,Ve=ae?0:4,rt=4;if(!ae){let Vt=E.innerWidth-2*rt;if(ye>Vt)ye=Math.max(Vt,0);this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${ye}px`}let Ze=Pe>=ye||Pe>=it;if(Se&&this._submenuSide&&(this._submenuSide==="right"?Pe:it)>=ye)Ze=this._submenuSide==="right";if(Se)this._submenuSide=Ze?"right":"left";let Ft=Ze?me.right-Ce.left+Ve:me.left-Ce.left-ye-Ve,nt=Ce.left+Ft;if(nt<rt)Ft+=rt-nt;else if(nt+ye>E.innerWidth-rt)Ft-=nt+ye-(E.innerWidth-rt);this._submenuContainer.style.left=`${Ft/Me}px`;let ft=Oe.height;if(g)Y??=ft/Me;let Bt=Y!==void 0?Y*Me:ft,St=Q!==void 0?Q*Me:pe&&oe.hover?.alignToAnchorTop?Ne.top-Ce.top:pe?Ne.top-Ce.top+(Ne.height-Bt)/2:Oe.top-Ce.top;if(g&&oe.hover?.alignToAnchorTop&&_&&X){let Vt=Oe.height-_.getBoundingClientRect().height,Wt=(X.headerContainer?.offsetHeight??0)+(X.filterContainer?.offsetHeight??0)+(X.footerContainer?.offsetHeight??0),It=Vt+(Wt+R)*Me;St=Math.min(St,E.innerHeight-Ce.top-It-8)}let vt=Ce.top+St+Bt;if(vt>E.innerHeight&&!(g&&oe.hover?.alignToAnchorTop))St-=vt-E.innerHeight+8;if(Ce.top+St<0)St=-Ce.top;if(g)Q??=St/Me;if(_&&v){let Vt=(Oe.height-v.getDomNode().getBoundingClientRect().height)/Me,Wt=Math.max(0,(E.innerHeight-Ce.top-St-8)/Me-Vt);_.style.height=`${Math.min(m.getBoundingClientRect().height/Me,Wt)}px`,v.scanDomNode()}else if(_&&X){let Vt=(Oe.height-_.getBoundingClientRect().height)/Me,Wt=Math.max(0,(E.innerHeight-Ce.top-St-8)/Me-Vt),It=(X.headerContainer?.offsetHeight??0)+(X.filterContainer?.offsetHeight??0)+(X.footerContainer?.offsetHeight??0),Si=R===0?0:Math.max(this._actionLineHeight,Math.min(R,Wt-It));X.layout(Si,Z),_.style.height=`${It+Si}px`}this._submenuContainer.style.top=`${St/Me}px`};if(this._layoutSubmenu=te,te(),(this._options?.persistentHover||n.hover?.alignToParent||n.hover?.tabThroughPanel||g)&&this._currentSubmenuElement===n){if(!X){let oe=this._submenuDisposables.add(new de),le=this._submenuDisposables.add(new z0("ActionListWidget.hoverPanel",()=>{if(!oe.value)oe.value=ki(E,()=>{oe.clear(),te()})},E));this._submenuDisposables.add(le.observe(g?m:this._submenuContainer,{box:"border-box"}))}if(this._options?.persistentHover||g)this._submenuDisposables.add(c(E,T.RESIZE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer(),te()}))}}_createSubmenuItems(n){let h=[],p=n.filter((m)=>m instanceof ms).filter((m)=>m.actions.length>0);for(let m=0;m<p.length;m++){let _=p[m];if(_.label)h.push({kind:"header",group:{title:_.label},label:_.label});for(let v of _.actions){let w=v,C=w.icon??J.fromId(v.checked?S.check.id:S.blank.id),E=w.hoverContent,R=E?new Mn().appendText(`${v.label}
|
|
3
|
+
`).appendMarkdown(E):void 0;h.push({item:v,kind:"action",label:v.label,description:v.tooltip&&v.tooltip!==v.label?v.tooltip:void 0,group:{title:"",icon:C},hideIcon:!1,hover:R?{content:R}:void 0,tooltip:v.tooltip||v.label,onRemove:w.onRemove,submenuActions:v instanceof ms?[new ms(v.id,"",v.actions)]:void 0})}if(m<p.length-1)h.push({kind:"separator",label:""})}for(let m of n)if(!(m instanceof ms)){let _=m,v=_.icon??J.fromId(m.checked?S.check.id:S.blank.id),w=_.hoverContent,C=w?new Mn().appendText(`${m.label}
|
|
4
|
+
`).appendMarkdown(w):void 0;h.push({item:m,kind:"action",label:m.label,description:m.tooltip&&m.tooltip!==m.label?m.tooltip:void 0,group:{title:"",icon:v},hideIcon:!1,hover:C?{content:C}:void 0,tooltip:m.tooltip||m.label,onRemove:_.onRemove})}return h}_hideSubmenu(){this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._currentSubmenuElement=void 0,this._submenuSide=void 0,this._clearSubmenuContainer(),this._submenuContainer.style.display="none"}_clearSubmenuContainer(){if(this._layoutSubmenu=void 0,this._resetSubmenuPointer(),this._submenuContainer.contains(Ot()))this._list.domFocus();if(this._submenuDisposables.clear(),this._currentSubmenuWidget=void 0,this._submenuHoverActionElements=[],this._submenuPanelClassName)this._submenuContainer.classList.remove(this._submenuPanelClassName),this._submenuPanelClassName=void 0;if(this._submenuContainer.removeAttribute("role"),this._submenuContainer.removeAttribute("aria-label"),this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=void 0,mn(this._submenuContainer),this._submenuContainer.style.width="",this._submenuContainer.style.boxSizing=this._options?.persistentHover?"border-box":""}_scheduleSubmenuHide(){if(this._cancelSubmenuHide(),this._options?.persistentHover)return;this._submenuHideTimeout=setTimeout(()=>{this._hideSubmenu()},300)}_cancelSubmenuHide(){if(this._submenuHideTimeout!==void 0)clearTimeout(this._submenuHideTimeout),this._submenuHideTimeout=void 0}_scheduleSubmenuShow(n,h){this._cancelSubmenuShow();let g=this._options?.submenuHoverDelay??500;if(this._usesSubmenuPointerIntent()){g=0;let m=this._submenuPointerOrigin;if(m&&h.clientX!==m.x&&this._currentSubmenuElement&&new yR(m.x,m.y,this._submenuContainer).contains(h.clientX,h.clientY)){let _=Date.now();this._submenuPointerGraceDeadline??=_+200,g=Math.max(0,this._submenuPointerGraceDeadline-_)}}let p=()=>{this._submenuShowTimeout=void 0;let m=this._list.indexOf(n),_=m>=0?this._getRowElement(m):null;if(_){if(this._showSubmenuForElement(n,_),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(h)}};if(g===0)p();else this._submenuShowTimeout=setTimeout(p,g)}_updateSubmenuPointer(n){this._submenuPointerOrigin={x:n.clientX,y:n.clientY},this._submenuPointerGraceDeadline=void 0}_resetSubmenuPointer(){this._submenuPointerOrigin=void 0,this._submenuPointerGraceDeadline=void 0}_usesSubmenuPointerIntent(){return this._options?.persistentHover===!0||this._options?.submenuPointerIntent===!0}_cancelSubmenuShow(){if(this._submenuShowTimeout!==void 0)clearTimeout(this._submenuShowTimeout),this._submenuShowTimeout=void 0}async onListHover(n){this._setKeyboardNavigation(!1);let h=n.element;if(h&&h.item&&this.focusCondition(h)){let g=typeof n.index==="number"?[n.index]:[],p=Ot();if(this._options?.tabThroughItemActions&&this._list.getFocus()[0]!==n.index&&$e(p)&&this.domNode.contains(p)&&p.closest(".action-list-item-toolbar"))this._list.domFocus();if($e(n.browserEvent.target)&&n.browserEvent.target.closest(".action-list-item-toolbar")!==null){if(!h.submenuActions?.length)this._cancelSubmenuShow();this._list.setFocus(this._options?.tabThroughItemActions?g:[]);return}let _=!!(h.submenuActions?.length||h.hover?.content),v=this._suppressHover;if(_||this._usesSubmenuPointerIntent())this._suppressHover=!0;try{this._list.setFocus(g)}finally{this._suppressHover=v}if(_){if(this._currentSubmenuElement===h){if(this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(n.browserEvent)}else{if(!this._usesSubmenuPointerIntent())this._hideSubmenu();this._scheduleSubmenuShow(h,n.browserEvent)}return}if(this._currentSubmenuElement===h)this._cancelSubmenuHide();else if(this._cancelSubmenuShow(),this._options?.submenuPointerIntent)this._scheduleSubmenuHide();else if(!this._options?.persistentHover)this._hideSubmenu();if(this._delegate.onHover&&!h.disabled&&h.kind==="action"&&this._currentSubmenuElement!==h){let w=await this._delegate.onHover(h.item,this.cts.token),C=w?w.canPreview:void 0;if(C!==h.canPreview){if(h.canPreview=C,typeof n.index==="number")this._list.splice(n.index,1,[h]),this._list.setFocus([n.index])}}}else if(h&&h.hover?.content&&typeof n.index==="number")if(this._currentSubmenuElement===h)this._cancelSubmenuHide(),this._cancelSubmenuShow();else{if(!this._options?.persistentHover)this._hideSubmenu();this._scheduleSubmenuShow(h,n.browserEvent)}}onListClick(n){if(n.element&&this.focusCondition(n.element))this._list.setFocus([])}};x_=Xf=I_([us(6,ge),us(7,Zo),us(8,A)],x_);var Wu=class u extends i{get domNode(){return this._widget.domNode}get filterContainer(){return this._widget.filterContainer}get footerContainer(){return this._widget.footerContainer}get headerContainer(){return this._widget.headerContainer}get filterInput(){return this._widget.filterInput}get closeAnimation(){return this._widget.closeAnimation}get widgetClassName(){return this._widgetClassName}get anchorPosition(){if(this._preferredAnchorPosition!==void 0)return this._preferredAnchorPosition;if(this._showAbove===void 0)return;return this._showAbove?1:0}constructor(n,h,g,p,m,_,v,w,C,E){super();this._contextViewService=w,this._layoutService=C,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=v,this._preferredAnchorPosition=_?.anchorPosition,this._useFullHeight=_?.useFullHeight??!1,this._widgetClassName=_?.widgetClassName,this._widget=this._register(E.createInstance(x_,n,h,g,p,m,_)),this._register(this._widget.onDidRequestLayout(()=>{if(this._hasLaidOut)this.layout(this._lastMinWidth),this._contextViewService.layout()}))}focus(){this._widget.focus()}hide(n,h=!0){if(this._widget.hide(n),h)this._contextViewService.hideContextView()}clearFilter(){return this._widget.clearFilter()}focusPrevious(){this._widget.focusPrevious()}focusNext(){this._widget.focusNext()}collapseFocusedSection(){this._widget.collapseFocusedSection()}expandFocusedSection(){this._widget.expandFocusedSection()}toggleFocusedSection(){return this._widget.toggleFocusedSection()}acceptSelected(n){this._widget.acceptSelected(n)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){let n=this.domNode.parentElement?.closest(".action-widget");if(!n)return 0;let h=B(n).getComputedStyle(n),g=(p)=>Number.parseFloat(p)||0;return g(h.paddingTop)+g(h.paddingBottom)+g(h.borderTopWidth)+g(h.borderBottomWidth)}computeHeight(){let n=this._fixedContentHeight??this._widget.computeListHeight(),h=this._widget.filterContainer?36:0,g=this._widget.footerContainer?32:0,p=this._widget.headerContainer&&!this._widget.headerContainer.hidden?this._widget.headerContainer.offsetHeight||36:0,m=h+g+p,_=B(this.domNode),v;if(this.hasDynamicHeight()||this._preferredAnchorPosition!==void 0){let Z=_.innerHeight,X=l_(this._anchor),Y=X.top-_.pageYOffset,Q=30,te=Z-Y-X.height-30,oe=Y;if(this._showAbove===void 0){let le=this._fixedContentHeight??this._widget.computeFullHeight();this._showAbove=this._preferredAnchorPosition!==void 0?this._preferredAnchorPosition===1:m+le>te&&oe>te}v=Math.max(0,(this._showAbove?oe:te)-this.computeActionWidgetVerticalChromeHeight())}else{let X=this._layoutService.getContainer(_).clientHeight,Y=this.domNode.getBoundingClientRect().top;v=Y>0?X-Y-10:X*0.7}let w=this._useFullHeight?_.innerHeight:Math.floor(_.innerHeight*0.6),C=this._widget.lineHeight;if(this._preferredAnchorPosition!==void 0){let Z=Math.min(v,w),X=Math.min(n+m,Math.max(0,Z));return Math.max(0,X-m)}let E=Math.min(Math.max(v,C*3+m),w);return Math.min(n+m,E)-m}layout(n,h){if(this._hasLaidOut=!0,this._lastMinWidth=n,h!==void 0)this._fixedContentHeight=h;let g=this.computeHeight();this._widget.layout(g);let p=this._widget.computeMaxWidth(n);return this._cachedMaxWidth=p,this._widget.layout(g,this._cachedMaxWidth),this._cachedMaxWidth}};Wu=I_([us(7,ws),us(8,Mr),us(9,A)],Wu);function sn(u){return u.replace(/\r\n|\r|\n/g," ")}var tD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},L_=function(u,n){return function(h,g){n(h,g,u)}};a("actionBar.toggledBackground",tp,e(1744,"Background color for toggled action items in action bar."));var tC="--action-widget-close-start-opacity",iC="--action-widget-close-start-transform",Zi={Visible:new M("codeActionMenuVisible",!1,e(1745,"Whether the action widget list is visible")),FilterFocused:new M("codeActionMenuFilterFocused",!1,e(1746,"Whether the action widget filter input is focused"))},bo=ie("actionWidgetService"),Hn=class u extends i{get isVisible(){return Zi.Visible.getValue(this._contextKeyService)||!1}constructor(n,h,g){super();this._contextViewService=n,this._contextKeyService=h,this._instantiationService=g,this._list=this._register(new de),this._closeAnimation=this._register(new de)}show(n,h,g,p,m,_,v,w,C){let E=Zi.Visible.bindTo(this._contextKeyService),R=this._instantiationService.createInstance(Wu,n,h,g,p,w,C,m);this._contextViewService.showContextView({getAnchor:()=>m,render:(Z)=>(E.set(!0),this._renderWidget(Z,R,v??[],C)),onHide:(Z)=>{E.reset(),this._onWidgetClosed(Z)},get anchorPosition(){return R.anchorPosition},focus:()=>R.focus()},_,!1)}acceptSelected(n){this._list.value?.acceptSelected(n)}focusPrevious(){this._list?.value?.focusPrevious()}focusNext(){this._list?.value?.focusNext()}collapseSection(){this._list?.value?.collapseFocusedSection()}expandSection(){this._list?.value?.expandFocusedSection()}toggleSection(){return this._list?.value?.toggleFocusedSection()??!1}clearFilter(){return this._list?.value?.clearFilter()??!1}hide(n){let h=this._list.value,g=this._widgetElement;if(!h||this._closingList===h)return;let p=h.closeAnimation;if(!g||!p||p.duration<=0||!this._hasRequiredAncestorClasses(g,p.requiredAncestorClasses)){this._closingList=h,h.hide(n);return}this._closingList=h;let m=B(g).getComputedStyle(g);g.style.setProperty(tC,m.opacity),g.style.setProperty(iC,m.transform),g.classList.add(p.className),h.hide(n,!1),this._closeAnimation.value=bi(()=>{if(this._list.value===h)this._contextViewService.hideContextView(n)},p.duration)}clear(){this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement?.style.removeProperty(tC),this._widgetElement?.style.removeProperty(iC),this._widgetElement=void 0,this._list.clear()}_renderWidget(n,h,g,p){let m=document.createElement("div");m.classList.add("action-widget");let _=h.widgetClassName?.split(/\s+/).filter(Boolean);if(_?.length)m.classList.add(..._);if(n.appendChild(m),this._widgetElement=m,this._list.value=h,this._list.value){if(this._list.value.headerContainer)m.appendChild(this._list.value.headerContainer);if(this._list.value.filterContainer)m.appendChild(this._list.value.filterContainer);if(m.appendChild(this._list.value.domNode),this._list.value.footerContainer)m.appendChild(this._list.value.footerContainer)}else throw Error("List has no value");let v=new d;if(p?.filterAsCombobox)v.add(Ct(m,"keydown",(oe)=>{if(oe.keyCode===9&&!oe.browserEvent.isComposing)Ee.stop(oe,!0),this.hide(!0)}));let w=this._list.value.headerContainer;if(w)v.add(hu(w,(oe)=>oe.preventDefault()));let C=0;v.add(hu(m,()=>{C=Date.now()+1000}));let E=document.createElement("div"),R=n.appendChild(E);R.classList.add("context-view-block"),v.add(hu(R,(oe)=>oe.stopPropagation()));let Z=0;if(g.length){let oe=this._createActionBar(".action-widget-action-bar",g);if(oe)m.appendChild(oe.getContainer().parentElement),v.add(oe),Z=oe.getContainer().offsetWidth}let X=this._list.value?.layout(Z);m.style.width=`${X}px`;let Y=Zi.FilterFocused.bindTo(this._contextKeyService);if(v.add({dispose:()=>Y.reset()}),this._list.value?.filterInput){let oe=this._list.value.filterInput;v.add(c(oe,"focus",()=>Y.set(!0))),v.add(c(oe,"blur",()=>Y.set(!1)))}let Q=v.add(yi(n)),te=v.add(new de);return v.add(Q.onDidFocus(()=>te.clear())),v.add(Q.onDidBlur(()=>{let oe=()=>{let le=C-Date.now();if(le>0){te.value=bi(oe,le);return}let pe=Ot();if(pe&&(n.contains(pe)||pe.closest(".action-widget-hover")||pe.closest(".action-list-submenu-panel")))return;this.hide(!0)};te.value=bi(oe,75)})),v}_createActionBar(n,h){if(!h.length)return;let g=x(n),p=new Qi(g);return p.push(h,{icon:!1,label:!0}),p}_hasRequiredAncestorClasses(n,h){if(!h?.length)return!0;for(let g=n;g;g=g.parentElement)if(h.every((p)=>g.classList.contains(p)))return!0;return!1}_onWidgetClosed(n){if(this._closingList===this._list.value){this.clear();return}this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement=void 0,this._list.value?.hide(n)}};Hn=tD([L_(0,ws),L_(1,G),L_(2,A)],Hn);_e(bo,Hn,1);var Er=1100;lt(class extends Cn{constructor(){super({id:"hideCodeActionWidget",title:b(1747,"Hide action widget"),precondition:Zi.Visible,keybinding:{weight:Er,primary:9,secondary:[1033]}})}run(u){u.get(bo).hide(!0)}});lt(class extends Cn{constructor(){super({id:"clearFilterCodeActionWidget",title:b(1748,"Clear action widget filter"),precondition:L.and(Zi.Visible,Zi.FilterFocused),keybinding:{weight:Er+1,primary:9}})}run(u){let n=u.get(bo);if(n instanceof Hn){if(!n.clearFilter())n.hide(!0)}}});lt(class extends Cn{constructor(){super({id:"selectPrevCodeAction",title:b(1749,"Select previous action"),precondition:Zi.Visible,keybinding:{weight:Er,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(u){let n=u.get(bo);if(n instanceof Hn)n.focusPrevious()}});lt(class extends Cn{constructor(){super({id:"selectNextCodeAction",title:b(1750,"Select next action"),precondition:Zi.Visible,keybinding:{weight:Er,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(u){let n=u.get(bo);if(n instanceof Hn)n.focusNext()}});lt(class extends Cn{constructor(){super({id:"collapseSectionCodeAction",title:b(1751,"Collapse section"),precondition:L.and(Zi.Visible,Zi.FilterFocused.negate()),keybinding:{weight:Er,primary:15}})}run(u){let n=u.get(bo);if(n instanceof Hn)n.collapseSection()}});lt(class extends Cn{constructor(){super({id:"expandSectionCodeAction",title:b(1752,"Expand section"),precondition:L.and(Zi.Visible,Zi.FilterFocused.negate()),keybinding:{weight:Er,primary:17}})}run(u){let n=u.get(bo);if(n instanceof Hn)n.expandSection()}});lt(class extends Cn{constructor(){super({id:"toggleSectionCodeAction",title:b(1753,"Toggle section"),precondition:L.and(Zi.Visible,Zi.FilterFocused.negate()),keybinding:{weight:Er,primary:10}})}run(u){let n=u.get(bo);if(n instanceof Hn){if(!n.toggleSection())n.acceptSelected()}}});lt(class extends Cn{constructor(){super({id:Bu,title:b(1754,"Accept selected action"),precondition:Zi.Visible,keybinding:{weight:Er,primary:3,secondary:[2137]}})}run(u){let n=u.get(bo);if(n instanceof Hn)n.acceptSelected()}});lt(class extends Cn{constructor(){super({id:Vu,title:b(1755,"Preview selected action"),precondition:Zi.Visible,keybinding:{weight:Er,primary:2051}})}run(u){let n=u.get(bo);if(n instanceof Hn)n.acceptSelected(!0)}});var oC=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Fd=function(u,n){return function(h,g){n(h,g,u)}},k_,E_=class u extends i{static{k_=this}static{this.baseId="editor.widget.postEditWidget"}constructor(n,h,g,p,m,_,v,w,C,E,R){super();this.typeId=n,this.editor=h,this.showCommand=p,this.range=m,this.edits=_,this.onSelectNewEdit=v,this.additionalActions=w,this._keybindingService=E,this._actionWidgetService=R,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=g.bindTo(C),this.visibleContext.set(!0),this._register(N(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(N(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition((Z)=>{this.dispose()})),this._register(I.runAndSubscribe(E.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=x(".post-edit-widget"),this.button=this._register(new lp(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(c(this.domNode,T.CLICK,()=>this.showSelector()))}getId(){return k_.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){let n=kt(this.button.element),h={x:n.left+n.width,y:n.top+n.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((g,p)=>({kind:"action",item:g,label:g.title,disabled:!1,canPreview:!1,group:{title:"",icon:J.fromId(p===this.edits.activeEditIndex?S.check.id:S.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:(g)=>{this._actionWidgetService.hide(!1);let p=this.edits.allEdits.findIndex((m)=>m===g);if(p!==this.edits.activeEditIndex)return this.onSelectNewEdit(p)}},h,this.editor.getDomNode()??void 0,this.additionalActions)}};E_=k_=oC([Fd(8,G),Fd(9,ge),Fd(10,bo)],E_);var Zv=class u extends i{constructor(n,h,g,p,m,_,v,w){super();this._id=n,this._editor=h,this._visibleContext=g,this._showCommand=p,this._getAdditionalActions=m,this._instantiationService=_,this._bulkEditService=v,this._notificationService=w,this._currentWidget=this._register(new de),this._register(I.any(h.onDidChangeModel,h.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(n,h,g,p,m){if(!n.length||!this._editor.hasModel())return;let _=this._editor.getModel(),v=h.allEdits.at(h.activeEditIndex);if(!v)return;let w=async(oe)=>{let le=this._editor.getModel();if(!le)return;await le.undo(),this.applyEditAndShowIfNeeded(n,{activeEditIndex:oe,allEdits:h.allEdits},g,p,m)},C=(oe,le)=>{if(gi(oe))return;if(this._notificationService.error(le),g)this.show(n[0],h,w)},E=new Ss(this._editor,3,void 0,m),R;try{R=await D2(p(v,E.token),E.token)}catch(oe){return C(oe,e(991,`Error resolving edit '{0}':
|
|
5
|
+
{1}`,v.title,Yv(oe)))}finally{E.dispose()}if(m.isCancellationRequested)return;let Z=Hu(_.uri,n,R),X=n[0],Y=_.deltaDecorations([],[{range:X,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let Q,te;try{Q=await this._bulkEditService.apply(Z,{editor:this._editor,token:m}),te=_.getDecorationRange(Y[0])}catch(oe){return C(oe,e(992,`Error applying edit '{0}':
|
|
6
|
+
{1}`,v.title,Yv(oe)))}finally{_.deltaDecorations(Y,[])}if(m.isCancellationRequested)return;if(g&&Q.isApplied&&h.allEdits.length>1)this.show(te??X,h,w)}show(n,h,g){if(this.clear(),this._editor.hasModel())this._currentWidget.value=this._instantiationService.createInstance(E_,this._id,this._editor,this._visibleContext,this._showCommand,n,h,g,this._getAdditionalActions())}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Zv=oC([Fd(5,A),Fd(6,$c),Fd(7,wt)],Zv);var iD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Fr=function(u,n){return function(h,g){n(h,g,u)}},an,lR="editor.changePasteType",oD="editor.pasteAs.preferences",E1=new M("pasteWidgetVisible",!1,e(971,"Whether the paste widget is showing")),D_="application/vnd.code.copymetadata",dd=class u extends i{static{an=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(n){return n.getContribution(an.ID)}constructor(n,h,g,p,m,_,v,w,C,E){super();this._logService=g,this._bulkEditService=p,this._clipboardService=m,this._commandService=_,this._configService=v,this._languageFeaturesService=w,this._quickInputService=C,this._progressService=E,this._editor=n,this._register(n.onWillCopy((R)=>this.handleCopy(R))),this._register(n.onWillCut((R)=>this.handleCopy(R))),this._register(n.onWillPaste((R)=>this.handlePaste(R))),this._pasteProgressManager=this._register(new Jv("pasteIntoEditor",n,h)),this._postPasteWidgetManager=this._register(h.createInstance(Zv,"pasteIntoEditor",n,E1,{id:lR,label:e(972,"Show paste options...")},()=>an._configureDefaultAction?[an._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(n){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:n},await this._commandService.executeCommand("editor.action.clipboardPasteAction")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(97).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(n){if(this._logService.trace("CopyPasteController#handleCopy"),!this._editor.hasTextFocus())return;if(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled())return;let h=this._editor.getModel(),g=this._editor._getViewModel(),p=this._editor.getSelections();if(!h||!g||!p?.length)return;let m={multicursorText:n.dataToCopy.multicursorText??null,pasteOnNewLine:n.dataToCopy.isFromEmptySelection,mode:null},_=this._languageFeaturesService.documentPasteEditProvider.ordered(h).filter((R)=>!!R.prepareDocumentPaste);if(!_.length){this.setCopyMetadata(n.clipboardData,{defaultPastePayload:m});return}let v=new zf,w=_.flatMap((R)=>R.copyMimeTypes??[]),C=Ol();this.setCopyMetadata(n.clipboardData,{id:C,providerCopyMimeTypes:w,defaultPastePayload:m});let E=_.map((R)=>({providerMimeTypes:R.copyMimeTypes,operation:Zt((Z)=>R.prepareDocumentPaste(h,n.dataToCopy.sourceRanges,v,Z).catch((X)=>{console.error(X);return}))}));an._currentCopyOperation?.operations.forEach((R)=>R.operation.cancel()),an._currentCopyOperation={handle:C,operations:E}}async handlePaste(n){if(this._logService.trace("CopyPasteController#handlePaste for id : ",n.metadata?.id),!this._editor.hasTextFocus())return;let h=n.toExternalVSDataTransfer();if(!h)return;h.delete(D_),hi.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let g=this._editor.getModel(),p=this._editor.getSelections();if(!p?.length||!g)return;if(this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let m=this.fetchCopyMetadata(n);this._logService.trace("CopyPasteController#handlePaste with metadata : ",m?.id," and text.length : ",n.clipboardData.getData("text/plain").length);let _=Array.from(n.clipboardData.files).map((C)=>C.type),v=[...n.clipboardData.types,..._,...m?.providerCopyMimeTypes??[],kn.uriList],w=this._languageFeaturesService.documentPasteEditProvider.ordered(g).filter((C)=>{let E=this._pasteAsActionContext?.preferred;if(E){if(!this.providerMatchesPreference(C,E))return!1}return C.pasteMimeTypes?.some((R)=>CR(R,v))});if(!w.length){if(this._pasteAsActionContext?.preferred)this.showPasteAsNoEditMessage(p,this._pasteAsActionContext.preferred),n.setHandled();return}if(n.setHandled(),this._pasteAsActionContext)this.showPasteAsPick(this._pasteAsActionContext.preferred,w,p,h,m);else this.doPasteInline(w,p,h,m,n.browserEvent)}showPasteAsNoEditMessage(n,h){let g="only"in h?h.only.value:("preferences"in h)?h.preferences.length?h.preferences.map((p)=>p.value).join(", "):e(973,"empty"):h.providerId;hi.get(this._editor)?.showMessage(e(974,"No paste edits for '{0}' found",g),n[0].getStartPosition())}doPasteInline(n,h,g,p,m){this._logService.trace("CopyPasteController#doPasteInline");let _=this._editor;if(!_.hasModel())return;let v=new Ss(_,3,void 0),w=Zt(async(C)=>{let E=this._editor;if(!E.hasModel())return;let R=E.getModel(),Z=new d,X=Z.add(new qe(C));Z.add(v.token.onCancellationRequested(()=>X.cancel()));let Y=X.token;try{if(await this.mergeInDataFromCopy(n,g,p,Y),Y.isCancellationRequested)return;let Q=n.filter((le)=>this.isSupportedPasteProvider(le,g));if(!Q.length||Q.length===1&&Q[0]instanceof Hh)return this.applyDefaultPasteHandler(g,p,Y,m);let te={triggerKind:yg.Automatic},oe=await this.getPasteEdits(Q,g,R,h,te,Y);if(Z.add(oe),Y.isCancellationRequested)return;if(oe.edits.length===1&&oe.edits[0].provider instanceof Hh)return this.applyDefaultPasteHandler(g,p,Y,m);if(oe.edits.length){let le=E.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(h,{activeEditIndex:this.getInitialActiveEditIndex(R,oe.edits),allEdits:oe.edits},le,async(pe,Se)=>{if(!pe.provider.resolveDocumentPasteEdit)return pe;let Ce=pe.provider.resolveDocumentPasteEdit(pe,Se),ae=new da,me=await this._pasteProgressManager.showWhile(h[0].getEndPosition(),e(975,"Resolving paste edit for '{0}'. Click to cancel",pe.title),fc(Promise.race([ae.p,Ce]),Se),{cancel:()=>ae.cancel()},0);if(me)pe.insertText=me.insertText,pe.additionalEdit=me.additionalEdit;return pe},Y)}await this.applyDefaultPasteHandler(g,p,Y,m)}finally{if(Z.dispose(),this._currentPasteOperation===w)this._currentPasteOperation=void 0}});this._pasteProgressManager.showWhile(h[0].getEndPosition(),e(976,"Running paste handlers. Click to cancel and do basic paste"),w,{cancel:async()=>{if(w.cancel(),v.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(g,p,v.token,m)}}).finally(()=>{v.dispose()}),this._currentPasteOperation=w}showPasteAsPick(n,h,g,p,m){this._logService.trace("CopyPasteController#showPasteAsPick");let _=Zt(async(v)=>{let w=this._editor;if(!w.hasModel())return;let C=w.getModel(),E=new d,R=E.add(new Ss(w,3,void 0,v));try{if(await this.mergeInDataFromCopy(h,p,m,R.token),R.token.isCancellationRequested)return;let Z=h.filter((oe)=>this.isSupportedPasteProvider(oe,p,n));if(n)Z=Z.filter((oe)=>this.providerMatchesPreference(oe,n));let X={triggerKind:yg.PasteAs,only:n&&"only"in n?n.only:void 0},Y=E.add(await this.getPasteEdits(Z,p,C,g,X,R.token));if(R.token.isCancellationRequested)return;if(n)Y={edits:Y.edits.filter((oe)=>{if("only"in n)return n.only.contains(oe.kind);else if("preferences"in n)return n.preferences.some((le)=>le.contains(oe.kind));else return n.providerId===oe.provider.id}),dispose:Y.dispose};if(!Y.edits.length){if(n)this.showPasteAsNoEditMessage(g,n);return}let Q;if(n)Q=Y.edits.at(0);else{let oe={id:"editor.pasteAs.default",label:e(977,"Configure default paste action"),edit:void 0},le=await this._quickInputService.pick([...Y.edits.map((pe)=>({label:pe.title,description:pe.kind?.value,edit:pe})),...an._configureDefaultAction?[E2({type:"separator"}),{label:an._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:e(978,"Select Paste Action")});if(le===oe){an._configureDefaultAction?.run();return}Q=le?.edit}if(!Q)return;let te=Hu(C.uri,g,Q);await this._bulkEditService.apply(te,{editor:this._editor})}finally{if(E.dispose(),this._currentPasteOperation===_)this._currentPasteOperation=void 0}});this._progressService.withProgress({location:10,title:e(979,"Running paste handlers")},()=>_)}setCopyMetadata(n,h){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",h.id),n.setData(D_,JSON.stringify(h))}fetchCopyMetadata(n){this._logService.trace("CopyPasteController#fetchCopyMetadata");let h=n.clipboardData.getData(D_);if(h)try{return JSON.parse(h)}catch{return}if(n.metadata)return{defaultPastePayload:{mode:n.metadata.mode,multicursorText:n.metadata.multicursorText??null,pasteOnNewLine:!!n.metadata.isFromEmptySelection}};return}async mergeInDataFromCopy(n,h,g,p){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",g?.id),g?.id&&an._currentCopyOperation?.handle===g.id){let m=an._currentCopyOperation.operations.filter((v)=>n.some((w)=>w.pasteMimeTypes.some((C)=>CR(C,v.providerMimeTypes)))).map((v)=>v.operation),_=await Promise.all(m);if(p.isCancellationRequested)return;for(let v of _.reverse())if(v)for(let[w,C]of v)h.replace(w,C)}if(!h.has(kn.uriList)){let m=await this._clipboardService.readResources();if(p.isCancellationRequested)return;if(m.length)h.append(kn.uriList,Q0(Pg.create(m)))}}async getPasteEdits(n,h,g,p,m,_){let v=new d,w=await fc(Promise.all(n.map(async(E)=>{try{let R=await E.provideDocumentPasteEdits?.(g,p,h,m,_);if(R)v.add(R);return R?.edits?.map((Z)=>({...Z,provider:E}))}catch(R){if(!gi(R))console.error(R);return}})),_),C=vo(w??[]).flat().filter((E)=>!m.only||m.only.contains(E.kind));return{edits:k1(C),dispose:()=>v.dispose()}}async applyDefaultPasteHandler(n,h,g,p){let _=await(n.get(kn.text)??n.get("text"))?.asString()??"";if(g.isCancellationRequested)return;let v={clipboardEvent:p,text:_,pasteOnNewLine:h?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:h?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",h?.id),this._editor.trigger("keyboard","paste",v)}isSupportedPasteProvider(n,h,g){if(!n.pasteMimeTypes?.some((p)=>h.matches(p)))return!1;return!g||this.providerMatchesPreference(n,g)}providerMatchesPreference(n,h){if("only"in h)return n.providedPasteEditKinds.some((g)=>h.only.contains(g));else if("preferences"in h)return n.providedPasteEditKinds.some((g)=>h.preferences.some((p)=>p.contains(g)));else return n.id===h.providerId}getInitialActiveEditIndex(n,h){let g=this._configService.getValue(oD,{resource:n.uri});for(let p of Array.isArray(g)?g:[]){let m=new Ht(p),_=h.findIndex((v)=>m.contains(v.kind));if(_>=0)return _}return 0}};dd=an=iD([Fr(1,A),Fr(2,Ye),Fr(3,$c),Fr(4,wi),Fr(5,Ue),Fr(6,re),Fr(7,z),Fr(8,En),Fr(9,kk)],dd);var ka="9_cutcopypaste",nD=Jr||document.queryCommandSupported&&document.queryCommandSupported("cut"),rC=Jr||document.queryCommandSupported&&document.queryCommandSupported("copy"),rD=typeof navigator.clipboard>"u"||li?document.queryCommandSupported&&document.queryCommandSupported("paste"):!0;function N_(u){return u.register(),u}var sD=nD?N_(new Rf({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Jr?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(864,"Cu&&t"),order:1},{menuId:l.EditorContext,group:ka,title:e(865,"Cut"),when:r.writable,order:1},{menuId:l.CommandPalette,group:"",title:e(866,"Cut"),order:1},{menuId:l.SimpleEditorContext,group:ka,title:e(867,"Cut"),when:r.writable,order:1}]})):void 0,aD=rC?N_(new Rf({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Jr?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(868,"&&Copy"),order:2},{menuId:l.EditorContext,group:ka,title:e(869,"Copy"),order:2},{menuId:l.CommandPalette,group:"",title:e(870,"Copy"),order:1},{menuId:l.SimpleEditorContext,group:ka,title:e(871,"Copy"),order:2}]})):void 0;Zn.appendMenuItem(l.MenubarEditMenu,{submenu:l.MenubarCopy,title:b(876,"Copy As"),group:"2_ccp",order:3});Zn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextCopy,title:b(877,"Copy As"),group:ka,order:3});Zn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextShare,title:b(878,"Share"),group:"11_share",order:-1,when:L.and(L.notEquals("resourceScheme","output"),r.editorTextFocus)});Zn.appendMenuItem(l.ExplorerContext,{submenu:l.ExplorerContextShare,title:b(879,"Share"),group:"11_share",order:-1});var T_=rD?N_(new Rf({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Jr?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(872,"&&Paste"),order:4},{menuId:l.EditorContext,group:ka,title:e(873,"Paste"),when:r.writable,order:4},{menuId:l.CommandPalette,group:"",title:e(874,"Paste"),order:1},{menuId:l.SimpleEditorContext,group:ka,title:e(875,"Paste"),when:r.writable,order:4}]})):void 0;class sC extends U{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:b(880,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,weight:100}})}run(u,n){let h=u.get(Ye),g=u.get(wi);if(h.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!n.hasModel())return;if(!n.getOption(45)&&n.getSelection().isEmpty())return;yu.forceCopyWithSyntaxHighlighting=!0,n.focus(),h.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),R_(n,g),h.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),yu.forceCopyWithSyntaxHighlighting=!1}}function R_(u,n){if(yu.electronBugWorkaroundCopyEventHasFired=!1,u.getContainerDomNode().ownerDocument.execCommand("copy"),Jr&&yu.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:h}=rP(u._getViewModel(),void 0,li);n.writeText(h.text)}}function aC(u,n){if(!u)return;u.addImplementation(1e4,"code-editor",(h,g)=>{let p=h.get(Ye),m=h.get(wi);p.trace("registerExecCommandImpl (addImplementation code-editor for : ",n,")");let _=h.get(Te).getFocusedCodeEditor();if(_&&_.hasTextFocus()&&_.hasModel()){let v=_.getOption(45),w=_.getSelection();if(w&&w.isEmpty()&&!v)return!0;if(_.getOption(171)&&n==="cut")nC(_),p.trace("registerExecCommandImpl (before execCommand copy)"),R_(_,m),_.trigger(void 0,"cut",void 0),p.trace("registerExecCommandImpl (after execCommand copy)");else{if(nC(_),p.trace("registerExecCommandImpl (before execCommand "+n+")"),n==="copy")R_(_,m);else _.getContainerDomNode().ownerDocument.execCommand(n);p.trace("registerExecCommandImpl (after execCommand "+n+")")}return!0}return!1}),u.addImplementation(0,"generic-dom",(h,g)=>{let p=h.get(Ye);return p.trace("registerExecCommandImpl (addImplementation generic-dom for : ",n,")"),p.trace("registerExecCommandImpl (before execCommand "+n+")"),Ef().execCommand(n),p.trace("registerExecCommandImpl (after execCommand "+n+")"),!0})}function nC(u){if(u.getOption(171)){let h=n_.get(u.getId());if(h)h.handleWillCopy()}}aC(sD,"cut");aC(aD,"copy");if(T_)T_.addImplementation(1e4,"code-editor",(u,n)=>{let h=u.get(Ye);h.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");let g=u.get(Te),p=u.get(wi),m=g.getFocusedCodeEditor();if(m&&m.hasModel()&&m.hasTextFocus()){if(m.getOption(171)){let w=n_.get(m.getId());if(w)w.handleWillPaste()}h.trace("registerExecCommandImpl (before triggerPaste)");let v=p.triggerPaste(Ge().vscodeWindowId);if(v)return h.trace("registerExecCommandImpl (triggerPaste defined)"),v.then(async()=>(h.trace("registerExecCommandImpl (after triggerPaste)"),dd.get(m)?.finishedPaste()??Promise.resolve()));else h.trace("registerExecCommandImpl (triggerPaste undefined)");if(Os)return h.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{let w=await p.readText();if(w!==""){let C=Wf.INSTANCE.get(w),E=!1,R=null,Z=null;if(C)E=m.getOption(45)&&!!C.isFromEmptySelection,R=typeof C.multicursorText<"u"?C.multicursorText:null,Z=C.mode;h.trace("registerExecCommandImpl (clipboardText.length : ",w.length," id : ",C?.id,")"),m.trigger("keyboard","paste",{text:w,pasteOnNewLine:E,multicursorText:R,mode:Z})}})();return!0}return!1}),T_.addImplementation(0,"generic-dom",(u,n)=>(u.get(Ye).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),u.get(wi).triggerPaste(Ge().vscodeWindowId)??!1));if(rC)O(sC);class nr{constructor(u,n,h){this.languageConfigurationService=h,this._selection=u,this._insertSpace=n,this._usedEndToken=null}static _haystackHasNeedleAtOffset(u,n,h){if(h<0)return!1;let g=n.length,p=u.length;if(h+g>p)return!1;for(let m=0;m<g;m++){let _=u.charCodeAt(h+m),v=n.charCodeAt(m);if(_===v)continue;if(_>=65&&_<=90&&_+32===v)continue;if(v>=65&&v<=90&&v+32===_)continue;return!1}return!0}_createOperationsForBlockComment(u,n,h,g,p,m){let{startLineNumber:_,startColumn:v,endLineNumber:w,endColumn:C}=u,E=p.getLineContent(_),R=p.getLineContent(w),Z=E.lastIndexOf(n,v-1+n.length),X=R.indexOf(h,C-1-h.length);if(Z!==-1&&X!==-1)if(_===w){if(E.substring(Z+n.length,X).indexOf(h)>=0)Z=-1,X=-1}else{let Q=E.substring(Z+n.length),te=R.substring(0,X);if(Q.indexOf(h)>=0||te.indexOf(h)>=0)Z=-1,X=-1}let Y;if(Z!==-1&&X!==-1){if(g&&Z+n.length<E.length&&E.charCodeAt(Z+n.length)===32)n=n+" ";if(g&&X>0&&R.charCodeAt(X-1)===32)h=" "+h,X-=1;Y=nr._createRemoveBlockCommentOperations(new t(_,Z+n.length+1,w,X+1),n,h)}else Y=nr._createAddBlockCommentOperations(u,n,h,this._insertSpace),this._usedEndToken=Y.length===1?h:null;for(let Q of Y)m.addTrackedEditOperation(Q.range,Q.text)}static _createRemoveBlockCommentOperations(u,n,h){let g=[];if(!t.isEmpty(u))g.push(Yt.delete(new t(u.startLineNumber,u.startColumn-n.length,u.startLineNumber,u.startColumn))),g.push(Yt.delete(new t(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn+h.length)));else g.push(Yt.delete(new t(u.startLineNumber,u.startColumn-n.length,u.endLineNumber,u.endColumn+h.length)));return g}static _createAddBlockCommentOperations(u,n,h,g){let p=[];if(!t.isEmpty(u))p.push(Yt.insert(new s(u.startLineNumber,u.startColumn),n+(g?" ":""))),p.push(Yt.insert(new s(u.endLineNumber,u.endColumn),(g?" ":"")+h));else p.push(Yt.replace(new t(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn),n+" "+h));return p}getEditOperations(u,n){let h=this._selection.startLineNumber,g=this._selection.startColumn;u.tokenization.tokenizeIfCheap(h);let p=u.getLanguageIdAtPosition(h,g),m=this.languageConfigurationService.getLanguageConfiguration(p).comments;if(!m||!m.blockCommentStartToken||!m.blockCommentEndToken)return;this._createOperationsForBlockComment(this._selection,m.blockCommentStartToken,m.blockCommentEndToken,this._insertSpace,u,n)}computeCursorState(u,n){let h=n.getInverseEditOperations();if(h.length===2){let g=h[0],p=h[1];return new F(g.range.endLineNumber,g.range.endColumn,p.range.startLineNumber,p.range.startColumn)}else{let g=h[0].range,p=this._usedEndToken?-this._usedEndToken.length-1:0;return new F(g.endLineNumber,g.endColumn+p,g.endLineNumber,g.endColumn+p)}}}class rr{constructor(u,n,h,g,p,m,_){this.languageConfigurationService=u,this._selection=n,this._indentSize=h,this._type=g,this._insertSpace=p,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=m,this._ignoreFirstLine=_||!1}static _gatherPreflightCommentStrings(u,n,h,g){u.tokenization.tokenizeIfCheap(n);let p=u.getLanguageIdAtPosition(n,1),m=g.getLanguageConfiguration(p).comments,_=m?m.lineCommentToken:null;if(!_)return null;let v=[];for(let w=0,C=h-n+1;w<C;w++)v[w]={ignore:!1,commentStr:_,commentStrOffset:0,commentStrLength:_.length};return v}static _analyzeLines(u,n,h,g,p,m,_,v,w){let C=!0,R=v.getLanguageConfiguration(w).comments?.lineCommentNoIndent??!1,Z;if(u===0)Z=!0;else if(u===1)Z=!1;else Z=!0;for(let X=0,Y=g.length;X<Y;X++){let Q=g[X],te=p+X;if(te===p&&_){Q.ignore=!0;continue}let oe=h.getLineContent(te),le=Yn(oe);if(le===-1){Q.ignore=m,Q.commentStrOffset=R?0:oe.length;continue}C=!1;let pe=R?0:le;if(Q.ignore=!1,Q.commentStrOffset=pe,Z&&!nr._haystackHasNeedleAtOffset(oe,Q.commentStr,pe))if(u===0)Z=!1;else if(u===1);else Q.ignore=!0;if(Z&&n){let Se=le+Q.commentStrLength;if(Se<oe.length&&oe.charCodeAt(Se)===32)Q.commentStrLength+=1}}if(u===0&&C){Z=!1;for(let X=0,Y=g.length;X<Y;X++)g[X].ignore=!1}return{supported:!0,shouldRemoveComments:Z,lines:g}}static _gatherPreflightData(u,n,h,g,p,m,_,v){let w=rr._gatherPreflightCommentStrings(h,g,p,v),C=h.getLanguageIdAtPosition(g,1);if(w===null)return{supported:!1};return rr._analyzeLines(u,n,h,w,g,m,_,v,C)}_executeLineComments(u,n,h,g){let p;if(h.shouldRemoveComments)p=rr._createRemoveLineCommentsOperations(h.lines,g.startLineNumber);else rr._normalizeInsertionPoint(u,h.lines,g.startLineNumber,this._indentSize),p=this._createAddLineCommentsOperations(h.lines,g.startLineNumber);let m=new s(g.positionLineNumber,g.positionColumn);for(let _=0,v=p.length;_<v;_++)if(n.addEditOperation(p[_].range,p[_].text),t.isEmpty(p[_].range)&&t.getStartPosition(p[_].range).equals(m)){if(u.getLineContent(m.lineNumber).length+1===m.column)this._deltaColumn=(p[_].text||"").length}this._selectionId=n.trackSelection(g)}_attemptRemoveBlockComment(u,n,h,g){let{startLineNumber:p,endLineNumber:m}=n,_=g.length+Math.max(u.getLineFirstNonWhitespaceColumn(n.startLineNumber),n.startColumn),v=u.getLineContent(p).lastIndexOf(h,_-1),w=u.getLineContent(m).indexOf(g,n.endColumn-1-h.length);if(v!==-1&&w===-1)w=u.getLineContent(p).indexOf(g,v+h.length),m=p;if(v===-1&&w!==-1)v=u.getLineContent(m).lastIndexOf(h,w),p=m;if(n.isEmpty()&&(v===-1||w===-1)){if(v=u.getLineContent(p).indexOf(h),v!==-1)w=u.getLineContent(p).indexOf(g,v+h.length)}if(v!==-1&&u.getLineContent(p).charCodeAt(v+h.length)===32)h+=" ";if(w!==-1&&u.getLineContent(m).charCodeAt(w-1)===32)g=" "+g,w-=1;if(v!==-1&&w!==-1)return nr._createRemoveBlockCommentOperations(new t(p,v+h.length+1,m,w+1),h,g);return null}_executeBlockComment(u,n,h){u.tokenization.tokenizeIfCheap(h.startLineNumber);let g=u.getLanguageIdAtPosition(h.startLineNumber,1),p=this.languageConfigurationService.getLanguageConfiguration(g).comments;if(!p||!p.blockCommentStartToken||!p.blockCommentEndToken)return;let{blockCommentStartToken:m,blockCommentEndToken:_}=p,v=this._attemptRemoveBlockComment(u,h,m,_);if(!v){if(h.isEmpty()){let w=u.getLineContent(h.startLineNumber),C=Yn(w);if(C===-1)C=w.length;v=nr._createAddBlockCommentOperations(new t(h.startLineNumber,C+1,h.startLineNumber,w.length+1),m,_,this._insertSpace)}else v=nr._createAddBlockCommentOperations(new t(h.startLineNumber,u.getLineFirstNonWhitespaceColumn(h.startLineNumber),h.endLineNumber,u.getLineMaxColumn(h.endLineNumber)),m,_,this._insertSpace);if(v.length===1)this._deltaColumn=m.length+1}this._selectionId=n.trackSelection(h);for(let w of v)n.addEditOperation(w.range,w.text)}getEditOperations(u,n){let h=this._selection;if(this._moveEndPositionDown=!1,h.startLineNumber===h.endLineNumber&&this._ignoreFirstLine){n.addEditOperation(new t(h.startLineNumber,u.getLineMaxColumn(h.startLineNumber),h.startLineNumber+1,1),h.startLineNumber===u.getLineCount()?"":`
|
|
7
|
+
`),this._selectionId=n.trackSelection(h);return}if(h.startLineNumber<h.endLineNumber&&h.endColumn===1)this._moveEndPositionDown=!0,h=h.setEndPosition(h.endLineNumber-1,u.getLineMaxColumn(h.endLineNumber-1));let g=rr._gatherPreflightData(this._type,this._insertSpace,u,h.startLineNumber,h.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);if(g.supported)return this._executeLineComments(u,n,g,h);return this._executeBlockComment(u,n,h)}computeCursorState(u,n){let h=n.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)h=h.setEndPosition(h.endLineNumber+1,1);return new F(h.selectionStartLineNumber,h.selectionStartColumn+this._deltaColumn,h.positionLineNumber,h.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(u,n){let h=[];for(let g=0,p=u.length;g<p;g++){let m=u[g];if(m.ignore)continue;h.push(Yt.delete(new t(n+g,m.commentStrOffset+1,n+g,m.commentStrOffset+m.commentStrLength+1)))}return h}_createAddLineCommentsOperations(u,n){let h=[],g=this._insertSpace?" ":"";for(let p=0,m=u.length;p<m;p++){let _=u[p];if(_.ignore)continue;h.push(Yt.insert(new s(n+p,_.commentStrOffset+1),_.commentStr+g))}return h}static nextVisibleColumn(u,n,h,g){if(h)return u+(n-u%n);return u+g}static _normalizeInsertionPoint(u,n,h,g){let p=1073741824,m,_;for(let v=0,w=n.length;v<w;v++){if(n[v].ignore)continue;let C=u.getLineContent(h+v),E=0;for(let R=0,Z=n[v].commentStrOffset;E<p&&R<Z;R++)E=rr.nextVisibleColumn(E,g,C.charCodeAt(R)===9,1);if(E<p)p=E}p=Math.floor(p/g)*g;for(let v=0,w=n.length;v<w;v++){if(n[v].ignore)continue;let C=u.getLineContent(h+v),E=0;for(m=0,_=n[v].commentStrOffset;E<p&&m<_;m++)E=rr.nextVisibleColumn(E,g,C.charCodeAt(m)===9,1);if(E>p)n[v].commentStrOffset=m-1;else n[v].commentStrOffset=m}}}class zu extends U{constructor(u,n){super(n);this._type=u}run(u,n){let h=u.get(ht);if(!n.hasModel())return;let g=n.getModel(),p=[],m=g.getOptions(),_=n.getOption(29),v=n.getSelections().map((C,E)=>({selection:C,index:E,ignoreFirstLine:!1}));v.sort((C,E)=>t.compareRangesUsingStarts(C.selection,E.selection));let w=v[0];for(let C=1;C<v.length;C++){let E=v[C];if(w.selection.endLineNumber===E.selection.startLineNumber)if(w.index<E.index)E.ignoreFirstLine=!0;else w.ignoreFirstLine=!0,w=E}for(let C of v)p.push(new rr(h,C.selection,m.indentSize,this._type,_.insertSpace,_.ignoreEmptyLines,C.ignoreFirstLine));n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class dC extends zu{constructor(){super(0,{id:"editor.action.commentLine",label:b(948,"Toggle Line Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"5_insert",title:e(946,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class cC extends zu{constructor(){super(1,{id:"editor.action.addCommentLine",label:b(949,"Add Line Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class lC extends zu{constructor(){super(2,{id:"editor.action.removeCommentLine",label:b(950,"Remove Line Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class hC extends U{constructor(){super({id:"editor.action.blockComment",label:b(951,"Toggle Block Comment"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"5_insert",title:e(947,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(u,n){let h=u.get(ht);if(!n.hasModel())return;let g=n.getOption(29),p=[],m=n.getSelections();for(let _ of m)p.push(new nr(_,g.insertSpace,h));n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}O(dC);O(cC);O(lC);O(hC);class Ku{constructor(u){this.selections=u}equals(u){let n=this.selections.length,h=u.selections.length;if(n!==h)return!1;for(let g=0;g<n;g++)if(!this.selections[g].equalsSelection(u.selections[g]))return!1;return!0}}class Uu{constructor(u,n,h){this.cursorState=u,this.scrollTop=n,this.scrollLeft=h}}class Hd extends i{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(u){return u.getContribution(Hd.ID)}constructor(u){super();this._editor=u,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(u.onDidChangeModel((n)=>{this._undoStack=[],this._redoStack=[]})),this._register(u.onDidChangeModelContent((n)=>{this._undoStack=[],this._redoStack=[]})),this._register(u.onDidChangeCursorSelection((n)=>{if(this._isCursorUndoRedo)return;if(!n.oldSelections)return;if(n.oldModelVersionId!==n.modelVersionId)return;let h=new Ku(n.oldSelections);if(!(this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(h))){if(this._undoStack.push(new Uu(h,u.getScrollTop(),u.getScrollLeft())),this._redoStack=[],this._undoStack.length>50)this._undoStack.shift()}}))}cursorUndo(){if(!this._editor.hasModel()||this._undoStack.length===0)return;this._redoStack.push(new Uu(new Ku(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop())}cursorRedo(){if(!this._editor.hasModel()||this._redoStack.length===0)return;this._undoStack.push(new Uu(new Ku(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop())}_applyState(u){this._isCursorUndoRedo=!0,this._editor.setSelections(u.cursorState.selections),this._editor.setScrollPosition({scrollTop:u.scrollTop,scrollLeft:u.scrollLeft}),this._isCursorUndoRedo=!1}}class uC extends U{constructor(){super({id:"cursorUndo",label:b(965,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:2099,weight:100}})}run(u,n,h){Hd.get(n)?.cursorUndo()}}class gC extends U{constructor(){super({id:"cursorRedo",label:b(966,"Cursor Redo"),precondition:void 0})}run(u,n,h){Hd.get(n)?.cursorRedo()}}fe(Hd.ID,Hd,0);O(uC);O(gC);class M_{constructor(u,n,h){this.selection=u,this.targetPosition=n,this.copy=h,this.targetSelection=null}getEditOperations(u,n){let h=u.getValueInRange(this.selection);if(!this.copy)n.addEditOperation(this.selection,null);if(n.addEditOperation(new t(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),h),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new F(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new F(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.selection.endColumn<=this.targetPosition.column)this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column-this.selection.endColumn+this.selection.startColumn:this.targetPosition.column-this.selection.endColumn+this.selection.startColumn,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn);else this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(u,n){return this.targetSelection}}function Wd(u){if(ve)return u.altKey;else return u.ctrlKey}class Bd extends i{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=ve?6:5}constructor(u){super();this._editor=u,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((n)=>this._onEditorMouseDown(n))),this._register(this._editor.onMouseUp((n)=>this._onEditorMouseUp(n))),this._register(this._editor.onMouseDrag((n)=>this._onEditorMouseDrag(n))),this._register(this._editor.onMouseDrop((n)=>this._onEditorMouseDrop(n))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown((n)=>this.onEditorKeyDown(n))),this._register(this._editor.onKeyUp((n)=>this.onEditorKeyUp(n))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(u){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Wd(u))this._modifierPressed=!0;if(this._mouseDown&&Wd(u))this._editor.updateOptions({mouseStyle:"copy"})}onEditorKeyUp(u){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Wd(u))this._modifierPressed=!1;if(this._mouseDown&&u.keyCode===Bd.TRIGGER_KEY_VALUE)this._editor.updateOptions({mouseStyle:"default"})}_onEditorMouseDown(u){this._mouseDown=!0}_onEditorMouseUp(u){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(u){let n=u.target;if(this._dragSelection===null){let g=(this._editor.getSelections()||[]).filter((p)=>n.position&&p.containsPosition(n.position));if(g.length===1)this._dragSelection=g[0];else return}if(Wd(u.event))this._editor.updateOptions({mouseStyle:"copy"});else this._editor.updateOptions({mouseStyle:"default"});if(n.position)if(this._dragSelection.containsPosition(n.position))this._removeDecoration();else this.showAt(n.position)}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(u){if(u.target&&(this._hitContent(u.target)||this._hitMargin(u.target))&&u.target.position){let n=new s(u.target.position.lineNumber,u.target.position.column);if(this._dragSelection===null){let h=null;if(u.event.shiftKey){let g=this._editor.getSelection();if(g){let{selectionStartLineNumber:p,selectionStartColumn:m}=g;h=[new F(p,m,n.lineNumber,n.column)]}}else h=(this._editor.getSelections()||[]).map((g)=>{if(g.containsPosition(n))return new F(n.lineNumber,n.column,n.lineNumber,n.column);else return g});this._editor.setSelections(h||[],"mouse",3)}else if(!this._dragSelection.containsPosition(n)||(Wd(u.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(n)||this._dragSelection.getStartPosition().equals(n)))this._editor.pushUndoStop(),this._editor.executeCommand(Bd.ID,new M_(this._dragSelection,n,Wd(u.event)||this._modifierPressed)),this._editor.pushUndoStop()}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=ue.register({description:"dnd-target",className:"dnd-target"})}showAt(u){this._dndDecorationIds.set([{range:new t(u.lineNumber,u.column,u.lineNumber,u.column),options:Bd._DECORATION_OPTIONS}]),this._editor.revealPosition(u,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(u){return u.type===6||u.type===7}_hitMargin(u){return u.type===2||u.type===3||u.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}fe(Bd.ID,Bd,2);function O_(u,n,h,g){if(u.getLineCount()===1&&u.getLineMaxColumn(1)===1)return[];let p=n.getLanguageConfiguration(u.getLanguageId()).indentRulesSupport;if(!p)return[];let m=new Ey(u,p,n);g=Math.min(g,u.getLineCount());while(h<=g){if(!m.shouldIgnore(h))break;h++}if(h>g-1)return[];let{tabSize:_,indentSize:v,insertSpaces:w}=u.getOptions(),C=(Q,te)=>(te=te||1,es.shiftIndent(Q,Q.length+te,_,v,w)),E=(Q,te)=>(te=te||1,es.unshiftIndent(Q,Q.length+te,_,v,w)),R=[],Z=u.getLineContent(h),X=Rt(Z),Y=X;if(m.shouldIncrease(h))Y=C(Y),X=C(X);else if(m.shouldIndentNextLine(h))Y=C(Y);h++;for(let Q=h;Q<=g;Q++){if(dD(u,Q))continue;let te=u.getLineContent(Q),oe=Rt(te),le=Y;if(m.shouldDecrease(Q,le))Y=E(Y),X=E(X);if(oe!==Y)R.push(Yt.replaceMove(new F(Q,1,Q,oe.length+1),Cy(Y,v,w)));if(m.shouldIgnore(Q))continue;else if(m.shouldIncrease(Q,le))X=C(X),Y=X;else if(m.shouldIndentNextLine(Q,le))Y=C(Y);else Y=X}return R}function dD(u,n){if(!u.tokenization.isCheapToTokenize(n))return!1;return u.tokenization.getLineTokens(n).getStandardTokenType(0)===2}function Fi(u,n){let h=0;for(let g=0;g<u.length;g++)if(u.charAt(g)==="\t")h+=n;else h++;return h}function Ea(u,n,h){u=u<0?0:u;let g="";if(!h){let p=Math.floor(u/n);u=u%n;for(let m=0;m<p;m++)g+="\t"}for(let p=0;p<u;p++)g+=" ";return g}var cD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},lD=function(u,n){return function(h,g){n(h,g,u)}};class P_ extends U{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:P_.ID,label:b(1204,"Convert Indentation to Spaces"),precondition:r.writable,metadata:{description:b(1205,"Convert the tab indentation to spaces.")}})}run(u,n){let h=n.getModel();if(!h)return;let g=h.getOptions(),p=n.getSelection();if(!p)return;let m=new bC(p,g.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[m]),n.pushUndoStop(),h.updateOptions({insertSpaces:!0})}}class A_ extends U{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:A_.ID,label:b(1206,"Convert Indentation to Tabs"),precondition:r.writable,metadata:{description:b(1207,"Convert the spaces indentation to tabs.")}})}run(u,n){let h=n.getModel();if(!h)return;let g=h.getOptions(),p=n.getSelection();if(!p)return;let m=new vC(p,g.tabSize);n.pushUndoStop(),n.executeCommands(this.id,[m]),n.pushUndoStop(),h.updateOptions({insertSpaces:!1})}}class ju extends U{constructor(u,n,h){super(h);this.insertSpaces=u,this.displaySizeOnly=n}run(u,n){let h=u.get(En),g=u.get(Et),p=n.getModel();if(!p)return;let m=g.getCreationOptions(p.getLanguageId(),p.uri,p.isForSimpleWidget),_=p.getOptions(),v=[1,2,3,4,5,6,7,8].map((C)=>({id:C.toString(),label:C.toString(),description:C===m.tabSize&&C===_.tabSize?e(1200,"Configured Tab Size"):C===m.tabSize?e(1201,"Default Tab Size"):C===_.tabSize?e(1202,"Current Tab Size"):void 0})),w=Math.min(p.getOptions().tabSize-1,7);setTimeout(()=>{h.pick(v,{placeHolder:e(1203,"Select Tab Size for Current File"),activeItem:v[w]}).then((C)=>{if(C){if(p&&!p.isDisposed()){let E=parseInt(C.label,10);if(this.displaySizeOnly)p.updateOptions({tabSize:E});else p.updateOptions({tabSize:E,indentSize:E,insertSpaces:this.insertSpaces})}}})},50)}}class F_ extends ju{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:F_.ID,label:b(1208,"Indent Using Tabs"),precondition:void 0,metadata:{description:b(1209,"Use indentation with tabs.")}})}}class H_ extends ju{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:H_.ID,label:b(1210,"Indent Using Spaces"),precondition:void 0,metadata:{description:b(1211,"Use indentation with spaces.")}})}}class W_ extends ju{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:W_.ID,label:b(1212,"Change Tab Display Size"),precondition:void 0,metadata:{description:b(1213,"Change the space size equivalent of the tab.")}})}}class B_ extends U{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:B_.ID,label:b(1214,"Detect Indentation from Content"),precondition:void 0,metadata:{description:b(1215,"Detect the indentation from content.")}})}run(u,n){let h=u.get(Et),g=n.getModel();if(!g)return;let p=h.getCreationOptions(g.getLanguageId(),g.uri,g.isForSimpleWidget);g.detectIndentation(p.insertSpaces,p.tabSize)}}class pC extends U{constructor(){super({id:"editor.action.reindentlines",label:b(1216,"Reindent Lines"),precondition:r.writable,metadata:{description:b(1217,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(u,n){let h=u.get(ht),g=n.getModel();if(!g)return;let p=O_(g,h,1,g.getLineCount());if(p.length>0)n.pushUndoStop(),n.executeEdits(this.id,p),n.pushUndoStop()}}class mC extends U{constructor(){super({id:"editor.action.reindentselectedlines",label:b(1218,"Reindent Selected Lines"),precondition:r.writable,metadata:{description:b(1219,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(u,n){let h=u.get(ht),g=n.getModel();if(!g)return;let p=n.getSelections();if(p===null)return;let m=[];for(let _ of p){let{startLineNumber:v,endLineNumber:w}=_;if(v!==w&&_.endColumn===1)w--;if(v===1){if(v===w)continue}else v--;let C=O_(g,h,v,w);m.push(...C)}if(m.length>0)n.pushUndoStop(),n.executeEdits(this.id,m),n.pushUndoStop()}}class fC{constructor(u,n){this._initialSelection=n,this._edits=[],this._selectionId=null;for(let h of u)if(h.range&&typeof h.text==="string")this._edits.push(h)}getEditOperations(u,n){for(let g of this._edits)n.addEditOperation(t.lift(g.range),g.text);let h=!1;if(Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()){if(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber)h=!0,this._selectionId=n.trackSelection(this._initialSelection,!0);else if(this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber)h=!0,this._selectionId=n.trackSelection(this._initialSelection,!1)}if(!h)this._selectionId=n.trackSelection(this._initialSelection)}computeCursorState(u,n){return n.getTrackedSelection(this._selectionId)}}var qu=class u{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(n,h){this.editor=n,this._languageConfigurationService=h,this.callOnDispose=new d,this.callOnModel=new d,this.callOnDispose.add(n.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(n.onDidChangeModel(()=>this.update())),this.callOnDispose.add(n.onDidChangeModelLanguage(()=>this.update()))}update(){if(this.callOnModel.clear(),!this.editor.getOption(17)||this.editor.getOption(16)<4)return;if(!this.editor.hasModel())return;this.callOnModel.add(this.editor.onDidPaste(({range:n})=>{this.trigger(n)}))}trigger(n){let h=this.editor.getSelections();if(h===null||h.length>1)return;let g=this.editor.getModel();if(!g)return;if(this.rangeContainsOnlyWhitespaceCharacters(g,n))return;if(!this.editor.getOption(18)&&hD(g,n))return;if(!g.tokenization.isCheapToTokenize(n.getStartPosition().lineNumber))return;let m=this.editor.getOption(16),{tabSize:_,indentSize:v,insertSpaces:w}=g.getOptions(),C=[],E={shiftIndent:(Y)=>es.shiftIndent(Y,Y.length+1,_,v,w),unshiftIndent:(Y)=>es.unshiftIndent(Y,Y.length+1,_,v,w)},R=n.startLineNumber,Z=g.getLineContent(R);if(!/\S/.test(Z.substring(0,n.startColumn-1))){let Y=jg(m,g,g.getLanguageId(),R,E,this._languageConfigurationService);if(Y!==null){let Q=Rt(Z),te=Fi(Y,_),oe=Fi(Q,_);if(te!==oe){let le=Ea(te,_,w);C.push({range:new t(R,1,R,Q.length+1),text:le}),Z=le+Z.substring(Q.length)}else{let le=ok(g,R,this._languageConfigurationService);if(le===0||le===8)return}}}let X=R;while(R<n.endLineNumber){if(!/\S/.test(g.getLineContent(R+1))){R++;continue}break}if(R!==n.endLineNumber){let Q=jg(m,{tokenization:{getLineTokens:(te)=>g.tokenization.getLineTokens(te),getLanguageId:()=>g.getLanguageId(),getLanguageIdAtPosition:(te,oe)=>g.getLanguageIdAtPosition(te,oe)},getLineContent:(te)=>{if(te===X)return Z;else return g.getLineContent(te)}},g.getLanguageId(),R+1,E,this._languageConfigurationService);if(Q!==null){let te=Fi(Q,_),oe=Fi(Rt(g.getLineContent(R+1)),_);if(te!==oe){let le=te-oe;for(let pe=R+1;pe<=n.endLineNumber;pe++){let Se=g.getLineContent(pe),Ce=Rt(Se),me=Fi(Ce,_)+le,Ne=Ea(me,_,w);if(Ne!==Ce)C.push({range:new t(pe,1,pe,Ce.length+1),text:Ne})}}}}if(C.length>0){this.editor.pushUndoStop();let Y=new fC(C,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",Y),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(n,h){let g=(m)=>m.trim().length===0,p=!0;if(h.startLineNumber===h.endLineNumber){let _=n.getLineContent(h.startLineNumber).substring(h.startColumn-1,h.endColumn-1);p=g(_)}else for(let m=h.startLineNumber;m<=h.endLineNumber;m++){let _=n.getLineContent(m);if(m===h.startLineNumber){let v=_.substring(h.startColumn-1);p=g(v)}else if(m===h.endLineNumber){let v=_.substring(0,h.endColumn-1);p=g(v)}else p=n.getLineFirstNonWhitespaceColumn(m)===0;if(!p)break}return p}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};qu=cD([lD(1,ht)],qu);function hD(u,n){let h=(g)=>G2(u,g)===2;return h(n.getStartPosition())||h(n.getEndPosition())}function _C(u,n,h,g){if(u.getLineCount()===1&&u.getLineMaxColumn(1)===1)return;let p="";for(let _=0;_<h;_++)p+=" ";let m=new RegExp(p,"gi");for(let _=1,v=u.getLineCount();_<=v;_++){let w=u.getLineFirstNonWhitespaceColumn(_);if(w===0)w=u.getLineMaxColumn(_);if(w===1)continue;let C=new t(_,1,_,w),E=u.getValueInRange(C),R=g?E.replace(/\t/ig,p):E.replace(m,"\t");n.addEditOperation(C,R)}}class bC{constructor(u,n){this.selection=u,this.tabSize=n,this.selectionId=null}getEditOperations(u,n){this.selectionId=n.trackSelection(this.selection),_C(u,n,this.tabSize,!0)}computeCursorState(u,n){return n.getTrackedSelection(this.selectionId)}}class vC{constructor(u,n){this.selection=u,this.tabSize=n,this.selectionId=null}getEditOperations(u,n){this.selectionId=n.trackSelection(this.selection),_C(u,n,this.tabSize,!1)}computeCursorState(u,n){return n.getTrackedSelection(this.selectionId)}}fe(qu.ID,qu,2);O(P_);O(A_);O(F_);O(H_);O(W_);O(B_);O(pC);O(mC);class wC extends U{constructor(){super({id:"expandLineSelection",label:b(1309,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:r.textInputFocus,primary:2090}})}run(u,n,h){if(h=h||{},!n.hasModel())return;let g=n._getViewModel();g.model.pushStackElement(),g.setCursorStates(h.source,3,Pi.expandLineSelection(g,g.getCursorStates())),g.revealAllCursors(h.source,!0)}}O(wC);class V_{constructor(u,n,h){this._selection=u,this._cursors=n,this._selectionId=null,this._trimInRegexesAndStrings=h}getEditOperations(u,n){let h=uD(u,this._cursors,this._trimInRegexesAndStrings);for(let g=0,p=h.length;g<p;g++){let m=h[g];n.addEditOperation(m.range,m.text)}this._selectionId=n.trackSelection(this._selection)}computeCursorState(u,n){return n.getTrackedSelection(this._selectionId)}}function uD(u,n,h){n.sort((v,w)=>{if(v.lineNumber===w.lineNumber)return v.column-w.column;return v.lineNumber-w.lineNumber});for(let v=n.length-2;v>=0;v--)if(n[v].lineNumber===n[v+1].lineNumber)n.splice(v,1);let g=[],p=0,m=0,_=n.length;for(let v=1,w=u.getLineCount();v<=w;v++){let C=u.getLineContent(v),E=C.length+1,R=0;if(m<_&&n[m].lineNumber===v){if(R=n[m].column,m++,R===E)continue}if(C.length===0)continue;let Z=dr(C),X=0;if(Z===-1)X=1;else if(Z!==C.length-1)X=Z+2;else continue;if(!h){if(!u.tokenization.hasAccurateTokensForLine(v))continue;let Y=u.tokenization.getLineTokens(v),Q=Y.getStandardTokenType(Y.findTokenIndexAtOffset(X));if(Q===2||Q===3)continue}X=Math.max(R,X),g[p++]=Yt.delete(new t(v,X,v,E))}return g}class $u{constructor(u,n,h){this._selection=u,this._isCopyingDown=n,this._noop=h||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(u,n){let h=this._selection;if(this._startLineNumberDelta=0,this._endLineNumberDelta=0,h.startLineNumber<h.endLineNumber&&h.endColumn===1)this._endLineNumberDelta=1,h=h.setEndPosition(h.endLineNumber-1,u.getLineMaxColumn(h.endLineNumber-1));let g=[];for(let m=h.startLineNumber;m<=h.endLineNumber;m++)g.push(u.getLineContent(m));let p=g.join(`
|
|
8
|
+
`);if(p===""){if(this._isCopyingDown)this._startLineNumberDelta++,this._endLineNumberDelta++}if(this._noop)n.addEditOperation(new t(h.endLineNumber,u.getLineMaxColumn(h.endLineNumber),h.endLineNumber+1,1),h.endLineNumber===u.getLineCount()?"":`
|
|
9
|
+
`);else if(!this._isCopyingDown)n.addEditOperation(new t(h.endLineNumber,u.getLineMaxColumn(h.endLineNumber),h.endLineNumber,u.getLineMaxColumn(h.endLineNumber)),`
|
|
10
|
+
`+p);else n.addEditOperation(new t(h.startLineNumber,1,h.startLineNumber,1),p+`
|
|
11
|
+
`);this._selectionId=n.trackSelection(h),this._selectionDirection=this._selection.getDirection()}computeCursorState(u,n){let h=n.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let g=h.startLineNumber,p=h.startColumn,m=h.endLineNumber,_=h.endColumn;if(this._startLineNumberDelta!==0)g=g+this._startLineNumberDelta,p=1;if(this._endLineNumberDelta!==0)m=m+this._endLineNumberDelta,_=1;h=F.createWithDirection(g,p,m,_,this._selectionDirection)}return h}}var gD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},pD=function(u,n){return function(h,g){n(h,g,u)}},Gu=class u{constructor(n,h,g,p){this._languageConfigurationService=p,this._selection=n,this._isMovingDown=h,this._autoIndent=g,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(n,h,g){return{tokenization:{getLineTokens:(p)=>n.tokenization.getLineTokens(h(p)),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(p,m)=>n.getLanguageIdAtPosition(p,m)},getLineContent:(p)=>{let m=g?.(p);if(m!==void 0)return m;return n.getLineContent(h(p))}}}getEditOperations(n,h){let g=n.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===g){this._selectionId=h.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=h.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let p=this._selection;if(p.startLineNumber<p.endLineNumber&&p.endColumn===1)this._moveEndPositionDown=!0,p=p.setEndPosition(p.endLineNumber-1,n.getLineMaxColumn(p.endLineNumber-1));let{tabSize:m,indentSize:_,insertSpaces:v}=n.getOptions(),w=this.buildIndentConverter(m,_,v);if(p.startLineNumber===p.endLineNumber&&n.getLineMaxColumn(p.startLineNumber)===1){let C=p.startLineNumber,E=this._isMovingDown?C+1:C-1;if(n.getLineMaxColumn(E)===1)h.addEditOperation(new t(1,1,1,1),null);else h.addEditOperation(new t(C,1,C,1),n.getLineContent(E)),h.addEditOperation(new t(E,1,E,n.getLineMaxColumn(E)),null);p=new F(E,1,E,1)}else{let C,E;if(this._isMovingDown){C=p.endLineNumber+1,E=n.getLineContent(C),h.addEditOperation(new t(C-1,n.getLineMaxColumn(C-1),C,n.getLineMaxColumn(C)),null);let R=E;if(this.shouldAutoIndent(n,p)){let Z=this.matchEnterRule(n,w,m,C,p.startLineNumber-1);if(Z!==null){let Y=Rt(n.getLineContent(C)),Q=Z+Fi(Y,m);R=Ea(Q,m,v)+this.trimStart(E)}else{let Y=this.createVirtualModel(n,(te)=>te===p.startLineNumber?C:te),Q=jg(this._autoIndent,Y,n.getLanguageIdAtPosition(C,1),p.startLineNumber,w,this._languageConfigurationService);if(Q!==null){let te=Rt(n.getLineContent(C)),oe=Fi(Q,m),le=Fi(te,m);if(oe!==le)R=Ea(oe,m,v)+this.trimStart(E)}}h.addEditOperation(new t(p.startLineNumber,1,p.startLineNumber,1),R+`
|
|
12
|
+
`);let X=this.matchEnterRuleMovingDown(n,w,m,p.startLineNumber,C,R);if(X!==null){if(X!==0)this.getIndentEditsOfMovingBlock(n,h,p,m,v,X)}else{let Y=this.createVirtualModel(n,(te)=>{if(te===p.startLineNumber)return C;else if(te>=p.startLineNumber+1&&te<=p.endLineNumber+1)return te-1;else return te},(te)=>te===p.startLineNumber?R:void 0),Q=jg(this._autoIndent,Y,n.getLanguageIdAtPosition(C,1),p.startLineNumber+1,w,this._languageConfigurationService);if(Q!==null){let te=Rt(n.getLineContent(p.startLineNumber)),oe=Fi(Q,m),le=Fi(te,m);if(oe!==le){let pe=oe-le;this.getIndentEditsOfMovingBlock(n,h,p,m,v,pe)}}}}else h.addEditOperation(new t(p.startLineNumber,1,p.startLineNumber,1),R+`
|
|
13
|
+
`)}else if(C=p.startLineNumber-1,E=n.getLineContent(C),h.addEditOperation(new t(C,1,C+1,1),null),h.addEditOperation(new t(p.endLineNumber,n.getLineMaxColumn(p.endLineNumber),p.endLineNumber,n.getLineMaxColumn(p.endLineNumber)),`
|
|
14
|
+
`+E),this.shouldAutoIndent(n,p)){let R=this.createVirtualModel(n,(X)=>X===C?p.startLineNumber:X),Z=this.matchEnterRule(n,w,m,p.startLineNumber,p.startLineNumber-2);if(Z!==null){if(Z!==0)this.getIndentEditsOfMovingBlock(n,h,p,m,v,Z)}else{let X=jg(this._autoIndent,R,n.getLanguageIdAtPosition(p.startLineNumber,1),C,w,this._languageConfigurationService);if(X!==null){let Y=Rt(n.getLineContent(p.startLineNumber)),Q=Fi(X,m),te=Fi(Y,m);if(Q!==te){let oe=Q-te;this.getIndentEditsOfMovingBlock(n,h,p,m,v,oe)}}}}}this._selectionId=h.trackSelection(p)}buildIndentConverter(n,h,g){return{shiftIndent:(p)=>es.shiftIndent(p,p.length+1,n,h,g),unshiftIndent:(p)=>es.unshiftIndent(p,p.length+1,n,h,g)}}parseEnterResult(n,h,g,p,m){if(m){let _=m.indentation;if(m.indentAction===si.None)_=m.indentation+m.appendText;else if(m.indentAction===si.Indent)_=m.indentation+m.appendText;else if(m.indentAction===si.IndentOutdent)_=m.indentation;else if(m.indentAction===si.Outdent)_=h.unshiftIndent(m.indentation)+m.appendText;let v=n.getLineContent(p);if(this.trimStart(v).indexOf(this.trimStart(_))>=0){let w=Rt(n.getLineContent(p)),C=Rt(_),E=ok(n,p,this._languageConfigurationService);if(E!==null&&E&2)C=h.unshiftIndent(C);let R=Fi(C,g),Z=Fi(w,g);return R-Z}}return null}matchEnterRuleMovingDown(n,h,g,p,m,_){if(dr(_)>=0){let v=n.getLineMaxColumn(m),w=op(this._autoIndent,n,new t(m,v,m,v),this._languageConfigurationService);return this.parseEnterResult(n,h,g,p,w)}else{let v=p-1;while(v>=1){let E=n.getLineContent(v);if(dr(E)>=0)break;v--}if(v<1||p>n.getLineCount())return null;let w=n.getLineMaxColumn(v),C=op(this._autoIndent,n,new t(v,w,v,w),this._languageConfigurationService);return this.parseEnterResult(n,h,g,p,C)}}matchEnterRule(n,h,g,p,m,_){let v=m;while(v>=1){let E;if(v===m&&_!==void 0)E=_;else E=n.getLineContent(v);if(dr(E)>=0)break;v--}if(v<1||p>n.getLineCount())return null;let w=n.getLineMaxColumn(v),C=op(this._autoIndent,n,new t(v,w,v,w),this._languageConfigurationService);return this.parseEnterResult(n,h,g,p,C)}trimStart(n){return n.replace(/^\s+/,"")}shouldAutoIndent(n,h){if(this._autoIndent<4)return!1;if(!n.tokenization.isCheapToTokenize(h.startLineNumber))return!1;let g=n.getLanguageIdAtPosition(h.startLineNumber,1),p=n.getLanguageIdAtPosition(h.endLineNumber,1);if(g!==p)return!1;if(this._languageConfigurationService.getLanguageConfiguration(g).indentRulesSupport===null)return!1;return!0}getIndentEditsOfMovingBlock(n,h,g,p,m,_){for(let v=g.startLineNumber;v<=g.endLineNumber;v++){let w=n.getLineContent(v),C=Rt(w),R=Fi(C,p)+_,Z=Ea(R,p,m);if(Z!==C){if(h.addEditOperation(new t(v,1,v,C.length+1),Z),v===g.endLineNumber&&g.endColumn<=C.length+1&&Z==="")this._moveEndLineSelectionShrink=!0}}}computeCursorState(n,h){let g=h.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)g=g.setEndPosition(g.endLineNumber+1,1);if(this._moveEndLineSelectionShrink&&g.startLineNumber<g.endLineNumber)g=g.setEndPosition(g.endLineNumber,2);return g}};Gu=gD([pD(3,ht)],Gu);class ll{static{this._COLLATOR=vc.Collator()}constructor(u,n){this.selection=u,this.descending=n,this.selectionId=null}getEditOperations(u,n){let h=mD(u,this.selection,this.descending);if(h)n.addEditOperation(h.range,h.text);this.selectionId=n.trackSelection(this.selection)}computeCursorState(u,n){return n.getTrackedSelection(this.selectionId)}static canRun(u,n,h){if(u===null)return!1;let g=SC(u,n,h);if(!g)return!1;for(let p=0,m=g.before.length;p<m;p++)if(g.before[p]!==g.after[p])return!0;return!1}}function SC(u,n,h){let{startLineNumber:g,endLineNumber:p}=n;if(n.endColumn===1)p--;if(g>=p)return null;let m=[];for(let v=g;v<=p;v++)m.push(u.getLineContent(v));let _=m.slice(0);if(_.sort(ll._COLLATOR.value.compare),h===!0)_=_.reverse();return{startLineNumber:g,endLineNumber:p,before:m,after:_}}function mD(u,n,h){let g=SC(u,n,h);if(!g)return null;return Yt.replace(new t(g.startLineNumber,1,g.endLineNumber,u.getLineMaxColumn(g.endLineNumber)),g.after.join(`
|
|
15
|
+
`))}class z_ extends U{constructor(u,n){super(n);this.down=u}run(u,n){if(!n.hasModel())return;let h=n.getSelections().map((m,_)=>({selection:m,index:_,ignore:!1}));h.sort((m,_)=>t.compareRangesUsingStarts(m.selection,_.selection));let g=h[0];for(let m=1;m<h.length;m++){let _=h[m];if(g.selection.endLineNumber===_.selection.startLineNumber)if(g.index<_.index)_.ignore=!0;else g.ignore=!0,g=_}let p=[];for(let m of h)p.push(new $u(m.selection,this.down,m.ignore));n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class CC extends z_{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:b(1315,"Copy Line Up"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1310,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class yC extends z_{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:b(1316,"Copy Line Down"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1311,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class xC extends U{constructor(){super({id:"editor.action.duplicateSelection",label:b(1317,"Duplicate Selection"),precondition:r.writable,menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1312,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(u,n,h){if(!n.hasModel())return;let g=[],p=n.getSelections(),m=n.getModel();for(let _ of p)if(_.isEmpty())g.push(new $u(_,!0));else{let v=new F(_.endLineNumber,_.endColumn,_.endLineNumber,_.endColumn);g.push(new kR(v,m.getValueInRange(_)))}n.pushUndoStop(),n.executeCommands(this.id,g),n.pushUndoStop()}}class K_ extends U{constructor(u,n){super(n);this.down=u}run(u,n){let h=u.get(ht),g=[],p=n.getSelections()||[],m=n.getOption(16);for(let _ of p)g.push(new Gu(_,this.down,m,h));n.pushUndoStop(),n.executeCommands(this.id,g),n.pushUndoStop()}}class IC extends K_{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:b(1318,"Move Line Up"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1313,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class LC extends K_{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:b(1319,"Move Line Down"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1314,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class U_ extends U{constructor(u,n){super(n);this.descending=u}run(u,n){if(!n.hasModel())return;let h=n.getModel(),g=n.getSelections();if(g.length===1&&g[0].isSingleLine())g=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))];for(let m of g)if(!ll.canRun(n.getModel(),m,this.descending))return;let p=[];for(let m=0,_=g.length;m<_;m++)p[m]=new ll(g[m],this.descending);n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class kC extends U_{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:b(1320,"Sort Lines Ascending"),precondition:r.writable,canTriggerInlineEdits:!0})}}class EC extends U_{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:b(1321,"Sort Lines Descending"),precondition:r.writable,canTriggerInlineEdits:!0})}}class DC extends U{constructor(){super({id:"editor.action.removeDuplicateLines",label:b(1322,"Delete Duplicate Lines"),precondition:r.writable,canTriggerInlineEdits:!0})}run(u,n){if(!n.hasModel())return;let h=n.getModel();if(h.getLineCount()===1&&h.getLineMaxColumn(1)===1)return;let g=[],p=[],m=0,_=!0,v=n.getSelections();if(v.length===1&&v[0].isSingleLine())v=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))],_=!1;for(let w of v){let C=new Set,E=[];for(let Y=w.startLineNumber;Y<=w.endLineNumber;Y++){let Q=h.getLineContent(Y);if(C.has(Q))continue;E.push(Q),C.add(Q)}let R=new F(w.startLineNumber,1,w.endLineNumber,h.getLineMaxColumn(w.endLineNumber)),Z=w.startLineNumber-m,X=new F(Z,1,Z+E.length-1,E[E.length-1].length+1);g.push(Yt.replace(R,E.join(`
|
|
16
|
+
`))),p.push(X),m+=w.endLineNumber-w.startLineNumber+1-E.length}n.pushUndoStop(),n.executeEdits(this.id,g,_?p:void 0),n.pushUndoStop()}}class TC extends U{constructor(){super({id:"editor.action.reverseLines",label:b(1323,"Reverse lines"),precondition:r.writable,canTriggerInlineEdits:!0})}run(u,n){if(!n.hasModel())return;let h=n.getModel(),g=n.getSelections(),p=g;if(p.length===1&&p[0].isSingleLine())p=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))];let m=[],_=[];for(let v=0;v<p.length;v++){let w=p[v],C=g[v],E=w.endLineNumber;if(w.startLineNumber<w.endLineNumber&&w.endColumn===1)E--;let R=new t(w.startLineNumber,1,E,h.getLineMaxColumn(E));if(E===h.getLineCount()&&h.getLineContent(R.endLineNumber)==="")R=R.setEndPosition(R.endLineNumber-1,h.getLineMaxColumn(R.endLineNumber-1));let Z=[];for(let te=R.endLineNumber;te>=R.startLineNumber;te--)Z.push(h.getLineContent(te));let X=Yt.replace(R,Z.join(`
|
|
17
|
+
`));m.push(X);let Y=function(te){return te<=R.endLineNumber?R.endLineNumber-te+R.startLineNumber:te},Q=function(te){if(te.isEmpty())return new F(Y(te.positionLineNumber),te.positionColumn,Y(te.positionLineNumber),te.positionColumn);else{let oe=Y(te.selectionStartLineNumber),le=Y(te.positionLineNumber),{selectionStartColumn:pe,positionColumn:Se}=te;return new F(oe,pe,le,Se)}};_.push(Q(C))}n.pushUndoStop(),n.executeEdits(this.id,m,_),n.pushUndoStop()}}class q_ extends U{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:q_.ID,label:b(1324,"Trim Trailing Whitespace"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2102),weight:100}})}run(u,n,h){let g=[];if(h.reason==="auto-save")g=(n.getSelections()||[]).map((C)=>new s(C.positionLineNumber,C.positionColumn));let p=n.getSelection();if(p===null)return;let m=u.get(re),_=n.getModel(),v=m.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:_?.getLanguageId(),resource:_?.uri}),w=new V_(p,g,v);n.pushUndoStop(),n.executeCommands(this.id,[w]),n.pushUndoStop()}}class RC extends U{constructor(){super({id:"editor.action.deleteLines",label:b(1325,"Delete Line"),precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(u,n){if(!n.hasModel())return;let h=this._getLinesToRemove(n),g=n.getModel();if(g.getLineCount()===1&&g.getLineMaxColumn(1)===1)return;let p=0,m=[],_=[];for(let v=0,w=h.length;v<w;v++){let C=h[v],{startLineNumber:E,endLineNumber:R}=C,Z=1,X=g.getLineMaxColumn(R);if(R<g.getLineCount())R+=1,X=1;else if(E>1)E-=1,Z=g.getLineMaxColumn(E);m.push(Yt.replace(new F(E,Z,R,X),"")),_.push(new F(E-p,C.positionColumn,E-p,C.positionColumn)),p+=C.endLineNumber-C.startLineNumber+1}n.pushUndoStop(),n.executeEdits(this.id,m,_),n.revealAllCursors(!0),n.pushUndoStop()}_getLinesToRemove(u){let n=u.getSelections().map((p)=>{let m=p.endLineNumber;if(p.startLineNumber<p.endLineNumber&&p.endColumn===1)m-=1;return{startLineNumber:p.startLineNumber,selectionStartColumn:p.selectionStartColumn,endLineNumber:m,positionColumn:p.positionColumn}});n.sort((p,m)=>{if(p.startLineNumber===m.startLineNumber)return p.endLineNumber-m.endLineNumber;return p.startLineNumber-m.startLineNumber});let h=[],g=n[0];for(let p=1;p<n.length;p++)if(g.endLineNumber+1>=n[p].startLineNumber)g.endLineNumber=n[p].endLineNumber;else h.push(g),g=n[p];return h.push(g),h}}class NC extends U{constructor(){super({id:"editor.action.indentLines",label:b(1326,"Indent Line"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n._getViewModel();if(!h)return;n.pushUndoStop(),n.executeCommands(this.id,xc.indent(h.cursorConfig,n.getModel(),n.getSelections())),n.pushUndoStop()}}class MC extends U{constructor(){super({id:"editor.action.outdentLines",label:b(1327,"Outdent Line"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(u,n){Uf.Outdent.runEditorCommand(u,n,null)}}class hl extends U{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:hl.ID,label:b(1328,"Insert Line Above"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n._getViewModel();if(!h)return;n.pushUndoStop(),n.executeCommands(this.id,Vf.lineInsertBefore(h.cursorConfig,n.getModel(),n.getSelections()))}}class ul extends U{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:ul.ID,label:b(1329,"Insert Line Below"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n._getViewModel();if(!h)return;n.pushUndoStop(),n.executeCommands(this.id,Vf.lineInsertAfter(h.cursorConfig,n.getModel(),n.getSelections()))}}class j_ extends U{run(u,n){if(!n.hasModel())return;let h=n.getSelection(),g=this._getRangesToDelete(n),p=[];for(let v=0,w=g.length-1;v<w;v++){let C=g[v],E=g[v+1];if(t.intersectRanges(C,E)===null)p.push(C);else g[v+1]=t.plusRange(C,E)}p.push(g[g.length-1]);let m=this._getEndCursorState(h,p),_=p.map((v)=>Yt.replace(v,""));n.pushUndoStop(),n.executeEdits(this.id,_,m),n.pushUndoStop()}}class OC extends j_{constructor(){super({id:"deleteAllLeft",label:b(1330,"Delete All Left"),precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(u,n){let h=null,g=[],p=0;if(n.forEach((m)=>{let _;if(m.endColumn===1&&p>0){let v=m.startLineNumber-p;_=new F(v,m.startColumn,v,m.startColumn)}else _=new F(m.startLineNumber,m.startColumn,m.startLineNumber,m.startColumn);if(p+=m.endLineNumber-m.startLineNumber,m.intersectRanges(u))h=_;else g.push(_)}),h)g.unshift(h);return g}_getRangesToDelete(u){let n=u.getSelections();if(n===null)return[];let h=n,g=u.getModel();if(g===null)return[];return h.sort(t.compareRangesUsingStarts),h=h.map((p)=>{if(p.isEmpty())if(p.startColumn===1){let m=Math.max(1,p.startLineNumber-1),_=p.startLineNumber===1?1:g.getLineLength(m)+1;return new t(m,_,p.startLineNumber,1)}else return new t(p.startLineNumber,1,p.startLineNumber,p.startColumn);else return new t(p.startLineNumber,1,p.endLineNumber,p.endColumn)}),h}}class PC extends j_{constructor(){super({id:"deleteAllRight",label:b(1331,"Delete All Right"),precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(u,n){let h=null,g=[];for(let p=0,m=n.length,_=0;p<m;p++){let v=n[p],w=new F(v.startLineNumber-_,v.startColumn,v.startLineNumber-_,v.startColumn);if(v.intersectRanges(u))h=w;else g.push(w)}if(h)g.unshift(h);return g}_getRangesToDelete(u){let n=u.getModel();if(n===null)return[];let h=u.getSelections();if(h===null)return[];let g=h.map((p)=>{if(p.isEmpty()){let m=n.getLineMaxColumn(p.startLineNumber);if(p.startColumn===m)return new t(p.startLineNumber,p.startColumn,p.startLineNumber+1,1);else return new t(p.startLineNumber,p.startColumn,p.startLineNumber,m)}return p});return g.sort(t.compareRangesUsingStarts),g}}class AC extends U{constructor(){super({id:"editor.action.joinLines",label:b(1332,"Join Lines"),precondition:r.writable,kbOpts:{kbExpr:r.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(u,n){let h=n.getSelections();if(h===null)return;let g=n.getSelection();if(g===null)return;h.sort(t.compareRangesUsingStarts);let p=[],m=h.reduce((R,Z)=>{if(R.isEmpty()){if(R.endLineNumber===Z.startLineNumber){if(g.equalsSelection(R))g=Z;return Z}if(Z.startLineNumber>R.endLineNumber+1)return p.push(R),Z;else return new F(R.startLineNumber,R.startColumn,Z.endLineNumber,Z.endColumn)}else if(Z.startLineNumber>R.endLineNumber)return p.push(R),Z;else return new F(R.startLineNumber,R.startColumn,Z.endLineNumber,Z.endColumn)});p.push(m);let _=n.getModel();if(_===null)return;let v=[],w=[],C=g,E=0;for(let R=0,Z=p.length;R<Z;R++){let X=p[R],Y=X.startLineNumber,Q=1,te=0,oe,le,pe=_.getLineLength(X.endLineNumber)-X.endColumn;if(X.isEmpty()||X.startLineNumber===X.endLineNumber){let ae=X.getStartPosition();if(ae.lineNumber<_.getLineCount())oe=Y+1,le=_.getLineMaxColumn(oe);else oe=ae.lineNumber,le=_.getLineMaxColumn(ae.lineNumber)}else oe=X.endLineNumber,le=_.getLineMaxColumn(oe);let Se=_.getLineContent(Y);for(let ae=Y+1;ae<=oe;ae++){let me=_.getLineContent(ae),Ne=_.getLineFirstNonWhitespaceColumn(ae);if(Ne>=1){let Me=!0;if(Se==="")Me=!1;if(Me&&(Se.charAt(Se.length-1)===" "||Se.charAt(Se.length-1)==="\t"))Me=!1,Se=Se.replace(/[\s\uFEFF\xA0]+$/g," ");let Oe=me.substr(Ne-1);if(Se+=(Me?" ":"")+Oe,Me)te=Oe.length+1;else te=Oe.length}else te=0}let Ce=new t(Y,1,oe,le);if(!Ce.isEmpty()){let ae;if(X.isEmpty())v.push(Yt.replace(Ce,Se)),ae=new F(Ce.startLineNumber-E,Se.length-te+1,Y-E,Se.length-te+1);else if(X.startLineNumber===X.endLineNumber)v.push(Yt.replace(Ce,Se)),ae=new F(X.startLineNumber-E,X.startColumn,X.endLineNumber-E,X.endColumn);else v.push(Yt.replace(Ce,Se)),ae=new F(X.startLineNumber-E,X.startColumn,X.startLineNumber-E,Se.length-pe);if(t.intersectRanges(Ce,g)!==null)C=ae;else w.push(ae)}E+=Ce.endLineNumber-Ce.startLineNumber}w.unshift(C),n.pushUndoStop(),n.executeEdits(this.id,v,w),n.pushUndoStop()}}class FC extends U{constructor(){super({id:"editor.action.transpose",label:b(1333,"Transpose Characters around the Cursor"),precondition:r.writable,canTriggerInlineEdits:!0})}run(u,n){let h=n.getSelections();if(h===null)return;let g=n.getModel();if(g===null)return;let p=[];for(let m=0,_=h.length;m<_;m++){let v=h[m];if(!v.isEmpty())continue;let w=v.getStartPosition(),C=g.getLineMaxColumn(w.lineNumber);if(w.column>=C){if(w.lineNumber===g.getLineCount())continue;let E=new t(w.lineNumber,Math.max(1,w.column-1),w.lineNumber+1,1),R=g.getValueInRange(E).split("").reverse().join("");p.push(new Ti(new F(w.lineNumber,Math.max(1,w.column-1),w.lineNumber+1,1),R))}else{let E=new t(w.lineNumber,Math.max(1,w.column-1),w.lineNumber,w.column+1),R=g.getValueInRange(E).split("").reverse().join("");p.push(new Fg(E,R,new F(w.lineNumber,w.column+1,w.lineNumber,w.column+1)))}}n.pushUndoStop(),n.executeCommands(this.id,p),n.pushUndoStop()}}class Cs extends U{run(u,n){let h=n.getSelections();if(h===null)return;let g=n.getModel();if(g===null)return;let p=n.getOption(148),m=[];for(let _ of h)if(_.isEmpty()){let v=_.getStartPosition(),w=n.getConfiguredWordAtPosition(v);if(!w)continue;let C=new t(v.lineNumber,w.startColumn,v.lineNumber,w.endColumn),E=g.getValueInRange(C);m.push(Yt.replace(C,this._modifyText(E,p)))}else{let v=g.getValueInRange(_);m.push(Yt.replace(_,this._modifyText(v,p)))}n.pushUndoStop(),n.executeEdits(this.id,m),n.pushUndoStop()}}class HC extends Cs{constructor(){super({id:"editor.action.transformToUppercase",label:b(1334,"Transform to Uppercase"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){return u.toLocaleUpperCase()}}class WC extends Cs{constructor(){super({id:"editor.action.transformToLowercase",label:b(1335,"Transform to Lowercase"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){return u.toLocaleLowerCase()}}class Uo{constructor(u,n){this._pattern=u,this._flags=n,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(u){}}return this._actual}isSupported(){return this.get()!==null}}class Zu extends Cs{static{this.titleBoundary=new Uo("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:b(1336,"Transform to Title Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=Zu.titleBoundary.get();if(!h)return u;return u.toLocaleLowerCase().replace(h,(g)=>g.toLocaleUpperCase())}}class Vd extends Cs{static{this.caseBoundary=new Uo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Uo("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:b(1337,"Transform to Snake Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=Vd.caseBoundary.get(),g=Vd.singleLetters.get();if(!h||!g)return u;return u.replace(h,"$1_$2").replace(g,"$1_$2$3").toLocaleLowerCase()}}class Da extends Cs{static{this.singleLineWordBoundary=new Uo("[_\\s-]+","gm")}static{this.multiLineWordBoundary=new Uo("[_-]+","gm")}static{this.validWordStart=new Uo("^(\\p{Lu}[^\\p{Lu}])","gmu")}constructor(){super({id:"editor.action.transformToCamelcase",label:b(1338,"Transform to Camel Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=/\r\n|\r|\n/.test(u)?Da.multiLineWordBoundary.get():Da.singleLineWordBoundary.get(),g=Da.validWordStart.get();if(!h||!g)return u;let p=u.split(h);return p.shift()?.replace(g,(_)=>_.toLocaleLowerCase())+p.map((_)=>_.substring(0,1).toLocaleUpperCase()+_.substring(1)).join("")}}class zd extends Cs{static{this.wordBoundary=new Uo("[_ \\t-]","gm")}static{this.wordBoundaryToMaintain=new Uo("(?<=\\.)","gm")}static{this.upperCaseWordMatcher=new Uo("^\\p{Lu}+$","mu")}constructor(){super({id:"editor.action.transformToPascalcase",label:b(1339,"Transform to Pascal Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=zd.wordBoundary.get(),g=zd.wordBoundaryToMaintain.get(),p=zd.upperCaseWordMatcher.get();if(!h||!g||!p)return u;return u.split(g).map((v)=>v.split(h)).flat().map((v)=>{let w=v.charAt(0).toLocaleUpperCase()+v.slice(1);if(w.length>1&&p.test(w))return w.charAt(0)+w.slice(1).toLocaleLowerCase();return w}).join("")}}class Kd extends Cs{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((n)=>n.isSupported())}static{this.caseBoundary=new Uo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Uo("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new Uo("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:b(1340,"Transform to Kebab Case"),precondition:r.writable,canTriggerInlineEdits:!0})}_modifyText(u,n){let h=Kd.caseBoundary.get(),g=Kd.singleLetters.get(),p=Kd.underscoreBoundary.get();if(!h||!g||!p)return u;return u.replace(p,"$1-$3").replace(h,"$1-$2").replace(g,"$1-$2").toLocaleLowerCase()}}O(CC);O(yC);O(xC);O(IC);O(LC);O(kC);O(EC);O(DC);O(q_);O(RC);O(NC);O(MC);O(hl);O(ul);O(OC);O(PC);O(AC);O(FC);O(HC);O(WC);O(TC);if(Vd.caseBoundary.isSupported()&&Vd.singleLetters.isSupported())O(Vd);if(Da.singleLineWordBoundary.isSupported()&&Da.multiLineWordBoundary.isSupported())O(Da);if(zd.wordBoundary.isSupported())O(zd);if(Zu.titleBoundary.isSupported())O(Zu);if(Kd.isSupported())O(Kd);class Co{constructor(u){this._editor=u,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){if(this._findScopeDecorationIds[0])return this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]);return null}getFindScopes(){if(this._findScopeDecorationIds.length){let u=this._findScopeDecorationIds.map((n)=>this._editor.getModel().getDecorationRange(n)).filter((n)=>!!n);if(u.length)return u}return null}getStartPosition(){return this._startPosition}setStartPosition(u){this._startPosition=u,this.setCurrentFindMatch(null)}_getDecorationIndex(u){let n=this._decorations.indexOf(u);if(n>=0)return n+1;return 1}getDecorationRangeAt(u){let n=u<this._decorations.length?this._decorations[u]:null;if(n)return this._editor.getModel().getDecorationRange(n);return null}getCurrentMatchesPosition(u){let n=this._editor.getModel().getDecorationsInRange(u);for(let h of n){let g=h.options;if(g===Co._FIND_MATCH_DECORATION||g===Co._FIND_MATCH_NO_OVERVIEW_DECORATION||g===Co._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(h.id)}return 0}setCurrentFindMatch(u){let n=null,h=0;if(u)for(let g=0,p=this._decorations.length;g<p;g++){let m=this._editor.getModel().getDecorationRange(this._decorations[g]);if(u.equalsRange(m)){n=this._decorations[g],h=g+1;break}}if(this._highlightedDecorationId!==null||n!==null)this._editor.changeDecorations((g)=>{if(this._highlightedDecorationId!==null)g.changeDecorationOptions(this._highlightedDecorationId,Co._FIND_MATCH_DECORATION),this._highlightedDecorationId=null;if(n!==null)this._highlightedDecorationId=n,g.changeDecorationOptions(this._highlightedDecorationId,Co._CURRENT_FIND_MATCH_DECORATION);if(this._rangeHighlightDecorationId!==null)g.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(n!==null){let p=this._editor.getModel().getDecorationRange(n);if(p.startLineNumber!==p.endLineNumber&&p.endColumn===1){let m=p.endLineNumber-1,_=this._editor.getModel().getLineMaxColumn(m);p=new t(p.startLineNumber,p.startColumn,m,_)}this._rangeHighlightDecorationId=g.addDecoration(p,Co._RANGE_HIGHLIGHT_DECORATION)}});return h}set(u,n){this._editor.changeDecorations((h)=>{let g=Co._FIND_MATCH_DECORATION,p=[];if(u.length>1000){g=Co._FIND_MATCH_NO_OVERVIEW_DECORATION;let _=this._editor.getModel().getLineCount(),w=this._editor.getLayoutInfo().height/_,C=Math.max(2,Math.ceil(3/w)),E=u[0].range.startLineNumber,R=u[0].range.endLineNumber;for(let Z=1,X=u.length;Z<X;Z++){let Y=u[Z].range;if(R+C>=Y.startLineNumber){if(Y.endLineNumber>R)R=Y.endLineNumber}else p.push({range:new t(E,1,R,1),options:Co._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),E=Y.startLineNumber,R=Y.endLineNumber}p.push({range:new t(E,1,R,1),options:Co._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let m=Array(u.length);for(let _=0,v=u.length;_<v;_++)m[_]={range:u[_].range,options:g};if(this._decorations=h.deltaDecorations(this._decorations,m),this._overviewRulerApproximateDecorations=h.deltaDecorations(this._overviewRulerApproximateDecorations,p),this._rangeHighlightDecorationId)h.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(this._findScopeDecorationIds.length)this._findScopeDecorationIds.forEach((_)=>h.removeDecoration(_)),this._findScopeDecorationIds=[];if(n?.length)this._findScopeDecorationIds=n.map((_)=>h.addDecoration(_,Co._FIND_SCOPE_DECORATION))})}matchBeforePosition(u){if(this._decorations.length===0)return null;for(let n=this._decorations.length-1;n>=0;n--){let h=this._decorations[n],g=this._editor.getModel().getDecorationRange(h);if(!g||g.endLineNumber>u.lineNumber)continue;if(g.endLineNumber<u.lineNumber)return g;if(g.endColumn>u.column)continue;return g}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(u){if(this._decorations.length===0)return null;for(let n=0,h=this._decorations.length;n<h;n++){let g=this._decorations[n],p=this._editor.getModel().getDecorationRange(g);if(!p||p.startLineNumber<u.lineNumber)continue;if(p.startLineNumber>u.lineNumber)return p;if(p.startColumn<u.column)continue;return p}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let u=[];if(u=u.concat(this._decorations),u=u.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)u.push(...this._findScopeDecorationIds);if(this._rangeHighlightDecorationId)u.push(this._rangeHighlightDecorationId);return u}static{this._CURRENT_FIND_MATCH_DECORATION=ue.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:bn(Q1),position:Jo.Center},minimap:{color:bn(K0),position:1}})}static{this._FIND_MATCH_DECORATION=ue.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:bn(Q1),position:Jo.Center},minimap:{color:bn(K0),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=ue.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=ue.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:bn(Q1),position:Jo.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=ue.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=ue.register({description:"find-scope",className:"findScope",isWholeLine:!0})}}class $_{constructor(u,n,h){this._editorSelection=u,this._ranges=n,this._replaceStrings=h,this._trackedEditorSelectionId=null}getEditOperations(u,n){if(this._ranges.length>0){let h=[];for(let m=0;m<this._ranges.length;m++)h.push({range:this._ranges[m],text:this._replaceStrings[m]});h.sort((m,_)=>t.compareRangesUsingStarts(m.range,_.range));let g=[],p=h[0];for(let m=1;m<h.length;m++)if(p.range.endLineNumber===h[m].range.startLineNumber&&p.range.endColumn===h[m].range.startColumn)p.range=p.range.plusRange(h[m].range),p.text=p.text+h[m].text;else g.push(p),p=h[m];g.push(p);for(let m of g)n.addEditOperation(m.range,m.text)}this._trackedEditorSelectionId=n.trackSelection(this._editorSelection)}computeCursorState(u,n){return n.getTrackedSelection(this._trackedEditorSelectionId)}}function G_(u,n){if(u&&u[0]!==""){let h=BC(u,n,"-"),g=BC(u,n,"_");if(h&&!g)return VC(u,n,"-");else if(!h&&g)return VC(u,n,"_");if(u[0].toUpperCase()===u[0])return n.toUpperCase();else if(u[0].toLowerCase()===u[0])return n.toLowerCase();else if(R2(u[0][0])&&n.length>0)return n[0].toUpperCase()+n.substr(1);else if(u[0][0].toUpperCase()!==u[0][0]&&n.length>0)return n[0].toLowerCase()+n.substr(1);else return n}else return n}function BC(u,n,h){return u[0].indexOf(h)!==-1&&n.indexOf(h)!==-1&&u[0].split(h).length===n.split(h).length}function VC(u,n,h){let g=n.split(h),p=u[0].split(h),m="";return g.forEach((_,v)=>{m+=G_([p[v]],_)+h}),m.slice(0,-1)}class Z_{constructor(u){this.staticValue=u,this.kind=0}}class zC{constructor(u){this.pieces=u,this.kind=1}}class Ra{static fromStaticValue(u){return new Ra([Ta.staticValue(u)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(u){if(!u||u.length===0)this._state=new Z_("");else if(u.length===1&&u[0].staticValue!==null)this._state=new Z_(u[0].staticValue);else this._state=new zC(u)}buildReplaceString(u,n){if(this._state.kind===0)if(n)return G_(u,this._state.staticValue);else return this._state.staticValue;let h="";for(let g=0,p=this._state.pieces.length;g<p;g++){let m=this._state.pieces[g];if(m.staticValue!==null){h+=m.staticValue;continue}let _=Ra._substitute(m.matchIndex,u);if(m.caseOps!==null&&m.caseOps.length>0){let v=[],w=m.caseOps.length,C=0;for(let E=0,R=_.length;E<R;E++){if(C>=w){v.push(_.slice(E));break}switch(m.caseOps[C]){case"U":v.push(_[E].toUpperCase());break;case"u":v.push(_[E].toUpperCase()),C++;break;case"L":v.push(_[E].toLowerCase());break;case"l":v.push(_[E].toLowerCase()),C++;break;default:v.push(_[E])}}_=v.join("")}h+=_}return h}static _substitute(u,n){if(n===null)return"";if(u===0)return n[0];let h="";while(u>0){if(u<n.length)return(n[u]||"")+h;h=String(u%10)+h,u=Math.floor(u/10)}return"$"+h}}class Ta{static staticValue(u){return new Ta(u,-1,null)}static caseOps(u,n){return new Ta(null,u,n)}constructor(u,n,h){if(this.staticValue=u,this.matchIndex=n,!h||h.length===0)this.caseOps=null;else this.caseOps=h.slice(0)}}class KC{constructor(u){this._source=u,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(u){this._emitStatic(this._source.substring(this._lastCharIndex,u)),this._lastCharIndex=u}emitStatic(u,n){this._emitStatic(u),this._lastCharIndex=n}_emitStatic(u){if(u.length===0)return;this._currentStaticPiece+=u}emitMatchIndex(u,n,h){if(this._currentStaticPiece.length!==0)this._result[this._resultLen++]=Ta.staticValue(this._currentStaticPiece),this._currentStaticPiece="";this._result[this._resultLen++]=Ta.caseOps(u,h),this._lastCharIndex=n}finalize(){if(this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0)this._result[this._resultLen++]=Ta.staticValue(this._currentStaticPiece),this._currentStaticPiece="";return new Ra(this._result)}}function UC(u){if(!u||u.length===0)return new Ra(null);let n=[],h=new KC(u);for(let g=0,p=u.length;g<p;g++){let m=u.charCodeAt(g);if(m===92){if(g++,g>=p)break;let _=u.charCodeAt(g);switch(_){case 92:h.emitUnchanged(g-1),h.emitStatic("\\",g+1);break;case 110:h.emitUnchanged(g-1),h.emitStatic(`
|
|
18
|
+
`,g+1);break;case 116:h.emitUnchanged(g-1),h.emitStatic("\t",g+1);break;case 117:case 85:case 108:case 76:h.emitUnchanged(g-1),h.emitStatic("",g+1),n.push(String.fromCharCode(_));break}continue}if(m===36){if(g++,g>=p)break;let _=u.charCodeAt(g);if(_===36){h.emitUnchanged(g-1),h.emitStatic("$",g+1);continue}if(_===48||_===38){h.emitUnchanged(g-1),h.emitMatchIndex(0,g+1,n),n.length=0;continue}if(49<=_&&_<=57){let v=_-48;if(g+1<p){let w=u.charCodeAt(g+1);if(48<=w&&w<=57){g++,v=v*10+(w-48),h.emitUnchanged(g-2),h.emitMatchIndex(v,g+1,n),n.length=0;continue}}h.emitUnchanged(g-1),h.emitMatchIndex(v,g+1,n),n.length=0;continue}}}return h.finalize()}var ar=new M("findWidgetVisible",!1);ar.toNegated();var qd=new M("findInputFocussed",!1),gl=new M("replaceInputFocussed",!1),qC=new M("findWidgetFocused",!1),pl={primary:545,mac:{primary:2593}},ml={primary:565,mac:{primary:2613}},fl={primary:560,mac:{primary:2608}},bl={primary:554,mac:{primary:2602}},vl={primary:558,mac:{primary:2606}},bt={StartFindAction:"actions.find",StartFindWithSelection:"actions.findWithSelection",StartFindWithArgs:"editor.actions.findWithArgs",NextMatchFindAction:"editor.action.nextMatchFindAction",PreviousMatchFindAction:"editor.action.previousMatchFindAction",GoToMatchFindAction:"editor.action.goToMatchFindAction",NextSelectionMatchFindAction:"editor.action.nextSelectionMatchFindAction",PreviousSelectionMatchFindAction:"editor.action.previousSelectionMatchFindAction",StartFindReplaceAction:"editor.action.startFindReplaceAction",CloseFindWidgetCommand:"closeFindWidget",ToggleCaseSensitiveCommand:"toggleFindCaseSensitive",ToggleWholeWordCommand:"toggleFindWholeWord",ToggleRegexCommand:"toggleFindRegex",ToggleSearchScopeCommand:"toggleFindInSelection",TogglePreserveCaseCommand:"togglePreserveCase",ReplaceOneAction:"editor.action.replaceOne",ReplaceAllAction:"editor.action.replaceAll",SelectAllMatchesAction:"editor.action.selectAllMatches"},sr=19999,fD=240;class Ud{constructor(u,n){this._toDispose=new d,this._editor=u,this._state=n,this._isDisposed=!1,this._startSearchingTimer=new di,this._decorations=new Co(u),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new ke(()=>{if(!this._editor.hasModel())return;return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((h)=>{if(h.reason===3||h.reason===5||h.reason===6)this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((h)=>{if(this._ignoreModelContentChanged)return;if(h.isFlush)this._decorations.reset();this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule()})),this._toDispose.add(this._state.onFindReplaceStateChange((h)=>this._onStateChanged(h))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,ze(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(u){if(this._isDisposed)return;if(!this._editor.hasModel())return;if(u.searchString||u.isReplaceRevealed||u.isRegex||u.wholeWord||u.matchCase||u.searchScope)if(this._editor.getModel().isTooLargeForSyncing())this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{if(u.searchScope)this.research(u.moveCursor,this._state.searchScope);else this.research(u.moveCursor)},fD);else if(u.searchScope)this.research(u.moveCursor,this._state.searchScope);else this.research(u.moveCursor)}static _getSearchRange(u,n){if(n)return n;return u.getFullModelRange()}research(u,n){let h=null;if(typeof n<"u"){if(n!==null)if(!Array.isArray(n))h=[n];else h=n}else h=this._decorations.getFindScopes();if(h!==null)h=h.map((_)=>{if(_.startLineNumber!==_.endLineNumber){let v=_.endLineNumber;if(_.endColumn===1)v=v-1;return new t(_.startLineNumber,1,v,this._editor.getModel().getLineMaxColumn(v))}return _});let g=this._findMatches(h,!1,sr);this._decorations.set(g,h);let p=this._editor.getSelection(),m=this._decorations.getCurrentMatchesPosition(p);if(m===0&&g.length>0){let _=Af(g.map((v)=>v.range),(v)=>t.compareRangesUsingStarts(v,p)>=0);m=_>0?_-1+1:m}if(this._state.changeMatchInfo(m,this._decorations.getCount(),void 0),u&&this._editor.getOption(50).cursorMoveOnType)this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let u=this._decorations.getFindScope();if(u)this._editor.revealRangeInCenterIfOutsideViewport(u,0);return!0}return!1}_setCurrentFindMatch(u){let n=this._decorations.setCurrentFindMatch(u);this._state.changeMatchInfo(n,this._decorations.getCount(),u),this._editor.setSelection(u),this._editor.revealRangeInCenterIfOutsideViewport(u,0)}_prevSearchPosition(u){let n=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:h,column:g}=u,p=this._editor.getModel();if(n||g===1){if(h===1)h=p.getLineCount();else h--;g=p.getLineMaxColumn(h)}else g--;return new s(h,g)}_moveToPrevMatch(u,n=!1){if(!this._state.canNavigateBack()){let C=this._decorations.matchAfterPosition(u);if(C)this._setCurrentFindMatch(C);return}if(this._decorations.getCount()<sr){let C=this._decorations.matchBeforePosition(u);if(C&&C.isEmpty()&&C.getStartPosition().equals(u))u=this._prevSearchPosition(u),C=this._decorations.matchBeforePosition(u);if(C)this._setCurrentFindMatch(C);return}if(this._cannotFind())return;let h=this._decorations.getFindScope(),g=Ud._getSearchRange(this._editor.getModel(),h);if(g.getEndPosition().isBefore(u))u=g.getEndPosition();if(u.isBefore(g.getStartPosition()))u=g.getEndPosition();let{lineNumber:p,column:m}=u,_=this._editor.getModel(),v=new s(p,m),w=_.findPreviousMatch(this._state.searchString,v,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(w&&w.range.isEmpty()&&w.range.getStartPosition().equals(v))v=this._prevSearchPosition(v),w=_.findPreviousMatch(this._state.searchString,v,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(!w)return;if(!n&&!g.containsRange(w.range))return this._moveToPrevMatch(w.range.getStartPosition(),!0);this._setCurrentFindMatch(w.range)}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(u){let n=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:h,column:g}=u,p=this._editor.getModel();if(n||g===p.getLineMaxColumn(h)){if(h===p.getLineCount())h=1;else h++;g=1}else g++;return new s(h,g)}_moveToNextMatch(u){if(!this._state.canNavigateForward()){let h=this._decorations.matchBeforePosition(u);if(h)this._setCurrentFindMatch(h);return}if(this._decorations.getCount()<sr){let h=this._decorations.matchAfterPosition(u);if(h&&h.isEmpty()&&h.getStartPosition().equals(u))u=this._nextSearchPosition(u),h=this._decorations.matchAfterPosition(u);if(h)this._setCurrentFindMatch(h);return}let n=this._getNextMatch(u,!1,!0);if(n)this._setCurrentFindMatch(n.range)}_getNextMatch(u,n,h,g=!1){if(this._cannotFind())return null;let p=this._decorations.getFindScope(),m=Ud._getSearchRange(this._editor.getModel(),p);if(m.getEndPosition().isBefore(u))u=m.getStartPosition();if(u.isBefore(m.getStartPosition()))u=m.getStartPosition();let{lineNumber:_,column:v}=u,w=this._editor.getModel(),C=new s(_,v),E=w.findNextMatch(this._state.searchString,C,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n);if(h&&E&&E.range.isEmpty()&&E.range.getStartPosition().equals(C))C=this._nextSearchPosition(C),E=w.findNextMatch(this._state.searchString,C,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n);if(!E)return null;if(!g&&!m.containsRange(E.range))return this._getNextMatch(E.range.getEndPosition(),n,h,!0);return E}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(u){let n=this._decorations.getDecorationRangeAt(u);if(n)this._setCurrentFindMatch(n)}moveToMatch(u){this._moveToMatch(u)}_getReplacePattern(){if(this._state.isRegex)return UC(this._state.replaceString);return Ra.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let u=this._getReplacePattern(),n=this._editor.getSelection(),h=this._getNextMatch(n.getStartPosition(),!0,!1);if(h)if(n.equalsRange(h.range)){let g=u.buildReplaceString(h.matches,this._state.preserveCase),p=new Ti(n,g);this._executeEditorCommand("replace",p),this._decorations.setStartPosition(new s(n.startLineNumber,n.startColumn+g.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(h.range)}_findMatches(u,n,h){let g=(u||[null]).map((p)=>Ud._getSearchRange(this._editor.getModel(),p));return this._editor.getModel().findMatches(this._state.searchString,g,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n,h)}replaceAll(){if(!this._hasMatches())return;let u=this._decorations.getFindScopes();if(u===null&&this._state.matchesCount>=sr)this._largeReplaceAll();else this._regularReplaceAll(u);this.research(!1)}_largeReplaceAll(){let n=new mu(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!n)return;let h=n.regex;if(!h.multiline){let E="mu";if(h.ignoreCase)E+="i";if(h.global)E+="g";h=new RegExp(h.source,E)}let g=this._editor.getModel(),p=g.getValue(1),m=g.getFullModelRange(),_=this._getReplacePattern(),v,w=this._state.preserveCase;if(_.hasReplacementPatterns||w)v=p.replace(h,function(){return _.buildReplaceString(arguments,w)});else v=p.replace(h,_.buildReplaceString(null,w));let C=new Fg(m,v,this._editor.getSelection());this._executeEditorCommand("replaceAll",C)}_regularReplaceAll(u){let n=this._getReplacePattern(),h=this._findMatches(u,n.hasReplacementPatterns||this._state.preserveCase,1073741824),g=[];for(let m=0,_=h.length;m<_;m++)g[m]=n.buildReplaceString(h[m].matches,this._state.preserveCase);let p=new $_(this._editor.getSelection(),h.map((m)=>m.range),g);this._executeEditorCommand("replaceAll",p)}selectAllMatches(){if(!this._hasMatches())return;let u=this._decorations.getFindScopes(),h=this._findMatches(u,!1,1073741824).map((p)=>new F(p.range.startLineNumber,p.range.startColumn,p.range.endLineNumber,p.range.endColumn)),g=this._editor.getSelection();for(let p=0,m=h.length;p<m;p++)if(h[p].equalsRange(g)){h=[g].concat(h.slice(0,p)).concat(h.slice(p+1));break}this._editor.setSelections(h)}_executeEditorCommand(u,n){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(u,n),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var _D=e(5,"input"),bD=e(6,"Preserve Case");class jC extends Lc{constructor(u){super({icon:S.preserveCase,title:bD+u.appendTitle,isChecked:u.isChecked,hoverLifecycleOptions:u.hoverLifecycleOptions,inputActiveOptionBorder:u.inputActiveOptionBorder,inputActiveOptionForeground:u.inputActiveOptionForeground,inputActiveOptionBackground:u.inputActiveOptionBackground})}}class X_ extends Ei{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(u,n,h,g){super();this._showOptionButtons=h,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new o),this._onKeyDown=this._register(new o),this._onMouseDown=this._register(new o),this._onInput=this._register(new o),this._onKeyUp=this._register(new o),this._onPreserveCaseKeyDown=this._register(new o),this.contextViewProvider=n,this.placeholder=g.placeholder||"",this.validation=g.validation,this.label=g.label||_D;let p=g.appendPreserveCaseLabel||"",m=g.history||new Set([]),_=!!g.flexibleHeight,v=!!g.flexibleWidth,w=g.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new b_(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:m,showHistoryHint:g.showHistoryHint,flexibleHeight:_,flexibleWidth:v,flexibleMaxHeight:w,inputBoxStyles:g.inputBoxStyles})),this.preserveCase=this._register(new jC({appendTitle:p,isChecked:!1,hoverLifecycleOptions:g.hoverLifecycleOptions,...g.toggleStyles})),this._register(this.preserveCase.onChange((R)=>{if(this._onDidOptionChange.fire(R),!R&&this.fixFocusOnOptionClickEnabled)this.inputBox.focus();this.validate()})),this._register(this.preserveCase.onKeyDown((R)=>{this._onPreserveCaseKeyDown.fire(R)})),this._showOptionButtons)this.cachedOptionsWidth=this.preserveCase.width();else this.cachedOptionsWidth=0;let C=[this.preserveCase.domNode];this.onkeydown(this.domNode,(R)=>{xk(R,this.domNode,()=>C,()=>this.inputBox.focus())});let E=document.createElement("div");E.className="controls",E.style.display=this._showOptionButtons?"block":"none",E.appendChild(this.preserveCase.domNode),this.domNode.appendChild(E),u?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(R)=>this._onKeyDown.fire(R)),this.onkeyup(this.inputBox.inputElement,(R)=>this._onKeyUp.fire(R)),this.oninput(this.inputBox.inputElement,(R)=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,(R)=>this._onMouseDown.fire(R))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(u){if(u)this.enable();else this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(u){this.preserveCase.checked=u}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(u){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=u+"px"}}var $C=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},GC=function(u,n){return function(h,g){n(h,g,u)}},Qu=new M("suggestWidgetVisible",!1,e(1793,"Whether suggestion are visible")),Y_="historyNavigationWidgetFocus",ZC="historyNavigationForwardsEnabled",XC="historyNavigationBackwardsEnabled",wl=void 0,Xu=[];function YC(u,n){if(Xu.includes(n))throw Error("Cannot register the same widget multiple times");Xu.push(n);let h=new d,g=new M(Y_,!1).bindTo(u),p=new M(ZC,!0).bindTo(u),m=new M(XC,!0).bindTo(u),_=()=>{g.set(!0),wl=n},v=()=>{if(g.set(!1),wl===n)wl=void 0};if(Hs(n.element))_();return h.add(n.onDidFocus(()=>_())),h.add(n.onDidBlur(()=>v())),h.add(N(()=>{Xu.splice(Xu.indexOf(n),1),v()})),{historyNavigationForwardsEnablement:p,historyNavigationBackwardsEnablement:m,dispose(){h.dispose()}}}var Yu=class u extends v_{constructor(n,h,g,p){super(n,h,g);let m=this._register(p.createScoped(this.inputBox.element));this._register(YC(m,this.inputBox))}};Yu=$C([GC(3,G)],Yu);var Ju=class u extends X_{constructor(n,h,g,p,m=!1){super(n,h,m,g);let _=this._register(p.createScoped(this.inputBox.element));this._register(YC(_,this.inputBox))}};Ju=$C([GC(3,G)],Ju);Nn.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:L.and(L.has(Y_),L.equals(XC,!0),Qu.isEqualTo(!1)),primary:16,secondary:[528],handler:(u)=>{wl?.showPreviousValue()}});Nn.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:L.and(L.has(Y_),L.equals(ZC,!0),Qu.isEqualTo(!1)),primary:18,secondary:[530],handler:(u)=>{wl?.showNextValue()}});function J_(u){return u.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&u.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var JC=Pt("find-collapsed",S.chevronRight,e(1011,"Icon to indicate that the editor find widget is collapsed.")),QC=Pt("find-expanded",S.chevronDown,e(1012,"Icon to indicate that the editor find widget is expanded.")),vD=Pt("find-selection",S.selection,e(1013,"Icon for 'Find in Selection' in the editor find widget.")),wD=Pt("find-replace",S.replace,e(1014,"Icon for 'Replace' in the editor find widget.")),SD=Pt("find-replace-all",S.replaceAll,e(1015,"Icon for 'Replace All' in the editor find widget.")),CD=Pt("find-previous-match",S.arrowUp,e(1016,"Icon for 'Find Previous' in the editor find widget.")),yD=Pt("find-next-match",S.arrowDown,e(1017,"Icon for 'Find Next' in the editor find widget.")),xD=e(1018,"Find / Replace"),Q_=e(1019,"Find"),ID=e(1020,"Find"),LD=e(1021,"Previous Match"),kD=e(1022,"Next Match"),ED=e(1023,"Find in Selection"),DD=e(1024,"Close"),eb=e(1025,"Replace"),TD=e(1026,"Replace"),RD=e(1027,"Replace"),ND=e(1028,"Replace All"),MD=e(1029,"Toggle Replace"),OD=e(1030,"Only the first {0} results are highlighted, but all find operations work on the entire text.",sr),PD=e(1031,"{0} of {1}"),tg=e(1032,"No results"),lr=419,AD=275,FD=AD-54,yl=69,HD=33,ry=ve?256:2048;class eg{constructor(u){this.afterLineNumber=u,this.heightInPx=HD,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function dy(u,n,h){let g=!!n.match(/\n/);if(h&&g&&h.selectionStart>0){u.stopPropagation();return}}function by(u,n,h){let g=!!n.match(/\n/);if(h&&g&&h.selectionEnd<h.value.length){u.stopPropagation();return}}class ud extends Ei{static{this.ID="editor.contrib.findWidget"}constructor(u,n,h,g,p,m,_,v,w,C,E){super();if(this._hoverService=_,this._findWidgetSearchHistory=v,this._replaceWidgetHistory=w,this._configurationService=C,this._accessibilityService=E,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=u,this._controller=n,this._state=h,this._contextViewProvider=g,this._keybindingService=p,this._contextKeyService=m,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new qi(500),this._register(N(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange((R)=>this._onStateChanged(R))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((R)=>{if(R.hasChanged(104)){if(this._codeEditor.getOption(104))this._state.change({isReplaceRevealed:!1},!1);this._updateButtons()}if(R.hasChanged(166))this._tryUpdateWidgetWidth();if(R.hasChanged(2))this.updateAccessibilitySupport();if(R.hasChanged(50)){let Z=this._codeEditor.getOption(50).loop;this._state.change({loop:Z},!1);let X=this._codeEditor.getOption(50).addExtraSpaceOnTop;if(X&&!this._viewZone)this._viewZone=new eg(0),this._showViewZone();if(!X&&this._viewZone)this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{if(this._isVisible)this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){let R=await this._controller.getGlobalBufferTerm();if(R&&R!==this._state.searchString)this._state.change({searchString:R},!1),this._findInput.select()}})),this._findInputFocused=qd.bindTo(m),this._findFocusTracker=this._register(yi(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._lastFocusedInputWasReplace=!1,this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=gl.bindTo(m),this._replaceFocusTracker=this._register(yi(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._lastFocusedInputWasReplace=!0,this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._findWidgetFocused=qC.bindTo(m),this._widgetFocusTracker=this._register(yi(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(c(this._domNode,"focusin",(R)=>{if($e(R.target))this._lastFocusedElement=R.target})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop)this._viewZone=new eg(0);this._register(this._codeEditor.onDidChangeModel(()=>{if(!this._isVisible)return;this._viewZoneId=void 0})),this._register(this._codeEditor.onDidScrollChange((R)=>{if(R.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return ud.ID}getDomNode(){return this._domNode}getPosition(){if(this._isVisible)return{preference:0};return null}_onStateChanged(u){if(u.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(u.replaceString)this._replaceInput.inputBox.value=this._state.replaceString;if(u.isRevealed)if(this._state.isRevealed)this._reveal();else this._hide(!0);if(u.isReplaceRevealed){if(this._state.isReplaceRevealed){if(!this._codeEditor.getOption(104)&&!this._isReplaceVisible)this._isReplaceVisible=!0,this._replaceInput.width=Ao(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()}else if(this._isReplaceVisible)this._isReplaceVisible=!1,this._updateButtons()}if((u.isRevealed||u.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)){if(this._tryUpdateHeight())this._showViewZone()}if(u.isRegex)this._findInput.setRegex(this._state.isRegex);if(u.wholeWord)this._findInput.setWholeWords(this._state.wholeWord);if(u.matchCase)this._findInput.setCaseSensitive(this._state.matchCase);if(u.preserveCase)this._replaceInput.setPreserveCase(this._state.preserveCase);if(u.searchScope){if(this._state.searchScope)this._toggleSelectionFind.checked=!0;else this._toggleSelectionFind.checked=!1;this._updateToggleSelectionFindButton()}if(u.searchString||u.matchesCount||u.matchesPosition){let n=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",n),this._updateMatchesCount(),this._updateButtons()}if(u.searchString||u.currentMatch)this._layoutViewZone();if(u.updateHistory)this._delayedUpdateHistory();if(u.loop)this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,ee)}_updateHistory(){if(this._state.searchString)this._findInput.inputBox.addToHistory();if(this._state.replaceString)this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){if(this._matchesCount.style.minWidth=yl+"px",this._state.matchesCount>=sr)this._matchesCount.title=OD;else this._matchesCount.title="";this._matchesCount.firstChild?.remove();let u;if(this._state.matchesCount>0){let n=String(this._state.matchesCount);if(this._state.matchesCount>=sr)n+="+";let h=String(this._state.matchesPosition);if(h==="0")h="?";u=Va(PD,h,n)}else u=tg;this._matchesCount.appendChild(document.createTextNode(u)),Vn(this._getAriaLabel(u,this._state.currentMatch,this._state.searchString)),yl=Math.max(yl,this._matchesCount.clientWidth)}_getAriaLabel(u,n,h){let g;if(u===tg)g=h===""?e(1033,"{0} found",u):e(1034,"{0} found for '{1}'",u,h);else if(n){let p=e(1035,"{0} found for '{1}', at {2}",u,h,n.startLineNumber+":"+n.startColumn),m=this._codeEditor.getModel();if(m&&n.startLineNumber<=m.getLineCount()&&n.startLineNumber>=1)g=`${m.getLineContent(n.startLineNumber)}, ${p}`;else g=p}else g=e(1036,"{0} found for '{1}'",u,h);return g}_updateToggleSelectionFindButton(){let u=this._codeEditor.getSelection(),n=u?u.startLineNumber!==u.endLineNumber||u.startColumn!==u.endColumn:!1,h=this._toggleSelectionFind.checked;if(this._isVisible&&(h||n))this._toggleSelectionFind.enable();else this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);let u=this._state.searchString.length>0,n=this._state.matchesCount?!0:!1;this._prevBtn.setEnabled(this._isVisible&&u&&n&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&u&&n&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&u),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&u),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let h=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&h)}_reveal(){if(this._revealTimeouts.forEach((u)=>{clearTimeout(u)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let u=this._codeEditor.getSelection();switch(this._codeEditor.getOption(50).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{let h=!!u&&u.startLineNumber!==u.endLineNumber;this._toggleSelectionFind.checked=h;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false"),this._updateFindInputAriaLabel()},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let n=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&u){let h=this._codeEditor.getDomNode();if(h){let g=kt(h),p=this._codeEditor.getScrolledVisiblePosition(u.getStartPosition()),m=g.left+(p?p.left:0),_=p?p.top:0;if(this._viewZone&&_<this._viewZone.heightInPx){if(u.endLineNumber>u.startLineNumber)n=!1;let v=V1(this._domNode).left;if(m>v)n=!1;let w=this._codeEditor.getScrolledVisiblePosition(u.getEndPosition());if(g.left+(w?w.left:0)>v)n=!1}}}this._showViewZone(n)}}_hide(u){if(this._revealTimeouts.forEach((n)=>{clearTimeout(n)}),this._revealTimeouts=[],this._isVisible){if(this._isVisible=!1,this._accessibilityHelpHintAnnounced=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),u)this._codeEditor.focus();this._codeEditor.layoutOverlayWidget(this),this._removeViewZone()}}_layoutViewZone(u){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let h=this._viewZone;if(this._viewZoneId!==void 0||!h)return;this._codeEditor.changeViewZones((g)=>{h.heightInPx=this._getHeight(),this._viewZoneId=g.addZone(h),this._codeEditor.setScrollTop(u||this._codeEditor.getScrollTop()+h.heightInPx)})}_showViewZone(u=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;if(this._viewZone===void 0)this._viewZone=new eg(0);let h=this._viewZone;this._codeEditor.changeViewZones((g)=>{if(this._viewZoneId!==void 0){let p=this._getHeight();if(p===h.heightInPx)return;let m=p-h.heightInPx;if(h.heightInPx=p,g.layoutZone(this._viewZoneId),u)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+m);return}else{let p=this._getHeight();if(p-=this._codeEditor.getOption(96).top,p<=0)return;if(h.heightInPx=p,this._viewZoneId=g.addZone(h),u)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+p)}})}_removeViewZone(){this._codeEditor.changeViewZones((u)=>{if(this._viewZoneId!==void 0){if(u.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0}})}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!this._domNode.isConnected)return;let u=this._codeEditor.getLayoutInfo();if(u.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else if(this._domNode.classList.contains("hiddenEditor"))this._domNode.classList.remove("hiddenEditor");let h=u.width,g=u.minimap.minimapWidth,p=!1,m=!1,_=!1;if(this._resized){if(Ao(this._domNode)>lr){this._domNode.style.maxWidth=`${h-28-g-15}px`,this._replaceInput.width=Ao(this._findInput.domNode);return}}if(lr+28+g>=h)m=!0;if(lr+28+g-yl>=h)_=!0;if(lr+28+g-yl>=h+50)p=!0;if(this._domNode.classList.toggle("collapsed-find-widget",p),this._domNode.classList.toggle("narrow-find-widget",_),this._domNode.classList.toggle("reduced-find-widget",m),!_&&!p)this._domNode.style.maxWidth=`${h-28-g-15}px`;if(this._findInput.layout({collapsedFindWidget:p,narrowFindWidget:_,reducedFindWidget:m}),this._resized){let v=this._findInput.inputBox.element.clientWidth;if(v>0)this._replaceInput.width=v}else if(this._isReplaceVisible)this._replaceInput.width=Ao(this._findInput.domNode)}_getHeight(){let u=0;if(u+=4,u+=this._findInput.inputBox.height+2,this._isReplaceVisible)u+=4,u+=this._replaceInput.inputBox.height+2;return u+=4,u}_tryUpdateHeight(){let u=this._getHeight();if(this._cachedHeight!==null&&this._cachedHeight===u)return!1;return this._cachedHeight=u,this._domNode.style.height=`${u}px`,!0}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(!this._codeEditor.hasModel())return;if(this._toggleSelectionFind.checked){let u=this._codeEditor.getSelections();if(u.map((n)=>{if(n.endColumn===1&&n.endLineNumber>n.startLineNumber)n=n.setEndPosition(n.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(n.endLineNumber-1));let h=this._state.currentMatch;if(n.startLineNumber!==n.endLineNumber){if(!t.equalsRange(n,h))return n}return null}).filter((n)=>!!n),u.length)this._state.change({searchScope:u},!0)}}_onFindInputMouseDown(u){if(u.middleButton)u.stopPropagation()}_onFindInputKeyDown(u){if(u.equals(ry|3))if(this._keybindingService.dispatchEvent(u,u.target)){u.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
|
|
19
|
+
`),u.preventDefault();return}if(u.equals(2)){if(this._isReplaceVisible)this._replaceInput.focus();else this._findInput.focusOnCaseSensitive();u.preventDefault();return}if(u.equals(2066)){this._codeEditor.focus(),u.preventDefault();return}if(u.equals(16))return dy(u,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(u.equals(18))return by(u,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(u){if(u.equals(ry|3))if(this._keybindingService.dispatchEvent(u,u.target)){u.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
|
|
20
|
+
`),u.preventDefault();return}if(u.equals(2)){this._findInput.focusOnCaseSensitive(),u.preventDefault();return}if(u.equals(1026)){this._findInput.focus(),u.preventDefault();return}if(u.equals(2066)){this._codeEditor.focus(),u.preventDefault();return}if(u.equals(16))return dy(u,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(u.equals(18))return by(u,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(u){return 0}_keybindingLabelFor(u){return this._keybindingService.appendKeybinding("",u)}_buildDomNode(){let h=this._codeEditor.getOption(50).history,g=this._codeEditor.getOption(50).replaceHistory;if(this._findInput=this._register(new Yu(null,this._contextViewProvider,{width:FD,label:Q_,placeholder:ID,appendCaseSensitiveLabel:this._keybindingLabelFor(bt.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(bt.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(bt.ToggleRegexCommand),validation:(E)=>{if(E.length===0||!this._findInput.getRegex())return null;try{return new RegExp(E,"gu"),null}catch(R){return{content:R.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>J_(this._keybindingService),inputBoxStyles:Ny,toggleStyles:Dy,history:h==="workspace"?this._findWidgetSearchHistory:new Set([])},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((E)=>{if(E.equals(3)&&!this._codeEditor.getOption(50).findOnType)this._state.change({searchString:this._findInput.getValue()},!0);this._onFindInputKeyDown(E)})),this._register(this._findInput.inputBox.onDidChange(()=>{if(this._ignoreChangeEvent||!this._codeEditor.getOption(50).findOnType)return;this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown((E)=>{if(E.equals(1026)){if(this._isReplaceVisible)this._replaceInput.focus(),E.preventDefault()}})),this._register(this._findInput.onRegexKeyDown((E)=>{if(E.equals(2)){if(this._isReplaceVisible)this._replaceInput.focusOnPreserve(),E.preventDefault()}})),this._register(this._findInput.inputBox.onDidHeightChange((E)=>{if(this._tryUpdateHeight())this._showViewZone()})),ai)this._register(this._findInput.onMouseDown((E)=>this._onFindInputMouseDown(E)));this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();let p={groupId:"find-widget"};this._prevBtn=this._register(new Hr({label:LD+this._keybindingLabelFor(bt.PreviousMatchFindAction),icon:CD,hoverLifecycleOptions:p,onTrigger:()=>{dc(this._codeEditor.getAction(bt.PreviousMatchFindAction)).run().then(void 0,ee)}},this._hoverService)),this._nextBtn=this._register(new Hr({label:kD+this._keybindingLabelFor(bt.NextMatchFindAction),icon:yD,hoverLifecycleOptions:p,onTrigger:()=>{dc(this._codeEditor.getAction(bt.NextMatchFindAction)).run().then(void 0,ee)}},this._hoverService));let m=document.createElement("div");m.className="find-part",m.appendChild(this._findInput.domNode);let _=document.createElement("div");_.className="find-actions",m.appendChild(_),_.appendChild(this._matchesCount),_.appendChild(this._prevBtn.domNode),_.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Lc({icon:vD,title:ED+this._keybindingLabelFor(bt.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:p,inputActiveOptionBackground:P(tp),inputActiveOptionBorder:P(Ag),inputActiveOptionForeground:P(Og)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let E=this._codeEditor.getSelections();if(E=E.map((R)=>{if(R.endColumn===1&&R.endLineNumber>R.startLineNumber)R=R.setEndPosition(R.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(R.endLineNumber-1));if(!R.isEmpty())return R;return null}).filter((R)=>!!R),E.length)this._state.change({searchScope:E},!0)}}else this._state.change({searchScope:null},!0)})),_.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Hr({label:DD+this._keybindingLabelFor(bt.CloseFindWidgetCommand),icon:Ak,hoverLifecycleOptions:p,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:(E)=>{if(E.equals(2)){if(this._isReplaceVisible){if(this._replaceBtn.isEnabled())this._replaceBtn.focus();else this._codeEditor.focus();E.preventDefault()}}}},this._hoverService)),this._replaceInput=this._register(new Ju(null,void 0,{label:eb,placeholder:TD,appendPreserveCaseLabel:this._keybindingLabelFor(bt.TogglePreserveCaseCommand),history:g==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>J_(this._keybindingService),inputBoxStyles:Ny,toggleStyles:Dy,hoverLifecycleOptions:p},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((E)=>this._onReplaceInputKeyDown(E))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange((E)=>{if(this._isReplaceVisible&&this._tryUpdateHeight())this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown((E)=>{if(E.equals(2)){if(this._prevBtn.isEnabled())this._prevBtn.focus();else if(this._nextBtn.isEnabled())this._nextBtn.focus();else if(this._toggleSelectionFind.enabled)this._toggleSelectionFind.focus();else if(this._closeBtn.isEnabled())this._closeBtn.focus();E.preventDefault()}})),this._replaceBtn=this._register(new Hr({label:RD+this._keybindingLabelFor(bt.ReplaceOneAction),icon:wD,hoverLifecycleOptions:p,onTrigger:()=>{this._controller.replace()},onKeyDown:(E)=>{if(E.equals(1026))this._closeBtn.focus(),E.preventDefault()}},this._hoverService)),this._replaceAllBtn=this._register(new Hr({label:ND+this._keybindingLabelFor(bt.ReplaceAllAction),icon:SD,hoverLifecycleOptions:p,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let v=document.createElement("div");v.className="replace-part",v.appendChild(this._replaceInput.domNode);let w=document.createElement("div");w.className="replace-actions",v.appendChild(w),w.appendChild(this._replaceBtn.domNode),w.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Hr({label:MD,className:"codicon toggle left",onTrigger:()=>{if(this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible)this._replaceInput.width=Ao(this._findInput.domNode),this._replaceInput.inputBox.layout();this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=xD,this._domNode.role="dialog",this._domNode.style.width=`${lr}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(m),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(v),this._resizeSash=this._register(new mo(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let C=lr;this._register(this._resizeSash.onDidStart(()=>{C=Ao(this._domNode)})),this._register(this._resizeSash.onDidChange((E)=>{this._resized=!0;let R=C+E.startX-E.currentX;if(R<lr)return;let Z=parseFloat(B0(this._domNode).maxWidth)||0;if(R>Z)return;if(this._domNode.style.width=`${R}px`,this._isReplaceVisible)this._replaceInput.width=Ao(this._findInput.domNode);this._findInput.inputBox.layout(),this._tryUpdateHeight()})),this._register(this._resizeSash.onDidReset(()=>{let E=Ao(this._domNode);if(E<lr)return;let R=lr;if(!this._resized||E===lr){let Z=this._codeEditor.getLayoutInfo();R=Z.width-28-Z.minimap.minimapWidth-15,this._resized=!0}if(this._domNode.style.width=`${R}px`,this._isReplaceVisible)this._replaceInput.width=Ao(this._findInput.domNode);this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let u=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(u!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let u=Q_,n=eb;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){let h=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(h){let g=e(1037,"Press {0} for accessibility help",h);u=e(1038,"{0}, {1}",u,g),n=e(1039,"{0}, {1}",n,g)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=bi(()=>{if(this._isVisible)this._findInput.inputBox.setAriaLabel(Q_),this._replaceInput.inputBox.setAriaLabel(eb)},1000)}this._findInput.inputBox.setAriaLabel(u),this._replaceInput.inputBox.setAriaLabel(n)}getViewState(){let u=!1;if(this._viewZone&&this._viewZoneId)u=this._viewZone.heightInPx>this._codeEditor.getScrollTop();return{widgetViewZoneVisible:u,scrollTop:this._codeEditor.getScrollTop()}}setViewState(u){if(!u)return;if(u.widgetViewZoneVisible)this._layoutViewZone(u.scrollTop)}}class Hr extends Ei{constructor(u,n){super();this._opts=u;let h="button";if(this._opts.className)h=h+" "+this._opts.className;if(this._opts.icon)h=h+" "+J.asClassName(this._opts.icon);this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=h,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(n.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},u.hoverLifecycleOptions)),this.onclick(this._domNode,(g)=>{this._opts.onTrigger(),g.preventDefault()}),this.onkeydown(this._domNode,(g)=>{if(g.equals(10)||g.equals(3)){this._opts.onTrigger(),g.preventDefault();return}this._opts.onKeyDown?.(g)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(u){this._domNode.classList.toggle("disabled",!u),this._domNode.setAttribute("aria-disabled",String(!u)),this._domNode.tabIndex=u?0:-1}setExpanded(u){if(this._domNode.setAttribute("aria-expanded",String(!!u)),u)this._domNode.classList.remove(...J.asClassNameArray(JC)),this._domNode.classList.add(...J.asClassNameArray(QC));else this._domNode.classList.remove(...J.asClassNameArray(QC)),this._domNode.classList.add(...J.asClassNameArray(JC))}}Li((u,n)=>{let h=u.getColor(wc);if(h)n.addRule(`.monaco-editor .findMatch { border: 1px ${fr(u.type)?"dotted":"solid"} ${h}; box-sizing: border-box; }`);let g=u.getColor(Q2);if(g)n.addRule(`.monaco-editor .findScope { border: 1px ${fr(u.type)?"dashed":"solid"} ${g}; }`);let p=u.getColor(Be);if(p)n.addRule(`.monaco-editor .find-widget { border: 1px solid ${p}; }`);let m=u.getColor(Z2);if(m)n.addRule(`.monaco-editor .findMatchInline { color: ${m}; }`);let _=u.getColor(X2);if(_)n.addRule(`.monaco-editor .currentFindMatchInline { color: ${_}; }`)});class ig extends Ei{static{this.ID="editor.contrib.findOptionsWidget"}constructor(u,n,h){super();this._hideSoon=this._register(new ke(()=>this._hide(),2000)),this._isVisible=!1,this._editor=u,this._state=n,this._keybindingService=h,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");let g={inputActiveOptionBorder:P(Ag),inputActiveOptionForeground:P(Og),inputActiveOptionBackground:P(tp)},p={groupId:"find-options-widget"};this.caseSensitive=this._register(new f_({appendTitle:this._keybindingLabelFor(bt.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:p,...g})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new m_({appendTitle:this._keybindingLabelFor(bt.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:p,...g})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new g_({appendTitle:this._keybindingLabelFor(bt.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:p,...g})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((m)=>{let _=!1;if(m.isRegex)this.regex.checked=this._state.isRegex,_=!0;if(m.wholeWord)this.wholeWords.checked=this._state.wholeWord,_=!0;if(m.matchCase)this.caseSensitive.checked=this._state.matchCase,_=!0;if(!this._state.isRevealed&&_)this._revealTemporarily()})),this._register(c(this._domNode,T.MOUSE_LEAVE,(m)=>this._onMouseLeave())),this._register(c(this._domNode,"mouseover",(m)=>this._onMouseOver()))}_keybindingLabelFor(u){return this._keybindingService.appendKeybinding("",u)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return ig.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){if(this._isVisible)return;this._isVisible=!0,this._domNode.style.display="block"}_hide(){if(!this._isVisible)return;this._isVisible=!1,this._domNode.style.display="none"}}function og(u,n){if(u===1)return!0;if(u===2)return!1;return n}class tb extends i{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return og(this._isRegexOverride,this._isRegex)}get wholeWord(){return og(this._wholeWordOverride,this._wholeWord)}get matchCase(){return og(this._matchCaseOverride,this._matchCase)}get preserveCase(){return og(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super();this._onFindReplaceStateChange=this._register(new o),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(u,n,h){let g={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},p=!1;if(n===0)u=0;if(u>n)u=n;if(this._matchesPosition!==u)this._matchesPosition=u,g.matchesPosition=!0,p=!0;if(this._matchesCount!==n)this._matchesCount=n,g.matchesCount=!0,p=!0;if(typeof h<"u"){if(!t.equalsRange(this._currentMatch,h))this._currentMatch=h,g.currentMatch=!0,p=!0}if(p)this._onFindReplaceStateChange.fire(g)}change(u,n,h=!0){let g={moveCursor:n,updateHistory:h,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},p=!1,m=this.isRegex,_=this.wholeWord,v=this.matchCase,w=this.preserveCase;if(typeof u.searchString<"u"){if(this._searchString!==u.searchString)this._searchString=u.searchString,g.searchString=!0,p=!0}if(typeof u.replaceString<"u"){if(this._replaceString!==u.replaceString)this._replaceString=u.replaceString,g.replaceString=!0,p=!0}if(typeof u.isRevealed<"u"){if(this._isRevealed!==u.isRevealed)this._isRevealed=u.isRevealed,g.isRevealed=!0,p=!0}if(typeof u.isReplaceRevealed<"u"){if(this._isReplaceRevealed!==u.isReplaceRevealed)this._isReplaceRevealed=u.isReplaceRevealed,g.isReplaceRevealed=!0,p=!0}if(typeof u.isRegex<"u")this._isRegex=u.isRegex;if(typeof u.wholeWord<"u")this._wholeWord=u.wholeWord;if(typeof u.matchCase<"u")this._matchCase=u.matchCase;if(typeof u.preserveCase<"u")this._preserveCase=u.preserveCase;if(typeof u.searchScope<"u"){if(!u.searchScope?.every((C)=>this._searchScope?.some((E)=>!t.equalsRange(E,C))))this._searchScope=u.searchScope,g.searchScope=!0,p=!0}if(typeof u.loop<"u"){if(this._loop!==u.loop)this._loop=u.loop,g.loop=!0,p=!0}if(typeof u.isSearching<"u"){if(this._isSearching!==u.isSearching)this._isSearching=u.isSearching,g.isSearching=!0,p=!0}if(typeof u.filters<"u"){if(this._filters)this._filters.update(u.filters);else this._filters=u.filters;g.filters=!0,p=!0}if(this._isRegexOverride=typeof u.isRegexOverride<"u"?u.isRegexOverride:0,this._wholeWordOverride=typeof u.wholeWordOverride<"u"?u.wholeWordOverride:0,this._matchCaseOverride=typeof u.matchCaseOverride<"u"?u.matchCaseOverride:0,this._preserveCaseOverride=typeof u.preserveCaseOverride<"u"?u.preserveCaseOverride:0,m!==this.isRegex)p=!0,g.isRegex=!0;if(_!==this.wholeWord)p=!0,g.wholeWord=!0;if(v!==this.matchCase)p=!0,g.matchCase=!0;if(w!==this.preserveCase)p=!0,g.preserveCase=!0;if(p)this._onFindReplaceStateChange.fire(g)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=sr}}var WD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},BD=function(u,n){return function(h,g){n(h,g,u)}},Is,ng=class u{static{Is=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(n){if(!Is._instance)Is._instance=new Is(n);return Is._instance}constructor(n){this.storageService=n,this.inMemoryValues=new Set,this._onDidChangeEmitter=new o,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(n){let h=this.inMemoryValues.delete(n);return this.save(),h}add(n){return this.inMemoryValues.add(n),this.save(),this}has(n){return this.inMemoryValues.has(n)}forEach(n,h){return this.load(),this.inMemoryValues.forEach(n)}replace(n){this.inMemoryValues=new Set(n),this.save()}load(){let n,h=this.storageService.get(Is.FIND_HISTORY_KEY,1);if(h)try{n=JSON.parse(h)}catch(g){}this.inMemoryValues=new Set(n||[])}save(){let n=[];return this.inMemoryValues.forEach((h)=>n.push(h)),new Promise((h)=>{this.storageService.store(Is.FIND_HISTORY_KEY,JSON.stringify(n),1,0),this._onDidChangeEmitter.fire(n),h()})}};ng=Is=WD([BD(0,Pn)],ng);var VD=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},zD=function(u,n){return function(h,g){n(h,g,u)}},Ls,rg=class u{static{Ls=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(n){if(!Ls._instance)Ls._instance=new Ls(n);return Ls._instance}constructor(n){this.storageService=n,this.inMemoryValues=new Set,this._onDidChangeEmitter=new o,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(n){let h=this.inMemoryValues.delete(n);return this.save(),h}add(n){return this.inMemoryValues.add(n),this.save(),this}has(n){return this.inMemoryValues.has(n)}forEach(n,h){return this.load(),this.inMemoryValues.forEach(n)}replace(n){this.inMemoryValues=new Set(n),this.save()}load(){let n,h=this.storageService.get(Ls.FIND_HISTORY_KEY,1);if(h)try{n=JSON.parse(h)}catch(g){}this.inMemoryValues=new Set(n||[])}save(){let n=[];return this.inMemoryValues.forEach((h)=>n.push(h)),new Promise((h)=>{this.storageService.store(Ls.FIND_HISTORY_KEY,JSON.stringify(n),1,0),this._onDidChangeEmitter.fire(n),h()})}};rg=Ls=VD([zD(0,Pn)],rg);var My=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Lo=function(u,n){return function(h,g){n(h,g,u)}},ib,KD=524288;function ob(u,n="single",h=!1){if(!u.hasModel())return null;let g=u.getSelection();if(n==="single"&&g.startLineNumber===g.endLineNumber||n==="multiple"){if(g.isEmpty()){let p=u.getConfiguredWordAtPosition(g.getStartPosition());if(p&&h===!1)return p.word}else if(u.getModel().getValueLengthInRange(g)<KD)return u.getModel().getValueInRange(g)}return null}var Hi=class u extends i{static{ib=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(n){return n.getContribution(ib.ID)}constructor(n,h,g,p,m,_){super();this._editor=n,this._findWidgetVisible=ar.bindTo(h),this._contextKeyService=h,this._storageService=g,this._clipboardService=p,this._notificationService=m,this._hoverService=_,this._updateHistoryDelayer=this._register(new qi(500)),this._state=this._register(new tb),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((v)=>this._onStateChanged(v))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let v=this._editor.getModel()&&this._state.isRevealed;if(this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),v)this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(50).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){if(this._model)this._model.dispose(),this._model=null}_onStateChanged(n){if(this.saveQueryState(n),n.isRevealed)if(this._state.isRevealed)this._findWidgetVisible.set(!0);else this._findWidgetVisible.reset(),this.disposeModel();if(n.searchString)this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(n){if(n.isRegex)this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1);if(n.wholeWord)this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1);if(n.matchCase)this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1);if(n.preserveCase)this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!qd.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){if(this._state.change({matchCase:!this._state.matchCase},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleWholeWords(){if(this._state.change({wholeWord:!this._state.wholeWord},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleRegex(){if(this._state.change({isRegex:!this._state.isRegex},!1),!this._state.isRevealed)this.highlightFindOptions()}togglePreserveCase(){if(this._state.change({preserveCase:!this._state.preserveCase},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let n=this._editor.getSelections();if(n=n.map((h)=>{if(h.endColumn===1&&h.endLineNumber>h.startLineNumber)h=h.setEndPosition(h.endLineNumber-1,this._editor.getModel().getLineMaxColumn(h.endLineNumber-1));if(!h.isEmpty())return h;return null}).filter((h)=>!!h),n.length)this._state.change({searchScope:n},!0)}}setSearchString(n){if(this._state.isRegex)n=Ui(n);this._state.change({searchString:n},!1)}highlightFindOptions(n=!1){}async _start(n,h){if(this.disposeModel(),!this._editor.hasModel())return;let g={...h,isRevealed:!0};if(n.seedSearchStringFromSelection==="single"){let p=ob(this._editor,n.seedSearchStringFromSelection,n.seedSearchStringFromNonEmptySelection);if(p)if(this._state.isRegex)g.searchString=Ui(p);else g.searchString=p}else if(n.seedSearchStringFromSelection==="multiple"&&!n.updateSearchScope){let p=ob(this._editor,n.seedSearchStringFromSelection);if(p)g.searchString=p}if(!g.searchString&&n.seedSearchStringFromGlobalClipboard){let p=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;if(p)g.searchString=p}if(n.forceRevealReplace||g.isReplaceRevealed)g.isReplaceRevealed=!0;else if(!this._findWidgetVisible.get())g.isReplaceRevealed=!1;if(n.updateSearchScope){let p=this._editor.getSelections();if(p.some((m)=>!m.isEmpty()))g.searchScope=p}if(g.loop=n.loop,this._state.change(g,!1),!this._model)this._model=new Ud(this._editor,this._state)}start(n,h){return this._start(n,h)}moveToNextMatch(){if(this._model)return this._model.moveToNextMatch(),!0;return!1}moveToPrevMatch(){if(this._model)return this._model.moveToPrevMatch(),!0;return!1}goToMatch(n){if(this._model)return this._model.moveToMatch(n),!0;return!1}replace(){if(this._model)return this._model.replace(),!0;return!1}replaceAll(){if(this._model){if(this._editor.getModel()?.isTooLargeForHeapOperation())return this._notificationService.warn(e(994,"The file is too large to perform a replace all operation.")),!1;return this._model.replaceAll(),!0}return!1}selectAllMatches(){if(this._model)return this._model.selectAllMatches(),this._editor.focus(),!0;return!1}async getGlobalBufferTerm(){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())return this._clipboardService.readFindText();return""}setGlobalBufferTerm(n){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())this._clipboardService.writeFindText(n)}};Hi=ib=My([Lo(1,G),Lo(2,Pn),Lo(3,wi),Lo(4,wt),Lo(5,On)],Hi);var nb=class u extends Hi{constructor(n,h,g,p,m,_,v,w,C,E){super(n,g,_,v,m,w);this._contextViewService=h,this._keybindingService=p,this._configurationService=C,this._accessibilityService=E,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=ng.getOrCreate(_),this._replaceWidgetHistory=rg.getOrCreate(_)}async _start(n,h){if(!this._widget)this._createFindWidget();let g=this._editor.getSelection(),p=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":p=!0;break;case"never":p=!1;break;case"multiline":{p=!!g&&g.startLineNumber!==g.endLineNumber;break}}if(n.updateSearchScope=n.updateSearchScope||p,await super._start(n,h),this._widget){if(n.shouldFocus===2)this._widget.focusReplaceInput();else if(n.shouldFocus===1)this._widget.focusFindInput()}}highlightFindOptions(n=!1){if(!this._widget)this._createFindWidget();if(this._state.isRevealed&&!n)this._widget.highlightFindOptions();else this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new ud(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._hoverService,this._findWidgetSearchHistory,this._replaceWidgetHistory,this._configurationService,this._accessibilityService)),this._findOptionsWidget=this._register(new ig(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(n){this._widget?.setViewState(n)}};nb=My([Lo(1,ws),Lo(2,G),Lo(3,ge),Lo(4,wt),Lo(5,Pn),Lo(6,wi),Lo(7,On),Lo(8,re),Lo(9,on)],nb);var UD=W0(new py({id:bt.StartFindAction,label:b(1002,"Find"),precondition:L.or(r.focus,L.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"3_find",title:e(995,"&&Find"),order:1}}));UD.addImplementation(0,(u,n,h)=>{let g=Hi.get(n);if(!g)return!1;return g.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:n.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop})});var qD={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class Wy extends U{constructor(){super({id:bt.StartFindWithArgs,label:b(1003,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:qD})}async run(u,n,h){let g=Hi.get(n);if(g){let p=h?{searchString:h.searchString,replaceString:h.replaceString,isReplaceRevealed:h.replaceString!==void 0,isRegex:h.isRegex,wholeWord:h.matchWholeWord,matchCase:h.isCaseSensitive,preserveCase:h.preserveCase}:{};await g.start({forceRevealReplace:!1,seedSearchStringFromSelection:g.getState().searchString.length===0&&n.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:h?.findInSelection||!1,loop:n.getOption(50).loop},p),g.setGlobalBufferTerm(g.getState().searchString)}}}class By extends U{constructor(){super({id:bt.StartFindWithSelection,label:b(1004,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(u,n){let h=Hi.get(n);if(h)await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),h.setGlobalBufferTerm(h.getState().searchString)}}async function Vy(u,n){let h=Hi.get(u);if(!h)return;let g=u.getOption(50).closeOnResult,p=h.getState().isRevealed,m=()=>{let _=h.editor.getSelection(),v=n?h.moveToNextMatch():h.moveToPrevMatch(),w=!1;if(v){let C=h.editor.getSelection();if(!_&&C)w=!0;else if(_&&C&&!_.equalsSelection(C))w=!0}if(w){if(h.editor.pushUndoStop(),g&&p&&h.isFindInputFocused())h.closeFindWidget();return!0}return!1};if(!m()){if(await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:h.getState().searchString.length===0&&u.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop}),!m()){let _=h.getState();if(p&&_.matchesCount===0&&_.searchString)Vn(e(996,"{0} found for '{1}'",tg,_.searchString))}}}var jD=W0(new py({id:bt.NextMatchFindAction,label:b(1005,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:r.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:L.and(r.focus,qd),primary:3,weight:100}]}));jD.addImplementation(0,async(u,n,h)=>Vy(n,!0));var $D=W0(new py({id:bt.PreviousMatchFindAction,label:b(1006,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:r.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:L.and(r.focus,qd),primary:1027,weight:100}]}));$D.addImplementation(0,async(u,n,h)=>Vy(n,!1));class zy extends U{constructor(){super({id:bt.GoToMatchFindAction,label:b(1007,"Go to Match..."),precondition:ar});this._highlightDecorations=[]}run(u,n){let h=Hi.get(n);if(!h)return;let g=h.getState().matchesCount;if(g<1){u.get(wt).notify({severity:Sc.Warning,message:e(997,"No matches. Try searching for something else.")});return}let p=u.get(En),m=new d,_=m.add(p.createInputBox());_.placeholder=e(998,"Type a number to go to a specific match (between 1 and {0})",g);let v=(C)=>{let E=parseInt(C);if(isNaN(E))return;let R=h.getState().matchesCount;if(E>0&&E<=R)return E-1;else if(E<0&&E>=-R)return R+E;return},w=(C)=>{let E=v(C);if(typeof E==="number"){_.validationMessage=void 0,h.goToMatch(E);let R=h.getState().currentMatch;if(R)this.addDecorations(n,R)}else _.validationMessage=e(999,"Please type a number between 1 and {0}",h.getState().matchesCount),this.clearDecorations(n)};m.add(_.onDidChangeValue((C)=>{w(C)})),m.add(_.onDidAccept(()=>{let C=v(_.value);if(typeof C==="number")h.goToMatch(C),_.hide();else _.validationMessage=e(1000,"Please type a number between 1 and {0}",h.getState().matchesCount)})),m.add(_.onDidHide(()=>{this.clearDecorations(n),m.dispose()})),_.show()}clearDecorations(u){u.changeDecorations((n)=>{this._highlightDecorations=n.deltaDecorations(this._highlightDecorations,[])})}addDecorations(u,n){u.changeDecorations((h)=>{this._highlightDecorations=h.deltaDecorations(this._highlightDecorations,[{range:n,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:bn(rk),position:Jo.Full}}}])})}}class rb extends U{async run(u,n){let h=Hi.get(n);if(!h)return;let g=ob(n,"single",!1);if(g)h.setSearchString(g);if(!this._run(h))await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),this._run(h)}}class Ky extends rb{constructor(){super({id:bt.NextSelectionMatchFindAction,label:b(1008,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:2109,weight:100}})}_run(u){return u.moveToNextMatch()}}class Uy extends rb{constructor(){super({id:bt.PreviousSelectionMatchFindAction,label:b(1009,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:3133,weight:100}})}_run(u){return u.moveToPrevMatch()}}var GD=W0(new py({id:bt.StartFindReplaceAction,label:b(1010,"Replace"),precondition:L.or(r.focus,L.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"3_find",title:e(1001,"&&Replace"),order:2}}));GD.addImplementation(0,(u,n,h)=>{if(!n.hasModel()||n.getOption(104))return!1;let g=Hi.get(n);if(!g)return!1;let p=n.getSelection(),m=g.isFindInputFocused(),_=!p.isEmpty()&&p.startLineNumber===p.endLineNumber&&n.getOption(50).seedSearchStringFromSelection!=="never"&&!m,v=m||_?2:1;return g.start({forceRevealReplace:!0,seedSearchStringFromSelection:_?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:n.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:v,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop})});fe(Hi.ID,nb,0);O(Wy);O(By);O(zy);O(Ky);O(Uy);var Un=tn.bindToContribution(Hi.get);K(new Un({id:bt.CloseFindWidgetCommand,precondition:ar,handler:(u)=>u.closeFindWidget(),kbOpts:{weight:105,kbExpr:r.focus,primary:9,secondary:[1033]}}));K(new Un({id:bt.ToggleCaseSensitiveCommand,precondition:void 0,handler:(u)=>u.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:r.focus,primary:pl.primary,mac:pl.mac,win:pl.win,linux:pl.linux}}));K(new Un({id:bt.ToggleWholeWordCommand,precondition:void 0,handler:(u)=>u.toggleWholeWords(),kbOpts:{weight:105,kbExpr:r.focus,primary:ml.primary,mac:ml.mac,win:ml.win,linux:ml.linux}}));K(new Un({id:bt.ToggleRegexCommand,precondition:void 0,handler:(u)=>u.toggleRegex(),kbOpts:{weight:105,kbExpr:r.focus,primary:fl.primary,mac:fl.mac,win:fl.win,linux:fl.linux}}));K(new Un({id:bt.ToggleSearchScopeCommand,precondition:void 0,handler:(u)=>u.toggleSearchScope(),kbOpts:{weight:105,kbExpr:r.focus,primary:bl.primary,mac:bl.mac,win:bl.win,linux:bl.linux}}));K(new Un({id:bt.TogglePreserveCaseCommand,precondition:void 0,handler:(u)=>u.togglePreserveCase(),kbOpts:{weight:105,kbExpr:r.focus,primary:vl.primary,mac:vl.mac,win:vl.win,linux:vl.linux}}));K(new Un({id:bt.ReplaceOneAction,precondition:ar,handler:(u)=>u.replace(),kbOpts:{weight:105,kbExpr:r.focus,primary:3094}}));K(new Un({id:bt.ReplaceOneAction,precondition:ar,handler:(u)=>u.replace(),kbOpts:{weight:105,kbExpr:L.and(r.focus,gl),primary:3}}));K(new Un({id:bt.ReplaceAllAction,precondition:ar,handler:(u)=>u.replaceAll(),kbOpts:{weight:105,kbExpr:r.focus,primary:2563}}));K(new Un({id:bt.ReplaceAllAction,precondition:ar,handler:(u)=>u.replaceAll(),kbOpts:{weight:105,kbExpr:L.and(r.focus,gl),primary:void 0,mac:{primary:2051}}}));K(new Un({id:bt.SelectAllMatchesAction,precondition:ar,handler:(u)=>u.selectAllMatches(),kbOpts:{weight:105,kbExpr:r.focus,primary:515}}));var ZD=a("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},e(1637,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},e(1638,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.wordHighlightTextBackground",ZD,e(1639,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);var XD=a("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Xt,hcLight:Xt},e(1640,"Border color of a symbol during read-access, like reading a variable."));a("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Xt,hcLight:Xt},e(1641,"Border color of a symbol during write-access, like writing to a variable."));a("editor.wordHighlightTextBorder",XD,e(1642,"Border color of a textual occurrence for a symbol."));var YD=a("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",e(1643,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),JD=a("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",e(1644,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),QD=a("editorOverviewRuler.wordHighlightTextForeground",SR,e(1645,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),e2=ue.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:bn(JD),position:Jo.Center},minimap:{color:bn(J0),position:1}}),t2=ue.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:bn(QD),position:Jo.Center},minimap:{color:bn(J0),position:1}}),i2=ue.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:bn(SR),position:Jo.Center},minimap:{color:bn(J0),position:1}}),o2=ue.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),n2=ue.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:bn(YD),position:Jo.Center},minimap:{color:bn(J0),position:1}});function _2(u){if(u===Gh.Write)return e2;else if(u===Gh.Text)return t2;else return n2}function qy(u){return u?o2:i2}Li((u,n)=>{let h=u.getColor(Dg);if(h)n.addRule(`.monaco-editor .selectionHighlight { background-color: ${h.transparent(0.5)}; }`)});var r2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},s2=function(u,n){return function(h,g){n(h,g,u)}},sb;function ks(u,n){let h=n.filter((g)=>!u.find((p)=>p.equals(g)));if(h.length>=1){let g=h.map((m)=>`line ${m.viewState.position.lineNumber} column ${m.viewState.position.column}`).join(", "),p=h.length===1?e(1354,"Cursor added: {0}",g):e(1355,"Cursors added: {0}",g);jo(p)}}class Zy extends U{constructor(){super({id:"editor.action.insertCursorAbove",label:b(1364,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1356,"&&Add Cursor Above"),order:2}})}run(u,n,h){if(!n.hasModel())return;let g=!0;if(h&&h.logicalLine===!1)g=!1;let p=n._getViewModel();if(p.cursorConfig.readOnly)return;p.model.pushStackElement();let m=p.getCursorStates();p.setCursorStates(h.source,3,Pi.addCursorUp(p,m,g)),p.revealTopMostCursor(h.source),ks(m,p.getCursorStates())}}class Xy extends U{constructor(){super({id:"editor.action.insertCursorBelow",label:b(1365,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1357,"A&&dd Cursor Below"),order:3}})}run(u,n,h){if(!n.hasModel())return;let g=!0;if(h&&h.logicalLine===!1)g=!1;let p=n._getViewModel();if(p.cursorConfig.readOnly)return;p.model.pushStackElement();let m=p.getCursorStates();p.setCursorStates(h.source,3,Pi.addCursorDown(p,m,g)),p.revealBottomMostCursor(h.source),ks(m,p.getCursorStates())}}class Yy extends U{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:b(1366,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1358,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(u,n,h){if(u.isEmpty())return;for(let g=u.startLineNumber;g<u.endLineNumber;g++){let p=n.getLineMaxColumn(g);h.push(new F(g,p,g,p))}if(u.endColumn>1)h.push(new F(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn))}run(u,n){if(!n.hasModel())return;let h=n.getModel(),g=n.getSelections(),p=n._getViewModel(),m=p.getCursorStates(),_=[];if(g.forEach((v)=>this.getCursorsForSelection(v,h,_)),_.length>0)n.setSelections(_);ks(m,p.getCursorStates())}}class Jy extends U{constructor(){super({id:"editor.action.addCursorsToBottom",label:b(1367,"Add Cursors to Bottom"),precondition:void 0})}run(u,n){if(!n.hasModel())return;let h=n.getSelections(),g=n.getModel().getLineCount(),p=[];for(let v=h[0].startLineNumber;v<=g;v++)p.push(new F(v,h[0].startColumn,v,h[0].endColumn));let m=n._getViewModel(),_=m.getCursorStates();if(p.length>0)n.setSelections(p);ks(_,m.getCursorStates())}}class Qy extends U{constructor(){super({id:"editor.action.addCursorsToTop",label:b(1368,"Add Cursors to Top"),precondition:void 0})}run(u,n){if(!n.hasModel())return;let h=n.getSelections(),g=[];for(let _=h[0].startLineNumber;_>=1;_--)g.push(new F(_,h[0].startColumn,_,h[0].endColumn));let p=n._getViewModel(),m=p.getCursorStates();if(g.length>0)n.setSelections(g);ks(m,p.getCursorStates())}}class xl{constructor(u,n,h){this.selections=u,this.revealRange=n,this.revealScrollType=h}}class Hl{static create(u,n){if(!u.hasModel())return null;let h=n.getState();if(!u.hasTextFocus()&&h.isRevealed&&h.searchString.length>0)return new Hl(u,n,!1,h.searchString,h.wholeWord,h.matchCase,null);let g=!1,p,m,_=u.getSelections();if(_.length===1&&_[0].isEmpty())g=!0,p=!0,m=!0;else p=h.wholeWord,m=h.matchCase;let v=u.getSelection(),w,C=null;if(v.isEmpty()){let E=u.getConfiguredWordAtPosition(v.getStartPosition());if(!E)return null;w=E.word,C=new F(v.startLineNumber,E.startColumn,v.startLineNumber,E.endColumn)}else w=u.getModel().getValueInRange(v).replace(/\r\n/g,`
|
|
21
|
+
`);return new Hl(u,n,g,w,p,m,C)}constructor(u,n,h,g,p,m,_){this._editor=u,this.findController=n,this.isDisconnectedFromFindController=h,this.searchText=g,this.wholeWord=p,this.matchCase=m,this.currentMatch=_}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let u=this._getNextMatch();if(!u)return null;let n=this._editor.getSelections();return new xl(n.concat(u),u,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let u=this._getNextMatch();if(!u)return null;let n=this._editor.getSelections();return new xl(n.slice(0,n.length-1).concat(u),u,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let g=this.currentMatch;return this.currentMatch=null,g}this.findController.highlightFindOptions();let u=this._editor.getSelections(),n=u[u.length-1],h=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!h)return null;return new F(h.range.startLineNumber,h.range.startColumn,h.range.endLineNumber,h.range.endColumn)}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let u=this._getPreviousMatch();if(!u)return null;let n=this._editor.getSelections();return new xl(n.concat(u),u,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let u=this._getPreviousMatch();if(!u)return null;let n=this._editor.getSelections();return new xl(n.slice(0,n.length-1).concat(u),u,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let g=this.currentMatch;return this.currentMatch=null,g}this.findController.highlightFindOptions();let u=this._editor.getSelections(),n=u[u.length-1],h=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!h)return null;return new F(h.range.startLineNumber,h.range.startColumn,h.range.endLineNumber,h.range.endColumn)}selectAll(u){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let n=this._editor.getModel();if(u)return n.findMatches(this.searchText,u,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824);return n.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}class jd extends i{static{this.ID="editor.contrib.multiCursorController"}static get(u){return u.getContribution(jd.ID)}constructor(u){super();this._sessionDispose=this._register(new d),this._editor=u,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(u){if(!this._session){let n=Hl.create(this._editor,u);if(!n)return;this._session=n;let h={searchString:this._session.searchText};if(this._session.isDisconnectedFromFindController)h.wholeWordOverride=1,h.matchCaseOverride=1,h.isRegexOverride=2;u.getState().change(h,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((g)=>{if(this._ignoreSelectionChange)return;this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(u.getState().onFindReplaceStateChange((g)=>{if(g.matchCase||g.wholeWord)this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){let u={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(u,!1)}this._session=null}_setSelections(u){this._ignoreSelectionChange=!0,this._editor.setSelections(u),this._ignoreSelectionChange=!1}_expandEmptyToWord(u,n){if(!n.isEmpty())return n;let h=this._editor.getConfiguredWordAtPosition(n.getStartPosition());if(!h)return n;return new F(n.startLineNumber,h.startColumn,n.startLineNumber,h.endColumn)}_applySessionResult(u){if(!u)return;if(this._setSelections(u.selections),u.revealRange)this._editor.revealRangeInCenterIfOutsideViewport(u.revealRange,u.revealScrollType)}getSession(u){return this._session}addSelectionToNextFindMatch(u){if(!this._editor.hasModel())return;if(!this._session){let n=this._editor.getSelections();if(n.length>1){let g=u.getState().matchCase;if(!ax(this._editor.getModel(),n,g)){let m=this._editor.getModel(),_=[];for(let v=0,w=n.length;v<w;v++)_[v]=this._expandEmptyToWord(m,n[v]);this._editor.setSelections(_);return}}}if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.addSelectionToNextFindMatch())}addSelectionToPreviousFindMatch(u){if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(u){if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(u){if(this._beginSessionIfNeeded(u),this._session)this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(u){if(!this._editor.hasModel())return;let n=null,h=u.getState();if(h.isRevealed&&h.searchString.length>0&&h.isRegex){let g=this._editor.getModel();if(h.searchScope)n=g.findMatches(h.searchString,h.searchScope,h.isRegex,h.matchCase,h.wholeWord?this._editor.getOption(148):null,!1,1073741824);else n=g.findMatches(h.searchString,!0,h.isRegex,h.matchCase,h.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(u),!this._session)return;n=this._session.selectAll(h.searchScope)}if(n.length>0){let g=this._editor.getSelection();for(let p=0,m=n.length;p<m;p++){let _=n[p];if(_.range.intersectRanges(g)){n[p]=n[0],n[0]=_;break}}this._setSelections(n.map((p)=>new F(p.range.startLineNumber,p.range.startColumn,p.range.endLineNumber,p.range.endColumn)))}}}class Na extends U{run(u,n){let h=jd.get(n);if(!h)return;let g=n._getViewModel();if(g){let p=g.getCursorStates(),m=Hi.get(n);if(m)this._run(h,m);else{let _=u.get(A).createInstance(Hi,n);this._run(h,_),_.dispose()}ks(p,g.getCursorStates())}}}class ex extends Na{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:b(1369,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:2082,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1359,"Add &&Next Occurrence"),order:5}})}_run(u,n){u.addSelectionToNextFindMatch(n)}}class tx extends Na{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:b(1370,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1360,"Add P&&revious Occurrence"),order:6}})}_run(u,n){u.addSelectionToPreviousFindMatch(n)}}class ix extends Na{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:b(1371,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:un(2089,2082),weight:100}})}_run(u,n){u.moveSelectionToNextFindMatch(n)}}class ox extends Na{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:b(1372,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(u,n){u.moveSelectionToPreviousFindMatch(n)}}class nx extends Na{constructor(){super({id:"editor.action.selectHighlights",label:b(1373,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:3114,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1361,"Select All &&Occurrences"),order:7}})}_run(u,n){u.selectAll(n)}}class rx extends Na{constructor(){super({id:"editor.action.changeAll",label:b(1374,"Change All Occurrences"),precondition:L.and(r.writable,r.editorTextFocus),kbOpts:{kbExpr:r.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(u,n){u.selectAll(n)}}class sx{constructor(u,n,h,g,p){if(this._model=u,this._searchText=n,this._matchCase=h,this._wordSeparators=g,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),p&&this._model===p._model&&this._searchText===p._searchText&&this._matchCase===p._matchCase&&this._wordSeparators===p._wordSeparators&&this._modelVersionId===p._modelVersionId)this._cachedFindMatches=p._cachedFindMatches}findMatches(){if(this._cachedFindMatches===null)this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((u)=>u.range),this._cachedFindMatches.sort(t.compareRangesUsingStarts);return this._cachedFindMatches}}var sg=class u extends i{static{sb=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(n,h){super();this._languageFeaturesService=h,this.editor=n,this._isEnabled=n.getOption(122),this._isEnabledMultiline=n.getOption(124),this._maxLength=n.getOption(123),this._decorations=n.createDecorationsCollection(),this.updateSoon=this._register(new ke(()=>this._update(),300)),this.state=null,this._register(n.onDidChangeConfiguration((p)=>{this._isEnabled=n.getOption(122),this._isEnabledMultiline=n.getOption(124),this._maxLength=n.getOption(123)})),this._register(n.onDidChangeCursorSelection((p)=>{if(!this._isEnabled)return;if(p.selection.isEmpty())if(p.reason===3){if(this.state)this._setState(null);this.updateSoon.schedule()}else this._setState(null);else this._update()})),this._register(n.onDidChangeModel((p)=>{this._setState(null)})),this._register(n.onDidChangeModelContent((p)=>{if(this._isEnabled)this.updateSoon.schedule()}));let g=Hi.get(n);if(g)this._register(g.getState().onFindReplaceStateChange((p)=>{this._update()}));this.updateSoon.schedule()}_update(){this._setState(sb._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(n,h,g,p,m){if(!h)return null;if(!m.hasModel())return null;if(!g){let R=m.getSelection();if(R.startLineNumber!==R.endLineNumber)return null}let _=jd.get(m);if(!_)return null;let v=Hi.get(m);if(!v)return null;let w=_.getSession(v);if(!w){let R=m.getSelections();if(R.length>1){let X=v.getState().matchCase;if(!ax(m.getModel(),R,X))return null}w=Hl.create(m,v)}if(!w)return null;if(w.currentMatch)return null;if(/^[ \t]+$/.test(w.searchText))return null;if(p>0&&w.searchText.length>p)return null;let C=v.getState(),E=C.matchCase;if(C.isRevealed){let R=C.searchString;if(!E)R=R.toLowerCase();let Z=w.searchText;if(!E)Z=Z.toLowerCase();if(R===Z&&w.matchCase===C.matchCase&&w.wholeWord===C.wholeWord&&!C.isRegex)return null}return new sx(m.getModel(),w.searchText,w.matchCase,w.wholeWord?m.getOption(148):null,n)}_setState(n){if(this.state=n,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let h=this.editor.getModel();if(h.isTooLargeForTokenization())return;let g=this.state.findMatches(),p=this.editor.getSelections();p.sort(t.compareRangesUsingStarts);let m=[];for(let C=0,E=0,R=g.length,Z=p.length;C<R;){let X=g[C];if(E>=Z)m.push(X),C++;else{let Y=t.compareRangesUsingStarts(X,p[E]);if(Y<0){if(p[E].isEmpty()||!t.areIntersecting(X,p[E]))m.push(X);C++}else if(Y>0)E++;else C++,E++}}let _=this.editor.getOption(90)!=="off",v=this._languageFeaturesService.documentHighlightProvider.has(h)&&_,w=m.map((C)=>({range:C,options:qy(v)}));this._decorations.set(w)}dispose(){this._setState(null),super.dispose()}};sg=sb=r2([s2(1,z)],sg);function ax(u,n,h){let g=Gy(u,n[0],!h);for(let p=1,m=n.length;p<m;p++){let _=n[p];if(_.isEmpty())return!1;let v=Gy(u,_,!h);if(g!==v)return!1}return!0}function Gy(u,n,h){let g=u.getValueInRange(n);return h?g.toLowerCase():g}class dx extends U{constructor(){super({id:"editor.action.focusNextCursor",label:b(1375,"Focus Next Cursor"),metadata:{description:e(1362,"Focuses the next cursor"),args:[]},precondition:void 0})}run(u,n,h){if(!n.hasModel())return;let g=n._getViewModel();if(g.cursorConfig.readOnly)return;g.model.pushStackElement();let p=Array.from(g.getCursorStates()),m=p.shift();if(!m)return;p.push(m),g.setCursorStates(h.source,3,p),g.revealPrimaryCursor(h.source,!0),ks(p,g.getCursorStates())}}class cx extends U{constructor(){super({id:"editor.action.focusPreviousCursor",label:b(1376,"Focus Previous Cursor"),metadata:{description:e(1363,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(u,n,h){if(!n.hasModel())return;let g=n._getViewModel();if(g.cursorConfig.readOnly)return;g.model.pushStackElement();let p=Array.from(g.getCursorStates()),m=p.pop();if(!m)return;p.unshift(m),g.setCursorStates(h.source,3,p),g.revealPrimaryCursor(h.source,!0),ks(p,g.getCursorStates())}}fe(jd.ID,jd,4);fe(sg.ID,sg,1);O(Zy);O(Xy);O(Yy);O(ex);O(tx);O(ix);O(ox);O(nx);O(rx);O(Jy);O(Qy);O(dx);O(cx);class ko{async provideSelectionRanges(u,n){let h=[];for(let g of n){let p=[];h.push(p);let m=new Map;await new Promise((_)=>ko._bracketsRightYield(_,0,u,g,m)),await new Promise((_)=>ko._bracketsLeftYield(_,0,u,g,m,p))}return h}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(u,n,h,g,p){let m=new Map,_=Date.now();while(!0){if(n>=ko._maxRounds){u();break}if(!g){u();break}let v=h.bracketPairs.findNextBracket(g);if(!v){u();break}if(Date.now()-_>ko._maxDuration){setTimeout(()=>ko._bracketsRightYield(u,n+1,h,g,p));break}if(v.bracketInfo.isOpeningBracket){let C=v.bracketInfo.bracketText,E=m.has(C)?m.get(C):0;m.set(C,E+1)}else{let C=v.bracketInfo.getOpeningBrackets()[0].bracketText,E=m.has(C)?m.get(C):0;if(E-=1,m.set(C,Math.max(0,E)),E<0){let R=p.get(C);if(!R)R=new zn,p.set(C,R);R.push(v.range)}}g=v.range.getEndPosition()}}static _bracketsLeftYield(u,n,h,g,p,m){let _=new Map,v=Date.now();while(!0){if(n>=ko._maxRounds&&p.size===0){u();break}if(!g){u();break}let w=h.bracketPairs.findPrevBracket(g);if(!w){u();break}if(Date.now()-v>ko._maxDuration){setTimeout(()=>ko._bracketsLeftYield(u,n+1,h,g,p,m));break}if(!w.bracketInfo.isOpeningBracket){let E=w.bracketInfo.getOpeningBrackets()[0].bracketText,R=_.has(E)?_.get(E):0;_.set(E,R+1)}else{let E=w.bracketInfo.bracketText,R=_.has(E)?_.get(E):0;if(R-=1,_.set(E,Math.max(0,R)),R<0){let Z=p.get(E);if(Z){let X=Z.shift();if(Z.size===0)p.delete(E);let Y=t.fromPositions(w.range.getEndPosition(),X.getStartPosition()),Q=t.fromPositions(w.range.getStartPosition(),X.getEndPosition());m.push({range:Y}),m.push({range:Q}),ko._addBracketLeading(h,Q,m)}}}g=w.range.getStartPosition()}}static _addBracketLeading(u,n,h){if(n.startLineNumber===n.endLineNumber)return;let g=n.startLineNumber,p=u.getLineFirstNonWhitespaceColumn(g);if(p!==0&&p!==n.startColumn)h.push({range:t.fromPositions(new s(g,p),n.getEndPosition())}),h.push({range:t.fromPositions(new s(g,1),n.getEndPosition())});let m=g-1;if(m>0){let _=u.getLineFirstNonWhitespaceColumn(m);if(_===n.startColumn&&_!==u.getLineLastNonWhitespaceColumn(m))h.push({range:t.fromPositions(new s(m,_),n.getEndPosition())}),h.push({range:t.fromPositions(new s(m,1),n.getEndPosition())})}}}class ab{constructor(u=!0){this.selectSubwords=u}provideSelectionRanges(u,n){let h=[];for(let g of n){let p=[];if(h.push(p),this.selectSubwords)this._addInWordRanges(p,u,g);this._addWordRanges(p,u,g),this._addWhitespaceLine(p,u,g),p.push({range:u.getFullModelRange()})}return h}_addInWordRanges(u,n,h){let g=n.getWordAtPosition(h);if(!g)return;let{word:p,startColumn:m}=g,_=h.column-m,v=_,w=_,C=0;for(;v>=0;v--){let E=p.charCodeAt(v);if(v!==_&&(E===95||E===45))break;else if(lu(E)&&El(C))break;C=E}v+=1;for(;w<p.length;w++){let E=p.charCodeAt(w);if(El(E)&&lu(C))break;else if(E===95||E===45)break;C=E}if(v<w)u.push({range:new t(h.lineNumber,m+v,h.lineNumber,m+w)})}_addWordRanges(u,n,h){let g=n.getWordAtPosition(h);if(g)u.push({range:new t(h.lineNumber,g.startColumn,h.lineNumber,g.endColumn)})}_addWhitespaceLine(u,n,h){if(n.getLineLength(h.lineNumber)>0&&n.getLineFirstNonWhitespaceColumn(h.lineNumber)===0&&n.getLineLastNonWhitespaceColumn(h.lineNumber)===0)u.push({range:new t(h.lineNumber,1,h.lineNumber,n.getLineMaxColumn(h.lineNumber))})}}var a2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},d2=function(u,n){return function(h,g){n(h,g,u)}},db;class cb{constructor(u,n){this.index=u,this.ranges=n}mov(u){let n=this.index+(u?1:-1);if(n<0||n>=this.ranges.length)return this;let h=new cb(n,this.ranges);if(h.ranges[n].equalsRange(this.ranges[this.index]))return h.mov(u);return h}}var Wl=class u{static{db=this}static{this.ID="editor.contrib.smartSelectController"}static get(n){return n.getContribution(db.ID)}constructor(n,h){this._editor=n,this._languageFeaturesService=h,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(n){if(!this._editor.hasModel())return;let h=this._editor.getSelections(),g=this._editor.getModel();if(!this._state)await ux(this._languageFeaturesService.selectionRangeProvider,g,h.map((m)=>m.getPosition()),this._editor.getOption(129),we.None).then((m)=>{if(!Kn(m)||m.length!==h.length)return;if(!this._editor.hasModel()||!ot(this._editor.getSelections(),h,(_,v)=>_.equalsSelection(v)))return;for(let _=0;_<m.length;_++)m[_]=m[_].filter((v)=>v.containsPosition(h[_].getStartPosition())&&v.containsPosition(h[_].getEndPosition())),m[_].unshift(h[_]);this._state=m.map((_)=>new cb(0,_)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignoreSelection)this._selectionListener?.dispose(),this._state=void 0})});if(!this._state)return;this._state=this._state.map((m)=>m.mov(n));let p=this._state.map((m)=>F.fromPositions(m.ranges[m.index].getStartPosition(),m.ranges[m.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(p)}finally{this._ignoreSelection=!1}}};Wl=db=a2([d2(1,z)],Wl);class lb extends U{constructor(u,n){super(n);this._forward=u}async run(u,n){let h=Wl.get(n);if(h)await h.run(this._forward)}}class lx extends lb{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:b(1469,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"1_basic",title:e(1467,"&&Expand Selection"),order:2}})}}Le.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class hx extends lb{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:b(1470,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"1_basic",title:e(1468,"&&Shrink Selection"),order:3}})}}fe(Wl.ID,Wl,4);O(lx);O(hx);async function ux(u,n,h,g,p){let m=u.all(n).concat(new ab(g.selectSubwords));if(m.length===1)m.unshift(new ko);let _=[],v=[];for(let w of m)_.push(Promise.resolve(w.provideSelectionRanges(n,h,p)).then((C)=>{if(Kn(C)&&C.length===h.length)for(let E=0;E<h.length;E++){if(!v[E])v[E]=[];for(let R of C[E])if(t.isIRange(R.range)&&t.containsPosition(R.range,h[E]))v[E].push(t.lift(R.range))}},yt));return await Promise.all(_),v.map((w)=>{if(w.length===0)return[];w.sort((Z,X)=>{if(s.isBefore(Z.getStartPosition(),X.getStartPosition()))return 1;else if(s.isBefore(X.getStartPosition(),Z.getStartPosition()))return-1;else if(s.isBefore(Z.getEndPosition(),X.getEndPosition()))return-1;else if(s.isBefore(X.getEndPosition(),Z.getEndPosition()))return 1;else return 0});let C=[],E;for(let Z of w)if(!E||t.containsRange(Z,E)&&!t.equalsRange(Z,E))C.push(Z),E=Z;if(!g.selectLeadingAndTrailingWhitespace)return C;let R=[C[0]];for(let Z=1;Z<C.length;Z++){let X=C[Z-1],Y=C[Z];if(Y.startLineNumber!==X.startLineNumber||Y.endLineNumber!==X.endLineNumber){let Q=new t(X.startLineNumber,n.getLineFirstNonWhitespaceColumn(X.startLineNumber),X.endLineNumber,n.getLineLastNonWhitespaceColumn(X.endLineNumber));if(Q.containsRange(X)&&!Q.equalsRange(X)&&Y.containsRange(Q)&&!Y.equalsRange(Q))R.push(Q);let te=new t(X.startLineNumber,1,X.endLineNumber,n.getLineMaxColumn(X.endLineNumber));if(te.containsRange(X)&&!te.equalsRange(Q)&&Y.containsRange(te)&&!Y.equalsRange(te))R.push(te)}R.push(Y)}return R})}Le.registerCommand("_executeSelectionRangeProvider",async function(u,...n){let[h,g]=n;He(q.isUri(h)),He(k2(g,(_)=>s.isIPosition(_)));let p=u.get(z).selectionRangeProvider,m=await u.get(Dn).createModelReference(h);try{return ux(p,m.object.textEditorModel,g.map(s.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},we.None)}finally{m.dispose()}});class $d extends tn{constructor(u){super(u);this._inSelectionMode=u.inSelectionMode,this._wordNavigationType=u.wordNavigationType}runEditorCommand(u,n,h){if(!n.hasModel())return;let g=Xr(n.getOption(148),n.getOption(147)),p=n.getModel(),m=n.getSelections(),_=m.length>1,v=m.map((w)=>{let C=new s(w.positionLineNumber,w.positionColumn),E=this._move(g,p,C,this._wordNavigationType,_);return this._moveTo(w,E,this._inSelectionMode)});if(p.pushStackElement(),n._getViewModel().setCursorStates("moveWordCommand",3,v.map((w)=>et.fromModelSelection(w))),v.length===1){let w=new s(v[0].positionLineNumber,v[0].positionColumn);n.revealPosition(w,0)}}_moveTo(u,n,h){if(h)return new F(u.selectionStartLineNumber,u.selectionStartColumn,n.lineNumber,n.column);else return new F(n.lineNumber,n.column,n.lineNumber,n.column)}}class Wr extends $d{_move(u,n,h,g,p){return Nt.moveWordLeft(u,n,h,g,p)}}class Br extends $d{_move(u,n,h,g,p){return Nt.moveWordRight(u,n,h,g)}}class gx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class px extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class mx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Qh,d_)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class fx extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class _x extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class bx extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Qh,d_)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class vx extends Wr{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(u,n,h,g,p){return super._move(Xr(ho.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class wx extends Wr{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(u,n,h,g,p){return super._move(Xr(ho.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class Sx extends Br{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class Cx extends Br{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Qh,d_)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class yx extends Br{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class xx extends Br{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class Ix extends Br{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:L.and(r.textInputFocus,L.and(Qh,d_)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class Lx extends Br{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class kx extends Br{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(u,n,h,g,p){return super._move(Xr(ho.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class Ex extends Br{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(u,n,h,g,p){return super._move(Xr(ho.wordSeparators.defaultValue,u.intlSegmenterLocales),n,h,g,p)}}class Gd extends tn{constructor(u){super({canTriggerInlineEdits:!0,...u});this._whitespaceHeuristics=u.whitespaceHeuristics,this._wordNavigationType=u.wordNavigationType}runEditorCommand(u,n,h){let g=u?.get(ht);if(!n.hasModel()||!g)return;let p=Xr(n.getOption(148),n.getOption(147)),m=n.getModel(),_=n.getSelections(),v=n.getOption(10),w=n.getOption(15),C=g.getLanguageConfiguration(m.getLanguageId()).getAutoClosingPairs(),E=n._getViewModel(),R=_.map((Z)=>{let X=this._delete({wordSeparators:p,model:m,selection:Z,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:n.getOption(13),autoClosingBrackets:v,autoClosingQuotes:w,autoClosingPairs:C,autoClosedCharacters:E.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Ti(X,"")});n.pushUndoStop(),n.executeCommands(this.id,R),n.pushUndoStop()}}class ag extends Gd{_delete(u,n){let h=Nt.deleteWordLeft(u,n);if(h)return h;return new t(1,1,1,1)}}class dg extends Gd{_delete(u,n){let h=Nt.deleteWordRight(u,n);if(h)return h;let g=u.model.getLineCount(),p=u.model.getLineMaxColumn(g);return new t(g,p,g,p)}}class Dx extends ag{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:r.writable})}}class Tx extends ag{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:r.writable})}}class Rx extends ag{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class Nx extends dg{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:r.writable})}}class Mx extends dg{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:r.writable})}}class Ox extends dg{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class Px extends U{constructor(){super({id:"deleteInsideWord",precondition:r.writable,label:b(1650,"Delete Word"),metadata:{description:b(1651,"Delete the word at the cursor"),args:[{name:"args",schema:{type:"object",properties:{onlyWord:{type:"boolean",default:!1,description:e(1649,"Delete only the word and leave surrounding whitespace")}}}}]}})}run(u,n,h){if(!n.hasModel())return;let g=!!(h&&typeof h==="object"&&h.onlyWord),p=Xr(n.getOption(148),n.getOption(147)),m=n.getModel(),v=n.getSelections().map((w)=>{let C=Nt.deleteInsideWord(p,m,w,g);return new Ti(C,"")});n.pushUndoStop(),n.executeCommands(this.id,v),n.pushUndoStop()}}K(new gx);K(new px);K(new mx);K(new fx);K(new _x);K(new bx);K(new Sx);K(new Cx);K(new yx);K(new xx);K(new Ix);K(new Lx);K(new vx);K(new wx);K(new kx);K(new Ex);K(new Dx);K(new Tx);K(new Rx);K(new Nx);K(new Mx);K(new Ox);O(Px);class Ax extends Gd{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(u,n){let h=ky.deleteWordPartLeft(u);if(h)return h;return new t(1,1,1,1)}}class Fx extends Gd{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:r.writable,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(u,n){let h=ky.deleteWordPartRight(u);if(h)return h;let g=u.model.getLineCount(),p=u.model.getLineMaxColumn(g);return new t(g,p,g,p)}}class hb extends $d{_move(u,n,h,g,p){return ky.moveWordPartLeft(u,n,h,p)}}class Hx extends hb{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}Le.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class Wx extends hb{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}Le.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class ub extends $d{_move(u,n,h,g,p){return ky.moveWordPartRight(u,n,h)}}class Bx extends ub{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class Vx extends ub{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}K(new Ax);K(new Fx);K(new Hx);K(new Wx);K(new Bx);K(new Vx);var c2={[0]:" ",[1]:"u",[2]:"r"};var Zd=16777215;class cg{constructor(u){let n=Math.ceil(u/32);this._states=new Uint32Array(n)}get(u){let n=u/32|0,h=u%32;return(this._states[n]&1<<h)!==0}set(u,n){let h=u/32|0,g=u%32,p=this._states[h];if(n)this._states[h]=p|1<<g;else this._states[h]=p&~(1<<g)}}class Di{constructor(u,n,h){if(u.length!==n.length||u.length>65535)throw Error("invalid startIndexes or endIndexes size");this._startIndexes=u,this._endIndexes=n,this._collapseStates=new cg(u.length),this._userDefinedStates=new cg(u.length),this._recoveredStates=new cg(u.length),this._types=h,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let u=[],n=(h,g)=>{let p=u[u.length-1];return this.getStartLineNumber(p)<=h&&this.getEndLineNumber(p)>=g};for(let h=0,g=this._startIndexes.length;h<g;h++){let p=this._startIndexes[h],m=this._endIndexes[h];if(p>16777215||m>16777215)throw Error("startLineNumber or endLineNumber must not exceed 16777215");while(u.length>0&&!n(p,m))u.pop();let _=u.length>0?u[u.length-1]:-1;u.push(h),this._startIndexes[h]=p+((_&255)<<24),this._endIndexes[h]=m+((_&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(u){return this._startIndexes[u]&16777215}getEndLineNumber(u){return this._endIndexes[u]&16777215}getType(u){return this._types?this._types[u]:void 0}hasTypes(){return!!this._types}isCollapsed(u){return this._collapseStates.get(u)}setCollapsed(u,n){this._collapseStates.set(u,n)}isUserDefined(u){return this._userDefinedStates.get(u)}setUserDefined(u,n){return this._userDefinedStates.set(u,n)}isRecovered(u){return this._recoveredStates.get(u)}setRecovered(u,n){return this._recoveredStates.set(u,n)}getSource(u){if(this.isUserDefined(u))return 1;else if(this.isRecovered(u))return 2;return 0}setSource(u,n){if(n===1)this.setUserDefined(u,!0),this.setRecovered(u,!1);else if(n===2)this.setUserDefined(u,!1),this.setRecovered(u,!0);else this.setUserDefined(u,!1),this.setRecovered(u,!1)}setCollapsedAllOfType(u,n){let h=!1;if(this._types){for(let g=0;g<this._types.length;g++)if(this._types[g]===u)this.setCollapsed(g,n),h=!0}return h}toRegion(u){return new zx(this,u)}getParentIndex(u){this.ensureParentIndices();let n=((this._startIndexes[u]&4278190080)>>>24)+((this._endIndexes[u]&4278190080)>>>16);if(n===65535)return-1;return n}contains(u,n){return this.getStartLineNumber(u)<=n&&this.getEndLineNumber(u)>=n}findIndex(u){let n=0,h=this._startIndexes.length;if(h===0)return-1;while(n<h){let g=Math.floor((n+h)/2);if(u<this.getStartLineNumber(g))h=g;else n=g+1}return n-1}findRange(u){let n=this.findIndex(u);if(n>=0){if(this.getEndLineNumber(n)>=u)return n;n=this.getParentIndex(n);while(n!==-1){if(this.contains(n,u))return n;n=this.getParentIndex(n)}}return-1}toString(){let u=[];for(let n=0;n<this.length;n++)u[n]=`[${c2[this.getSource(n)]}${this.isCollapsed(n)?"+":"-"}] ${this.getStartLineNumber(n)}/${this.getEndLineNumber(n)}`;return u.join(", ")}toFoldRange(u){return{startLineNumber:this._startIndexes[u]&16777215,endLineNumber:this._endIndexes[u]&16777215,type:this._types?this._types[u]:void 0,isCollapsed:this.isCollapsed(u),source:this.getSource(u)}}static fromFoldRanges(u){let n=u.length,h=new Uint32Array(n),g=new Uint32Array(n),p=[],m=!1;for(let v=0;v<n;v++){let w=u[v];if(h[v]=w.startLineNumber,g[v]=w.endLineNumber,p.push(w.type),w.type)m=!0}if(!m)p=void 0;let _=new Di(h,g,p);for(let v=0;v<n;v++){if(u[v].isCollapsed)_.setCollapsed(v,!0);_.setSource(v,u[v].source)}return _}static sanitizeAndMerge(u,n,h,g){h=h??Number.MAX_VALUE;let p=(Q,te)=>Array.isArray(Q)?(oe)=>oe<te?Q[oe]:void 0:(oe)=>oe<te?Q.toFoldRange(oe):void 0,m=p(u,u.length),_=p(n,n.length),v=0,w=0,C=m(0),E=_(0),R=[],Z,X=0,Y=[];while(C||E){let Q=void 0;if(E&&(!C||C.startLineNumber>=E.startLineNumber)){if(C&&C.startLineNumber===E.startLineNumber){if(E.source===1)Q=E;else Q=C,Q.isCollapsed=E.isCollapsed&&(C.endLineNumber===E.endLineNumber||!g?.startsInside(C.startLineNumber+1,C.endLineNumber+1)),Q.source=0;C=m(++v)}else if(Q=E,E.isCollapsed&&E.source===0)Q.source=2;E=_(++w)}else{let te=w,oe=E;while(!0){if(!oe||oe.startLineNumber>C.endLineNumber){Q=C;break}if(oe.source===1&&oe.endLineNumber>C.endLineNumber)break;oe=_(++te)}C=m(++v)}if(Q){while(Z&&Z.endLineNumber<Q.startLineNumber)Z=R.pop();if(Q.endLineNumber>Q.startLineNumber&&Q.startLineNumber>X&&Q.endLineNumber<=h&&(!Z||Z.endLineNumber>=Q.endLineNumber)){if(Y.push(Q),X=Q.startLineNumber,Z)R.push(Z);Z=Q}}}return Y}}class zx{constructor(u,n){this.ranges=u,this.index=n}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(u){return u.startLineNumber<=this.startLineNumber&&u.endLineNumber>=this.endLineNumber}containsLine(u){return this.startLineNumber<=u&&u<=this.endLineNumber}}class gb{get regions(){return this._regions}get textModel(){return this._textModel}constructor(u,n){this._updateEventEmitter=new o,this.onDidChange=this._updateEventEmitter.event,this._textModel=u,this._decorationProvider=n,this._regions=new Di(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(u){if(!u.length)return;u=u.sort((h,g)=>h.regionIndex-g.regionIndex);let n={};this._decorationProvider.changeDecorations((h)=>{let g=0,p=-1,m=-1,_=(v)=>{while(g<v){let w=this._regions.getEndLineNumber(g),C=this._regions.isCollapsed(g);if(w<=p){let E=this.regions.getSource(g)!==0;h.changeDecorationOptions(this._editorDecorationIds[g],this._decorationProvider.getDecorationOption(C,w<=m,E))}if(C&&w>m)m=w;g++}};for(let v of u){let w=v.regionIndex,C=this._editorDecorationIds[w];if(C&&!n[C]){n[C]=!0,_(w);let E=!this._regions.isCollapsed(w);this._regions.setCollapsed(w,E),p=Math.max(p,this._regions.getEndLineNumber(w))}}_(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:u})}removeManualRanges(u){let n=new Set,h=!1;for(let m of u)if(t.isEmpty(m)){let _=this._regions.findRange(m.startLineNumber);while(_!==-1&&this._regions.getSource(_)===0)_=this._regions.getParentIndex(_);if(_===-1)h=!0;else n.add(_)}let g=[],p=(m)=>{for(let _ of u)if(!t.isEmpty(_)&&!(_.startLineNumber>m.endLineNumber||m.startLineNumber>_.endLineNumber))return!0;return!1};for(let m=0;m<this._regions.length;m++){let _=this._regions.toFoldRange(m);if(_.source===0||!h&&!n.has(m)&&!p(_))g.push(_)}this.updatePost(Di.fromFoldRanges(g))}update(u,n){let h=this._currentFoldedOrManualRanges(n),g=Di.sanitizeAndMerge(u,h,this._textModel.getLineCount(),n);this.updatePost(Di.fromFoldRanges(g))}updatePost(u){let n=[],h=-1;for(let g=0,p=u.length;g<p;g++){let m=u.getStartLineNumber(g),_=u.getEndLineNumber(g),v=u.isCollapsed(g),w=u.getSource(g)!==0,C={startLineNumber:m,startColumn:this._textModel.getLineMaxColumn(m),endLineNumber:_,endColumn:this._textModel.getLineMaxColumn(_)+1};if(n.push({range:C,options:this._decorationProvider.getDecorationOption(v,_<=h,w)}),v&&_>h)h=_}this._decorationProvider.changeDecorations((g)=>this._editorDecorationIds=g.deltaDecorations(this._editorDecorationIds,n)),this._regions=u,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(u){let n=[];for(let h=0,g=this._regions.length;h<g;h++){let p=this.regions.isCollapsed(h),m=this.regions.getSource(h);if(p||m!==0){let _=this._regions.toFoldRange(h),v=this._textModel.getDecorationRange(this._editorDecorationIds[h]);if(v){if(p&&u?.startsInside(v.startLineNumber+1,v.endLineNumber))p=!1;n.push({startLineNumber:v.startLineNumber,endLineNumber:v.endLineNumber,type:_.type,isCollapsed:p,source:m})}}}return n}getMemento(){let u=this._currentFoldedOrManualRanges(),n=[],h=this._textModel.getLineCount();for(let g=0,p=u.length;g<p;g++){let m=u[g];if(m.startLineNumber>=m.endLineNumber||m.startLineNumber<1||m.endLineNumber>h)continue;let _=this._getLinesChecksum(m.startLineNumber+1,m.endLineNumber);n.push({startLineNumber:m.startLineNumber,endLineNumber:m.endLineNumber,isCollapsed:m.isCollapsed,source:m.source,checksum:_})}return n.length>0?n:void 0}applyMemento(u){if(!Array.isArray(u))return;let n=[],h=this._textModel.getLineCount();for(let p of u){if(p.startLineNumber>=p.endLineNumber||p.startLineNumber<1||p.endLineNumber>h)continue;let m=this._getLinesChecksum(p.startLineNumber+1,p.endLineNumber);if(!p.checksum||m===p.checksum)n.push({startLineNumber:p.startLineNumber,endLineNumber:p.endLineNumber,type:void 0,isCollapsed:p.isCollapsed??!0,source:p.source??0})}let g=Di.sanitizeAndMerge(this._regions,n,h);this.updatePost(Di.fromFoldRanges(g))}_getLinesChecksum(u,n){return du(this._textModel.getLineContent(u)+this._textModel.getLineContent(n))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(u,n){let h=[];if(this._regions){let g=this._regions.findRange(u),p=1;while(g>=0){let m=this._regions.toRegion(g);if(!n||n(m,p))h.push(m);p++,g=m.parentIndex}}return h}getRegionAtLine(u){if(this._regions){let n=this._regions.findRange(u);if(n>=0)return this._regions.toRegion(n)}return null}getRegionsInside(u,n){let h=[],g=u?u.regionIndex+1:0,p=u?u.endLineNumber:Number.MAX_VALUE;if(n&&n.length===2){let m=[];for(let _=g,v=this._regions.length;_<v;_++){let w=this._regions.toRegion(_);if(this._regions.getStartLineNumber(_)<p){while(m.length>0&&!w.containedBy(m[m.length-1]))m.pop();if(m.push(w),n(w,m.length))h.push(w)}else break}}else for(let m=g,_=this._regions.length;m<_;m++){let v=this._regions.toRegion(m);if(this._regions.getStartLineNumber(m)<p){if(!n||n(v))h.push(v)}else break}return h}}function Bl(u,n,h){let g=[];for(let p of h){let m=u.getRegionAtLine(p);if(m){let _=!m.isCollapsed;if(g.push(m),n>1){let v=u.getRegionsInside(m,(w,C)=>w.isCollapsed!==_&&C<n);g.push(...v)}}}u.toggleCollapseState(g)}function Ma(u,n,h=Number.MAX_VALUE,g){let p=[];if(g&&g.length>0)for(let m of g){let _=u.getRegionAtLine(m);if(_){if(_.isCollapsed!==n)p.push(_);if(h>1){let v=u.getRegionsInside(_,(w,C)=>w.isCollapsed!==n&&C<h);p.push(...v)}}}else{let m=u.getRegionsInside(null,(_,v)=>_.isCollapsed!==n&&v<h);p.push(...m)}u.toggleCollapseState(p)}function pb(u,n,h,g){let p=[];for(let m of g){let _=u.getAllRegionsAtLine(m,(v,w)=>v.isCollapsed!==n&&w<=h);p.push(..._)}u.toggleCollapseState(p)}function Kx(u,n,h){let g=[];for(let p of h){let m=u.getAllRegionsAtLine(p,(_)=>_.isCollapsed!==n);if(m.length>0)g.push(m[0])}u.toggleCollapseState(g)}function Ux(u,n,h,g){let p=(_,v)=>v===n&&_.isCollapsed!==h&&!g.some((w)=>_.containsLine(w)),m=u.getRegionsInside(null,p);u.toggleCollapseState(m)}function mb(u,n,h){let g=[];for(let _ of h){let v=u.getAllRegionsAtLine(_,void 0);if(v.length>0)g.push(v[0])}let p=(_)=>g.every((v)=>!v.containedBy(_)&&!_.containedBy(v))&&_.isCollapsed!==n,m=u.getRegionsInside(null,p);u.toggleCollapseState(m)}function lg(u,n,h){let{textModel:g,regions:p}=u,m=[];for(let _=p.length-1;_>=0;_--)if(h!==p.isCollapsed(_)){let v=p.getStartLineNumber(_);if(n.test(g.getLineContent(v)))m.push(p.toRegion(_))}u.toggleCollapseState(m)}function hg(u,n,h){let g=u.regions,p=[];for(let m=g.length-1;m>=0;m--)if(h!==g.isCollapsed(m)&&n===g.getType(m))p.push(g.toRegion(m));u.toggleCollapseState(p)}function qx(u,n){let h=null,g=n.getRegionAtLine(u);if(g!==null){if(h=g.startLineNumber,u===h){let p=g.parentIndex;if(p!==-1)h=n.regions.getStartLineNumber(p);else h=null}}return h}function jx(u,n){let h=n.getRegionAtLine(u);if(h!==null&&h.startLineNumber===u)if(u!==h.startLineNumber)return h.startLineNumber;else{let g=h.parentIndex,p=0;if(g!==-1)p=n.regions.getStartLineNumber(h.parentIndex);while(h!==null)if(h.regionIndex>0){if(h=n.regions.toRegion(h.regionIndex-1),h.startLineNumber<=p)return null;else if(h.parentIndex===g)return h.startLineNumber}else return null}else if(n.regions.length>0){h=n.regions.toRegion(n.regions.length-1);while(h!==null){if(h.startLineNumber<u)return h.startLineNumber;if(h.regionIndex>0)h=n.regions.toRegion(h.regionIndex-1);else h=null}}return null}function $x(u,n){let h=n.getRegionAtLine(u);if(h!==null&&h.startLineNumber===u){let g=h.parentIndex,p=0;if(g!==-1)p=n.regions.getEndLineNumber(h.parentIndex);else if(n.regions.length===0)return null;else p=n.regions.getEndLineNumber(n.regions.length-1);while(h!==null)if(h.regionIndex<n.regions.length){if(h=n.regions.toRegion(h.regionIndex+1),h.startLineNumber>=p)return null;else if(h.parentIndex===g)return h.startLineNumber}else return null}else if(n.regions.length>0){h=n.regions.toRegion(0);while(h!==null){if(h.startLineNumber>u)return h.startLineNumber;if(h.regionIndex<n.regions.length)h=n.regions.toRegion(h.regionIndex+1);else h=null}}return null}class fb{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(u){if(this._updateEventEmitter=new o,this._hasLineChanges=!1,this._foldingModel=u,this._foldingModelListener=u.onDidChange((n)=>this.updateHiddenRanges()),this._hiddenRanges=[],u.regions.length)this.updateHiddenRanges()}notifyChangeModelContent(u){if(this._hiddenRanges.length&&!this._hasLineChanges)this._hasLineChanges=u.changes.some((n)=>n.range.endLineNumber!==n.range.startLineNumber||ma(n.text)[0]!==0)}updateHiddenRanges(){let u=!1,n=[],h=0,g=0,p=Number.MAX_VALUE,m=-1,_=this._foldingModel.regions;for(;h<_.length;h++){if(!_.isCollapsed(h))continue;let v=_.getStartLineNumber(h)+1,w=_.getEndLineNumber(h);if(p<=v&&w<=m)continue;if(!u&&g<this._hiddenRanges.length&&this._hiddenRanges[g].startLineNumber===v&&this._hiddenRanges[g].endLineNumber===w)n.push(this._hiddenRanges[g]),g++;else u=!0,n.push(new t(v,1,w,1));p=v,m=w}if(this._hasLineChanges||u||g<this._hiddenRanges.length)this.applyHiddenRanges(n)}applyHiddenRanges(u){this._hiddenRanges=u,this._hasLineChanges=!1,this._updateEventEmitter.fire(u)}hasRanges(){return this._hiddenRanges.length>0}isHidden(u){return Gx(this._hiddenRanges,u)!==null}adjustSelections(u){let n=!1,h=this._foldingModel.textModel,g=null,p=(m)=>{if(!g||!l2(m,g))g=Gx(this._hiddenRanges,m);if(g)return g.startLineNumber-1;return null};for(let m=0,_=u.length;m<_;m++){let v=u[m],w=p(v.startLineNumber);if(w)v=v.setStartPosition(w,h.getLineMaxColumn(w)),n=!0;let C=p(v.endLineNumber);if(C)v=v.setEndPosition(C,h.getLineMaxColumn(C)),n=!0;u[m]=v}return n}dispose(){if(this.hiddenRanges.length>0)this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges);if(this._foldingModelListener)this._foldingModelListener.dispose(),this._foldingModelListener=null;this._updateEventEmitter.dispose()}}function l2(u,n){return u>=n.startLineNumber&&u<=n.endLineNumber}function Gx(u,n){let h=Af(u,(g)=>n<g.startLineNumber)-1;if(h>=0&&u[h].endLineNumber>=n)return u[h];return null}var h2=5000,u2="indent";class Xd{constructor(u,n,h){this.editorModel=u,this.languageConfigurationService=n,this.foldingRangesLimit=h,this.id=u2}dispose(){}compute(u){let n=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,h=n&&!!n.offSide,g=n&&n.markers;return Promise.resolve(p2(this.editorModel,h,g,this.foldingRangesLimit))}}class Zx{constructor(u){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=u}insertFirst(u,n,h){if(u>Zd||n>Zd)return;let g=this._length;if(this._startIndexes[g]=u,this._endIndexes[g]=n,this._length++,h<1000)this._indentOccurrences[h]=(this._indentOccurrences[h]||0)+1}toIndentRanges(u){let n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);let h=new Uint32Array(this._length),g=new Uint32Array(this._length);for(let p=this._length-1,m=0;p>=0;p--,m++)h[m]=this._startIndexes[p],g[m]=this._endIndexes[p];return new Di(h,g)}else{this._foldingRangesLimit.update(this._length,n);let h=0,g=this._indentOccurrences.length;for(let v=0;v<this._indentOccurrences.length;v++){let w=this._indentOccurrences[v];if(w){if(w+h>n){g=v;break}h+=w}}let p=u.getOptions().tabSize,m=new Uint32Array(n),_=new Uint32Array(n);for(let v=this._length-1,w=0;v>=0;v--){let C=this._startIndexes[v],E=u.getLineContent(C),R=Hg(E,p);if(R<g||R===g&&h++<n)m[w]=C,_[w]=this._endIndexes[v],w++}return new Di(m,_)}}}var g2={limit:h2,update:()=>{}};function p2(u,n,h,g=g2){let p=u.getOptions().tabSize,m=new Zx(g),_=void 0,v=void 0,w=void 0;if(h)if(h.start.flags===h.end.flags)_=new RegExp(`(${h.start.source})|(?:${h.end.source})`,h.start.flags);else v=h.start,w=h.end;let C=[],E=u.getLineCount()+1;C.push({indent:-1,endAbove:E,line:E});for(let R=u.getLineCount();R>0;R--){let Z=u.getLineContent(R),X=Hg(Z,p),Y=C[C.length-1];if(X===-1){if(n)Y.endAbove=R;continue}let Q=!1,te=!1,oe;if(_){if(_.lastIndex=0,oe=_.exec(Z))Q=!!oe[1],te=!Q}else{if(v)v.lastIndex=0,Q=v.test(Z);if(!Q&&w)w.lastIndex=0,te=w.test(Z)}if(Q||te)if(Q){let le=C.length-1;while(le>0&&C[le].indent!==-2)le--;if(le>0){C.length=le+1,Y=C[le],m.insertFirst(R,Y.line,X),Y.line=R,Y.indent=X,Y.endAbove=R;continue}}else{C.push({indent:-2,endAbove:R,line:R});continue}if(Y.indent>X){do C.pop(),Y=C[C.length-1];while(Y.indent>X);let le=Y.endAbove-1;if(le-R>=1)m.insertFirst(R,le,X)}if(Y.indent===X)Y.endAbove=R;else C.push({indent:X,endAbove:R,line:R})}return m.toIndentRanges(u)}var m2=a("editor.foldBackground",{light:be(bd,0.3),dark:be(bd,0.3),hcDark:null,hcLight:null},e(1060,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},e(1061,"Color of the collapsed text after the first line of a folded range."));a("editorGutter.foldingControlForeground",$g,e(1062,"Color of the folding control in the editor gutter."));var Vl=Pt("folding-expanded",S.chevronDown,e(1063,"Icon for expanded ranges in the editor glyph margin.")),zl=Pt("folding-collapsed",S.chevronRight,e(1064,"Icon for collapsed ranges in the editor glyph margin.")),Xx=Pt("folding-manual-collapsed",zl,e(1065,"Icon for manually collapsed ranges in the editor glyph margin.")),Yx=Pt("folding-manual-expanded",Vl,e(1066,"Icon for manually expanded ranges in the editor glyph margin.")),_b={color:bn(m2),position:1},Yd=e(1067,"Click to expand the range."),ug=e(1068,"Click to collapse the range.");class to{static{this.COLLAPSED_VISUAL_DECORATION=ue.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(zl)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ue.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:_b,isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(zl)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=ue.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(Xx)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ue.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:_b,isWholeLine:!0,linesDecorationsTooltip:Yd,firstLineDecorationClassName:J.asClassName(Xx)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=ue.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Yd})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=ue.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:_b,isWholeLine:!0,linesDecorationsTooltip:Yd})}static{this.EXPANDED_VISUAL_DECORATION=ue.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+J.asClassName(Vl),linesDecorationsTooltip:ug})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ue.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:J.asClassName(Vl),linesDecorationsTooltip:ug})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=ue.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+J.asClassName(Yx),linesDecorationsTooltip:ug})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ue.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:J.asClassName(Yx),linesDecorationsTooltip:ug})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=ue.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=ue.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(u){this.editor=u,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(u,n,h){if(n)return to.HIDDEN_RANGE_DECORATION;if(this.showFoldingControls==="never"){if(u)return this.showFoldingHighlights?to.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:to.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;return to.NO_CONTROLS_EXPANDED_RANGE_DECORATION}if(u)return h?this.showFoldingHighlights?to.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:to.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?to.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:to.COLLAPSED_VISUAL_DECORATION;else if(this.showFoldingControls==="mouseover")return h?to.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:to.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;else return h?to.MANUALLY_EXPANDED_VISUAL_DECORATION:to.EXPANDED_VISUAL_DECORATION}changeDecorations(u){return this.editor.changeDecorations(u)}removeDecorations(u){this.editor.removeDecorations(u)}}var f2={},b2="syntax";class Jd{constructor(u,n,h,g,p){if(this.editorModel=u,this.providers=n,this.handleFoldingRangesChange=h,this.foldingRangesLimit=g,this.fallbackRangeProvider=p,this.id=b2,this.disposables=new d,p)this.disposables.add(p);for(let m of n)if(typeof m.onDidChange==="function")this.disposables.add(m.onDidChange(h))}compute(u){return v2(this.providers,this.editorModel,u).then((n)=>{if(this.editorModel.isDisposed())return null;if(n)return w2(n,this.foldingRangesLimit);return this.fallbackRangeProvider?.compute(u)??null})}dispose(){this.disposables.dispose()}}function v2(u,n,h){let g=null,p=u.map((m,_)=>Promise.resolve(m.provideFoldingRanges(n,f2,h)).then((v)=>{if(h.isCancellationRequested)return;if(Array.isArray(v)){if(!Array.isArray(g))g=[];let w=n.getLineCount();for(let C of v)if(C.start>0&&C.end>C.start&&C.end<=w)g.push({start:C.start,end:C.end,rank:_,kind:C.kind})}},yt));return Promise.all(p).then((m)=>g)}class Jx{constructor(u){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=u}add(u,n,h,g){if(u>Zd||n>Zd)return;let p=this._length;if(this._startIndexes[p]=u,this._endIndexes[p]=n,this._nestingLevels[p]=g,this._types[p]=h,this._length++,g<30)this._nestingLevelCounts[g]=(this._nestingLevelCounts[g]||0)+1}toIndentRanges(){let u=this._foldingRangesLimit.limit;if(this._length<=u){this._foldingRangesLimit.update(this._length,!1);let n=new Uint32Array(this._length),h=new Uint32Array(this._length);for(let g=0;g<this._length;g++)n[g]=this._startIndexes[g],h[g]=this._endIndexes[g];return new Di(n,h,this._types)}else{this._foldingRangesLimit.update(this._length,u);let n=0,h=this._nestingLevelCounts.length;for(let _=0;_<this._nestingLevelCounts.length;_++){let v=this._nestingLevelCounts[_];if(v){if(v+n>u){h=_;break}n+=v}}let g=new Uint32Array(u),p=new Uint32Array(u),m=[];for(let _=0,v=0;_<this._length;_++){let w=this._nestingLevels[_];if(w<h||w===h&&n++<u)g[v]=this._startIndexes[_],p[v]=this._endIndexes[_],m[v]=this._types[_],v++}return new Di(g,p,m)}}}function w2(u,n){let h=u.sort((_,v)=>{let w=_.start-v.start;if(w===0)w=_.rank-v.rank;return w}),g=new Jx(n),p=void 0,m=[];for(let _ of h)if(!p)p=_,g.add(_.start,_.end,_.kind&&_.kind.value,m.length);else if(_.start>p.start)if(_.end<=p.end)m.push(p),p=_,g.add(_.start,_.end,_.kind&&_.kind.value,m.length);else{if(_.start>p.end){do p=m.pop();while(p&&_.start>p.end);if(p)m.push(p);p=_}g.add(_.start,_.end,_.kind&&_.kind.value,m.length)}return g.toIndentRanges()}var y2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Kl=function(u,n){return function(h,g){n(h,g,u)}},Ul,ei=new M("foldingEnabled",!1),gr=class u extends i{static{Ul=this}static{this.ID="editor.contrib.folding"}static get(n){return n.getContribution(Ul.ID)}static getFoldingRangeProviders(n,h){let g=n.foldingRangeProvider.ordered(h);return Ul._foldingRangeSelector?.(g,h)??g}constructor(n,h,g,p,m,_){super();this.contextKeyService=h,this.languageConfigurationService=g,this.languageFeaturesService=_,this.localToDispose=this._register(new d),this.editor=n,this._foldingLimitReporter=this._register(new pg(n));let v=this.editor.getOptions();this._isEnabled=v.get(52),this._useFoldingProviders=v.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=v.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=v.get(55),this.updateDebounceInfo=m.for(_.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new to(n),this.foldingDecorationProvider.showFoldingControls=v.get(126),this.foldingDecorationProvider.showFoldingHighlights=v.get(54),this.foldingEnabled=ei.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration((w)=>{if(w.hasChanged(52))this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged();if(w.hasChanged(56))this.onModelChanged();if(w.hasChanged(126)||w.hasChanged(54)){let C=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=C.get(126),this.foldingDecorationProvider.showFoldingHighlights=C.get(54),this.triggerFoldingModelChanged()}if(w.hasChanged(53))this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged();if(w.hasChanged(57))this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57);if(w.hasChanged(55))this._foldingImportsByDefault=this.editor.getOptions().get(55)})),this.onModelChanged()}saveViewState(){let n=this.editor.getModel();if(!n||!this._isEnabled||n.isTooLargeForTokenization())return{};if(this.foldingModel){let h=this.foldingModel.getMemento(),g=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:h,lineCount:n.getLineCount(),provider:g,foldedImports:this._currentModelHasFoldedImports}}return}restoreViewState(n){let h=this.editor.getModel();if(!h||!this._isEnabled||h.isTooLargeForTokenization()||!this.hiddenRangeModel)return;if(!n)return;if(this._currentModelHasFoldedImports=!!n.foldedImports,n.collapsedRegions&&n.collapsedRegions.length>0&&this.foldingModel){this._restoringViewState=!0;try{this.foldingModel.applyMemento(n.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let n=this.editor.getModel();if(!this._isEnabled||!n||n.isTooLargeForTokenization())return;this._currentModelHasFoldedImports=!1,this.foldingModel=new gb(n,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new fb(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((h)=>this.onHiddenRangesChanges(h))),this.updateScheduler=new qi(this.updateDebounceInfo.get(n)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new ke(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent((h)=>this.onDidChangeModelContent(h))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown((h)=>this.onEditorMouseDown(h))),this.localToDispose.add(this.editor.onMouseUp((h)=>this.onEditorMouseUp(h))),this.localToDispose.add({dispose:()=>{if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged()}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(n){if(this.rangeProvider)return this.rangeProvider;let h=new Xd(n,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=h,this._useFoldingProviders&&this.foldingModel){let g=Ul.getFoldingRangeProviders(this.languageFeaturesService,n);if(g.length>0)this.rangeProvider=new Jd(n,g,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,h)}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(n){this.hiddenRangeModel?.notifyChangeModelContent(n),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){if(this.updateScheduler){if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.foldingModelPromise=this.updateScheduler.trigger(()=>{let n=this.foldingModel;if(!n)return null;let h=new dn,g=this.getRangeProvider(n.textModel),p=this.foldingRegionPromise=Zt((m)=>g.compute(m));return p.then((m)=>{if(m&&p===this.foldingRegionPromise){let _;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let C=m.setCollapsedAllOfType(fs.Imports.value,!0);if(C)_=ns.capture(this.editor),this._currentModelHasFoldedImports=C}let v=this.editor.getSelections();n.update(m,x2(v)),_?.restore(this.editor);let w=this.updateDebounceInfo.update(n.textModel,h.elapsed());if(this.updateScheduler)this.updateScheduler.defaultDelay=w}return n})}).then(void 0,(n)=>(ee(n),null))}}onHiddenRangesChanges(n){if(this.hiddenRangeModel&&n.length&&!this._restoringViewState){let h=this.editor.getSelections();if(h){if(this.hiddenRangeModel.adjustSelections(h))this.editor.setSelections(h)}}this.editor.setHiddenAreas(n,this)}onCursorPositionChanged(){if(this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges())this.cursorChangedScheduler.schedule()}revealCursor(){let n=this.getFoldingModel();if(!n)return;n.then((h)=>{if(h){let g=this.editor.getSelections();if(g&&g.length>0){let p=[];for(let m of g){let _=m.selectionStartLineNumber;if(this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(_))p.push(...h.getAllRegionsAtLine(_,(v)=>v.isCollapsed&&_>v.startLineNumber))}if(p.length)h.toggleCollapseState(p),this.reveal(g[0].getPosition())}}}).then(void 0,ee)}onEditorMouseDown(n){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!n.target||!n.target.range)return;if(!n.event.leftButton&&!n.event.middleButton)return;let h=n.target.range,g=!1;switch(n.target.type){case 4:{let p=n.target.detail,m=n.target.element.offsetLeft;if(p.offsetX-m<4)return;g=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!n.target.detail.isAfterLines)break}return}case 6:{if(this.hiddenRangeModel.hasRanges()){let p=this.editor.getModel();if(p&&h.startColumn===p.getLineMaxColumn(h.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:h.startLineNumber,iconClicked:g}}onEditorMouseUp(n){let h=this.foldingModel;if(!h||!this.mouseDownInfo||!n.target)return;let g=this.mouseDownInfo.lineNumber,p=this.mouseDownInfo.iconClicked,m=n.target.range;if(!m||m.startLineNumber!==g)return;if(p){if(n.target.type!==4)return}else{let v=this.editor.getModel();if(!v||m.startColumn!==v.getLineMaxColumn(g))return}let _=h.getRegionAtLine(g);if(_&&_.startLineNumber===g){let v=_.isCollapsed;if(p||v){let w=n.event.altKey,C=[];if(w){let E=(Z)=>!Z.containedBy(_)&&!_.containedBy(Z),R=h.getRegionsInside(null,E);for(let Z of R)if(Z.isCollapsed)C.push(Z);if(C.length===0)C=R}else{let E=n.event.middleButton||n.event.shiftKey;if(E){for(let R of h.getRegionsInside(_))if(R.isCollapsed===v)C.push(R)}if(v||!E||C.length===0)C.push(_)}h.toggleCollapseState(C),this.reveal({lineNumber:g,column:1})}}}reveal(n){this.editor.revealPositionInCenterIfOutsideViewport(n,0)}};gr=Ul=y2([Kl(1,G),Kl(2,ht),Kl(3,wt),Kl(4,uo),Kl(5,z)],gr);class pg extends i{constructor(u){super();this.editor=u,this._onDidChange=this._register(new o),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(u,n){if(u!==this._computed||n!==this._limited)this._computed=u,this._limited=n,this._onDidChange.fire()}}class ti extends U{runEditorCommand(u,n,h){let g=u.get(ht),p=gr.get(n);if(!p)return;let m=p.getFoldingModel();if(m)return this.reportTelemetry(u,n),m.then((_)=>{if(_){this.invoke(p,_,n,h,g);let v=n.getSelection();if(v)p.reveal(v.getStartPosition())}})}getSelectedLines(u){let n=u.getSelections();return n?n.map((h)=>h.startLineNumber):[]}getLineNumbers(u,n){if(u&&u.selectionLines)return u.selectionLines.map((h)=>h+1);return this.getSelectedLines(n)}run(u,n){}}function x2(u){if(!u||u.length===0)return{startsInside:()=>!1};return{startsInside(n,h){for(let g of u){let p=g.startLineNumber;if(p>=n&&p<=h)return!0}return!1}}}function Qx(u){if(!ro(u)){if(!cn(u))return!1;let n=u;if(!ro(n.levels)&&!As(n.levels))return!1;if(!ro(n.direction)&&!$n(n.direction))return!1;if(!ro(n.selectionLines)&&(!Array.isArray(n.selectionLines)||!n.selectionLines.every(As)))return!1}return!0}class eI extends ti{constructor(){super({id:"editor.unfold",label:b(1040,"Unfold"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument:
|
|
22
|
+
* 'levels': Number of levels to unfold. If not set, defaults to 1.
|
|
23
|
+
* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
|
|
24
|
+
* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.
|
|
25
|
+
`,constraint:Qx,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(u,n,h,g){let p=g&&g.levels||1,m=this.getLineNumbers(g,h);if(g&&g.direction==="up")pb(n,!1,p,m);else Ma(n,!1,p,m)}}class tI extends ti{constructor(){super({id:"editor.unfoldRecursively",label:b(1041,"Unfold Recursively"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2142),weight:100}})}invoke(u,n,h,g){Ma(n,!1,Number.MAX_VALUE,this.getSelectedLines(h))}}class iI extends ti{constructor(){super({id:"editor.fold",label:b(1042,"Fold"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument:
|
|
26
|
+
* 'levels': Number of levels to fold.
|
|
27
|
+
* 'direction': If 'up', folds given number of levels up otherwise folds down.
|
|
28
|
+
* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.
|
|
29
|
+
If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
|
|
30
|
+
`,constraint:Qx,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(u,n,h,g){let p=this.getLineNumbers(g,h),m=g&&g.levels,_=g&&g.direction;if(typeof m!=="number"&&typeof _!=="string")Kx(n,!0,p);else if(_==="up")pb(n,!0,m||1,p);else Ma(n,!0,m||1,p)}}class oI extends ti{constructor(){super({id:"editor.toggleFold",label:b(1043,"Toggle Fold"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2090),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);Bl(n,1,g)}}class nI extends ti{constructor(){super({id:"editor.foldRecursively",label:b(1044,"Fold Recursively"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2140),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);Ma(n,!0,Number.MAX_VALUE,g)}}class rI extends ti{constructor(){super({id:"editor.toggleFoldRecursively",label:b(1045,"Toggle Fold Recursively"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,3114),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);Bl(n,Number.MAX_VALUE,g)}}class sI extends ti{constructor(){super({id:"editor.foldAllBlockComments",label:b(1046,"Fold All Block Comments"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2138),weight:100}})}invoke(u,n,h,g,p){if(n.regions.hasTypes())hg(n,fs.Comment.value,!0);else{let m=h.getModel();if(!m)return;let _=p.getLanguageConfiguration(m.getLanguageId()).comments;if(_&&_.blockCommentStartToken){let v=new RegExp("^\\s*"+Ui(_.blockCommentStartToken));lg(n,v,!0)}}}}class aI extends ti{constructor(){super({id:"editor.foldAllMarkerRegions",label:b(1047,"Fold All Regions"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2077),weight:100}})}invoke(u,n,h,g,p){if(n.regions.hasTypes())hg(n,fs.Region.value,!0);else{let m=h.getModel();if(!m)return;let _=p.getLanguageConfiguration(m.getLanguageId()).foldingRules;if(_&&_.markers&&_.markers.start){let v=new RegExp(_.markers.start);lg(n,v,!0)}}}}class dI extends ti{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:b(1048,"Unfold All Regions"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2078),weight:100}})}invoke(u,n,h,g,p){if(n.regions.hasTypes())hg(n,fs.Region.value,!1);else{let m=h.getModel();if(!m)return;let _=p.getLanguageConfiguration(m.getLanguageId()).foldingRules;if(_&&_.markers&&_.markers.start){let v=new RegExp(_.markers.start);lg(n,v,!1)}}}}class cI extends ti{constructor(){super({id:"editor.foldAllExcept",label:b(1049,"Fold All Except Selected"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2136),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);mb(n,!0,g)}}class lI extends ti{constructor(){super({id:"editor.unfoldAllExcept",label:b(1050,"Unfold All Except Selected"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2134),weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);mb(n,!1,g)}}class hI extends ti{constructor(){super({id:"editor.foldAll",label:b(1051,"Fold All"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2069),weight:100}})}invoke(u,n,h){Ma(n,!0)}}class uI extends ti{constructor(){super({id:"editor.unfoldAll",label:b(1052,"Unfold All"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2088),weight:100}})}invoke(u,n,h){Ma(n,!1)}}class ql extends ti{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=(u)=>ql.ID_PREFIX+u}getFoldingLevel(){return parseInt(this.id.substr(ql.ID_PREFIX.length))}invoke(u,n,h){Ux(n,this.getFoldingLevel(),!0,this.getSelectedLines(h))}}class gI extends ti{constructor(){super({id:"editor.gotoParentFold",label:b(1053,"Go to Parent Fold"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);if(g.length>0){let p=qx(g[0],n);if(p!==null)h.setSelection({startLineNumber:p,startColumn:1,endLineNumber:p,endColumn:1})}}}class pI extends ti{constructor(){super({id:"editor.gotoPreviousFold",label:b(1054,"Go to Previous Folding Range"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);if(g.length>0){let p=jx(g[0],n);if(p!==null)h.setSelection({startLineNumber:p,startColumn:1,endLineNumber:p,endColumn:1})}}}class mI extends ti{constructor(){super({id:"editor.gotoNextFold",label:b(1055,"Go to Next Folding Range"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}invoke(u,n,h){let g=this.getSelectedLines(h);if(g.length>0){let p=$x(g[0],n);if(p!==null)h.setSelection({startLineNumber:p,startColumn:1,endLineNumber:p,endColumn:1})}}}class fI extends ti{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:b(1056,"Create Folding Range from Selection"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2135),weight:100}})}invoke(u,n,h){let g=[],p=h.getSelections();if(p){for(let m of p){let _=m.endLineNumber;if(m.endColumn===1)--_;if(_>m.startLineNumber)g.push({startLineNumber:m.startLineNumber,endLineNumber:_,type:void 0,isCollapsed:!0,source:1}),h.setSelection({startLineNumber:m.startLineNumber,startColumn:1,endLineNumber:m.startLineNumber,endColumn:1})}if(g.length>0){g.sort((_,v)=>_.startLineNumber-v.startLineNumber);let m=Di.sanitizeAndMerge(n.regions,g,h.getModel()?.getLineCount());n.updatePost(Di.fromFoldRanges(m))}}}}class _I extends ti{constructor(){super({id:"editor.removeManualFoldingRanges",label:b(1057,"Remove Manual Folding Ranges"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2137),weight:100}})}invoke(u,n,h){let g=h.getSelections();if(g)n.removeManualRanges(g),u.triggerFoldingModelChanged()}}class bI extends ti{constructor(){super({id:"editor.toggleImportFold",label:b(1058,"Toggle Import Fold"),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,weight:100}})}async invoke(u,n){let h=[],g=n.regions;for(let p=g.length-1;p>=0;p--)if(g.getType(p)===fs.Imports.value)h.push(g.toRegion(p));n.toggleCollapseState(h),u.triggerFoldingModelChanged()}}fe(gr.ID,gr,0);O(eI);O(tI);O(iI);O(nI);O(rI);O(hI);O(uI);O(sI);O(aI);O(dI);O(cI);O(lI);O(oI);O(gI);O(pI);O(mI);O(fI);O(_I);O(bI);for(let u=1;u<=7;u++)U2(new ql({id:ql.ID(u),label:b(1059,"Fold Level {0}",u),precondition:ei,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2048|21+u),weight:100}}));Le.registerCommand("_executeFoldingRangeProvider",async function(u,...n){let[h]=n;if(!(h instanceof q))throw yo();let g=u.get(z),p=u.get(Et).getModel(h);if(!p)throw yo();let m=u.get(re);if(!m.getValue("editor.folding",{resource:h}))return[];let _=u.get(ht),v=m.getValue("editor.foldingStrategy",{resource:h}),w={get limit(){return m.getValue("editor.foldingMaximumRegions",{resource:h})},update:(X,Y)=>{}},C=new Xd(p,_,w),E=C;if(v!=="indentation"){let X=gr.getFoldingRangeProviders(g,p);if(X.length)E=new Jd(p,X,()=>{},w,C)}let R=await E.compute(we.None),Z=[];try{if(R)for(let X=0;X<R.length;X++){let Y=R.getType(X);Z.push({start:R.getStartLineNumber(X),end:R.getEndLineNumber(X),kind:Y?fs.fromValue(Y):void 0})}return Z}finally{E.dispose()}});var vI=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Sg=function(u,n){return function(h,g){n(h,g,u)}};class bb{constructor(u,n,h){this.marker=u,this.index=n,this.total=h}}var vb=class u{constructor(n,h,g){if(this._markerService=h,this._configService=g,this._onDidChange=new o,this.onDidChange=this._onDidChange.event,this._dispoables=new d,this._markers=[],this._nextIdx=-1,q.isUri(n))this._resourceFilter=(v)=>v.toString()===n.toString();else if(n)this._resourceFilter=n;let p=this._configService.getValue("problems.sortOrder"),m=(v,w)=>{let C=Sf(v.resource.toString(),w.resource.toString());if(C===0)if(p==="position")C=t.compareRangesUsingStarts(v,w)||rn.compare(v.severity,w.severity);else C=rn.compare(v.severity,w.severity)||t.compareRangesUsingStarts(v,w);return C},_=()=>{let v=this._markerService.read({resource:q.isUri(n)?n:void 0,severities:rn.Error|rn.Warning|rn.Info});if(typeof n==="function")v=v.filter((w)=>this._resourceFilter(w.resource));if(v.sort(m),ot(v,this._markers,(w,C)=>w.resource.toString()===C.resource.toString()&&w.startLineNumber===C.startLineNumber&&w.startColumn===C.startColumn&&w.endLineNumber===C.endLineNumber&&w.endColumn===C.endColumn&&w.severity===C.severity&&w.message===C.message))return!1;return this._markers=v,!0};_(),this._dispoables.add(h.onMarkerChanged((v)=>{if(!this._resourceFilter||v.some((w)=>this._resourceFilter(w))){if(_())this._nextIdx=-1,this._onDidChange.fire()}}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(n){if(!this._resourceFilter&&!n)return!0;if(!this._resourceFilter||!n)return!1;return this._resourceFilter(n)}get selected(){let n=this._markers[this._nextIdx];return n&&new bb(n,this._nextIdx+1,this._markers.length)}_initIdx(n,h,g){let p=this._markers.findIndex((m)=>gs(m.resource,n.uri));if(p<0){if(p=_f(this._markers.length,(m)=>Sf(this._markers[m].resource.toString(),n.uri.toString())),p<0)p=~p;if(g)this._nextIdx=p;else this._nextIdx=(this._markers.length+p-1)%this._markers.length}else{let m=!1,_=!1;for(let v=p;v<this._markers.length;v++){let w=t.lift(this._markers[v]);if(w.isEmpty()){let C=n.getWordAtPosition(w.getStartPosition());if(C)w=new t(w.startLineNumber,C.startColumn,w.startLineNumber,C.endColumn)}if(h&&(w.containsPosition(h)||h.isBeforeOrEqual(w.getStartPosition()))){this._nextIdx=v,m=!0,_=!w.containsPosition(h);break}if(this._markers[v].resource.toString()!==n.uri.toString())break}if(!m)this._nextIdx=g?0:this._markers.length-1;else if(_&&!g)this._nextIdx-=1}if(this._nextIdx<0)this._nextIdx=this._markers.length-1}resetIndex(){this._nextIdx=-1}move(n,h,g){if(this._markers.length===0)return!1;let p=this._nextIdx;if(this._nextIdx===-1)this._initIdx(h,g,n);else if(n)this._nextIdx=(this._nextIdx+1)%this._markers.length;else if(!n)this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length;if(p!==this._nextIdx)return!0;return!1}find(n,h){let g=this._markers.findIndex((p)=>p.resource.toString()===n.toString());if(g<0)return;for(;g<this._markers.length;g++)if(t.containsPosition(this._markers[g],h))return new bb(this._markers[g],g+1,this._markers.length);return}};vb=vI([Sg(1,Pr),Sg(2,re)],vb);var Sb=ie("IMarkerNavigationService"),wb=class u{constructor(n,h){this._markerService=n,this._configService=h,this._provider=new zn}getMarkerList(n){for(let h of this._provider){let g=h.getMarkerList(n);if(g)return g}return new vb(n,this._markerService,this._configService)}};wb=vI([Sg(0,Pr),Sg(1,re)],wb);_e(Sb,wb,1);var I2=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},_r=function(u,n){return function(h,g){n(h,g,u)}},Wi=class u extends Cc{constructor(n,h,g,p,m,_,v,w,C,E,R,Z,X,Y){super(n,{...p.getRawOptions(),overflowWidgetsDomNode:p.getOverflowWidgetsDomNode()},g,m,_,v,w,C,E,R,Z,X,Y);this._parentEditor=p,this._overwriteOptions=h,super.updateOptions(this._overwriteOptions),this._register(p.onDidChangeConfiguration((Q)=>this._onParentConfigurationChanged(Q)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(n){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(n){vg(this._overwriteOptions,n,!0),super.updateOptions(this._overwriteOptions)}};Wi=I2([_r(4,A),_r(5,Te),_r(6,Ue),_r(7,G),_r(8,We),_r(9,wt),_r(10,on),_r(11,ht),_r(12,z),_r(13,Ar)],Wi);function Cg(u){let n=u.get(Te).getFocusedCodeEditor();if(n instanceof Wi)return n.getParentEditor();return n}var wI=new y(new D(0,122,204)),$2={showArrow:!0,showFrame:!0,className:"",frameColor:wI,arrowColor:wI,keepEditorSelection:!1},eT="vs.editor.contrib.zoneWidget";class SI{constructor(u,n,h,g,p,m,_,v){this.id="",this.domNode=u,this.afterLineNumber=n,this.afterColumn=h,this.heightInLines=g,this.showInHiddenAreas=_,this.ordinal=v,this._onDomNodeTop=p,this._onComputedHeight=m}onDomNodeTop(u){this._onDomNodeTop(u)}onComputedHeight(u){this._onComputedHeight(u)}}class CI{constructor(u,n){this._id=u,this._domNode=n}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class Cb{static{this._IdGenerator=new $y(".arrow-decoration-")}constructor(u){this._editor=u,this._ruleName=Cb._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),Y1(this._ruleName)}set color(u){if(this._color!==u)this._color=u,this._updateStyle()}set height(u){if(this._height!==u)this._height=u,this._updateStyle()}_updateStyle(){Y1(this._ruleName),yy(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(u){if(u.column===1)u={lineNumber:u.lineNumber,column:2};this._decorations.set([{range:t.fromPositions(u),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class yb{constructor(u,n={}){if(this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new d,this.container=null,this._isShowing=!1,this.editor=u,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=za(n),vg(this.options,$2,!1),this.domNode=document.createElement("div"),!this.options.isAccessible)this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation");this._disposables.add(this.editor.onDidLayoutChange((h)=>{let g=this._getWidth(h);this.domNode.style.width=g+"px",this.domNode.style.left=this._getLeft(h)+"px",this._onWidth(g)}))}dispose(){if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;if(this._viewZone)this.editor.changeViewZones((u)=>{if(this._viewZone)u.removeZone(this._viewZone.id);this._viewZone=null});this._positionMarkerId.clear(),this._disposables.dispose()}create(){if(this.domNode.classList.add("zone-widget"),this.options.className)this.domNode.classList.add(this.options.className);if(this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow)this._arrow=new Cb(this.editor),this._disposables.add(this._arrow);this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(u){if(u.frameColor)this.options.frameColor=u.frameColor;if(u.arrowColor)this.options.arrowColor=u.arrowColor;this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let u=this.options.frameColor.toString();this.container.style.borderTopColor=u,this.container.style.borderBottomColor=u}if(this._arrow&&this.options.arrowColor){let u=this.options.arrowColor.toString();this._arrow.color=u}}_getWidth(u){return u.width-u.minimap.minimapWidth-u.verticalScrollbarWidth}_getLeft(u){if(u.minimap.minimapWidth>0&&u.minimap.minimapLeft===0)return u.minimap.minimapWidth;return 0}_onViewZoneTop(u){this.domNode.style.top=u+"px"}_onViewZoneHeight(u){if(this.domNode.style.height=`${u}px`,this.container){let n=u-this._decoratingElementsHeight();this.container.style.height=`${n}px`;let h=this.editor.getLayoutInfo();this._doLayout(n,this._getWidth(h))}this._resizeSash?.layout()}get position(){let u=this._positionMarkerId.getRange(0);if(!u)return;return u.getStartPosition()}show(u,n){let h=t.isIRange(u)?t.lift(u):t.fromPositions(u);this._isShowing=!0,this._showImpl(h,n),this._isShowing=!1,this._positionMarkerId.set([{range:h,options:ue.EMPTY}])}hide(){if(this._viewZone)this.editor.changeViewZones((u)=>{if(this._viewZone)u.removeZone(this._viewZone.id)}),this._viewZone=null;if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this._arrow?.hide(),this._positionMarkerId.clear(),this._isSashResizeHeight=!1}_decoratingElementsHeight(){let u=this.editor.getOption(75),n=0;if(this.options.showArrow){let h=Math.round(u/3);n+=2*h}if(this.options.showFrame){let h=this.options.frameWidth??Math.round(u/9);n+=2*h}return n}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*0.8)}_showImpl(u,n){let h=u.getStartPosition(),g=this.editor.getLayoutInfo(),p=this._getWidth(g);this.domNode.style.width=`${p}px`,this.domNode.style.left=this._getLeft(g)+"px";let m=document.createElement("div");m.style.overflow="hidden";let _=this.editor.getOption(75),v=this._getMaximumHeightInLines();if(v!==void 0)n=Math.min(n,v);let w=0,C=0;if(this._arrow&&this.options.showArrow)w=Math.round(_/3),this._arrow.height=w,this._arrow.show(h);if(this.options.showFrame)C=Math.round(_/9);if(this.editor.changeViewZones((Z)=>{if(this._viewZone)Z.removeZone(this._viewZone.id);if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this.domNode.style.top="-1000px",this._viewZone=new SI(m,h.lineNumber,h.column,n,(X)=>this._onViewZoneTop(X),(X)=>this._onViewZoneHeight(X),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=Z.addZone(this._viewZone),this._overlayWidget=new CI(eT+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){let Z=this.options.frameWidth?this.options.frameWidth:C;this.container.style.borderTopWidth=Z+"px",this.container.style.borderBottomWidth=Z+"px"}let E=n*_-this._decoratingElementsHeight();if(this.container)this.container.style.top=w+"px",this.container.style.height=E+"px",this.container.style.overflow="hidden";if(this._doLayout(E,p),!this.options.keepEditorSelection)this.editor.setSelection(u);let R=this.editor.getModel();if(R){let Z=R.validateRange(new t(u.startLineNumber,1,u.endLineNumber+1,1));this.revealRange(Z,Z.startLineNumber===R.getLineCount())}}revealRange(u,n){if(n)this.editor.revealLineNearTop(u.endLineNumber,0);else this.editor.revealRange(u,0)}setCssClass(u,n){if(!this.container)return;if(n)this.container.classList.remove(n);this.container.classList.add(u)}_onWidth(u){}_doLayout(u,n){}_relayout(u,n){let h=this._getMaximumHeightInLines(),g=n&&h!==void 0?Math.min(h,u):u;if(this._viewZone&&this._viewZone.heightInLines!==g)this.editor.changeViewZones((p)=>{if(this._viewZone)this._viewZone.heightInLines=g,p.layoutZone(this._viewZone.id)}),this._updateSashEnablement()}_initSash(){if(this._resizeSash)return;if(this._resizeSash=this._disposables.add(new mo(this.domNode,this,{orientation:1})),!this.options.isResizeable)this._resizeSash.state=0;let u;this._disposables.add(this._resizeSash.onDidStart((n)=>{if(this._viewZone)u={startY:n.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()}})),this._disposables.add(this._resizeSash.onDidEnd(()=>{u=void 0})),this._disposables.add(this._resizeSash.onDidChange((n)=>{if(u){let h=(n.currentY-u.startY)/this.editor.getOption(75),g=h<0?Math.ceil(h):Math.floor(h),p=u.heightInLines+g;if(p>u.minLines&&p<u.maxLines)this._isSashResizeHeight=!0,this._relayout(p)}}))}_updateSashEnablement(){if(this._resizeSash){let{minLines:u,maxLines:n}=this._getResizeBounds();this._resizeSash.state=u===n?0:3}}_getResizeBounds(){return{minLines:5,maxLines:35}}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){let u=this.editor.getLayoutInfo();return u.width-u.minimap.minimapWidth}}var yI=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},xI=function(u,n){return function(h,g){n(h,g,u)}},xb=ie("IPeekViewService");_e(xb,class{constructor(){this._widgets=new Map}addExclusiveWidget(u,n){let h=this._widgets.get(u);if(h)h.listener.dispose(),h.widget.dispose();let g=()=>{let p=this._widgets.get(u);if(p&&p.widget===n)p.listener.dispose(),this._widgets.delete(u)};this._widgets.set(u,{widget:n,listener:n.onDidClose(g)})}},1);var mi;(function(u){u.inPeekEditor=new M("inReferenceSearchEditor",!0,e(1382,"Whether the current code editor is embedded inside peek")),u.notInPeekEditor=u.inPeekEditor.toNegated()})(mi||(mi={}));var xg=class u{static{this.ID="editor.contrib.referenceController"}constructor(n,h){if(n instanceof Wi)mi.inPeekEditor.bindTo(h)}dispose(){}};xg=yI([xI(1,G)],xg);fe(xg.ID,xg,0);var tT={headerBackgroundColor:y.white,primaryHeadingColor:y.fromHex("#333333"),secondaryHeadingColor:y.fromHex("#6c6c6cb3")},Qd=class u extends yb{constructor(n,h,g){super(n,h);this.instantiationService=g,this._onDidClose=new o,this.onDidClose=this._onDidClose.event,vg(this.options,tT,!1);let p=ct(this.editor);p.openedPeekWidgets.set(p.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();let n=ct(this.editor);n.openedPeekWidgets.set(n.openedPeekWidgets.get()-1,void 0)}}style(n){let h=this.options;if(n.headerBackgroundColor)h.headerBackgroundColor=n.headerBackgroundColor;if(n.primaryHeadingColor)h.primaryHeadingColor=n.primaryHeadingColor;if(n.secondaryHeadingColor)h.secondaryHeadingColor=n.secondaryHeadingColor;super.style(n)}_applyStyles(){super._applyStyles();let n=this.options;if(this._headElement&&n.headerBackgroundColor)this._headElement.style.backgroundColor=n.headerBackgroundColor.toString();if(this._primaryHeading&&n.primaryHeadingColor)this._primaryHeading.style.color=n.primaryHeadingColor.toString();if(this._secondaryHeading&&n.secondaryHeadingColor)this._secondaryHeading.style.color=n.secondaryHeadingColor.toString();if(this._bodyElement&&n.frameColor)this._bodyElement.style.borderColor=n.frameColor.toString()}_fillContainer(n){this.setCssClass("peekview-widget"),this._headElement=x(".head"),this._bodyElement=x(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),n.appendChild(this._headElement),n.appendChild(this._bodyElement)}_fillHead(n,h){if(this._titleElement=x(".peekview-title"),this.options.supportOnTitleClick)this._titleElement.classList.add("clickable"),Ct(this._titleElement,"click",(m)=>this._onTitleClick(m));k(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=x("span.filename"),this._secondaryHeading=x("span.dirname"),this._metaHeading=x("span.meta"),k(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);let g=x(".peekview-actions");k(this._headElement,g);let p=this._getActionBarOptions();if(this._actionbarWidget=new Qi(g,p),this._disposables.add(this._actionbarWidget),!h)this._actionbarWidget.push(this._disposables.add(new wo("peekview.close",e(1383,"Close"),J.asClassName(S.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(n){}_getActionBarOptions(){return{actionViewItemProvider:Ay.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(n){}setTitle(n,h){if(this._primaryHeading&&this._secondaryHeading)if(this._primaryHeading.innerText=n,this._primaryHeading.setAttribute("title",n),h)this._secondaryHeading.innerText=h;else mn(this._secondaryHeading)}setMetaTitle(n){if(this._metaHeading)if(n)this._metaHeading.innerText=n,Oo(this._metaHeading);else po(this._metaHeading)}_doLayout(n,h){if(!this._isShowing&&n<0){this.dispose();return}let g=Math.ceil(this.editor.getOption(75)*1.2),p=Math.round(n-(g+1));this._doLayoutHead(g,h),this._doLayoutBody(p,h)}_doLayoutHead(n,h){if(this._headElement)this._headElement.style.height=`${n}px`,this._headElement.style.lineHeight=this._headElement.style.height}_doLayoutBody(n,h){if(this._bodyElement)this._bodyElement.style.height=`${n}px`}};Qd=yI([xI(2,A)],Qd);var II=a("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:y.black,hcLight:y.white},e(1384,"Background color of the peek view title area.")),Vg=a("peekViewTitleLabel.foreground",{dark:y.white,light:y.black,hcDark:y.white,hcLight:qa},e(1385,"Color of the peek view title.")),Ug=a("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},e(1386,"Color of the peek view title info.")),LI=a("peekView.border",{dark:Bs,light:Bs,hcDark:Be,hcLight:Be},e(1387,"Color of the peek view borders and arrow.")),kI=a("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:y.black,hcLight:y.white},e(1388,"Background color of the peek view result list."));a("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:y.white,hcLight:qa},e(1389,"Foreground color for line nodes in the peek view result list."));a("peekViewResult.fileForeground",{dark:y.white,light:"#1E1E1E",hcDark:y.white,hcLight:qa},e(1390,"Foreground color for file nodes in the peek view result list."));a("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},e(1391,"Background color of the selected entry in the peek view result list."));a("peekViewResult.selectionForeground",{dark:y.white,light:"#6C6C6C",hcDark:y.white,hcLight:qa},e(1392,"Foreground color of the selected entry in the peek view result list."));var Ib=a("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:y.black,hcLight:y.white},e(1393,"Background color of the peek view editor."));a("peekViewEditorGutter.background",Ib,e(1394,"Background color of the gutter in the peek view editor."));a("peekViewEditorStickyScroll.background",Ib,e(1395,"Background color of sticky scroll in the peek view editor."));a("peekViewEditorStickyScrollGutter.background",Ib,e(1396,"Background color of the gutter part of sticky scroll in the peek view editor."));a("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},e(1397,"Match highlight color in the peek view result list."));a("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},e(1398,"Match highlight color in the peek view editor."));a("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:Xt,hcLight:Xt},e(1399,"Match highlight border in the peek view editor."));var Zg;(function(u){function n(h){switch(h){case hn.Ignore:return"severity-ignore "+J.asClassName(S.info);case hn.Info:return J.asClassName(S.info);case hn.Warning:return J.asClassName(S.warning);case hn.Error:return J.asClassName(S.error);default:return""}}u.className=n})(Zg||(Zg={}));var iT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ec=function(u,n){return function(h,g){n(h,g,u)}},Lb;class RI{constructor(u,n,h,g,p){this._openerService=g,this._labelService=p,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new d,this._editor=n;let m=document.createElement("div");m.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),m.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),m.appendChild(this._relatedBlock),this._disposables.add(Ct(this._relatedBlock,"click",(_)=>{_.preventDefault();let v=this._relatedDiagnostics.get(_.target);if(v)h(v)})),this._scrollable=new X0(m,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),u.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((_)=>{m.style.left=`-${_.scrollLeft}px`,m.style.top=`-${_.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){ze(this._disposables)}update(u){let{source:n,message:h,relatedInformation:g,code:p}=u,m=(n?.length||0)+2;if(p)if(typeof p==="string")m+=p.length;else m+=p.value.length;let _=Ci(h);this._lines=_.length,this._longestLineLength=0;for(let R of _)this._longestLineLength=Math.max(R.length+m,this._longestLineLength);mn(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(u)),jo(this.getAriaLabel(u)),this._editor.applyFontInfo(this._messageBlock);let v=this._messageBlock;for(let R of _){if(v=document.createElement("div"),v.innerText=R,R==="")v.style.height=this._messageBlock.style.lineHeight;this._messageBlock.appendChild(v)}if(n||p){let R=document.createElement("span");if(R.classList.add("details"),v.appendChild(R),n){let Z=document.createElement("span");Z.innerText=n,Z.classList.add("source"),R.appendChild(Z)}if(p)if(typeof p==="string"){let Z=document.createElement("span");Z.innerText=`(${p})`,Z.classList.add("code"),R.appendChild(Z)}else{this._codeLink=x("a.code-link"),this._codeLink.setAttribute("href",`${p.target.toString()}`),this._codeLink.onclick=(X)=>{this._openerService.open(p.target),X.preventDefault(),X.stopPropagation()};let Z=k(this._codeLink,x("span"));Z.innerText=p.value,R.appendChild(this._codeLink)}}if(mn(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Kn(g)){let R=this._relatedBlock.appendChild(document.createElement("div"));R.style.paddingTop=`${Math.floor(this._editor.getOption(75)*0.66)}px`,this._lines+=1;for(let Z of g){let X=document.createElement("div"),Y=document.createElement("a");Y.classList.add("filename"),Y.innerText=`${this._labelService.getUriBasenameLabel(Z.resource)}(${Z.startLineNumber}, ${Z.startColumn}): `,Y.title=this._labelService.getUriLabel(Z.resource),this._relatedDiagnostics.set(Y,Z);let Q=document.createElement("span");Q.innerText=Z.message,X.appendChild(Y),X.appendChild(Q),this._lines+=1,R.appendChild(X)}}let w=this._editor.getOption(59),C=Math.ceil(w.typicalFullwidthCharacterWidth*this._longestLineLength*0.75),E=w.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:C,scrollHeight:E})}layout(u,n){this._scrollable.getDomNode().style.height=`${u}px`,this._scrollable.getDomNode().style.width=`${n}px`,this._scrollable.setScrollDimensions({width:n,height:u})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(u){let n="";switch(u.severity){case rn.Error:n=e(1082,"Error");break;case rn.Warning:n=e(1083,"Warning");break;case rn.Info:n=e(1084,"Info");break;case rn.Hint:n=e(1085,"Hint");break}let h=e(1086,"{0}: {1} at {2}. ",n,u.message,u.startLineNumber+":"+u.startColumn),g=this._editor.getModel();if(g&&u.startLineNumber<=g.getLineCount()&&u.startLineNumber>=1)h=`${g.getLineContent(u.startLineNumber)}, ${h}`;return h}}var tc=class u extends Qd{static{Lb=this}static{this.TitleMenu=new l("gotoErrorTitleMenu")}constructor(n,h,g,p,m,_,v){super(n,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},m);this._themeService=h,this._openerService=g,this._menuService=p,this._contextKeyService=_,this._labelService=v,this._callOnDispose=new d,this._onDidSelectRelatedInformation=new o,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=rn.Warning,this._backgroundColor=y.white,this._applyTheme(h.getColorTheme()),this._callOnDispose.add(h.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(n){this._backgroundColor=n.getColor(sT);let h=kb,g=oT;if(this._severity===rn.Warning)h=Xg,g=nT;else if(this._severity===rn.Info)h=Eb,g=rT;let p=n.getColor(h),m=n.getColor(g);this.style({arrowColor:p,frameColor:p,headerBackgroundColor:m,primaryHeadingColor:n.getColor(Vg),secondaryHeadingColor:n.getColor(Ug)})}_applyStyles(){if(this._parentContainer)this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():"";super._applyStyles()}dispose(){this._callOnDispose.dispose(),this._onDidSelectRelatedInformation.dispose(),super.dispose()}_fillHead(n){super._fillHead(n),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((p)=>this.editor.focus()));let h=this._menuService.getMenuActions(Lb.TitleMenu,this._contextKeyService),g=yP(h);this._actionbarWidget.push(g,{label:!1,icon:!0,index:0})}_fillTitleIcon(n){this._icon=k(n,x(""))}_fillBody(n){this._parentContainer=n,n.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),n.appendChild(this._container),this._message=new RI(this._container,this.editor,(h)=>this._onDidSelectRelatedInformation.fire(h),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw Error("call showAtMarker")}showAtMarker(n,h,g){this._container.classList.remove("stale"),this._message.update(n),this._severity=n.severity,this._applyTheme(this._themeService.getColorTheme());let p=t.lift(n),m=this.editor.getPosition(),_=m&&p.containsPosition(m)?m:p.getStartPosition();super.show(_,this.computeRequiredHeight());let v=this.editor.getModel();if(v){let w=g>1?e(1087,"{0} of {1} problems",h,g):e(1088,"{0} of {1} problem",h,g);this.setTitle(Oi(v.uri),w)}this._icon.className=`codicon ${Zg.className(rn.toSeverity(this._severity))}`,this.editor.revealPositionInCenterIfOutsideViewport(_,0),this.editor.focus()}updateMarker(n){this._container.classList.remove("stale"),this._message.update(n)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(n,h){super._doLayoutBody(n,h),this._heightInPixel=n,this._message.layout(n,h),this._container.style.height=`${n}px`}_onWidth(n){this._message.layout(this._heightInPixel,n)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};tc=Lb=iT([ec(1,We),ec(2,Zo),ec(3,Ai),ec(4,A),ec(5,G),ec(6,Tc)],tc);var EI=Lg(Rg,J2),DI=Lg(Ga,Ff),TI=Lg(Bs,jf),kb=a("editorMarkerNavigationError.background",{dark:EI,light:EI,hcDark:Be,hcLight:Be},e(1089,"Editor marker navigation widget error color.")),oT=a("editorMarkerNavigationError.headerBackground",{dark:be(kb,0.1),light:be(kb,0.1),hcDark:null,hcLight:null},e(1090,"Editor marker navigation widget error heading background.")),Xg=a("editorMarkerNavigationWarning.background",{dark:DI,light:DI,hcDark:Be,hcLight:Be},e(1091,"Editor marker navigation widget warning color.")),nT=a("editorMarkerNavigationWarning.headerBackground",{dark:be(Xg,0.1),light:be(Xg,0.1),hcDark:"#0C141F",hcLight:be(Xg,0.2)},e(1092,"Editor marker navigation widget warning heading background.")),Eb=a("editorMarkerNavigationInfo.background",{dark:TI,light:TI,hcDark:Be,hcLight:Be},e(1093,"Editor marker navigation widget info color.")),rT=a("editorMarkerNavigationInfo.headerBackground",{dark:be(Eb,0.1),light:be(Eb,0.1),hcDark:null,hcLight:null},e(1094,"Editor marker navigation widget info heading background.")),sT=a("editorMarkerNavigation.background",Yo,e(1095,"Editor marker navigation widget background."));var aT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Yg=function(u,n){return function(h,g){n(h,g,u)}},jl,Es=class u{static{jl=this}static{this.ID="editor.contrib.markerController"}static get(n){return n.getContribution(jl.ID)}constructor(n,h,g,p,m){this._markerNavigationService=h,this._contextKeyService=g,this._editorService=p,this._instantiationService=m,this._sessionDispoables=new d,this._editor=n,this._widgetVisible=NI.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(n){if(this._model&&this._model.matches(n))return this._model;let h=!1;if(this._model)h=!0,this._cleanUp();if(this._model=this._markerNavigationService.getMarkerList(n),h)this._model.move(!0,this._editor.getModel(),this._editor.getPosition());return this._widget=this._instantiationService.createInstance(tc,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((g)=>{if(!this._model?.selected||!t.containsPosition(this._model?.selected.marker,g.position))this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;let g=this._model.find(this._editor.getModel().uri,this._widget.position);if(g)this._widget.updateMarker(g.marker);else this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((g)=>{this._editorService.openCodeEditor({resource:g.resource,options:{pinned:!0,revealIfOpened:!0,selection:t.lift(g).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(n=!0){if(this._cleanUp(),n)this._editor.focus()}showAtMarker(n){if(!this._editor.hasModel())return;let h=this._editor.getModel(),g=this._getOrCreateModel(h.uri);if(g.resetIndex(),g.move(!0,h,new s(n.startLineNumber,n.startColumn)),g.selected)this._widget.showAtMarker(g.selected.marker,g.selected.index,g.selected.total)}async navigate(n,h){if(!this._editor.hasModel())return;let g=this._editor.getModel(),p=this._getOrCreateModel(h?void 0:g.uri);if(p.move(n,g,this._editor.getPosition()),!p.selected)return;if(p.selected.marker.resource.toString()!==g.uri.toString()){this._cleanUp();let m=await this._editorService.openCodeEditor({resource:p.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:p.selected.marker}},this._editor);if(m)jl.get(m)?.close(),jl.get(m)?.navigate(n,h)}else this._widget.showAtMarker(p.selected.marker,p.selected.index,p.selected.total)}};Es=jl=aT([Yg(1,Sb),Yg(2,G),Yg(3,Te),Yg(4,A)],Es);class Gl extends U{constructor(u,n,h){super(h);this._next=u,this._multiFile=n}async run(u,n){if(n.hasModel())await Es.get(n)?.navigate(this._next,this._multiFile)}}class Vr extends Gl{static{this.ID="editor.action.marker.next"}static{this.LABEL=b(1078,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:Vr.ID,label:Vr.LABEL,precondition:void 0,kbOpts:{kbExpr:r.focus,primary:578,weight:100},menuOpts:{menuId:tc.TitleMenu,title:Vr.LABEL.value,icon:Pt("marker-navigation-next",S.arrowDown,e(1074,"Icon for goto next marker.")),group:"navigation",order:1}})}}class Oa extends Gl{static{this.ID="editor.action.marker.prev"}static{this.LABEL=b(1079,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:Oa.ID,label:Oa.LABEL,precondition:void 0,kbOpts:{kbExpr:r.focus,primary:1602,weight:100},menuOpts:{menuId:tc.TitleMenu,title:Oa.LABEL.value,icon:Pt("marker-navigation-previous",S.arrowUp,e(1075,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class Zl extends Gl{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:Zl.ID,label:b(1080,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:66,weight:100},menuOpts:{menuId:l.MenubarGoMenu,title:e(1076,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class Xl extends Gl{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:Xl.ID,label:b(1081,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:r.focus,primary:1090,weight:100},menuOpts:{menuId:l.MenubarGoMenu,title:e(1077,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}fe(Es.ID,Es,4);O(Vr);O(Oa);O(Zl);O(Xl);var NI=new M("markersNavigationVisible",!1),dT=tn.bindToContribution(Es.get);K(new dT({id:"closeMarkersNavigation",precondition:NI,handler:(u)=>u.close(),kbOpts:{weight:150,kbExpr:r.focus,primary:9,secondary:[1033]}}));class L0{constructor(u){this.options=u,this.rangeHighlightDecorationId=void 0}provide(u,n,h){let g=new d;u.canAcceptInBackground=!!this.options?.canAcceptInBackground,u.matchOnLabel=u.matchOnDescription=u.matchOnDetail=u.sortByLabel=!1;let p=g.add(new de);return p.value=this.doProvide(u,n,h),g.add(this.onDidActiveTextEditorControlChange(()=>{p.value=void 0,p.value=this.doProvide(u,n)})),g}doProvide(u,n,h){let g=new d,p=this.activeTextEditorControl;if(p&&this.canProvideWithTextEditor(p)){let m={editor:p},_=Mk(p);if(_){let v=p.saveViewState()??void 0;g.add(_.onDidChangeCursorPosition(()=>{v=p.saveViewState()??void 0})),m.restoreViewState=()=>{if(v&&p===this.activeTextEditorControl)p.restoreViewState(v)},g.add(Ms(n.onCancellationRequested)(()=>m.restoreViewState?.()))}g.add(N(()=>this.clearDecorations(p))),g.add(this.provideWithTextEditor(m,u,n,h))}else g.add(this.provideWithoutTextEditor(u,n));return g}canProvideWithTextEditor(u){return!0}gotoLocation({editor:u},n){if(u.setSelection(n.range,"code.jump"),u.revealRangeInCenter(n.range,0),!n.preserveFocus)u.focus();let h=this.getModel(u);if(h){let g=h.getLineContent(n.range.startLineNumber);jo(e(1401,"Line {0}, column {1}: {2}",n.range.startLineNumber,n.range.startColumn,g))}}getModel(u){return jy(u)?u.getModel()?.modified:u.getModel()}addDecorations(u,n){u.changeDecorations((h)=>{let g=[];if(this.rangeHighlightDecorationId)g.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),g.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0;let p=[{range:n,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:n,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:bn(rk),position:Jo.Full}}}],[m,_]=h.deltaDecorations(g,p);this.rangeHighlightDecorationId={rangeHighlightId:m,overviewRulerDecorationId:_}})}clearDecorations(u){let n=this.rangeHighlightDecorationId;if(n)u.changeDecorations((h)=>{h.deltaDecorations([n.overviewRulerDecorationId,n.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0}}class ic extends L0{static{this.GO_TO_LINE_PREFIX=":"}static{this.GO_TO_OFFSET_PREFIX="::"}static{this.ZERO_BASED_OFFSET_STORAGE_KEY="gotoLine.useZeroBasedOffset"}constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(ic.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(u){this.storageService.store(ic.ZERO_BASED_OFFSET_STORAGE_KEY,u,-1,0)}provideWithoutTextEditor(u){let n=e(1402,"Open a text editor first to go to a line or an offset.");return u.items=[{label:n}],u.ariaLabel=n,i.None}provideWithTextEditor(u,n,h){let g=u.editor,p=new d;n.ariaLabel=e(1403,"Go to line. Type a line number, optionally followed by colon and column number."),p.add(n.onDidAccept((w)=>{let[C]=n.selectedItems;if(C){if(!C.lineNumber)return;if(this.gotoLocation(u,{range:this.toRange(C.lineNumber,C.column),keyMods:n.keyMods,preserveFocus:w.inBackground}),!w.inBackground)n.hide()}}));let m={iconClass:J.asClassName(S.indexZero),tooltip:e(1404,"Toggle Zero-Based Offset"),location:Wg.Input,toggle:{checked:this.useZeroBasedOffset}},_=()=>{let w=n.value.trim().substring(ic.GO_TO_LINE_PREFIX.length),{inOffsetMode:C,lineNumber:E,column:R,label:Z}=this.parsePosition(g,w);if(n.buttons=C?[m]:[],n.items=[{lineNumber:E,column:R,label:Z,ariaLabel:E?e(1405,"Go to line {0}, column {1}. Press Enter to navigate.",E,R||1):Z}],!E){this.clearDecorations(g);return}let X=this.toRange(E,R);g.revealRangeInCenter(X,0),this.addDecorations(g,X)};p.add(n.onDidTriggerButton((w)=>{if(w===m)this.useZeroBasedOffset=w.toggle?.checked??!this.useZeroBasedOffset,_()})),_(),p.add(n.onDidChangeValue(()=>_()));let v=Mk(g);if(v){if(v.getOptions().get(76).renderType===2)v.updateOptions({lineNumbers:"on"}),p.add(N(()=>v.updateOptions({lineNumbers:"relative"})))}return p}toRange(u=1,n=1){return{startLineNumber:u,startColumn:n,endLineNumber:u,endColumn:n}}parsePosition(u,n){let h=this.getModel(u);if(!h)return{label:e(1406,"Open a text editor first to go to a line or an offset.")};if(n.startsWith(":")){let g=parseInt(n.substring(1),10),p=h.getValueLength();if(isNaN(g))return{inOffsetMode:!0,label:this.useZeroBasedOffset?e(1407,"Type a character position to go to (from 0 to {0}).",p-1):e(1408,"Type a character position to go to (from 1 to {0}).",p)};else{let m=g<0;if(!this.useZeroBasedOffset)g-=Math.sign(g);if(m)g+=p;let _=h.getPositionAt(g),v=Lt.visibleColumnFromColumn(h.getLineContent(_.lineNumber),_.column,h.getOptions().tabSize)+1;return{..._,inOffsetMode:!0,label:e(1409,"Press 'Enter' to go to line {0} at column {1}.",_.lineNumber,v)}}}else{let g=n.split(/,|:|#/),p=h.getLineCount(),m=parseInt(g[0]?.trim(),10);if(g.length<1||isNaN(m))return{label:e(1410,"Type a line number to go to (from 1 to {0}).",p)};m=m>=0?m:p+1+m,m=Math.min(Math.max(1,m),p);let _=h.getOptions().tabSize,v=h.getLineContent(m),w=Lt.visibleColumnFromColumn(v,h.getLineMaxColumn(m),_)+1,C=parseInt(g[1]?.trim(),10);if(g.length<2||isNaN(C))return{lineNumber:m,column:1,label:g.length<2?e(1411,"Press 'Enter' to go to line {0} or enter colon : to add a column number.",m):e(1412,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",m,w)};C=C>=0?C:w+C,C=Math.min(Math.max(1,C),w);let E=Lt.columnFromVisibleColumn(v,C-1,_);return{lineNumber:m,column:E,label:e(1413,"Press 'Enter' to go to line {0} at column {1}.",m,C)}}}}var cT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},MI=function(u,n){return function(h,g){n(h,g,u)}},Ts=class u extends ic{constructor(n,h){super();this.editorService=n,this.storageService=h,this.onDidActiveTextEditorControlChange=I.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Ts=cT([MI(0,Te),MI(1,Pn)],Ts);class Jg extends U{static{this.ID="editor.action.gotoLine"}constructor(){super({id:Jg.ID,label:Kg.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:r.focus,primary:2085,mac:{primary:293},weight:100}})}run(u){u.get(En).quickAccess.show(Ts.GO_TO_LINE_PREFIX)}}O(Jg);pt.as(ya.Quickaccess).registerQuickAccessProvider({ctor:Ts,prefix:Ts.GO_TO_LINE_PREFIX,helpEntries:[{description:Kg.gotoLineActionLabel,commandId:Jg.ID}]});class Qg extends U{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:Qg.ID,label:Kg.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(u){u.get(En).quickAccess.show(Ts.GO_TO_OFFSET_PREFIX)}}O(Qg);pt.as(ya.Quickaccess).registerQuickAccessProvider({ctor:Ts,prefix:Ts.GO_TO_OFFSET_PREFIX,helpEntries:[{description:Kg.gotoOffsetActionLabel,commandId:Qg.ID}]});var lT=a("editorOverviewRuler.bracketMatchForeground","#A0A0A0",e(855,"Overview ruler marker color for matching brackets."));class OI extends U{constructor(){super({id:"editor.action.jumpToBracket",label:b(857,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:3165,weight:100}})}run(u,n){zr.get(n)?.jumpToBracket()}}class PI extends U{constructor(){super({id:"editor.action.selectToBracket",label:b(858,"Select to Bracket"),precondition:void 0,metadata:{description:b(859,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(u,n,h){let g=!0;if(h&&h.selectBrackets===!1)g=!1;zr.get(n)?.selectToBracket(g)}}class AI extends U{constructor(){super({id:"editor.action.removeBrackets",label:b(860,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(u,n){zr.get(n)?.removeBrackets(this.id)}}class FI{constructor(u,n,h){this.position=u,this.brackets=n,this.options=h}}class zr extends i{static{this.ID="editor.contrib.bracketMatchingController"}static get(u){return u.getContribution(zr.ID)}constructor(u){super();this._editor=u,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new ke(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(u.onDidChangeCursorPosition((n)=>{if(this._matchBrackets==="never")return;this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeModelContent((n)=>{this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeModel((n)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeModelLanguageConfiguration((n)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(u.onDidChangeConfiguration((n)=>{if(n.hasChanged(80))this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule()})),this._register(u.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(u.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let u=this._editor.getModel(),n=this._editor.getSelections().map((h)=>{let g=h.getStartPosition(),p=u.bracketPairs.matchBracket(g),m=null;if(p){if(p[0].containsPosition(g)&&!p[1].containsPosition(g))m=p[1].getStartPosition();else if(p[1].containsPosition(g))m=p[0].getStartPosition()}else{let _=u.bracketPairs.findEnclosingBrackets(g);if(_)m=_[1].getStartPosition();else{let v=u.bracketPairs.findNextBracket(g);if(v&&v.range)m=v.range.getStartPosition()}}if(m)return new F(m.lineNumber,m.column,m.lineNumber,m.column);return new F(g.lineNumber,g.column,g.lineNumber,g.column)});this._editor.setSelections(n),this._editor.revealRange(n[0])}selectToBracket(u){if(!this._editor.hasModel())return;let n=this._editor.getModel(),h=[];if(this._editor.getSelections().forEach((g)=>{let p=g.getStartPosition(),m=n.bracketPairs.matchBracket(p);if(!m){if(m=n.bracketPairs.findEnclosingBrackets(p),!m){let w=n.bracketPairs.findNextBracket(p);if(w&&w.range)m=n.bracketPairs.matchBracket(w.range.getStartPosition())}}let _=null,v=null;if(m){m.sort(t.compareRangesUsingStarts);let[w,C]=m;if(_=u?w.getStartPosition():w.getEndPosition(),v=u?C.getEndPosition():C.getStartPosition(),C.containsPosition(p)){let E=_;_=v,v=E}}if(_&&v)h.push(new F(_.lineNumber,_.column,v.lineNumber,v.column))}),h.length>0)this._editor.setSelections(h),this._editor.revealRange(h[0])}removeBrackets(u){if(!this._editor.hasModel())return;let n=this._editor.getModel();this._editor.getSelections().forEach((h)=>{let g=h.getPosition(),p=n.bracketPairs.matchBracket(g);if(!p)p=n.bracketPairs.findEnclosingBrackets(g);if(p)this._editor.pushUndoStop(),this._editor.executeEdits(u,[{range:p[0],text:""},{range:p[1],text:""}]),this._editor.pushUndoStop()})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=ue.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:bn(lT),position:Jo.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=ue.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();let u=[],n=0;for(let h of this._lastBracketsData){let g=h.brackets;if(g)u[n++]={range:g[0],options:h.options},u[n++]={range:g[1],options:h.options}}this._decorations.set(u)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let u=this._editor.getSelections();if(u.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let n=this._editor.getModel(),h=n.getVersionId(),g=[];if(this._lastVersionId===h)g=this._lastBracketsData;let p=[],m=0;for(let E=0,R=u.length;E<R;E++){let Z=u[E];if(Z.isEmpty())p[m++]=Z.getStartPosition()}if(p.length>1)p.sort(s.compare);let _=[],v=0,w=0,C=g.length;for(let E=0,R=p.length;E<R;E++){let Z=p[E];while(w<C&&g[w].position.isBefore(Z))w++;if(w<C&&g[w].position.equals(Z))_[v++]=g[w];else{let X=n.bracketPairs.matchBracket(Z,20),Y=zr._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;if(!X&&this._matchBrackets==="always")X=n.bracketPairs.findEnclosingBrackets(Z,20),Y=zr._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;_[v++]=new FI(Z,X,Y)}}this._lastBracketsData=_,this._lastVersionId=h}}fe(zr.ID,zr,1);O(PI);O(OI);O(AI);Zn.appendMenuItem(l.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:e(856,"Go to &&Bracket")},order:2});Li((u,n)=>{let h=u.getColor(sP);if(h)n.addRule(`.monaco-editor .bracket-match-inline { color: ${h} !important; }`)});var _t=new class{constructor(){this.QuickFix=new Ht("quickfix"),this.Refactor=new Ht("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new Ht("notebook"),this.Source=new Ht("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}},fi;(function(u){u.Refactor="refactor",u.RefactorPreview="refactor preview",u.Lightbulb="lightbulb",u.Default="other (default)",u.SourceAction="source action",u.QuickFix="quick fix action",u.FixAll="fix all",u.OrganizeImports="organize imports",u.AutoFix="auto fix",u.QuickFixHover="quick fix hover window",u.OnSave="save participants",u.ProblemsView="problems view"})(fi||(fi={}));function HI(u,n){if(u.include&&!u.include.intersects(n))return!1;if(u.excludes){if(u.excludes.some((h)=>BI(n,h,u.include)))return!1}if(!u.includeSourceActions&&_t.Source.contains(n))return!1;return!0}function WI(u,n){let h=n.kind?new Ht(n.kind):void 0;if(u.include){if(!h||!u.include.contains(h))return!1}if(u.excludes){if(h&&u.excludes.some((g)=>BI(h,g,u.include)))return!1}if(!u.includeSourceActions){if(h&&_t.Source.contains(h))return!1}if(u.onlyIncludePreferredActions){if(!n.isPreferred)return!1}return!0}function BI(u,n,h){if(!n.contains(u))return!1;if(h&&n.contains(h))return!1;return!0}class ln{static fromUser(u,n){if(!u||typeof u!=="object")return new ln(n.kind,n.apply,!1);return new ln(ln.getKindFromUser(u,n.kind),ln.getApplyFromUser(u,n.apply),ln.getPreferredUser(u))}static getApplyFromUser(u,n){switch(typeof u.apply==="string"?u.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return n}}static getKindFromUser(u,n){return typeof u.kind==="string"?new Ht(u.kind):n}static getPreferredUser(u){return typeof u.preferred==="boolean"?u.preferred:!1}constructor(u,n,h){this.kind=u,this.apply=n,this.preferred=h}}class Db{constructor(u,n,h){this.action=u,this.provider=n,this.highlightRange=h}async resolve(u){if(this.provider?.resolveCodeAction&&!this.action.edit){let n;try{n=await this.provider.resolveCodeAction(this.action,u)}catch(h){yt(h)}if(n)this.action.edit=n.edit}return this}}var rp="editor.action.codeAction",Rs="editor.action.quickFix",oc="editor.action.autoFix",cp="editor.action.refactor",hp="editor.action.sourceAction",Jl="editor.action.organizeImports",Ql="editor.action.fixAll",hT=1000;class Yl extends i{static codeActionsPreferredComparator(u,n){if(u.isPreferred&&!n.isPreferred)return-1;else if(!u.isPreferred&&n.isPreferred)return 1;else return 0}static codeActionsComparator({action:u},{action:n}){if(u.isAI&&!n.isAI)return 1;else if(!u.isAI&&n.isAI)return-1;if(Kn(u.diagnostics))return Kn(n.diagnostics)?Yl.codeActionsPreferredComparator(u,n):-1;else if(Kn(n.diagnostics))return 1;else return Yl.codeActionsPreferredComparator(u,n)}constructor(u,n,h){super();this.documentation=n,this._register(h),this.allActions=[...u].sort(Yl.codeActionsComparator),this.validActions=this.allActions.filter(({action:g})=>!g.disabled)}get hasAutoFix(){return this.validActions.some(({action:u})=>!!u.kind&&_t.QuickFix.contains(new Ht(u.kind))&&!!u.isPreferred)}get hasAIFix(){return this.validActions.some(({action:u})=>!!u.isAI)}get allAIFixes(){return this.validActions.every(({action:u})=>!!u.isAI)}}var VI={actions:[],documentation:void 0};async function Ws(u,n,h,g,p,m){let _=g.filter||{},v={..._,excludes:[..._.excludes||[],_t.Notebook]},w={only:_.include?.value,trigger:g.type},C=new Hy(n,m),E=g.type===2,R=uT(u,n,E?v:_),Z=new d,X=R.map(async(Q)=>{let te=setTimeout(()=>p.report(Q),1250);try{let oe=await Q.provideCodeActions(n,h,w,C.token);if(C.token.isCancellationRequested)return oe?.dispose(),VI;if(oe)Z.add(oe);let le=(oe?.actions||[]).filter((Se)=>Se&&WI(_,Se)),pe=pT(Q,le,_.include);return{actions:le.map((Se)=>new Db(Se,Q)),documentation:pe}}catch(oe){if(gi(oe))throw oe;return yt(oe),VI}finally{clearTimeout(te)}}),Y=u.onDidChange(()=>{let Q=u.all(n);if(!ot(Q,R))C.cancel()});try{let Q=await Promise.all(X),te=Q.map((pe)=>pe.actions).flat(),oe=[...vo(Q.map((pe)=>pe.documentation)),...gT(u,n,g,te)],le=new Yl(te,oe,Z);return Z.add(le),le}catch(Q){throw Z.dispose(),Q}finally{Y.dispose(),C.dispose()}}function uT(u,n,h){return u.all(n).filter((g)=>{if(!g.providedCodeActionKinds)return!0;return g.providedCodeActionKinds.some((p)=>HI(h,new Ht(p)))})}function*gT(u,n,h,g){if(n&&g.length){for(let p of u.all(n))if(p._getAdditionalMenuItems)yield*p._getAdditionalMenuItems?.({trigger:h.type,only:h.filter?.include?.value},g.map((m)=>m.action))}}function pT(u,n,h){if(!u.documentation)return;let g=u.documentation.map((p)=>({kind:new Ht(p.kind),command:p.command}));if(h){let p;for(let m of g)if(m.kind.contains(h)){if(!p)p=m;else if(p.kind.contains(m.kind))p=m}if(p)return p?.command}for(let p of n){if(!p.kind)continue;for(let m of g)if(m.kind.contains(new Ht(p.kind)))return m.command}return}var br;(function(u){u.OnSave="onSave",u.FromProblemsView="fromProblemsView",u.FromCodeActions="fromCodeActions",u.FromAILightbulb="fromAILightbulb",u.FromProblemsHover="fromProblemsHover"})(br||(br={}));async function zI(u,n,h,g,p=we.None){let m=u.get($c),_=u.get(Ue),v=u.get(Wn),w=u.get(wt),C=u.get(xs);if(v.publicLog2("codeAction.applyCodeAction",{codeActionTitle:n.action.title,codeActionKind:n.action.kind,codeActionIsPreferred:!!n.action.isPreferred,reason:h}),C.playSignal(tt.codeActionTriggered),await n.resolve(p),p.isCancellationRequested)return;if(n.action.edit?.edits.length){if(!(await m.apply(n.action.edit,{editor:g?.editor,label:n.action.title,quotableLabel:n.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:h!==br.OnSave,showPreview:g?.preview,reason:Xn.codeAction({kind:n.action.kind,providerId:ay.fromExtensionId(n.provider?.extensionId)})})).isApplied)return}if(n.action.command)try{await _.executeCommand(n.action.command.id,...n.action.command.arguments||[])}catch(E){let R=mT(E);w.error(typeof R==="string"?R:e(881,"An unknown error occurred while applying the code action"))}setTimeout(()=>C.playSignal(tt.codeActionApplied),hT)}function mT(u){if(typeof u==="string")return u;else if(u instanceof Error&&typeof u.message==="string")return u.message;else return}Le.registerCommand("_executeCodeActionProvider",async function(u,n,h,g,p){if(!(n instanceof q))throw yo();let{codeActionProvider:m}=u.get(z),_=u.get(Et).getModel(n);if(!_)throw yo();let v=F.isISelection(h)?F.liftSelection(h):t.isIRange(h)?_.validateRange(h):void 0;if(!v)throw yo();let w=typeof g==="string"?new Ht(g):void 0,C=await Ws(m,_,v,{type:1,triggerAction:fi.Default,filter:{includeSourceActions:!0,include:w}},Ja.None,we.None),E=[],R=Math.min(C.validActions.length,typeof p==="number"?p:0);for(let Z=0;Z<R;Z++)E.push(C.validActions[Z].resolve(we.None));try{return await Promise.all(E),C.validActions.map((Z)=>Z.action)}finally{setTimeout(()=>C.dispose(),100)}});var fT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},_T=function(u,n){return function(h,g){n(h,g,u)}},Tb,gp=class u{static{Tb=this}static{this.codeActionCommands=[cp,rp,hp,Jl,Ql]}constructor(n){this.keybindingService=n}getResolver(){let n=new ii(()=>this.keybindingService.getKeybindings().filter((h)=>Tb.codeActionCommands.indexOf(h.command)>=0).filter((h)=>h.resolvedKeybinding).map((h)=>{let g=h.commandArgs;if(h.command===Jl)g={kind:_t.SourceOrganizeImports.value};else if(h.command===Ql)g={kind:_t.SourceFixAll.value};return{resolvedKeybinding:h.resolvedKeybinding,...ln.fromUser(g,{kind:Ht.None,apply:"never"})}}));return(h)=>{if(h.kind)return this.bestKeybindingForCodeAction(h,n.value)?.resolvedKeybinding;return}}bestKeybindingForCodeAction(n,h){if(!n.kind)return;let g=new Ht(n.kind);return h.filter((p)=>p.kind.contains(g)).filter((p)=>{if(p.preferred)return n.isPreferred;return!0}).reduceRight((p,m)=>{if(!p)return m;return p.kind.contains(m.kind)?m:p},void 0)}};gp=Tb=fT([_T(0,ge)],gp);a("symbolIcon.arrayForeground",Ae,e(1569,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.booleanForeground",Ae,e(1570,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1571,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.colorForeground",Ae,e(1572,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.constantForeground",Ae,e(1573,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1574,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1575,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1576,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1577,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1578,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.fileForeground",Ae,e(1579,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.folderForeground",Ae,e(1580,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1581,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1582,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.keyForeground",Ae,e(1583,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.keywordForeground",Ae,e(1584,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1585,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.moduleForeground",Ae,e(1586,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.namespaceForeground",Ae,e(1587,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.nullForeground",Ae,e(1588,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.numberForeground",Ae,e(1589,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.objectForeground",Ae,e(1590,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.operatorForeground",Ae,e(1591,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.packageForeground",Ae,e(1592,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.propertyForeground",Ae,e(1593,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.referenceForeground",Ae,e(1594,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.snippetForeground",Ae,e(1595,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.stringForeground",Ae,e(1596,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.structForeground",Ae,e(1597,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.textForeground",Ae,e(1598,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.typeParameterForeground",Ae,e(1599,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.unitForeground",Ae,e(1600,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1601,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));var KI=Object.freeze({kind:Ht.Empty,title:e(917,"More Actions...")}),bT=Object.freeze([{kind:_t.QuickFix,title:e(918,"Quick Fix")},{kind:_t.RefactorExtract,title:e(919,"Extract"),icon:S.wrench},{kind:_t.RefactorInline,title:e(920,"Inline"),icon:S.wrench},{kind:_t.RefactorRewrite,title:e(921,"Rewrite"),icon:S.wrench},{kind:_t.RefactorMove,title:e(922,"Move"),icon:S.wrench},{kind:_t.SurroundWith,title:e(923,"Surround With"),icon:S.surroundWith},{kind:_t.Source,title:e(924,"Source Action"),icon:S.symbolFile},KI]);function UI(u,n,h){if(!n)return u.map((m)=>({kind:"action",item:m,group:KI,disabled:!!m.action.disabled,label:m.action.disabled||m.action.title,canPreview:!!m.action.edit?.edits.length}));let g=bT.map((m)=>({group:m,actions:[]}));for(let m of u){let _=m.action.kind?new Ht(m.action.kind):Ht.None;for(let v of g)if(v.group.kind.contains(_)){v.actions.push(m);break}}let p=[];for(let m of g)if(m.actions.length){p.push({kind:"header",group:m.group});for(let _ of m.actions){let v=m.group;p.push({kind:"action",item:_,group:_.action.isAI?{title:v.title,kind:v.kind,icon:S.sparkle}:v,label:_.action.title,disabled:!!_.action.disabled,keybinding:h(_.action)})}}return p}var Rb=new M("supportedCodeAction",""),qI="_typescript.applyFixAllCodeAction";class jI extends i{constructor(u,n,h,g=250){super();this._editor=u,this._markerService=n,this._signalChange=h,this._delay=g,this._autoTriggerTimer=this._register(new di),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged((p)=>this._onMarkerChanges(p))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(u){let n=this._getRangeOfSelectionUnlessWhitespaceEnclosed(u);this._signalChange(n?{trigger:u,selection:n}:void 0)}_onMarkerChanges(u){let n=this._editor.getModel();if(n&&u.some((h)=>gs(h,n.uri)))this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:fi.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(u){if(!this._editor.hasModel())return;let n=this._editor.getSelection();if(u.type===1)return n;let h=this._editor.getOption(73).enabled;if(h===Ps.Off&&!this.ignoreLightbulbOff)return;else if(h===Ps.Off||h===Ps.On)return n;else if(h===Ps.OnCode){if(!n.isEmpty())return n;let p=this._editor.getModel(),{lineNumber:m,column:_}=n.getPosition(),v=p.getLineContent(m);if(v.length===0)return;else if(_===1){if(/\s/.test(v[0]))return}else if(_===p.getLineMaxColumn(m)){if(/\s/.test(v[v.length-1]))return}else if(/\s/.test(v[_-2])&&/\s/.test(v[_-1]))return}return n}}var Pa;(function(u){u.Empty={type:0};class n{constructor(h,g,p){this.trigger=h,this.position=g,this._cancellablePromise=p,this.type=1,this.actions=p.catch((m)=>{if(gi(m))return eh;throw m})}cancel(){this._cancellablePromise.cancel()}}u.Triggered=n})(Pa||(Pa={}));var eh=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class Nb extends i{constructor(u,n,h,g,p,m){super();this._editor=u,this._registry=n,this._markerService=h,this._progressService=p,this._configurationService=m,this._codeActionOracle=this._register(new de),this._state=Pa.Empty,this._onDidChangeState=this._register(new o),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new de),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=Rb.bindTo(g),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration((_)=>{if(_.hasChanged(73))this._update()})),this._update()}dispose(){if(this._disposed)return;this._disposed=!0,super.dispose(),this.setState(Pa.Empty,!0)}_settingEnabledNearbyQuickfixes(){let u=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:u?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Pa.Empty),this.codeActionsDisposable.clear();let u=this._editor.getModel();if(u&&this._registry.has(u)&&!this._editor.getOption(104)){let n=this._registry.all(u).flatMap((g)=>g.providedCodeActionKinds??[]);this._supportedCodeActions.set(n.join(" "));let h=new jI(this._editor,this._markerService,(g)=>{if(!g){this.setState(Pa.Empty);return}let p=g.selection.getStartPosition(),m=Zt(async(w)=>{if(this._settingEnabledNearbyQuickfixes()&&g.trigger.type===1&&(g.trigger.triggerAction===fi.QuickFix||g.trigger.filter?.include?.contains(_t.QuickFix))){let E=new d,R=!1;try{let Z=E.add(await Ws(this._registry,u,g.selection,g.trigger,Ja.None,w)),X=[...Z.allActions];if(w.isCancellationRequested)return eh;let Y=Z.validActions?.some((te)=>te.action.kind&&_t.QuickFix.contains(new Ht(te.action.kind))&&!te.action.isAI),Q=this._markerService.read({resource:u.uri});if(Y){for(let oe of Z.validActions)if(oe.action.command?.arguments?.some((le)=>typeof le==="string"&&le.includes(qI)))oe.action.diagnostics=[...Q.filter((le)=>le.relatedInformation)];let te=this._setCodeActions({validActions:Z.validActions,allActions:X,documentation:Z.documentation,hasAutoFix:Z.hasAutoFix,hasAIFix:Z.hasAIFix,allAIFixes:Z.allAIFixes,dispose:()=>E.dispose()});return R=!0,te}else if(!Y){if(Q.length>0){let te=g.selection.getPosition(),oe=te,le=Number.MAX_VALUE,pe=[...Z.validActions];for(let ae of Q){let{endColumn:me,endLineNumber:Ne,startLineNumber:Me}=ae;if(Ne===te.lineNumber||Me===te.lineNumber){oe=new s(Ne,me);let Oe={type:g.trigger.type,triggerAction:g.trigger.triggerAction,filter:{include:g.trigger.filter?.include?g.trigger.filter?.include:_t.QuickFix},autoApply:g.trigger.autoApply,context:{notAvailableMessage:g.trigger.context?.notAvailableMessage||"",position:oe}},ye=new F(oe.lineNumber,oe.column,oe.lineNumber,oe.column),Pe=E.add(await Ws(this._registry,u,ye,Oe,Ja.None,w));if(w.isCancellationRequested)return eh;if(Pe.validActions.length!==0){for(let it of Pe.validActions)if(it.action.command?.arguments?.some((Ve)=>typeof Ve==="string"&&Ve.includes(qI)))it.action.diagnostics=[...Q.filter((Ve)=>Ve.relatedInformation)];if(Z.allActions.length===0)X.push(...Pe.allActions);if(Math.abs(te.column-me)<le)pe.unshift(...Pe.validActions);else pe.push(...Pe.validActions)}le=Math.abs(te.column-me)}}let Se=pe.filter((ae,me,Ne)=>Ne.findIndex((Me)=>Me.action.title===ae.action.title)===me);Se.sort((ae,me)=>{if(ae.action.isPreferred&&!me.action.isPreferred)return-1;else if(!ae.action.isPreferred&&me.action.isPreferred)return 1;else if(ae.action.isAI&&!me.action.isAI)return 1;else if(!ae.action.isAI&&me.action.isAI)return-1;else return 0});let Ce=this._setCodeActions({validActions:Se,allActions:X,documentation:Z.documentation,hasAutoFix:Z.hasAutoFix,hasAIFix:Z.hasAIFix,allAIFixes:Z.allAIFixes,dispose:()=>E.dispose()});return R=!0,Ce}}}finally{if(!R)E.dispose()}}if(g.trigger.type===1){let E=await Ws(this._registry,u,g.selection,g.trigger,Ja.None,w);if(w.isCancellationRequested)return E.dispose(),eh;return this._setCodeActions(E)}let C=await Ws(this._registry,u,g.selection,g.trigger,Ja.None,w);if(w.isCancellationRequested)return C.dispose(),eh;return this._setCodeActions(C)});if(g.trigger.type===1)this._progressService?.showWhile(m,250);let _=new Pa.Triggered(g.trigger,p,m),v=!1;if(this._state.type===1)v=this._state.trigger.type===1&&_.type===1&&_.trigger.type===2&&this._state.position!==_.position;if(!v)this.setState(_);else setTimeout(()=>{this.setState(_)},500)},void 0);h.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=h,this._codeActionOracle.value.trigger({type:2,triggerAction:fi.Default})}else this._supportedCodeActions.reset()}_setCodeActions(u){return this.codeActionsDisposable.value=u,u}takeCodeActions(u){if(this.codeActionsDisposable.value!==u)return;return this.codeActionsDisposable.clearAndLeak(),u}trigger(u){this._codeActionOracle.value?.trigger(u),this.codeActionsDisposable.clear()}setState(u,n){if(u===this._state)return;if(this._state.type===1)this._state.cancel();if(this._state=u,!n&&!this._disposed)this._onDidChangeState.fire(u)}}var vT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},wT=function(u,n){return function(h,g){n(h,g,u)}},Vs,$I=Pt("gutter-lightbulb",S.lightBulb,e(925,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),GI=Pt("gutter-lightbulb-auto-fix",S.lightbulbAutofix,e(926,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),ZI=Pt("gutter-lightbulb-sparkle",S.lightbulbSparkle,e(927,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),XI=Pt("gutter-lightbulb-aifix-auto-fix",S.lightbulbSparkleAutofix,e(928,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),YI=Pt("gutter-lightbulb-sparkle-filled",S.sparkleFilled,e(929,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),qn;(function(u){u.Hidden={type:0};class n{constructor(h,g,p,m){this.actions=h,this.trigger=g,this.editorPosition=p,this.widgetPosition=m,this.type=1}}u.Showing=n})(qn||(qn={}));function Mb(u,n,h,g,p=!1){if(u.validActions.length<=0)return;let m,_=!1;if(u.allAIFixes){if(m=p?YI:S.sparkleFilled,u.validActions.length===1)_=!0}else if(u.hasAutoFix)if(u.hasAIFix)m=p?XI:S.lightbulbSparkleAutofix;else m=p?GI:S.lightbulbAutofix;else if(u.hasAIFix)m=p?ZI:S.lightbulbSparkle;else m=p?$I:S.lightBulb;let v;if(_)v=e(930,"Run: {0}",u.validActions[0].action.title);else if(u.hasAutoFix&&h)v=e(931,"Show Code Actions. Preferred Quick Fix Available ({0})",h);else if(!u.hasAutoFix&&g)v=e(932,"Show Code Actions ({0})",g);else v=e(933,"Show Code Actions");return{actions:u,trigger:n,icon:m,autoRun:_,title:v,isGutter:p}}var Aa=class u extends i{static{Vs=this}static{this.GUTTER_DECORATION=ue.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:J.asClassName(S.lightBulb),glyphMargin:{position:Qr.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}static _computeLightBulbInfo(n,h,g,p){if(n.type!==1)return;return Mb(n.actions,n.trigger,g,p,h)}constructor(n,h){super();this._editor=n,this._keybindingService=h,this.onlyWithEmptySelection=!1,this._onClick=this._register(new o),this.onClick=this._onClick.event,this._state=j(this,qn.Hidden),this._gutterState=j(this,qn.Hidden),this._combinedInfo=f(this,(g)=>{let p=this._gutterState.read(g);if(p.type===1)return Vs._computeLightBulbInfo(p,!0,this._preferredKbLabel.read(g),this._quickFixKbLabel.read(g));let m=this._state.read(g);if(m.type===1)return Vs._computeLightBulbInfo(m,!1,this._preferredKbLabel.read(g),this._quickFixKbLabel.read(g));return}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+$I.id,"codicon-"+XI.id,"codicon-"+GI.id,"codicon-"+ZI.id,"codicon-"+YI.id],this._preferredKbLabel=j(this,void 0),this._quickFixKbLabel=j(this,void 0),this.gutterDecoration=Vs.GUTTER_DECORATION,this._domNode=x("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Mt.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((g)=>{let p=this._editor.getModel(),m=this._state.get();if(m.type!==1||!p||m.editorPosition.lineNumber>=p.getLineCount())this.hide();let _=this._gutterState.get();if(_.type!==1||!p||_.editorPosition.lineNumber>=p.getLineCount())this.gutterHide()})),this._register(F2(this._domNode,(g)=>{let p=this._state.get();if(p.type!==1)return;this._editor.focus(),g.preventDefault();let{top:m,height:_}=kt(this._domNode),v=this._editor.getOption(75),w=Math.floor(v/3);if(p.widgetPosition.position!==null&&p.widgetPosition.position.lineNumber<p.editorPosition.lineNumber)w+=v;this._onClick.fire({x:g.posx,y:m+_+w,actions:p.actions,trigger:p.trigger})})),this._register(c(this._domNode,"mouseenter",(g)=>{if((g.buttons&1)!==1)return;this.hide()})),this._register(I.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(oc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Rs)?.getLabel()??void 0,void 0)})),this._register(W((g)=>{let p=this._combinedInfo.read(g);this._updateLightBulbTitleAndIcon(p),this._updateGutterDecorationOptions(p)})),this._register(this._editor.onMouseDown(async(g)=>{if(!g.target.element||!this.lightbulbClasses.some((C)=>g.target.element&&g.target.element.classList.contains(C)))return;let p=this._gutterState.get();if(p.type!==1)return;this._editor.focus();let{top:m,height:_}=kt(g.target.element),v=this._editor.getOption(75),w=Math.floor(v/3);if(p.widgetPosition.position!==null&&p.widgetPosition.position.lineNumber<p.editorPosition.lineNumber)w+=v;this._onClick.fire({x:g.event.posx,y:m+_+w,actions:p.actions,trigger:p.trigger})}))}dispose(){if(super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){let n=this._state.get();return n.type===1?n.widgetPosition:null}update(n,h,g){if(n.validActions.length<=0)return this.gutterHide(),this.hide();if(this.onlyWithEmptySelection&&!this._editor.getSelection()?.isEmpty())return this.gutterHide(),this.hide();if(!this._editor.hasTextFocus())return this.gutterHide(),this.hide();if(this._editor.getOptions().get(73).enabled===Ps.Off)return this.gutterHide(),this.hide();let _=this._editor.getModel();if(!_)return this.gutterHide(),this.hide();let{lineNumber:v,column:w}=_.validatePosition(g),C=_.getOptions().tabSize,E=this._editor.getOptions().get(59),R=_.getLineContent(v),Z=Hg(R,C),X=E.spaceWidth*Z>22,Y=(Ce)=>Ce>2&&this._editor.getTopForLineNumber(Ce)===this._editor.getTopForLineNumber(Ce-1),Q=this._editor.getLineDecorations(v),te=!1;if(Q)for(let Ce of Q){let ae=Ce.options.glyphMarginClassName;if(ae&&!this.lightbulbClasses.some((me)=>ae.includes(me))){te=!0;break}}let oe=v,le=1;if(!X){let Ce=(ae)=>{let me=_.getLineContent(ae);return/^\s*$|^\s+/.test(me)||me.length<=le};if(v>1&&!Y(v-1)){let ae=_.getLineCount(),me=v===ae,Ne=v>1&&Ce(v-1),Me=!me&&Ce(v+1),Oe=Ce(v),ye=!Me&&!Ne;if(!Me&&!Ne&&!te)return this._gutterState.set(new qn.Showing(n,h,g,{position:{lineNumber:oe,column:le},preference:Vs._posPref}),void 0),this.renderGutterLightbub(),this.hide();else if(Ne||me||Ne&&!Oe)oe-=1;else if(Me||ye&&Oe)oe+=1}else if(v===1&&(v===_.getLineCount()||!Ce(v+1)&&!Ce(v)))if(this._gutterState.set(new qn.Showing(n,h,g,{position:{lineNumber:oe,column:le},preference:Vs._posPref}),void 0),te)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(v<_.getLineCount()&&!Y(v+1))oe+=1;else if(w*E.spaceWidth<22)return this.hide();le=/^\S\s*$/.test(_.getLineContent(oe))?2:1}if(this._state.set(new qn.Showing(n,h,g,{position:{lineNumber:oe,column:le},preference:Vs._posPref}),void 0),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide();let pe=n.validActions,Se=n.validActions[0].action.kind;if(pe.length!==1||!Se){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){if(this._state.get()===qn.Hidden)return;this._state.set(qn.Hidden,void 0),this._editor.layoutContentWidget(this)}gutterHide(){if(this._gutterState.get()===qn.Hidden)return;if(this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID);this._gutterState.set(qn.Hidden,void 0)}_updateLightBulbTitleAndIcon(n){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!n||n.isGutter)return;this._domNode.title=n.title,this._iconClasses=J.asClassNameArray(n.icon),this._domNode.classList.add(...this._iconClasses)}_updateGutterDecorationOptions(n){if(!n||!n.isGutter)return;this.gutterDecoration=ue.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:J.asClassName(n.icon),glyphMargin:{position:Qr.Left},stickiness:1})}renderGutterLightbub(){let n=this._editor.getSelection();if(!n)return;if(this._gutterDecorationID===void 0)this._addGutterDecoration(n.startLineNumber);else this._updateGutterDecoration(this._gutterDecorationID,n.startLineNumber)}_addGutterDecoration(n){this._editor.changeDecorations((h)=>{this._gutterDecorationID=h.addDecoration(new t(n,0,n,0),this.gutterDecoration)})}_removeGutterDecoration(n){this._editor.changeDecorations((h)=>{h.removeDecoration(n),this._gutterDecorationID=void 0})}_updateGutterDecoration(n,h){this._editor.changeDecorations((g)=>{g.changeDecoration(n,new t(h,0,h,0)),g.changeDecorationOptions(n,this.gutterDecoration)})}};Aa=Vs=vT([wT(1,ge)],Aa);var ST=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jn=function(u,n){return function(h,g){n(h,g,u)}},nc,CT="quickfix-edit-highlight",vr=class u extends i{static{nc=this}static{this.ID="editor.contrib.codeActionController"}static get(n){return n.getContribution(nc.ID)}constructor(n,h,g,p,m,_,v,w,C,E,R,Z){super();this._commandService=v,this._configurationService=w,this._actionWidgetService=C,this._instantiationService=E,this._progressService=R,this._keybindingService=Z,this._activeCodeActions=this._register(new de),this._showDisabled=!1,this._disposed=!1,this._onlyLightBulbWithEmptySelection=!1,this._lightBulbInfoObs=j(this,void 0),this._preferredKbLabel=j(this,void 0),this._quickFixKbLabel=j(this,void 0),this._editor=n,this._model=this._register(new Nb(this._editor,m.codeActionProvider,h,g,_,w)),this._register(this._model.onDidChangeState((X)=>this.update(X))),this._register(I.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(oc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Rs)?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new ii(()=>{let X=this._editor.getContribution(Aa.ID);if(X)this._register(X.onClick((Y)=>this.showCodeActionsFromLightbulb(Y.actions,Y))),X.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection;return X}),this._resolver=p.createInstance(gp),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(n,h){if(n.allAIFixes&&n.validActions.length===1){let g=n.validActions[0],p=g.action.command;if(p&&p.id==="inlineChat.start"){if(p.arguments&&p.arguments.length>=1&&p.arguments[0])p.arguments[0]={...p.arguments[0],autoSend:!1}}await this.applyCodeAction(g,!1,!1,br.FromAILightbulb);return}await this.showCodeActionList(n,h,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(n,h,g){return this.showCodeActionList(h,g,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(n,h,g,p){if(!this._editor.hasModel())return;hi.get(this._editor)?.closeMessage();let m=this._editor.getPosition();this._trigger({type:1,triggerAction:h,filter:g,autoApply:p,context:{notAvailableMessage:n,position:m}})}_trigger(n){return this._model.trigger(n)}async applyCodeAction(n,h,g,p){let m=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(zI,n,p,{preview:g,editor:this._editor})}finally{if(h)this._trigger({type:2,triggerAction:fi.QuickFix,filter:{}});m.done()}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(n){if(n.type!==1){this.hideLightBulbWidget(),this._lightBulbInfoObs.set(void 0,void 0);return}let h;try{h=this._model.takeCodeActions(await n.actions)}catch(p){ee(p);return}if(!h)return;if(this._disposed){h.dispose();return}if(this._editor.getSelection()?.startLineNumber!==n.position.lineNumber){h.dispose();return}if(this._lightBulbWidget.value?.update(h,n.trigger,n.position),this._lightBulbInfoObs.set(Mb(h,n.trigger,this._preferredKbLabel.get(),this._quickFixKbLabel.get()),void 0),n.trigger.type===1){if(n.trigger.filter?.include){let m=this.tryGetValidActionToApply(n.trigger,h);if(m){try{this.hideLightBulbWidget(),await this.applyCodeAction(m,!1,!1,br.FromCodeActions)}finally{h.dispose()}return}if(n.trigger.context){let _=this.getInvalidActionThatWouldHaveBeenApplied(n.trigger,h);if(_&&_.action.disabled){hi.get(this._editor)?.showMessage(_.action.disabled,n.trigger.context.position),h.dispose();return}}}let p=!!n.trigger.filter?.include;if(n.trigger.context){if(!h.allActions.length||!p&&!h.validActions.length){hi.get(this._editor)?.showMessage(n.trigger.context.notAvailableMessage,n.trigger.context.position),this._activeCodeActions.value=h,h.dispose();return}}this._activeCodeActions.value=h,this.showCodeActionList(h,this.toCoords(n.position),{includeDisabledActions:p,fromLightbulb:!1})}else if(this._actionWidgetService.isVisible)h.dispose();else this._activeCodeActions.value=h}getInvalidActionThatWouldHaveBeenApplied(n,h){if(!h.allActions.length)return;if(n.autoApply==="first"&&h.validActions.length===0||n.autoApply==="ifSingle"&&h.allActions.length===1)return h.allActions.find(({action:g})=>g.disabled);return}tryGetValidActionToApply(n,h){if(!h.validActions.length)return;if(n.autoApply==="first"&&h.validActions.length>0||n.autoApply==="ifSingle"&&h.validActions.length===1)return h.validActions[0];return}static{this.DECORATION=ue.register({description:"quickfix-highlight",className:CT})}async showCodeActionList(n,h,g){let p=this._editor.createDecorationsCollection(),m=this._editor.getDomNode();if(!m)return;let _=g.includeDisabledActions&&(this._showDisabled||n.validActions.length===0)?n.allActions:n.validActions;if(!_.length)return;let v=s.isIPosition(h)?this.toCoords(h):h,w={onSelect:async(C,E)=>{this.applyCodeAction(C,!0,!!E,g.fromLightbulb?br.FromAILightbulb:br.FromCodeActions),this._actionWidgetService.hide(!1),p.clear()},onHide:(C)=>{this._editor?.focus(),p.clear()},onHover:async(C,E)=>{if(E.isCancellationRequested)return;let R=!1,Z=C.action.kind;if(Z){let X=new Ht(Z);R=[_t.RefactorExtract,_t.RefactorInline,_t.RefactorRewrite,_t.RefactorMove,_t.Source].some((Q)=>Q.contains(X))}return{canPreview:R||!!C.action.edit?.edits.length}},onFocus:(C)=>{if(C&&C.action){let E=C.action.ranges,R=C.action.diagnostics;if(p.clear(),E&&E.length>0){let Z=R&&R?.length>1?R.map((X)=>({range:X,options:nc.DECORATION})):E.map((X)=>({range:X,options:nc.DECORATION}));p.set(Z)}else if(R&&R.length>0){let Z=R.map((Y)=>({range:Y,options:nc.DECORATION}));p.set(Z);let X=R[0];if(X.startLineNumber&&X.startColumn){let Y=this._editor.getModel()?.getWordAtPosition({lineNumber:X.startLineNumber,column:X.startColumn})?.word;jo(e(914,"Context: {0} at line {1} and column {2}.",Y,X.startLineNumber,X.startColumn))}}}else p.clear()}};this._actionWidgetService.show("codeActionWidget",!0,UI(_,this._shouldShowHeaders(),this._resolver.getResolver()),w,v,m,this._getActionBarActions(n,h,g))}toCoords(n){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(n,1),this._editor.render();let h=this._editor.getScrolledVisiblePosition(n),g=kt(this._editor.getDomNode()),p=g.left+h.left,m=g.top+h.top+h.height;return{x:p,y:m}}_shouldShowHeaders(){let n=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:n?.uri})}_getActionBarActions(n,h,g){if(g.fromLightbulb)return[];let p=n.documentation.map((m)=>({id:m.id,label:m.title,tooltip:m.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(m.id,...m.arguments??[])}));if(g.includeDisabledActions&&n.validActions.length>0&&n.allActions.length!==n.validActions.length)p.push(this._showDisabled?{id:"hideMoreActions",label:e(915,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(n,h,g))}:{id:"showMoreActions",label:e(916,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(n,h,g))});return p}};vr=nc=ST([jn(1,Pr),jn(2,G),jn(3,A),jn(4,z),jn(5,zs),jn(6,Ue),jn(7,re),jn(8,bo),jn(9,A),jn(10,zs),jn(11,ge)],vr);Li((u,n)=>{((p,m)=>{if(m)n.addRule(`.monaco-editor ${p} { background-color: ${m}; }`)})(".quickfix-edit-highlight",u.getColor(pa));let g=u.getColor(wc);if(g)n.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${fr(u.type)?"dotted":"solid"} ${g}; box-sizing: border-box; }`)});function th(u){return L.regex(Rb.keys()[0],new RegExp("(\\s|^)"+Ui(u.value)+"\\b"))}var Ob={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:e(882,"Kind of the code action to run.")},apply:{type:"string",description:e(883,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[e(884,"Always apply the first returned code action."),e(885,"Apply the first returned code action if it is the only one."),e(886,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:e(887,"Controls if only preferred code actions should be returned.")}}};function Fa(u,n,h,g,p=fi.Default){if(u.hasModel())vr.get(u)?.manualTriggerAtCurrentPosition(n,p,h,g)}class Pb extends pr{constructor(){super({id:Rs,title:b(904,"Quick Fix..."),precondition:L.and(r.writable,r.hasCodeActionsProvider),icon:S.lightBulb,f1:!0,keybinding:{when:r.textInputFocus,primary:2137,weight:100},menu:{id:l.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:L.and(r.writable,r.hasCodeActionsProvider)}})}runEditorCommand(u,n){return Fa(n,e(888,"No code actions available"),void 0,void 0,fi.QuickFix)}}class Ab extends tn{constructor(){super({id:rp,precondition:L.and(r.writable,r.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:Ob}]}})}runEditorCommand(u,n,h){let g=ln.fromUser(h,{kind:Ht.Empty,apply:"ifSingle"});return Fa(n,typeof h?.kind==="string"?g.preferred?e(889,"No preferred code actions for '{0}' available",h.kind):e(890,"No code actions for '{0}' available",h.kind):g.preferred?e(891,"No preferred code actions available"):e(892,"No code actions available"),{include:g.kind,includeSourceActions:!0,onlyIncludePreferredActions:g.preferred},g.apply)}}class Fb extends U{constructor(){super({id:cp,label:b(905,"Refactor..."),precondition:L.and(r.writable,r.hasCodeActionsProvider),kbOpts:{kbExpr:r.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:L.and(r.writable,th(_t.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:Ob}]}})}run(u,n,h){let g=ln.fromUser(h,{kind:_t.Refactor,apply:"never"});return Fa(n,typeof h?.kind==="string"?g.preferred?e(893,"No preferred refactorings for '{0}' available",h.kind):e(894,"No refactorings for '{0}' available",h.kind):g.preferred?e(895,"No preferred refactorings available"):e(896,"No refactorings available"),{include:_t.Refactor.contains(g.kind)?g.kind:Ht.None,onlyIncludePreferredActions:g.preferred},g.apply,fi.Refactor)}}class Hb extends U{constructor(){super({id:hp,label:b(906,"Source Action..."),precondition:L.and(r.writable,r.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:L.and(r.writable,th(_t.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:Ob}]}})}run(u,n,h){let g=ln.fromUser(h,{kind:_t.Source,apply:"never"});return Fa(n,typeof h?.kind==="string"?g.preferred?e(897,"No preferred source actions for '{0}' available",h.kind):e(898,"No source actions for '{0}' available",h.kind):g.preferred?e(899,"No preferred source actions available"):e(900,"No source actions available"),{include:_t.Source.contains(g.kind)?g.kind:Ht.None,includeSourceActions:!0,onlyIncludePreferredActions:g.preferred},g.apply,fi.SourceAction)}}class Wb extends U{constructor(){super({id:Jl,label:b(907,"Organize Imports"),precondition:L.and(r.writable,th(_t.SourceOrganizeImports)),kbOpts:{kbExpr:r.textInputFocus,primary:1581,weight:100},metadata:{description:b(908,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(u,n){return Fa(n,e(901,"No organize imports action available"),{include:_t.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",fi.OrganizeImports)}}class Bb extends U{constructor(){super({id:Ql,label:b(909,"Fix All"),precondition:L.and(r.writable,th(_t.SourceFixAll))})}run(u,n){return Fa(n,e(902,"No fix all action available"),{include:_t.SourceFixAll,includeSourceActions:!0},"ifSingle",fi.FixAll)}}class Vb extends U{constructor(){super({id:oc,label:b(910,"Auto Fix..."),precondition:L.and(r.writable,th(_t.QuickFix)),kbOpts:{kbExpr:r.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(u,n){return Fa(n,e(903,"No auto fixes available"),{include:_t.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",fi.AutoFix)}}fe(vr.ID,vr,3);fe(Aa.ID,Aa,4);lt(Pb);O(Fb);O(Hb);O(Wb);O(Vb);O(Bb);K(new Ab);pt.as(Rr.Configuration).registerConfiguration({...w_,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:e(911,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});pt.as(Rr.Configuration).registerConfiguration({...w_,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:e(912,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});pt.as(Rr.Configuration).registerConfiguration({...w_,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:6,markdownDescription:e(913,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});var JI=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ih=function(u,n){return function(h,g){n(h,g,u)}},pp=class u{static{this.ID="editor.contrib.autoFormat"}constructor(n,h,g,p){this._editor=n,this._languageFeaturesService=h,this._workerService=g,this._accessibilitySignalService=p,this._disposables=new d,this._sessionDisposables=new d,this._disposables.add(h.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(n.onDidChangeModel(()=>this._update())),this._disposables.add(n.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(n.onDidChangeConfiguration((m)=>{if(m.hasChanged(65))this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65))return;if(!this._editor.hasModel())return;let n=this._editor.getModel(),[h]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(n);if(!h||!h.autoFormatTriggerCharacters)return;let g=new Nf;for(let p of h.autoFormatTriggerCharacters)g.add(p.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((p)=>{let m=p.charCodeAt(p.length-1);if(g.has(m))this._trigger(String.fromCharCode(m))}))}_trigger(n){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let h=this._editor.getModel(),g=this._editor.getPosition(),p=new qe,m=this._editor.onDidChangeModelContent((_)=>{if(_.isFlush){p.cancel(),m.dispose();return}for(let v=0,w=_.changes.length;v<w;v++)if(_.changes[v].range.endLineNumber<=g.lineNumber){p.cancel(),m.dispose();return}});AR(this._workerService,this._languageFeaturesService,h,g,n,h.getFormattingOptions(),p.token).then((_)=>{if(p.token.isCancellationRequested)return;if(Kn(_))this._accessibilitySignalService.playSignal(tt.format,{userGesture:!1}),em.execute(this._editor,_,!0)}).finally(()=>{m.dispose()})}};pp=JI([ih(1,z),ih(2,Mi),ih(3,xs)],pp);var mp=class u{static{this.ID="editor.contrib.formatOnPaste"}constructor(n,h,g){this.editor=n,this._languageFeaturesService=h,this._instantiationService=g,this._callOnDispose=new d,this._callOnModel=new d,this._callOnDispose.add(n.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(n.onDidChangeModel(()=>this._update())),this._callOnDispose.add(n.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(h.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){if(this._callOnModel.clear(),!this.editor.getOption(64))return;if(!this.editor.hasModel())return;if(!this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel()))return;this._callOnModel.add(this.editor.onDidPaste(({range:n})=>this._trigger(n)))}_trigger(n){if(!this.editor.hasModel())return;if(this.editor.getSelections().length>1)return;this._instantiationService.invokeFunction(NR,this.editor,n,2,Ja.None,we.None,!1).catch(ee)}};mp=JI([ih(1,z),ih(2,A)],mp);class QI extends U{constructor(){super({id:"editor.action.formatDocument",label:b(1072,"Format Document"),precondition:L.and(r.notInCompositeEditor,r.writable,r.hasDocumentFormattingProvider),kbOpts:{kbExpr:r.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(u,n){if(n.hasModel()){let h=u.get(A);await u.get(zs).showWhile(h.invokeFunction(SP,n,1,Ja.None,we.None,!0),250)}}}class e0 extends U{constructor(){super({id:"editor.action.formatSelection",label:b(1073,"Format Selection"),precondition:L.and(r.writable,r.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2084),weight:100},contextMenuOpts:{when:r.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(u,n){if(!n.hasModel())return;let h=u.get(A),g=n.getModel(),p=n.getSelections().map((_)=>_.isEmpty()?new t(_.startLineNumber,1,_.startLineNumber,g.getLineMaxColumn(_.startLineNumber)):_);await u.get(zs).showWhile(h.invokeFunction(NR,n,p,1,Ja.None,we.None,!0),250)}}fe(pp.ID,pp,2);fe(mp.ID,mp,2);O(QI);O(e0);Le.registerCommand("editor.action.format",async(u)=>{let n=u.get(Te).getFocusedCodeEditor();if(!n||!n.hasModel())return;let h=u.get(Ue);if(n.getSelection().isEmpty())await h.executeCommand("editor.action.formatDocument");else await h.executeCommand("editor.action.formatSelection")});var fp="editor.action.showHover",t0="editor.action.showDefinitionPreviewHover",i0="editor.action.hideHover",o0="editor.action.scrollUpHover",n0="editor.action.scrollDownHover",r0="editor.action.scrollLeftHover",s0="editor.action.scrollRightHover",a0="editor.action.pageUpHover",d0="editor.action.pageDownHover",c0="editor.action.goToTopHover",l0="editor.action.goToBottomHover",Ha="editor.action.increaseHoverVerbosityLevel",h0=e(1160,"Increase Hover Verbosity Level"),Ba="editor.action.decreaseHoverVerbosityLevel",u0=e(1161,"Decrease Hover Verbosity Level"),oh="editor.action.hideLongLineWarningHover";function zb(u,n){return!!u[n]}class _p{constructor(u,n){if(this.target=u.target,this.isLeftClick=u.event.leftButton,this.isMiddleClick=u.event.middleButton,this.isRightClick=u.event.rightButton,this.mouseMiddleClickAction=n.mouseMiddleClickAction,this.hasTriggerModifier=zb(u.event,n.triggerModifier),this.isMiddleClick&&n.mouseMiddleClickAction==="ctrlLeftClick")this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0;this.hasSideBySideModifier=zb(u.event,n.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=u.event.detail<=1}}class Kb{constructor(u,n){this.keyCodeIsTriggerKey=u.keyCode===n.triggerKey,this.keyCodeIsSideBySideKey=u.keyCode===n.triggerSideBySideKey,this.hasTriggerModifier=zb(u,n.triggerModifier)}}class nh{constructor(u,n,h,g,p){this.mouseMiddleClickAction=p,this.triggerKey=u,this.triggerModifier=n,this.triggerSideBySideKey=h,this.triggerSideBySideModifier=g}equals(u){return this.triggerKey===u.triggerKey&&this.triggerModifier===u.triggerModifier&&this.triggerSideBySideKey===u.triggerSideBySideKey&&this.triggerSideBySideModifier===u.triggerSideBySideModifier&&this.mouseMiddleClickAction===u.mouseMiddleClickAction}}function g0(u,n){if(u==="altKey"){if(ve)return new nh(57,"metaKey",6,"altKey",n);return new nh(5,"ctrlKey",6,"altKey",n)}if(ve)return new nh(6,"altKey",57,"metaKey",n);return new nh(6,"altKey",5,"ctrlKey",n)}class Kr extends i{constructor(u,n){super();this._onMouseMoveOrRelevantKeyDown=this._register(new o),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new o),this.onExecute=this._onExecute.event,this._onCancel=this._register(new o),this.onCancel=this._onCancel.event,this._editor=u,this._extractLineNumberFromMouseEvent=n?.extractLineNumberFromMouseEvent??((h)=>h.target.position?h.target.position.lineNumber:0),this._opts=g0(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((h)=>{if(h.hasChanged(86)||h.hasChanged(87)){let g=g0(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(g))return;this._opts=g,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove((h)=>this._onEditorMouseMove(new _p(h,this._opts)))),this._register(this._editor.onMouseDown((h)=>this._onEditorMouseDown(new _p(h,this._opts)))),this._register(this._editor.onMouseUp((h)=>this._onEditorMouseUp(new _p(h,this._opts)))),this._register(this._editor.onKeyDown((h)=>this._onEditorKeyDown(new Kb(h,this._opts)))),this._register(this._editor.onKeyUp((h)=>this._onEditorKeyUp(new Kb(h,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection((h)=>this._onDidChangeCursorSelection(h))),this._register(this._editor.onDidChangeModel((h)=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange((h)=>{if(h.scrollTopChanged||h.scrollLeftChanged)this._resetHandler()}))}_onDidChangeCursorSelection(u){if(u.selection&&u.selection.startColumn!==u.selection.endColumn)this._resetHandler()}_onEditorMouseMove(u){this._lastMouseMoveEvent=u,this._onMouseMoveOrRelevantKeyDown.fire([u,null])}_onEditorMouseDown(u){this._hasTriggerKeyOnMouseDown=u.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(u)}_onEditorMouseUp(u){let n=this._extractLineNumberFromMouseEvent(u);if(!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===n&&(this._hasTriggerKeyOnMouseDown||u.isMiddleClick&&u.mouseMiddleClickAction==="openLink"))this._onExecute.fire(u)}_onEditorKeyDown(u){if(this._lastMouseMoveEvent&&(u.keyCodeIsTriggerKey||u.keyCodeIsSideBySideKey&&u.hasTriggerModifier))this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,u]);else if(u.hasTriggerModifier)this._onCancel.fire()}_onEditorKeyUp(u){if(u.keyCodeIsTriggerKey)this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class qo{constructor(u,n,h,g){this.isProviderFirst=u,this.parent=n,this.link=h,this._rangeCallback=g,this.id=a_.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(u){this._range=u,this._rangeCallback(this)}get ariaMessage(){let u=this.parent.getPreview(this)?.preview(this.range);if(!u)return e(1145,"in {0} on line {1} at column {2}",Oi(this.uri),this.range.startLineNumber,this.range.startColumn);else return e(1146,"{0} in {1} on line {2} at column {3}",u.value,Oi(this.uri),this.range.startLineNumber,this.range.startColumn)}}class p0{constructor(u){this._modelReference=u}dispose(){this._modelReference.dispose()}preview(u,n=8){let h=this._modelReference.object.textEditorModel;if(!h)return;let{startLineNumber:g,startColumn:p,endLineNumber:m,endColumn:_}=u,v=h.getWordUntilPosition({lineNumber:g,column:p-n}),w=new t(g,v.startColumn,g,p),C=new t(m,_,m,1073741824),E=h.getValueInRange(w).replace(/^\s+/,""),R=h.getValueInRange(u),Z=h.getValueInRange(C).replace(/\s+$/,"");return{value:E+R+Z,highlight:{start:E.length,end:E.length+R.length}}}}class Ur{constructor(u,n){this.parent=u,this.uri=n,this.children=[],this._previews=new en}dispose(){ze(this._previews.values()),this._previews.clear()}getPreview(u){return this._previews.get(u.uri)}get ariaMessage(){let u=this.children.length;if(u===1)return e(1147,"1 symbol in {0}, full path {1}",Oi(this.uri),this.uri.fsPath);else return e(1148,"{0} symbols in {1}, full path {2}",u,Oi(this.uri),this.uri.fsPath)}async resolve(u){if(this._previews.size!==0)return this;for(let n of this.children){if(this._previews.has(n.uri))continue;try{let h=await u.createModelReference(n.uri);this._previews.set(n.uri,new p0(h))}catch(h){ee(h)}}return this}}class Ri{constructor(u,n){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new o,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=u,this._title=n;let[h]=u;u.sort(Ri._compareReferences);let g;for(let p of u){if(!g||!An.isEqual(g.uri,p.uri,!0))g=new Ur(this,p.uri),this.groups.push(g);if(g.children.length===0||Ri._compareReferences(p,g.children[g.children.length-1])!==0){let m=new qo(h===p,g,p,(_)=>this._onDidChangeReferenceRange.fire(_));this.references.push(m),g.children.push(m)}}}dispose(){ze(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Ri(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){if(this.isEmpty)return e(1149,"No results found");else if(this.references.length===1)return e(1150,"Found 1 symbol in {0}",this.references[0].uri.fsPath);else if(this.groups.length===1)return e(1151,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath);else return e(1152,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(u,n){let{parent:h}=u,g=h.children.indexOf(u),p=h.children.length,m=h.parent.groups.length;if(m===1||n&&g+1<p||!n&&g>0){if(n)g=(g+1)%p;else g=(g+p-1)%p;return h.children[g]}if(g=h.parent.groups.indexOf(h),n)return g=(g+1)%m,h.parent.groups[g].children[0];else return g=(g+m-1)%m,h.parent.groups[g].children[h.parent.groups[g].children.length-1]}nearestReference(u,n){let h=this.references.map((g,p)=>({idx:p,prefixLen:No(g.uri.toString(),u.toString()),offsetDist:Math.abs(g.range.startLineNumber-n.lineNumber)*100+Math.abs(g.range.startColumn-n.column)})).sort((g,p)=>{if(g.prefixLen>p.prefixLen)return-1;else if(g.prefixLen<p.prefixLen)return 1;else if(g.offsetDist<p.offsetDist)return-1;else if(g.offsetDist>p.offsetDist)return 1;else return 0})[0];if(h)return this.references[h.idx];return}referenceAt(u,n){for(let h of this.references)if(h.uri.toString()===u.toString()){if(t.containsPosition(h.range,n))return h}return}firstReference(){for(let u of this.references)if(u.isProviderFirst)return u;return this.references[0]}static _compareReferences(u,n){return An.compare(u.uri,n.uri)||t.compareRangesUsingStarts(u.range,n.range)}}var wp=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Sp=function(u,n){return function(h,g){n(h,g,u)}},Ub,bp=class u{constructor(n){this._resolverService=n}hasChildren(n){if(n instanceof Ri)return!0;if(n instanceof Ur)return!0;return!1}getChildren(n){if(n instanceof Ri)return n.groups;if(n instanceof Ur)return n.resolve(this._resolverService).then((h)=>h.children);throw Error("bad tree")}};bp=wp([Sp(0,Dn)],bp);class jb{getHeight(){return 23}getTemplateId(u){if(u instanceof Ur)return rh.id;else return sh.id}}var vp=class u{constructor(n){this._keybindingService=n}getKeyboardNavigationLabel(n){if(n instanceof qo){let h=n.parent.getPreview(n)?.preview(n.range);if(h)return h.value}return Oi(n.uri)}};vp=wp([Sp(0,ge)],vp);class $b{getId(u){return u instanceof qo?u.id:u.uri}}var qb=class u extends i{constructor(n,h){super();this._labelService=h;let g=document.createElement("div");g.classList.add("reference-file"),this.file=this._register(new Cu(g,{supportHighlights:!0})),this.badge=this._register(new Py(k(g,x(".count")),{},vk)),n.appendChild(g)}set(n,h){let g=If(n.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(n.uri),this._labelService.getUriLabel(g,{relative:!0}),{title:this._labelService.getUriLabel(n.uri),matches:h});let p=n.children.length;if(this.badge.setCount(p),p>1)this.badge.setTitleFormat(e(1139,"{0} references",p));else this.badge.setTitleFormat(e(1140,"{0} reference",p))}};qb=wp([Sp(1,Tc)],qb);var rh=class u{static{Ub=this}static{this.id="FileReferencesRenderer"}constructor(n){this._instantiationService=n,this.templateId=Ub.id}renderTemplate(n){return this._instantiationService.createInstance(qb,n)}renderElement(n,h,g){g.set(n.element,sp(n.filterData))}disposeTemplate(n){n.dispose()}};rh=Ub=wp([Sp(0,A)],rh);class m0 extends i{constructor(u){super();this.label=this._register(new Su(u))}set(u,n){let h=u.parent.getPreview(u)?.preview(u.range);if(!h||!h.value)this.label.set(`${Oi(u.uri)}:${u.range.startLineNumber+1}:${u.range.startColumn+1}`);else{let{value:g,highlight:p}=h;if(n&&!ts.isDefault(n))this.label.element.classList.toggle("referenceMatch",!1),this.label.set(g,sp(n));else this.label.element.classList.toggle("referenceMatch",!0),this.label.set(g,[p])}}}class sh{constructor(){this.templateId=sh.id}static{this.id="OneReferenceRenderer"}renderTemplate(u){return new m0(u)}renderElement(u,n,h){h.set(u.element,u.filterData)}disposeTemplate(u){u.dispose()}}class Gb{getWidgetAriaLabel(){return e(1141,"References")}getAriaLabel(u){return u.ariaMessage}}var f0=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ka=function(u,n){return function(h,g){n(h,g,u)}};class Xb{static{this.DecorationOptions=ue.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(u,n){this._editor=u,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new d,this._callOnModelChange=new d,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();let u=this._editor.getModel();if(!u)return;for(let n of this._model.references)if(n.uri.toString()===u.uri.toString()){this._addDecorations(n.parent);return}}_addDecorations(u){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let n=[],h=[];for(let g=0,p=u.children.length;g<p;g++){let m=u.children[g];if(this._decorationIgnoreSet.has(m.id))continue;if(m.uri.toString()!==this._editor.getModel().uri.toString())continue;n.push({range:m.range,options:Xb.DecorationOptions}),h.push(g)}this._editor.changeDecorations((g)=>{let p=g.deltaDecorations([],n);for(let m=0;m<p.length;m++)this._decorations.set(p[m],u.children[h[m]])})}_onDecorationChanged(){let u=[],n=this._editor.getModel();if(!n)return;for(let[h,g]of this._decorations){let p=n.getDecorationRange(h);if(!p)continue;let m=!1;if(t.equalsRange(p,g.range))continue;if(t.spansMultipleLines(p))m=!0;else{let _=g.range.endColumn-g.range.startColumn,v=p.endColumn-p.startColumn;if(_!==v)m=!0}if(m)this._decorationIgnoreSet.add(g.id),u.push(h);else g.range=p}for(let h=0,g=u.length;h<g;h++)this._decorations.delete(u[h]);this._editor.removeDecorations(u)}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}class Yb{constructor(){this.ratio=0.7,this.heightInLines=18}static fromJSON(u){let n,h;try{let g=JSON.parse(u);n=g.ratio,h=g.heightInLines}catch{}return{ratio:n||0.7,heightInLines:h||18}}}class _0 extends Ck{}var Zb=class u{constructor(n){this.labelService=n,this.disposables=new d}getDragURI(n){if(n instanceof Ur)return n.uri.toString();else if(n instanceof qo)return gP(n.uri,n.range).toString();return null}getDragLabel(n){if(n.length===0)return;return n.map((g)=>this.labelService.getUriBasenameLabel(g.uri)).join(", ")}onDragStart(n,h){if(!h.dataTransfer)return;let p=n.elements.map((m)=>this.getDragURI(m)).filter(Boolean);if(p.length)h.dataTransfer.setData(wd.RESOURCES,JSON.stringify(p)),h.dataTransfer.setData(wd.TEXT,p.join(`
|
|
31
|
+
`))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};Zb=f0([Ka(0,Tc)],Zb);var Cp=class u extends Qd{constructor(n,h,g,p,m,_,v,w,C){super(n,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},_);this._defaultTreeKeyboardSupport=h,this.layoutData=g,this._textModelResolverService=m,this._instantiationService=_,this._peekViewService=v,this._uriLabel=w,this._keybindingService=C,this._disposeOnNewModel=new d,this._callOnDispose=new d,this._onDidSelectReference=this._callOnDispose.add(new o),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new at(0,0),this._isClosing=!1,this._applyTheme(p.getColorTheme()),this._callOnDispose.add(p.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(n,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),ze(this._preview),ze(this._previewNotAvailableMessage),ze(this._tree),ze(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(n){let h=n.getColor(LI)||y.transparent;this.style({arrowColor:h,frameColor:h,headerBackgroundColor:n.getColor(II)||y.transparent,primaryHeadingColor:n.getColor(Vg),secondaryHeadingColor:n.getColor(Ug)})}show(n){super.show(n,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(n){if(this._preview&&this._preview.getModel())this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:n.ctrlKey||n.metaKey||n.altKey?"side":"open",source:"title"})}_fillBody(n){this.setCssClass("reference-zone-widget"),this._messageContainer=k(n,x("div.messages")),po(this._messageContainer),this._splitView=new p_(n,{orientation:1}),this._previewContainer=k(n,x("div.preview.inline"));let h={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(Wi,this._previewContainer,h,{},this.editor),po(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(wu,e(1142,"no preview available"),lo,wu.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=k(n,x("div.ref-tree.inline"));let g={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new Gb,keyboardNavigationLabelProvider:this._instantiationService.createInstance(vp),identityProvider:new $b,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:kI},dnd:this._instantiationService.createInstance(Zb)};if(this._defaultTreeKeyboardSupport)this._callOnDispose.add(Ct(this._treeContainer,"keydown",(m)=>{if(m.equals(9))this._keybindingService.dispatchEvent(m,m.target),m.stopPropagation()},!0));this._tree=this._instantiationService.createInstance(_0,"ReferencesWidget",this._treeContainer,new jb,[this._instantiationService.createInstance(rh),this._instantiationService.createInstance(sh)],this._instantiationService.createInstance(bp),g),this._splitView.addView({onDidChange:I.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:(m)=>{this._preview.layout({height:this._dim.height,width:m})}},h_.Distribute),this._splitView.addView({onDidChange:I.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:(m)=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${m}px`,this._tree.layout(this._dim.height,m)}},h_.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{if(this._dim.width)this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width},void 0));let p=(m,_)=>{if(m instanceof qo){if(_==="show")this._revealReference(m,!1);this._onDidSelectReference.fire({element:m,kind:_,source:"tree"})}};this._disposables.add(this._tree.onDidOpen((m)=>{if(m.sideBySide)p(m.element,"side");else if(m.editorOptions.pinned)p(m.element,"goto");else p(m.element,"show")})),po(this._treeContainer)}_onWidth(n){if(this._dim)this._doLayoutBody(this._dim.height,n)}_doLayoutBody(n,h){super._doLayoutBody(n,h),this._dim=new at(h,n),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(h),this._splitView.resizeView(0,h*this.layoutData.ratio)}setSelection(n){return this._revealReference(n,!0).then(()=>{if(!this._model)return;this._tree.setSelection([n]),this._tree.setFocus([n])})}setModel(n){if(this._disposeOnNewModel.clear(),this._model=n,this._model)return this._onNewModel();return Promise.resolve()}_onNewModel(){if(!this._model)return Promise.resolve(void 0);if(this._model.isEmpty)return this.setTitle(""),this._messageContainer.innerText=e(1143,"No results"),Oo(this._messageContainer),Promise.resolve(void 0);return po(this._messageContainer),this._decorationsManager=new Xb(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((n)=>this._tree.rerender(n))),this._disposeOnNewModel.add(this._preview.onMouseDown((n)=>{let{event:h,target:g}=n;if(h.detail!==2)return;let p=this._getFocusedReference();if(!p)return;this._onDidSelectReference.fire({element:{uri:p.uri,range:g.range},kind:h.ctrlKey||h.metaKey||h.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),Oo(this._treeContainer),Oo(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)}_getFocusedReference(){let[n]=this._tree.getFocus();if(n instanceof qo)return n;else if(n instanceof Ur){if(n.children.length>0)return n.children[0]}return}async revealReference(n){await this._revealReference(n,!1),this._onDidSelectReference.fire({element:n,kind:"goto",source:"tree"})}async _revealReference(n,h){if(this._revealedReference===n)return;if(this._revealedReference=n,n.uri.scheme!==se.inMemory)this.setTitle(z2(n.uri),this._uriLabel.getUriLabel(If(n.uri)));else this.setTitle(e(1144,"References"));let g=this._textModelResolverService.createModelReference(n.uri);if(this._tree.getInput()===n.parent)this._tree.reveal(n);else{if(h)this._tree.reveal(n.parent);await this._tree.expand(n.parent),this._tree.reveal(n)}let p=await g;if(!this._model){p.dispose();return}ze(this._previewModelReference);let m=p.object;if(m){let _=this._preview.getModel()===m.textEditorModel?0:1,v=t.lift(n.range).collapseToStart();this._previewModelReference=p,this._preview.setModel(m.textEditorModel),this._preview.setSelection(v),this._preview.revealRangeInCenter(v,_)}else this._preview.setModel(this._previewNotAvailableMessage),p.dispose()}};Cp=f0([Ka(3,We),Ka(4,Dn),Ka(5,A),Ka(6,xb),Ka(7,Tc),Ka(8,ge)],Cp);var yT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rc=function(u,n){return function(h,g){n(h,g,u)}},yp,ja=new M("referenceSearchVisible",!1,e(1136,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),Bh=class u{static{yp=this}static{this.ID="editor.contrib.referencesController"}static get(n){return n.getContribution(yp.ID)}constructor(n,h,g,p,m,_,v,w){this._defaultTreeKeyboardSupport=n,this._editor=h,this._editorService=p,this._notificationService=m,this._instantiationService=_,this._storageService=v,this._configurationService=w,this._disposables=new d,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=ja.bindTo(g)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(n,h,g){let p;if(this._widget)p=this._widget.position;if(this.closeWidget(),!!p&&n.containsPosition(p))return;this._peekMode=g,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{if(!this._ignoreModelChangeEvent)this.closeWidget()}));let m="peekViewLayout",_=Yb.fromJSON(this._storageService.get(m,0,"{}"));this._widget=this._instantiationService.createInstance(Cp,this._editor,this._defaultTreeKeyboardSupport,_),this._widget.setTitle(e(1137,"Loading...")),this._widget.show(n),this._disposables.add(this._widget.onDidClose(()=>{if(h.cancel(),this._widget){if(this._storageService.store(m,JSON.stringify(this._widget.layoutData),0,1),!this._widget.isClosing)this.closeWidget();this._widget=void 0}else this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference((w)=>{let{element:C,kind:E}=w;if(!C)return;switch(E){case"open":if(w.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))this.openReference(C,!1,!1);break;case"side":this.openReference(C,!0,!1);break;case"goto":if(g)this._gotoReference(C,!0);else this.openReference(C,!1,!0);break}}));let v=++this._requestIdPool;h.then((w)=>{if(v!==this._requestIdPool||!this._widget){w.dispose();return}return this._model?.dispose(),this._model=w,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){if(!this._model.isEmpty)this._widget.setMetaTitle(e(1138,"{0} ({1})",this._model.title,this._model.references.length));else this._widget.setMetaTitle("");let C=this._editor.getModel().uri,E=new s(n.startLineNumber,n.startColumn),R=this._model.nearestReference(C,E);if(R)return this._widget.setSelection(R).then(()=>{if(this._widget&&this._editor.getOption(99)==="editor")this._widget.focusOnPreviewEditor()})}return})},(w)=>{this._notificationService.error(w)})}changeFocusBetweenPreviewAndReferences(){if(!this._widget)return;if(this._widget.isPreviewEditorFocused())this._widget.focusOnReferenceTree();else this._widget.focusOnPreviewEditor()}async goToNextOrPreviousReference(n){if(!this._editor.hasModel()||!this._model||!this._widget)return;let h=this._widget.position;if(!h)return;let g=this._model.nearestReference(this._editor.getModel().uri,h);if(!g)return;let p=this._model.nextOrPreviousReference(g,n),m=this._editor.hasTextFocus(),_=this._widget.isPreviewEditorFocused();if(await this._widget.setSelection(p),await this._gotoReference(p,!1),m)this._editor.focus();else if(this._widget&&_)this._widget.focusOnPreviewEditor()}async revealReference(n){if(!this._editor.hasModel()||!this._model||!this._widget)return;await this._widget.revealReference(n)}closeWidget(n=!0){if(this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,n)this._editor.focus();this._requestIdPool+=1}_gotoReference(n,h){this._widget?.hide(),this._ignoreModelChangeEvent=!0;let g=t.lift(n.range).collapseToStart();return this._editorService.openCodeEditor({resource:n.uri,options:{selection:g,selectionSource:"code.jump",pinned:h}},this._editor).then((p)=>{if(this._ignoreModelChangeEvent=!1,!p||!this._widget){this.closeWidget();return}if(this._editor===p)this._widget.show(g),this._widget.focusOnReferenceTree();else{let m=yp.get(p),_=this._model.clone();this.closeWidget(),p.focus(),m?.toggleWidget(g,Zt((v)=>Promise.resolve(_)),this._peekMode??!1)}},(p)=>{this._ignoreModelChangeEvent=!1,ee(p)})}openReference(n,h,g){if(!h)this.closeWidget();let{uri:p,range:m}=n;this._editorService.openCodeEditor({resource:p,options:{selection:m,selectionSource:"code.jump",pinned:g}},this._editor,h)}};Bh=yp=yT([rc(2,G),rc(3,Te),rc(4,wt),rc(5,A),rc(6,Pn),rc(7,re)],Bh);function $a(u,n){let h=Cg(u);if(!h)return;let g=Bh.get(h);if(g)n(g)}Nn.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:un(2089,60),when:L.or(ja,mi.inPeekEditor),handler(u){$a(u,(n)=>{n.changeFocusBetweenPreviewAndReferences()})}});Nn.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:L.or(ja,mi.inPeekEditor),handler(u){$a(u,(n)=>{n.goToNextOrPreviousReference(!0)})}});Nn.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:L.or(ja,mi.inPeekEditor),handler(u){$a(u,(n)=>{n.goToNextOrPreviousReference(!1)})}});Le.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");Le.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");Le.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");Le.registerCommand("closeReferenceSearch",(u)=>$a(u,(n)=>n.closeWidget()));Nn.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:L.and(mi.inPeekEditor,L.not("config.editor.stablePeek"))});Nn.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:L.and(ja,L.not("config.editor.stablePeek"),L.or(r.editorTextFocus,qg.negate()))});Nn.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:L.and(ja,IR,_k.negate(),Sk.negate()),handler(u){let h=u.get(ba).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof qo)$a(u,(g)=>g.revealReference(h[0]))}});Nn.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:L.and(ja,IR,_k.negate(),Sk.negate()),handler(u){let h=u.get(ba).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof qo)$a(u,(g)=>g.openReference(h[0],!0,!0))}});Le.registerCommand("openReference",(u)=>{let h=u.get(ba).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof qo)$a(u,(g)=>g.openReference(h[0],!1,!0))});var b0=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ah=function(u,n){return function(h,g){n(h,g,u)}},ev=new M("hasSymbols",!1,e(1153,"Whether there are symbol locations that can be navigated via keyboard-only.")),dh=ie("ISymbolNavigationService"),Jb=class u{constructor(n,h,g,p){this._editorService=h,this._notificationService=g,this._keybindingService=p,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=ev.bindTo(n)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.close(),this._currentModel=void 0,this._currentIdx=-1}put(n){let h=n.parent.parent;if(h.references.length<=1){this.reset();return}this._currentModel=h,this._currentIdx=h.references.indexOf(n),this._ctxHasSymbols.set(!0),this._showMessage();let g=new Qb(this._editorService),p=g.onDidChange((m)=>{if(this._ignoreEditorChange)return;let _=this._editorService.getActiveCodeEditor();if(!_)return;let v=_.getModel(),w=_.getPosition();if(!v||!w)return;let C=!1,E=!1;for(let R of h.references)if(gs(R.uri,v.uri))C=!0,E=E||t.containsPosition(R.range,w);else if(C)break;if(!C||!E)this.reset()});this._currentState=Lr(g,p)}revealNext(n){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;let h=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:h.uri,options:{selection:t.collapseToStart(h.range),selectionRevealType:3}},n).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.close();let n=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),h=n?e(1154,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,n.getLabel()):e(1155,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(h)}};Jb=b0([ah(0,G),ah(1,Te),ah(2,wt),ah(3,ge)],Jb);_e(dh,Jb,1);K(new class extends tn{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:ev,kbOpts:{weight:100,primary:70}})}runEditorCommand(u,n){return u.get(dh).revealNext(n)}});Nn.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:ev,primary:9,handler(u){u.get(dh).reset()}});var Qb=class u{constructor(n){this._listener=new Map,this._disposables=new d,this._onDidChange=new o,this.onDidChange=this._onDidChange.event,this._disposables.add(n.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(n.onCodeEditorAdd(this._onDidAddEditor,this)),n.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),ze(this._listener.values())}_onDidAddEditor(n){this._listener.set(n,Lr(n.onDidChangeCursorPosition((h)=>this._onDidChange.fire({editor:n})),n.onDidChangeModelContent((h)=>this._onDidChange.fire({editor:n}))))}_onDidRemoveEditor(n){this._listener.get(n)?.dispose(),this._listener.delete(n)}};Qb=b0([ah(0,Te)],Qb);function tv(u,n){if(n.uri.scheme===u.uri.scheme)return!0;if(_g(n.uri,se.walkThroughSnippet,se.vscodeChatCodeBlock,se.vscodeChatCodeCompareBlock))return!1;return!0}async function ch(u,n,h,g,p){let _=h.ordered(u,g).map((w)=>Promise.resolve(p(w,u,n)).then(void 0,(C)=>{yt(C);return})),v=await Promise.all(_);return vo(v.flat()).filter((w)=>tv(u,w))}function Ks(u,n,h,g,p){return ch(n,h,u,g,(m,_,v)=>m.provideDefinition(_,v,p))}function xp(u,n,h,g,p){return ch(n,h,u,g,(m,_,v)=>m.provideDeclaration(_,v,p))}function Ip(u,n,h,g,p){return ch(n,h,u,g,(m,_,v)=>m.provideImplementation(_,v,p))}function Lp(u,n,h,g,p){return ch(n,h,u,g,(m,_,v)=>m.provideTypeDefinition(_,v,p))}function sc(u,n,h,g,p,m){return ch(n,h,u,p,async(_,v,w)=>{let C=(await _.provideReferences(v,w,{includeDeclaration:!0},m))?.filter((R)=>tv(v,R));if(!g||!C||C.length!==2)return C;let E=(await _.provideReferences(v,w,{includeDeclaration:!1},m))?.filter((R)=>tv(v,R));if(E&&E.length===1)return E;return C})}async function wr(u){let n=await u(),h=new Ri(n,""),g=h.references.map((p)=>p.link);return h.dispose(),g}Mo("_executeDefinitionProvider",(u,n,h)=>{let g=u.get(z),p=Ks(g.definitionProvider,n,h,!1,we.None);return wr(()=>p)});Mo("_executeDefinitionProvider_recursive",(u,n,h)=>{let g=u.get(z),p=Ks(g.definitionProvider,n,h,!0,we.None);return wr(()=>p)});Mo("_executeTypeDefinitionProvider",(u,n,h)=>{let g=u.get(z),p=Lp(g.typeDefinitionProvider,n,h,!1,we.None);return wr(()=>p)});Mo("_executeTypeDefinitionProvider_recursive",(u,n,h)=>{let g=u.get(z),p=Lp(g.typeDefinitionProvider,n,h,!0,we.None);return wr(()=>p)});Mo("_executeDeclarationProvider",(u,n,h)=>{let g=u.get(z),p=xp(g.declarationProvider,n,h,!1,we.None);return wr(()=>p)});Mo("_executeDeclarationProvider_recursive",(u,n,h)=>{let g=u.get(z),p=xp(g.declarationProvider,n,h,!0,we.None);return wr(()=>p)});Mo("_executeReferenceProvider",(u,n,h)=>{let g=u.get(z),p=sc(g.referenceProvider,n,h,!1,!1,we.None);return wr(()=>p)});Mo("_executeReferenceProvider_recursive",(u,n,h)=>{let g=u.get(z),p=sc(g.referenceProvider,n,h,!1,!0,we.None);return wr(()=>p)});Mo("_executeImplementationProvider",(u,n,h)=>{let g=u.get(z),p=Ip(g.implementationProvider,n,h,!1,we.None);return wr(()=>p)});Mo("_executeImplementationProvider_recursive",(u,n,h)=>{let g=u.get(z),p=Ip(g.implementationProvider,n,h,!0,we.None);return wr(()=>p)});Zn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextPeek,title:e(1096,"Peek"),group:"navigation",order:100});class Qa{static is(u){if(!u||typeof u!=="object")return!1;if(u instanceof Qa)return!0;if(s.isIPosition(u.position)&&u.model)return!0;return!1}constructor(u,n){this.model=u,this.position=n}}class Bi extends pr{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return Bi._allSymbolNavigationCommands.values()}static _patchConfig(u){let n={...u,f1:!0};if(n.menu){for(let h of Re.wrap(n.menu))if(h.id===l.EditorContext||h.id===l.EditorContextPeek)h.when=L.and(u.precondition,h.when)}return n}constructor(u,n){super(Bi._patchConfig(n));this.configuration=u,Bi._allSymbolNavigationCommands.set(n.id,this)}runEditorCommand(u,n,h,g){if(!n.hasModel())return Promise.resolve(void 0);let p=u.get(wt),m=u.get(Te),_=u.get(zs),v=u.get(dh),w=u.get(z),C=u.get(A),E=n.getModel(),R=n.getPosition(),Z=Qa.is(h)?h:new Qa(E,R),X=new Ss(n,5),Y=fc(this._getLocationModel(w,Z.model,Z.position,X.token),X.token).then(async(Q)=>{if(!Q||X.token.isCancellationRequested)return;Vn(Q.ariaMessage);let te;if(Q.referenceAt(E.uri,R)){let le=this._getAlternativeCommand(n);if(le!==void 0&&!Bi._activeAlternativeCommands.has(le)&&Bi._allSymbolNavigationCommands.has(le))te=Bi._allSymbolNavigationCommands.get(le)}let oe=Q.references.length;if(oe===0){if(!this.configuration.muteMessage){let le=E.getWordAtPosition(R);hi.get(n)?.showMessage(this._getNoResultFoundMessage(le),R)}}else if(oe===1&&te)Bi._activeAlternativeCommands.add(this.desc.id),C.invokeFunction((le)=>te.runEditorCommand(le,n,h,g).finally(()=>{Bi._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(m,v,n,Q,g)},(Q)=>{p.error(Q)}).finally(()=>{X.dispose()});return _.showWhile(Y,250),Y}async _onResult(u,n,h,g,p){let m=this._getGoToPreference(h);if(!(h instanceof Wi)&&(this.configuration.openInPeek||m==="peek"&&g.references.length>1))this._openInPeek(h,g,p);else{let _=g.firstReference(),v=g.references.length>1&&m==="gotoAndPeek",w=await this._openReference(h,u,_,this.configuration.openToSide,!v);if(v&&w)this._openInPeek(w,g,p);else g.dispose();if(m==="goto")n.put(_)}}async _openReference(u,n,h,g,p){let m=void 0;if(L2(h))m=h.targetSelectionRange;if(!m)m=h.range;if(!m)return;let _=await n.openCodeEditor({resource:h.uri,options:{selection:t.collapseToStart(m),selectionRevealType:3,selectionSource:"code.jump"}},u,g);if(!_)return;if(p){let v=_.getModel(),w=_.createDecorationsCollection([{range:m,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{if(_.getModel()===v)w.clear()},350)}return _}_openInPeek(u,n,h){let g=Bh.get(u);if(g&&u.hasModel())g.toggleWidget(h??u.getSelection(),Zt((p)=>Promise.resolve(n)),this.configuration.openInPeek);else n.dispose()}}class Us extends Bi{async _getLocationModel(u,n,h,g){return new Ri(await Ks(u.definitionProvider,n,h,!1,g),e(1097,"Definitions"))}_getNoResultFoundMessage(u){return u&&u.word?e(1098,"No definition found for '{0}'",u.word):e(1099,"No definition found")}_getAlternativeCommand(u){return u.getOption(67).alternativeDefinitionCommand}_getGoToPreference(u){return u.getOption(67).multipleDefinitions}}lt(class u extends Us{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.id,title:{...b(1123,"Go to Definition"),mnemonicTitle:e(1100,"Go to &&Definition")},precondition:r.hasDefinitionProvider,keybinding:[{when:r.editorTextFocus,primary:70,weight:100},{when:L.and(r.editorTextFocus,$R),primary:2118,weight:100}],menu:[{id:l.EditorContext,group:"navigation",order:1.1},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]});Le.registerCommandAlias("editor.action.goToDeclaration",u.id)}});lt(class u extends Us{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:u.id,title:b(1124,"Open Definition to the Side"),precondition:L.and(r.hasDefinitionProvider,r.isInEmbeddedEditor.toNegated()),keybinding:[{when:r.editorTextFocus,primary:un(2089,70),weight:100},{when:L.and(r.editorTextFocus,$R),primary:un(2089,2118),weight:100}]});Le.registerCommandAlias("editor.action.openDeclarationToTheSide",u.id)}});lt(class u extends Us{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:u.id,title:b(1125,"Peek Definition"),precondition:L.and(r.hasDefinitionProvider,mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),keybinding:{when:r.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:l.EditorContextPeek,group:"peek",order:2}});Le.registerCommandAlias("editor.action.previewDeclaration",u.id)}});class iv extends Bi{async _getLocationModel(u,n,h,g){return new Ri(await xp(u.declarationProvider,n,h,!1,g),e(1101,"Declarations"))}_getNoResultFoundMessage(u){return u&&u.word?e(1102,"No declaration found for '{0}'",u.word):e(1103,"No declaration found")}_getAlternativeCommand(u){return u.getOption(67).alternativeDeclarationCommand}_getGoToPreference(u){return u.getOption(67).multipleDeclarations}}lt(class u extends iv{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.id,title:{...b(1126,"Go to Declaration"),mnemonicTitle:e(1104,"Go to &&Declaration")},precondition:L.and(r.hasDeclarationProvider,r.isInEmbeddedEditor.toNegated()),menu:[{id:l.EditorContext,group:"navigation",order:1.3},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(n){return n&&n.word?e(1105,"No declaration found for '{0}'",n.word):e(1106,"No declaration found")}});lt(class u extends iv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:b(1127,"Peek Declaration"),precondition:L.and(r.hasDeclarationProvider,mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:3}})}});class ov extends Bi{async _getLocationModel(u,n,h,g){return new Ri(await Lp(u.typeDefinitionProvider,n,h,!1,g),e(1107,"Type Definitions"))}_getNoResultFoundMessage(u){return u&&u.word?e(1108,"No type definition found for '{0}'",u.word):e(1109,"No type definition found")}_getAlternativeCommand(u){return u.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(u){return u.getOption(67).multipleTypeDefinitions}}lt(class u extends ov{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.ID,title:{...b(1128,"Go to Type Definition"),mnemonicTitle:e(1110,"Go to &&Type Definition")},precondition:r.hasTypeDefinitionProvider,keybinding:{when:r.editorTextFocus,primary:0,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.4},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}});lt(class u extends ov{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:u.ID,title:b(1129,"Peek Type Definition"),precondition:L.and(r.hasTypeDefinitionProvider,mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:4}})}});class nv extends Bi{async _getLocationModel(u,n,h,g){return new Ri(await Ip(u.implementationProvider,n,h,!1,g),e(1111,"Implementations"))}_getNoResultFoundMessage(u){return u&&u.word?e(1112,"No implementation found for '{0}'",u.word):e(1113,"No implementation found")}_getAlternativeCommand(u){return u.getOption(67).alternativeImplementationCommand}_getGoToPreference(u){return u.getOption(67).multipleImplementations}}lt(class u extends nv{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:u.ID,title:{...b(1130,"Go to Implementations"),mnemonicTitle:e(1114,"Go to &&Implementations")},precondition:r.hasImplementationProvider,keybinding:{when:r.editorTextFocus,primary:2118,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.45},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}});lt(class u extends nv{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:u.ID,title:b(1131,"Peek Implementations"),precondition:L.and(r.hasImplementationProvider,mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),keybinding:{when:r.editorTextFocus,primary:3142,weight:100},menu:{id:l.EditorContextPeek,group:"peek",order:5}})}});class rv extends Bi{_getNoResultFoundMessage(u){return u?e(1115,"No references found for '{0}'",u.word):e(1116,"No references found")}_getAlternativeCommand(u){return u.getOption(67).alternativeReferenceCommand}_getGoToPreference(u){return u.getOption(67).multipleReferences}}lt(class u extends rv{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...b(1132,"Go to References"),mnemonicTitle:e(1117,"Go to &&References")},precondition:L.and(r.hasReferenceProvider,mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),keybinding:{when:r.editorTextFocus,primary:1094,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.45},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(n,h,g,p){return new Ri(await sc(n.referenceProvider,h,g,!0,!1,p),e(1118,"References"))}});lt(class u extends rv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:b(1133,"Peek References"),precondition:L.and(r.hasReferenceProvider,mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(n,h,g,p){return new Ri(await sc(n.referenceProvider,h,g,!1,!1,p),e(1119,"References"))}});class v0 extends Bi{constructor(u,n,h){super(u,{id:"editor.action.goToLocation",title:b(1134,"Go to Any Symbol"),precondition:L.and(mi.notInPeekEditor,r.isInEmbeddedEditor.toNegated())});this._references=n,this._gotoMultipleBehaviour=h}async _getLocationModel(u,n,h,g){return new Ri(this._references,e(1120,"Locations"))}_getNoResultFoundMessage(u){return u&&e(1121,"No results for '{0}'",u.word)||""}_getGoToPreference(u){return this._gotoMultipleBehaviour??u.getOption(67).multipleReferences}_getAlternativeCommand(){return}}Le.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:q},{name:"position",description:"The position at which to start",constraint:s.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(u,n,h,g,p,m,_)=>{He(q.isUri(n)),He(s.isIPosition(h)),He(Array.isArray(g)),He(typeof p>"u"||typeof p==="string"),He(typeof _>"u"||typeof _==="boolean");let v=u.get(Te),w=await v.openCodeEditor({resource:n},v.getFocusedCodeEditor());if(Xa(w))return w.setPosition(h),w.revealPositionInCenterIfOutsideViewport(h,0),w.invokeWithinContext((C)=>{let E=new class extends v0{_getNoResultFoundMessage(R){return m||super._getNoResultFoundMessage(R)}}({muteMessage:!Boolean(m),openInPeek:Boolean(_),openToSide:!1},g,p);C.get(A).invokeFunction(E.run.bind(E),w)})}});Le.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:q},{name:"position",description:"The position at which to start",constraint:s.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(u,n,h,g,p)=>{u.get(Ue).executeCommand("editor.action.goToLocations",n,h,g,p,void 0,!0)}});Le.registerCommand({id:"editor.action.findReferences",handler:(u,n,h)=>{He(q.isUri(n)),He(s.isIPosition(h));let g=u.get(z),p=u.get(Te);return p.openCodeEditor({resource:n},p.getFocusedCodeEditor()).then((m)=>{if(!Xa(m)||!m.hasModel())return;let _=Bh.get(m);if(!_)return;let v=Zt((C)=>sc(g.referenceProvider,m.getModel(),s.lift(h),!1,!1,C).then((E)=>new Ri(E,e(1122,"References")))),w=new t(h.lineNumber,h.column,h.lineNumber,h.column);return Promise.resolve(_.toggleWidget(w,v,!1))})}});Le.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var xT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},sv=function(u,n){return function(h,g){n(h,g,u)}},lh,ac=class u{static{lh=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(n,h,g,p){this.textModelResolverService=h,this.languageService=g,this.languageFeaturesService=p,this.toUnhook=new d,this.toUnhookForKeyboard=new d,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=n,this.linkDecorations=this.editor.createDecorationsCollection();let m=new Kr(n);this.toUnhook.add(m),this.toUnhook.add(m.onMouseMoveOrRelevantKeyDown(([_,v])=>{this.startFindDefinitionFromMouse(_,v??void 0)})),this.toUnhook.add(m.onExecute((_)=>{if(this.isEnabled(_))this.gotoDefinition(_.target.position,_.hasSideBySideModifier).catch((v)=>{ee(v)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(m.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(n){return n.getContribution(lh.ID)}async startFindDefinitionFromCursor(n){await this.startFindDefinition(n),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown((h)=>{if(h)this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))}startFindDefinitionFromMouse(n,h){if(n.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(n,h)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}let g=n.target.position;this.startFindDefinition(g)}async startFindDefinition(n){this.toUnhookForKeyboard.clear();let h=n?this.editor.getModel()?.getWordAtPosition(n):null;if(!h){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===h.startColumn&&this.currentWordAtPosition.endColumn===h.endColumn&&this.currentWordAtPosition.word===h.word)return;this.currentWordAtPosition=h;let g=new Qf(this.editor,15);if(this.previousPromise)this.previousPromise.cancel(),this.previousPromise=null;this.previousPromise=Zt((_)=>this.findDefinition(n,_));let p;try{p=await this.previousPromise}catch(_){ee(_);return}if(!p||!p.length||!g.validate(this.editor)){this.removeLinkDecorations();return}let m=p[0].originSelectionRange?t.lift(p[0].originSelectionRange):new t(n.lineNumber,h.startColumn,n.lineNumber,h.endColumn);if(p.length>1){let _=m;for(let{originSelectionRange:v}of p)if(v)_=t.plusRange(_,v);this.addDecoration(_,new Mn().appendText(e(1135,"Click to show {0} definitions.",p.length)))}else{let _=p[0];if(!_.uri)return;return this.textModelResolverService.createModelReference(_.uri).then((v)=>{if(!v.object||!v.object.textEditorModel){v.dispose();return}let{object:{textEditorModel:w}}=v,{startLineNumber:C}=_.range;if(C<1||C>w.getLineCount()){v.dispose();return}let E=this.getPreviewValue(w,C,_),R=this.languageService.guessLanguageIdByFilepathOrFirstLine(w.uri);this.addDecoration(m,E?new Mn().appendCodeblock(R?R:"",E):void 0),v.dispose()})}}getPreviewValue(n,h,g){let p=g.range;if(p.endLineNumber-p.startLineNumber>=lh.MAX_SOURCE_PREVIEW_LINES)p=this.getPreviewRangeBasedOnIndentation(n,h);return p=n.validateRange(p),this.stripIndentationFromPreviewRange(n,h,p)}stripIndentationFromPreviewRange(n,h,g){let m=n.getLineFirstNonWhitespaceColumn(h);for(let v=h+1;v<g.endLineNumber;v++){let w=n.getLineFirstNonWhitespaceColumn(v);m=Math.min(m,w)}return n.getValueInRange(g).replace(new RegExp(`^\\s{${m-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(n,h){let g=n.getLineFirstNonWhitespaceColumn(h),p=Math.min(n.getLineCount(),h+lh.MAX_SOURCE_PREVIEW_LINES),m=h+1;for(;m<p;m++){let _=n.getLineFirstNonWhitespaceColumn(m);if(g===_)break}return new t(h,1,m+1,1)}addDecoration(n,h){let g={range:n,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:h}};this.linkDecorations.set([g])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(n,h){return this.editor.hasModel()&&n.isLeftClick&&n.isNoneOrSingleMouseDown&&n.target.type===6&&!(n.target.detail.injectedText?.options instanceof xd)&&(n.hasTriggerModifier||(h?h.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(n,h){let g=this.editor.getModel();if(!g)return Promise.resolve(null);return Ks(this.languageFeaturesService.definitionProvider,g,n,!1,h)}async gotoDefinition(n,h){return this.editor.setPosition(n),this.editor.invokeWithinContext((g)=>{let p=!h&&this.editor.getOption(101)&&!this.isInPeekEditor(g);return new Us({openToSide:h,openInPeek:p,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(g)})}isInPeekEditor(n){let h=n.get(G);return mi.inPeekEditor.getValue(h)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};ac=lh=xT([sv(1,Dn),sv(2,xt),sv(3,z)],ac);fe(ac.ID,ac,2);var Gn="editor.action.inlineSuggest.commit",ed="editor.action.inlineSuggest.commitAlternativeAction",kp="editor.action.inlineSuggest.showPrevious",Ep="editor.action.inlineSuggest.showNext",lc="editor.action.inlineSuggest.jump",Dp="editor.action.inlineSuggest.hide",hh="editor.action.inlineSuggest.toggleShowCollapsed",av="editor.action.inlineSuggest.renameSymbol";var cv=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},pn=function(u,n){return function(h,g){n(h,g,u)}},Tp,Rp=class u extends i{constructor(n,h,g){super();this.editor=n,this.model=h,this.instantiationService=g,this.alwaysShowToolbar=je(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=f(this,(p)=>{let m=this.model.read(p)?.primaryGhostText.read(p);if(!this.alwaysShowToolbar.read(p)||!m||m.parts.length===0)return this.sessionPosition=void 0,null;let _=m.parts[0].column;if(this.sessionPosition&&this.sessionPosition.lineNumber!==m.lineNumber)this.sessionPosition=void 0;let v=new s(m.lineNumber,Math.min(_,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=v,v}),this._register(ri((p,m)=>{let _=this.model.read(p);if(!_||!this.alwaysShowToolbar.read(p))return;let v=f((C)=>{let E=C.store.add(this.instantiationService.createInstance(qr.hot.read(C),this.editor,!0,this.position,_.selectedInlineCompletionIndex,_.inlineCompletionsCount,_.activeCommands,_.warning,()=>{}));return n.addContentWidget(E),C.store.add(N(()=>n.removeContentWidget(E))),C.store.add(W((R)=>{if(!this.position.read(R))return;if(_.lastTriggerKind.read(R)!==cr.Explicit)_.triggerExplicitly()})),E}),w=hr(this,(C,E)=>!!this.position.read(C)||!!E);m.add(W((C)=>{if(w.read(C))v.read(C)}))}))}};Rp=cv([pn(2,A)],Rp);var IT=Pt("inline-suggestion-hints-next",S.chevronRight,e(1270,"Icon for show next parameter hint.")),LT=Pt("inline-suggestion-hints-previous",S.chevronLeft,e(1271,"Icon for show previous parameter hint.")),qr=class u extends i{static{Tp=this}static{this.hot=Fy(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(n,h,g){let p=new wo(n,h,g,!0,()=>this._commandService.executeCommand(n));return p.tooltip=this.keybindingService.appendKeybinding(h,n,this._contextKeyService),p}constructor(n,h,g,p,m,_,v,w,C,E,R,Z,X){super();this.editor=n,this.withBorder=h,this._position=g,this._currentSuggestionIdx=p,this._suggestionCount=m,this._extraCommands=_,this._warning=v,this._relayout=w,this._commandService=C,this.keybindingService=R,this._contextKeyService=Z,this._menuService=X,this.id=`InlineSuggestionHintsContentWidget${Tp.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=f((Y)=>{let Q=this._warning.read(Y);if(!Q)return;if(typeof Q.message==="string")return Q.message;return Y.store.add(Ml(Q.message)).element}),this._warningMessageNode=he.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:f((Y)=>this._warning.read(Y)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=Ie("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,Ie("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(kp,e(1272,"Previous"),J.asClassName(LT))),this.availableSuggestionCountAction=this._register(new wo("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(Ep,e(1273,"Next"),J.asClassName(IT))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(l.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new ke(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new ke(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(W((Y)=>{this._warningMessageContentNode.read(Y),this._warningMessageNode.readEffect(Y),this._relayout()})),this.toolBar=this._register(E.createInstance(dv,this.nodes.toolBar,l.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:(Y)=>Y.startsWith("primary")},actionViewItemProvider:(Y,Q)=>{if(Y instanceof Ki)return E.createInstance(S0,Y,void 0);if(Y===this.availableSuggestionCountAction){let te=new w0(void 0,Y,{label:!0,icon:!1});return te.setClass("availableSuggestionCount"),te}return},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((Y)=>{Tp._dropDownVisible=Y})),this._register(W((Y)=>{this._position.read(Y),this.editor.layoutContentWidget(this)})),this._register(W((Y)=>{let Q=this._suggestionCount.read(Y),te=this._currentSuggestionIdx.read(Y);if(Q!==void 0)this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${te+1}/${Q}`;else this.clearAvailableSuggestionCountLabelDebounced.schedule();if(Q!==void 0&&Q>1)this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0;else this.disableButtonsDebounced.schedule()})),this._register(W((Y)=>{let te=this._extraCommands.read(Y).map((oe)=>({class:void 0,id:oe.command.id,enabled:!0,tooltip:oe.command.tooltip||"",label:oe.command.title,run:()=>this._commandService.executeCommand(oe.command.id,...oe.command.arguments??[])}));for(let[oe,le]of this.inlineCompletionsActionsMenus.getActions())for(let pe of le)if(pe instanceof Ki)te.push(pe);if(te.length>0)te.unshift(new ut);this.toolBar.setAdditionalSecondaryActions(te)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};qr=Tp=cv([pn(8,Ue),pn(9,A),pn(10,ge),pn(11,G),pn(12,Ai)],qr);class w0 extends Ec{constructor(){super(...arguments);this._className=void 0}setClass(u){this._className=u}render(u){if(super.render(u),this._className)u.classList.add(this._className)}updateTooltip(){}}class S0 extends Pl{updateLabel(){let u=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!u)return super.updateLabel();if(this.label){let n=Ie("div.keybinding").root;this._register(new Ya(n,Ni,{disableTitle:!0,...Nk})).set(u),this.label.textContent=this._action.label,this.label.appendChild(n),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}var dv=class u extends S_{constructor(n,h,g,p,m,_,v,w,C){super(n,{resetMenu:h,...g},p,m,_,v,w,C);this.menuId=h,this.options2=g,this.menuService=p,this.contextKeyService=m,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this.additionalPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){let{primary:n,secondary:h}=Gg(this.menu.getActions(this.options2?.menuOptions),this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);h.push(...this.additionalActions),n.unshift(...this.prependedPrimaryActions),n.push(...this.additionalPrimaryActions),this.setActions(n,h)}setPrependedPrimaryActions(n){if(ot(this.prependedPrimaryActions,n,(h,g)=>h===g))return;this.prependedPrimaryActions=n,this.updateToolbar()}setAdditionalSecondaryActions(n){if(ot(this.additionalActions,n,(h,g)=>h===g))return;this.additionalActions=n,this.updateToolbar()}};dv=cv([pn(3,Ai),pn(4,G),pn(5,Qn),pn(6,ge),pn(7,Ue),pn(8,Wn)],dv);function qs(u,n,h){let g=kt(u);if(n<g.left+3||n>g.left+g.width-3||h<g.top+3||h>g.top+g.height-3)return!1;return!0}function Np(u,n,h){if(u==="on")return!0;if(u==="off")return!1;return uh(n,h.event)}function uh(u,n){if(u==="altKey")return n.ctrlKey||n.metaKey;return n.altKey}class C0{constructor(u,n,h,g){this.value=u,this.isComplete=n,this.hasLoadingMessage=h,this.options=g}}class gh extends i{constructor(u,n){super();this._editor=u,this._computer=n,this._onResult=this._register(new o),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new Mp((h)=>this._triggerAsyncComputation(h),0)),this._syncComputationScheduler=this._register(new Mp((h)=>this._triggerSyncComputation(h),0)),this._loadingMessageScheduler=this._register(new Mp((h)=>this._triggerLoadingMessage(h),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){if(this._asyncIterable)this._asyncIterable.cancel(),this._asyncIterable=null;this._options=void 0,super.dispose()}get _hoverTime(){return this._editor.getOption(69).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(u,n){this._options=n,this._state=u,this._fireResult(n)}_triggerAsyncComputation(u){if(this._setState(2,u),this._syncComputationScheduler.schedule(u,this._secondWaitTime),this._computer.computeAsync)this._asyncIterableDone=!1,this._asyncIterable=A2((n)=>this._computer.computeAsync(u,n)),(async()=>{try{for await(let n of this._asyncIterable)if(n)this._result.push(n),this._fireResult(u);if(this._asyncIterableDone=!0,this._state===3||this._state===4)this._setState(0,u)}catch(n){ee(n)}})();else this._asyncIterableDone=!0}_triggerSyncComputation(u){if(this._computer.computeSync)this._result=this._result.concat(this._computer.computeSync(u));this._setState(this._asyncIterableDone?0:3,u)}_triggerLoadingMessage(u){if(this._state===3)this._setState(4,u)}_fireResult(u){if(this._state===1||this._state===2)return;let n=this._state===0,h=this._state===4;this._onResult.fire(new C0(this._result.slice(0),n,h,u))}start(u,n){if(u===0){if(this._state===0)this._setState(1,n),this._asyncComputationScheduler.schedule(n,this._firstWaitTime),this._loadingMessageScheduler.schedule(n,this._loadingMessageTime)}else switch(this._state){case 0:this._triggerAsyncComputation(n),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(n);break}}cancel(){if(this._asyncComputationScheduler.cancel(),this._syncComputationScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable)this._asyncIterable.cancel(),this._asyncIterable=null;this._result=[],this._options=void 0,this._state=0}get options(){return this._options}}class Mp extends i{constructor(u,n){super();this._scheduler=this._register(new ke(()=>u(this._options),n))}schedule(u,n){this._options=u,this._scheduler.schedule(n)}cancel(){this._scheduler.cancel()}}class ph{constructor(u,n,h,g){this.priority=u,this.range=n,this.initialMousePosX=h,this.initialMousePosY=g,this.type=1}equals(u){return u.type===1&&this.range.equalsRange(u.range)}canAdoptVisibleHover(u,n){return u.type===1&&n.lineNumber===this.range.startLineNumber}}class $s{constructor(u,n,h,g,p,m){this.priority=u,this.owner=n,this.range=h,this.initialMousePosX=g,this.initialMousePosY=p,this.supportsMarkerHover=m,this.type=2}equals(u){return u.type===2&&this.owner===u.owner}canAdoptVisibleHover(u,n){return u.type===2&&this.owner===u.owner}}class $o{constructor(u,n){this.renderedHoverParts=u,this.disposables=n}dispose(){for(let u of this.renderedHoverParts)u.dispose();this.disposables?.dispose()}}var _l=new class u{constructor(){this._participants=[]}register(n){this._participants.push(n)}getAll(){return this._participants}};class td{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new o,this._onDidResize=new o,this._sashListener=new d,this._size=new at(0,0),this._minSize=new at(0,0),this._maxSize=new at(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new mo(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new mo(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new mo(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:u_.North}),this._southSash=new mo(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:u_.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let u,n=0,h=0;this._sashListener.add(I.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{if(u===void 0)this._onDidWillResize.fire(),u=this._size,n=0,h=0})),this._sashListener.add(I.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{if(u!==void 0)u=void 0,n=0,h=0,this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(this._eastSash.onDidChange((g)=>{if(u)h=g.currentX-g.startX,this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,east:!0})})),this._sashListener.add(this._westSash.onDidChange((g)=>{if(u)h=-(g.currentX-g.startX),this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,west:!0})})),this._sashListener.add(this._northSash.onDidChange((g)=>{if(u)n=-(g.currentY-g.startY),this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,north:!0})})),this._sashListener.add(this._southSash.onDidChange((g)=>{if(u)n=g.currentY-g.startY,this.layout(u.height+n,u.width+h),this._onDidResize.fire({dimension:this._size,done:!1,south:!0})})),this._sashListener.add(I.any(this._eastSash.onDidReset,this._westSash.onDidReset)((g)=>{if(this._preferredSize)this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(I.any(this._northSash.onDidReset,this._southSash.onDidReset)((g)=>{if(this._preferredSize)this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0})}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(u,n,h,g){this._northSash.state=u?3:0,this._eastSash.state=n?3:0,this._southSash.state=h?3:0,this._westSash.state=g?3:0}layout(u=this.size.height,n=this.size.width){let{height:h,width:g}=this._minSize,{height:p,width:m}=this._maxSize;u=Math.max(h,Math.min(p,u)),n=Math.max(g,Math.min(m,n));let _=new at(n,u);if(!at.equals(_,this._size))this.domNode.style.height=u+"px",this.domNode.style.width=n+"px",this._size=_,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout()}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(u){this._maxSize=u}get maxSize(){return this._maxSize}set minSize(u){this._minSize=u}get minSize(){return this._minSize}set preferredSize(u){this._preferredSize=u}get preferredSize(){return this._preferredSize}}var kT=30,ET=24;class lv extends i{constructor(u,n=new at(10,10)){super();this._editor=u,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new td),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=at.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((h)=>{if(this._resize(new at(h.dimension.width,h.dimension.height)),h.done)this._isResizing=!1})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?s.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(u){let n=this._editor.getDomNode(),h=this._editor.getScrolledVisiblePosition(u);if(!n||!h)return;return kt(n).top+h.top-kT}_availableVerticalSpaceBelow(u){let n=this._editor.getDomNode(),h=this._editor.getScrolledVisiblePosition(u);if(!n||!h)return;let g=kt(n),p=ua(n.ownerDocument.body),m=g.top+h.top+h.height;return p.height-m-ET}_findPositionPreference(u,n){let h=Math.min(this._availableVerticalSpaceBelow(n)??1/0,u),g=Math.min(this._availableVerticalSpaceAbove(n)??1/0,u),p=Math.min(Math.max(g,h),u),m=Math.min(u,p),_;if(this._editor.getOption(69).above)_=m<=g?1:2;else _=m<=h?2:1;if(_===1)this._resizableNode.enableSashes(!0,!0,!1,!1);else this._resizableNode.enableSashes(!1,!0,!0,!1);return _}_resize(u){this._resizableNode.layout(u.height,u.width)}}var DT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Op=function(u,n){return function(h,g){n(h,g,u)}},fn,y0=30,Pp=class u extends lv{static{fn=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new at(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(n,h,g,p,m){let _=n.getOption(75)+8,v=150,w=new at(150,_);super(n,w);this._configurationService=g,this._accessibilityService=p,this._keybindingService=m,this._hover=this._register(new zg(!0)),this._onDidResize=this._register(new o),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new o),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new o),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=w,this._hoverVisibleKey=r.hoverVisible.bindTo(h),this._hoverFocusedKey=r.hoverFocused.bindTo(h),k(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{if(this.isVisible)this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration((E)=>{if(E.hasChanged(59))this._updateFont()}));let C=this._register(yi(this._resizableNode.domNode));this._register(C.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(C.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll((E)=>{this._onDidScroll.fire(E)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return fn.ID}static _applyDimensions(n,h,g){let p=typeof h==="number"?`${h}px`:h,m=typeof g==="number"?`${g}px`:g;n.style.width=p,n.style.height=m}_setContentsDomNodeDimensions(n,h){let g=this._hover.contentsDomNode;return fn._applyDimensions(g,n,h)}_setContainerDomNodeDimensions(n,h){let g=this._hover.containerDomNode;return fn._applyDimensions(g,n,h)}_setScrollableElementDimensions(n,h){let g=this._hover.scrollbar.getDomNode();return fn._applyDimensions(g,n,h)}_setHoverWidgetDimensions(n,h){this._setContainerDomNodeDimensions(n,h),this._setScrollableElementDimensions(n,h),this._setContentsDomNodeDimensions(n,h),this._layoutContentWidget()}static _applyMaxDimensions(n,h,g){let p=typeof h==="number"?`${h}px`:h,m=typeof g==="number"?`${g}px`:g;n.style.maxWidth=p,n.style.maxHeight=m}_setHoverWidgetMaxDimensions(n,h){fn._applyMaxDimensions(this._hover.contentsDomNode,n,h),fn._applyMaxDimensions(this._hover.scrollbar.getDomNode(),n,h),fn._applyMaxDimensions(this._hover.containerDomNode,n,h),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof n==="number"?`${n}px`:n),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(n){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(n.width,n.height)}_updateResizableNodeMaxDimensions(){let n=this._findMaximumRenderingWidth()??1/0,h=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new at(n,h),this._setHoverWidgetMaxDimensions(n,h)}_resize(n){fn._lastDimensions=new at(n.width,n.height),this._setAdjustedHoverWidgetDimensions(n),this._resizableNode.layout(n.height,n.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){let n=this._renderedHover?.showAtPosition;if(!n)return;return this._positionPreference===1?this._availableVerticalSpaceAbove(n):this._availableVerticalSpaceBelow(n)}_findMaximumRenderingHeight(){let n=this._findAvailableSpaceVertically();if(!n)return;let g=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach((p)=>{g+=p.clientHeight}),Math.min(n,g)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");let n=Array.from(this._hover.contentsDomNode.children).some((h)=>h.scrollWidth>h.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),n}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;let n=this._isHoverTextOverflowing(),h=typeof this._contentWidth>"u"?0:this._contentWidth;if(n||this._hover.containerDomNode.clientWidth<h){let g=ua(this._hover.containerDomNode.ownerDocument.body).width,p=14;return g-14}else return this._hover.containerDomNode.clientWidth}isMouseGettingCloser(n,h){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=n,this._renderedHover.initialMousePosY=h,!1;let g=kt(this.getDomNode());if(this._renderedHover.closestMouseDistance===void 0)this._renderedHover.closestMouseDistance=x0(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,g.left,g.top,g.width,g.height);let p=x0(n,h,g.left,g.top,g.width,g.height);if(p>this._renderedHover.closestMouseDistance+4)return!1;return this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,p),!0}_setRenderedHover(n){this._renderedHover?.dispose(),this._renderedHover=n,this._hoverVisibleKey.set(!!n),this._hover.containerDomNode.classList.toggle("hidden",!n)}_updateFont(){let{fontSize:n,lineHeight:h}=this._editor.getOption(59),g=this._hover.contentsDomNode;g.style.fontSize=`${n}px`,g.style.lineHeight=`${h/n}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((m)=>this._editor.applyFontInfo(m))}_updateContent(n){let h=this._hover.contentsDomNode;h.style.paddingBottom="",h.textContent="",h.appendChild(n)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){let n=Math.max(this._editor.getLayoutInfo().height/4,250,fn._lastDimensions.height),h=Math.max(this._editor.getLayoutInfo().width*0.66,750,fn._lastDimensions.width);this._resizableNode.maxSize=new at(h,n),this._setHoverWidgetMaxDimensions(h,n)}_render(n){this._setRenderedHover(n),this._updateFont(),this._updateContent(n.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){if(!this._renderedHover)return null;return{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}}show(n){if(!this._editor||!this._editor.hasModel())return;this._render(n);let h=Ll(this._hover.containerDomNode),g=n.showAtPosition;if(this._positionPreference=this._findPositionPreference(h,g)??1,this.handleContentsChanged(),n.shouldFocus)this._hover.containerDomNode.focus();this._onDidResize.fire();let m=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&dk(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");if(m)this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+m}hide(){if(!this._renderedHover)return;let n=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();if(this._setRenderedHover(void 0),this._resizableNode.maxSize=new at(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),n)this._editor.focus()}_removeConstraintsRenderNormally(){let n=this._editor.getLayoutInfo();this._resizableNode.layout(n.height,n.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(n){this._minimumSize=new at(Math.max(this._minimumSize.width,n.width),Math.max(this._minimumSize.height,n.height)),this._updateMinimumWidth()}_updateMinimumWidth(){let n=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new at(n,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();let n=this._hover.contentsDomNode,h=Ll(n),g=Ao(n)+2;if(this._resizableNode.layout(h,g),this._setHoverWidgetDimensions(g,h),h=Ll(n),g=Ao(n),this._contentWidth=g,this._updateMinimumWidth(),this._resizableNode.layout(h,g),this._renderedHover?.showAtPosition){let p=Ll(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(p,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:n-h.lineHeight})}scrollDown(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:n+h.lineHeight})}scrollLeft(){let n=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:n-y0})}scrollRight(){let n=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:n+y0})}pageUp(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:n-h})}pageDown(){let n=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:n+h})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};Pp=fn=DT([Op(1,G),Op(2,re),Op(3,on),Op(4,ge)],Pp);function x0(u,n,h,g,p,m){let _=h+p/2,v=g+m/2,w=Math.max(Math.abs(u-_)-p/2,0),C=Math.max(Math.abs(n-v)-m/2,0);return Math.sqrt(w*w+C*C)}class mh{constructor(u,n){this._editor=u,this._participants=n}static _getLineDecorations(u,n){if(n.type!==1&&!n.supportsMarkerHover)return[];let h=u.getModel(),g=n.range.startLineNumber;if(g>h.getLineCount())return[];let p=h.getLineMaxColumn(g);return u.getLineDecorations(g).filter((m)=>{if(m.options.isWholeLine)return!0;let _=m.range.startLineNumber===g?m.range.startColumn:1,v=m.range.endLineNumber===g?m.range.endColumn:p;if(m.options.showIfCollapsed){if(_>n.range.startColumn+1||n.range.endColumn-1>v)return!1}else if(_>n.range.startColumn||n.range.endColumn>v)return!1;return!0})}computeAsync(u,n){let h=u.anchor;if(!this._editor.hasModel()||!h)return oi.EMPTY;let g=mh._getLineDecorations(this._editor,h);return oi.merge(this._participants.map((p)=>{if(!p.computeAsync)return oi.EMPTY;return p.computeAsync(h,g,u.source,n)}))}computeSync(u){if(!this._editor.hasModel())return[];let n=u.anchor,h=mh._getLineDecorations(this._editor,n),g=[];for(let p of this._participants)g=g.concat(p.computeSync(n,h,u.source));return vo(g)}}class Ap{constructor(u,n,h){this.hoverParts=u,this.isComplete=n,this.options=h}filter(u){let n=this.hoverParts.filter((h)=>h.isValidForHoverAnchor(u));if(n.length===this.hoverParts.length)return this;return new I0(this,n,this.isComplete,this.options)}}class I0 extends Ap{constructor(u,n,h,g){super(n,h,g);this.original=u}filter(u){return this.original.filter(u)}}var TT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},k0=function(u,n){return function(h,g){n(h,g,u)}},E0=x,Xv=class u extends i{get hasContent(){return this._hasContent}constructor(n,h){super();this._keybindingService=n,this._hoverService=h,this.actions=[],this._hasContent=!1,this.hoverElement=E0("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=k(this.hoverElement,E0("div.actions"))}addAction(n){let h=this._keybindingService.lookupKeybinding(n.commandId),g=h?h.getLabel():null;this._hasContent=!0;let p=this._register(qf.render(this.actionsElement,n,g));return this._register(this._hoverService.setupManagedHover(mr("element"),p.actionContainer,p.actionRenderedLabel)),this.actions.push(p),p}append(n){let h=k(this.actionsElement,n);return this._hasContent=!0,h}};Xv=TT([k0(0,ge),k0(1,On)],Xv);var RT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},T0=function(u,n){return function(h,g){n(h,g,u)}},Fp=class u extends i{constructor(n,h,g,p){super();this._container=n,this._getContent=h,this._clipboardService=g,this._hoverService=p,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new Hr({label:e(1186,"Copy"),icon:S.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){let n=this._getContent();if(n)await this._clipboardService.writeText(n),jo(e(1187,"Copied to clipboard"))}};Fp=RT([T0(2,wi),T0(3,On)],Fp);class M0{constructor(u,n,h){this.provider=u,this.hover=n,this.ordinal=h}}async function NT(u,n,h,g,p){let m=await Promise.resolve(u.provideHover(h,g,p)).catch(yt);if(!m||!MT(m))return;return new M0(u,m,n)}function fh(u,n,h,g,p=!1){let _=u.ordered(n,p).map((v,w)=>NT(v,w,n,h,g));return oi.fromPromisesResolveOrder(_).coalesce()}async function eL(u,n,h,g,p=!1){let m=[];for await(let _ of fh(u,n,h,g,p))m.push(_.hover);return m}Mo("_executeHoverProvider",(u,n,h)=>{let g=u.get(z);return eL(g.hoverProvider,n,h,we.None)});Mo("_executeHoverProvider_recursive",(u,n,h)=>{let g=u.get(z);return eL(g.hoverProvider,n,h,we.None,!0)});function MT(u){let n=typeof u.range<"u",h=typeof u.contents<"u"&&u.contents&&u.contents.length>0;return n&&h}var OT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uc=function(u,n){return function(h,g){n(h,g,u)}},id=x,PT=Pt("hover-increase-verbosity",S.addSmall,e(1188,"Icon for increaseing hover verbosity.")),AT=Pt("hover-decrease-verbosity",S.removeSmall,e(1189,"Icon for decreasing hover verbosity."));class io{constructor(u,n,h,g,p,m=void 0){this.owner=u,this.range=n,this.contents=h,this.isBeforeContent=g,this.ordinal=p,this.source=m}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}class hv{constructor(u,n,h){this.hover=u,this.hoverProvider=n,this.hoverPosition=h}supportsVerbosityAction(u){switch(u){case ps.Increase:return this.hover.canIncreaseVerbosity??!1;case ps.Decrease:return this.hover.canDecreaseVerbosity??!1}}}var Gs=class u{constructor(n,h,g,p,m,_,v){this._editor=n,this._markdownRendererService=h,this._configurationService=g,this._languageFeaturesService=p,this._keybindingService=m,this._hoverService=_,this._commandService=v,this.hoverOrdinal=3}createLoadingMessage(n){return new io(this,n.range,[new Mn().appendText(e(1190,"Loading..."))],!1,2000)}computeSync(n,h){if(!this._editor.hasModel()||n.type!==1)return[];let g=this._editor.getModel(),p=n.range.startLineNumber,m=g.getLineMaxColumn(p),_=[],v=1000,w=g.getLineLength(p),C=g.getLanguageIdAtPosition(n.range.startLineNumber,n.range.startColumn),E=this._editor.getOption(133),R=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:C}),Z=this._editor.getOption(69).showLongLineWarning,X=!1;if(E>=0&&w>E&&n.range.startColumn>=E){if(X=!0,Z)_.push(new io(this,n.range,[{value:e(1191,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`. [Don't Show Again](command:{0})",oh),isTrusted:!0}],!1,v++))}if(!X&&typeof R==="number"&&w>=R){if(Z)_.push(new io(this,n.range,[{value:e(1192,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`. [Don't Show Again](command:{0})",oh),isTrusted:!0}],!1,v++))}let Y=!1;for(let Q of h){let te=Q.range.startLineNumber===p?Q.range.startColumn:1,oe=Q.range.endLineNumber===p?Q.range.endColumn:m,le=Q.options.hoverMessage;if(!le||ap(le))continue;if(Q.options.beforeContentClassName)Y=!0;let pe=new t(n.range.startLineNumber,te,n.range.startLineNumber,oe);_.push(new io(this,pe,ny(le),Y,v++))}return _}computeAsync(n,h,g,p){if(!this._editor.hasModel()||n.type!==1)return oi.EMPTY;let m=this._editor.getModel(),_=this._languageFeaturesService.hoverProvider;if(!_.has(m))return oi.EMPTY;return this._getMarkdownHovers(_,m,n,p)}async*_getMarkdownHovers(n,h,g,p){let m=g.range.getStartPosition(),_=fh(n,h,m,p);for await(let v of _)if(!ap(v.hover.contents)){let w=v.hover.range?t.lift(v.hover.range):g.range,C=new hv(v.hover,v.provider,m);yield new io(this,w,v.hover.contents,!1,v.ordinal,C)}}renderHoverParts(n,h){return this._renderedHoverParts=new tL(h,n.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,n.onContentsChanged),this._renderedHoverParts}handleScroll(n){this._renderedHoverParts?.handleScroll(n)}getAccessibleContent(n){return this._renderedHoverParts?.getAccessibleContent(n)??""}updateMarkdownHoverVerbosityLevel(n,h){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(n,h))}};Gs=OT([uc(1,Bo),uc(2,re),uc(3,z),uc(4,ge),uc(5,On),uc(6,Ue)],Gs);class _h{constructor(u,n,h,g){this.hoverPart=u,this.hoverElement=n,this.disposables=h,this.actionsContainer=g}dispose(){this.disposables.dispose()}}class tL{constructor(u,n,h,g,p,m,_,v,w,C){this._hoverParticipant=h,this._editor=g,this._commandService=p,this._keybindingService=m,this._hoverService=_,this._configurationService=v,this._markdownRendererService=w,this._onFinishedRendering=C,this._ongoingHoverOperations=new Map,this._disposables=new d,this.renderedHoverParts=this._renderHoverParts(u,n,this._onFinishedRendering),this._disposables.add(N(()=>{this.renderedHoverParts.forEach((E)=>{E.dispose()}),this._ongoingHoverOperations.forEach((E)=>{E.tokenSource.dispose(!0)})}))}_renderHoverParts(u,n,h){return u.sort(Bn((g)=>g.ordinal,Vi)),u.map((g)=>{let p=this._renderHoverPart(g,h);return n.appendChild(p.hoverElement),p})}_renderHoverPart(u,n){let h=this._renderMarkdownHover(u,n),g=h.hoverElement,p=u.source,m=new d;if(m.add(h),!p)return new _h(u,g,m);let _=p.supportsVerbosityAction(ps.Increase),v=p.supportsVerbosityAction(ps.Decrease);if(!_&&!v)return new _h(u,g,m);let w=id("div.verbosity-actions");g.prepend(w);let C=id("div.verbosity-actions-inner");return w.append(C),m.add(this._renderHoverExpansionAction(C,ps.Increase,_)),m.add(this._renderHoverExpansionAction(C,ps.Decrease,v)),new _h(u,g,m,C)}_renderMarkdownHover(u,n){return oL(this._editor,u,this._markdownRendererService,n)}_renderHoverExpansionAction(u,n,h){let g=new d,p=n===ps.Increase,m=k(u,id(J.asCSSSelector(p?PT:AT)));m.tabIndex=0;let _=g.add(new xu("mouse",void 0,{target:u,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(g.add(this._hoverService.setupManagedHover(_,m,FT(this._keybindingService,n))),!h)return m.classList.add("disabled"),g;m.classList.add("enabled");let v=()=>this._commandService.executeCommand(n===ps.Increase?Ha:Ba,{focus:!0});return g.add(new uk(m,v)),g.add(new hk(m,v,[3,10])),g}handleScroll(u){this.renderedHoverParts.forEach((n)=>{let h=n.actionsContainer;if(!h)return;let g=n.hoverElement,m=u.scrollTop+u.height,{offsetTop:_,clientHeight:v}=g,w=_+v,C=22,E;if(w<=m||_>=m)E=v-C;else E=m-_-C;h.style.top=`${E}px`})}async updateMarkdownHoverPartVerbosityLevel(u,n){let h=this._editor.getModel();if(!h)return;let g=this._getRenderedHoverPartAtIndex(n),p=g?.hoverPart.source;if(!g||!p?.supportsVerbosityAction(u))return;let m=await this._fetchHover(p,h,u);if(!m)return;let _=new hv(m,p.hoverProvider,p.hoverPosition),v=g.hoverPart,w=new io(this._hoverParticipant,v.range,m.contents,v.isBeforeContent,v.ordinal,_),C=this._updateRenderedHoverPart(n,w);if(!C)return;return{hoverPart:w,hoverElement:C.hoverElement}}getAccessibleContent(u){let n=this.renderedHoverParts.findIndex((m)=>m.hoverPart===u);if(n===-1)return;let h=this._getRenderedHoverPartAtIndex(n);if(!h)return;return h.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(u,n,h){let g=h===ps.Increase?1:-1,p=u.hoverProvider,m=this._ongoingHoverOperations.get(p);if(m)m.tokenSource.cancel(),g+=m.verbosityDelta;let _=new qe;this._ongoingHoverOperations.set(p,{verbosityDelta:g,tokenSource:_});let v={verbosityRequest:{verbosityDelta:g,previousHover:u.hover}},w;try{w=await Promise.resolve(p.provideHover(n,u.hoverPosition,_.token,v))}catch(C){yt(C)}return _.dispose(),this._ongoingHoverOperations.delete(p),w}_updateRenderedHoverPart(u,n){if(u>=this.renderedHoverParts.length||u<0)return;let h=this._renderHoverPart(n,this._onFinishedRendering),g=this.renderedHoverParts[u],p=g.hoverElement,m=h.hoverElement,_=Array.from(m.children);p.replaceChildren(..._);let v=new _h(n,p,h.disposables,h.actionsContainer);return g.dispose(),this.renderedHoverParts[u]=v,v}_getRenderedHoverPartAtIndex(u){return this.renderedHoverParts[u]}dispose(){this._disposables.dispose()}}function iL(u,n,h,g){n.sort(Bn((m)=>m.ordinal,Vi));let p=[];for(let m of n){let _=oL(h,m,g,u.onContentsChanged);u.fragment.appendChild(_.hoverElement),p.push(_)}return new $o(p)}function oL(u,n,h,g){let p=new d,m=id("div.hover-row"),_=id("div.hover-row-contents");m.appendChild(_);let v=n.contents;for(let C of v){if(ap(C))continue;let E=id("div.markdown-hover"),R=k(E,id("div.hover-contents")),Z=p.add(h.render(C,{context:u,asyncRenderCallback:()=>{R.className="hover-contents code-hover-contents",g()}}));R.appendChild(Z.element),_.appendChild(E)}return{hoverPart:n,hoverElement:m,dispose(){p.dispose()}}}function FT(u,n){switch(n){case ps.Increase:return u.appendKeybinding(e(1193,"Increase Hover Verbosity"),Ha);case ps.Decrease:return u.appendKeybinding(e(1194,"Decrease Hover Verbosity"),Ba)}}var nL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uv=function(u,n){return function(h,g){n(h,g,u)}},fg=class u{constructor(n){this._editorWorkerService=n}async provideDocumentColors(n,h){return this._editorWorkerService.computeDefaultDocumentColors(n.uri)}provideColorPresentations(n,h,g){let{range:p,color:m}=h,_=new y(new D(Math.round(255*m.red),Math.round(255*m.green),Math.round(255*m.blue),m.alpha)),v=y.Format.CSS.formatRGB(_),w=y.Format.CSS.formatHSL(_),C=y.Format.CSS.formatHexA(_,!0),E=[];return E.push({label:v,textEdit:{range:p,text:v}}),E.push({label:w,textEdit:{range:p,text:w}}),E.push({label:C,textEdit:{range:p,text:C}}),E}};fg=nL([uv(0,Mi)],fg);var T1=class u extends i{constructor(n,h){super();this._register(n.colorProvider.register("*",new fg(h)))}};T1=nL([uv(0,z),uv(1,Mi)],T1);async function L1(u,n,h,g="auto"){return $1(new rL,u,n,h,g)}function gv(u,n,h,g){return Promise.resolve(h.provideColorPresentations(u,n,g))}class rL{constructor(){}async compute(u,n,h,g){let p=await u.provideDocumentColors(n,h);if(Array.isArray(p))for(let m of p)g.push({colorInfo:m,provider:u});return Array.isArray(p)}}class cR{constructor(){}async compute(u,n,h,g){let p=await u.provideDocumentColors(n,h);if(Array.isArray(p))for(let m of p)g.push({range:m.range,color:[m.color.red,m.color.green,m.color.blue,m.color.alpha]});return Array.isArray(p)}}class dR{constructor(u){this.colorInfo=u}async compute(u,n,h,g){let p=await u.provideColorPresentations(n,this.colorInfo,we.None);if(Array.isArray(p))g.push(...p);return Array.isArray(p)}}async function $1(u,n,h,g,p){let m=!1,_,v=[],w=n.ordered(h);for(let C=w.length-1;C>=0;C--){let E=w[C];if(p!=="always"&&E instanceof fg)_=E;else try{if(await u.compute(E,h,g,v))m=!0}catch(R){yt(R)}}if(m)return v;if(_&&p!=="never")return await u.compute(_,h,g,v),v;return[]}function uR(u,n){let{colorProvider:h}=u.get(z),g=u.get(Et).getModel(n);if(!g)throw yo();let p=u.get(re).getValue("editor.defaultColorDecorators",{resource:n});return{model:g,colorProviderRegistry:h,defaultColorDecoratorsEnablement:p}}var HT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},pv=function(u,n){return function(h,g){n(h,g,u)}},od,mv=Object.create({}),zh=class u extends i{static{od=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1000}static{this.colorDecoratorInnerWidthInEm=0.8}static{this.colorDecoratorMarginInEm=0.2}constructor(n,h,g,p){super();this._editor=n,this._configurationService=h,this._languageFeaturesService=g,this._localToDispose=this._register(new d),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new sL),this._colorDecorationClassRefs=this._register(new d),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new Sy(this._editor));let m=this._editor.getContainerDomNode();m.style.setProperty("--vscode-colorPicker-colorDecoratorWidth",`${od.colorDecoratorInnerWidthInEm}em`),m.style.setProperty("--vscode-colorPicker-colorDecoratorMargin",`${od.colorDecoratorMarginInEm}em`),this._register(N(()=>{m.style.removeProperty("--vscode-colorPicker-colorDecoratorWidth"),m.style.removeProperty("--vscode-colorPicker-colorDecoratorMargin")})),this._debounceInformation=p.for(g.colorProvider,"Document Colors",{min:od.RECOMPUTE_TIME}),this._register(n.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(n.onDidChangeModelLanguage(()=>this.updateColors())),this._register(g.colorProvider.onDidChange(()=>this.updateColors())),this._register(n.onDidChangeConfiguration((_)=>{let v=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168);let w=v!==this._isColorDecoratorsEnabled||_.hasChanged(27),C=_.hasChanged(168);if(w||C)if(this._isColorDecoratorsEnabled)this.updateColors();else this.removeAllDecorations()})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168),this.updateColors()}isEnabled(){let n=this._editor.getModel();if(!n)return!1;let h=n.getLanguageId(),g=this._configurationService.getValue(h);if(g&&typeof g==="object"){let p=g.colorDecorators;if(p&&p.enable!==void 0&&!p.enable)return p.enable}return this._editor.getOption(26)}static get(n){return n.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled){this.removeAllDecorations();return}let n=this._editor.getModel();if(!n||!this._languageFeaturesService.colorProvider.has(n))return;this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{if(!this._timeoutTimer)this._timeoutTimer=new di,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(n))})),this.beginCompute()}async beginCompute(){this._computePromise=Zt(async(n)=>{let h=this._editor.getModel();if(!h)return[];let g=new dn(!1),p=await L1(this._languageFeaturesService.colorProvider,h,n,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(h,g.elapsed()),p});try{let n=await this._computePromise;this.updateDecorations(n),this.updateColorDecorators(n),this._computePromise=null}catch(n){ee(n)}}stop(){if(this._timeoutTimer)this._timeoutTimer.cancel(),this._timeoutTimer=null;if(this._computePromise)this._computePromise.cancel(),this._computePromise=null;this._localToDispose.clear()}updateDecorations(n){let h=n.map((g)=>({range:{startLineNumber:g.colorInfo.range.startLineNumber,startColumn:g.colorInfo.range.startColumn,endLineNumber:g.colorInfo.range.endLineNumber,endColumn:g.colorInfo.range.endColumn},options:ue.EMPTY}));this._editor.changeDecorations((g)=>{this._decorationsIds=g.deltaDecorations(this._decorationsIds,h),this._colorDatas=new Map,this._decorationsIds.forEach((p,m)=>this._colorDatas.set(p,n[m]))})}updateColorDecorators(n){this._colorDecorationClassRefs.clear();let h=[],g=od.colorDecoratorInnerWidthInEm+2*od.colorDecoratorMarginInEm,p=this._editor.getOption(27);for(let _=0;_<n.length&&h.length<p;_++){let{red:v,green:w,blue:C,alpha:E}=n[_].colorInfo.color,R=new D(Math.round(v*255),Math.round(w*255),Math.round(C*255),E),Z=`rgba(${R.r}, ${R.g}, ${R.b}, ${R.a})`,X=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:Z}));h.push({range:{startLineNumber:n[_].colorInfo.range.startLineNumber,startColumn:n[_].colorInfo.range.startColumn,endLineNumber:n[_].colorInfo.range.endLineNumber,endColumn:n[_].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:H1,inlineClassName:`${X.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:mv,widthInEm:g}}})}let m=p<n.length?p:!1;this._decoratorLimitReporter.update(n.length,m),this._colorDecoratorIds.set(h)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(n){let h=this._editor.getModel();if(!h)return null;let g=h.getDecorationsInRange(t.fromPositions(n,n)).filter((p)=>this._colorDatas.has(p.id));if(g.length===0)return null;return this._colorDatas.get(g[0].id)}isColorDecoration(n){return this._colorDecoratorIds.has(n)}};zh=od=HT([pv(1,re),pv(2,z),pv(3,uo)],zh);class sL extends i{constructor(){super(...arguments);this._onDidChange=this._register(new o),this._computed=0,this._limited=!1}update(u,n){if(u!==this._computed||n!==this._limited)this._computed=u,this._limited=n,this._onDidChange.fire()}}var aL=x;class fv extends i{constructor(u,n,h){super();this.model=n,this.pixelRatio=h,this._onDidChange=this._register(new o),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new o),this.onColorFlushed=this._onColorFlushed.event,this._domNode=aL(".saturation-wrap"),k(u,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",k(this._domNode,this._canvas),this.selection=aL(".saturation-selection"),k(this._domNode,this.selection),this.layout(),this._register(c(this._domNode,T.POINTER_DOWN,(g)=>this.onPointerDown(g))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(u){if(!u.target||!(u.target instanceof Element))return;this.monitor=this._register(new Dl);let n=kt(this._domNode);if(u.target!==this.selection)this.onDidChangePosition(u.offsetX,u.offsetY);this.monitor.startMonitoring(u.target,u.pointerId,u.buttons,(g)=>this.onDidChangePosition(g.pageX-n.left,g.pageY-n.top),()=>null);let h=c(u.target.ownerDocument,T.POINTER_UP,()=>{if(this._onColorFlushed.fire(),h.dispose(),this.monitor)this.monitor.stopMonitoring(!0),this.monitor=null},!0)}onDidChangePosition(u,n){let h=Math.max(0,Math.min(1,u/this.width)),g=Math.max(0,Math.min(1,1-n/this.height));this.paintSelection(h,g),this._onDidChange.fire({s:h,v:g})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();let u=this.model.color.hsva;this.paintSelection(u.s,u.v)}paint(){let u=this.model.color.hsva,n=new y(new yc(u.h,1,1,1)),h=this._canvas.getContext("2d"),g=h.createLinearGradient(0,0,this._canvas.width,0);g.addColorStop(0,"rgba(255, 255, 255, 1)"),g.addColorStop(0.5,"rgba(255, 255, 255, 0.5)"),g.addColorStop(1,"rgba(255, 255, 255, 0)");let p=h.createLinearGradient(0,0,0,this._canvas.height);p.addColorStop(0,"rgba(0, 0, 0, 0)"),p.addColorStop(1,"rgba(0, 0, 0, 1)"),h.rect(0,0,this._canvas.width,this._canvas.height),h.fillStyle=y.Format.CSS.format(n),h.fill(),h.fillStyle=g,h.fill(),h.fillStyle=p,h.fill()}paintSelection(u,n){this.selection.style.left=`${u*this.width}px`,this.selection.style.top=`${this.height-n*this.height}px`}onDidChangeColor(u){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let n=u.hsva;this.paintSelection(n.s,n.v)}}class _v extends i{constructor(u){super();this._onClicked=this._register(new o),this.onClicked=this._onClicked.event,this._button=k(u,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(c(this._button,T.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}var bh=x;class bv extends i{constructor(u,n,h){super();if(this.model=n,this._onDidChange=this._register(new o),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new o),this.onColorFlushed=this._onColorFlushed.event,h==="standalone")this.domNode=k(u,bh(".standalone-strip")),this.overlay=k(this.domNode,bh(".standalone-overlay"));else this.domNode=k(u,bh(".strip")),this.overlay=k(this.domNode,bh(".overlay"));this.slider=k(this.domNode,bh(".slider")),this.slider.style.top="0px",this._register(c(this.domNode,T.POINTER_DOWN,(g)=>this.onPointerDown(g))),this._register(n.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;let u=this.getValue(this.model.color);this.updateSliderPosition(u)}onDidChangeColor(u){let n=this.getValue(u);this.updateSliderPosition(n)}onPointerDown(u){if(!u.target||!(u.target instanceof Element))return;let n=this._register(new Dl),h=kt(this.domNode);if(this.domNode.classList.add("grabbing"),u.target!==this.slider)this.onDidChangeTop(u.offsetY);n.startMonitoring(u.target,u.pointerId,u.buttons,(p)=>this.onDidChangeTop(p.pageY-h.top),()=>null);let g=c(u.target.ownerDocument,T.POINTER_UP,()=>{this._onColorFlushed.fire(),g.dispose(),n.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(u){let n=Math.max(0,Math.min(1,1-u/this.height));this.updateSliderPosition(n),this._onDidChange.fire(n)}updateSliderPosition(u){this.slider.style.top=`${(1-u)*this.height}px`}}class vv extends bv{constructor(u,n,h){super(u,n,h);this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(u){super.onDidChangeColor(u);let{r:n,g:h,b:g}=u.rgba,p=new y(new D(n,h,g,1)),m=new y(new D(n,h,g,0));this.overlay.style.background=`linear-gradient(to bottom, ${p} 0%, ${m} 100%)`}getValue(u){return u.hsva.a}}class wv extends bv{constructor(u,n,h){super(u,n,h);this.domNode.classList.add("hue-strip")}getValue(u){return 1-u.hsva.h/360}}var WT=x;class Sv extends i{constructor(u,n,h,g){super();if(this.model=n,this.pixelRatio=h,this._insertButton=null,this._domNode=WT(".colorpicker-body"),k(u,this._domNode),this._saturationBox=new fv(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new vv(this._domNode,this.model,g),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new wv(this._domNode,this.model,g),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),g==="standalone")this._insertButton=this._register(new _v(this._domNode)),this._domNode.classList.add("standalone-colorpicker")}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:u,v:n}){let h=this.model.color.hsva;this.model.color=new y(new yc(h.h,u,n,h.a))}onDidOpacityChange(u){let n=this.model.color.hsva;this.model.color=new y(new yc(n.h,n.s,n.v,u))}onDidHueChange(u){let n=this.model.color.hsva,h=(1-u)*360;this.model.color=new y(new yc(h===360?0:h,n.s,n.v,n.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}var BT=x;class Cv extends i{constructor(u){super();this._onClicked=this._register(new o),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),k(u,this._button);let n=document.createElement("div");n.classList.add("close-button-inner-div"),k(this._button,n),k(n,BT(".button"+J.asCSSSelector(Pt("color-picker-close",S.close,e(936,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(c(this._button,T.CLICK,()=>{this._onClicked.fire()}))}}var Hp=x;class yv extends i{constructor(u,n,h,g){super();this.model=n,this.type=g,this._closeButton=null,this._domNode=Hp(".colorpicker-header"),k(u,this._domNode),this._pickedColorNode=k(this._domNode,Hp(".picked-color")),k(this._pickedColorNode,Hp("span.codicon.codicon-color-mode")),this._pickedColorPresentation=k(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");let p=e(937,"Click to toggle color options (rgb/hsl/hex)");if(this._pickedColorNode.setAttribute("title",p),this._originalColorNode=k(this._domNode,Hp(".original-color")),this._originalColorNode.style.backgroundColor=y.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=h.getColorTheme().getColor(Ng)||y.white,this._register(h.onDidColorThemeChange((m)=>{this.backgroundColor=m.getColor(Ng)||y.white})),this._register(c(this._pickedColorNode,T.CLICK,()=>this.model.selectNextColorPresentation())),this._register(c(this._originalColorNode,T.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(n.onDidChangeColor(this.onDidChangeColor,this)),this._register(n.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=y.Format.CSS.format(n.color)||"",this._pickedColorNode.classList.toggle("light",n.color.rgba.a<0.5?this.backgroundColor.isLighter():n.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone")this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new Cv(this._domNode))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(u){this._pickedColorNode.style.backgroundColor=y.Format.CSS.format(u)||"",this._pickedColorNode.classList.toggle("light",u.rgba.a<0.5?this.backgroundColor.isLighter():u.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}var VT=x;class $0 extends Ei{constructor(u,n,h,g,p){super();this.model=n,this.pixelRatio=h,this._register(Lf.getInstance(B(u)).onDidChange(()=>this.layout())),this._domNode=VT(".colorpicker-widget"),u.appendChild(this._domNode),this.header=this._register(new yv(this._domNode,this.model,g,p)),this.body=this._register(new Sv(this._domNode,this.model,this.pixelRatio,p))}layout(){this.body.layout()}get domNode(){return this._domNode}}class xv extends i{get color(){return this._color}set color(u){if(this._color.equals(u))return;this._color=u,this._onDidChangeColor.fire(u)}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(u){if(this._colorPresentations=u,this.presentationIndex>u.length-1)this.presentationIndex=0;this._onDidChangePresentation.fire(this.presentation)}constructor(u,n,h){super();this.presentationIndex=h,this._onColorFlushed=this._register(new o),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new o),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new o),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=u,this._color=u,this._colorPresentations=n}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(u,n){let h=-1;for(let g=0;g<this.colorPresentations.length;g++)if(n.toLowerCase()===this.colorPresentations[g].label){h=g;break}if(h===-1){let g=n.split("(")[0].toLowerCase();for(let p=0;p<this.colorPresentations.length;p++)if(this.colorPresentations[p].label.toLowerCase().startsWith(g)){h=p;break}}if(h!==-1&&h!==this.presentationIndex)this.presentationIndex=h,this._onDidChangePresentation.fire(this.presentation)}flushColor(){this._onColorFlushed.fire(this._color)}}async function I1(u,n,h){let g=u.getValueInRange(n.range),{red:p,green:m,blue:_,alpha:v}=n.color,w=new D(Math.round(p*255),Math.round(m*255),Math.round(_*255),v),C=new y(w),E=await gv(u,n,h,we.None),R=new xv(C,[],0);return R.colorPresentations=E||[],R.guessColorPresentation(C,g),{range:t.lift(n.range),model:R,provider:h}}function R1(u,n,h,g){let p=[],m=h.presentation.textEdit??{range:n,text:h.presentation.label,forceMoveMarkers:!1};if(h.presentation.additionalTextEdits)p.push(...h.presentation.additionalTextEdits);let _=t.lift(m.range),v=u.getModel()._setTrackedRange(null,_,3);if(g)p.push(...g.map((w)=>({range:w,text:m.text,forceMoveMarkers:!1})));else p.push(m);return u.executeEdits("colorpicker",p),u.pushUndoStop(),u.getModel()._getTrackedRange(v)??_}async function mg(u,n,h,g,p){let m=await gv(u,{range:g,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},p.provider,we.None);n.colorPresentations=m||[]}var zT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},KT=function(u,n){return function(h,g){n(h,g,u)}};class mc{constructor(u,n,h,g){this.owner=u,this.range=n,this.model=h,this.provider=g,this.forceShowAtRange=!0}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}static fromBaseColor(u,n){return new mc(u,n.range,n.model,n.provider)}}var Qv=class u{constructor(n,h){this._editor=n,this._themeService=h,this.hoverOrdinal=2}computeSync(n,h,g){return[]}computeAsync(n,h,g,p){return oi.fromPromise(this._computeAsync(n,h,g))}async _computeAsync(n,h,g){if(!this._editor.hasModel())return[];if(!this._isValidRequest(g))return[];let p=zh.get(this._editor);if(!p)return[];for(let m of h){if(!p.isColorDecoration(m))continue;let _=p.getColorData(m.range.getStartPosition());if(_)return[mc.fromBaseColor(this,await I1(this._editor.getModel(),_.colorInfo,_.provider))]}return[]}_isValidRequest(n){let h=this._editor.getOption(169);switch(n){case 0:return h==="hover"||h==="clickAndHover";case 1:return h==="click"||h==="clickAndHover";case 2:return!0}}renderHoverParts(n,h){let g=this._editor;if(h.length===0||!g.hasModel())return new $o([]);let p=g.getOption(75)+8;n.setMinimumDimensions(new at(302,p));let m=new d,_=h[0],v=g.getModel(),w=_.model;this._colorPicker=m.add(new $0(n.fragment,w,g.getOption(164),this._themeService,"hover"));let C=!1,E=new t(_.range.startLineNumber,_.range.startColumn,_.range.endLineNumber,_.range.endColumn);m.add(w.onColorFlushed(async(Z)=>{await mg(v,w,Z,E,_),C=!0,E=R1(g,E,w)})),m.add(w.onDidChangeColor((Z)=>{mg(v,w,Z,E,_)})),m.add(g.onDidChangeModelContent((Z)=>{if(C)C=!1;else n.hide(),g.focus()}));let R={hoverPart:mc.fromBaseColor(this,_),hoverElement:this._colorPicker.domNode,dispose(){m.dispose()}};return new $o([R])}getAccessibleContent(n){return e(938,"There is a color picker here.")}handleResize(){this._colorPicker?.layout()}handleContentsChanged(){this._colorPicker?.layout()}handleHide(){this._colorPicker?.dispose(),this._colorPicker=void 0}isColorPickerVisible(){return!!this._colorPicker}};Qv=zT([KT(1,We)],Qv);class Wp{constructor(u,n){this.range=u,this.direction=n}}class Iv{constructor(u,n,h){this.hint=u,this.anchor=n,this.provider=h,this._isResolved=!1}with(u){let n=new Iv(this.hint,u.anchor,this.provider);return n._isResolved=this._isResolved,n._currentResolve=this._currentResolve,n}async resolve(u){if(typeof this.provider.resolveInlayHint!=="function")return;if(this._currentResolve){if(await this._currentResolve,u.isCancellationRequested)return;return this.resolve(u)}if(!this._isResolved)this._currentResolve=this._doResolve(u).finally(()=>this._currentResolve=void 0);await this._currentResolve}async _doResolve(u){try{let n=await Promise.resolve(this.provider.resolveInlayHint(this.hint,u));this.hint.tooltip=n?.tooltip??this.hint.tooltip,this.hint.label=n?.label??this.hint.label,this.hint.textEdits=n?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(n){yt(n),this._isResolved=!1}}}class nd{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(u,n,h,g){let p=[],m=u.ordered(n).reverse().map((_)=>h.map(async(v)=>{try{let w=await _.provideInlayHints(n,v,g);if(w?.hints.length||_.onDidChangeInlayHints)p.push([w??nd._emptyInlayHintList,_])}catch(w){yt(w)}}));if(await Promise.all(m.flat()),g.isCancellationRequested||n.isDisposed())throw new Tr;return new nd(h,p,n)}constructor(u,n,h){this._disposables=new d,this.ranges=u,this.provider=new Set;let g=[];for(let[p,m]of n){this._disposables.add(p),this.provider.add(m);for(let _ of p.hints){let v=h.validatePosition(_.position),w="before",C=nd._getRangeAtPosition(h,v),E;if(C.getStartPosition().isBefore(v))E=t.fromPositions(C.getStartPosition(),v),w="after";else E=t.fromPositions(v,C.getEndPosition()),w="before";g.push(new Iv(_,new Wp(E,w),m))}}this.items=g.sort((p,m)=>s.compare(p.hint.position,m.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(u,n){let h=n.lineNumber,g=u.getWordAtPosition(n);if(g)return new t(h,g.startColumn,h,g.endColumn);u.tokenization.tokenizeIfCheap(h);let p=u.tokenization.getLineTokens(h),m=n.column-1,_=p.findTokenIndexAtOffset(m),v=p.getStartOffset(_),w=p.getEndOffset(_);if(w-v===1){if(v===m&&_>1)v=p.getStartOffset(_-1),w=p.getEndOffset(_-1);else if(w===m&&_<p.getCount()-1)v=p.getStartOffset(_+1),w=p.getEndOffset(_+1)}return new t(h,v+1,h,w+1)}}function dL(u){return fk(u.id,...u.arguments??[]).toString()}async function cL(u,n,h,g){let p=u.get(Dn),m=u.get(Qn),_=u.get(Ue),v=u.get(A),w=u.get(wt);if(await g.item.resolve(we.None),!g.part.location)return;let C=g.part.location,E=[],R=new Set(Zn.getMenuItems(l.EditorContext).map((X)=>$f(X)?X.command.id:Ol()));for(let X of Bi.all())if(R.has(X.desc.id))E.push(new wo(X.desc.id,Ki.label(X.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let Y=await p.createModelReference(C.uri);try{let Q=new Qa(Y.object.textEditorModel,t.getStartPosition(C.range)),te=g.item.anchor.range;await v.invokeFunction(X.runEditorCommand.bind(X),n,Q,te)}finally{Y.dispose()}}));if(g.part.command){let{command:X}=g.part;E.push(new ut),E.push(new wo(X.id,X.title,void 0,!0,async()=>{try{await _.executeCommand(X.id,...X.arguments??[])}catch(Y){w.notify({severity:Sc.Error,source:g.item.provider.displayName,message:Y})}}))}let Z=n.getOption(144);m.showContextMenu({domForShadowRoot:Z?n.getDomNode()??void 0:void 0,getAnchor:()=>{let X=kt(h);return{x:X.left,y:X.top+X.height+8}},getActions:()=>E,onHide:()=>{n.focus()},autoSelectFirstItem:!0})}async function Bp(u,n,h,g){let m=await u.get(Dn).createModelReference(g.uri);await h.invokeWithinContext(async(_)=>{let v=n.hasSideBySideModifier,w=_.get(G),C=mi.inPeekEditor.getValue(w),E=!v&&h.getOption(101)&&!C;return new Us({openToSide:v,openInPeek:E,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(_,new Qa(m.object.textEditorModel,t.getStartPosition(g.range)),t.lift(g.range))}),m.dispose()}var UT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},_c=function(u,n){return function(h,g){n(h,g,u)}},Dc;class Vp{constructor(){this._entries=new Ji(50)}get(u){let n=Vp._key(u);return this._entries.get(n)}set(u,n){let h=Vp._key(u);this._entries.set(h,n)}static _key(u){return`${u.uri.toString()}/${u.getVersionId()}`}}var lL=ie("IInlayHintsCache");_e(lL,Vp,1);class vh{constructor(u,n){this.item=u,this.index=n}get part(){let u=this.item.hint.label;if(typeof u==="string")return{label:u};else return u[this.index]}}class hL{constructor(u,n){this.part=u,this.hasTriggerModifier=n}}class uL{constructor(){this._store=new de,this._tokenSource=new qe}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new qe,this._store.value=new d,{store:this._store.value,token:this._tokenSource.token}}}var gg=class u{static{Dc=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(n){return n.getContribution(Dc.ID)??void 0}constructor(n,h,g,p,m,_,v){this._editor=n,this._languageFeaturesService=h,this._inlayHintsCache=p,this._commandService=m,this._notificationService=_,this._instaService=v,this._disposables=new d,this._sessionDisposables=new d,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new Sy(this._editor)),this._debounceInfo=g.for(h.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(h.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(n.onDidChangeModel(()=>this._update())),this._disposables.add(n.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(n.onDidChangeConfiguration((w)=>{if(w.hasChanged(159))this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();let n=this._editor.getOption(159);if(n.enabled==="off")return;let h=this._editor.getModel();if(!h||!this._languageFeaturesService.inlayHintsProvider.has(h))return;if(n.enabled==="on")this._activeRenderMode=0;else{let C,E;if(n.enabled==="onUnlessPressed")C=0,E=1;else C=1,E=0;this._activeRenderMode=C,this._sessionDisposables.add(Ua.getInstance().event((R)=>{if(!this._editor.hasModel())return;let Z=R.altKey&&R.ctrlKey&&!(R.shiftKey||R.metaKey)?E:C;if(Z!==this._activeRenderMode){this._activeRenderMode=Z;let X=this._editor.getModel(),Y=this._copyInlayHintsWithCurrentAnchor(X);this._updateHintsDecorators([X.getFullModelRange()],Y),v.schedule(0)}}))}let g=this._inlayHintsCache.get(h);if(g)this._updateHintsDecorators([h.getFullModelRange()],g);this._sessionDisposables.add(N(()=>{if(!h.isDisposed())this._cacheHintsForFastRestore(h)}));let p,m=new Set;this._sessionDisposables.add(h.onWillDispose(()=>p?.cancel()));let _=this._sessionDisposables.add(new uL),v=new ke(async()=>{let C=Date.now(),{store:E,token:R}=_.reset();try{let Z=await nd.create(this._languageFeaturesService.inlayHintsProvider,h,this._getHintsRanges(),R);if(v.delay=this._debounceInfo.update(h,Date.now()-C),R.isCancellationRequested){Z.dispose();return}for(let X of Z.provider)if(typeof X.onDidChangeInlayHints==="function"&&!m.has(X))m.add(X),E.add(X.onDidChangeInlayHints(()=>{if(!v.isScheduled())v.schedule()}));E.add(Z),E.add(N(()=>m.clear())),this._updateHintsDecorators(Z.ranges,Z.items),this._cacheHintsForFastRestore(h)}catch(Z){ee(Z)}},this._debounceInfo.get(h));this._sessionDisposables.add(v),v.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((C)=>{if(C.scrollTopChanged||!v.isScheduled())v.schedule()}));let w=this._sessionDisposables.add(new de);this._sessionDisposables.add(this._editor.onDidChangeModelContent((C)=>{let E=Math.max(v.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+E},w.value=bi(()=>v.schedule(0),E),v.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration((C)=>{if(C.hasChanged(159))v.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>v.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){let n=new d,h=n.add(new Kr(this._editor)),g=new d;return n.add(g),n.add(h.onMouseMoveOrRelevantKeyDown((p)=>{let[m]=p,_=this._getInlayHintLabelPart(m),v=this._editor.getModel();if(!_||!v){g.clear();return}let w=new qe;g.add(N(()=>w.dispose(!0))),_.item.resolve(w.token),this._activeInlayHintPart=_.part.command||_.part.location?new hL(_,m.hasTriggerModifier):void 0;let C=v.validatePosition(_.item.hint.position).lineNumber,E=new t(C,1,C,v.getLineMaxColumn(C)),R=this._getInlineHintsForRange(E);this._updateHintsDecorators([E],R),g.add(N(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([E],R)}))})),n.add(h.onCancel(()=>g.clear())),n.add(h.onExecute(async(p)=>{let m=this._getInlayHintLabelPart(p);if(m){let _=m.part;if(_.location)this._instaService.invokeFunction(Bp,p,this._editor,_.location);else if(ly.is(_.command))await this._invokeCommand(_.command,m.item)}})),n}_getInlineHintsForRange(n){let h=new Set;for(let g of this._decorationsMetadata.values())if(n.containsRange(g.item.anchor.range))h.add(g.item);return Array.from(h)}_installDblClickGesture(n){return this._editor.onMouseUp(async(h)=>{if(h.event.detail!==2)return;let g=this._getInlayHintLabelPart(h);if(!g)return;if(h.event.preventDefault(),await g.item.resolve(we.None),Kn(g.item.hint.textEdits)){let p=g.item.hint.textEdits.map((m)=>Yt.replace(t.lift(m.range),m.text));this._editor.executeEdits("inlayHint.default",p),n()}})}_installContextMenu(){return this._editor.onContextMenu(async(n)=>{if(!$e(n.event.target))return;let h=this._getInlayHintLabelPart(n);if(h)await this._instaService.invokeFunction(cL,this._editor,n.event.target,h)})}_getInlayHintLabelPart(n){if(n.target.type!==6)return;let h=n.target.detail.injectedText?.options;if(h instanceof xd&&h?.attachedData instanceof vh)return h.attachedData;return}async _invokeCommand(n,h){try{await this._commandService.executeCommand(n.id,...n.arguments??[])}catch(g){this._notificationService.notify({severity:Sc.Error,source:h.provider.displayName,message:g})}}_cacheHintsForFastRestore(n){let h=this._copyInlayHintsWithCurrentAnchor(n);this._inlayHintsCache.set(n,h)}_copyInlayHintsWithCurrentAnchor(n){let h=new Map;for(let[g,p]of this._decorationsMetadata){if(h.has(p.item))continue;let m=n.getDecorationRange(g);if(m){let _=new Wp(m,p.item.anchor.direction),v=p.item.with({anchor:_});h.set(p.item,v)}}return Array.from(h.values())}_getHintsRanges(){let h=this._editor.getModel(),g=this._editor.getVisibleRangesPlusViewportAboveBelow(),p=[];for(let m of g.sort(t.compareRangesUsingStarts)){let _=h.validateRange(new t(m.startLineNumber-30,m.startColumn,m.endLineNumber+30,m.endColumn));if(p.length===0||!t.areIntersectingOrTouching(p[p.length-1],_))p.push(_);else p[p.length-1]=t.plusRange(p[p.length-1],_)}return p}_updateHintsDecorators(n,h){let g=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&n.some((oe)=>oe.containsPosition(this._cursorInfo.position))){let{position:oe}=this._cursorInfo;this._cursorInfo=void 0;let le=new Map;for(let ae of this._editor.getLineDecorations(oe.lineNumber)??[]){let me=this._decorationsMetadata.get(ae.id);if(ae.range.startColumn>oe.column)continue;let Ne=me?.decoration.options[me.item.anchor.direction];if(Ne&&Ne.attachedData!==Dc._whitespaceData){let Me=le.get(me.item)??0;le.set(me.item,Me+Ne.content.length)}}let pe=h.filter((ae)=>ae.anchor.range.startLineNumber===oe.lineNumber&&ae.anchor.range.endColumn<=oe.column),Se=Array.from(le.values()),Ce;while(!0){let ae=pe.shift(),me=Se.shift();if(!me&&!ae)break;if(ae)g.set(ae,me??0),Ce=ae;else if(Ce&&me){let Ne=g.get(Ce);Ne+=me,Ne+=Se.reduce((Me,Oe)=>Me+Oe,0),Se.length=0;break}}}let{fontSize:p,fontFamily:m,padding:_,isUniform:v}=this._getLayoutInfo(),w=this._editor.getOption(61),C=[],E=(oe,le,pe,Se,Ce,ae)=>{let me={content:pe,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:le.className,cursorStops:Se,attachedData:Ce,widthInEm:ae};C.push({item:oe,classNameRef:le,decoration:{range:oe.anchor.range,options:{description:"InlayHint",showIfCollapsed:oe.anchor.range.isEmpty(),collapseOnReplaceEdit:!oe.anchor.range.isEmpty(),stickiness:0,[oe.anchor.direction]:this._activeRenderMode===0?me:void 0}}})},R=(oe,le)=>{let pe=p/3|0,Se=pe/w,Ce=this._ruleFactory.createClassNameRef({width:`${pe}px`,display:"inline-block"});E(oe,Ce,"",le?vs.Right:vs.None,Dc._whitespaceData,Se)},Z=this._editor.getOption(159).maximumLength,X="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(X,m);let Y={line:0,totalLen:0};for(let oe=0;oe<h.length;oe++){let le=h[oe];if(Y.line!==le.anchor.range.startLineNumber)Y={line:le.anchor.range.startLineNumber,totalLen:0};if(Z&&Y.totalLen>Z)continue;if(le.hint.paddingLeft)R(le,!1);let pe=typeof le.hint.label==="string"?[{label:le.hint.label}]:le.hint.label,Se=g.get(le),Ce=0;for(let ae=0;ae<pe.length;ae++){let me=pe[ae],Ne=ae===0,Me=ae===pe.length-1,Oe={fontSize:`${p}px`,fontFamily:`var(${X}), ${Do.fontFamily}`,verticalAlign:v?"baseline":"middle",unicodeBidi:"isolate"};if(Kn(le.hint.textEdits))Oe.cursor="default";if(this._fillInColors(Oe,le.hint),(me.command||me.location)&&this._activeInlayHintPart?.part.item===le&&this._activeInlayHintPart.part.index===ae){if(Oe.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier)Oe.color=bn(Y2),Oe.cursor="pointer"}let ye=me.label;Y.totalLen+=ye.length;let Pe=!1,it=Z!==0?Y.totalLen-Z:0;if(it>0)ye=ye.slice(0,-it)+"…",Pe=!0;if(Ce+=ye.length,Se!==void 0){let Ve=Ce-Se;if(Ve>=0)Ce-=Ve,ye=ye.slice(0,-(1+Ve))+"…",Pe=!0}if(_)if(Ne&&(Me||Pe))Oe.padding=`1px ${Math.max(1,p/4)|0}px`,Oe.borderRadius=`${p/4|0}px`;else if(Ne)Oe.padding=`1px 0 1px ${Math.max(1,p/4)|0}px`,Oe.borderRadius=`${p/4|0}px 0 0 ${p/4|0}px`;else if(Me||Pe)Oe.padding=`1px ${Math.max(1,p/4)|0}px 1px 0`,Oe.borderRadius=`0 ${p/4|0}px ${p/4|0}px 0`;else Oe.padding="1px 0 1px 0";if(E(le,this._ruleFactory.createClassNameRef(Oe),qT(ye),Me&&!le.hint.paddingRight?vs.Right:vs.None,new vh(le,ae)),Pe)break}if(Se!==void 0&&Ce<Se){let ae=Se-Ce;E(le,this._ruleFactory.createClassNameRef({})," ".repeat(ae),vs.None)}if(le.hint.paddingRight)R(le,!0);if(C.length>Dc._MAX_DECORATORS)break}let Q=[];for(let[oe,le]of this._decorationsMetadata){let pe=this._editor.getModel()?.getDecorationRange(oe);if(pe&&n.some((Se)=>Se.containsRange(pe)))Q.push(oe),le.classNameRef.dispose(),this._decorationsMetadata.delete(oe)}let te=ns.capture(this._editor);this._editor.changeDecorations((oe)=>{let le=oe.deltaDecorations(Q,C.map((pe)=>pe.decoration));for(let pe=0;pe<le.length;pe++){let Se=C[pe];this._decorationsMetadata.set(le[pe],Se)}}),te.restore(this._editor)}_fillInColors(n,h){if(h.kind===A0.Parameter)n.backgroundColor=bn(iP),n.color=bn(nP);else if(h.kind===A0.Type)n.backgroundColor=bn(tP),n.color=bn(eP);else n.backgroundColor=bn(X1),n.color=bn(Z1)}_getLayoutInfo(){let n=this._editor.getOption(159),h=n.padding,g=this._editor.getOption(61),p=this._editor.getOption(58),m=n.fontSize;if(!m||m<5||m>g)m=g;let _=n.fontFamily||p;return{fontSize:m,fontFamily:_,padding:h,isUniform:!h&&_===p&&m===g}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(let n of this._decorationsMetadata.values())n.classNameRef.dispose();this._decorationsMetadata.clear()}};gg=Dc=UT([_c(1,z),_c(2,uo),_c(3,lL),_c(4,Ue),_c(5,wt),_c(6,A)],gg);function qT(u){return u.replace(/[ \t]/g," ")}Le.registerCommand("_executeInlayHintProvider",async(u,...n)=>{let[h,g]=n;He(q.isUri(h)),He(t.isIRange(g));let{inlayHintsProvider:p}=u.get(z),m=await u.get(Dn).createModelReference(h);try{let _=await nd.create(p,m.object.textEditorModel,[t.lift(g)],we.None),v=_.items.map((w)=>w.hint);return setTimeout(()=>_.dispose(),0),v}finally{m.dispose()}});var jT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rd=function(u,n){return function(h,g){n(h,g,u)}};class Lv extends $s{constructor(u,n,h,g){super(10,n,u.item.anchor.range,h,g,!0);this.part=u}}var ey=class u extends Gs{constructor(n,h,g,p,m,_,v,w){super(n,h,m,v,g,p,w);this._resolverService=_,this.hoverOrdinal=6}suggestHoverAnchor(n){if(!gg.get(this._editor))return null;if(n.target.type!==6)return null;let g=n.target.detail.injectedText?.options;if(!(g instanceof xd&&g.attachedData instanceof vh))return null;return new Lv(g.attachedData,this,n.event.posx,n.event.posy)}computeSync(){return[]}computeAsync(n,h,g,p){if(!(n instanceof Lv))return oi.EMPTY;return new oi(async(m)=>{let{part:_}=n;if(await _.item.resolve(p),p.isCancellationRequested)return;let v;if(typeof _.item.hint.tooltip==="string")v=new Mn().appendText(_.item.hint.tooltip);else if(_.item.hint.tooltip)v=_.item.hint.tooltip;if(v)m.emitOne(new io(this,n.range,[v],!1,0));if(Kn(_.item.hint.textEdits))m.emitOne(new io(this,n.range,[new Mn().appendText(e(1220,"Double-click to insert"))],!1,10001));let w;if(typeof _.part.tooltip==="string")w=new Mn().appendText(_.part.tooltip);else if(_.part.tooltip)w=_.part.tooltip;if(w)m.emitOne(new io(this,n.range,[w],!1,1));if(_.part.location||_.part.command){let E,Z=this._editor.getOption(86)==="altKey"?ve?e(1221,"cmd + click"):e(1222,"ctrl + click"):ve?e(1223,"option + click"):e(1224,"alt + click");if(_.part.location&&_.part.command)E=new Mn().appendText(e(1225,"Go to Definition ({0}), right click for more",Z));else if(_.part.location)E=new Mn().appendText(e(1226,"Go to Definition ({0})",Z));else if(_.part.command)E=new Mn(`[${e(1227,"Execute Command")}](${dL(_.part.command)} "${_.part.command.title}") (${Z})`,{isTrusted:!0});if(E)m.emitOne(new io(this,n.range,[E],!1,1e4))}let C=this._resolveInlayHintLabelPartHover(_,p);for await(let E of C)m.emitOne(E)})}async*_resolveInlayHintLabelPartHover(n,h){if(!n.part.location)return;let{uri:g,range:p}=n.part.location,m=await this._resolverService.createModelReference(g);try{let _=m.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(_))return;for await(let v of fh(this._languageFeaturesService.hoverProvider,_,new s(p.startLineNumber,p.startColumn),h))if(!ap(v.hover.contents))yield new io(this,n.item.anchor.range,v.hover.contents,!1,2+v.ordinal)}finally{m.dispose()}}};ey=jT([rd(1,Bo),rd(2,ge),rd(3,On),rd(4,re),rd(5,Dn),rd(6,z),rd(7,Ue)],ey);var gL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Rc=function(u,n){return function(h,g){n(h,g,u)}},kv,Ev,zp=kv=class u extends i{constructor(n,h,g,p,m,_,v){super();let w=h.hoverParts;this._renderedHoverParts=this._register(new Dv(n,g,w,p,m,_,v));let C=h.options,E=C.anchor,{showAtPosition:R,showAtSecondaryPosition:Z}=kv.computeHoverPositions(n,E.range,w);this.shouldAppearBeforeContent=w.some((X)=>X.isBeforeContent),this.showAtPosition=R,this.showAtSecondaryPosition=Z,this.initialMousePosX=E.initialMousePosX,this.initialMousePosY=E.initialMousePosY,this.shouldFocus=C.shouldFocus,this.source=C.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}get hoverPartsCount(){return this._renderedHoverParts.hoverPartsCount}focusHoverPartWithIndex(n){this._renderedHoverParts.focusHoverPartWithIndex(n)}async updateHoverVerbosityLevel(n,h,g){this._renderedHoverParts.updateHoverVerbosityLevel(n,h,g)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(n,h,g){let p=1;if(n.hasModel()){let E=n._getViewModel(),R=E.coordinatesConverter,Z=R.convertModelRangeToViewRange(h),X=E.getLineMinColumn(Z.startLineNumber),Y=new s(Z.startLineNumber,X);p=R.convertViewPositionToModelPosition(Y).column}let{startLineNumber:m,startColumn:_}=h,v;for(let E of g){let R=E.range,Z=R.startLineNumber===m,X=R.endLineNumber===m;if(Z&&X){let Q=R.startColumn,te=Math.min(_,Q);_=Math.max(te,p)}if(E.forceShowAtRange)v=R}let w,C;if(v){let E=v.getStartPosition();w=E,C=E}else w=h.getStartPosition(),C=new s(m,_);return{showAtPosition:w,showAtSecondaryPosition:C}}};zp=kv=gL([Rc(4,ge),Rc(5,On),Rc(6,wi)],zp);class pL{constructor(u,n){this._statusBar=n,u.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var Dv=class u extends i{static{Ev=this}static{this._DECORATION_OPTIONS=ue.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(n,h,g,p,m,_,v){super();this._hoverService=_,this._clipboardService=v,this._renderedParts=[],this._perPartDisposables=new Map,this._focusedHoverPartIndex=-1,this._context=p,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(h,g,p,m,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(n,g)),this._updateMarkdownAndColorParticipantInfo(h)}_createEditorDecorations(n,h){if(h.length===0)return i.None;let g=h[0].range;for(let m of h){let _=m.range;g=t.plusRange(g,_)}let p=n.createDecorationsCollection();return p.set([{range:g,options:Ev._DECORATION_OPTIONS}]),N(()=>{p.clear()})}_renderParts(n,h,g,p,m){let _=new Xv(p,m),v={fragment:this._fragment,statusBar:_,...g},w=new d;w.add(_);for(let E of n){let R=this._renderHoverPartsForParticipant(h,E,v);w.add(R);for(let Z of R.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:E,hoverPart:Z.hoverPart,hoverElement:Z.hoverElement})}let C=this._renderStatusBar(this._fragment,_);if(C)w.add(C),this._renderedParts.push({type:"statusBar",hoverElement:C.hoverElement,actions:C.actions});return w}_renderHoverPartsForParticipant(n,h,g){let p=n.filter((_)=>_.owner===h);if(!(p.length>0))return new $o([]);return h.renderHoverParts(g,p)}_renderStatusBar(n,h){if(!h.hasContent)return;return new pL(n,h)}_registerListenersOnRenderedParts(){return this._renderedParts.forEach((n,h)=>{this._createListenersForPart(h,n)}),N(()=>{for(let n of this._perPartDisposables.values())n.dispose();this._perPartDisposables.clear()})}_createListenersForPart(n,h){let g=new d,p=h.hoverElement;if(p.tabIndex=0,g.add(c(p,T.FOCUS_IN,(m)=>{m.stopPropagation(),this._focusedHoverPartIndex=n})),g.add(c(p,T.FOCUS_OUT,(m)=>{m.stopPropagation(),this._focusedHoverPartIndex=-1})),h.type==="hoverPart"&&!(h.hoverPart instanceof mc)&&!h.participant.hideCopyButton)g.add(new Fp(p,()=>h.participant.getAccessibleContent(h.hoverPart),this._clipboardService,this._hoverService));this._perPartDisposables.set(n,g)}_updateMarkdownAndColorParticipantInfo(n){let h=n.find((g)=>g instanceof Gs&&!(g instanceof ey));if(h)this._markdownHoverParticipant=h;this._colorHoverParticipant=n.find((g)=>g instanceof Qv)}focusHoverPartWithIndex(n){if(n<0||n>=this._renderedParts.length)return;this._renderedParts[n].hoverElement.focus()}async updateHoverVerbosityLevel(n,h,g){if(!this._markdownHoverParticipant)return;let p;if(h>=0)p={start:h,endExclusive:h+1};else p=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let m=p.start;m<p.endExclusive;m++){let _=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,m);if(_===void 0)continue;let v=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(n,_);if(!v)continue;let w=this._perPartDisposables.get(m);if(w)w.dispose(),this._perPartDisposables.delete(m);this._renderedParts[m]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:v.hoverPart,hoverElement:v.hoverElement},this._createListenersForPart(m,this._renderedParts[m])}if(g)if(h>=0)this.focusHoverPartWithIndex(h);else this._context.focus();this._context.onContentsChanged()}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(n,h){let g=this._renderedParts[h];if(!g||g.type!=="hoverPart")return;if(g.participant!==n)return;let m=this._renderedParts.findIndex((_)=>_.type==="hoverPart"&&_.participant===n);if(m===-1)throw new H;return h-m}_findRangeOfMarkdownHoverParts(n){let h=this._renderedParts.slice(),g=h.findIndex((_)=>_.type==="hoverPart"&&_.participant===n),p=h.reverse().findIndex((_)=>_.type==="hoverPart"&&_.participant===n),m=p>=0?h.length-p:p;return{start:g,endExclusive:m+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}};Dv=Ev=gL([Rc(4,ge),Rc(5,On),Rc(6,wi)],Dv);var $T=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Kp=function(u,n){return function(h,g){n(h,g,u)}},Up=class u extends i{constructor(n,h,g,p,m){super();this._editor=n,this._instantiationService=h,this._keybindingService=g,this._hoverService=p,this._clipboardService=m,this._currentResult=null,this._renderedContentHover=this._register(new de),this._onContentsChanged=this._register(new o),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(Pp,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new gh(this._editor,new mh(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){let n=[];for(let h of _l.getAll()){let g=this._instantiationService.createInstance(h,this._editor);n.push(g)}return n.sort((h,g)=>h.hoverOrdinal-g.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach((h)=>h.handleResize?.())})),this._register(this._contentHoverWidget.onDidScroll((h)=>{this._participants.forEach((g)=>g.handleScroll?.(h))})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach((h)=>h.handleContentsChanged?.())})),n}_registerListeners(){this._register(this._hoverOperation.onResult((h)=>{let g=h.hasLoadingMessage?this._addLoadingMessage(h):h.value;this._withResult(new Ap(g,h.isComplete,h.options))}));let n=this._contentHoverWidget.getDomNode();this._register(Ct(n,"keydown",(h)=>{if(h.equals(9))this.hide()})),this._register(Ct(n,"mouseleave",(h)=>{this._onMouseLeave(h)})),this._register(qt.onDidChange(()=>{if(this._contentHoverWidget.position&&this._currentResult)this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(n,h,g,p,m){if(!(this._contentHoverWidget.position&&this._currentResult)){if(n)return this._startHoverOperationIfNecessary(n,h,g,p,!1),!0;return!1}let v=this._editor.getOption(69).sticky,w=m&&this._contentHoverWidget.isMouseGettingCloser(m.event.posx,m.event.posy);if(v&&w){if(n)this._startHoverOperationIfNecessary(n,h,g,p,!0);return!0}if(!n)return this._setCurrentResult(null),!1;if(this._currentResult&&this._currentResult.options.anchor.equals(n))return!0;if(!(this._currentResult&&n.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)))return this._setCurrentResult(null),this._startHoverOperationIfNecessary(n,h,g,p,!1),!0;if(this._currentResult)this._setCurrentResult(this._currentResult.filter(n));return this._startHoverOperationIfNecessary(n,h,g,p,!1),!0}_startHoverOperationIfNecessary(n,h,g,p,m){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(n))return;this._hoverOperation.cancel();let v={anchor:n,source:g,shouldFocus:p,insistOnKeepingHoverVisible:m};this._hoverOperation.start(h,v)}_setCurrentResult(n){let h=n;if(this._currentResult===h)return;if(h&&h.hoverParts.length===0)h=null;if(this._currentResult=h,this._currentResult)this._showHover(this._currentResult);else this._hideHover()}_addLoadingMessage(n){for(let h of this._participants){if(!h.createLoadingMessage)continue;let g=h.createLoadingMessage(n.options.anchor);if(!g)continue;return n.value.slice(0).concat([g])}return n.value}_withResult(n){if(!(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete))this._setCurrentResult(n);if(!n.isComplete)return;let p=n.hoverParts.length===0,m=n.options.insistOnKeepingHoverVisible;if(p&&m)return;this._setCurrentResult(n)}_showHover(n){let h=this._getHoverContext();if(this._renderedContentHover.value=new zp(this._editor,n,this._participants,h,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren)this._contentHoverWidget.show(this._renderedContentHover.value);else this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach((n)=>n.handleHide?.())}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:(m)=>{this._contentHoverWidget.setMinimumDimensions(m)},focus:()=>this.focus()}}showsOrWillShow(n){if(this._contentHoverWidget.isResizing)return!0;if(this._isMouseOnCodeActionWidget(n))return!0;let g=this._findHoverAnchorCandidates(n);if(!(g.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,n);let m=g[0];return this._startShowingOrUpdateHover(m,0,0,!1,n)}_findHoverAnchorCandidates(n){let h=[];for(let p of this._participants){if(!p.suggestHoverAnchor)continue;let m=p.suggestHoverAnchor(n);if(!m)continue;h.push(m)}let g=n.target;switch(g.type){case 6:{h.push(new ph(0,g.range,n.event.posx,n.event.posy));break}case 7:{let p=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!g.detail.isAfterLines&&typeof g.detail.horizontalDistanceToText==="number"&&g.detail.horizontalDistanceToText<p))break;h.push(new ph(0,g.range,n.event.posx,n.event.posy));break}}return h.sort((p,m)=>m.priority-p.priority),h}_isMouseOnCodeActionWidget(n){let h=n.event.browserEvent.target;if(h instanceof Element&&!!h.closest(".action-widget"))return!0;return!1}_onMouseLeave(n){let h=this._editor.getDomNode();if(!h||!qs(h,n.x,n.y))this.hide()}startShowingAtRange(n,h,g,p){this._startShowingOrUpdateHover(new ph(0,n,void 0,void 0),h,g,p,null)}async updateHoverVerbosityLevel(n,h,g){this._renderedContentHover.value?.updateHoverVerbosityLevel(n,h,g)}focusedHoverPartIndex(){return this._renderedContentHover.value?.focusedHoverPartIndex??-1}containsNode(n){return n?this._contentHoverWidget.getDomNode().contains(n):!1}focus(){if(this._renderedContentHover.value?.hoverPartsCount===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(n){this._renderedContentHover.value?.focusHoverPartWithIndex(n)}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){return this._renderedContentHover.value?.isColorPickerVisible()??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};Up=$T([Kp(1,A),Kp(2,ge),Kp(3,On),Kp(4,wi)],Up);function D1(u){let n=u.target;return!!n&&n.type===6&&n.detail.injectedText?.options.attachedData===mv}var GT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Tv=function(u,n){return function(h,g){n(h,g,u)}},Rv,Io=class u extends i{static{Rv=this}static{this.ID="editor.contrib.contentHover"}constructor(n,h,g,p){super();this._editor=n,this._instantiationService=g,this._keybindingService=p,this._onHoverContentsChanged=this._register(new o),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new ke(()=>{if(this._mouseMoveEvent)this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(h.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(h.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((m)=>{if(m.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}static get(n){return n.getContribution(Rv.ID)}_hookListeners(){let n=this._editor.getOption(69);if(this._hoverSettings={enabled:n.enabled,sticky:n.sticky,hidingDelay:n.hidingDelay},n.enabled==="off")this._cancelSchedulerAndHide();this._listenersStore.add(this._editor.onMouseDown((h)=>this._onEditorMouseDown(h))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h))),this._listenersStore.add(this._editor.onMouseLeave((h)=>this._onEditorMouseLeave(h))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((h)=>this._onEditorScrollChanged(h)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(n){if(this._ignoreMouseEvents)return;if(n.scrollTopChanged||n.scrollLeftChanged)this.hideContentHover()}_onEditorMouseDown(n){if(this._ignoreMouseEvents)return;if(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(n))return;this.hideContentHover()}_shouldKeepHoverWidgetVisible(n){return this._isMouseOnContentHoverWidget(n)||this._isContentWidgetResizing()||D1(n)}_isMouseOnContentHoverWidget(n){if(!this._contentWidget||!this._contentWidget.getDomNode().isConnected)return!1;return qs(this._contentWidget.getDomNode(),n.event.posx,n.event.posy)}_onEditorMouseUp(){if(this._ignoreMouseEvents)return;this._isMouseDown=!1}_onEditorMouseLeave(n){if(this._ignoreMouseEvents)return;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(n))return;this.hideContentHover()}_shouldKeepCurrentHover(n){let h=this._contentWidget;if(!h)return!1;let g=this._hoverSettings.sticky,p=(E,R)=>{let Z=this._isMouseOnContentHoverWidget(E);return R&&Z},m=(E)=>{let R=h.isColorPickerVisible,Z=this._isMouseOnContentHoverWidget(E),X=R&&Z,Y=R&&this._isMouseDown;return X||Y},_=(E,R)=>{let Z=E.event.browserEvent.view;if(!Z)return!1;return R&&h.containsNode(Z.document.activeElement)&&!Z.getSelection()?.isCollapsed},{isFocused:v,isResizing:w}=h,C=this._hoverSettings.sticky&&h.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||v||w||C||p(n,g)||m(n)||_(n,g)}_onEditorMouseMove(n){if(this._ignoreMouseEvents)return;if(this._isMouseDown&&!this._shouldKeepHoverWidgetVisible(n)){this._cancelSchedulerAndHide();return}if(this._mouseMoveEvent=n,this._shouldKeepCurrentHover(n)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){if(!this._reactToEditorMouseMoveRunner.isScheduled())this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(n)}_shouldRescheduleHoverComputation(){let n=this._hoverSettings.hidingDelay;return(this._contentWidget?.isVisible??!1)&&this._hoverSettings.sticky&&n>0}_reactToEditorMouseMove(n){if(Np(this._hoverSettings.enabled,this._editor.getOption(86),n)){if(this._getOrCreateContentWidget().showsOrWillShow(n))return}this.hideContentHover()}_onKeyDown(n){if(this._ignoreMouseEvents||!this._contentWidget)return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&uh(this._editor.getOption(86),n)&&this._mouseMoveEvent){if(!this._contentWidget.isVisible)this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}let h=this._isPotentialKeyboardShortcut(n),g=Uh(n.keyCode);if(h||g)return;if(this._contentWidget.isFocused&&n.keyCode===2)return;this.hideContentHover()}_isPotentialKeyboardShortcut(n){if(!this._editor.hasModel()||!this._contentWidget)return!1;let h=this._keybindingService.softDispatch(n,this._editor.getDomNode()),g=h.kind===1,p=h.kind===2&&(h.commandId===fp||h.commandId===Ha||h.commandId===Ba)&&this._contentWidget.isVisible;return g||p}hideContentHover(){if(qr.dropDownVisible)return;this._contentWidget?.hide()}_getOrCreateContentWidget(){if(!this._contentWidget)this._contentWidget=this._instantiationService.createInstance(Up,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()));return this._contentWidget}showContentHover(n,h,g,p){this._getOrCreateContentWidget().startShowingAtRange(n,h,g,p)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(n,h,g){this._getOrCreateContentWidget().updateHoverVerbosityLevel(n,h,g)}focus(){this._contentWidget?.focus()}scrollUp(){this._contentWidget?.scrollUp()}scrollDown(){this._contentWidget?.scrollDown()}scrollLeft(){this._contentWidget?.scrollLeft()}scrollRight(){this._contentWidget?.scrollRight()}pageUp(){this._contentWidget?.pageUp()}pageDown(){this._contentWidget?.pageDown()}goToTop(){this._contentWidget?.goToTop()}goToBottom(){this._contentWidget?.goToBottom()}get isColorPickerVisible(){return this._contentWidget?.isColorPickerVisible}get isHoverVisible(){return this._contentWidget?.isVisible}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._contentWidget?.dispose()}};Io=Rv=GT([Tv(1,Qn),Tv(2,A),Tv(3,ge)],Io);var Jn;(function(u){u.NoAutoFocus="noAutoFocus",u.FocusIfVisible="focusIfVisible",u.AutoFocusImmediately="autoFocusImmediately"})(Jn||(Jn={}));class Nv extends U{constructor(){super({id:fp,label:b(1165,"Show or Focus Hover"),metadata:{description:b(1166,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[Jn.NoAutoFocus,Jn.FocusIfVisible,Jn.AutoFocusImmediately],enumDescriptions:[e(1162,"The hover will not automatically take focus."),e(1163,"The hover will take focus only if it is already visible."),e(1164,"The hover will automatically take focus when it appears.")],default:Jn.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:r.editorTextFocus,primary:un(2089,2087),weight:100}})}run(u,n,h){if(!n.hasModel())return;let g=Io.get(n);if(!g)return;let p=h?.focus,m=Jn.FocusIfVisible;if(Object.values(Jn).includes(p))m=p;else if(typeof p==="boolean"&&p)m=Jn.AutoFocusImmediately;let _=(w)=>{let C=n.getPosition(),E=new t(C.lineNumber,C.column,C.lineNumber,C.column);g.showContentHover(E,1,2,w)},v=n.getOption(2)===2;if(g.isHoverVisible)if(m!==Jn.NoAutoFocus)g.focus();else _(v);else _(v||m===Jn.AutoFocusImmediately)}}class Mv extends U{constructor(){super({id:t0,label:b(1167,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:b(1168,"Show the definition preview hover in the editor.")}})}run(u,n){let h=Io.get(n);if(!h)return;let g=n.getPosition();if(!g)return;let p=new t(g.lineNumber,g.column,g.lineNumber,g.column),m=ac.get(n);if(!m)return;m.startFindDefinitionFromCursor(g).then(()=>{h.showContentHover(p,1,2,!0)})}}class Ov extends U{constructor(){super({id:i0,label:b(1169,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(u,n){Io.get(n)?.hideContentHover()}}class Pv extends U{constructor(){super({id:o0,label:b(1170,"Scroll Up Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:16,weight:100},metadata:{description:b(1171,"Scroll up the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.scrollUp()}}class Av extends U{constructor(){super({id:n0,label:b(1172,"Scroll Down Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:18,weight:100},metadata:{description:b(1173,"Scroll down the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.scrollDown()}}class Fv extends U{constructor(){super({id:r0,label:b(1174,"Scroll Left Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:15,weight:100},metadata:{description:b(1175,"Scroll left the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.scrollLeft()}}class Hv extends U{constructor(){super({id:s0,label:b(1176,"Scroll Right Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:17,weight:100},metadata:{description:b(1177,"Scroll right the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.scrollRight()}}class Wv extends U{constructor(){super({id:a0,label:b(1178,"Page Up Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:b(1179,"Page up the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.pageUp()}}class Bv extends U{constructor(){super({id:d0,label:b(1180,"Page Down Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:b(1181,"Page down the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.pageDown()}}class Vv extends U{constructor(){super({id:c0,label:b(1182,"Go To Top Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:b(1183,"Go to the top of the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.goToTop()}}class zv extends U{constructor(){super({id:l0,label:b(1184,"Go To Bottom Hover"),precondition:r.hoverFocused,kbOpts:{kbExpr:r.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:b(1185,"Go to the bottom of the editor hover.")}})}run(u,n){let h=Io.get(n);if(!h)return;h.goToBottom()}}class Kv extends U{constructor(){super({id:Ha,label:h0,alias:"Increase Hover Verbosity Level",precondition:r.hoverVisible})}run(u,n,h){let g=Io.get(n);if(!g)return;let p=h?.index!==void 0?h.index:g.focusedHoverPartIndex();g.updateHoverVerbosityLevel(ps.Increase,p,h?.focus)}}class Uv extends U{constructor(){super({id:Ba,label:u0,alias:"Decrease Hover Verbosity Level",precondition:r.hoverVisible})}run(u,n,h){let g=Io.get(n);if(!g)return;let p=h?.index!==void 0?h.index:g.focusedHoverPartIndex();Io.get(n)?.updateHoverVerbosityLevel(ps.Decrease,p,h?.focus)}}var ZT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},wh=function(u,n){return function(h,g){n(h,g,u)}},_n=x;class fL{constructor(u,n,h){this.owner=u,this.range=n,this.marker=h}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}var mL={type:1,filter:{include:_t.QuickFix},triggerAction:fi.QuickFixHover},qp=class u{constructor(n,h,g,p,m,_){this._editor=n,this._markerDecorationsService=h,this._openerService=g,this._languageFeaturesService=p,this._menuService=m,this._contextKeyService=_,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(n,h){if(!this._editor.hasModel()||n.type!==1&&!n.supportsMarkerHover)return[];let g=this._editor.getModel(),p=n.range;if(!g.isValidRange(n.range))return[];let m=p.startLineNumber,_=g.getLineMaxColumn(m),v=[];for(let w of h){let C=w.range.startLineNumber===m?w.range.startColumn:1,E=w.range.endLineNumber===m?w.range.endColumn:_,R=this._markerDecorationsService.getMarker(g.uri,w);if(!R)continue;let Z=new t(n.range.startLineNumber,C,n.range.startLineNumber,E);v.push(new fL(this,Z,R))}return v}renderHoverParts(n,h){if(!h.length)return new $o([]);let g=[];h.forEach((_)=>{let v=this._renderMarkerHover(_);n.fragment.appendChild(v.hoverElement),g.push(v)});let p=h.length===1?h[0]:h.sort((_,v)=>rn.compare(_.marker.severity,v.marker.severity))[0],m=this._renderMarkerStatusbar(n,p);return new $o(g,m)}getAccessibleContent(n){let{marker:h}=n,g=Kn(h.relatedInformation)?h.relatedInformation.map((p)=>`${Oi(p.resource)}(${p.startLineNumber}, ${p.startColumn}): ${p.message}`).join(`
|
|
32
|
+
`):void 0;return[h.message,g].filter((p)=>!!p).join(`
|
|
33
|
+
`)}_renderMarkerHover(n){let h=new d,g=_n("div.hover-row"),p=k(g,_n("div.marker.hover-contents")),{source:m,message:_,code:v,relatedInformation:w}=n.marker;this._editor.applyFontInfo(p);let C=k(p,_n("span"));if(C.style.whiteSpace="pre-wrap",C.innerText=_,m||v)if(v&&typeof v!=="string"){let R=_n("span");if(m){let Q=k(R,_n("span"));Q.innerText=m}let Z=k(R,_n("a.code-link"));Z.setAttribute("href",v.target.toString(!0)),h.add(c(Z,"click",(Q)=>{this._openerService.open(v.target),Q.preventDefault(),Q.stopPropagation()}));let X=k(Z,_n("span"));X.innerText=v.value;let Y=k(p,R);Y.style.opacity="0.6",Y.style.paddingLeft="6px"}else{let R=k(p,_n("span"));R.style.opacity="0.6",R.style.paddingLeft="6px",R.innerText=m&&v?`${m}(${v})`:m?m:`(${v})`}if(Kn(w))for(let{message:R,resource:Z,startLineNumber:X,startColumn:Y}of w){let Q=k(p,_n("div"));Q.style.marginTop="8px";let te=k(Q,_n("a"));te.innerText=`${Oi(Z)}(${X}, ${Y}): `,te.style.cursor="pointer",h.add(c(te,"click",(le)=>{if(le.stopPropagation(),le.preventDefault(),this._openerService){let pe={selection:{startLineNumber:X,startColumn:Y}};this._openerService.open(Z,{fromUserGesture:!0,editorOptions:pe}).catch(ee)}}));let oe=k(Q,_n("span"));oe.innerText=R,this._editor.applyFontInfo(oe)}return{hoverPart:n,hoverElement:g,dispose:()=>h.dispose()}}_renderMarkerStatusbar(n,h){let g=new d;if(h.marker.severity===rn.Error||h.marker.severity===rn.Warning||h.marker.severity===rn.Info){let _=Es.get(this._editor);if(_)n.statusBar.addAction({label:e(1195,"View Problem"),commandId:Vr.ID,run:()=>{n.hide(),_.showAtMarker(h.marker),this._editor.focus()}})}let p=[];for(let[,_]of this._menuService.getMenuActions(l.MarkerHoverStatusBar,this._contextKeyService))for(let v of _)if(v instanceof Ki&&v.enabled)p.push(v);let m=()=>{for(let _ of p)n.statusBar.addAction({label:_.label,commandId:_.id,iconClass:_.class,run:()=>{n.hide(),this._editor.setSelection(t.lift(h.range)),_.run()}})};if(!this._editor.getOption(104)){let _=n.statusBar.append(_n("div"));if(this.recentMarkerCodeActionsInfo)if(y_.makeKey(this.recentMarkerCodeActionsInfo.marker)===y_.makeKey(h.marker)){if(!this.recentMarkerCodeActionsInfo.hasCodeActions){if(p.length===0)_.textContent=e(1196,"No quick fixes available")}}else this.recentMarkerCodeActionsInfo=void 0;let v=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?i.None:bi(()=>_.textContent=e(1197,"Checking for quick fixes..."),200,g);if(!_.textContent)_.textContent=String.fromCharCode(160);let w=this.getCodeActions(h.marker);g.add(N(()=>w.cancel())),w.then((C)=>{if(v.dispose(),this.recentMarkerCodeActionsInfo={marker:h.marker,hasCodeActions:C.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){if(C.dispose(),p.length===0)_.textContent=e(1198,"No quick fixes available");else _.style.display="none";m();return}_.style.display="none";let E=!1;g.add(N(()=>{if(!E)C.dispose()})),n.statusBar.addAction({label:e(1199,"Quick Fix..."),commandId:Rs,run:(Z)=>{E=!0;let X=vr.get(this._editor),Y=kt(Z);X?.showCodeActions(mL,C,{x:Y.left,y:Y.top,width:Y.width,height:Y.height})}});let R=C.validActions.find((Z)=>Z.action.isAI);if(R)n.statusBar.addAction({label:R.action.title,commandId:R.action.command?.id??"",iconClass:J.asClassName(S.sparkle),run:()=>{vr.get(this._editor)?.applyCodeAction(R,!1,!1,br.FromProblemsHover)}});else m();n.onContentsChanged()},ee)}else m();return g}getCodeActions(n){return Zt((h)=>Ws(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new t(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn),mL,Ja.None,h))}};qp=ZT([wh(1,vy),wh(2,Zo),wh(3,z),wh(4,Ai),wh(5,G)],qp);class qv{constructor(u){this._editor=u}computeSync(u){let n=(m)=>({value:m}),h=this._editor.getLineDecorations(u.lineNumber),g=[],p=u.laneOrLine==="lineNo";if(!h)return g;for(let m of h){let _=m.options.glyphMargin?.position??Qr.Center;if(!p&&_!==u.laneOrLine)continue;let v=p?m.options.lineNumberHoverMessage:m.options.glyphMarginHoverMessage;if(!v||ap(v))continue;g.push(...ny(v).map(n))}return g}}var XT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},YT=function(u,n){return function(h,g){n(h,g,u)}},jv,_L=x,jp=class u extends i{static{jv=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(n,h){super();this._markdownRendererService=h,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new d),this._editor=n,this._isVisible=!1,this._messages=[],this._hover=this._register(new zg(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new gh(this._editor,new qv(this._editor))),this._register(this._hoverOperation.onResult((g)=>this._withResult(g))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(59))this._updateFont()})),this._register(Ct(this._hover.containerDomNode,"mouseleave",(g)=>{this._onMouseLeave(g)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return jv.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((h)=>this._editor.applyFontInfo(h))}_onModelDecorationsChanged(){if(this._isVisible&&this._hoverComputerOptions)this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions)}showsOrWillShow(n){let h=n.target;if(h.type===2&&h.detail.glyphMarginLane)return this._startShowingAt(h.position.lineNumber,h.detail.glyphMarginLane),!0;if(h.type===3)return this._startShowingAt(h.position.lineNumber,"lineNo"),!0;return!1}_startShowingAt(n,h){if(this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===n&&this._hoverComputerOptions.laneOrLine===h)return;this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:n,laneOrLine:h},this._hoverOperation.start(0,this._hoverComputerOptions)}hide(){if(this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),!this._isVisible)return;this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible)}_withResult(n){if(this._messages=n.value,this._messages.length>0)this._renderMessages(n.options.lineNumber,n.options.laneOrLine,this._messages);else this.hide()}_renderMessages(n,h,g){this._renderDisposeables.clear();let p=document.createDocumentFragment();for(let m of g){let _=_L("div.hover-row.markdown-hover"),v=k(_,_L("div.hover-contents")),w=this._renderDisposeables.add(this._markdownRendererService.render(m.value,{context:this._editor}));v.appendChild(w.element),p.appendChild(_)}this._updateContents(p),this._showAt(n,h)}_updateContents(n){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(n),this._updateFont()}_showAt(n,h){if(!this._isVisible)this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible);let g=this._editor.getLayoutInfo(),p=this._editor.getTopForLineNumber(n),m=this._editor.getScrollTop(),_=this._editor.getOption(75),v=this._hover.containerDomNode.clientHeight,w=p-m-(v-_)/2,C=g.glyphMarginLeft+g.glyphMarginWidth+(h==="lineNo"?g.lineNumbersWidth:0),R=g.height-v,Z=Math.max(0,Math.min(Math.round(w),R));if(this._editor.getOption(51)){let Y=this._editor.getDomNode();if(Y){let Q=kt(Y);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${Q.left+C}px`,this._hover.containerDomNode.style.top=`${Q.top+Z}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${C}px`,this._hover.containerDomNode.style.top=`${Z}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(n){let h=this._editor.getDomNode();if(!h||!qs(h,n.x,n.y))this.hide()}};jp=jv=XT([YT(1,Bo)],jp);var JT=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},QT=function(u,n){return function(h,g){n(h,g,u)}},Sh=class u extends i{static{this.ID="editor.contrib.marginHover"}constructor(n,h){super();this._editor=n,this._instantiationService=h,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new ke(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}_hookListeners(){let n=this._editor.getOption(69);if(this._hoverSettings={enabled:n.enabled,sticky:n.sticky,hidingDelay:n.hidingDelay},n.enabled!=="off")this._listenersStore.add(this._editor.onMouseDown((h)=>this._onEditorMouseDown(h))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h)));else this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h)));this._listenersStore.add(this._editor.onMouseLeave((h)=>this._onEditorMouseLeave(h))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((h)=>this._onEditorScrollChanged(h)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(n){if(n.scrollTopChanged||n.scrollLeftChanged)this.hideGlyphHover()}_onEditorMouseDown(n){if(this._hoverState.mouseDown=!0,this._isMouseOnGlyphHoverWidget(n))return;this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(n){let h=this._glyphWidget?.getDomNode();if(h)return qs(h,n.event.posx,n.event.posy);return!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(n){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(n))return;this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(n){let h=this._hoverSettings.sticky,g=this._isMouseOnGlyphHoverWidget(n);return h&&g}_onEditorMouseMove(n){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=n,this._shouldNotRecomputeCurrentHoverWidget(n)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(n)}_reactToEditorMouseMove(n){if(!n)return;if(!Np(this._hoverSettings.enabled,this._editor.getOption(86),n)){this.hideGlyphHover();return}if(this._tryShowHoverWidget(n))return;this.hideGlyphHover()}_tryShowHoverWidget(n){return this._getOrCreateGlyphWidget().showsOrWillShow(n)}_onKeyDown(n){if(!this._editor.hasModel())return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&uh(this._editor.getOption(86),n)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}if(Uh(n.keyCode))return;this.hideGlyphHover()}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){if(!this._glyphWidget)this._glyphWidget=this._instantiationService.createInstance(jp,this._editor);return this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};Sh=JT([QT(1,A)],Sh);var Nc=new class u{constructor(){this._implementations=[]}register(n){return this._implementations.push(n),{dispose:()=>{let h=this._implementations.indexOf(n);if(h!==-1)this._implementations.splice(h,1)}}}getImplementations(){return this._implementations}};class $v{}class Gv{}class ew{}fe(Io.ID,Io,2);fe(Sh.ID,Sh,2);O(Nv);O(Mv);O(Ov);O(Pv);O(Av);O(Fv);O(Hv);O(Wv);O(Bv);O(Vv);O(zv);O(Kv);O(Uv);_l.register(Gs);_l.register(qp);Le.registerCommand(oh,(u)=>{u.get(re).updateValue("editor.hover.showLongLineWarning",!1)});Li((u,n)=>{let h=u.getColor(Hf);if(h)n.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${h.transparent(0.5)}; }`),n.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${h.transparent(0.5)}; }`),n.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${h.transparent(0.5)}; }`)});Nc.register(new $v);Nc.register(new Gv);Nc.register(new ew);class bL{constructor(u,n){this._link=u,this._provider=n}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(u){if(this._link.url)return this._link.url;if(typeof this._provider.resolveLink==="function")return Promise.resolve(this._provider.resolveLink(this._link,u)).then((n)=>{if(this._link=n||this._link,this._link.url)return this.resolve(u);return Promise.reject(Error("missing"))});return Promise.reject(Error("missing"))}}class Ch{static{this.Empty=new Ch([])}constructor(u){this._disposables=new d;let n=[];for(let[h,g]of u){let p=h.links.map((m)=>new bL(m,g));if(n=Ch._union(n,p),aa(h))this._disposables??=new d,this._disposables.add(h)}this.links=n}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(u,n){let h=[],g,p,m,_;for(g=0,m=0,p=u.length,_=n.length;g<p&&m<_;){let v=u[g],w=n[m];if(t.areIntersectingOrTouching(v.range,w.range)){g++;continue}if(t.compareRangesUsingStarts(v.range,w.range)<0)h.push(v),g++;else h.push(w),m++}for(;g<p;g++)h.push(u[g]);for(;m<_;m++)h.push(n[m]);return h}}async function tw(u,n,h){let g=[],p=u.ordered(n).reverse().map(async(_,v)=>{try{let w=await _.provideLinks(n,h);if(w)g[v]=[w,_]}catch(w){yt(w)}});await Promise.all(p);let m=new Ch(vo(g));if(h.isCancellationRequested)m.dispose(),m=Ch.Empty;return m}Le.registerCommand("_executeLinkProvider",async(u,...n)=>{let[h,g]=n;if(He(h instanceof q),typeof g!=="number")g=0;let{linkProvider:p}=u.get(z),m=u.get(Et).getModel(h);if(!m)return[];let _=await tw(p,m,we.None);if(!_)return[];for(let w=0;w<Math.min(g,_.links.length);w++)await _.links[w].resolve(we.None);let v=_.links.slice(0);return _.dispose(),v});var eR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},$p=function(u,n){return function(h,g){n(h,g,u)}},iw,yh=class u extends i{static{iw=this}static{this.ID="editor.linkDetector"}static get(n){return n.getContribution(iw.ID)}constructor(n,h,g,p,m){super();this.editor=n,this.openerService=h,this.notificationService=g,this.languageFeaturesService=p,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=m.for(this.providers,"Links",{min:1000,max:4000}),this.computeLinks=this._register(new ke(()=>this.computeLinksNow(),1000)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;let _=this._register(new Kr(n));this._register(_.onMouseMoveOrRelevantKeyDown(([v,w])=>{this._onEditorMouseMove(v,w)})),this._register(_.onExecute((v)=>{this.onEditorMouseUp(v)})),this._register(_.onCancel((v)=>{this.cleanUpActiveLinkDecoration()})),this._register(n.onDidChangeConfiguration((v)=>{if(!v.hasChanged(79))return;this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0)})),this._register(n.onDidChangeModelContent((v)=>{if(!this.editor.hasModel())return;this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(n.onDidChangeModel((v)=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(n.onDidChangeModelLanguage((v)=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange((v)=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;let n=this.editor.getModel();if(n.isTooLargeForSyncing())return;if(!this.providers.has(n))return;if(this.activeLinksList)this.activeLinksList.dispose(),this.activeLinksList=null;this.computePromise=Zt((h)=>tw(this.providers,n,h));try{let h=new dn(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(n,h.elapsed()),n.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(h){ee(h)}finally{this.computePromise=null}}updateDecorations(n){let h=this.editor.getOption(86)==="altKey",g=[],p=Object.keys(this.currentOccurrences);for(let _ of p){let v=this.currentOccurrences[_];g.push(v.decorationId)}let m=[];if(n)for(let _ of n)m.push(Mc.decoration(_,h));this.editor.changeDecorations((_)=>{let v=_.deltaDecorations(g,m);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let w=0,C=v.length;w<C;w++){let E=new Mc(n[w],v[w]);this.currentOccurrences[E.decorationId]=E}})}_onEditorMouseMove(n,h){let g=this.editor.getOption(86)==="altKey";if(this.isEnabled(n,h)){this.cleanUpActiveLinkDecoration();let p=this.getLinkOccurrence(n.target.position);if(p)this.editor.changeDecorations((m)=>{p.activate(m,g),this.activeLinkDecorationId=p.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){let n=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){let h=this.currentOccurrences[this.activeLinkDecorationId];if(h)this.editor.changeDecorations((g)=>{h.deactivate(g,n)});this.activeLinkDecorationId=null}}onEditorMouseUp(n){if(!this.isEnabled(n))return;let h=this.getLinkOccurrence(n.target.position);if(!h)return;this.openLinkOccurrence(h,n.hasSideBySideModifier,!0)}openLinkOccurrence(n,h,g=!1){if(!this.openerService)return;let{link:p}=n;p.resolve(we.None).then((m)=>{if(typeof m==="string"&&this.editor.hasModel()){let _=this.editor.getModel().uri;if(_.scheme===se.file&&m.startsWith(`${se.file}:`)){let v=q.parse(m);if(v.scheme===se.file){let w=md(v),C=null;if(w.startsWith("/./")||w.startsWith("\\.\\"))C=`.${w.substr(1)}`;else if(w.startsWith("//./")||w.startsWith("\\\\.\\"))C=`.${w.substr(2)}`;if(C)m=U1(_,C)}}}return this.openerService.open(m,{openToSide:h,fromUserGesture:g,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},(m)=>{let _=m instanceof Error?m.message:m;if(_==="invalid")this.notificationService.warn(e(1343,"Failed to open this link because it is not well-formed: {0}",p.url.toString()));else if(_==="missing")this.notificationService.warn(e(1344,"Failed to open this link because its target is missing."));else ee(m)})}getLinkOccurrence(n){if(!this.editor.hasModel()||!n)return null;let h=this.editor.getModel().getDecorationsInRange({startLineNumber:n.lineNumber,startColumn:n.column,endLineNumber:n.lineNumber,endColumn:n.column},0,!0);for(let g of h){let p=this.currentOccurrences[g.id];if(p)return p}return null}isEnabled(n,h){return Boolean(n.target.type===6&&(n.hasTriggerModifier||h&&h.keyCodeIsTriggerKey||n.isMiddleClick&&n.mouseMiddleClickAction==="openLink"))}stop(){if(this.computeLinks.cancel(),this.activeLinksList)this.activeLinksList?.dispose(),this.activeLinksList=null;if(this.computePromise)this.computePromise.cancel(),this.computePromise=null}dispose(){super.dispose(),this.stop()}};yh=iw=eR([$p(1,Zo),$p(2,wt),$p(3,z),$p(4,uo)],yh);var vL={general:ue.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:ue.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class Mc{static decoration(u,n){return{range:u.range,options:Mc._getOptions(u,n,!1)}}static _getOptions(u,n,h){let g={...h?vL.active:vL.general};return g.hoverMessage=tR(u,n),g}constructor(u,n){this.link=u,this.decorationId=n}activate(u,n){u.changeDecorationOptions(this.decorationId,Mc._getOptions(this.link,n,!0))}deactivate(u,n){u.changeDecorationOptions(this.decorationId,Mc._getOptions(this.link,n,!1))}}function tR(u,n){let h=u.url&&/^command:/i.test(u.url.toString()),g=u.tooltip?u.tooltip:h?e(1345,"Execute command"):e(1346,"Follow link"),p=n?ve?e(1347,"cmd + click"):e(1348,"ctrl + click"):ve?e(1349,"option + click"):e(1350,"alt + click");if(u.url){let m="";if(/^command:/i.test(u.url.toString())){let v=u.url.toString().match(/^command:([^?#]+)/);if(v){let w=v[1];m=e(1351,"Execute command {0}",w)}}return new Mn("",!0).appendLink(u.url.toString(!0).replace(/ /g,"%20"),g,m).appendMarkdown(` (${p})`)}else return new Mn().appendText(`${g} (${p})`)}class wL extends U{constructor(){super({id:"editor.action.openLink",label:b(1352,"Open Link"),precondition:void 0})}run(u,n){let h=yh.get(n);if(!h)return;if(!n.hasModel())return;let g=n.getSelections();for(let p of g){let m=h.getLinkOccurrence(p.getEndPosition());if(m)h.openLinkOccurrence(m,!1)}}}fe(yh.ID,yh,1);O(wL);var jr={Visible:new M("parameterHintsVisible",!1),MultipleSignatures:new M("parameterHintsMultipleSignatures",!1)};async function ow(u,n,h,g,p){let m=u.ordered(n);for(let _ of m)try{let v=await _.provideSignatureHelp(n,h,p,g);if(v)return v}catch(v){yt(v)}return}Le.registerCommand("_executeSignatureHelpProvider",async(u,...n)=>{let[h,g,p]=n;He(q.isUri(h)),He(s.isIPosition(g)),He(typeof p==="string"||!p);let m=u.get(z),_=await u.get(Dn).createModelReference(h);try{let v=await ow(m.signatureHelpProvider,_.object.textEditorModel,s.lift(g),{triggerKind:kl.Invoke,isRetrigger:!1,triggerCharacter:p},we.None);if(!v)return;return setTimeout(()=>v.dispose(),0),v.value}finally{_.dispose()}});var Zs;(function(u){u.Default={type:0};class n{constructor(g,p){this.request=g,this.previouslyActiveHints=p,this.type=2}}u.Pending=n;class h{constructor(g){this.hints=g,this.type=1}}u.Active=h})(Zs||(Zs={}));class Gp extends i{static{this.DEFAULT_DELAY=120}constructor(u,n,h=Gp.DEFAULT_DELAY){super();this._onChangedHints=this._register(new o),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Zs.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new de),this.triggerChars=new Nf,this.retriggerChars=new Nf,this.triggerId=0,this.editor=u,this.providers=n,this.throttledDelayer=this._register(new qi(h)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel((g)=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage((g)=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection((g)=>this.onCursorChange(g))),this._register(this.editor.onDidChangeModelContent((g)=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((g)=>this.onDidType(g))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(u){if(this._state.type===2)this._state.request.cancel();this._state=u}cancel(u=!1){if(this.state=Zs.Default,this.throttledDelayer.cancel(),!u)this._onChangedHints.fire(void 0)}trigger(u,n){let h=this.editor.getModel();if(!h||!this.providers.has(h))return;let g=++this.triggerId;this._pendingTriggers.push(u),this.throttledDelayer.trigger(()=>this.doTrigger(g),n).catch(ee)}next(){if(this.state.type!==1)return;let u=this.state.hints.signatures.length,n=this.state.hints.activeSignature,h=n%u===u-1,g=this.editor.getOption(98).cycle;if((u<2||h)&&!g){this.cancel();return}this.updateActiveSignature(h&&g?0:n+1)}previous(){if(this.state.type!==1)return;let u=this.state.hints.signatures.length,n=this.state.hints.activeSignature,h=n===0,g=this.editor.getOption(98).cycle;if((u<2||h)&&!g){this.cancel();return}this.updateActiveSignature(h&&g?u-1:n-1)}updateActiveSignature(u){if(this.state.type!==1)return;this.state=new Zs.Active({...this.state.hints,activeSignature:u}),this._onChangedHints.fire(this.state.hints)}async doTrigger(u){let n=this.state.type===1||this.state.type===2,h=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;let g=this._pendingTriggers.reduce(iR);this._pendingTriggers=[];let p={triggerKind:g.triggerKind,triggerCharacter:g.triggerCharacter,isRetrigger:n,activeSignatureHelp:h};if(!this.editor.hasModel())return!1;let m=this.editor.getModel(),_=this.editor.getPosition();this.state=new Zs.Pending(Zt((v)=>ow(this.providers,m,_,p,v)),h);try{let v=await this.state.request;if(u!==this.triggerId)return v?.dispose(),!1;if(!v||!v.value.signatures||v.value.signatures.length===0)return v?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1;else return this.state=new Zs.Active(v.value),this._lastSignatureHelpResult.value=v,this._onChangedHints.fire(this.state.hints),!0}catch(v){if(u===this.triggerId)this.state=Zs.Default;return ee(v),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();let u=this.editor.getModel();if(!u)return;for(let n of this.providers.ordered(u)){for(let h of n.signatureHelpTriggerCharacters||[])if(h.length){let g=h.charCodeAt(0);this.triggerChars.add(g),this.retriggerChars.add(g)}for(let h of n.signatureHelpRetriggerCharacters||[])if(h.length)this.retriggerChars.add(h.charCodeAt(0))}}onDidType(u){if(!this.triggerOnType)return;let n=u.length-1,h=u.charCodeAt(n);if(this.triggerChars.has(h)||this.isTriggered&&this.retriggerChars.has(h))this.trigger({triggerKind:kl.TriggerCharacter,triggerCharacter:u.charAt(n)})}onCursorChange(u){if(u.source==="mouse")this.cancel();else if(this.isTriggered)this.trigger({triggerKind:kl.ContentChange})}onModelContentChange(){if(this.isTriggered)this.trigger({triggerKind:kl.ContentChange})}onEditorConfigurationChange(){if(this.triggerOnType=this.editor.getOption(98).enabled,!this.triggerOnType)this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function iR(u,n){switch(n.triggerKind){case kl.Invoke:return n;case kl.ContentChange:return u;case kl.TriggerCharacter:default:return n}}var oR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},SL=function(u,n){return function(h,g){n(h,g,u)}},nw,Eo=x,nR=Pt("parameter-hints-next",S.chevronDown,e(1378,"Icon for show next parameter hint.")),rR=Pt("parameter-hints-previous",S.chevronUp,e(1379,"Icon for show previous parameter hint.")),Zp=class u extends i{static{nw=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(n,h,g,p){super();this.editor=n,this.model=h,this.markdownRendererService=p,this.renderDisposeables=this._register(new d),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=jr.Visible.bindTo(g),this.keyMultipleSignatures=jr.MultipleSignatures.bindTo(g)}createParameterHintDOMNodes(){let n=Eo(".editor-widget.parameter-hints-widget"),h=k(n,Eo(".phwrapper"));h.tabIndex=-1;let g=k(h,Eo(".controls")),p=k(g,Eo(".button"+J.asCSSSelector(rR))),m=k(g,Eo(".overloads")),_=k(g,Eo(".button"+J.asCSSSelector(nR)));this._register(c(p,"click",(Z)=>{Ee.stop(Z),this.previous()})),this._register(c(_,"click",(Z)=>{Ee.stop(Z),this.next()}));let v=Eo(".body"),w=new Al(v,{alwaysConsumeMouseWheel:!0});this._register(w),h.appendChild(w.getDomNode());let C=k(v,Eo(".signature")),E=k(v,Eo(".docs"));n.style.userSelect="text",this.domNodes={element:n,signature:C,overloads:m,docs:E,scrollbar:w},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((Z)=>{if(this.visible)this.editor.layoutContentWidget(this)}));let R=()=>{if(!this.domNodes)return;let Z=this.editor.getOption(59),X=this.domNodes.element;X.style.fontSize=`${Z.fontSize}px`,X.style.lineHeight=`${Z.lineHeight/Z.fontSize}`,X.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",Z.fontFamily),X.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",Do.fontFamily)};R(),this._register(I.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(Z)=>Z.filter((X)=>X.hasChanged(59)))(R)),this._register(this.editor.onDidLayoutChange((Z)=>this.updateMaxHeight())),this.updateMaxHeight()}show(){if(this.visible)return;if(!this.domNodes)this.createParameterHintDOMNodes();this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add("visible")},100),this.editor.layoutContentWidget(this)}hide(){if(this.renderDisposeables.clear(),!this.visible)return;this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove("visible"),this.editor.layoutContentWidget(this)}getPosition(){if(this.visible)return{position:this.editor.getPosition(),preference:[1,2]};return null}render(n){if(this.renderDisposeables.clear(),!this.domNodes)return;let h=n.signatures.length>1;this.domNodes.element.classList.toggle("multiple",h),this.keyMultipleSignatures.set(h),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";let g=n.signatures[n.activeSignature];if(!g)return;let p=k(this.domNodes.signature,Eo(".code")),m=g.parameters.length>0,_=g.activeParameter??n.activeParameter;if(!m){let C=k(p,Eo("span"));C.textContent=g.label}else this.renderParameters(p,g,_);let v=g.parameters[_];if(v?.documentation){let C=Eo("span.documentation");if(typeof v.documentation==="string")C.textContent=v.documentation;else{let E=this.renderMarkdownDocs(v.documentation);C.appendChild(E.element)}k(this.domNodes.docs,Eo("p",{},C))}if(g.documentation===void 0);else if(typeof g.documentation==="string")k(this.domNodes.docs,Eo("p",{},g.documentation));else{let C=this.renderMarkdownDocs(g.documentation);k(this.domNodes.docs,C.element)}let w=this.hasDocs(g,v);if(this.domNodes.signature.classList.toggle("has-docs",w),this.domNodes.docs.classList.toggle("empty",!w),this.domNodes.overloads.textContent=String(n.activeSignature+1).padStart(n.signatures.length.toString().length,"0")+"/"+n.signatures.length,v){let C="",E=g.parameters[_];if(Array.isArray(E.label))C=g.label.substring(E.label[0],E.label[1]);else C=E.label;if(E.documentation)C+=typeof E.documentation==="string"?`, ${E.documentation}`:`, ${E.documentation.value}`;if(g.documentation)C+=typeof g.documentation==="string"?`, ${g.documentation}`:`, ${g.documentation.value}`;if(this.announcedLabel!==C)Vn(e(1380,"{0}, hint",C)),this.announcedLabel=C}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(n){let h=this.renderDisposeables.add(this.markdownRendererService.render(n,{context:this.editor,asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));return h.element.classList.add("markdown-docs"),h}hasDocs(n,h){if(h&&typeof h.documentation==="string"&&dc(h.documentation).length>0)return!0;if(h&&typeof h.documentation==="object"&&dc(h.documentation).value.length>0)return!0;if(n.documentation&&typeof n.documentation==="string"&&dc(n.documentation).length>0)return!0;if(n.documentation&&typeof n.documentation==="object"&&dc(n.documentation.value).length>0)return!0;return!1}renderParameters(n,h,g){let[p,m]=this.getParameterLabelOffsets(h,g),_=document.createElement("span");_.textContent=h.label.substring(0,p);let v=document.createElement("span");v.textContent=h.label.substring(p,m),v.className="parameter active";let w=document.createElement("span");w.textContent=h.label.substring(m),k(n,_,v,w)}getParameterLabelOffsets(n,h){let g=n.parameters[h];if(!g)return[0,0];else if(Array.isArray(g.label))return g.label;else if(!g.label.length)return[0,0];else{let p=new RegExp(`(\\W|^)${Ui(g.label)}(?=\\W|$)`,"g");p.test(n.label);let m=p.lastIndex-g.label.length;return m>=0?[m,p.lastIndex]:[0,0]}}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){if(!this.domNodes)this.createParameterHintDOMNodes();return this.domNodes.element}getId(){return nw.ID}updateMaxHeight(){if(!this.domNodes)return;let h=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=h;let g=this.domNodes.element.getElementsByClassName("phwrapper");if(g.length)g[0].style.maxHeight=h}};Zp=nw=oR([SL(2,G),SL(3,Bo)],Zp);a("editorHoverWidget.highlightForeground",Bf,e(1381,"Foreground color of the active item in the parameter hint."));var sR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},CL=function(u,n){return function(h,g){n(h,g,u)}},rw,Oc=class u extends i{static{rw=this}static{this.ID="editor.controller.parameterHints"}static get(n){return n.getContribution(rw.ID)}constructor(n,h,g){super();this.editor=n,this.model=this._register(new Gp(n,g.signatureHelpProvider)),this._register(this.model.onChangedHints((p)=>{if(p)this.widget.value.show(),this.widget.value.render(p);else this.widget.rawValue?.hide()})),this.widget=new ii(()=>this._register(h.createInstance(Zp,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(n){this.model.trigger(n,0)}};Oc=rw=sR([CL(1,A),CL(2,z)],Oc);class yL extends U{constructor(){super({id:"editor.action.triggerParameterHints",label:b(1377,"Trigger Parameter Hints"),precondition:r.hasSignatureHelpProvider,kbOpts:{kbExpr:r.editorTextFocus,primary:3082,weight:100}})}run(u,n){Oc.get(n)?.trigger({triggerKind:kl.Invoke})}}fe(Oc.ID,Oc,2);O(yL);var sw=175,aw=tn.bindToContribution(Oc.get);K(new aw({id:"closeParameterHints",precondition:jr.Visible,handler:(u)=>u.cancel(),kbOpts:{weight:sw,kbExpr:r.focus,primary:9,secondary:[1033]}}));K(new aw({id:"showPrevParameterHint",precondition:L.and(jr.Visible,jr.MultipleSignatures),handler:(u)=>u.previous(),kbOpts:{weight:sw,kbExpr:r.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));K(new aw({id:"showNextParameterHint",precondition:L.and(jr.Visible,jr.MultipleSignatures),handler:(u)=>u.next(),kbOpts:{weight:sw,kbExpr:r.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var Fe={Visible:Qu,HasFocusedSuggestion:new M("suggestWidgetHasFocusedSuggestion",!1,e(1525,"Whether any suggestion is focused")),DetailsVisible:new M("suggestWidgetDetailsVisible",!1,e(1526,"Whether suggestion details are visible")),DetailsFocused:new M("suggestWidgetDetailsFocused",!1,e(1527,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new M("suggestWidgetMultipleSuggestions",!1,e(1528,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new M("suggestionMakesTextEdit",!0,e(1529,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new M("acceptSuggestionOnEnter",!0,e(1530,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new M("suggestionHasInsertAndReplaceRange",!1,e(1531,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new M("suggestionInsertMode",void 0,{type:"string",description:e(1532,"Whether the default behaviour is to insert or replace")}),CanResolve:new M("suggestionCanResolve",!1,e(1533,"Whether the current suggestion supports to resolve further details"))},er=new l("suggestWidgetStatusBar");class xL{constructor(u,n,h,g){if(this.position=u,this.completion=n,this.container=h,this.provider=g,this.isInvalid=!1,this.score=ts.Default,this.distance=0,this.textLabel=typeof n.label==="string"?n.label:n.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),this.extensionId=n.extensionId,t.isIRange(n.range))this.editStart=new s(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new s(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new s(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(n.range)||n.range.startLineNumber!==u.lineNumber;else this.editStart=new s(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new s(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new s(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(n.range.insert)||t.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==u.lineNumber||n.range.replace.startLineNumber!==u.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn;if(typeof g.resolveCompletionItem!=="function")this._resolveCache=Promise.resolve(),this._resolveDuration=0}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(u){if(!this._resolveCache){let n=u.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),h=new dn(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,u)).then((g)=>{Object.assign(this.completion,g),this._resolveDuration=h.elapsed()},(g)=>{if(gi(g))this._resolveCache=void 0,this._resolveDuration=void 0}).finally(()=>{n.dispose()})}return this._resolveCache}}class sd{static{this.default=new sd}constructor(u=2,n=new Set,h=new Set,g=new Map,p=!0){this.snippetSortOrder=u,this.kindFilter=n,this.providerFilter=h,this.providerItemsToReuse=g,this.showDeprecated=p}}class IL{constructor(u,n,h,g){this.items=u,this.needsClipboard=n,this.durations=h,this.disposable=g}}async function xh(u,n,h,g=sd.default,p={triggerKind:0},m=we.None){let _=new dn;h=h.clone();let v=n.getWordAtPosition(h),w=v?new t(h.lineNumber,v.startColumn,h.lineNumber,v.endColumn):t.fromPositions(h),C={replace:w,insert:w.setEndPosition(h.lineNumber,h.column)},E=[],R=new d,Z=[],X=!1,Y=(te,oe,le)=>{let pe=!1;if(!oe)return pe;for(let Se of oe.suggestions)if(!g.kindFilter.has(Se.kind)){if(!g.showDeprecated&&Se?.tags?.includes(1))continue;if(!Se.range)Se.range=C;if(!Se.sortText)Se.sortText=typeof Se.label==="string"?Se.label:Se.label.label;if(!X&&Se.insertTextRules&&Se.insertTextRules&4)X=go.guessNeedsClipboard(Se.insertText);E.push(new xL(h,Se,oe,te)),pe=!0}if(aa(oe))R.add(oe);return Z.push({providerName:te._debugDisplayName??"unknown_provider",elapsedProvider:oe.duration??-1,elapsedOverall:le.elapsed()}),pe},Q=(async()=>{return})();for(let te of u.orderedGroups(n)){let oe=!1;if(await Promise.all(te.map(async(le)=>{if(g.providerItemsToReuse.has(le)){let pe=g.providerItemsToReuse.get(le);pe.forEach((Se)=>E.push(Se)),oe=oe||pe.length>0;return}if(g.providerFilter.size>0&&!g.providerFilter.has(le))return;try{let pe=new dn,Se=await le.provideCompletionItems(n,h,p,m);oe=Y(le,Se,pe)||oe}catch(pe){yt(pe)}})),oe||m.isCancellationRequested)break}if(await Q,m.isCancellationRequested)return R.dispose(),Promise.reject(new Tr);return new IL(E.sort(MR(g.snippetSortOrder)),X,{entries:Z,elapsed:_.elapsed()},R)}function dw(u,n){if(u.sortTextLow&&n.sortTextLow){if(u.sortTextLow<n.sortTextLow)return-1;else if(u.sortTextLow>n.sortTextLow)return 1}if(u.textLabel<n.textLabel)return-1;else if(u.textLabel>n.textLabel)return 1;return u.completion.kind-n.completion.kind}function aR(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return-1;else if(n.completion.kind===28)return 1}return dw(u,n)}function DR(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return 1;else if(n.completion.kind===28)return-1}return dw(u,n)}var Xp=new Map;Xp.set(0,aR);Xp.set(2,DR);Xp.set(1,dw);function MR(u){return Xp.get(u)}Le.registerCommand("_executeCompletionItemProvider",async(u,...n)=>{let[h,g,p,m]=n;He(q.isUri(h)),He(s.isIPosition(g)),He(typeof p==="string"||!p),He(typeof m==="number"||!m);let{completionProvider:_}=u.get(z),v=await u.get(Dn).createModelReference(h);try{let w={incomplete:!1,suggestions:[]},C=[],E=v.object.textEditorModel.validatePosition(g),R=await xh(_,v.object.textEditorModel,E,void 0,{triggerCharacter:p??void 0,triggerKind:p?1:0});for(let Z of R.items){if(C.length<(m??0))C.push(Z.resolve(we.None));w.incomplete=w.incomplete||Z.container.incomplete,w.suggestions.push(Z.completion)}try{return await Promise.all(C),w}finally{setTimeout(()=>R.disposable.dispose(),100)}}finally{v.dispose()}});function LL(u,n){u.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(n),void 0,!0)}class Gr{static isAllOff(u){return u.other==="off"&&u.comments==="off"&&u.strings==="off"}static isAllOn(u){return u.other==="on"&&u.comments==="on"&&u.strings==="on"}static valueFor(u,n){switch(n){case 1:return u.comments;case 2:return u.strings;default:return u.other}}}function cw(u,n=nn){if(B2(u,n))return u.charAt(0).toUpperCase()+u.slice(1);return u}var OR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},PR=function(u,n){return function(h,g){n(h,g,u)}};class Yp{constructor(u){this._delegates=u}resolve(u){for(let n of this._delegates){let h=n.resolve(u);if(h!==void 0)return h}return}}class Jp{constructor(u,n,h,g){this._model=u,this._selection=n,this._selectionIdx=h,this._overtypingCapturer=g}resolve(u){let{name:n}=u;if(n==="SELECTION"||n==="TM_SELECTED_TEXT"){let h=this._model.getValueInRange(this._selection)||void 0,g=this._selection.startLineNumber!==this._selection.endLineNumber;if(!h&&this._overtypingCapturer){let p=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);if(p)h=p.value,g=p.multiline}if(h&&g&&u.snippet){let p=this._model.getLineContent(this._selection.startLineNumber),m=Rt(p,0,this._selection.startColumn-1),_=m;u.snippet.walk((w)=>{if(w===u)return!1;if(w instanceof pi)_=Rt(Ci(w.value).pop());return!0});let v=No(_,m);h=h.replace(/(\r\n|\r|\n)(.*)/g,(w,C,E)=>`${C}${_.substr(v)}${E}`)}return h}else if(n==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);else if(n==="TM_CURRENT_WORD"){let h=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return h&&h.word||void 0}else if(n==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);else if(n==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);else if(n==="CURSOR_INDEX")return String(this._selectionIdx);else if(n==="CURSOR_NUMBER")return String(this._selectionIdx+1);return}}class Qp{constructor(u,n){this._labelService=u,this._model=n}resolve(u){let{name:n}=u;if(n==="TM_FILENAME")return Sl(this._model.uri.fsPath);else if(n==="TM_FILENAME_BASE"){let h=Sl(this._model.uri.fsPath),g=h.lastIndexOf(".");if(g<=0)return h;else return h.slice(0,g)}else if(n==="TM_DIRECTORY"){if(sy(this._model.uri.fsPath)===".")return"";return this._labelService.getUriLabel(If(this._model.uri))}else if(n==="TM_DIRECTORY_BASE"){if(sy(this._model.uri.fsPath)===".")return"";return Sl(sy(this._model.uri.fsPath))}else if(n==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);else if(n==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0});return}}class im{constructor(u,n,h,g){this._readClipboardText=u,this._selectionIdx=n,this._selectionCount=h,this._spread=g}resolve(u){if(u.name!=="CLIPBOARD")return;let n=this._readClipboardText();if(!n)return;if(this._spread){let h=n.split(/\r\n|\n|\r/).filter((g)=>!j1(g));if(h.length===this._selectionCount)return h[this._selectionIdx]}return n}}var Ih=class u{constructor(n,h,g){this._model=n,this._selection=h,this._languageConfigurationService=g}resolve(n){let{name:h}=n,g=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),p=this._languageConfigurationService.getLanguageConfiguration(g).comments;if(!p)return;if(h==="LINE_COMMENT")return p.lineCommentToken||void 0;else if(h==="BLOCK_COMMENT_START")return p.blockCommentStartToken||void 0;else if(h==="BLOCK_COMMENT_END")return p.blockCommentEndToken||void 0;return}};Ih=OR([PR(2,ht)],Ih);class Xs{constructor(){this._date=new Date}static{this.dayNames=[e(1476,"Sunday"),e(1477,"Monday"),e(1478,"Tuesday"),e(1479,"Wednesday"),e(1480,"Thursday"),e(1481,"Friday"),e(1482,"Saturday")]}static{this.dayNamesShort=[e(1483,"Sun"),e(1484,"Mon"),e(1485,"Tue"),e(1486,"Wed"),e(1487,"Thu"),e(1488,"Fri"),e(1489,"Sat")]}static{this.monthNames=[e(1490,"January"),e(1491,"February"),e(1492,"March"),e(1493,"April"),e(1494,"May"),e(1495,"June"),e(1496,"July"),e(1497,"August"),e(1498,"September"),e(1499,"October"),e(1500,"November"),e(1501,"December")]}static{this.monthNamesShort=[e(1502,"Jan"),e(1503,"Feb"),e(1504,"Mar"),e(1505,"Apr"),e(1506,"May"),e(1507,"Jun"),e(1508,"Jul"),e(1509,"Aug"),e(1510,"Sep"),e(1511,"Oct"),e(1512,"Nov"),e(1513,"Dec")]}resolve(u){let{name:n}=u;switch(n){case"CURRENT_YEAR":return String(this._date.getFullYear());case"CURRENT_YEAR_SHORT":return String(this._date.getFullYear()).slice(-2);case"CURRENT_MONTH":return String(this._date.getMonth().valueOf()+1).padStart(2,"0");case"CURRENT_DATE":return String(this._date.getDate().valueOf()).padStart(2,"0");case"CURRENT_HOUR":return String(this._date.getHours().valueOf()).padStart(2,"0");case"CURRENT_MINUTE":return String(this._date.getMinutes().valueOf()).padStart(2,"0");case"CURRENT_SECOND":return String(this._date.getSeconds().valueOf()).padStart(2,"0");case"CURRENT_MILLISECOND":return String(this._date.getMilliseconds().valueOf()).padStart(3,"0");case"CURRENT_DAY_NAME":return Xs.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return Xs.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return Xs.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return Xs.monthNamesShort[this._date.getMonth()];case"CURRENT_SECONDS_UNIX":return String(Math.floor(this._date.getTime()/1000));case"CURRENT_MILLISECONDS_UNIX":return String(this._date.getTime());case"CURRENT_TIMEZONE_OFFSET":{let h=this._date.getTimezoneOffset(),g=h>0?"-":"+",p=Math.trunc(Math.abs(h/60)),m=p<10?"0"+p:p,_=Math.abs(h)-p*60,v=_<10?"0"+_:_;return g+m+":"+v}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}return}}class om{constructor(u){this._workspaceService=u}resolve(u){if(!this._workspaceService)return;let n=xP(this._workspaceService.getWorkspace());if(wP(n))return;if(u.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(n);else if(u.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(n);return}_resolveWorkspaceName(u){if(Ek(u))return Sl(u.uri.path);let n=Sl(u.configPath.path);if(n.endsWith(Tk))n=n.substr(0,n.length-Tk.length-1);return n}_resoveWorkspacePath(u){if(Ek(u))return cw(u.uri.fsPath);let n=Sl(u.configPath.path),h=u.configPath.fsPath;if(h.endsWith(n))h=h.substr(0,h.length-n.length-1);return h?cw(h):"/"}}class nm{resolve(u){let{name:n}=u;if(n==="RANDOM")return Math.random().toString().slice(-6);else if(n==="RANDOM_HEX")return Math.random().toString(16).slice(-6);else if(n==="UUID")return Ol();return}}var FR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},HR=function(u,n){return function(h,g){n(h,g,u)}},tr;class wn{static{this._decor={active:ue.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:ue.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:ue.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:ue.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(u,n,h){this._editor=u,this._snippet=n,this._snippetLineLeadingWhitespace=h,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=fR(n.placeholders,co.compareByIndex),this._placeholderGroupsIdx=-1}initialize(u){this._offset=u.newPosition}dispose(){if(this._placeholderDecorations)this._editor.removeDecorations([...this._placeholderDecorations.values()]);this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;let u=this._editor.getModel();this._editor.changeDecorations((n)=>{for(let h of this._snippet.placeholders){let g=this._snippet.offset(h),p=this._snippet.fullLen(h),m=t.fromPositions(u.getPositionAt(this._offset+g),u.getPositionAt(this._offset+g+p)),_=h.isFinalTabstop?wn._decor.inactiveFinal:wn._decor.inactive,v=n.addDecoration(m,_);this._placeholderDecorations.set(h,v)}})}move(u){if(!this._editor.hasModel())return[];this._initDecorations();let n=this._editor.getModel();if(this._placeholderGroupsIdx>=0){let p=[];for(let m of this._placeholderGroups[this._placeholderGroupsIdx])if(m.transform){let _=this._placeholderDecorations.get(m),v=_?n.getDecorationRange(_):null;if(v){let w=n.getValueInRange(v),C=m.transform.resolve(w).split(/\r\n|\r|\n/);for(let E=1;E<C.length;E++)C[E]=n.normalizeIndentation(this._snippetLineLeadingWhitespace+C[E]);p.push(Yt.replace(v,C.join(n.getEOL())))}}if(p.length>0)this._editor.executeEdits("snippet.placeholderTransform",p)}let h=!1;if(u===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1)this._placeholderGroupsIdx+=1,h=!0;else if(u===!1&&this._placeholderGroupsIdx>0)this._placeholderGroupsIdx-=1,h=!0;let g=n.changeDecorations((p)=>{let m=new Set,_=[];for(let v of this._placeholderGroups[this._placeholderGroupsIdx]){let w=this._placeholderDecorations.get(v),C=w?n.getDecorationRange(w):null;if(h=h&&this._hasPlaceholderBeenCollapsed(v),!w||!C)continue;_.push(new F(C.startLineNumber,C.startColumn,C.endLineNumber,C.endColumn)),p.changeDecorationOptions(w,v.isFinalTabstop?wn._decor.activeFinal:wn._decor.active),m.add(v);for(let E of this._snippet.enclosingPlaceholders(v)){let R=this._placeholderDecorations.get(E);if(R)p.changeDecorationOptions(R,E.isFinalTabstop?wn._decor.activeFinal:wn._decor.active),m.add(E)}}for(let[v,w]of this._placeholderDecorations)if(!m.has(v))p.changeDecorationOptions(w,v.isFinalTabstop?wn._decor.inactiveFinal:wn._decor.inactive);return _});return!h?g??[]:this.move(u)}_hasPlaceholderBeenCollapsed(u){let n=this._editor.getModel(),h=u;while(h){if(h instanceof co){let g=this._placeholderDecorations.get(h),p=g?n.getDecorationRange(g):null;if((!p||p.isEmpty())&&h.toString().length>0)return!0}h=h.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){let[u]=this._snippet.placeholders;if(u.isFinalTabstop){if(this._snippet.rightMostDescendant===u)return!0}}return!1}computePossibleSelections(){let u=new Map;for(let n of this._placeholderGroups){let h;for(let g of n){if(g.isFinalTabstop)break;if(!h)h=[],u.set(g.index,h);let p=this._placeholderDecorations.get(g),m=this._editor.getModel().getDecorationRange(p);if(!m){u.delete(g.index);break}h.push(m)}}return u}get activeChoice(){if(!this._placeholderDecorations)return;let u=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!u?.choice)return;let n=this._placeholderDecorations.get(u);if(!n)return;let h=this._editor.getModel().getDecorationRange(n);if(!h)return;return{range:h,choice:u.choice}}get hasChoice(){let u=!1;return this._snippet.walk((n)=>(u=n instanceof La,!u)),u}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(u){let n=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((h)=>{for(let g of this._placeholderGroups[this._placeholderGroupsIdx]){let p=u.shift();console.assert(p._offset!==-1),console.assert(!p._placeholderDecorations);let m=p._snippet.placeholderInfo.last.index;for(let v of p._snippet.placeholderInfo.all)if(v.isFinalTabstop)v.index=g.index+(m+1)/this._nestingLevel;else v.index=g.index+v.index/this._nestingLevel;this._snippet.replace(g,p._snippet.children);let _=this._placeholderDecorations.get(g);h.removeDecoration(_),this._placeholderDecorations.delete(g);for(let v of p._snippet.placeholders){let w=p._snippet.offset(v),C=p._snippet.fullLen(v),E=t.fromPositions(n.getPositionAt(p._offset+w),n.getPositionAt(p._offset+w+C)),R=h.addDecoration(E,wn._decor.inactive);this._placeholderDecorations.set(v,R)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=fR(this._snippet.placeholders,co.compareByIndex)})}_renormalizePlaceholderIndices(){let u=this._snippet.placeholders,n=new Set;for(let p of u)if(!p.isFinalTabstop)n.add(p.index);let h=[...n].sort((p,m)=>p-m),g=new Map;for(let p=0;p<h.length;p++)g.set(h[p],p+1);for(let p of u)if(!p.isFinalTabstop)p.index=g.get(p.index);this._nestingLevel=1}}var kL={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Pc=tr=class u{static adjustWhitespace(n,h,g,p,m){let _=n.getLineContent(h.lineNumber),v=Rt(_,0,h.column-1),w;return p.walk((C)=>{if(!(C instanceof pi)||C.parent instanceof La)return!0;if(m&&!m.has(C))return!0;let E=C.value.split(/\r\n|\r|\n/);if(g){let Z=p.offset(C);if(Z===0)E[0]=n.normalizeIndentation(E[0]);else{w=w??p.toString();let X=w.charCodeAt(Z-1);if(X===10||X===13)E[0]=n.normalizeIndentation(v+E[0])}for(let X=1;X<E.length;X++)E[X]=n.normalizeIndentation(v+E[X])}let R=E.join(n.getEOL());if(R!==C.value)C.parent.replace(C,[new pi(R)]),w=void 0;return!0}),v}static adjustSelection(n,h,g,p){if(g!==0||p!==0){let{positionLineNumber:m,positionColumn:_}=h,v=_-g,w=_+p,C=n.validateRange({startLineNumber:m,startColumn:v,endLineNumber:m,endColumn:w});h=F.createWithDirection(C.startLineNumber,C.startColumn,C.endLineNumber,C.endColumn,h.getDirection())}return h}static createEditsAndSnippetsFromSelections(n,h,g,p,m,_,v,w,C){let E=[],R=[];if(!n.hasModel())return{edits:E,snippets:R};let Z=n.getModel(),X=n.invokeWithinContext((Se)=>Se.get(va)),Y=n.invokeWithinContext((Se)=>new Qp(Se.get(Tc),Z)),Q=()=>v,te=Z.getValueInRange(tr.adjustSelection(Z,n.getSelection(),g,0)),oe=Z.getValueInRange(tr.adjustSelection(Z,n.getSelection(),0,p)),le=Z.getLineFirstNonWhitespaceColumn(n.getSelection().positionLineNumber),pe=n.getSelections().map((Se,Ce)=>({selection:Se,idx:Ce})).sort((Se,Ce)=>t.compareRangesUsingStarts(Se.selection,Ce.selection));for(let{selection:Se,idx:Ce}of pe){let ae=tr.adjustSelection(Z,Se,g,0),me=tr.adjustSelection(Z,Se,0,p);if(te!==Z.getValueInRange(ae))ae=Se;if(oe!==Z.getValueInRange(me))me=Se;let Ne=Se.setStartPosition(ae.startLineNumber,ae.startColumn).setEndPosition(me.endLineNumber,me.endColumn),Me=new go().parse(h,!0,m),Oe=Ne.getStartPosition(),ye=tr.adjustWhitespace(Z,Oe,_||Ce>0&&le!==Z.getLineFirstNonWhitespaceColumn(Se.positionLineNumber),Me);Me.resolveVariables(new Yp([Y,new im(Q,Ce,pe.length,n.getOption(88)==="spread"),new Jp(Z,Se,Ce,w),new Ih(Z,Se,C),new Xs,new om(X),new nm])),E[Ce]=Yt.replace(Ne,Me.toString()),E[Ce].identifier={major:Ce,minor:0},E[Ce]._isTracked=!0,R[Ce]=new wn(n,Me,ye)}return{edits:E,snippets:R}}static createEditsAndSnippetsFromEdits(n,h,g,p,m,_,v){if(!n.hasModel()||h.length===0)return{edits:[],snippets:[]};let w=[],C=n.getModel(),E=new go,R=new Pd,Z=n.invokeWithinContext((Se)=>new Qp(Se.get(Tc),C)),X=new Xs,Y=new om(n.invokeWithinContext((Se)=>Se.get(va))),Q=new nm,te=()=>m,oe=n.getOption(88)==="spread",le=h.map((Se,Ce)=>({edit:Se,idx:Ce})).sort((Se,Ce)=>t.compareRangesUsingStarts(Se.edit.range,Ce.edit.range)),pe=0;for(let Se=0;Se<le.length;Se++){let{edit:{range:Ce,template:ae,keepWhitespace:me},idx:Ne}=le[Se];if(Se>0){let Ze=le[Se-1].edit.range,Ft=t.fromPositions(Ze.getEndPosition(),Ce.getStartPosition()),nt=new pi(C.getValueInRange(Ft));R.appendChild(nt),pe+=nt.value.length}let Me=new Set;R.walk((Ze)=>{if(Ze instanceof ls)Me.add(Ze);return!0});let Oe=E.parseFragment(ae,R);tr.adjustWhitespace(C,Ce.getStartPosition(),me!==void 0?!me:p,R,new Set(Oe));let ye=F.fromRange(Ce,0),Pe=new Yp([Z,new im(te,Ne,le.length,oe),new Jp(C,ye,Ne,_),new Ih(C,ye,v),X,Y,Q]);R.walk((Ze)=>{if(Ze instanceof ls&&!Me.has(Ze))Ze.resolve(Pe);return!0});let it=R.toString(),Ve=it.slice(pe);pe=it.length;let rt=Yt.replace(Ce,Ve);rt.identifier={major:Se,minor:0},rt._isTracked=!0,w.push(rt)}return E.ensureFinalTabstop(R,g,!0),{edits:w,snippets:[new wn(n,R,"")]}}constructor(n,h,g=kL,p){this._editor=n,this._template=h,this._options=g,this._languageConfigurationService=p,this._templateMerges=[],this._snippets=[]}dispose(){ze(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(n){if(!this._editor.hasModel())return;let{edits:h,snippets:g}=typeof this._template==="string"?tr.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):tr.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=g,this._editor.executeEdits(n??Xn.snippet(),h,(p)=>{let m=p.filter((_)=>!!_.identifier);for(let _=0;_<g.length;_++)g[_].initialize(m[_].textChange);if(this._snippets[0].hasPlaceholder)return this._move(!0);else return m.map((_)=>F.fromPositions(_.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(n,h=kL){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,n]);let{edits:g,snippets:p}=tr.createEditsAndSnippetsFromSelections(this._editor,n,h.overwriteBefore,h.overwriteAfter,!0,h.adjustWhitespace,h.clipboardText,h.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",g,(m)=>{let _=m.filter((C)=>!!C.identifier);for(let C=0;C<p.length;C++)p[C].initialize(_[C].textChange);let v=p[0].isTrivialSnippet,w=p.length===this._snippets.reduce((C,E)=>C+E.activePlaceholderCount,0);if(!v&&w){for(let C of this._snippets)C.merge(p);console.assert(p.length===0)}if(this._snippets[0].hasPlaceholder&&!v&&w)return this._move(void 0);else return _.map((C)=>F.fromPositions(C.range.getEndPosition()))})}next(){let n=this._move(!0);if(n.length>0)this._editor.setSelections(n),this._editor.revealPositionInCenterIfOutsideViewport(n[0].getPosition())}prev(){let n=this._move(!1);if(n.length>0)this._editor.setSelections(n),this._editor.revealPositionInCenterIfOutsideViewport(n[0].getPosition())}_move(n){let h=[];for(let g of this._snippets){let p=g.move(n);h.push(...p)}return h}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;let n=this._editor.getSelections();if(n.length<this._snippets.length)return!1;let h=new Map;for(let g of this._snippets){let p=g.computePossibleSelections();if(h.size===0)for(let[m,_]of p){_.sort(t.compareRangesUsingStarts);for(let v of n)if(_[0].containsRange(v)){h.set(m,[]);break}}if(h.size===0)return!1;h.forEach((m,_)=>{m.push(...p.get(_))})}n.sort(t.compareRangesUsingStarts);for(let[g,p]of h){if(p.length!==n.length){h.delete(g);continue}p.sort(t.compareRangesUsingStarts);for(let m=0;m<p.length;m++)if(!p[m].containsRange(n[m])){h.delete(g);continue}}return h.size>0}};Pc=tr=FR([HR(3,ht)],Pc);var WR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rm=function(u,n){return function(h,g){n(h,g,u)}},ad,EL={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},zt=class u{static{ad=this}static{this.ID="snippetController2"}static get(n){return n.getContribution(ad.ID)}static{this.InSnippetMode=new M("inSnippetMode",!1,e(1471,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new M("hasNextTabstop",!1,e(1472,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new M("hasPrevTabstop",!1,e(1473,"Whether there is a previous tab stop when in snippet mode"))}static{this.InSnippetChoice=new M("inSnippetChoice",!1,e(1474,"Whether the current snippet tab stop is a choice"))}constructor(n,h,g,p,m){this._editor=n,this._logService=h,this._languageFeaturesService=g,this._languageConfigurationService=m,this._inSnippetObservable=j(this,!1),this._snippetListener=new d,this._modelVersionId=-1,this._inSnippet=ad.InSnippetMode.bindTo(p),this._hasNextTabstop=ad.HasNextTabstop.bindTo(p),this._hasPrevTabstop=ad.HasPrevTabstop.bindTo(p),this._inSnippetChoice=ad.InSnippetChoice.bindTo(p)}dispose(){this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(n,h){try{this._doInsert(n,typeof h>"u"?EL:{...EL,...h})}catch(g){this.cancel(),this._logService.error(g),this._logService.error("snippet_error"),this._logService.error("insert_template=",n),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(n,h){if(!this._editor.hasModel())return;if(this._snippetListener.clear(),h.undoStopBefore)this._editor.getModel().pushStackElement();if(this._session&&typeof n!=="string")this.cancel();if(!this._session)this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new Pc(this._editor,n,h,this._languageConfigurationService),this._session.insert(h.reason);else He(typeof n==="string"),this._session.merge(n,h);if(h.undoStopAfter)this._editor.getModel().pushStackElement();if(this._session?.hasChoice){let g={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(C,E)=>{if(!this._session||C!==this._editor.getModel()||!s.equals(this._editor.getPosition(),E))return;let{activeChoice:R}=this._session;if(!R||R.choice.options.length===0)return;let Z=C.getValueInRange(R.range),X=Boolean(R.choice.options.find((Q)=>Q.value===Z)),Y=[];for(let Q=0;Q<R.choice.options.length;Q++){let te=R.choice.options[Q];Y.push({kind:13,label:te.value,insertText:te.value,sortText:"a".repeat(Q+1),range:R.range,filterText:X?`${Z}_${te.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:e(1475,"Go to next placeholder...")}})}return{suggestions:Y}}},p=this._editor.getModel(),m,_=!1,v=()=>{m?.dispose(),_=!1},w=()=>{if(!_)m=this._languageFeaturesService.completionProvider.register({language:p.getLanguageId(),pattern:p.uri.fsPath,scheme:p.uri.scheme,exclusive:!0},g),this._snippetListener.add(m),_=!0};this._choiceCompletions={provider:g,enable:w,disable:v}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((g)=>g.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}_updateState(){if(!this._session||!this._editor.hasModel())return;if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._inSnippetObservable.set(!0,void 0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0,this._inSnippetChoice.reset();return}let{activeChoice:n}=this._session;if(!n||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}if(this._inSnippetChoice.set(!0),this._currentChoice!==n.choice)this._currentChoice=n.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{LL(this._editor,this._choiceCompletions.provider)})}finish(){while(this._inSnippet.get())this.next()}cancel(n=!1){if(this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,n)this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}get isInSnippetObservable(){return this._inSnippetObservable}};zt=ad=WR([rm(1,Ye),rm(2,z),rm(3,G),rm(4,ht)],zt);fe(zt.ID,zt,4);var sm=tn.bindToContribution(zt.get);K(new sm({id:"jumpToNextSnippetPlaceholder",precondition:L.and(zt.InSnippetMode,zt.HasNextTabstop),handler:(u)=>u.next(),kbOpts:{weight:130,kbExpr:r.textInputFocus,primary:2}}));K(new sm({id:"jumpToPrevSnippetPlaceholder",precondition:L.and(zt.InSnippetMode,zt.HasPrevTabstop),handler:(u)=>u.prev(),kbOpts:{weight:130,kbExpr:r.textInputFocus,primary:1026}}));Nn.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:L.and(zt.InSnippetMode,zt.HasPrevTabstop,zt.InSnippetChoice,r.textInputFocus),primary:1026});K(new sm({id:"leaveSnippet",precondition:zt.InSnippetMode,handler:(u)=>u.cancel(!0),kbOpts:{weight:130,kbExpr:r.textInputFocus,primary:9,secondary:[1033]}}));K(new sm({id:"acceptSnippet",precondition:zt.InSnippetMode,handler:(u)=>u.finish()}));class am{constructor(u,n){this.leadingLineContent=u,this.characterCountDelta=n}}class Sr{constructor(u,n,h,g,p,m,_=Ly.default,v=void 0){if(this.clipboardText=v,this._snippetCompareFn=Sr._compareCompletionItems,this._items=u,this._column=n,this._wordDistance=g,this._options=p,this._refilterKind=1,this._lineContext=h,this._fuzzyScoreOptions=_,m==="top")this._snippetCompareFn=Sr._compareCompletionItemsSnippetsUp;else if(m==="bottom")this._snippetCompareFn=Sr._compareCompletionItemsSnippetsDown}get lineContext(){return this._lineContext}set lineContext(u){if(this._lineContext.leadingLineContent!==u.leadingLineContent||this._lineContext.characterCountDelta!==u.characterCountDelta)this._refilterKind=this._lineContext.characterCountDelta<u.characterCountDelta&&this._filteredItems?2:1,this._lineContext=u}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let u=new Set;for(let[n,h]of this.getItemsByProvider())if(h.length>0&&h[0].container.incomplete)u.add(n);return u}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){if(this._refilterKind!==0)this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let u=[],{leadingLineContent:n,characterCountDelta:h}=this._lineContext,g="",p="",m=this._refilterKind===1?this._items:this._filteredItems,_=[],v=!this._options.filterGraceful||m.length>2000?Sd:mP;for(let w=0;w<m.length;w++){let C=m[w];if(C.isInvalid)continue;let E=this._itemsByProvider.get(C.provider);if(E)E.push(C);else this._itemsByProvider.set(C.provider,[C]);let R=C.position.column-C.editStart.column,Z=R+h-(C.position.column-this._column);if(g.length!==Z)g=Z===0?"":n.slice(-Z),p=g.toLowerCase();if(C.word=g,Z===0)C.score=ts.Default;else{let X=0;while(X<R){let Y=g.charCodeAt(X);if(Y===32||Y===9)X+=1;else break}if(X>=Z)C.score=ts.Default;else if(typeof C.completion.filterText==="string"){let Y=v(g,p,X,C.completion.filterText,C.filterTextLow,0,this._fuzzyScoreOptions);if(!Y)continue;if(O0(C.completion.filterText,C.textLabel)===0)C.score=Y;else C.score=fP(g,p,X,C.textLabel,C.labelLow,0),C.score[0]=Y[0]}else{let Y=v(g,p,X,C.textLabel,C.labelLow,0,this._fuzzyScoreOptions);if(!Y)continue;C.score=Y}}C.idx=w,C.distance=this._wordDistance.distance(C.position,C.completion),_.push(C),u.push(C.textLabel.length)}this._filteredItems=_.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:u.length?N1(u.length-0.85,u,(w,C)=>w-C):0}}static _compareCompletionItems(u,n){if(u.score[0]>n.score[0])return-1;else if(u.score[0]<n.score[0])return 1;else if(u.distance<n.distance)return-1;else if(u.distance>n.distance)return 1;else if(u.idx<n.idx)return-1;else if(u.idx>n.idx)return 1;else return 0}static _compareCompletionItemsSnippetsDown(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return 1;else if(n.completion.kind===28)return-1}return Sr._compareCompletionItems(u,n)}static _compareCompletionItemsSnippetsUp(u,n){if(u.completion.kind!==n.completion.kind){if(u.completion.kind===28)return-1;else if(n.completion.kind===28)return 1}return Sr._compareCompletionItems(u,n)}}var BR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},DL=function(u,n){return function(h,g){n(h,g,u)}},Lh;class dm{constructor(u){this.name=u}select(u,n,h){if(h.length===0)return 0;let g=h[0].score[0];for(let p=0;p<h.length;p++){let{score:m,completion:_}=h[p];if(m[0]!==g)break;if(_.preselect)return p}return 0}}class lw extends dm{constructor(){super("first")}memorize(u,n,h){}toJSON(){return}fromJSON(){}}class TL extends dm{constructor(){super("recentlyUsed");this._cache=new Ji(300,0.66),this._seq=0}memorize(u,n,h){let g=`${u.getLanguageId()}/${h.textLabel}`;this._cache.set(g,{touch:this._seq++,type:h.completion.kind,insertText:h.completion.insertText})}select(u,n,h){if(h.length===0)return 0;let g=u.getLineContent(n.lineNumber).substr(n.column-10,n.column-1);if(/\s$/.test(g))return super.select(u,n,h);let p=h[0].score[0],m=-1,_=-1,v=-1;for(let w=0;w<h.length;w++){if(h[w].score[0]!==p)break;let C=`${u.getLanguageId()}/${h[w].textLabel}`,E=this._cache.peek(C);if(E&&E.touch>v&&E.type===h[w].completion.kind&&E.insertText===h[w].completion.insertText)v=E.touch,_=w;if(h[w].completion.preselect&&m===-1)return m=w}if(_!==-1)return _;else if(m!==-1)return m;else return 0}toJSON(){return this._cache.toJSON()}fromJSON(u){this._cache.clear();let n=0;for(let[h,g]of u)g.touch=n,g.type=typeof g.type==="number"?g.type:qh.fromString(g.type),this._cache.set(h,g);this._seq=this._cache.size}}class RL extends dm{constructor(){super("recentlyUsedByPrefix");this._trie=Kf.forStrings(),this._seq=0}memorize(u,n,h){let{word:g}=u.getWordUntilPosition(n),p=`${u.getLanguageId()}/${g}`;this._trie.set(p,{type:h.completion.kind,insertText:h.completion.insertText,touch:this._seq++})}select(u,n,h){let{word:g}=u.getWordUntilPosition(n);if(!g)return super.select(u,n,h);let p=`${u.getLanguageId()}/${g}`,m=this._trie.get(p);if(!m)m=this._trie.findSubstr(p);if(m)for(let _=0;_<h.length;_++){let{kind:v,insertText:w}=h[_].completion;if(v===m.type&&w===m.insertText)return _}return super.select(u,n,h)}toJSON(){let u=[];return this._trie.forEach((n,h)=>u.push([h,n])),u.sort((n,h)=>-(n[1].touch-h[1].touch)).forEach((n,h)=>n[1].touch=h),u.slice(0,200)}fromJSON(u){if(this._trie.clear(),u.length>0){this._seq=u[0][1].touch+1;for(let[n,h]of u)h.type=typeof h.type==="number"?h.type:qh.fromString(h.type),this._trie.set(n,h)}}}var hw=class u{static{Lh=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",RL],["recentlyUsed",TL],["first",lw]])}static{this._storagePrefix="suggest/memories"}constructor(n,h){this._storageService=n,this._configService=h,this._disposables=new d,this._persistSoon=new ke(()=>this._saveState(),500),this._disposables.add(n.onWillSaveState((g)=>{if(g.reason===kc.SHUTDOWN)this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(n,h,g){this._withStrategy(n,h).memorize(n,h,g),this._persistSoon.schedule()}select(n,h,g){return this._withStrategy(n,h).select(n,h,g)}_withStrategy(n,h){let g=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:n.getLanguageIdAtPosition(h.lineNumber,h.column),resource:n.uri});if(this._strategy?.name!==g){this._saveState();let p=Lh._strategyCtors.get(g)||lw;this._strategy=new p;try{let _=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,v=this._storageService.get(`${Lh._storagePrefix}/${g}`,_);if(v)this._strategy.fromJSON(JSON.parse(v))}catch(m){}}return this._strategy}_saveState(){if(this._strategy){let h=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,g=JSON.stringify(this._strategy);this._storageService.store(`${Lh._storagePrefix}/${this._strategy.name}`,g,h,1)}}};hw=Lh=BR([DL(0,Pn),DL(1,re)],hw);var Ac=ie("ISuggestMemories");_e(Ac,hw,1);var NL;function cm(u){return NL?.(u)??null}function ML(u){NL=u}class dt{static{this.inlineSuggestionVisible=new M("inlineSuggestionVisible",!1,e(1249,"Whether an inline suggestion is visible"))}static{this.inlineSuggestionAlternativeActionVisible=new M("inlineSuggestionAlternativeActionVisible",!1,e(1250,"Whether an alternative action for the inline suggestion is visible."))}static{this.inlineSuggestionHasIndentation=new M("inlineSuggestionHasIndentation",!1,e(1251,"Whether the inline suggestion starts with whitespace"))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new M("inlineSuggestionHasIndentationLessThanTabSize",!0,e(1252,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab"))}static{this.suppressSuggestions=new M("inlineSuggestionSuppressSuggestions",void 0,e(1253,"Whether suggestions should be suppressed for the current suggestion"))}static{this.cursorBeforeGhostText=new M("cursorBeforeGhostText",!1,e(1254,"Whether the cursor is at ghost text"))}static{this.cursorInIndentation=new M("cursorInIndentation",!1,e(1255,"Whether the cursor is in indentation"))}static{this.hasSelection=new M("editor.hasSelection",!1,e(1256,"Whether the editor has a selection"))}static{this.cursorAtInlineEdit=new M("cursorAtInlineEdit",!1,e(1257,"Whether the cursor is at an inline edit"))}static{this.inlineEditVisible=new M("inlineEditIsVisible",!1,e(1258,"Whether an inline edit is visible"))}static{this.tabShouldJumpToInlineEdit=new M("tabShouldJumpToInlineEdit",!1,e(1259,"Whether tab should jump to an inline edit."))}static{this.tabShouldAcceptInlineEdit=new M("tabShouldAcceptInlineEdit",!1,e(1260,"Whether tab should accept the inline edit."))}static{this.inInlineEditsPreviewEditor=new M("inInlineEditsPreviewEditor",!0,e(1261,"Whether the current code editor is showing an inline edits preview"))}}class yn{static{this.None=new class extends yn{distance(){return 0}}}static async create(u,n){if(!n.getOption(134).localityBonus)return yn.None;if(!n.hasModel())return yn.None;let h=n.getModel(),g=n.getPosition();if(!u.canComputeWordRanges(h.uri))return yn.None;let[p]=await new ko().provideSelectionRanges(h,[g]);if(p.length===0)return yn.None;let m=await u.computeWordRanges(h.uri,p[0].range);if(!m)return yn.None;let _=h.getWordUntilPosition(g);return delete m[_.word],new class extends yn{distance(v,w){if(!g.equals(n.getPosition()))return 0;if(w.kind===17)return 2097152;let C=typeof w.label==="string"?w.label:w.label.label,E=m[C];if(A1(E))return 2097152;let R=bg(E,t.fromPositions(v),t.compareRangesUsingStarts),Z=R>=0?E[R]:E[Math.max(0,~R-1)],X=p.length;for(let Y of p){if(!t.containsRange(Y.range,Z))break;X-=1}return X}}}}var VR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ys=function(u,n){return function(h,g){n(h,g,u)}},uw;class Js{static shouldAutoTrigger(u){if(!u.hasModel())return!1;let n=u.getModel(),h=u.getPosition();n.tokenization.tokenizeIfCheap(h.lineNumber);let g=n.getWordAtPosition(h);if(!g)return!1;if(g.endColumn!==h.column&&g.startColumn+1!==h.column)return!1;if(!isNaN(Number(g.word)))return!1;return!0}constructor(u,n,h){this.leadingLineContent=u.getLineContent(n.lineNumber).substr(0,n.column-1),this.leadingWord=u.getWordUntilPosition(n),this.lineNumber=n.lineNumber,this.column=n.column,this.triggerOptions=h}}function zR(u,n,h){if(!Boolean(n.getContextKeyValue(dt.inlineSuggestionVisible.key)))return!0;let g=n.getContextKeyValue(dt.suppressSuggestions.key);if(g!==void 0)return!g;return!u.getOption(71).suppressSuggestions}function KR(u,n,h){if(!Boolean(n.getContextKeyValue("inlineSuggestionVisible")))return!0;let g=n.getContextKeyValue(dt.suppressSuggestions.key);if(g!==void 0)return!g;return!u.getOption(71).suppressSuggestions}var Fc=uw=class u{constructor(n,h,g,p,m,_,v,w,C){this._editor=n,this._editorWorkerService=h,this._clipboardService=g,this._telemetryService=p,this._logService=m,this._contextKeyService=_,this._configurationService=v,this._languageFeaturesService=w,this._envService=C,this._toDispose=new d,this._triggerCharacterListener=new d,this._triggerQuickSuggest=new di,this._triggerState=void 0,this._completionDisposables=new d,this._onDidCancel=new o,this._onDidTrigger=new o,this._onDidSuggest=new o,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new F(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let E=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{E=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{E=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection((R)=>{if(!E)this._onCursorChange(R)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{if(!E&&this._triggerState!==void 0)this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){ze(this._triggerCharacterListener),ze([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._waitForInlineCompletions?.dispose(),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(104)||!this._editor.hasModel()||!this._editor.getOption(137))return;let n=new Map;for(let g of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let p of g.triggerCharacters||[]){let m=n.get(p);if(!m)m=new Set,n.set(p,m);m.add(g)}let h=(g)=>{if(!KR(this._editor,this._contextKeyService,this._configurationService))return;if(Js.shouldAutoTrigger(this._editor))return;if(!g){let _=this._editor.getPosition();g=this._editor.getModel().getLineContent(_.lineNumber).substr(0,_.column-1)}let p="";if(pc(g.charCodeAt(g.length-1))){if(In(g.charCodeAt(g.length-2)))p=g.substr(g.length-2)}else p=g.charAt(g.length-1);let m=n.get(p);if(m){let _=new Map;if(this._completionModel){for(let[v,w]of this._completionModel.getItemsByProvider())if(!m.has(v))_.set(v,w)}this.trigger({auto:!0,triggerKind:1,triggerCharacter:p,retrigger:Boolean(this._completionModel),clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:m,providerItemsToReuse:_}})}};this._triggerCharacterListener.add(this._editor.onDidType(h)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>h()))}get state(){if(!this._triggerState)return 0;else if(!this._triggerState.auto)return 1;else return 2}cancel(n=!1){if(this._triggerQuickSuggest.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerState!==void 0)this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:n})}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){if(this._triggerState!==void 0)if(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel()))this.cancel();else this.trigger({auto:this._triggerState.auto,retrigger:!0})}_onCursorChange(n){if(!this._editor.hasModel())return;let h=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!n.selection.isEmpty()||n.reason!==0&&n.reason!==3||n.source!=="keyboard"&&n.source!=="deleteLeft"){this.cancel();return}if(this._triggerState===void 0&&n.reason===0){if(h.containsRange(this._currentSelection)||h.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))this._doTriggerQuickSuggest()}else if(this._triggerState!==void 0&&n.reason===3)this._refilterCompletionItems()}_onCompositionEnd(){if(this._triggerState===void 0)this._doTriggerQuickSuggest();else this._refilterCompletionItems()}_doTriggerQuickSuggest(){if(Gr.isAllOff(this._editor.getOption(102)))return;if(this._editor.getOption(134).snippetsPreventQuickSuggestions&&zt.get(this._editor)?.isInSnippet())return;this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0)return;if(!Js.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let n=this._editor.getModel(),h=this._editor.getPosition(),g=this._editor.getOption(102);if(Gr.isAllOff(g))return;let p=!1;if(!Gr.isAllOn(g)){n.tokenization.tokenizeIfCheap(h.lineNumber);let m=n.tokenization.getLineTokens(h.lineNumber),_=m.getStandardTokenType(m.findTokenIndexAtOffset(Math.max(h.column-1-1,0))),v=Gr.valueFor(g,_);if(v==="off"||v==="inline")return;if(v==="offWhenInlineCompletions")p=this._languageFeaturesService.inlineCompletionsProvider.has(n)&&this._editor.getOption(71).enabled}if(!zR(this._editor,this._contextKeyService,this._configurationService))return;if(!this._languageFeaturesService.completionProvider.has(n))return;if(p)this._waitForInlineCompletionsAndTrigger(n,h);else this.trigger({auto:!0})},this._editor.getOption(103))}_waitForInlineCompletionsAndTrigger(n,h){let g=n.getVersionId(),p=cm(this._editor),m=p?.model.get();if(!p||!m){this.trigger({auto:!0});return}if(m.state.get()?.inlineSuggestion)return;let v=new d;this._waitForInlineCompletions=v;let w=(C)=>{if(v.dispose(),this._waitForInlineCompletions===v)this._waitForInlineCompletions=void 0;if(this._triggerState!==void 0)return;if(!C)return;let E=this._editor.getModel(),R=this._editor.getPosition();if(E===n&&E.getVersionId()===g&&R?.equals(h)&&this._editor.hasWidgetFocus())this.trigger({auto:!0})};bi(()=>{w(!0),m.stop("automatic")},750,v),M2(v,(C)=>{if(p.model.read(C)!==m){C.dispose(),w(!1);return}let R=m.status.read(C),Z=m.state.read(C);if(!Z&&R==="loading")return;C.dispose(),w(!Z)})}_refilterCompletionItems(){He(this._editor.hasModel()),He(this._triggerState!==void 0);let n=this._editor.getModel(),h=this._editor.getPosition(),g=new Js(n,h,{...this._triggerState,refilter:!0});this._onNewContext(g)}trigger(n){if(!this._editor.hasModel())return;let h=this._editor.getModel(),g=new Js(h,this._editor.getPosition(),n);this.cancel(n.retrigger),this._triggerState=n,this._onDidTrigger.fire({auto:n.auto,shy:n.shy??!1,position:this._editor.getPosition()}),this._context=g;let p={triggerKind:n.triggerKind??0};if(n.triggerCharacter)p={triggerKind:1,triggerCharacter:n.triggerCharacter};this._requestToken=new qe;let m=this._editor.getOption(128),_=1;switch(m){case"top":_=0;break;case"bottom":_=2;break}let{itemKind:v,showDeprecated:w}=uw.createSuggestFilter(this._editor),C=new sd(_,n.completionOptions?.kindFilter??v,n.completionOptions?.providerFilter,n.completionOptions?.providerItemsToReuse,w),E=yn.create(this._editorWorkerService,this._editor),R=xh(this._languageFeaturesService.completionProvider,h,this._editor.getPosition(),C,p,this._requestToken.token);Promise.all([R,E]).then(async([Z,X])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){Z.disposable.dispose();return}let Y=n?.clipboardText;if(!Y&&Z.needsClipboard)Y=await this._clipboardService.readText();if(this._triggerState===void 0){Z.disposable.dispose();return}let Q=this._editor.getModel(),te=new Js(Q,this._editor.getPosition(),n),oe={...Ly.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new Sr(Z.items,this._context.column,{leadingLineContent:te.leadingLineContent,characterCountDelta:te.column-this._context.column},X,this._editor.getOption(134),this._editor.getOption(128),oe,Y),this._completionDisposables.add(Z.disposable),this._onNewContext(te),this._reportDurationsTelemetry(Z.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment){for(let le of Z.items)if(le.isInvalid)this._logService.warn(`[suggest] did IGNORE invalid completion item from ${le.provider._debugDisplayName}`,le.completion)}}).catch(ee)}_reportDurationsTelemetry(n){if(Math.random()>0.0001)return;setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(n)}),this._logService.debug("suggest.durations.json",n)})}static createSuggestFilter(n){let h=new Set;if(n.getOption(128)==="none")h.add(28);let p=n.getOption(134);if(!p.showMethods)h.add(0);if(!p.showFunctions)h.add(1);if(!p.showConstructors)h.add(2);if(!p.showFields)h.add(3);if(!p.showVariables)h.add(4);if(!p.showClasses)h.add(5);if(!p.showStructs)h.add(6);if(!p.showInterfaces)h.add(7);if(!p.showModules)h.add(8);if(!p.showProperties)h.add(9);if(!p.showEvents)h.add(10);if(!p.showOperators)h.add(11);if(!p.showUnits)h.add(12);if(!p.showValues)h.add(13);if(!p.showConstants)h.add(14);if(!p.showEnums)h.add(15);if(!p.showEnumMembers)h.add(16);if(!p.showKeywords)h.add(17);if(!p.showWords)h.add(18);if(!p.showColors)h.add(19);if(!p.showFiles)h.add(20);if(!p.showReferences)h.add(21);if(!p.showColors)h.add(22);if(!p.showFolders)h.add(23);if(!p.showTypeParameters)h.add(24);if(!p.showSnippets)h.add(28);if(!p.showUsers)h.add(25);if(!p.showIssues)h.add(26);return{itemKind:h,showDeprecated:p.showDeprecated}}_onNewContext(n){if(!this._context)return;if(n.lineNumber!==this._context.lineNumber){this.cancel();return}if(Rt(n.leadingLineContent)!==Rt(this._context.leadingLineContent)){this.cancel();return}if(n.column<this._context.column){if(n.leadingWord.word)this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});else this.cancel();return}if(!this._completionModel)return;if(n.leadingWord.word.length!==0&&n.leadingWord.startColumn>this._context.leadingWord.startColumn){if(Js.shouldAutoTrigger(this._editor)&&this._context){let g=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:g}})}return}if(n.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&n.leadingWord.word.length!==0){let h=new Map,g=new Set;for(let[p,m]of this._completionModel.getItemsByProvider())if(m.length>0&&m[0].container.incomplete)g.add(p);else h.set(p,m);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:g,providerItemsToReuse:h}})}else{let h=this._completionModel.lineContext,g=!1;if(this._completionModel.lineContext={leadingLineContent:n.leadingLineContent,characterCountDelta:n.column-this._context.column},this._completionModel.items.length===0){let p=Js.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(p&&this._context.leadingWord.endColumn<n.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(!this._context.triggerOptions.auto){if(this._completionModel.lineContext=h,g=this._completionModel.items.length>0,g&&n.leadingWord.word.length===0){this.cancel();return}}else{this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:n.triggerOptions,isFrozen:g})}}};Fc=uw=VR([Ys(1,Mi),Ys(2,wi),Ys(3,Wn),Ys(4,Ye),Ys(5,G),Ys(6,re),Ys(7,z),Ys(8,Iy)],Fc);var OL=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},kh=function(u,n){return function(h,g){n(h,g,u)}};class PL{constructor(u,n,h,g,p,m,_){this.range=u,this.insertText=n,this.filterText=h,this.additionalTextEdits=g,this.command=p,this.gutterMenuLinkAction=m,this.completion=_,this.doNotLog=!0}}var gw=class u extends mR{constructor(n,h,g,p,m,_){super(m.disposable);this.model=n,this.line=h,this.word=g,this.completionModel=p,this._suggestMemoryService=_}canBeReused(n,h,g){return this.model===n&&this.line===h&&this.word.word.length>0&&this.word.startColumn===g.startColumn&&this.word.endColumn<g.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){let n=[],{items:h}=this.completionModel,g=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},h),p=Re.slice(h,g),m=Re.slice(h,0,g),_=5;for(let v of Re.concat(p,m)){if(v.score===ts.Default)continue;let w=new t(v.editStart.lineNumber,v.editStart.column,v.editInsertEnd.lineNumber,v.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),C=v.completion.insertTextRules&&v.completion.insertTextRules&4?{snippet:v.completion.insertText}:v.completion.insertText;if(n.push(new PL(w,C,v.filterTextLow??v.labelLow,v.completion.additionalTextEdits,v.completion.command,v.completion.action,v)),_-->=0)v.resolve(we.None)}return n}};gw=OL([kh(5,Ac)],gw);var pw=class u extends i{constructor(n,h,g,p){super();this._languageFeatureService=n,this._clipboardService=h,this._suggestMemoryService=g,this._editorService=p,this._store.add(n.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(n,h,g,p){if(g.selectedSuggestionInfo)return;let m;for(let X of this._editorService.listCodeEditors())if(X.getModel()===n){m=X;break}if(!m)return;let _=m.getOption(102);if(Gr.isAllOff(_))return;n.tokenization.tokenizeIfCheap(h.lineNumber);let v=n.tokenization.getLineTokens(h.lineNumber),w=v.getStandardTokenType(v.findTokenIndexAtOffset(Math.max(h.column-1-1,0)));if(Gr.valueFor(_,w)!=="inline")return;let C=n.getWordAtPosition(h),E;if(!C?.word)E=this._getTriggerCharacterInfo(n,h);if(!C?.word&&!E)return;if(!C)C=n.getWordUntilPosition(h);if(C.endColumn!==h.column)return;let R,Z=n.getValueInRange(new t(h.lineNumber,1,h.lineNumber,h.column));if(!E&&this._lastResult?.canBeReused(n,h.lineNumber,C)){let X=new am(Z,h.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=X,this._lastResult.acquire(),R=this._lastResult}else{let X=await xh(this._languageFeatureService.completionProvider,n,h,new sd(void 0,Fc.createSuggestFilter(m).itemKind,E?.providers),E&&{triggerKind:1,triggerCharacter:E.ch},p),Y;if(X.needsClipboard)Y=await this._clipboardService.readText();let Q=new Sr(X.items,h.column,new am(Z,0),yn.None,m.getOption(134),m.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},Y);R=new gw(n,h.lineNumber,C,Q,X,this._suggestMemoryService)}return this._lastResult=R,R}handleItemDidShow(n,h){h.completion.resolve(we.None)}disposeInlineCompletions(n){n.release()}_getTriggerCharacterInfo(n,h){let g=n.getValueInRange(t.fromPositions({lineNumber:h.lineNumber,column:h.column-1},h)),p=new Set;for(let m of this._languageFeatureService.completionProvider.all(n))if(m.triggerCharacters?.includes(g))p.add(m);if(p.size===0)return;return{providers:p,ch:g}}};pw=OL([kh(0,z),kh(1,wi),kh(2,Ac),kh(3,Te)],pw);Fl(pw);var UR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},qR=function(u,n){return function(h,g){n(h,g,u)}};function FL(u){if(u instanceof mw)return u._instance;return u}class mw{constructor(u){this.instantiationService=u}init(...u){}}function HL(u){return u.get()}var AL=class u extends mw{constructor(n,h){super(h);this.init(n)}};AL=UR([qR(1,A)],AL);class cd{validateOrThrow(u){let n=this.validate(u);if(n.error)throw Error(n.error.message);return n.content}}class Eh extends cd{constructor(u){super();this.type=u}validate(u){if(typeof u!==this.type)return{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof u}`}};return{content:u,error:void 0}}getJSONSchema(){return{type:this.type}}}var jR=new Eh("string");function WL(){return jR}new Eh("number");var GR=new Eh("boolean");function fw(){return GR}new Eh("object");class BL extends cd{validate(u){return{content:u,error:void 0}}getJSONSchema(){return{}}}function VL(){return new BL}class _w extends cd{validate(u){if(u!==void 0)return{content:void 0,error:{message:`Expected undefined, but got ${typeof u}`}};return{content:void 0,error:void 0}}getJSONSchema(){return{}}}function zL(){return new _w}class lm{constructor(u){this.validator=u}}function Dh(u){return new lm(u)}class KL extends cd{constructor(u){super();this.properties=u}validate(u){if(typeof u!=="object"||u===null)return{content:void 0,error:{message:"Expected object"}};let n={};for(let h in this.properties){let g=this.properties[h],p=u[h],m=g instanceof lm,_=m?g.validator:g;if(m&&p===void 0)continue;let{content:v,error:w}=_.validate(p);if(w)return{content:void 0,error:{message:`Error in property '${h}': ${w.message}`}};n[h]=v}return{content:n,error:void 0}}getJSONSchema(){let u=[],n={};for(let[g,p]of Object.entries(this.properties)){let m=p instanceof lm,_=m?p.validator:p;if(n[g]=_.getJSONSchema(),!m)u.push(g)}return{type:"object",properties:n,...u.length>0?{required:u}:{}}}}function UL(u){return new KL(u)}class qL extends cd{constructor(u){super();this.validators=u}validate(u){let n;for(let h of this.validators){let{content:g,error:p}=h.validate(u);if(!p)return{content:g,error:void 0};n=p}return{content:void 0,error:n}}getJSONSchema(){return{oneOf:S2(this.validators,(u)=>{if(u instanceof _w)return;return u.getJSONSchema()})}}}function jL(...u){return new qL(u)}class $L extends cd{constructor(u,n){super();this._ref=u,this._validator=n}validate(u){return this._validator.validate(u)}getJSONSchema(){return{$ref:this._ref}}}function GL(u,n){return new $L(u,n)}var ZR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ZL=function(u,n){return function(h,g){n(h,g,u)}};function XL(u){return u.sourceId+" @@ "+JSON.stringify({...u,modelUri:u.modelUri?.toString(),sourceId:void 0})}var Hc=class u extends i{static cast(){return this}constructor(n,h,g){super();this._key=n,this._contextKeyService=h,this._dataChannelService=g,this._isEnabledContextKeyValue=XR("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map((p)=>p!==void 0)}log(n){if(!this._isEnabledContextKeyValue.get())return!1;return this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(n),!0}};Hc=ZR([ZL(1,G),ZL(2,Oy)],Hc);function XR(u,n){return je(n.onDidChangeContext,()=>n.getContextKeyValue(u))}var YR=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},YL=function(u,n){return function(h,g){n(h,g,u)}},hm=class u extends i{constructor(n,h,g){super();this._editor=n,this._instantiationService=h,this._loggerService=g,this._structuredLogger=this._register(this._instantiationService.createInstance(Hc.cast(),"editor.inlineSuggest.logChangeReason.commandId"));let p=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),m=je(this,p.onDidChangeLogLevel,()=>p.getLevel());this._register(W((_)=>{if(!wR(m.read(_),ao.Trace))return;_.store.add(this._editor.onDidChangeModelContent((v)=>{if(this._editor.getModel()?.uri.scheme==="output")return;p.trace("onDidChangeModelContent: "+v.detailedReasons.map((w)=>w.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(W((_)=>{if(!(this._editor instanceof Cc))return;if(!this._structuredLogger.isEnabled.read(_))return;_.store.add(this._editor.onDidChangeModelContent((v)=>{let w=this._editor.getModel();if(!w)return;let C=v.detailedReasons[0],E={...C.metadata,sourceId:"TextModel.setChangeReason",source:C.metadata.source,time:Date.now(),modelUri:w.uri,modelVersion:w.getVersionId()};setTimeout(()=>{this._structuredLogger.log(E)},0)}))}))}};hm=YR([YL(1,A),YL(2,q1)],hm);function ld(u){return new JL(u)}class JL extends U0{constructor(u){super();this._textModel=u}getOffset(u){return this._textModel.getOffsetAt(u)}getPosition(u){return this._textModel.getPositionAt(u)}}var JR=[];function QL(){return JR}function bw(u){return QR(u).map((h)=>h.getEndPosition())}function QR(u){let n=R0.createSortPermutation(u,Bn((p)=>p.range,t.compareRangesUsingStarts)),g=new Po(n.apply(u)).getNewRanges();return n.inverse().apply(g)}function ik(u,n){let h=ld(n),g=n.getValue();return u.map((_)=>h.getStringReplacement(_)).map((_)=>_.removeCommonSuffixPrefix(g)).map((_)=>h.getTextReplacement(_))}function pk(u,n){let h=j("result",[]),g=[];return n.add(W((p)=>{let m=u.read(p);Je((_)=>{if(m.length!==g.length){g.length=m.length;for(let v=0;v<g.length;v++)if(!g[v])g[v]=j("item",m[v]);h.set([...g],_)}g.forEach((v,w)=>v.set(m[w],_))})})),h}class vw{constructor(u){this._contextKeyService=u}bind(u,n){return _s(u,this._contextKeyService,n instanceof Function?n:(h)=>n.read(h))}}function ww(u,n){return new Promise((h)=>{let g=void 0,p=setTimeout(()=>{if(g)g.dispose();h()},u);if(n)g=n.onCancellationRequested(()=>{if(clearTimeout(p),g)g.dispose();h()})})}class Wc{static message(u){return new Wc(void 0,u)}constructor(u,n=void 0){this.error=u,this.message=n}static is(u){return u instanceof Wc}logError(){if(this.message)console.error(`ErrorResult: ${this.message}`,this.error);else console.error("ErrorResult: An unexpected error-case occurred, usually caused by invalid input.",this.error)}}class um{static startNow(u,n,h,g=bk){return new um(u,n,h,Date.now(),g)}constructor(u,n,h,g,p=bk){if(this.startValue=u,this.endValue=n,this.durationMs=h,this.startTimeMs=g,this._interpolationFunction=p,u===n)this.durationMs=0}isFinished(u){return u>=this.startTimeMs+this.durationMs}getValue(u){let n=u-this.startTimeMs;if(n>=this.durationMs)return this.endValue;return this._interpolationFunction(n,this.startValue,this.endValue-this.startValue,this.durationMs)}}function bk(u,n,h,g){return u===g?n+h:h*(-Math.pow(2,-10*u/g)+1)+n}function Ik(u,n,h,g){return h*((u=u/g-1)*u*u+1)+n}class Sw{constructor(u){this._value=u}getValue(u){let n=Date.now();if(!this._value.isFinished(n))ty.instance.invalidateOnNextAnimationFrame(u);return this._value.getValue(n)}isFinished(u){let n=Date.now(),h=this._value.isFinished(n);if(!h)ty.instance.invalidateOnNextAnimationFrame(u);return h}}class ty{constructor(){this._counter=so(this),this._isScheduled=!1}static{this.instance=new ty}invalidateOnNextAnimationFrame(u){if(this._counter.read(u),!this._isScheduled)this._isScheduled=!0,Ge().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()})}_update(){this._counter.trigger(void 0)}}class Yr{constructor(u,n){this.lineNumber=u,this.parts=n,sa(()=>au(n,(h,g)=>h.column<=g.column))}equals(u){return this.lineNumber===u.lineNumber&&this.parts.length===u.parts.length&&this.parts.every((n,h)=>n.equals(u.parts[h]))}renderForScreenReader(u){if(this.parts.length===0)return"";let n=this.parts[this.parts.length-1],h=u.substr(0,n.column-1);return new Po([...this.parts.map((p)=>new gt(t.fromPositions(new s(1,p.column)),p.lines.map((m)=>m.line).join(`
|
|
34
|
+
`)))]).applyToString(h).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((u)=>u.lines.length===0)}get lineCount(){return 1+this.parts.reduce((u,n)=>u+n.lines.length-1,0)}}class Id{constructor(u,n,h,g=[]){this.column=u,this.text=n,this.preview=h,this._inlineDecorations=g,this.lines=Ci(this.text).map((p,m)=>({line:p,lineDecorations:Xi.filter(this._inlineDecorations,m+1,1,p.length+1)}))}equals(u){return this.column===u.column&&this.lines.length===u.lines.length&&this.lines.every((n,h)=>n.line===u.lines[h].line&&Xi.equalsArr(n.lineDecorations,u.lines[h].lineDecorations))}}class Th{constructor(u,n,h,g=0){this.lineNumber=u,this.columnRange=n,this.text=h,this.additionalReservedLineCount=g,this.parts=[new Id(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=Ci(this.text)}renderForScreenReader(u){return this.newLines.join(`
|
|
35
|
+
`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((u)=>u.lines.length===0)}equals(u){return this.lineNumber===u.lineNumber&&this.columnRange.equals(u.columnRange)&&this.newLines.length===u.newLines.length&&this.newLines.every((n,h)=>n===u.newLines[h])&&this.additionalReservedLineCount===u.additionalReservedLineCount}}function Cw(u,n){return ot(u,n,yw)}function yw(u,n){if(u===n)return!0;if(!u||!n)return!1;if(u instanceof Yr&&n instanceof Yr)return u.equals(n);if(u instanceof Th&&n instanceof Th)return u.equals(n);return!1}function Go(u,n,h){let g=h?u.range.intersectRanges(h):u.range;if(!g)return u;let p=u.text.replaceAll(`\r
|
|
36
|
+
`,`
|
|
37
|
+
`),m=n.getValueInRange(g,1),_=No(m,p),v=Kt.ofText(m.substring(0,_)).addToPosition(u.range.getStartPosition()),w=p.substring(_),C=t.fromPositions(v,u.range.getEndPosition());return new gt(C,w)}function gm(u,n){return u.text.startsWith(n.text)&&eN(u.range,n.range)}function eN(u,n){return n.getStartPosition().equals(u.getStartPosition())&&n.getEndPosition().isBeforeOrEqual(u.getEndPosition())}function xw(u,n,h,g,p=0){let m=Go(u,n);if(m.range.endLineNumber!==m.range.startLineNumber)return;let _=n.getLineContent(m.range.startLineNumber),v=Rt(_).length;if(m.range.startColumn-1<=v){let Y=Rt(m.text).length,Q=_.substring(m.range.startColumn-1,v),[te,oe]=[m.range.getStartPosition(),m.range.getEndPosition()],le=te.column+Q.length<=oe.column?te.delta(0,Q.length):oe,pe=t.fromPositions(le,oe),Se=m.text.startsWith(Q)?m.text.substring(Q.length):m.text.substring(Y);m=new gt(pe,Se)}let C=n.getValueInRange(m.range),E=tN(C,m.text);if(!E)return;let R=m.range.startLineNumber,Z=[];if(h==="prefix"){let Y=E.filter((Q)=>Q.originalLength===0);if(Y.length>1||Y.length===1&&Y[0].originalStart!==C.length)return}let X=m.text.length-p;for(let Y of E){let Q=m.range.startColumn+Y.originalStart+Y.originalLength;if(h==="subwordSmart"&&g&&g.lineNumber===m.range.startLineNumber&&Q<g.column)return;if(Y.originalLength>0)return;if(Y.modifiedLength===0)continue;let te=Y.modifiedStart+Y.modifiedLength,oe=Math.max(Y.modifiedStart,Math.min(te,X)),le=m.text.substring(Y.modifiedStart,oe),pe=m.text.substring(oe,Math.max(Y.modifiedStart,te));if(le.length>0)Z.push(new Id(Q,le,!1));if(pe.length>0)Z.push(new Id(Q,pe,!0))}return new Yr(R,Z)}var pm=void 0;function tN(u,n){if(pm?.originalValue===u&&pm?.newValue===n)return pm?.changes;else{let h=Rk(u,n,!0);if(h){let g=Dk(h);if(g>0){let p=Rk(u,n,!1);if(p&&Dk(p)<g)h=p}}return pm={originalValue:u,newValue:n,changes:h},h}}function Dk(u){let n=0;for(let h of u)n+=h.originalLength;return n}function Rk(u,n,h){if(u.length>5000||n.length>5000)return;function g(C){let E=0;for(let R=0,Z=C.length;R<Z;R++){let X=C.charCodeAt(R);if(X>E)E=X}return E}let p=Math.max(g(u),g(n));function m(C){if(C<0)throw Error("unexpected");return p+C+1}function _(C){let E=0,R=0,Z=new Int32Array(C.length);for(let X=0,Y=C.length;X<Y;X++)if(h&&C[X]==="("){let Q=R*100+E;Z[X]=m(2*Q),E++}else if(h&&C[X]===")"){E=Math.max(E-1,0);let Q=R*100+E;if(Z[X]=m(2*Q+1),E===0)R++}else Z[X]=C.charCodeAt(X);return Z}let v=_(u),w=_(n);return new ha({getElements:()=>v},{getElements:()=>w}).ComputeDiff(!1).changes}function Pk(u,n){let h=void 0,g=!1,p=new F0(new vi(u,void 0,n.update),(m,_)=>{if(!g)h=n.initial instanceof Function?n.initial():n.initial,g=!0;let v=n.update(m,h,_);return h=v,v},n.changeTracker,()=>{if(g)n.disposeFinal?.(h),g=!1},n.equalityComparer??Ko,(m,_,v)=>{if(!g)throw new H("Can only set when there is a listener! This is to prevent leaks.");pd(_,(w)=>{h=m,p.setValue(m,w,v)})},Gt.ofCaller());return p}var iN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Fk=function(u,n){return function(h,g){n(h,g,u)}};class Hk{constructor(u,n){this._baseService=u,this._intercept=n}publicLog2(u,n){this._intercept(u,n),this._baseService.publicLog2(u,n)}}var mm=class u extends Hk{constructor(n,h){super(n,(g,p)=>{let m=!0;if(p&&Iw in p)m=Boolean(p[Iw]);if(m)h.getDataChannel("editTelemetry").sendData({eventName:g,data:p??{}})})}};mm=iN([Fk(0,Wn),Fk(1,Oy)],mm);var Iw=Symbol("shouldForwardToChannel");function Wk(u){return{[Iw]:u}}function Lw(u){if(!u)return!1;let n=u.toLowerCase();return n==="github.copilot"||n==="github.copilot-chat"}function Bk(u,n){u.publicLog2("inlineCompletion.endOfLife",n)}var oN=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function nN(u){return oN.has(u)}function rN(u){return/[a-zA-Z0-9_]/.test(u)}function sN(u){return u===" "||u==="\t"}function fm(u){let n=u.split(/\r\n|\r|\n/);if(n.length>1)return{kind:"multiLine",lineCount:n.length};let h=u.length===1,g;if(h){if(nN(u))g="syntactical";else if(rN(u))g="identifier";else if(sN(u))g="whitespace"}let p=u.match(/[ \t]+/g)||[],m=p.some((E)=>E.length>1),_=p.some((E)=>E.includes(" ")||E.includes("\t\t")),v=u.split(/\s+/).filter((E)=>E.length>0),w=v.length===1&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(v[0]),C=v.length>1;return{kind:"singleLine",isSingleCharacter:h,singleCharacterKind:g,isWord:w,isMultipleWords:C,isMultipleWhitespace:m,hasDuplicatedWhitespace:_}}class Vk{constructor(u){this.edits=u}toString(){return JSON.stringify({edits:this.edits})}}function Ew(u,n,h){if(u.replacements.length===0)return;return new Vk(u.replacements.map((g)=>aN(g,n)))}function kw(u){if(u.length===0)return 0;return u.split(/\r\n|\r|\n/).length-1}function aN(u,n,h){let{replaceRange:g,newText:p}=u,m=g.length,_=p.length,v=kw(p);switch(g.isEmpty?"insert":p.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:dN(g.start,p,n),charactersInserted:_,charactersDeleted:0,linesInserted:v,linesDeleted:0};case"delete":{let C=n.getValue().substring(g.start,g.endExclusive);return{operation:"delete",properties:cN(g.start,g.endExclusive,n),charactersInserted:0,charactersDeleted:m,linesInserted:0,linesDeleted:kw(C)}}case"replace":{let C=n.getValue().substring(g.start,g.endExclusive);return{operation:"replace",properties:lN(C,p),charactersInserted:_,charactersDeleted:m,linesInserted:v,linesDeleted:kw(C)}}}}function dN(u,n,h,g){let p=fm(n),m=h.getPositionAt(u),_=h.getLineContent(m.lineNumber),v=_.length,w,C=_.trim().length===0,E=m.column>v,R=m.column===1;if(C)w="emptyLine";else if(E)w="endOfLine";else if(R)w="startOfLine";else w="middleOfLine";let Z;return{textShape:p,locationShape:w,relativeToCursor:Z}}function cN(u,n,h){let g=h.getValue().substring(u,n),p=fm(g),m=h.getPositionAt(u),_=h.getPositionAt(n),v=h.getLineContent(_.lineNumber),w=_.column>v.length,C=m.lineNumber===_.lineNumber&&m.column===1&&_.column>v.length;return{textShape:p,isAtEndOfLine:w,deletesEntireLineContent:C}}function lN(u,n){let h=fm(u),g=fm(n),p=h.kind==="singleLine"&&h.isWord,m=g.kind==="singleLine"&&g.isWord,_=p&&m,v=n.length>u.length,w=n.length<u.length,C=h.kind==="singleLine"&&g.kind==="singleLine",E=h.kind==="singleLine"&&g.kind==="multiLine",R=h.kind==="multiLine"&&g.kind==="singleLine";return{isWordToWordReplacement:_,isAdditive:v,isSubtractive:w,isSingleLineToSingleLine:C,isSingleLineToMultiLine:E,isMultiLineToSingleLine:R}}function _m(u,n,h,g){let p=Go(u,h),m=u.range;if(!m||n&&!n.getStartPosition().equals(m.getStartPosition())||g.lineNumber!==p.range.startLineNumber||p.isEmpty)return!1;let _=h.getValueInRange(p.range,1),v=p.text,w=Math.max(0,g.column-p.range.startColumn),C=v.substring(0,w),E=v.substring(w),R=_.substring(0,w),Z=_.substring(w),X=h.getLineIndentColumn(p.range.startLineNumber);if(p.range.startColumn<=X){if(R=R.trimStart(),R.length===0)Z=Z.trimStart();if(C=C.trimStart(),C.length===0)E=E.trimStart()}return C.startsWith(R)&&!!TR(Z,E)}var bm;(function(u){function n(h){return h?.command.id??void 0}u.toString=n})(bm||(bm={}));class Cr extends Eg{static snapshot(u){return new Cr(u)}constructor(u){super();this._textModel=u,this._version=u.getVersionId()}get uri(){return this._textModel.uri}_assertValid(){if(this._textModel.getVersionId()!==this._version)ee(Error(`TextModel has changed: expected version ${this._version}, got ${this._textModel.getVersionId()}`))}targets(u){return this._textModel.uri.toString()===u.uri.toString()}getValueOfRange(u){return this._assertValid(),this._textModel.getValueInRange(u)}getLineLength(u){return this._assertValid(),this._textModel.getLineLength(u)}get length(){this._assertValid();let u=this._textModel.getLineCount(),n=this._textModel.getLineLength(u);return new Kt(u-1,n)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(u){return this._assertValid(),this._textModel.getPositionAt(u)}getValueInRange(u){return this._assertValid(),this._textModel.getValueInRange(u)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var Bc;(function(u){function n(h,g,p=!0){if(!h.isInlineEdit&&!h.action?.uri&&h.action?.kind==="edit")return Rh.create(h,g,h.action);else return Nh.create(h,g,p)}u.create=n})(Bc||(Bc={}));function hN(u){let n=u?.kind==="edit"?{...u,alternativeAction:bm.toString(u.alternativeAction),target:u?.target.uri.toString()}:{...u,target:u?.target.uri.toString()};return JSON.stringify(n)}class Dw{constructor(u,n,h,g){this._data=u,this.identity=n,this.hint=h,this.originalTextRef=g}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===cr.Explicit}get forwardStable(){return this.source.inlineSuggestions.enableForwardStability??!1}get targetRange(){if(this.hint)return this.hint.range;if(this.action?.kind==="edit")return this.action.textReplacement.range;else if(this.action?.kind==="jumpTo")return t.fromPositions(this.action.position);throw new H("InlineSuggestionItem: Either hint or action must be set")}get semanticId(){return this.hash}get gutterMenuLinkAction(){return this._sourceInlineCompletion.gutterMenuLinkAction}get command(){return this._sourceInlineCompletion.command}get supportsRename(){return this._data.supportsRename}get warning(){return this._sourceInlineCompletion.warning}get showInlineEditMenu(){return!!this._sourceInlineCompletion.showInlineEditMenu}get hash(){return hN(this.action)}get requestUuid(){return this._data.context.requestUuid}get partialAccepts(){return this._data.partialAccepts}get _sourceInlineCompletion(){return this._data.sourceInlineCompletion}addRef(){this.identity.addRef(),this.source.addRef()}removeRef(){this.identity.removeRef(),this.source.removeRef()}reportInlineEditShown(u,n,h,g,p){let m=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(u,m,n,h,this.computeEditKind(g),p)}reportPartialAccept(u,n,h){this._data.reportPartialAccept(u,n,h)}reportEndOfLife(u){this._data.reportEndOfLife(u)}setEndOfLifeReason(u){this._data.setEndOfLifeReason(u)}setIsPreceeded(u){this._data.setIsPreceeded(u.partialAccepts)}setNotShownReasonIfNotSet(u){this._data.setNotShownReason(u)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(u){this._data.setRenameProcessingInfo(u)}withAction(u){return this._data.withAction(u)}addPerformanceMarker(u){this._data.addPerformanceMarker(u)}}class wm{constructor(){this._onDispose=so(this),this.onDispose=this._onDispose,this._jumpedTo=j(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+wm.idCounter++}static{this.idCounter=0}get jumpedTo(){return this._jumpedTo}addRef(){this._refCount++}removeRef(){if(this._refCount--,this._refCount===0)this._onDispose.trigger(void 0)}setJumpTo(u){this._jumpedTo.set(!0,u)}}class Mh{static create(u){return new Mh(t.lift(u.range),u.content,u.style)}constructor(u,n,h){this.range=u,this.content=n,this.style=h}withEdit(u,n){let h=new V(n.getOffset(this.range.getStartPosition()),n.getOffset(this.range.getEndPosition())),g=xR([h],u)[0];if(!g)return;let p=n.getRange(g);return new Mh(p,this.content,this.style)}}class Rh extends Dw{static create(u,n,h){let g=new wm,p=n.getTransformer(),m=h.insertText.replace(/\r\n|\r|\n/g,n.getEOL()),_=pN(new ui(p.getOffsetRange(h.range),m),n),v=_.removeCommonSuffixAndPrefix(n.getValue()),w=p.getTextReplacement(_),C=u.hint?Mh.create(u.hint):void 0;return new Rh(_,v,w,w.range,h.snippetInfo,u.additionalTextEdits,u,g,C,n)}constructor(u,n,h,g,p,m,_,v,w,C){super(_,v,w,C);this._edit=u,this._trimmedEdit=n,this._textEdit=h,this._originalRange=g,this.snippetInfo=p,this.additionalTextEdits=m,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new xo([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(u){return new Rh(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,u,this.hint,this.originalTextRef)}withEdit(u,n){if(!this.originalTextRef.targets(n))return this;let h=xR([this._edit.replaceRange],u);if(h.length===0)return;let g=new ui(h[0],this._textEdit.text),p=ld(n),m=p.getTextReplacement(g),_=this.hint;if(_){if(_=_.withEdit(u,p),!_)return}let v=g.removeCommonSuffixAndPrefix(n.getValue());return new Rh(g,v,m,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,_,this.originalTextRef)}canBeReused(u,n){let h=this._textEdit.range;return!!h&&h.containsPosition(n)&&this.isVisible(u,n)&&Kt.ofRange(h).isGreaterThanOrEqualTo(Kt.ofRange(this._originalRange))}isVisible(u,n){let h=this.getSingleTextEdit();return _m(h,this._originalRange,u,n)}computeEditKind(u){return Ew(new xo([this._edit]),u)}get editRange(){return this.getSingleTextEdit().range}}class Nh extends Dw{static create(u,n,h=!0){let g,p=[];if(u.action?.kind==="edit"){let v=h?uN(n,u.action.range,u.action.insertText):gN(n,u.action.range,u.action.insertText),w=Po.fromStringEdit(v,n),C=v.isEmpty()?new gt(new t(1,1,1,1),""):w.toReplacement(n);p=v.replacements.map((E)=>{let R=t.fromPositions(n.getPositionAt(E.replaceRange.start),n.getTransformer().getPosition(E.replaceRange.endExclusive)),Z=n.getValueInRange(R);return vm.create(E,Z)}),g={kind:"edit",snippetInfo:u.action.snippetInfo,stringEdit:v,textReplacement:C,alternativeAction:u.action.alternativeAction,target:n}}else if(u.action?.kind==="jumpTo")g={kind:"jumpTo",position:u.action.position,offset:n.getTransformer().getOffset(u.action.position),target:n};else if(g=void 0,!u.hint)throw new H("InlineEditItem: action is undefined and no hint is provided");let m=new wm,_=u.hint?Mh.create(u.hint):void 0;return new Nh(g,u,m,p,_,!1,n.getVersionId(),n)}constructor(u,n,h,g,p,m=!1,_,v){super(n,h,p,v);this._action=u,this._edits=g,this._lastChangePartOfInlineEdit=m,this._inlineEditModelVersion=_,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get action(){return this._action}withIdentity(u){return new Nh(this._action,this._data,u,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(u,n){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===u.getVersionId()}withEdit(u,n){if(!this.originalTextRef.targets(n))return this;return this._applyTextModelChanges(u,this._edits,n)}_applyTextModelChanges(u,n,h){let g=ld(h),p=!1,m=this._inlineEditModelVersion,_,v=Cr.snapshot(h);if(this.action?.kind==="edit"){if(n=n.map((Z)=>Z.applyTextModelChanges(u)),n.some((Z)=>Z.edit===void 0))return;let C=h.getVersionId();if(p=n.some((Z)=>Z.lastChangeUpdatedEdit),p)m=C??-1;if(C===null||m+20<C)return;if(n=n.filter((Z)=>!Z.edit.isEmpty),n.length===0)return;let E=new xo(n.map((Z)=>Z.edit));_={kind:"edit",textReplacement:g.getTextEdit(E).toReplacement(new dp(h)),snippetInfo:this.snippetInfo,stringEdit:E,alternativeAction:this.action.alternativeAction,target:v}}else if(this.action?.kind==="jumpTo"){let C=this.action.offset,E=u.applyToOffsetOrUndefined(C);if(E===void 0)return;_={kind:"jumpTo",position:g.getPosition(E),offset:E,target:v}}else _=void 0;let w=this.hint;if(w){if(w=w.withEdit(u,g),!w)return}return new Nh(_,this._data,this.identity,n,w,p,m,v)}computeEditKind(u){let n=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(!n)return;return Ew(n,u)}}function uN(u,n,h){let g=u.getEOL(),p=u.getValueOfRange(n),m=h.replace(/\r\n|\r|\n/g,g),w=Tg.getDefault().computeDiff(Ci(p),Ci(m),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap((Z)=>Z.innerChanges??[]);function C(Z,X){let Y=Kt.fromPosition(X.getStartPosition());return Kt.ofRange(X).createRange(Y.addToPosition(Z))}let E=new Il(m);return new xo(w.map((Z)=>{let X=C(n.getStartPosition(),Z.originalRange),Y=u.getTransformer().getOffsetRange(X),Q=E.getValueOfRange(Z.modifiedRange),te=new ui(Y,Q),oe=u.getValueOfRange(X);return mN(te,oe,w.length,u)}))}function gN(u,n,h){return new xo([new ui(u.getTransformer().getOffsetRange(n),h)])}class vm{static create(u,n){let h=No(u.newText,n),g=Fs(u.newText,n),p=u.newText.substring(h,u.newText.length-g);return new vm(u,p,h,g)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(u,n,h,g,p=!1){this._edit=u,this._trimmedNewText=n,this._prefixLength=h,this._suffixLength=g,this._lastChangeUpdatedEdit=p}applyTextModelChanges(u){let n=this._clone();return n._applyTextModelChanges(u),n}_clone(){return new vm(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(u){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new H("UpdatedInnerEdits: No edit to apply changes to");let n=this._applyChanges(this._edit,u);if(!n){this._edit=void 0;return}this._edit=n.edit,this._lastChangeUpdatedEdit=n.editHasChanged}_applyChanges(u,n){let h=u.replaceRange.start,g=u.replaceRange.endExclusive,p=u.newText,m=!1,_=this._prefixLength>0||this._suffixLength>0;for(let v=n.replacements.length-1;v>=0;v--){let w=n.replacements[v],C=w.newText.length>0&&w.replaceRange.isEmpty;if(C&&!_&&w.replaceRange.start===h&&p.startsWith(w.newText)){h+=w.newText.length,p=p.substring(w.newText.length),g+=w.newText.length,m=!0;continue}if(C&&_&&w.replaceRange.start===h+this._prefixLength&&this._trimmedNewText.startsWith(w.newText)){g+=w.newText.length,m=!0,this._prefixLength+=w.newText.length,this._trimmedNewText=this._trimmedNewText.substring(w.newText.length);continue}if(w.newText.length===0&&w.replaceRange.length>0&&w.replaceRange.start>=h+this._prefixLength&&w.replaceRange.endExclusive<=g-this._suffixLength){g-=w.replaceRange.length,m=!0;continue}if(w.equals(u)){m=!0,h=w.replaceRange.endExclusive,p="";continue}if(w.replaceRange.start>g)continue;if(w.replaceRange.endExclusive<h){h+=w.newText.length-w.replaceRange.length,g+=w.newText.length-w.replaceRange.length;continue}return}if(this._trimmedNewText.length===0&&h+this._prefixLength===g-this._suffixLength)return{edit:new ui(new V(h+this._prefixLength,h+this._prefixLength),""),editHasChanged:!0};return{edit:new ui(new V(h,g),p),editHasChanged:m}}}function pN(u,n){let h=n.getEOL();if(u.replaceRange.isEmpty&&u.newText.includes(h))u=zk(u,n);return u}function mN(u,n,h,g){let p=g.getEOL();if(u.newText.endsWith(p)&&n.endsWith(p))u=new ui(u.replaceRange.deltaEnd(-p.length),u.newText.slice(0,-p.length));if(h===1&&u.replaceRange.isEmpty&&u.newText.includes(p)){let m=g.getTransformer().getPosition(u.replaceRange.start);if(g.getLineLength(m.lineNumber)!==0)u=zk(u,g)}if(h===1){let m=No(n,u.newText),_=Fs(n.slice(m),u.newText.slice(m));if(m+_===n.length)return new ui(u.replaceRange.deltaStart(m).deltaEnd(-_),u.newText.substring(m,u.newText.length-_));if(m+_===u.newText.length)return new ui(u.replaceRange.deltaStart(m).deltaEnd(-_),"")}return u}function zk(u,n){if(!u.replaceRange.isEmpty)throw new H("Unexpected original range");if(u.replaceRange.start===0)return u;let h=n.getEOL(),g=n.getTransformer().getPosition(u.replaceRange.start),{column:p,lineNumber:m}=g;if(p===1&&m>1&&u.newText.endsWith(h)&&!u.newText.startsWith(h))return new ui(u.replaceRange.delta(-1),h+u.newText.slice(0,-h.length));return u}function Kk(u,n){let h=new i_,g=new r_(h,(C)=>n.getLanguageConfiguration(C)),p=new o_(new Uk([u]),g),m=s_(p,[],void 0,!0),_="",v=u.getLineContent();function w(C,E){if(C.kind===2){if(w(C.openingBracket,E),E=vn(E,C.openingBracket.length),C.child)w(C.child,E),E=vn(E,C.child.length);if(C.closingBracket)w(C.closingBracket,E),E=vn(E,C.closingBracket.length);else{let Z=g.getSingleLanguageBracketTokens(C.openingBracket.languageId).findClosingTokenText(C.openingBracket.bracketIds);_+=Z}}else if(C.kind===3);else if(C.kind===0||C.kind===1)_+=v.substring(Ty(E),Ty(vn(E,C.length)));else if(C.kind===4)for(let R of C.children)w(R,E),E=vn(E,R.length)}return w(m,fo),_}class Uk{constructor(u){this.lines=u,this.tokenization={getLineTokens:(n)=>this.lines[n-1]}}getLineCount(){return this.lines.length}getLineLength(u){return this.lines[u-1].getLineContent().length}}var Dt;(function(u){u.Jump="jump",u.Accept="accept",u.Inactive="inactive"})(Dt||(Dt={}));class To{static create(u,n=!1){return new To(new ci(B(u),u),n)}constructor(u,n=!1){this.event=u,this.alternativeAction=n}}var Qe;(function(u){u.GhostText="ghostText",u.Custom="custom",u.SideBySide="sideBySide",u.Deletion="deletion",u.InsertionInline="insertionInline",u.InsertionMultiLine="insertionMultiLine",u.WordReplacements="wordReplacements",u.LineReplacement="lineReplacement",u.Collapsed="collapsed",u.JumpTo="jumpTo"})(Qe||(Qe={}));class Vc{constructor(u,n,h,g,p,m,_,v){this.cursorColumnDistance=u,this.cursorLineDistance=n,this.lineCountOriginal=h,this.lineCountModified=g,this.characterCountOriginal=p,this.characterCountModified=m,this.disjointReplacements=_,this.sameShapeReplacements=v,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0,this.isForAnotherDocument=void 0}setLongDistanceViewData(u,n){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(n-u)}getData(){return{cursorColumnDistance:this.cursorColumnDistance,cursorLineDistance:this.cursorLineDistance,lineCountOriginal:this.lineCountOriginal,lineCountModified:this.lineCountModified,characterCountOriginal:this.characterCountOriginal,characterCountModified:this.characterCountModified,disjointReplacements:this.disjointReplacements,sameShapeReplacements:this.sameShapeReplacements,longDistanceHintVisible:this.longDistanceHintVisible,longDistanceHintDistance:this.longDistanceHintDistance,isForAnotherDocument:this.isForAnotherDocument}}}class Sm{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(u,n){let h=new Sm;for(let g of u)h._nodes.add(g);for(let g of u){let p=n(g);if(p.length>0){let m=new Set;for(let _ of p)m.add(_);h._outgoingEdges.set(g,m)}}return h}removeCycles(){let u=[],n=new Set,h=new Set,g=[],p=(m)=>{n.add(m),h.add(m);let _=this._outgoingEdges.get(m);if(_){for(let v of _)if(!n.has(v))p(v);else if(h.has(v))u.push(v),g.push({from:m,to:v})}h.delete(m)};for(let m of this._nodes)if(!n.has(m))p(m);for(let{from:m,to:_}of g){let v=this._outgoingEdges.get(m);if(v)v.delete(_)}return{foundCycles:u}}getOutgoing(u){let n=this._outgoingEdges.get(u);return n?Array.from(n):[]}}function jk(u,n,h,g,p,m){let _=nk("icr"),v=new qe,w=void 0,C={...g,requestUuid:_},E=_N(n,h),R=cP(u,(oe)=>oe.groupId),Z=Sm.from(u,(oe)=>oe.yieldsToGroupIds?.flatMap((le)=>R.get(le)??[])??[]),{foundCycles:X}=Z.removeCycles();if(X.length>0)yt(Error(`Inline completions: cyclic yield-to dependency detected. Path: ${X.map((oe)=>oe.toString?oe.toString():""+oe).join(" -> ")}`));let Y=0,Q=new cy(async(oe)=>{try{if(Y++,v.token.isCancellationRequested)return;let le=Z.getOutgoing(oe);for(let Ne of le){let Me=await Q.get(Ne);if(Me)for(let Oe of Me.inlineSuggestions.items){if(Oe.isInlineEdit||typeof Oe.insertText!=="string"&&Oe.insertText!==void 0)return;if(Oe.insertText!==void 0){let ye=new gt(t.lift(Oe.range)??E,Oe.insertText);if(_m(ye,void 0,h,n))return}}}let pe,Se=Date.now();try{pe=await oe.provideInlineCompletions(h,n,C,v.token)}catch(Ne){yt(Ne);return}let Ce=Date.now();if(!pe)return;let ae=[],me=new Xk(pe,ae,oe);if(me.addRef(),Tw(v.token,()=>me.removeRef(w)),v.token.isCancellationRequested)return;for(let Ne of pe.items){let Me=fN(Ne,me,E,h,m,C,p,{startTime:Se,endTime:Ce});if(Wc.is(Me)){Me.logError();continue}ae.push(Me)}return me}finally{Y--}}),te=oi.fromPromisesResolveOrder(u.map((oe)=>Q.get(oe))).filter(ni);return{contextWithUuid:C,get didAllProvidersReturn(){return Y===0},lists:te,cancelAndDispose:(oe)=>{if(w!==void 0)return;w=oe,v.dispose(!0)}}}function Tw(u,n){if(u.isCancellationRequested)return n(),i.None;else{let h=u.onCancellationRequested(()=>{h.dispose(),n()});return{dispose:()=>h.dispose()}}}function fN(u,n,h,g,p,m,_,v){let w,C=u.uri?q.revive(u.uri):void 0;if(u.jumpToPosition!==void 0)w={kind:"jumpTo",position:s.lift(u.jumpToPosition),uri:C};else if(u.insertText!==void 0){let E,R,Z=u.range?t.lift(u.range):h;if(typeof u.insertText==="string"){if(E=u.insertText,p&&u.completeBracketPairs){E=qk(E,Z.getStartPosition(),g,p);let X=E.length-u.insertText.length;if(X!==0)Z=new t(Z.startLineNumber,Z.startColumn,Z.endLineNumber,Z.endColumn+X)}R=void 0}else if("snippet"in u.insertText){let X=u.insertText.snippet.length;if(p&&u.completeBracketPairs){u.insertText.snippet=qk(u.insertText.snippet,Z.getStartPosition(),g,p);let Q=u.insertText.snippet.length-X;if(Q!==0)Z=new t(Z.startLineNumber,Z.startColumn,Z.endLineNumber,Z.endColumn+Q)}let Y=new go().parse(u.insertText.snippet);if(Y.children.length===1&&Y.children[0]instanceof pi)E=Y.children[0].value,R=void 0;else E=Y.toString(),R={snippet:u.insertText.snippet,range:Z}}else cc(u.insertText);w={kind:"edit",range:Z,insertText:E,snippetInfo:R,uri:C,alternativeAction:void 0}}else if(w=void 0,!u.hint)return Wc.message("Inline completion has no insertText, jumpToPosition nor hint.");return new Gk(w,u.hint,u.additionalTextEdits||QL(),u,n,m,u.isInlineEdit??!1,u.supportsRename??!1,_,v,u.correlationId)}class Gk{get action(){return this._action}constructor(u,n,h,g,p,m,_,v,w,C,E){this._action=u,this.hint=n,this.additionalTextEdits=h,this.sourceInlineCompletion=g,this.source=p,this.context=m,this.isInlineEdit=_,this.supportsRename=v,this._requestInfo=w,this._providerRequestInfo=C,this._correlationId=E,this._didShow=!1,this._timeUntilShown=void 0,this._timeUntilActuallyShown=void 0,this._showStartTime=void 0,this._shownDuration=0,this._showUncollapsedStartTime=void 0,this._showUncollapsedDuration=0,this._notShownReason=void 0,this._didReportEndOfLife=!1,this._lastSetEndOfLifeReason=void 0,this._isPreceeded=!1,this._partiallyAcceptedCount=0,this._partiallyAcceptedSinceOriginal={characters:0,ratio:0,count:0},this._renameInfo=void 0,this._editKind=void 0,this.performance=new Zk,this._viewData={editorType:w.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(u,n,h,g,p,m){if(this.updateShownDuration(h),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=p,this._viewData.viewKind=h,this._viewData.renderData=g,this._timeUntilShown=m-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;let _=new Bg(g.lineCountModified,g.lineCountOriginal,g.characterCountModified,g.characterCountOriginal);if(this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,n,_),this.sourceInlineCompletion.shownCommand)await u.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(u,n,h){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=h.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*h.ratio,1),this._partiallyAcceptedSinceOriginal.count+=h.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,u,n)}reportEndOfLife(u){if(this._didReportEndOfLife)return;if(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),!u)u=this._lastSetEndOfLifeReason??{kind:Cl.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(u.kind===Cl.Rejected&&!this._didShow)u={kind:Cl.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(u.kind===Cl.Rejected&&this.source.provider.handleRejection)this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion);if(this.source.provider.handleEndOfLifetime){let n={requestUuid:this.context.requestUuid,correlationId:this._correlationId,selectedSuggestionInfo:!!this.context.selectedSuggestionInfo,partiallyAccepted:this._partiallyAcceptedCount,partiallyAcceptedCountSinceOriginal:this._partiallyAcceptedSinceOriginal.count,partiallyAcceptedRatioSinceOriginal:this._partiallyAcceptedSinceOriginal.ratio,partiallyAcceptedCharactersSinceOriginal:this._partiallyAcceptedSinceOriginal.characters,shown:this._didShow,shownDuration:this._shownDuration,shownDurationUncollapsed:this._showUncollapsedDuration,editKind:this._editKind?.toString(),preceeded:this._isPreceeded,timeUntilShown:this._timeUntilShown,timeUntilActuallyShown:this._timeUntilActuallyShown,timeUntilProviderRequest:this._providerRequestInfo.startTime-this._requestInfo.startTime,timeUntilProviderResponse:this._providerRequestInfo.endTime-this._requestInfo.startTime,editorType:this._viewData.editorType,languageId:this._requestInfo.languageId,requestReason:this._requestInfo.reason,viewKind:this._viewData.viewKind,notShownReason:this._notShownReason,performanceMarkers:this.performance.toString(),renameCreated:this._renameInfo?.createdRename,renameDuration:this._renameInfo?.duration,renameTimedOut:this._renameInfo?.timedOut,renameDroppedOtherEdits:this._renameInfo?.droppedOtherEdits,renameDroppedRenameEdits:this._renameInfo?.droppedRenameEdits,typingInterval:this._requestInfo.typingInterval,typingIntervalCharacterCount:this._requestInfo.typingIntervalCharacterCount,skuPlan:this._requestInfo.sku?.plan,skuType:this._requestInfo.sku?.type,availableProviders:this._requestInfo.availableProviders.map((h)=>h.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,u,n)}}setIsPreceeded(u){if(this._isPreceeded=!0,this._partiallyAcceptedSinceOriginal.characters!==0||this._partiallyAcceptedSinceOriginal.ratio!==0||this._partiallyAcceptedSinceOriginal.count!==0)console.warn("Expected partiallyAcceptedCountSinceOriginal to be { characters: 0, rate: 0, partialAcceptances: 0 } before setIsPreceeded.");this._partiallyAcceptedSinceOriginal=u}setNotShownReason(u){this._notShownReason??=u}setEndOfLifeReason(u){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=u}updateShownDuration(u){let n=Date.now();if(!this._showStartTime)this._showStartTime=n;let h=u===Qe.Collapsed;if(!h&&this._showUncollapsedStartTime===void 0)this._showUncollapsedStartTime=n;if(h&&this._showUncollapsedStartTime!==void 0)this._showUncollapsedDuration+=n-this._showUncollapsedStartTime}reportInlineEditHidden(){if(this._showStartTime===void 0)return;let u=Date.now();if(this._shownDuration+=u-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime===void 0)return;this._showUncollapsedDuration+=u-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0}setRenameProcessingInfo(u){if(this._renameInfo)throw new H("Rename info has already been set.");this._renameInfo=u}withAction(u){return this._action=u,this}addPerformanceMarker(u){this.performance.mark(u)}}class Zk{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(u){this.markers.push({name:u,timeStamp:Date.now()})}toString(){let u=[];for(let n=1;n<this.markers.length;n++){let h=this.markers[n].timeStamp-this.markers[n-1].timeStamp;u.push({[this.markers[n].name]:h})}return JSON.stringify(u)}}var At;(function(u){u.TextEditor="textEditor",u.DiffEditor="diffEditor",u.Notebook="notebook"})(At||(At={}));class Xk{constructor(u,n,h){this.inlineSuggestions=u,this.inlineSuggestionsData=n,this.provider=h,this.refCount=0}addRef(){this.refCount++}removeRef(u={kind:"other"}){if(this.refCount--,this.refCount===0){for(let n of this.inlineSuggestionsData)n.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,u)}else if(this.refCount<0)ee(new H(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}}function _N(u,n){let h=n.getWordAtPosition(u),g=n.getLineMaxColumn(u.lineNumber);return h?new t(u.lineNumber,h.startColumn,u.lineNumber,g):t.fromPositions(u,u.with(void 0,g))}function qk(u,n,h,g){let p=h.getLineContent(n.lineNumber),m=ui.replace(new V(n.column-1,p.length),u),v=h.tokenization.tokenizeLinesAt(n.lineNumber,[m.replace(p)])?.[0].sliceZeroCopy(m.getRangeAfterReplace());if(!v)return u;return Kk(v,g)}var bN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Cm=function(u,n){return function(h,g){n(h,g,u)}},Ld=new M("renameInputVisible",!1,e(1460,"Whether the rename input widget is visible"));new M("renameInputFocused",!1,e(1461,"Whether the rename input widget is focused"));var ym=class u{constructor(n,h,g,p,m,_){this._editor=n,this._acceptKeybindings=h,this._themeService=g,this._keybindingService=p,this._logService=_,this.allowEditorOverflow=!0,this._disposables=new d,this._visibleContextKey=Ld.bindTo(m),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new dn,this._inputWithButton=new Yk,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(59))this._updateFont()})),this._disposables.add(g.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){if(!this._domNode)this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new Rw(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:(n)=>{this._inputWithButton.input.value=n,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{if(this._renameCandidateListView?.focusedCandidate!==void 0)this._isEditingRenameCandidate=!0;if(this._timeBeforeFirstInputFieldEdit??=this._beforeFirstInputFieldEditSW.elapsed(),this._renameCandidateProvidersCts?.token.isCancellationRequested===!1)this._renameCandidateProvidersCts.cancel();this._renameCandidateListView?.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme());return this._domNode}_updateStyles(n){if(!this._domNode)return;let h=n.getColor(vu),g=n.getColor(xy);this._domNode.style.backgroundColor=String(n.getColor(Ho)??""),this._domNode.style.boxShadow=h?` 0 0 8px 2px ${h}`:"",this._domNode.style.border=g?`1px solid ${g}`:"",this._domNode.style.color=String(n.getColor(ek)??"");let p=n.getColor(tk);this._inputWithButton.domNode.style.backgroundColor=String(n.getColor(Z0)??""),this._inputWithButton.input.style.backgroundColor=String(n.getColor(Z0)??""),this._inputWithButton.domNode.style.borderWidth=p?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=p?"solid":"none",this._inputWithButton.domNode.style.borderColor=p?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;He(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);let n=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(n.fontSize)}px`}_computeLabelFontSize(n){return n*0.8}getPosition(){if(!this._visible)return null;if(!this._editor.hasModel()||!this._editor.getDomNode())return null;let n=ua(this.getDomNode().ownerDocument.body),h=kt(this._editor.getDomNode()),g=this._getTopForPosition();this._nPxAvailableAbove=g+h.top,this._nPxAvailableBelow=n.height-this._nPxAvailableAbove;let p=this._editor.getOption(75),{totalHeight:m}=zc.getLayoutInfo({lineHeight:p}),_=this._nPxAvailableBelow>m*6?[2,1]:[1,2];return{position:this._position,preference:_}}beforeRender(){let[n,h]=this._acceptKeybindings;return this._label.innerText=e(1462,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(n)?.getLabel(),this._keybindingService.lookupKeybinding(h)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(n){if(n===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;He(this._renameCandidateListView),He(this._nPxAvailableAbove!==void 0),He(this._nPxAvailableBelow!==void 0);let h=Ll(this._inputWithButton.domNode),g=Ll(this._label),p;if(n===2)p=this._nPxAvailableBelow;else p=this._nPxAvailableAbove;this._renameCandidateListView.layout({height:p-g-h,width:Ao(this._inputWithButton.domNode)})}acceptInput(n){this._trace("invoking acceptInput"),this._currentAcceptInput?.(n)}cancelInput(n,h){this._currentCancelInput?.(n)}focusNextRenameSuggestion(){if(!this._renameCandidateListView?.focusNext())this._inputWithButton.input.value=this._currentName}focusPreviousRenameSuggestion(){if(!this._renameCandidateListView?.focusPrevious())this._inputWithButton.input.value=this._currentName}getInput(n,h,g,p,m){let{start:_,end:v}=this._getSelection(n,h);this._renameCts=m;let w=new d;if(this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,p===void 0)this._inputWithButton.button.style.display="none";else this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=p,this._requestRenameCandidates(h,!1),w.add(c(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(h,!0))),w.add(c(this._inputWithButton.button,T.KEY_DOWN,(E)=>{let R=new Xe(E);if(R.equals(3)||R.equals(10))R.stopPropagation(),R.preventDefault(),this._requestRenameCandidates(h,!0)}));this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",g),this._position=new s(n.startLineNumber,n.startColumn),this._currentName=h,this._inputWithButton.input.value=h,this._inputWithButton.input.setAttribute("selectionStart",_.toString()),this._inputWithButton.input.setAttribute("selectionEnd",v.toString()),this._inputWithButton.input.size=Math.max((n.endColumn-n.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),w.add(N(()=>{this._renameCts=void 0,m.dispose(!0)})),w.add(N(()=>{if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0})),w.add(N(()=>this._candidates.clear()));let C=new da;return C.p.finally(()=>{w.dispose(),this._hide()}),this._currentCancelInput=(E)=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),C.complete(E),!0),this._currentAcceptInput=(E)=>{this._trace("invoking _currentAcceptInput"),He(this._renameCandidateListView!==void 0);let R=this._renameCandidateListView.nCandidates,Z,X,Y=this._renameCandidateListView.focusedCandidate;if(Y!==void 0)this._trace("using new name from renameSuggestion"),Z=Y,X={k:"renameSuggestion"};else this._trace("using new name from inputField"),Z=this._inputWithButton.input.value,X=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"};if(Z===h||Z.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),C.complete({newName:Z,wantsPreview:g&&E,stats:{source:X,nRenameSuggestions:R,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},w.add(m.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),w.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),C.p}_requestRenameCandidates(n,h){if(this._requestRenameCandidatesOnce===void 0)return;if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0);if(He(this._renameCts),this._inputWithButton.buttonState!=="stop"){this._renameCandidateProvidersCts=new qe;let g=h?wg.Invoke:wg.Automatic,p=this._requestRenameCandidatesOnce(g,this._renameCandidateProvidersCts.token);if(p.length===0){this._inputWithButton.setSparkleButton();return}if(!h)this._hadAutomaticRenameSuggestionsInvocation=!0;this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(p,n,this._renameCts.token)}}_getSelection(n,h){He(this._editor.hasModel());let g=this._editor.getSelection(),p=0,m=h.length;if(!t.isEmpty(g)&&!t.spansMultipleLines(g)&&t.containsRange(n,g))p=Math.max(0,g.startColumn-n.startColumn),m=Math.min(n.endColumn,g.endColumn)-n.startColumn;return{start:p,end:m}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(n,h,g){let p=(...C)=>this._trace("_updateRenameCandidates",...C);p("start");let m=await fc(Promise.allSettled(n),g);if(this._inputWithButton.setSparkleButton(),m===void 0){p("returning early - received updateRenameCandidates results - undefined");return}let _=m.flatMap((C)=>C.status==="fulfilled"&&ni(C.value)?C.value:[]);p(`received updateRenameCandidates results - total (unfiltered) ${_.length} candidates.`);let v=Ns(_,(C)=>C.newSymbolName);p(`distinct candidates - ${v.length} candidates.`);let w=v.filter(({newSymbolName:C})=>C.trim().length>0&&C!==this._inputWithButton.input.value&&C!==h&&!this._candidates.has(C));if(p(`valid distinct candidates - ${_.length} candidates.`),w.forEach((C)=>this._candidates.add(C.newSymbolName)),w.length<1){p("returning early - no valid distinct candidates");return}p("setting candidates"),this._renameCandidateListView.setCandidates(w),p("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){let n=this._editor.getVisibleRanges(),h;if(n.length>0)h=n[0].startLineNumber;else this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),h=Math.max(1,this._position.lineNumber-5);return this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(h)}_trace(...n){this._logService.trace("RenameWidget",...n)}};ym=bN([Cm(2,We),Cm(3,ge),Cm(4,G),Cm(5,Ye)],ym);class Rw{constructor(u,n){this._disposables=new d,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=n.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=n.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",u.appendChild(this._listContainer),this._listWidget=Rw._createListWidget(this._listContainer,this._candidateViewHeight,n.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus((h)=>{if(h.elements.length===1)n.onFocusChange(h.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection((h)=>{if(h.elements.length===1)n.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur((h)=>{this._listWidget.setFocus([])})),this._listWidget.style(Cd({listInactiveFocusForeground:vd,listInactiveFocusBackground:yd}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:u,width:n}){this._availableHeight=u,this._minimumWidth=n}setCandidates(u){this._listWidget.splice(0,0,u);let n=this._pickListHeight(this._listWidget.length),h=this._pickListWidth(u);this._listWidget.layout(n,h),this._listContainer.style.height=`${n}px`,this._listContainer.style.width=`${h}px`,jo(e(1463,"Received {0} rename suggestions",u.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;let u=this._listWidget.getSelectedElements()[0];if(u!==void 0)return u.newSymbolName;let n=this._listWidget.getFocusedElements()[0];if(n!==void 0)return n.newSymbolName;return}focusNext(){if(this._listWidget.length===0)return!1;let u=this._listWidget.getFocus();if(u.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;else if(u[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;else{this._listWidget.focusNext();let n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;let u=this._listWidget.getFocus();if(u.length===0){this._listWidget.focusLast();let n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}else if(u[0]===0)return this._listWidget.setFocus([]),!1;else{this._listWidget.focusPrevious();let n=this._listWidget.getFocus()[0];return this._listWidget.reveal(n),!0}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){let{totalHeight:u}=zc.getLayoutInfo({lineHeight:this._lineHeight});return u}_pickListHeight(u){let n=this._candidateViewHeight*u,h=7;return Math.min(n,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(u){let n=Math.ceil(Math.max(...u.map((g)=>g.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+n+10)}static _createListWidget(u,n,h){let g=new class{getTemplateId(m){return"candidate"}getHeight(m){return n}},p=new class{constructor(){this.templateId="candidate"}renderTemplate(m){return new zc(m,h)}renderElement(m,_,v){v.populate(m)}disposeTemplate(m){m.dispose()}};return new So("NewSymbolNameCandidates",u,g,[p],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class Yk{constructor(){this._buttonHoverContent="",this._disposables=new d,this._onDidInputChange=this._disposables.add(new o),this.onDidInputChange=this._onDidInputChange.event}get domNode(){if(!this._domNode)this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",e(1464,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=e(1465,"Generate New Name Suggestions"),this._buttonCancelHoverText=e(1466,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add($i().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(c(this.input,T.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(c(this.input,T.KEY_DOWN,(u)=>{let n=new Xe(u);if(n.keyCode===15||n.keyCode===17)this._onDidInputChange.fire()})),this._disposables.add(c(this.input,T.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(c(this.input,T.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(c(this.input,T.BLUR,()=>{this.domNode.style.outline="none"}));return this._domNode}get input(){return He(this._inputNode),this._inputNode}get button(){return He(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=_o(S.sparkle),mn(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHoverContent=this._buttonGenHoverText,this.input.focus()}setStopButton(){this._buttonState="stop",this._stopIcon??=_o(S.stopCircle),mn(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHoverContent=this._buttonCancelHoverText,this.input.focus()}dispose(){this._disposables.dispose()}}class zc{static{this._PADDING=2}constructor(u,n){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${n.lineHeight}px`,this._domNode.style.padding=`${zc._PADDING}px`;let h=document.createElement("div");h.style.display="flex",h.style.alignItems="center",h.style.width=h.style.height=`${n.lineHeight*0.8}px`,this._domNode.appendChild(h),this._icon=_o(S.sparkle),this._icon.style.display="none",h.appendChild(this._icon),this._label=document.createElement("div"),Sn(this._label,n),this._domNode.appendChild(this._label),u.appendChild(this._domNode)}populate(u){this._updateIcon(u),this._updateLabel(u)}_updateIcon(u){let n=!!u.tags?.includes(F1.AIGenerated);this._icon.style.display=n?"inherit":"none"}_updateLabel(u){this._label.innerText=u.newSymbolName}static getLayoutInfo({lineHeight:u}){return{totalHeight:u+zc._PADDING*2}}dispose(){}}var vN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ed=function(u,n){return function(h,g){n(h,g,u)}},Nw;class Oh{constructor(u,n,h){this.model=u,this.position=n,this._providerRenameIdx=0,this._providers=h.ordered(u)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(u){let n=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){let g=this._providers[this._providerRenameIdx];if(!g.resolveRenameLocation)break;let p=await g.resolveRenameLocation(this.model,this.position,u);if(!p)continue;if(p.rejectReason){n.push(p.rejectReason);continue}return p}this._providerRenameIdx=0;let h=this.model.getWordAtPosition(this.position);if(!h)return{range:t.fromPositions(this.position),text:"",rejectReason:n.length>0?n.join(`
|
|
38
|
+
`):void 0};return{range:new t(this.position.lineNumber,h.startColumn,this.position.lineNumber,h.endColumn),text:h.word,rejectReason:n.length>0?n.join(`
|
|
39
|
+
`):void 0}}async provideRenameEdits(u,n){return this._provideRenameEdits(u,this._providerRenameIdx,[],n)}async _provideRenameEdits(u,n,h,g){let p=this._providers[n];if(!p)return{edits:[],rejectReason:h.join(`
|
|
40
|
+
`)};let m=await p.provideRenameEdits(this.model,this.position,u,g);if(!m)return this._provideRenameEdits(u,n+1,h.concat(e(1449,"No result.")),g);else if(m.rejectReason)return this._provideRenameEdits(u,n+1,h.concat(m.rejectReason),g);return m}}function Jk(u,n){return u.ordered(n).length>0}async function Qk(u,n,h,g,p){return new Oh(n,h,u).provideRenameEdits(g,p??we.None)}async function wN(u,n,h,g){let p=new Oh(n,h,u),m=await p.resolveRenameLocation(we.None);if(m?.rejectReason)return{edits:[],rejectReason:m.rejectReason};return p.provideRenameEdits(g,we.None)}var Qs=class u{static{Nw=this}static{this.ID="editor.contrib.renameController"}static get(n){return n.getContribution(Nw.ID)}constructor(n,h,g,p,m,_,v,w){this.editor=n,this._instaService=h,this._notificationService=g,this._bulkEditService=p,this._progressService=m,this._logService=_,this._configService=v,this._languageFeaturesService=w,this._disposableStore=new d,this._cts=new qe,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(ym,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){let n=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new qe,!this.editor.hasModel()){n("editor has no model");return}let h=this.editor.getPosition(),g=new Oh(this.editor.getModel(),h,this._languageFeaturesService.renameProvider);if(!g.hasProvider()){n("skeleton has no provider");return}let p=new Ss(this.editor,5,void 0,this._cts.token),m;try{n("resolving rename location");let Y=g.resolveRenameLocation(p.token);this._progressService.showWhile(Y,250),m=await Y,n("resolved rename location")}catch(Y){if(Y instanceof Tr)n("resolve rename location cancelled",JSON.stringify(Y,null,"\t"));else if(n("resolve rename location failed",Y instanceof Error?Y:JSON.stringify(Y,null,"\t")),typeof Y==="string"||Or(Y))hi.get(this.editor)?.showMessage(Y||e(1450,"An unknown error occurred while resolving rename location"),h);return}finally{p.dispose()}if(!m){n("returning early - no loc");return}if(m.rejectReason){n(`returning early - rejected with reason: ${m.rejectReason}`,m.rejectReason),hi.get(this.editor)?.showMessage(m.rejectReason,h);return}if(p.token.isCancellationRequested){n("returning early - cts1 cancelled");return}let _=new Ss(this.editor,5,m.range,this._cts.token),v=this.editor.getModel(),w=this._languageFeaturesService.newSymbolNamesProvider.all(v),C=await Promise.all(w.map(async(Y)=>[Y,await Y.supportsAutomaticNewSymbolNamesTriggerKind??!1])),E=(Y,Q)=>{let te=C.slice();if(Y===wg.Automatic)te=te.filter(([oe,le])=>le);return te.map(([oe])=>oe.provideNewSymbolNames(v,m.range,Y,Q))};n("creating rename input field and awaiting its result");let R=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),Z=await this._renameWidget.getInput(m.range,m.text,R,w.length>0?E:void 0,_);if(n("received response from rename input field"),typeof Z==="boolean"){if(n(`returning early - rename input field response - ${Z}`),Z)this.editor.focus();_.dispose();return}this.editor.focus(),n("requesting rename edits");let X=fc(g.provideRenameEdits(Z.newName,_.token),_.token).then(async(Y)=>{if(!Y){n("returning early - no rename edits result");return}if(!this.editor.hasModel()){n("returning early - no model after rename edits are provided");return}if(Y.rejectReason){n(`returning early - rejected with reason: ${Y.rejectReason}`),this._notificationService.info(Y.rejectReason);return}this.editor.setSelection(t.fromPositions(this.editor.getSelection().getPosition())),n("applying edits"),this._bulkEditService.apply(Y,{editor:this.editor,showPreview:Z.wantsPreview,label:e(1451,"Renaming '{0}' to '{1}'",m?.text,Z.newName),code:"undoredo.rename",quotableLabel:e(1452,"Renaming {0} to {1}",m?.text,Z.newName),respectAutoSaveConfig:!0,reason:Xn.rename(m?.text,Z.newName)}).then((Q)=>{if(n("edits applied"),Q.ariaSummary)Vn(e(1453,"Successfully renamed '{0}' to '{1}'. Summary: {2}",m.text,Z.newName,Q.ariaSummary))}).catch((Q)=>{n(`error when applying edits ${JSON.stringify(Q,null,"\t")}`),this._notificationService.error(e(1454,"Rename failed to apply edits")),this._logService.error(Q)})},(Y)=>{n("error when providing rename edits",JSON.stringify(Y,null,"\t")),this._notificationService.error(e(1455,"Rename failed to compute edits")),this._logService.error(Y)}).finally(()=>{_.dispose()});return n("returning rename operation"),this._progressService.showWhile(X,250),X}acceptRenameInput(n){this._renameWidget.acceptInput(n)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}};Qs=Nw=vN([Ed(1,A),Ed(2,wt),Ed(3,$c),Ed(4,zs),Ed(5,Ye),Ed(6,gy),Ed(7,z)],Qs);class e1 extends U{constructor(){super({id:"editor.action.rename",label:b(1457,"Rename Symbol"),precondition:L.and(r.writable,r.hasRenameProvider),kbOpts:{kbExpr:r.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(u,n){let h=u.get(Te),[g,p]=Array.isArray(n)&&n||[void 0,void 0];if(q.isUri(g)&&s.isIPosition(p))return h.openCodeEditor({resource:g},h.getActiveCodeEditor()).then((m)=>{if(!m)return;m.setPosition(p),m.invokeWithinContext((_)=>(this.reportTelemetry(_,m),this.run(_,m)))},ee);return super.runCommand(u,n)}run(u,n){let h=u.get(Ye),g=Qs.get(n);if(g)return h.trace("[RenameAction] got controller, running..."),g.run();return h.trace("[RenameAction] returning early - controller missing"),Promise.resolve()}}fe(Qs.ID,Qs,4);O(e1);var Mw=tn.bindToContribution(Qs.get);K(new Mw({id:"acceptRenameInput",precondition:Ld,handler:(u)=>u.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:r.focus,primary:3}}));K(new Mw({id:"acceptRenameInputWithPreview",precondition:L.and(Ld,L.has("config.editor.rename.enablePreview")),handler:(u)=>u.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:r.focus,primary:2051}}));K(new Mw({id:"cancelRenameInput",precondition:Ld,handler:(u)=>u.cancelRenameInput(),kbOpts:{weight:199,kbExpr:r.focus,primary:9,secondary:[1033]}}));lt(class u extends Cn{constructor(){super({id:"focusNextRenameSuggestion",title:{...b(1458,"Focus Next Rename Suggestion")},precondition:Ld,keybinding:[{primary:18,weight:199}]})}run(n){let h=n.get(Te).getFocusedCodeEditor();if(!h)return;let g=Qs.get(h);if(!g)return;g.focusNextRenameSuggestion()}});lt(class u extends Cn{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...b(1459,"Focus Previous Rename Suggestion")},precondition:Ld,keybinding:[{primary:16,weight:199}]})}run(n){let h=n.get(Te).getFocusedCodeEditor();if(!h)return;let g=Qs.get(h);if(!g)return;g.focusPreviousRenameSuggestion()}});Mo("_executeDocumentRenameProvider",function(u,n,h,...g){let[p]=g;He(typeof p==="string");let{renameProvider:m}=u.get(z);return wN(m,n,h,p)});Mo("_executePrepareRename",async function(u,n,h){let{renameProvider:g}=u.get(z),m=await new Oh(n,h,g).resolveRenameLocation(we.None);if(m?.rejectReason)throw Error(m.rejectReason);return m});pt.as(Rr.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:e(1456,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var SN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Kc=function(u,n){return function(h,g){n(h,g,u)}},is;(function(u){u.no="no",u.yes="yes",u.maybe="maybe"})(is||(is={}));(function(u){function n(h){switch(h){case"no":return u.no;case"yes":return u.yes;case"maybe":return u.maybe;default:return u.no}}u.fromString=n})(is||(is={}));class t1{constructor(){}inferRename(u,n,h,g){let p=new t(n.startLineNumber,1,n.endLineNumber,u.getLineMaxColumn(n.endLineNumber)),m=n.startColumn-p.startColumn,_=p.endColumn-n.endColumn,v=u.getValueInRange(p),w=u.getValueInRange(new t(p.startLineNumber,p.startColumn,p.startLineNumber,p.startColumn+m))+h+u.getValueInRange(new t(p.endLineNumber,p.endColumn-_,p.endLineNumber,p.endColumn)),C=[],E=[],R=void 0,Z=void 0,X=void 0,Y=u.getOffsetAt(p.getStartPosition()),{changes:Q}=new ha(new fy(v),new fy(w)).ComputeDiff(!0);if(Q.length===0)return;let te=[];for(let pe of Q){if(te.length===0){te.push(pe);continue}let Se=te[te.length-1],Ce=pe.originalStart-(Se.originalStart+Se.originalLength);if(Ce>0){let ae=Y+Se.originalStart+Se.originalLength,me=u.getPositionAt(ae),Ne=u.getWordAtPosition(me);if(Ne){let Me=u.getOffsetAt(new s(me.lineNumber,Ne.startColumn)),Oe=u.getOffsetAt(new s(me.lineNumber,Ne.endColumn)),ye=ae+Ce;if(Me<=ae&&ye<=Oe&&Me<=ye&&ye<=Oe){Se.originalLength=pe.originalStart+pe.originalLength-Se.originalStart,Se.modifiedLength=pe.modifiedStart+pe.modifiedLength-Se.modifiedStart;continue}}}te.push(pe)}let oe=0;for(let pe of te){let Se=v.substring(pe.originalStart,pe.originalStart+pe.originalLength),Ce=w.substring(pe.modifiedStart,pe.modifiedStart+pe.modifiedLength),ae=Y+pe.originalStart,me=u.getPositionAt(ae),Ne=ae+pe.originalLength,Me=u.getPositionAt(Ne),Oe=t.fromPositions(me,Me),ye=Ce.length-pe.originalLength;if(/\s/.test(Se)){C.push(new gt(Oe,Ce)),oe+=ye;continue}if(Se.length>0){g.lastIndex=0;let Ze=g.exec(Se);if(Ze===null||Ze.index!==0||Ze[0].length!==Se.length){C.push(new gt(Oe,Ce)),oe+=ye;continue}}if(/\s/.test(Ce)){C.push(new gt(Oe,Ce)),oe+=ye;continue}if(Ce.length>0){g.lastIndex=0;let Ze=g.exec(Ce);if(Ze===null||Ze.index!==0||Ze[0].length!==Ce.length){C.push(new gt(Oe,Ce)),oe+=ye;continue}}let Pe=u.getWordAtPosition(me);if(Pe===null){C.push(new gt(Oe,Ce)),oe+=ye;continue}let it=pe.originalStart+1,Ve=pe.originalLength===0&&pe.modifiedLength>0,rt;if(Ve&&it===Pe.endColumn&&Pe.endColumn>Pe.startColumn)rt=this.getTokenAtPosition(u,new s(me.lineNumber,Pe.startColumn));else rt=this.getTokenAtPosition(u,me);if(Pe.startColumn!==rt.range.startColumn||Pe.endColumn!==rt.range.endColumn){C.push(new gt(Oe,Ce)),oe+=ye;continue}if(rt.type===0){let Ze=u.getValueInRange(rt.range);if(Ze.length===0){C.push(new gt(Oe,Ce)),oe+=ye;continue}if(R===void 0)R=Ze;else if(R!==Ze){C.push(new gt(Oe,Ce)),oe+=ye;continue}let Ft=u.getOffsetAt(rt.range.getStartPosition())-Y+oe,nt=u.getOffsetAt(rt.range.getEndPosition())-Y+oe;if(Ze=w.substring(Ft,nt+ye),Ze.length===0){C.push(new gt(Oe,Ce)),oe+=ye;continue}if(Z===void 0)Z=Ze;else if(Z!==Ze){C.push(new gt(Oe,Ce)),oe+=ye;continue}if(X===void 0)X=rt.range.getStartPosition();if(R!==void 0&&Z!==void 0&&R.length>0&&Z.length>0&&R!==Z)E.push(new gt(rt.range,Z));else E.push(new gt(Oe,Ce));oe+=ye}else C.push(new gt(Oe,Ce)),oe+=Ce.length-pe.originalLength}if(R===void 0||Z===void 0||X===void 0||R.length===0||Z.length===0||R===Z)return;g.lastIndex=0;let le=g.exec(R);if(le===null||le.index!==0||le[0].length!==R.length)return;if(g.lastIndex=0,le=g.exec(Z),le===null||le.index!==0||le[0].length!==Z.length)return;return{renames:{edits:E,position:X,oldName:R,newName:Z},others:{edits:C}}}getTokenAtPosition(u,n){u.tokenization.tokenizeIfCheap(n.lineNumber);let h=u.tokenization.getLineTokens(n.lineNumber),g=h.findTokenIndexAtOffset(n.column-1);return{type:h.getStandardTokenType(g),range:new t(n.lineNumber,1+h.getStartOffset(g),n.lineNumber,1+h.getEndOffset(g))}}}class Ph{static create(u,n){let h=u.getFocusedCodeEditor();if(h===null)return;if(h.getModel()!==n)return;return new Ph(h,n.getVersionId())}constructor(u,n){this.editor=u,this.versionId=n}equals(u){if(u===void 0)return!1;return this.editor===u.editor&&this.versionId===u.versionId}}class i1{constructor(u,n,h,g,p,m,_,v,w){if(this._result=void 0,this._commandService=n,this._textModel=g,this._state=p,this._requestUuid=h,this._cancellationTokenSource=new qe,v===void 0||w===void 0){this._promise=Qk(u.renameProvider,g,m,_,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(g,m,w,_,v)}get requestUuid(){return this._requestUuid}isValid(u){return this._state.equals(Ph.create(u,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;let u=await this.getResult();if(u===void 0||this._cancellationTokenSource.token.isCancellationRequested)return 0;return u.edits.length}async getWorkspaceEdit(){return this.getResult()}async getResult(){if(this._cancellationTokenSource.token.isCancellationRequested)return;if(this._result===void 0)this._result=await this._promise;if(this._result.rejectReason||this._cancellationTokenSource.token.isCancellationRequested)return;return this._result}async sendNesRenameRequest(u,n,h,g,p){try{let m=await this._commandService.executeCommand("github.copilot.nes.postRename",u.uri,n,h,g,p);if(m===void 0)return{rejectReason:"Rename failed",edits:[]};let _=[];for(let v of m)for(let w of v.changes){let C=new t(w.range.start.line+1,w.range.start.character+1,w.range.end.line+1,w.range.end.character+1),E=new Ic(v.file,new gt(C,w.newText??g));_.push(E)}return{edits:_}}catch(m){return{rejectReason:"Rename failed",edits:[]}}}}var xm=class u extends i{constructor(n,h,g,p,m,_){super();this._commandService=n,this._languageFeaturesService=h,this._languageConfigurationService=g,this._renameSymbolTrackerService=m,this._codeEditorService=_,this._renameInferenceEngine=new t1,this._renameRunnable=void 0,this._register(Le.registerCommand(av,async(v,w,C)=>{if(C===void 0||!C.isValid(this._codeEditorService))return;try{let E=await C.getWorkspaceEdit();if(E===void 0)return;p.apply(E,{reason:w})}finally{if(this._renameRunnable===C)this._renameRunnable=void 0}}))}async proposeRenameRefactoring(n,h,g){if(!h.supportsRename||h.action?.kind!=="edit"||g.selectedSuggestionInfo)return h;if(!Jk(this._languageFeaturesService.renameProvider,n))return h;let p=Ph.create(this._codeEditorService,n);if(p===void 0)return h;let m=Date.now(),_=h.action.textReplacement,v=this._languageConfigurationService.getLanguageConfiguration(n.getLanguageId()),w=this._renameInferenceEngine.inferRename(n,_.range,_.text,v.wordDefinition);if(w===void 0||w.renames.edits.length===0)return h;let{oldName:C,newName:E,position:R,edits:Z}=w.renames,X=this._renameSymbolTrackerService.trackedWord.get(),Y=void 0;if(X!==void 0&&X.model===n&&X.originalWord===C&&X.currentWord===E)Y=X.currentRange;let Q=!1,te=await N2(this.checkRenamePrecondition(h,n,R,C,E,Y),100,()=>{Q=!0}),oe=this.isRenamePossible(h,te,p,n);if(h.setRenameProcessingInfo({createdRename:oe,duration:Date.now()-m,timedOut:Q,droppedOtherEdits:oe?w.others.edits.length:void 0,droppedRenameEdits:oe?Z.length-1:void 0}),!oe)return h;if(this._renameRunnable===void 0)this._renameRunnable=new i1(this._languageFeaturesService,this._commandService,h.requestUuid,n,p,R,E,Y,Y!==void 0?C:void 0);let le=Xn.inlineCompletionAccept({nes:h.isInlineEdit,requestUuid:h.requestUuid,providerId:h.source.provider.providerId,languageId:n.getLanguageId(),correlationId:h.getSourceCompletion().correlationId}),pe={id:av,title:e(1274,"Rename"),arguments:[le,this._renameRunnable]},Se={label:e(1275,"Rename"),icon:S.replaceAll,command:pe,count:this._renameRunnable.getCount()},Ce={kind:"edit",range:Z[0].range,insertText:Z[0].text,snippetInfo:h.snippetInfo,alternativeAction:Se,uri:n.uri},ae=Cr.snapshot(n);return Bc.create(h.withAction(Ce),ae,!1)}async checkRenamePrecondition(n,h,g,p,m,_){let v={canRename:is.no,timedOut:!1};try{let w=await this._commandService.executeCommand("github.copilot.nes.prepareRename",h.uri,g,p,m,n.requestUuid,_);if(w===void 0)return v;else if(typeof w==="string"){let C=is.fromString(w);if(C===is.yes||C===is.maybe)return{canRename:C,oldName:p,onOldState:!1};else return{canRename:C,timedOut:!1}}else return w}catch(w){return v}}isRenamePossible(n,h,g,p){if(h===void 0||h.canRename===is.no)return!1;if(!g.equals(Ph.create(this._codeEditorService,p)))return!1;if(this._renameRunnable===void 0)return!0;if(this._renameRunnable.requestUuid===n.requestUuid)return!1;else return this._renameRunnable.cancel(),this._renameRunnable=void 0,!0}};xm=SN([Kc(0,Ue),Kc(1,z),Kc(2,ht),Kc(3,$c),Kc(4,$k),Kc(5,Te)],xm);var CN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Uc=function(u,n){return function(h,g){n(h,g,u)}},Ow,Im=class u extends i{static{Ow=this}static{this._requestId=0}constructor(n,h,g,p,m,_,v,w,C,E,R){super();if(this._textModel=n,this._versionId=h,this._debounceValue=g,this._cursorPosition=p,this._languageConfigurationService=_,this._logService=v,this._configurationService=w,this._instantiationService=C,this._contextKeyService=E,this._textModelService=R,this._updateOperation=this._register(new de),this._state=Pk(this,{initial:()=>({inlineCompletions:Wo.createEmpty(),suggestWidgetInlineCompletions:Wo.createEmpty()}),disposeFinal:(Z)=>{Z.inlineCompletions.dispose(),Z.suggestWidgetInlineCompletions.dispose()},changeTracker:dP(()=>({versionId:this._versionId})),update:(Z,X,Y)=>{let Q=xo.compose(Y.changes.map((te)=>te.change?lk(te.change.changes):xo.empty).filter(ni));if(Q.isEmpty())return X;try{return{inlineCompletions:X.inlineCompletions.createStateWithAppliedEdit(Q,this._textModel),suggestWidgetInlineCompletions:X.suggestWidgetInlineCompletions.createStateWithAppliedEdit(Q,this._textModel)}}finally{X.inlineCompletions.dispose(),X.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,(Z)=>Z.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,(Z)=>Z.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=f(this,(Z)=>{this._versionId.read(Z),this._updateOperation.clear();return}),this._loadingCount=j(this,0),this.loading=this._loadingCount.map(this,(Z)=>Z>0),this._dataChannelTelemetryService=this._instantiationService.createInstance(mm),this._loggingEnabled=RR("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=RR("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(Hc.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(xm)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store),m)this._updateCompletionsEnablement(m),this._register(this._configurationService.onDidChangeConfiguration((Z)=>{if(Z.affectsConfiguration(m))this._updateCompletionsEnablement(m)}));this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(n){let h=this._configurationService.getValue(n);if(!cn(h))this._completionsEnabled=void 0;else this._completionsEnabled=h}_log(n){if(this._loggingEnabled.get())this._logService.info(XL(n));this._structuredFetchLogger.log(n)}fetch(n,h,g,p,m,_,v){let w=this._cursorPosition.get(),C=new o1(w,g,this._textModel.getVersionId(),new Set(n)),E=g.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if(this._updateOperation.value?.request.satisfies(C))return this._updateOperation.value.promise;else if(E?.request?.satisfies(C))return Promise.resolve(!0);let R=!!this._updateOperation.value;this._updateOperation.clear();let Z=new qe,X=(async()=>{let Q=new d;this._loadingCount.set(this._loadingCount.get()+1,void 0);let te=!1,oe=()=>{if(!te)te=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0)};Q.add(new ke(()=>oe(),1e4)).schedule();let pe=n.filter((Ce)=>Ce.providerId),Se=new n1(g,v,pe);try{let Ce=this._debounceValue.get(this._textModel),ae=K1(n.map((nt)=>nt.debounceDelayMs),C2(Vi))??Ce;if(R||m&&g.triggerKind===cr.Automatic)await ww(ae,Z.token);if(Z.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==C.versionId)return Se.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;let Ne=Ow._requestId++;if(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:Ne,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:g.triggerKind,suggestInfo:g.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:h});let Me=new Date,Oe=jk(n,this._cursorPosition.get(),this._textModel,g,v,this._languageConfigurationService);Tw(Z.token,()=>Oe.cancelAndDispose({kind:"tokenCancellation"}));let ye=!1,Pe=!1,it=[];for await(let nt of Oe.lists){if(!nt)continue;nt.addRef(),Q.add(N(()=>nt.removeRef(nt.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(let ft of nt.inlineSuggestionsData){if(Pe=!0,!g.includeInlineEdits&&(ft.isInlineEdit||ft.showInlineEditMenu)){ft.setNotShownReason("notInlineEditRequested");continue}if(!g.includeInlineCompletions&&!(ft.isInlineEdit||ft.showInlineEditMenu)){ft.setNotShownReason("notInlineCompletionRequested");continue}ft.addPerformanceMarker("providerReturned");let Bt=ft.action?.uri,St,vt;if(Bt&&Bt.toString()!==this._textModel.uri.toString()){let It=await this._textModelService.createModelReference(Bt);St=It.object.textEditorModel,vt=It}else St=this._textModel,vt=void 0;let Vt=Cr.snapshot(St),Wt=Bc.create(ft,Vt);if(vt){let It=Nr(Wt.identity.onDispose,()=>{vt?.dispose(),It.dispose()})}if(ft.addPerformanceMarker("itemCreated"),it.push(Wt),!Wt.isInlineEdit&&!Wt.showInlineEditMenu&&g.triggerKind===cr.Automatic){if(Wt.isVisible(this._textModel,this._cursorPosition.get()))ye=!0}}if(ye)break}it.forEach((nt)=>nt.addPerformanceMarker("providersResolved"));let Ve=await Promise.all(it.map(async(nt)=>this._renameProcessor.proposeRenameRefactoring(this._textModel,nt,g)));if(Ve.forEach((nt)=>nt.addPerformanceMarker("renameProcessed")),Oe.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){let nt=Oe.didAllProvidersReturn,ft=void 0;if(Z.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==C.versionId)ft="canceled";let Bt=Ve.map((St)=>{let vt=St.getSourceCompletion();if(vt.doNotLog)return;let Vt={insertText:vt.insertText,range:vt.range,additionalTextEdits:vt.additionalTextEdits,uri:vt.uri,command:vt.command,gutterMenuLinkAction:vt.gutterMenuLinkAction,shownCommand:vt.shownCommand,completeBracketPairs:vt.completeBracketPairs,isInlineEdit:vt.isInlineEdit,showInlineEditMenu:vt.showInlineEditMenu,showRange:vt.showRange,warning:vt.warning,hint:vt.hint,supportsRename:vt.supportsRename,correlationId:vt.correlationId,jumpToPosition:vt.jumpToPosition};return{...oy(Vt,(Wt)=>{if(t.isIRange(Wt))return t.lift(Wt).toString();if(s.isIPosition(Wt))return s.lift(Wt).toString();if(ly.is(Wt))return{$commandId:Wt.id};return Wt}),$providerId:St.source.provider.providerId?.toString()}}).filter((St)=>St!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:Ne,durationMs:Date.now()-Me.getTime(),error:ft,result:Bt,time:Date.now(),didAllProvidersReturn:nt})}if(Se.setRequestUuid(Oe.contextWithUuid.requestUuid),Pe){if(Se.setHasProducedSuggestion(),Ve.length>0&&Z.token.isCancellationRequested)Ve.forEach((nt)=>nt.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"))}else if(Z.token.isCancellationRequested)Se.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{let nt=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");Se.setNoSuggestionReasonIfNotSet(nt?"completionsQuotaExceeded":"noSuggestion")}let rt=g.earliestShownDateTime-Date.now();if(rt>0)await ww(rt,Z.token);if(Ve.forEach((nt)=>nt.addPerformanceMarker("minShowDelayPassed")),Z.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==C.versionId||_.get()){let nt=Z.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==C.versionId?"canceled:documentChanged":_.get()?"canceled:userJumped":"unknown";return Ve.forEach((ft)=>ft.setNotShownReasonIfNotSet(nt)),!1}let Ze=new Date;this._debounceValue.update(this._textModel,Ze.getTime()-Me.getTime());let Ft=this._cursorPosition.get();this._updateOperation.clear(),Je((nt)=>{let ft=this._state.get();if(g.selectedSuggestionInfo)this._state.set({inlineCompletions:Wo.createEmpty(),suggestWidgetInlineCompletions:ft.suggestWidgetInlineCompletions.createStateWithAppliedResults(Ve,C,this._textModel,Ft,p)},nt);else this._state.set({inlineCompletions:ft.inlineCompletions.createStateWithAppliedResults(Ve,C,this._textModel,Ft,p),suggestWidgetInlineCompletions:Wo.createEmpty()},nt);ft.inlineCompletions.dispose(),ft.suggestWidgetInlineCompletions.dispose()})}finally{Q.dispose(),oe(),this._sendInlineCompletionsRequestTelemetry(Se)}return!0})(),Y=new r1(C,Z,X);return this._updateOperation.value=Y,X}clear(n){if(this._store.isDisposed)return;this._updateOperation.clear();let h=this._state.get();this._state.set({inlineCompletions:Wo.createEmpty(),suggestWidgetInlineCompletions:Wo.createEmpty()},n),h.inlineCompletions.dispose(),h.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){let n=this.inlineCompletions.get(),h=this.suggestWidgetInlineCompletions.get();if(!h)return;Je((g)=>{if(!n||(h.request?.versionId??-1)>(n.request?.versionId??-1)){n?.dispose();let p=this._state.get();this._state.set({inlineCompletions:h.clone(),suggestWidgetInlineCompletions:Wo.createEmpty()},g),p.inlineCompletions.dispose(),p.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(g)})}seedWithCompletion(n,h){let g=this._state.get();this._state.set({inlineCompletions:new Wo([n],void 0),suggestWidgetInlineCompletions:Wo.createEmpty()},h),g.inlineCompletions.dispose(),g.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(n){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment"))return;if(n.requestUuid===void 0||n.hasProducedSuggestion)return;if(!_R(this._completionsEnabled,this._textModel.getLanguageId()))return;if(!n.providers.some((g)=>Lw(g.providerId?.extensionId)))return;let h={opportunityId:n.requestUuid,noSuggestionReason:n.noSuggestionReason??"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,skuPlan:n.requestInfo.sku?.plan,skuType:n.requestInfo.sku?.type,editorType:n.requestInfo.editorType,requestReason:n.requestInfo.reason,typingInterval:n.requestInfo.typingInterval,typingIntervalCharacterCount:n.requestInfo.typingIntervalCharacterCount,languageId:n.requestInfo.languageId,selectedSuggestionInfo:!!n.context.selectedSuggestionInfo,availableProviders:n.providers.map((g)=>g.providerId?.toString()).filter(ni).join(","),...Wk(n.providers.some((g)=>Lw(g.providerId?.extensionId))),timeUntilProviderRequest:void 0,timeUntilProviderResponse:void 0,viewKind:void 0,preceeded:void 0,superseded:void 0,reason:void 0,acceptedAlternativeAction:void 0,correlationId:void 0,shownDuration:void 0,shownDurationUncollapsed:void 0,timeUntilShown:void 0,partiallyAccepted:void 0,partiallyAcceptedCountSinceOriginal:void 0,partiallyAcceptedRatioSinceOriginal:void 0,partiallyAcceptedCharactersSinceOriginal:void 0,cursorColumnDistance:void 0,cursorLineDistance:void 0,lineCountOriginal:void 0,lineCountModified:void 0,characterCountOriginal:void 0,characterCountModified:void 0,disjointReplacements:void 0,sameShapeReplacements:void 0,longDistanceHintVisible:void 0,longDistanceHintDistance:void 0,isForAnotherDocument:void 0,notShownReason:void 0,renameCreated:!1,renameDuration:void 0,renameTimedOut:!1,renameDroppedOtherEdits:void 0,renameDroppedRenameEdits:void 0,performanceMarkers:void 0,editKind:void 0};Bk(this._dataChannelTelemetryService,h)}clearSuggestWidgetInlineCompletions(n){if(this._updateOperation.value?.request.context.selectedSuggestionInfo)this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};Im=Ow=CN([Uc(5,ht),Uc(6,Ye),Uc(7,re),Uc(8,A),Uc(9,G),Uc(10,Dn)],Im);class o1{constructor(u,n,h,g){this.position=u,this.context=n,this.versionId=h,this.providers=g}satisfies(u){return this.position.equals(u.position)&&gR(this.context.selectedSuggestionInfo,u.context.selectedSuggestionInfo,kf())&&(u.context.triggerKind===cr.Automatic||this.context.triggerKind===cr.Explicit)&&this.versionId===u.versionId&&yN(u.providers,this.providers)}}class n1{constructor(u,n,h){this.context=u,this.requestInfo=n,this.providers=h,this.hasProducedSuggestion=!1}setRequestUuid(u){this.requestUuid=u}setNoSuggestionReasonIfNotSet(u){this.noSuggestionReason??=u}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function yN(u,n){return[...u].every((h)=>n.has(h))}class r1{constructor(u,n,h){this.request=u,this.cancellationTokenSource=n,this.promise=h}dispose(){this.cancellationTokenSource.cancel()}}class Wo extends i{static createEmpty(){return new Wo([],void 0)}constructor(u,n){super();this.inlineCompletions=u,this.request=n;for(let h of this.inlineCompletions)h.addRef();this._register({dispose:()=>{for(let h of this.inlineCompletions)h.removeRef()}})}_findById(u){return this.inlineCompletions.find((n)=>n.identity===u)}_findByHash(u){return this.inlineCompletions.find((n)=>n.hash===u)}createStateWithAppliedEdit(u,n){let h=this.inlineCompletions.map((g)=>g.withEdit(u,n)).filter(ni);return new Wo(h,this.request)}createStateWithAppliedResults(u,n,h,g,p){let m=void 0;if(p){let w=this._findById(p);if(w&&w.canBeReused(h,n.position)){m=w;let C=u.find((E)=>E.hash===w.hash);if(C)u=IN(C,u);else u=[w,...u]}}let _=m?!m.isInlineEdit:u.some((w)=>!w.isInlineEdit&&w.isVisible(h,g)),v=[];for(let w of u){let C=this._findByHash(w.hash),E;if(C&&C!==w)E=w.withIdentity(C.identity),w.setIsPreceeded(C),C.setEndOfLifeReason({kind:Cl.Ignored,userTypingDisagreed:!1,supersededBy:w.getSourceCompletion()});else E=w;if(_!==E.isInlineEdit)v.push(E)}return v.sort(Bn((w)=>w.showInlineEditMenu,O1)),v=xN(v,(w)=>w.semanticId),new Wo(v,n)}clone(){return new Wo(this.inlineCompletions,this.request)}}function xN(u,n){let h=new Set;return u.filter((g)=>{let p=n(g);if(h.has(p))return!1;return h.add(p),!0})}function IN(u,n){let h=n.indexOf(u);if(h>-1)return[u,...n.slice(0,h),...n.slice(h+1)];return n}class os extends i{static{this.MAX_SESSION_GAP_MS=3000}static{this.MIN_SESSION_DURATION_MS=1000}static{this.SESSION_HISTORY_LIMIT=50}static{this.TYPING_SPEED_WINDOW_MS=300000}static{this.MIN_CHARS_FOR_RELIABLE_SPEED=20}getTypingInterval(){if(this._cacheInvalidated||this._cachedTypingIntervalResult===null)this._cachedTypingIntervalResult=this._calculateTypingInterval(),this._cacheInvalidated=!1;return this._cachedTypingIntervalResult}constructor(u){super();this._textModel=u,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent((n)=>this._updateTypingSpeed(n)))}_updateTypingSpeed(u){let n=Date.now();if(!this._isUserTyping(u)){this._finalizeCurrentSession();return}if(this._currentSession&&n-this._lastChangeTime>os.MAX_SESSION_GAP_MS)this._finalizeCurrentSession();if(!this._currentSession)this._currentSession={startTime:n,endTime:n,characterCount:0};this._currentSession.endTime=n,this._currentSession.characterCount+=this._getActualCharacterCount(u),this._lastChangeTime=n,this._cacheInvalidated=!0}_getActualCharacterCount(u){let n=0;for(let h of u.changes)n+=Math.max(h.text.length,h.rangeLength);return n}_isUserTyping(u){if(!u.detailedReasons||u.detailedReasons.length===0)return!1;for(let n of u.detailedReasons)if(this._isUserTypingReason(n))return!0;return!1}_isUserTypingReason(u){if(u.metadata.isUndoing||u.metadata.isRedoing)return!1;switch(u.metadata.source){case"cursor":{let n=u.metadata.kind;return n==="type"||n==="compositionType"||n==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;if(this._currentSession.endTime-this._currentSession.startTime>=os.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0){if(this._typingSessions.push(this._currentSession),this._typingSessions.length>os.SESSION_HISTORY_LIMIT)this._typingSessions.shift()}this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){let u={...this._currentSession};if(u.endTime-u.startTime>=os.MIN_SESSION_DURATION_MS&&u.characterCount>0){let h=[...this._typingSessions,u];return this._calculateSpeedFromSessions(h)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(u){if(u.length===0)return{averageInterval:0,characterCount:0};let n=[...u].sort((C,E)=>E.endTime-C.endTime),h=Date.now()-os.TYPING_SPEED_WINDOW_MS,g=n.filter((C)=>C.endTime>h),p=n.splice(g.length),m=iy(g.map((C)=>C.characterCount));for(let C=0;C<p.length&&m<os.MIN_CHARS_FOR_RELIABLE_SPEED;C++)g.push(p[C]),m+=p[C].characterCount;let _=iy(g.map((C)=>C.endTime-C.startTime));if(_===0||m<=1)return{averageInterval:0,characterCount:m};let v=Math.max(1,m-1),w=_/v;return{averageInterval:Math.round(w),characterCount:m}}dispose(){this._finalizeCurrentSession(),super.dispose()}}var LN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ea=function(u,n){return function(h,g){n(h,g,u)}},Lm=class u extends i{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(n,h,g,p,m,_,v,w,C,E,R,Z,X,Y,Q,te){super();this.textModel=n,this._selectedSuggestItem=h,this._textModelVersionId=g,this._positions=p,this._debounceValue=m,this._enabled=_,this._isSuppressed=v,this._editor=w,this._instantiationService=C,this._commandService=E,this._languageConfigurationService=R,this._accessibilityService=Z,this._languageFeaturesService=X,this._codeEditorService=Y,this._inlineCompletionsService=Q,this._isActive=j(this,!1),this._onlyRequestInlineEditsSignal=so(this),this._forceUpdateExplicitlySignal=so(this),this._noDelaySignal=so(this),this._fetchSpecificProviderSignal=so(this),this._selectedInlineCompletionId=j(this,void 0),this.primaryPosition=f(this,(ae)=>this._positions.read(ae)[0]??new s(1,1)),this.allPositions=f(this,(ae)=>this._positions.read(ae)),this.sku=j(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=f(this,(ae)=>{let me=this.state.read(ae);if(!me||!me.inlineSuggestion)return!1;return Aw(this._editor,me.inlineSuggestion,ae)}),this._onDidAccept=this._register(new o),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=B1({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(ae,me)=>(me.didUndo=ae.didChange(this._textModelVersionId)&&!!ae.change?.isUndoing,!0)}},(ae,me)=>{let Ne=this._textModelVersionId.read(ae);if(Ne!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===Ne-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&me.didUndo)return this._lastAcceptedInlineCompletionInfo=void 0,!0;return!1}),this._preserveCurrentCompletionReasons=new Set([rs.Redo,rs.Undo,rs.AcceptWord]),this.dontRefetchSignal=so(this),this._fetchInlineCompletionsPromise=B1({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:cr.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,changeHint:void 0,textChange:!1,changeReason:""}),handleChange:(ae,me)=>{if(ae.didChange(this._textModelVersionId)){if(this._preserveCurrentCompletionReasons.has(this._getReason(ae.change)))me.preserveCurrentCompletion=!0;let Ne=ae.change?.detailedReasons??[];me.changeReason=Ne.length>0?Ne[0].getType():"",me.textChange=!0}else if(ae.didChange(this._forceUpdateExplicitlySignal))me.preserveCurrentCompletion=!0,me.inlineCompletionTriggerKind=cr.Explicit;else if(ae.didChange(this.dontRefetchSignal))me.dontRefetch=!0;else if(ae.didChange(this._onlyRequestInlineEditsSignal))me.onlyRequestInlineEdits=!0;else if(ae.didChange(this._fetchSpecificProviderSignal))me.provider=ae.change?.provider,me.changeHint=ae.change?.changeHint;return!0}}},(ae,me)=>{if(this._source.clearOperationOnTextModelChange.read(ae),this._noDelaySignal.read(ae),this.dontRefetchSignal.read(ae),this._onlyRequestInlineEditsSignal.read(ae),this._forceUpdateExplicitlySignal.read(ae),this._fetchSpecificProviderSignal.read(ae),!(!this._isSuppressed()&&(this._enabled.read(ae)&&this._selectedSuggestItem.read(ae)||this._isActive.read(ae))&&(!this._inlineCompletionsService.isSnoozing()||me.inlineCompletionTriggerKind===cr.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(ae);let Me=this._source.suggestWidgetInlineCompletions.read(void 0),Oe=this._selectedSuggestItem.read(ae);if(this._shouldShowOnSuggestConflict.read(void 0))Oe=void 0;if(Me&&!Oe)this._source.seedInlineCompletionsWithSuggestWidget();if(me.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(ae)&&me.inlineCompletionTriggerKind!==cr.Explicit){Je((Bt)=>{this._source.clear(Bt)});return}let ye="";if(me.provider)ye+="providerOnDidChange";else if(me.inlineCompletionTriggerKind===cr.Explicit)ye+="explicit";if(me.changeReason)ye+=ye.length>0?`:${me.changeReason}`:me.changeReason;let Pe=this._typing.getTypingInterval(),it={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:ye,typingInterval:Pe.averageInterval,typingIntervalCharacterCount:Pe.characterCount,availableProviders:[],sku:this.sku.read(void 0)},Ve={triggerKind:me.inlineCompletionTriggerKind,selectedSuggestionInfo:Oe?.toSelectedSuggestionInfo(),includeInlineCompletions:!me.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(ae),requestIssuedDateTime:it.startTime,earliestShownDateTime:it.startTime+(me.inlineCompletionTriggerKind===cr.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:me.changeHint};if(Ve.triggerKind===cr.Automatic&&me.textChange){if(this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId)Ve={...Ve,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit}}let rt=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,Ze=me.preserveCurrentCompletion||rt?.forwardStable?rt:void 0,Ft=this._jumpedToId.map((Bt)=>!!Bt&&Bt===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),nt=me.provider?{providers:[me.provider],label:"single:"+me.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},ft=this.getAvailableProviders(nt.providers);return it.availableProviders=ft.map((Bt)=>Bt.providerId).filter(ni),this._source.fetch(ft,nt.label,Ve,Ze?.identity,me.shouldDebounce,Ft,it)}),this._inlineSuggestionItems=Rn({owner:this},(ae)=>{let me=this._source.inlineCompletions.read(ae);if(!me)return;let Ne=this.primaryPosition.read(ae),Me=void 0,Oe=[];for(let ye of me.inlineCompletions)if(!ye.isInlineEdit){if(ye.isVisible(this.textModel,Ne))Oe.push(ye)}else Me=ye;if(Oe.length!==0)Me=void 0;return{inlineCompletions:Oe,inlineEdit:Me}}),this._inlineCompletionItems=Rn({owner:this,equalsFn:Jh()},(ae)=>this._inlineSuggestionItems.read(ae)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=f(this,(ae)=>{let me=this._selectedInlineCompletionId.read(ae),Ne=this._inlineCompletionItems.read(ae),Me=this._selectedInlineCompletionId===void 0?-1:Ne.findIndex((Oe)=>Oe.semanticId===me);if(Me===-1)return this._selectedInlineCompletionId.set(void 0,void 0),0;return Me}),this.selectedInlineCompletion=f(this,(ae)=>{let me=this._inlineCompletionItems.read(ae),Ne=this.selectedInlineCompletionIndex.read(ae);return me[Ne]}),this.activeCommands=Rn({owner:this,equalsFn:Jh()},(ae)=>this.selectedInlineCompletion.read(ae)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=f(this,(ae)=>{if(this.lastTriggerKind.read(ae)===cr.Explicit)return this._inlineCompletionItems.read(ae).length;else return}),this._hasVisiblePeekWidgets=f(this,(ae)=>this._editorObs.openedPeekWidgets.read(ae)>0),this._shouldShowOnSuggestConflict=f(this,(ae)=>{let me=this._showOnSuggestConflict.read(ae);if(me!=="never"){if(!!this.selectedInlineCompletion.read(ae)){let Me=this._selectedSuggestItem.read(ae);if(!Me)return!1;if(me==="whenSuggestListIsIncomplete")return Me.listIncomplete;return!0}}return!1}),this.state=Rn({owner:this,equalsFn:(ae,me)=>{if(!ae||!me)return ae===me;if(ae.kind==="ghostText"&&me.kind==="ghostText")return Cw(ae.ghostTexts,me.ghostTexts)&&ae.inlineSuggestion===me.inlineSuggestion&&ae.suggestItem===me.suggestItem;else if(ae.kind==="inlineEdit"&&me.kind==="inlineEdit")return ae.inlineSuggestion===me.inlineSuggestion;return!1}},(ae)=>{let me=this.textModel;if(this._suppressInSnippetMode.read(ae)&&this._isInSnippetMode.read(ae))return;let Ne=this._inlineSuggestionItems.read(ae),Me=Ne?.inlineEdit;if(Me){if(this._hasVisiblePeekWidgets.read(ae))return;let ye=this.primaryPosition.map((rt)=>ne.fromRangeInclusive(Me.targetRange).addMargin(1,1).contains(rt.lineNumber)),Pe=Me.action?.kind==="edit"?Me.action.stringEdit:void 0,it=Pe?Po.fromStringEdit(Pe,new dp(this.textModel)).replacements:[],Ve=(Ne.inlineEdit?.command?.id==="vscode.open"||Ne.inlineEdit?.command?.id==="_workbench.open")&&Ne.inlineEdit?.command.arguments?.length?q.from(Ne.inlineEdit?.command.arguments[0]):void 0;if(!Me.originalTextRef.targets(this.textModel))Ve=Me.originalTextRef.uri;return{kind:"inlineEdit",inlineSuggestion:Me,edits:it,cursorAtInlineEdit:ye,nextEditUri:Ve}}let Oe=this._selectedSuggestItem.read(ae);if(!this._shouldShowOnSuggestConflict.read(ae)&&Oe){let ye=Go(Oe.getSingleTextEdit(),me),Pe=this._computeAugmentation(ye,ae);if(!this._suggestPreviewEnabled.read(ae)&&!Pe)return;let Ve=Pe?.edit??ye,rt=Pe?Pe.edit.text.length-ye.text.length:0,Ze=this._suggestPreviewMode.read(ae),Ft=this._positions.read(ae),ft=[Ve,...Pw(this.textModel,Ft,Ve)].map((Vt,Wt)=>({edit:Vt,ghostText:Vt?xw(Vt,me,Ze,Ft[Wt],rt):void 0})).filter(({edit:Vt,ghostText:Wt})=>Vt!==void 0&&Wt!==void 0),Bt=ft.map(({edit:Vt})=>Vt),St=ft.map(({ghostText:Vt})=>Vt),vt=St[0]??new Yr(Ve.range.endLineNumber,[]);return{kind:"ghostText",edits:Bt,primaryGhostText:vt,ghostTexts:St,inlineSuggestion:Pe?.completion,suggestItem:Oe}}else{if(!this._isActive.read(ae))return;let ye=this.selectedInlineCompletion.read(ae);if(!ye)return;let Pe=ye.getSingleTextEdit(),it=this._inlineSuggestMode.read(ae),Ve=this._positions.read(ae),Ze=[Pe,...Pw(this.textModel,Ve,Pe)].map((ft,Bt)=>({edit:ft,ghostText:ft?xw(ft,me,it,Ve[Bt],0):void 0})).filter(({edit:ft,ghostText:Bt})=>ft!==void 0&&Bt!==void 0),Ft=Ze.map(({edit:ft})=>ft),nt=Ze.map(({ghostText:ft})=>ft);if(!nt[0])return;return{kind:"ghostText",edits:Ft,primaryGhostText:nt[0],ghostTexts:nt,inlineSuggestion:ye,suggestItem:void 0}}}),this.status=f(this,(ae)=>{if(this._source.loading.read(ae))return"loading";let me=this.state.read(ae);if(me?.kind==="ghostText")return"ghostText";if(me?.kind==="inlineEdit")return"inlineEdit";return"noSuggestion"}),this.inlineCompletionState=f(this,(ae)=>{let me=this.state.read(ae);if(!me||me.kind!=="ghostText")return;if(this._editorObs.inComposition.read(ae))return;return me}),this.inlineEditState=f(this,(ae)=>{let me=this.state.read(ae);if(!me||me.kind!=="inlineEdit")return;return me}),this.inlineEditAvailable=f(this,(ae)=>!!this.inlineEditState.read(ae)),this.warning=f(this,(ae)=>this.inlineCompletionState.read(ae)?.inlineSuggestion?.warning),this.ghostTexts=Rn({owner:this,equalsFn:Cw},(ae)=>{let me=this.inlineCompletionState.read(ae);if(!me)return;return me.ghostTexts}),this.primaryGhostText=Rn({owner:this,equalsFn:yw},(ae)=>{let me=this.inlineCompletionState.read(ae);if(!me)return;return me?.primaryGhostText}),this.showCollapsed=f(this,(ae)=>{let me=this.state.read(ae);if(!me||me.kind!=="inlineEdit")return!1;if(me.inlineSuggestion.hint||me.inlineSuggestion.action?.kind==="jumpTo")return!1;let Ne=me.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(ae);return(this._inlineEditsShowCollapsedEnabled.read(ae)||!Ne)&&this._jumpedToId.read(ae)!==me.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(ae)}),this._tabShouldIndent=f(this,(ae)=>{if(this._inAcceptFlow.read(ae))return!1;function me(Oe){return Oe.startLineNumber!==Oe.endLineNumber}function Ne(Oe,ye){let Pe=Oe.getLineIndentColumn(ye),it=Oe.getLineLastNonWhitespaceColumn(ye),Ve=Math.max(it,Pe);return new t(ye,Pe,ye,Ve)}return this._editorObs.selections.read(ae)?.some((Oe)=>{if(Oe.isEmpty())return this.textModel.getLineLength(Oe.startLineNumber)===0;else return me(Oe)||Oe.containsRange(Ne(this.textModel,Oe.startLineNumber))})}),this.tabShouldJumpToInlineEdit=f(this,(ae)=>{if(this._tabShouldIndent.read(ae))return!1;let me=this.inlineEditState.read(ae);if(!me)return!1;if(me.inlineSuggestion.action?.kind==="jumpTo")return!0;if(this.showCollapsed.read(ae))return!0;if(this._inAcceptFlow.read(ae)&&this._appearedInsideViewport.read(ae))return!1;return!me.cursorAtInlineEdit.read(ae)}),this.tabShouldAcceptInlineEdit=f(this,(ae)=>{let me=this.inlineEditState.read(ae);if(!me)return!1;if(me.inlineSuggestion.action?.kind==="jumpTo")return!1;if(this.showCollapsed.read(ae))return!1;if(this._tabShouldIndent.read(ae))return!1;if(this._inAcceptFlow.read(ae)&&this._appearedInsideViewport.read(ae))return!0;if(me.inlineSuggestion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(ae))return!0;if(this._jumpedToId.read(ae)===me.inlineSuggestion.semanticId)return!0;return me.cursorAtInlineEdit.read(ae)}),this._jumpedToId=j(this,void 0),this._inAcceptFlow=j(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(Im,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition,Df.defaultChatAgent?.completionsEnablementSetting)),this.lastTriggerKind=this._source.inlineCompletions.map(this,(ae)=>ae?.request?.context.triggerKind),this._editorObs=ct(this._editor);let oe=this._editorObs.getOption(134);this._suggestPreviewEnabled=oe.map((ae)=>ae.preview),this._suggestPreviewMode=oe.map((ae)=>ae.previewMode);let le=this._editorObs.getOption(71);this._inlineSuggestMode=le.map((ae)=>ae.mode),this._suppressedInlineCompletionGroupIds=le.map((ae)=>new Set(ae.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=le.map((ae)=>!!ae.edits.enabled),this._inlineEditsShowCollapsedEnabled=le.map((ae)=>ae.edits.showCollapsed),this._triggerCommandOnProviderChange=le.map((ae)=>ae.triggerCommandOnProviderChange),this._minShowDelay=le.map((ae)=>ae.minShowDelay),this._showOnSuggestConflict=le.map((ae)=>ae.experimental.showOnSuggestConflict),this._suppressInSnippetMode=le.map((ae)=>ae.suppressInSnippetMode);let pe=zt.get(this._editor);this._isInSnippetMode=pe?.isInSnippetObservable??De(!1),te.getDefaultAccount().then(kN((ae)=>this.sku.set(s1(ae),void 0),this._store)),this._register(te.onDidChangeDefaultAccount((ae)=>this.sku.set(s1(ae),void 0))),this._typing=this._register(new os(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((ae)=>{if(ae)this.stop()}));{let ae=this.textModel.uri.scheme===se.vscodeNotebookCell,[me]=this._codeEditorService.listDiffEditors().filter((Ne)=>Ne.getOriginalEditor().getId()===this._editor.getId()||Ne.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!me,this.editorType=ae?At.Notebook:this.isInDiffEditor?At.DiffEditor:At.TextEditor}this._register(Yh(this.state,(ae)=>{if(ae&&ae.inlineSuggestion)this._inlineCompletionsService.reportNewCompletion(ae.inlineSuggestion.requestUuid)})),this._register(Yh(this._fetchInlineCompletionsPromise)),this._register(W((ae)=>{this._editorObs.versionId.read(ae),this._inAcceptFlow.set(!1,void 0)})),this._register(W((ae)=>{if(this.state.map((Ne,Me)=>!Ne||Ne.kind==="inlineEdit"&&!Ne.cursorAtInlineEdit.read(Me)).read(ae))this._jumpedToId.set(void 0,void 0)})),this._register(W((ae)=>{let me=this.state.map((Ne)=>Ne?.inlineSuggestion).read(ae);if(me)me.addPerformanceMarker("activeSuggestion")}));let Se=this.inlineEditState.map((ae)=>ae?.inlineSuggestion.semanticId);this._register(W((ae)=>{if(Se.read(ae))this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion}}));let Ce=je(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(n));fd(this,Ce,(ae,me)=>{if(!ae.onDidChangeInlineCompletions)return;me.add(ae.onDidChangeInlineCompletions((Ne)=>{if(!this._enabled.get())return;if((this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor())!==this._editor)return;if(this._triggerCommandOnProviderChange.get()){this.trigger(void 0,{onlyFetchInlineEdits:!0});return}let Oe=this.state.get();if(Oe&&(Oe.inlineSuggestion||Oe.edits)&&Oe.inlineSuggestion?.source.provider!==ae)return;Je((ye)=>{this._fetchSpecificProviderSignal.trigger(ye,{provider:ae,changeHint:Ne??void 0}),this.trigger(ye)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(n){let h=!1,g=!0,p=this?.primaryGhostText.read(n);if(!!this?._selectedSuggestItem&&p&&p.parts.length>0){let{column:m,lines:_}=p.parts[0],v=_[0].line,w=this.textModel.getLineIndentColumn(p.lineNumber);if(m<=w){let E=Yn(v);if(E===-1)E=v.length-1;h=E>0;let R=this.textModel.getOptions().tabSize;g=Lt.visibleColumnFromColumn(v,E+1,R)<R}}return{startsWithIndentation:h,startsWithIndentationLessThanTabSize:g}}_getReason(n){if(n?.isUndoing)return rs.Undo;if(n?.isRedoing)return rs.Redo;if(this.isAcceptingPartially)return rs.AcceptWord;return rs.Other}getAvailableProviders(n){let h=this._suppressedInlineCompletionGroupIds.get(),g=n.filter((_)=>!(_.groupId&&h.has(_.groupId))),p=new Set;for(let _ of g)_.excludesGroupIds?.forEach((v)=>p.add(v));let m=[];for(let _ of g){if(_.groupId&&p.has(_.groupId))continue;m.push(_)}return m}async trigger(n,h={}){pd(n,(g)=>{if(h.onlyFetchInlineEdits)this._onlyRequestInlineEditsSignal.trigger(g);if(h.noDelay)this._noDelaySignal.trigger(g);if(this._isActive.set(!0,g),h.explicit)this._inAcceptFlow.set(!0,g),this._forceUpdateExplicitlySignal.trigger(g);if(h.provider)this._fetchSpecificProviderSignal.trigger(g,{provider:h.provider,changeHint:h.changeHint})}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(n,h=!1){return this.trigger(n,{onlyFetchInlineEdits:h,explicit:!0})}stop(n="automatic",h){pd(h,(g)=>{if(n==="explicitCancel"){let p=this.state.get()?.inlineSuggestion;if(p)p.reportEndOfLife({kind:Cl.Rejected})}this._isActive.set(!1,g),this._source.clear(g)})}_computeAugmentation(n,h){let g=this.textModel,p=this._source.suggestWidgetInlineCompletions.read(h),m=p?p.inlineCompletions.filter((v)=>!v.isInlineEdit):[this.selectedInlineCompletion.read(h)].filter(ni);return q2(m,(v)=>{let w=v.getSingleTextEdit();return w=Go(w,g,t.fromPositions(w.range.getStartPosition(),n.range.getEndPosition())),gm(w,n)?{completion:v,edit:w}:void 0})}async _deltaSelectedInlineCompletionIndex(n){await this.triggerExplicitly();let h=this._inlineCompletionItems.get()||[];if(h.length>0){let g=(this.selectedInlineCompletionIndex.get()+n+h.length)%h.length;this._selectedInlineCompletionId.set(h[g].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(n,h,g=void 0){if(g)return Xn.inlineCompletionPartialAccept({nes:n.isInlineEdit,requestUuid:n.requestUuid,providerId:n.source.provider.providerId,languageId:h,type:g,correlationId:n.getSourceCompletion().correlationId});else return Xn.inlineCompletionAccept({nes:n.isInlineEdit,requestUuid:n.requestUuid,correlationId:n.getSourceCompletion().correlationId,providerId:n.source.provider.providerId,languageId:h})}async accept(n=this._editor,h=!1){if(n.getModel()!==this.textModel)throw new H;let g,p=!1,m=this.state.get();if(m?.kind==="ghostText"){if(!m||m.primaryGhostText.isEmpty()||!m.inlineSuggestion)return;g=m.inlineSuggestion}else if(m?.kind==="inlineEdit")g=m.inlineSuggestion,p=!!m.nextEditUri;else return;g.addRef();try{let _=!1;if(n.pushUndoStop(),!g.originalTextRef.targets(this.textModel)){let v=await this._codeEditorService.openCodeEditor({resource:g.originalTextRef.uri},this._editor);if(v){let C=cm(v)?.model.get();v.focus(),C?.transplantCompletion(g),v.revealLineInCenter(g.targetRange.startLineNumber)}}else if(p);else if(g.action?.kind==="edit"){let v=g.action;if(h&&v.alternativeAction){_=!0;let w=v.alternativeAction.command;await this._commandService.executeCommand(w.id,...w.arguments||[]).then(void 0,yt)}else if(v.snippetInfo){let w=gt.delete(v.textReplacement.range),C=g.additionalTextEdits.map((R)=>new gt(t.lift(R.range),R.text??"")),E=Po.fromParallelReplacementsUnsorted([w,...C]);n.edit(E,this._getMetadata(g,this.textModel.getLanguageId())),n.setPosition(v.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),zt.get(n)?.insert(v.snippetInfo.snippet,{undoStopBefore:!1})}else{let w=m.edits,C=w;if(m.kind==="ghostText")C=ik(w,this.textModel);let E=bw(C).map((X)=>F.fromPositions(X)),R=g.additionalTextEdits.map((X)=>new gt(t.lift(X.range),X.text??"")),Z=Po.fromParallelReplacementsUnsorted([...w,...R]);if(n.edit(Z,this._getMetadata(g,this.textModel.getLanguageId())),g.hint===void 0)n.setSelections(m.kind==="inlineEdit"?E.slice(-1):E,"inlineCompletionAccept");if(m.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){let X=Z.getNewRanges(),Y=this._store.add(new a1(n,X,()=>{this._store.delete(Y)}))}}}if(this._onDidAccept.fire(),this.stop(),g.command)await this._commandService.executeCommand(g.command.id,...g.command.arguments||[]).then(void 0,yt);if(_)this.trigger(void 0);g.reportEndOfLife({kind:Cl.Accepted,alternativeAction:h})}finally{g.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:g}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(n,h)=>{let g=this.textModel.getLanguageIdAtPosition(n.lineNumber,n.column),p=this._languageConfigurationService.getLanguageConfiguration(g),m=new RegExp(p.wordDefinition.source,p.wordDefinition.flags.replace("g","")),_=h.match(m),v=0;if(_&&_.index!==void 0)if(_.index===0)v=_[0].length;else v=_.index;else v=h.length;let C=/\s+/g.exec(h);if(C&&C.index!==void 0){if(C.index+C[0].length<v)v=C.index+C[0].length}return v},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(n,h)=>{let g=h.match(/\n/);if(g&&g.index!==void 0)return g.index+1;return h.length},1)}async _acceptNext(n,h,g,p){if(n.getModel()!==this.textModel)throw new H;let m=this.inlineCompletionState.get();if(!m||m.primaryGhostText.isEmpty()||!m.inlineSuggestion)return;let{primaryGhostText:_,inlineSuggestion:v}=m;if(v.snippetInfo){await this.accept(n);return}let w=_.parts[0],C=new s(_.lineNumber,w.column),E=w.text,R=g(C,E);if(R===E.length&&_.parts.length===1){this.accept(n);return}let Z=E.substring(0,R),X=this._positions.get(),Y=X[0];v.addRef();try{this._isAcceptingPartially=!0;try{n.pushUndoStop();let le=t.fromPositions(Y,C),pe=n.getModel().getValueInRange(le)+Z,Se=new gt(le,pe),Ce=[Se,...Pw(this.textModel,X,Se)].filter(ni),ae=bw(Ce).map((me)=>F.fromPositions(me));n.edit(Po.fromParallelReplacementsUnsorted(Ce),this._getMetadata(v,this.textModel.getLanguageId(),h)),n.setSelections(ae,"inlineCompletionPartialAccept"),n.revealPositionInCenterIfOutsideViewport(n.getPosition(),0)}finally{this._isAcceptingPartially=!1}let Q=t.fromPositions(v.editRange.getStartPosition(),Kt.ofText(Z).addToPosition(C)),oe=n.getModel().getValueInRange(Q,1).length;v.reportPartialAccept(oe,{kind:p,acceptedLength:oe},{characters:R,ratio:R/E.length,count:1})}finally{v.removeRef()}}handleSuggestAccepted(n){let h=Go(n.getSingleTextEdit(),this.textModel),g=this._computeAugmentation(h,void 0);if(!g)return;let m=this.textModel.getValueInRange(g.completion.editRange,1).length+h.text.length;g.completion.reportPartialAccept(h.text.length,{kind:2,acceptedLength:m},{characters:h.text.length,count:1,ratio:1})}extractReproSample(){let n=this.textModel.getValue(),h=this.state.get()?.inlineSuggestion;return{documentValue:n,inlineCompletion:h?.getSourceCompletion()}}jump(){let n=this.inlineEditState.get();if(!n)return;let h=n.inlineSuggestion;if(!h.originalTextRef.targets(this.textModel)){this.accept(this._editor);return}h.addRef();try{Je((g)=>{if(h.action?.kind==="jumpTo")this.stop(void 0,g),h.reportEndOfLife({kind:Cl.Accepted,alternativeAction:!1});this._jumpedToId.set(n.inlineSuggestion.semanticId,g),this.dontRefetchSignal.trigger(g);let p=n.inlineSuggestion.targetRange,m=p.getStartPosition();if(this._editor.setPosition(m,"inlineCompletions.jump"),p.isSingleLine()&&(n.inlineSuggestion.hint||n.inlineSuggestion.action?.kind==="edit"&&!n.inlineSuggestion.action.textReplacement.text.includes(`
|
|
41
|
+
`))||n.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(m,0);else{let v=new t(p.startLineNumber-1,1,p.endLineNumber+1,1);this._editor.revealRange(v,0)}n.inlineSuggestion.identity.setJumpTo(g),this._editor.focus()})}finally{h.removeRef()}}async handleInlineSuggestionShown(n,h,g,p){await n.reportInlineEditShown(this._commandService,h,g,this.textModel,p)}transplantCompletion(n){Je((h)=>{this._source.seedWithCompletion(n,h),this._isActive.set(!0,h),this._inAcceptFlow.set(!0,h),this.dontRefetchSignal.trigger(h)})}};Lm=LN([ea(8,A),ea(9,Ue),ea(10,ht),ea(11,on),ea(12,z),ea(13,Te),ea(14,c_),ea(15,wk)],Lm);var rs;(function(u){u[u.Undo=0]="Undo",u[u.Redo=1]="Redo",u[u.AcceptWord=2]="AcceptWord",u[u.Other=3]="Other"})(rs||(rs={}));function Pw(u,n,h){if(n.length===1)return[];let g=new dp(u),p=g.getTransformer(),m=p.getOffset(n[0]),_=n.slice(1).map((Z)=>p.getOffset(Z));h=h.removeCommonPrefixAndSuffix(g);let v=p.getStringReplacement(h),w=v.replaceRange.start-m,C=v.replaceRange.join(V.emptyAt(m)),E=g.getValueOfOffsetRange(C);return _.map((Z)=>{let X=Z+w,Y=X+v.replaceRange.length,Q=new V(X,Y),te=Q.join(V.emptyAt(Z));if(g.getValueOfOffsetRange(te)!==E)return;let le=new ui(Q,v.newText);return p.getTextReplacement(le)}).filter(ni)}class a1 extends i{constructor(u,n,h){super();if(h)this._register({dispose:()=>h()});this._register(ct(u).setDecorations(De(n.map((p)=>({range:p,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));let g=new Sw(um.startNow(1,0,1000,Ik));this._register(W((p)=>{let m=g.getValue(p);if(u.getContainerDomNode().style.setProperty("--animation-opacity",m.toString()),g.isFinished(p))this.dispose()}))}}function Aw(u,n,h=void 0){let g=n.targetRange;ct(u).scrollTop.read(h);let p=u.getVisibleRanges();if(p.length<1)return!1;return new t(p[0].startLineNumber,p[0].startColumn,p[p.length-1].endLineNumber,p[p.length-1].endColumn).containsRange(g)}function s1(u){if(u?.entitlementsData?.access_type_sku&&u?.entitlementsData?.copilot_plan)return{type:u.entitlementsData.access_type_sku,plan:u.entitlementsData.copilot_plan};return}class d1{constructor(u){this.handler=(n)=>this._cb?.(n),this._cb=u}dispose(){this._cb=void 0}}function kN(u,n){let h=new d1(u);return n.add(h),h.handler}var EN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},DN=function(u,n){return function(h,g){n(h,g,u)}},Fw,Ah=class u{static{Fw=this}static{this.AtEnd=new M("atEndOfWord",!1,{type:"boolean",description:e(1568,"A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled")})}constructor(n,h){this._editor=n,this._enabled=!1,this._ckAtEnd=Fw.AtEnd.bindTo(h),this._configListener=this._editor.onDidChangeConfiguration((g)=>g.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let n=this._editor.getOption(139)==="on";if(this._enabled===n)return;if(this._enabled=n,this._enabled){let h=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let g=this._editor.getModel(),p=this._editor.getSelection(),m=g.getWordAtPosition(p.getStartPosition());if(!m){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(m.endColumn===p.getStartPosition().column&&p.getStartPosition().lineNumber===p.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(h),h()}else if(this._selectionListener)this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0}};Ah=Fw=EN([DN(1,G)],Ah);var TN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},RN=function(u,n){return function(h,g){n(h,g,u)}},Fh,Dd=class u{static{Fh=this}static{this.OtherSuggestions=new M("hasOtherSuggestions",!1)}constructor(n,h){this._editor=n,this._index=0,this._ckOtherSuggestions=Fh.OtherSuggestions.bindTo(h)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:n,index:h},g){if(n.items.length===0){this.reset();return}if(Fh._moveIndex(!0,n,h)===h){this.reset();return}this._acceptNext=g,this._model=n,this._index=h,this._listener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignore)this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(n,h,g){let p=g;for(let m=h.items.length;m>0;m--){if(p=(p+h.items.length+(n?1:-1))%h.items.length,p===g)break;if(!h.items[p].completion.additionalTextEdits)break}return p}next(){this._move(!0)}prev(){this._move(!1)}_move(n){if(!this._model)return;try{this._ignore=!0,this._index=Fh._moveIndex(n,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Dd=Fh=TN([RN(1,G)],Dd);class Hw{constructor(u,n,h,g){this._disposables=new d,this._disposables.add(h.onDidSuggest((p)=>{if(p.completionModel.items.length===0)this.reset()})),this._disposables.add(h.onDidCancel((p)=>{this.reset()})),this._disposables.add(n.onDidShow(()=>this._onItem(n.getFocusedItem()))),this._disposables.add(n.onDidFocus(this._onItem,this)),this._disposables.add(n.onDidHide(this.reset,this)),this._disposables.add(u.onWillType((p)=>{if(this._active&&!n.isFrozen()&&h.state!==0){let m=p.charCodeAt(p.length-1);if(this._active.acceptCharacters.has(m)&&u.getOption(0))g(this._active.item)}}))}_onItem(u){if(!u||!Kn(u.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===u.item)return;let n=new Nf;for(let h of u.item.completion.commitCharacters)if(h.length>0)n.add(h.charCodeAt(0));this._active={acceptCharacters:n,item:u}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class km{static{this._maxSelectionLength=51200}constructor(u,n){this._disposables=new d,this._lastOvertyped=[],this._locked=!1,this._disposables.add(u.onWillType(()=>{if(this._locked||!u.hasModel())return;let h=u.getSelections(),g=h.length,p=!1;for(let _=0;_<g;_++)if(!h[_].isEmpty()){p=!0;break}if(!p){if(this._lastOvertyped.length!==0)this._lastOvertyped.length=0;return}this._lastOvertyped=[];let m=u.getModel();for(let _=0;_<g;_++){let v=h[_];if(m.getValueLengthInRange(v)>km._maxSelectionLength)return;this._lastOvertyped[_]={value:m.getValueInRange(v),multiline:v.startLineNumber!==v.endLineNumber}}})),this._disposables.add(n.onDidTrigger((h)=>{this._locked=!0})),this._disposables.add(n.onDidCancel((h)=>{this._locked=!1}))}getLastOvertypedInfo(u){if(u>=0&&u<this._lastOvertyped.length)return this._lastOvertyped[u];return}dispose(){this._disposables.dispose()}}var NN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Ww=function(u,n){return function(h,g){n(h,g,u)}},Em=class u{constructor(n,h,g,p,m,_){this._menuId=h,this._menuService=m,this._contextKeyService=_,this._menuDisposables=new d,this.element=k(n,x(".suggest-status-bar"));let v=(w)=>{if(g?.showIconsNoKeybindings)return w instanceof Ki?p.createInstance(Pl,w,void 0):void 0;else return w instanceof Ki?p.createInstance(yk,w,{useComma:!1}):void 0};this._leftActions=new Qi(this.element,{actionViewItemProvider:v}),this._rightActions=new Qi(this.element,{actionViewItemProvider:v}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){let n=this._menuService.createMenu(this._menuId,this._contextKeyService),h=()=>{let g=[],p=[];for(let[m,_]of n.getActions())if(m==="left")g.push(..._);else p.push(..._);this._leftActions.clear(),this._leftActions.push(g),this._rightActions.clear(),this._rightActions.push(p)};this._menuDisposables.add(n.onDidChange(()=>h())),this._menuDisposables.add(n)}hide(){this._menuDisposables.clear()}};Em=NN([Ww(3,A),Ww(4,Ai),Ww(5,G)],Em);var MN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},c1=function(u,n){return function(h,g){n(h,g,u)}};function jh(u){return!!u&&Boolean(u.completion.documentation||u.completion.detail&&u.completion.detail!==u.completion.label)}var Dm=class u{constructor(n,h,g){this._editor=n,this._themeService=h,this._markdownRendererService=g,this._onDidClose=new o,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new o,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new d,this._renderDisposeable=new d,this._size=new at(330,0),this.domNode=x(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=x(".body"),this._scrollbar=new Al(this._body,{alwaysConsumeMouseWheel:!0}),k(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=k(this._body,x(".header")),this._close=k(this._header,x("span"+J.asCSSSelector(S.close))),this._close.title=e(1563,"Close"),this._close.ariaLabel=e(1564,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=k(this._header,x("p.type")),this._docs=k(this._body,x("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((p)=>{if(p.hasChanged(59))this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){let n=this._editor.getOptions(),h=n.get(59),g=h.getMassagedFontFamily(),p=n.get(135)||h.fontSize,m=n.get(136)||h.lineHeight,_=h.fontWeight,v=`${p}px`,w=`${m}px`;this.domNode.style.fontSize=v,this.domNode.style.lineHeight=`${m/p}`,this.domNode.style.fontWeight=_,this.domNode.style.fontFeatureSettings=h.fontFeatureSettings,this._type.style.fontFamily=g,this._close.style.height=w,this._close.style.width=w}getLayoutInfo(){let n=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,h=fr(this._themeService.getColorTheme().type)?2:1,g=h*2;return{lineHeight:n,borderWidth:h,borderHeight:g,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=e(1565,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(n,h){this._renderDisposeable.clear();let{detail:g,documentation:p}=n.completion;if(h){let m="";m+=`score: ${n.score[0]}
|
|
42
|
+
`,m+=`prefix: ${n.word??"(no prefix)"}
|
|
43
|
+
`,m+=`word: ${n.completion.filterText?n.completion.filterText+" (filterText)":n.textLabel}
|
|
44
|
+
`,m+=`distance: ${n.distance} (localityBonus-setting)
|
|
45
|
+
`,m+=`index: ${n.idx}, based on ${n.completion.sortText&&`sortText: "${n.completion.sortText}"`||"label"}
|
|
46
|
+
`,m+=`commit_chars: ${n.completion.commitCharacters?.join("")}
|
|
47
|
+
`,p=new Mn().appendCodeblock("empty",m),g=`Provider: ${n.provider._debugDisplayName}`}if(!h&&!jh(n)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),g){let m=g.length>1e5?`${g.substr(0,1e5)}…`:g;this._type.textContent=m,this._type.title=m,Oo(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(m))}else mn(this._type),this._type.title="",po(this._type),this.domNode.classList.add("no-type");if(mn(this._docs),typeof p==="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=p;else if(p){this._docs.classList.add("markdown-docs"),mn(this._docs);let m=this._markdownRendererService.render(p,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(m.element),this._renderDisposeable.add(m)}this.domNode.classList.toggle("detail-and-doc",!!g&&!!p),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=(m)=>{m.preventDefault(),m.stopPropagation()},this._close.onclick=(m)=>{m.preventDefault(),m.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(n,h){let g=new at(n,h);if(!at.equals(g,this._size))this._size=g,j2(this.domNode,n,h);this._scrollbar.scanDomNode()}scrollDown(n=8){this._body.scrollTop+=n}scrollUp(n=8){this._body.scrollTop-=n}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};Dm=MN([c1(1,We),c1(2,Bo)],Dm);class Bw{constructor(u,n){this.widget=u,this._editor=n,this.allowEditorOverflow=!0,this._disposables=new d,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new td,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(u.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let h,g,p=0,m=0;this._disposables.add(this._resizable.onDidWillResize(()=>{h=this._topLeft,g=this._resizable.size})),this._disposables.add(this._resizable.onDidResize((_)=>{if(h&&g){this.widget.layout(_.dimension.width,_.dimension.height);let v=!1;if(_.west)m=g.width-_.dimension.width,v=!0;if(_.north)p=g.height-_.dimension.height,v=!0;if(v)this._applyTopLeft({top:h.top+p,left:h.left+m})}if(_.done)h=void 0,g=void 0,p=0,m=0,this._userSize=_.dimension})),this._disposables.add(this.widget.onDidChangeContents(()=>{if(this._anchorBox)this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){if(!this._added)this._editor.addOverlayWidget(this),this._added=!0}hide(u=!1){if(this._resizable.clearSashHoverState(),this._added)this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0;if(u)this._userSize=void 0,this.widget.clearContents()}placeAtAnchor(u,n){let h=u.getBoundingClientRect();this._anchorBox=h,this._preferAlignAtTop=n,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,n)}_placeAtAnchor(u,n,h){let g=ua(this.getDomNode().ownerDocument.body),p=this.widget.getLayoutInfo(),m=new at(220,2*p.lineHeight),_=u.top,v=function(){let ae=g.width-(u.left+u.width+p.borderWidth+p.horizontalPadding),me=-p.borderWidth+u.left+u.width,Ne=new at(ae,g.height-u.top-p.borderHeight-p.verticalPadding),Me=Ne.with(void 0,u.top+u.height-p.borderHeight-p.verticalPadding);return{top:_,left:me,fit:ae-n.width,maxSizeTop:Ne,maxSizeBottom:Me,minSize:m.with(Math.min(ae,m.width))}}(),w=function(){let ae=u.left-p.borderWidth-p.horizontalPadding,me=Math.max(p.horizontalPadding,u.left-n.width-p.borderWidth),Ne=new at(ae,g.height-u.top-p.borderHeight-p.verticalPadding),Me=Ne.with(void 0,u.top+u.height-p.borderHeight-p.verticalPadding);return{top:_,left:me,fit:ae-n.width,maxSizeTop:Ne,maxSizeBottom:Me,minSize:m.with(Math.min(ae,m.width))}}(),C=function(){let ae=u.left,me=-p.borderWidth+u.top+u.height,Ne=new at(u.width-p.borderHeight,g.height-u.top-u.height-p.verticalPadding);return{top:me,left:ae,fit:Ne.height-n.height,maxSizeBottom:Ne,maxSizeTop:Ne,minSize:m.with(Ne.width)}}(),E=function(){let ae=u.left,me=new at(u.width-p.borderHeight,u.top-p.verticalPadding);return{top:Math.max(p.verticalPadding,u.top-n.height),left:ae,fit:me.height-n.height,maxSizeTop:me,maxSizeBottom:me,minSize:m.with(me.width)}}(),Z=[v,w,h?C:E],X=Z.find((ae)=>ae.fit>=0)??Z.sort((ae,me)=>me.fit-ae.fit)[0],Y=u.top+u.height-p.borderHeight,Q,te=n.height,oe=Math.max(X.maxSizeTop.height,X.maxSizeBottom.height);if(te>oe)te=oe;let le;if(h)if(te<=X.maxSizeTop.height)Q=!0,le=X.maxSizeTop;else Q=!1,le=X.maxSizeBottom;else if(te<=X.maxSizeBottom.height)Q=!1,le=X.maxSizeBottom;else Q=!0,le=X.maxSizeTop;let{top:pe,left:Se}=X;if(X===E)pe=u.top-te+p.borderWidth;else if(!Q&&te>u.height)pe=Y-te;let Ce=this._editor.getDomNode();if(Ce){let ae=Ce.getBoundingClientRect();pe-=ae.top,Se-=ae.left}if(this._applyTopLeft({left:Se,top:pe}),X===E)this._resizable.enableSashes(!0,!1,!1,!0);else this._resizable.enableSashes(!Q,X===v,Q,X!==v);this._resizable.minSize=X.minSize,this._resizable.maxSize=le,this._resizable.layout(te,Math.min(le.width,n.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(u){this._topLeft=u,this._editor.layoutOverlayWidget(this)}}var hR=ie("fileService"),Vo;(function(u){u[u.FILE=0]="FILE",u[u.FOLDER=1]="FOLDER",u[u.ROOT_FOLDER=2]="ROOT_FOLDER"})(Vo||(Vo={}));var ON=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Td(u,n,h,g,p){if(J.isThemeIcon(p))return[`codicon-${p.id}`,"predefined-file-icon"];if(q.isUri(p))return[];let m=g===Vo.ROOT_FOLDER?["rootfolder-icon"]:g===Vo.FOLDER?["folder-icon"]:["file-icon"];if(h){let _;if(h.scheme===se.data)_=fu.parseMetaData(h).get(fu.META_DATA_LABEL);else{let v=h.path.match(ON);if(v){if(_=Tm(v[2].toLowerCase()),v[1])m.push(`${Tm(v[1].toLowerCase())}-name-dir-icon`)}else _=Tm(h.authority.toLowerCase())}if(g===Vo.ROOT_FOLDER)m.push(`${_}-root-name-folder-icon`);else if(g===Vo.FOLDER)m.push(`${_}-name-folder-icon`);else{if(_){if(m.push(`${_}-name-file-icon`),m.push("name-file-icon"),_.length<=255){let w=_.split(".");for(let C=1;C<w.length;C++)m.push(`${w.slice(C).join(".")}-ext-file-icon`)}m.push("ext-file-icon")}let v=PN(u,n,h);if(v)m.push(`${Tm(v)}-lang-file-icon`)}}return m}function PN(u,n,h){if(!h)return null;let g=null;if(h.scheme===se.data){let m=fu.parseMetaData(h).get(fu.META_DATA_MIME);if(m)g=n.getLanguageIdByMimeType(m)}else{let p=u.getModel(h);if(p)g=p.getLanguageId()}if(g&&g!==lo)return g;return n.guessLanguageIdByFilepathOrFirstLine(h)}function Tm(u){return u.replace(/[\s]/g,"/")}var AN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Vw=function(u,n){return function(h,g){n(h,g,u)}},FN=Pt("suggest-more-info",S.chevronRight,e(1566,"Icon for more information in the suggest widget.")),HN=new class u{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=new RegExp(`^${u._regexRelaxed.source}$`,"i")}extract(n,h){if(n.textLabel.match(u._regexStrict))return h[0]=n.textLabel,!0;if(n.completion.detail&&n.completion.detail.match(u._regexStrict))return h[0]=n.completion.detail,!0;if(n.completion.documentation){let g=typeof n.completion.documentation==="string"?n.completion.documentation:n.completion.documentation.value,p=u._regexRelaxed.exec(g);if(p&&(p.index===0||p.index+p[0].length===g.length))return h[0]=p[0],!0}return!1}},Rm=class u{constructor(n,h,g,p){this._editor=n,this._modelService=h,this._languageService=g,this._themeService=p,this._onDidToggleDetails=new o,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(n){let h=new d,g=n;g.classList.add("show-file-icons");let p=k(n,x(".icon")),m=k(p,x("span.colorspan")),_=k(n,x(".contents")),v=k(_,x(".main")),w=k(v,x(".icon-label.codicon")),C=k(v,x("span.left")),E=k(v,x("span.right")),R=new Cu(C,{supportHighlights:!0,supportIcons:!0});h.add(R);let Z=k(C,x("span.signature-label")),X=k(C,x("span.qualifier-label")),Y=k(E,x("span.details-label")),Q=k(E,x("span.readMore"+J.asCSSSelector(FN)));return Q.title=e(1567,"Read More"),{root:g,left:C,right:E,icon:p,colorspan:m,iconLabel:R,iconContainer:w,parametersLabel:Z,qualifierLabel:X,detailsLabel:Y,readMore:Q,disposables:h,configureFont:()=>{let oe=this._editor.getOptions(),le=oe.get(59),pe=le.getMassagedFontFamily(),{fontFeatureSettings:Se,fontVariationSettings:Ce}=le,ae=oe.get(135)||le.fontSize,me=oe.get(136)||le.lineHeight,{fontWeight:Ne,letterSpacing:Me}=le,Oe=`${ae}px`,ye=`${me}px`,Pe=`${Me}px`;g.style.fontSize=Oe,g.style.fontWeight=Ne,g.style.letterSpacing=Pe,v.style.fontFamily=pe,v.style.fontFeatureSettings=Se,v.style.fontVariationSettings=Ce,v.style.lineHeight=ye,p.style.height=ye,p.style.width=ye,Q.style.height=ye,Q.style.width=ye}}}renderElement(n,h,g){g.configureFont();let{completion:p}=n;g.colorspan.style.backgroundColor="";let m={labelEscapeNewLines:!0,matches:sp(n.score)},_=[];if(p.kind===19&&HN.extract(n,_))g.icon.className="icon customcolor",g.iconContainer.className="icon hide",g.colorspan.style.backgroundColor=_[0];else if(p.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){g.icon.className="icon hide",g.iconContainer.className="icon hide";let v=Td(this._modelService,this._languageService,q.from({scheme:"fake",path:n.textLabel}),Vo.FILE),w=Td(this._modelService,this._languageService,q.from({scheme:"fake",path:p.detail}),Vo.FILE);m.extraClasses=v.length>w.length?v:w}else if(p.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons)g.icon.className="icon hide",g.iconContainer.className="icon hide",m.extraClasses=[Td(this._modelService,this._languageService,q.from({scheme:"fake",path:n.textLabel}),Vo.FOLDER),Td(this._modelService,this._languageService,q.from({scheme:"fake",path:p.detail}),Vo.FOLDER)].flat();else g.icon.className="icon hide",g.iconContainer.className="",g.iconContainer.classList.add("suggest-icon",...J.asClassNameArray(qh.toIcon(p.kind)));if(p.tags&&p.tags.indexOf(1)>=0)m.extraClasses=(m.extraClasses||[]).concat(["deprecated"]),m.matches=[];if(g.iconLabel.setLabel(n.textLabel,void 0,m),typeof p.label==="string")g.parametersLabel.textContent="",g.detailsLabel.textContent=zw(p.detail||""),g.root.classList.add("string-label");else g.parametersLabel.textContent=zw(p.label.detail||""),g.detailsLabel.textContent=zw(p.label.description||""),g.root.classList.remove("string-label");if(this._editor.getOption(134).showInlineDetails)Oo(g.detailsLabel);else po(g.detailsLabel);if(jh(n))g.right.classList.add("can-expand-details"),Oo(g.readMore),g.readMore.onmousedown=(v)=>{v.stopPropagation(),v.preventDefault()},g.readMore.onclick=(v)=>{v.stopPropagation(),v.preventDefault(),this._onDidToggleDetails.fire()};else g.right.classList.remove("can-expand-details"),po(g.readMore),g.readMore.onmousedown=null,g.readMore.onclick=null}disposeTemplate(n){n.disposables.dispose()}};Rm=AN([Vw(1,Et),Vw(2,xt),Vw(3,We)],Rm);function zw(u){return u.replace(/\r\n|\r|\n/g,"")}var WN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Nm=function(u,n){return function(h,g){n(h,g,u)}},qc,Mm=a("editorSuggestWidget.background",Ho,e(1545,"Background color of the suggest widget."));a("editorSuggestWidget.border",Pf,e(1546,"Border color of the suggest widget."));var Kw=a("editorSuggestWidget.foreground",qa,e(1547,"Foreground color of the suggest widget.")),l1=a("editorSuggestWidget.selectedForeground",{dark:vd,light:vd,hcDark:Mm,hcLight:Mm},e(1548,"Foreground color of the selected entry in the suggest widget."));a("editorSuggestWidget.selectedIconForeground",{dark:Mg,light:Mg,hcDark:Mm,hcLight:Mm},e(1549,"Icon foreground color of the selected entry in the suggest widget."));var BN=a("editorSuggestWidget.selectedBackground",{dark:yd,light:yd,hcDark:Kw,hcLight:Kw},e(1550,"Background color of the selected entry in the suggest widget.")),VN=a("editorSuggestWidget.focusOutline",Xt,e(1551,"Outline color of the focused (keyboard-navigated) entry in the suggest widget."));a("editorSuggestWidget.highlightForeground",Bf,e(1552,"Color of the match highlights in the suggest widget."));a("editorSuggestWidget.focusHighlightForeground",{dark:Y0,light:Y0,hcDark:l1,hcLight:l1},e(1553,"Color of the match highlights in the suggest widget when an item is focused."));a("editorSuggestWidgetStatus.foreground",be(Kw,0.5),e(1554,"Foreground color of the suggest widget status."));class h1{constructor(u,n){this._service=u,this._key=`suggestWidget.size/${n.getEditorType()}/${n instanceof Wi}`}restore(){let u=this._service.get(this._key,0)??"";try{let n=JSON.parse(u);if(at.is(n))return at.lift(n)}catch{}return}store(u){this._service.store(this._key,JSON.stringify(u),0,1)}reset(){this._service.remove(this._key,0)}}var Om=class u{static{qc=this}static{this.LOADING_MESSAGE=e(1555,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=e(1556,"No suggestions.")}constructor(n,h,g,p,m){this.editor=n,this._storageService=h,this._state=0,this._isAuto=!1,this._loadingTimeout=new de,this._pendingLayout=new de,this._pendingShowDetails=new de,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new di,this._disposables=new d,this._onDidSelect=new hc,this._onDidFocus=new hc,this._onDidHide=new o,this._onDidShow=new o,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new o,this.element=new td,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new u1(this,n),this._persistedSize=new h1(h,n);class _{constructor(Y,Q,te=!1,oe=!1){this.persistedSize=Y,this.currentSize=Q,this.persistHeight=te,this.persistWidth=oe}}let v;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),v=new _(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize((Y)=>{if(this._resize(Y.dimension.width,Y.dimension.height),v)v.persistHeight=v.persistHeight||!!Y.north||!!Y.south,v.persistWidth=v.persistWidth||!!Y.east||!!Y.west;if(!Y.done)return;if(v){let{itemHeight:Q,defaultSize:te}=this.getLayoutInfo(),oe=Math.round(Q/2),{width:le,height:pe}=this.element.size;if(!v.persistHeight||Math.abs(v.currentSize.height-pe)<=oe)pe=v.persistedSize?.height??te.height;if(!v.persistWidth||Math.abs(v.currentSize.width-le)<=oe)le=v.persistedSize?.width??te.width;this._persistedSize.store(new at(le,pe))}this._contentWidget.unlockPreference(),v=void 0})),this._messageElement=k(this.element.domNode,x(".message")),this._listElement=k(this.element.domNode,x(".tree"));let w=this._disposables.add(m.createInstance(Dm,this.editor));w.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new Bw(w,this.editor);let C=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);C();let E=()=>this.element.domNode.classList.toggle("fit-width-to-details",this.editor.getOption(134).fitWidthToDetails);E();let R=m.createInstance(Rm,this.editor);this._disposables.add(R),this._disposables.add(R.onDidToggleDetails(()=>this.toggleDetails())),this._list=new So("SuggestWidget",this._listElement,{getHeight:(Y)=>this.getLayoutInfo().itemHeight,getTemplateId:(Y)=>"suggestion"},[R],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>nn?"listitem":"option",getWidgetAriaLabel:()=>e(1557,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:(Y)=>{let Q=Y.textLabel,te=qh.toLabel(Y.completion.kind);if(typeof Y.completion.label!=="string"){let{detail:Se,description:Ce}=Y.completion.label;if(Se&&Ce)Q=e(1558,"{0} {1}, {2}, {3}",Q,Se,Ce,te);else if(Se)Q=e(1559,"{0} {1}, {2}",Q,Se,te);else if(Ce)Q=e(1560,"{0}, {1}, {2}",Q,Ce,te)}else Q=e(1561,"{0}, {1}",Q,te);if(!Y.isResolved||!this._isDetailsVisible())return Q;let{documentation:oe,detail:le}=Y.completion,pe=Va("{0}{1}",le||"",oe?typeof oe==="string"?oe:oe.value:"");return e(1562,"{0}, docs: {1}",Q,pe)}}}),this._list.style(Cd({listInactiveFocusBackground:BN,listInactiveFocusOutline:VN})),this._status=m.createInstance(Em,this.element.domNode,er,void 0);let Z=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);Z(),this._disposables.add(this._list.onMouseDown((Y)=>this._onListMouseDownOrTap(Y))),this._disposables.add(this._list.onTap((Y)=>this._onListMouseDownOrTap(Y))),this._disposables.add(this._list.onDidChangeSelection((Y)=>this._onListSelection(Y))),this._disposables.add(this._list.onDidChangeFocus((Y)=>this._onListFocus(Y))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration((Y)=>{if(Y.hasChanged(134))Z(),C(),E();if(this._completionModel&&(Y.hasChanged(59)||Y.hasChanged(135)||Y.hasChanged(136)))this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=Fe.Visible.bindTo(g),this._ctxSuggestWidgetDetailsVisible=Fe.DetailsVisible.bindTo(g),this._ctxSuggestWidgetMultipleSuggestions=Fe.MultipleSuggestions.bindTo(g),this._ctxSuggestWidgetHasFocusedSuggestion=Fe.HasFocusedSuggestion.bindTo(g),this._ctxSuggestWidgetDetailsFocused=Fe.DetailsFocused.bindTo(g);let X=yi(this._details.widget.domNode);this._disposables.add(X),this._disposables.add(X.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(X.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(Ct(this._details.widget.domNode,"keydown",(Y)=>{this._onDetailsKeydown.fire(Y)})),this._disposables.add(this.editor.onMouseDown((Y)=>this._onEditorMouseDown(Y)))}dispose(){this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),this._loadingTimeout.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose(),this._onDidSelect.dispose(),this._onDidFocus.dispose(),this._onDidHide.dispose(),this._onDidShow.dispose(),this._onDetailsKeydown.dispose()}_onEditorMouseDown(n){if(this._details.widget.domNode.contains(n.target.element))this._details.widget.domNode.focus();else if(this.element.domNode.contains(n.target.element))this.editor.focus()}_onCursorSelectionChanged(){if(this._state!==0)this._contentWidget.layout()}_onListMouseDownOrTap(n){if(typeof n.element>"u"||typeof n.index>"u")return;n.browserEvent.preventDefault(),n.browserEvent.stopPropagation(),this._select(n.element,n.index)}_onListSelection(n){if(n.elements.length)this._select(n.elements[0],n.indexes[0])}_select(n,h){let g=this._completionModel;if(g)this._onDidSelect.fire({item:n,index:h,model:g}),this.editor.focus()}_onListFocus(n){if(this._ignoreFocusEvents)return;if(this._state===5)this._setState(3);if(!n.elements.length){if(this._currentSuggestionDetails)this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0;this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);let h=n.elements[0],g=n.indexes[0];if(h!==this._focusedItem)this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=h,this._list.reveal(g),this._currentSuggestionDetails=Zt(async(p)=>{let m=bi(()=>{if(this._isDetailsVisible())this._showDetails(!0,!1)},250),_=p.onCancellationRequested(()=>m.dispose());try{return await h.resolve(p)}finally{m.dispose(),_.dispose()}}),this._currentSuggestionDetails.then(()=>{if(g>=this._list.length||h!==this._list.element(g))return;if(this._ignoreFocusEvents=!0,this._list.splice(g,1,[h]),this._list.setFocus([g]),this._ignoreFocusEvents=!1,this._isDetailsVisible())this._showDetails(!1,!1);else this.element.domNode.classList.remove("docs-side");this.editor.setAriaOptions({activeDescendant:this._list.getElementID(g)})}).catch(ee);this._onDidFocus.fire({item:h,index:g,model:this._completionModel})}_setState(n){if(this._state===n)return;switch(this._state=n,this.element.domNode.classList.toggle("frozen",n===4),this.element.domNode.classList.remove("message"),n){case 0:po(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=qc.LOADING_MESSAGE,po(this._listElement,this._status.element),Oo(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,jo(qc.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=qc.NO_SUGGESTIONS_MESSAGE,po(this._listElement,this._status.element),Oo(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,jo(qc.NO_SUGGESTIONS_MESSAGE);break;case 3:po(this._messageElement),Oo(this._listElement,this._status.element),this._show();break;case 4:po(this._messageElement),Oo(this._listElement,this._status.element),this._show();break;case 5:po(this._messageElement),Oo(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(n,h){if(this._state!==0)return;if(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!n,!this._isAuto)this._loadingTimeout.value=bi(()=>this._setState(1),h)}showSuggestions(n,h,g,p,m){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==n)this._completionModel=n;if(g&&this._state!==2&&this._state!==0){this._setState(4);return}let _=this._completionModel.items.length,v=_===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(_>1),v){this._setState(p?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(g?4:3),this._list.reveal(h,0,h===0?0:this.getLayoutInfo().itemHeight*0.33),this._list.setFocus(m?[]:[h])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=uy(B(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){if(this._list.length>0)this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel};return}toggleDetailsFocus(){if(this._state===5)this._list.setFocus(this._list.getFocus()),this._setState(3);else if(this._state===3)if(this._setState(5),!this._isDetailsVisible())this.toggleDetails(!0);else this._details.widget.focus()}toggleDetails(n=!1){if(this._isDetailsVisible())this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details");else if((jh(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4))this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this._showDetails(!1,n)}_showDetails(n,h){this._pendingShowDetails.value=uy(B(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let g=!1;if(n)this._details.widget.renderLoading();else this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode);if(!this._details.widget.isEmpty){if(this._positionDetails(),this.element.domNode.classList.add("shows-details"),h)this._details.widget.focus(),g=!0}else this._details.hide();if(!g)this.editor.focus()})}toggleExplainMode(){if(this._list.getFocusedElements()[0])if(this._explainMode=!this._explainMode,!this._isDetailsVisible())this.toggleDetails();else this._showDetails(!1,!1)}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout.clear(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();let n=this._persistedSize.restore(),h=Math.ceil(this.getLayoutInfo().itemHeight*4.3);if(n&&n.height<h)this._persistedSize.store(n.with(void 0,h))}isFrozen(){return this._state===4}_afterRender(n){if(n===null){if(this._isDetailsVisible())this._details.hide();return}if(this._state===2||this._state===1)return;if(this._isDetailsVisible()&&!this._details.widget.isEmpty)this._details.show();this._positionDetails()}_layout(n){if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;let h=ua(this.element.domNode.ownerDocument.body),g=this.getLayoutInfo();if(!n)n=g.defaultSize;let p=n.height,m=n.width;if(this._status.element.style.height=`${g.itemHeight}px`,this._state===2||this._state===1)p=g.itemHeight+g.borderHeight,m=g.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new at(m,p),this._contentWidget.setPreference(2);else{let _=h.width-g.borderHeight-2*g.horizontalPadding;if(m>_)m=_;let v=this._completionModel?this._completionModel.stats.pLabelLen*g.typicalHalfwidthCharacterWidth:m;if(this.editor.getOption(134).fitWidthToDetails&&this._completionModel&&!this._persistedSize.restore()){let le=Math.min(_,this.editor.getLayoutInfo().width),pe=Math.min(le,this._measureContentWidth(g));m=Math.max(m,pe),v=Math.max(v,pe)}let w=g.statusBarHeight+this._list.contentHeight+g.borderHeight,C=g.itemHeight+g.statusBarHeight,E=kt(this.editor.getDomNode()),R=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),Z=E.top+R.top+R.height,X=Math.min(h.height-Z-g.verticalPadding,w),Y=E.top+R.top-g.verticalPadding,Q=Math.min(Y,w),te=Math.min(Math.max(Q,X)+g.borderHeight,w);if(p===this._cappedHeight?.capped)p=this._cappedHeight.wanted;if(p<C)p=C;if(p>te)p=te;let oe=150;if(p>X&&Q>X||this._forceRenderingAbove&&Y>oe)this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),te=Q;else this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),te=X;this.element.preferredSize=new at(v,g.defaultSize.height),this.element.maxSize=new at(_,te),this.element.minSize=new at(220,C),this._cappedHeight=p===w?{wanted:this._cappedHeight?.wanted??n.height,capped:p}:void 0}this._resize(m,p)}_resize(n,h){let{width:g,height:p}=this.element.maxSize;n=Math.min(g,n),h=Math.min(p,h);let{statusBarHeight:m}=this.getLayoutInfo();this._list.layout(h-m,n),this._listElement.style.height=`${h-m}px`,this.element.layout(h,n),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){if(this._isDetailsVisible())this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}_measureContentWidth(n){let h=this._completionModel;if(!h)return 0;if(this._fitContentWidth?.model===h)return this._fitContentWidth.width;if(this._measureContext===void 0)this._measureContext=x("canvas").getContext("2d");let g;if(this._measureContext){let _=this.editor.getOptions(),v=_.get(59),w=_.get(135)||v.fontSize;this._measureContext.font=`${v.fontWeight} ${w}px ${v.getMassagedFontFamily()}`,g=0;for(let C of h.items){let{completion:E}=C,R=C.textLabel;if(typeof E.label==="string")R+=E.detail??"";else R+=(E.label.detail??"")+(E.label.description??"");g=Math.max(g,this._measureContext.measureText(R).width)}}else g=h.stats.pLabelLen*n.typicalHalfwidthCharacterWidth;let p=2*n.itemHeight+2*n.horizontalPadding+20,m=g+p;return this._fitContentWidth={model:h,width:m},m}getLayoutInfo(){let n=this.editor.getOption(59),h=Gi(this.editor.getOption(136)||n.lineHeight,8,1000),g=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:h,p=this._details.widget.getLayoutInfo().borderWidth,m=2*p;return{itemHeight:h,statusBarHeight:g,borderWidth:p,borderHeight:m,typicalHalfwidthCharacterWidth:n.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new at(430,g+12*h)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(n){this._storageService.store("expandSuggestionDocs",n,0,0)}forceRenderingAbove(){if(!this._forceRenderingAbove)this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore())}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Om=qc=WN([Nm(1,Pn),Nm(2,G),Nm(3,We),Nm(4,A)],Om);class u1{constructor(u,n){this._widget=u,this._editor=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){if(this._added)this._added=!1,this._editor.removeContentWidget(this)}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){if(this._hidden=!1,!this._added)this._added=!0,this._editor.addContentWidget(this)}hide(){if(!this._hidden)this._hidden=!0,this.layout()}layout(){this._editor.layoutContentWidget(this)}getPosition(){if(this._hidden||!this._position||!this._preference)return null;return{position:this._position,preference:[this._preference]}}beforeRender(){let{height:u,width:n}=this._widget.element.size,{borderWidth:h,horizontalPadding:g}=this._widget.getLayoutInfo();return new at(n+2*h+g,u+2*h)}afterRender(u){this._widget._afterRender(u)}setPreference(u){if(!this._preferenceLocked)this._preference=u}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(u){this._position=u}}var zN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},jc=function(u,n){return function(h,g){n(h,g,u)}},Uw;class g1{constructor(u,n){if(this._model=u,this._position=n,this._decorationOptions=ue.register({description:"suggest-line-suffix",stickiness:1}),u.getLineMaxColumn(n.lineNumber)!==n.column){let g=u.getOffsetAt(n),p=u.getPositionAt(g+1);u.changeDecorations((m)=>{if(this._marker)m.removeDecoration(this._marker);this._marker=m.addDecoration(t.fromPositions(n,p),this._decorationOptions)})}}dispose(){if(this._marker&&!this._model.isDisposed())this._model.changeDecorations((u)=>{u.removeDecoration(this._marker),this._marker=void 0})}delta(u){if(this._model.isDisposed()||this._position.lineNumber!==u.lineNumber)return 0;if(this._marker){let n=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(n.getStartPosition())-this._model.getOffsetAt(u)}else return this._model.getLineMaxColumn(u.lineNumber)-u.column}}var xn=class u{static{Uw=this}static{this.ID="editor.contrib.suggestController"}static get(n){return n.getContribution(Uw.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(n,h,g,p,m,_,v){this._memoryService=h,this._commandService=g,this._contextKeyService=p,this._instantiationService=m,this._logService=_,this._telemetryService=v,this._lineSuffix=new de,this._toDispose=new d,this._selectors=new p1((R)=>R.priority),this._onWillInsertSuggestItem=new o,this._wantsForceRenderingAbove=!1,this.editor=n,this.model=m.createInstance(Fc,this.editor),this._selectors.register({priority:0,select:(R,Z,X)=>this._memoryService.select(R,Z,X)});let w=Fe.InsertMode.bindTo(p);w.set(n.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>w.set(n.getOption(134).insertMode))),this.widget=this._toDispose.add(new H0(B(n.getDomNode()),()=>{let R=this._instantiationService.createInstance(Om,this.editor);this._toDispose.add(R),this._toDispose.add(R.onDidSelect((te)=>this._insertSuggestion(te,0),this));let Z=new Hw(this.editor,R,this.model,(te)=>this._insertSuggestion(te,2));this._toDispose.add(Z);let X=Fe.MakesTextEdit.bindTo(this._contextKeyService),Y=Fe.HasInsertAndReplaceRange.bindTo(this._contextKeyService),Q=Fe.CanResolve.bindTo(this._contextKeyService);if(this._toDispose.add(N(()=>{X.reset(),Y.reset(),Q.reset()})),this._toDispose.add(R.onDidFocus(({item:te})=>{let oe=this.editor.getPosition(),le=te.editStart.column,pe=oe.column,Se=!0;if(this.editor.getOption(1)==="smart"&&this.model.state===2&&!te.completion.additionalTextEdits&&!(te.completion.insertTextRules&4)&&pe-le===te.completion.insertText.length)Se=this.editor.getModel().getValueInRange({startLineNumber:oe.lineNumber,startColumn:le,endLineNumber:oe.lineNumber,endColumn:pe})!==te.completion.insertText;X.set(Se),Y.set(!s.equals(te.editInsertEnd,te.editReplaceEnd)),Q.set(Boolean(te.provider.resolveCompletionItem)||Boolean(te.completion.documentation)||te.completion.detail!==te.completion.label)})),this._wantsForceRenderingAbove)R.forceRenderingAbove();return R})),this._overtypingCapturer=this._toDispose.add(new H0(B(n.getDomNode()),()=>this._toDispose.add(new km(this.editor,this.model)))),this._alternatives=this._toDispose.add(new H0(B(n.getDomNode()),()=>this._toDispose.add(new Dd(this.editor,this._contextKeyService)))),this._toDispose.add(m.createInstance(Ah,n)),this._toDispose.add(this.model.onDidTrigger((R)=>{this.widget.value.showTriggered(R.auto,R.shy?250:50),this._lineSuffix.value=new g1(this.editor.getModel(),R.position)})),this._toDispose.add(this.model.onDidSuggest((R)=>{if(R.triggerOptions.shy)return;let Z=-1;for(let Y of this._selectors.itemsOrderedByPriorityDesc)if(Z=Y.select(this.editor.getModel(),this.editor.getPosition(),R.completionModel.items),Z!==-1)break;if(Z===-1)Z=0;if(this.model.state===0)return;let X=!1;if(R.triggerOptions.auto){let Y=this.editor.getOption(134);if(Y.selectionMode==="never"||Y.selectionMode==="always")X=Y.selectionMode==="never";else if(Y.selectionMode==="whenTriggerCharacter")X=R.triggerOptions.triggerKind!==1;else if(Y.selectionMode==="whenQuickSuggestion")X=R.triggerOptions.triggerKind===1&&!R.triggerOptions.refilter}this.widget.value.showSuggestions(R.completionModel,Z,R.isFrozen,R.triggerOptions.auto,X)})),this._toDispose.add(this.model.onDidCancel((R)=>{if(!R.retrigger)this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let C=Fe.AcceptSuggestionsOnEnter.bindTo(p),E=()=>{let R=this.editor.getOption(1);C.set(R==="on"||R==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>E())),E()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(n,h){if(!n||!n.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let g=zt.get(this.editor);if(!g)return;this._onWillInsertSuggestItem.fire({item:n.item});let p=this.editor.getModel(),m=p.getAlternativeVersionId(),{item:_}=n,v=[],w=new qe;if(!(h&1))this.editor.pushUndoStop();let C=this.getOverwriteInfo(_,Boolean(h&8));this._memoryService.memorize(p,this.editor.getPosition(),_);let E=_.isResolved,R=-1,Z=-1;if(Array.isArray(_.completion.additionalTextEdits)){this.model.cancel();let Y=ns.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",_.completion.additionalTextEdits.map((Q)=>{let te=t.lift(Q.range);if(te.startLineNumber===_.position.lineNumber&&te.startColumn>_.position.column){let oe=this.editor.getPosition().column-_.position.column,le=oe,pe=t.spansMultipleLines(te)?0:oe;te=new t(te.startLineNumber,te.startColumn+le,te.endLineNumber,te.endColumn+pe)}return Yt.replaceMove(te,Q.text)})),Y.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!E){let Y=new dn,Q,te=p.onDidChangeContent((Se)=>{if(Se.isFlush){w.cancel(),te.dispose();return}for(let Ce of Se.changes){let ae=t.getEndPosition(Ce.range);if(!Q||s.isBefore(ae,Q))Q=ae}}),oe=h;h|=2;let le=!1,pe=this.editor.onWillType(()=>{if(pe.dispose(),le=!0,!(oe&2))this.editor.pushUndoStop()});v.push(_.resolve(w.token).then(()=>{if(!_.completion.additionalTextEdits||w.token.isCancellationRequested)return;if(Q&&_.completion.additionalTextEdits.some((Ce)=>s.isBefore(Q,t.getStartPosition(Ce.range))))return!1;if(le)this.editor.pushUndoStop();let Se=ns.capture(this.editor);if(this.editor.executeEdits("suggestController.additionalTextEdits.async",_.completion.additionalTextEdits.map((Ce)=>Yt.replaceMove(t.lift(Ce.range),Ce.text))),Se.restoreRelativeVerticalPositionOfCursor(this.editor),le||!(oe&2))this.editor.pushUndoStop();return!0}).then((Se)=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",Y.elapsed(),Se),Z=Se===!0?1:Se===!1?0:-2}).finally(()=>{te.dispose(),pe.dispose()}))}let{insertText:X}=_.completion;if(!(_.completion.insertTextRules&4))X=go.escape(X);if(this.model.cancel(),g.insert(X,{overwriteBefore:C.overwriteBefore,overwriteAfter:C.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(_.completion.insertTextRules&1),clipboardText:n.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:Xn.suggest({providerId:ay.fromExtensionId(_.extensionId?.value)})}),!(h&2))this.editor.pushUndoStop();if(_.completion.command)if(_.completion.command.id===Pm.id)this.model.trigger({auto:!0,retrigger:!0});else{let Y=new dn;v.push(this._commandService.executeCommand(_.completion.command.id,..._.completion.command.arguments?[..._.completion.command.arguments]:[]).catch((Q)=>{if(_.completion.extensionId)yt(Q);else ee(Q)}).finally(()=>{R=Y.elapsed()}))}if(h&4)this._alternatives.value.set(n,(Y)=>{w.cancel();while(p.canUndo()){if(m!==p.getAlternativeVersionId())p.undo();this._insertSuggestion(Y,3|(h&8?8:0));break}});this._alertCompletionItem(_),Promise.all(v).finally(()=>{this._reportSuggestionAcceptedTelemetry(_,p,E,R,Z,n.index,n.model.items),this.model.clear(),w.dispose()})}_reportSuggestionAcceptedTelemetry(n,h,g,p,m,_,v){if(Math.random()>0.0001)return;let w=new Map;for(let Z=0;Z<Math.min(30,v.length);Z++){let X=v[Z].textLabel;if(w.has(X))w.get(X).push(Z);else w.set(X,[Z])}let C=w.get(n.textLabel),R=C&&C.length>1?C[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:n.extensionId?.value??"unknown",providerId:n.provider._debugDisplayName??"unknown",kind:n.completion.kind,basenameHash:du(Oi(h.uri)).toString(16),languageId:h.getLanguageId(),fileExtension:W2(h.uri),resolveInfo:!n.provider.resolveCompletionItem?-1:g?1:0,resolveDuration:n.resolveDuration,commandDuration:p,additionalEditsAsync:m,index:_,firstIndex:R})}getOverwriteInfo(n,h){He(this.editor.hasModel());let g=this.editor.getOption(134).insertMode==="replace";if(h)g=!g;let p=n.position.column-n.editStart.column,m=(g?n.editReplaceEnd.column:n.editInsertEnd.column)-n.position.column,_=this.editor.getPosition().column-n.position.column,v=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:p+_,overwriteAfter:m+v}}_alertCompletionItem(n){if(Kn(n.completion.additionalTextEdits)){let h=e(1534,"Accepting '{0}' made {1} additional edits",n.textLabel,n.completion.additionalTextEdits.length);Vn(h)}}triggerSuggest(n,h,g){if(this.editor.hasModel())this.model.trigger({auto:h??!1,completionOptions:{providerFilter:n,kindFilter:g?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus()}triggerSuggestAndAcceptBest(n){if(!this.editor.hasModel())return;let h=this.editor.getPosition(),g=()=>{if(h.equals(this.editor.getPosition()))this._commandService.executeCommand(n.fallback)},p=(m)=>{if(m.completion.insertTextRules&4||m.completion.additionalTextEdits)return!0;let _=this.editor.getPosition(),v=m.editStart.column,w=_.column;if(w-v!==m.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:_.lineNumber,startColumn:v,endLineNumber:_.lineNumber,endColumn:w})!==m.completion.insertText};I.once(this.model.onDidTrigger)((m)=>{let _=[];I.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{ze(_),g()},void 0,_),this.model.onDidSuggest(({completionModel:v})=>{if(ze(_),v.items.length===0){g();return}let w=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),v.items),C=v.items[w];if(!p(C)){g();return}this.editor.pushUndoStop(),this._insertSuggestion({index:w,item:C,model:v},7)},void 0,_)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(h,0),this.editor.focus()}acceptSelectedSuggestion(n,h){let g=this.widget.value.getFocusedItem(),p=0;if(n)p|=4;if(h)p|=8;this._insertSuggestion(g,p)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){if(this.widget.isInitialized)this.widget.value.forceRenderingAbove();else this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){if(this.widget.isInitialized)this.widget.value.stopForceRenderingAbove();else this._wantsForceRenderingAbove=!1}registerSelector(n){return this._selectors.register(n)}};xn=Uw=zN([jc(1,Ac),jc(2,Ue),jc(3,G),jc(4,A),jc(5,Ye),jc(6,Wn)],xn);class p1{constructor(u){this.prioritySelector=u,this._items=[]}register(u){if(this._items.indexOf(u)!==-1)throw Error("Value is already registered");return this._items.push(u),this._items.sort((n,h)=>this.prioritySelector(h)-this.prioritySelector(n)),{dispose:()=>{let n=this._items.indexOf(u);if(n>=0)this._items.splice(n,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class Pm extends U{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:Pm.id,label:b(1543,"Trigger Suggest"),precondition:L.and(r.writable,r.hasCompletionItemProvider,Fe.Visible.toNegated()),kbOpts:{kbExpr:r.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(u,n,h){let g=xn.get(n);if(!g)return;let p;if(h&&typeof h==="object"){if(h.auto===!0)p=!0}g.triggerSuggest(void 0,p,void 0)}}fe(xn.ID,xn,2);O(Pm);var oo=190,zi=tn.bindToContribution(xn.get);K(new zi({id:"acceptSelectedSuggestion",precondition:L.and(Fe.Visible,Fe.HasFocusedSuggestion),handler(u){u.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:L.and(Fe.Visible,r.textInputFocus),weight:oo},{primary:3,kbExpr:L.and(Fe.Visible,r.textInputFocus,Fe.AcceptSuggestionsOnEnter,Fe.MakesTextEdit),weight:oo}],menuOpts:[{menuId:er,title:e(1535,"Insert"),group:"left",order:1,when:L.and(Fe.HasFocusedSuggestion,Fe.HasInsertAndReplaceRange.toNegated())},{menuId:er,title:e(1536,"Insert"),group:"left",order:1,when:L.and(Fe.HasFocusedSuggestion,Fe.HasInsertAndReplaceRange,Fe.InsertMode.isEqualTo("insert"))},{menuId:er,title:e(1537,"Replace"),group:"left",order:1,when:L.and(Fe.HasFocusedSuggestion,Fe.HasInsertAndReplaceRange,Fe.InsertMode.isEqualTo("replace"))}]}));K(new zi({id:"acceptAlternativeSelectedSuggestion",precondition:L.and(Fe.Visible,r.textInputFocus,Fe.HasFocusedSuggestion),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:1027,secondary:[1026]},handler(u){u.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:er,group:"left",order:2,when:L.and(Fe.HasFocusedSuggestion,Fe.HasInsertAndReplaceRange,Fe.InsertMode.isEqualTo("insert")),title:e(1538,"Replace")},{menuId:er,group:"left",order:2,when:L.and(Fe.HasFocusedSuggestion,Fe.HasInsertAndReplaceRange,Fe.InsertMode.isEqualTo("replace")),title:e(1539,"Insert")}]}));Le.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");K(new zi({id:"hideSuggestWidget",precondition:Fe.Visible,handler:(u)=>u.cancelSuggestWidget(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:9,secondary:[1033]}}));K(new zi({id:"selectNextSuggestion",precondition:L.and(Fe.Visible,L.or(Fe.MultipleSuggestions,Fe.HasFocusedSuggestion.negate())),handler:(u)=>u.selectNextSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:er,group:"left",order:0,when:Fe.HasFocusedSuggestion.toNegated(),title:e(1540,"Select")}}));K(new zi({id:"selectNextPageSuggestion",precondition:L.and(Fe.Visible,L.or(Fe.MultipleSuggestions,Fe.HasFocusedSuggestion.negate())),handler:(u)=>u.selectNextPageSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:12,secondary:[2060]}}));K(new zi({id:"selectLastSuggestion",precondition:L.and(Fe.Visible,L.or(Fe.MultipleSuggestions,Fe.HasFocusedSuggestion.negate())),handler:(u)=>u.selectLastSuggestion()}));K(new zi({id:"selectPrevSuggestion",precondition:L.and(Fe.Visible,L.or(Fe.MultipleSuggestions,Fe.HasFocusedSuggestion.negate())),handler:(u)=>u.selectPrevSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));K(new zi({id:"selectPrevPageSuggestion",precondition:L.and(Fe.Visible,L.or(Fe.MultipleSuggestions,Fe.HasFocusedSuggestion.negate())),handler:(u)=>u.selectPrevPageSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:11,secondary:[2059]}}));K(new zi({id:"selectFirstSuggestion",precondition:L.and(Fe.Visible,L.or(Fe.MultipleSuggestions,Fe.HasFocusedSuggestion.negate())),handler:(u)=>u.selectFirstSuggestion()}));K(new zi({id:"focusSuggestion",precondition:L.and(Fe.Visible,Fe.HasFocusedSuggestion.negate()),handler:(u)=>u.focusSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));K(new zi({id:"focusAndAcceptSuggestion",precondition:L.and(Fe.Visible,Fe.HasFocusedSuggestion.negate()),handler:(u)=>{u.focusSuggestion(),u.acceptSelectedSuggestion(!0,!1)}}));K(new zi({id:"toggleSuggestionDetails",precondition:L.and(Fe.Visible,Fe.HasFocusedSuggestion),handler:(u)=>u.toggleSuggestionDetails(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:er,group:"right",order:1,when:L.and(Fe.DetailsVisible,Fe.CanResolve),title:e(1541,"Show Less")},{menuId:er,group:"right",order:1,when:L.and(Fe.DetailsVisible.toNegated(),Fe.CanResolve),title:e(1542,"Show More")}]}));K(new zi({id:"toggleExplainMode",precondition:Fe.Visible,handler:(u)=>u.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));K(new zi({id:"toggleSuggestionFocus",precondition:Fe.Visible,handler:(u)=>u.toggleSuggestionFocus(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:2570,mac:{primary:778}}}));K(new zi({id:"insertBestCompletion",precondition:L.and(r.textInputFocus,L.equals("config.editor.tabCompletion","on"),Ah.AtEnd,Fe.Visible.toNegated(),Dd.OtherSuggestions.toNegated(),zt.InSnippetMode.toNegated()),handler:(u,n)=>{u.triggerSuggestAndAcceptBest(cn(n)?{fallback:"tab",...n}:{fallback:"tab"})},kbOpts:{weight:oo,primary:2}}));K(new zi({id:"insertNextSuggestion",precondition:L.and(r.textInputFocus,L.equals("config.editor.tabCompletion","on"),Dd.OtherSuggestions,Fe.Visible.toNegated(),zt.InSnippetMode.toNegated()),handler:(u)=>u.acceptNextSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:2}}));K(new zi({id:"insertPrevSuggestion",precondition:L.and(r.textInputFocus,L.equals("config.editor.tabCompletion","on"),Dd.OtherSuggestions,Fe.Visible.toNegated(),zt.InSnippetMode.toNegated()),handler:(u)=>u.acceptPrevSuggestion(),kbOpts:{weight:oo,kbExpr:r.textInputFocus,primary:1026}}));K(new class extends tn{constructor(){super({id:"suggestWidgetCopy",precondition:Fe.DetailsFocused,kbOpts:{weight:oo+10,kbExpr:Fe.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(u,n){B(n.getDomNode()).document.execCommand("copy")}});O(class extends U{constructor(){super({id:"editor.action.resetSuggestSize",label:b(1544,"Reset Suggest Widget Size"),precondition:void 0})}run(u,n){xn.get(n)?.resetWidgetSize()}});class m1 extends i{get selectedItem(){return this._currentSuggestItemInfo}constructor(u,n,h){super();this.editor=u,this.suggestControllerPreselector=n,this.onWillAccept=h,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new o),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(u.onKeyDown((p)=>{if(p.shiftKey&&!this.isShiftKeyPressed)this.isShiftKeyPressed=!0,this.update(this._isActive)})),this._register(u.onKeyUp((p)=>{if(p.shiftKey&&this.isShiftKeyPressed)this.isShiftKeyPressed=!1,this.update(this._isActive)}));let g=xn.get(this.editor);if(g){this._register(g.registerSelector({priority:100,select:(_,v,w)=>{let C=this.editor.getModel();if(!C)return-1;let E=this.suggestControllerPreselector(),R=E?Go(E,C):void 0;if(!R)return-1;let Z=s.lift(v),X=w.map((Q,te)=>{let oe=$h.fromSuggestion(g,C,Z,Q,this.isShiftKeyPressed),le=Go(oe.getSingleTextEdit(),C),pe=gm(R,le);return{index:te,valid:pe,prefixLength:le.text.length,suggestItem:Q}}).filter((Q)=>Q&&Q.valid&&Q.prefixLength>0),Y=V0(X,Bn((Q)=>Q.prefixLength,Vi));return Y?Y.index:-1}}));let p=!1,m=()=>{if(p)return;p=!0,this._register(g.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(g.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(g.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))};this._register(I.once(g.model.onDidTrigger)((_)=>{m()})),this._register(g.onWillInsertSuggestItem((_)=>{let v=this.editor.getPosition(),w=this.editor.getModel();if(!v||!w)return;let C=$h.fromSuggestion(g,w,v,_.item,this.isShiftKeyPressed);this.onWillAccept(C)}))}this.update(this._isActive)}update(u){let n=this.getSuggestItemInfo();if(this._isActive!==u||!KN(this._currentSuggestItemInfo,n))this._isActive=u,this._currentSuggestItemInfo=n,this._onDidSelectedItemChange.fire()}getSuggestItemInfo(){let u=xn.get(this.editor);if(!u||!this.isSuggestWidgetVisible)return;let n=u.widget.value.getFocusedItem(),h=this.editor.getPosition(),g=this.editor.getModel();if(!n||!h||!g)return;return $h.fromSuggestion(u,g,h,n.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){xn.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){xn.get(this.editor)?.forceRenderingAbove()}}class $h{static fromSuggestion(u,n,h,g,p){let{insertText:m}=g.completion,_=!1;if(g.completion.insertTextRules&4){let w=new go().parse(m);if(w.children.length<100)Pc.adjustWhitespace(n,h,!0,w);m=w.toString(),_=!0}let v=u.getOverwriteInfo(g,p);return new $h(t.fromPositions(h.delta(0,-v.overwriteBefore),h.delta(0,Math.max(v.overwriteAfter,0))),m,g.completion.kind,_,g.container.incomplete??!1)}constructor(u,n,h,g,p){this.range=u,this.insertText=n,this.completionItemKind=h,this.isSnippetText=g,this.listIncomplete=p}equals(u){return this.range.equalsRange(u.range)&&this.insertText===u.insertText&&this.completionItemKind===u.completionItemKind&&this.isSnippetText===u.isSnippetText}toSelectedSuggestionInfo(){return new N0(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new gt(this.range,this.insertText)}}function KN(u,n){if(u===n)return!0;if(!u||!n)return!1;return u.equals(n)}class qw extends i{constructor(u,n,h){super();this._editorObs=u,this._handleSuggestAccepted=n,this._suggestControllerPreselector=h,this._suggestWidgetAdaptor=this._register(new m1(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),(g)=>this._editorObs.forceUpdate((p)=>{this._handleSuggestAccepted(g)}))),this.selectedItem=je(this,(g)=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate((p)=>g(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class jw{constructor(u,n){this.lineNumber=u,this.columnRange=n}}class Am{constructor(u,n){if(this.startColumn=u,this.endColumnExclusive=n,u>n)throw new H(`startColumn ${u} cannot be after endColumnExclusive ${n}`)}toRange(u){return new t(u,this.startColumn,u,this.endColumnExclusive)}equals(u){return this.startColumn===u.startColumn&&this.endColumnExclusive===u.endColumnExclusive}toZeroBasedOffsetRange(){return new V(this.startColumn-1,this.endColumnExclusive-1)}}class ta{static fromLineTokens(u){let n=[];for(let h=0;h<u.getCount();h++)n.push(new $w(u.getTokenText(h),u.getMetadata(h)));return ta.create(n)}static create(u){return new ta(u)}constructor(u){this._tokenInfo=u}toLineTokens(u){return Tt.createFromTextAndMetadata(this.map((n,h)=>({text:h.text,metadata:h.metadata})),u)}map(u){let n=[],h=0;for(let g of this._tokenInfo){let p=new V(h,h+g.text.length);n.push(u(p,g)),h+=g.text.length}return n}slice(u){let n=[],h=0;for(let g of this._tokenInfo){let p=h,m=p+g.text.length;if(m>u.start){if(p>=u.endExclusive)break;let _=Math.max(0,u.start-p),v=Math.max(0,m-u.endExclusive);n.push(new $w(g.text.slice(_,g.text.length-v),g.metadata))}h+=g.text.length}return ta.create(n)}append(u){let n=this._tokenInfo.concat(u._tokenInfo);return ta.create(n)}}class $w{constructor(u,n){this.text=u,this.metadata=n}}var UN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},qN=function(u,n){return function(h,g){n(h,g,u)}};class Hm{static from(u){if(!u)return;return new Hm(u.icon)}constructor(u=S.warning){this.icon=u}}var b1="ghost-text",ia=class u extends i{constructor(n,h,g,p){super();if(this._editor=n,this._data=h,this._languageService=p,this._isDisposed=j(this,!1),this._warningState=f((m)=>{let _=this._data.read(m),v=_?.warning;if(!_||!v)return;let w=_.ghostText;return{lineNumber:w.lineNumber,position:new s(w.lineNumber,w.parts[0].column),icon:v.icon}}),this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=f(this,(m)=>{let _=this._data.read(m);if(!_)return;return _.ghostText.parts.map((C)=>C.lines.map((E)=>E.line).join("")).join("").replace(/\s/g,"").length}),this._extraClassNames=f(this,(m)=>{let _=this._extraClasses.slice();if(this._warningState.read(m))_.push("warning");let v=this._nonWhitespaceCount.read(m);if(this._highlightShortText&&v&&v<3)_.push("short-text");else if(this._useSyntaxHighlighting.read(m))_.push("syntax-highlighted");return _.map((C)=>` ${C}`).join("")}),this._state=f(this,(m)=>{if(this._isDisposed.read(m))return;let _=this._data.read(m);if(!_)return;let v=this._editorObs.model.read(m);if(!v)return;let w=_.ghostText,C=w instanceof Th?w.columnRange:void 0,E=this._useSyntaxHighlighting.read(m),R=this._extraClassNames.read(m),{inlineTexts:Z,additionalLines:X,hiddenRange:Y,additionalLinesOriginalSuffix:Q}=jN(w,v,b1+R),te=v.getLineContent(w.lineNumber),oe=new xo(Z.map((Oe)=>ui.insert(Oe.column-1,Oe.text))),le=E?v.tokenization.tokenizeLinesAt(w.lineNumber,[oe.apply(te),...X.map((Oe)=>Oe.content)]):void 0,pe=oe.getNewRanges(),Se=Z.map((Oe,ye)=>({...Oe,tokens:le?.[0]?.getTokensInRange(pe[ye])})),Ce=X.map((Oe,ye)=>{let Pe=le?.[ye+1]??Tt.createEmpty(Oe.content,this._languageService.languageIdCodec);if(ye===X.length-1&&Q){let Ve=ta.fromLineTokens(v.tokenization.getLineTokens(Q.lineNumber)).slice(Q.columnRange.toZeroBasedOffsetRange());Pe=ta.fromLineTokens(Pe).append(Ve).toLineTokens(Pe.languageIdCodec)}return new y1(Pe,Oe.decorations)}),ae=this._editor.getSelection()?.getStartPosition().column,me=Se.filter((Oe)=>Oe.text!==""),Ne=me.length!==0,Me=new Vc((Ne?me[0].column:1)-ae,Ne?0:X.findIndex((Oe)=>Oe.content!=="")+1,Ne?1:0,X.length+(Ne?1:0),0,iy(me.map((Oe)=>Oe.text.length))+iy(Ce.map((Oe)=>Oe.content.getTextLength())),me.length+(X.length>0?1:0),me.length>1&&Ce.length===0?me.every((Oe)=>Oe.text===me[0].text):void 0);return{replacedRange:C,inlineTexts:Se,additionalLines:Ce,hiddenRange:Y,lineNumber:w.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(m),targetTextModel:v,syntaxHighlightingEnabled:E,telemetryViewData:Me,handleInlineCompletionShown:_.handleInlineCompletionShown}}),this._decorations=f(this,(m)=>{let _=this._state.read(m);if(!_)return[];let v=[],w=this._extraClassNames.read(m);if(_.replacedRange)v.push({range:_.replacedRange.toRange(_.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+w,description:"GhostTextReplacement"}});if(_.hiddenRange)v.push({range:_.hiddenRange.toRange(_.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(let C of _.inlineTexts){let E="";if(this._highlightShortText&&C.text.length<5)E+=" short-text";v.push({range:t.fromPositions(new s(_.lineNumber,C.column)),options:{description:"ghost-text-decoration",after:{content:C.text,tokens:C.tokens,inlineClassName:(C.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+w+E+C.lineDecorations.map((R)=>" "+R.className).join(" "),cursorStops:vs.Left,attachedData:new Fm(this)},showIfCollapsed:!0}})}return v}),this.isHovered=f(this,(m)=>{if(this._isDisposed.read(m))return!1;return this._isInlineTextHovered.read(m)||this._additionalLinesWidget.isHovered.read(m)}),this._extraClasses=g.extraClasses??[],this._isClickable=g.isClickable??!1,this._shouldKeepCursorStable=g.shouldKeepCursorStable??!1,this._minReservedLineCount=g.minReservedLineCount??De(0),this._useSyntaxHighlighting=g.useSyntaxHighlighting??De(!0),this._highlightShortText=g.highlightShortSuggestions??!1,this._editorObs=ct(this._editor),this._additionalLinesWidget=this._register(new w1(this._editor,Rn({owner:this,equalsFn:uu(kf())},(m)=>{let _=this._state.read(m);return _?new v1(_.lineNumber,_.additionalLines,_.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered((m)=>m.target.type===6&&m.target.detail.injectedText?.options.attachedData instanceof Fm&&m.target.detail.injectedText.options.attachedData.owner===this,this._store),this._register(N(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this._decorations)),this._isClickable)this._register(this._additionalLinesWidget.onDidClick((m)=>this._onDidClick.fire(m))),this._register(this._editor.onMouseUp((m)=>{if(m.target.type!==6)return;let _=m.target.detail.injectedText?.options.attachedData;if(_ instanceof Fm&&_.owner===this)this._onDidClick.fire(m.event)}));this._register(W((m)=>{let _=this._state.read(m);_?.handleInlineCompletionShown(_.telemetryViewData)})),this._register(ri((m,_)=>{return}))}static getWarningWidgetContext(n){let h=n.ghostTextViewWarningWidgetData;if(h)return h;else if(n.parentElement)return this.getWarningWidgetContext(n.parentElement);return}ownsViewZone(n){return this._additionalLinesWidget.viewZoneId===n}};ia=UN([qN(3,xt)],ia);class Fm{constructor(u){this.owner=u}}function jN(u,n,h){let g=[],p=[];function m(R,Z){if(p.length>0){let X=p[p.length-1];if(Z)X.decorations.push(new Xi(X.content.length+1,X.content.length+1+R[0].line.length,Z,0));X.content+=R[0].line,R=R.slice(1)}for(let X of R)p.push({content:X.line,decorations:Z?[new Xi(1,X.line.length+1,Z,0),...X.lineDecorations]:[...X.lineDecorations]})}let _=n.getLineContent(u.lineNumber),v=void 0,w=0;for(let R of u.parts){let Z=R.lines;if(v===void 0)g.push({column:R.column,text:Z[0].line,preview:R.preview,lineDecorations:Z[0].lineDecorations}),Z=Z.slice(1);else m([{line:_.substring(w,R.column-1),lineDecorations:[]}],void 0);if(Z.length>0){if(m(Z,h),v===void 0&&R.column<=_.length)v=R.column}w=R.column-1}let C=void 0;if(v!==void 0)C=new jw(u.lineNumber,new Am(w+1,_.length+1));let E=v!==void 0?new Am(v,_.length+1):void 0;return{inlineTexts:g,additionalLines:p,hiddenRange:E,additionalLinesOriginalSuffix:C}}class v1{constructor(u,n,h){this.lineNumber=u,this.additionalLines=n,this.minReservedLineCount=h}equals(u){if(this.lineNumber!==u.lineNumber)return!1;if(this.minReservedLineCount!==u.minReservedLineCount)return!1;return ot(this.additionalLines,u.additionalLines,kf())}}class w1 extends i{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}constructor(u,n,h,g){super();if(this._editor=u,this._lines=n,this._shouldKeepCursorStable=h,this._isClickable=g,this._viewZoneHeight=j("viewZoneHeight",void 0),this.editorOptionsChanged=Ii("editorOptionChanged",I.filter(this._editor.onDidChangeConfiguration,(p)=>p.hasChanged(40)||p.hasChanged(133)||p.hasChanged(113)||p.hasChanged(108)||p.hasChanged(60)||p.hasChanged(59)||p.hasChanged(75)||p.hasChanged(176))),this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new de),this.isHovered=ct(this._editor).isTargetHovered((p)=>f1(p.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof Cc&&this._shouldKeepCursorStable)this._register(this._editor.onBeforeExecuteEdit((p)=>this.hasBeenAccepted=p.source==="inlineCompletionAccept"));this._register(W((p)=>{let m=this._lines.read(p);if(this.editorOptionsChanged.read(p),m)this.hasBeenAccepted=!1,this.updateLines(m.lineNumber,m.additionalLines,m.minReservedLineCount);else this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones((u)=>{this.removeActiveViewZone(u)})}updateLines(u,n,h){let g=this._editor.getModel();if(!g)return;let{tabSize:p}=g.getOptions();ct(this._editor).transaction((m)=>{this._editor.changeViewZones((_)=>{let v=new d;this.removeActiveViewZone(_);let w=Math.max(n.length,h);if(w>0){let C=document.createElement("div");if($N(C,p,n,this._editor.getOptions(),this._isClickable),this._isClickable)v.add(c(C,"mousedown",(E)=>{E.preventDefault()})),v.add(c(C,"click",(E)=>{if(f1(E.target))this._onDidClick.fire(new ci(B(E),E))}));this.addViewZone(_,u,w,C)}this._viewZoneListener.value=v})})}addViewZone(u,n,h,g){let p=u.addZone({afterLineNumber:n,heightInLines:h,domNode:g,afterColumnAffinity:1,onComputedHeight:(m)=>{this._viewZoneHeight.set(m,void 0)}});this.keepCursorStable(n,h),this._viewZoneInfo={viewZoneId:p,heightInLines:h,lineNumber:n}}removeActiveViewZone(u){if(this._viewZoneInfo){if(u.removeZone(this._viewZoneInfo.viewZoneId),!this.hasBeenAccepted)this.keepCursorStable(this._viewZoneInfo.lineNumber,-this._viewZoneInfo.heightInLines);this._viewZoneInfo=void 0,this._viewZoneHeight.set(void 0,void 0)}}keepCursorStable(u,n){if(!this._shouldKeepCursorStable)return;let h=this._editor.getSelection()?.getStartPosition()?.lineNumber;if(h!==void 0&&u<h)this._editor.setScrollTop(this._editor.getScrollTop()+n*this._editor.getOption(75))}}function f1(u){return $e(u)&&u.classList.contains(b1)}class y1{constructor(u,n){this.content=u,this.decorations=n}equals(u){if(!this.content.equals(u.content))return!1;return Xi.equalsArr(this.decorations,u.decorations)}}function $N(u,n,h,g,p){let m=g.get(40),_=g.get(133),v="none",w=g.get(108),C=g.get(60),E=g.get(59),R=g.get(75),Z=g.get(176)==="twoCells",X="suggest-preview-text";if(p)X+=" clickable";let Y=new bs(1e4);Y.appendString(`<div class="${X}">`);for(let oe=0,le=h.length;oe<le;oe++){let pe=h[oe],Se=pe.content;Y.appendString('<div class="view-line'),Y.appendString('" style="top:'),Y.appendString(String(oe*R)),Y.appendString('px;width:1000000px;">');let Ce=Se.getLineContent(),ae=cu(Ce),me=Tl(Ce);gd(new ys(E.isMonospace&&!m,E.canUseHalfwidthRightwardsArrow,Ce,!1,ae,me,0,Se,pe.decorations.slice(),n,0,E.spaceWidth,E.middotWidth,E.wsmiddotWidth,_,"none",w,C!==$r.OFF,null,null,0,!1,Z),Y),Y.appendString("</div>")}Y.appendString("</div>"),Sn(u,E);let Q=Y.build(),te=_1?_1.createHTML(Q):Q;u.innerHTML=te}var _1=Fo("editorGhostText",{createHTML:(u)=>u});class oa{constructor(u,n){this.width=u,this.height=n}toString(){return`(${this.width},${this.height})`}transpose(){return new oa(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class st{static fromPoints(u,n){return new st(u.x,u.y,n.x,n.y)}static fromPointSize(u,n){return new st(u.x,u.y,u.x+n.x,u.y+n.y)}static fromLeftTopRightBottom(u,n,h,g){return new st(u,n,h,g)}static fromLeftTopWidthHeight(u,n,h,g){return new st(u,n,u+h,n+g)}static fromRanges(u,n){return new st(u.start,n.start,u.endExclusive,n.endExclusive)}static hull(u){let{MAX_SAFE_INTEGER:n,MAX_SAFE_INTEGER:h,MIN_SAFE_INTEGER:g,MIN_SAFE_INTEGER:p}=Number;for(let m of u)n=Math.min(n,m.left),h=Math.min(h,m.top),g=Math.max(g,m.right),p=Math.max(p,m.bottom);return new st(n,h,g,p)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(u,n,h,g){if(this.left=u,this.top=n,this.right=h,this.bottom=g,u>h)throw new H("Invalid arguments: Horizontally offset by "+(u-h));if(n>g)throw new H("Invalid arguments: Vertically offset by "+(n-g))}withMargin(u,n,h,g){let p,m,_,v;if(n===void 0&&h===void 0&&g===void 0)p=m=_=v=u;else if(h===void 0&&g===void 0)p=m=n,_=v=u;else p=g,m=n,_=u,v=h;return new st(this.left-p,this.top-_,this.right+m,this.bottom+v)}intersectVertical(u){let n=Math.max(this.top,u.start),h=Math.min(this.bottom,u.endExclusive);return new st(this.left,n,this.right,Math.max(n,h))}intersectHorizontal(u){let n=Math.max(this.left,u.start),h=Math.min(this.right,u.endExclusive);return new st(n,this.top,Math.max(n,h),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(u){let n=Math.max(this.left,u.left),h=Math.min(this.right,u.right),g=Math.max(this.top,u.top),p=Math.min(this.bottom,u.bottom);if(n>h||g>p)return;return new st(n,g,h,p)}containsRect(u){return this.left<=u.left&&this.top<=u.top&&this.right>=u.right&&this.bottom>=u.bottom}containsPoint(u){return this.left<=u.x&&this.top<=u.y&&this.right>=u.x&&this.bottom>=u.y}moveToBeContainedIn(u){let n=this.width,h=this.height,g=this.left,p=this.top;if(g<u.left)g=u.left;else if(g+n>u.right)g=u.right-n;if(p<u.top)p=u.top;else if(p+h>u.bottom)p=u.bottom-h;return new st(g,p,g+n,p+h)}withWidth(u){return new st(this.left,this.top,this.left+u,this.bottom)}withHeight(u){return new st(this.left,this.top,this.right,this.top+u)}withTop(u){return new st(this.left,u,this.right,this.bottom)}withLeft(u){return new st(u,this.top,this.right,this.bottom)}translateX(u){return new st(this.left+u,this.top,this.right+u,this.bottom)}translateY(u){return new st(this.left,this.top+u,this.right,this.bottom+u)}getLeftBottom(){return new xi(this.left,this.bottom)}getRightBottom(){return new xi(this.right,this.bottom)}getRightTop(){return new xi(this.right,this.top)}toStyles(){return{position:"absolute",left:`${this.left}px`,top:`${this.top}px`,width:`${this.width}px`,height:`${this.height}px`}}withHorizontalRange(u){return new st(u.start,this.top,u.endExclusive,this.bottom)}getSize(){return new oa(this.width,this.height)}}class Gc{constructor(u,n,h,g=null){this.startLineNumbers=u,this.endLineNumbers=n,this.lastLineRelativePosition=h,this.showEndForLine=g}equals(u){return!!u&&this.lastLineRelativePosition===u.lastLineRelativePosition&&this.showEndForLine===u.showEndForLine&&ot(this.startLineNumbers,u.startLineNumbers)&&ot(this.endLineNumbers,u.endLineNumbers)}static get Empty(){return new Gc([],[],0)}}var x1=Fo("stickyScrollViewLayer",{createHTML:(u)=>u}),Gw="data-sticky-line-index",M1="data-sticky-is-line",GN="data-sticky-is-line-number",z1="data-sticky-is-folding-icon";class Zw extends i{get height(){return this._height}constructor(u){super();this._foldingIconStore=this._register(new d),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new o),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=u,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",u instanceof Wi),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);let n=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((h)=>{if(h.hasChanged(131))n()})),this._register(this._editor.onDidScrollChange((h)=>{if(h.scrollLeftChanged)n();if(h.scrollWidthChanged)this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{n(),this._updateWidgetWidth()})),n(),this._register(this._editor.onDidLayoutChange((h)=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(u){return this._renderedStickyLines.find((n)=>n.lineNumber===u)}getCurrentLines(){return this._lineNumbers}setState(u,n,h){let g=!this._state&&!u,p=this._state&&this._state.equals(u);if(h===void 0&&(g||p))return;let m=this._findRenderingData(u),_=this._lineNumbers;this._lineNumbers=m.lineNumbers,this._lastLineRelativePosition=m.lastLineRelativePosition;let v=this._findIndexToRebuildFrom(_,this._lineNumbers,h);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,n,v),this._state=u}_findRenderingData(u){if(!u)return{lineNumbers:[],lastLineRelativePosition:0};let n=[...u.startLineNumbers];if(u.showEndForLine!==null)n[u.showEndForLine]=u.endLineNumbers[u.showEndForLine];let h=0;for(let g=0;g<n.length;g++){let p=new s(n[g],1),m=this._editor._getViewModel();if(m&&p.lineNumber<=m.getLineCount())h+=this._editor.getLineHeightForPosition(new s(n[g],1))}if(h===0)return{lineNumbers:[],lastLineRelativePosition:0};return{lineNumbers:n,lastLineRelativePosition:u.lastLineRelativePosition}}_findIndexToRebuildFrom(u,n,h){if(n.length===0)return 0;if(h!==void 0)return h;let g=n.findIndex((p)=>!u.includes(p));return g===-1?0:g}_updateWidgetWidth(){let u=this._editor.getLayoutInfo(),n=u.contentLeft;this._lineNumbersDomNode.style.width=`${n}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-u.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${u.width-u.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(u){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${u?0.5:0}s`)}_setFoldingIconsVisibility(u){for(let n of this._renderedStickyLines){let h=n.foldingIcon;if(!h)continue;h.setVisible(u?!0:h.isCollapsed)}}async _renderRootNode(u,n,h,g){let p=this._editor._getViewModel();if(!p){this._clearWidget();return}if(u.length===0){this._clearWidget();return}let m=[],_=u[u.length-1],v=0;for(let C=0;C<this._renderedStickyLines.length;C++)if(C<g){let E=this._renderedStickyLines[C];m.push(this._updatePosition(E,v,E.lineNumber===_)),v+=E.height}else{let E=this._renderedStickyLines[C];E.lineNumberDomNode.remove(),E.lineDomNode.remove()}let w=this._editor.getLayoutInfo();for(let C=g;C<u.length;C++){let E=u[C];if(E>p.getLineCount())continue;let R=this._renderChildNode(p,C,E,v,_===E,h,w);v+=R.height,this._linesDomNode.appendChild(R.lineDomNode),this._lineNumbersDomNode.appendChild(R.lineNumberDomNode),m.push(R)}if(h)this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin);this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map((C)=>C.scrollWidth))+w.verticalScrollbarWidth,this._renderedStickyLines=m,this._setHeight(v+n),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let u=0;u<this._renderedStickyLines.length;u++){let n=this._renderedStickyLines[u];n.lineNumberDomNode.remove(),n.lineDomNode.remove()}this._setHeight(0)}_setHeight(u){if(this._height===u)return;if(this._height=u,this._height===0)this._rootDomNode.style.display="none";else this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${this._height}px`,this._linesDomNodeScrollable.style.height=`${this._height}px`,this._rootDomNode.style.height=`${this._height}px`;this._onDidChangeStickyScrollHeight.fire({height:this._height})}_setFoldingHoverListeners(){if(this._foldingIconStore.clear(),this._editor.getOption(126)!=="mouseover")return;this._foldingIconStore.clear(),this._foldingIconStore.add(c(this._lineNumbersDomNode,T.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(c(this._lineNumbersDomNode,T.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))}_renderChildNode(u,n,h,g,p,m,_){let v=new G1(this._editor,u,_,m,this._isOnGlyphMargin,n,h);return this._updatePosition(v,g,p)}_updatePosition(u,n,h){let{lineDomNode:g,lineNumberDomNode:p}=u;if(h){g.style.zIndex="0",p.style.zIndex="0";let _=`${n+this._lastLineRelativePosition+(u.foldingIcon?.isCollapsed?1:0)}px`;g.style.top=_,p.style.top=_}else g.style.zIndex="1",p.style.zIndex="1",g.style.top=`${n}px`,p.style.top=`${n}px`;return u}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(u){if(0<=u&&u<this._renderedStickyLines.length)this._renderedStickyLines[u].lineDomNode.focus()}getEditorPositionFromNode(u){if(!u||u.children.length>0)return null;let n=this._getRenderedStickyLineFromChildDomNode(u);if(!n)return null;let h=ip(n.characterMapping,u,0);return new s(n.lineNumber,h)}getLineNumberFromChildDomNode(u){return this._getRenderedStickyLineFromChildDomNode(u)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(u){let n=this.getLineIndexFromChildDomNode(u);if(n===null||n<0||n>=this._renderedStickyLines.length)return null;return this._renderedStickyLines[n]}getLineIndexFromChildDomNode(u){let n=this._getAttributeValue(u,Gw);return n?parseInt(n,10):null}isInStickyLine(u){return this._getAttributeValue(u,M1)!==void 0}isInFoldingIconDomNode(u){return this._getAttributeValue(u,z1)!==void 0}_getAttributeValue(u,n){while(u&&u!==this._rootDomNode){let h=u.getAttribute(n);if(h!==null)return h;u=u.parentElement}return}}class G1{constructor(u,n,h,g,p,m,_){this.index=m,this.lineNumber=_;let v=n.coordinatesConverter.convertModelPositionToViewPosition(new s(_,1)).lineNumber,w=n.getViewLineRenderingData(v),C=u.getOption(76),E=u.getOption(117).verticalScrollbarSize,R;try{R=Xi.filter(w.inlineDecorations,v,w.minColumn,w.maxColumn)}catch(me){R=[]}let Z=u.getLineHeightForPosition(new s(_,1)),X=n.getTextDirection(_),Y=u.getOption(59),Q=new ys(!0,!0,w.content,w.continuesWithWrappedLine,w.isBasicASCII,w.containsRTL,0,w.tokens,R,w.tabSize,w.startVisibleColumn,Y.spaceWidth,1,1,500,"none",!0,!0,null,X,E,!1,u.getOption(176)==="twoCells"),te=new bs(2000),oe=gd(Q,te);this.characterMapping=oe.characterMapping;let le;if(x1)le=x1.createHTML(te.build());else le=te.build();let pe=document.createElement("span");pe.setAttribute(Gw,String(m)),pe.setAttribute(M1,""),pe.setAttribute("role","listitem"),pe.tabIndex=0,pe.className="sticky-line-content",pe.classList.add(`stickyLine${_}`),pe.style.lineHeight=`${Z}px`,pe.innerHTML=le;let Se=document.createElement("span");Se.setAttribute(Gw,String(m)),Se.setAttribute(GN,""),Se.className="sticky-line-number",Se.style.lineHeight=`${Z}px`;let Ce=h.contentLeft;Se.style.width=`${Ce}px`;let ae=document.createElement("span");if(C.renderType===1||C.renderType===3&&_%10===0)ae.innerText=_.toString();else if(C.renderType===2)ae.innerText=Math.abs(_-u.getPosition().lineNumber).toString();if(ae.className="sticky-line-number-inner",ae.style.width=`${h.lineNumbersWidth}px`,ae.style.paddingLeft=`${h.lineNumbersLeft}px`,Se.appendChild(ae),this.foldingIcon=this._renderFoldingIconForLine(u,g,_,Z,p),this.foldingIcon)Se.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${h.lineNumbersWidth+h.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${Z}px`;u.applyFontInfo(pe),u.applyFontInfo(Se),Se.style.lineHeight=`${Z}px`,pe.style.lineHeight=`${Z}px`,Se.style.height=`${Z}px`,pe.style.height=`${Z}px`,this.scrollWidth=pe.scrollWidth,this.lineDomNode=pe,this.lineNumberDomNode=Se,this.height=Z}_renderFoldingIconForLine(u,n,h,g,p){let m=u.getOption(126);if(!n||m==="never")return;let _=n.regions,v=_.findRange(h),w=_.getStartLineNumber(v);if(h!==w)return;let E=_.isCollapsed(v),R=new eE(E,w,_.getEndLineNumber(v),g);return R.setVisible(p?!0:E||m==="always"),R.domNode.setAttribute(z1,""),R}}class eE{constructor(u,n,h,g){this.isCollapsed=u,this.foldingStartLine=n,this.foldingEndLine=h,this.dimension=g,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${g}px`,this.domNode.style.lineHeight=`${g}px`,this.domNode.className=J.asClassName(u?zl:Vl)}setVisible(u){this.domNode.style.cursor=u?"pointer":"default",this.domNode.style.opacity=u?"1":"0"}}var ZN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Xw=function(u,n){return function(h,g){n(h,g,u)}};class Rd{remove(){this.parent?.children.delete(this.id)}static findId(u,n){let h;if(typeof u==="string")h=`${n.id}/${u}`;else if(h=`${n.id}/${u.name}`,n.children.get(h)!==void 0)h=`${n.id}/${u.name}_${u.range.startLineNumber}_${u.range.startColumn}`;let g=h;for(let p=0;n.children.get(g)!==void 0;p++)g=`${h}_${p}`;return g}static empty(u){return u.children.size===0}}class Zh extends Rd{constructor(u,n,h){super();this.id=u,this.parent=n,this.symbol=h,this.children=new Map}}class Wm extends Rd{constructor(u,n,h,g){super();this.id=u,this.parent=n,this.label=h,this.order=g,this.children=new Map}}class yr extends Rd{static create(u,n,h){let g=new qe(h),p=new yr(n.uri),m=u.ordered(n),_=m.map((w,C)=>{let E=Rd.findId(`provider_${C}`,p),R=new Wm(E,p,w.displayName??"Unknown Outline Provider",C);return Promise.resolve(w.provideDocumentSymbols(n,g.token)).then((Z)=>{for(let X of Z||[])yr._makeOutlineElement(X,R);return R},(Z)=>(yt(Z),R)).then((Z)=>{if(!Rd.empty(Z))p._groups.set(E,Z);else Z.remove()})}),v=u.onDidChange(()=>{let w=u.ordered(n);if(!ot(w,m))g.cancel()});return Promise.all(_).then(()=>{if(g.token.isCancellationRequested&&!h.isCancellationRequested)return yr.create(u,n,h);else return p._compact()}).finally(()=>{g.dispose(),v.dispose(),g.dispose()})}static _makeOutlineElement(u,n){let h=Rd.findId(u,n),g=new Zh(h,n,u);if(u.children)for(let p of u.children)yr._makeOutlineElement(p,g);n.children.set(g.id,g)}constructor(u){super();this.uri=u,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let u=0;for(let[n,h]of this._groups)if(h.children.size===0)this._groups.delete(n);else u+=1;if(u!==1)this.children=this._groups;else{let n=Re.first(this._groups.values());for(let[,h]of n.children)h.parent=this,this.children.set(h.id,h)}return this}getTopLevelSymbols(){let u=[];for(let n of this.children.values())if(n instanceof Zh)u.push(n.symbol);else u.push(...Re.map(n.children.values(),(h)=>h.symbol));return u.sort((n,h)=>t.compareRangesUsingStarts(n.range,h.range))}asListOfDocumentSymbols(){let u=this.getTopLevelSymbols(),n=[];return yr._flattenDocumentSymbols(n,u,""),n.sort((h,g)=>s.compare(t.getStartPosition(h.range),t.getStartPosition(g.range))||s.compare(t.getEndPosition(g.range),t.getEndPosition(h.range)))}static _flattenDocumentSymbols(u,n,h){for(let g of n)if(u.push({kind:g.kind,tags:g.tags,name:g.name,detail:g.detail,containerName:g.containerName||h,range:g.range,selectionRange:g.selectionRange,children:void 0}),g.children)yr._flattenDocumentSymbols(u,g.children,g.name)}}var Wh=ie("IOutlineModelService"),Yw=class u{constructor(n,h,g){this._languageFeaturesService=n,this._disposables=new d,this._cache=new Ji(15,0.7),this._debounceInformation=h.for(n.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(g.onModelRemoved((p)=>{this._cache.delete(p.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(n,h){let g=this._languageFeaturesService.documentSymbolProvider,p=g.ordered(n),m=this._cache.get(n.id);if(!m||m.versionId!==n.getVersionId()||!ot(m.provider,p)){let v=new qe;m={versionId:n.getVersionId(),provider:p,promiseCnt:0,source:v,promise:yr.create(g,n,v.token),model:void 0},this._cache.set(n.id,m);let w=Date.now();m.promise.then((C)=>{m.model=C,this._debounceInformation.update(n,Date.now()-w)}).catch((C)=>{this._cache.delete(n.id)})}if(m.model)return m.model;m.promiseCnt+=1;let _=h.onCancellationRequested(()=>{if(--m.promiseCnt===0)m.source.cancel(),this._cache.delete(n.id)});try{return await m.promise}finally{_.dispose()}}};Yw=ZN([Xw(0,z),Xw(1,uo),Xw(2,Et)],Yw);_e(Wh,Yw,1);class na{constructor(u,n){this.startLineNumber=u,this.endLineNumber=n}}class Zc{constructor(u,n,h){this.range=u,this.children=n,this.parent=h}}class Bm{constructor(u,n,h,g){this.uri=u,this.version=n,this.element=h,this.outlineProviderId=g}}var zm=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},tu=function(u,n){return function(h,g){n(h,g,u)}},eu;(function(u){u.OUTLINE_MODEL="outlineModel",u.FOLDING_PROVIDER_MODEL="foldingProviderModel",u.INDENTATION_MODEL="indentationModel"})(eu||(eu={}));var ra;(function(u){u[u.VALID=0]="VALID",u[u.INVALID=1]="INVALID",u[u.CANCELED=2]="CANCELED"})(ra||(ra={}));var Vm=class u extends i{constructor(n,h,g,p){super();switch(this._editor=n,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new qi(300)),this._updateOperation=this._register(new d),this._editor.getOption(131).defaultModel){case eu.OUTLINE_MODEL:this._modelProviders.push(new Jw(this._editor,p));case eu.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new eS(this._editor,h,p));case eu.INDENTATION_MODEL:this._modelProviders.push(new Qw(this._editor,g));break}}dispose(){this._modelProviders.forEach((n)=>n.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){if(this._modelPromise)this._modelPromise.cancel(),this._modelPromise=null}async update(n){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(let h of this._modelProviders){let{statusPromise:g,modelPromise:p}=h.computeStickyModel(n);this._modelPromise=p;let m=await g;if(this._modelPromise!==p)return null;switch(m){case ra.CANCELED:return this._updateOperation.clear(),null;case ra.VALID:return h.stickyModel}}return null}).catch((h)=>(ee(h),null))}};Vm=zm([tu(2,A),tu(3,z)],Vm);class tS extends i{constructor(u){super();this._editor=u,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,ra.INVALID}computeStickyModel(u){if(u.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};let n=Zt((h)=>this.createModelFromProvider(h));return{statusPromise:n.then((h)=>{if(!this.isModelValid(h))return this._invalid();if(u.isCancellationRequested)return ra.CANCELED;return this._stickyModel=this.createStickyModel(u,h),ra.VALID}).then(void 0,(h)=>(ee(h),ra.CANCELED)),modelPromise:n}}isModelValid(u){return!0}isProviderValid(){return!0}}var Jw=class u extends tS{constructor(n,h){super(n);this._languageFeaturesService=h}createModelFromProvider(n){return yr.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),n)}createStickyModel(n,h){let{stickyOutlineElement:g,providerID:p}=this._stickyModelFromOutlineModel(h,this._stickyModel?.outlineProviderId),m=this._editor.getModel();return new Bm(m.uri,m.getVersionId(),g,p)}isModelValid(n){return n&&n.children.size>0}_stickyModelFromOutlineModel(n,h){let g;if(Re.first(n.children.values())instanceof Wm){let v=Re.find(n.children.values(),(w)=>w.id===h);if(v)g=v.children;else{let w="",C=-1,E=void 0;for(let[R,Z]of n.children.entries()){let X=this._findSumOfRangesOfGroup(Z);if(X>C)E=Z,C=X,w=Z.id}h=w,g=E.children}}else g=n.children;let p=[],m=Array.from(g.values()).sort((v,w)=>{let C=new na(v.symbol.range.startLineNumber,v.symbol.range.endLineNumber),E=new na(w.symbol.range.startLineNumber,w.symbol.range.endLineNumber);return this._comparator(C,E)});for(let v of m)p.push(this._stickyModelFromOutlineElement(v,v.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new Zc(void 0,p,void 0),providerID:h}}_stickyModelFromOutlineElement(n,h){let g=[];for(let m of n.children.values())if(m.symbol.selectionRange.startLineNumber!==m.symbol.range.endLineNumber)if(m.symbol.selectionRange.startLineNumber!==h)g.push(this._stickyModelFromOutlineElement(m,m.symbol.selectionRange.startLineNumber));else for(let _ of m.children.values())g.push(this._stickyModelFromOutlineElement(_,m.symbol.selectionRange.startLineNumber));g.sort((m,_)=>this._comparator(m.range,_.range));let p=new na(n.symbol.selectionRange.startLineNumber,n.symbol.range.endLineNumber);return new Zc(p,g,void 0)}_comparator(n,h){if(n.startLineNumber!==h.startLineNumber)return n.startLineNumber-h.startLineNumber;else return h.endLineNumber-n.endLineNumber}_findSumOfRangesOfGroup(n){let h=0;for(let g of n.children.values())h+=this._findSumOfRangesOfGroup(g);if(n instanceof Zh)return h+n.symbol.range.endLineNumber-n.symbol.selectionRange.startLineNumber;else return h}};Jw=zm([tu(1,z)],Jw);class iS extends tS{constructor(u){super(u);this._foldingLimitReporter=this._register(new pg(u))}createStickyModel(u,n){let h=this._fromFoldingRegions(n),g=this._editor.getModel();return new Bm(g.uri,g.getVersionId(),h,void 0)}isModelValid(u){return u!==null}_fromFoldingRegions(u){let n=u.length,h=[],g=new Zc(void 0,[],void 0);for(let p=0;p<n;p++){let m=u.getParentIndex(p),_;if(m!==-1)_=h[m];else _=g;let v=new Zc(new na(u.getStartLineNumber(p),u.getEndLineNumber(p)+1),[],_);_.children.push(v),h.push(v)}return g}}var Qw=class u extends iS{constructor(n,h){super(n);this._languageConfigurationService=h,this.provider=this._register(new Xd(n.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(n){return this.provider.compute(n)}};Qw=zm([tu(1,ht)],Qw);var eS=class u extends iS{constructor(n,h,g){super(n);this._languageFeaturesService=g,this.provider=this._register(new de),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(n,h)})),this._updateProvider(n,h)}_updateProvider(n,h){let g=gr.getFoldingRangeProviders(this._languageFeaturesService,n.getModel());if(g.length===0)return;this.provider.value=new Jd(n.getModel(),g,h,this._foldingLimitReporter,void 0)}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(n){return this.provider.value?.compute(n)??null}};eS=zm([tu(2,z)],eS);var XN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},tE=function(u,n){return function(h,g){n(h,g,u)}};class iE{constructor(u,n,h,g){this.startLineNumber=u,this.endLineNumber=n,this.top=h,this.height=g}}var Km=class u extends i{constructor(n,h,g){super();this._languageFeaturesService=h,this._languageConfigurationService=g,this._onDidChangeStickyScroll=this._register(new o),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=n,this._sessionStore=this._register(new d),this._updateSoon=this._register(new ke(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration((p)=>{if(p.hasChanged(131))this.readConfiguration()})),this.readConfiguration()}readConfiguration(){if(this._sessionStore.clear(),!this._editor.getOption(131).enabled)return;this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(N(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update()}getVersionId(){return this._model?.version}updateStickyModelProvider(){if(this._stickyModelProvider?.dispose(),this._stickyModelProvider=null,this._editor.hasModel())this._stickyModelProvider=new Vm(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService)}async update(){this._cts?.dispose(!0),this._cts=new qe,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(n){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}let h=await this._stickyModelProvider.update(n);if(!n.isCancellationRequested)this._model=h}getCandidateStickyLinesIntersecting(n){if(!this._model?.element)return[];let h=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(n,this._model.element,h,0,0,-1),this.filterHiddenRanges(h)}getCandidateStickyLinesIntersectingFromStickyModel(n,h,g,p,m,_){let v=this._editor.getModel();if(!v)return;if(h.children.length===0)return;let w=_,C=[];for(let Z=0;Z<h.children.length;Z++){let X=h.children[Z];if(X.range)C.push(X.range.startLineNumber)}let E=this.updateIndex(bg(C,n.startLineNumber,(Z,X)=>Z-X)),R=this.updateIndex(bg(C,n.endLineNumber,(Z,X)=>Z-X));for(let Z=E;Z<=R;Z++){let X=h.children[Z];if(!X||!X.range)continue;let{startLineNumber:Y,endLineNumber:Q}=X.range;if(Q>Y+1&&n.startLineNumber<=Q+1&&Y-1<=n.endLineNumber&&Y!==w&&v.isValidRange(new t(Y,1,Q,1))){w=Y;let te=this._editor.getLineHeightForPosition(new s(Y,1));g.push(new iE(Y,Q-1,m,te)),this.getCandidateStickyLinesIntersectingFromStickyModel(n,X,g,p+1,m+te,Y)}}}filterHiddenRanges(n){let h=this._editor._getViewModel()?.getHiddenAreas();if(!h)return n;return n.filter((g)=>!h.some((p)=>g.startLineNumber>=p.startLineNumber&&g.endLineNumber<=p.endLineNumber+1))}updateIndex(n){if(n===-1)return 0;else if(n<0)return-n-2;return n}};Km=XN([tE(1,z),tE(2,ht)],Km);var YN=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Xc=function(u,n){return function(h,g){n(h,g,u)}},oS,Ds=class u extends i{static{oS=this}static{this.ID="store.contrib.stickyScrollController"}constructor(n,h,g,p,m,_,v){super();this._editor=n,this._contextMenuService=h,this._languageFeaturesService=g,this._instaService=p,this._contextKeyService=v,this._sessionStore=new d,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new o),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new Zw(this._editor),this._stickyLineCandidateProvider=new Km(this._editor,g,m),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=Gc.Empty;let w=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight((E)=>{E.changes.forEach((R)=>{let Z=R.lineNumber;if(this._widgetState.startLineNumbers.includes(Z))this._renderStickyScroll(Z)})})),this._register(this._editor.onDidChangeFont((E)=>{E.changes.forEach((R)=>{let Z=R.lineNumber;if(this._widgetState.startLineNumbers.includes(Z))this._renderStickyScroll(Z)})})),this._register(this._editor.onDidChangeConfiguration((E)=>{this._readConfigurationChange(E)})),this._register(c(w,T.CONTEXT_MENU,async(E)=>{this._onContextMenu(B(w),E)})),this._stickyScrollFocusedContextKey=r.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=r.stickyScrollVisible.bindTo(this._contextKeyService);let C=this._register(yi(w));this._register(C.onDidBlur((E)=>{if(this._positionRevealed===!1&&w.clientHeight===0)this._focusedStickyElementIndex=-1,this.focus();else this._disposeFocusStickyScrollStore()})),this._register(C.onDidFocus((E)=>{this.focus()})),this._registerMouseListeners(),this._register(c(w,T.MOUSE_DOWN,(E)=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight((E)=>{this._onDidChangeStickyScrollHeight.fire(E)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(n){return n.getContribution(oS.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}if(this._stickyScrollFocusedContextKey.get()===!0)return;this._focused=!0,this._focusDisposableStore=new d,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}focusNext(){if(this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1)this._focusNav(!0)}focusPrevious(){if(this._focusedStickyElementIndex>0)this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(n){this._focusedStickyElementIndex=n?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){let n=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:n[this._focusedStickyElementIndex],column:1})}_revealPosition(n){this._reveaInEditor(n,()=>this._editor.revealPosition(n))}_revealLineInCenterIfOutsideViewport(n){this._reveaInEditor(n,()=>this._editor.revealLineInCenterIfOutsideViewport(n.lineNumber,0))}_reveaInEditor(n,h){if(this._focused)this._disposeFocusStickyScrollStore();this._positionRevealed=!0,h(),this._editor.setSelection(t.fromPositions(n)),this._editor.focus()}_registerMouseListeners(){let n=this._register(new d),h=this._register(new Kr(this._editor,{extractLineNumberFromMouseEvent:(m)=>{let _=this._stickyScrollWidget.getEditorPositionFromNode(m.target.element);return _?_.lineNumber:0}})),g=(m)=>{if(!this._editor.hasModel())return null;if(m.target.type!==12||m.target.detail!==this._stickyScrollWidget.getId())return null;let _=m.target.element;if(!_||_.innerText!==_.innerHTML)return null;let v=this._stickyScrollWidget.getEditorPositionFromNode(_);if(!v)return null;return{range:new t(v.lineNumber,v.column,v.lineNumber,v.column+_.innerText.length),textElement:_}},p=this._stickyScrollWidget.getDomNode();this._register(Ct(p,T.CLICK,(m)=>{if(m.ctrlKey||m.altKey||m.metaKey)return;if(!m.leftButton)return;if(m.shiftKey){let C=this._stickyScrollWidget.getLineIndexFromChildDomNode(m.target);if(C===null)return;let E=new s(this._endLineNumbers[C],1);this._revealLineInCenterIfOutsideViewport(E);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(m.target)){let C=this._stickyScrollWidget.getLineNumberFromChildDomNode(m.target);this._toggleFoldingRegionForLine(C);return}if(!this._stickyScrollWidget.isInStickyLine(m.target))return;let w=this._stickyScrollWidget.getEditorPositionFromNode(m.target);if(!w){let C=this._stickyScrollWidget.getLineNumberFromChildDomNode(m.target);if(C===null)return;w=new s(C,1)}this._revealPosition(w)})),this._register(c(Ke,T.MOUSE_MOVE,(m)=>{this._mouseTarget=m.target,this._onMouseMoveOrKeyDown(m)})),this._register(c(Ke,T.KEY_DOWN,(m)=>{this._onMouseMoveOrKeyDown(m)})),this._register(c(Ke,T.KEY_UP,()=>{if(this._showEndForLine!==void 0)this._showEndForLine=void 0,this._renderStickyScroll()})),this._register(h.onMouseMoveOrRelevantKeyDown(([m,_])=>{let v=g(m);if(!v||!m.hasTriggerModifier||!this._editor.hasModel()){n.clear();return}let{range:w,textElement:C}=v;if(!w.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=w,n.clear();else if(C.style.textDecoration==="underline")return;let E=new qe;n.add(N(()=>E.dispose(!0)));let R;Ks(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new s(w.startLineNumber,w.startColumn+1),!1,E.token).then((Z)=>{if(E.token.isCancellationRequested)return;if(Z.length!==0){this._candidateDefinitionsLength=Z.length;let X=C;if(R!==X)n.clear(),R=X,R.style.textDecoration="underline",n.add(N(()=>{R.style.textDecoration="none"}));else if(!R)R=X,R.style.textDecoration="underline",n.add(N(()=>{R.style.textDecoration="none"}))}else n.clear()})})),this._register(h.onCancel(()=>{n.clear()})),this._register(h.onExecute(async(m)=>{if(m.target.type!==12||m.target.detail!==this._stickyScrollWidget.getId())return;let _=this._stickyScrollWidget.getEditorPositionFromNode(m.target.element);if(!_)return;if(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor)return;if(this._candidateDefinitionsLength>1){if(this._focused)this._disposeFocusStickyScrollStore();this._revealPosition({lineNumber:_.lineNumber,column:1})}this._instaService.invokeFunction(Bp,m,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})}))}_onContextMenu(n,h){let g=new ci(n,h);this._contextMenuService.showContextMenu({menuId:l.StickyScrollContext,getAnchor:()=>g,menuActionOptions:{renderShortTitle:!0}})}_onMouseMoveOrKeyDown(n){if(!n.shiftKey)return;if(!this._mouseTarget||!$e(this._mouseTarget))return;let h=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);if(h===null||this._showEndForLine===h)return;this._showEndForLine=h,this._renderStickyScroll()}_toggleFoldingRegionForLine(n){if(!this._foldingModel||n===null)return;let h=this._stickyScrollWidget.getRenderedStickyLine(n),g=h?.foldingIcon;if(!g)return;Bl(this._foldingModel,1,[n]),g.isCollapsed=!g.isCollapsed;let p=(g.isCollapsed?this._editor.getTopForLineNumber(g.foldingEndLine):this._editor.getTopForLineNumber(g.foldingStartLine))-this._editor.getOption(75)*h.index+1;this._editor.setScrollTop(p),this._renderStickyScroll(n)}_readConfiguration(){let n=this._editor.getOption(131);if(n.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else if(n.enabled&&!this._enabled)this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((g)=>{if(g.scrollTopChanged)this._showEndForLine=void 0,this._renderStickyScroll()})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens((g)=>this._onTokensChange(g))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0;if(this._editor.getOption(76).renderType===2){if(!this._cursorPositionListener)this._cursorPositionListener=this._editor.onDidChangeCursorPosition((g)=>{if(this._positionLineNumber===g.position.lineNumber)return;this._positionLineNumber=g.position.lineNumber,this._showEndForLine=void 0,this._renderStickyScroll(0)}),this._sessionStore.add(this._cursorPositionListener)}else if(this._cursorPositionListener)this._sessionStore.delete(this._cursorPositionListener),this._cursorPositionListener.dispose(),this._cursorPositionListener=void 0}_readConfigurationChange(n){if(n.hasChanged(131)||n.hasChanged(81)||n.hasChanged(75)||n.hasChanged(126)||n.hasChanged(76))this._readConfiguration();if(n.hasChanged(76)||n.hasChanged(52)||n.hasChanged(126)||n.hasChanged(59)||n.hasChanged(176))this._renderStickyScroll(0)}_needsUpdate(n){let h=this._stickyScrollWidget.getCurrentLines();for(let g of h)for(let p of n.ranges)if(g>=p.fromLineNumber&&g<=p.toLineNumber)return!0;return!1}_onTokensChange(n){if(this._needsUpdate(n))this._renderStickyScroll(0)}_onDidResize(){let h=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(h*0.25),this._renderStickyScroll(0)}async _renderStickyScroll(n){let h=this._editor.getModel();if(!h||h.isTooLargeForTokenization()){this._resetState();return}let g=this._updateAndGetMinRebuildFromLine(n),p=this._stickyLineCandidateProvider.getVersionId();if(p===void 0||p===h.getVersionId())if(!this._focused)await this._updateState(g);else if(this._focusedStickyElementIndex===-1){if(await this._updateState(g),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1)this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}else{let _=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];if(await this._updateState(g),this._stickyScrollWidget.lineNumberCount===0)this._focusedStickyElementIndex=-1;else{if(!this._stickyScrollWidget.lineNumbers.includes(_))this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1;this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}}}_updateAndGetMinRebuildFromLine(n){if(n!==void 0){let h=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(n,h)}return this._minRebuildFromLine}async _updateState(n){this._minRebuildFromLine=void 0,this._foldingModel=await gr.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();let h=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(h),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,n)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=Gc.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){let n=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),h=this._editor.getScrollTop(),g=0,p=[],m=[],_=this._editor.getVisibleRanges();if(_.length!==0){let v=new na(_[0].startLineNumber,_[_.length-1].endLineNumber),w=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(v);for(let C of w){let{startLineNumber:E,endLineNumber:R,top:Z}=C,X=Z+C.height,Y=this._editor.getTopForLineNumber(E)-h,Q=this._editor.getBottomForLineNumber(R)-h;if(Z>Y&&Z<=Q){if(p.push(E),m.push(R+1),X>Q)g=Q-X}if(p.length===n)break}}return this._endLineNumbers=m,new Gc(p,m,g,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Ds=oS=YN([Xc(1,Qn),Xc(2,z),Xc(3,A),Xc(4,ht),Xc(5,uo),Xc(6,G)],Ds);var ga=a("inlineEdit.originalBackground",be(bu,0.2),e(1286,"Background color for the original text in inline edits."),!0),Um=a("inlineEdit.modifiedBackground",be(ep,0.3),e(1287,"Background color for the modified text in inline edits."),!0);a("inlineEdit.originalChangedLineBackground",be(bu,0.8),e(1288,"Background color for the changed lines in the original text of inline edits."),!0);var oE=a("inlineEdit.originalChangedTextBackground",be(bu,0.8),e(1289,"Overlay color for the changed text in the original text of inline edits."),!0),nE=a("inlineEdit.modifiedChangedLineBackground",{light:be(G0,0.7),dark:be(G0,0.7),hcDark:G0,hcLight:G0},e(1290,"Background color for the changed lines in the modified text of inline edits."),!0),rE=a("inlineEdit.modifiedChangedTextBackground",be(ep,0.7),e(1291,"Overlay color for the changed text in the modified text of inline edits."),!0),fa=a("inlineEdit.gutterIndicator.primaryForeground",_y,e(1292,"Foreground color for the primary inline edit gutter indicator.")),Ln=a("inlineEdit.gutterIndicator.primaryBorder",np,e(1293,"Border color for the primary inline edit gutter indicator.")),xr=a("inlineEdit.gutterIndicator.primaryBackground",{light:be(Ln,0.5),dark:be(Ln,0.4),hcDark:be(Ln,0.4),hcLight:be(Ln,0.5)},e(1294,"Background color for the primary inline edit gutter indicator.")),sE=a("inlineEdit.gutterIndicator.secondaryForeground",wy,e(1295,"Foreground color for the secondary inline edit gutter indicator.")),aE=a("inlineEdit.gutterIndicator.secondaryBorder",Hf,e(1296,"Border color for the secondary inline edit gutter indicator.")),Yc=a("inlineEdit.gutterIndicator.secondaryBackground",Ng,e(1297,"Background color for the secondary inline edit gutter indicator.")),dE=a("inlineEdit.gutterIndicator.successfulForeground",_y,e(1298,"Foreground color for the successful inline edit gutter indicator.")),nS=a("inlineEdit.gutterIndicator.successfulBorder",np,e(1299,"Border color for the successful inline edit gutter indicator.")),Jc=a("inlineEdit.gutterIndicator.successfulBackground",nS,e(1300,"Background color for the successful inline edit gutter indicator.")),cE=a("inlineEdit.gutterIndicator.background",{hcDark:be("tab.inactiveBackground",0.5),hcLight:be("tab.inactiveBackground",0.5),dark:be("tab.inactiveBackground",0.5),light:"#5f5f5f18"},e(1301,"Background color for the inline edit gutter indicator.")),iu=a("inlineEdit.originalBorder",{light:bu,dark:bu,hcDark:bu,hcLight:bu},e(1302,"Border color for the original text in inline edits.")),ou=a("inlineEdit.modifiedBorder",{light:Dr(ep,0.6),dark:ep,hcDark:ep,hcLight:ep},e(1303,"Border color for the modified text in inline edits.")),JN=a("inlineEdit.tabWillAcceptModifiedBorder",{light:Dr(ou,0),dark:Dr(ou,0),hcDark:Dr(ou,0),hcLight:Dr(ou,0)},e(1304,"Modified border color for the inline edits widget when tab will accept it.")),QN=a("inlineEdit.tabWillAcceptOriginalBorder",{light:Dr(iu,0),dark:Dr(iu,0),hcDark:Dr(iu,0),hcLight:Dr(iu,0)},e(1305,"Original border color for the inline edits widget over the original text when tab will accept it."));function ss(u){return u.map((n)=>n===Dt.Accept?JN:ou)}function _a(u){return u.map((n)=>n===Dt.Accept?QN:iu)}function Ut(u,n){let h;if(typeof u==="string")h=ca(u,n);else h=u.map((p,m)=>ca(p,n).read(m));let g=ca(Yo,n);return h.map((p,m)=>p.makeOpaque(g.read(m)))}function no(u){let n;switch(u){case At.TextEditor:n=Yo;break;case At.DiffEditor:n=Yo;break;case At.Notebook:n="notebook.cellEditorBackground";break;default:cc(u,"Not supported editor type yet")}return P(n)}function ca(u,n){return js({owner:{observeColor:u},equalsFn:(h,g)=>h.equals(g),debugName:()=>`observeColor(${u})`},n.onDidColorThemeChange,()=>{let h=n.getColorTheme().getColor(u);if(!h)throw new H(`Missing color: ${u}`);return h})}var jt=3;function Xo(u,n,h){let g=u.model.read(h);if(!g)return 0;let p=0;for(let _=n.startLineNumber;_<n.endLineNumberExclusive;_++){let v=u.getWidthOfLine(_,h);p=Math.max(p,v)}let m=n.mapToLineArray((_)=>g.getLineContent(_));if(p<5&&m.some((_)=>_.length>0)&&g.uri.scheme!=="file")console.log("unexpected width");return p}function lE(u,n,h){Ii(u,u.editor.onDidChangeLineHeight).read(h);let g=u.model.read(h);if(!g)throw new H("Model is required");let p=[];for(let m=n.startLineNumber;m<n.endLineNumberExclusive;m++){let _=u.getWidthOfLine(m,h);if(_===-1){let w=g.getLineMaxColumn(m),C=u.editor.getOption(59).typicalHalfwidthCharacterWidth;_=w*C}let v=u.editor.getLineHeightForPosition(new s(m,1));p.push(new oa(_,v))}return p}function hE(u,n,h){if(u.layoutInfo.read(h),u.value.read(h),!u.model.read(h))return 0;return u.scrollTop.read(h),u.editor.getOffsetForColumn(n.lineNumber,n.column)}function Qc(u,n,h,g,p=void 0){let m=g.getModel();if(!m)return{prefixTrim:0,prefixLeftOffset:0};let _=u.map((Z)=>Z.isSingleLine()?Z.startColumn-1:0),v=n.mapToLineArray((Z)=>ck(m.getLineContent(Z))),w=h.filter((Z)=>Z!=="").map((Z)=>ck(Z)),C=Math.min(..._,...v,...w),E;if(m.getLineIndentColumn(n.startLineNumber)>=C+1)ct(g).scrollTop.read(p),E=g.getOffsetForColumn(n.startLineNumber,C+1);else if(h.length>0)E=nu(h[0].slice(0,C),g,m);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:C,prefixLeftOffset:E}}function nu(u,n,h){let g=n.getOption(59).typicalHalfwidthCharacterWidth,p=h.getOptions().tabSize*g,m=u.split("\t").length-1;return(u.length-m)*g+m*p}function el(u){let n=u.layoutInfoContentLeft,h=f({name:"editor.validOverlay.width"},(p)=>{let m=u.layoutInfoMinimap.read(p).minimapLeft!==0,_=Math.max(0,u.layoutInfoWidth.read(p)-n.read(p));if(m){let v=u.layoutInfoMinimap.read(p).minimapWidth+u.layoutInfoVerticalScrollbarWidth.read(p);return Math.max(0,_-v)}return _}),g=f({name:"editor.validOverlay.height"},(p)=>u.layoutInfoHeight.read(p)+u.contentHeight.read(p));return f({name:"editor.validOverlay"},(p)=>st.fromLeftTopWidthHeight(n.read(p),0,h.read(p),g.read(p)))}function uE(u,n){let h=[];for(let g of u){let p=n.mapRange(g.modifiedRange);h.push(new Yi(g.originalRange,p))}return h}function tl(...u){return u.filter((n)=>typeof n==="string").join(" ")}function eM(u,n){return new t(n.lineNumber,n.column+u.start,n.lineNumber,n.column+u.endExclusive)}function tM(u,n){let h=0;e:for(let g=0,p=u.length;g<p;g++)switch(u.charCodeAt(g)){case 9:h+=n;break;case 32:h++;break;default:break e}return h-h%n}function iM(u,n,h){let g=n-n%h,p=0;for(;p<u.length;p++){if(g===0)break;switch(u.charCodeAt(p)){case 9:g-=h;break;case 32:g--;break;default:throw new H("Unexpected character found while calculating indent length")}}return p}function gE(u,n,h){let g=Ci(u),p=[],m=J1(n.mapToLineArray((_)=>tM(g[_-1],h)),Vi);return n.forEach((_)=>{let v=iM(g[_-1],m,h);p.push(new gt(eM(new V(0,v),new s(_,1)),""))}),new Po(p)}class il{constructor(){this._data=""}moveTo(u){return this._data+=`M ${u.x} ${u.y} `,this}lineTo(u){return this._data+=`L ${u.x} ${u.y} `,this}build(){return this._data}}function eo(u){let n=hr(void 0,(h,g)=>u.read(h)||g);return Rn({debugName:()=>`${u.debugName}.mapOutFalsy`},(h)=>{if(n.read(h),!u.read(h))return;return n})}function Jt(u,n=Gt.ofCaller()){return{left:f({name:"editor.validOverlay.left"},(h)=>u(h)?.left,n),top:f({name:"editor.validOverlay.top"},(h)=>u(h)?.top,n),width:f({name:"editor.validOverlay.width"},(h)=>{let g=u(h);if(!g)return;return g.width},n),height:f({name:"editor.validOverlay.height"},(h)=>{let g=u(h);if(!g)return;return g.height},n)}}function pE(u,n){let h=u.getContainerDomNode(),g=j("domRect",h.getBoundingClientRect());return n.add(u.onDidLayoutChange((p)=>{g.set(h.getBoundingClientRect(),void 0)})),g}var oM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},rS=function(u,n){return function(h,g){n(h,g,u)}},qm=class u{constructor(n,h,g,p,m,_){this._editorObs=n,this._data=h,this._close=g,this._contextKeyService=p,this._keybindingService=m,this._commandService=_,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map((v)=>v.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){let n=j("active",void 0),h=(Q)=>({title:Q.title,icon:Q.icon,keybinding:typeof Q.commandId==="string"?this._getKeybinding(Q.commandArgs?void 0:Q.commandId):f(this,(te)=>typeof Q.commandId==="string"?void 0:this._getKeybinding(Q.commandArgs?void 0:Q.commandId.read(te)).read(te)),isActive:n.map((te)=>te===Q.id),onHoverChange:(te)=>n.set(te?Q.id:void 0,void 0),onAction:()=>{let te=typeof Q.commandId==="string"?Q.commandId:Q.commandId.get();return this._close(!0,te),this._commandService.executeCommand(te,...Q.commandArgs??[])}}),g=this._data.extensionCommands.map((Q)=>Q.map((te,oe)=>wa(h({id:te.command.id+"_"+oe,title:te.command.title,icon:te.icon??S.symbolEvent,commandId:te.command.id,commandArgs:te.command.arguments})))),p=[];for(let Q of g)if(Q.length>0)p.push(sS()),p.push(...Q);if(this._data.extensionCommandsOnly)return mE(p.slice(1));let m=nM(this._data.displayName),_=wa(h({id:"gotoAndAccept",title:e(1276,"Go To / Accept"),icon:S.check,commandId:Gn})),v=wa(h({id:"reject",title:e(1277,"Reject"),icon:S.close,commandId:Dp})),w=this._data.alternativeAction?wa(h({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:ed})):void 0,C=[],E=this._inlineEditsShowCollapsed.map((Q)=>Q?wa(h({id:"showExpanded",title:e(1278,"Show Expanded"),icon:S.expandAll,commandId:hh})):wa(h({id:"showCollapsed",title:e(1279,"Show Collapsed"),icon:S.collapseAll,commandId:hh}))),R=wa(h({id:"snooze",title:e(1280,"Snooze"),icon:S.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),Z=wa(h({id:"settings",title:e(1281,"Settings"),icon:S.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),X=this._data.action?[this._data.action]:[],Y=X.length>0?rM(X.map((Q)=>({id:Q.id,label:Q.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(Q.id,...Q.arguments??[]),class:void 0,tooltip:Q.tooltip??Q.title})),{hoverDelegate:uP}):void 0;return mE([m,_,w,v,E,C.length?sS():void 0,...C,R,Z,...p,Y?sS():void 0,Y])}_getKeybinding(n){if(!n)return De(void 0);return je(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(n))}};qm=oM([rS(3,G),rS(4,ge),rS(5,Ue)],qm);function mE(u){return he.div({class:"content",style:{margin:4,minWidth:180}},u)}function nM(u){return he.div({class:"header",style:{color:P(q0),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[u])}function wa(u){return f({name:"inlineEdits.option"},(n)=>he.div({class:["monaco-menu-option",u.isActive?.map((h)=>h&&"active")],onmouseenter:()=>u.onHoverChange?.(!0),onmouseleave:()=>u.onHoverChange?.(!1),onclick:u.onAction,onkeydown:(h)=>{if(h.key==="Enter")u.onAction?.()},tabIndex:0,style:{borderRadius:3}},[he.elem("span",{style:{fontSize:16,display:"flex"}},[J.isThemeIcon(u.icon)?_o(u.icon):u.icon.map((h)=>_o(h))]),he.elem("span",{},[u.title]),he.div({style:{marginLeft:"auto"},ref:(h)=>{let g=n.store.add(new Ya(h,Ni,{disableTitle:!0,...Ry,keybindingLabelShadow:void 0,keybindingLabelForeground:P(q0),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));n.store.add(W((p)=>{g.set(u.keybinding.read(p))}))}})]))}function rM(u,n){return f({name:"inlineEdits.actionBar"},(h)=>he.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[he.div({ref:(g)=>{h.store.add(new Qi(g,n)).push(u,{icon:!1,label:!0})}})]))}function sS(){return he.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:P(oP),padding:"2px 0"}},he.div({style:{borderBottom:`1px solid ${P(Hf)}`}}))}var sM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},ru=function(u,n){return function(h,g){n(h,g,u)}};class su{constructor(u,n,h,g,p){this.gutterMenuData=u,this.originalRange=n,this.model=h,this.altAction=g,this.customization=p}}class nl{static fromInlineSuggestion(u){let n=u.action?.kind==="edit"?u.action.alternativeAction:void 0,h=u.source.inlineSuggestions.commands??[];return new nl(u.gutterMenuLinkAction,u.source.provider.displayName??e(1282,"Inline Suggestion"),h.length>0?[h]:[],n,u.source.provider.modelInfo,u.source.provider.setModelId?.bind(u.source.provider))}constructor(u,n,h,g,p,m,_=!1){this.action=u,this.displayName=n,this.extensionCommands=h,this.alternativeAction=g,this.modelInfo=p,this.setModelId=m,this.extensionCommandsOnly=_}}class rl{static fromInlineCompletionModel(u){return new rl(()=>u.accept(),()=>u.jump())}constructor(u,n){this.accept=u,this.jump=n}}var aS=16,fE=2,ol=class u extends i{constructor(n,h,g,p,m,_,v,w,C,E,R){super();this._editorObs=n,this._data=h,this._tabAction=g,this._verticalOffset=p,this._isHoveringOverInlineEdit=m,this._focusIsInMenu=_,this._hoverService=v,this._instantiationService=w,this._accessibilityService=C,this._themeService=E,this._userInteractionService=R,this._onDidCloseWithCommand=this._register(new o),this._modifierPressed=f(this,(X)=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),X).shiftKey),this._gutterIndicatorStyles=f(this,(X)=>{let Y=this._tabAction.read(X),Q=this._data.read(X)?.altAction,te=this._modifierPressed.read(X);if(Q&&te)Y=Dt.Inactive;switch(Y){case Dt.Inactive:return{background:Ut(Yc,this._themeService).read(X).toString(),foreground:Ut(sE,this._themeService).read(X).toString(),border:Ut(aE,this._themeService).read(X).toString()};case Dt.Jump:return{background:Ut(xr,this._themeService).read(X).toString(),foreground:Ut(fa,this._themeService).read(X).toString(),border:Ut(Ln,this._themeService).read(X).toString()};case Dt.Accept:return{background:Ut(Jc,this._themeService).read(X).toString(),foreground:Ut(dE,this._themeService).read(X).toString(),border:Ut(nS,this._themeService).read(X).toString()};default:cc()}}),this._state=f(this,(X)=>{let Y=this._originalRangeObs.read(X);if(!Y)return;return{range:Y,lineOffsetRange:this._editorObs.observeLineOffsetRange(Y,X.store)}}),this._lineNumberToRender=f(this,(X)=>{if(this._verticalOffset.read(X)!==0)return"";let Y=this._data.read(X)?.originalRange.startLineNumber,Q=this._editorObs.getOption(76).read(X);if(Y===void 0||Q.renderType===0)return"";if(Q.renderType===3){let te=this._editorObs.cursorPosition.read(X);if(Y%10===0||te&&te.lineNumber===Y)return Y.toString();return""}if(Q.renderType===2){let te=this._editorObs.cursorPosition.read(X);if(!te)return"";let oe=Math.abs(Y-te.lineNumber);if(oe===0)return Y.toString();return oe.toString()}if(Q.renderType===4){if(Q.renderFn)return Q.renderFn(Y);return""}return Y.toString()}),this._availableWidthForIcon=f(this,(X)=>{let Y=this._editorObs.editor.getModel(),Q=this._editorObs.editor,te=this._editorObs.layoutInfo.read(X),oe=te.decorationsLeft+te.decorationsWidth-te.glyphMarginLeft;if(!Y||oe<=0)return()=>0;if(te.lineNumbersLeft===0)return()=>oe;let le=this._editorObs.getOption(76).read(X);if(le.renderType===2||le.renderType===0)return()=>oe;let pe=Q.getOption(59).typicalHalfwidthCharacterWidth,Se=te.lineNumbersLeft+te.lineNumbersWidth,ae=(Y.getLineCount()+1).toString().length,me=[];for(let Ne=1;Ne<=ae;Ne++){let Me=10**(Ne-1),Oe=Q.getTopForLineNumber(Me),ye=Ne*pe,Pe=Math.min(oe,Math.max(0,Se-ye-te.glyphMarginLeft));me.push({firstLineNumberWithDigitCount:Me,topOfLineNumber:Oe,usableWidthLeftOfLineNumber:Pe})}return(Ne)=>{for(let Me=me.length-1;Me>=0;Me--)if(Ne>=me[Me].topOfLineNumber)return me[Me].usableWidthLeftOfLineNumber;throw new H("Could not find avilable width for icon")}}),this._layout=f(this,(X)=>{let Y=this._state.read(X);if(!Y)return;let Q=this._editorObs.layoutInfo.read(X),te=this._editorObs.observeLineHeightForLine(Y.range.map((It)=>It.startLineNumber)).read(X),oe=1,le=2,pe=Q.decorationsLeft+Q.decorationsWidth-Q.glyphMarginLeft-2*oe,Se=Q.height-2*le,Ce=st.fromLeftTopWidthHeight(oe,le,pe,Se),ae=Ce.withTop(this._stickyScrollHeight.read(X)),me=Ce.withTop(ae.top+le),Ne=Y.lineOffsetRange.read(X),Me=st.fromRanges(V.fromTo(me.left,me.right),Ne),Oe=te,ye=this._verticalOffset.read(X),Pe=Me.withHeight(Oe).translateY(ye),it=ae.containsRect(Pe),Ve=this._data.read(X)?.customization?.icon,rt=Ve?De(Ve):this._tabAction.map((It)=>It===Dt.Accept?S.keyboardTab:S.arrowRight),Ze=Ve?De(Ve):f(this,(It)=>{if(this._isHoveredOverIconDebounced.read(It)||this._isHoveredOverInlineEditDebounced.read(It))return S.check;if(this._tabAction.read(It)===Dt.Accept)return S.keyboardTab;let Si=this._editorObs.cursorLineNumber.read(It)??0,cs=Y.range.read(It).startLineNumber;return Si<=cs?S.keyboardTabAbove:S.keyboardTabBelow}),Ft=22,nt=(It)=>{let Si=this._availableWidthForIcon.read(void 0)(It.bottom+this._editorObs.editor.getScrollTop())-oe;return Math.max(Math.min(Si,Ft),aS)};if(it){let It=Pe,Si;if(Q.lineNumbersWidth===0)Si=Math.max(0,Math.min(Math.max(Q.lineNumbersLeft-Ce.left,0),It.width-Ft));else Si=Math.max(Q.lineNumbersLeft+Q.lineNumbersWidth-Ce.left,0);let cs=It.withWidth(Si),Qo=aS+fE,or=Math.min(It.width-Si,Ft),Ca=It.withWidth(Math.max(or,Qo)).translateX(Si),bf=or>=Qo;return{gutterEditArea:Me,icon:Ze,iconDirection:"right",iconRect:Ca,iconVisible:bf,pillRect:It,lineNumberRect:cs}}let ft=Ce.intersect(Me);if(ft&&ft.height>=Oe){let It=Pe.moveToBeContainedIn(me).moveToBeContainedIn(ft),Si=It.withWidth(nt(It));return{gutterEditArea:Me,icon:Ze,iconDirection:"right",iconRect:Si,pillRect:Si,iconVisible:!0}}let St=Pe.moveToBeContainedIn(Ce),vt=St.withWidth(nt(St)),Vt=vt,Wt=vt.top<Pe.top?"top":"bottom";return{gutterEditArea:Me,icon:rt,iconDirection:Wt,iconRect:Vt,pillRect:vt,iconVisible:!0}}),this._iconRef=he.ref(),this.isVisible=this._layout.map((X)=>!!X),this._hoverVisible=j(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=j(this,!1),this._isHoveredOverIconDebounced=W1(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=he.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},eo(this._layout).map((X)=>!X?[]:[he.div({style:{position:"absolute",background:P(cE),borderRadius:`${jt}px`,...Jt((Y)=>X.read(Y).gutterEditArea)}}),he.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{let Q=this._layout.get()?.icon.get()===S.check,te=this._data.get();if(!te)throw new H("Gutter indicator data not available");if(this._editorObs.editor.focus(),Q)te.model.accept();else te.model.jump()},onmouseenter:()=>{this._isHoveredOverIcon.set(!0,void 0),this._showHover()},onmouseleave:()=>this._isHoveredOverIcon.set(!1,void 0),style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map((Y)=>Y.background),["--vscodeIconForeground"]:this._gutterIndicatorStyles.map((Y)=>Y.foreground),border:this._gutterIndicatorStyles.map((Y)=>`1px solid ${Y.border}`),boxSizing:"border-box",borderRadius:`${jt}px`,display:"flex",justifyContent:X.map((Y)=>Y.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map((Y)=>Y?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Jt((Y)=>X.read(Y).pillRect)}},[he.div({className:"line-number",style:{lineHeight:X.map((Y)=>Y.lineNumberRect?Y.lineNumberRect.height:0),display:X.map((Y)=>Y.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:X.map((Y)=>Y.lineNumberRect?Y.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map((Y)=>Y.foreground)}},this._lineNumberToRender),he.div({style:{transform:X.map((Y)=>`rotate(${aM(Y.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:X.map((Y)=>Y.iconVisible?"1":"0"),marginRight:X.map((Y)=>Y.pillRect.width-Y.iconRect.width-(Y.lineNumberRect?.width??0)),width:X.map((Y)=>Y.iconRect.width),position:"relative",right:X.map((Y)=>Y.iconDirection==="top"?"1px":"0"),color:this._data.map((Y)=>Y?.customization?.icon?.color?P(Y.customization.icon.color.id):void 0)}},[X.map((Y,Q)=>dM(_o(Y.icon.read(Q)),{fontSize:cM(Math.min(Y.iconRect.width-fE,aS))}))])])])),this._originalRangeObs=eo(this._data.map((X)=>X?.originalRange)),this._stickyScrollController=Ds.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?je(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):De(0),this._isHoveredOverInlineEditDebounced=W1(this._isHoveringOverInlineEdit,100);let Z=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:Z.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:De(0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(Nr(this._isHoveredOverInlineEditDebounced,(X)=>{if(X)this.triggerAnimation()})),this._register(W((X)=>{if(Z.readEffect(X),Z.element)this._editorObs.editor.applyFontInfo(Z.element)}))}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map((h)=>h.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;let n=this._data.get();if(!n)throw new H("Gutter indicator data not available");let h=new d,g=h.add(this._instantiationService.createInstance(qm,this._editorObs,n.gutterMenuData,(_,v)=>{if(_)this._editorObs.editor.focus();if(v)this._onDidCloseWithCommand.fire(v);m?.dispose()}).toDisposableLiveElement()),p=this._userInteractionService.createFocusTracker(g.element,h);h.add(W((_)=>{this._focusIsInMenu.set(p.read(_),void 0)})),h.add(N(()=>this._focusIsInMenu.set(!1,void 0)));let m=this._hoverService.showInstantHover({target:this._iconRef.element,content:g.element});if(m)this._hoverVisible.set(!0,void 0),h.add(this._editorObs.editor.onDidScrollChange(()=>m.dispose())),h.add(m.onDispose(()=>{this._hoverVisible.set(!1,void 0),h.dispose()}));else h.dispose()}};ol=sM([ru(6,On),ru(7,A),ru(8,on),ru(9,We),ru(10,Ar)],ol);function aM(u){switch(u){case"top":return 90;case"bottom":return-90;case"right":return 0}}function dM(u,n){for(let h in n)u.style[h]=n[h];return u}function cM(u){return`${u}px`}var lM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},_E=function(u,n){return function(h,g){n(h,g,u)}},zo;(function(u){u.FirstTime="firstTime",u.SecondTime="secondTime",u.Active="active"})(zo||(zo={}));var jm=class u extends i{constructor(n,h,g,p,m){super();this._model=n,this._indicator=h,this._collapsedView=g,this._storageService=p,this._configurationService=m,this._disposables=this._register(new de),this._setupDone=j({name:"setupDone"},!1),this._activeCompletionId=f((_)=>{let v=this._model.read(_);if(!v)return;if(!this._setupDone.read(_))return;let w=this._indicator.read(_);if(!w||!w.isVisible.read(_))return;return v.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===zo.Active)return;let n=new d,h=!1,g=!1,p=0,m=0;return n.add(lP(this._activeCompletionId,async(_,v,w,C)=>{if(_===void 0)return;let E=this.getNewUserType();switch(E){case zo.FirstTime:{if(p++>=5||h)E=zo.SecondTime,this.setNewUserType(E);break}case zo.SecondTime:{if(m++>=3&&g)E=zo.Active,this.setNewUserType(E);break}}switch(E){case zo.FirstTime:{for(let R=0;R<3&&!C.isCancellationRequested;R++)await this._indicator.get()?.triggerAnimation(),await Ir(500);break}case zo.SecondTime:{this._indicator.get()?.triggerAnimation();break}}})),n.add(W((_)=>{if(this._collapsedView.isVisible.read(_)){if(this.getNewUserType()!==zo.Active)this._collapsedView.triggerAnimation()}})),n.add(W((_)=>{let v=this._indicator.read(_);if(!v)return;_.store.add(Nr(v.isHoveredOverIcon,async(w)=>{if(w)h=!0}))})),n.add(W((_)=>{let v=this._model.read(_);if(!v)return;_.store.add(v.onDidAccept(()=>{g=!0}))})),n}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,zo.FirstTime)}setNewUserType(n){switch(n){case zo.FirstTime:throw new H("UserKind should not be set to first time");case zo.SecondTime:break;case zo.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",n,-1,0)}_initializeDebugSetting(){if(this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1);return this._configurationService.onDidChangeConfiguration((g)=>{if(g.affectsConfiguration("editor.inlineSuggest.edits.resetNewUserExperience")&&this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience()})}};jm=lM([_E(3,Pn),_E(4,re)],jm);class dS{static{this.empty=new dS([])}constructor(u){this.replacements=u,Vh(au(u,(n,h)=>n.lineRange.endLineNumberExclusive<=h.lineRange.startLineNumber))}toString(){return this.replacements.map((u)=>u.toString()).join(",")}getNewLineRanges(){let u=[],n=0;for(let h of this.replacements)u.push(ne.ofLength(h.lineRange.startLineNumber+n,h.newLines.length)),n+=h.newLines.length-h.lineRange.length;return u}}class sl{static fromSingleTextEdit(u,n){let h=Ci(u.text),g=u.range.startLineNumber,p=n.getValueOfRange(t.fromPositions(new s(u.range.startLineNumber,1),u.range.getStartPosition()));h[0]=p+h[0];let m=u.range.endLineNumber+1,_=n.getTransformer().getLineLength(u.range.endLineNumber)+1,v=n.getValueOfRange(t.fromPositions(u.range.getEndPosition(),new s(u.range.endLineNumber,_)));h[h.length-1]=h[h.length-1]+v;let w=u.range.startColumn===n.getTransformer().getLineLength(u.range.startLineNumber)+1,C=u.range.endColumn===1;if(w&&h[0].length===p.length)g++,h.shift();if(h.length>0&&g<m&&C&&h[h.length-1].length===v.length)m--,h.pop();return new sl(new ne(g,m),h)}constructor(u,n){this.lineRange=u,this.newLines=n}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new dS([this])}}class cS{get lineEdit(){if(this.action?.kind==="jumpTo")return new sl(ne.ofLength(this.action.position.lineNumber,0),[]);else if(this.action?.kind==="edit")return sl.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText);return new sl(new ne(1,1),[])}get originalLineRange(){return this.lineEdit.lineRange}get modifiedLineRange(){return this.lineEdit.toLineEdit().getNewLineRanges()[0]}get displayRange(){return this.originalText.lineRange.intersect(this.originalLineRange.join(ne.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(u,n,h,g,p,m,_){this.originalText=u,this.action=n,this.edit=h,this.cursorPosition=g,this.multiCursorPositions=p,this.commands=m,this.inlineCompletion=_}}class lS{constructor(u,n,h){this._model=u,this.inlineEdit=n,this.tabAction=h,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=f(this,(g)=>Aw(this._model.editor,this.inlineEdit.inlineCompletion,g)),this.onDidAccept=this._model.onDidAccept}accept(u){this._model.accept(void 0,u)}handleInlineEditShownNextFrame(u,n){let h=this.inlineEdit.inlineCompletion,g=Date.now();h.addRef(),Wa(()=>{this._model.handleInlineSuggestionShown(h,u,n,g),h.removeRef()})}}var hM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uM=function(u,n){return function(h,g){n(h,g,u)}},$m=class u extends i{constructor(n,h,g){super();this._editor=n,this._edit=h,this._accessibilityService=g,this.onDidClick=I.None,this._iconRef=he.ref(),this.isHovered=De(!1),this._editorObs=ct(this._editor);let m=this._edit.map((C)=>C?.edit?.replacements[0]??null).map((C)=>C?Go(C,this._editor.getModel()).range.getStartPosition():null),_=this._editorObs.observePosition(m,this._store),v=f((C)=>{let E=_.read(C);if(!E)return null;let R=this._editorObs.layoutInfoContentLeft.read(C),Z=this._editorObs.scrollLeft.read(C);return new xi(R+E.x-Z,E.y)}),w=he.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(v)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:w,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:De(0)})),this.isVisible=this._edit.map((C,E)=>!!C&&v.read(E)!==null)}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:0.2,transform:"translateY(1px)"},{offset:0.36,transform:"translateY(-1px)"},{offset:0.52,transform:"translateY(1px)"},{offset:0.68,transform:"translateY(-1px)"},{offset:0.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2000}).finished}getCollapsedIndicator(n){let h=this._editorObs.layoutInfoContentLeft,g=n.map((m,_)=>m?m.deltaX(-h.read(_)):null),p=this.createIconPath(g);return he.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Jt((m)=>el(this._editorObs).read(m)),overflow:"hidden",pointerEvents:"none"}},[he.svgElem("path",{class:"collapsedViewPath",d:p,fill:P(Ln)})])}createIconPath(n){return n.map((m)=>{if(!m)return new il().build();let _=m.deltaX(-3).deltaY(-1),v=_.deltaX(6),w=_.deltaY(1),C=v.deltaY(1),E=w.deltaX(3).deltaY(3);return new il().moveTo(_).lineTo(v).lineTo(C).lineTo(E).lineTo(w).lineTo(_).build()})}};$m=hM([uM(2,on)],$m);var gM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},bE=function(u,n){return function(h,g){n(h,g,u)}},Gm=14,hS=0,as=4,Zm=4,vE=2,Xm=class u extends i{constructor(n,h,g,p,m,_){super();this._editor=n,this._languageService=_,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._isHovered=j(this,!1),this.isHovered=this._isHovered,this._viewRef=he.ref(),this._editorObs=ct(this._editor);let v=g.map((R,Z)=>{let X;switch(R){case Dt.Inactive:X=Yc;break;case Dt.Jump:X=xr;break;case Dt.Accept:X=Jc;break}return{border:Ut(X,m).read(Z).toString(),background:no(p.read(Z))}}),w=h.map((R)=>R?this.getState(R):void 0),C=w.map((R)=>R?this.getRendering(R,v):void 0);this.minEditorScrollHeight=f(this,(R)=>{let Z=w.read(R);if(!Z)return 0;return Z.rect.read(R).bottom+this._editor.getScrollTop()});let E=he.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[C]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:E.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:hr(this,(R,Z)=>{let X=w.read(R);if(!X)return Z??0;let Y=X.rect.map((Q)=>Q.right).read(R)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(R)+as-this._editorObs.layoutInfoContentLeft.read(R);return Math.max(Z??0,Y)}).recomputeInitiallyAndOnChange(this._store)})),this._register(W((R)=>{if(!C.read(R)){this._isHovered.set(!1,void 0);return}this._isHovered.set(E.isHovered.read(R),void 0)}))}fitsInsideViewport(n,h,g){let p=this._editorObs.layoutInfoWidth.read(g),m=this._editorObs.layoutInfoContentLeft.read(g),_=this._editor.getLayoutInfo().verticalScrollbarWidth,v=this._editorObs.layoutInfoMinimap.read(g).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(g).minimapWidth:0,w=Xo(this._editorObs,n,void 0),C=nu(h,this._editor,this._editor.getModel()),E=as+Gm;return w+C+E<p-m-_-v}getState(n){let h=f(this,(v)=>{let w=n.range.startLineNumber,C=n.range.endLineNumber,E=n.range.startColumn,R=n.range.endColumn,Z=this._editor.getModel()?.getLineCount()??0,X=Xo(this._editorObs,new ne(w,w+1),v),Y=w+1<=Z?Xo(this._editorObs,new ne(w+1,w+2),v):void 0,Q=w-1>=1?Xo(this._editorObs,new ne(w-1,w),v):void 0,te=this._editor.getOffsetForColumn(w,E),oe=this._editor.getOffsetForColumn(C,R);return{lineWidth:X,lineWidthBelow:Y,lineWidthAbove:Q,startContentLeftOffset:te,endContentLeftOffset:oe}}),g=n.range.startLineNumber,p=n.range.endLineNumber,m=this.fitsInsideViewport(new ne(g,p+1),n.content,void 0);return{rect:f(this,(v)=>{let w=this._editorObs.getOption(59).read(v).typicalHalfwidthCharacterWidth,{lineWidth:C,lineWidthBelow:E,lineWidthAbove:R,startContentLeftOffset:Z,endContentLeftOffset:X}=h.read(v),Y=this._editorObs.layoutInfoContentLeft.read(v),Q=this._editorObs.observeLineHeightForLine(g).recomputeInitiallyAndOnChange(v.store).read(v),te=this._editorObs.scrollTop.read(v),oe=this._editorObs.scrollLeft.read(v),le;if(g===p&&X+5*w>=C&&m)le="end";else if(E!==void 0&&E+Gm-Zm-as<Z)le="below";else if(R!==void 0&&R+Gm-Zm-as<Z)le="above";else le="end";let pe,Se,Ce=0,ae=0;switch(le){case"end":{pe=this._editorObs.editor.getTopForLineNumber(g),Se=C,Ce=as+Gm;break}case"below":{pe=this._editorObs.editor.getTopForLineNumber(g+1),Se=Z,Ce=as+Zm,ae=hS+vE;break}case"above":{pe=this._editorObs.editor.getTopForLineNumber(g-1),Se=Z,Ce=as+Zm,ae=-hS+vE;break}}return st.fromLeftTopWidthHeight(Y+Se-oe,pe-te,w*n.content.length,Q).withMargin(hS,as).translateX(Ce).translateY(ae)}),label:n.content,kind:n.style}}getRendering(n,h){let g=document.createElement("div"),p=this._editor.getModel().tokenization.tokenizeLinesAt(1,[n.label])?.[0],m;if(p&&n.kind===P1.Code)m=Rl.fromLineTokens(p).toLineTokens(n.label,this._languageService.languageIdCodec);else m=Tt.createEmpty(n.label,this._languageService.languageIdCodec);let _=Eu(new kd([m]),Za.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],g,!0);g.style.width=`${_.minWidthInPx}px`;let v=n.rect.map((w)=>w.withMargin(0,as));return he.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Jt((w)=>v.read(w)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:h.map((w)=>`1px solid ${w.border}`),borderRadius:`${jt}px`,backgroundColor:h.map((w)=>w.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:(w)=>{w.preventDefault()},onclick:(w)=>{this._onDidClick.fire(To.create(w))}},[g])}};Xm=gM([bE(4,We),bE(5,xt)],Xm);var pM=0,mM=0,uS=1,fM=1,_M=3,gS=jt;class pS extends i{constructor(u,n,h,g){super();this._editor=u,this._edit=n,this._uiState=h,this._tabAction=g,this.onDidClick=I.None,this._display=f(this,(_)=>this._uiState.read(_)?"block":"none"),this._editorMaxContentWidthInRange=f(this,(_)=>{let v=this._originalDisplayRange.read(_);if(!v)return De(0);return this._editorObs.versionId.read(_),hr(this,(w,C)=>{let E=Xo(this._editorObs,v,w);return Math.max(E,C??0)})}).map((_,v)=>_.read(v)),this._maxPrefixTrim=f(this,(_)=>{let v=this._uiState.read(_);if(!v)return{prefixTrim:0,prefixLeftOffset:0};return Qc(v.deletions,v.originalRange,[],this._editor)}),this._editorLayoutInfo=f(this,(_)=>{let v=this._edit.read(_);if(!v)return null;if(!this._uiState.read(_))return null;let C=this._editorObs.layoutInfo.read(_),E=this._editorObs.scrollLeft.read(_),R=this._editorObs.getOption(59).map((le)=>le.typicalHalfwidthCharacterWidth).read(_),Z=C.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(_),R)-E,X=v.originalLineRange,Y=this._originalVerticalStartPosition.read(_)??this._editor.getTopForLineNumber(X.startLineNumber)-this._editorObs.scrollTop.read(_),Q=this._originalVerticalEndPosition.read(_)??this._editor.getTopForLineNumber(X.endLineNumberExclusive)-this._editorObs.scrollTop.read(_),te=C.contentLeft+this._maxPrefixTrim.read(_).prefixLeftOffset-E;if(Z<=te)return null;return{codeRect:st.fromLeftTopRightBottom(te,Y,Z,Q).withMargin(mM,pM),contentLeft:C.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=he.div({style:{pointerEvents:"none"}},f(this,(_)=>{let v=eo(this._editorLayoutInfo).read(_);if(!v)return;let w=v.map((X)=>st.fromLeftTopRightBottom(X.contentLeft-gS-uS,X.codeRect.top,X.contentLeft,X.codeRect.bottom)),C=f(this,(X)=>{let Y=v.read(X).codeRect,Q=w.read(X);return Y.intersectHorizontal(new V(Q.left,Number.MAX_SAFE_INTEGER))}),E=this._uiState.map((X)=>X?.editorType===At.DiffEditor?_M:fM).read(_),R=C.map((X)=>X.withMargin(E,E)),Z=no(this._uiState.map((X)=>X?.editorType??At.TextEditor).read(_));return[he.div({class:"originalSeparatorDeletion",style:{...R.read(_).toStyles(),borderRadius:`${gS}px`,border:`${uS+E}px solid ${Z}`,boxSizing:"border-box"}}),he.div({class:"originalOverlayDeletion",style:{...C.read(_).toStyles(),borderRadius:`${gS}px`,border:_a(this._tabAction).map((X)=>`${uS}px solid ${P(X)}`),boxSizing:"border-box",backgroundColor:P(ga)}}),he.div({class:"originalOverlayHiderDeletion",style:{...w.read(_).toStyles(),backgroundColor:Z}})]})).keepUpdated(this._store),this._nonOverflowView=he.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=De(!1),this._editorObs=ct(this._editor);let p=f(this,(_)=>{let v=this._edit.read(_);return v?new s(v.originalLineRange.startLineNumber,1):null}),m=f(this,(_)=>{let v=this._edit.read(_);return v?new s(v.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map((_)=>_?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(p,this._store).map((_)=>_?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(m,this._store).map((_)=>_?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:f(this,(_)=>{let v=this._editorLayoutInfo.read(_);if(v===null)return 0;return v.codeRect.width})}))}}var bM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},wE=function(u,n){return function(h,g){n(h,g,u)}},al=1,vM=1,wM=3,mS=jt,Ym=class u extends i{constructor(n,h,g,p,m){super();this._editor=n,this._input=h,this._tabAction=g,this._languageService=m,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._state=f(this,(_)=>{let v=this._input.read(_);if(!v)return;let w=this._editor.getModel(),C=w.getEOL();if(v.startColumn===1&&v.lineNumber>1&&w.getLineLength(v.lineNumber)!==0&&v.text.endsWith(C)&&!v.text.startsWith(C)){let E=w.getLineLength(v.lineNumber-1)+1;return{lineNumber:v.lineNumber-1,column:E,text:C+v.text.slice(0,-C.length)}}return{lineNumber:v.lineNumber,column:v.startColumn,text:v.text}}),this._trimVertically=f(this,(_)=>{let v=this._state.read(_);if(!v)return{topOffset:0,contentHeight:0,linesTop:0,linesBottom:0};let w=v.text,C=this._editor.getLineHeightForPosition(new s(v.lineNumber,1)),E=this._editor.getModel().getEOL(),R=w.split(E).length,Z=0,X=0;if(w.trim()!==""){let Y=0;for(;Y<w.length&&w.startsWith(E,Y);Y+=E.length)Z+=1;for(let Q=w.length;Q>Y&&w.endsWith(E,Q);Q-=E.length)X+=1}return{topOffset:Z*C,contentHeight:(R-Z-X)*C,linesTop:Z,linesBottom:X}}),this._maxPrefixTrim=f(this,(_)=>{let v=this._state.read(_);if(!v)return{prefixLeftOffset:0,prefixTrim:0};let w=this._editor.getModel(),C=w.getEOL(),E=this._trimVertically.read(_),R=v.text.split(C),Z=R.slice(E.linesTop,R.length-E.linesBottom);if(E.linesTop===0)Z[0]=w.getLineContent(v.lineNumber)+Z[0];let X=new ne(v.lineNumber,v.lineNumber+(E.linesTop>0?0:1));return Qc([],X,Z,this._editor)}),this._ghostText=f((_)=>{let v=this._state.read(_),w=this._maxPrefixTrim.read(_);if(!v)return;let E=this._editor.getModel().getEOL(),Z=v.text.split(E).map((X,Y)=>new _d(new t(Y+1,Y===0?1:w.prefixTrim+1,Y+1,X.length+1),"modified-background",0));return new Yr(v.lineNumber,[new Id(v.column,v.text,!1,Z)])}),this._display=f(this,(_)=>this._state.read(_)?"block":"none"),this._editorMaxContentWidthInRange=f(this,(_)=>{let v=this._state.read(_);if(!v)return 0;this._editorObs.versionId.read(_);let w=this._editor.getModel(),C=w.getEOL(),E=v.text.startsWith(C)?"":w.getValueInRange(new t(v.lineNumber,1,v.lineNumber,v.column)),R=w.getValueInRange(new t(v.lineNumber,v.column,v.lineNumber,w.getLineLength(v.lineNumber)+1)),X=(E+v.text+R).split(C),Y=Za.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),Q=X.map((te)=>{let oe=w.tokenization.tokenizeLinesAt(v.lineNumber,[te])?.[0],le;if(oe)le=Rl.fromLineTokens(oe).toLineTokens(te,this._languageService.languageIdCodec);else le=Tt.createEmpty(te,this._languageService.languageIdCodec);return Eu(new kd([le]),Y,[],x("div"),!0).minWidthInPx});return Math.max(...Q)}),this.startLineOffset=this._trimVertically.map((_)=>_.topOffset),this.originalLines=this._state.map((_)=>_?new ne(_.lineNumber,Math.min(_.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=f(this,(_)=>{this._ghostText.read(_);let v=this._state.read(_);if(!v)return null;this._editorObs.observePosition(j(this,new s(v.lineNumber,v.column)),_.store).read(_);let w=this._editorObs.layoutInfo.read(_),C=this._editorObs.scrollLeft.read(_),E=this._editorObs.layoutInfoVerticalScrollbarWidth.read(_),R=w.contentLeft+this._editorMaxContentWidthInRange.read(_)-C,Z=this._maxPrefixTrim.read(_).prefixLeftOffset??0,X=w.contentLeft+Z-C;if(R<=X)return null;let{topOffset:Y,contentHeight:Q}=this._trimVertically.read(_),te=this._editorObs.scrollTop.read(_),oe=this._editor.getTopForLineNumber(v.lineNumber)-te+Y,le=oe+Q,pe=new st(X,oe,R,le);return{overlay:pe,startsAtContentLeft:Z===0,contentLeft:w.contentLeft,minContentWidthRequired:Z+pe.width+E}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=he.div({style:{pointerEvents:"none"}},f(this,(_)=>{let v=eo(this._overlayLayout).read(_);if(!v)return;let w=v.map((X)=>st.fromLeftTopRightBottom(X.contentLeft-mS-al,X.overlay.top,X.contentLeft,X.overlay.bottom)).read(_),C=this._input.map((X)=>X?.editorType===At.DiffEditor?wM:vM).read(_),E=v.map((X)=>X.overlay.withMargin(0,al,al,X.startsAtContentLeft?0:al).intersectHorizontal(new V(w.left,Number.MAX_SAFE_INTEGER))),R=E.map((X)=>X.withMargin(C,C)),Z=no(this._input.read(void 0)?.editorType??At.TextEditor);return[he.div({class:"originalUnderlayInsertion",style:{...R.read(_).toStyles(),borderRadius:mS,border:`${al+C}px solid ${Z}`,boxSizing:"border-box"}}),he.div({class:"originalOverlayInsertion",style:{...E.read(_).toStyles(),borderRadius:mS,border:ss(this._tabAction).map((X)=>`${al}px solid ${P(X)}`),boxSizing:"border-box",backgroundColor:P(Um)}}),he.div({class:"originalOverlayHiderInsertion",style:{...w.toStyles(),backgroundColor:Z}})]})).keepUpdated(this._store),this._view=he.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=ct(this._editor),this._ghostTextView=this._register(p.createInstance(ia,this._editor,f((_)=>{let v=this._ghostText.read(_);if(!v)return;return{ghostText:v,handleInlineCompletionShown:(w)=>{},warning:void 0}}),{extraClasses:["inline-edit"],isClickable:!0,shouldKeepCursorStable:!0})),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick((_)=>{this._onDidClick.fire(new To(_))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:f(this,(_)=>{let v=this._overlayLayout.read(_);if(v===null)return 0;return v.minContentWidthRequired})}))}};Ym=bM([wE(3,A),wE(4,xt)],Ym);var SM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},SE=function(u,n){return function(h,g){n(h,g,u)}},Jm=class u extends i{constructor(n,h,g,p,m,_){super();this._editor=n,this._edit=h,this._editorType=g,this._tabAction=p,this._languageService=m,this._themeService=_,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((v,w)=>v?Qc(v.replacements.flatMap((C)=>[C.originalRange,C.modifiedRange]),v.originalRange,v.modifiedLines,this._editor.editor,w):void 0),this._modifiedLineElements=f(this,(v)=>{let w=[],C=0,E=this._maxPrefixTrim.read(v),R=this._edit.read(v);if(!R||!E)return;let Z=E.prefixTrim,X=CM(R.replacements.map((te)=>te.modifiedRange)).map((te)=>new t(te.startLineNumber,te.startColumn-Z,te.endLineNumber,te.endColumn-Z)),Y=this._editor.model.get(),Q=R.modifiedRange.startLineNumber;for(let te=0;te<R.modifiedRange.length;te++){let oe=document.createElement("div"),le=Q+te,pe=R.modifiedLines[te].slice(Z),Se=Y.tokenization.tokenizeLinesAt(le,[pe])?.[0],Ce;if(Se)Ce=Rl.fromLineTokens(Se).toLineTokens(pe,this._languageService.languageIdCodec);else Ce=Tt.createEmpty(pe,this._languageService.languageIdCodec);let ae=[];for(let Ne of X.filter((Me)=>Me.startLineNumber===le)){let Me=Math.min(Ne.endColumn,pe.length+1);ae.push(new _d(new t(1,Ne.startColumn,1,Me),"inlineCompletions-modified-bubble",0))}let me=Eu(new kd([Ce]),Za.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),ae,oe,!0);this._editor.getOption(59).read(v),C=Math.max(C,me.minWidthInPx),w.push(oe)}return{lines:w,requiredWidth:C}}),this._layout=f(this,(v)=>{let w=this._modifiedLineElements.read(v),C=this._maxPrefixTrim.read(v),E=this._edit.read(v);if(!w||!C||!E)return;let{prefixLeftOffset:R}=C,{requiredWidth:Z}=w,X=this._editor.observeLineHeightsForLineRange(E.originalRange).read(v),Y=(()=>{let Ze=X.slice(0,E.modifiedRange.length);while(Ze.length<E.modifiedRange.length)Ze.push(X[X.length-1]);return Ze})(),Q=this._editor.layoutInfoContentLeft.read(v),te=this._editor.layoutInfoVerticalScrollbarWidth.read(v),oe=this._editor.scrollLeft.read(v),le=this._editor.scrollTop.read(v),pe=Q-oe,Se=this._editor.editor.getModel(),Ce=E.originalRange.mapToLineArray((Ze)=>this._editor.editor.getOffsetForColumn(Ze,Se.getLineMaxColumn(Ze))-R),ae=Math.max(...Ce,Z),me=E.originalRange.startLineNumber,Ne=E.originalRange.endLineNumberExclusive-1,Me=this._editor.editor.getTopForLineNumber(me)-le,Oe=this._editor.editor.getBottomForLineNumber(Ne)-le,ye=st.fromLeftTopWidthHeight(pe+R,Me,ae,Oe-Me),Pe=st.fromLeftTopWidthHeight(ye.left,ye.bottom,ye.width,Y.reduce((Ze,Ft)=>Ze+Ft,0)),it=st.hull([ye,Pe]),Ve=it.intersectVertical(new V(ye.bottom,Number.MAX_SAFE_INTEGER)),rt=new st(Ve.left,Ve.top,Ve.right,Ve.bottom);return{originalLinesOverlay:ye,modifiedLinesOverlay:Pe,background:it,lowerBackground:Ve,lowerText:rt,modifiedLineHeights:Y,minContentWidthRequired:R+ae+te}}),this._viewZoneInfo=f((v)=>{if(!this._editor.getOption(71).map((X)=>X.edits.allowCodeShifting==="always").read(v))return;let C=this._layout.read(v),E=this._edit.read(v);if(!C||!E)return;let R=C.lowerBackground.height,Z=E.originalRange.endLineNumberExclusive;return{height:R,lineNumber:Z}}),this.minEditorScrollHeight=f(this,(v)=>{let w=eo(this._layout).read(v);if(!w||this._viewZoneInfo.read(v)!==void 0)return 0;return w.read(v).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=he.div({class:"line-replacement"},[f(this,(v)=>{let w=eo(this._layout).read(v),C=this._modifiedLineElements.read(v);if(!w||!C)return[];let E=w.read(v),R=this._editor.layoutInfoContentLeft.read(v),Z=this._editorType.read(v)===At.DiffEditor?3:1;C.lines.forEach((te,oe)=>{te.style.width=`${E.lowerText.width}px`,te.style.height=`${E.modifiedLineHeights[oe]}px`,te.style.position="relative"});let X=ss(this._tabAction).read(v),Y=_a(this._tabAction).read(v),Q=no(this._editorType.read(v));return[he.div({style:{position:"absolute",...Jt((te)=>el(this._editor).read(te)),overflow:"hidden",pointerEvents:"none"}},[he.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Jt((te)=>w.read(te).background.translateX(-R).withMargin(Z)),borderRadius:`${jt}px`,border:`${Z+1}px solid ${Q}`,boxSizing:"border-box",pointerEvents:"none"}}),he.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Jt((te)=>w.read(te).background.translateX(-R)),borderRadius:`${jt}px`,border:Ut(Y,this._themeService).map((te)=>`1px solid ${te.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:P(ga)}}),he.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Jt((te)=>w.read(te).lowerBackground.translateX(-R)),borderRadius:`0 0 ${jt}px ${jt}px`,background:Q,boxShadow:`${P(Ig)} 0 6px 6px -6px`,border:`1px solid ${P(X)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:(te)=>{te.preventDefault()},onclick:(te)=>this._onDidClick.fire(To.create(te))},[he.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:P(nE)}})]),he.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Jt((te)=>w.read(te).lowerText.translateX(-R)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${jt}px ${jt}px`,overflow:"hidden"}},[...C.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered((v)=>this._isMouseOverWidget(v),this._store),this._previousViewZoneInfo=void 0,this._register(N(()=>this._editor.editor.changeViewZones((v)=>this.removePreviousViewZone(v)))),this._register(O2(this._viewZoneInfo,({lastValue:v,newValue:w})=>{if(v===w||v?.height===w?.height&&v?.lineNumber===w?.lineNumber)return;this._editor.editor.changeViewZones((C)=>{if(this.removePreviousViewZone(C),!w)return;this.addViewZone(w,C)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:f(this,(v)=>this._layout.read(v)?.minContentWidthRequired??0),position:De({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(n){let h=this._layout.get();if(!h||!(n.event instanceof Nl))return!1;return h.lowerBackground.containsPoint(new xi(n.event.relativePos.x,n.event.relativePos.y))}removePreviousViewZone(n){if(!this._previousViewZoneInfo)return;n.removeZone(this._previousViewZoneInfo.id);let h=this._editor.cursorLineNumber.get();if(h!==null&&h>=this._previousViewZoneInfo.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height);this._previousViewZoneInfo=void 0}addViewZone(n,h){let g=h.addZone({afterLineNumber:n.lineNumber-1,heightInPx:n.height,domNode:x("div")});this._previousViewZoneInfo={height:n.height,lineNumber:n.lineNumber,id:g};let p=this._editor.cursorLineNumber.get();if(p!==null&&p>=n.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()+n.height)}};Jm=SM([SE(4,xt),SE(5,We)],Jm);function CM(u){let n=[];while(u.length){let h=u.shift();if(h.startLineNumber!==h.endLineNumber)u.push(new t(h.startLineNumber+1,1,h.endLineNumber,h.endColumn)),h=new t(h.startLineNumber,h.startColumn,h.startLineNumber,Number.MAX_SAFE_INTEGER);n.push(h)}return n}function CE(u,n){let h={};for(let[_,v]of Object.entries(n))if(Array.isArray(v))h[_]={min:0,rules:v};else h[_]={min:v.min??0,rules:v.rules??[{max:v.max,priority:v.priority,share:v.share}]};let g={},p=0;for(let[_,v]of Object.entries(h))g[_]=v.min,p+=v.min;if(p>u)return null;let m=u-p;while(m>0){let _=[];for(let[Z,X]of Object.entries(h))for(let Y=0;Y<X.rules.length;Y++){let Q=X.rules[Y],te=g[Z],oe=Q.max??1/0;if(te<oe)_.push({partKey:Z,ruleIndex:Y,rule:Q,priority:Q.priority??0,share:Q.share??1})}if(_.length===0)break;let v=Math.max(..._.map((Z)=>Z.priority)),w=_.filter((Z)=>Z.priority===v),C=w.reduce((Z,X)=>Z+X.share,0),E=0,R=[];for(let Z of w){let X=Z.rule,Y=g[Z.partKey],te=(X.max??1/0)-Y,oe=m*Z.share/C,le=Math.min(oe,te);R.push({partKey:Z.partKey,ruleIndex:Z.ruleIndex,amount:le}),E+=le}if(E===0)break;for(let Z of R)g[Z.partKey]+=Z.amount;if(m-=E,m<0.0001)break}return g}var yM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},fS=function(u,n){return function(h,g){n(h,g,u)}},Qm=class u extends i{constructor(n,h,g,p,m,_){super();this._editor=n,this._data=g,this._themeService=p,this._keybindingService=m,this._contextKeyService=_,this._styles=f(this,(w)=>({background:Ut(xr,this._themeService).read(w).toString(),foreground:Ut(fa,this._themeService).read(w).toString(),border:Ut(Ln,this._themeService).read(w).toString()})),this._pos=f(this,(w)=>this._editor.observePosition(f((C)=>this._data.read(C)?.jumpToPosition||null),w.store)).flatten(),this._layout=f(this,(w)=>{let C=this._data.read(w);if(!C)return;let E=C.jumpToPosition,R=this._editor.observeLineHeightForLine(De(E.lineNumber)).read(w),Z=this._editor.scrollLeft.read(w),X=this._pos.read(w);if(!X)return;let Y=this._editor.layoutInfo.read(w);return{widgetRect:st.fromLeftTopWidthHeight(X.x+Y.contentLeft+2-Z,X.y,100,R)}}),this._blink=xM([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=he.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map((w)=>w?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Jt((w)=>this._layout.read(w)?.widgetRect)}},f((w)=>{if(this._data.read(w)===void 0)return[];return he.div({style:{display:"flex",alignItems:"center",gap:"4px",padding:"0 4px",height:"100%",backgroundColor:this._styles.map((C)=>C.background),["--vscodeIconForeground"]:this._styles.map((C)=>C.foreground),border:this._styles.map((C)=>`1px solid ${C.border}`),borderRadius:"3px",boxSizing:"border-box",fontSize:"11px",color:this._styles.map((C)=>C.foreground)}},[this._style==="cursor"?he.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map((C)=>C?"0":"1")}}):[f(()=>he.elem("div",{},IM(this._keybinding))),he.elem("div",{style:{lineHeight:this._layout.map((C)=>C?.widgetRect.height),marginTop:"-2px"}},["to jump"])]])})),this._style=h.style,this._keybinding=this._getKeybinding(Gn);let v=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:v.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:De(0)})),this._register(this._editor.setDecorations(f((w)=>{let C=this._data.read(w);if(!C)return[];return[{range:t.fromPositions(C.jumpToPosition,C.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]})))}_getKeybinding(n,h=Gt.ofCaller()){if(!n)return De(void 0);return je(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(n),h)}};Qm=yM([fS(3,We),fS(4,ge),fS(5,G)],Qm);function xM(u,n=Gt.ofCaller()){let h=0;return je(void 0,(g)=>{h=0;let p=new ke(()=>{h=(h+1)%u.length,g(null),p.schedule(u[h].durationMs)},0);return p.schedule(0),p},()=>u[h].value,n)}function IM(u){return f((n)=>he.div({style:{},ref:(h)=>{let g=n.store.add(new Ya(h,Ni,{disableTitle:!0,...Ry,keybindingLabelShadow:void 0,keybindingLabelForeground:P(fa),keybindingLabelBackground:"transparent",keybindingLabelBorder:P(fa),keybindingLabelBottomBorder:void 0}));n.store.add(W((p)=>{g.set(u.read(p))}))}}))}var LM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},kM=function(u,n){return function(h,g){n(h,g,u)}};function EM(u,n,h){let g=Math.max(1,Math.min(h,u)),p=Math.max(1,g-n),m=Math.min(h+1,g+n+1);return new ne(p,m)}var ef=class u extends i{constructor(n,h,g,p,m){super();this._previewTextModel=n,this._properties=h,this._parentEditor=g,this._tabAction=p,this._instantiationService=m,this._previewRef=he.ref(),this.element=he.div({class:"preview",style:{},ref:this._previewRef}),this._state=f(this,(_)=>{let v=this._properties.read(_);if(!v)return;let w,C;if(v.nextCursorPosition!==null)w="original",C=v.nextCursorPosition.lineNumber;else if(v.diff[0].innerChanges?.every((Y)=>Y.modifiedRange.isEmpty()))w="original",C=v.diff[0].original.startLineNumber;else w="modified",C=v.diff[0].modified.startLineNumber;let E=w==="modified"?Cr.snapshot(this._previewTextModel):v.target,R=this._parentEditorObs.getOption(71).read(_).edits.longDistanceHintContextLineCount,Z=w==="modified"?this._previewTextModel:v.target.dangerouslyGetUnderlyingModel(),X=EM(C,R,Z.getLineCount());return{mode:w,targetLineNumber:C,visibleLineRange:X,textModel:E,diff:v.diff}}),this.updatePreviewEditorEffect=f(this,(_)=>{this._previewEditorObs.model.read(_);let v=this._state.read(_)?.visibleLineRange;if(!v)return;let w=[];if(v.startLineNumber>1)w.push(new t(1,1,v.startLineNumber-1,1));if(v.endLineNumberExclusive<this._previewTextModel.getLineCount()+1)w.push(new t(v.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(w,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=f(this,(_)=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,_)),this.contentHeight=f(this,(_)=>{let v=this._state.read(_);if(!v)return De(null);return this._previewEditorObs.observeLineHeightsForLineRange(v.visibleLineRange).map((w)=>w.reduce((C,E)=>C+E,0))}).flatten(),this._editorDecorations=f(this,(_)=>{let v=this._state.read(_);if(!v)return;let w={diff:v.diff},C=[],E=[],R=ue.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),Z=ue.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),X=ue.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(let Y of w.diff)if(Y.modified.isEmpty||Y.original.isEmpty){if(!Y.original.isEmpty)C.push({range:Y.original.toInclusiveRange(),options:R});if(!Y.modified.isEmpty)E.push({range:Y.modified.toInclusiveRange(),options:Z})}else for(let Q of Y.innerChanges||[]){if(Y.original.contains(Q.originalRange.startLineNumber)&&!Q.originalRange.isEmpty())C.push({range:Q.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:tl("inlineCompletions-char-delete",Q.originalRange.isEmpty()&&"empty"),zIndex:1}});if(Y.modified.contains(Q.modifiedRange.startLineNumber))E.push({range:Q.modifiedRange,options:X})}return{originalDecorations:C,modifiedDecorations:E}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=ct(this._parentEditor),this._register(W((_)=>{let v=this._state.read(_)?.textModel||null;if(v)this.previewEditor.setModel(v.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=ct(this.previewEditor),this._register(this._previewEditorObs.setDecorations(f((_)=>{let v=this._state.read(_),w=this._editorDecorations.read(_);return(v?.mode==="original"?w?.originalDecorations:w?.modifiedDecorations)??[]}))),this._register(W((_)=>{if(!this._properties.read(_))return;let v=this._parentEditorObs.cursorPosition.read(_);if(v)this.previewEditor.setPosition(this._previewTextModel.validatePosition(v),"longDistanceHintPreview")})),this._register(W((_)=>{let v=this._state.read(_);if(!v)return;let w=(v.visibleLineRange.endLineNumberExclusive-1).toString().length;this.previewEditor.updateOptions({lineNumbersMinChars:w+1})})),this._register(this._instantiationService.createInstance(ol,this._previewEditorObs,f((_)=>{let v=this._state.read(_);if(!v)return;let w=this._properties.read(_);if(!w)return;return new su(w.inlineSuggestInfo,ne.ofLength(v.targetLineNumber,1),w.model,void 0)}),this._tabAction,De(0),De(!1),j(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(Wi,this._previewRef.element,{glyphMargin:!1,lineNumbers:"on",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},editContext:!1,rulers:[],padding:{top:0,bottom:0},selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[dt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(n,h){let g=this._state.read(h);if(!g)return;let p=g.diff,m=this._properties.read(h)?.nextCursorPosition,_=g.visibleLineRange,v=this._previewEditorObs.layoutInfo.read(h),w=Xo(this._previewEditorObs,_,h),C;if(m)C=t.fromPositions(m);else if(p[0].innerChanges)C=g.mode==="modified"?p[0].innerChanges[0].modifiedRange:p[0].innerChanges[0].originalRange;else return;let E=DM(n.getModel(),C,5),R=this._previewEditorObs.getLeftOfPosition(E.getStartPosition(),h),Z=this._previewEditorObs.getLeftOfPosition(E.getEndPosition(),h),X=Gi(R,0,w),Y=Gi(Z,X,w),Q=n.getModel().getLineFirstNonWhitespaceColumn(E.startLineNumber),te=this._previewEditorObs.getLeftOfPosition(new s(E.startLineNumber,Q),h),oe=new V(X,Y);return{indentationEnd:te,preferredRangeToReveal:oe,maxEditorWidth:w+v.contentLeft,contentWidth:w,nonContentWidth:v.contentLeft}}layout(n,h){this.previewEditor.layout(n),this._previewEditorObs.editor.setScrollLeft(h)}};ef=LM([kM(4,A)],ef);function DM(u,n,h){let g=n.getStartPosition(),p=n.getEndPosition(),m=u.getLineContent(g.lineNumber);function _(E){let R=m.charAt(E-1);return/[a-zA-Z0-9_]/.test(R)}function v(E){let R=m.charAt(E-1);return R===" "||R==="\t"}let w=g.column;while(w>1&&_(w)&&!v(w-1)&&g.column-w<h)w--;let C=p.column-1;while(C<=m.length&&_(C)&&!v(C+1)&&C-p.column<h)C++;return new t(g.lineNumber,w,p.lineNumber,C+1)}function yE(u,n){let{start:h,endExclusive:g}=u,p=Number.MAX_VALUE,m=0;for(let _ of n){let v=m+_.width,w=Math.max(h,m),C=Math.min(g,v);if(w<C)p=Math.min(p,_.height);m=v}if(g>m)return 0;return p===Number.MAX_VALUE?0:p}class tf{constructor(u,n,h){this._lineRangeInfo=u,this.availableSpaceSizes=u.sizes.map((g,p)=>{let m=u.lineRange.startLineNumber+p,_=h(m);return new oa(Math.max(0,n-g.width-_),g.height)}),this.availableSpaceHeightPrefixSums=RM(this.availableSpaceSizes,(g)=>g.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map((g)=>g.transpose())}getWidgetVerticalOutline(u,n,h){let g=u-this._lineRangeInfo.lineRange.startLineNumber,p=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[g],m=V.ofStartAndLength(p,n),{previewEditorMargin:_,widgetPadding:v,widgetBorder:w,lowerBarHeight:C}=h;return m.withMargin(_+v+w).withMargin(0,C)}tryFindWidgetOutline(u,n,h,g){if(this._lineRangeInfo.lineRange.length<3)return;return TM(this._lineRangeInfo.lineRange.addMargin(-1,-1),u,(p)=>{let m=this.getWidgetVerticalOutline(p,n,g),_=yE(m.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(_<g.minWidgetWidth)return;return{horizontalWidgetRange:V.ofStartAndLength(h-_,_),verticalWidgetRange:m}})}}function xE(u,n,h,g,p){let m=[],_=u.startLineNumber,v=h,w=[];for(let C=0;C<n.length;C++){let E=u.startLineNumber+C,R=v+w.reduce((X,Y)=>X+Y.height,0),Z=g.editor.getTopForLineNumber(E);if(C>0&&Z!==R)m.push({lineRange:ne.ofLength(_,E-_),top:v,sizes:w}),_=E,v=Z,w=[];w.push(n[C])}return m.push({lineRange:ne.ofLength(_,u.endLineNumberExclusive-_),top:v,sizes:w}),f({owner:"splitIntoContinuousLineRanges"},(C)=>g.observeTopForLineNumber(u.endLineNumberExclusive-1).read(C)).read(p),m}function TM(u,n,h){for(let g=0;;g++){let p=n+g;if(p<=u.endLineNumberExclusive){let _=h(p);if(_!==void 0)return _}let m=n-g;if(m>=u.startLineNumber){let _=h(m);if(_!==void 0)return _}if(m<u.startLineNumber&&p>u.endLineNumberExclusive)return}}function RM(u,n){let h=[0],g=0;for(let p of u)g+=n(p),h.push(g);return h}var NM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},gu=function(u,n){return function(h,g){n(h,g,u)}},MM=6,_S={EMPTY_SPACE:425,OVERLAY:375},OM=250,PM={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:OM},of=class u extends i{constructor(n,h,g,p,m,_,v,w,C){super();this._editor=n,this._viewState=h,this._previewTextModel=g,this._tabAction=p,this._instantiationService=m,this._themeService=_,this._keybindingService=v,this._modelService=w,this._languageService=C,this.onDidClick=I.None,this._viewWithElement=void 0,this._hintTextPosition=f(this,(E)=>{let R=this._viewState.read(E);return R?new s(R.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=f(this,(E)=>{let R=this._viewState.read(E),Z=this._hintTextPosition.read(E);if(!R||!Z)return[];let X=this._editorObs.model.read(E);if(!X)return[];let Y=ne.ofLength(Z.lineNumber,1).addMargin(5,5).intersect(ne.ofLength(1,X.getLineCount()));if(!Y)return[];let Q=lE(this._editorObs,Y,E),te=this._editorObs.observeTopForLineNumber(Y.startLineNumber).read(E);return xE(Y,Q,te,this._editorObs,E)}),this._isVisibleDelayed=vR(f(this,(E)=>this._viewState.read(E)?.hint.isVisible),(E,R)=>E===!0&&R===!1?200:0),this._previewEditorLayoutInfo=f(this,(E)=>{let R=this._viewState.read(E);if(!R||!this._isVisibleDelayed.read(E))return;let Z=this._lineSizesAroundHintPosition.read(E);if(Z.length===0)return;let X=this._editorObs.scrollTop.read(E),Y=this._editorObs.scrollLeft.read(E),Q=this._editorObs.layoutInfo.read(E),te=this._previewEditor.contentHeight.read(E),oe=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(E);if(!te||!oe)return;let le=Q.contentWidth-Q.verticalScrollbarWidth,pe=Q.contentLeft+le;if(!this._editorObs.cursorLineNumber.read(E))return;let Ce=PM,me=te+2,Ne,Me,Oe=(Qo)=>Qo===R.hint.lineNumber?40:20;for(let Qo of Z){let or=new tf(Qo,le,Oe);if(Me=or,Ne=or.tryFindWidgetOutline(R.hint.lineNumber,me,pe,Ce),Ne)break}let ye="empty-space";if(!Ne){ye="overlay";let Qo=Math.min(Q.width-Q.contentLeft,_S.OVERLAY),or=Me??new tf(Z[0],le,Oe);Ne={horizontalWidgetRange:V.ofStartAndLength(pe-Qo,Qo),verticalWidgetRange:or.getWidgetVerticalOutline(R.hint.lineNumber+2,me,Ce).delta(10)}}if(!Ne)return;let Pe=st.fromRanges(Ne.horizontalWidgetRange,Ne.verticalWidgetRange).translateX(-Y).translateY(-X),{previewEditorMargin:it,widgetPadding:Ve,widgetBorder:rt,lowerBarHeight:Ze}=Ce,Ft=ye==="overlay"?_S.OVERLAY:_S.EMPTY_SPACE,nt=oe.maxEditorWidth+it+Ve,ft=Math.min(Ft,Math.max(nt,Ce.minWidgetWidth)),Bt=CE(Pe.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:ft,priority:1}]},spaceAfter:{min:10}});if(!Bt)return null;let St=AM([Bt.spaceBefore,Bt.content,Bt.spaceAfter],Pe.left);Pe.withHorizontalRange(St[0]);let vt=Pe.withHorizontalRange(St[1]);Pe.withHorizontalRange(St[2]);let Vt=vt.withMargin(-Ve-rt-it).withMargin(0,0,-Ze,0),Wt=Vt.width-oe.nonContentWidth,It=Wt*0.8,Si=oe.preferredRangeToReveal.intersect(V.ofStartAndLength(oe.preferredRangeToReveal.start,It))??oe.preferredRangeToReveal,cs=FM(oe.indentationEnd,Wt,Si);return{codeEditorSize:Vt.getSize(),codeScrollLeft:Y,contentLeft:Q.contentLeft,widgetRect:vt,previewEditorMargin:it,widgetPadding:Ve,widgetBorder:rt,lowerBarHeight:Ze,desiredPreviewEditorScrollLeft:cs.newScrollPosition}}),this._view=he.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:f(this,(E)=>this._previewEditorLayoutInfo.read(E)?"block":"none")}},[f(this,(E)=>[this._widgetContent])]),this._widgetContent=f(this,(E)=>he.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:P(Ho),padding:this._previewEditorLayoutInfo.map((R)=>R?.widgetPadding),boxSizing:"border-box",borderRadius:MM,border:f((R)=>`${this._previewEditorLayoutInfo.read(R)?.widgetBorder}px solid ${this._styles.read(R).border}`),display:"flex",flexDirection:"column",opacity:f((R)=>this._viewState.read(R)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Jt((R)=>this._previewEditorLayoutInfo.read(R)?.widgetRect)},onmousedown:(R)=>{R.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[he.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map((R)=>R?.previewEditorMargin),background:this._styles.map((R)=>R.background),pointerEvents:"none"}},[f(this,(R)=>this._previewEditor.element)]),he.div({class:"bar",style:{color:P(q0),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map((R)=>R?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[f(this,(R)=>{let Z=[],X=this._viewState.read(R);if(!X)return Z;let Y=this._editorObs.model.read(R),Q=X.target.uri,te=!Y||!X.target.targets(Y);if(te){let Ce=Oi(Q),ae=Td(this._modelService,this._languageService,Q,Vo.FILE);Z.push(he.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[he.elem("span",{class:ae,style:{flexShrink:"0",marginRight:"4px"}}),Ce]))}else{let Ce=this._originalOutlineSource.read(R),ae=this._originalTargetLineNumber.read(R),me=Ce?.getAt(ae,R).slice(0,1)??[],Ne=[];if(me.length>0)for(let Me=0;Me<me.length;Me++){let Oe=me[Me],ye=Kh.toIcon(Oe.kind);Ne.push(he.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[_o(ye)," ",Oe.name,...Me===me.length-1?[]:[_o(S.chevronRight)]]))}Z.push(he.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Ne))}let oe=this._originalTargetLineNumber.read(R),le=te?S.arrowRight:X.hint.lineNumber<oe?S.arrowDown:S.arrowUp,pe=this._keybindingService.lookupKeybinding(lc),Se=te?"Go to file":"Go to suggestion";if(pe&&pe.getLabel()==="Tab")Se=te?"Tab to open":"Tab to jump";return Z.push(he.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[Se," ",_o(le)])),Z})])])),this._originalTargetLineNumber=f(this,(E)=>{let R=this._viewState.read(E);if(!R)return-1;if(R.edit.action?.kind==="jumpTo")return R.edit.action.position.lineNumber;return R.diff[0]?.original.startLineNumber??-1}),this._originalOutlineSource=ur(this,(E)=>{let R=this._editorObs.model.read(E),Z=up._breadcrumbsSourceFactory.read(E);return!R||!Z?void 0:Z(R,this._instantiationService)}),this._styles=f((E)=>{let R=this._tabAction.read(E),Z=ca(Pf,this._themeService).read(E),X=je(this._themeService.onDidColorThemeChange,()=>{let Q=this._themeService.getColorTheme();return Q.type==="hcDark"||Q.type==="hcLight"}).read(E),Y;if(X)Y=Z;else{let Q;switch(R){case Dt.Inactive:Q=Yc;break;case Dt.Jump:Q=xr;break;case Dt.Accept:Q=Jc;break}Y=Ut(Q,this._themeService).read(E)}return{border:Y.toString(),background:no(this._viewState.map((Q)=>Q?.editorType??At.TextEditor).read(E))}}),this._editorObs=ct(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(ef,this._previewTextModel,f((E)=>{let R=this._viewState.read(E);if(!R)return;return{diff:R.diff,model:R.model,inlineSuggestInfo:R.inlineSuggestInfo,nextCursorPosition:R.nextCursorPosition,target:R.target}}),this._editor,this._tabAction)),this._viewWithElement=this._view.keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._viewWithElement.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:De(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(W((E)=>{let R=this._previewEditorLayoutInfo.read(E);if(!R)return;this._previewEditor.layout(R.codeEditorSize.toDimension(),R.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};of=NM([gu(4,A),gu(5,We),gu(6,ge),gu(7,Et),gu(8,xt)],of);function AM(u,n=0){let h=[],g=n;for(let p of u)h.push(new V(g,g+p)),g+=p;return h}function FM(u,n,h){let g=new V(u,u+n);if(g.containsRange(h))return{newScrollPosition:u};if(h.length>n)return{newScrollPosition:h.start};if(h.endExclusive>g.endExclusive)return{newScrollPosition:h.endExclusive-n};if(h.start<g.start)return{newScrollPosition:h.start};return{newScrollPosition:u}}var HM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},bS=function(u,n){return function(h,g){n(h,g,u)}},dl=0,_u=0,ir=1,WM=1,BM=3,ds=jt,vS=20,IE=12,Iu=class u extends i{static fitsInsideViewport(n,h,g,p){let m=ct(n),_=m.layoutInfoWidth.read(p),v=m.layoutInfoContentLeft.read(p),w=n.getLayoutInfo().verticalScrollbarWidth,C=m.layoutInfoMinimap.read(p).minimapLeft!==0?m.layoutInfoMinimap.read(p).minimapWidth:0,E=Xo(m,g.displayRange,void 0),R=g.lineEdit.newLines.reduce((Y,Q)=>Math.max(Y,nu(Q,n,h)),0),Z=vS,X=IE+2*ir;return E+R+Z+X<_-v-w-C}constructor(n,h,g,p,m,_,v,w){super();this._editor=n,this._edit=h,this._previewTextModel=g,this._uiState=p,this._tabAction=m,this._instantiationService=_,this._themeService=v,this._userInteractionService=w,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._editorObs=ct(this._editor),this._display=f(this,(R)=>this._uiState.read(R)?"block":"none"),this.previewRef=he.ref();let C=this._uiState.map((R)=>R?.editorType===At.DiffEditor?BM:WM);this._editorContainer=he.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:(R)=>{R.preventDefault()},onclick:(R)=>{this._onDidClick.fire(To.create(R))}},[he.div({class:"preview",style:{pointerEvents:"none"},ref:this.previewRef})]).keepUpdated(this._store),this.isHovered=this._userInteractionService.createHoverTracker(this._editorContainer.element,this._store),this.previewEditor=this._register(this._instantiationService.createInstance(Wi,this.previewRef.element,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},editContext:!1,rulers:[],padding:{top:0,bottom:0},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[dt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=ct(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=f(this,(R)=>{if(this._editorContainer.readEffect(R),this._previewEditorObs.model.read(R),this._display.read(R),this._nonOverflowView)this._nonOverflowView.element.style.display=this._display.read(R);let Z=this._uiState.read(R),X=this._edit.read(R);if(!Z||!X)return;let Y=X.originalLineRange,Q=[];if(Y.startLineNumber>1)Q.push(new t(1,1,Y.startLineNumber-1,1));if(Y.startLineNumber+Z.newTextLineCount<this._previewTextModel.getLineCount()+1)Q.push(new t(Y.startLineNumber+Z.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(Q,void 0,!0);let te=[...this._activeViewZones];this._activeViewZones=[];let oe=Y.endLineNumberExclusive-Y.startLineNumber-Z.newTextLineCount;this.previewEditor.changeViewZones((le)=>{if(te.forEach((pe)=>le.removeZone(pe)),oe>0)this._activeViewZones.push(le.addZone({afterLineNumber:Y.startLineNumber+Z.newTextLineCount-1,heightInLines:oe,showInHiddenAreas:!0,domNode:x("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=f(this,(R)=>{let Z=this._edit.read(R);if(!Z)return 0;return this._updatePreviewEditor.read(R),Xo(this._previewEditorObs,Z.modifiedLineRange,R)}),this._cursorPosIfTouchesEdit=f(this,(R)=>{let Z=this._editorObs.cursorPosition.read(R),X=this._edit.read(R);if(!X||!Z)return;return X.modifiedLineRange.contains(Z.lineNumber)?Z:void 0}),this._originalStartPosition=f(this,(R)=>{let Z=this._edit.read(R);return Z?new s(Z.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=f(this,(R)=>{let Z=this._edit.read(R);return Z?new s(Z.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map((R)=>R?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map((R)=>R?.y),this._originalDisplayRange=this._edit.map((R)=>R?.displayRange),this._editorMaxContentWidthInRange=f(this,(R)=>{let Z=this._originalDisplayRange.read(R);if(!Z)return De(0);return this._editorObs.versionId.read(R),hr(this,(X,Y)=>{let Q=Xo(this._editorObs,Z,X);return Math.max(Q,Y??0)})}).map((R,Z)=>R.read(Z));let E=pE(this._editor,this._store);this._previewEditorLayoutInfo=f(this,(R)=>{let Z=this._edit.read(R);if(!Z)return null;if(!this._uiState.read(R))return null;let Y=Z.originalLineRange,Q=this._editorObs.scrollLeft.read(R),te=this._editorMaxContentWidthInRange.read(R),oe=this._editorObs.layoutInfo.read(R),le=this._previewEditorWidth.read(R),pe=oe.contentWidth-oe.verticalScrollbarWidth,Se=E.read(R),Ce=oe.contentLeft+oe.contentWidth+Se.left,ae=B(this._editor.getContainerDomNode()).innerWidth-Ce,me=B(this._editor.getContainerDomNode()).innerWidth-Se.right,Ne=Math.min(oe.contentWidth*0.3,le,100),Me=0,Oe=Me+ae,ye=this._cursorPosIfTouchesEdit.read(R),Pe=Math.max(pe+Q-Me-Math.max(0,Ne-Oe),Math.min(ye?hE(this._editorObs,ye,R)+50:0,pe+Q)),it=Math.min(te+vS,Pe),Ve=te+vS+le+70,rt=Pe-it,Ze,Ft;if(it>Q)Ze=0,Ft=oe.contentLeft+it-Q;else Ze=Q-it,Ft=oe.contentLeft;let nt=this._originalVerticalStartPosition.read(R)??this._editor.getTopForLineNumber(Y.startLineNumber)-this._editorObs.scrollTop.read(R),ft=this._originalVerticalEndPosition.read(R)??this._editor.getBottomForLineNumber(Y.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(R),Bt=oe.contentLeft-Q,St=st.fromLeftTopRightBottom(Bt,nt,Ft,ft),vt=St.height===0;if(!vt)St=St.withMargin(_u,dl);let Wt=this._previewEditorObs.observeLineHeightsForLineRange(Z.modifiedLineRange).read(R).reduce((bf,UE)=>bf+UE,0),It=ft-nt,Si=Math.max(It,Wt),cs=rt===0,Qo=0,or=Math.min(le+IE,me+oe.width-oe.contentLeft-Qo),Ca=st.fromLeftTopWidthHeight(St.right+Qo,nt,or,Si);if(!vt)Ca=Ca.withMargin(_u,dl).translateX(dl+ir);else Ca=Ca.withMargin(_u,dl).translateY(_u);return{codeRect:St,editRect:Ca,codeScrollLeft:Q,contentLeft:oe.contentLeft,isInsertion:vt,maxContentWidth:Ve,shouldShowShadow:cs,desiredPreviewEditorScrollLeft:Ze,previewEditorWidth:or}}),this._stickyScrollController=Ds.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?je(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):De(0),this._shouldOverflow=f(this,(R)=>!1),this._originalBackgroundColor=je(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(ga)??y.transparent),this._editorBackgroundColor=this._uiState.map((R)=>no(R?.editorType??At.TextEditor)),this._backgroundSvg=he.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[he.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:f(this,(R)=>{let Z=this._previewEditorLayoutInfo.read(R);if(!Z)return;if(this._originalBackgroundColor.read(R).isTransparent())return;return new il().moveTo(Z.codeRect.getRightTop()).lineTo(Z.codeRect.getRightTop().deltaX(1000)).lineTo(Z.codeRect.getRightBottom().deltaX(1000)).lineTo(Z.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=he.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map((R)=>R?.isInsertion?"none":"block")}},f(this,(R)=>{let Z=eo(this._previewEditorLayoutInfo).read(R);if(!Z)return;let X=this._editorBackgroundColor.read(R),Y=C.read(R),Q=_a(this._tabAction).map((Me)=>`${ir}px solid ${P(Me)}`),te=`${ir+Y}px solid ${X}`,oe=Z.read(R).codeScrollLeft!==0,le=Z.map((Me)=>Me.codeRect.bottom<Me.editRect.bottom),pe=ds*2+ir*2,Se=Z.map((Me)=>st.fromLeftTopRightBottom(Me.contentLeft-ds-ir,Me.codeRect.top,Me.contentLeft,Me.codeRect.bottom+pe)).read(R),Ce=new V(Se.left,Number.MAX_SAFE_INTEGER),ae=Z.map((Me)=>Me.codeRect.intersectHorizontal(Ce)),me=ae.map((Me)=>Me.withMargin(Y,0,Y,Y).intersectHorizontal(Ce)),Ne=ae.map((Me)=>st.fromLeftTopWidthHeight(Me.right-pe+ir,Me.bottom-ir,pe,pe).intersectHorizontal(Ce));return[he.div({class:"originalSeparatorSideBySide",style:{...me.read(R).toStyles(),boxSizing:"border-box",borderRadius:`${ds}px 0 0 ${ds}px`,borderTop:te,borderBottom:te,borderLeft:oe?"none":te}}),he.div({class:"originalOverlaySideBySide",style:{...ae.read(R).toStyles(),boxSizing:"border-box",borderRadius:`${ds}px 0 0 ${ds}px`,borderTop:Q,borderBottom:Q,borderLeft:oe?"none":Q,backgroundColor:P(ga)}}),he.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:le.map((Me)=>Me?"block":"none"),...Ne.read(R).toStyles()}},[he.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:Ut(ga,this._themeService).map((Me)=>Me.toString())}}),he.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:Q,borderRight:Q,borderRadius:"0 100% 0 0",backgroundColor:X}})]),he.div({class:"originalOverlaySideBySideHider",style:{...Se.toStyles(),backgroundColor:X}})]})).keepUpdated(this._store),this._modifiedOverlay=he.div({style:{pointerEvents:"none"}},f(this,(R)=>{let Z=eo(this._previewEditorLayoutInfo).read(R);if(!Z)return;let X=Z.map((ae)=>ae.codeRect.bottom<ae.editRect.bottom),Y=this._editorBackgroundColor.read(R),Q=C.read(R),te=X.map((ae)=>`0 ${ds}px ${ds}px ${ae?ds:0}px`),oe=Ut(ss(this._tabAction),this._themeService).map((ae)=>`1px solid ${ae.toString()}`),le=`${ir+Q}px solid ${Y}`,pe=Z.map((ae)=>ae.editRect.withMargin(0,ir)),Se=pe.map((ae)=>ae.withMargin(Q,Q,Q,0)),Ce=f(this,(ae)=>{let me=pe.read(ae),Ne=Z.read(ae);if(!Ne.isInsertion||Ne.contentLeft>=me.left)return st.fromLeftTopWidthHeight(me.left,me.top,0,0);return new st(Ne.contentLeft,me.top,me.left,me.top+ir*2)});return[he.div({class:"modifiedInsertionSideBySide",style:{...Ce.read(R).toStyles(),backgroundColor:ss(this._tabAction).map((ae)=>P(ae))}}),he.div({class:"modifiedSeparatorSideBySide",style:{...Se.read(R).toStyles(),borderRadius:te,borderTop:le,borderBottom:le,borderRight:le,boxSizing:"border-box"}}),he.div({class:"modifiedOverlaySideBySide",style:{...pe.read(R).toStyles(),borderRadius:te,border:oe,boxSizing:"border-box",backgroundColor:P(Um)}})]})).keepUpdated(this._store),this._nonOverflowView=he.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,f(this,(R)=>this._shouldOverflow.read(R)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:De(null),allowEditorOverflow:!1,minContentWidthInPx:f(this,(R)=>{let Z=this._previewEditorLayoutInfo.read(R)?.maxContentWidth;if(Z===void 0)return 0;return Z})})),this.previewEditor.setModel(this._previewTextModel),this._register(W((R)=>{let Z=this._previewEditorLayoutInfo.read(R);if(!Z)return;let X=Z.editRect.withMargin(-_u,-dl);this.previewEditor.layout({height:X.height,width:Z.previewEditorWidth+15}),this._editorContainer.element.style.top=`${X.top}px`,this._editorContainer.element.style.left=`${X.left}px`,this._editorContainer.element.style.width=`${Z.previewEditorWidth+dl}px`})),this._register(W((R)=>{let Z=this._previewEditorLayoutInfo.read(R);if(!Z)return;this._previewEditorObs.editor.setScrollLeft(Z.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};Iu=HM([bS(5,A),bS(6,We),bS(7,Ar)],Iu);var VM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Lu=function(u,n){return function(h,g){n(h,g,u)}};class SS{constructor(u,n,h){this.edit=u,this.editorType=n,this.alternativeAction=h}equals(u){return this.edit.equals(u.edit)&&this.alternativeAction===u.alternativeAction}}var ji=1,LE="word-replacement-view-overlay",kE="word-replacement-view-widget",EE="word-replacement-view-replacement",wS="word-replacement-view-rename",Nd=class u extends i{static{this.MAX_LENGTH=100}constructor(n,h,g,p,m,_,v,w){super();this._editor=n,this._viewData=h,this._tabAction=g,this._languageService=p,this._themeService=m,this._keybindingService=_,this._hoverService=v,this._userInteractionService=w,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(De(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(De(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=j(this,null),this._secondaryElement=j(this,null),this.isHovered=f(this,(Z)=>{let X=this._primaryElement.read(Z);if(!X)return!1;return this._userInteractionService.createHoverTracker(X.element,Z.store).read(Z)}),this._renderTextEffect=f(this,(Z)=>{let X=this._editor.model.read(void 0);if(!X)return;let Y=X.getLineContent(this._viewData.edit.range.startLineNumber),Q=ui.replace(new V(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),te=Q.replace(Y),oe=X.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[te])?.[0],le;if(oe)le=Rl.fromLineTokens(oe).slice(Q.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec);else le=Tt.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);let pe=Eu(new kd([le]),Za.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${pe.minWidthInPx}px`});let C=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),E=bR(this._viewData.alternativeAction?.count??new Promise((Z)=>Z(void 0))).map((Z)=>Z.value),R=f(this,(Z)=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),Z).shiftKey);this._layout=f(this,(Z)=>{this._renderTextEffect.read(Z);let X=this._start.read(Z),Y=this._end.read(Z);if(!X||!Y||X.x>Y.x||X.y>Y.y)return;let Q=C.read(Z);if(Q<=0)return;let te=this._editor.scrollLeft.read(Z),oe=this._editor.getOption(59).read(Z).typicalHalfwidthCharacterWidth,le=3*oe,Se=new xi(le,4),Ce=void 0;if(this._viewData.alternativeAction){let Oe=this._viewData.alternativeAction.label,ye=E.read(Z),Pe=R.read(Z),it=ye!==void 0?ye===1?e(1283,"{0} 1 occurrence",Oe):e(1284,"{0} {1} occurrences",Oe,ye):Oe,Ve=e(1285,"{0} show occurrences","[shift]");Ce={label:ye!==void 0?Pe?it:Oe:Oe,tooltip:it?`${it}
|
|
48
|
+
${Ve}`:void 0,icon:void 0,count:ye,keybinding:this._keybindingService.lookupKeybinding(ed),active:R}}let ae=st.fromPoints(X,Y).withHeight(Q).translateX(-te),me=st.fromPointSize(ae.getLeftBottom().add(Se),new xi(this._viewData.edit.text.length*oe,ae.height)),Ne=me.withWidth(me.width+(Ce?Ce.label.length*oe+8+4+12:0)),Me=Ne.withLeft(ae.left);return{alternativeAction:Ce,originalLine:ae,codeLine:me,modifiedLine:Ne,lowerBackground:Me,lineHeight:Q}}),this.minEditorScrollHeight=f(this,(Z)=>{let X=eo(this._layout).read(Z);if(!X)return 0;return X.read(Z).modifiedLine.bottom+ji+this._editor.editor.getScrollTop()}),this._root=he.div({class:"word-replacement"},[f(this,(Z)=>{let X=eo(this._layout).read(Z);if(!X)return[];let Y=_a(this._tabAction).map((ye)=>P(ye)).read(Z),Q=ss(this._tabAction).map((ye)=>P(ye)).read(Z);this._line.style.lineHeight=`${X.read(Z).modifiedLine.height+2*ji}px`;let te=De(!1),oe=X.map((ye)=>ye.alternativeAction),le=f((ye)=>(oe.read(ye)?.active.read(ye)??!1)||te.read(ye)),Se=je(this._themeService.onDidColorThemeChange,()=>{let ye=this._themeService.getColorTheme();return ye.type==="hcDark"||ye.type==="hcLight"}).read(Z)?ca(Be,this._themeService).read(Z):null,Ce={borderColor:Se?Se.toString():Q,backgroundColor:P(rE),color:"",opacity:"1"},ae={borderColor:Se?Se.toString():P(Ln),backgroundColor:P(xr),color:P(fa),opacity:"1"},me={borderColor:Se?Se.toString():ca(wy,this._themeService).map((ye)=>ye.transparent(0.2).toString()).read(Z),backgroundColor:no(this._viewData.editorType),color:"",opacity:"0.7"},Ne=no(this._viewData.editorType),Me=f(this,(ye)=>le.read(ye)?Ce:Ce),Oe=f(this,(ye)=>le.read(ye)?ae:me);return[he.div({id:LE,style:{position:"absolute",...Jt((ye)=>el(this._editor).read(ye)),overflow:"hidden",pointerEvents:"none"}},[he.div({style:{position:"absolute",...Jt((ye)=>X.read(ye).lowerBackground.withMargin(ji,2*ji,ji,0)),background:Ne,cursor:"pointer",pointerEvents:"auto"},onmousedown:(ye)=>this._mouseDown(ye)}),he.div({id:kE,style:{position:"absolute",...Jt((ye)=>X.read(ye).modifiedLine.withMargin(ji,2*ji)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${jt}px`,background:Ne,display:"flex",justifyContent:"left",outline:`2px solid ${Ne}`},onmousedown:(ye)=>this._mouseDown(ye)},[he.div({id:EE,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Jt((ye)=>X.read(ye).codeLine.withMargin(ji,2*ji)).width,borderRadius:`${jt}px`,border:Me.map((ye)=>`${ji}px solid ${ye.borderColor}`),boxSizing:"border-box",padding:`${ji}px`,opacity:Me.map((ye)=>ye.opacity),background:Me.map((ye)=>ye.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:(ye)=>{this._primaryElement.set(ye,void 0)}},[this._line]),f(this,(ye)=>{let Pe=oe.read(ye);if(!Pe)return;let it=document.createElement("div");return ye.store.add(new Ya(it,Ni,{...Nk,disableTitle:!0})).set(Pe.keybinding),he.div({id:wS,style:{position:"relative",borderRadius:`${jt}px`,borderTop:`${ji}px solid`,borderRight:`${ji}px solid`,borderBottom:`${ji}px solid`,borderLeft:`${ji}px solid`,borderColor:Oe.map((rt)=>rt.borderColor),opacity:Oe.map((rt)=>rt.opacity),color:Oe.map((rt)=>rt.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:Oe.map((rt)=>rt.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:(rt)=>{this._secondaryElement.set(rt,void 0)},ref:(rt)=>{if(Pe.tooltip)ye.store.add(this._hoverService.setupDelayedHoverAtMouse(rt,{content:Pe.tooltip,appearance:{compact:!0}}))}},[it,x("div.inline-edit-alternative-action-label-separator"),Pe.icon?_o(Pe.icon):void 0,Pe.label])})]),he.div({style:{position:"absolute",...Jt((ye)=>X.read(ye).originalLine.withMargin(ji)),boxSizing:"border-box",borderRadius:`${jt}px`,border:`${ji}px solid ${Y}`,background:P(oE),pointerEvents:"none"}},[]),he.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:X.map((ye)=>ye.modifiedLine.left-16),top:X.map((ye)=>ye.modifiedLine.top+Math.round((ye.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:(ye)=>this._mouseDown(ye)},[he.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:P(wy)}),he.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:P(wy)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:De(0),position:De({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(n){let h=zM(n.target,new Set([kE,EE,wS,LE]));if(!h)return;n.preventDefault(),this._onDidClick.fire(To.create(n,h===wS))}};Nd=VM([Lu(3,xt),Lu(4,We),Lu(5,ge),Lu(6,On),Lu(7,Ar)],Nd);function zM(u,n){let h=u;while(h){if(n.has(h.id))return h.id;h=h.parentElement}return null}class CS extends i{constructor(u,n,h){super();this._originalEditor=u,this._state=n,this._modifiedTextModel=h,this._onDidClick=this._register(new o),this.onDidClick=this._onDidClick.event,this.isHovered=ct(this._originalEditor).isTargetHovered((p)=>p.target.type===6&&p.target.detail.injectedText?.options.attachedData instanceof nf&&p.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=qM(this._modifiedTextModel),this._decorations=f(this,(p)=>{let m=this._state.read(p);if(!m)return;let _=m.modifiedText,v=m.mode==="insertionInline",w=m.diff.length===1&&m.diff[0].innerChanges?.length===1,C=!0,E=[],R=[],Z=ue.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),X=ue.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),Y=ue.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),Q=ue.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),te=ue.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),oe=ue.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),le=ue.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),pe=m.mode!=="sideBySide"&&m.mode!=="deletion"&&m.mode!=="insertionInline"&&m.mode!=="lineReplacement",Se=m.mode==="lineReplacement";for(let Ce of m.diff){if(pe){if(!Ce.original.isEmpty)E.push({range:Ce.original.toInclusiveRange(),options:X});if(!Ce.modified.isEmpty)R.push({range:Ce.modified.toInclusiveRange(),options:Z})}if(Ce.modified.isEmpty||Ce.original.isEmpty){if(!Ce.original.isEmpty)E.push({range:Ce.original.toInclusiveRange(),options:Y});if(!Ce.modified.isEmpty)R.push({range:Ce.modified.toInclusiveRange(),options:Q})}else{let ae=v&&KM(Ce);for(let me of Ce.innerChanges||[]){if(Ce.original.contains(me.originalRange.startLineNumber)&&!(Se&&me.originalRange.isEmpty())){let Ne=this._originalEditor.getModel()?.getValueInRange(me.originalRange,1);E.push({range:me.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:tl("inlineCompletions-char-delete",me.originalRange.isSingleLine()&&m.mode==="insertionInline"&&"single-line-inline",me.originalRange.isEmpty()&&"empty",(me.originalRange.isEmpty()&&w||m.mode==="deletion"&&Ne===`
|
|
49
|
+
`)&&C&&!ae&&"diff-range-empty"),inlineClassName:ae?tl("strike-through","inlineCompletions"):null,zIndex:1}})}if(Ce.modified.contains(me.modifiedRange.startLineNumber))R.push({range:me.modifiedRange,options:me.modifiedRange.isEmpty()&&C&&!ae&&w?oe:te});if(ae){let Ne=_.getValueOfRange(me.modifiedRange),Me=Ne.length>3?[{text:Ne.slice(0,1),extraClasses:["start"],offsetRange:new V(me.modifiedRange.startColumn-1,me.modifiedRange.startColumn)},{text:Ne.slice(1,-1),extraClasses:[],offsetRange:new V(me.modifiedRange.startColumn,me.modifiedRange.endColumn-2)},{text:Ne.slice(-1),extraClasses:["end"],offsetRange:new V(me.modifiedRange.endColumn-2,me.modifiedRange.endColumn-1)}]:[{text:Ne,extraClasses:["start","end"],offsetRange:new V(me.modifiedRange.startColumn-1,me.modifiedRange.endColumn)}];this._tokenizationFinished.read(p);let Oe=this._modifiedTextModel.tokenization.getLineTokens(me.modifiedRange.startLineNumber);for(let{text:ye,extraClasses:Pe,offsetRange:it}of Me)E.push({range:t.fromPositions(me.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:Oe.getTokensInRange(it),content:ye,inlineClassName:tl("inlineCompletions-char-insert",me.modifiedRange.isSingleLine()&&m.mode==="insertionInline"&&"single-line-inline",...Pe),cursorStops:vs.None,attachedData:new nf(this)},zIndex:2,showIfCollapsed:!0}})}}}}if(m.editorType===At.DiffEditor){for(let Ce of m.diff)if(!Ce.original.isEmpty)E.push({range:Ce.original.toExclusiveRange(),options:le})}return{originalDecorations:E,modifiedDecorations:R}}),this._register(ct(this._originalEditor).setDecorations(this._decorations.map((p)=>p?.originalDecorations??[])));let g=this._state.map((p)=>p?.modifiedCodeEditor);this._register(ri((p,m)=>{let _=g.read(p);if(_)m.add(ct(_).setDecorations(this._decorations.map((v)=>v?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp((p)=>{if(p.target.type!==6)return;let m=p.target.detail.injectedText?.options.attachedData;if(m instanceof nf&&m.owner===this)this._onDidClick.fire(new To(p.event))}))}}class nf{constructor(u){this.owner=u}}function KM(u){if(!u.innerChanges)return!1;return u.innerChanges.every((n)=>__(n.modifiedRange)&&__(n.originalRange))}var UM=0;function qM(u){return je(u.onDidChangeTokens,()=>UM++)}var jM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},$M=function(u,n){return function(h,g){n(h,g,u)}},rf=class u extends i{constructor(n,h,g,p,m,_){super();this._editor=n,this._model=h,this._simpleModel=g,this._inlineSuggestInfo=p,this._showCollapsed=m,this._instantiationService=_,this._tabAction=f((E)=>this._model.read(E)?.tabAction.read(E)??Dt.Inactive),this.displayRange=f(this,(E)=>{let R=this._uiState.read(E);if(!R)return;if(R.target.uri.toString()!==this._editorObs.model.read(E)?.uri.toString())return;if(R.state?.kind==="custom"){let Z=R.state.displayLocation?.range;if(!Z)throw new H("custom view should have a range");return new ne(Z.startLineNumber,Z.endLineNumber)}if(R.state?.kind==="insertionMultiLine")return this._insertion.originalLines.read(E);return R.edit.displayRange}),this._currentInlineEditCache=void 0,this._uiState=f(this,(E)=>{let R=this._model.read(E),Z=this._editorObs.model.read(E);if(!R||!Z||!this._constructorDone.read(E))return;let X=R.inlineEdit,Y,Q,te=void 0;if(X.edit)Q=Yi.fromEdit(X.edit),te=new Il(X.edit.apply(X.originalText)),Y=Of(Q,X.originalText,te);else Q=[],Y=[],te=X.originalText;let oe=this._determineRenderState(R,E,Y,te);if(!oe){ee(Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}let le=this._getLongDistanceHintState(R,E);if(le&&le.isVisible)oe.viewData.setLongDistanceViewData(le.lineNumber,X.lineEdit.lineRange.startLineNumber);if(oe.viewData.isForAnotherDocument=!X.originalText.targets(Z),oe.kind===Qe.SideBySide){let Ce=gE(te.getValue(),X.modifiedLineRange,Z.getOptions().tabSize);te=new Il(Ce.applyToString(te.getValue())),Q=uE(Q,Ce),Y=Of(Q,X.originalText,te)}this._previewTextModel.setLanguage(Z.getLanguageId());let pe=this._previewTextModel.getValue();if(pe!==te.getValue()){this._previewTextModel.setEOL(Z.getEndOfLineSequence());let ae=xo.replace(new V(0,pe.length),te.getValue()).removeCommonSuffixPrefix(pe),me=ld(this._previewTextModel).getTextEdit(ae);this._previewTextModel.edit(me)}if(this._showCollapsed.read(E))oe={kind:Qe.Collapsed,viewData:oe.viewData};R.handleInlineEditShownNextFrame(oe.kind,oe.viewData);let Se=X.action?.kind==="jumpTo"?X.action.position:null;return{state:oe,diff:Y,edit:X,newText:te.getValue(),newTextLineCount:X.modifiedLineRange.length,editorType:R.editorType,longDistanceHint:le,nextCursorPosition:Se,target:X.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=f(this,(E)=>this._sideBySide.isHovered.read(E)||this._wordReplacementViews.read(E).some((R)=>R.isHovered.read(E))||this._deletion.isHovered.read(E)||this._inlineDiffView.isHovered.read(E)||this._lineReplacementView.isHovered.read(E)||this._insertion.isHovered.read(E)||this._customView.isHovered.read(E)||this._longDistanceHint.map((R,Z)=>R?.isHovered.read(Z)??!1).read(E)),this.gutterIndicatorOffset=f(this,(E)=>{if(this._uiState.read(E)?.state?.kind==="insertionMultiLine")return this._insertion.startLineOffset.read(E);return 0}),this._editorObs=ct(this._editor),this._constructorDone=j(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(wu,"",this._editor.getModel().getLanguageId(),{...wu.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(Iu,this._editor,this._model.map((E)=>E?.inlineEdit),this._previewTextModel,this._uiState.map((E)=>E&&E.state?.kind===Qe.SideBySide?{newTextLineCount:E.newTextLineCount,editorType:E.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(pS,this._editor,this._model.map((E)=>E?.inlineEdit),this._uiState.map((E)=>E&&E.state?.kind===Qe.Deletion?{originalRange:E.state.originalRange,deletions:E.state.deletions,editorType:E.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(Ym,this._editor,this._uiState.map((E)=>E&&E.state?.kind===Qe.InsertionMultiLine?{lineNumber:E.state.lineNumber,startColumn:E.state.column,text:E.state.text,editorType:E.editorType}:void 0),this._tabAction)),this._inlineCollapsedView=this._register(this._instantiationService.createInstance($m,this._editor,this._model.map((E,R)=>this._uiState.read(R)?.state?.kind===Qe.Collapsed?E?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(Xm,this._editor,this._model.map((E,R)=>this._uiState.read(R)?.state?.kind===Qe.Custom?E?.displayLocation:void 0),this._tabAction,this._uiState.map((E)=>E?.editorType??At.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,(E)=>E.edits.showLongDistanceHint),this._longDistanceHint=f(this,(E)=>{if(!this._showLongDistanceHint.read(E))return;return E.store.add(this._instantiationService.createInstance(of,this._editor,this._uiState.map((R,Z)=>R?.longDistanceHint?{hint:R.longDistanceHint,newTextLineCount:R.newTextLineCount,edit:R.edit,diff:R.diff,editorType:R.editorType,model:this._simpleModel.read(Z),inlineSuggestInfo:this._inlineSuggestInfo.read(Z),nextCursorPosition:R.nextCursorPosition,target:R.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=f(this,(E)=>{let R=this._uiState.read(E);if(!R||!R.state)return;if(R.state.kind==="wordReplacements"||R.state.kind==="insertionMultiLine"||R.state.kind==="collapsed"||R.state.kind==="custom"||R.state.kind==="jumpTo")return;return{modifiedText:new Il(R.newText),diff:R.diff,mode:R.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:R.editorType}}),this._inlineDiffView=this._register(new CS(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(Qm,this._editorObs,{style:"label"},f((E)=>{let R=this._uiState.read(E);if(R?.state?.kind===Qe.JumpTo)return{jumpToPosition:R.state.position};return})));let v=Rn({equalsFn:P0.arrayC(P0.thisC())},(E)=>{let R=this._uiState.read(E);return R?.state?.kind===Qe.WordReplacements?R.state.replacements.map((Z)=>new SS(Z,R.editorType,R.state?.alternativeAction)):[]});this._wordReplacementViews=fd(this,v,(E,R)=>R.add(this._instantiationService.createInstance(Nd,this._editorObs,E,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(Jm,this._editorObs,this._uiState.map((E)=>E?.state?.kind===Qe.LineReplacement?{originalRange:E.state.originalRange,modifiedRange:E.state.modifiedRange,modifiedLines:E.state.modifiedLines,replacements:E.state.replacements}:void 0),this._uiState.map((E)=>E?.editorType??At.TextEditor),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map((E)=>E.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map((E)=>E.edits.renderSideBySide),this._register(W((E)=>{let R=this._model.read(E);if(!R)return;E.store.add(I.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(E).map((Z)=>Z.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)((Z)=>{if(this._viewHasBeenShownLongerThan(350))Z.event.preventDefault(),R.accept(Z.alternativeAction)}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);let w=f(this,(E)=>Math.max(...this._wordReplacementViews.read(E).map((R)=>R.minEditorScrollHeight.read(E)),this._lineReplacementView.minEditorScrollHeight.read(E),this._customView.minEditorScrollHeight.read(E))).recomputeInitiallyAndOnChange(this._store),C;this._register(W((E)=>{let R=w.read(E),Z=this._editorObs.model.read(E);if(!Z)return;this._editor.changeViewZones((X)=>{let Y=this._editor.getScrollHeight(),Q=R-Y+1;if(Q!==0&&C!==void 0)X.removeZone(C),C=void 0;if(Q<=0)return;C=X.addZone({afterLineNumber:Z.getLineCount(),heightInPx:Q,domNode:x("div.minScrollHeightViewZone")})})})),this._constructorDone.set(!0,void 0)}_getLongDistanceHintState(n,h){if(n.inlineEdit.inlineCompletion.identity.jumpedTo.read(h))return;if(n.inlineEdit.action===void 0)return;let g=this._editorObs.model.read(h);if(!g||!n.inlineEdit.originalText.targets(g))return{isVisible:!0,lineNumber:n.inlineEdit.cursorPosition.lineNumber};if(this._currentInlineEditCache?.inlineSuggestionIdentity!==n.inlineEdit.inlineCompletion.identity)this._currentInlineEditCache={inlineSuggestionIdentity:n.inlineEdit.inlineCompletion.identity,firstCursorLineNumber:n.inlineEdit.cursorPosition.lineNumber};return{lineNumber:this._currentInlineEditCache.firstCursorLineNumber,isVisible:!n.inViewPort.read(h)}}_getCacheId(n){return n.inlineEdit.inlineCompletion.identity.id}_determineView(n,h,g,p){let m=n.inlineEdit,_=this._previousView?.id===this._getCacheId(n)&&this._previousView?.uri.toString()===this._editorObs.model.get().uri.toString(),v=this._previousView?.editorWidth!==this._editorObs.layoutInfoWidth.read(h)&&(this._previousView?.view===Qe.SideBySide||this._previousView?.view===Qe.LineReplacement);if(_&&!v)return this._previousView.view;let w=n.inlineEdit.inlineCompletion.action;if(w?.kind==="edit"&&w.alternativeAction)return Qe.WordReplacements;let C=n.inlineEdit.inlineCompletion.originalTextRef.uri,E=this._editorObs.model.read(h)?.uri;if(E&&C.toString()!==E.toString())return Qe.Custom;if(n.displayLocation&&!n.inlineEdit.inlineCompletion.identity.jumpedTo.read(h))return Qe.Custom;let R=m.originalLineRange.length,Z=m.modifiedLineRange.length,X=g.flatMap((Q)=>Q.innerChanges??[]),Y=X.length===1;if(n.editorType!==At.DiffEditor){if(Y&&this._useCodeShifting.read(h)!=="never"&&ME(g)){if(ZM(g,m.cursorPosition))return Qe.InsertionInline;return Qe.LineReplacement}if(TE(X,m,p))return Qe.Deletion;if(DE(g)&&this._useCodeShifting.read(h)==="always")return Qe.InsertionMultiLine;if(X.every((te)=>Kt.ofRange(te.originalRange).columnCount<Nd.MAX_LENGTH&&Kt.ofRange(te.modifiedRange).columnCount<Nd.MAX_LENGTH)&&Y&&R===1&&Z===1){let te=X.map((le)=>p.getValueOfRange(le.modifiedRange)),oe=X.map((le)=>n.inlineEdit.originalText.getValueOfRange(le.originalRange));if(!te.some((le)=>le.includes("\t"))&&!oe.some((le)=>le.includes("\t"))){if(!X.some((le)=>le.originalRange.isEmpty())||!RE(X.map((le)=>new gt(le.originalRange,"")),m.originalText).some((le)=>le.range.isEmpty()&&Kt.ofRange(le.range).columnCount<Nd.MAX_LENGTH))return Qe.WordReplacements}}}if(R>0&&Z>0){if(R===1&&Z===1&&n.editorType!==At.DiffEditor)return Qe.LineReplacement;if(this._renderSideBySide.read(h)!=="never"&&Iu.fitsInsideViewport(this._editor,this._previewTextModel,m,h))return Qe.SideBySide;return Qe.LineReplacement}if(n.editorType===At.DiffEditor){if(TE(X,m,p))return Qe.Deletion;if(DE(g)&&this._useCodeShifting.read(h)==="always")return Qe.InsertionMultiLine}return Qe.SideBySide}_determineRenderState(n,h,g,p){if(n.inlineEdit.action?.kind==="jumpTo")return{kind:Qe.JumpTo,position:n.inlineEdit.action.position,viewData:NE()};let m=n.inlineEdit,_=this._determineView(n,h,g,p);if(this._willRenderAboveCursor(h,m,_))switch(_){case Qe.LineReplacement:case Qe.WordReplacements:_=Qe.SideBySide;break}this._previousView={id:this._getCacheId(n),view:_,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now(),uri:this._editorObs.model.get().uri};let v=g.flatMap((Z)=>Z.innerChanges??[]),w=this._editor.getModel(),C=v.map((Z)=>({originalRange:Z.originalRange,modifiedRange:Z.modifiedRange,original:m.originalText.getValueOfRange(Z.originalRange),modified:p.getValueOfRange(Z.modifiedRange)})),E=GM(m,C,w);switch(_){case Qe.InsertionInline:return{kind:Qe.InsertionInline,viewData:E};case Qe.SideBySide:return{kind:Qe.SideBySide,viewData:E};case Qe.Collapsed:return{kind:Qe.Collapsed,viewData:E};case Qe.Custom:return{kind:Qe.Custom,displayLocation:n.displayLocation,viewData:E}}if(_===Qe.Deletion)return{kind:Qe.Deletion,originalRange:m.originalLineRange,deletions:v.map((Z)=>Z.originalRange),viewData:E};if(_===Qe.InsertionMultiLine){let Z=v[0];return{kind:Qe.InsertionMultiLine,lineNumber:Z.originalRange.startLineNumber,column:Z.originalRange.startColumn,text:p.getValueOfRange(Z.modifiedRange),viewData:E}}let R=C.map((Z)=>new gt(Z.originalRange,Z.modified));if(R.length===0)return;if(_===Qe.WordReplacements){let Z=XM(R,m.originalText);if(Z.some((X)=>X.range.isEmpty()))Z=RE(R,m.originalText);return{kind:Qe.WordReplacements,replacements:Z,alternativeAction:n.inlineEdit.action?.alternativeAction,viewData:E}}if(_===Qe.LineReplacement)return{kind:Qe.LineReplacement,originalRange:m.originalLineRange,modifiedRange:m.modifiedLineRange,modifiedLines:m.modifiedLineRange.mapToLineArray((Z)=>p.getLineAt(Z)),replacements:v.map((Z)=>({originalRange:Z.originalRange,modifiedRange:Z.modifiedRange})),viewData:E};return}_willRenderAboveCursor(n,h,g){if(this._useCodeShifting.read(n)==="always")return!1;for(let m of h.multiCursorPositions){if(g===Qe.WordReplacements&&m.lineNumber===h.originalLineRange.startLineNumber+1)return!0;if(g===Qe.LineReplacement&&m.lineNumber>=h.originalLineRange.endLineNumberExclusive&&m.lineNumber<h.modifiedLineRange.endLineNumberExclusive+h.modifiedLineRange.length)return!0}return!1}_viewHasBeenShownLongerThan(n){let h=this._previousView?.timestamp;if(!h)throw new H("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-h>=n}};rf=jM([$M(5,A)],rf);var NE=()=>new Vc(-1,-1,-1,-1,-1,-1,-1,!0);function GM(u,n,h){if(!u.edit)return NE();let g=u.cursorPosition,p=n.length===0?!1:n[0].modified.startsWith(h.getEOL());return new Vc(u.edit.replacements.length===0?0:u.edit.replacements[0].range.getStartPosition().column-g.column,u.lineEdit.lineRange.startLineNumber-g.lineNumber+(p&&u.lineEdit.lineRange.startLineNumber>=g.lineNumber?1:0),u.lineEdit.lineRange.length,u.lineEdit.newLines.length,n.reduce((_,v)=>_+v.original.length,0),n.reduce((_,v)=>_+v.modified.length,0),n.length,n.every((_)=>_.original===n[0].original&&_.modified===n[0].modified))}function ME(u){return u.every((h)=>h.innerChanges.every((g)=>n(g)));function n(h){if(!h.originalRange.isEmpty())return!1;if(h.modifiedRange.startLineNumber!==h.modifiedRange.endLineNumber)return!1;return!0}}function ZM(u,n){if(!n)return!1;if(!ME(u))return!1;let h=n;return u.every((p)=>p.innerChanges.every((m)=>g(m)));function g(p){let m=p.originalRange.getStartPosition();if(h.isBeforeOrEqual(m))return!0;if(m.lineNumber<h.lineNumber)return!0;return!1}}function DE(u){let n=u.flatMap((g)=>g.innerChanges??[]);if(n.length!==1)return!1;let h=n[0];if(!h.originalRange.isEmpty())return!1;if(h.modifiedRange.startLineNumber===h.modifiedRange.endLineNumber)return!1;return!0}function TE(u,n,h){return u.map((p)=>({original:n.originalText.getValueOfRange(p.originalRange),modified:h.getValueOfRange(p.modifiedRange)})).every(({original:p,modified:m})=>m.trim()===""&&p.length>0&&(p.length>m.length||p.trim()!==""))}function XM(u,n){return OE(u,n,(h)=>/^[a-zA-Z]$/.test(h))}function RE(u,n){return OE(u,n,(h)=>!/^\s$/.test(h))}function OE(u,n,h){let g=[];u.sort((m,_)=>t.compareRangesUsingStarts(m.range,_.range));for(let m of u){let _=m.range.startColumn-1,v=m.range.endColumn-2,w="",C="",E=n.getLineAt(m.range.startLineNumber),R=n.getLineAt(m.range.endLineNumber);if(p(E[_]))while(p(E[_-1]))w=E[_-1]+w,_--;if(p(R[v])||v<_)while(p(R[v+1]))C+=R[v+1],v++;let Z=new gt(new t(m.range.startLineNumber,_+1,m.range.endLineNumber,v+2),w+m.text+C);if(g.length>0&&t.areIntersectingOrTouching(g[g.length-1].range,Z.range))Z=gt.joinReplacements([g.pop(),Z],n);g.push(Z)}function p(m){if(m===void 0)return!1;return h(m)}return g}var YM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},JM=function(u,n){return function(h,g){n(h,g,u)}},sf=class u extends i{constructor(n,h,g,p){super();this._editor=n,this._model=h,this._showCollapsed=g,this._inlineEdit=f(this,(m)=>{let _=this._model.read(m);if(!_)return;if(!this._editor.getModel())return;let w=_.inlineEditState.read(m);if(!w)return;let C=w.inlineSuggestion.action,E;if(C?.kind==="edit"){let R=C.stringEdit,Z=w.inlineSuggestion.originalTextRef.getTransformer(),X=R.replacements.map((Y)=>{let Q=t.fromPositions(Z.getPosition(Y.replaceRange.start),Z.getPosition(Y.replaceRange.endExclusive));return new gt(Q,Y.newText)});E=new Po(X)}else E=void 0;return new cS(w.inlineSuggestion.originalTextRef,C,E,_.primaryPosition.read(void 0),_.allPositions.read(void 0),w.inlineSuggestion.source.inlineSuggestions.commands??[],w.inlineSuggestion)}),this._inlineEditModel=f(this,(m)=>{let _=this._model.read(m);if(!_)return;let v=this._inlineEdit.read(m);if(!v)return;let w=f(this,(C)=>{if(this._editorObs.isFocused.read(C)){if(_.tabShouldJumpToInlineEdit.read(C))return Dt.Jump;if(_.tabShouldAcceptInlineEdit.read(C))return Dt.Accept}return Dt.Inactive});return new lS(_,v,w)}),this._editorObs=ct(this._editor),this.view=this._register(p.createInstance(rf,this._editor,this._inlineEditModel,this._model.map((m)=>m?rl.fromInlineCompletionModel(m):void 0),this._inlineEdit.map((m)=>m?nl.fromInlineSuggestion(m.inlineCompletion):void 0),this._showCollapsed))}};sf=YM([JM(3,A)],sf);var QM=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},eO=function(u,n){return function(h,g){n(h,g,u)}},af=class u extends i{static{this.hot=Fy(this)}constructor(n,h,g,p){super();this._editor=n,this._model=h,this._focusIsInMenu=g,this._instantiationService=p,this._ghostTexts=f(this,(m)=>this._model.read(m)?.ghostTexts.read(m)??[]),this._inlineEdit=f(this,(m)=>this._model.read(m)?.inlineEditState.read(m)?.inlineSuggestion),this._everHadInlineEdit=hr(this,(m,_)=>_||!!this._inlineEdit.read(m)||!!this._model.read(m)?.inlineCompletionState.read(m)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=j(this,void 0),this._showInlineEditCollapsed=f(this,(m)=>(this._model.read(m)?.showCollapsed.read(m)??!1)&&!this._indicatorIsHoverVisible.read(m)?.read(m)),this._inlineEditWidget=ur((m)=>{if(!this._everHadInlineEdit.read(m))return;return this._instantiationService.createInstance(sf,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=f((m)=>{let _=this._model.read(m);if(!_)return;let v=_.state.read(m);if(v?.kind==="ghostText"&&v.inlineSuggestion?.showInlineEditMenu)return{displayRange:ne.ofLength(v.primaryGhostText.lineNumber,1),tabAction:f(this,(w)=>this._editorObs.isFocused.read(w)?Dt.Accept:Dt.Inactive),gutterIndicatorOffset:De(tO(v.inlineSuggestion,this._editor)),inlineSuggestion:v.inlineSuggestion,model:_};else if(v?.kind==="inlineEdit"){let w=this._inlineEditWidget.read(m)?.view;if(!w)return;let C=w.displayRange.read(m);if(!C)return;return{displayRange:C,tabAction:f((E)=>{if(this._editorObs.isFocused.read(E)){if(_.tabShouldJumpToInlineEdit.read(E))return Dt.Jump;if(_.tabShouldAcceptInlineEdit.read(E))return Dt.Accept}return Dt.Inactive}),gutterIndicatorOffset:w.gutterIndicatorOffset,inlineSuggestion:v.inlineSuggestion,model:_}}else return}),this._stablizedGhostTexts=pk(this._ghostTexts,this._store),this._editorObs=ct(this._editor),this._ghostTextWidgets=fd(this,this._stablizedGhostTexts,(m,_)=>_.add(this._createGhostText(m))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map((m)=>m.fontFamily),this._register(K2(f((m)=>`
|
|
50
|
+
.monaco-editor .ghost-text-decoration,
|
|
51
|
+
.monaco-editor .ghost-text-decoration-preview,
|
|
52
|
+
.monaco-editor .ghost-text {
|
|
53
|
+
font-family: ${this._fontFamily.read(m)};
|
|
54
|
+
}`))),this._register(new Rp(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(ol,this._editorObs,f((m)=>{let _=this._gutterIndicatorState.read(m);if(!_)return;return new su(nl.fromInlineSuggestion(_.inlineSuggestion),_.displayRange,rl.fromInlineCompletionModel(_.model),_.inlineSuggestion.action?.kind==="edit"?_.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((m,_)=>m?.tabAction?.read(_)??Dt.Inactive),this._gutterIndicatorState.map((m,_)=>m?.gutterIndicatorOffset?.read(_)??0),this._inlineEditWidget.map((m,_)=>m?.view.inlineEditsIsHovered.read(_)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),f((m)=>{let _=this._inlineEditWidget.read(m);if(!_)return;return m.store.add(this._instantiationService.createInstance(jm,_._inlineEditModel,De(this._indicator),_.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(n){return this._instantiationService.createInstance(ia,this._editor,f((h)=>{let g=this._model.read(h),p=g?.inlineCompletionState.read(h)?.inlineSuggestion;if(!g||!p)return{ghostText:n.read(h),handleInlineCompletionShown:()=>{},warning:void 0};return{ghostText:n.read(h),handleInlineCompletionShown:(m)=>g.handleInlineSuggestionShown(p,Qe.GhostText,m,Date.now()),warning:Hm.from(g?.warning.read(h))}}),{useSyntaxHighlighting:this._editorObs.getOption(71).map((h)=>h.syntaxHighlightingEnabled),highlightShortSuggestions:!0})}shouldShowHoverAtViewZone(n){return this._ghostTextWidgets.get()[0]?.ownsViewZone(n)??!1}};af=QM([eO(3,A)],af);function tO(u,n){let h=u.getSingleTextEdit(),g=n.getModel();if(!g)return 0;let p=g.getEOL();if(h.range.isEmpty()&&h.text.startsWith(p)){let m=n.getLineHeightForPosition(h.range.getStartPosition());return iO(h.text,p)*m}return 0}function iO(u,n){if(!n.length)return 0;let h=0,g=0;while(u.startsWith(n,g))h++,g+=n.length;return h}var oO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Sa=function(u,n){return function(h,g){n(h,g,u)}},kr;ML((u)=>_i.get(u));var _i=class u extends i{static{kr=this}static{this._instances=new Set}static{this.hot=Fy(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(n){let h=Cg(n);if(!h)return null;return kr.get(h)}static get(n){return FL(n.getContribution(kr.ID))}constructor(n,h,g,p,m,_,v,w,C){super();this.editor=n,this._instantiationService=h,this._contextKeyService=g,this._configurationService=p,this._commandService=m,this._debounceService=_,this._languageFeaturesService=v,this._accessibilitySignalService=w,this._keybindingService=C,this._focusIsInMenu=j(this,!1),this._focusIsInEditorOrMenu=f(this,(Y)=>{let Q=this._editorObs.isFocused.read(Y),te=this._focusIsInMenu.read(Y);return Q||te}),this._cursorIsInIndentation=f(this,(Y)=>{let Q=this._editorObs.cursorPosition.read(Y);if(Q===null)return!1;let te=this._editorObs.model.read(Y);if(!te)return!1;this._editorObs.versionId.read(Y);let oe=te.getLineIndentColumn(Q.lineNumber);return Q.column<=oe}),this.model=ur(this,(Y)=>{if(this._editorObs.isReadonly.read(Y))return;let Q=this._editorObs.model.read(Y);if(!Q)return;return this._instantiationService.createInstance(Lm,Q,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabledInConfig,()=>this._isEditorDictationInProgress(),this.editor)}),this._playAccessibilitySignal=so(this),this._view=f((Y)=>Y.store.add(this._instantiationService.createInstance(af.hot.read(Y),this.editor,this.model,this._focusIsInMenu))),this._editorObs=ct(this.editor),this._positions=f(this,(Y)=>this._editorObs.selections.read(Y)?.map((Q)=>Q.getEndPosition())??[new s(1,1)]),this._suggestWidgetAdapter=this._register(new qw(this._editorObs,(Y)=>this.model.get()?.handleSuggestAccepted(Y),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=je(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._register(this._contextKeyService.onDidChangeContext((Y)=>{if(Y.affectsSome(new Set(["editorDictation.inProgress"]))&&this._isEditorDictationInProgress())this.model.get()?.stop()})),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this.model.recomputeInitiallyAndOnChange(this._store),this._hideInlineEditOnSelectionChange=this._editorObs.getOption(71).map((Y)=>!0),this._view.recomputeInitiallyAndOnChange(this._store),kr._instances.add(this),this._register(N(()=>kr._instances.delete(this))),this._register(W((Y)=>{let Q=this.model.read(Y);if(!Q)return;let te=Q.state.read(Y);if(!te)return;if(!this._focusIsInEditorOrMenu.read(void 0))return;let oe=te.kind==="inlineEdit"?te.nextEditUri:void 0;for(let le of kr._instances)if(le===this)continue;else if(oe&&gs(oe,le.editor.getModel()?.uri))le.model.read(void 0)?.trigger();else le.reject()})),this._register(W((Y)=>{let Q=this.model.read(Y),te=this.editor.getModel()?.uri;if(!Q||!te)return;Y.store.add(Q.onDidAccept(()=>{for(let oe of kr._instances){if(oe===this)continue;let le=oe.model.read(void 0)?.state.read(void 0);if(le?.kind==="inlineEdit"&&gs(le.nextEditUri,te))oe.model.read(void 0)?.stop("automatic")}}))})),this._register(Nr(this._editorObs.onDidType,(Y,Q)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()})),this._register(Nr(this._editorObs.onDidPaste,(Y,Q)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()}));let E=new Set([Uf.Tab.id,Uf.DeleteLeft.id,Uf.DeleteRight.id,Gn,"acceptSelectedSuggestion",ul.ID,hl.ID,bt.NextMatchFindAction,Vr.ID,Oa.ID,Zl.ID,Xl.ID,...kg.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand((Y)=>{if(E.has(Y.commandId)&&n.hasTextFocus()&&this._enabledInConfig.get()&&!this._isEditorDictationInProgress()){let Q=!1;if(Y.commandId===Gn)Q=!0;this._editorObs.forceUpdate((te)=>{this.model.get()?.trigger(te,{noDelay:Q})})}})),this._register(Nr(this._editorObs.selections,(Y,Q,te)=>{if(te.some((oe)=>oe.reason===3||oe.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;let oe=this.model.get();if(!oe)return;if(oe.state.get()?.kind==="ghostText")this.model.get()?.stop()}})),this._register(W((Y)=>{let Q=this._focusIsInEditorOrMenu.read(Y),te=this.model.read(void 0);if(Q){let oe=te?.state.read(void 0);if(!oe||oe.kind!=="inlineEdit"||!oe.nextEditUri)Je((le)=>{for(let pe of kr._instances)if(pe!==this)pe.model.read(void 0)?.stop("automatic",le)});return}if(this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||n.getOption(71).keepOnBlur||qr.dropDownVisible)return;if(!te)return;if(te.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&te.inlineEditAvailable.read(void 0))return;Je((oe)=>{te.stop("automatic",oe)})})),this._register(W((Y)=>{let Q=this.model.read(Y)?.inlineCompletionState.read(Y);if(Q?.suggestItem){if(Q.primaryGhostText.lineCount>=2)this._suggestWidgetAdapter.forceRenderingAbove()}else this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(N(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));let R=hr(this,(Y,Q)=>{let oe=this.model.read(Y)?.state.read(Y);if(this._suggestWidgetAdapter.selectedItem.get())return Q;return oe?.inlineSuggestion?.semanticId});this._register(ER(f((Y)=>(this._playAccessibilitySignal.read(Y),R.read(Y),{})),async(Y,Q,te,oe)=>{let le=this.model.get(),pe=le?.state.get();if(!pe||!le)return;if(await Ir(50,D0(oe)),await Ok(this._suggestWidgetAdapter.selectedItem,ro,()=>!1,D0(oe)),le=this.model.get(),pe=le?.state.get(),!pe||!le)return;let Se=pe.kind==="ghostText"?le.textModel.getLineContent(pe.primaryGhostText.lineNumber):"";if(this._accessibilitySignalService.playSignal(pe.kind==="ghostText"?tt.inlineSuggestion:tt.nextEditSuggestion),this.editor.getOption(12))if(pe.kind==="ghostText")this._provideScreenReaderUpdate(pe.primaryGhostText.renderForScreenReader(Se));else{let Ce=pe.inlineSuggestion.targetRange.startLineNumber,ae=le.tabShouldAcceptInlineEdit.get(),me=le.tabShouldJumpToInlineEdit.get(),Ne;if(ae){let Me=this._keybindingService.lookupKeybinding(Gn)?.getAriaLabel();Ne=Me?e(1262,"Next edit suggestion available on line {0}, press {1} to accept",Ce,Me):e(1263,"Next edit suggestion available on line {0}, accept it to apply",Ce)}else if(me){let Me=this._keybindingService.lookupKeybinding(lc)?.getAriaLabel();Ne=Me?e(1264,"Next edit suggestion available on line {0}, press {1} to jump",Ce,Me):e(1265,"Next edit suggestion available on line {0}",Ce)}else Ne=e(1266,"Next edit suggestion available on line {0}",Ce);this._provideScreenReaderUpdate(Ne)}})),this._register(this._configurationService.onDidChangeConfiguration((Y)=>{if(Y.affectsConfiguration("accessibility.verbosity.inlineCompletions"))this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")});let Z=new vw(this._contextKeyService);this._register(Z.bind(dt.cursorInIndentation,this._cursorIsInIndentation)),this._register(Z.bind(dt.hasSelection,(Y)=>!this._editorObs.cursorSelection.read(Y)?.isEmpty())),this._register(Z.bind(dt.cursorAtInlineEdit,this.model.map((Y,Q)=>Y?.inlineEditState?.read(Q)?.cursorAtInlineEdit.read(Q)))),this._register(Z.bind(dt.tabShouldAcceptInlineEdit,this.model.map((Y,Q)=>!!Y?.tabShouldAcceptInlineEdit.read(Q)))),this._register(Z.bind(dt.tabShouldJumpToInlineEdit,this.model.map((Y,Q)=>!!Y?.tabShouldJumpToInlineEdit.read(Q)))),this._register(Z.bind(dt.inlineEditVisible,(Y)=>this.model.read(Y)?.inlineEditState.read(Y)!==void 0)),this._register(Z.bind(dt.inlineSuggestionHasIndentation,(Y)=>this.model.read(Y)?.getIndentationInfo(Y)?.startsWithIndentation)),this._register(Z.bind(dt.inlineSuggestionHasIndentationLessThanTabSize,(Y)=>this.model.read(Y)?.getIndentationInfo(Y)?.startsWithIndentationLessThanTabSize)),this._register(Z.bind(dt.suppressSuggestions,(Y)=>{let te=this.model.read(Y)?.inlineCompletionState.read(Y);return te?.primaryGhostText&&te?.inlineSuggestion?te.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(Z.bind(dt.inlineSuggestionAlternativeActionVisible,(Y)=>{let oe=this.model.read(Y)?.inlineEditState.read(Y)?.inlineSuggestion.action;return oe&&oe.kind==="edit"&&oe.alternativeAction!==void 0})),this._register(Z.bind(dt.inlineSuggestionVisible,(Y)=>{let te=this.model.read(Y)?.inlineCompletionState.read(Y);return!!te?.inlineSuggestion&&te?.primaryGhostText!==void 0&&!te?.primaryGhostText.isEmpty()}));let X=f(this,(Y)=>{let oe=this.model.read(Y)?.inlineCompletionState.read(Y)?.primaryGhostText;if(!oe||oe.isEmpty())return;return new s(oe.lineNumber,oe.parts[0].column)});this._register(Z.bind(dt.cursorBeforeGhostText,(Y)=>{let Q=X.read(Y);if(!Q)return!1;let te=this._editorObs.cursorPosition.read(Y);if(!te)return!1;return Q.equals(te)})),this._register(this._instantiationService.createInstance(hm,this.editor))}_isEditorDictationInProgress(){return this._contextKeyService.getContext(this.editor.getDomNode())?.getValue("editorDictation.inProgress")===!0}playAccessibilitySignal(n){this._playAccessibilitySignal.trigger(n)}_provideScreenReaderUpdate(n){let h=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),g=this._keybindingService.lookupKeybinding("editor.action.accessibleView"),p;if(!h&&g&&this.editor.getOption(170))p=e(1267,"Inspect this in the accessible view ({0})",g.getAriaLabel());Vn(p?n+", "+p:n)}shouldShowHoverAt(n){let h=this.model.get()?.primaryGhostText.get();if(!h)return!1;return h.parts.some((g)=>n.containsPosition(new s(h.lineNumber,g.column)))}shouldShowHoverAtViewZone(n){return this._view.get().shouldShowHoverAtViewZone(n)}reject(){Je((n)=>{let h=this.model.get();if(h){if(h.stop("explicitCancel",n),this._focusIsInEditorOrMenu.get()){for(let g of kr._instances)if(g!==this&&!g._focusIsInEditorOrMenu.get())g.model.get()?.stop("automatic",n)}}})}jump(){let n=this.model.get();if(n)n.jump()}};_i=kr=oO([Sa(1,A),Sa(2,G),Sa(3,re),Sa(4,Ue),Sa(5,uo),Sa(6,z),Sa(7,xs),Sa(8,ge)],_i);class df extends U{static{this.ID=Ep}constructor(){super({id:df.ID,label:b(1239,"Show Next Inline Suggestion"),precondition:L.and(r.writable,dt.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(u,n){_i.get(n)?.model.get()?.next()}}class cf extends U{static{this.ID=kp}constructor(){super({id:cf.ID,label:b(1240,"Show Previous Inline Suggestion"),precondition:L.and(r.writable,dt.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(u,n){_i.get(n)?.model.get()?.previous()}}var nO="vscode://schemas/inlineCompletionProviderIdArgs";function rO(u){let n=[];if(u.providerId)n.push(u.providerId.toStringWithoutVersion()),n.push(u.providerId.extensionId+":*");return n}var PE=jL(UL({showNoResultNotification:Dh(fw()),providerId:Dh(GL(nO,WL())),explicit:Dh(fw()),changeHintData:Dh(VL())}),zL());class yS extends U{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:b(1241,"Trigger Inline Suggestion"),precondition:r.writable,metadata:{description:e(1228,"Triggers an inline suggestion in the editor."),args:[{name:"args",description:e(1229,"Options for triggering inline suggestions."),isOptional:!0,schema:PE.getJSONSchema()}]}})}async run(u,n,h){let g=u.get(wt),p=u.get(z),m=_i.get(n),_=PE.validateOrThrow(h),v=_?.providerId?p.inlineCompletionsProvider.all(n.getModel()).find((w)=>rO(w).some((C)=>C===_.providerId)):void 0;if(await P2(async(w)=>{await m?.model.get()?.trigger(w,{provider:v,explicit:_?.explicit??!0,changeHint:_?.changeHintData?{data:_.changeHintData}:void 0}),m?.playAccessibilitySignal(w)}),_?.showNoResultNotification){if(!m?.model.get()?.state.get())g.notify({severity:Sc.Info,message:e(1230,"No inline suggestion is available.")})}}}class xS extends U{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:b(1242,"Accept Next Word Of Inline Suggestion"),precondition:L.and(r.writable,dt.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:L.and(r.writable,dt.inlineSuggestionVisible,dt.cursorBeforeGhostText,Qh.negate())},menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1231,"Accept Word"),group:"primary",order:2}]})}async run(u,n){await _i.get(n)?.model.get()?.acceptNextWord()}}class IS extends U{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:b(1243,"Accept Next Line Of Inline Suggestion"),precondition:L.and(r.writable,dt.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1232,"Accept Line"),group:"secondary",order:2}]})}async run(u,n){await _i.get(n)?.model.get()?.acceptNextLine()}}class LS extends U{constructor(){super({id:Gn,label:b(1244,"Accept Inline Suggestion"),precondition:L.or(dt.inlineSuggestionVisible,dt.inlineEditVisible),menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1233,"Accept"),group:"primary",order:2},{menuId:l.InlineEditsActions,title:e(1234,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:L.or(L.and(dt.inlineSuggestionVisible,r.tabMovesFocus.toNegated(),Fe.Visible.toNegated(),r.hoverFocused.toNegated(),dt.hasSelection.toNegated(),dt.inlineSuggestionHasIndentationLessThanTabSize),L.and(dt.inlineEditVisible,r.tabMovesFocus.toNegated(),Fe.Visible.toNegated(),r.hoverFocused.toNegated(),dt.tabShouldAcceptInlineEdit))}]})}async run(u,n){let h=_i.getInFocusedEditorOrParent(u);if(h)h.model.get()?.accept(h.editor),h.editor.focus()}}Nn.registerKeybindingRule({id:Gn,weight:202,primary:2,when:L.and(dt.inInlineEditsPreviewEditor)});class kS extends U{constructor(){super({id:ed,label:b(1245,"Accept Inline Suggestion Alternative Action"),precondition:L.and(dt.inlineSuggestionAlternativeActionVisible,dt.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(u,n){let h=_i.getInFocusedEditorOrParent(u);if(h)h.model.get()?.accept(h.editor,!0),h.editor.focus()}}Nn.registerKeybindingRule({id:ed,weight:203,primary:1026,when:L.and(dt.inInlineEditsPreviewEditor)});class ES extends U{constructor(){super({id:lc,label:b(1246,"Jump to next inline edit"),precondition:dt.inlineEditVisible,menuOpts:[{menuId:l.InlineEditsActions,title:e(1235,"Jump"),group:"primary",order:1,when:dt.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:L.and(dt.inlineEditVisible,r.tabMovesFocus.toNegated(),Fe.Visible.toNegated(),r.hoverFocused.toNegated(),dt.tabShouldJumpToInlineEdit)}})}async run(u,n){let h=_i.get(n);if(h)h.jump()}}class ku extends U{static{this.ID=Dp}constructor(){super({id:ku.ID,label:b(1247,"Hide Inline Suggestion"),precondition:L.or(dt.inlineSuggestionVisible,dt.inlineEditVisible),kbOpts:{kbExpr:r.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:l.InlineEditsActions,title:e(1236,"Reject"),group:"primary",order:3}]})}async run(u,n){let h=_i.getInFocusedEditorOrParent(u);Je((g)=>{h?.model.get()?.stop("explicitCancel",g)}),h?.editor.focus()}}class lf extends U{static{this.ID=hh}constructor(){super({id:lf.ID,label:b(1248,"Toggle Inline Suggestions Show Collapsed"),precondition:L.true()})}async run(u,n){let h=u.get(re),g=h.getValue("editor.inlineSuggest.edits.showCollapsed");h.updateValue("editor.inlineSuggest.edits.showCollapsed",!g)}}Nn.registerKeybindingRule({id:ku.ID,weight:-1,primary:9,secondary:[1033],when:L.and(dt.inInlineEditsPreviewEditor)});class hf extends Cn{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:hf.ID,title:e(1237,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:l.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:L.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(u){let n=u.get(re),g=n.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";n.updateValue("editor.inlineSuggest.showToolbar",g)}}class DS extends U{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:e(1238,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:L.or(dt.inlineEditVisible,dt.inlineSuggestionVisible)})}async run(u,n){let h=u.get(wi),p=_i.get(n)?.model.get();if(!p)return;let m=p.extractReproSample(),v=Ci(JSON.stringify({inlineCompletion:m.inlineCompletion},null,4)).map((C)=>"// "+C).join(`
|
|
55
|
+
`),w=`${m.documentValue}
|
|
56
|
+
|
|
57
|
+
// <json>
|
|
58
|
+
${v}
|
|
59
|
+
// </json>
|
|
60
|
+
`;return await h.writeText(w),{reproCase:w}}}var sO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},uf=function(u,n){return function(h,g){n(h,g,u)}};class AE{constructor(u,n,h){this.owner=u,this.range=n,this.controller=h}isValidForHoverAnchor(u){return u.type===1&&this.range.startColumn<=u.range.startColumn&&this.range.endColumn>=u.range.endColumn}}var gf=class u{constructor(n,h,g,p,m){this._editor=n,this.accessibilityService=h,this._instantiationService=g,this._telemetryService=p,this._markdownRendererService=m,this.hoverOrdinal=4,this.hideCopyButton=!0}suggestHoverAnchor(n){let h=_i.get(this._editor);if(!h)return null;let g=n.target;if(g.type===8){let p=g.detail;if(h.shouldShowHoverAtViewZone(p.viewZoneId))return new $s(1000,this,t.fromPositions(this._editor.getModel().validatePosition(p.positionBefore||p.position)),n.event.posx,n.event.posy,!1)}if(g.type===7){if(h.shouldShowHoverAt(g.range))return new $s(1000,this,g.range,n.event.posx,n.event.posy,!1)}if(g.type===6){if(g.detail.mightBeForeignElement&&h.shouldShowHoverAt(g.range))return new $s(1000,this,g.range,n.event.posx,n.event.posy,!1)}if(g.type===9&&g.element){let p=ia.getWarningWidgetContext(g.element);if(p&&h.shouldShowHoverAt(p.range))return new $s(1000,this,p.range,n.event.posx,n.event.posy,!1)}return null}computeSync(n,h){if(this._editor.getOption(71).showToolbar!=="onHover")return[];let g=_i.get(this._editor);if(g&&g.shouldShowHoverAt(n.range))return[new AE(this,n.range,g)];return[]}renderHoverParts(n,h){let g=new d,p=h[0];if(this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12))g.add(this.renderScreenReaderText(n,p));let m=p.controller.model.get(),_=document.createElement("div");return n.fragment.appendChild(_),g.add(ri((w,C)=>{let E=C.add(this._instantiationService.createInstance(qr.hot.read(w),this._editor,!1,De(null),m.selectedInlineCompletionIndex,m.inlineCompletionsCount,m.activeCommands,m.warning,()=>{n.onContentsChanged()}));_.replaceChildren(E.getDomNode())})),m.triggerExplicitly(),new $o([{hoverPart:p,hoverElement:_,dispose(){g.dispose()}}])}getAccessibleContent(n){return e(1268,"There are inline completions here")}renderScreenReaderText(n,h){let g=new d,p=x,m=p("div.hover-row.markdown-hover"),_=k(m,p("div.hover-contents",{["aria-live"]:"assertive"})),v=(w)=>{let C=e(1269,"Suggestion:"),E=g.add(this._markdownRendererService.render(new Mn().appendText(C).appendCodeblock("text",w),{context:this._editor,asyncRenderCallback:()=>{_.className="hover-contents code-hover-contents",n.onContentsChanged()}}));_.replaceChildren(E.element)};return g.add(W((w)=>{let C=h.controller.model.read(w)?.primaryGhostText.read(w);if(C){let E=this._editor.getModel().getLineContent(C.lineNumber);v(C.renderForScreenReader(E))}else gn(_)})),n.fragment.appendChild(m),g}};gf=sO([uf(1,on),uf(2,A),uf(3,Wn),uf(4,Bo)],gf);class TS{}fe(_i.ID,HL(_i.hot),3);O(yS);O(df);O(cf);O(xS);O(IS);O(LS);O(kS);O(lf);O(ku);O(ES);lt(hf);O(DS);lt(mk);lt(gk);_l.register(gf);Nc.register(new TS);var aO=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Md=function(u,n){return function(h,g){n(h,g,u)}},RS,Du=class u{static{RS=this}static{this.ID="editor.contrib.contextmenu"}static get(n){return n.getContribution(RS.ID)}constructor(n,h,g,p,m,_,v,w){this._contextMenuService=h,this._contextViewService=g,this._contextKeyService=p,this._keybindingService=m,this._menuService=_,this._configurationService=v,this._workspaceContextService=w,this._toDispose=new d,this._contextMenuIsBeingShownCount=0,this._editor=n,this._toDispose.add(this._editor.onContextMenu((C)=>this._onContextMenu(C))),this._toDispose.add(this._editor.onMouseWheel((C)=>{if(this._contextMenuIsBeingShownCount>0){let E=this._contextViewService.getContextViewElement(),R=C.srcElement;if(!(R.shadowRoot&&$l(E)===R.shadowRoot))this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown((C)=>{if(!this._editor.getOption(30))return;if(C.keyCode===58)C.preventDefault(),C.stopPropagation(),this.showContextMenu()}))}_onContextMenu(n){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){if(this._editor.focus(),n.target.position&&!this._editor.getSelection().containsPosition(n.target.position))this._editor.setPosition(n.target.position);return}if(n.target.type===12)return;if(n.target.type===6&&n.target.detail.injectedText)return;if(n.event.preventDefault(),n.event.stopPropagation(),n.target.type===11)return this._showScrollbarContextMenu(n.event);if(n.target.type!==6&&n.target.type!==7&&n.target.type!==1)return;if(this._editor.focus(),n.target.position){let g=!1;for(let p of this._editor.getSelections())if(p.containsPosition(n.target.position)){g=!0;break}if(!g)this._editor.setPosition(n.target.position)}let h=null;if(n.target.type!==1)h=n.event;this.showContextMenu(h)}showContextMenu(n){if(!this._editor.getOption(30))return;if(!this._editor.hasModel())return;let h=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);if(h.length>0)this._doShowContextMenu(h,n)}_getMenuActions(n,h){let g=[],p=this._menuService.getMenuActions(h,this._contextKeyService,{arg:n.uri});for(let m of p){let[,_]=m,v=0;for(let w of _)if(w instanceof bc){let C=this._getMenuActions(n,w.item.submenu);if(C.length>0)g.push(new ms(w.id,w.label,C)),v++}else g.push(w),v++;if(v)g.push(new ut)}if(g.length)g.pop();return g}_doShowContextMenu(n,h=null){if(!this._editor.hasModel())return;let g=h;if(!g){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let m=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),_=kt(this._editor.getDomNode()),v=_.left+m.left,w=_.top+m.top+m.height;g={x:v,y:w}}let p=this._editor.getOption(144)&&!Ro;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:p?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:p&&this._editor.getOption(51),getAnchor:()=>g,getActions:()=>n,getActionViewItem:(m)=>{let _=this._keybindingFor(m);if(_)return new Ec(m,m,{label:!0,keybinding:_.getLabel(),isMenu:!0});let v=m;if(typeof v.getActionViewItem==="function")return v.getActionViewItem();return new Ec(m,m,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:(m)=>this._keybindingFor(m),onHide:(m)=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(n){if(!this._editor.hasModel())return;if(_P(this._workspaceContextService.getWorkspace()))return;let h=this._editor.getOption(81),g=0,p=(C)=>({id:`menu-action-${++g}`,label:C.label,tooltip:"",class:void 0,enabled:typeof C.enabled>"u"?!0:C.enabled,checked:C.checked,run:C.run}),m=(C,E)=>new ms(`menu-action-${++g}`,C,E,void 0),_=(C,E,R,Z,X)=>{if(!E)return p({label:C,enabled:E,run:()=>{}});let Y=(te)=>()=>{this._configurationService.updateValue(R,te)},Q=[];for(let te of X)Q.push(p({label:te.label,checked:Z===te.value,run:Y(te.value)}));return m(C,Q)},v=[];v.push(p({label:e(952,"Minimap"),checked:h.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!h.enabled)}})),v.push(new ut),v.push(p({label:e(953,"Render Characters"),enabled:h.enabled,checked:h.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!h.renderCharacters)}})),v.push(_(e(954,"Vertical size"),h.enabled,"editor.minimap.size",h.size,[{label:e(955,"Proportional"),value:"proportional"},{label:e(956,"Fill"),value:"fill"},{label:e(957,"Fit"),value:"fit"}])),v.push(_(e(958,"Slider"),h.enabled,"editor.minimap.showSlider",h.showSlider,[{label:e(959,"Mouse Over"),value:"mouseover"},{label:e(960,"Always"),value:"always"}])),v.push(_(e(961,"Side"),h.enabled,"editor.minimap.side",h.side,[{label:e(962,"Right"),value:"right"},{label:e(963,"Left"),value:"left"}]));let w=this._editor.getOption(144)&&!Ro;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:w?this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:w&&this._editor.getOption(51),getAnchor:()=>n,getActions:()=>v,onHide:(C)=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(n){return this._keybindingService.lookupKeybinding(n.id)}dispose(){if(this._contextMenuIsBeingShownCount>0)this._contextViewService.hideContextView();this._toDispose.dispose()}};Du=RS=aO([Md(1,Qn),Md(2,ws),Md(3,G),Md(4,ge),Md(5,Ai),Md(6,re),Md(7,va)],Du);class FE extends U{constructor(){super({id:"editor.action.showContextMenu",label:b(964,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:r.textInputFocus,primary:1092,weight:100}})}run(u,n){Du.get(n)?.showContextMenu()}}fe(Du.ID,Du,2);O(FE);class NS extends i{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(u){super();this.editor=u,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let u=hi.get(this.editor);if(u&&this.editor.hasModel()){let n=this.editor.getOptions().get(105);if(!n)if(this.editor.isSimpleWidget)n=new Mn(e(1447,"Cannot edit in read-only input"));else n=new Mn(e(1448,"Cannot edit in read-only editor"));u.showMessage(n,this.editor.getPosition())}}}fe(NS.ID,NS,2);class MS extends Cn{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:MS.ID,title:b(1604,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:b(1605,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){let n=!Xh.getTabFocusMode();if(Xh.setTabFocusMode(n),n)Vn(e(1602,"Pressing Tab will now move focus to the next focusable element"));else Vn(e(1603,"Pressing Tab will now insert the tab character"))}}lt(MS);var HE=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},OS=function(u,n){return function(h,g){n(h,g,u)}},dO=26,pf=class u extends i{constructor(n,h){super();this._editor=n,this.instantiationService=h,this.banner=this._register(this.instantiationService.createInstance(PS))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(n){this.banner.show({...n,onClose:()=>{this.hide(),n.onClose?.()}}),this._editor.setBanner(this.banner.element,dO)}};pf=HE([OS(1,A)],pf);var PS=class u extends i{constructor(n,h){super();this.instantiationService=n,this.markdownRendererService=h,this.element=x("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(n){if(n.ariaLabel)return n.ariaLabel;if(typeof n.message==="string")return n.message;return}getBannerMessage(n){if(typeof n==="string"){let h=x("span");return h.innerText=n,h}return this.markdownRendererService.render(n).element}clear(){mn(this.element)}show(n){mn(this.element);let h=this.getAriaLabel(n);if(h)this.element.setAttribute("aria-label",h);let g=k(this.element,x("div.icon-container"));if(g.setAttribute("aria-hidden","true"),n.icon)g.appendChild(x(`div${J.asCSSSelector(n.icon)}`));let p=k(this.element,x("div.message-container"));if(p.setAttribute("aria-hidden","true"),p.appendChild(this.getBannerMessage(n.message)),this.messageActionsContainer=k(this.element,x("div.message-actions-container")),n.actions)for(let _ of n.actions)this._register(this.instantiationService.createInstance(Ad,this.messageActionsContainer,{..._,tabIndex:-1},{}));let m=k(this.element,x("div.action-container"));this.actionBar=this._register(new Qi(m)),this.actionBar.push(this._register(new wo("banner.close",e(1607,"Close Banner"),J.asClassName(Ak),!0,()=>{if(typeof n.onClose==="function")n.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};PS=HE([OS(0,A),OS(1,Bo)],PS);var BS=function(u,n,h,g){var p=arguments.length,m=p<3?n:g===null?g=Object.getOwnPropertyDescriptor(n,h):g,_;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")m=Reflect.decorate(u,n,h,g);else for(var v=u.length-1;v>=0;v--)if(_=u[v])m=(p<3?_(m):p>3?_(n,h,m):_(n,h))||m;return p>3&&m&&Object.defineProperty(n,h,m),m},Tu=function(u,n){return function(h,g){n(h,g,u)}},cO=Pt("extensions-warning-message",S.warning,e(1608,"Icon shown with a warning message in the extensions editor.")),Ru=class u extends i{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(n,h,g,p){super();this._editor=n,this._editorWorkerService=h,this._workspaceTrustService=g,this._highlighter=null,this._bannerClosed=!1,this._updateState=(m)=>{if(m&&m.hasMore){if(this._bannerClosed)return;let _=Math.max(m.ambiguousCharacterCount,m.nonBasicAsciiCharacterCount,m.invisibleCharacterCount),v;if(m.nonBasicAsciiCharacterCount>=_)v={message:e(1609,"This document contains many non-basic ASCII unicode characters"),command:new Mu};else if(m.ambiguousCharacterCount>=_)v={message:e(1610,"This document contains many ambiguous unicode characters"),command:new Od};else if(m.invisibleCharacterCount>=_)v={message:e(1611,"This document contains many invisible unicode characters"),command:new Nu};else throw Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:v.message,icon:cO,actions:[{label:v.command.shortLabel,href:`command:${v.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(p.createInstance(pf,n)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=n.getOption(142),this._register(g.onDidChangeTrust((m)=>{this._updateHighlighter()})),this._register(n.onDidChangeConfiguration((m)=>{if(m.hasChanged(142))this._options=n.getOption(142),this._updateHighlighter()})),this._updateHighlighter()}dispose(){if(this._highlighter)this._highlighter.dispose(),this._highlighter=null;super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter)this._highlighter.dispose(),this._highlighter=null;if(!this._editor.hasModel())return;let n=lO(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([n.nonBasicASCII,n.ambiguousCharacters,n.invisibleCharacters].every((g)=>g===!1))return;let h={nonBasicASCII:n.nonBasicASCII,ambiguousCharacters:n.ambiguousCharacters,invisibleCharacters:n.invisibleCharacters,includeComments:n.includeComments,includeStrings:n.includeStrings,allowedCodePoints:Object.keys(n.allowedCharacters).map((g)=>g.codePointAt(0)),allowedLocales:Object.keys(n.allowedLocales).map((g)=>{if(g==="_os")return vc.NumberFormat().value.resolvedOptions().locale;else if(g==="_vscode")return T2;return g})};if(this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri))this._highlighter=new FS(this._editor,h,this._updateState,this._editorWorkerService);else this._highlighter=new WE(this._editor,h,this._updateState)}getDecorationInfo(n){if(this._highlighter)return this._highlighter.getDecorationInfo(n);return null}};Ru=BS([Tu(1,Mi),Tu(2,Lk),Tu(3,A)],Ru);function lO(u,n){return{nonBasicASCII:n.nonBasicASCII===la?!u:n.nonBasicASCII,ambiguousCharacters:n.ambiguousCharacters,invisibleCharacters:n.invisibleCharacters,includeComments:n.includeComments===la?!u:n.includeComments,includeStrings:n.includeStrings===la?!u:n.includeStrings,allowedCharacters:n.allowedCharacters,allowedLocales:n.allowedLocales}}var FS=class u extends i{constructor(n,h,g,p){super();this._editor=n,this._options=h,this._updateState=g,this._editorWorkerService=p,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new ke(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let n=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((h)=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==n)return;this._updateState(h);let g=[];if(!h.hasMore)for(let p of h.ranges)g.push({range:p,options:mf.instance.getDecorationFromOptions(this._options)});this._decorations.set(g)})}getDecorationInfo(n){if(!this._decorations.has(n))return null;let h=this._editor.getModel();if(!t_(h,n))return null;let g=h.getValueInRange(n.range);return{reason:VE(g,this._options),inComment:sk(h,n),inString:ak(h,n)}}};FS=BS([Tu(3,Mi)],FS);class WE extends i{constructor(u,n,h){super();this._editor=u,this._options=n,this._updateState=h,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new ke(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let u=this._editor.getVisibleRanges(),n=[],h={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let g of u){let p=my.computeUnicodeHighlights(this._model,this._options,g);for(let m of p.ranges)h.ranges.push(m);h.ambiguousCharacterCount+=h.ambiguousCharacterCount,h.invisibleCharacterCount+=h.invisibleCharacterCount,h.nonBasicAsciiCharacterCount+=h.nonBasicAsciiCharacterCount,h.hasMore=h.hasMore||p.hasMore}if(!h.hasMore)for(let g of h.ranges)n.push({range:g,options:mf.instance.getDecorationFromOptions(this._options)});this._updateState(h),this._decorations.set(n)}getDecorationInfo(u){if(!this._decorations.has(u))return null;let n=this._editor.getModel(),h=n.getValueInRange(u.range);if(!t_(n,u))return null;return{reason:VE(h,this._options),inComment:sk(n,u),inString:ak(n,u)}}}var BE=e(1612,"Configure Unicode Highlight Options"),HS=class u{constructor(n,h){this._editor=n,this._markdownRendererService=h,this.hoverOrdinal=5}computeSync(n,h){if(!this._editor.hasModel()||n.type!==1)return[];let g=this._editor.getModel(),p=this._editor.getContribution(Ru.ID);if(!p)return[];let m=[],_=new Set,v=300;for(let w of h){let C=p.getDecorationInfo(w);if(!C)continue;let R=g.getValueInRange(w.range).codePointAt(0),Z=AS(R),X;switch(C.reason.kind){case 0:{if(cu(C.reason.confusableWith))X=e(1613,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",Z,AS(C.reason.confusableWith.codePointAt(0)));else X=e(1614,"The character {0} could be confused with the character {1}, which is more common in source code.",Z,AS(C.reason.confusableWith.codePointAt(0)));break}case 1:X=e(1615,"The character {0} is invisible.",Z);break;case 2:X=e(1616,"The character {0} is not a basic ASCII character.",Z);break}if(_.has(X))continue;_.add(X);let Y={codePoint:R,reason:C.reason,inComment:C.inComment,inString:C.inString},Q=e(1617,"Adjust settings"),te=fk(ff.ID,Y),oe=new Mn("",!0).appendMarkdown(X).appendText(" ").appendLink(te,Q,BE);m.push(new io(this,w.range,[oe],!1,v++))}return m}renderHoverParts(n,h){return iL(n,h,this._editor,this._markdownRendererService)}getAccessibleContent(n){return n.contents.map((h)=>h.value).join(`
|
|
61
|
+
`)}};HS=BS([Tu(1,Bo)],HS);function WS(u){return`U+${u.toString(16).padStart(4,"0")}`}function AS(u){let n=`\`${WS(u)}\``;if(!hd.isInvisibleCharacter(u))n+=` "${`${hO(u)}`}"`;return n}function hO(u){if(u===96)return"`` ` ``";return"`"+String.fromCodePoint(u)+"`"}function VE(u,n){return my.computeUnicodeHighlightReason(u,n)}class mf{constructor(){this.map=new Map}static{this.instance=new mf}getDecorationFromOptions(u){return this.getDecoration(!u.includeComments,!u.includeStrings)}getDecoration(u,n){let h=`${u}${n}`,g=this.map.get(h);if(!g)g=ue.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:u,hideInStringTokens:n}),this.map.set(h,g);return g}}class zE extends U{constructor(){super({id:Od.ID,label:b(1626,"Disable highlighting of characters in comments"),precondition:void 0});this.shortLabel=e(1618,"Disable Highlight In Comments")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(hs.includeComments,!1,2)}}class KE extends U{constructor(){super({id:Od.ID,label:b(1627,"Disable highlighting of characters in strings"),precondition:void 0});this.shortLabel=e(1619,"Disable Highlight In Strings")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(hs.includeStrings,!1,2)}}class Od extends Cn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:Od.ID,title:b(1628,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1});this.shortLabel=e(1620,"Disable Ambiguous Highlight")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(hs.ambiguousCharacters,!1,2)}}class Nu extends Cn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:Nu.ID,title:b(1629,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1});this.shortLabel=e(1621,"Disable Invisible Highlight")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(hs.invisibleCharacters,!1,2)}}class Mu extends Cn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:Mu.ID,title:b(1630,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1});this.shortLabel=e(1622,"Disable Non ASCII Highlight")}async run(u,n){let h=u.get(re);if(h)this.runAction(h)}async runAction(u){await u.updateValue(hs.nonBasicASCII,!1,2)}}class ff extends Cn{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:ff.ID,title:b(1631,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(u,n){let{codePoint:h,reason:g,inString:p,inComment:m}=n,_=String.fromCodePoint(h),v=u.get(En),w=u.get(re);function C(X){if(hd.isInvisibleCharacter(X))return e(1623,"Exclude {0} (invisible character) from being highlighted",WS(X));return e(1624,"Exclude {0} from being highlighted",`${WS(X)} "${_}"`)}let E=[];if(g.kind===0)for(let X of g.notAmbiguousInLocales)E.push({label:e(1625,'Allow unicode characters that are more common in the language "{0}".',X),run:async()=>{gO(w,[X])}});if(E.push({label:C(h),run:()=>uO(w,[h])}),m){let X=new zE;E.push({label:X.label,run:async()=>X.runAction(w)})}else if(p){let X=new KE;E.push({label:X.label,run:async()=>X.runAction(w)})}function R(X){return typeof X.desc.title==="string"?X.desc.title:X.desc.title.value}if(g.kind===0){let X=new Od;E.push({label:R(X),run:async()=>X.runAction(w)})}else if(g.kind===1){let X=new Nu;E.push({label:R(X),run:async()=>X.runAction(w)})}else if(g.kind===2){let X=new Mu;E.push({label:R(X),run:async()=>X.runAction(w)})}else pO(g);let Z=await v.pick(E,{title:BE});if(Z)await Z.run()}}async function uO(u,n){let h=u.getValue(hs.allowedCharacters),g;if(typeof h==="object"&&h)g=h;else g={};for(let p of n)g[String.fromCodePoint(p)]=!0;await u.updateValue(hs.allowedCharacters,g,2)}async function gO(u,n){let h=u.inspect(hs.allowedLocales).user?.value,g;if(typeof h==="object"&&h)g=Object.assign({},h);else g={};for(let p of n)g[p]=!0;await u.updateValue(hs.allowedLocales,g,2)}function pO(u){throw Error(`Unexpected value: ${u}`)}lt(Od);lt(Nu);lt(Mu);lt(ff);fe(Ru.ID,Ru,1);_l.register(HS);export{Ht,Jv,Hh,S1,C1,k1,Yv,Zv,lR,E1,dd,ud,_2,L0,Bh,_l,Xv,fg,T1,L1,cR,dR,$1,uR,zh,$0,I1,R1,mg,Qv,gg,ey,D1,Io,ty,hR,Wh,Ds,pR};
|
|
62
|
+
|
|
63
|
+
//# debugId=1163E10F9C70E50064756E2164756E21
|
|
64
|
+
//# sourceMappingURL=studio-k0xzrse2.js.map
|