@jxsuite/studio 5.5.0 → 5.6.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/LICENSE +1 -1
- package/dist/chunks/{2020-g8mwpbkq.js → 2020-zvax9fmb.js} +3 -3
- package/dist/chunks/adapter-6zhjbpmd.js +4 -0
- package/dist/chunks/cf-account-picker-zfycs4k2.js +4 -0
- package/dist/chunks/cf-settings-fpa485q3.js +4 -0
- package/dist/chunks/components-b0vh4sq8.js +4 -0
- package/dist/chunks/content-source-z5t0d0h9.js +4 -0
- package/dist/chunks/convert-to-repeater-x19jr6c7.js +4 -0
- package/dist/chunks/editor-7e23n4a8.js +4 -0
- package/dist/chunks/entry-commands-5cm6aba2.js +4 -0
- package/dist/chunks/extension-sections-y90sa0n4.js +4 -0
- package/dist/chunks/file-ops-hv7gf757.js +4 -0
- package/dist/chunks/files-kb0epdxf.js +4 -0
- package/dist/chunks/format-host-eg1wy2bp.js +4 -0
- package/dist/chunks/fs-events-ky3vxfmh.js +4 -0
- package/dist/chunks/git-panel-yyg3bzp2.js +4 -0
- package/dist/chunks/grid-view-5mqv1cbd.css +1 -0
- package/dist/chunks/grid-view-d9mybhn0.js +51 -0
- package/dist/chunks/iframe-host-9wdf0hes.js +4 -0
- package/dist/chunks/index-2tf0m2ne.js +4 -0
- package/dist/chunks/{index-arg188jq.js → index-vnwy9d44.js} +3 -3
- package/dist/chunks/{javascript-zcdmye2k.js → javascript-f0nrbdjb.js} +2 -2
- package/dist/chunks/{jsonMode-6x5e1nbf.js → jsonMode-nfa90dtf.js} +5 -5
- package/dist/chunks/jx-validate-7w11db9v.js +4 -0
- package/dist/chunks/layers-7zasrpse.js +4 -0
- package/dist/chunks/layers-panel-9nzc4fdq.js +4 -0
- package/dist/chunks/lit-html-5qr7nbng.js +4 -0
- package/dist/chunks/media-picker-maevn9d4.js +4 -0
- package/dist/chunks/menu-wq6q0v3y.js +4 -0
- package/dist/chunks/{monaco-binding-4az2kh5p.js → monaco-binding-antn79jf.js} +3 -3
- package/dist/chunks/monaco-buffer-9ry2rn5x.js +4 -0
- package/dist/chunks/{monaco-setup-d7mwkcx3.js → monaco-setup-k8s40vwg.js} +3 -3
- package/dist/chunks/notify-g91gjd6w.js +4 -0
- package/dist/chunks/platform-jdwjp2vt.js +4 -0
- package/dist/chunks/publish-panel-8yym447p.js +4 -0
- package/dist/chunks/quick-search-9bzm9kh3.js +4 -0
- package/dist/chunks/references-znssfqvq.js +4 -0
- package/dist/chunks/right-panel-czbzktm8.js +4 -0
- package/dist/chunks/section-registry-0rtq73qs.js +4 -0
- package/dist/chunks/studio-011em5cf.js +5 -0
- package/dist/chunks/studio-02y9cb4h.js +6 -0
- package/dist/chunks/{studio-7gqyhjns.js → studio-09n3fyy0.js} +4 -4
- package/dist/chunks/{studio-xcng8nx7.js → studio-0c3fpdqj.js} +5 -5
- package/dist/chunks/studio-0mm38y62.js +5 -0
- package/dist/chunks/studio-0nm2skex.js +4 -0
- package/dist/chunks/{studio-73czgk6a.js → studio-153mwkyq.js} +4 -4
- package/dist/chunks/{studio-f8jyp45j.js → studio-1pxvgx1t.js} +4 -4
- package/dist/chunks/studio-27tc8q0h.js +5 -0
- package/dist/chunks/studio-28pz4s1k.js +5 -0
- package/dist/chunks/{studio-x5esgzct.js → studio-36s6qjgq.js} +4 -4
- package/dist/chunks/studio-4yztve2t.js +5 -0
- package/dist/chunks/{studio-x9sagq2d.js → studio-5fc0728f.js} +7 -7
- package/dist/chunks/{studio-7jazdy6y.js → studio-654fxcr0.js} +4 -4
- package/dist/chunks/studio-6exg5z4x.js +4 -0
- package/dist/chunks/studio-6k1eswp9.js +5 -0
- package/dist/chunks/{studio-5wfrgee9.js → studio-6zyt56ek.js} +4 -4
- package/dist/chunks/studio-7djymzt2.js +5 -0
- package/dist/chunks/{studio-b4epb26c.js → studio-7w04zw8h.js} +7 -7
- package/dist/chunks/studio-805fwp9k.js +5 -0
- package/dist/chunks/{studio-k1eaqyzm.js → studio-81twpmzj.js} +4 -4
- package/dist/chunks/studio-891t1tv9.js +5 -0
- package/dist/chunks/{studio-5n1km79v.js → studio-9n2j9nqk.js} +4 -4
- package/dist/chunks/{studio-he2fhrgp.js → studio-9tkaykt5.js} +4 -4
- package/dist/chunks/studio-ant1zbp3.js +5 -0
- package/dist/chunks/studio-b29h7g7s.js +5 -0
- package/dist/chunks/studio-b5rxwkj2.js +5 -0
- package/dist/chunks/studio-d007j0z3.js +7 -0
- package/dist/chunks/studio-dknr8m7b.js +14 -0
- package/dist/chunks/{studio-eq27rrr0.js → studio-dmymvk2j.js} +3 -3
- package/dist/chunks/studio-dtmdjmqb.js +5 -0
- package/dist/chunks/studio-eb5sty2k.js +5 -0
- package/dist/chunks/{studio-hc9q4j24.js → studio-ebt49j3c.js} +5 -5
- package/dist/chunks/studio-eegyf5vg.js +5 -0
- package/dist/chunks/studio-frv7vjhw.js +5 -0
- package/dist/chunks/studio-ft8pfpp0.js +5 -0
- package/dist/chunks/{studio-mhhc9btt.js → studio-gj4j9e7k.js} +4 -4
- package/dist/chunks/{studio-hf4qdjc8.js → studio-gxna6yta.js} +4 -4
- package/dist/chunks/studio-je15p5v8.js +6 -0
- package/dist/chunks/{studio-21enxdr8.js → studio-jsr14n1s.js} +4 -4
- package/dist/chunks/studio-k9pwvmz8.js +5 -0
- package/dist/chunks/{studio-p1eggxcf.js → studio-ks0ecgjx.js} +3 -3
- package/dist/chunks/studio-mb8jhtr4.js +64 -0
- package/dist/chunks/studio-mf41717j.js +5 -0
- package/dist/chunks/{studio-625ezz59.js → studio-mm8x32gg.js} +4 -4
- package/dist/chunks/{studio-pkkw32j0.js → studio-n2e133d6.js} +4 -4
- package/dist/chunks/{studio-c4pnt1c6.js → studio-njmg0e73.js} +5 -5
- package/dist/chunks/studio-nvykrgbj.js +4 -0
- package/dist/chunks/studio-nw4q9sdn.js +5 -0
- package/dist/chunks/studio-p6avneaq.js +5 -0
- package/dist/chunks/studio-pvj970st.js +5 -0
- package/dist/chunks/studio-r7yeeqc4.js +5 -0
- package/dist/chunks/studio-s85vah66.js +6 -0
- package/dist/chunks/studio-sadckcpp.js +7 -0
- package/dist/chunks/studio-sgzss898.js +9 -0
- package/dist/chunks/{studio-7by9a93k.js → studio-t0v47dpc.js} +4 -4
- package/dist/chunks/{studio-jnb285we.js → studio-tj28pxa1.js} +4 -4
- package/dist/chunks/{studio-6j2jn55a.js → studio-tzs6njnb.js} +8 -8
- package/dist/chunks/studio-vz7b43ng.js +5 -0
- package/dist/chunks/studio-w8w9frjy.js +16 -0
- package/dist/chunks/{studio-xc8ebsts.js → studio-wr0pq67n.js} +4 -4
- package/dist/chunks/{studio-8r4y2x0z.js → studio-y164brht.js} +4 -4
- package/dist/chunks/studio-y17505ge.js +928 -0
- package/dist/chunks/studio-ymsjnvp9.js +5 -0
- package/dist/chunks/studio-z1vdxq0e.js +5 -0
- package/dist/chunks/studio-z47mm077.js +10 -0
- package/dist/chunks/studio-zkkdbbvd.js +9 -0
- package/dist/chunks/{studio-awqghqxv.js → studio-zkvyd3ev.js} +4 -4
- package/dist/chunks/{tsMode-rtwt7w1a.js → tsMode-eq26t9gs.js} +5 -5
- package/dist/chunks/workspace-emt8454d.js +4 -0
- package/dist/chunks/ws-client-3gxqp06s.js +4 -0
- package/dist/iframe-entry.js +14 -14
- package/dist/manifest.json +62 -59
- package/dist/studio.css +1 -1
- package/dist/studio.js +115 -117
- package/package.json +5 -5
- package/src/account/action-flow.ts +294 -0
- package/src/account/action-required.ts +68 -0
- package/src/account-status.ts +29 -1
- package/src/browse/library-model.ts +3 -1
- package/src/browse/library-preview.ts +6 -2
- package/src/canvas/asset-refs.ts +3 -1
- package/src/canvas/asset-resolve.ts +79 -1
- package/src/canvas/iframe-entry.ts +38 -1
- package/src/canvas/iframe-host.ts +85 -0
- package/src/canvas/iframe-protocol.ts +13 -0
- package/src/files/asset-versions.ts +294 -0
- package/src/files/files.ts +61 -9
- package/src/files/fs-events.ts +279 -28
- package/src/files/media-meta.ts +2 -1
- package/src/files/media-paths.ts +5 -2
- package/src/files/media-upload.ts +5 -1
- package/src/new-project/add-repo-modal.ts +12 -1
- package/src/new-project/new-project-modal.ts +12 -1
- package/src/panels/git-panel.ts +25 -2
- package/src/platform-errors.ts +61 -1
- package/src/platforms/cloud.ts +389 -50
- package/src/platforms/devserver.ts +17 -1
- package/src/publish/pages-service.ts +17 -7
- package/src/services/ai-models.ts +30 -6
- package/src/services/ai-system-prompt.ts +81 -51
- package/src/settings/preferences-accounts.ts +42 -3
- package/src/settings/preferences-dialog.ts +8 -1
- package/src/studio.ts +18 -1
- package/src/surfaces/dialog.ts +5 -0
- package/src/surfaces/welcome.json +86 -1
- package/src/surfaces/welcome.ts +61 -2
- package/src/types.ts +84 -2
- package/src/ui/ai-managed-connect.ts +41 -4
- package/src/ui/media-picker.ts +2 -1
- package/dist/chunks/adapter-bsbs78x9.js +0 -4
- package/dist/chunks/cf-account-picker-gnm7xeqb.js +0 -4
- package/dist/chunks/cf-settings-9y6jyscp.js +0 -4
- package/dist/chunks/components-s51h3b7c.js +0 -4
- package/dist/chunks/content-source-ty3be0qg.js +0 -4
- package/dist/chunks/convert-to-repeater-c3e7q61z.js +0 -4
- package/dist/chunks/editor-t002b41m.js +0 -4
- package/dist/chunks/entry-commands-sb72e9gy.js +0 -4
- package/dist/chunks/extension-sections-ktn2ntnj.js +0 -4
- package/dist/chunks/file-ops-78zeytkm.js +0 -4
- package/dist/chunks/files-gatzrz8v.js +0 -4
- package/dist/chunks/format-host-r59b1651.js +0 -4
- package/dist/chunks/fs-events-f8h91ndt.js +0 -4
- package/dist/chunks/git-panel-y12zf7nj.js +0 -4
- package/dist/chunks/grid-view-rfd8b2pg.js +0 -51
- package/dist/chunks/grid-view-tafenfm2.css +0 -1
- package/dist/chunks/iframe-host-vsrsj20g.js +0 -4
- package/dist/chunks/index-5aghyrfh.js +0 -4
- package/dist/chunks/jx-validate-653krkrf.js +0 -4
- package/dist/chunks/layers-32p8gtae.js +0 -4
- package/dist/chunks/layers-panel-rs58m105.js +0 -4
- package/dist/chunks/lit-html-54bmkwz3.js +0 -4
- package/dist/chunks/media-picker-5bb04wct.js +0 -4
- package/dist/chunks/menu-cbha7w2e.js +0 -4
- package/dist/chunks/monaco-buffer-9vbbyfr1.js +0 -4
- package/dist/chunks/notify-dc1nz5ar.js +0 -4
- package/dist/chunks/platform-2m49s1zf.js +0 -4
- package/dist/chunks/publish-panel-nx3ycmma.js +0 -4
- package/dist/chunks/quick-search-yzrzh9x3.js +0 -4
- package/dist/chunks/references-vx7mbj9f.js +0 -4
- package/dist/chunks/right-panel-7jzpbxja.js +0 -4
- package/dist/chunks/section-registry-gjryse41.js +0 -4
- package/dist/chunks/studio-3znfhcxg.js +0 -5
- package/dist/chunks/studio-58qam27v.js +0 -4
- package/dist/chunks/studio-6j59fwaw.js +0 -5
- package/dist/chunks/studio-7z69g1gx.js +0 -5
- package/dist/chunks/studio-93j3v6zx.js +0 -5
- package/dist/chunks/studio-9gf6v8zy.js +0 -5
- package/dist/chunks/studio-9rhmettf.js +0 -4
- package/dist/chunks/studio-ac5aq677.js +0 -10
- package/dist/chunks/studio-as65vbns.js +0 -5
- package/dist/chunks/studio-bkv0sga4.js +0 -6
- package/dist/chunks/studio-bttmqef4.js +0 -5
- package/dist/chunks/studio-c3y9d41k.js +0 -5
- package/dist/chunks/studio-ccegp7gz.js +0 -9
- package/dist/chunks/studio-chxabn98.js +0 -6
- package/dist/chunks/studio-cktcdsxz.js +0 -16
- package/dist/chunks/studio-cnspfke5.js +0 -5
- package/dist/chunks/studio-de3p1ktm.js +0 -5
- package/dist/chunks/studio-fsbcn530.js +0 -928
- package/dist/chunks/studio-gftga7a3.js +0 -64
- package/dist/chunks/studio-hf1rpcq0.js +0 -4
- package/dist/chunks/studio-hz02hq70.js +0 -5
- package/dist/chunks/studio-jsv3s3s1.js +0 -5
- package/dist/chunks/studio-ks7cksh0.js +0 -5
- package/dist/chunks/studio-nptx0dbs.js +0 -5
- package/dist/chunks/studio-pg0z7k98.js +0 -5
- package/dist/chunks/studio-pve0b2f2.js +0 -5
- package/dist/chunks/studio-q7zmjv3b.js +0 -6
- package/dist/chunks/studio-rpmvw7kj.js +0 -5
- package/dist/chunks/studio-rwhss52s.js +0 -5
- package/dist/chunks/studio-sbg3g3h0.js +0 -5
- package/dist/chunks/studio-sq1bn60g.js +0 -14
- package/dist/chunks/studio-vwz7rma2.js +0 -5
- package/dist/chunks/studio-wa55e8gf.js +0 -5
- package/dist/chunks/studio-x0mzdha2.js +0 -5
- package/dist/chunks/studio-xrgpakvc.js +0 -9
- package/dist/chunks/studio-xt3djk1w.js +0 -7
- package/dist/chunks/studio-yh3nggx1.js +0 -7
- package/dist/chunks/studio-zmecp6hq.js +0 -5
- package/dist/chunks/workspace-g6dvaete.js +0 -4
- package/dist/chunks/ws-client-shf41j5p.js +0 -4
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import{Ge,Dp,ih,Px,fS,Zi,Fx,Ln,Kr,sI,Bm,Cn,xi,jx,aI,Dv,zm,J,dt,Kn,er,Xi,P,Za,Bd,fs,Tc,pn,lI,Gt,Jr,Oi,Mn,Ie,Xa,cI,Vs,Wm,Ap,e,h,Wt,ue,zn,br,Yr,lo,dI,Us,di,Zr,Ce,ms,$e,tr,E,c,n,ie,mS,Sn,Kt,C,i,el,co,nr,Xr,gs,Ir,zi,he,Oe,Av,Jt,zd,Um,fa,W,r,t,O,b,Rr,Wd,Po,Nv,Bx,qm,ma,Np,ga,Vd,uI,Ud,$r,zx,Op,Gm,Ov,Dt,Pe,Km,Pn,Wx,qs,_i,ei,In,Ct,Fo,oh,Mv,Lc,ba,uo,Qr,fn,tl,va,Ic,fI,Vx,Bl,Wn,ze,Vn,Pt,nl,mI,gI,Ci,ir,Jn,Un,be,vs,bI,Fn,Q,Pp,Rc,Si,So,qd,sh,gS,$c,Fv,At,Yn,jv,d,mn,Ux,jo,H,jn,vI,yI,Fe,wI,zl,M,Le,es,Mi,bS,Gx,vS,Gd,Ho,Wl,F,Xt,l,ft,xI,Dc,Hv,Bv,Ym,ti,zv,ys,Je,Kx,_I,mt,Zm,ho,ya,jt,wa,kt,ts,Ac,ah,Me,xe,lh,x,ve,Zn,w,Qt,m,CI,po,Wi,Gs,Wv,_e,yr,yS,se,ch,an,L,Z,ye,gt,gn,Qi,Xe,Dr,ol,G,Ne,we,_,A,V,it,bn,dh,a,ui,Rn,rl,ki,ln,Ye,kn,Ht,Ei,SI,Vl,vn,Ar,kI,hi,EI,uh,Jx,TI,Nc,Be,Yx,Pi,wS,Hp,hh,Bt,z,Xm,Bo,fo,U,I,Vv,LI,le,Hn,Nr,X,pt,fe,cn,ph,or,Fi,Qe,Qm,ws,fh,sl,wr,ko,xr,Or,Oc,eg,B,mh,Uv,Xx,Qx,II,Y,Nt,qv,Bp,xa,mo,ct,Ti,gh,eo,qn,xS,zp,k,al,p,tg,j,_S,go,bt,RI,_a,Ii,Mr,Ul,En,bo,pi,ig,Jd,Vt,Yd,og,e0,$I,Ca,N,s,rr,de,Wp,Ee,Gv,Vp,Re,Ft,Up,Eo,Ks,vo,vh,qp,DI,Js,yh,ns,wh,AI,ql,Gp,NI,xs,OI,ll,MI,Kp,rg,xh,t0,n0,PI,FI,jI,HI,Zd,Pc,Kv,Fc,sg,i0,CS,Jv,Yv,_h,Zv,BI,Xv,o0,r0,Jp,Xd,Yp,ag,Qd,Gl,Zp,Kl,Sa,lg,zo,eu,yt,wt,Et,ni,Qv,ka,lt,Ea,s0,Jl,ey,Ch,SS,Xp,zI,Sh,jc,cg,Ve,ii,kS,Qp,St,dg,fi,ug,tu,_r,ef,l0,kh,cl,o,Eh,De,en,oi,WI,c0,tf,ny,d0,u0,Yt,ul,ut,sr,ES,UI,ce,iy,ar,qI,Cs,$n,nf,Vi,hg,tn,oy,ry,sy,ay,h0,GI,Hc,p0,Yl,oe,Zl,hl,yn,Bc,KI,Pr,Dn,of,Th,f0,m0,g0,TS,ZI,iu,Cr,pg,Xl,XI,wn,ou,lr,v0,fg,ly,to,Ta,To,QI,yo,LS,cy,cr,rf,dn,xn,pl,dy,y0,w0,mg,Hi,Fr,qe,Xn,Ih,uy,IS,lf,Wo,ri,Se,no,fl,gg,bg,vg,_0,Rh,Ql,cf,nR,La,C0,yg,Ri,wg,S0,ml,hy,Ui,py,fy,gl,k0,my,gy,by,vy,yy,ks,RS,E0,T0,L0,Ut,wy,dr,I0,Zs,is,Es,R0,iR,oR,$0,rR,D0,bl,vl,A0,xy,Mt,Ia,df,Ts,ru,_g,Wc,Vc,P0,Xs,Tt,F0,Cg,$S,jr,Sr,j0,si,qc,ec,Qs,Cy,Qn,Ze,Sy,au,lu,ea,Sg,H0,Nh,Hr,kg,Oh,AS,sR,NS,Mh,pe}from"./studio-fsbcn530.js";import{me}from"./studio-7gqyhjns.js";class N_{constructor(f,u,g,v,S){this._onDidChange=new Mh,this._onDidExtraLibsChange=new Mh,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(f),this.setDiagnosticsOptions(u),this.setWorkerOptions(g),this.setInlayHintsOptions(v),this.setModeConfiguration(S),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(f,u){let g;if(typeof u>"u")g=`ts:extralib-${Math.random().toString(36).substring(2,15)}`;else g=u;if(this._extraLibs[g]&&this._extraLibs[g].content===f)return{dispose:()=>{}};let v=1;if(this._removedExtraLibs[g])v=this._removedExtraLibs[g]+1;if(this._extraLibs[g])v=this._extraLibs[g].version+1;return this._extraLibs[g]={content:f,version:v},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let S=this._extraLibs[g];if(!S)return;if(S.version!==v)return;delete this._extraLibs[g],this._removedExtraLibs[g]=v,this._fireOnDidExtraLibsChangeSoon()}}}setExtraLibs(f){for(let u in this._extraLibs)this._removedExtraLibs[u]=this._extraLibs[u].version;if(this._extraLibs=Object.create(null),f&&f.length>0)for(let u of f){let g=u.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,v=u.content,S=1;if(this._removedExtraLibs[g])S=this._removedExtraLibs[g]+1;this._extraLibs[g]={content:v,version:S}}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(f){this._compilerOptions=f||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(f){this._diagnosticsOptions=f||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(f){this._workerOptions=f||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(f){this._inlayHintsOptions=f||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(f){}setEagerModelSync(f){this._eagerModelSync=f}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(f){this._modeConfiguration=f||Object.create(null),this._onDidChange.fire(void 0)}}var YC={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},pS=new N_({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},YC),a2=new N_({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},YC);function JC(){return me("rtwt7w1a"),import("./tsMode-rtwt7w1a.js")}pe.onLanguage("typescript",()=>JC().then((f)=>f.setupTypeScript(pS)));pe.onLanguage("javascript",()=>JC().then((f)=>f.setupJavaScript(a2)));class QC extends z{constructor(){super({id:"editor.action.forceRetokenize",label:h(1606,"Developer: Force Retokenize"),precondition:void 0})}run(f,u){if(!u.hasModel())return;let g=u.getModel();g.tokenization.resetTokenization();let v=new Kt;g.tokenization.forceTokenization(g.getLineCount()),v.stop(),console.log(`tokenization took ${v.elapsed()}`)}}I(QC);class It{static{this.sep="."}static{this.None=new It("@@none@@")}static{this.Empty=new It("")}constructor(f){this.value=f}equals(f){return this.value===f.value}contains(f){return this.equals(f)||this.value===""||f.value.startsWith(this.value+It.sep)}intersects(f){return this.contains(f)||f.contains(this)}append(...f){return new It((this.value?[this.value,...f]:f).join(It.sep))}}var d2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},c2=function(f,u){return function(g,v){u(g,v,f)}},l2=oe.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:Vx,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0,widthInEm:1}});class M_ extends n{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(f,u,g,v,S){super();this.typeId=f,this.editor=u,this.range=g,this.delegate=S,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(v),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(f){this.domNode=m(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=f;let u=m("span.icon");this.domNode.append(u),u.classList.add(...G.asClassNameArray(b.loading),"codicon-modifier-spin");let g=()=>{let v=this.editor.getOption(75);this.domNode.style.height=`${v}px`,this.domNode.style.width=`${Math.ceil(0.8*v)}px`};g(),this._register(this.editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(61)||v.hasChanged(75))g()})),this._register(l(this.domNode,x.CLICK,(v)=>{this.delegate.cancel()}))}getId(){return M_.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 Nm=class f extends n{constructor(u,g,v){super();this.id=u,this._editor=g,this._instantiationService=v,this._showDelay=500,this._showPromise=this._register(new ie),this._currentWidget=this._register(new ie),this._operationIdPool=0,this._currentDecorations=g.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(u,g,v,S,y){let D=this._operationIdPool++;this._currentOperation=D,this.clear(),this._showPromise.value=Jn(()=>{let T=t.fromPositions(u);if(this._currentDecorations.set([{range:T,options:l2}]).length>0)this._currentWidget.value=this._instantiationService.createInstance(M_,this.id,this._editor,T,g,S)},y??this._showDelay);try{return await v}finally{if(this._currentOperation===D)this.clear(),this._currentOperation=void 0}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};Nm=d2([c2(2,L)],Nm);var h2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},ty=function(f,u){return function(g,v){u(g,v,f)}},zg,Bi=class f{static{zg=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new A("messageVisible",!1,e(1353,"Whether the editor is currently showing an inline message"))}static get(u){return u.getContribution(zg.ID)}constructor(u,g,v){this._openerService=v,this._messageWidget=new ie,this._messageListeners=new c,this._mouseOverMessage=!1,this._editor=u,this._visible=zg.MESSAGE_VISIBLE.bindTo(g)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(u,g){if(En(lr(u)?u.value:u),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),lr(u)){let S=this._messageListeners.add(Ta(u,{actionHandler:(y,D)=>{this.closeMessage(),LS(this._openerService,y,D.isTrusted)}}));this._messageWidget.value=new Kg(this._editor,g,S.element)}else this._messageWidget.value=new Kg(this._editor,g,u);this._messageListeners.add(C.debounce(this._editor.onDidBlurEditorText,(S,y)=>y,0)(()=>{if(this._mouseOverMessage)return;if(this._messageWidget.value&&jt(kt(),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(l(this._messageWidget.value.getDomNode(),x.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(l(this._messageWidget.value.getDomNode(),x.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let v;this._messageListeners.add(this._editor.onMouseMove((S)=>{if(!S.target.position)return;if(!v)v=new t(g.lineNumber-3,1,S.target.position.lineNumber+3,1);else if(!v.containsPosition(S.target.position))this.closeMessage()}))}closeMessage(){if(this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value)this._messageListeners.add(Kg.fadeOut(this._messageWidget.value))}};Bi=zg=h2([ty(1,V),ty(2,To)],Bi);var u2=Bt.bindToContribution(Bi.get);U(new u2({id:"leaveEditorMessage",precondition:Bi.MESSAGE_VISIBLE,handler:(f)=>f.closeMessage(),kbOpts:{weight:130,primary:9}}));class Kg{static fadeOut(f){let u=()=>{f.dispose(),clearTimeout(g),f.getDomNode().removeEventListener("animationend",u)},g=setTimeout(u,110);return f.getDomNode().addEventListener("animationend",u),f.getDomNode().classList.add("fadeOut"),{dispose:u}}constructor(f,{lineNumber:u,column:g},v){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=f,this._editor.revealLinesInCenterIfOutsideViewport(u,u,0),this._position={lineNumber:u,column:g},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";let S=document.createElement("div");S.classList.add("anchor","top"),this._domNode.appendChild(S);let y=document.createElement("div");if(typeof v==="string")y.classList.add("message"),y.textContent=v;else v.classList.add("message"),y.appendChild(v);this._domNode.appendChild(y);let D=document.createElement("div");D.classList.add("anchor","below"),this._domNode.appendChild(D),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(f){this._domNode.classList.toggle("below",f===2)}}le(Bi.ID,Bi,4);var O_=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Lh=function(f,u){return function(g,v){u(g,v,f)}};class qg{constructor(f){this.copyMimeTypes=[],this.kind=f,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(f,u,g,v,S){let y=await this.getEdit(g,S);if(!y)return;return{edits:[{insertText:y.insertText,title:y.title,kind:y.kind,handledMimeType:y.handledMimeType,yieldTo:y.yieldTo}],dispose(){}}}async provideDocumentDropEdits(f,u,g,v){let S=await this.getEdit(g,v);if(!S)return;return{edits:[{insertText:S.insertText,title:S.title,kind:S.kind,handledMimeType:S.handledMimeType,yieldTo:S.yieldTo}],dispose(){}}}}class Pd extends qg{static{this.id="text"}constructor(){super(It.Empty.append("text","plain"));this.id=Pd.id,this.dropMimeTypes=[cn.text],this.pasteMimeTypes=[cn.text]}async getEdit(f,u){let g=f.get(cn.text);if(!g)return;if(f.has(cn.uriList))return;let v=await g.asString();return{handledMimeType:cn.text,title:e(980,"Insert Plain Text"),insertText:v,kind:this.kind}}}class P_ extends qg{constructor(){super(It.Empty.append("uri","path","absolute"));this.dropMimeTypes=[cn.uriList],this.pasteMimeTypes=[cn.uriList]}async getEdit(f,u){let g=await Iy(f);if(!g.length||u.isCancellationRequested)return;let v=0,S=g.map(({uri:D,originalText:T})=>{if(D.scheme===Q.file)return D.fsPath;else return v++,T}).join(" "),y;if(v>0)y=g.length>1?e(981,"Insert Uris"):e(982,"Insert Uri");else y=g.length>1?e(983,"Insert Paths"):e(984,"Insert Path");return{handledMimeType:cn.uriList,insertText:S,title:y,kind:this.kind}}}var Ug=class f extends qg{constructor(u){super(It.Empty.append("uri","path","relative"));this._workspaceContextService=u,this.dropMimeTypes=[cn.uriList],this.pasteMimeTypes=[cn.uriList]}async getEdit(u,g){let v=await Iy(u);if(!v.length||g.isCancellationRequested)return;let S=Zi(v.map(({uri:y})=>{let D=this._workspaceContextService.getWorkspaceFolder(y);return D?TI(D.uri,y):void 0}));if(!S.length)return;return{handledMimeType:cn.uriList,insertText:S.join(" "),title:v.length>1?e(985,"Insert Relative Paths"):e(986,"Insert Relative Path"),kind:this.kind}}};Ug=O_([Lh(0,Es)],Ug);class _y{constructor(){this.kind=new It("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:cn.text}]}async provideDocumentPasteEdits(f,u,g,v,S){if(v.triggerKind!==Np.PasteAs&&!v.only?.contains(this.kind))return;let D=await g.get("text/html")?.asString();if(!D||S.isCancellationRequested)return;return{dispose(){},edits:[{insertText:D,yieldTo:this._yieldTo,title:e(987,"Insert HTML"),kind:this.kind}]}}}async function Iy(f){let u=f.get(cn.uriList);if(!u)return[];let g=await u.asString(),v=[];for(let S of Xp.parse(g))try{v.push({uri:W.parse(S),originalText:S})}catch{}return v}var Qa={scheme:"*",hasAccessToAllModels:!0},Tx=class f extends n{constructor(u,g){super();this._register(u.documentDropEditProvider.register(Qa,new Pd)),this._register(u.documentDropEditProvider.register(Qa,new P_)),this._register(u.documentDropEditProvider.register(Qa,new Ug(g)))}};Tx=O_([Lh(0,j),Lh(1,Es)],Tx);var Lx=class f extends n{constructor(u,g){super();this._register(u.documentPasteEditProvider.register(Qa,new Pd)),this._register(u.documentPasteEditProvider.register(Qa,new P_)),this._register(u.documentPasteEditProvider.register(Qa,new Ug(g))),this._register(u.documentPasteEditProvider.register(Qa,new _y))}};Lx=O_([Lh(0,j),Lh(1,Es)],Lx);class Gn{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(f){return f>=48&&f<=57}static isVariableCharacter(f){return f===95||f>=97&&f<=122||f>=65&&f<=90}text(f){this.value=f,this.pos=0}tokenText(f){return this.value.substr(f.pos,f.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let f=this.pos,u=0,g=this.value.charCodeAt(f),v;if(v=Gn._table[g],typeof v==="number")return this.pos+=1,{type:v,pos:f,len:1};if(Gn.isDigitCharacter(g)){v=8;do u+=1,g=this.value.charCodeAt(f+u);while(Gn.isDigitCharacter(g));return this.pos+=u,{type:v,pos:f,len:u}}if(Gn.isVariableCharacter(g)){v=9;do g=this.value.charCodeAt(f+ ++u);while(Gn.isVariableCharacter(g)||Gn.isDigitCharacter(g));return this.pos+=u,{type:v,pos:f,len:u}}v=10;do u+=1,g=this.value.charCodeAt(f+u);while(!isNaN(g)&&typeof Gn._table[g]>"u"&&!Gn.isDigitCharacter(g)&&!Gn.isVariableCharacter(g));return this.pos+=u,{type:v,pos:f,len:u}}}class ed{constructor(){this._children=[]}appendChild(f){if(f instanceof Ki&&this._children[this._children.length-1]instanceof Ki)this._children[this._children.length-1].value+=f.value;else f.parent=this,this._children.push(f);return this}replace(f,u){let{parent:g}=f,v=g.children.indexOf(f),S=g.children.slice(0);S.splice(v,1,...u),g._children=S,function y(D,T){for(let R of D)R.parent=T,y(R.children,R)}(u,g)}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 f=this;while(!0){if(!f)return;if(f instanceof tc)return f;f=f.parent}}toString(){return this.children.reduce((f,u)=>f+u.toString(),"")}len(){return 0}}class Ki extends ed{constructor(f){super();this.value=f}toString(){return this.value}len(){return this.value.length}clone(){return new Ki(this.value)}}class A_ extends ed{}class No extends A_{static compareByIndex(f,u){if(f.index===u.index)return 0;else if(f.isFinalTabstop)return 1;else if(u.isFinalTabstop)return-1;else if(f.index<u.index)return-1;else if(f.index>u.index)return 1;else return 0}constructor(f){super();this.index=f}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof td?this._children[0]:void 0}clone(){let f=new No(this.index);if(this.transform)f.transform=this.transform.clone();return f._children=this.children.map((u)=>u.clone()),f}}class td extends ed{constructor(){super(...arguments);this.options=[]}appendChild(f){if(f instanceof Ki)f.parent=this,this.options.push(f);return this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let f=new td;return this.options.forEach(f.appendChild,f),f}}class F_ extends ed{constructor(){super(...arguments);this.regexp=new RegExp("")}resolve(f){let u=this,g=!1,v=f.replace(this.regexp,function(){return g=!0,u._replace(Array.prototype.slice.call(arguments,0,-2))});if(!g&&this._children.some((S)=>S instanceof hr&&Boolean(S.elseValue)))v=this._replace([]);return v}_replace(f){let u="";for(let g of this._children)if(g instanceof hr){let v=f[g.index]||"";v=g.resolve(v),u+=v}else u+=g.toString();return u}toString(){return""}clone(){let f=new F_;return f.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),f._children=this.children.map((u)=>u.clone()),f}}class hr extends ed{constructor(f,u,g,v){super();this.index=f,this.shorthandName=u,this.ifValue=g,this.elseValue=v}resolve(f){if(this.shorthandName==="upcase")return!f?"":f.toLocaleUpperCase();else if(this.shorthandName==="downcase")return!f?"":f.toLocaleLowerCase();else if(this.shorthandName==="capitalize")return!f?"":f[0].toLocaleUpperCase()+f.substr(1);else if(this.shorthandName==="pascalcase")return!f?"":this._toPascalCase(f);else if(this.shorthandName==="camelcase")return!f?"":this._toCamelCase(f);else if(this.shorthandName==="kebabcase")return!f?"":this._toKebabCase(f);else if(this.shorthandName==="snakecase")return!f?"":this._toSnakeCase(f);else if(Boolean(f)&&typeof this.ifValue==="string")return this.ifValue;else if(!Boolean(f)&&typeof this.elseValue==="string")return this.elseValue;else return f||""}_toKebabCase(f){if(!f.match(/[\p{L}0-9]+/gu))return f;if(!f.match(/[\p{L}0-9]/u))return f.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");let g=f.trim().replace(/^_+|_+$/g,""),v=g.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(!v)return g.split(/[\s_-]+/).filter((S)=>S.length>0).map((S)=>S.toLowerCase()).join("-");return v.map((S)=>S.toLowerCase()).join("-")}_toPascalCase(f){let u=f.match(/[\p{L}0-9]+/gu);if(!u)return f;return u.map((g)=>g.charAt(0).toUpperCase()+g.substr(1)).join("")}_toCamelCase(f){let u=f.match(/[\p{L}0-9]+/gu);if(!u)return f;return u.map((g,v)=>{if(v===0)return g.charAt(0).toLowerCase()+g.substr(1);return g.charAt(0).toUpperCase()+g.substr(1)}).join("")}_toSnakeCase(f){return f.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new hr(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Ys extends A_{constructor(f){super();this.name=f}resolve(f){let u=f.resolve(this);if(this.transform)u=this.transform.resolve(u||"");if(u!==void 0)return this._children=[new Ki(u)],!0;return!1}clone(){let f=new Ys(this.name);if(this.transform)f.transform=this.transform.clone();return f._children=this.children.map((u)=>u.clone()),f}}function Ly(f,u){let g=[...f];while(g.length>0){let v=g.shift();if(!u(v))break;g.unshift(...v.children)}}class tc extends ed{get placeholderInfo(){if(!this._placeholders){let f=[],u;this.walk(function(g){if(g instanceof No)f.push(g),u=!u||u.index<g.index?g:u;return!0}),this._placeholders={all:f,last:u}}return this._placeholders}get placeholders(){let{all:f}=this.placeholderInfo;return f}offset(f){let u=0,g=!1;if(this.walk((v)=>{if(v===f)return g=!0,!1;return u+=v.len(),!0}),!g)return-1;return u}fullLen(f){let u=0;return Ly([f],(g)=>(u+=g.len(),!0)),u}enclosingPlaceholders(f){let u=[],{parent:g}=f;while(g){if(g instanceof No)u.push(g);g=g.parent}return u}resolveVariables(f){return this.walk((u)=>{if(u instanceof Ys){if(u.resolve(f))this._placeholders=void 0}return!0}),this}appendChild(f){return this._placeholders=void 0,super.appendChild(f)}replace(f,u){return this._placeholders=void 0,super.replace(f,u)}clone(){let f=new tc;return f._children=this.children.map((u)=>u.clone()),f}walk(f){Ly(this.children,f)}}class Mo{constructor(){this._scanner=new Gn,this._token={type:14,pos:0,len:0}}static escape(f){return f.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(f){return/\${?CLIPBOARD/.test(f)}parse(f,u,g){let v=new tc;return this.parseFragment(f,v),this.ensureFinalTabstop(v,g??!1,u??!1),v}parseFragment(f,u){let g=u.children.length;this._scanner.text(f),this._token=this._scanner.next();while(this._parse(u));let v=new Map,S=[];u.walk((T)=>{if(T instanceof No)if(T.isFinalTabstop)v.set(0,void 0);else if(!v.has(T.index)&&T.children.length>0)v.set(T.index,T.children);else S.push(T);return!0});let y=(T,R)=>{let K=v.get(T.index);if(!K)return;let q=new No(T.index);q.transform=T.transform;for(let ee of K){let te=ee.clone();if(q.appendChild(te),te instanceof No&&v.has(te.index)&&!R.has(te.index))R.add(te.index),y(te,R),R.delete(te.index)}u.replace(T,[q])},D=new Set;for(let T of S)y(T,D);return u.children.slice(g)}ensureFinalTabstop(f,u,g){if(u||g&&f.placeholders.length>0){if(!f.placeholders.find((S)=>S.index===0))f.appendChild(new No(0))}}_accept(f,u){if(f===void 0||this._token.type===f){let g=!u?!0:this._scanner.tokenText(this._token);return this._token=this._scanner.next(),g}return!1}_backTo(f){return this._scanner.pos=f.pos+f.len,this._token=f,!1}_until(f){let u=this._token;while(this._token.type!==f){if(this._token.type===14)return!1;else if(this._token.type===5){let v=this._scanner.next();if(v.type!==0&&v.type!==4&&v.type!==5)return!1}this._token=this._scanner.next()}let g=this._scanner.value.substring(u.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),g}_parse(f){return this._parseEscaped(f)||this._parseTabstopOrVariableName(f)||this._parseComplexPlaceholder(f)||this._parseComplexVariable(f)||this._parseAnything(f)}_parseEscaped(f){let u;if(u=this._accept(5,!0))return u=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||u,f.appendChild(new Ki(u)),!0;return!1}_parseTabstopOrVariableName(f){let u,g=this._token;if(!(this._accept(0)&&(u=this._accept(9,!0)||this._accept(8,!0))))return this._backTo(g);return f.appendChild(/^\d+$/.test(u)?new No(Number(u)):new Ys(u)),!0}_parseComplexPlaceholder(f){let u,g=this._token;if(!(this._accept(0)&&this._accept(3)&&(u=this._accept(8,!0))))return this._backTo(g);let S=new No(Number(u));if(this._accept(1))while(!0){if(this._accept(4))return f.appendChild(S),!0;if(this._parse(S))continue;return f.appendChild(new Ki("${"+u+":")),S.children.forEach(f.appendChild,f),!0}else if(S.index>0&&this._accept(7)){let y=new td;while(!0){if(this._parseChoiceElement(y)){if(this._accept(2))continue;if(this._accept(7)){if(S.appendChild(y),this._accept(4))return f.appendChild(S),!0}}return this._backTo(g),!1}}else if(this._accept(6)){if(this._parseTransform(S))return f.appendChild(S),!0;return this._backTo(g),!1}else if(this._accept(4))return f.appendChild(S),!0;else return this._backTo(g)}_parseChoiceElement(f){let u=this._token,g=[];while(!0){if(this._token.type===2||this._token.type===7)break;let v;if(v=this._accept(5,!0))v=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||v;else v=this._accept(void 0,!0);if(!v)return this._backTo(u),!1;g.push(v)}if(g.length===0)return this._backTo(u),!1;return f.appendChild(new Ki(g.join(""))),!0}_parseComplexVariable(f){let u,g=this._token;if(!(this._accept(0)&&this._accept(3)&&(u=this._accept(9,!0))))return this._backTo(g);let S=new Ys(u);if(this._accept(1))while(!0){if(this._accept(4))return f.appendChild(S),!0;if(this._parse(S))continue;return f.appendChild(new Ki("${"+u+":")),S.children.forEach(f.appendChild,f),!0}else if(this._accept(6)){if(this._parseTransform(S))return f.appendChild(S),!0;return this._backTo(g),!1}else if(this._accept(4))return f.appendChild(S),!0;else return this._backTo(g)}_parseTransform(f){let u=new F_,g="",v="";while(!0){if(this._accept(6))break;let S;if(S=this._accept(5,!0)){S=this._accept(6,!0)||S,g+=S;continue}if(this._token.type!==14){g+=this._accept(void 0,!0);continue}return!1}while(!0){if(this._accept(6))break;let S;if(S=this._accept(5,!0)){S=this._accept(5,!0)||this._accept(6,!0)||S,u.appendChild(new Ki(S));continue}if(this._parseFormatString(u)||this._parseAnything(u))continue;return!1}while(!0){if(this._accept(4))break;if(this._token.type!==14){v+=this._accept(void 0,!0);continue}return!1}try{u.regexp=new RegExp(g,v)}catch(S){return!1}return f.transform=u,!0}_parseFormatString(f){let u=this._token;if(!this._accept(0))return!1;let g=!1;if(this._accept(3))g=!0;let v=this._accept(8,!0);if(!v)return this._backTo(u),!1;else if(!g)return f.appendChild(new hr(Number(v))),!0;else if(this._accept(4))return f.appendChild(new hr(Number(v))),!0;else if(!this._accept(1))return this._backTo(u),!1;if(this._accept(6)){let S=this._accept(9,!0);if(!S||!this._accept(4))return this._backTo(u),!1;else return f.appendChild(new hr(Number(v),S)),!0}else if(this._accept(11)){let S=this._until(4);if(S)return f.appendChild(new hr(Number(v),void 0,S,void 0)),!0}else if(this._accept(12)){let S=this._until(4);if(S)return f.appendChild(new hr(Number(v),void 0,void 0,S)),!0}else if(this._accept(13)){let S=this._until(1);if(S){let y=this._until(4);if(y)return f.appendChild(new hr(Number(v),void 0,S,y)),!0}}else{let S=this._until(4);if(S)return f.appendChild(new hr(Number(v),void 0,void 0,S)),!0}return this._backTo(u),!1}_parseAnything(f){if(this._token.type!==14)return f.appendChild(new Ki(this._scanner.tokenText(this._token))),this._accept(void 0),!0;return!1}}function jg(f,u,g){if(typeof g.insertText==="string"?g.insertText==="":g.insertText.snippet==="")return{edits:g.additionalEdit?.edits??[]};return{edits:[...u.map((v)=>new vl(f,{range:v,text:typeof g.insertText==="string"?Mo.escape(g.insertText)+"$0":g.insertText.snippet,insertAsSnippet:!0})),...g.additionalEdit?.edits??[]]}}function Ix(f){function u(D,T){if("mimeType"in D)return D.mimeType===T.handledMimeType;return!!T.kind&&D.kind.contains(T.kind)}let g=new Map;for(let D of f)for(let T of D.yieldTo??[])for(let R of f){if(R===D)continue;if(u(T,R)){let K=g.get(D);if(!K)K=[],g.set(D,K);K.push(R)}}if(!g.size)return Array.from(f);let v=new Set,S=[];function y(D){if(!D.length)return[];let T=D[0];if(S.includes(T))return console.warn("Yield to cycle detected",T),D;if(v.has(T))return y(D.slice(1));let R=[],K=g.get(T);if(K)S.push(T),R=y(K),S.pop();return v.add(T),[...R,T,...y(D.slice(1))]}return y(Array.from(f))}function H_(f,u){if(u&&(f.stack||f.stacktrace))return e(33,"{0}: {1}",Ey(f),ky(f.stack)||ky(f.stacktrace));return Ey(f)}function ky(f){if(Array.isArray(f))return f.join(`
|
|
2
|
-
`);return f}function Ey(f){if(f.code==="ERR_UNC_HOST_NOT_ALLOWED")return`${f.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;if(typeof f.code==="string"&&typeof f.errno==="number"&&typeof f.syscall==="string")return e(34,"A system error occurred ({0})",f.message);return f.message||e(35,"An unknown error occurred. Please consult the log for more details.")}function Om(f=null,u=!1){if(!f)return e(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(f)){let g=Zi(f),v=Om(g[0],u);if(g.length>1)return e(37,"{0} ({1} errors in total)",v,g.length);return v}if(pn(f))return f;if(f.detail){let g=f.detail;if(g.error)return H_(g.error,u);if(g.exception)return H_(g.exception,u)}if(f.stack)return H_(f,u);if(f.message)return f.message;return e(38,"An unknown error occurred. Please consult the log for more details.")}class W_ extends n{constructor(f){super();this._onChange=this._register(new i),this.onChange=this._onChange.event,this._checked=!!f.checked,this._title=f.title??f.ariaLabel,this.domNode=m("button.monaco-switch"),this.domNode.type="button",this.domNode.setAttribute("role","switch"),w(this.domNode,m(".monaco-switch-thumb")),this._register(ri().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}))),this.setAriaLabel(f.ariaLabel,f.title),this.disabled=!!f.disabled,this._applyState(),this._register(l(this.domNode,x.CLICK,(u)=>{if(ve.stop(u,!0),this.domNode.disabled)return;this._checked=!this._checked,this._applyState(),this._onChange.fire(this._checked)}))}get checked(){return this._checked}set checked(f){if(this._checked!==f)this._checked=f,this._applyState()}get disabled(){return this.domNode.disabled}set disabled(f){this.domNode.disabled=f}setAriaLabel(f,u=f){this.domNode.setAttribute("aria-label",f),this._title=u}_applyState(){this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked)}}var g2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Dy=function(f,u){return function(g,v){u(g,v,f)}},ic=class f extends n{get enabled(){return this._enabled}set enabled(u){if(u)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=u}constructor(u,g,v={},S,y){super();this._link=g,this._hoverService=S,this._enabled=!0,this.el=w(u,m("a.monaco-link",{tabIndex:g.tabIndex??0,href:g.href},g.label)),this.hoverDelegate=v.hoverDelegate??Wo("mouse"),this.setTooltip(g.title),this.el.setAttribute("role","button");let D=this._register(new lt(this.el,"click")),T=this._register(new lt(this.el,"keydown")),R=C.chain(T.event,(ee)=>ee.map((te)=>new ze(te)).filter((te)=>te.keyCode===3||te.keyCode===10)),K=this._register(new lt(this.el,wt.Tap)).event;this._register(Et.addTarget(this.el));let q=C.any(D.event,R,K);this._register(q((ee)=>{if(!this.enabled)return;if(ve.stop(ee,!0),v?.opener)v.opener(this._link.href);else y.open(this._link.href,{allowCommands:!0})})),this.enabled=!0}setTooltip(u){if(!this.hover&&u)this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,u));else if(this.hover)this.hover.update(u)}};ic=g2([Dy(3,yn),Dy(4,To)],ic);var q_=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},ta=function(f,u){return function(g,v){u(g,v,f)}},B_,Gg="acceptSelectedCodeAction",Zg="previewSelectedCodeAction",p2=new Set([Gg,Zg,"toggleSectionCodeAction"]),m2="actionList.remove";class Ty{get templateId(){return"header"}renderTemplate(f){f.classList.add("group-header");let u=document.createElement("span");return f.append(u),{container:f,text:u}}renderElement(f,u,g){g.text.textContent=f.group?.title??f.label??""}disposeTemplate(f){}}class Ry{get templateId(){return"separator"}renderTemplate(f){f.classList.add("separator");let u=document.createElement("span");return f.append(u),{container:f,text:u}}renderElement(f,u,g){g.container.classList.toggle("has-label",!!f.label),g.text.textContent=f.label??""}disposeTemplate(f){}}function Ny(f){return!!f.submenuActions?.length&&!f.hover?.content||!!f.hover?.expandable}function My(f){return Ny(f)&&f.hover?.showIndicator!==!1}var V_=class f{get templateId(){return"action"}constructor(u,g,v,S,y,D,T,R,K,q,ee,te){this._supportsPreview=u,this._onRemoveItem=g,this._onShowSubmenu=v,this._reservesSubmenuSpace=S,this._groupTitleByIndex=y,this._linkHandler=D,this._hideDefaultKeybindingTooltip=T,this._stopToolbarPointerPropagation=R,this._registerStandaloneToggle=K,this._registerToolbar=q,this._keybindingService=ee,this._openerService=te}renderTemplate(u){u.classList.add(this.templateId);let g=document.createElement("div");g.className="icon",u.append(g);let v=document.createElement("span");v.className="title",u.append(v);let S=document.createElement("span");S.className="action-item-badge",S.ariaHidden="true",u.append(S);let y=document.createElement("span");y.className="description",u.append(y);let D=document.createElement("span");D.className="group-title",u.append(D);let T=document.createElement("span");T.className="detail",u.append(T);let R=new Xs(u,di),K=document.createElement("div");K.className="action-list-item-toolbar",u.append(K);let q=document.createElement("div");q.className="action-list-submenu-indicator",u.append(q);let ee=document.createElement("div");ee.className="action-list-item-inline-toggle",u.append(ee);let te=new c;return{container:u,icon:g,text:v,detail:T,badge:S,description:y,groupTitle:D,keybinding:R,toolbar:K,submenuIndicator:q,inlineToggleContainer:ee,elementDisposables:te}}renderElement(u,g,v){if(v.elementDisposables.clear(),u.iconClasses?.length)v.icon.className=["icon",...u.iconClasses].join(" "),v.icon.style.color="";else if(u.group?.icon)v.icon.className=G.asClassName(u.group.icon),v.icon.style.color=u.group.icon.color?N(u.group.icon.color.id):"";else v.icon.className=G.asClassName(b.lightBulb),v.icon.style.color="var(--vscode-editorLightBulb-foreground)";if(!u.item&&!u.standaloneToggle||!u.label)return;if(CI(!u.hideIcon,v.icon),u.isSectionToggle){let q=u.group?.icon===b.chevronDown;v.container.setAttribute("aria-expanded",String(q))}else v.container.removeAttribute("aria-expanded");if(v.previousClassNames?.length)v.container.classList.remove(...v.previousClassNames);let S=u.className?.split(/\s+/).filter((q)=>q.length>0)??[];if(v.container.classList.toggle("action-list-custom",S.length>0),S.length)v.container.classList.add(...S);if(v.previousClassNames=S,v.text.textContent=rn(u.label),u.badge)v.badge.textContent=u.badge,v.badge.style.display="";else v.badge.textContent="",v.badge.style.display="none";if(u.keybinding)v.description.textContent=u.keybinding.getLabel(),v.description.style.display="inline",v.description.style.letterSpacing="0.5px";else if(u.description){if(Xt(v.description),typeof u.description==="string")v.description.textContent=rn(u.description);else{let q=Ta(u.description,{actionHandler:(ee)=>{let te=W.parse(ee);if(this._linkHandler)this._linkHandler(te,u);else this._openerService.open(te,{allowCommands:!0})}});v.elementDisposables.add(q),v.description.appendChild(q.element)}v.description.style.display="inline"}else v.description.textContent="",v.description.style.display="none";let y=this._groupTitleByIndex.get(g);if(y)v.groupTitle.textContent=y,v.groupTitle.style.display="";else v.groupTitle.textContent="",v.groupTitle.style.display="none";if(u.detail)v.detail.textContent=rn(u.detail),v.detail.style.display="";else v.detail.textContent="",v.detail.style.display="none";v.container.classList.toggle("has-detail",!!u.detail),Xt(v.inlineToggleContainer);let D=u.standaloneToggle??u.inlineToggle;if(D){let q=document.createElement("span");if(q.className="action-list-item-inline-toggle-label",q.textContent=rn(D.label),!u.standaloneToggle)v.inlineToggleContainer.append(q);v.inlineToggleContainer.style.display="",v.container.classList.toggle("has-inline-toggle",!!u.inlineToggle),v.container.classList.toggle("has-standalone-toggle",!!u.standaloneToggle);let ee=v.elementDisposables.add(new W_({ariaLabel:D.title??D.label,checked:D.checked,disabled:D.disabled}));if(v.inlineToggleContainer.append(ee.domNode),u.standaloneToggle)v.elementDisposables.add(this._registerStandaloneToggle(u,ee));v.elementDisposables.add(ee.onChange(()=>D.onChange(ee.checked))),v.elementDisposables.add(l(v.inlineToggleContainer,x.CLICK,(te)=>te.stopPropagation()))}else v.inlineToggleContainer.style.display="none",v.container.classList.remove("has-inline-toggle"),v.container.classList.remove("has-standalone-toggle");let T=this._keybindingService.lookupKeybinding(Gg)?.getLabel(),R=this._keybindingService.lookupKeybinding(Zg)?.getLabel();if(v.container.classList.toggle("option-disabled",!!u.disabled),u.hover!==void 0)v.container.title="";else if(u.tooltip)v.container.title=u.tooltip;else if(u.disabled)v.container.title=u.label;else if(u.standaloneToggle)v.container.title="";else if(this._hideDefaultKeybindingTooltip)v.container.title="";else if(T&&R)if(this._supportsPreview&&u.canPreview)v.container.title=e(1731,"{0} to Apply, {1} to Preview",T,R);else v.container.title=e(1732,"{0} to Apply",T);else v.container.title="";Xt(v.toolbar);let K=[...u.toolbarActions??[]];if(u.onRemove)K.push(ol({id:m2,label:e(1733,"Remove"),class:G.asClassName(b.close),run:async()=>{await u.onRemove(),this._onRemoveItem?.(u)}}));if(v.container.classList.toggle("has-toolbar",K.length>0),K.length>0){let q=new Ri(v.toolbar);if(v.elementDisposables.add(q),this._stopToolbarPointerPropagation)v.elementDisposables.add(Dc(v.toolbar,(ee)=>{ee.preventDefault(),ee.stopPropagation()})),v.elementDisposables.add(l(v.toolbar,x.CLICK,(ee)=>ee.stopPropagation())),v.elementDisposables.add(l(v.toolbar,wt.Tap,(ee)=>ee.stopPropagation()));else v.elementDisposables.add(Dc(v.toolbar,(ee)=>ee.preventDefault()));q.push(K,{icon:!0,label:!1}),v.elementDisposables.add(this._registerToolbar(u,q))}if(My(u))v.submenuIndicator.className="action-list-submenu-indicator has-submenu "+G.asClassName(b.chevronRight),v.submenuIndicator.style.display="",v.submenuIndicator.style.visibility="",v.elementDisposables.add(l(v.submenuIndicator,x.CLICK,(q)=>{q.stopPropagation(),this._onShowSubmenu?.(u)}));else if(this._reservesSubmenuSpace())v.submenuIndicator.className="action-list-submenu-indicator",v.submenuIndicator.style.display="",v.submenuIndicator.style.visibility="hidden";else v.submenuIndicator.className="action-list-submenu-indicator",v.submenuIndicator.style.display="none";if(Ny(u))v.container.setAttribute("aria-haspopup",u.hover?.expandable?"dialog":"menu"),v.container.setAttribute("aria-expanded","false");else if(v.container.removeAttribute("aria-haspopup"),!u.isSectionToggle)v.container.removeAttribute("aria-expanded")}disposeTemplate(u){u.keybinding.dispose(),u.elementDisposables.dispose()}};V_=q_([ta(10,ce),ta(11,To)],V_);class z_ extends UIEvent{constructor(){super("acceptSelectedAction")}}class K_ extends UIEvent{constructor(){super("previewSelectedAction")}}function f2(f){if(f.kind==="action")return f.label;return}var U_=B_=class f extends n{constructor(u,g,v,S,y,D,T,R,K){super();if(this._supportsPreview=g,this._delegate=S,this._options=D,this._keybindingService=T,this._openerService=R,this._instantiationService=K,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new Oe),this._submenuDisposables=this._register(new c),this._submenuHoverActionElements=[],this._itemMoveAnimation=this._register(new ie),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 ie),this._groupTitleByIndex=new Map,this._standaloneToggles=new Map,this._itemToolbars=new Map,this._onDidRequestLayout=this._register(new i),this.onDidRequestLayout=this._onDidRequestLayout.event,this._visibleMenuItems=v,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 ne=this._options.className.split(/\s+/).filter((re)=>re.length>0);if(ne.length>0)this.domNode.classList.add(...ne)}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(l(this._submenuContainer,"keydown",(ne)=>{if((ne.key==="Enter"||ne.key===" ")&&this._currentSubmenuElement?.hover?.tabThroughPanel){let ae=xe(ne.target)?ne.target:void 0;if(ae&&this._currentSubmenuElement.hover.getTabbableElements?.().includes(ae)){ne.stopPropagation();return}}if(ne.key!=="ArrowLeft"&&ne.key!=="Escape")return;ve.stop(ne,!0);let re=ne.key==="Escape"&&this._currentSubmenuWidget!==void 0;if(this._hideSubmenu(),re){this.hide();return}this._setKeyboardNavigation(!0),this._list.domFocus()})),this._register(l(this._submenuContainer,"mouseenter",()=>{if(this._cancelSubmenuHide(),this._usesSubmenuPointerIntent())this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._register(l(this._submenuContainer,"mouseleave",()=>{this._scheduleSubmenuHide()})),this._register(l(this.domNode,x.MOUSE_LEAVE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._usesSubmenuPointerIntent())this._register(l(this.domNode,x.MOUSE_MOVE,(ne)=>{if(xe(ne.target)&&this._expandedTrigger?.contains(ne.target))this._updateSubmenuPointer(ne)}));if(this._register(E(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(let ne of this._options.collapsedByDefault)this._collapsedSections.add(ne);let q={getHeight:(ne)=>this._getItemHeight(ne),getTemplateId:(ne)=>ne.kind},ee=()=>{let ne=this._options?.reserveSubmenuSpace??!0;return ne==="always"||ne&&this._allMenuItems.some(My)};this._list=this._register(new no(u,this.domNode,q,[new V_(this._supportsPreview,(ne)=>this._removeItem(ne),(ne)=>this._showSubmenuForItem(ne),ee,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._options?.stopToolbarPointerPropagation??!1,(ne,re)=>(this._standaloneToggles.set(ne,re),E(()=>{if(this._standaloneToggles.get(ne)===re)this._standaloneToggles.delete(ne)})),(ne,re)=>(this._itemToolbars.set(ne,re),this._updateToolbarFocusability(),E(()=>{if(this._itemToolbars.get(ne)===re)this._itemToolbars.delete(ne)})),this._keybindingService,this._openerService),new Ty,new Ry],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter&&!this._options?.onType,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:f2},accessibilityProvider:{getAriaLabel:(ne)=>{if(ne.kind==="action"){let re=ne.label?rn(ne?.label):"";if(ne.badge)re=re+", "+rn(ne.badge);if(ne.detail)re=re+", "+rn(ne.detail);if(ne.ariaDescription)re=re+", "+rn(ne.ariaDescription);else if(ne.description){let ge=typeof ne.description==="string"?ne.description:ne.description.value;re=re+", "+rn(ge)}if(ne.hover?.content&&!ne.ariaDescription&&!ne.description){let ge=ne.hover.content,ke=typeof ge==="string"?ge:lr(ge)?ge.value:xe(ge)?ge.textContent??void 0:void 0;if(ke&&(!ne.detail||rn(ne.detail)!==rn(ke)))re=re+", "+rn(ke)}if(ne.group?.title)re=re+", "+ne.group.title;let ae=ne.standaloneToggle??ne.inlineToggle;if(ae)re=ne.standaloneToggle?ae.checked?e(1734,"{0}, on",ae.label):e(1735,"{0}, off",ae.label):re+", "+(ae.checked?e(1736,"{0}, on",ae.label):e(1737,"{0}, off",ae.label));if(ne.disabled)re=e(1738,"{0}, Disabled Reason: {1}",re,ne.disabled);if(ne.submenuActions?.length)re=e(1739,"{0}, use right arrow to access options",re);return re}return null},getWidgetAriaLabel:()=>e(1740,"Action Widget"),getSetSize:()=>this._visibleMenuItems.filter((ne)=>ne.kind==="action").length,getPosInSet:(ne,re)=>Math.max(this._visibleMenuItems.slice(0,re+1).filter((ae)=>ae.kind==="action").length,1),getRole:(ne)=>{switch(ne.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...y}})),this._list.style(Rh),this._register(this._list.onKeyDown(()=>this._setKeyboardNavigation(!0))),this._register(l(this._list.getHTMLElement(),x.MOUSE_MOVE,(ne)=>{if(ne.movementX!==0||ne.movementY!==0)this._setKeyboardNavigation(!1)})),this._register(this._list.onMouseClick((ne)=>this.onListClick(ne))),this._register(this._list.onMouseOver((ne)=>{if(!this._ignoreInitialHover)this.onListHover(ne)}));let te=this._register(new ie);if(te.value=this._list.onMouseMove((ne)=>{if(ne.browserEvent.movementX!==0||ne.browserEvent.movementY!==0)te.clear(),this._ignoreInitialHover=!1,this.onListHover(ne)}),this._register(this._list.onMouseDown(()=>{te.clear(),this._ignoreInitialHover=!1,this._setKeyboardNavigation(!1)})),this._register(this._list.onDidChangeFocus(()=>{this._updateToolbarFocusability(),this.onFocus()})),this._register(this._list.onDidChangeSelection((ne)=>this.onListSelection(ne))),this._register(this._list.onDidScroll(()=>{if(!this._isMeasuringWidth)this._layoutSubmenu?.()})),this._allMenuItems=[...v],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement("div"),this._filterContainer.className="action-list-filter";let ne=w(this._filterContainer,m(".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")),ne.appendChild(this._filterInput),this._register(l(this._filterInput,x.KEY_DOWN,(ge)=>{if(this._setKeyboardNavigation(!0),ge.isComposing||!this._filterInput?.closest(".action-list-submenu-panel"))return;let ke=this._keybindingService.softDispatch(new ze(ge),this._filterInput);if(ke.kind===2&&ke.commandId!==null&&p2.has(ke.commandId)||ge.key.length===1&&!ge.ctrlKey&&!ge.metaKey&&!ge.altKey)ge.stopPropagation()})),this._register(l(this._filterInput,x.MOUSE_DOWN,()=>this._setKeyboardNavigation(!1))),this._options.tabThroughItemActions)this._register(l(this._filterInput,"keydown",(ge)=>this._handleTabThroughPanelKeyDown(ge),!0));if(this._options.filterAsCombobox){let ge=this._list.getHTMLElement();ge.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",ge.id),this._register(this._list.onDidChangeFocus(()=>this._updateFilterActiveDescendant())),this._register(l(this._filterInput,"focus",()=>this._updateFilterActiveDescendant())),this._register(l(this._filterInput,"blur",()=>this._updateFilterActiveDescendant())),this._register(ft(this._filterInput,"keydown",(ke)=>{if(this._imeSessionInProgress||ke.browserEvent.isComposing||ke.keyCode===114||ke.keyCode===15||ke.keyCode===17||ke.keyCode===14||ke.keyCode===13){ke.stopPropagation();return}let He=ke.keyCode===16||ke.keyCode===18;if(!He&&ke.keyCode!==3)return;if(ke.ctrlKey||ke.metaKey||ke.altKey||ke.shiftKey){if(He)ke.stopPropagation();return}if(ve.stop(ke,!0),ke.keyCode===16)this.focusPrevious();else if(ke.keyCode===18)this.focusNext();else this.acceptSelected()}))}let re=this._options?.filterActions??[];if(re.length>0){let ge=w(ne,m(".action-list-filter-actions"));this._register(new Ri(ge)).push(re,{icon:!0,label:!1})}let ae=()=>{let ge=this._filterInput.value;if(this._imeSessionInProgress||ge===this._filterText&&!this._filterCts.value?.token.isCancellationRequested)return;this._filterText=ge,this._applyOrUpdateFilter()};this._register(l(this._filterInput,"compositionstart",()=>{this._imeSessionInProgress=!0,this._filterCts.value?.cancel()})),this._register(l(this._filterInput,"compositionend",()=>{this._imeSessionInProgress=!1,ae()})),this._register(l(this._filterInput,"input",ae))}if(this._options?.secondaryHeading){let re=w(ne,m(".action-list-filter-label"));re.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 re=w(this._headerContainer,m("span.action-list-header-icon"));re.classList.add(...G.asClassNameArray(this._options.headerIcon)),re.setAttribute("aria-hidden","true")}let ne=w(this._headerContainer,m("span.action-list-header-text"));if(ne.textContent=this._options.headerText,this._register(l(this._headerContainer,x.MOUSE_ENTER,()=>{if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer();else this._hideSubmenu()})),this._options.headerLink){let{label:re,uri:ae}=this._options.headerLink;ne.textContent+=" ",this._register(this._instantiationService.createInstance(ic,ne,{label:re,href:ae.toString(!0)},{}))}if(this._options.headerDismiss){let re=this._options.headerDismiss,ae=w(this._headerContainer,m("span.action-list-header-dismiss"));ae.appendChild(m(G.asCSSSelector(b.close))),ae.tabIndex=0,ae.setAttribute("role","button"),ae.setAttribute("aria-label",e(1743,"Dismiss"));let ge=()=>{re(),this.focus(),this._headerContainer?.remove(),this._headerContainer=void 0,this._onDidRequestLayout.fire()};this._register(Hv(ae,()=>ge())),this._register(l(ae,x.KEY_DOWN,(ke)=>{if(ke.key==="Enter"||ke.key===" ")ke.preventDefault(),ge()}))}}if(this._applyFilter(),this._list.length)this._focusCheckedOrFirst();if(this._register(l(this.domNode,"keydown",(ne)=>{if(ne.key==="ArrowRight"&&!ne.isComposing){let re=this._list.getFocus();if(re.length>0){let ae=this._list.element(re[0]);if(ae?.submenuActions?.length||ae?.hover?.expandable){ve.stop(ne,!0);let ge=this._getRowElement(re[0]);if(ge)if(this._showSubmenuForElement(ae,ge),ae.hover?.tabThroughPanel)this._focusFirstTabThroughPanelControl(ae,ge);else if(this._currentSubmenuWidget)this._currentSubmenuWidget.focus();else this._submenuContainer.focus()}}}})),this._register(l(this.domNode,"keydown",(ne)=>this._handleTabThroughPanelKeyDown(ne),!0)),this._filterInput||this._options?.onType)this._register(l(this.domNode,"keydown",(ne)=>{let re=ne.target;if((this._options?.onType||this._options?.filterAsCombobox)&&xe(re)&&(yr(re)||re.closest('button, a, [contenteditable="true"], .action-list-submenu-panel')))return;if((!this._filterInput||!ts(this._filterInput))&&!ne.isComposing&&ne.key.length===1&&ne.key!==" "&&!ne.ctrlKey&&!ne.metaKey&&!ne.altKey)if(ne.preventDefault(),ne.stopPropagation(),this._filterInput)this._filterInput.focus(),this._filterInput.value=ne.key,this._filterText=ne.key,this._applyOrUpdateFilter();else this._options?.onType?.(ne.key)}))}_toggleSection(u){let g=this._collapsedSections.has(u);if(g)this._collapsedSections.delete(u);else{this._collapsedSections.add(u);let v=this.getFocusedElement();if(v?.section===u&&!v.isSectionToggle){let S=this._visibleMenuItems.findIndex((y)=>y.section===u&&y.isSectionToggle);if(S>=0)this._list.setFocus([S])}}if(this._options?.onDidToggleSection?.(u,this._collapsedSections.has(u)),this._applyFilter(),g)this._revealFirstItemOfSection(u)}_revealFirstItemOfSection(u){for(let g=0;g<this._list.length;g++){let v=this._list.element(g);if(v.section===u&&!v.isSectionToggle){this._list.reveal(g);return}}}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}let u=this._filterText;this._filterCts.value?.cancel();let g=new Oe;this._filterCts.value=g,this._delegate.onFilter(u,g.token).then((v)=>{if(g.token.isCancellationRequested)return;this._allMenuItems=[...v],this._applyFilter(!0)}).catch(()=>{}).finally(()=>{if(this._filterCts.value===g&&!g.token.isCancellationRequested)this._filterCts.clear()})}_applyFilter(u=!1,g=!0,v){this._itemMoveAnimation.clear();let S=u?"":this._filterText.toLowerCase(),y=!u&&S.length>0,D=[],T=this._list.getFocus(),R;if(T.length>0)R=this._list.element(T[0]);if(y){let ae,ge=[],ke=!1,Ae=()=>{if(ae&&ke)D.push(ae);D.push(...ge),ae=void 0,ge=[],ke=!1},He=(Ke)=>{let Ue=(Ke.label??"").toLowerCase(),Te=typeof Ke.description==="string"?Ke.description:Ke.description?.value??"";return Ue.includes(S)||Te.toLowerCase().includes(S)};for(let Ke of this._allMenuItems){if(Ke.kind==="header")continue;if(Ke.kind==="separator"){Ae(),ae=Ke.label?Ke:void 0;continue}if(Ke.showAlways){ge.push(Ke);continue}if(Ke.isSectionToggle)continue;if(Ke.filterItems){let Ue=He(Ke)?Ke.filterItems:Ke.filterItems.filter(He);if(Ue.length>0)ke=!0,ge.push(...Ue);continue}if(He(Ke))ke=!0,ge.push(Ke)}Ae()}else for(let ae of this._allMenuItems){if(ae.kind==="header"){D.push(ae);continue}if(ae.kind==="separator"){if(ae.section&&this._collapsedSections.has(ae.section))continue;D.push(ae);continue}if(ae.isSectionToggle&&ae.section){let ge=this._collapsedSections.has(ae.section);D.push({...ae,group:{...ae.group,icon:ge?b.chevronRight:b.chevronDown}});continue}if(ae.section&&this._collapsedSections.has(ae.section))continue;D.push(ae)}let K=[],q=!1;for(let ae=0;ae<D.length;ae++)if(K[ae]=q,D[ae].kind==="action")q=!0;let ee=[],te=!1;for(let ae=D.length-1;ae>=0;ae--){if(D[ae].kind==="action"){te=!0;continue}if(D[ae].kind!=="separator")continue;ee[ae]=te,te=!1}for(let ae=D.length-1;ae>=0;ae--){let ge=D[ae];if(ge.kind!=="separator")continue;let ke=ee[ae],Ae=!ge.label&&!K[ae];if(!ke||Ae)D.splice(ae,1)}if(this._options?.showGroupTitleOnFirstItem)this._recomputeGroupTitles(D);let ne=this._filterInput&&ts(this._filterInput),re=Ac(this._list.getHTMLElement());if(this._visibleMenuItems=D,this._list.splice(0,this._list.length,D),g)this._onDidRequestLayout.fire();if(ne)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut){if(R||v){let ae=v??R?.item?.id;if(ae){for(let ge=0;ge<this._list.length;ge++)if(this._list.element(ge).item?.id===ae){this._list.setFocus([ge]),this._list.reveal(ge);break}if(re)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(u){return!u.disabled&&u.kind==="action"}_setKeyboardNavigation(u){if(this._keyboardNavigation===u)return;this._keyboardNavigation=u;let g=this._list.getHTMLElement();g.classList.toggle("keyboard-navigation",u===!0),g.classList.toggle("mouse-navigation",u===!1)}_updateFilterActiveDescendant(){if(!this._filterInput)return;let[u]=this._list.getFocus();if(ts(this._filterInput)&&u!==void 0)this._filterInput.setAttribute("aria-activedescendant",this._list.getElementID(u));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 u=this._list.getFocus();if(u.length>0)return this._list.element(u[0]);return}_updateToolbarFocusability(){if(!this._options?.tabThroughItemActions)return;let[u]=this._list.getFocus(),g=u!==void 0&&u<this._list.length?this._list.element(u):void 0;for(let[v,S]of this._itemToolbars)S.setFocusable(v===g)}_focusCheckedOrFirst(){let u=this._suppressHover;this._suppressHover=!0;try{let g=this._initialFocusItemId;if(this._initialFocusItemId=void 0,g)for(let y=0;y<this._list.length;y++){let D=this._list.element(y);if(this.focusCondition(D)&&D.item?.id===g){this._list.setFocus([y]),this._list.reveal(y);return}}let[v]=this._list.getFocus();if(v!==void 0){let y=this._list.element(v);if(y&&this.focusCondition(y)){this._list.reveal(v);return}}for(let y=0;y<this._list.length;y++){let D=this._list.element(y);if(this.focusCondition(D)&&D.item?.checked){this._list.setFocus([y]),this._list.reveal(y);return}}this._list.focusFirst(void 0,this.focusCondition);let S=this._list.getFocus();if(S.length>0)this._list.reveal(S[0])}finally{if(this._suppressHover=u,this._options?.filterAsCombobox)this._updateFilterActiveDescendant()}}hide(u){this._delegate.onHide(u),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((u)=>u.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(u){return this._itemHeightWith(u,this._options)}_itemHeightWith(u,g){switch(u.kind){case"header":return this._headerLineHeight;case"separator":return u.label?this._actionLineHeight:this._separatorLineHeight;default:if(u.inlineToggle)return g?.inlineToggleItemHeight??70;return u.detail?g?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){return this.computeHeightForItems(this._allMenuItems,void 0,this._options)}computeHeightForItems(u,g,v){let S=0;for(let y of u){if(g&&y.section&&!y.isSectionToggle&&g.has(y.section))continue;S+=this._itemHeightWith(y,v)}return S}computeListHeight(){let u=this._list.length,g=0;for(let v=0;v<u;v++){let S=this._list.element(v);g+=this._getItemHeight(S)}return g}layout(u,g){this._hasLaidOut=!0,this._list.layout(u,g),this.domNode.style.height=`${u}px`;let v=this.domNode.parentElement;if(v&&this._filterContainer?.parentElement===v)v.insertBefore(this._filterContainer,this.domNode);this._layoutSubmenu?.()}computeMaxWidth(u){let g=this._list.length,v=Math.max(u,this._options?.minWidth??0),S=this._options?.maxWidth??Number.POSITIVE_INFINITY,y=Math.max(S,v),D=(q)=>Math.min(Math.max(q,v),y),T=this._allMenuItems.length;if(T>=50)return D(380);if(T>g){let q=[];for(let ae=0;ae<g;ae++)q.push(this._list.element(ae));let ee=this._list.renderHeight,te=this._list.scrollTop,ne=this._list.getFocus(),re=this._isMeasuringWidth;this._isMeasuringWidth=!0;try{let ae=[...this._allMenuItems];this._list.splice(0,g,ae);let ge=0;for(let Ae of ae)ge+=this._getItemHeight(Ae);this._list.layout(ge);let ke=this._measureItemWidths(ae);return D(Math.max(...ke))}finally{try{this._list.splice(0,this._list.length,q),this._list.layout(ee),this._list.scrollTop=te;let ae=this._suppressHover;this._suppressHover=!0;try{this._list.setFocus(ne)}finally{this._suppressHover=ae}}finally{this._isMeasuringWidth=re}}}let R=[];for(let q=0;q<g;q++)R.push(this._list.element(q));let K=this._measureItemWidths(R);return D(Math.max(...K))}focusPrevious(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("previous"))return;if(this._filterInput&&ts(this._filterInput)){this._list.domFocus();let v=this._list.getFocus();if(v.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);let S=this._list.getFocus();if(S.length>0&&S[0]>=v[0])this._filterInput.focus();else if(S.length>0)this._list.reveal(S[0])}else{this._list.focusLast(void 0,this.focusCondition);let S=this._list.getFocus();if(S.length>0)this._list.reveal(S[0])}return}let u=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);let g=this._list.getFocus();if(g.length>0){if(this._filterInput&&u.length>0&&g[0]>u[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(g[0])}}focusNext(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("next"))return;if(this._filterInput&&ts(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);let S=this._list.getFocus();if(S.length>0)this._list.reveal(S[0])}else{this._list.focusFirst(void 0,this.focusCondition);let S=this._list.getFocus();if(S.length>0)this._list.reveal(S[0])}return}let u=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);let g=this._list.getFocus();if(g.length>0){if(this._filterInput&&u.length>0&&g[0]<u[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(g[0])}}_focusFilterResult(u){if(!this._options?.filterAsCombobox||!this._filterInput||!ts(this._filterInput))return!1;if(u==="previous")this._list.focusPrevious(1,!0,void 0,this.focusCondition);else this._list.focusNext(1,!0,void 0,this.focusCondition);let[g]=this._list.getFocus();if(g!==void 0)this._list.reveal(g);return!0}collapseFocusedSection(){let u=this._getFocusedSection();if(u&&!this._collapsedSections.has(u))this._toggleSection(u)}expandFocusedSection(){let u=this._getFocusedSection();if(u&&this._collapsedSections.has(u))this._toggleSection(u)}toggleFocusedSection(){let u=this._list.getFocus();if(u.length===0)return!1;let g=this._list.element(u[0]);if(g.isSectionToggle&&g.section)return this._toggleSection(g.section),!0;return!1}_getFocusedSection(){let u=this._list.getFocus();if(u.length===0)return;let g=this._list.element(u[0]);if(g.isSectionToggle&&g.section)return g.section;return g.section}acceptSelected(u){let g=this._list.getFocus();if(g.length===0)return;let v=g[0],S=this._list.element(v);if(!this.focusCondition(S))return;let y=u?new K_:new z_;this._list.setSelection([v],y)}onListSelection(u){if(!u.elements.length)return;let g=u.elements[0];if(g.standaloneToggle){this._list.setSelection([]);let S=this._standaloneToggles.get(g);if(S&&!S.disabled)S.checked=!S.checked,g.standaloneToggle.onChange(S.checked);return}if(g.isSectionToggle&&g.section){this._list.setSelection([]);let S=g.section;queueMicrotask(()=>{this._toggleSection(S)});return}let v=lh(u.browserEvent)||u.browserEvent?.type===wt.Tap;if(v){let S=u.browserEvent.target;if(xe(S)&&(S.closest(".action-list-item-toolbar")||S.closest(".action-list-submenu-indicator")||S.closest(".action-list-item-inline-toggle"))){this._list.setSelection([]);return}}if(g.openSubmenuOnClick&&g.submenuActions?.length&&(v||u.browserEvent instanceof z_)){if(this._list.setSelection([]),this._showSubmenuForItem(g),!v)this._currentSubmenuWidget?.focus();return}if(g.item&&this.focusCondition(g)){let S=u.browserEvent instanceof K_;this._delegate.onSelect(g.item,S&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){let u=this._list.getFocus();if(u.length===0)return;let g=u[0],v=this._list.element(g);if(this._delegate.onFocus?.(v.item),!this._suppressHover){if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer(),this._list.reveal(g);this._showHoverForElement(v,g)}}_removeItem(u){let g=this._allMenuItems.indexOf(u);if(g>=0)this._allMenuItems.splice(g,1),this._applyFilter()}_recomputeGroupTitles(u){this._groupTitleByIndex.clear();let g=new Set;for(let v=0;v<u.length;v++){let S=u[v];if(S.kind==="action"&&S.group?.title&&!g.has(S.group.title))g.add(S.group.title),this._groupTitleByIndex.set(v,S.group.title)}}_measureItemWidths(u){let g=[];for(let v=0;v<u.length;v++){let S=this._getRowElement(v);if(S)S.style.width="auto",g.push({element:S,item:u[v]})}try{return g.map(({element:v,item:S})=>v.getBoundingClientRect().width+(S.detail?0:this._computeToolbarWidth(S)))}finally{for(let{element:v}of g)v.style.width=""}}_computeToolbarWidth(u){let g=u.toolbarActions?.length??0;if(u.onRemove)g++;if(g===0)return 0;return g*22+6+10}_getRowElement(u){if(u<0)return null;return this.domNode.ownerDocument.getElementById(this._list.getElementID(u))}_showTabThroughPanelForFocusedItem(){let u=this._list.getFocus();if(u.length===0)return;let g=u[0],v=this._list.element(g);if(!v.hover?.tabThroughPanel)return;let S=this._getRowElement(g);if(S)this._showSubmenuForElement(v,S)}_getTabThroughPanelControls(u,g){if(u.hover?.tabThroughPanel&&this._currentSubmenuElement!==u)this._showSubmenuForElement(u,g);return{toolbar:this._itemToolbars.get(u),panelControls:[...u.hover?.getTabbableElements?.()??[],...this._submenuHoverActionElements]}}_focusFirstTabThroughPanelControl(u,g){let v=this._getTabThroughPanelControls(u,g);if(v.toolbar?.length())v.toolbar.focus(0);else(v.panelControls[0]??this._list.getHTMLElement()).focus()}_handleTabThroughPanelKeyDown(u){if(u.isComposing)return;let g=this._list.getFocus();if(g.length===0)return;let v=g[0],S=this._list.element(v);if(!S.hover?.tabThroughPanel&&!this._options?.tabThroughItemActions)return;let y=this._getRowElement(v),D=kt();if(!y||!xe(D))return;let T=this._getTabThroughPanelControls(S,y),R=T.toolbar?.isFocused()??!1,K=this._submenuContainer.contains(D);if((u.key==="ArrowUp"||u.key==="ArrowDown")&&(R||K)){if(ve.stop(u,!0),this._list.domFocus(),u.key==="ArrowUp")this.focusPrevious();else this.focusNext();return}if(u.key!=="Tab"||u.ctrlKey||u.metaKey||u.altKey)return;let q;if(u.shiftKey){if(K){let ee=T.panelControls.indexOf(D);if(ee>0)q=T.panelControls[ee-1];else if(T.toolbar?.length()){ve.stop(u,!0),T.toolbar.focus(T.toolbar.length()-1);return}else q=this._list.getHTMLElement()}else if(T.toolbar?.isFocused()){let ee=T.toolbar.viewItems.findIndex((te,ne)=>T.toolbar?.isFocused(ne));if(ee>0){ve.stop(u,!0),T.toolbar.focus(ee-1);return}q=this._options?.filterAsCombobox?this._filterInput:this._list.getHTMLElement()}}else if(D===this._list.getHTMLElement()||D===this._filterInput){if(T.toolbar?.length()){ve.stop(u,!0),T.toolbar.focus(0);return}q=T.panelControls[0]}else if(T.toolbar?.isFocused()){let ee=T.toolbar.viewItems.findIndex((te,ne)=>T.toolbar?.isFocused(ne));if(ee+1<T.toolbar.length()){ve.stop(u,!0),T.toolbar.focus(ee+1);return}q=T.panelControls[0]}else{let ee=T.panelControls.indexOf(D);if(ee>=0)q=T.panelControls[ee+1]??this._list.getHTMLElement()}if(q)ve.stop(u,!0),q.focus()}_showHoverForElement(u,g){if(this._currentSubmenuElement===u)return;let v=!!u.hover?.content,S=!!u.submenuActions?.length;if(v||S){let y=this._getRowElement(g);if(y)this._showSubmenuForElement(u,y);return}if(!this._options?.persistentHover)this._hideSubmenu()}_showSubmenuForItem(u){let g=this._list.indexOf(u);if(g>=0){let v=this._getRowElement(g);if(v)this._showSubmenuForElement(u,v)}}_showSubmenuForElement(u,g){if(!this._hoverEnabled||this._currentSubmenuElement===u)return;if(this._currentSubmenuElement=u,this._clearSubmenuContainer(),g.setAttribute("aria-expanded","true"),this._expandedTrigger=g,this._submenuPanelClassName=u.hover?.panelClassName,this._submenuPanelClassName)this._submenuContainer.classList.add(this._submenuPanelClassName);let v=u.hover?.preserveVerticalPosition,S=!!u.submenuActions?.length,y=v?m(".action-list-submenu-content"):this._submenuContainer,D=v?m(".action-list-submenu-viewport",void 0,y):void 0,T=D&&!S?this._submenuDisposables.add(new ka(D,{horizontal:2,vertical:1,consumeMouseWheelIfScrollbarIsNeeded:!0,useShadows:!1})):void 0;if(T&&D)this._submenuContainer.appendChild(T.getDomNode()),this._submenuDisposables.add(l(D,x.SCROLL,()=>T.scanDomNode())),this._submenuDisposables.add(l(this._submenuContainer,x.KEY_DOWN,(ke)=>{let Ae=new ze(ke);if(Ae.equals(12)||Ae.equals(11))ve.stop(ke,!0),T.setScrollPosition({scrollTop:T.getScrollPosition().scrollTop+(Ae.equals(12)?1:-1)*D.clientHeight})}));else if(D)this._submenuContainer.appendChild(D);let R,K=typeof u.hover?.content==="function"?u.hover.content():u.hover?.content;if(K){if(xe(K)){if(R=K,u.hover?.disposable)this._register(u.hover.disposable)}else{let ke=typeof K==="string"?new wn(K):K,Ae=this._options?.linkHandler,He=Ta(ke,{actionHandler:(Ke)=>{let Ue=W.parse(Ke);if(Ae)Ae(Ue,u);else this._openerService.open(Ue,{allowCommands:!0})}});this._submenuDisposables.add(He),R=He.element}if(R.classList.add("action-list-submenu-hover-header"),R.classList.toggle("content-owns-padding",u.hover?.contentOwnsPadding===!0),u.submenuActions?.length)R.classList.add("has-submenu");y.appendChild(R)}if(u.hover?.actions?.length){let ke=m(".hover-row.status-bar"),Ae=w(ke,m(".actions"));for(let He of u.hover.actions){let Ke=this._keybindingService.lookupKeybinding(He.commandId),Ue=this._submenuDisposables.add(Th.render(Ae,{label:He.label,commandId:He.commandId,run:(Te)=>He.run(Te),iconClass:He.iconClass},Ke?.getLabel()??null));this._submenuHoverActionElements.push(Ue.actionContainer)}this._submenuContainer.appendChild(ke)}if(this._submenuContainer.style.display="",this._submenuContainer.style.position="absolute",u.hover?.expandable){if(this._submenuContainer.setAttribute("role","dialog"),u.label)this._submenuContainer.setAttribute("aria-label",u.label)}else this._submenuContainer.removeAttribute("role");let q=F(this.domNode),ee=0,te=R?R.offsetWidth:0,ne;if(S){let ke=this._createSubmenuItems(u.submenuActions),Ae={onHide:()=>{},onSelect:(Ue)=>{Ue.run();let Te=this._currentSubmenuElement?.item;if(this._hideSubmenu(),Te)this._delegate.onSelect(Te);this.hide()}},He=this._submenuDisposables.add(this._instantiationService.createInstance(B_,"submenu",!1,ke,Ae,void 0,u.submenuOptions));if(ne=He,He.headerContainer)y.appendChild(He.headerContainer);if(He.filterContainer)y.appendChild(He.filterContainer);if(y.appendChild(He.domNode),He.footerContainer)y.appendChild(He.footerContainer);this._currentSubmenuWidget=He,He.clearFocus(),ee=He.computeListHeight(),He.layout(ee);let Ke=He.computeMaxWidth(0);if(te=Math.max(te,Ke,He.footerContainer?.offsetWidth??0),He.layout(ee,te),He.domNode.style.width=`${te}px`,u.submenuOptions)this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${te+10}px`;this._submenuDisposables.add(He.onDidRequestLayout(()=>{ee=He.computeListHeight(),He.layout(ee,te),this._layoutSubmenu?.()})),this._submenuDisposables.add(l(y,"keydown",(Ue)=>{if(Ue.key==="Escape")ve.stop(Ue,!0),this._hideSubmenu(),this.hide();else if(Ue.key==="ArrowLeft")ve.stop(Ue,!0),this._hideSubmenu(),this._setKeyboardNavigation(!0),this._list.domFocus();else if(Ue.key==="Enter"||Ue.key===" ")ve.stop(Ue,!0),He.acceptSelected();else if(Ue.key==="ArrowDown")ve.stop(Ue,!0),He.focusNext();else if(Ue.key==="ArrowUp")ve.stop(Ue,!0),He.focusPrevious()}))}let re,ae,ge=()=>{let ke=this._currentSubmenuElement;if(!ke||this._layoutSubmenu!==ge)return;let Ae=this._list.indexOf(ke),He=Ae>=0?this._getRowElement(Ae):null,Ke=this._options?.persistentHover;if(!He&&(!Ke||!this._allMenuItems.includes(ke))){this._hideSubmenu();return}if(this._expandedTrigger!==He){if(this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=He??void 0}He?.setAttribute("aria-expanded","true");let Ue=this.domNode.getBoundingClientRect(),Te=Ke||ke.hover?.alignToParent,We=Te?this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect()??Ue:Ue,et=He?.getBoundingClientRect()??We,tt=Te||v?Zm(this.domNode):1;if(Ke)this._submenuContainer.style.width=`${We.width/tt}px`;let ot=this._submenuContainer.getBoundingClientRect(),je=Te?ot.width:te+10,nt=q.innerWidth-(Te?We.right:et.right),_t=We.left,st=Te?0:4,xt=4;if(!Te){let vi=q.innerWidth-2*xt;if(je>vi)je=Math.max(vi,0);this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${je}px`}let at=nt>=je||nt>=_t;if(Ke&&this._submenuSide&&(this._submenuSide==="right"?nt:_t)>=je)at=this._submenuSide==="right";if(Ke)this._submenuSide=at?"right":"left";let gi=at?We.right-Ue.left+st:We.left-Ue.left-je-st,vt=Ue.left+gi;if(vt<xt)gi+=xt-vt;else if(vt+je>q.innerWidth-xt)gi-=vt+je-(q.innerWidth-xt);this._submenuContainer.style.left=`${gi/tt}px`;let Ot=ot.height;if(v)re??=Ot/tt;let bi=re!==void 0?re*tt:Ot,Zt=ae!==void 0?ae*tt:He&&ke.hover?.alignToAnchorTop?et.top-Ue.top:He?et.top-Ue.top+(et.height-bi)/2:ot.top-Ue.top;if(v&&ke.hover?.alignToAnchorTop&&D&&ne){let vi=ot.height-D.getBoundingClientRect().height,mi=(ne.headerContainer?.offsetHeight??0)+(ne.filterContainer?.offsetHeight??0)+(ne.footerContainer?.offsetHeight??0),ai=vi+(mi+ee)*tt;Zt=Math.min(Zt,q.innerHeight-Ue.top-ai-8)}let $t=Ue.top+Zt+bi;if($t>q.innerHeight&&!(v&&ke.hover?.alignToAnchorTop))Zt-=$t-q.innerHeight+8;if(Ue.top+Zt<0)Zt=-Ue.top;if(v)ae??=Zt/tt;if(D&&T){let vi=(ot.height-T.getDomNode().getBoundingClientRect().height)/tt,mi=Math.max(0,(q.innerHeight-Ue.top-Zt-8)/tt-vi);D.style.height=`${Math.min(y.getBoundingClientRect().height/tt,mi)}px`,T.scanDomNode()}else if(D&&ne){let vi=(ot.height-D.getBoundingClientRect().height)/tt,mi=Math.max(0,(q.innerHeight-Ue.top-Zt-8)/tt-vi),ai=(ne.headerContainer?.offsetHeight??0)+(ne.filterContainer?.offsetHeight??0)+(ne.footerContainer?.offsetHeight??0),Gi=ee===0?0:Math.max(this._actionLineHeight,Math.min(ee,mi-ai));ne.layout(Gi,te),D.style.height=`${ai+Gi}px`}this._submenuContainer.style.top=`${Zt/tt}px`};if(this._layoutSubmenu=ge,ge(),(this._options?.persistentHover||u.hover?.alignToParent||u.hover?.tabThroughPanel||v)&&this._currentSubmenuElement===u){if(!ne){let ke=this._submenuDisposables.add(new ie),Ae=this._submenuDisposables.add(new Wv("ActionListWidget.hoverPanel",()=>{if(!ke.value)ke.value=ti(q,()=>{ke.clear(),ge()})},q));this._submenuDisposables.add(Ae.observe(v?y:this._submenuContainer,{box:"border-box"}))}if(this._options?.persistentHover||v)this._submenuDisposables.add(l(q,x.RESIZE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer(),ge()}))}}_createSubmenuItems(u){let g=[],S=u.filter((y)=>y instanceof Dr).filter((y)=>y.actions.length>0);for(let y=0;y<S.length;y++){let D=S[y];if(D.label)g.push({kind:"header",group:{title:D.label},label:D.label});for(let T of D.actions){let R=T,K=R.icon??G.fromId(T.checked?b.check.id:b.blank.id),q=R.hoverContent,ee=q?new wn().appendText(`${T.label}
|
|
3
|
-
`).appendMarkdown(q):void 0;g.push({item:T,kind:"action",label:T.label,description:T.tooltip&&T.tooltip!==T.label?T.tooltip:void 0,group:{title:"",icon:K},hideIcon:!1,hover:ee?{content:ee}:void 0,tooltip:T.tooltip||T.label,onRemove:R.onRemove,submenuActions:T instanceof Dr?[new Dr(T.id,"",T.actions)]:void 0})}if(y<S.length-1)g.push({kind:"separator",label:""})}for(let y of u)if(!(y instanceof Dr)){let D=y,T=D.icon??G.fromId(y.checked?b.check.id:b.blank.id),R=D.hoverContent,K=R?new wn().appendText(`${y.label}
|
|
4
|
-
`).appendMarkdown(R):void 0;g.push({item:y,kind:"action",label:y.label,description:y.tooltip&&y.tooltip!==y.label?y.tooltip:void 0,group:{title:"",icon:T},hideIcon:!1,hover:K?{content:K}:void 0,tooltip:y.tooltip||y.label,onRemove:D.onRemove})}return g}_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(kt()))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,Xt(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(u,g){this._cancelSubmenuShow();let v=this._options?.submenuHoverDelay??500;if(this._usesSubmenuPointerIntent()){v=0;let y=this._submenuPointerOrigin;if(y&&g.clientX!==y.x&&this._currentSubmenuElement&&new yS(y.x,y.y,this._submenuContainer).contains(g.clientX,g.clientY)){let D=Date.now();this._submenuPointerGraceDeadline??=D+200,v=Math.max(0,this._submenuPointerGraceDeadline-D)}}let S=()=>{this._submenuShowTimeout=void 0;let y=this._list.indexOf(u),D=y>=0?this._getRowElement(y):null;if(D){if(this._showSubmenuForElement(u,D),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(g)}};if(v===0)S();else this._submenuShowTimeout=setTimeout(S,v)}_updateSubmenuPointer(u){this._submenuPointerOrigin={x:u.clientX,y:u.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(u){this._setKeyboardNavigation(!1);let g=u.element;if(g&&g.item&&this.focusCondition(g)){let v=typeof u.index==="number"?[u.index]:[],S=kt();if(this._options?.tabThroughItemActions&&this._list.getFocus()[0]!==u.index&&xe(S)&&this.domNode.contains(S)&&S.closest(".action-list-item-toolbar"))this._list.domFocus();if(xe(u.browserEvent.target)&&u.browserEvent.target.closest(".action-list-item-toolbar")!==null){if(!g.submenuActions?.length)this._cancelSubmenuShow();this._list.setFocus(this._options?.tabThroughItemActions?v:[]);return}let D=!!(g.submenuActions?.length||g.hover?.content),T=this._suppressHover;if(D||this._usesSubmenuPointerIntent())this._suppressHover=!0;try{this._list.setFocus(v)}finally{this._suppressHover=T}if(D){if(this._currentSubmenuElement===g){if(this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(u.browserEvent)}else{if(!this._usesSubmenuPointerIntent())this._hideSubmenu();this._scheduleSubmenuShow(g,u.browserEvent)}return}if(this._currentSubmenuElement===g)this._cancelSubmenuHide();else if(this._cancelSubmenuShow(),this._options?.submenuPointerIntent)this._scheduleSubmenuHide();else if(!this._options?.persistentHover)this._hideSubmenu();if(this._delegate.onHover&&!g.disabled&&g.kind==="action"&&this._currentSubmenuElement!==g){let R=await this._delegate.onHover(g.item,this.cts.token),K=R?R.canPreview:void 0;if(K!==g.canPreview){if(g.canPreview=K,typeof u.index==="number")this._list.splice(u.index,1,[g]),this._list.setFocus([u.index])}}}else if(g&&g.hover?.content&&typeof u.index==="number")if(this._currentSubmenuElement===g)this._cancelSubmenuHide(),this._cancelSubmenuShow();else{if(!this._options?.persistentHover)this._hideSubmenu();this._scheduleSubmenuShow(g,u.browserEvent)}}onListClick(u){if(u.element&&this.focusCondition(u.element))this._list.setFocus([])}};U_=B_=q_([ta(6,ce),ta(7,To),ta(8,L)],U_);var $g=class f extends n{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(u,g,v,S,y,D,T,R,K,q){super();this._contextViewService=R,this._layoutService=K,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=T,this._preferredAnchorPosition=D?.anchorPosition,this._useFullHeight=D?.useFullHeight??!1,this._widgetClassName=D?.widgetClassName,this._widget=this._register(q.createInstance(U_,u,g,v,S,y,D)),this._register(this._widget.onDidRequestLayout(()=>{if(this._hasLaidOut)this.layout(this._lastMinWidth),this._contextViewService.layout()}))}focus(){this._widget.focus()}hide(u,g=!0){if(this._widget.hide(u),g)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(u){this._widget.acceptSelected(u)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){let u=this.domNode.parentElement?.closest(".action-widget");if(!u)return 0;let g=F(u).getComputedStyle(u),v=(S)=>Number.parseFloat(S)||0;return v(g.paddingTop)+v(g.paddingBottom)+v(g.borderTopWidth)+v(g.borderBottomWidth)}computeHeight(){let u=this._fixedContentHeight??this._widget.computeListHeight(),g=this._widget.filterContainer?36:0,v=this._widget.footerContainer?32:0,S=this._widget.headerContainer&&!this._widget.headerContainer.hidden?this._widget.headerContainer.offsetHeight||36:0,y=g+v+S,D=F(this.domNode),T;if(this.hasDynamicHeight()||this._preferredAnchorPosition!==void 0){let te=D.innerHeight,ne=cy(this._anchor),re=ne.top-D.pageYOffset,ae=30,ge=te-re-ne.height-30,ke=re;if(this._showAbove===void 0){let Ae=this._fixedContentHeight??this._widget.computeFullHeight();this._showAbove=this._preferredAnchorPosition!==void 0?this._preferredAnchorPosition===1:y+Ae>ge&&ke>ge}T=Math.max(0,(this._showAbove?ke:ge)-this.computeActionWidgetVerticalChromeHeight())}else{let ne=this._layoutService.getContainer(D).clientHeight,re=this.domNode.getBoundingClientRect().top;T=re>0?ne-re-10:ne*0.7}let R=this._useFullHeight?D.innerHeight:Math.floor(D.innerHeight*0.6),K=this._widget.lineHeight;if(this._preferredAnchorPosition!==void 0){let te=Math.min(T,R),ne=Math.min(u+y,Math.max(0,te));return Math.max(0,ne-y)}let q=Math.min(Math.max(T,K*3+y),R);return Math.min(u+y,q)-y}layout(u,g){if(this._hasLaidOut=!0,this._lastMinWidth=u,g!==void 0)this._fixedContentHeight=g;let v=this.computeHeight();this._widget.layout(v);let S=this._widget.computeMaxWidth(u);return this._cachedMaxWidth=S,this._widget.layout(v,this._cachedMaxWidth),this._cachedMaxWidth}};$g=q_([ta(7,Pr),ta(8,cr),ta(9,L)],$g);function rn(f){return f.replace(/\r\n|\r|\n/g," ")}var _2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},j_=function(f,u){return function(g,v){u(g,v,f)}};s("actionBar.toggledBackground",Xd,e(1744,"Background color for toggled action items in action bar."));var Oy="--action-widget-close-start-opacity",Py="--action-widget-close-start-transform",Co={Visible:new A("codeActionMenuVisible",!1,e(1745,"Whether the action widget list is visible")),FilterFocused:new A("codeActionMenuFilterFocused",!1,e(1746,"Whether the action widget filter input is focused"))},Oo=Z("actionWidgetService"),ur=class f extends n{get isVisible(){return Co.Visible.getValue(this._contextKeyService)||!1}constructor(u,g,v){super();this._contextViewService=u,this._contextKeyService=g,this._instantiationService=v,this._list=this._register(new ie),this._closeAnimation=this._register(new ie)}show(u,g,v,S,y,D,T,R,K){let q=Co.Visible.bindTo(this._contextKeyService),ee=this._instantiationService.createInstance($g,u,g,v,S,R,K,y);this._contextViewService.showContextView({getAnchor:()=>y,render:(te)=>(q.set(!0),this._renderWidget(te,ee,T??[],K)),onHide:(te)=>{q.reset(),this._onWidgetClosed(te)},get anchorPosition(){return ee.anchorPosition},focus:()=>ee.focus()},D,!1)}acceptSelected(u){this._list.value?.acceptSelected(u)}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(u){let g=this._list.value,v=this._widgetElement;if(!g||this._closingList===g)return;let S=g.closeAnimation;if(!v||!S||S.duration<=0||!this._hasRequiredAncestorClasses(v,S.requiredAncestorClasses)){this._closingList=g,g.hide(u);return}this._closingList=g;let y=F(v).getComputedStyle(v);v.style.setProperty(Oy,y.opacity),v.style.setProperty(Py,y.transform),v.classList.add(S.className),g.hide(u,!1),this._closeAnimation.value=Jn(()=>{if(this._list.value===g)this._contextViewService.hideContextView(u)},S.duration)}clear(){this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement?.style.removeProperty(Oy),this._widgetElement?.style.removeProperty(Py),this._widgetElement=void 0,this._list.clear()}_renderWidget(u,g,v,S){let y=document.createElement("div");y.classList.add("action-widget");let D=g.widgetClassName?.split(/\s+/).filter(Boolean);if(D?.length)y.classList.add(...D);if(u.appendChild(y),this._widgetElement=y,this._list.value=g,this._list.value){if(this._list.value.headerContainer)y.appendChild(this._list.value.headerContainer);if(this._list.value.filterContainer)y.appendChild(this._list.value.filterContainer);if(y.appendChild(this._list.value.domNode),this._list.value.footerContainer)y.appendChild(this._list.value.footerContainer)}else throw Error("List has no value");let T=new c;if(S?.filterAsCombobox)T.add(ft(y,"keydown",(ke)=>{if(ke.keyCode===9&&!ke.browserEvent.isComposing)ve.stop(ke,!0),this.hide(!0)}));let R=this._list.value.headerContainer;if(R)T.add(Dc(R,(ke)=>ke.preventDefault()));let K=0;T.add(Dc(y,()=>{K=Date.now()+1000}));let q=document.createElement("div"),ee=u.appendChild(q);ee.classList.add("context-view-block"),T.add(Dc(ee,(ke)=>ke.stopPropagation()));let te=0;if(v.length){let ke=this._createActionBar(".action-widget-action-bar",v);if(ke)y.appendChild(ke.getContainer().parentElement),T.add(ke),te=ke.getContainer().offsetWidth}let ne=this._list.value?.layout(te);y.style.width=`${ne}px`;let re=Co.FilterFocused.bindTo(this._contextKeyService);if(T.add({dispose:()=>re.reset()}),this._list.value?.filterInput){let ke=this._list.value.filterInput;T.add(l(ke,"focus",()=>re.set(!0))),T.add(l(ke,"blur",()=>re.set(!1)))}let ae=T.add(Zn(u)),ge=T.add(new ie);return T.add(ae.onDidFocus(()=>ge.clear())),T.add(ae.onDidBlur(()=>{let ke=()=>{let Ae=K-Date.now();if(Ae>0){ge.value=Jn(ke,Ae);return}let He=kt();if(He&&(u.contains(He)||He.closest(".action-widget-hover")||He.closest(".action-list-submenu-panel")))return;this.hide(!0)};ge.value=Jn(ke,75)})),T}_createActionBar(u,g){if(!g.length)return;let v=m(u),S=new Ri(v);return S.push(g,{icon:!1,label:!0}),S}_hasRequiredAncestorClasses(u,g){if(!g?.length)return!0;for(let v=u;v;v=v.parentElement)if(g.every((S)=>v.classList.contains(S)))return!0;return!1}_onWidgetClosed(u){if(this._closingList===this._list.value){this.clear();return}this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement=void 0,this._list.value?.hide(u)}};ur=_2([j_(0,Pr),j_(1,V),j_(2,L)],ur);fe(Oo,ur,1);var ps=1100;Ye(class extends ln{constructor(){super({id:"hideCodeActionWidget",title:h(1747,"Hide action widget"),precondition:Co.Visible,keybinding:{weight:ps,primary:9,secondary:[1033]}})}run(f){f.get(Oo).hide(!0)}});Ye(class extends ln{constructor(){super({id:"clearFilterCodeActionWidget",title:h(1748,"Clear action widget filter"),precondition:_.and(Co.Visible,Co.FilterFocused),keybinding:{weight:ps+1,primary:9}})}run(f){let u=f.get(Oo);if(u instanceof ur){if(!u.clearFilter())u.hide(!0)}}});Ye(class extends ln{constructor(){super({id:"selectPrevCodeAction",title:h(1749,"Select previous action"),precondition:Co.Visible,keybinding:{weight:ps,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(f){let u=f.get(Oo);if(u instanceof ur)u.focusPrevious()}});Ye(class extends ln{constructor(){super({id:"selectNextCodeAction",title:h(1750,"Select next action"),precondition:Co.Visible,keybinding:{weight:ps,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(f){let u=f.get(Oo);if(u instanceof ur)u.focusNext()}});Ye(class extends ln{constructor(){super({id:"collapseSectionCodeAction",title:h(1751,"Collapse section"),precondition:_.and(Co.Visible,Co.FilterFocused.negate()),keybinding:{weight:ps,primary:15}})}run(f){let u=f.get(Oo);if(u instanceof ur)u.collapseSection()}});Ye(class extends ln{constructor(){super({id:"expandSectionCodeAction",title:h(1752,"Expand section"),precondition:_.and(Co.Visible,Co.FilterFocused.negate()),keybinding:{weight:ps,primary:17}})}run(f){let u=f.get(Oo);if(u instanceof ur)u.expandSection()}});Ye(class extends ln{constructor(){super({id:"toggleSectionCodeAction",title:h(1753,"Toggle section"),precondition:_.and(Co.Visible,Co.FilterFocused.negate()),keybinding:{weight:ps,primary:10}})}run(f){let u=f.get(Oo);if(u instanceof ur){if(!u.toggleSection())u.acceptSelected()}}});Ye(class extends ln{constructor(){super({id:Gg,title:h(1754,"Accept selected action"),precondition:Co.Visible,keybinding:{weight:ps,primary:3,secondary:[2137]}})}run(f){let u=f.get(Oo);if(u instanceof ur)u.acceptSelected()}});Ye(class extends ln{constructor(){super({id:Zg,title:h(1755,"Preview selected action"),precondition:Co.Visible,keybinding:{weight:ps,primary:2051}})}run(f){let u=f.get(Oo);if(u instanceof ur)u.acceptSelected(!0)}});var Ay=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},oc=function(f,u){return function(g,v){u(g,v,f)}},$_,G_=class f extends n{static{$_=this}static{this.baseId="editor.widget.postEditWidget"}constructor(u,g,v,S,y,D,T,R,K,q,ee){super();this.typeId=u,this.editor=g,this.showCommand=S,this.range=y,this.edits=D,this.onSelectNewEdit=T,this.additionalActions=R,this._keybindingService=q,this._actionWidgetService=ee,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=v.bindTo(K),this.visibleContext.set(!0),this._register(E(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(E(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition((te)=>{this.dispose()})),this._register(C.runAndSubscribe(q.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=m(".post-edit-widget"),this.button=this._register(new ru(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(l(this.domNode,x.CLICK,()=>this.showSelector()))}getId(){return $_.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){let u=mt(this.button.element),g={x:u.left+u.width,y:u.top+u.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((v,S)=>({kind:"action",item:v,label:v.title,disabled:!1,canPreview:!1,group:{title:"",icon:G.fromId(S===this.edits.activeEditIndex?b.check.id:b.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:(v)=>{this._actionWidgetService.hide(!1);let S=this.edits.allEdits.findIndex((y)=>y===v);if(S!==this.edits.activeEditIndex)return this.onSelectNewEdit(S)}},g,this.editor.getDomNode()??void 0,this.additionalActions)}};G_=$_=Ay([oc(8,V),oc(9,ce),oc(10,Oo)],G_);var Mm=class f extends n{constructor(u,g,v,S,y,D,T,R){super();this._id=u,this._editor=g,this._visibleContext=v,this._showCommand=S,this._getAdditionalActions=y,this._instantiationService=D,this._bulkEditService=T,this._notificationService=R,this._currentWidget=this._register(new ie),this._register(C.any(g.onDidChangeModel,g.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(u,g,v,S,y){if(!u.length||!this._editor.hasModel())return;let D=this._editor.getModel(),T=g.allEdits.at(g.activeEditIndex);if(!T)return;let R=async(ke)=>{let Ae=this._editor.getModel();if(!Ae)return;await Ae.undo(),this.applyEditAndShowIfNeeded(u,{activeEditIndex:ke,allEdits:g.allEdits},v,S,y)},K=(ke,Ae)=>{if(Kn(ke))return;if(this._notificationService.error(Ae),v)this.show(u[0],g,R)},q=new Hr(this._editor,3,void 0,y),ee;try{ee=await mI(S(T,q.token),q.token)}catch(ke){return K(ke,e(991,`Error resolving edit '{0}':
|
|
5
|
-
{1}`,T.title,Om(ke)))}finally{q.dispose()}if(y.isCancellationRequested)return;let te=jg(D.uri,u,ee),ne=u[0],re=D.deltaDecorations([],[{range:ne,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let ae,ge;try{ae=await this._bulkEditService.apply(te,{editor:this._editor,token:y}),ge=D.getDecorationRange(re[0])}catch(ke){return K(ke,e(992,`Error applying edit '{0}':
|
|
6
|
-
{1}`,T.title,Om(ke)))}finally{D.deltaDecorations(re,[])}if(y.isCancellationRequested)return;if(v&&ae.isApplied&&g.allEdits.length>1)this.show(ge??ne,g,R)}show(u,g,v){if(this.clear(),this._editor.hasModel())this._currentWidget.value=this._instantiationService.createInstance(G_,this._id,this._editor,this._visibleContext,this._showCommand,u,g,v,this._getAdditionalActions())}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Mm=Ay([oc(5,L),oc(6,bl),oc(7,ut)],Mm);var b2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},_s=function(f,u){return function(g,v){u(g,v,f)}},sn,lS="editor.changePasteType",v2="editor.pasteAs.preferences",Rx=new A("pasteWidgetVisible",!1,e(971,"Whether the paste widget is showing")),Z_="application/vnd.code.copymetadata",jl=class f extends n{static{sn=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(u){return u.getContribution(sn.ID)}constructor(u,g,v,S,y,D,T,R,K,q){super();this._logService=v,this._bulkEditService=S,this._clipboardService=y,this._commandService=D,this._configService=T,this._languageFeaturesService=R,this._quickInputService=K,this._progressService=q,this._editor=u,this._register(u.onWillCopy((ee)=>this.handleCopy(ee))),this._register(u.onWillCut((ee)=>this.handleCopy(ee))),this._register(u.onWillPaste((ee)=>this.handlePaste(ee))),this._pasteProgressManager=this._register(new Nm("pasteIntoEditor",u,g)),this._postPasteWidgetManager=this._register(g.createInstance(Mm,"pasteIntoEditor",u,Rx,{id:lS,label:e(972,"Show paste options...")},()=>sn._configureDefaultAction?[sn._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(u){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:u},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(u){if(this._logService.trace("CopyPasteController#handleCopy"),!this._editor.hasTextFocus())return;if(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled())return;let g=this._editor.getModel(),v=this._editor._getViewModel(),S=this._editor.getSelections();if(!g||!v||!S?.length)return;let y={multicursorText:u.dataToCopy.multicursorText??null,pasteOnNewLine:u.dataToCopy.isFromEmptySelection,mode:null},D=this._languageFeaturesService.documentPasteEditProvider.ordered(g).filter((ee)=>!!ee.prepareDocumentPaste);if(!D.length){this.setCopyMetadata(u.clipboardData,{defaultPastePayload:y});return}let T=new Ch,R=D.flatMap((ee)=>ee.copyMimeTypes??[]),K=Ea();this.setCopyMetadata(u.clipboardData,{id:K,providerCopyMimeTypes:R,defaultPastePayload:y});let q=D.map((ee)=>({providerMimeTypes:ee.copyMimeTypes,operation:Pt((te)=>ee.prepareDocumentPaste(g,u.dataToCopy.sourceRanges,T,te).catch((ne)=>{console.error(ne);return}))}));sn._currentCopyOperation?.operations.forEach((ee)=>ee.operation.cancel()),sn._currentCopyOperation={handle:K,operations:q}}async handlePaste(u){if(this._logService.trace("CopyPasteController#handlePaste for id : ",u.metadata?.id),!this._editor.hasTextFocus())return;let g=u.toExternalVSDataTransfer();if(!g)return;g.delete(Z_),Bi.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let v=this._editor.getModel(),S=this._editor.getSelections();if(!S?.length||!v)return;if(this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let y=this.fetchCopyMetadata(u);this._logService.trace("CopyPasteController#handlePaste with metadata : ",y?.id," and text.length : ",u.clipboardData.getData("text/plain").length);let D=Array.from(u.clipboardData.files).map((K)=>K.type),T=[...u.clipboardData.types,...D,...y?.providerCopyMimeTypes??[],cn.uriList],R=this._languageFeaturesService.documentPasteEditProvider.ordered(v).filter((K)=>{let q=this._pasteAsActionContext?.preferred;if(q){if(!this.providerMatchesPreference(K,q))return!1}return K.pasteMimeTypes?.some((ee)=>SS(ee,T))});if(!R.length){if(this._pasteAsActionContext?.preferred)this.showPasteAsNoEditMessage(S,this._pasteAsActionContext.preferred),u.setHandled();return}if(u.setHandled(),this._pasteAsActionContext)this.showPasteAsPick(this._pasteAsActionContext.preferred,R,S,g,y);else this.doPasteInline(R,S,g,y,u.browserEvent)}showPasteAsNoEditMessage(u,g){let v="only"in g?g.only.value:("preferences"in g)?g.preferences.length?g.preferences.map((S)=>S.value).join(", "):e(973,"empty"):g.providerId;Bi.get(this._editor)?.showMessage(e(974,"No paste edits for '{0}' found",v),u[0].getStartPosition())}doPasteInline(u,g,v,S,y){this._logService.trace("CopyPasteController#doPasteInline");let D=this._editor;if(!D.hasModel())return;let T=new Hr(D,3,void 0),R=Pt(async(K)=>{let q=this._editor;if(!q.hasModel())return;let ee=q.getModel(),te=new c,ne=te.add(new Oe(K));te.add(T.token.onCancellationRequested(()=>ne.cancel()));let re=ne.token;try{if(await this.mergeInDataFromCopy(u,v,S,re),re.isCancellationRequested)return;let ae=u.filter((Ae)=>this.isSupportedPasteProvider(Ae,v));if(!ae.length||ae.length===1&&ae[0]instanceof Pd)return this.applyDefaultPasteHandler(v,S,re,y);let ge={triggerKind:Np.Automatic},ke=await this.getPasteEdits(ae,v,ee,g,ge,re);if(te.add(ke),re.isCancellationRequested)return;if(ke.edits.length===1&&ke.edits[0].provider instanceof Pd)return this.applyDefaultPasteHandler(v,S,re,y);if(ke.edits.length){let Ae=q.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(g,{activeEditIndex:this.getInitialActiveEditIndex(ee,ke.edits),allEdits:ke.edits},Ae,async(He,Ke)=>{if(!He.provider.resolveDocumentPasteEdit)return He;let Ue=He.provider.resolveDocumentPasteEdit(He,Ke),Te=new vs,We=await this._pasteProgressManager.showWhile(g[0].getEndPosition(),e(975,"Resolving paste edit for '{0}'. Click to cancel",He.title),nl(Promise.race([Te.p,Ue]),Ke),{cancel:()=>Te.cancel()},0);if(We)He.insertText=We.insertText,He.additionalEdit=We.additionalEdit;return He},re)}await this.applyDefaultPasteHandler(v,S,re,y)}finally{if(te.dispose(),this._currentPasteOperation===R)this._currentPasteOperation=void 0}});this._pasteProgressManager.showWhile(g[0].getEndPosition(),e(976,"Running paste handlers. Click to cancel and do basic paste"),R,{cancel:async()=>{if(R.cancel(),T.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(v,S,T.token,y)}}).finally(()=>{T.dispose()}),this._currentPasteOperation=R}showPasteAsPick(u,g,v,S,y){this._logService.trace("CopyPasteController#showPasteAsPick");let D=Pt(async(T)=>{let R=this._editor;if(!R.hasModel())return;let K=R.getModel(),q=new c,ee=q.add(new Hr(R,3,void 0,T));try{if(await this.mergeInDataFromCopy(g,S,y,ee.token),ee.token.isCancellationRequested)return;let te=g.filter((ke)=>this.isSupportedPasteProvider(ke,S,u));if(u)te=te.filter((ke)=>this.providerMatchesPreference(ke,u));let ne={triggerKind:Np.PasteAs,only:u&&"only"in u?u.only:void 0},re=q.add(await this.getPasteEdits(te,S,K,v,ne,ee.token));if(ee.token.isCancellationRequested)return;if(u)re={edits:re.edits.filter((ke)=>{if("only"in u)return u.only.contains(ke.kind);else if("preferences"in u)return u.preferences.some((Ae)=>Ae.contains(ke.kind));else return u.providerId===ke.provider.id}),dispose:re.dispose};if(!re.edits.length){if(u)this.showPasteAsNoEditMessage(v,u);return}let ae;if(u)ae=re.edits.at(0);else{let ke={id:"editor.pasteAs.default",label:e(977,"Configure default paste action"),edit:void 0},Ae=await this._quickInputService.pick([...re.edits.map((He)=>({label:He.title,description:He.kind?.value,edit:He})),...sn._configureDefaultAction?[cI({type:"separator"}),{label:sn._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:e(978,"Select Paste Action")});if(Ae===ke){sn._configureDefaultAction?.run();return}ae=Ae?.edit}if(!ae)return;let ge=jg(K.uri,v,ae);await this._bulkEditService.apply(ge,{editor:this._editor})}finally{if(q.dispose(),this._currentPasteOperation===D)this._currentPasteOperation=void 0}});this._progressService.withProgress({location:10,title:e(979,"Running paste handlers")},()=>D)}setCopyMetadata(u,g){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",g.id),u.setData(Z_,JSON.stringify(g))}fetchCopyMetadata(u){this._logService.trace("CopyPasteController#fetchCopyMetadata");let g=u.clipboardData.getData(Z_);if(g)try{return JSON.parse(g)}catch{return}if(u.metadata)return{defaultPastePayload:{mode:u.metadata.mode,multicursorText:u.metadata.multicursorText??null,pasteOnNewLine:!!u.metadata.isFromEmptySelection}};return}async mergeInDataFromCopy(u,g,v,S){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",v?.id),v?.id&&sn._currentCopyOperation?.handle===v.id){let y=sn._currentCopyOperation.operations.filter((T)=>u.some((R)=>R.pasteMimeTypes.some((K)=>SS(K,T.providerMimeTypes)))).map((T)=>T.operation),D=await Promise.all(y);if(S.isCancellationRequested)return;for(let T of D.reverse())if(T)for(let[R,K]of T)g.replace(R,K)}if(!g.has(cn.uriList)){let y=await this._clipboardService.readResources();if(S.isCancellationRequested)return;if(y.length)g.append(cn.uriList,ey(Xp.create(y)))}}async getPasteEdits(u,g,v,S,y,D){let T=new c,R=await nl(Promise.all(u.map(async(q)=>{try{let ee=await q.provideDocumentPasteEdits?.(v,S,g,y,D);if(ee)T.add(ee);return ee?.edits?.map((te)=>({...te,provider:q}))}catch(ee){if(!Kn(ee))console.error(ee);return}})),D),K=Zi(R??[]).flat().filter((q)=>!y.only||y.only.contains(q.kind));return{edits:Ix(K),dispose:()=>T.dispose()}}async applyDefaultPasteHandler(u,g,v,S){let D=await(u.get(cn.text)??u.get("text"))?.asString()??"";if(v.isCancellationRequested)return;let T={clipboardEvent:S,text:D,pasteOnNewLine:g?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:g?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",g?.id),this._editor.trigger("keyboard","paste",T)}isSupportedPasteProvider(u,g,v){if(!u.pasteMimeTypes?.some((S)=>g.matches(S)))return!1;return!v||this.providerMatchesPreference(u,v)}providerMatchesPreference(u,g){if("only"in g)return u.providedPasteEditKinds.some((v)=>g.only.contains(v));else if("preferences"in g)return u.providedPasteEditKinds.some((v)=>g.preferences.some((S)=>S.contains(v)));else return u.id===g.providerId}getInitialActiveEditIndex(u,g){let v=this._configService.getValue(v2,{resource:u.uri});for(let S of Array.isArray(v)?v:[]){let y=new It(S),D=g.findIndex((T)=>y.contains(T.kind));if(D>=0)return D}return 0}};jl=sn=b2([_s(1,L),_s(2,Be),_s(3,bl),_s(4,Xn),_s(5,Ne),_s(6,X),_s(7,j),_s(8,dn),_s(9,I0)],jl);var id="9_cutcopypaste",w2=br||document.queryCommandSupported&&document.queryCommandSupported("cut"),Hy=br||document.queryCommandSupported&&document.queryCommandSupported("copy"),S2=typeof navigator.clipboard>"u"||Wn?document.queryCommandSupported&&document.queryCommandSupported("paste"):!0;function J_(f){return f.register(),f}var C2=w2?J_(new hh({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:br?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:a.MenubarEditMenu,group:"2_ccp",title:e(864,"Cu&&t"),order:1},{menuId:a.EditorContext,group:id,title:e(865,"Cut"),when:o.writable,order:1},{menuId:a.CommandPalette,group:"",title:e(866,"Cut"),order:1},{menuId:a.SimpleEditorContext,group:id,title:e(867,"Cut"),when:o.writable,order:1}]})):void 0,y2=Hy?J_(new hh({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:br?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:a.MenubarEditMenu,group:"2_ccp",title:e(868,"&&Copy"),order:2},{menuId:a.EditorContext,group:id,title:e(869,"Copy"),order:2},{menuId:a.CommandPalette,group:"",title:e(870,"Copy"),order:1},{menuId:a.SimpleEditorContext,group:id,title:e(871,"Copy"),order:2}]})):void 0;Rn.appendMenuItem(a.MenubarEditMenu,{submenu:a.MenubarCopy,title:h(876,"Copy As"),group:"2_ccp",order:3});Rn.appendMenuItem(a.EditorContext,{submenu:a.EditorContextCopy,title:h(877,"Copy As"),group:id,order:3});Rn.appendMenuItem(a.EditorContext,{submenu:a.EditorContextShare,title:h(878,"Share"),group:"11_share",order:-1,when:_.and(_.notEquals("resourceScheme","output"),o.editorTextFocus)});Rn.appendMenuItem(a.ExplorerContext,{submenu:a.ExplorerContextShare,title:h(879,"Share"),group:"11_share",order:-1});var X_=S2?J_(new hh({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:br?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:a.MenubarEditMenu,group:"2_ccp",title:e(872,"&&Paste"),order:4},{menuId:a.EditorContext,group:id,title:e(873,"Paste"),when:o.writable,order:4},{menuId:a.CommandPalette,group:"",title:e(874,"Paste"),order:1},{menuId:a.SimpleEditorContext,group:id,title:e(875,"Paste"),when:o.writable,order:4}]})):void 0;class Wy extends z{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:h(880,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,weight:100}})}run(f,u){let g=f.get(Be),v=f.get(Xn);if(g.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!u.hasModel())return;if(!u.getOption(45)&&u.getSelection().isEmpty())return;jc.forceCopyWithSyntaxHighlighting=!0,u.focus(),g.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),Y_(u,v),g.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),jc.forceCopyWithSyntaxHighlighting=!1}}function Y_(f,u){if(jc.electronBugWorkaroundCopyEventHasFired=!1,f.getContainerDomNode().ownerDocument.execCommand("copy"),br&&jc.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:g}=zI(f._getViewModel(),void 0,Wn);u.writeText(g.text)}}function By(f,u){if(!f)return;f.addImplementation(1e4,"code-editor",(g,v)=>{let S=g.get(Be),y=g.get(Xn);S.trace("registerExecCommandImpl (addImplementation code-editor for : ",u,")");let D=g.get(ye).getFocusedCodeEditor();if(D&&D.hasTextFocus()&&D.hasModel()){let T=D.getOption(45),R=D.getSelection();if(R&&R.isEmpty()&&!T)return!0;if(D.getOption(171)&&u==="cut")Fy(D),S.trace("registerExecCommandImpl (before execCommand copy)"),Y_(D,y),D.trigger(void 0,"cut",void 0),S.trace("registerExecCommandImpl (after execCommand copy)");else{if(Fy(D),S.trace("registerExecCommandImpl (before execCommand "+u+")"),u==="copy")Y_(D,y);else D.getContainerDomNode().ownerDocument.execCommand(u);S.trace("registerExecCommandImpl (after execCommand "+u+")")}return!0}return!1}),f.addImplementation(0,"generic-dom",(g,v)=>{let S=g.get(Be);return S.trace("registerExecCommandImpl (addImplementation generic-dom for : ",u,")"),S.trace("registerExecCommandImpl (before execCommand "+u+")"),ah().execCommand(u),S.trace("registerExecCommandImpl (after execCommand "+u+")"),!0})}function Fy(f){if(f.getOption(171)){let g=iy.get(f.getId());if(g)g.handleWillCopy()}}By(C2,"cut");By(y2,"copy");if(X_)X_.addImplementation(1e4,"code-editor",(f,u)=>{let g=f.get(Be);g.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");let v=f.get(ye),S=f.get(Xn),y=v.getFocusedCodeEditor();if(y&&y.hasModel()&&y.hasTextFocus()){if(y.getOption(171)){let R=iy.get(y.getId());if(R)R.handleWillPaste()}g.trace("registerExecCommandImpl (before triggerPaste)");let T=S.triggerPaste(Me().vscodeWindowId);if(T)return g.trace("registerExecCommandImpl (triggerPaste defined)"),T.then(async()=>(g.trace("registerExecCommandImpl (after triggerPaste)"),jl.get(y)?.finishedPaste()??Promise.resolve()));else g.trace("registerExecCommandImpl (triggerPaste undefined)");if(Yr)return g.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{let R=await S.readText();if(R!==""){let K=Sh.INSTANCE.get(R),q=!1,ee=null,te=null;if(K)q=y.getOption(45)&&!!K.isFromEmptySelection,ee=typeof K.multicursorText<"u"?K.multicursorText:null,te=K.mode;g.trace("registerExecCommandImpl (clipboardText.length : ",R.length," id : ",K?.id,")"),y.trigger("keyboard","paste",{text:R,pasteOnNewLine:q,multicursorText:ee,mode:te})}})();return!0}return!1}),X_.addImplementation(0,"generic-dom",(f,u)=>(f.get(Be).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),f.get(Xn).triggerPaste(Me().vscodeWindowId)??!1));if(Hy)I(Wy);class Wr{constructor(f,u,g){this.languageConfigurationService=g,this._selection=f,this._insertSpace=u,this._usedEndToken=null}static _haystackHasNeedleAtOffset(f,u,g){if(g<0)return!1;let v=u.length,S=f.length;if(g+v>S)return!1;for(let y=0;y<v;y++){let D=f.charCodeAt(g+y),T=u.charCodeAt(y);if(D===T)continue;if(D>=65&&D<=90&&D+32===T)continue;if(T>=65&&T<=90&&T+32===D)continue;return!1}return!0}_createOperationsForBlockComment(f,u,g,v,S,y){let{startLineNumber:D,startColumn:T,endLineNumber:R,endColumn:K}=f,q=S.getLineContent(D),ee=S.getLineContent(R),te=q.lastIndexOf(u,T-1+u.length),ne=ee.indexOf(g,K-1-g.length);if(te!==-1&&ne!==-1)if(D===R){if(q.substring(te+u.length,ne).indexOf(g)>=0)te=-1,ne=-1}else{let ae=q.substring(te+u.length),ge=ee.substring(0,ne);if(ae.indexOf(g)>=0||ge.indexOf(g)>=0)te=-1,ne=-1}let re;if(te!==-1&&ne!==-1){if(v&&te+u.length<q.length&&q.charCodeAt(te+u.length)===32)u=u+" ";if(v&&ne>0&&ee.charCodeAt(ne-1)===32)g=" "+g,ne-=1;re=Wr._createRemoveBlockCommentOperations(new t(D,te+u.length+1,R,ne+1),u,g)}else re=Wr._createAddBlockCommentOperations(f,u,g,this._insertSpace),this._usedEndToken=re.length===1?g:null;for(let ae of re)y.addTrackedEditOperation(ae.range,ae.text)}static _createRemoveBlockCommentOperations(f,u,g){let v=[];if(!t.isEmpty(f))v.push(Mt.delete(new t(f.startLineNumber,f.startColumn-u.length,f.startLineNumber,f.startColumn))),v.push(Mt.delete(new t(f.endLineNumber,f.endColumn,f.endLineNumber,f.endColumn+g.length)));else v.push(Mt.delete(new t(f.startLineNumber,f.startColumn-u.length,f.endLineNumber,f.endColumn+g.length)));return v}static _createAddBlockCommentOperations(f,u,g,v){let S=[];if(!t.isEmpty(f))S.push(Mt.insert(new r(f.startLineNumber,f.startColumn),u+(v?" ":""))),S.push(Mt.insert(new r(f.endLineNumber,f.endColumn),(v?" ":"")+g));else S.push(Mt.replace(new t(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn),u+" "+g));return S}getEditOperations(f,u){let g=this._selection.startLineNumber,v=this._selection.startColumn;f.tokenization.tokenizeIfCheap(g);let S=f.getLanguageIdAtPosition(g,v),y=this.languageConfigurationService.getLanguageConfiguration(S).comments;if(!y||!y.blockCommentStartToken||!y.blockCommentEndToken)return;this._createOperationsForBlockComment(this._selection,y.blockCommentStartToken,y.blockCommentEndToken,this._insertSpace,f,u)}computeCursorState(f,u){let g=u.getInverseEditOperations();if(g.length===2){let v=g[0],S=g[1];return new O(v.range.endLineNumber,v.range.endColumn,S.range.startLineNumber,S.range.startColumn)}else{let v=g[0].range,S=this._usedEndToken?-this._usedEndToken.length-1:0;return new O(v.endLineNumber,v.endColumn+S,v.endLineNumber,v.endColumn+S)}}}class Br{constructor(f,u,g,v,S,y,D){this.languageConfigurationService=f,this._selection=u,this._indentSize=g,this._type=v,this._insertSpace=S,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=y,this._ignoreFirstLine=D||!1}static _gatherPreflightCommentStrings(f,u,g,v){f.tokenization.tokenizeIfCheap(u);let S=f.getLanguageIdAtPosition(u,1),y=v.getLanguageConfiguration(S).comments,D=y?y.lineCommentToken:null;if(!D)return null;let T=[];for(let R=0,K=g-u+1;R<K;R++)T[R]={ignore:!1,commentStr:D,commentStrOffset:0,commentStrLength:D.length};return T}static _analyzeLines(f,u,g,v,S,y,D,T,R){let K=!0,ee=T.getLanguageConfiguration(R).comments?.lineCommentNoIndent??!1,te;if(f===0)te=!0;else if(f===1)te=!1;else te=!0;for(let ne=0,re=v.length;ne<re;ne++){let ae=v[ne],ge=S+ne;if(ge===S&&D){ae.ignore=!0;continue}let ke=g.getLineContent(ge),Ae=In(ke);if(Ae===-1){ae.ignore=y,ae.commentStrOffset=ee?0:ke.length;continue}K=!1;let He=ee?0:Ae;if(ae.ignore=!1,ae.commentStrOffset=He,te&&!Wr._haystackHasNeedleAtOffset(ke,ae.commentStr,He))if(f===0)te=!1;else if(f===1);else ae.ignore=!0;if(te&&u){let Ke=Ae+ae.commentStrLength;if(Ke<ke.length&&ke.charCodeAt(Ke)===32)ae.commentStrLength+=1}}if(f===0&&K){te=!1;for(let ne=0,re=v.length;ne<re;ne++)v[ne].ignore=!1}return{supported:!0,shouldRemoveComments:te,lines:v}}static _gatherPreflightData(f,u,g,v,S,y,D,T){let R=Br._gatherPreflightCommentStrings(g,v,S,T),K=g.getLanguageIdAtPosition(v,1);if(R===null)return{supported:!1};return Br._analyzeLines(f,u,g,R,v,y,D,T,K)}_executeLineComments(f,u,g,v){let S;if(g.shouldRemoveComments)S=Br._createRemoveLineCommentsOperations(g.lines,v.startLineNumber);else Br._normalizeInsertionPoint(f,g.lines,v.startLineNumber,this._indentSize),S=this._createAddLineCommentsOperations(g.lines,v.startLineNumber);let y=new r(v.positionLineNumber,v.positionColumn);for(let D=0,T=S.length;D<T;D++)if(u.addEditOperation(S[D].range,S[D].text),t.isEmpty(S[D].range)&&t.getStartPosition(S[D].range).equals(y)){if(f.getLineContent(y.lineNumber).length+1===y.column)this._deltaColumn=(S[D].text||"").length}this._selectionId=u.trackSelection(v)}_attemptRemoveBlockComment(f,u,g,v){let{startLineNumber:S,endLineNumber:y}=u,D=v.length+Math.max(f.getLineFirstNonWhitespaceColumn(u.startLineNumber),u.startColumn),T=f.getLineContent(S).lastIndexOf(g,D-1),R=f.getLineContent(y).indexOf(v,u.endColumn-1-g.length);if(T!==-1&&R===-1)R=f.getLineContent(S).indexOf(v,T+g.length),y=S;if(T===-1&&R!==-1)T=f.getLineContent(y).lastIndexOf(g,R),S=y;if(u.isEmpty()&&(T===-1||R===-1)){if(T=f.getLineContent(S).indexOf(g),T!==-1)R=f.getLineContent(S).indexOf(v,T+g.length)}if(T!==-1&&f.getLineContent(S).charCodeAt(T+g.length)===32)g+=" ";if(R!==-1&&f.getLineContent(y).charCodeAt(R-1)===32)v=" "+v,R-=1;if(T!==-1&&R!==-1)return Wr._createRemoveBlockCommentOperations(new t(S,T+g.length+1,y,R+1),g,v);return null}_executeBlockComment(f,u,g){f.tokenization.tokenizeIfCheap(g.startLineNumber);let v=f.getLanguageIdAtPosition(g.startLineNumber,1),S=this.languageConfigurationService.getLanguageConfiguration(v).comments;if(!S||!S.blockCommentStartToken||!S.blockCommentEndToken)return;let{blockCommentStartToken:y,blockCommentEndToken:D}=S,T=this._attemptRemoveBlockComment(f,g,y,D);if(!T){if(g.isEmpty()){let R=f.getLineContent(g.startLineNumber),K=In(R);if(K===-1)K=R.length;T=Wr._createAddBlockCommentOperations(new t(g.startLineNumber,K+1,g.startLineNumber,R.length+1),y,D,this._insertSpace)}else T=Wr._createAddBlockCommentOperations(new t(g.startLineNumber,f.getLineFirstNonWhitespaceColumn(g.startLineNumber),g.endLineNumber,f.getLineMaxColumn(g.endLineNumber)),y,D,this._insertSpace);if(T.length===1)this._deltaColumn=y.length+1}this._selectionId=u.trackSelection(g);for(let R of T)u.addEditOperation(R.range,R.text)}getEditOperations(f,u){let g=this._selection;if(this._moveEndPositionDown=!1,g.startLineNumber===g.endLineNumber&&this._ignoreFirstLine){u.addEditOperation(new t(g.startLineNumber,f.getLineMaxColumn(g.startLineNumber),g.startLineNumber+1,1),g.startLineNumber===f.getLineCount()?"":`
|
|
7
|
-
`),this._selectionId=u.trackSelection(g);return}if(g.startLineNumber<g.endLineNumber&&g.endColumn===1)this._moveEndPositionDown=!0,g=g.setEndPosition(g.endLineNumber-1,f.getLineMaxColumn(g.endLineNumber-1));let v=Br._gatherPreflightData(this._type,this._insertSpace,f,g.startLineNumber,g.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);if(v.supported)return this._executeLineComments(f,u,v,g);return this._executeBlockComment(f,u,g)}computeCursorState(f,u){let g=u.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)g=g.setEndPosition(g.endLineNumber+1,1);return new O(g.selectionStartLineNumber,g.selectionStartColumn+this._deltaColumn,g.positionLineNumber,g.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(f,u){let g=[];for(let v=0,S=f.length;v<S;v++){let y=f[v];if(y.ignore)continue;g.push(Mt.delete(new t(u+v,y.commentStrOffset+1,u+v,y.commentStrOffset+y.commentStrLength+1)))}return g}_createAddLineCommentsOperations(f,u){let g=[],v=this._insertSpace?" ":"";for(let S=0,y=f.length;S<y;S++){let D=f[S];if(D.ignore)continue;g.push(Mt.insert(new r(u+S,D.commentStrOffset+1),D.commentStr+v))}return g}static nextVisibleColumn(f,u,g,v){if(g)return f+(u-f%u);return f+v}static _normalizeInsertionPoint(f,u,g,v){let S=1073741824,y,D;for(let T=0,R=u.length;T<R;T++){if(u[T].ignore)continue;let K=f.getLineContent(g+T),q=0;for(let ee=0,te=u[T].commentStrOffset;q<S&&ee<te;ee++)q=Br.nextVisibleColumn(q,v,K.charCodeAt(ee)===9,1);if(q<S)S=q}S=Math.floor(S/v)*v;for(let T=0,R=u.length;T<R;T++){if(u[T].ignore)continue;let K=f.getLineContent(g+T),q=0;for(y=0,D=u[T].commentStrOffset;q<S&&y<D;y++)q=Br.nextVisibleColumn(q,v,K.charCodeAt(y)===9,1);if(q>S)u[T].commentStrOffset=y-1;else u[T].commentStrOffset=y}}}class Xg extends z{constructor(f,u){super(u);this._type=f}run(f,u){let g=f.get(Qe);if(!u.hasModel())return;let v=u.getModel(),S=[],y=v.getOptions(),D=u.getOption(29),T=u.getSelections().map((K,q)=>({selection:K,index:q,ignoreFirstLine:!1}));T.sort((K,q)=>t.compareRangesUsingStarts(K.selection,q.selection));let R=T[0];for(let K=1;K<T.length;K++){let q=T[K];if(R.selection.endLineNumber===q.selection.startLineNumber)if(R.index<q.index)q.ignoreFirstLine=!0;else R.ignoreFirstLine=!0,R=q}for(let K of T)S.push(new Br(g,K.selection,y.indentSize,this._type,D.insertSpace,D.ignoreEmptyLines,K.ignoreFirstLine));u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class Vy extends Xg{constructor(){super(0,{id:"editor.action.commentLine",label:h(948,"Toggle Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"5_insert",title:e(946,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class zy extends Xg{constructor(){super(1,{id:"editor.action.addCommentLine",label:h(949,"Add Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class Ky extends Xg{constructor(){super(2,{id:"editor.action.removeCommentLine",label:h(950,"Remove Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class Uy extends z{constructor(){super({id:"editor.action.blockComment",label:h(951,"Toggle Block Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"5_insert",title:e(947,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(f,u){let g=f.get(Qe);if(!u.hasModel())return;let v=u.getOption(29),S=[],y=u.getSelections();for(let D of y)S.push(new Wr(D,v.insertSpace,g));u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}I(Vy);I(zy);I(Ky);I(Uy);class Yg{constructor(f){this.selections=f}equals(f){let u=this.selections.length,g=f.selections.length;if(u!==g)return!1;for(let v=0;v<u;v++)if(!this.selections[v].equalsSelection(f.selections[v]))return!1;return!0}}class Jg{constructor(f,u,g){this.cursorState=f,this.scrollTop=u,this.scrollLeft=g}}class nc extends n{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(f){return f.getContribution(nc.ID)}constructor(f){super();this._editor=f,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(f.onDidChangeModel((u)=>{this._undoStack=[],this._redoStack=[]})),this._register(f.onDidChangeModelContent((u)=>{this._undoStack=[],this._redoStack=[]})),this._register(f.onDidChangeCursorSelection((u)=>{if(this._isCursorUndoRedo)return;if(!u.oldSelections)return;if(u.oldModelVersionId!==u.modelVersionId)return;let g=new Yg(u.oldSelections);if(!(this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(g))){if(this._undoStack.push(new Jg(g,f.getScrollTop(),f.getScrollLeft())),this._redoStack=[],this._undoStack.length>50)this._undoStack.shift()}}))}cursorUndo(){if(!this._editor.hasModel()||this._undoStack.length===0)return;this._redoStack.push(new Jg(new Yg(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 Jg(new Yg(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop())}_applyState(f){this._isCursorUndoRedo=!0,this._editor.setSelections(f.cursorState.selections),this._editor.setScrollPosition({scrollTop:f.scrollTop,scrollLeft:f.scrollLeft}),this._isCursorUndoRedo=!1}}class qy extends z{constructor(){super({id:"cursorUndo",label:h(965,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:2099,weight:100}})}run(f,u,g){nc.get(u)?.cursorUndo()}}class jy extends z{constructor(){super({id:"cursorRedo",label:h(966,"Cursor Redo"),precondition:void 0})}run(f,u,g){nc.get(u)?.cursorRedo()}}le(nc.ID,nc,0);I(qy);I(jy);class Q_{constructor(f,u,g){this.selection=f,this.targetPosition=u,this.copy=g,this.targetSelection=null}getEditOperations(f,u){let g=f.getValueInRange(this.selection);if(!this.copy)u.addEditOperation(this.selection,null);if(u.addEditOperation(new t(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),g),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 O(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 O(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 O(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 O(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 O(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(f,u){return this.targetSelection}}function rc(f){if(ue)return f.altKey;else return f.ctrlKey}class sc extends n{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=ue?6:5}constructor(f){super();this._editor=f,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((u)=>this._onEditorMouseDown(u))),this._register(this._editor.onMouseUp((u)=>this._onEditorMouseUp(u))),this._register(this._editor.onMouseDrag((u)=>this._onEditorMouseDrag(u))),this._register(this._editor.onMouseDrop((u)=>this._onEditorMouseDrop(u))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown((u)=>this.onEditorKeyDown(u))),this._register(this._editor.onKeyUp((u)=>this.onEditorKeyUp(u))),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(f){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(rc(f))this._modifierPressed=!0;if(this._mouseDown&&rc(f))this._editor.updateOptions({mouseStyle:"copy"})}onEditorKeyUp(f){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(rc(f))this._modifierPressed=!1;if(this._mouseDown&&f.keyCode===sc.TRIGGER_KEY_VALUE)this._editor.updateOptions({mouseStyle:"default"})}_onEditorMouseDown(f){this._mouseDown=!0}_onEditorMouseUp(f){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(f){let u=f.target;if(this._dragSelection===null){let v=(this._editor.getSelections()||[]).filter((S)=>u.position&&S.containsPosition(u.position));if(v.length===1)this._dragSelection=v[0];else return}if(rc(f.event))this._editor.updateOptions({mouseStyle:"copy"});else this._editor.updateOptions({mouseStyle:"default"});if(u.position)if(this._dragSelection.containsPosition(u.position))this._removeDecoration();else this.showAt(u.position)}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(f){if(f.target&&(this._hitContent(f.target)||this._hitMargin(f.target))&&f.target.position){let u=new r(f.target.position.lineNumber,f.target.position.column);if(this._dragSelection===null){let g=null;if(f.event.shiftKey){let v=this._editor.getSelection();if(v){let{selectionStartLineNumber:S,selectionStartColumn:y}=v;g=[new O(S,y,u.lineNumber,u.column)]}}else g=(this._editor.getSelections()||[]).map((v)=>{if(v.containsPosition(u))return new O(u.lineNumber,u.column,u.lineNumber,u.column);else return v});this._editor.setSelections(g||[],"mouse",3)}else if(!this._dragSelection.containsPosition(u)||(rc(f.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(u)||this._dragSelection.getStartPosition().equals(u)))this._editor.pushUndoStop(),this._editor.executeCommand(sc.ID,new Q_(this._dragSelection,u,rc(f.event)||this._modifierPressed)),this._editor.pushUndoStop()}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=oe.register({description:"dnd-target",className:"dnd-target"})}showAt(f){this._dndDecorationIds.set([{range:new t(f.lineNumber,f.column,f.lineNumber,f.column),options:sc._DECORATION_OPTIONS}]),this._editor.revealPosition(f,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(f){return f.type===6||f.type===7}_hitMargin(f){return f.type===2||f.type===3||f.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}le(sc.ID,sc,2);function eb(f,u,g,v){if(f.getLineCount()===1&&f.getLineMaxColumn(1)===1)return[];let S=u.getLanguageConfiguration(f.getLanguageId()).indentRulesSupport;if(!S)return[];let y=new ug(f,S,u);v=Math.min(v,f.getLineCount());while(g<=v){if(!y.shouldIgnore(g))break;g++}if(g>v-1)return[];let{tabSize:D,indentSize:T,insertSpaces:R}=f.getOptions(),K=(ae,ge)=>(ge=ge||1,_r.shiftIndent(ae,ae.length+ge,D,T,R)),q=(ae,ge)=>(ge=ge||1,_r.unshiftIndent(ae,ae.length+ge,D,T,R)),ee=[],te=f.getLineContent(g),ne=Ct(te),re=ne;if(y.shouldIncrease(g))re=K(re),ne=K(ne);else if(y.shouldIndentNextLine(g))re=K(re);g++;for(let ae=g;ae<=v;ae++){if(x2(f,ae))continue;let ge=f.getLineContent(ae),ke=Ct(ge),Ae=re;if(y.shouldDecrease(ae,Ae))re=q(re),ne=q(ne);if(ke!==re)ee.push(Mt.replaceMove(new O(ae,1,ae,ke.length+1),cg(re,T,R)));if(y.shouldIgnore(ae))continue;else if(y.shouldIncrease(ae,Ae))ne=K(ne),re=ne;else if(y.shouldIndentNextLine(ae,Ae))re=K(re);else re=ne}return ee}function x2(f,u){if(!f.tokenization.isCheapToTokenize(u))return!1;return f.tokenization.getLineTokens(u).getStandardTokenType(0)===2}function io(f,u){let g=0;for(let v=0;v<f.length;v++)if(f.charAt(v)==="\t")g+=u;else g++;return g}function od(f,u,g){f=f<0?0:f;let v="";if(!g){let S=Math.floor(f/u);f=f%u;for(let y=0;y<S;y++)v+="\t"}for(let S=0;S<f;S++)v+=" ";return v}var I2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},L2=function(f,u){return function(g,v){u(g,v,f)}};class tb extends z{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:tb.ID,label:h(1204,"Convert Indentation to Spaces"),precondition:o.writable,metadata:{description:h(1205,"Convert the tab indentation to spaces.")}})}run(f,u){let g=u.getModel();if(!g)return;let v=g.getOptions(),S=u.getSelection();if(!S)return;let y=new Yy(S,v.tabSize);u.pushUndoStop(),u.executeCommands(this.id,[y]),u.pushUndoStop(),g.updateOptions({insertSpaces:!0})}}class ib extends z{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:ib.ID,label:h(1206,"Convert Indentation to Tabs"),precondition:o.writable,metadata:{description:h(1207,"Convert the spaces indentation to tabs.")}})}run(f,u){let g=u.getModel();if(!g)return;let v=g.getOptions(),S=u.getSelection();if(!S)return;let y=new Jy(S,v.tabSize);u.pushUndoStop(),u.executeCommands(this.id,[y]),u.pushUndoStop(),g.updateOptions({insertSpaces:!1})}}class ep extends z{constructor(f,u,g){super(g);this.insertSpaces=f,this.displaySizeOnly=u}run(f,u){let g=f.get(dn),v=f.get(gt),S=u.getModel();if(!S)return;let y=v.getCreationOptions(S.getLanguageId(),S.uri,S.isForSimpleWidget),D=S.getOptions(),T=[1,2,3,4,5,6,7,8].map((K)=>({id:K.toString(),label:K.toString(),description:K===y.tabSize&&K===D.tabSize?e(1200,"Configured Tab Size"):K===y.tabSize?e(1201,"Default Tab Size"):K===D.tabSize?e(1202,"Current Tab Size"):void 0})),R=Math.min(S.getOptions().tabSize-1,7);setTimeout(()=>{g.pick(T,{placeHolder:e(1203,"Select Tab Size for Current File"),activeItem:T[R]}).then((K)=>{if(K){if(S&&!S.isDisposed()){let q=parseInt(K.label,10);if(this.displaySizeOnly)S.updateOptions({tabSize:q});else S.updateOptions({tabSize:q,indentSize:q,insertSpaces:this.insertSpaces})}}})},50)}}class ob extends ep{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:ob.ID,label:h(1208,"Indent Using Tabs"),precondition:void 0,metadata:{description:h(1209,"Use indentation with tabs.")}})}}class nb extends ep{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:nb.ID,label:h(1210,"Indent Using Spaces"),precondition:void 0,metadata:{description:h(1211,"Use indentation with spaces.")}})}}class rb extends ep{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:rb.ID,label:h(1212,"Change Tab Display Size"),precondition:void 0,metadata:{description:h(1213,"Change the space size equivalent of the tab.")}})}}class sb extends z{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:sb.ID,label:h(1214,"Detect Indentation from Content"),precondition:void 0,metadata:{description:h(1215,"Detect the indentation from content.")}})}run(f,u){let g=f.get(gt),v=u.getModel();if(!v)return;let S=g.getCreationOptions(v.getLanguageId(),v.uri,v.isForSimpleWidget);v.detectIndentation(S.insertSpaces,S.tabSize)}}class $y extends z{constructor(){super({id:"editor.action.reindentlines",label:h(1216,"Reindent Lines"),precondition:o.writable,metadata:{description:h(1217,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(f,u){let g=f.get(Qe),v=u.getModel();if(!v)return;let S=eb(v,g,1,v.getLineCount());if(S.length>0)u.pushUndoStop(),u.executeEdits(this.id,S),u.pushUndoStop()}}class Gy extends z{constructor(){super({id:"editor.action.reindentselectedlines",label:h(1218,"Reindent Selected Lines"),precondition:o.writable,metadata:{description:h(1219,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(f,u){let g=f.get(Qe),v=u.getModel();if(!v)return;let S=u.getSelections();if(S===null)return;let y=[];for(let D of S){let{startLineNumber:T,endLineNumber:R}=D;if(T!==R&&D.endColumn===1)R--;if(T===1){if(T===R)continue}else T--;let K=eb(v,g,T,R);y.push(...K)}if(y.length>0)u.pushUndoStop(),u.executeEdits(this.id,y),u.pushUndoStop()}}class Zy{constructor(f,u){this._initialSelection=u,this._edits=[],this._selectionId=null;for(let g of f)if(g.range&&typeof g.text==="string")this._edits.push(g)}getEditOperations(f,u){for(let v of this._edits)u.addEditOperation(t.lift(v.range),v.text);let g=!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)g=!0,this._selectionId=u.trackSelection(this._initialSelection,!0);else if(this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber)g=!0,this._selectionId=u.trackSelection(this._initialSelection,!1)}if(!g)this._selectionId=u.trackSelection(this._initialSelection)}computeCursorState(f,u){return u.getTrackedSelection(this._selectionId)}}var Qg=class f{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(u,g){this.editor=u,this._languageConfigurationService=g,this.callOnDispose=new c,this.callOnModel=new c,this.callOnDispose.add(u.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(u.onDidChangeModel(()=>this.update())),this.callOnDispose.add(u.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:u})=>{this.trigger(u)}))}trigger(u){let g=this.editor.getSelections();if(g===null||g.length>1)return;let v=this.editor.getModel();if(!v)return;if(this.rangeContainsOnlyWhitespaceCharacters(v,u))return;if(!this.editor.getOption(18)&&k2(v,u))return;if(!v.tokenization.isCheapToTokenize(u.getStartPosition().lineNumber))return;let y=this.editor.getOption(16),{tabSize:D,indentSize:T,insertSpaces:R}=v.getOptions(),K=[],q={shiftIndent:(re)=>_r.shiftIndent(re,re.length+1,D,T,R),unshiftIndent:(re)=>_r.unshiftIndent(re,re.length+1,D,T,R)},ee=u.startLineNumber,te=v.getLineContent(ee);if(!/\S/.test(te.substring(0,u.startColumn-1))){let re=ef(y,v,v.getLanguageId(),ee,q,this._languageConfigurationService);if(re!==null){let ae=Ct(te),ge=io(re,D),ke=io(ae,D);if(ge!==ke){let Ae=od(ge,D,R);K.push({range:new t(ee,1,ee,ae.length+1),text:Ae}),te=Ae+te.substring(ae.length)}else{let Ae=l0(v,ee,this._languageConfigurationService);if(Ae===0||Ae===8)return}}}let ne=ee;while(ee<u.endLineNumber){if(!/\S/.test(v.getLineContent(ee+1))){ee++;continue}break}if(ee!==u.endLineNumber){let ae=ef(y,{tokenization:{getLineTokens:(ge)=>v.tokenization.getLineTokens(ge),getLanguageId:()=>v.getLanguageId(),getLanguageIdAtPosition:(ge,ke)=>v.getLanguageIdAtPosition(ge,ke)},getLineContent:(ge)=>{if(ge===ne)return te;else return v.getLineContent(ge)}},v.getLanguageId(),ee+1,q,this._languageConfigurationService);if(ae!==null){let ge=io(ae,D),ke=io(Ct(v.getLineContent(ee+1)),D);if(ge!==ke){let Ae=ge-ke;for(let He=ee+1;He<=u.endLineNumber;He++){let Ke=v.getLineContent(He),Ue=Ct(Ke),We=io(Ue,D)+Ae,et=od(We,D,R);if(et!==Ue)K.push({range:new t(He,1,He,Ue.length+1),text:et})}}}}if(K.length>0){this.editor.pushUndoStop();let re=new Zy(K,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",re),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(u,g){let v=(y)=>y.trim().length===0,S=!0;if(g.startLineNumber===g.endLineNumber){let D=u.getLineContent(g.startLineNumber).substring(g.startColumn-1,g.endColumn-1);S=v(D)}else for(let y=g.startLineNumber;y<=g.endLineNumber;y++){let D=u.getLineContent(y);if(y===g.startLineNumber){let T=D.substring(g.startColumn-1);S=v(T)}else if(y===g.endLineNumber){let T=D.substring(0,g.endColumn-1);S=v(T)}else S=u.getLineFirstNonWhitespaceColumn(y)===0;if(!S)break}return S}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};Qg=I2([L2(1,Qe)],Qg);function k2(f,u){let g=(v)=>RI(f,v)===2;return g(u.getStartPosition())||g(u.getEndPosition())}function Xy(f,u,g,v){if(f.getLineCount()===1&&f.getLineMaxColumn(1)===1)return;let S="";for(let D=0;D<g;D++)S+=" ";let y=new RegExp(S,"gi");for(let D=1,T=f.getLineCount();D<=T;D++){let R=f.getLineFirstNonWhitespaceColumn(D);if(R===0)R=f.getLineMaxColumn(D);if(R===1)continue;let K=new t(D,1,D,R),q=f.getValueInRange(K),ee=v?q.replace(/\t/ig,S):q.replace(y,"\t");u.addEditOperation(K,ee)}}class Yy{constructor(f,u){this.selection=f,this.tabSize=u,this.selectionId=null}getEditOperations(f,u){this.selectionId=u.trackSelection(this.selection),Xy(f,u,this.tabSize,!0)}computeCursorState(f,u){return u.getTrackedSelection(this.selectionId)}}class Jy{constructor(f,u){this.selection=f,this.tabSize=u,this.selectionId=null}getEditOperations(f,u){this.selectionId=u.trackSelection(this.selection),Xy(f,u,this.tabSize,!1)}computeCursorState(f,u){return u.getTrackedSelection(this.selectionId)}}le(Qg.ID,Qg,2);I(tb);I(ib);I(ob);I(nb);I(rb);I(sb);I($y);I(Gy);class Qy extends z{constructor(){super({id:"expandLineSelection",label:h(1309,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:o.textInputFocus,primary:2090}})}run(f,u,g){if(g=g||{},!u.hasModel())return;let v=u._getViewModel();v.model.pushStackElement(),v.setCursorStates(g.source,3,fi.expandLineSelection(v,v.getCursorStates())),v.revealAllCursors(g.source,!0)}}I(Qy);class ab{constructor(f,u,g){this._selection=f,this._cursors=u,this._selectionId=null,this._trimInRegexesAndStrings=g}getEditOperations(f,u){let g=E2(f,this._cursors,this._trimInRegexesAndStrings);for(let v=0,S=g.length;v<S;v++){let y=g[v];u.addEditOperation(y.range,y.text)}this._selectionId=u.trackSelection(this._selection)}computeCursorState(f,u){return u.getTrackedSelection(this._selectionId)}}function E2(f,u,g){u.sort((T,R)=>{if(T.lineNumber===R.lineNumber)return T.column-R.column;return T.lineNumber-R.lineNumber});for(let T=u.length-2;T>=0;T--)if(u[T].lineNumber===u[T+1].lineNumber)u.splice(T,1);let v=[],S=0,y=0,D=u.length;for(let T=1,R=f.getLineCount();T<=R;T++){let K=f.getLineContent(T),q=K.length+1,ee=0;if(y<D&&u[y].lineNumber===T){if(ee=u[y].column,y++,ee===q)continue}if(K.length===0)continue;let te=Fo(K),ne=0;if(te===-1)ne=1;else if(te!==K.length-1)ne=te+2;else continue;if(!g){if(!f.tokenization.hasAccurateTokensForLine(T))continue;let re=f.tokenization.getLineTokens(T),ae=re.getStandardTokenType(re.findTokenIndexAtOffset(ne));if(ae===2||ae===3)continue}ne=Math.max(ee,ne),v[S++]=Mt.delete(new t(T,ne,T,q))}return v}class tp{constructor(f,u,g){this._selection=f,this._isCopyingDown=u,this._noop=g||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(f,u){let g=this._selection;if(this._startLineNumberDelta=0,this._endLineNumberDelta=0,g.startLineNumber<g.endLineNumber&&g.endColumn===1)this._endLineNumberDelta=1,g=g.setEndPosition(g.endLineNumber-1,f.getLineMaxColumn(g.endLineNumber-1));let v=[];for(let y=g.startLineNumber;y<=g.endLineNumber;y++)v.push(f.getLineContent(y));let S=v.join(`
|
|
8
|
-
`);if(S===""){if(this._isCopyingDown)this._startLineNumberDelta++,this._endLineNumberDelta++}if(this._noop)u.addEditOperation(new t(g.endLineNumber,f.getLineMaxColumn(g.endLineNumber),g.endLineNumber+1,1),g.endLineNumber===f.getLineCount()?"":`
|
|
9
|
-
`);else if(!this._isCopyingDown)u.addEditOperation(new t(g.endLineNumber,f.getLineMaxColumn(g.endLineNumber),g.endLineNumber,f.getLineMaxColumn(g.endLineNumber)),`
|
|
10
|
-
`+S);else u.addEditOperation(new t(g.startLineNumber,1,g.startLineNumber,1),S+`
|
|
11
|
-
`);this._selectionId=u.trackSelection(g),this._selectionDirection=this._selection.getDirection()}computeCursorState(f,u){let g=u.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let v=g.startLineNumber,S=g.startColumn,y=g.endLineNumber,D=g.endColumn;if(this._startLineNumberDelta!==0)v=v+this._startLineNumberDelta,S=1;if(this._endLineNumberDelta!==0)y=y+this._endLineNumberDelta,D=1;g=O.createWithDirection(v,S,y,D,this._selectionDirection)}return g}}var D2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},T2=function(f,u){return function(g,v){u(g,v,f)}},ip=class f{constructor(u,g,v,S){this._languageConfigurationService=S,this._selection=u,this._isMovingDown=g,this._autoIndent=v,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(u,g,v){return{tokenization:{getLineTokens:(S)=>u.tokenization.getLineTokens(g(S)),getLanguageId:()=>u.getLanguageId(),getLanguageIdAtPosition:(S,y)=>u.getLanguageIdAtPosition(S,y)},getLineContent:(S)=>{let y=v?.(S);if(y!==void 0)return y;return u.getLineContent(g(S))}}}getEditOperations(u,g){let v=u.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===v){this._selectionId=g.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=g.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let S=this._selection;if(S.startLineNumber<S.endLineNumber&&S.endColumn===1)this._moveEndPositionDown=!0,S=S.setEndPosition(S.endLineNumber-1,u.getLineMaxColumn(S.endLineNumber-1));let{tabSize:y,indentSize:D,insertSpaces:T}=u.getOptions(),R=this.buildIndentConverter(y,D,T);if(S.startLineNumber===S.endLineNumber&&u.getLineMaxColumn(S.startLineNumber)===1){let K=S.startLineNumber,q=this._isMovingDown?K+1:K-1;if(u.getLineMaxColumn(q)===1)g.addEditOperation(new t(1,1,1,1),null);else g.addEditOperation(new t(K,1,K,1),u.getLineContent(q)),g.addEditOperation(new t(q,1,q,u.getLineMaxColumn(q)),null);S=new O(q,1,q,1)}else{let K,q;if(this._isMovingDown){K=S.endLineNumber+1,q=u.getLineContent(K),g.addEditOperation(new t(K-1,u.getLineMaxColumn(K-1),K,u.getLineMaxColumn(K)),null);let ee=q;if(this.shouldAutoIndent(u,S)){let te=this.matchEnterRule(u,R,y,K,S.startLineNumber-1);if(te!==null){let re=Ct(u.getLineContent(K)),ae=te+io(re,y);ee=od(ae,y,T)+this.trimStart(q)}else{let re=this.createVirtualModel(u,(ge)=>ge===S.startLineNumber?K:ge),ae=ef(this._autoIndent,re,u.getLanguageIdAtPosition(K,1),S.startLineNumber,R,this._languageConfigurationService);if(ae!==null){let ge=Ct(u.getLineContent(K)),ke=io(ae,y),Ae=io(ge,y);if(ke!==Ae)ee=od(ke,y,T)+this.trimStart(q)}}g.addEditOperation(new t(S.startLineNumber,1,S.startLineNumber,1),ee+`
|
|
12
|
-
`);let ne=this.matchEnterRuleMovingDown(u,R,y,S.startLineNumber,K,ee);if(ne!==null){if(ne!==0)this.getIndentEditsOfMovingBlock(u,g,S,y,T,ne)}else{let re=this.createVirtualModel(u,(ge)=>{if(ge===S.startLineNumber)return K;else if(ge>=S.startLineNumber+1&&ge<=S.endLineNumber+1)return ge-1;else return ge},(ge)=>ge===S.startLineNumber?ee:void 0),ae=ef(this._autoIndent,re,u.getLanguageIdAtPosition(K,1),S.startLineNumber+1,R,this._languageConfigurationService);if(ae!==null){let ge=Ct(u.getLineContent(S.startLineNumber)),ke=io(ae,y),Ae=io(ge,y);if(ke!==Ae){let He=ke-Ae;this.getIndentEditsOfMovingBlock(u,g,S,y,T,He)}}}}else g.addEditOperation(new t(S.startLineNumber,1,S.startLineNumber,1),ee+`
|
|
13
|
-
`)}else if(K=S.startLineNumber-1,q=u.getLineContent(K),g.addEditOperation(new t(K,1,K+1,1),null),g.addEditOperation(new t(S.endLineNumber,u.getLineMaxColumn(S.endLineNumber),S.endLineNumber,u.getLineMaxColumn(S.endLineNumber)),`
|
|
14
|
-
`+q),this.shouldAutoIndent(u,S)){let ee=this.createVirtualModel(u,(ne)=>ne===K?S.startLineNumber:ne),te=this.matchEnterRule(u,R,y,S.startLineNumber,S.startLineNumber-2);if(te!==null){if(te!==0)this.getIndentEditsOfMovingBlock(u,g,S,y,T,te)}else{let ne=ef(this._autoIndent,ee,u.getLanguageIdAtPosition(S.startLineNumber,1),K,R,this._languageConfigurationService);if(ne!==null){let re=Ct(u.getLineContent(S.startLineNumber)),ae=io(ne,y),ge=io(re,y);if(ae!==ge){let ke=ae-ge;this.getIndentEditsOfMovingBlock(u,g,S,y,T,ke)}}}}}this._selectionId=g.trackSelection(S)}buildIndentConverter(u,g,v){return{shiftIndent:(S)=>_r.shiftIndent(S,S.length+1,u,g,v),unshiftIndent:(S)=>_r.unshiftIndent(S,S.length+1,u,g,v)}}parseEnterResult(u,g,v,S,y){if(y){let D=y.indentation;if(y.indentAction===Hn.None)D=y.indentation+y.appendText;else if(y.indentAction===Hn.Indent)D=y.indentation+y.appendText;else if(y.indentAction===Hn.IndentOutdent)D=y.indentation;else if(y.indentAction===Hn.Outdent)D=g.unshiftIndent(y.indentation)+y.appendText;let T=u.getLineContent(S);if(this.trimStart(T).indexOf(this.trimStart(D))>=0){let R=Ct(u.getLineContent(S)),K=Ct(D),q=l0(u,S,this._languageConfigurationService);if(q!==null&&q&2)K=g.unshiftIndent(K);let ee=io(K,v),te=io(R,v);return ee-te}}return null}matchEnterRuleMovingDown(u,g,v,S,y,D){if(Fo(D)>=0){let T=u.getLineMaxColumn(y),R=tu(this._autoIndent,u,new t(y,T,y,T),this._languageConfigurationService);return this.parseEnterResult(u,g,v,S,R)}else{let T=S-1;while(T>=1){let q=u.getLineContent(T);if(Fo(q)>=0)break;T--}if(T<1||S>u.getLineCount())return null;let R=u.getLineMaxColumn(T),K=tu(this._autoIndent,u,new t(T,R,T,R),this._languageConfigurationService);return this.parseEnterResult(u,g,v,S,K)}}matchEnterRule(u,g,v,S,y,D){let T=y;while(T>=1){let q;if(T===y&&D!==void 0)q=D;else q=u.getLineContent(T);if(Fo(q)>=0)break;T--}if(T<1||S>u.getLineCount())return null;let R=u.getLineMaxColumn(T),K=tu(this._autoIndent,u,new t(T,R,T,R),this._languageConfigurationService);return this.parseEnterResult(u,g,v,S,K)}trimStart(u){return u.replace(/^\s+/,"")}shouldAutoIndent(u,g){if(this._autoIndent<4)return!1;if(!u.tokenization.isCheapToTokenize(g.startLineNumber))return!1;let v=u.getLanguageIdAtPosition(g.startLineNumber,1),S=u.getLanguageIdAtPosition(g.endLineNumber,1);if(v!==S)return!1;if(this._languageConfigurationService.getLanguageConfiguration(v).indentRulesSupport===null)return!1;return!0}getIndentEditsOfMovingBlock(u,g,v,S,y,D){for(let T=v.startLineNumber;T<=v.endLineNumber;T++){let R=u.getLineContent(T),K=Ct(R),ee=io(K,S)+D,te=od(ee,S,y);if(te!==K){if(g.addEditOperation(new t(T,1,T,K.length+1),te),T===v.endLineNumber&&v.endColumn<=K.length+1&&te==="")this._moveEndLineSelectionShrink=!0}}}computeCursorState(u,g){let v=g.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)v=v.setEndPosition(v.endLineNumber+1,1);if(this._moveEndLineSelectionShrink&&v.startLineNumber<v.endLineNumber)v=v.setEndPosition(v.endLineNumber,2);return v}};ip=D2([T2(3,Qe)],ip);class Dh{static{this._COLLATOR=sl.Collator()}constructor(f,u){this.selection=f,this.descending=u,this.selectionId=null}getEditOperations(f,u){let g=R2(f,this.selection,this.descending);if(g)u.addEditOperation(g.range,g.text);this.selectionId=u.trackSelection(this.selection)}computeCursorState(f,u){return u.getTrackedSelection(this.selectionId)}static canRun(f,u,g){if(f===null)return!1;let v=ex(f,u,g);if(!v)return!1;for(let S=0,y=v.before.length;S<y;S++)if(v.before[S]!==v.after[S])return!0;return!1}}function ex(f,u,g){let{startLineNumber:v,endLineNumber:S}=u;if(u.endColumn===1)S--;if(v>=S)return null;let y=[];for(let T=v;T<=S;T++)y.push(f.getLineContent(T));let D=y.slice(0);if(D.sort(Dh._COLLATOR.value.compare),g===!0)D=D.reverse();return{startLineNumber:v,endLineNumber:S,before:y,after:D}}function R2(f,u,g){let v=ex(f,u,g);if(!v)return null;return Mt.replace(new t(v.startLineNumber,1,v.endLineNumber,f.getLineMaxColumn(v.endLineNumber)),v.after.join(`
|
|
15
|
-
`))}class db extends z{constructor(f,u){super(u);this.down=f}run(f,u){if(!u.hasModel())return;let g=u.getSelections().map((y,D)=>({selection:y,index:D,ignore:!1}));g.sort((y,D)=>t.compareRangesUsingStarts(y.selection,D.selection));let v=g[0];for(let y=1;y<g.length;y++){let D=g[y];if(v.selection.endLineNumber===D.selection.startLineNumber)if(v.index<D.index)D.ignore=!0;else v.ignore=!0,v=D}let S=[];for(let y of g)S.push(new tp(y.selection,this.down,y.ignore));u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class tx extends db{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:h(1315,"Copy Line Up"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1310,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class ix extends db{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:h(1316,"Copy Line Down"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1311,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class ox extends z{constructor(){super({id:"editor.action.duplicateSelection",label:h(1317,"Duplicate Selection"),precondition:o.writable,menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1312,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(f,u,g){if(!u.hasModel())return;let v=[],S=u.getSelections(),y=u.getModel();for(let D of S)if(D.isEmpty())v.push(new tp(D,!0));else{let T=new O(D.endLineNumber,D.endColumn,D.endLineNumber,D.endColumn);v.push(new kS(T,y.getValueInRange(D)))}u.pushUndoStop(),u.executeCommands(this.id,v),u.pushUndoStop()}}class cb extends z{constructor(f,u){super(u);this.down=f}run(f,u){let g=f.get(Qe),v=[],S=u.getSelections()||[],y=u.getOption(16);for(let D of S)v.push(new ip(D,this.down,y,g));u.pushUndoStop(),u.executeCommands(this.id,v),u.pushUndoStop()}}class nx extends cb{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:h(1318,"Move Line Up"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1313,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class rx extends cb{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:h(1319,"Move Line Down"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1314,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class lb extends z{constructor(f,u){super(u);this.descending=f}run(f,u){if(!u.hasModel())return;let g=u.getModel(),v=u.getSelections();if(v.length===1&&v[0].isSingleLine())v=[new O(1,1,g.getLineCount(),g.getLineMaxColumn(g.getLineCount()))];for(let y of v)if(!Dh.canRun(u.getModel(),y,this.descending))return;let S=[];for(let y=0,D=v.length;y<D;y++)S[y]=new Dh(v[y],this.descending);u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class sx extends lb{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:h(1320,"Sort Lines Ascending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class ax extends lb{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:h(1321,"Sort Lines Descending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class dx extends z{constructor(){super({id:"editor.action.removeDuplicateLines",label:h(1322,"Delete Duplicate Lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(f,u){if(!u.hasModel())return;let g=u.getModel();if(g.getLineCount()===1&&g.getLineMaxColumn(1)===1)return;let v=[],S=[],y=0,D=!0,T=u.getSelections();if(T.length===1&&T[0].isSingleLine())T=[new O(1,1,g.getLineCount(),g.getLineMaxColumn(g.getLineCount()))],D=!1;for(let R of T){let K=new Set,q=[];for(let re=R.startLineNumber;re<=R.endLineNumber;re++){let ae=g.getLineContent(re);if(K.has(ae))continue;q.push(ae),K.add(ae)}let ee=new O(R.startLineNumber,1,R.endLineNumber,g.getLineMaxColumn(R.endLineNumber)),te=R.startLineNumber-y,ne=new O(te,1,te+q.length-1,q[q.length-1].length+1);v.push(Mt.replace(ee,q.join(`
|
|
16
|
-
`))),S.push(ne),y+=R.endLineNumber-R.startLineNumber+1-q.length}u.pushUndoStop(),u.executeEdits(this.id,v,D?S:void 0),u.pushUndoStop()}}class cx extends z{constructor(){super({id:"editor.action.reverseLines",label:h(1323,"Reverse lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(f,u){if(!u.hasModel())return;let g=u.getModel(),v=u.getSelections(),S=v;if(S.length===1&&S[0].isSingleLine())S=[new O(1,1,g.getLineCount(),g.getLineMaxColumn(g.getLineCount()))];let y=[],D=[];for(let T=0;T<S.length;T++){let R=S[T],K=v[T],q=R.endLineNumber;if(R.startLineNumber<R.endLineNumber&&R.endColumn===1)q--;let ee=new t(R.startLineNumber,1,q,g.getLineMaxColumn(q));if(q===g.getLineCount()&&g.getLineContent(ee.endLineNumber)==="")ee=ee.setEndPosition(ee.endLineNumber-1,g.getLineMaxColumn(ee.endLineNumber-1));let te=[];for(let ge=ee.endLineNumber;ge>=ee.startLineNumber;ge--)te.push(g.getLineContent(ge));let ne=Mt.replace(ee,te.join(`
|
|
17
|
-
`));y.push(ne);let re=function(ge){return ge<=ee.endLineNumber?ee.endLineNumber-ge+ee.startLineNumber:ge},ae=function(ge){if(ge.isEmpty())return new O(re(ge.positionLineNumber),ge.positionColumn,re(ge.positionLineNumber),ge.positionColumn);else{let ke=re(ge.selectionStartLineNumber),Ae=re(ge.positionLineNumber),{selectionStartColumn:He,positionColumn:Ke}=ge;return new O(ke,He,Ae,Ke)}};D.push(ae(K))}u.pushUndoStop(),u.executeEdits(this.id,y,D),u.pushUndoStop()}}class hb extends z{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:hb.ID,label:h(1324,"Trim Trailing Whitespace"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2102),weight:100}})}run(f,u,g){let v=[];if(g.reason==="auto-save")v=(u.getSelections()||[]).map((K)=>new r(K.positionLineNumber,K.positionColumn));let S=u.getSelection();if(S===null)return;let y=f.get(X),D=u.getModel(),T=y.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:D?.getLanguageId(),resource:D?.uri}),R=new ab(S,v,T);u.pushUndoStop(),u.executeCommands(this.id,[R]),u.pushUndoStop()}}class lx extends z{constructor(){super({id:"editor.action.deleteLines",label:h(1325,"Delete Line"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(f,u){if(!u.hasModel())return;let g=this._getLinesToRemove(u),v=u.getModel();if(v.getLineCount()===1&&v.getLineMaxColumn(1)===1)return;let S=0,y=[],D=[];for(let T=0,R=g.length;T<R;T++){let K=g[T],{startLineNumber:q,endLineNumber:ee}=K,te=1,ne=v.getLineMaxColumn(ee);if(ee<v.getLineCount())ee+=1,ne=1;else if(q>1)q-=1,te=v.getLineMaxColumn(q);y.push(Mt.replace(new O(q,te,ee,ne),"")),D.push(new O(q-S,K.positionColumn,q-S,K.positionColumn)),S+=K.endLineNumber-K.startLineNumber+1}u.pushUndoStop(),u.executeEdits(this.id,y,D),u.revealAllCursors(!0),u.pushUndoStop()}_getLinesToRemove(f){let u=f.getSelections().map((S)=>{let y=S.endLineNumber;if(S.startLineNumber<S.endLineNumber&&S.endColumn===1)y-=1;return{startLineNumber:S.startLineNumber,selectionStartColumn:S.selectionStartColumn,endLineNumber:y,positionColumn:S.positionColumn}});u.sort((S,y)=>{if(S.startLineNumber===y.startLineNumber)return S.endLineNumber-y.endLineNumber;return S.startLineNumber-y.startLineNumber});let g=[],v=u[0];for(let S=1;S<u.length;S++)if(v.endLineNumber+1>=u[S].startLineNumber)v.endLineNumber=u[S].endLineNumber;else g.push(v),v=u[S];return g.push(v),g}}class hx extends z{constructor(){super({id:"editor.action.indentLines",label:h(1326,"Indent Line"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(f,u){let g=u._getViewModel();if(!g)return;u.pushUndoStop(),u.executeCommands(this.id,cl.indent(g.cursorConfig,u.getModel(),u.getSelections())),u.pushUndoStop()}}class ux extends z{constructor(){super({id:"editor.action.outdentLines",label:h(1327,"Outdent Line"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(f,u){Eh.Outdent.runEditorCommand(f,u,null)}}class Ph extends z{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:Ph.ID,label:h(1328,"Insert Line Above"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(f,u){let g=u._getViewModel();if(!g)return;u.pushUndoStop(),u.executeCommands(this.id,kh.lineInsertBefore(g.cursorConfig,u.getModel(),u.getSelections()))}}class Ah extends z{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:Ah.ID,label:h(1329,"Insert Line Below"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(f,u){let g=u._getViewModel();if(!g)return;u.pushUndoStop(),u.executeCommands(this.id,kh.lineInsertAfter(g.cursorConfig,u.getModel(),u.getSelections()))}}class ub extends z{run(f,u){if(!u.hasModel())return;let g=u.getSelection(),v=this._getRangesToDelete(u),S=[];for(let T=0,R=v.length-1;T<R;T++){let K=v[T],q=v[T+1];if(t.intersectRanges(K,q)===null)S.push(K);else v[T+1]=t.plusRange(K,q)}S.push(v[v.length-1]);let y=this._getEndCursorState(g,S),D=S.map((T)=>Mt.replace(T,""));u.pushUndoStop(),u.executeEdits(this.id,D,y),u.pushUndoStop()}}class gx extends ub{constructor(){super({id:"deleteAllLeft",label:h(1330,"Delete All Left"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(f,u){let g=null,v=[],S=0;if(u.forEach((y)=>{let D;if(y.endColumn===1&&S>0){let T=y.startLineNumber-S;D=new O(T,y.startColumn,T,y.startColumn)}else D=new O(y.startLineNumber,y.startColumn,y.startLineNumber,y.startColumn);if(S+=y.endLineNumber-y.startLineNumber,y.intersectRanges(f))g=D;else v.push(D)}),g)v.unshift(g);return v}_getRangesToDelete(f){let u=f.getSelections();if(u===null)return[];let g=u,v=f.getModel();if(v===null)return[];return g.sort(t.compareRangesUsingStarts),g=g.map((S)=>{if(S.isEmpty())if(S.startColumn===1){let y=Math.max(1,S.startLineNumber-1),D=S.startLineNumber===1?1:v.getLineLength(y)+1;return new t(y,D,S.startLineNumber,1)}else return new t(S.startLineNumber,1,S.startLineNumber,S.startColumn);else return new t(S.startLineNumber,1,S.endLineNumber,S.endColumn)}),g}}class px extends ub{constructor(){super({id:"deleteAllRight",label:h(1331,"Delete All Right"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(f,u){let g=null,v=[];for(let S=0,y=u.length,D=0;S<y;S++){let T=u[S],R=new O(T.startLineNumber-D,T.startColumn,T.startLineNumber-D,T.startColumn);if(T.intersectRanges(f))g=R;else v.push(R)}if(g)v.unshift(g);return v}_getRangesToDelete(f){let u=f.getModel();if(u===null)return[];let g=f.getSelections();if(g===null)return[];let v=g.map((S)=>{if(S.isEmpty()){let y=u.getLineMaxColumn(S.startLineNumber);if(S.startColumn===y)return new t(S.startLineNumber,S.startColumn,S.startLineNumber+1,1);else return new t(S.startLineNumber,S.startColumn,S.startLineNumber,y)}return S});return v.sort(t.compareRangesUsingStarts),v}}class mx extends z{constructor(){super({id:"editor.action.joinLines",label:h(1332,"Join Lines"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(f,u){let g=u.getSelections();if(g===null)return;let v=u.getSelection();if(v===null)return;g.sort(t.compareRangesUsingStarts);let S=[],y=g.reduce((ee,te)=>{if(ee.isEmpty()){if(ee.endLineNumber===te.startLineNumber){if(v.equalsSelection(ee))v=te;return te}if(te.startLineNumber>ee.endLineNumber+1)return S.push(ee),te;else return new O(ee.startLineNumber,ee.startColumn,te.endLineNumber,te.endColumn)}else if(te.startLineNumber>ee.endLineNumber)return S.push(ee),te;else return new O(ee.startLineNumber,ee.startColumn,te.endLineNumber,te.endColumn)});S.push(y);let D=u.getModel();if(D===null)return;let T=[],R=[],K=v,q=0;for(let ee=0,te=S.length;ee<te;ee++){let ne=S[ee],re=ne.startLineNumber,ae=1,ge=0,ke,Ae,He=D.getLineLength(ne.endLineNumber)-ne.endColumn;if(ne.isEmpty()||ne.startLineNumber===ne.endLineNumber){let Te=ne.getStartPosition();if(Te.lineNumber<D.getLineCount())ke=re+1,Ae=D.getLineMaxColumn(ke);else ke=Te.lineNumber,Ae=D.getLineMaxColumn(Te.lineNumber)}else ke=ne.endLineNumber,Ae=D.getLineMaxColumn(ke);let Ke=D.getLineContent(re);for(let Te=re+1;Te<=ke;Te++){let We=D.getLineContent(Te),et=D.getLineFirstNonWhitespaceColumn(Te);if(et>=1){let tt=!0;if(Ke==="")tt=!1;if(tt&&(Ke.charAt(Ke.length-1)===" "||Ke.charAt(Ke.length-1)==="\t"))tt=!1,Ke=Ke.replace(/[\s\uFEFF\xA0]+$/g," ");let ot=We.substr(et-1);if(Ke+=(tt?" ":"")+ot,tt)ge=ot.length+1;else ge=ot.length}else ge=0}let Ue=new t(re,1,ke,Ae);if(!Ue.isEmpty()){let Te;if(ne.isEmpty())T.push(Mt.replace(Ue,Ke)),Te=new O(Ue.startLineNumber-q,Ke.length-ge+1,re-q,Ke.length-ge+1);else if(ne.startLineNumber===ne.endLineNumber)T.push(Mt.replace(Ue,Ke)),Te=new O(ne.startLineNumber-q,ne.startColumn,ne.endLineNumber-q,ne.endColumn);else T.push(Mt.replace(Ue,Ke)),Te=new O(ne.startLineNumber-q,ne.startColumn,ne.startLineNumber-q,Ke.length-He);if(t.intersectRanges(Ue,v)!==null)K=Te;else R.push(Te)}q+=Ue.endLineNumber-Ue.startLineNumber}R.unshift(K),u.pushUndoStop(),u.executeEdits(this.id,T,R),u.pushUndoStop()}}class fx extends z{constructor(){super({id:"editor.action.transpose",label:h(1333,"Transpose Characters around the Cursor"),precondition:o.writable,canTriggerInlineEdits:!0})}run(f,u){let g=u.getSelections();if(g===null)return;let v=u.getModel();if(v===null)return;let S=[];for(let y=0,D=g.length;y<D;y++){let T=g[y];if(!T.isEmpty())continue;let R=T.getStartPosition(),K=v.getLineMaxColumn(R.lineNumber);if(R.column>=K){if(R.lineNumber===v.getLineCount())continue;let q=new t(R.lineNumber,Math.max(1,R.column-1),R.lineNumber+1,1),ee=v.getValueInRange(q).split("").reverse().join("");S.push(new ii(new O(R.lineNumber,Math.max(1,R.column-1),R.lineNumber+1,1),ee))}else{let q=new t(R.lineNumber,Math.max(1,R.column-1),R.lineNumber,R.column+1),ee=v.getValueInRange(q).split("").reverse().join("");S.push(new Qp(q,ee,new O(R.lineNumber,R.column+1,R.lineNumber,R.column+1)))}}u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class ia extends z{run(f,u){let g=u.getSelections();if(g===null)return;let v=u.getModel();if(v===null)return;let S=u.getOption(148),y=[];for(let D of g)if(D.isEmpty()){let T=D.getStartPosition(),R=u.getConfiguredWordAtPosition(T);if(!R)continue;let K=new t(T.lineNumber,R.startColumn,T.lineNumber,R.endColumn),q=v.getValueInRange(K);y.push(Mt.replace(K,this._modifyText(q,S)))}else{let T=v.getValueInRange(D);y.push(Mt.replace(D,this._modifyText(T,S)))}u.pushUndoStop(),u.executeEdits(this.id,y),u.pushUndoStop()}}class _x extends ia{constructor(){super({id:"editor.action.transformToUppercase",label:h(1334,"Transform to Uppercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){return f.toLocaleUpperCase()}}class bx extends ia{constructor(){super({id:"editor.action.transformToLowercase",label:h(1335,"Transform to Lowercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){return f.toLocaleLowerCase()}}class Xo{constructor(f,u){this._pattern=f,this._flags=u,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(f){}}return this._actual}isSupported(){return this.get()!==null}}class op extends ia{static{this.titleBoundary=new Xo("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:h(1336,"Transform to Title Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){let g=op.titleBoundary.get();if(!g)return f;return f.toLocaleLowerCase().replace(g,(v)=>v.toLocaleUpperCase())}}class ac extends ia{static{this.caseBoundary=new Xo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Xo("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:h(1337,"Transform to Snake Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){let g=ac.caseBoundary.get(),v=ac.singleLetters.get();if(!g||!v)return f;return f.replace(g,"$1_$2").replace(v,"$1_$2$3").toLocaleLowerCase()}}class nd extends ia{static{this.singleLineWordBoundary=new Xo("[_\\s-]+","gm")}static{this.multiLineWordBoundary=new Xo("[_-]+","gm")}static{this.validWordStart=new Xo("^(\\p{Lu}[^\\p{Lu}])","gmu")}constructor(){super({id:"editor.action.transformToCamelcase",label:h(1338,"Transform to Camel Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){let g=/\r\n|\r|\n/.test(f)?nd.multiLineWordBoundary.get():nd.singleLineWordBoundary.get(),v=nd.validWordStart.get();if(!g||!v)return f;let S=f.split(g);return S.shift()?.replace(v,(D)=>D.toLocaleLowerCase())+S.map((D)=>D.substring(0,1).toLocaleUpperCase()+D.substring(1)).join("")}}class dc extends ia{static{this.wordBoundary=new Xo("[_ \\t-]","gm")}static{this.wordBoundaryToMaintain=new Xo("(?<=\\.)","gm")}static{this.upperCaseWordMatcher=new Xo("^\\p{Lu}+$","mu")}constructor(){super({id:"editor.action.transformToPascalcase",label:h(1339,"Transform to Pascal Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){let g=dc.wordBoundary.get(),v=dc.wordBoundaryToMaintain.get(),S=dc.upperCaseWordMatcher.get();if(!g||!v||!S)return f;return f.split(v).map((T)=>T.split(g)).flat().map((T)=>{let R=T.charAt(0).toLocaleUpperCase()+T.slice(1);if(R.length>1&&S.test(R))return R.charAt(0)+R.slice(1).toLocaleLowerCase();return R}).join("")}}class cc extends ia{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((u)=>u.isSupported())}static{this.caseBoundary=new Xo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Xo("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new Xo("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:h(1340,"Transform to Kebab Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,u){let g=cc.caseBoundary.get(),v=cc.singleLetters.get(),S=cc.underscoreBoundary.get();if(!g||!v||!S)return f;return f.replace(S,"$1-$3").replace(g,"$1-$2").replace(v,"$1-$2").toLocaleLowerCase()}}I(tx);I(ix);I(ox);I(nx);I(rx);I(sx);I(ax);I(dx);I(hb);I(lx);I(hx);I(ux);I(Ph);I(Ah);I(gx);I(px);I(mx);I(fx);I(_x);I(bx);I(cx);if(ac.caseBoundary.isSupported()&&ac.singleLetters.isSupported())I(ac);if(nd.singleLineWordBoundary.isSupported()&&nd.multiLineWordBoundary.isSupported())I(nd);if(dc.wordBoundary.isSupported())I(dc);if(op.titleBoundary.isSupported())I(op);if(cc.isSupported())I(cc);class Ao{constructor(f){this._editor=f,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 f=this._findScopeDecorationIds.map((u)=>this._editor.getModel().getDecorationRange(u)).filter((u)=>!!u);if(f.length)return f}return null}getStartPosition(){return this._startPosition}setStartPosition(f){this._startPosition=f,this.setCurrentFindMatch(null)}_getDecorationIndex(f){let u=this._decorations.indexOf(f);if(u>=0)return u+1;return 1}getDecorationRangeAt(f){let u=f<this._decorations.length?this._decorations[f]:null;if(u)return this._editor.getModel().getDecorationRange(u);return null}getCurrentMatchesPosition(f){let u=this._editor.getModel().getDecorationsInRange(f);for(let g of u){let v=g.options;if(v===Ao._FIND_MATCH_DECORATION||v===Ao._FIND_MATCH_NO_OVERVIEW_DECORATION||v===Ao._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(g.id)}return 0}setCurrentFindMatch(f){let u=null,g=0;if(f)for(let v=0,S=this._decorations.length;v<S;v++){let y=this._editor.getModel().getDecorationRange(this._decorations[v]);if(f.equalsRange(y)){u=this._decorations[v],g=v+1;break}}if(this._highlightedDecorationId!==null||u!==null)this._editor.changeDecorations((v)=>{if(this._highlightedDecorationId!==null)v.changeDecorationOptions(this._highlightedDecorationId,Ao._FIND_MATCH_DECORATION),this._highlightedDecorationId=null;if(u!==null)this._highlightedDecorationId=u,v.changeDecorationOptions(this._highlightedDecorationId,Ao._CURRENT_FIND_MATCH_DECORATION);if(this._rangeHighlightDecorationId!==null)v.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(u!==null){let S=this._editor.getModel().getDecorationRange(u);if(S.startLineNumber!==S.endLineNumber&&S.endColumn===1){let y=S.endLineNumber-1,D=this._editor.getModel().getLineMaxColumn(y);S=new t(S.startLineNumber,S.startColumn,y,D)}this._rangeHighlightDecorationId=v.addDecoration(S,Ao._RANGE_HIGHLIGHT_DECORATION)}});return g}set(f,u){this._editor.changeDecorations((g)=>{let v=Ao._FIND_MATCH_DECORATION,S=[];if(f.length>1000){v=Ao._FIND_MATCH_NO_OVERVIEW_DECORATION;let D=this._editor.getModel().getLineCount(),R=this._editor.getLayoutInfo().height/D,K=Math.max(2,Math.ceil(3/R)),q=f[0].range.startLineNumber,ee=f[0].range.endLineNumber;for(let te=1,ne=f.length;te<ne;te++){let re=f[te].range;if(ee+K>=re.startLineNumber){if(re.endLineNumber>ee)ee=re.endLineNumber}else S.push({range:new t(q,1,ee,1),options:Ao._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),q=re.startLineNumber,ee=re.endLineNumber}S.push({range:new t(q,1,ee,1),options:Ao._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let y=Array(f.length);for(let D=0,T=f.length;D<T;D++)y[D]={range:f[D].range,options:v};if(this._decorations=g.deltaDecorations(this._decorations,y),this._overviewRulerApproximateDecorations=g.deltaDecorations(this._overviewRulerApproximateDecorations,S),this._rangeHighlightDecorationId)g.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(this._findScopeDecorationIds.length)this._findScopeDecorationIds.forEach((D)=>g.removeDecoration(D)),this._findScopeDecorationIds=[];if(u?.length)this._findScopeDecorationIds=u.map((D)=>g.addDecoration(D,Ao._FIND_SCOPE_DECORATION))})}matchBeforePosition(f){if(this._decorations.length===0)return null;for(let u=this._decorations.length-1;u>=0;u--){let g=this._decorations[u],v=this._editor.getModel().getDecorationRange(g);if(!v||v.endLineNumber>f.lineNumber)continue;if(v.endLineNumber<f.lineNumber)return v;if(v.endColumn>f.column)continue;return v}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(f){if(this._decorations.length===0)return null;for(let u=0,g=this._decorations.length;u<g;u++){let v=this._decorations[u],S=this._editor.getModel().getDecorationRange(v);if(!S||S.startLineNumber<f.lineNumber)continue;if(S.startLineNumber>f.lineNumber)return S;if(S.startColumn<f.column)continue;return S}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let f=[];if(f=f.concat(this._decorations),f=f.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)f.push(...this._findScopeDecorationIds);if(this._rangeHighlightDecorationId)f.push(this._rangeHighlightDecorationId);return f}static{this._CURRENT_FIND_MATCH_DECORATION=oe.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:en(i0),position:ko.Center},minimap:{color:en(Jv),position:1}})}static{this._FIND_MATCH_DECORATION=oe.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:en(i0),position:ko.Center},minimap:{color:en(Jv),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=oe.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=oe.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:en(i0),position:ko.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=oe.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=oe.register({description:"find-scope",className:"findScope",isWholeLine:!0})}}class gb{constructor(f,u,g){this._editorSelection=f,this._ranges=u,this._replaceStrings=g,this._trackedEditorSelectionId=null}getEditOperations(f,u){if(this._ranges.length>0){let g=[];for(let y=0;y<this._ranges.length;y++)g.push({range:this._ranges[y],text:this._replaceStrings[y]});g.sort((y,D)=>t.compareRangesUsingStarts(y.range,D.range));let v=[],S=g[0];for(let y=1;y<g.length;y++)if(S.range.endLineNumber===g[y].range.startLineNumber&&S.range.endColumn===g[y].range.startColumn)S.range=S.range.plusRange(g[y].range),S.text=S.text+g[y].text;else v.push(S),S=g[y];v.push(S);for(let y of v)u.addEditOperation(y.range,y.text)}this._trackedEditorSelectionId=u.trackSelection(this._editorSelection)}computeCursorState(f,u){return u.getTrackedSelection(this._trackedEditorSelectionId)}}function pb(f,u){if(f&&f[0]!==""){let g=vx(f,u,"-"),v=vx(f,u,"_");if(g&&!v)return wx(f,u,"-");else if(!g&&v)return wx(f,u,"_");if(f[0].toUpperCase()===f[0])return u.toUpperCase();else if(f[0].toLowerCase()===f[0])return u.toLowerCase();else if(fI(f[0][0])&&u.length>0)return u[0].toUpperCase()+u.substr(1);else if(f[0][0].toUpperCase()!==f[0][0]&&u.length>0)return u[0].toLowerCase()+u.substr(1);else return u}else return u}function vx(f,u,g){return f[0].indexOf(g)!==-1&&u.indexOf(g)!==-1&&f[0].split(g).length===u.split(g).length}function wx(f,u,g){let v=u.split(g),S=f[0].split(g),y="";return v.forEach((D,T)=>{y+=pb([S[T]],D)+g}),y.slice(0,-1)}class mb{constructor(f){this.staticValue=f,this.kind=0}}class Sx{constructor(f){this.pieces=f,this.kind=1}}class sd{static fromStaticValue(f){return new sd([rd.staticValue(f)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(f){if(!f||f.length===0)this._state=new mb("");else if(f.length===1&&f[0].staticValue!==null)this._state=new mb(f[0].staticValue);else this._state=new Sx(f)}buildReplaceString(f,u){if(this._state.kind===0)if(u)return pb(f,this._state.staticValue);else return this._state.staticValue;let g="";for(let v=0,S=this._state.pieces.length;v<S;v++){let y=this._state.pieces[v];if(y.staticValue!==null){g+=y.staticValue;continue}let D=sd._substitute(y.matchIndex,f);if(y.caseOps!==null&&y.caseOps.length>0){let T=[],R=y.caseOps.length,K=0;for(let q=0,ee=D.length;q<ee;q++){if(K>=R){T.push(D.slice(q));break}switch(y.caseOps[K]){case"U":T.push(D[q].toUpperCase());break;case"u":T.push(D[q].toUpperCase()),K++;break;case"L":T.push(D[q].toLowerCase());break;case"l":T.push(D[q].toLowerCase()),K++;break;default:T.push(D[q])}}D=T.join("")}g+=D}return g}static _substitute(f,u){if(u===null)return"";if(f===0)return u[0];let g="";while(f>0){if(f<u.length)return(u[f]||"")+g;g=String(f%10)+g,f=Math.floor(f/10)}return"$"+g}}class rd{static staticValue(f){return new rd(f,-1,null)}static caseOps(f,u){return new rd(null,f,u)}constructor(f,u,g){if(this.staticValue=f,this.matchIndex=u,!g||g.length===0)this.caseOps=null;else this.caseOps=g.slice(0)}}class Cx{constructor(f){this._source=f,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(f){this._emitStatic(this._source.substring(this._lastCharIndex,f)),this._lastCharIndex=f}emitStatic(f,u){this._emitStatic(f),this._lastCharIndex=u}_emitStatic(f){if(f.length===0)return;this._currentStaticPiece+=f}emitMatchIndex(f,u,g){if(this._currentStaticPiece.length!==0)this._result[this._resultLen++]=rd.staticValue(this._currentStaticPiece),this._currentStaticPiece="";this._result[this._resultLen++]=rd.caseOps(f,g),this._lastCharIndex=u}finalize(){if(this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0)this._result[this._resultLen++]=rd.staticValue(this._currentStaticPiece),this._currentStaticPiece="";return new sd(this._result)}}function yx(f){if(!f||f.length===0)return new sd(null);let u=[],g=new Cx(f);for(let v=0,S=f.length;v<S;v++){let y=f.charCodeAt(v);if(y===92){if(v++,v>=S)break;let D=f.charCodeAt(v);switch(D){case 92:g.emitUnchanged(v-1),g.emitStatic("\\",v+1);break;case 110:g.emitUnchanged(v-1),g.emitStatic(`
|
|
18
|
-
`,v+1);break;case 116:g.emitUnchanged(v-1),g.emitStatic("\t",v+1);break;case 117:case 85:case 108:case 76:g.emitUnchanged(v-1),g.emitStatic("",v+1),u.push(String.fromCharCode(D));break}continue}if(y===36){if(v++,v>=S)break;let D=f.charCodeAt(v);if(D===36){g.emitUnchanged(v-1),g.emitStatic("$",v+1);continue}if(D===48||D===38){g.emitUnchanged(v-1),g.emitMatchIndex(0,v+1,u),u.length=0;continue}if(49<=D&&D<=57){let T=D-48;if(v+1<S){let R=f.charCodeAt(v+1);if(48<=R&&R<=57){v++,T=T*10+(R-48),g.emitUnchanged(v-2),g.emitMatchIndex(T,v+1,u),u.length=0;continue}}g.emitUnchanged(v-1),g.emitMatchIndex(T,v+1,u),u.length=0;continue}}}return g.finalize()}var zr=new A("findWidgetVisible",!1);zr.toNegated();var hc=new A("findInputFocussed",!1),Fh=new A("replaceInputFocussed",!1),xx=new A("findWidgetFocused",!1),Hh={primary:545,mac:{primary:2593}},Wh={primary:565,mac:{primary:2613}},Bh={primary:560,mac:{primary:2608}},Vh={primary:554,mac:{primary:2602}},zh={primary:558,mac:{primary:2606}},qt={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"},Vr=19999,N2=240;class lc{constructor(f,u){this._toDispose=new c,this._editor=f,this._state=u,this._isDisposed=!1,this._startSearchingTimer=new Un,this._decorations=new Ao(f),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new be(()=>{if(!this._editor.hasModel())return;return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((g)=>{if(g.reason===3||g.reason===5||g.reason===6)this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((g)=>{if(this._ignoreModelContentChanged)return;if(g.isFlush)this._decorations.reset();this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule()})),this._toDispose.add(this._state.onFindReplaceStateChange((g)=>this._onStateChanged(g))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,$e(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(f){if(this._isDisposed)return;if(!this._editor.hasModel())return;if(f.searchString||f.isReplaceRevealed||f.isRegex||f.wholeWord||f.matchCase||f.searchScope)if(this._editor.getModel().isTooLargeForSyncing())this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{if(f.searchScope)this.research(f.moveCursor,this._state.searchScope);else this.research(f.moveCursor)},N2);else if(f.searchScope)this.research(f.moveCursor,this._state.searchScope);else this.research(f.moveCursor)}static _getSearchRange(f,u){if(u)return u;return f.getFullModelRange()}research(f,u){let g=null;if(typeof u<"u"){if(u!==null)if(!Array.isArray(u))g=[u];else g=u}else g=this._decorations.getFindScopes();if(g!==null)g=g.map((D)=>{if(D.startLineNumber!==D.endLineNumber){let T=D.endLineNumber;if(D.endColumn===1)T=T-1;return new t(D.startLineNumber,1,T,this._editor.getModel().getLineMaxColumn(T))}return D});let v=this._findMatches(g,!1,Vr);this._decorations.set(v,g);let S=this._editor.getSelection(),y=this._decorations.getCurrentMatchesPosition(S);if(y===0&&v.length>0){let D=mh(v.map((T)=>T.range),(T)=>t.compareRangesUsingStarts(T,S)>=0);y=D>0?D-1+1:y}if(this._state.changeMatchInfo(y,this._decorations.getCount(),void 0),f&&this._editor.getOption(50).cursorMoveOnType)this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let f=this._decorations.getFindScope();if(f)this._editor.revealRangeInCenterIfOutsideViewport(f,0);return!0}return!1}_setCurrentFindMatch(f){let u=this._decorations.setCurrentFindMatch(f);this._state.changeMatchInfo(u,this._decorations.getCount(),f),this._editor.setSelection(f),this._editor.revealRangeInCenterIfOutsideViewport(f,0)}_prevSearchPosition(f){let u=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:g,column:v}=f,S=this._editor.getModel();if(u||v===1){if(g===1)g=S.getLineCount();else g--;v=S.getLineMaxColumn(g)}else v--;return new r(g,v)}_moveToPrevMatch(f,u=!1){if(!this._state.canNavigateBack()){let K=this._decorations.matchAfterPosition(f);if(K)this._setCurrentFindMatch(K);return}if(this._decorations.getCount()<Vr){let K=this._decorations.matchBeforePosition(f);if(K&&K.isEmpty()&&K.getStartPosition().equals(f))f=this._prevSearchPosition(f),K=this._decorations.matchBeforePosition(f);if(K)this._setCurrentFindMatch(K);return}if(this._cannotFind())return;let g=this._decorations.getFindScope(),v=lc._getSearchRange(this._editor.getModel(),g);if(v.getEndPosition().isBefore(f))f=v.getEndPosition();if(f.isBefore(v.getStartPosition()))f=v.getEndPosition();let{lineNumber:S,column:y}=f,D=this._editor.getModel(),T=new r(S,y),R=D.findPreviousMatch(this._state.searchString,T,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(R&&R.range.isEmpty()&&R.range.getStartPosition().equals(T))T=this._prevSearchPosition(T),R=D.findPreviousMatch(this._state.searchString,T,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(!R)return;if(!u&&!v.containsRange(R.range))return this._moveToPrevMatch(R.range.getStartPosition(),!0);this._setCurrentFindMatch(R.range)}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(f){let u=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:g,column:v}=f,S=this._editor.getModel();if(u||v===S.getLineMaxColumn(g)){if(g===S.getLineCount())g=1;else g++;v=1}else v++;return new r(g,v)}_moveToNextMatch(f){if(!this._state.canNavigateForward()){let g=this._decorations.matchBeforePosition(f);if(g)this._setCurrentFindMatch(g);return}if(this._decorations.getCount()<Vr){let g=this._decorations.matchAfterPosition(f);if(g&&g.isEmpty()&&g.getStartPosition().equals(f))f=this._nextSearchPosition(f),g=this._decorations.matchAfterPosition(f);if(g)this._setCurrentFindMatch(g);return}let u=this._getNextMatch(f,!1,!0);if(u)this._setCurrentFindMatch(u.range)}_getNextMatch(f,u,g,v=!1){if(this._cannotFind())return null;let S=this._decorations.getFindScope(),y=lc._getSearchRange(this._editor.getModel(),S);if(y.getEndPosition().isBefore(f))f=y.getStartPosition();if(f.isBefore(y.getStartPosition()))f=y.getStartPosition();let{lineNumber:D,column:T}=f,R=this._editor.getModel(),K=new r(D,T),q=R.findNextMatch(this._state.searchString,K,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,u);if(g&&q&&q.range.isEmpty()&&q.range.getStartPosition().equals(K))K=this._nextSearchPosition(K),q=R.findNextMatch(this._state.searchString,K,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,u);if(!q)return null;if(!v&&!y.containsRange(q.range))return this._getNextMatch(q.range.getEndPosition(),u,g,!0);return q}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(f){let u=this._decorations.getDecorationRangeAt(f);if(u)this._setCurrentFindMatch(u)}moveToMatch(f){this._moveToMatch(f)}_getReplacePattern(){if(this._state.isRegex)return yx(this._state.replaceString);return sd.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let f=this._getReplacePattern(),u=this._editor.getSelection(),g=this._getNextMatch(u.getStartPosition(),!0,!1);if(g)if(u.equalsRange(g.range)){let v=f.buildReplaceString(g.matches,this._state.preserveCase),S=new ii(u,v);this._executeEditorCommand("replace",S),this._decorations.setStartPosition(new r(u.startLineNumber,u.startColumn+v.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(g.range)}_findMatches(f,u,g){let v=(f||[null]).map((S)=>lc._getSearchRange(this._editor.getModel(),S));return this._editor.getModel().findMatches(this._state.searchString,v,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,u,g)}replaceAll(){if(!this._hasMatches())return;let f=this._decorations.getFindScopes();if(f===null&&this._state.matchesCount>=Vr)this._largeReplaceAll();else this._regularReplaceAll(f);this.research(!1)}_largeReplaceAll(){let u=new Oc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!u)return;let g=u.regex;if(!g.multiline){let q="mu";if(g.ignoreCase)q+="i";if(g.global)q+="g";g=new RegExp(g.source,q)}let v=this._editor.getModel(),S=v.getValue(1),y=v.getFullModelRange(),D=this._getReplacePattern(),T,R=this._state.preserveCase;if(D.hasReplacementPatterns||R)T=S.replace(g,function(){return D.buildReplaceString(arguments,R)});else T=S.replace(g,D.buildReplaceString(null,R));let K=new Qp(y,T,this._editor.getSelection());this._executeEditorCommand("replaceAll",K)}_regularReplaceAll(f){let u=this._getReplacePattern(),g=this._findMatches(f,u.hasReplacementPatterns||this._state.preserveCase,1073741824),v=[];for(let y=0,D=g.length;y<D;y++)v[y]=u.buildReplaceString(g[y].matches,this._state.preserveCase);let S=new gb(this._editor.getSelection(),g.map((y)=>y.range),v);this._executeEditorCommand("replaceAll",S)}selectAllMatches(){if(!this._hasMatches())return;let f=this._decorations.getFindScopes(),g=this._findMatches(f,!1,1073741824).map((S)=>new O(S.range.startLineNumber,S.range.startColumn,S.range.endLineNumber,S.range.endColumn)),v=this._editor.getSelection();for(let S=0,y=g.length;S<y;S++)if(g[S].equalsRange(v)){g=[v].concat(g.slice(0,S)).concat(g.slice(S+1));break}this._editor.setSelections(g)}_executeEditorCommand(f,u){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(f,u),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var M2=e(5,"input"),O2=e(6,"Preserve Case");class kx extends gl{constructor(f){super({icon:b.preserveCase,title:O2+f.appendTitle,isChecked:f.isChecked,hoverLifecycleOptions:f.hoverLifecycleOptions,inputActiveOptionBorder:f.inputActiveOptionBorder,inputActiveOptionForeground:f.inputActiveOptionForeground,inputActiveOptionBackground:f.inputActiveOptionBackground})}}class fb extends ni{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(f,u,g,v){super();this._showOptionButtons=g,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new i),this._onKeyDown=this._register(new i),this._onMouseDown=this._register(new i),this._onInput=this._register(new i),this._onKeyUp=this._register(new i),this._onPreserveCaseKeyDown=this._register(new i),this.contextViewProvider=u,this.placeholder=v.placeholder||"",this.validation=v.validation,this.label=v.label||M2;let S=v.appendPreserveCaseLabel||"",y=v.history||new Set([]),D=!!v.flexibleHeight,T=!!v.flexibleWidth,R=v.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new vy(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:y,showHistoryHint:v.showHistoryHint,flexibleHeight:D,flexibleWidth:T,flexibleMaxHeight:R,inputBoxStyles:v.inputBoxStyles})),this.preserveCase=this._register(new kx({appendTitle:S,isChecked:!1,hoverLifecycleOptions:v.hoverLifecycleOptions,...v.toggleStyles})),this._register(this.preserveCase.onChange((ee)=>{if(this._onDidOptionChange.fire(ee),!ee&&this.fixFocusOnOptionClickEnabled)this.inputBox.focus();this.validate()})),this._register(this.preserveCase.onKeyDown((ee)=>{this._onPreserveCaseKeyDown.fire(ee)})),this._showOptionButtons)this.cachedOptionsWidth=this.preserveCase.width();else this.cachedOptionsWidth=0;let K=[this.preserveCase.domNode];this.onkeydown(this.domNode,(ee)=>{k0(ee,this.domNode,()=>K,()=>this.inputBox.focus())});let q=document.createElement("div");q.className="controls",q.style.display=this._showOptionButtons?"block":"none",q.appendChild(this.preserveCase.domNode),this.domNode.appendChild(q),f?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(ee)=>this._onKeyDown.fire(ee)),this.onkeyup(this.inputBox.inputElement,(ee)=>this._onKeyUp.fire(ee)),this.oninput(this.inputBox.inputElement,(ee)=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,(ee)=>this._onMouseDown.fire(ee))}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(f){if(f)this.enable();else this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(f){this.preserveCase.checked=f}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(f){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=f+"px"}}var Ex=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Hx=function(f,u){return function(g,v){u(g,v,f)}},ap=new A("suggestWidgetVisible",!1,e(1793,"Whether suggestion are visible")),_b="historyNavigationWidgetFocus",qx="historyNavigationForwardsEnabled",Zx="historyNavigationBackwardsEnabled",Kh=void 0,np=[];function eI(f,u){if(np.includes(u))throw Error("Cannot register the same widget multiple times");np.push(u);let g=new c,v=new A(_b,!1).bindTo(f),S=new A(qx,!0).bindTo(f),y=new A(Zx,!0).bindTo(f),D=()=>{v.set(!0),Kh=u},T=()=>{if(v.set(!1),Kh===u)Kh=void 0};if(ts(u.element))D();return g.add(u.onDidFocus(()=>D())),g.add(u.onDidBlur(()=>T())),g.add(E(()=>{np.splice(np.indexOf(u),1),T()})),{historyNavigationForwardsEnablement:S,historyNavigationBackwardsEnablement:y,dispose(){g.dispose()}}}var rp=class f extends yy{constructor(u,g,v,S){super(u,g,v);let y=this._register(S.createScoped(this.inputBox.element));this._register(eI(y,this.inputBox))}};rp=Ex([Hx(3,V)],rp);var sp=class f extends fb{constructor(u,g,v,S,y=!1){super(u,g,y,v);let D=this._register(S.createScoped(this.inputBox.element));this._register(eI(D,this.inputBox))}};sp=Ex([Hx(3,V)],sp);bn.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:_.and(_.has(_b),_.equals(Zx,!0),ap.isEqualTo(!1)),primary:16,secondary:[528],handler:(f)=>{Kh?.showPreviousValue()}});bn.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:_.and(_.has(_b),_.equals(qx,!0),ap.isEqualTo(!1)),primary:18,secondary:[530],handler:(f)=>{Kh?.showNextValue()}});function bb(f){return f.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&f.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var tI=Tt("find-collapsed",b.chevronRight,e(1011,"Icon to indicate that the editor find widget is collapsed.")),iI=Tt("find-expanded",b.chevronDown,e(1012,"Icon to indicate that the editor find widget is expanded.")),P2=Tt("find-selection",b.selection,e(1013,"Icon for 'Find in Selection' in the editor find widget.")),A2=Tt("find-replace",b.replace,e(1014,"Icon for 'Replace' in the editor find widget.")),F2=Tt("find-replace-all",b.replaceAll,e(1015,"Icon for 'Replace All' in the editor find widget.")),H2=Tt("find-previous-match",b.arrowUp,e(1016,"Icon for 'Find Previous' in the editor find widget.")),W2=Tt("find-next-match",b.arrowDown,e(1017,"Icon for 'Find Next' in the editor find widget.")),B2=e(1018,"Find / Replace"),vb=e(1019,"Find"),V2=e(1020,"Find"),z2=e(1021,"Previous Match"),K2=e(1022,"Next Match"),U2=e(1023,"Find in Selection"),q2=e(1024,"Close"),wb=e(1025,"Replace"),j2=e(1026,"Replace"),$2=e(1027,"Replace"),G2=e(1028,"Replace All"),Z2=e(1029,"Toggle Replace"),X2=e(1030,"Only the first {0} results are highlighted, but all find operations work on the entire text.",Vr),Y2=e(1031,"{0} of {1}"),cp=e(1032,"No results"),Ur=419,J2=275,Q2=J2-54,Uh=69,eT=33,oI=ue?256:2048;class dp{constructor(f){this.afterLineNumber=f,this.heightInPx=eT,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function nI(f,u,g){let v=!!u.match(/\n/);if(g&&v&&g.selectionStart>0){f.stopPropagation();return}}function hI(f,u,g){let v=!!u.match(/\n/);if(g&&v&&g.selectionEnd<g.value.length){f.stopPropagation();return}}class Hl extends ni{static{this.ID="editor.contrib.findWidget"}constructor(f,u,g,v,S,y,D,T,R,K,q){super();if(this._hoverService=D,this._findWidgetSearchHistory=T,this._replaceWidgetHistory=R,this._configurationService=K,this._accessibilityService=q,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=f,this._controller=u,this._state=g,this._contextViewProvider=v,this._keybindingService=S,this._contextKeyService=y,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new Ci(500),this._register(E(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange((ee)=>this._onStateChanged(ee))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((ee)=>{if(ee.hasChanged(104)){if(this._codeEditor.getOption(104))this._state.change({isReplaceRevealed:!1},!1);this._updateButtons()}if(ee.hasChanged(166))this._tryUpdateWidgetWidth();if(ee.hasChanged(2))this.updateAccessibilitySupport();if(ee.hasChanged(50)){let te=this._codeEditor.getOption(50).loop;this._state.change({loop:te},!1);let ne=this._codeEditor.getOption(50).addExtraSpaceOnTop;if(ne&&!this._viewZone)this._viewZone=new dp(0),this._showViewZone();if(!ne&&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 ee=await this._controller.getGlobalBufferTerm();if(ee&&ee!==this._state.searchString)this._state.change({searchString:ee},!1),this._findInput.select()}})),this._findInputFocused=hc.bindTo(y),this._findFocusTracker=this._register(Zn(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=Fh.bindTo(y),this._replaceFocusTracker=this._register(Zn(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=xx.bindTo(y),this._widgetFocusTracker=this._register(Zn(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(l(this._domNode,"focusin",(ee)=>{if(xe(ee.target))this._lastFocusedElement=ee.target})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop)this._viewZone=new dp(0);this._register(this._codeEditor.onDidChangeModel(()=>{if(!this._isVisible)return;this._viewZoneId=void 0})),this._register(this._codeEditor.onDidScrollChange((ee)=>{if(ee.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return Hl.ID}getDomNode(){return this._domNode}getPosition(){if(this._isVisible)return{preference:0};return null}_onStateChanged(f){if(f.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(f.replaceString)this._replaceInput.inputBox.value=this._state.replaceString;if(f.isRevealed)if(this._state.isRevealed)this._reveal();else this._hide(!0);if(f.isReplaceRevealed){if(this._state.isReplaceRevealed){if(!this._codeEditor.getOption(104)&&!this._isReplaceVisible)this._isReplaceVisible=!0,this._replaceInput.width=ho(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()}else if(this._isReplaceVisible)this._isReplaceVisible=!1,this._updateButtons()}if((f.isRevealed||f.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)){if(this._tryUpdateHeight())this._showViewZone()}if(f.isRegex)this._findInput.setRegex(this._state.isRegex);if(f.wholeWord)this._findInput.setWholeWords(this._state.wholeWord);if(f.matchCase)this._findInput.setCaseSensitive(this._state.matchCase);if(f.preserveCase)this._replaceInput.setPreserveCase(this._state.preserveCase);if(f.searchScope){if(this._state.searchScope)this._toggleSelectionFind.checked=!0;else this._toggleSelectionFind.checked=!1;this._updateToggleSelectionFindButton()}if(f.searchString||f.matchesCount||f.matchesPosition){let u=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",u),this._updateMatchesCount(),this._updateButtons()}if(f.searchString||f.currentMatch)this._layoutViewZone();if(f.updateHistory)this._delayedUpdateHistory();if(f.loop)this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,J)}_updateHistory(){if(this._state.searchString)this._findInput.inputBox.addToHistory();if(this._state.replaceString)this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){if(this._matchesCount.style.minWidth=Uh+"px",this._state.matchesCount>=Vr)this._matchesCount.title=X2;else this._matchesCount.title="";this._matchesCount.firstChild?.remove();let f;if(this._state.matchesCount>0){let u=String(this._state.matchesCount);if(this._state.matchesCount>=Vr)u+="+";let g=String(this._state.matchesPosition);if(g==="0")g="?";f=qs(Y2,g,u)}else f=cp;this._matchesCount.appendChild(document.createTextNode(f)),En(this._getAriaLabel(f,this._state.currentMatch,this._state.searchString)),Uh=Math.max(Uh,this._matchesCount.clientWidth)}_getAriaLabel(f,u,g){let v;if(f===cp)v=g===""?e(1033,"{0} found",f):e(1034,"{0} found for '{1}'",f,g);else if(u){let S=e(1035,"{0} found for '{1}', at {2}",f,g,u.startLineNumber+":"+u.startColumn),y=this._codeEditor.getModel();if(y&&u.startLineNumber<=y.getLineCount()&&u.startLineNumber>=1)v=`${y.getLineContent(u.startLineNumber)}, ${S}`;else v=S}else v=e(1036,"{0} found for '{1}'",f,g);return v}_updateToggleSelectionFindButton(){let f=this._codeEditor.getSelection(),u=f?f.startLineNumber!==f.endLineNumber||f.startColumn!==f.endColumn:!1,g=this._toggleSelectionFind.checked;if(this._isVisible&&(g||u))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 f=this._state.searchString.length>0,u=this._state.matchesCount?!0:!1;this._prevBtn.setEnabled(this._isVisible&&f&&u&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&f&&u&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&f),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&f),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let g=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&g)}_reveal(){if(this._revealTimeouts.forEach((f)=>{clearTimeout(f)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let f=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 g=!!f&&f.startLineNumber!==f.endLineNumber;this._toggleSelectionFind.checked=g;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 u=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&f){let g=this._codeEditor.getDomNode();if(g){let v=mt(g),S=this._codeEditor.getScrolledVisiblePosition(f.getStartPosition()),y=v.left+(S?S.left:0),D=S?S.top:0;if(this._viewZone&&D<this._viewZone.heightInPx){if(f.endLineNumber>f.startLineNumber)u=!1;let T=Kx(this._domNode).left;if(y>T)u=!1;let R=this._codeEditor.getScrolledVisiblePosition(f.getEndPosition());if(v.left+(R?R.left:0)>T)u=!1}}}this._showViewZone(u)}}_hide(f){if(this._revealTimeouts.forEach((u)=>{clearTimeout(u)}),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(),f)this._codeEditor.focus();this._codeEditor.layoutOverlayWidget(this),this._removeViewZone()}}_layoutViewZone(f){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let g=this._viewZone;if(this._viewZoneId!==void 0||!g)return;this._codeEditor.changeViewZones((v)=>{g.heightInPx=this._getHeight(),this._viewZoneId=v.addZone(g),this._codeEditor.setScrollTop(f||this._codeEditor.getScrollTop()+g.heightInPx)})}_showViewZone(f=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;if(this._viewZone===void 0)this._viewZone=new dp(0);let g=this._viewZone;this._codeEditor.changeViewZones((v)=>{if(this._viewZoneId!==void 0){let S=this._getHeight();if(S===g.heightInPx)return;let y=S-g.heightInPx;if(g.heightInPx=S,v.layoutZone(this._viewZoneId),f)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+y);return}else{let S=this._getHeight();if(S-=this._codeEditor.getOption(96).top,S<=0)return;if(g.heightInPx=S,this._viewZoneId=v.addZone(g),f)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+S)}})}_removeViewZone(){this._codeEditor.changeViewZones((f)=>{if(this._viewZoneId!==void 0){if(f.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 f=this._codeEditor.getLayoutInfo();if(f.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else if(this._domNode.classList.contains("hiddenEditor"))this._domNode.classList.remove("hiddenEditor");let g=f.width,v=f.minimap.minimapWidth,S=!1,y=!1,D=!1;if(this._resized){if(ho(this._domNode)>Ur){this._domNode.style.maxWidth=`${g-28-v-15}px`,this._replaceInput.width=ho(this._findInput.domNode);return}}if(Ur+28+v>=g)y=!0;if(Ur+28+v-Uh>=g)D=!0;if(Ur+28+v-Uh>=g+50)S=!0;if(this._domNode.classList.toggle("collapsed-find-widget",S),this._domNode.classList.toggle("narrow-find-widget",D),this._domNode.classList.toggle("reduced-find-widget",y),!D&&!S)this._domNode.style.maxWidth=`${g-28-v-15}px`;if(this._findInput.layout({collapsedFindWidget:S,narrowFindWidget:D,reducedFindWidget:y}),this._resized){let T=this._findInput.inputBox.element.clientWidth;if(T>0)this._replaceInput.width=T}else if(this._isReplaceVisible)this._replaceInput.width=ho(this._findInput.domNode)}_getHeight(){let f=0;if(f+=4,f+=this._findInput.inputBox.height+2,this._isReplaceVisible)f+=4,f+=this._replaceInput.inputBox.height+2;return f+=4,f}_tryUpdateHeight(){let f=this._getHeight();if(this._cachedHeight!==null&&this._cachedHeight===f)return!1;return this._cachedHeight=f,this._domNode.style.height=`${f}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 f=this._codeEditor.getSelections();if(f.map((u)=>{if(u.endColumn===1&&u.endLineNumber>u.startLineNumber)u=u.setEndPosition(u.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(u.endLineNumber-1));let g=this._state.currentMatch;if(u.startLineNumber!==u.endLineNumber){if(!t.equalsRange(u,g))return u}return null}).filter((u)=>!!u),f.length)this._state.change({searchScope:f},!0)}}_onFindInputMouseDown(f){if(f.middleButton)f.stopPropagation()}_onFindInputKeyDown(f){if(f.equals(oI|3))if(this._keybindingService.dispatchEvent(f,f.target)){f.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
|
|
19
|
-
`),f.preventDefault();return}if(f.equals(2)){if(this._isReplaceVisible)this._replaceInput.focus();else this._findInput.focusOnCaseSensitive();f.preventDefault();return}if(f.equals(2066)){this._codeEditor.focus(),f.preventDefault();return}if(f.equals(16))return nI(f,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(f.equals(18))return hI(f,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(f){if(f.equals(oI|3))if(this._keybindingService.dispatchEvent(f,f.target)){f.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
|
|
20
|
-
`),f.preventDefault();return}if(f.equals(2)){this._findInput.focusOnCaseSensitive(),f.preventDefault();return}if(f.equals(1026)){this._findInput.focus(),f.preventDefault();return}if(f.equals(2066)){this._codeEditor.focus(),f.preventDefault();return}if(f.equals(16))return nI(f,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(f.equals(18))return hI(f,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(f){return 0}_keybindingLabelFor(f){return this._keybindingService.appendKeybinding("",f)}_buildDomNode(){let g=this._codeEditor.getOption(50).history,v=this._codeEditor.getOption(50).replaceHistory;if(this._findInput=this._register(new rp(null,this._contextViewProvider,{width:Q2,label:vb,placeholder:V2,appendCaseSensitiveLabel:this._keybindingLabelFor(qt.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(qt.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(qt.ToggleRegexCommand),validation:(q)=>{if(q.length===0||!this._findInput.getRegex())return null;try{return new RegExp(q,"gu"),null}catch(ee){return{content:ee.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>bb(this._keybindingService),inputBoxStyles:vg,toggleStyles:bg,history:g==="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((q)=>{if(q.equals(3)&&!this._codeEditor.getOption(50).findOnType)this._state.change({searchString:this._findInput.getValue()},!0);this._onFindInputKeyDown(q)})),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((q)=>{if(q.equals(1026)){if(this._isReplaceVisible)this._replaceInput.focus(),q.preventDefault()}})),this._register(this._findInput.onRegexKeyDown((q)=>{if(q.equals(2)){if(this._isReplaceVisible)this._replaceInput.focusOnPreserve(),q.preventDefault()}})),this._register(this._findInput.inputBox.onDidHeightChange((q)=>{if(this._tryUpdateHeight())this._showViewZone()})),zn)this._register(this._findInput.onMouseDown((q)=>this._onFindInputMouseDown(q)));this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();let S={groupId:"find-widget"};this._prevBtn=this._register(new bs({label:z2+this._keybindingLabelFor(qt.PreviousMatchFindAction),icon:H2,hoverLifecycleOptions:S,onTrigger:()=>{Xa(this._codeEditor.getAction(qt.PreviousMatchFindAction)).run().then(void 0,J)}},this._hoverService)),this._nextBtn=this._register(new bs({label:K2+this._keybindingLabelFor(qt.NextMatchFindAction),icon:W2,hoverLifecycleOptions:S,onTrigger:()=>{Xa(this._codeEditor.getAction(qt.NextMatchFindAction)).run().then(void 0,J)}},this._hoverService));let y=document.createElement("div");y.className="find-part",y.appendChild(this._findInput.domNode);let D=document.createElement("div");D.className="find-actions",y.appendChild(D),D.appendChild(this._matchesCount),D.appendChild(this._prevBtn.domNode),D.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new gl({icon:P2,title:U2+this._keybindingLabelFor(qt.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:S,inputActiveOptionBackground:N(Xd),inputActiveOptionBorder:N(Jp),inputActiveOptionForeground:N(Yp)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let q=this._codeEditor.getSelections();if(q=q.map((ee)=>{if(ee.endColumn===1&&ee.endLineNumber>ee.startLineNumber)ee=ee.setEndPosition(ee.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(ee.endLineNumber-1));if(!ee.isEmpty())return ee;return null}).filter((ee)=>!!ee),q.length)this._state.change({searchScope:q},!0)}}else this._state.change({searchScope:null},!0)})),D.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new bs({label:q2+this._keybindingLabelFor(qt.CloseFindWidgetCommand),icon:F0,hoverLifecycleOptions:S,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:(q)=>{if(q.equals(2)){if(this._isReplaceVisible){if(this._replaceBtn.isEnabled())this._replaceBtn.focus();else this._codeEditor.focus();q.preventDefault()}}}},this._hoverService)),this._replaceInput=this._register(new sp(null,void 0,{label:wb,placeholder:j2,appendPreserveCaseLabel:this._keybindingLabelFor(qt.TogglePreserveCaseCommand),history:v==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>bb(this._keybindingService),inputBoxStyles:vg,toggleStyles:bg,hoverLifecycleOptions:S},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((q)=>this._onReplaceInputKeyDown(q))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange((q)=>{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((q)=>{if(q.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();q.preventDefault()}})),this._replaceBtn=this._register(new bs({label:$2+this._keybindingLabelFor(qt.ReplaceOneAction),icon:A2,hoverLifecycleOptions:S,onTrigger:()=>{this._controller.replace()},onKeyDown:(q)=>{if(q.equals(1026))this._closeBtn.focus(),q.preventDefault()}},this._hoverService)),this._replaceAllBtn=this._register(new bs({label:G2+this._keybindingLabelFor(qt.ReplaceAllAction),icon:F2,hoverLifecycleOptions:S,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let T=document.createElement("div");T.className="replace-part",T.appendChild(this._replaceInput.domNode);let R=document.createElement("div");R.className="replace-actions",T.appendChild(R),R.appendChild(this._replaceBtn.domNode),R.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new bs({label:Z2,className:"codicon toggle left",onTrigger:()=>{if(this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible)this._replaceInput.width=ho(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=B2,this._domNode.role="dialog",this._domNode.style.width=`${Ur}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(y),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(T),this._resizeSash=this._register(new Ui(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let K=Ur;this._register(this._resizeSash.onDidStart(()=>{K=ho(this._domNode)})),this._register(this._resizeSash.onDidChange((q)=>{this._resized=!0;let ee=K+q.startX-q.currentX;if(ee<Ur)return;let te=parseFloat(zv(this._domNode).maxWidth)||0;if(ee>te)return;if(this._domNode.style.width=`${ee}px`,this._isReplaceVisible)this._replaceInput.width=ho(this._findInput.domNode);this._findInput.inputBox.layout(),this._tryUpdateHeight()})),this._register(this._resizeSash.onDidReset(()=>{let q=ho(this._domNode);if(q<Ur)return;let ee=Ur;if(!this._resized||q===Ur){let te=this._codeEditor.getLayoutInfo();ee=te.width-28-te.minimap.minimapWidth-15,this._resized=!0}if(this._domNode.style.width=`${ee}px`,this._isReplaceVisible)this._replaceInput.width=ho(this._findInput.domNode);this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let f=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(f!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let f=vb,u=wb;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){let g=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(g){let v=e(1037,"Press {0} for accessibility help",g);f=e(1038,"{0}, {1}",f,v),u=e(1039,"{0}, {1}",u,v)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=Jn(()=>{if(this._isVisible)this._findInput.inputBox.setAriaLabel(vb),this._replaceInput.inputBox.setAriaLabel(wb)},1000)}this._findInput.inputBox.setAriaLabel(f),this._replaceInput.inputBox.setAriaLabel(u)}getViewState(){let f=!1;if(this._viewZone&&this._viewZoneId)f=this._viewZone.heightInPx>this._codeEditor.getScrollTop();return{widgetViewZoneVisible:f,scrollTop:this._codeEditor.getScrollTop()}}setViewState(f){if(!f)return;if(f.widgetViewZoneVisible)this._layoutViewZone(f.scrollTop)}}class bs extends ni{constructor(f,u){super();this._opts=f;let g="button";if(this._opts.className)g=g+" "+this._opts.className;if(this._opts.icon)g=g+" "+G.asClassName(this._opts.icon);this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=g,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(u.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},f.hoverLifecycleOptions)),this.onclick(this._domNode,(v)=>{this._opts.onTrigger(),v.preventDefault()}),this.onkeydown(this._domNode,(v)=>{if(v.equals(10)||v.equals(3)){this._opts.onTrigger(),v.preventDefault();return}this._opts.onKeyDown?.(v)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(f){this._domNode.classList.toggle("disabled",!f),this._domNode.setAttribute("aria-disabled",String(!f)),this._domNode.tabIndex=f?0:-1}setExpanded(f){if(this._domNode.setAttribute("aria-expanded",String(!!f)),f)this._domNode.classList.remove(...G.asClassNameArray(tI)),this._domNode.classList.add(...G.asClassNameArray(iI));else this._domNode.classList.remove(...G.asClassNameArray(iI)),this._domNode.classList.add(...G.asClassNameArray(tI))}}oi((f,u)=>{let g=f.getColor(ll);if(g)u.addRule(`.monaco-editor .findMatch { border: 1px ${zo(f.type)?"dotted":"solid"} ${g}; box-sizing: border-box; }`);let v=f.getColor(MI);if(v)u.addRule(`.monaco-editor .findScope { border: 1px ${zo(f.type)?"dashed":"solid"} ${v}; }`);let S=f.getColor(Re);if(S)u.addRule(`.monaco-editor .find-widget { border: 1px solid ${S}; }`);let y=f.getColor(NI);if(y)u.addRule(`.monaco-editor .findMatchInline { color: ${y}; }`);let D=f.getColor(OI);if(D)u.addRule(`.monaco-editor .currentFindMatchInline { color: ${D}; }`)});class lp extends ni{static{this.ID="editor.contrib.findOptionsWidget"}constructor(f,u,g){super();this._hideSoon=this._register(new be(()=>this._hide(),2000)),this._isVisible=!1,this._editor=f,this._state=u,this._keybindingService=g,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 v={inputActiveOptionBorder:N(Jp),inputActiveOptionForeground:N(Yp),inputActiveOptionBackground:N(Xd)},S={groupId:"find-options-widget"};this.caseSensitive=this._register(new my({appendTitle:this._keybindingLabelFor(qt.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:S,...v})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new gy({appendTitle:this._keybindingLabelFor(qt.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:S,...v})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new by({appendTitle:this._keybindingLabelFor(qt.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:S,...v})),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((y)=>{let D=!1;if(y.isRegex)this.regex.checked=this._state.isRegex,D=!0;if(y.wholeWord)this.wholeWords.checked=this._state.wholeWord,D=!0;if(y.matchCase)this.caseSensitive.checked=this._state.matchCase,D=!0;if(!this._state.isRevealed&&D)this._revealTemporarily()})),this._register(l(this._domNode,x.MOUSE_LEAVE,(y)=>this._onMouseLeave())),this._register(l(this._domNode,"mouseover",(y)=>this._onMouseOver()))}_keybindingLabelFor(f){return this._keybindingService.appendKeybinding("",f)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return lp.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 hp(f,u){if(f===1)return!0;if(f===2)return!1;return u}class Sb extends n{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return hp(this._isRegexOverride,this._isRegex)}get wholeWord(){return hp(this._wholeWordOverride,this._wholeWord)}get matchCase(){return hp(this._matchCaseOverride,this._matchCase)}get preserveCase(){return hp(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 i),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(f,u,g){let v={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},S=!1;if(u===0)f=0;if(f>u)f=u;if(this._matchesPosition!==f)this._matchesPosition=f,v.matchesPosition=!0,S=!0;if(this._matchesCount!==u)this._matchesCount=u,v.matchesCount=!0,S=!0;if(typeof g<"u"){if(!t.equalsRange(this._currentMatch,g))this._currentMatch=g,v.currentMatch=!0,S=!0}if(S)this._onFindReplaceStateChange.fire(v)}change(f,u,g=!0){let v={moveCursor:u,updateHistory:g,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},S=!1,y=this.isRegex,D=this.wholeWord,T=this.matchCase,R=this.preserveCase;if(typeof f.searchString<"u"){if(this._searchString!==f.searchString)this._searchString=f.searchString,v.searchString=!0,S=!0}if(typeof f.replaceString<"u"){if(this._replaceString!==f.replaceString)this._replaceString=f.replaceString,v.replaceString=!0,S=!0}if(typeof f.isRevealed<"u"){if(this._isRevealed!==f.isRevealed)this._isRevealed=f.isRevealed,v.isRevealed=!0,S=!0}if(typeof f.isReplaceRevealed<"u"){if(this._isReplaceRevealed!==f.isReplaceRevealed)this._isReplaceRevealed=f.isReplaceRevealed,v.isReplaceRevealed=!0,S=!0}if(typeof f.isRegex<"u")this._isRegex=f.isRegex;if(typeof f.wholeWord<"u")this._wholeWord=f.wholeWord;if(typeof f.matchCase<"u")this._matchCase=f.matchCase;if(typeof f.preserveCase<"u")this._preserveCase=f.preserveCase;if(typeof f.searchScope<"u"){if(!f.searchScope?.every((K)=>this._searchScope?.some((q)=>!t.equalsRange(q,K))))this._searchScope=f.searchScope,v.searchScope=!0,S=!0}if(typeof f.loop<"u"){if(this._loop!==f.loop)this._loop=f.loop,v.loop=!0,S=!0}if(typeof f.isSearching<"u"){if(this._isSearching!==f.isSearching)this._isSearching=f.isSearching,v.isSearching=!0,S=!0}if(typeof f.filters<"u"){if(this._filters)this._filters.update(f.filters);else this._filters=f.filters;v.filters=!0,S=!0}if(this._isRegexOverride=typeof f.isRegexOverride<"u"?f.isRegexOverride:0,this._wholeWordOverride=typeof f.wholeWordOverride<"u"?f.wholeWordOverride:0,this._matchCaseOverride=typeof f.matchCaseOverride<"u"?f.matchCaseOverride:0,this._preserveCaseOverride=typeof f.preserveCaseOverride<"u"?f.preserveCaseOverride:0,y!==this.isRegex)S=!0,v.isRegex=!0;if(D!==this.wholeWord)S=!0,v.wholeWord=!0;if(T!==this.matchCase)S=!0,v.matchCase=!0;if(R!==this.preserveCase)S=!0,v.preserveCase=!0;if(S)this._onFindReplaceStateChange.fire(v)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=Vr}}var tT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},iT=function(f,u){return function(g,v){u(g,v,f)}},oa,up=class f{static{oa=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(u){if(!oa._instance)oa._instance=new oa(u);return oa._instance}constructor(u){this.storageService=u,this.inMemoryValues=new Set,this._onDidChangeEmitter=new i,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(u){let g=this.inMemoryValues.delete(u);return this.save(),g}add(u){return this.inMemoryValues.add(u),this.save(),this}has(u){return this.inMemoryValues.has(u)}forEach(u,g){return this.load(),this.inMemoryValues.forEach(u)}replace(u){this.inMemoryValues=new Set(u),this.save()}load(){let u,g=this.storageService.get(oa.FIND_HISTORY_KEY,1);if(g)try{u=JSON.parse(g)}catch(v){}this.inMemoryValues=new Set(u||[])}save(){let u=[];return this.inMemoryValues.forEach((g)=>u.push(g)),new Promise((g)=>{this.storageService.store(oa.FIND_HISTORY_KEY,JSON.stringify(u),1,0),this._onDidChangeEmitter.fire(u),g()})}};up=oa=tT([iT(0,xn)],up);var oT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},nT=function(f,u){return function(g,v){u(g,v,f)}},na,gp=class f{static{na=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(u){if(!na._instance)na._instance=new na(u);return na._instance}constructor(u){this.storageService=u,this.inMemoryValues=new Set,this._onDidChangeEmitter=new i,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(u){let g=this.inMemoryValues.delete(u);return this.save(),g}add(u){return this.inMemoryValues.add(u),this.save(),this}has(u){return this.inMemoryValues.has(u)}forEach(u,g){return this.load(),this.inMemoryValues.forEach(u)}replace(u){this.inMemoryValues=new Set(u),this.save()}load(){let u,g=this.storageService.get(na.FIND_HISTORY_KEY,1);if(g)try{u=JSON.parse(g)}catch(v){}this.inMemoryValues=new Set(u||[])}save(){let u=[];return this.inMemoryValues.forEach((g)=>u.push(g)),new Promise((g)=>{this.storageService.store(na.FIND_HISTORY_KEY,JSON.stringify(u),1,0),this._onDidChangeEmitter.fire(u),g()})}};gp=na=oT([nT(0,xn)],gp);var pI=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Vo=function(f,u){return function(g,v){u(g,v,f)}},Cb,rT=524288;function yb(f,u="single",g=!1){if(!f.hasModel())return null;let v=f.getSelection();if(u==="single"&&v.startLineNumber===v.endLineNumber||u==="multiple"){if(v.isEmpty()){let S=f.getConfiguredWordAtPosition(v.getStartPosition());if(S&&g===!1)return S.word}else if(f.getModel().getValueLengthInRange(v)<rT)return f.getModel().getValueInRange(v)}return null}var oo=class f extends n{static{Cb=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(u){return u.getContribution(Cb.ID)}constructor(u,g,v,S,y,D){super();this._editor=u,this._findWidgetVisible=zr.bindTo(g),this._contextKeyService=g,this._storageService=v,this._clipboardService=S,this._notificationService=y,this._hoverService=D,this._updateHistoryDelayer=this._register(new Ci(500)),this._state=this._register(new Sb),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((T)=>this._onStateChanged(T))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let T=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),T)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(u){if(this.saveQueryState(u),u.isRevealed)if(this._state.isRevealed)this._findWidgetVisible.set(!0);else this._findWidgetVisible.reset(),this.disposeModel();if(u.searchString)this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(u){if(u.isRegex)this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1);if(u.wholeWord)this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1);if(u.matchCase)this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1);if(u.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!!hc.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 u=this._editor.getSelections();if(u=u.map((g)=>{if(g.endColumn===1&&g.endLineNumber>g.startLineNumber)g=g.setEndPosition(g.endLineNumber-1,this._editor.getModel().getLineMaxColumn(g.endLineNumber-1));if(!g.isEmpty())return g;return null}).filter((g)=>!!g),u.length)this._state.change({searchScope:u},!0)}}setSearchString(u){if(this._state.isRegex)u=_i(u);this._state.change({searchString:u},!1)}highlightFindOptions(u=!1){}async _start(u,g){if(this.disposeModel(),!this._editor.hasModel())return;let v={...g,isRevealed:!0};if(u.seedSearchStringFromSelection==="single"){let S=yb(this._editor,u.seedSearchStringFromSelection,u.seedSearchStringFromNonEmptySelection);if(S)if(this._state.isRegex)v.searchString=_i(S);else v.searchString=S}else if(u.seedSearchStringFromSelection==="multiple"&&!u.updateSearchScope){let S=yb(this._editor,u.seedSearchStringFromSelection);if(S)v.searchString=S}if(!v.searchString&&u.seedSearchStringFromGlobalClipboard){let S=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;if(S)v.searchString=S}if(u.forceRevealReplace||v.isReplaceRevealed)v.isReplaceRevealed=!0;else if(!this._findWidgetVisible.get())v.isReplaceRevealed=!1;if(u.updateSearchScope){let S=this._editor.getSelections();if(S.some((y)=>!y.isEmpty()))v.searchScope=S}if(v.loop=u.loop,this._state.change(v,!1),!this._model)this._model=new lc(this._editor,this._state)}start(u,g){return this._start(u,g)}moveToNextMatch(){if(this._model)return this._model.moveToNextMatch(),!0;return!1}moveToPrevMatch(){if(this._model)return this._model.moveToPrevMatch(),!0;return!1}goToMatch(u){if(this._model)return this._model.moveToMatch(u),!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(u){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())this._clipboardService.writeFindText(u)}};oo=Cb=pI([Vo(1,V),Vo(2,xn),Vo(3,Xn),Vo(4,ut),Vo(5,yn)],oo);var xb=class f extends oo{constructor(u,g,v,S,y,D,T,R,K,q){super(u,v,D,T,y,R);this._contextViewService=g,this._keybindingService=S,this._configurationService=K,this._accessibilityService=q,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=up.getOrCreate(D),this._replaceWidgetHistory=gp.getOrCreate(D)}async _start(u,g){if(!this._widget)this._createFindWidget();let v=this._editor.getSelection(),S=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":S=!0;break;case"never":S=!1;break;case"multiline":{S=!!v&&v.startLineNumber!==v.endLineNumber;break}}if(u.updateSearchScope=u.updateSearchScope||S,await super._start(u,g),this._widget){if(u.shouldFocus===2)this._widget.focusReplaceInput();else if(u.shouldFocus===1)this._widget.focusFindInput()}}highlightFindOptions(u=!1){if(!this._widget)this._createFindWidget();if(this._state.isRevealed&&!u)this._widget.highlightFindOptions();else this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new Hl(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 lp(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(u){this._widget?.setViewState(u)}};xb=pI([Vo(1,Pr),Vo(2,V),Vo(3,ce),Vo(4,ut),Vo(5,xn),Vo(6,Xn),Vo(7,yn),Vo(8,X),Vo(9,Vt)],xb);var sT=Vv(new Xm({id:qt.StartFindAction,label:h(1002,"Find"),precondition:_.or(o.focus,_.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"3_find",title:e(995,"&&Find"),order:1}}));sT.addImplementation(0,(f,u,g)=>{let v=oo.get(u);if(!v)return!1;return v.start({forceRevealReplace:!1,seedSearchStringFromSelection:u.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:u.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop})});var aT={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 VI extends z{constructor(){super({id:qt.StartFindWithArgs,label:h(1003,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:aT})}async run(f,u,g){let v=oo.get(u);if(v){let S=g?{searchString:g.searchString,replaceString:g.replaceString,isReplaceRevealed:g.replaceString!==void 0,isRegex:g.isRegex,wholeWord:g.matchWholeWord,matchCase:g.isCaseSensitive,preserveCase:g.preserveCase}:{};await v.start({forceRevealReplace:!1,seedSearchStringFromSelection:v.getState().searchString.length===0&&u.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:g?.findInSelection||!1,loop:u.getOption(50).loop},S),v.setGlobalBufferTerm(v.getState().searchString)}}}class YI extends z{constructor(){super({id:qt.StartFindWithSelection,label:h(1004,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(f,u){let g=oo.get(u);if(g)await g.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop}),g.setGlobalBufferTerm(g.getState().searchString)}}async function JI(f,u){let g=oo.get(f);if(!g)return;let v=f.getOption(50).closeOnResult,S=g.getState().isRevealed,y=()=>{let D=g.editor.getSelection(),T=u?g.moveToNextMatch():g.moveToPrevMatch(),R=!1;if(T){let K=g.editor.getSelection();if(!D&&K)R=!0;else if(D&&K&&!D.equalsSelection(K))R=!0}if(R){if(g.editor.pushUndoStop(),v&&S&&g.isFindInputFocused())g.closeFindWidget();return!0}return!1};if(!y()){if(await g.start({forceRevealReplace:!1,seedSearchStringFromSelection:g.getState().searchString.length===0&&f.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:f.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:f.getOption(50).loop}),!y()){let D=g.getState();if(S&&D.matchesCount===0&&D.searchString)En(e(996,"{0} found for '{1}'",cp,D.searchString))}}}var dT=Vv(new Xm({id:qt.NextMatchFindAction,label:h(1005,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:o.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:_.and(o.focus,hc),primary:3,weight:100}]}));dT.addImplementation(0,async(f,u,g)=>JI(u,!0));var cT=Vv(new Xm({id:qt.PreviousMatchFindAction,label:h(1006,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:o.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:_.and(o.focus,hc),primary:1027,weight:100}]}));cT.addImplementation(0,async(f,u,g)=>JI(u,!1));class a0 extends z{constructor(){super({id:qt.GoToMatchFindAction,label:h(1007,"Go to Match..."),precondition:zr});this._highlightDecorations=[]}run(f,u){let g=oo.get(u);if(!g)return;let v=g.getState().matchesCount;if(v<1){f.get(ut).notify({severity:ul.Warning,message:e(997,"No matches. Try searching for something else.")});return}let S=f.get(dn),y=new c,D=y.add(S.createInputBox());D.placeholder=e(998,"Type a number to go to a specific match (between 1 and {0})",v);let T=(K)=>{let q=parseInt(K);if(isNaN(q))return;let ee=g.getState().matchesCount;if(q>0&&q<=ee)return q-1;else if(q<0&&q>=-ee)return ee+q;return},R=(K)=>{let q=T(K);if(typeof q==="number"){D.validationMessage=void 0,g.goToMatch(q);let ee=g.getState().currentMatch;if(ee)this.addDecorations(u,ee)}else D.validationMessage=e(999,"Please type a number between 1 and {0}",g.getState().matchesCount),this.clearDecorations(u)};y.add(D.onDidChangeValue((K)=>{R(K)})),y.add(D.onDidAccept(()=>{let K=T(D.value);if(typeof K==="number")g.goToMatch(K),D.hide();else D.validationMessage=e(1000,"Please type a number between 1 and {0}",g.getState().matchesCount)})),y.add(D.onDidHide(()=>{this.clearDecorations(u),y.dispose()})),D.show()}clearDecorations(f){f.changeDecorations((u)=>{this._highlightDecorations=u.deltaDecorations(this._highlightDecorations,[])})}addDecorations(f,u){f.changeDecorations((g)=>{this._highlightDecorations=g.deltaDecorations(this._highlightDecorations,[{range:u,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:u,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:en(c0),position:ko.Full}}}])})}}class Ib extends z{async run(f,u){let g=oo.get(u);if(!g)return;let v=yb(u,"single",!1);if(v)g.setSearchString(v);if(!this._run(g))await g.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop}),this._run(g)}}class b0 extends Ib{constructor(){super({id:qt.NextSelectionMatchFindAction,label:h(1008,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2109,weight:100}})}_run(f){return f.moveToNextMatch()}}class x0 extends Ib{constructor(){super({id:qt.PreviousSelectionMatchFindAction,label:h(1009,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3133,weight:100}})}_run(f){return f.moveToPrevMatch()}}var lT=Vv(new Xm({id:qt.StartFindReplaceAction,label:h(1010,"Replace"),precondition:_.or(o.focus,_.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"3_find",title:e(1001,"&&Replace"),order:2}}));lT.addImplementation(0,(f,u,g)=>{if(!u.hasModel()||u.getOption(104))return!1;let v=oo.get(u);if(!v)return!1;let S=u.getSelection(),y=v.isFindInputFocused(),D=!S.isEmpty()&&S.startLineNumber===S.endLineNumber&&u.getOption(50).seedSearchStringFromSelection!=="never"&&!y,T=y||D?2:1;return v.start({forceRevealReplace:!0,seedSearchStringFromSelection:D?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:u.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:T,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop})});le(oo.ID,xb,0);I(VI);I(YI);I(a0);I(b0);I(x0);var gr=Bt.bindToContribution(oo.get);U(new gr({id:qt.CloseFindWidgetCommand,precondition:zr,handler:(f)=>f.closeFindWidget(),kbOpts:{weight:105,kbExpr:o.focus,primary:9,secondary:[1033]}}));U(new gr({id:qt.ToggleCaseSensitiveCommand,precondition:void 0,handler:(f)=>f.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:o.focus,primary:Hh.primary,mac:Hh.mac,win:Hh.win,linux:Hh.linux}}));U(new gr({id:qt.ToggleWholeWordCommand,precondition:void 0,handler:(f)=>f.toggleWholeWords(),kbOpts:{weight:105,kbExpr:o.focus,primary:Wh.primary,mac:Wh.mac,win:Wh.win,linux:Wh.linux}}));U(new gr({id:qt.ToggleRegexCommand,precondition:void 0,handler:(f)=>f.toggleRegex(),kbOpts:{weight:105,kbExpr:o.focus,primary:Bh.primary,mac:Bh.mac,win:Bh.win,linux:Bh.linux}}));U(new gr({id:qt.ToggleSearchScopeCommand,precondition:void 0,handler:(f)=>f.toggleSearchScope(),kbOpts:{weight:105,kbExpr:o.focus,primary:Vh.primary,mac:Vh.mac,win:Vh.win,linux:Vh.linux}}));U(new gr({id:qt.TogglePreserveCaseCommand,precondition:void 0,handler:(f)=>f.togglePreserveCase(),kbOpts:{weight:105,kbExpr:o.focus,primary:zh.primary,mac:zh.mac,win:zh.win,linux:zh.linux}}));U(new gr({id:qt.ReplaceOneAction,precondition:zr,handler:(f)=>f.replace(),kbOpts:{weight:105,kbExpr:o.focus,primary:3094}}));U(new gr({id:qt.ReplaceOneAction,precondition:zr,handler:(f)=>f.replace(),kbOpts:{weight:105,kbExpr:_.and(o.focus,Fh),primary:3}}));U(new gr({id:qt.ReplaceAllAction,precondition:zr,handler:(f)=>f.replaceAll(),kbOpts:{weight:105,kbExpr:o.focus,primary:2563}}));U(new gr({id:qt.ReplaceAllAction,precondition:zr,handler:(f)=>f.replaceAll(),kbOpts:{weight:105,kbExpr:_.and(o.focus,Fh),primary:void 0,mac:{primary:2051}}}));U(new gr({id:qt.SelectAllMatchesAction,precondition:zr,handler:(f)=>f.selectAllMatches(),kbOpts:{weight:105,kbExpr:o.focus,primary:515}}));var hT=s("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);s("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);s("editor.wordHighlightTextBackground",hT,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 uT=s("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Ft,hcLight:Ft},e(1640,"Border color of a symbol during read-access, like reading a variable."));s("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Ft,hcLight:Ft},e(1641,"Border color of a symbol during write-access, like writing to a variable."));s("editor.wordHighlightTextBorder",uT,e(1642,"Border color of a textual occurrence for a symbol."));var gT=s("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),pT=s("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),mT=s("editorOverviewRuler.wordHighlightTextForeground",CS,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),fT=oe.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:en(pT),position:ko.Center},minimap:{color:en(Yv),position:1}}),_T=oe.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:en(mT),position:ko.Center},minimap:{color:en(Yv),position:1}}),bT=oe.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:en(CS),position:ko.Center},minimap:{color:en(Yv),position:1}}),vT=oe.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),wT=oe.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:en(gT),position:ko.Center},minimap:{color:en(Yv),position:1}});function rI(f){if(f===Vd.Write)return fT;else if(f===Vd.Text)return _T;else return wT}function N0(f){return f?vT:bT}oi((f,u)=>{let g=f.getColor(Gp);if(g)u.addRule(`.monaco-editor .selectionHighlight { background-color: ${g.transparent(0.5)}; }`)});var ST=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},CT=function(f,u){return function(g,v){u(g,v,f)}},Lb;function ra(f,u){let g=u.filter((v)=>!f.find((S)=>S.equals(v)));if(g.length>=1){let v=g.map((y)=>`line ${y.viewState.position.lineNumber} column ${y.viewState.position.column}`).join(", "),S=g.length===1?e(1354,"Cursor added: {0}",v):e(1355,"Cursors added: {0}",v);bo(S)}}class O0 extends z{constructor(){super({id:"editor.action.insertCursorAbove",label:h(1364,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1356,"&&Add Cursor Above"),order:2}})}run(f,u,g){if(!u.hasModel())return;let v=!0;if(g&&g.logicalLine===!1)v=!1;let S=u._getViewModel();if(S.cursorConfig.readOnly)return;S.model.pushStackElement();let y=S.getCursorStates();S.setCursorStates(g.source,3,fi.addCursorUp(S,y,v)),S.revealTopMostCursor(g.source),ra(y,S.getCursorStates())}}class W0 extends z{constructor(){super({id:"editor.action.insertCursorBelow",label:h(1365,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1357,"A&&dd Cursor Below"),order:3}})}run(f,u,g){if(!u.hasModel())return;let v=!0;if(g&&g.logicalLine===!1)v=!1;let S=u._getViewModel();if(S.cursorConfig.readOnly)return;S.model.pushStackElement();let y=S.getCursorStates();S.setCursorStates(g.source,3,fi.addCursorDown(S,y,v)),S.revealBottomMostCursor(g.source),ra(y,S.getCursorStates())}}class B0 extends z{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:h(1366,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1358,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(f,u,g){if(f.isEmpty())return;for(let v=f.startLineNumber;v<f.endLineNumber;v++){let S=u.getLineMaxColumn(v);g.push(new O(v,S,v,S))}if(f.endColumn>1)g.push(new O(f.endLineNumber,f.endColumn,f.endLineNumber,f.endColumn))}run(f,u){if(!u.hasModel())return;let g=u.getModel(),v=u.getSelections(),S=u._getViewModel(),y=S.getCursorStates(),D=[];if(v.forEach((T)=>this.getCursorsForSelection(T,g,D)),D.length>0)u.setSelections(D);ra(y,S.getCursorStates())}}class V0 extends z{constructor(){super({id:"editor.action.addCursorsToBottom",label:h(1367,"Add Cursors to Bottom"),precondition:void 0})}run(f,u){if(!u.hasModel())return;let g=u.getSelections(),v=u.getModel().getLineCount(),S=[];for(let T=g[0].startLineNumber;T<=v;T++)S.push(new O(T,g[0].startColumn,T,g[0].endColumn));let y=u._getViewModel(),D=y.getCursorStates();if(S.length>0)u.setSelections(S);ra(D,y.getCursorStates())}}class z0 extends z{constructor(){super({id:"editor.action.addCursorsToTop",label:h(1368,"Add Cursors to Top"),precondition:void 0})}run(f,u){if(!u.hasModel())return;let g=u.getSelections(),v=[];for(let D=g[0].startLineNumber;D>=1;D--)v.push(new O(D,g[0].startColumn,D,g[0].endColumn));let S=u._getViewModel(),y=S.getCursorStates();if(v.length>0)u.setSelections(v);ra(y,S.getCursorStates())}}class qh{constructor(f,u,g){this.selections=f,this.revealRange=u,this.revealScrollType=g}}class jh{static create(f,u){if(!f.hasModel())return null;let g=u.getState();if(!f.hasTextFocus()&&g.isRevealed&&g.searchString.length>0)return new jh(f,u,!1,g.searchString,g.wholeWord,g.matchCase,null);let v=!1,S,y,D=f.getSelections();if(D.length===1&&D[0].isEmpty())v=!0,S=!0,y=!0;else S=g.wholeWord,y=g.matchCase;let T=f.getSelection(),R,K=null;if(T.isEmpty()){let q=f.getConfiguredWordAtPosition(T.getStartPosition());if(!q)return null;R=q.word,K=new O(T.startLineNumber,q.startColumn,T.startLineNumber,q.endColumn)}else R=f.getModel().getValueInRange(T).replace(/\r\n/g,`
|
|
21
|
-
`);return new jh(f,u,v,R,S,y,K)}constructor(f,u,g,v,S,y,D){this._editor=f,this.findController=u,this.isDisconnectedFromFindController=g,this.searchText=v,this.wholeWord=S,this.matchCase=y,this.currentMatch=D}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let f=this._getNextMatch();if(!f)return null;let u=this._editor.getSelections();return new qh(u.concat(f),f,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let f=this._getNextMatch();if(!f)return null;let u=this._editor.getSelections();return new qh(u.slice(0,u.length-1).concat(f),f,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let v=this.currentMatch;return this.currentMatch=null,v}this.findController.highlightFindOptions();let f=this._editor.getSelections(),u=f[f.length-1],g=this._editor.getModel().findNextMatch(this.searchText,u.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!g)return null;return new O(g.range.startLineNumber,g.range.startColumn,g.range.endLineNumber,g.range.endColumn)}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let f=this._getPreviousMatch();if(!f)return null;let u=this._editor.getSelections();return new qh(u.concat(f),f,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let f=this._getPreviousMatch();if(!f)return null;let u=this._editor.getSelections();return new qh(u.slice(0,u.length-1).concat(f),f,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let v=this.currentMatch;return this.currentMatch=null,v}this.findController.highlightFindOptions();let f=this._editor.getSelections(),u=f[f.length-1],g=this._editor.getModel().findPreviousMatch(this.searchText,u.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!g)return null;return new O(g.range.startLineNumber,g.range.startColumn,g.range.endLineNumber,g.range.endColumn)}selectAll(f){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let u=this._editor.getModel();if(f)return u.findMatches(this.searchText,f,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824);return u.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}class uc extends n{static{this.ID="editor.contrib.multiCursorController"}static get(f){return f.getContribution(uc.ID)}constructor(f){super();this._sessionDispose=this._register(new c),this._editor=f,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(f){if(!this._session){let u=jh.create(this._editor,f);if(!u)return;this._session=u;let g={searchString:this._session.searchText};if(this._session.isDisconnectedFromFindController)g.wholeWordOverride=1,g.matchCaseOverride=1,g.isRegexOverride=2;f.getState().change(g,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((v)=>{if(this._ignoreSelectionChange)return;this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(f.getState().onFindReplaceStateChange((v)=>{if(v.matchCase||v.wholeWord)this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){let f={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(f,!1)}this._session=null}_setSelections(f){this._ignoreSelectionChange=!0,this._editor.setSelections(f),this._ignoreSelectionChange=!1}_expandEmptyToWord(f,u){if(!u.isEmpty())return u;let g=this._editor.getConfiguredWordAtPosition(u.getStartPosition());if(!g)return u;return new O(u.startLineNumber,g.startColumn,u.startLineNumber,g.endColumn)}_applySessionResult(f){if(!f)return;if(this._setSelections(f.selections),f.revealRange)this._editor.revealRangeInCenterIfOutsideViewport(f.revealRange,f.revealScrollType)}getSession(f){return this._session}addSelectionToNextFindMatch(f){if(!this._editor.hasModel())return;if(!this._session){let u=this._editor.getSelections();if(u.length>1){let v=f.getState().matchCase;if(!J0(this._editor.getModel(),u,v)){let y=this._editor.getModel(),D=[];for(let T=0,R=u.length;T<R;T++)D[T]=this._expandEmptyToWord(y,u[T]);this._editor.setSelections(D);return}}}if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.addSelectionToNextFindMatch())}addSelectionToPreviousFindMatch(f){if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(f){if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(f){if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(f){if(!this._editor.hasModel())return;let u=null,g=f.getState();if(g.isRevealed&&g.searchString.length>0&&g.isRegex){let v=this._editor.getModel();if(g.searchScope)u=v.findMatches(g.searchString,g.searchScope,g.isRegex,g.matchCase,g.wholeWord?this._editor.getOption(148):null,!1,1073741824);else u=v.findMatches(g.searchString,!0,g.isRegex,g.matchCase,g.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(f),!this._session)return;u=this._session.selectAll(g.searchScope)}if(u.length>0){let v=this._editor.getSelection();for(let S=0,y=u.length;S<y;S++){let D=u[S];if(D.range.intersectRanges(v)){u[S]=u[0],u[0]=D;break}}this._setSelections(u.map((S)=>new O(S.range.startLineNumber,S.range.startColumn,S.range.endLineNumber,S.range.endColumn)))}}}class ad extends z{run(f,u){let g=uc.get(u);if(!g)return;let v=u._getViewModel();if(v){let S=v.getCursorStates(),y=oo.get(u);if(y)this._run(g,y);else{let D=f.get(L).createInstance(oo,u);this._run(g,D),D.dispose()}ra(S,v.getCursorStates())}}}class K0 extends ad{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:h(1369,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2082,weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1359,"Add &&Next Occurrence"),order:5}})}_run(f,u){f.addSelectionToNextFindMatch(u)}}class U0 extends ad{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:h(1370,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1360,"Add P&&revious Occurrence"),order:6}})}_run(f,u){f.addSelectionToPreviousFindMatch(u)}}class q0 extends ad{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:h(1371,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:Jt(2089,2082),weight:100}})}_run(f,u){f.moveSelectionToNextFindMatch(u)}}class G0 extends ad{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:h(1372,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(f,u){f.moveSelectionToPreviousFindMatch(u)}}class Z0 extends ad{constructor(){super({id:"editor.action.selectHighlights",label:h(1373,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3114,weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1361,"Select All &&Occurrences"),order:7}})}_run(f,u){f.selectAll(u)}}class X0 extends ad{constructor(){super({id:"editor.action.changeAll",label:h(1374,"Change All Occurrences"),precondition:_.and(o.writable,o.editorTextFocus),kbOpts:{kbExpr:o.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(f,u){f.selectAll(u)}}class Y0{constructor(f,u,g,v,S){if(this._model=f,this._searchText=u,this._matchCase=g,this._wordSeparators=v,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),S&&this._model===S._model&&this._searchText===S._searchText&&this._matchCase===S._matchCase&&this._wordSeparators===S._wordSeparators&&this._modelVersionId===S._modelVersionId)this._cachedFindMatches=S._cachedFindMatches}findMatches(){if(this._cachedFindMatches===null)this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((f)=>f.range),this._cachedFindMatches.sort(t.compareRangesUsingStarts);return this._cachedFindMatches}}var pp=class f extends n{static{Lb=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(u,g){super();this._languageFeaturesService=g,this.editor=u,this._isEnabled=u.getOption(122),this._isEnabledMultiline=u.getOption(124),this._maxLength=u.getOption(123),this._decorations=u.createDecorationsCollection(),this.updateSoon=this._register(new be(()=>this._update(),300)),this.state=null,this._register(u.onDidChangeConfiguration((S)=>{this._isEnabled=u.getOption(122),this._isEnabledMultiline=u.getOption(124),this._maxLength=u.getOption(123)})),this._register(u.onDidChangeCursorSelection((S)=>{if(!this._isEnabled)return;if(S.selection.isEmpty())if(S.reason===3){if(this.state)this._setState(null);this.updateSoon.schedule()}else this._setState(null);else this._update()})),this._register(u.onDidChangeModel((S)=>{this._setState(null)})),this._register(u.onDidChangeModelContent((S)=>{if(this._isEnabled)this.updateSoon.schedule()}));let v=oo.get(u);if(v)this._register(v.getState().onFindReplaceStateChange((S)=>{this._update()}));this.updateSoon.schedule()}_update(){this._setState(Lb._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(u,g,v,S,y){if(!g)return null;if(!y.hasModel())return null;if(!v){let ee=y.getSelection();if(ee.startLineNumber!==ee.endLineNumber)return null}let D=uc.get(y);if(!D)return null;let T=oo.get(y);if(!T)return null;let R=D.getSession(T);if(!R){let ee=y.getSelections();if(ee.length>1){let ne=T.getState().matchCase;if(!J0(y.getModel(),ee,ne))return null}R=jh.create(y,T)}if(!R)return null;if(R.currentMatch)return null;if(/^[ \t]+$/.test(R.searchText))return null;if(S>0&&R.searchText.length>S)return null;let K=T.getState(),q=K.matchCase;if(K.isRevealed){let ee=K.searchString;if(!q)ee=ee.toLowerCase();let te=R.searchText;if(!q)te=te.toLowerCase();if(ee===te&&R.matchCase===K.matchCase&&R.wholeWord===K.wholeWord&&!K.isRegex)return null}return new Y0(y.getModel(),R.searchText,R.matchCase,R.wholeWord?y.getOption(148):null,u)}_setState(u){if(this.state=u,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let g=this.editor.getModel();if(g.isTooLargeForTokenization())return;let v=this.state.findMatches(),S=this.editor.getSelections();S.sort(t.compareRangesUsingStarts);let y=[];for(let K=0,q=0,ee=v.length,te=S.length;K<ee;){let ne=v[K];if(q>=te)y.push(ne),K++;else{let re=t.compareRangesUsingStarts(ne,S[q]);if(re<0){if(S[q].isEmpty()||!t.areIntersecting(ne,S[q]))y.push(ne);K++}else if(re>0)q++;else K++,q++}}let D=this.editor.getOption(90)!=="off",T=this._languageFeaturesService.documentHighlightProvider.has(g)&&D,R=y.map((K)=>({range:K,options:N0(T)}));this._decorations.set(R)}dispose(){this._setState(null),super.dispose()}};pp=Lb=ST([CT(1,j)],pp);function J0(f,u,g){let v=M0(f,u[0],!g);for(let S=1,y=u.length;S<y;S++){let D=u[S];if(D.isEmpty())return!1;let T=M0(f,D,!g);if(v!==T)return!1}return!0}function M0(f,u,g){let v=f.getValueInRange(u);return g?v.toLowerCase():v}class Q0 extends z{constructor(){super({id:"editor.action.focusNextCursor",label:h(1375,"Focus Next Cursor"),metadata:{description:e(1362,"Focuses the next cursor"),args:[]},precondition:void 0})}run(f,u,g){if(!u.hasModel())return;let v=u._getViewModel();if(v.cursorConfig.readOnly)return;v.model.pushStackElement();let S=Array.from(v.getCursorStates()),y=S.shift();if(!y)return;S.push(y),v.setCursorStates(g.source,3,S),v.revealPrimaryCursor(g.source,!0),ra(S,v.getCursorStates())}}class eL extends z{constructor(){super({id:"editor.action.focusPreviousCursor",label:h(1376,"Focus Previous Cursor"),metadata:{description:e(1363,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(f,u,g){if(!u.hasModel())return;let v=u._getViewModel();if(v.cursorConfig.readOnly)return;v.model.pushStackElement();let S=Array.from(v.getCursorStates()),y=S.pop();if(!y)return;S.unshift(y),v.setCursorStates(g.source,3,S),v.revealPrimaryCursor(g.source,!0),ra(S,v.getCursorStates())}}le(uc.ID,uc,4);le(pp.ID,pp,1);I(O0);I(W0);I(B0);I(K0);I(U0);I(q0);I(G0);I(Z0);I(X0);I(V0);I(z0);I(Q0);I(eL);class Ko{async provideSelectionRanges(f,u){let g=[];for(let v of u){let S=[];g.push(S);let y=new Map;await new Promise((D)=>Ko._bracketsRightYield(D,0,f,v,y)),await new Promise((D)=>Ko._bracketsLeftYield(D,0,f,v,y,S))}return g}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(f,u,g,v,S){let y=new Map,D=Date.now();while(!0){if(u>=Ko._maxRounds){f();break}if(!v){f();break}let T=g.bracketPairs.findNextBracket(v);if(!T){f();break}if(Date.now()-D>Ko._maxDuration){setTimeout(()=>Ko._bracketsRightYield(f,u+1,g,v,S));break}if(T.bracketInfo.isOpeningBracket){let K=T.bracketInfo.bracketText,q=y.has(K)?y.get(K):0;y.set(K,q+1)}else{let K=T.bracketInfo.getOpeningBrackets()[0].bracketText,q=y.has(K)?y.get(K):0;if(q-=1,y.set(K,Math.max(0,q)),q<0){let ee=S.get(K);if(!ee)ee=new Sn,S.set(K,ee);ee.push(T.range)}}v=T.range.getEndPosition()}}static _bracketsLeftYield(f,u,g,v,S,y){let D=new Map,T=Date.now();while(!0){if(u>=Ko._maxRounds&&S.size===0){f();break}if(!v){f();break}let R=g.bracketPairs.findPrevBracket(v);if(!R){f();break}if(Date.now()-T>Ko._maxDuration){setTimeout(()=>Ko._bracketsLeftYield(f,u+1,g,v,S,y));break}if(!R.bracketInfo.isOpeningBracket){let q=R.bracketInfo.getOpeningBrackets()[0].bracketText,ee=D.has(q)?D.get(q):0;D.set(q,ee+1)}else{let q=R.bracketInfo.bracketText,ee=D.has(q)?D.get(q):0;if(ee-=1,D.set(q,Math.max(0,ee)),ee<0){let te=S.get(q);if(te){let ne=te.shift();if(te.size===0)S.delete(q);let re=t.fromPositions(R.range.getEndPosition(),ne.getStartPosition()),ae=t.fromPositions(R.range.getStartPosition(),ne.getEndPosition());y.push({range:re}),y.push({range:ae}),Ko._addBracketLeading(g,ae,y)}}}v=R.range.getStartPosition()}}static _addBracketLeading(f,u,g){if(u.startLineNumber===u.endLineNumber)return;let v=u.startLineNumber,S=f.getLineFirstNonWhitespaceColumn(v);if(S!==0&&S!==u.startColumn)g.push({range:t.fromPositions(new r(v,S),u.getEndPosition())}),g.push({range:t.fromPositions(new r(v,1),u.getEndPosition())});let y=v-1;if(y>0){let D=f.getLineFirstNonWhitespaceColumn(y);if(D===u.startColumn&&D!==f.getLineLastNonWhitespaceColumn(y))g.push({range:t.fromPositions(new r(y,D),u.getEndPosition())}),g.push({range:t.fromPositions(new r(y,1),u.getEndPosition())})}}}class kb{constructor(f=!0){this.selectSubwords=f}provideSelectionRanges(f,u){let g=[];for(let v of u){let S=[];if(g.push(S),this.selectSubwords)this._addInWordRanges(S,f,v);this._addWordRanges(S,f,v),this._addWhitespaceLine(S,f,v),S.push({range:f.getFullModelRange()})}return g}_addInWordRanges(f,u,g){let v=u.getWordAtPosition(g);if(!v)return;let{word:S,startColumn:y}=v,D=g.column-y,T=D,R=D,K=0;for(;T>=0;T--){let q=S.charCodeAt(T);if(T!==D&&(q===95||q===45))break;else if(Lc(q)&&ba(K))break;K=q}T+=1;for(;R<S.length;R++){let q=S.charCodeAt(R);if(ba(q)&&Lc(K))break;else if(q===95||q===45)break;K=q}if(T<R)f.push({range:new t(g.lineNumber,y+T,g.lineNumber,y+R)})}_addWordRanges(f,u,g){let v=u.getWordAtPosition(g);if(v)f.push({range:new t(g.lineNumber,v.startColumn,g.lineNumber,v.endColumn)})}_addWhitespaceLine(f,u,g){if(u.getLineLength(g.lineNumber)>0&&u.getLineFirstNonWhitespaceColumn(g.lineNumber)===0&&u.getLineLastNonWhitespaceColumn(g.lineNumber)===0)f.push({range:new t(g.lineNumber,1,g.lineNumber,u.getLineMaxColumn(g.lineNumber))})}}var yT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},xT=function(f,u){return function(g,v){u(g,v,f)}},Eb;class Db{constructor(f,u){this.index=f,this.ranges=u}mov(f){let u=this.index+(f?1:-1);if(u<0||u>=this.ranges.length)return this;let g=new Db(u,this.ranges);if(g.ranges[u].equalsRange(this.ranges[this.index]))return g.mov(f);return g}}var $h=class f{static{Eb=this}static{this.ID="editor.contrib.smartSelectController"}static get(u){return u.getContribution(Eb.ID)}constructor(u,g){this._editor=u,this._languageFeaturesService=g,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(u){if(!this._editor.hasModel())return;let g=this._editor.getSelections(),v=this._editor.getModel();if(!this._state)await oL(this._languageFeaturesService.selectionRangeProvider,v,g.map((y)=>y.getPosition()),this._editor.getOption(129),he.None).then((y)=>{if(!Ln(y)||y.length!==g.length)return;if(!this._editor.hasModel()||!Ge(this._editor.getSelections(),g,(D,T)=>D.equalsSelection(T)))return;for(let D=0;D<y.length;D++)y[D]=y[D].filter((T)=>T.containsPosition(g[D].getStartPosition())&&T.containsPosition(g[D].getEndPosition())),y[D].unshift(g[D]);this._state=y.map((D)=>new Db(0,D)),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((y)=>y.mov(u));let S=this._state.map((y)=>O.fromPositions(y.ranges[y.index].getStartPosition(),y.ranges[y.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(S)}finally{this._ignoreSelection=!1}}};$h=Eb=yT([xT(1,j)],$h);class Tb extends z{constructor(f,u){super(u);this._forward=f}async run(f,u){let g=$h.get(u);if(g)await g.run(this._forward)}}class tL extends Tb{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:h(1469,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"1_basic",title:e(1467,"&&Expand Selection"),order:2}})}}we.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class iL extends Tb{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:h(1470,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"1_basic",title:e(1468,"&&Shrink Selection"),order:3}})}}le($h.ID,$h,4);I(tL);I(iL);async function oL(f,u,g,v,S){let y=f.all(u).concat(new kb(v.selectSubwords));if(y.length===1)y.unshift(new Ko);let D=[],T=[];for(let R of y)D.push(Promise.resolve(R.provideSelectionRanges(u,g,S)).then((K)=>{if(Ln(K)&&K.length===g.length)for(let q=0;q<g.length;q++){if(!T[q])T[q]=[];for(let ee of K[q])if(t.isIRange(ee.range)&&t.containsPosition(ee.range,g[q]))T[q].push(t.lift(ee.range))}},dt));return await Promise.all(D),T.map((R)=>{if(R.length===0)return[];R.sort((te,ne)=>{if(r.isBefore(te.getStartPosition(),ne.getStartPosition()))return 1;else if(r.isBefore(ne.getStartPosition(),te.getStartPosition()))return-1;else if(r.isBefore(te.getEndPosition(),ne.getEndPosition()))return-1;else if(r.isBefore(ne.getEndPosition(),te.getEndPosition()))return 1;else return 0});let K=[],q;for(let te of R)if(!q||t.containsRange(te,q)&&!t.equalsRange(te,q))K.push(te),q=te;if(!v.selectLeadingAndTrailingWhitespace)return K;let ee=[K[0]];for(let te=1;te<K.length;te++){let ne=K[te-1],re=K[te];if(re.startLineNumber!==ne.startLineNumber||re.endLineNumber!==ne.endLineNumber){let ae=new t(ne.startLineNumber,u.getLineFirstNonWhitespaceColumn(ne.startLineNumber),ne.endLineNumber,u.getLineLastNonWhitespaceColumn(ne.endLineNumber));if(ae.containsRange(ne)&&!ae.equalsRange(ne)&&re.containsRange(ae)&&!re.equalsRange(ae))ee.push(ae);let ge=new t(ne.startLineNumber,1,ne.endLineNumber,u.getLineMaxColumn(ne.endLineNumber));if(ge.containsRange(ne)&&!ge.equalsRange(ae)&&re.containsRange(ge)&&!re.equalsRange(ge))ee.push(ge)}ee.push(re)}return ee})}we.registerCommand("_executeSelectionRangeProvider",async function(f,...u){let[g,v]=u;Ie(W.isUri(g)),Ie(lI(v,(D)=>r.isIPosition(D)));let S=f.get(j).selectionRangeProvider,y=await f.get(gn).createModelReference(g);try{return oL(S,y.object.textEditorModel,v.map(r.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},he.None)}finally{y.dispose()}});class gc extends Bt{constructor(f){super(f);this._inSelectionMode=f.inSelectionMode,this._wordNavigationType=f.wordNavigationType}runEditorCommand(f,u,g){if(!u.hasModel())return;let v=wr(u.getOption(148),u.getOption(147)),S=u.getModel(),y=u.getSelections(),D=y.length>1,T=y.map((R)=>{let K=new r(R.positionLineNumber,R.positionColumn),q=this._move(v,S,K,this._wordNavigationType,D);return this._moveTo(R,q,this._inSelectionMode)});if(S.pushStackElement(),u._getViewModel().setCursorStates("moveWordCommand",3,T.map((R)=>Ve.fromModelSelection(R))),T.length===1){let R=new r(T[0].positionLineNumber,T[0].positionColumn);u.revealPosition(R,0)}}_moveTo(f,u,g){if(g)return new O(f.selectionStartLineNumber,f.selectionStartColumn,u.lineNumber,u.column);else return new O(u.lineNumber,u.column,u.lineNumber,u.column)}}class Ss extends gc{_move(f,u,g,v,S){return St.moveWordLeft(f,u,g,v,S)}}class Is extends gc{_move(f,u,g,v,S){return St.moveWordRight(f,u,g,v)}}class nL extends Ss{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class rL extends Ss{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class sL extends Ss{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(Yd,uy)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class aL extends Ss{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class dL extends Ss{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class cL extends Ss{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(Yd,uy)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class lL extends Ss{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(f,u,g,v,S){return super._move(wr(zi.wordSeparators.defaultValue,f.intlSegmenterLocales),u,g,v,S)}}class hL extends Ss{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(f,u,g,v,S){return super._move(wr(zi.wordSeparators.defaultValue,f.intlSegmenterLocales),u,g,v,S)}}class uL extends Is{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class gL extends Is{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(Yd,uy)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class pL extends Is{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class mL extends Is{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class fL extends Is{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(Yd,uy)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class _L extends Is{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class bL extends Is{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(f,u,g,v,S){return super._move(wr(zi.wordSeparators.defaultValue,f.intlSegmenterLocales),u,g,v,S)}}class vL extends Is{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(f,u,g,v,S){return super._move(wr(zi.wordSeparators.defaultValue,f.intlSegmenterLocales),u,g,v,S)}}class pc extends Bt{constructor(f){super({canTriggerInlineEdits:!0,...f});this._whitespaceHeuristics=f.whitespaceHeuristics,this._wordNavigationType=f.wordNavigationType}runEditorCommand(f,u,g){let v=f?.get(Qe);if(!u.hasModel()||!v)return;let S=wr(u.getOption(148),u.getOption(147)),y=u.getModel(),D=u.getSelections(),T=u.getOption(10),R=u.getOption(15),K=v.getLanguageConfiguration(y.getLanguageId()).getAutoClosingPairs(),q=u._getViewModel(),ee=D.map((te)=>{let ne=this._delete({wordSeparators:S,model:y,selection:te,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:u.getOption(13),autoClosingBrackets:T,autoClosingQuotes:R,autoClosingPairs:K,autoClosedCharacters:q.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ii(ne,"")});u.pushUndoStop(),u.executeCommands(this.id,ee),u.pushUndoStop()}}class mp extends pc{_delete(f,u){let g=St.deleteWordLeft(f,u);if(g)return g;return new t(1,1,1,1)}}class fp extends pc{_delete(f,u){let g=St.deleteWordRight(f,u);if(g)return g;let v=f.model.getLineCount(),S=f.model.getLineMaxColumn(v);return new t(v,S,v,S)}}class wL extends mp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:o.writable})}}class SL extends mp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:o.writable})}}class CL extends mp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class yL extends fp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:o.writable})}}class xL extends fp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:o.writable})}}class IL extends fp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class LL extends z{constructor(){super({id:"deleteInsideWord",precondition:o.writable,label:h(1650,"Delete Word"),metadata:{description:h(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(f,u,g){if(!u.hasModel())return;let v=!!(g&&typeof g==="object"&&g.onlyWord),S=wr(u.getOption(148),u.getOption(147)),y=u.getModel(),T=u.getSelections().map((R)=>{let K=St.deleteInsideWord(S,y,R,v);return new ii(K,"")});u.pushUndoStop(),u.executeCommands(this.id,T),u.pushUndoStop()}}U(new nL);U(new rL);U(new sL);U(new aL);U(new dL);U(new cL);U(new uL);U(new gL);U(new pL);U(new mL);U(new fL);U(new _L);U(new lL);U(new hL);U(new bL);U(new vL);U(new wL);U(new SL);U(new CL);U(new yL);U(new xL);U(new IL);I(LL);class kL extends pc{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(f,u){let g=dg.deleteWordPartLeft(f);if(g)return g;return new t(1,1,1,1)}}class EL extends pc{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(f,u){let g=dg.deleteWordPartRight(f);if(g)return g;let v=f.model.getLineCount(),S=f.model.getLineMaxColumn(v);return new t(v,S,v,S)}}class Rb extends gc{_move(f,u,g,v,S){return dg.moveWordPartLeft(f,u,g,S)}}class DL extends Rb{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}we.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class TL extends Rb{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}we.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class Nb extends gc{_move(f,u,g,v,S){return dg.moveWordPartRight(f,u,g)}}class RL extends Nb{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class NL extends Nb{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}U(new kL);U(new EL);U(new DL);U(new TL);U(new RL);U(new NL);var IT={[0]:" ",[1]:"u",[2]:"r"};var mc=16777215;class _p{constructor(f){let u=Math.ceil(f/32);this._states=new Uint32Array(u)}get(f){let u=f/32|0,g=f%32;return(this._states[u]&1<<g)!==0}set(f,u){let g=f/32|0,v=f%32,S=this._states[g];if(u)this._states[g]=S|1<<v;else this._states[g]=S&~(1<<v)}}class Yi{constructor(f,u,g){if(f.length!==u.length||f.length>65535)throw Error("invalid startIndexes or endIndexes size");this._startIndexes=f,this._endIndexes=u,this._collapseStates=new _p(f.length),this._userDefinedStates=new _p(f.length),this._recoveredStates=new _p(f.length),this._types=g,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let f=[],u=(g,v)=>{let S=f[f.length-1];return this.getStartLineNumber(S)<=g&&this.getEndLineNumber(S)>=v};for(let g=0,v=this._startIndexes.length;g<v;g++){let S=this._startIndexes[g],y=this._endIndexes[g];if(S>16777215||y>16777215)throw Error("startLineNumber or endLineNumber must not exceed 16777215");while(f.length>0&&!u(S,y))f.pop();let D=f.length>0?f[f.length-1]:-1;f.push(g),this._startIndexes[g]=S+((D&255)<<24),this._endIndexes[g]=y+((D&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(f){return this._startIndexes[f]&16777215}getEndLineNumber(f){return this._endIndexes[f]&16777215}getType(f){return this._types?this._types[f]:void 0}hasTypes(){return!!this._types}isCollapsed(f){return this._collapseStates.get(f)}setCollapsed(f,u){this._collapseStates.set(f,u)}isUserDefined(f){return this._userDefinedStates.get(f)}setUserDefined(f,u){return this._userDefinedStates.set(f,u)}isRecovered(f){return this._recoveredStates.get(f)}setRecovered(f,u){return this._recoveredStates.set(f,u)}getSource(f){if(this.isUserDefined(f))return 1;else if(this.isRecovered(f))return 2;return 0}setSource(f,u){if(u===1)this.setUserDefined(f,!0),this.setRecovered(f,!1);else if(u===2)this.setUserDefined(f,!1),this.setRecovered(f,!0);else this.setUserDefined(f,!1),this.setRecovered(f,!1)}setCollapsedAllOfType(f,u){let g=!1;if(this._types){for(let v=0;v<this._types.length;v++)if(this._types[v]===f)this.setCollapsed(v,u),g=!0}return g}toRegion(f){return new ML(this,f)}getParentIndex(f){this.ensureParentIndices();let u=((this._startIndexes[f]&4278190080)>>>24)+((this._endIndexes[f]&4278190080)>>>16);if(u===65535)return-1;return u}contains(f,u){return this.getStartLineNumber(f)<=u&&this.getEndLineNumber(f)>=u}findIndex(f){let u=0,g=this._startIndexes.length;if(g===0)return-1;while(u<g){let v=Math.floor((u+g)/2);if(f<this.getStartLineNumber(v))g=v;else u=v+1}return u-1}findRange(f){let u=this.findIndex(f);if(u>=0){if(this.getEndLineNumber(u)>=f)return u;u=this.getParentIndex(u);while(u!==-1){if(this.contains(u,f))return u;u=this.getParentIndex(u)}}return-1}toString(){let f=[];for(let u=0;u<this.length;u++)f[u]=`[${IT[this.getSource(u)]}${this.isCollapsed(u)?"+":"-"}] ${this.getStartLineNumber(u)}/${this.getEndLineNumber(u)}`;return f.join(", ")}toFoldRange(f){return{startLineNumber:this._startIndexes[f]&16777215,endLineNumber:this._endIndexes[f]&16777215,type:this._types?this._types[f]:void 0,isCollapsed:this.isCollapsed(f),source:this.getSource(f)}}static fromFoldRanges(f){let u=f.length,g=new Uint32Array(u),v=new Uint32Array(u),S=[],y=!1;for(let T=0;T<u;T++){let R=f[T];if(g[T]=R.startLineNumber,v[T]=R.endLineNumber,S.push(R.type),R.type)y=!0}if(!y)S=void 0;let D=new Yi(g,v,S);for(let T=0;T<u;T++){if(f[T].isCollapsed)D.setCollapsed(T,!0);D.setSource(T,f[T].source)}return D}static sanitizeAndMerge(f,u,g,v){g=g??Number.MAX_VALUE;let S=(ae,ge)=>Array.isArray(ae)?(ke)=>ke<ge?ae[ke]:void 0:(ke)=>ke<ge?ae.toFoldRange(ke):void 0,y=S(f,f.length),D=S(u,u.length),T=0,R=0,K=y(0),q=D(0),ee=[],te,ne=0,re=[];while(K||q){let ae=void 0;if(q&&(!K||K.startLineNumber>=q.startLineNumber)){if(K&&K.startLineNumber===q.startLineNumber){if(q.source===1)ae=q;else ae=K,ae.isCollapsed=q.isCollapsed&&(K.endLineNumber===q.endLineNumber||!v?.startsInside(K.startLineNumber+1,K.endLineNumber+1)),ae.source=0;K=y(++T)}else if(ae=q,q.isCollapsed&&q.source===0)ae.source=2;q=D(++R)}else{let ge=R,ke=q;while(!0){if(!ke||ke.startLineNumber>K.endLineNumber){ae=K;break}if(ke.source===1&&ke.endLineNumber>K.endLineNumber)break;ke=D(++ge)}K=y(++T)}if(ae){while(te&&te.endLineNumber<ae.startLineNumber)te=ee.pop();if(ae.endLineNumber>ae.startLineNumber&&ae.startLineNumber>ne&&ae.endLineNumber<=g&&(!te||te.endLineNumber>=ae.endLineNumber)){if(re.push(ae),ne=ae.startLineNumber,te)ee.push(te);te=ae}}}return re}}class ML{constructor(f,u){this.ranges=f,this.index=u}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(f){return f.startLineNumber<=this.startLineNumber&&f.endLineNumber>=this.endLineNumber}containsLine(f){return this.startLineNumber<=f&&f<=this.endLineNumber}}class Mb{get regions(){return this._regions}get textModel(){return this._textModel}constructor(f,u){this._updateEventEmitter=new i,this.onDidChange=this._updateEventEmitter.event,this._textModel=f,this._decorationProvider=u,this._regions=new Yi(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(f){if(!f.length)return;f=f.sort((g,v)=>g.regionIndex-v.regionIndex);let u={};this._decorationProvider.changeDecorations((g)=>{let v=0,S=-1,y=-1,D=(T)=>{while(v<T){let R=this._regions.getEndLineNumber(v),K=this._regions.isCollapsed(v);if(R<=S){let q=this.regions.getSource(v)!==0;g.changeDecorationOptions(this._editorDecorationIds[v],this._decorationProvider.getDecorationOption(K,R<=y,q))}if(K&&R>y)y=R;v++}};for(let T of f){let R=T.regionIndex,K=this._editorDecorationIds[R];if(K&&!u[K]){u[K]=!0,D(R);let q=!this._regions.isCollapsed(R);this._regions.setCollapsed(R,q),S=Math.max(S,this._regions.getEndLineNumber(R))}}D(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:f})}removeManualRanges(f){let u=new Set,g=!1;for(let y of f)if(t.isEmpty(y)){let D=this._regions.findRange(y.startLineNumber);while(D!==-1&&this._regions.getSource(D)===0)D=this._regions.getParentIndex(D);if(D===-1)g=!0;else u.add(D)}let v=[],S=(y)=>{for(let D of f)if(!t.isEmpty(D)&&!(D.startLineNumber>y.endLineNumber||y.startLineNumber>D.endLineNumber))return!0;return!1};for(let y=0;y<this._regions.length;y++){let D=this._regions.toFoldRange(y);if(D.source===0||!g&&!u.has(y)&&!S(D))v.push(D)}this.updatePost(Yi.fromFoldRanges(v))}update(f,u){let g=this._currentFoldedOrManualRanges(u),v=Yi.sanitizeAndMerge(f,g,this._textModel.getLineCount(),u);this.updatePost(Yi.fromFoldRanges(v))}updatePost(f){let u=[],g=-1;for(let v=0,S=f.length;v<S;v++){let y=f.getStartLineNumber(v),D=f.getEndLineNumber(v),T=f.isCollapsed(v),R=f.getSource(v)!==0,K={startLineNumber:y,startColumn:this._textModel.getLineMaxColumn(y),endLineNumber:D,endColumn:this._textModel.getLineMaxColumn(D)+1};if(u.push({range:K,options:this._decorationProvider.getDecorationOption(T,D<=g,R)}),T&&D>g)g=D}this._decorationProvider.changeDecorations((v)=>this._editorDecorationIds=v.deltaDecorations(this._editorDecorationIds,u)),this._regions=f,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(f){let u=[];for(let g=0,v=this._regions.length;g<v;g++){let S=this.regions.isCollapsed(g),y=this.regions.getSource(g);if(S||y!==0){let D=this._regions.toFoldRange(g),T=this._textModel.getDecorationRange(this._editorDecorationIds[g]);if(T){if(S&&f?.startsInside(T.startLineNumber+1,T.endLineNumber))S=!1;u.push({startLineNumber:T.startLineNumber,endLineNumber:T.endLineNumber,type:D.type,isCollapsed:S,source:y})}}}return u}getMemento(){let f=this._currentFoldedOrManualRanges(),u=[],g=this._textModel.getLineCount();for(let v=0,S=f.length;v<S;v++){let y=f[v];if(y.startLineNumber>=y.endLineNumber||y.startLineNumber<1||y.endLineNumber>g)continue;let D=this._getLinesChecksum(y.startLineNumber+1,y.endLineNumber);u.push({startLineNumber:y.startLineNumber,endLineNumber:y.endLineNumber,isCollapsed:y.isCollapsed,source:y.source,checksum:D})}return u.length>0?u:void 0}applyMemento(f){if(!Array.isArray(f))return;let u=[],g=this._textModel.getLineCount();for(let S of f){if(S.startLineNumber>=S.endLineNumber||S.startLineNumber<1||S.endLineNumber>g)continue;let y=this._getLinesChecksum(S.startLineNumber+1,S.endLineNumber);if(!S.checksum||y===S.checksum)u.push({startLineNumber:S.startLineNumber,endLineNumber:S.endLineNumber,type:void 0,isCollapsed:S.isCollapsed??!0,source:S.source??0})}let v=Yi.sanitizeAndMerge(this._regions,u,g);this.updatePost(Yi.fromFoldRanges(v))}_getLinesChecksum(f,u){return Rc(this._textModel.getLineContent(f)+this._textModel.getLineContent(u))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(f,u){let g=[];if(this._regions){let v=this._regions.findRange(f),S=1;while(v>=0){let y=this._regions.toRegion(v);if(!u||u(y,S))g.push(y);S++,v=y.parentIndex}}return g}getRegionAtLine(f){if(this._regions){let u=this._regions.findRange(f);if(u>=0)return this._regions.toRegion(u)}return null}getRegionsInside(f,u){let g=[],v=f?f.regionIndex+1:0,S=f?f.endLineNumber:Number.MAX_VALUE;if(u&&u.length===2){let y=[];for(let D=v,T=this._regions.length;D<T;D++){let R=this._regions.toRegion(D);if(this._regions.getStartLineNumber(D)<S){while(y.length>0&&!R.containedBy(y[y.length-1]))y.pop();if(y.push(R),u(R,y.length))g.push(R)}else break}}else for(let y=v,D=this._regions.length;y<D;y++){let T=this._regions.toRegion(y);if(this._regions.getStartLineNumber(y)<S){if(!u||u(T))g.push(T)}else break}return g}}function Gh(f,u,g){let v=[];for(let S of g){let y=f.getRegionAtLine(S);if(y){let D=!y.isCollapsed;if(v.push(y),u>1){let T=f.getRegionsInside(y,(R,K)=>R.isCollapsed!==D&&K<u);v.push(...T)}}}f.toggleCollapseState(v)}function dd(f,u,g=Number.MAX_VALUE,v){let S=[];if(v&&v.length>0)for(let y of v){let D=f.getRegionAtLine(y);if(D){if(D.isCollapsed!==u)S.push(D);if(g>1){let T=f.getRegionsInside(D,(R,K)=>R.isCollapsed!==u&&K<g);S.push(...T)}}}else{let y=f.getRegionsInside(null,(D,T)=>D.isCollapsed!==u&&T<g);S.push(...y)}f.toggleCollapseState(S)}function Ob(f,u,g,v){let S=[];for(let y of v){let D=f.getAllRegionsAtLine(y,(T,R)=>T.isCollapsed!==u&&R<=g);S.push(...D)}f.toggleCollapseState(S)}function OL(f,u,g){let v=[];for(let S of g){let y=f.getAllRegionsAtLine(S,(D)=>D.isCollapsed!==u);if(y.length>0)v.push(y[0])}f.toggleCollapseState(v)}function PL(f,u,g,v){let S=(D,T)=>T===u&&D.isCollapsed!==g&&!v.some((R)=>D.containsLine(R)),y=f.getRegionsInside(null,S);f.toggleCollapseState(y)}function Pb(f,u,g){let v=[];for(let D of g){let T=f.getAllRegionsAtLine(D,void 0);if(T.length>0)v.push(T[0])}let S=(D)=>v.every((T)=>!T.containedBy(D)&&!D.containedBy(T))&&D.isCollapsed!==u,y=f.getRegionsInside(null,S);f.toggleCollapseState(y)}function bp(f,u,g){let{textModel:v,regions:S}=f,y=[];for(let D=S.length-1;D>=0;D--)if(g!==S.isCollapsed(D)){let T=S.getStartLineNumber(D);if(u.test(v.getLineContent(T)))y.push(S.toRegion(D))}f.toggleCollapseState(y)}function vp(f,u,g){let v=f.regions,S=[];for(let y=v.length-1;y>=0;y--)if(g!==v.isCollapsed(y)&&u===v.getType(y))S.push(v.toRegion(y));f.toggleCollapseState(S)}function AL(f,u){let g=null,v=u.getRegionAtLine(f);if(v!==null){if(g=v.startLineNumber,f===g){let S=v.parentIndex;if(S!==-1)g=u.regions.getStartLineNumber(S);else g=null}}return g}function FL(f,u){let g=u.getRegionAtLine(f);if(g!==null&&g.startLineNumber===f)if(f!==g.startLineNumber)return g.startLineNumber;else{let v=g.parentIndex,S=0;if(v!==-1)S=u.regions.getStartLineNumber(g.parentIndex);while(g!==null)if(g.regionIndex>0){if(g=u.regions.toRegion(g.regionIndex-1),g.startLineNumber<=S)return null;else if(g.parentIndex===v)return g.startLineNumber}else return null}else if(u.regions.length>0){g=u.regions.toRegion(u.regions.length-1);while(g!==null){if(g.startLineNumber<f)return g.startLineNumber;if(g.regionIndex>0)g=u.regions.toRegion(g.regionIndex-1);else g=null}}return null}function HL(f,u){let g=u.getRegionAtLine(f);if(g!==null&&g.startLineNumber===f){let v=g.parentIndex,S=0;if(v!==-1)S=u.regions.getEndLineNumber(g.parentIndex);else if(u.regions.length===0)return null;else S=u.regions.getEndLineNumber(u.regions.length-1);while(g!==null)if(g.regionIndex<u.regions.length){if(g=u.regions.toRegion(g.regionIndex+1),g.startLineNumber>=S)return null;else if(g.parentIndex===v)return g.startLineNumber}else return null}else if(u.regions.length>0){g=u.regions.toRegion(0);while(g!==null){if(g.startLineNumber>f)return g.startLineNumber;if(g.regionIndex<u.regions.length)g=u.regions.toRegion(g.regionIndex+1);else g=null}}return null}class Ab{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(f){if(this._updateEventEmitter=new i,this._hasLineChanges=!1,this._foldingModel=f,this._foldingModelListener=f.onDidChange((u)=>this.updateHiddenRanges()),this._hiddenRanges=[],f.regions.length)this.updateHiddenRanges()}notifyChangeModelContent(f){if(this._hiddenRanges.length&&!this._hasLineChanges)this._hasLineChanges=f.changes.some((u)=>u.range.endLineNumber!==u.range.startLineNumber||Cs(u.text)[0]!==0)}updateHiddenRanges(){let f=!1,u=[],g=0,v=0,S=Number.MAX_VALUE,y=-1,D=this._foldingModel.regions;for(;g<D.length;g++){if(!D.isCollapsed(g))continue;let T=D.getStartLineNumber(g)+1,R=D.getEndLineNumber(g);if(S<=T&&R<=y)continue;if(!f&&v<this._hiddenRanges.length&&this._hiddenRanges[v].startLineNumber===T&&this._hiddenRanges[v].endLineNumber===R)u.push(this._hiddenRanges[v]),v++;else f=!0,u.push(new t(T,1,R,1));S=T,y=R}if(this._hasLineChanges||f||v<this._hiddenRanges.length)this.applyHiddenRanges(u)}applyHiddenRanges(f){this._hiddenRanges=f,this._hasLineChanges=!1,this._updateEventEmitter.fire(f)}hasRanges(){return this._hiddenRanges.length>0}isHidden(f){return WL(this._hiddenRanges,f)!==null}adjustSelections(f){let u=!1,g=this._foldingModel.textModel,v=null,S=(y)=>{if(!v||!LT(y,v))v=WL(this._hiddenRanges,y);if(v)return v.startLineNumber-1;return null};for(let y=0,D=f.length;y<D;y++){let T=f[y],R=S(T.startLineNumber);if(R)T=T.setStartPosition(R,g.getLineMaxColumn(R)),u=!0;let K=S(T.endLineNumber);if(K)T=T.setEndPosition(K,g.getLineMaxColumn(K)),u=!0;f[y]=T}return u}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 LT(f,u){return f>=u.startLineNumber&&f<=u.endLineNumber}function WL(f,u){let g=mh(f,(v)=>u<v.startLineNumber)-1;if(g>=0&&f[g].endLineNumber>=u)return f[g];return null}var kT=5000,ET="indent";class fc{constructor(f,u,g){this.editorModel=f,this.languageConfigurationService=u,this.foldingRangesLimit=g,this.id=ET}dispose(){}compute(f){let u=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,g=u&&!!u.offSide,v=u&&u.markers;return Promise.resolve(TT(this.editorModel,g,v,this.foldingRangesLimit))}}class BL{constructor(f){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=f}insertFirst(f,u,g){if(f>mc||u>mc)return;let v=this._length;if(this._startIndexes[v]=f,this._endIndexes[v]=u,this._length++,g<1000)this._indentOccurrences[g]=(this._indentOccurrences[g]||0)+1}toIndentRanges(f){let u=this._foldingRangesLimit.limit;if(this._length<=u){this._foldingRangesLimit.update(this._length,!1);let g=new Uint32Array(this._length),v=new Uint32Array(this._length);for(let S=this._length-1,y=0;S>=0;S--,y++)g[y]=this._startIndexes[S],v[y]=this._endIndexes[S];return new Yi(g,v)}else{this._foldingRangesLimit.update(this._length,u);let g=0,v=this._indentOccurrences.length;for(let T=0;T<this._indentOccurrences.length;T++){let R=this._indentOccurrences[T];if(R){if(R+g>u){v=T;break}g+=R}}let S=f.getOptions().tabSize,y=new Uint32Array(u),D=new Uint32Array(u);for(let T=this._length-1,R=0;T>=0;T--){let K=this._startIndexes[T],q=f.getLineContent(K),ee=tf(q,S);if(ee<v||ee===v&&g++<u)y[R]=K,D[R]=this._endIndexes[T],R++}return new Yi(y,D)}}}var DT={limit:kT,update:()=>{}};function TT(f,u,g,v=DT){let S=f.getOptions().tabSize,y=new BL(v),D=void 0,T=void 0,R=void 0;if(g)if(g.start.flags===g.end.flags)D=new RegExp(`(${g.start.source})|(?:${g.end.source})`,g.start.flags);else T=g.start,R=g.end;let K=[],q=f.getLineCount()+1;K.push({indent:-1,endAbove:q,line:q});for(let ee=f.getLineCount();ee>0;ee--){let te=f.getLineContent(ee),ne=tf(te,S),re=K[K.length-1];if(ne===-1){if(u)re.endAbove=ee;continue}let ae=!1,ge=!1,ke;if(D){if(D.lastIndex=0,ke=D.exec(te))ae=!!ke[1],ge=!ae}else{if(T)T.lastIndex=0,ae=T.test(te);if(!ae&&R)R.lastIndex=0,ge=R.test(te)}if(ae||ge)if(ae){let Ae=K.length-1;while(Ae>0&&K[Ae].indent!==-2)Ae--;if(Ae>0){K.length=Ae+1,re=K[Ae],y.insertFirst(ee,re.line,ne),re.line=ee,re.indent=ne,re.endAbove=ee;continue}}else{K.push({indent:-2,endAbove:ee,line:ee});continue}if(re.indent>ne){do K.pop(),re=K[K.length-1];while(re.indent>ne);let Ae=re.endAbove-1;if(Ae-ee>=1)y.insertFirst(ee,Ae,ne)}if(re.indent===ne)re.endAbove=ee;else K.push({indent:ne,endAbove:ee,line:ee})}return y.toIndentRanges(f)}var RT=s("editor.foldBackground",{light:de(ql,0.3),dark:de(ql,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);s("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."));s("editorGutter.foldingControlForeground",Vp,e(1062,"Color of the folding control in the editor gutter."));var Zh=Tt("folding-expanded",b.chevronDown,e(1063,"Icon for expanded ranges in the editor glyph margin.")),Xh=Tt("folding-collapsed",b.chevronRight,e(1064,"Icon for collapsed ranges in the editor glyph margin.")),VL=Tt("folding-manual-collapsed",Xh,e(1065,"Icon for manually collapsed ranges in the editor glyph margin.")),zL=Tt("folding-manual-expanded",Zh,e(1066,"Icon for manually expanded ranges in the editor glyph margin.")),Fb={color:en(RT),position:1},_c=e(1067,"Click to expand the range."),wp=e(1068,"Click to collapse the range.");class Io{static{this.COLLAPSED_VISUAL_DECORATION=oe.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:_c,firstLineDecorationClassName:G.asClassName(Xh)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=oe.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Fb,isWholeLine:!0,linesDecorationsTooltip:_c,firstLineDecorationClassName:G.asClassName(Xh)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=oe.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:_c,firstLineDecorationClassName:G.asClassName(VL)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=oe.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Fb,isWholeLine:!0,linesDecorationsTooltip:_c,firstLineDecorationClassName:G.asClassName(VL)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:_c})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Fb,isWholeLine:!0,linesDecorationsTooltip:_c})}static{this.EXPANDED_VISUAL_DECORATION=oe.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+G.asClassName(Zh),linesDecorationsTooltip:wp})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=oe.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:G.asClassName(Zh),linesDecorationsTooltip:wp})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=oe.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+G.asClassName(zL),linesDecorationsTooltip:wp})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=oe.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:G.asClassName(zL),linesDecorationsTooltip:wp})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=oe.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(f){this.editor=f,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(f,u,g){if(u)return Io.HIDDEN_RANGE_DECORATION;if(this.showFoldingControls==="never"){if(f)return this.showFoldingHighlights?Io.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:Io.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;return Io.NO_CONTROLS_EXPANDED_RANGE_DECORATION}if(f)return g?this.showFoldingHighlights?Io.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Io.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?Io.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Io.COLLAPSED_VISUAL_DECORATION;else if(this.showFoldingControls==="mouseover")return g?Io.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:Io.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;else return g?Io.MANUALLY_EXPANDED_VISUAL_DECORATION:Io.EXPANDED_VISUAL_DECORATION}changeDecorations(f){return this.editor.changeDecorations(f)}removeDecorations(f){this.editor.removeDecorations(f)}}var NT={},MT="syntax";class bc{constructor(f,u,g,v,S){if(this.editorModel=f,this.providers=u,this.handleFoldingRangesChange=g,this.foldingRangesLimit=v,this.fallbackRangeProvider=S,this.id=MT,this.disposables=new c,S)this.disposables.add(S);for(let y of u)if(typeof y.onDidChange==="function")this.disposables.add(y.onDidChange(g))}compute(f){return OT(this.providers,this.editorModel,f).then((u)=>{if(this.editorModel.isDisposed())return null;if(u)return PT(u,this.foldingRangesLimit);return this.fallbackRangeProvider?.compute(f)??null})}dispose(){this.disposables.dispose()}}function OT(f,u,g){let v=null,S=f.map((y,D)=>Promise.resolve(y.provideFoldingRanges(u,NT,g)).then((T)=>{if(g.isCancellationRequested)return;if(Array.isArray(T)){if(!Array.isArray(v))v=[];let R=u.getLineCount();for(let K of T)if(K.start>0&&K.end>K.start&&K.end<=R)v.push({start:K.start,end:K.end,rank:D,kind:K.kind})}},dt));return Promise.all(S).then((y)=>v)}class KL{constructor(f){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=f}add(f,u,g,v){if(f>mc||u>mc)return;let S=this._length;if(this._startIndexes[S]=f,this._endIndexes[S]=u,this._nestingLevels[S]=v,this._types[S]=g,this._length++,v<30)this._nestingLevelCounts[v]=(this._nestingLevelCounts[v]||0)+1}toIndentRanges(){let f=this._foldingRangesLimit.limit;if(this._length<=f){this._foldingRangesLimit.update(this._length,!1);let u=new Uint32Array(this._length),g=new Uint32Array(this._length);for(let v=0;v<this._length;v++)u[v]=this._startIndexes[v],g[v]=this._endIndexes[v];return new Yi(u,g,this._types)}else{this._foldingRangesLimit.update(this._length,f);let u=0,g=this._nestingLevelCounts.length;for(let D=0;D<this._nestingLevelCounts.length;D++){let T=this._nestingLevelCounts[D];if(T){if(T+u>f){g=D;break}u+=T}}let v=new Uint32Array(f),S=new Uint32Array(f),y=[];for(let D=0,T=0;D<this._length;D++){let R=this._nestingLevels[D];if(R<g||R===g&&u++<f)v[T]=this._startIndexes[D],S[T]=this._endIndexes[D],y[T]=this._types[D],T++}return new Yi(v,S,y)}}}function PT(f,u){let g=f.sort((D,T)=>{let R=D.start-T.start;if(R===0)R=D.rank-T.rank;return R}),v=new KL(u),S=void 0,y=[];for(let D of g)if(!S)S=D,v.add(D.start,D.end,D.kind&&D.kind.value,y.length);else if(D.start>S.start)if(D.end<=S.end)y.push(S),S=D,v.add(D.start,D.end,D.kind&&D.kind.value,y.length);else{if(D.start>S.end){do S=y.pop();while(S&&D.start>S.end);if(S)y.push(S);S=D}v.add(D.start,D.end,D.kind&&D.kind.value,y.length)}return v.toIndentRanges()}var AT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Yh=function(f,u){return function(g,v){u(g,v,f)}},Jh,Ni=new A("foldingEnabled",!1),qr=class f extends n{static{Jh=this}static{this.ID="editor.contrib.folding"}static get(u){return u.getContribution(Jh.ID)}static getFoldingRangeProviders(u,g){let v=u.foldingRangeProvider.ordered(g);return Jh._foldingRangeSelector?.(v,g)??v}constructor(u,g,v,S,y,D){super();this.contextKeyService=g,this.languageConfigurationService=v,this.languageFeaturesService=D,this.localToDispose=this._register(new c),this.editor=u,this._foldingLimitReporter=this._register(new Sp(u));let T=this.editor.getOptions();this._isEnabled=T.get(52),this._useFoldingProviders=T.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=T.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=T.get(55),this.updateDebounceInfo=y.for(D.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 Io(u),this.foldingDecorationProvider.showFoldingControls=T.get(126),this.foldingDecorationProvider.showFoldingHighlights=T.get(54),this.foldingEnabled=Ni.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration((R)=>{if(R.hasChanged(52))this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged();if(R.hasChanged(56))this.onModelChanged();if(R.hasChanged(126)||R.hasChanged(54)){let K=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=K.get(126),this.foldingDecorationProvider.showFoldingHighlights=K.get(54),this.triggerFoldingModelChanged()}if(R.hasChanged(53))this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged();if(R.hasChanged(57))this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57);if(R.hasChanged(55))this._foldingImportsByDefault=this.editor.getOptions().get(55)})),this.onModelChanged()}saveViewState(){let u=this.editor.getModel();if(!u||!this._isEnabled||u.isTooLargeForTokenization())return{};if(this.foldingModel){let g=this.foldingModel.getMemento(),v=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:g,lineCount:u.getLineCount(),provider:v,foldedImports:this._currentModelHasFoldedImports}}return}restoreViewState(u){let g=this.editor.getModel();if(!g||!this._isEnabled||g.isTooLargeForTokenization()||!this.hiddenRangeModel)return;if(!u)return;if(this._currentModelHasFoldedImports=!!u.foldedImports,u.collapsedRegions&&u.collapsedRegions.length>0&&this.foldingModel){this._restoringViewState=!0;try{this.foldingModel.applyMemento(u.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let u=this.editor.getModel();if(!this._isEnabled||!u||u.isTooLargeForTokenization())return;this._currentModelHasFoldedImports=!1,this.foldingModel=new Mb(u,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new Ab(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((g)=>this.onHiddenRangesChanges(g))),this.updateScheduler=new Ci(this.updateDebounceInfo.get(u)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new be(()=>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((g)=>this.onDidChangeModelContent(g))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown((g)=>this.onEditorMouseDown(g))),this.localToDispose.add(this.editor.onMouseUp((g)=>this.onEditorMouseUp(g))),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(u){if(this.rangeProvider)return this.rangeProvider;let g=new fc(u,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=g,this._useFoldingProviders&&this.foldingModel){let v=Jh.getFoldingRangeProviders(this.languageFeaturesService,u);if(v.length>0)this.rangeProvider=new bc(u,v,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,g)}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(u){this.hiddenRangeModel?.notifyChangeModelContent(u),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){if(this.updateScheduler){if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.foldingModelPromise=this.updateScheduler.trigger(()=>{let u=this.foldingModel;if(!u)return null;let g=new Kt,v=this.getRangeProvider(u.textModel),S=this.foldingRegionPromise=Pt((y)=>v.compute(y));return S.then((y)=>{if(y&&S===this.foldingRegionPromise){let D;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let K=y.setCollapsedAllOfType($r.Imports.value,!0);if(K)D=Sr.capture(this.editor),this._currentModelHasFoldedImports=K}let T=this.editor.getSelections();u.update(y,FT(T)),D?.restore(this.editor);let R=this.updateDebounceInfo.update(u.textModel,g.elapsed());if(this.updateScheduler)this.updateScheduler.defaultDelay=R}return u})}).then(void 0,(u)=>(J(u),null))}}onHiddenRangesChanges(u){if(this.hiddenRangeModel&&u.length&&!this._restoringViewState){let g=this.editor.getSelections();if(g){if(this.hiddenRangeModel.adjustSelections(g))this.editor.setSelections(g)}}this.editor.setHiddenAreas(u,this)}onCursorPositionChanged(){if(this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges())this.cursorChangedScheduler.schedule()}revealCursor(){let u=this.getFoldingModel();if(!u)return;u.then((g)=>{if(g){let v=this.editor.getSelections();if(v&&v.length>0){let S=[];for(let y of v){let D=y.selectionStartLineNumber;if(this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(D))S.push(...g.getAllRegionsAtLine(D,(T)=>T.isCollapsed&&D>T.startLineNumber))}if(S.length)g.toggleCollapseState(S),this.reveal(v[0].getPosition())}}}).then(void 0,J)}onEditorMouseDown(u){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!u.target||!u.target.range)return;if(!u.event.leftButton&&!u.event.middleButton)return;let g=u.target.range,v=!1;switch(u.target.type){case 4:{let S=u.target.detail,y=u.target.element.offsetLeft;if(S.offsetX-y<4)return;v=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!u.target.detail.isAfterLines)break}return}case 6:{if(this.hiddenRangeModel.hasRanges()){let S=this.editor.getModel();if(S&&g.startColumn===S.getLineMaxColumn(g.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:g.startLineNumber,iconClicked:v}}onEditorMouseUp(u){let g=this.foldingModel;if(!g||!this.mouseDownInfo||!u.target)return;let v=this.mouseDownInfo.lineNumber,S=this.mouseDownInfo.iconClicked,y=u.target.range;if(!y||y.startLineNumber!==v)return;if(S){if(u.target.type!==4)return}else{let T=this.editor.getModel();if(!T||y.startColumn!==T.getLineMaxColumn(v))return}let D=g.getRegionAtLine(v);if(D&&D.startLineNumber===v){let T=D.isCollapsed;if(S||T){let R=u.event.altKey,K=[];if(R){let q=(te)=>!te.containedBy(D)&&!D.containedBy(te),ee=g.getRegionsInside(null,q);for(let te of ee)if(te.isCollapsed)K.push(te);if(K.length===0)K=ee}else{let q=u.event.middleButton||u.event.shiftKey;if(q){for(let ee of g.getRegionsInside(D))if(ee.isCollapsed===T)K.push(ee)}if(T||!q||K.length===0)K.push(D)}g.toggleCollapseState(K),this.reveal({lineNumber:v,column:1})}}}reveal(u){this.editor.revealPositionInCenterIfOutsideViewport(u,0)}};qr=Jh=AT([Yh(1,V),Yh(2,Qe),Yh(3,ut),Yh(4,Hi),Yh(5,j)],qr);class Sp extends n{constructor(f){super();this.editor=f,this._onDidChange=this._register(new i),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(f,u){if(f!==this._computed||u!==this._limited)this._computed=f,this._limited=u,this._onDidChange.fire()}}class Ai extends z{runEditorCommand(f,u,g){let v=f.get(Qe),S=qr.get(u);if(!S)return;let y=S.getFoldingModel();if(y)return this.reportTelemetry(f,u),y.then((D)=>{if(D){this.invoke(S,D,u,g,v);let T=u.getSelection();if(T)S.reveal(T.getStartPosition())}})}getSelectedLines(f){let u=f.getSelections();return u?u.map((g)=>g.startLineNumber):[]}getLineNumbers(f,u){if(f&&f.selectionLines)return f.selectionLines.map((g)=>g+1);return this.getSelectedLines(u)}run(f,u){}}function FT(f){if(!f||f.length===0)return{startsInside:()=>!1};return{startsInside(u,g){for(let v of f){let S=v.startLineNumber;if(S>=u&&S<=g)return!0}return!1}}}function UL(f){if(!Oi(f)){if(!Gt(f))return!1;let u=f;if(!Oi(u.levels)&&!Jr(u.levels))return!1;if(!Oi(u.direction)&&!pn(u.direction))return!1;if(!Oi(u.selectionLines)&&(!Array.isArray(u.selectionLines)||!u.selectionLines.every(Jr)))return!1}return!0}class qL extends Ai{constructor(){super({id:"editor.unfold",label:h(1040,"Unfold"),precondition:Ni,kbOpts:{kbExpr:o.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:UL,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(f,u,g,v){let S=v&&v.levels||1,y=this.getLineNumbers(v,g);if(v&&v.direction==="up")Ob(u,!1,S,y);else dd(u,!1,S,y)}}class jL extends Ai{constructor(){super({id:"editor.unfoldRecursively",label:h(1041,"Unfold Recursively"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2142),weight:100}})}invoke(f,u,g,v){dd(u,!1,Number.MAX_VALUE,this.getSelectedLines(g))}}class $L extends Ai{constructor(){super({id:"editor.fold",label:h(1042,"Fold"),precondition:Ni,kbOpts:{kbExpr:o.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:UL,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(f,u,g,v){let S=this.getLineNumbers(v,g),y=v&&v.levels,D=v&&v.direction;if(typeof y!=="number"&&typeof D!=="string")OL(u,!0,S);else if(D==="up")Ob(u,!0,y||1,S);else dd(u,!0,y||1,S)}}class GL extends Ai{constructor(){super({id:"editor.toggleFold",label:h(1043,"Toggle Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2090),weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);Gh(u,1,v)}}class ZL extends Ai{constructor(){super({id:"editor.foldRecursively",label:h(1044,"Fold Recursively"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2140),weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);dd(u,!0,Number.MAX_VALUE,v)}}class XL extends Ai{constructor(){super({id:"editor.toggleFoldRecursively",label:h(1045,"Toggle Fold Recursively"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,3114),weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);Gh(u,Number.MAX_VALUE,v)}}class YL extends Ai{constructor(){super({id:"editor.foldAllBlockComments",label:h(1046,"Fold All Block Comments"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2138),weight:100}})}invoke(f,u,g,v,S){if(u.regions.hasTypes())vp(u,$r.Comment.value,!0);else{let y=g.getModel();if(!y)return;let D=S.getLanguageConfiguration(y.getLanguageId()).comments;if(D&&D.blockCommentStartToken){let T=new RegExp("^\\s*"+_i(D.blockCommentStartToken));bp(u,T,!0)}}}}class JL extends Ai{constructor(){super({id:"editor.foldAllMarkerRegions",label:h(1047,"Fold All Regions"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2077),weight:100}})}invoke(f,u,g,v,S){if(u.regions.hasTypes())vp(u,$r.Region.value,!0);else{let y=g.getModel();if(!y)return;let D=S.getLanguageConfiguration(y.getLanguageId()).foldingRules;if(D&&D.markers&&D.markers.start){let T=new RegExp(D.markers.start);bp(u,T,!0)}}}}class QL extends Ai{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:h(1048,"Unfold All Regions"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2078),weight:100}})}invoke(f,u,g,v,S){if(u.regions.hasTypes())vp(u,$r.Region.value,!1);else{let y=g.getModel();if(!y)return;let D=S.getLanguageConfiguration(y.getLanguageId()).foldingRules;if(D&&D.markers&&D.markers.start){let T=new RegExp(D.markers.start);bp(u,T,!1)}}}}class ek extends Ai{constructor(){super({id:"editor.foldAllExcept",label:h(1049,"Fold All Except Selected"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2136),weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);Pb(u,!0,v)}}class tk extends Ai{constructor(){super({id:"editor.unfoldAllExcept",label:h(1050,"Unfold All Except Selected"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2134),weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);Pb(u,!1,v)}}class ik extends Ai{constructor(){super({id:"editor.foldAll",label:h(1051,"Fold All"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2069),weight:100}})}invoke(f,u,g){dd(u,!0)}}class ok extends Ai{constructor(){super({id:"editor.unfoldAll",label:h(1052,"Unfold All"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2088),weight:100}})}invoke(f,u,g){dd(u,!1)}}class Qh extends Ai{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=(f)=>Qh.ID_PREFIX+f}getFoldingLevel(){return parseInt(this.id.substr(Qh.ID_PREFIX.length))}invoke(f,u,g){PL(u,this.getFoldingLevel(),!0,this.getSelectedLines(g))}}class nk extends Ai{constructor(){super({id:"editor.gotoParentFold",label:h(1053,"Go to Parent Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);if(v.length>0){let S=AL(v[0],u);if(S!==null)g.setSelection({startLineNumber:S,startColumn:1,endLineNumber:S,endColumn:1})}}}class rk extends Ai{constructor(){super({id:"editor.gotoPreviousFold",label:h(1054,"Go to Previous Folding Range"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);if(v.length>0){let S=FL(v[0],u);if(S!==null)g.setSelection({startLineNumber:S,startColumn:1,endLineNumber:S,endColumn:1})}}}class sk extends Ai{constructor(){super({id:"editor.gotoNextFold",label:h(1055,"Go to Next Folding Range"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(f,u,g){let v=this.getSelectedLines(g);if(v.length>0){let S=HL(v[0],u);if(S!==null)g.setSelection({startLineNumber:S,startColumn:1,endLineNumber:S,endColumn:1})}}}class ak extends Ai{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:h(1056,"Create Folding Range from Selection"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2135),weight:100}})}invoke(f,u,g){let v=[],S=g.getSelections();if(S){for(let y of S){let D=y.endLineNumber;if(y.endColumn===1)--D;if(D>y.startLineNumber)v.push({startLineNumber:y.startLineNumber,endLineNumber:D,type:void 0,isCollapsed:!0,source:1}),g.setSelection({startLineNumber:y.startLineNumber,startColumn:1,endLineNumber:y.startLineNumber,endColumn:1})}if(v.length>0){v.sort((D,T)=>D.startLineNumber-T.startLineNumber);let y=Yi.sanitizeAndMerge(u.regions,v,g.getModel()?.getLineCount());u.updatePost(Yi.fromFoldRanges(y))}}}}class dk extends Ai{constructor(){super({id:"editor.removeManualFoldingRanges",label:h(1057,"Remove Manual Folding Ranges"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2137),weight:100}})}invoke(f,u,g){let v=g.getSelections();if(v)u.removeManualRanges(v),f.triggerFoldingModelChanged()}}class ck extends Ai{constructor(){super({id:"editor.toggleImportFold",label:h(1058,"Toggle Import Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}async invoke(f,u){let g=[],v=u.regions;for(let S=v.length-1;S>=0;S--)if(v.getType(S)===$r.Imports.value)g.push(v.toRegion(S));u.toggleCollapseState(g),f.triggerFoldingModelChanged()}}le(qr.ID,qr,0);I(qL);I(jL);I($L);I(ZL);I(XL);I(ik);I(ok);I(YL);I(JL);I(QL);I(ek);I(tk);I(GL);I(nk);I(rk);I(sk);I(ak);I(dk);I(ck);for(let f=1;f<=7;f++)LI(new Qh({id:Qh.ID(f),label:h(1059,"Fold Level {0}",f),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2048|21+f),weight:100}}));we.registerCommand("_executeFoldingRangeProvider",async function(f,...u){let[g]=u;if(!(g instanceof W))throw Xi();let v=f.get(j),S=f.get(gt).getModel(g);if(!S)throw Xi();let y=f.get(X);if(!y.getValue("editor.folding",{resource:g}))return[];let D=f.get(Qe),T=y.getValue("editor.foldingStrategy",{resource:g}),R={get limit(){return y.getValue("editor.foldingMaximumRegions",{resource:g})},update:(ne,re)=>{}},K=new fc(S,D,R),q=K;if(T!=="indentation"){let ne=qr.getFoldingRangeProviders(v,S);if(ne.length)q=new bc(S,ne,()=>{},R,K)}let ee=await q.compute(he.None),te=[];try{if(ee)for(let ne=0;ne<ee.length;ne++){let re=ee.getType(ne);te.push({start:ee.getStartLineNumber(ne),end:ee.getEndLineNumber(ne),kind:re?$r.fromValue(re):void 0})}return te}finally{q.dispose()}});var lk=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Cp=function(f,u){return function(g,v){u(g,v,f)}};class Hb{constructor(f,u,g){this.marker=f,this.index=u,this.total=g}}var Wb=class f{constructor(u,g,v){if(this._markerService=g,this._configService=v,this._onDidChange=new i,this.onDidChange=this._onDidChange.event,this._dispoables=new c,this._markers=[],this._nextIdx=-1,W.isUri(u))this._resourceFilter=(T)=>T.toString()===u.toString();else if(u)this._resourceFilter=u;let S=this._configService.getValue("problems.sortOrder"),y=(T,R)=>{let K=oh(T.resource.toString(),R.resource.toString());if(K===0)if(S==="position")K=t.compareRangesUsingStarts(T,R)||Ut.compare(T.severity,R.severity);else K=Ut.compare(T.severity,R.severity)||t.compareRangesUsingStarts(T,R);return K},D=()=>{let T=this._markerService.read({resource:W.isUri(u)?u:void 0,severities:Ut.Error|Ut.Warning|Ut.Info});if(typeof u==="function")T=T.filter((R)=>this._resourceFilter(R.resource));if(T.sort(y),Ge(T,this._markers,(R,K)=>R.resource.toString()===K.resource.toString()&&R.startLineNumber===K.startLineNumber&&R.startColumn===K.startColumn&&R.endLineNumber===K.endLineNumber&&R.endColumn===K.endColumn&&R.severity===K.severity&&R.message===K.message))return!1;return this._markers=T,!0};D(),this._dispoables.add(g.onMarkerChanged((T)=>{if(!this._resourceFilter||T.some((R)=>this._resourceFilter(R))){if(D())this._nextIdx=-1,this._onDidChange.fire()}}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(u){if(!this._resourceFilter&&!u)return!0;if(!this._resourceFilter||!u)return!1;return this._resourceFilter(u)}get selected(){let u=this._markers[this._nextIdx];return u&&new Hb(u,this._nextIdx+1,this._markers.length)}_initIdx(u,g,v){let S=this._markers.findIndex((y)=>Ar(y.resource,u.uri));if(S<0){if(S=ih(this._markers.length,(y)=>oh(this._markers[y].resource.toString(),u.uri.toString())),S<0)S=~S;if(v)this._nextIdx=S;else this._nextIdx=(this._markers.length+S-1)%this._markers.length}else{let y=!1,D=!1;for(let T=S;T<this._markers.length;T++){let R=t.lift(this._markers[T]);if(R.isEmpty()){let K=u.getWordAtPosition(R.getStartPosition());if(K)R=new t(R.startLineNumber,K.startColumn,R.startLineNumber,K.endColumn)}if(g&&(R.containsPosition(g)||g.isBeforeOrEqual(R.getStartPosition()))){this._nextIdx=T,y=!0,D=!R.containsPosition(g);break}if(this._markers[T].resource.toString()!==u.uri.toString())break}if(!y)this._nextIdx=v?0:this._markers.length-1;else if(D&&!v)this._nextIdx-=1}if(this._nextIdx<0)this._nextIdx=this._markers.length-1}resetIndex(){this._nextIdx=-1}move(u,g,v){if(this._markers.length===0)return!1;let S=this._nextIdx;if(this._nextIdx===-1)this._initIdx(g,v,u);else if(u)this._nextIdx=(this._nextIdx+1)%this._markers.length;else if(!u)this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length;if(S!==this._nextIdx)return!0;return!1}find(u,g){let v=this._markers.findIndex((S)=>S.resource.toString()===u.toString());if(v<0)return;for(;v<this._markers.length;v++)if(t.containsPosition(this._markers[v],g))return new Hb(this._markers[v],v+1,this._markers.length);return}};Wb=lk([Cp(1,dr),Cp(2,X)],Wb);var Vb=Z("IMarkerNavigationService"),Bb=class f{constructor(u,g){this._markerService=u,this._configService=g,this._provider=new Sn}getMarkerList(u){for(let g of this._provider){let v=g.getMarkerList(u);if(v)return v}return new Wb(u,this._markerService,this._configService)}};Bb=lk([Cp(0,dr),Cp(1,X)],Bb);fe(Vb,Bb,1);var HT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},os=function(f,u){return function(g,v){u(g,v,f)}},ro=class f extends hl{constructor(u,g,v,S,y,D,T,R,K,q,ee,te,ne,re){super(u,{...S.getRawOptions(),overflowWidgetsDomNode:S.getOverflowWidgetsDomNode()},v,y,D,T,R,K,q,ee,te,ne,re);this._parentEditor=S,this._overwriteOptions=g,super.updateOptions(this._overwriteOptions),this._register(S.onDidChangeConfiguration((ae)=>this._onParentConfigurationChanged(ae)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(u){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(u){Ap(this._overwriteOptions,u,!0),super.updateOptions(this._overwriteOptions)}};ro=HT([os(4,L),os(5,ye),os(6,Ne),os(7,V),os(8,De),os(9,ut),os(10,Vt),os(11,Qe),os(12,j),os(13,ar)],ro);function yp(f){let u=f.get(ye).getFocusedCodeEditor();if(u instanceof ro)return u.getParentEditor();return u}var hk=new p(new k(0,122,204)),WT={showArrow:!0,showFrame:!0,className:"",frameColor:hk,arrowColor:hk,keepEditorSelection:!1},BT="vs.editor.contrib.zoneWidget";class uk{constructor(f,u,g,v,S,y,D,T){this.id="",this.domNode=f,this.afterLineNumber=u,this.afterColumn=g,this.heightInLines=v,this.showInHiddenAreas=D,this.ordinal=T,this._onDomNodeTop=S,this._onComputedHeight=y}onDomNodeTop(f){this._onDomNodeTop(f)}onComputedHeight(f){this._onComputedHeight(f)}}class gk{constructor(f,u){this._id=f,this._domNode=u}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class zb{static{this._IdGenerator=new fg(".arrow-decoration-")}constructor(f){this._editor=f,this._ruleName=zb._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),e0(this._ruleName)}set color(f){if(this._color!==f)this._color=f,this._updateStyle()}set height(f){if(this._height!==f)this._height=f,this._updateStyle()}_updateStyle(){e0(this._ruleName),og(`.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(f){if(f.column===1)f={lineNumber:f.lineNumber,column:2};this._decorations.set([{range:t.fromPositions(f),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class Kb{constructor(f,u={}){if(this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new c,this.container=null,this._isShowing=!1,this.editor=f,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Vs(u),Ap(this.options,WT,!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((g)=>{let v=this._getWidth(g);this.domNode.style.width=v+"px",this.domNode.style.left=this._getLeft(g)+"px",this._onWidth(v)}))}dispose(){if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;if(this._viewZone)this.editor.changeViewZones((f)=>{if(this._viewZone)f.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 zb(this.editor),this._disposables.add(this._arrow);this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(f){if(f.frameColor)this.options.frameColor=f.frameColor;if(f.arrowColor)this.options.arrowColor=f.arrowColor;this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let f=this.options.frameColor.toString();this.container.style.borderTopColor=f,this.container.style.borderBottomColor=f}if(this._arrow&&this.options.arrowColor){let f=this.options.arrowColor.toString();this._arrow.color=f}}_getWidth(f){return f.width-f.minimap.minimapWidth-f.verticalScrollbarWidth}_getLeft(f){if(f.minimap.minimapWidth>0&&f.minimap.minimapLeft===0)return f.minimap.minimapWidth;return 0}_onViewZoneTop(f){this.domNode.style.top=f+"px"}_onViewZoneHeight(f){if(this.domNode.style.height=`${f}px`,this.container){let u=f-this._decoratingElementsHeight();this.container.style.height=`${u}px`;let g=this.editor.getLayoutInfo();this._doLayout(u,this._getWidth(g))}this._resizeSash?.layout()}get position(){let f=this._positionMarkerId.getRange(0);if(!f)return;return f.getStartPosition()}show(f,u){let g=t.isIRange(f)?t.lift(f):t.fromPositions(f);this._isShowing=!0,this._showImpl(g,u),this._isShowing=!1,this._positionMarkerId.set([{range:g,options:oe.EMPTY}])}hide(){if(this._viewZone)this.editor.changeViewZones((f)=>{if(this._viewZone)f.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 f=this.editor.getOption(75),u=0;if(this.options.showArrow){let g=Math.round(f/3);u+=2*g}if(this.options.showFrame){let g=this.options.frameWidth??Math.round(f/9);u+=2*g}return u}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*0.8)}_showImpl(f,u){let g=f.getStartPosition(),v=this.editor.getLayoutInfo(),S=this._getWidth(v);this.domNode.style.width=`${S}px`,this.domNode.style.left=this._getLeft(v)+"px";let y=document.createElement("div");y.style.overflow="hidden";let D=this.editor.getOption(75),T=this._getMaximumHeightInLines();if(T!==void 0)u=Math.min(u,T);let R=0,K=0;if(this._arrow&&this.options.showArrow)R=Math.round(D/3),this._arrow.height=R,this._arrow.show(g);if(this.options.showFrame)K=Math.round(D/9);if(this.editor.changeViewZones((te)=>{if(this._viewZone)te.removeZone(this._viewZone.id);if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this.domNode.style.top="-1000px",this._viewZone=new uk(y,g.lineNumber,g.column,u,(ne)=>this._onViewZoneTop(ne),(ne)=>this._onViewZoneHeight(ne),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=te.addZone(this._viewZone),this._overlayWidget=new gk(BT+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){let te=this.options.frameWidth?this.options.frameWidth:K;this.container.style.borderTopWidth=te+"px",this.container.style.borderBottomWidth=te+"px"}let q=u*D-this._decoratingElementsHeight();if(this.container)this.container.style.top=R+"px",this.container.style.height=q+"px",this.container.style.overflow="hidden";if(this._doLayout(q,S),!this.options.keepEditorSelection)this.editor.setSelection(f);let ee=this.editor.getModel();if(ee){let te=ee.validateRange(new t(f.startLineNumber,1,f.endLineNumber+1,1));this.revealRange(te,te.startLineNumber===ee.getLineCount())}}revealRange(f,u){if(u)this.editor.revealLineNearTop(f.endLineNumber,0);else this.editor.revealRange(f,0)}setCssClass(f,u){if(!this.container)return;if(u)this.container.classList.remove(u);this.container.classList.add(f)}_onWidth(f){}_doLayout(f,u){}_relayout(f,u){let g=this._getMaximumHeightInLines(),v=u&&g!==void 0?Math.min(g,f):f;if(this._viewZone&&this._viewZone.heightInLines!==v)this.editor.changeViewZones((S)=>{if(this._viewZone)this._viewZone.heightInLines=v,S.layoutZone(this._viewZone.id)}),this._updateSashEnablement()}_initSash(){if(this._resizeSash)return;if(this._resizeSash=this._disposables.add(new Ui(this.domNode,this,{orientation:1})),!this.options.isResizeable)this._resizeSash.state=0;let f;this._disposables.add(this._resizeSash.onDidStart((u)=>{if(this._viewZone)f={startY:u.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()}})),this._disposables.add(this._resizeSash.onDidEnd(()=>{f=void 0})),this._disposables.add(this._resizeSash.onDidChange((u)=>{if(f){let g=(u.currentY-f.startY)/this.editor.getOption(75),v=g<0?Math.ceil(g):Math.floor(g),S=f.heightInLines+v;if(S>f.minLines&&S<f.maxLines)this._isSashResizeHeight=!0,this._relayout(S)}}))}_updateSashEnablement(){if(this._resizeSash){let{minLines:f,maxLines:u}=this._getResizeBounds();this._resizeSash.state=f===u?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 f=this.editor.getLayoutInfo();return f.width-f.minimap.minimapWidth}}var pk=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},mk=function(f,u){return function(g,v){u(g,v,f)}},Ub=Z("IPeekViewService");fe(Ub,class{constructor(){this._widgets=new Map}addExclusiveWidget(f,u){let g=this._widgets.get(f);if(g)g.listener.dispose(),g.widget.dispose();let v=()=>{let S=this._widgets.get(f);if(S&&S.widget===u)S.listener.dispose(),this._widgets.delete(f)};this._widgets.set(f,{widget:u,listener:u.onDidClose(v)})}},1);var qi;(function(f){f.inPeekEditor=new A("inReferenceSearchEditor",!0,e(1382,"Whether the current code editor is embedded inside peek")),f.notInPeekEditor=f.inPeekEditor.toNegated()})(qi||(qi={}));var xp=class f{static{this.ID="editor.contrib.referenceController"}constructor(u,g){if(u instanceof ro)qi.inPeekEditor.bindTo(g)}dispose(){}};xp=pk([mk(1,V)],xp);le(xp.ID,xp,0);var VT={headerBackgroundColor:p.white,primaryHeadingColor:p.fromHex("#333333"),secondaryHeadingColor:p.fromHex("#6c6c6cb3")},vc=class f extends Kb{constructor(u,g,v){super(u,g);this.instantiationService=v,this._onDidClose=new i,this.onDidClose=this._onDidClose.event,Ap(this.options,VT,!1);let S=Ze(this.editor);S.openedPeekWidgets.set(S.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();let u=Ze(this.editor);u.openedPeekWidgets.set(u.openedPeekWidgets.get()-1,void 0)}}style(u){let g=this.options;if(u.headerBackgroundColor)g.headerBackgroundColor=u.headerBackgroundColor;if(u.primaryHeadingColor)g.primaryHeadingColor=u.primaryHeadingColor;if(u.secondaryHeadingColor)g.secondaryHeadingColor=u.secondaryHeadingColor;super.style(u)}_applyStyles(){super._applyStyles();let u=this.options;if(this._headElement&&u.headerBackgroundColor)this._headElement.style.backgroundColor=u.headerBackgroundColor.toString();if(this._primaryHeading&&u.primaryHeadingColor)this._primaryHeading.style.color=u.primaryHeadingColor.toString();if(this._secondaryHeading&&u.secondaryHeadingColor)this._secondaryHeading.style.color=u.secondaryHeadingColor.toString();if(this._bodyElement&&u.frameColor)this._bodyElement.style.borderColor=u.frameColor.toString()}_fillContainer(u){this.setCssClass("peekview-widget"),this._headElement=m(".head"),this._bodyElement=m(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),u.appendChild(this._headElement),u.appendChild(this._bodyElement)}_fillHead(u,g){if(this._titleElement=m(".peekview-title"),this.options.supportOnTitleClick)this._titleElement.classList.add("clickable"),ft(this._titleElement,"click",(y)=>this._onTitleClick(y));w(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=m("span.filename"),this._secondaryHeading=m("span.dirname"),this._metaHeading=m("span.meta"),w(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);let v=m(".peekview-actions");w(this._headElement,v);let S=this._getActionBarOptions();if(this._actionbarWidget=new Ri(v,S),this._disposables.add(this._actionbarWidget),!g)this._actionbarWidget.push(this._disposables.add(new Qi("peekview.close",e(1383,"Close"),G.asClassName(b.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(u){}_getActionBarOptions(){return{actionViewItemProvider:yg.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(u){}setTitle(u,g){if(this._primaryHeading&&this._secondaryHeading)if(this._primaryHeading.innerText=u,this._primaryHeading.setAttribute("title",u),g)this._secondaryHeading.innerText=g;else Xt(this._secondaryHeading)}setMetaTitle(u){if(this._metaHeading)if(u)this._metaHeading.innerText=u,po(this._metaHeading);else Wi(this._metaHeading)}_doLayout(u,g){if(!this._isShowing&&u<0){this.dispose();return}let v=Math.ceil(this.editor.getOption(75)*1.2),S=Math.round(u-(v+1));this._doLayoutHead(v,g),this._doLayoutBody(S,g)}_doLayoutHead(u,g){if(this._headElement)this._headElement.style.height=`${u}px`,this._headElement.style.lineHeight=this._headElement.style.height}_doLayoutBody(u,g){if(this._bodyElement)this._bodyElement.style.height=`${u}px`}};vc=pk([mk(2,L)],vc);var fk=s("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:p.black,hcLight:p.white},e(1384,"Background color of the peek view title area.")),Lp=s("peekViewTitleLabel.foreground",{dark:p.white,light:p.black,hcDark:p.white,hcLight:Ks},e(1385,"Color of the peek view title.")),kp=s("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},e(1386,"Color of the peek view title info.")),_k=s("peekView.border",{dark:ns,light:ns,hcDark:Re,hcLight:Re},e(1387,"Color of the peek view borders and arrow.")),bk=s("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:p.black,hcLight:p.white},e(1388,"Background color of the peek view result list."));s("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:p.white,hcLight:Ks},e(1389,"Foreground color for line nodes in the peek view result list."));s("peekViewResult.fileForeground",{dark:p.white,light:"#1E1E1E",hcDark:p.white,hcLight:Ks},e(1390,"Foreground color for file nodes in the peek view result list."));s("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},e(1391,"Background color of the selected entry in the peek view result list."));s("peekViewResult.selectionForeground",{dark:p.white,light:"#6C6C6C",hcDark:p.white,hcLight:Ks},e(1392,"Foreground color of the selected entry in the peek view result list."));var qb=s("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:p.black,hcLight:p.white},e(1393,"Background color of the peek view editor."));s("peekViewEditorGutter.background",qb,e(1394,"Background color of the gutter in the peek view editor."));s("peekViewEditorStickyScroll.background",qb,e(1395,"Background color of sticky scroll in the peek view editor."));s("peekViewEditorStickyScrollGutter.background",qb,e(1396,"Background color of the gutter part of sticky scroll in the peek view editor."));s("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},e(1397,"Match highlight color in the peek view result list."));s("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},e(1398,"Match highlight color in the peek view editor."));s("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:Ft,hcLight:Ft},e(1399,"Match highlight border in the peek view editor."));var Ep;(function(f){function u(g){switch(g){case Yt.Ignore:return"severity-ignore "+G.asClassName(b.info);case Yt.Info:return G.asClassName(b.info);case Yt.Warning:return G.asClassName(b.warning);case Yt.Error:return G.asClassName(b.error);default:return""}}f.className=u})(Ep||(Ep={}));var zT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},wc=function(f,u){return function(g,v){u(g,v,f)}},jb;class Ck{constructor(f,u,g,v,S){this._openerService=v,this._labelService=S,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new c,this._editor=u;let y=document.createElement("div");y.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),y.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),y.appendChild(this._relatedBlock),this._disposables.add(ft(this._relatedBlock,"click",(D)=>{D.preventDefault();let T=this._relatedDiagnostics.get(D.target);if(T)g(T)})),this._scrollable=new Qv(y,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),f.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((D)=>{y.style.left=`-${D.scrollLeft}px`,y.style.top=`-${D.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){$e(this._disposables)}update(f){let{source:u,message:g,relatedInformation:v,code:S}=f,y=(u?.length||0)+2;if(S)if(typeof S==="string")y+=S.length;else y+=S.value.length;let D=ei(g);this._lines=D.length,this._longestLineLength=0;for(let ee of D)this._longestLineLength=Math.max(ee.length+y,this._longestLineLength);Xt(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(f)),bo(this.getAriaLabel(f)),this._editor.applyFontInfo(this._messageBlock);let T=this._messageBlock;for(let ee of D){if(T=document.createElement("div"),T.innerText=ee,ee==="")T.style.height=this._messageBlock.style.lineHeight;this._messageBlock.appendChild(T)}if(u||S){let ee=document.createElement("span");if(ee.classList.add("details"),T.appendChild(ee),u){let te=document.createElement("span");te.innerText=u,te.classList.add("source"),ee.appendChild(te)}if(S)if(typeof S==="string"){let te=document.createElement("span");te.innerText=`(${S})`,te.classList.add("code"),ee.appendChild(te)}else{this._codeLink=m("a.code-link"),this._codeLink.setAttribute("href",`${S.target.toString()}`),this._codeLink.onclick=(ne)=>{this._openerService.open(S.target),ne.preventDefault(),ne.stopPropagation()};let te=w(this._codeLink,m("span"));te.innerText=S.value,ee.appendChild(this._codeLink)}}if(Xt(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Ln(v)){let ee=this._relatedBlock.appendChild(document.createElement("div"));ee.style.paddingTop=`${Math.floor(this._editor.getOption(75)*0.66)}px`,this._lines+=1;for(let te of v){let ne=document.createElement("div"),re=document.createElement("a");re.classList.add("filename"),re.innerText=`${this._labelService.getUriBasenameLabel(te.resource)}(${te.startLineNumber}, ${te.startColumn}): `,re.title=this._labelService.getUriLabel(te.resource),this._relatedDiagnostics.set(re,te);let ae=document.createElement("span");ae.innerText=te.message,ne.appendChild(re),ne.appendChild(ae),this._lines+=1,ee.appendChild(ne)}}let R=this._editor.getOption(59),K=Math.ceil(R.typicalFullwidthCharacterWidth*this._longestLineLength*0.75),q=R.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:K,scrollHeight:q})}layout(f,u){this._scrollable.getDomNode().style.height=`${f}px`,this._scrollable.getDomNode().style.width=`${u}px`,this._scrollable.setScrollDimensions({width:u,height:f})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(f){let u="";switch(f.severity){case Ut.Error:u=e(1082,"Error");break;case Ut.Warning:u=e(1083,"Warning");break;case Ut.Info:u=e(1084,"Info");break;case Ut.Hint:u=e(1085,"Hint");break}let g=e(1086,"{0}: {1} at {2}. ",u,f.message,f.startLineNumber+":"+f.startColumn),v=this._editor.getModel();if(v&&f.startLineNumber<=v.getLineCount()&&f.startLineNumber>=1)g=`${v.getLineContent(f.startLineNumber)}, ${g}`;return g}}var Sc=class f extends vc{static{jb=this}static{this.TitleMenu=new a("gotoErrorTitleMenu")}constructor(u,g,v,S,y,D,T){super(u,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},y);this._themeService=g,this._openerService=v,this._menuService=S,this._contextKeyService=D,this._labelService=T,this._callOnDispose=new c,this._onDidSelectRelatedInformation=new i,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Ut.Warning,this._backgroundColor=p.white,this._applyTheme(g.getColorTheme()),this._callOnDispose.add(g.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(u){this._backgroundColor=u.getColor(jT);let g=$b,v=KT;if(this._severity===Ut.Warning)g=Tp,v=UT;else if(this._severity===Ut.Info)g=Gb,v=qT;let S=u.getColor(g),y=u.getColor(v);this.style({arrowColor:S,frameColor:S,headerBackgroundColor:y,primaryHeadingColor:u.getColor(Lp),secondaryHeadingColor:u.getColor(kp)})}_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(u){super._fillHead(u),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((S)=>this.editor.focus()));let g=this._menuService.getMenuActions(jb.TitleMenu,this._contextKeyService),v=nR(g);this._actionbarWidget.push(v,{label:!1,icon:!0,index:0})}_fillTitleIcon(u){this._icon=w(u,m(""))}_fillBody(u){this._parentContainer=u,u.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),u.appendChild(this._container),this._message=new Ck(this._container,this.editor,(g)=>this._onDidSelectRelatedInformation.fire(g),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw Error("call showAtMarker")}showAtMarker(u,g,v){this._container.classList.remove("stale"),this._message.update(u),this._severity=u.severity,this._applyTheme(this._themeService.getColorTheme());let S=t.lift(u),y=this.editor.getPosition(),D=y&&S.containsPosition(y)?y:S.getStartPosition();super.show(D,this.computeRequiredHeight());let T=this.editor.getModel();if(T){let R=v>1?e(1087,"{0} of {1} problems",g,v):e(1088,"{0} of {1} problem",g,v);this.setTitle(hi(T.uri),R)}this._icon.className=`codicon ${Ep.className(Ut.toSeverity(this._severity))}`,this.editor.revealPositionInCenterIfOutsideViewport(D,0),this.editor.focus()}updateMarker(u){this._container.classList.remove("stale"),this._message.update(u)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(u,g){super._doLayoutBody(u,g),this._heightInPixel=u,this._message.layout(u,g),this._container.style.height=`${u}px`}_onWidth(u){this._message.layout(this._heightInPixel,u)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};Sc=jb=zT([wc(1,De),wc(2,To),wc(3,ui),wc(4,L),wc(5,V),wc(6,ml)],Sc);var vk=Wp(qp,DI),wk=Wp(Js,yh),Sk=Wp(ns,wh),$b=s("editorMarkerNavigationError.background",{dark:vk,light:vk,hcDark:Re,hcLight:Re},e(1089,"Editor marker navigation widget error color.")),KT=s("editorMarkerNavigationError.headerBackground",{dark:de($b,0.1),light:de($b,0.1),hcDark:null,hcLight:null},e(1090,"Editor marker navigation widget error heading background.")),Tp=s("editorMarkerNavigationWarning.background",{dark:wk,light:wk,hcDark:Re,hcLight:Re},e(1091,"Editor marker navigation widget warning color.")),UT=s("editorMarkerNavigationWarning.headerBackground",{dark:de(Tp,0.1),light:de(Tp,0.1),hcDark:"#0C141F",hcLight:de(Tp,0.2)},e(1092,"Editor marker navigation widget warning heading background.")),Gb=s("editorMarkerNavigationInfo.background",{dark:Sk,light:Sk,hcDark:Re,hcLight:Re},e(1093,"Editor marker navigation widget info color.")),qT=s("editorMarkerNavigationInfo.headerBackground",{dark:de(Gb,0.1),light:de(Gb,0.1),hcDark:null,hcLight:null},e(1094,"Editor marker navigation widget info heading background.")),jT=s("editorMarkerNavigation.background",Eo,e(1095,"Editor marker navigation widget background."));var $T=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Mp=function(f,u){return function(g,v){u(g,v,f)}},nu,sa=class f{static{nu=this}static{this.ID="editor.contrib.markerController"}static get(u){return u.getContribution(nu.ID)}constructor(u,g,v,S,y){this._markerNavigationService=g,this._contextKeyService=v,this._editorService=S,this._instantiationService=y,this._sessionDispoables=new c,this._editor=u,this._widgetVisible=yk.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(u){if(this._model&&this._model.matches(u))return this._model;let g=!1;if(this._model)g=!0,this._cleanUp();if(this._model=this._markerNavigationService.getMarkerList(u),g)this._model.move(!0,this._editor.getModel(),this._editor.getPosition());return this._widget=this._instantiationService.createInstance(Sc,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((v)=>{if(!this._model?.selected||!t.containsPosition(this._model?.selected.marker,v.position))this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;let v=this._model.find(this._editor.getModel().uri,this._widget.position);if(v)this._widget.updateMarker(v.marker);else this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((v)=>{this._editorService.openCodeEditor({resource:v.resource,options:{pinned:!0,revealIfOpened:!0,selection:t.lift(v).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(u=!0){if(this._cleanUp(),u)this._editor.focus()}showAtMarker(u){if(!this._editor.hasModel())return;let g=this._editor.getModel(),v=this._getOrCreateModel(g.uri);if(v.resetIndex(),v.move(!0,g,new r(u.startLineNumber,u.startColumn)),v.selected)this._widget.showAtMarker(v.selected.marker,v.selected.index,v.selected.total)}async navigate(u,g){if(!this._editor.hasModel())return;let v=this._editor.getModel(),S=this._getOrCreateModel(g?void 0:v.uri);if(S.move(u,v,this._editor.getPosition()),!S.selected)return;if(S.selected.marker.resource.toString()!==v.uri.toString()){this._cleanUp();let y=await this._editorService.openCodeEditor({resource:S.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:S.selected.marker}},this._editor);if(y)nu.get(y)?.close(),nu.get(y)?.navigate(u,g)}else this._widget.showAtMarker(S.selected.marker,S.selected.index,S.selected.total)}};sa=nu=$T([Mp(1,Vb),Mp(2,V),Mp(3,ye),Mp(4,L)],sa);class su extends z{constructor(f,u,g){super(g);this._next=f,this._multiFile=u}async run(f,u){if(u.hasModel())await sa.get(u)?.navigate(this._next,this._multiFile)}}class Ls extends su{static{this.ID="editor.action.marker.next"}static{this.LABEL=h(1078,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:Ls.ID,label:Ls.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:578,weight:100},menuOpts:{menuId:Sc.TitleMenu,title:Ls.LABEL.value,icon:Tt("marker-navigation-next",b.arrowDown,e(1074,"Icon for goto next marker.")),group:"navigation",order:1}})}}class cd extends su{static{this.ID="editor.action.marker.prev"}static{this.LABEL=h(1079,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:cd.ID,label:cd.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1602,weight:100},menuOpts:{menuId:Sc.TitleMenu,title:cd.LABEL.value,icon:Tt("marker-navigation-previous",b.arrowUp,e(1075,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class du extends su{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:du.ID,label:h(1080,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:66,weight:100},menuOpts:{menuId:a.MenubarGoMenu,title:e(1076,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class cu extends su{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:cu.ID,label:h(1081,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1090,weight:100},menuOpts:{menuId:a.MenubarGoMenu,title:e(1077,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}le(sa.ID,sa,4);I(Ls);I(cd);I(du);I(cu);var yk=new A("markersNavigationVisible",!1),GT=Bt.bindToContribution(sa.get);U(new GT({id:"closeMarkersNavigation",precondition:yk,handler:(f)=>f.close(),kbOpts:{weight:150,kbExpr:o.focus,primary:9,secondary:[1033]}}));class Iv{constructor(f){this.options=f,this.rangeHighlightDecorationId=void 0}provide(f,u,g){let v=new c;f.canAcceptInBackground=!!this.options?.canAcceptInBackground,f.matchOnLabel=f.matchOnDescription=f.matchOnDetail=f.sortByLabel=!1;let S=v.add(new ie);return S.value=this.doProvide(f,u,g),v.add(this.onDidActiveTextEditorControlChange(()=>{S.value=void 0,S.value=this.doProvide(f,u)})),v}doProvide(f,u,g){let v=new c,S=this.activeTextEditorControl;if(S&&this.canProvideWithTextEditor(S)){let y={editor:S},D=H0(S);if(D){let T=S.saveViewState()??void 0;v.add(D.onDidChangeCursorPosition(()=>{T=S.saveViewState()??void 0})),y.restoreViewState=()=>{if(T&&S===this.activeTextEditorControl)S.restoreViewState(T)},v.add(Zr(u.onCancellationRequested)(()=>y.restoreViewState?.()))}v.add(E(()=>this.clearDecorations(S))),v.add(this.provideWithTextEditor(y,f,u,g))}else v.add(this.provideWithoutTextEditor(f,u));return v}canProvideWithTextEditor(f){return!0}gotoLocation({editor:f},u){if(f.setSelection(u.range,"code.jump"),f.revealRangeInCenter(u.range,0),!u.preserveFocus)f.focus();let g=this.getModel(f);if(g){let v=g.getLineContent(u.range.startLineNumber);bo(e(1401,"Line {0}, column {1}: {2}",u.range.startLineNumber,u.range.startColumn,v))}}getModel(f){return Sg(f)?f.getModel()?.modified:f.getModel()}addDecorations(f,u){f.changeDecorations((g)=>{let v=[];if(this.rangeHighlightDecorationId)v.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),v.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0;let S=[{range:u,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:u,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:en(c0),position:ko.Full}}}],[y,D]=g.deltaDecorations(v,S);this.rangeHighlightDecorationId={rangeHighlightId:y,overviewRulerDecorationId:D}})}clearDecorations(f){let u=this.rangeHighlightDecorationId;if(u)f.changeDecorations((g)=>{g.deltaDecorations([u.overviewRulerDecorationId,u.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0}}class Cc extends Iv{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(Cc.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(f){this.storageService.store(Cc.ZERO_BASED_OFFSET_STORAGE_KEY,f,-1,0)}provideWithoutTextEditor(f){let u=e(1402,"Open a text editor first to go to a line or an offset.");return f.items=[{label:u}],f.ariaLabel=u,n.None}provideWithTextEditor(f,u,g){let v=f.editor,S=new c;u.ariaLabel=e(1403,"Go to line. Type a line number, optionally followed by colon and column number."),S.add(u.onDidAccept((R)=>{let[K]=u.selectedItems;if(K){if(!K.lineNumber)return;if(this.gotoLocation(f,{range:this.toRange(K.lineNumber,K.column),keyMods:u.keyMods,preserveFocus:R.inBackground}),!R.inBackground)u.hide()}}));let y={iconClass:G.asClassName(b.indexZero),tooltip:e(1404,"Toggle Zero-Based Offset"),location:rf.Input,toggle:{checked:this.useZeroBasedOffset}},D=()=>{let R=u.value.trim().substring(Cc.GO_TO_LINE_PREFIX.length),{inOffsetMode:K,lineNumber:q,column:ee,label:te}=this.parsePosition(v,R);if(u.buttons=K?[y]:[],u.items=[{lineNumber:q,column:ee,label:te,ariaLabel:q?e(1405,"Go to line {0}, column {1}. Press Enter to navigate.",q,ee||1):te}],!q){this.clearDecorations(v);return}let ne=this.toRange(q,ee);v.revealRangeInCenter(ne,0),this.addDecorations(v,ne)};S.add(u.onDidTriggerButton((R)=>{if(R===y)this.useZeroBasedOffset=R.toggle?.checked??!this.useZeroBasedOffset,D()})),D(),S.add(u.onDidChangeValue(()=>D()));let T=H0(v);if(T){if(T.getOptions().get(76).renderType===2)T.updateOptions({lineNumbers:"on"}),S.add(E(()=>T.updateOptions({lineNumbers:"relative"})))}return S}toRange(f=1,u=1){return{startLineNumber:f,startColumn:u,endLineNumber:f,endColumn:u}}parsePosition(f,u){let g=this.getModel(f);if(!g)return{label:e(1406,"Open a text editor first to go to a line or an offset.")};if(u.startsWith(":")){let v=parseInt(u.substring(1),10),S=g.getValueLength();if(isNaN(v))return{inOffsetMode:!0,label:this.useZeroBasedOffset?e(1407,"Type a character position to go to (from 0 to {0}).",S-1):e(1408,"Type a character position to go to (from 1 to {0}).",S)};else{let y=v<0;if(!this.useZeroBasedOffset)v-=Math.sign(v);if(y)v+=S;let D=g.getPositionAt(v),T=yt.visibleColumnFromColumn(g.getLineContent(D.lineNumber),D.column,g.getOptions().tabSize)+1;return{...D,inOffsetMode:!0,label:e(1409,"Press 'Enter' to go to line {0} at column {1}.",D.lineNumber,T)}}}else{let v=u.split(/,|:|#/),S=g.getLineCount(),y=parseInt(v[0]?.trim(),10);if(v.length<1||isNaN(y))return{label:e(1410,"Type a line number to go to (from 1 to {0}).",S)};y=y>=0?y:S+1+y,y=Math.min(Math.max(1,y),S);let D=g.getOptions().tabSize,T=g.getLineContent(y),R=yt.visibleColumnFromColumn(T,g.getLineMaxColumn(y),D)+1,K=parseInt(v[1]?.trim(),10);if(v.length<2||isNaN(K))return{lineNumber:y,column:1,label:v.length<2?e(1411,"Press 'Enter' to go to line {0} or enter colon : to add a column number.",y):e(1412,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",y,R)};K=K>=0?K:R+K,K=Math.min(Math.max(1,K),R);let q=yt.columnFromVisibleColumn(T,K-1,D);return{lineNumber:y,column:q,label:e(1413,"Press 'Enter' to go to line {0} at column {1}.",y,K)}}}}var ZT=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},xk=function(f,u){return function(g,v){u(g,v,f)}},aa=class f extends Cc{constructor(u,g){super();this.editorService=u,this.storageService=g,this.onDidActiveTextEditorControlChange=C.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};aa=ZT([xk(0,ye),xk(1,xn)],aa);class Fp extends z{static{this.ID="editor.action.gotoLine"}constructor(){super({id:Fp.ID,label:df.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2085,mac:{primary:293},weight:100}})}run(f){f.get(dn).quickAccess.show(aa.GO_TO_LINE_PREFIX)}}I(Fp);it.as(Ts.Quickaccess).registerQuickAccessProvider({ctor:aa,prefix:aa.GO_TO_LINE_PREFIX,helpEntries:[{description:df.gotoLineActionLabel,commandId:Fp.ID}]});class jp extends z{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:jp.ID,label:df.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(f){f.get(dn).quickAccess.show(aa.GO_TO_OFFSET_PREFIX)}}I(jp);it.as(Ts.Quickaccess).registerQuickAccessProvider({ctor:aa,prefix:aa.GO_TO_OFFSET_PREFIX,helpEntries:[{description:df.gotoOffsetActionLabel,commandId:jp.ID}]});var XT=s("editorOverviewRuler.bracketMatchForeground","#A0A0A0",e(855,"Overview ruler marker color for matching brackets."));class Ik extends z{constructor(){super({id:"editor.action.jumpToBracket",label:h(857,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:3165,weight:100}})}run(f,u){Ds.get(u)?.jumpToBracket()}}class Lk extends z{constructor(){super({id:"editor.action.selectToBracket",label:h(858,"Select to Bracket"),precondition:void 0,metadata:{description:h(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(f,u,g){let v=!0;if(g&&g.selectBrackets===!1)v=!1;Ds.get(u)?.selectToBracket(v)}}class kk extends z{constructor(){super({id:"editor.action.removeBrackets",label:h(860,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(f,u){Ds.get(u)?.removeBrackets(this.id)}}class Ek{constructor(f,u,g){this.position=f,this.brackets=u,this.options=g}}class Ds extends n{static{this.ID="editor.contrib.bracketMatchingController"}static get(f){return f.getContribution(Ds.ID)}constructor(f){super();this._editor=f,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new be(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(f.onDidChangeCursorPosition((u)=>{if(this._matchBrackets==="never")return;this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeModelContent((u)=>{this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeModel((u)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeModelLanguageConfiguration((u)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeConfiguration((u)=>{if(u.hasChanged(80))this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule()})),this._register(f.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(f.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let f=this._editor.getModel(),u=this._editor.getSelections().map((g)=>{let v=g.getStartPosition(),S=f.bracketPairs.matchBracket(v),y=null;if(S){if(S[0].containsPosition(v)&&!S[1].containsPosition(v))y=S[1].getStartPosition();else if(S[1].containsPosition(v))y=S[0].getStartPosition()}else{let D=f.bracketPairs.findEnclosingBrackets(v);if(D)y=D[1].getStartPosition();else{let T=f.bracketPairs.findNextBracket(v);if(T&&T.range)y=T.range.getStartPosition()}}if(y)return new O(y.lineNumber,y.column,y.lineNumber,y.column);return new O(v.lineNumber,v.column,v.lineNumber,v.column)});this._editor.setSelections(u),this._editor.revealRange(u[0])}selectToBracket(f){if(!this._editor.hasModel())return;let u=this._editor.getModel(),g=[];if(this._editor.getSelections().forEach((v)=>{let S=v.getStartPosition(),y=u.bracketPairs.matchBracket(S);if(!y){if(y=u.bracketPairs.findEnclosingBrackets(S),!y){let R=u.bracketPairs.findNextBracket(S);if(R&&R.range)y=u.bracketPairs.matchBracket(R.range.getStartPosition())}}let D=null,T=null;if(y){y.sort(t.compareRangesUsingStarts);let[R,K]=y;if(D=f?R.getStartPosition():R.getEndPosition(),T=f?K.getEndPosition():K.getStartPosition(),K.containsPosition(S)){let q=D;D=T,T=q}}if(D&&T)g.push(new O(D.lineNumber,D.column,T.lineNumber,T.column))}),g.length>0)this._editor.setSelections(g),this._editor.revealRange(g[0])}removeBrackets(f){if(!this._editor.hasModel())return;let u=this._editor.getModel();this._editor.getSelections().forEach((g)=>{let v=g.getPosition(),S=u.bracketPairs.matchBracket(v);if(!S)S=u.bracketPairs.findEnclosingBrackets(v);if(S)this._editor.pushUndoStop(),this._editor.executeEdits(f,[{range:S[0],text:""},{range:S[1],text:""}]),this._editor.pushUndoStop()})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=oe.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:en(XT),position:ko.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=oe.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();let f=[],u=0;for(let g of this._lastBracketsData){let v=g.brackets;if(v)f[u++]={range:v[0],options:g.options},f[u++]={range:v[1],options:g.options}}this._decorations.set(f)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let f=this._editor.getSelections();if(f.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let u=this._editor.getModel(),g=u.getVersionId(),v=[];if(this._lastVersionId===g)v=this._lastBracketsData;let S=[],y=0;for(let q=0,ee=f.length;q<ee;q++){let te=f[q];if(te.isEmpty())S[y++]=te.getStartPosition()}if(S.length>1)S.sort(r.compare);let D=[],T=0,R=0,K=v.length;for(let q=0,ee=S.length;q<ee;q++){let te=S[q];while(R<K&&v[R].position.isBefore(te))R++;if(R<K&&v[R].position.equals(te))D[T++]=v[R];else{let ne=u.bracketPairs.matchBracket(te,20),re=Ds._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;if(!ne&&this._matchBrackets==="always")ne=u.bracketPairs.findEnclosingBrackets(te,20),re=Ds._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;D[T++]=new Ek(te,ne,re)}}this._lastBracketsData=D,this._lastVersionId=g}}le(Ds.ID,Ds,1);I(Lk);I(Ik);I(kk);Rn.appendMenuItem(a.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:e(856,"Go to &&Bracket")},order:2});oi((f,u)=>{let g=f.getColor(WI);if(g)u.addRule(`.monaco-editor .bracket-match-inline { color: ${g} !important; }`)});var zt=new class{constructor(){this.QuickFix=new It("quickfix"),this.Refactor=new It("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 It("notebook"),this.Source=new It("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}},ji;(function(f){f.Refactor="refactor",f.RefactorPreview="refactor preview",f.Lightbulb="lightbulb",f.Default="other (default)",f.SourceAction="source action",f.QuickFix="quick fix action",f.FixAll="fix all",f.OrganizeImports="organize imports",f.AutoFix="auto fix",f.QuickFixHover="quick fix hover window",f.OnSave="save participants",f.ProblemsView="problems view"})(ji||(ji={}));function Dk(f,u){if(f.include&&!f.include.intersects(u))return!1;if(f.excludes){if(f.excludes.some((g)=>Rk(u,g,f.include)))return!1}if(!f.includeSourceActions&&zt.Source.contains(u))return!1;return!0}function Tk(f,u){let g=u.kind?new It(u.kind):void 0;if(f.include){if(!g||!f.include.contains(g))return!1}if(f.excludes){if(g&&f.excludes.some((v)=>Rk(g,v,f.include)))return!1}if(!f.includeSourceActions){if(g&&zt.Source.contains(g))return!1}if(f.onlyIncludePreferredActions){if(!u.isPreferred)return!1}return!0}function Rk(f,u,g){if(!u.contains(f))return!1;if(g&&u.contains(g))return!1;return!0}class hn{static fromUser(f,u){if(!f||typeof f!=="object")return new hn(u.kind,u.apply,!1);return new hn(hn.getKindFromUser(f,u.kind),hn.getApplyFromUser(f,u.apply),hn.getPreferredUser(f))}static getApplyFromUser(f,u){switch(typeof f.apply==="string"?f.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return u}}static getKindFromUser(f,u){return typeof f.kind==="string"?new It(f.kind):u}static getPreferredUser(f){return typeof f.preferred==="boolean"?f.preferred:!1}constructor(f,u,g){this.kind=f,this.apply=u,this.preferred=g}}class Zb{constructor(f,u,g){this.action=f,this.provider=u,this.highlightRange=g}async resolve(f){if(this.provider?.resolveCodeAction&&!this.action.edit){let u;try{u=await this.provider.resolveCodeAction(this.action,f)}catch(g){dt(g)}if(u)this.action.edit=u.edit}return this}}var em="editor.action.codeAction",da="editor.action.quickFix",yc="editor.action.autoFix",tm="editor.action.refactor",im="editor.action.sourceAction",uu="editor.action.organizeImports",gu="editor.action.fixAll",YT=1000;class hu extends n{static codeActionsPreferredComparator(f,u){if(f.isPreferred&&!u.isPreferred)return-1;else if(!f.isPreferred&&u.isPreferred)return 1;else return 0}static codeActionsComparator({action:f},{action:u}){if(f.isAI&&!u.isAI)return 1;else if(!f.isAI&&u.isAI)return-1;if(Ln(f.diagnostics))return Ln(u.diagnostics)?hu.codeActionsPreferredComparator(f,u):-1;else if(Ln(u.diagnostics))return 1;else return hu.codeActionsPreferredComparator(f,u)}constructor(f,u,g){super();this.documentation=u,this._register(g),this.allActions=[...f].sort(hu.codeActionsComparator),this.validActions=this.allActions.filter(({action:v})=>!v.disabled)}get hasAutoFix(){return this.validActions.some(({action:f})=>!!f.kind&&zt.QuickFix.contains(new It(f.kind))&&!!f.isPreferred)}get hasAIFix(){return this.validActions.some(({action:f})=>!!f.isAI)}get allAIFixes(){return this.validActions.every(({action:f})=>!!f.isAI)}}var Nk={actions:[],documentation:void 0};async function ca(f,u,g,v,S,y){let D=v.filter||{},T={...D,excludes:[...D.excludes||[],zt.Notebook]},R={only:D.include?.value,trigger:v.type},K=new kg(u,y),q=v.type===2,ee=JT(f,u,q?T:D),te=new c,ne=ee.map(async(ae)=>{let ge=setTimeout(()=>S.report(ae),1250);try{let ke=await ae.provideCodeActions(u,g,R,K.token);if(K.token.isCancellationRequested)return ke?.dispose(),Nk;if(ke)te.add(ke);let Ae=(ke?.actions||[]).filter((Ke)=>Ke&&Tk(D,Ke)),He=eR(ae,Ae,D.include);return{actions:Ae.map((Ke)=>new Zb(Ke,ae)),documentation:He}}catch(ke){if(Kn(ke))throw ke;return dt(ke),Nk}finally{clearTimeout(ge)}}),re=f.onDidChange(()=>{let ae=f.all(u);if(!Ge(ae,ee))K.cancel()});try{let ae=await Promise.all(ne),ge=ae.map((He)=>He.actions).flat(),ke=[...Zi(ae.map((He)=>He.documentation)),...QT(f,u,v,ge)],Ae=new hu(ge,ke,te);return te.add(Ae),Ae}catch(ae){throw te.dispose(),ae}finally{re.dispose(),K.dispose()}}function JT(f,u,g){return f.all(u).filter((v)=>{if(!v.providedCodeActionKinds)return!0;return v.providedCodeActionKinds.some((S)=>Dk(g,new It(S)))})}function*QT(f,u,g,v){if(u&&v.length){for(let S of f.all(u))if(S._getAdditionalMenuItems)yield*S._getAdditionalMenuItems?.({trigger:g.type,only:g.filter?.include?.value},v.map((y)=>y.action))}}function eR(f,u,g){if(!f.documentation)return;let v=f.documentation.map((S)=>({kind:new It(S.kind),command:S.command}));if(g){let S;for(let y of v)if(y.kind.contains(g)){if(!S)S=y;else if(S.kind.contains(y.kind))S=y}if(S)return S?.command}for(let S of u){if(!S.kind)continue;for(let y of v)if(y.kind.contains(new It(S.kind)))return y.command}return}var rs;(function(f){f.OnSave="onSave",f.FromProblemsView="fromProblemsView",f.FromCodeActions="fromCodeActions",f.FromAILightbulb="fromAILightbulb",f.FromProblemsHover="fromProblemsHover"})(rs||(rs={}));async function Mk(f,u,g,v,S=he.None){let y=f.get(bl),D=f.get(Ne),T=f.get(kn),R=f.get(ut),K=f.get(Fr);if(T.publicLog2("codeAction.applyCodeAction",{codeActionTitle:u.action.title,codeActionKind:u.action.kind,codeActionIsPreferred:!!u.action.isPreferred,reason:g}),K.playSignal(qe.codeActionTriggered),await u.resolve(S),S.isCancellationRequested)return;if(u.action.edit?.edits.length){if(!(await y.apply(u.action.edit,{editor:v?.editor,label:u.action.title,quotableLabel:u.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:g!==rs.OnSave,showPreview:v?.preview,reason:$n.codeAction({kind:u.action.kind,providerId:qm.fromExtensionId(u.provider?.extensionId)})})).isApplied)return}if(u.action.command)try{await D.executeCommand(u.action.command.id,...u.action.command.arguments||[])}catch(q){let ee=tR(q);R.error(typeof ee==="string"?ee:e(881,"An unknown error occurred while applying the code action"))}setTimeout(()=>K.playSignal(qe.codeActionApplied),YT)}function tR(f){if(typeof f==="string")return f;else if(f instanceof Error&&typeof f.message==="string")return f.message;else return}we.registerCommand("_executeCodeActionProvider",async function(f,u,g,v,S){if(!(u instanceof W))throw Xi();let{codeActionProvider:y}=f.get(j),D=f.get(gt).getModel(u);if(!D)throw Xi();let T=O.isISelection(g)?O.liftSelection(g):t.isIRange(g)?D.validateRange(g):void 0;if(!T)throw Xi();let R=typeof v==="string"?new It(v):void 0,K=await ca(y,D,T,{type:1,triggerAction:ji.Default,filter:{includeSourceActions:!0,include:R}},Zs.None,he.None),q=[],ee=Math.min(K.validActions.length,typeof S==="number"?S:0);for(let te=0;te<ee;te++)q.push(K.validActions[te].resolve(he.None));try{return await Promise.all(q),K.validActions.map((te)=>te.action)}finally{setTimeout(()=>K.dispose(),100)}});var aR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},dR=function(f,u){return function(g,v){u(g,v,f)}},Xb,om=class f{static{Xb=this}static{this.codeActionCommands=[tm,em,im,uu,gu]}constructor(u){this.keybindingService=u}getResolver(){let u=new Pn(()=>this.keybindingService.getKeybindings().filter((g)=>Xb.codeActionCommands.indexOf(g.command)>=0).filter((g)=>g.resolvedKeybinding).map((g)=>{let v=g.commandArgs;if(g.command===uu)v={kind:zt.SourceOrganizeImports.value};else if(g.command===gu)v={kind:zt.SourceFixAll.value};return{resolvedKeybinding:g.resolvedKeybinding,...hn.fromUser(v,{kind:It.None,apply:"never"})}}));return(g)=>{if(g.kind)return this.bestKeybindingForCodeAction(g,u.value)?.resolvedKeybinding;return}}bestKeybindingForCodeAction(u,g){if(!u.kind)return;let v=new It(u.kind);return g.filter((S)=>S.kind.contains(v)).filter((S)=>{if(S.preferred)return u.isPreferred;return!0}).reduceRight((S,y)=>{if(!S)return y;return S.kind.contains(y.kind)?y:S},void 0)}};om=Xb=aR([dR(0,ce)],om);s("symbolIcon.arrayForeground",Ee,e(1569,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.booleanForeground",Ee,e(1570,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("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."));s("symbolIcon.colorForeground",Ee,e(1572,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.constantForeground",Ee,e(1573,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("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."));s("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."));s("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."));s("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."));s("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."));s("symbolIcon.fileForeground",Ee,e(1579,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.folderForeground",Ee,e(1580,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("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."));s("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."));s("symbolIcon.keyForeground",Ee,e(1583,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.keywordForeground",Ee,e(1584,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("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."));s("symbolIcon.moduleForeground",Ee,e(1586,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.namespaceForeground",Ee,e(1587,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.nullForeground",Ee,e(1588,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.numberForeground",Ee,e(1589,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.objectForeground",Ee,e(1590,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.operatorForeground",Ee,e(1591,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.packageForeground",Ee,e(1592,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.propertyForeground",Ee,e(1593,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.referenceForeground",Ee,e(1594,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.snippetForeground",Ee,e(1595,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.stringForeground",Ee,e(1596,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.structForeground",Ee,e(1597,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.textForeground",Ee,e(1598,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.typeParameterForeground",Ee,e(1599,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.unitForeground",Ee,e(1600,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("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 Ok=Object.freeze({kind:It.Empty,title:e(917,"More Actions...")}),cR=Object.freeze([{kind:zt.QuickFix,title:e(918,"Quick Fix")},{kind:zt.RefactorExtract,title:e(919,"Extract"),icon:b.wrench},{kind:zt.RefactorInline,title:e(920,"Inline"),icon:b.wrench},{kind:zt.RefactorRewrite,title:e(921,"Rewrite"),icon:b.wrench},{kind:zt.RefactorMove,title:e(922,"Move"),icon:b.wrench},{kind:zt.SurroundWith,title:e(923,"Surround With"),icon:b.surroundWith},{kind:zt.Source,title:e(924,"Source Action"),icon:b.symbolFile},Ok]);function Pk(f,u,g){if(!u)return f.map((y)=>({kind:"action",item:y,group:Ok,disabled:!!y.action.disabled,label:y.action.disabled||y.action.title,canPreview:!!y.action.edit?.edits.length}));let v=cR.map((y)=>({group:y,actions:[]}));for(let y of f){let D=y.action.kind?new It(y.action.kind):It.None;for(let T of v)if(T.group.kind.contains(D)){T.actions.push(y);break}}let S=[];for(let y of v)if(y.actions.length){S.push({kind:"header",group:y.group});for(let D of y.actions){let T=y.group;S.push({kind:"action",item:D,group:D.action.isAI?{title:T.title,kind:T.kind,icon:b.sparkle}:T,label:D.action.title,disabled:!!D.action.disabled,keybinding:g(D.action)})}}return S}var Yb=new A("supportedCodeAction",""),Ak="_typescript.applyFixAllCodeAction";class Fk extends n{constructor(f,u,g,v=250){super();this._editor=f,this._markerService=u,this._signalChange=g,this._delay=v,this._autoTriggerTimer=this._register(new Un),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged((S)=>this._onMarkerChanges(S))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(f){let u=this._getRangeOfSelectionUnlessWhitespaceEnclosed(f);this._signalChange(u?{trigger:f,selection:u}:void 0)}_onMarkerChanges(f){let u=this._editor.getModel();if(u&&f.some((g)=>Ar(g,u.uri)))this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:ji.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(f){if(!this._editor.hasModel())return;let u=this._editor.getSelection();if(f.type===1)return u;let g=this._editor.getOption(73).enabled;if(g===Xr.Off&&!this.ignoreLightbulbOff)return;else if(g===Xr.Off||g===Xr.On)return u;else if(g===Xr.OnCode){if(!u.isEmpty())return u;let S=this._editor.getModel(),{lineNumber:y,column:D}=u.getPosition(),T=S.getLineContent(y);if(T.length===0)return;else if(D===1){if(/\s/.test(T[0]))return}else if(D===S.getLineMaxColumn(y)){if(/\s/.test(T[T.length-1]))return}else if(/\s/.test(T[D-2])&&/\s/.test(T[D-1]))return}return u}}var ld;(function(f){f.Empty={type:0};class u{constructor(g,v,S){this.trigger=g,this.position=v,this._cancellablePromise=S,this.type=1,this.actions=S.catch((y)=>{if(Kn(y))return pu;throw y})}cancel(){this._cancellablePromise.cancel()}}f.Triggered=u})(ld||(ld={}));var pu=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class Jb extends n{constructor(f,u,g,v,S,y){super();this._editor=f,this._registry=u,this._markerService=g,this._progressService=S,this._configurationService=y,this._codeActionOracle=this._register(new ie),this._state=ld.Empty,this._onDidChangeState=this._register(new i),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new ie),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=Yb.bindTo(v),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((D)=>{if(D.hasChanged(73))this._update()})),this._update()}dispose(){if(this._disposed)return;this._disposed=!0,super.dispose(),this.setState(ld.Empty,!0)}_settingEnabledNearbyQuickfixes(){let f=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:f?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(ld.Empty),this.codeActionsDisposable.clear();let f=this._editor.getModel();if(f&&this._registry.has(f)&&!this._editor.getOption(104)){let u=this._registry.all(f).flatMap((v)=>v.providedCodeActionKinds??[]);this._supportedCodeActions.set(u.join(" "));let g=new Fk(this._editor,this._markerService,(v)=>{if(!v){this.setState(ld.Empty);return}let S=v.selection.getStartPosition(),y=Pt(async(R)=>{if(this._settingEnabledNearbyQuickfixes()&&v.trigger.type===1&&(v.trigger.triggerAction===ji.QuickFix||v.trigger.filter?.include?.contains(zt.QuickFix))){let q=new c,ee=!1;try{let te=q.add(await ca(this._registry,f,v.selection,v.trigger,Zs.None,R)),ne=[...te.allActions];if(R.isCancellationRequested)return pu;let re=te.validActions?.some((ge)=>ge.action.kind&&zt.QuickFix.contains(new It(ge.action.kind))&&!ge.action.isAI),ae=this._markerService.read({resource:f.uri});if(re){for(let ke of te.validActions)if(ke.action.command?.arguments?.some((Ae)=>typeof Ae==="string"&&Ae.includes(Ak)))ke.action.diagnostics=[...ae.filter((Ae)=>Ae.relatedInformation)];let ge=this._setCodeActions({validActions:te.validActions,allActions:ne,documentation:te.documentation,hasAutoFix:te.hasAutoFix,hasAIFix:te.hasAIFix,allAIFixes:te.allAIFixes,dispose:()=>q.dispose()});return ee=!0,ge}else if(!re){if(ae.length>0){let ge=v.selection.getPosition(),ke=ge,Ae=Number.MAX_VALUE,He=[...te.validActions];for(let Te of ae){let{endColumn:We,endLineNumber:et,startLineNumber:tt}=Te;if(et===ge.lineNumber||tt===ge.lineNumber){ke=new r(et,We);let ot={type:v.trigger.type,triggerAction:v.trigger.triggerAction,filter:{include:v.trigger.filter?.include?v.trigger.filter?.include:zt.QuickFix},autoApply:v.trigger.autoApply,context:{notAvailableMessage:v.trigger.context?.notAvailableMessage||"",position:ke}},je=new O(ke.lineNumber,ke.column,ke.lineNumber,ke.column),nt=q.add(await ca(this._registry,f,je,ot,Zs.None,R));if(R.isCancellationRequested)return pu;if(nt.validActions.length!==0){for(let _t of nt.validActions)if(_t.action.command?.arguments?.some((st)=>typeof st==="string"&&st.includes(Ak)))_t.action.diagnostics=[...ae.filter((st)=>st.relatedInformation)];if(te.allActions.length===0)ne.push(...nt.allActions);if(Math.abs(ge.column-We)<Ae)He.unshift(...nt.validActions);else He.push(...nt.validActions)}Ae=Math.abs(ge.column-We)}}let Ke=He.filter((Te,We,et)=>et.findIndex((tt)=>tt.action.title===Te.action.title)===We);Ke.sort((Te,We)=>{if(Te.action.isPreferred&&!We.action.isPreferred)return-1;else if(!Te.action.isPreferred&&We.action.isPreferred)return 1;else if(Te.action.isAI&&!We.action.isAI)return 1;else if(!Te.action.isAI&&We.action.isAI)return-1;else return 0});let Ue=this._setCodeActions({validActions:Ke,allActions:ne,documentation:te.documentation,hasAutoFix:te.hasAutoFix,hasAIFix:te.hasAIFix,allAIFixes:te.allAIFixes,dispose:()=>q.dispose()});return ee=!0,Ue}}}finally{if(!ee)q.dispose()}}if(v.trigger.type===1){let q=await ca(this._registry,f,v.selection,v.trigger,Zs.None,R);if(R.isCancellationRequested)return q.dispose(),pu;return this._setCodeActions(q)}let K=await ca(this._registry,f,v.selection,v.trigger,Zs.None,R);if(R.isCancellationRequested)return K.dispose(),pu;return this._setCodeActions(K)});if(v.trigger.type===1)this._progressService?.showWhile(y,250);let D=new ld.Triggered(v.trigger,S,y),T=!1;if(this._state.type===1)T=this._state.trigger.type===1&&D.type===1&&D.trigger.type===2&&this._state.position!==D.position;if(!T)this.setState(D);else setTimeout(()=>{this.setState(D)},500)},void 0);g.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=g,this._codeActionOracle.value.trigger({type:2,triggerAction:ji.Default})}else this._supportedCodeActions.reset()}_setCodeActions(f){return this.codeActionsDisposable.value=f,f}takeCodeActions(f){if(this.codeActionsDisposable.value!==f)return;return this.codeActionsDisposable.clearAndLeak(),f}trigger(f){this._codeActionOracle.value?.trigger(f),this.codeActionsDisposable.clear()}setState(f,u){if(f===this._state)return;if(this._state.type===1)this._state.cancel();if(this._state=f,!u&&!this._disposed)this._onDidChangeState.fire(f)}}var lR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},hR=function(f,u){return function(g,v){u(g,v,f)}},la,Hk=Tt("gutter-lightbulb",b.lightBulb,e(925,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),Wk=Tt("gutter-lightbulb-auto-fix",b.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.")),Bk=Tt("gutter-lightbulb-sparkle",b.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.")),Vk=Tt("gutter-lightbulb-aifix-auto-fix",b.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.")),zk=Tt("gutter-lightbulb-sparkle-filled",b.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.")),pr;(function(f){f.Hidden={type:0};class u{constructor(g,v,S,y){this.actions=g,this.trigger=v,this.editorPosition=S,this.widgetPosition=y,this.type=1}}f.Showing=u})(pr||(pr={}));function Qb(f,u,g,v,S=!1){if(f.validActions.length<=0)return;let y,D=!1;if(f.allAIFixes){if(y=S?zk:b.sparkleFilled,f.validActions.length===1)D=!0}else if(f.hasAutoFix)if(f.hasAIFix)y=S?Vk:b.lightbulbSparkleAutofix;else y=S?Wk:b.lightbulbAutofix;else if(f.hasAIFix)y=S?Bk:b.lightbulbSparkle;else y=S?Hk:b.lightBulb;let T;if(D)T=e(930,"Run: {0}",f.validActions[0].action.title);else if(f.hasAutoFix&&g)T=e(931,"Show Code Actions. Preferred Quick Fix Available ({0})",g);else if(!f.hasAutoFix&&v)T=e(932,"Show Code Actions ({0})",v);else T=e(933,"Show Code Actions");return{actions:f,trigger:u,icon:y,autoRun:D,title:T,isGutter:S}}var hd=class f extends n{static{la=this}static{this.GUTTER_DECORATION=oe.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:G.asClassName(b.lightBulb),glyphMargin:{position:xr.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}static _computeLightBulbInfo(u,g,v,S){if(u.type!==1)return;return Qb(u.actions,u.trigger,v,S,g)}constructor(u,g){super();this._editor=u,this._keybindingService=g,this.onlyWithEmptySelection=!1,this._onClick=this._register(new i),this.onClick=this._onClick.event,this._state=M(this,pr.Hidden),this._gutterState=M(this,pr.Hidden),this._combinedInfo=d(this,(v)=>{let S=this._gutterState.read(v);if(S.type===1)return la._computeLightBulbInfo(S,!0,this._preferredKbLabel.read(v),this._quickFixKbLabel.read(v));let y=this._state.read(v);if(y.type===1)return la._computeLightBulbInfo(y,!1,this._preferredKbLabel.read(v),this._quickFixKbLabel.read(v));return}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+Hk.id,"codicon-"+Vk.id,"codicon-"+Wk.id,"codicon-"+Bk.id,"codicon-"+zk.id],this._preferredKbLabel=M(this,void 0),this._quickFixKbLabel=M(this,void 0),this.gutterDecoration=la.GUTTER_DECORATION,this._domNode=m("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Et.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((v)=>{let S=this._editor.getModel(),y=this._state.get();if(y.type!==1||!S||y.editorPosition.lineNumber>=S.getLineCount())this.hide();let D=this._gutterState.get();if(D.type!==1||!S||D.editorPosition.lineNumber>=S.getLineCount())this.gutterHide()})),this._register(xI(this._domNode,(v)=>{let S=this._state.get();if(S.type!==1)return;this._editor.focus(),v.preventDefault();let{top:y,height:D}=mt(this._domNode),T=this._editor.getOption(75),R=Math.floor(T/3);if(S.widgetPosition.position!==null&&S.widgetPosition.position.lineNumber<S.editorPosition.lineNumber)R+=T;this._onClick.fire({x:v.posx,y:y+D+R,actions:S.actions,trigger:S.trigger})})),this._register(l(this._domNode,"mouseenter",(v)=>{if((v.buttons&1)!==1)return;this.hide()})),this._register(C.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(yc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(da)?.getLabel()??void 0,void 0)})),this._register(H((v)=>{let S=this._combinedInfo.read(v);this._updateLightBulbTitleAndIcon(S),this._updateGutterDecorationOptions(S)})),this._register(this._editor.onMouseDown(async(v)=>{if(!v.target.element||!this.lightbulbClasses.some((K)=>v.target.element&&v.target.element.classList.contains(K)))return;let S=this._gutterState.get();if(S.type!==1)return;this._editor.focus();let{top:y,height:D}=mt(v.target.element),T=this._editor.getOption(75),R=Math.floor(T/3);if(S.widgetPosition.position!==null&&S.widgetPosition.position.lineNumber<S.editorPosition.lineNumber)R+=T;this._onClick.fire({x:v.event.posx,y:y+D+R,actions:S.actions,trigger:S.trigger})}))}dispose(){if(super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){let u=this._state.get();return u.type===1?u.widgetPosition:null}update(u,g,v){if(u.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===Xr.Off)return this.gutterHide(),this.hide();let D=this._editor.getModel();if(!D)return this.gutterHide(),this.hide();let{lineNumber:T,column:R}=D.validatePosition(v),K=D.getOptions().tabSize,q=this._editor.getOptions().get(59),ee=D.getLineContent(T),te=tf(ee,K),ne=q.spaceWidth*te>22,re=(Ue)=>Ue>2&&this._editor.getTopForLineNumber(Ue)===this._editor.getTopForLineNumber(Ue-1),ae=this._editor.getLineDecorations(T),ge=!1;if(ae)for(let Ue of ae){let Te=Ue.options.glyphMarginClassName;if(Te&&!this.lightbulbClasses.some((We)=>Te.includes(We))){ge=!0;break}}let ke=T,Ae=1;if(!ne){let Ue=(Te)=>{let We=D.getLineContent(Te);return/^\s*$|^\s+/.test(We)||We.length<=Ae};if(T>1&&!re(T-1)){let Te=D.getLineCount(),We=T===Te,et=T>1&&Ue(T-1),tt=!We&&Ue(T+1),ot=Ue(T),je=!tt&&!et;if(!tt&&!et&&!ge)return this._gutterState.set(new pr.Showing(u,g,v,{position:{lineNumber:ke,column:Ae},preference:la._posPref}),void 0),this.renderGutterLightbub(),this.hide();else if(et||We||et&&!ot)ke-=1;else if(tt||je&&ot)ke+=1}else if(T===1&&(T===D.getLineCount()||!Ue(T+1)&&!Ue(T)))if(this._gutterState.set(new pr.Showing(u,g,v,{position:{lineNumber:ke,column:Ae},preference:la._posPref}),void 0),ge)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(T<D.getLineCount()&&!re(T+1))ke+=1;else if(R*q.spaceWidth<22)return this.hide();Ae=/^\S\s*$/.test(D.getLineContent(ke))?2:1}if(this._state.set(new pr.Showing(u,g,v,{position:{lineNumber:ke,column:Ae},preference:la._posPref}),void 0),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide();let He=u.validActions,Ke=u.validActions[0].action.kind;if(He.length!==1||!Ke){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){if(this._state.get()===pr.Hidden)return;this._state.set(pr.Hidden,void 0),this._editor.layoutContentWidget(this)}gutterHide(){if(this._gutterState.get()===pr.Hidden)return;if(this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID);this._gutterState.set(pr.Hidden,void 0)}_updateLightBulbTitleAndIcon(u){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!u||u.isGutter)return;this._domNode.title=u.title,this._iconClasses=G.asClassNameArray(u.icon),this._domNode.classList.add(...this._iconClasses)}_updateGutterDecorationOptions(u){if(!u||!u.isGutter)return;this.gutterDecoration=oe.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:G.asClassName(u.icon),glyphMargin:{position:xr.Left},stickiness:1})}renderGutterLightbub(){let u=this._editor.getSelection();if(!u)return;if(this._gutterDecorationID===void 0)this._addGutterDecoration(u.startLineNumber);else this._updateGutterDecoration(this._gutterDecorationID,u.startLineNumber)}_addGutterDecoration(u){this._editor.changeDecorations((g)=>{this._gutterDecorationID=g.addDecoration(new t(u,0,u,0),this.gutterDecoration)})}_removeGutterDecoration(u){this._editor.changeDecorations((g)=>{g.removeDecoration(u),this._gutterDecorationID=void 0})}_updateGutterDecoration(u,g){this._editor.changeDecorations((v)=>{v.changeDecoration(u,new t(g,0,g,0)),v.changeDecorationOptions(u,this.gutterDecoration)})}};hd=la=lR([hR(1,ce)],hd);var uR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},mr=function(f,u){return function(g,v){u(g,v,f)}},xc,gR="quickfix-edit-highlight",ss=class f extends n{static{xc=this}static{this.ID="editor.contrib.codeActionController"}static get(u){return u.getContribution(xc.ID)}constructor(u,g,v,S,y,D,T,R,K,q,ee,te){super();this._commandService=T,this._configurationService=R,this._actionWidgetService=K,this._instantiationService=q,this._progressService=ee,this._keybindingService=te,this._activeCodeActions=this._register(new ie),this._showDisabled=!1,this._disposed=!1,this._onlyLightBulbWithEmptySelection=!1,this._lightBulbInfoObs=M(this,void 0),this._preferredKbLabel=M(this,void 0),this._quickFixKbLabel=M(this,void 0),this._editor=u,this._model=this._register(new Jb(this._editor,y.codeActionProvider,g,v,D,R)),this._register(this._model.onDidChangeState((ne)=>this.update(ne))),this._register(C.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(yc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(da)?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new Pn(()=>{let ne=this._editor.getContribution(hd.ID);if(ne)this._register(ne.onClick((re)=>this.showCodeActionsFromLightbulb(re.actions,re))),ne.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection;return ne}),this._resolver=S.createInstance(om),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(u,g){if(u.allAIFixes&&u.validActions.length===1){let v=u.validActions[0],S=v.action.command;if(S&&S.id==="inlineChat.start"){if(S.arguments&&S.arguments.length>=1&&S.arguments[0])S.arguments[0]={...S.arguments[0],autoSend:!1}}await this.applyCodeAction(v,!1,!1,rs.FromAILightbulb);return}await this.showCodeActionList(u,g,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(u,g,v){return this.showCodeActionList(g,v,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(u,g,v,S){if(!this._editor.hasModel())return;Bi.get(this._editor)?.closeMessage();let y=this._editor.getPosition();this._trigger({type:1,triggerAction:g,filter:v,autoApply:S,context:{notAvailableMessage:u,position:y}})}_trigger(u){return this._model.trigger(u)}async applyCodeAction(u,g,v,S){let y=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(Mk,u,S,{preview:v,editor:this._editor})}finally{if(g)this._trigger({type:2,triggerAction:ji.QuickFix,filter:{}});y.done()}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(u){if(u.type!==1){this.hideLightBulbWidget(),this._lightBulbInfoObs.set(void 0,void 0);return}let g;try{g=this._model.takeCodeActions(await u.actions)}catch(S){J(S);return}if(!g)return;if(this._disposed){g.dispose();return}if(this._editor.getSelection()?.startLineNumber!==u.position.lineNumber){g.dispose();return}if(this._lightBulbWidget.value?.update(g,u.trigger,u.position),this._lightBulbInfoObs.set(Qb(g,u.trigger,this._preferredKbLabel.get(),this._quickFixKbLabel.get()),void 0),u.trigger.type===1){if(u.trigger.filter?.include){let y=this.tryGetValidActionToApply(u.trigger,g);if(y){try{this.hideLightBulbWidget(),await this.applyCodeAction(y,!1,!1,rs.FromCodeActions)}finally{g.dispose()}return}if(u.trigger.context){let D=this.getInvalidActionThatWouldHaveBeenApplied(u.trigger,g);if(D&&D.action.disabled){Bi.get(this._editor)?.showMessage(D.action.disabled,u.trigger.context.position),g.dispose();return}}}let S=!!u.trigger.filter?.include;if(u.trigger.context){if(!g.allActions.length||!S&&!g.validActions.length){Bi.get(this._editor)?.showMessage(u.trigger.context.notAvailableMessage,u.trigger.context.position),this._activeCodeActions.value=g,g.dispose();return}}this._activeCodeActions.value=g,this.showCodeActionList(g,this.toCoords(u.position),{includeDisabledActions:S,fromLightbulb:!1})}else if(this._actionWidgetService.isVisible)g.dispose();else this._activeCodeActions.value=g}getInvalidActionThatWouldHaveBeenApplied(u,g){if(!g.allActions.length)return;if(u.autoApply==="first"&&g.validActions.length===0||u.autoApply==="ifSingle"&&g.allActions.length===1)return g.allActions.find(({action:v})=>v.disabled);return}tryGetValidActionToApply(u,g){if(!g.validActions.length)return;if(u.autoApply==="first"&&g.validActions.length>0||u.autoApply==="ifSingle"&&g.validActions.length===1)return g.validActions[0];return}static{this.DECORATION=oe.register({description:"quickfix-highlight",className:gR})}async showCodeActionList(u,g,v){let S=this._editor.createDecorationsCollection(),y=this._editor.getDomNode();if(!y)return;let D=v.includeDisabledActions&&(this._showDisabled||u.validActions.length===0)?u.allActions:u.validActions;if(!D.length)return;let T=r.isIPosition(g)?this.toCoords(g):g,R={onSelect:async(K,q)=>{this.applyCodeAction(K,!0,!!q,v.fromLightbulb?rs.FromAILightbulb:rs.FromCodeActions),this._actionWidgetService.hide(!1),S.clear()},onHide:(K)=>{this._editor?.focus(),S.clear()},onHover:async(K,q)=>{if(q.isCancellationRequested)return;let ee=!1,te=K.action.kind;if(te){let ne=new It(te);ee=[zt.RefactorExtract,zt.RefactorInline,zt.RefactorRewrite,zt.RefactorMove,zt.Source].some((ae)=>ae.contains(ne))}return{canPreview:ee||!!K.action.edit?.edits.length}},onFocus:(K)=>{if(K&&K.action){let q=K.action.ranges,ee=K.action.diagnostics;if(S.clear(),q&&q.length>0){let te=ee&&ee?.length>1?ee.map((ne)=>({range:ne,options:xc.DECORATION})):q.map((ne)=>({range:ne,options:xc.DECORATION}));S.set(te)}else if(ee&&ee.length>0){let te=ee.map((re)=>({range:re,options:xc.DECORATION}));S.set(te);let ne=ee[0];if(ne.startLineNumber&&ne.startColumn){let re=this._editor.getModel()?.getWordAtPosition({lineNumber:ne.startLineNumber,column:ne.startColumn})?.word;bo(e(914,"Context: {0} at line {1} and column {2}.",re,ne.startLineNumber,ne.startColumn))}}}else S.clear()}};this._actionWidgetService.show("codeActionWidget",!0,Pk(D,this._shouldShowHeaders(),this._resolver.getResolver()),R,T,y,this._getActionBarActions(u,g,v))}toCoords(u){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(u,1),this._editor.render();let g=this._editor.getScrolledVisiblePosition(u),v=mt(this._editor.getDomNode()),S=v.left+g.left,y=v.top+g.top+g.height;return{x:S,y}}_shouldShowHeaders(){let u=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:u?.uri})}_getActionBarActions(u,g,v){if(v.fromLightbulb)return[];let S=u.documentation.map((y)=>({id:y.id,label:y.title,tooltip:y.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(y.id,...y.arguments??[])}));if(v.includeDisabledActions&&u.validActions.length>0&&u.allActions.length!==u.validActions.length)S.push(this._showDisabled?{id:"hideMoreActions",label:e(915,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(u,g,v))}:{id:"showMoreActions",label:e(916,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(u,g,v))});return S}};ss=xc=uR([mr(1,dr),mr(2,V),mr(3,L),mr(4,j),mr(5,is),mr(6,Ne),mr(7,X),mr(8,Oo),mr(9,L),mr(10,is),mr(11,ce)],ss);oi((f,u)=>{((S,y)=>{if(y)u.addRule(`.monaco-editor ${S} { background-color: ${y}; }`)})(".quickfix-edit-highlight",f.getColor(xs));let v=f.getColor(ll);if(v)u.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${zo(f.type)?"dotted":"solid"} ${v}; box-sizing: border-box; }`)});function mu(f){return _.regex(Yb.keys()[0],new RegExp("(\\s|^)"+_i(f.value)+"\\b"))}var ev={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 ud(f,u,g,v,S=ji.Default){if(f.hasModel())ss.get(f)?.manualTriggerAtCurrentPosition(u,S,g,v)}class tv extends Bo{constructor(){super({id:da,title:h(904,"Quick Fix..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),icon:b.lightBulb,f1:!0,keybinding:{when:o.textInputFocus,primary:2137,weight:100},menu:{id:a.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:_.and(o.writable,o.hasCodeActionsProvider)}})}runEditorCommand(f,u){return ud(u,e(888,"No code actions available"),void 0,void 0,ji.QuickFix)}}class iv extends Bt{constructor(){super({id:em,precondition:_.and(o.writable,o.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:ev}]}})}runEditorCommand(f,u,g){let v=hn.fromUser(g,{kind:It.Empty,apply:"ifSingle"});return ud(u,typeof g?.kind==="string"?v.preferred?e(889,"No preferred code actions for '{0}' available",g.kind):e(890,"No code actions for '{0}' available",g.kind):v.preferred?e(891,"No preferred code actions available"):e(892,"No code actions available"),{include:v.kind,includeSourceActions:!0,onlyIncludePreferredActions:v.preferred},v.apply)}}class ov extends z{constructor(){super({id:tm,label:h(905,"Refactor..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),kbOpts:{kbExpr:o.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:_.and(o.writable,mu(zt.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:ev}]}})}run(f,u,g){let v=hn.fromUser(g,{kind:zt.Refactor,apply:"never"});return ud(u,typeof g?.kind==="string"?v.preferred?e(893,"No preferred refactorings for '{0}' available",g.kind):e(894,"No refactorings for '{0}' available",g.kind):v.preferred?e(895,"No preferred refactorings available"):e(896,"No refactorings available"),{include:zt.Refactor.contains(v.kind)?v.kind:It.None,onlyIncludePreferredActions:v.preferred},v.apply,ji.Refactor)}}class nv extends z{constructor(){super({id:im,label:h(906,"Source Action..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:_.and(o.writable,mu(zt.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:ev}]}})}run(f,u,g){let v=hn.fromUser(g,{kind:zt.Source,apply:"never"});return ud(u,typeof g?.kind==="string"?v.preferred?e(897,"No preferred source actions for '{0}' available",g.kind):e(898,"No source actions for '{0}' available",g.kind):v.preferred?e(899,"No preferred source actions available"):e(900,"No source actions available"),{include:zt.Source.contains(v.kind)?v.kind:It.None,includeSourceActions:!0,onlyIncludePreferredActions:v.preferred},v.apply,ji.SourceAction)}}class rv extends z{constructor(){super({id:uu,label:h(907,"Organize Imports"),precondition:_.and(o.writable,mu(zt.SourceOrganizeImports)),kbOpts:{kbExpr:o.textInputFocus,primary:1581,weight:100},metadata:{description:h(908,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(f,u){return ud(u,e(901,"No organize imports action available"),{include:zt.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",ji.OrganizeImports)}}class sv extends z{constructor(){super({id:gu,label:h(909,"Fix All"),precondition:_.and(o.writable,mu(zt.SourceFixAll))})}run(f,u){return ud(u,e(902,"No fix all action available"),{include:zt.SourceFixAll,includeSourceActions:!0},"ifSingle",ji.FixAll)}}class av extends z{constructor(){super({id:yc,label:h(910,"Auto Fix..."),precondition:_.and(o.writable,mu(zt.QuickFix)),kbOpts:{kbExpr:o.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(f,u){return ud(u,e(903,"No auto fixes available"),{include:zt.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",ji.AutoFix)}}le(ss.ID,ss,3);le(hd.ID,hd,4);Ye(tv);I(ov);I(nv);I(rv);I(av);I(sv);U(new iv);it.as(or.Configuration).registerConfiguration({...xy,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:e(911,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});it.as(or.Configuration).registerConfiguration({...xy,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}}});it.as(or.Configuration).registerConfiguration({...xy,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 Kk=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},fu=function(f,u){return function(g,v){u(g,v,f)}},nm=class f{static{this.ID="editor.contrib.autoFormat"}constructor(u,g,v,S){this._editor=u,this._languageFeaturesService=g,this._workerService=v,this._accessibilitySignalService=S,this._disposables=new c,this._sessionDisposables=new c,this._disposables.add(g.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(u.onDidChangeModel(()=>this._update())),this._disposables.add(u.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(u.onDidChangeConfiguration((y)=>{if(y.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 u=this._editor.getModel(),[g]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(u);if(!g||!g.autoFormatTriggerCharacters)return;let v=new fh;for(let S of g.autoFormatTriggerCharacters)v.add(S.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((S)=>{let y=S.charCodeAt(S.length-1);if(v.has(y))this._trigger(String.fromCharCode(y))}))}_trigger(u){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let g=this._editor.getModel(),v=this._editor.getPosition(),S=new Oe,y=this._editor.onDidChangeModelContent((D)=>{if(D.isFlush){S.cancel(),y.dispose();return}for(let T=0,R=D.changes.length;T<R;T++)if(D.changes[T].range.endLineNumber<=v.lineNumber){S.cancel(),y.dispose();return}});NS(this._workerService,this._languageFeaturesService,g,v,u,g.getFormattingOptions(),S.token).then((D)=>{if(S.token.isCancellationRequested)return;if(Ln(D))this._accessibilitySignalService.playSignal(qe.format,{userGesture:!1}),Oh.execute(this._editor,D,!0)}).finally(()=>{y.dispose()})}};nm=Kk([fu(1,j),fu(2,pi),fu(3,Fr)],nm);var rm=class f{static{this.ID="editor.contrib.formatOnPaste"}constructor(u,g,v){this.editor=u,this._languageFeaturesService=g,this._instantiationService=v,this._callOnDispose=new c,this._callOnModel=new c,this._callOnDispose.add(u.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(u.onDidChangeModel(()=>this._update())),this._callOnDispose.add(u.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(g.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:u})=>this._trigger(u)))}_trigger(u){if(!this.editor.hasModel())return;if(this.editor.getSelections().length>1)return;this._instantiationService.invokeFunction(AS,this.editor,u,2,Zs.None,he.None,!1).catch(J)}};rm=Kk([fu(1,j),fu(2,L)],rm);class Uk extends z{constructor(){super({id:"editor.action.formatDocument",label:h(1072,"Format Document"),precondition:_.and(o.notInCompositeEditor,o.writable,o.hasDocumentFormattingProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(f,u){if(u.hasModel()){let g=f.get(L);await f.get(is).showWhile(g.invokeFunction(sR,u,1,Zs.None,he.None,!0),250)}}}class qk extends z{constructor(){super({id:"editor.action.formatSelection",label:h(1073,"Format Selection"),precondition:_.and(o.writable,o.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2084),weight:100},contextMenuOpts:{when:o.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(f,u){if(!u.hasModel())return;let g=f.get(L),v=u.getModel(),S=u.getSelections().map((D)=>D.isEmpty()?new t(D.startLineNumber,1,D.startLineNumber,v.getLineMaxColumn(D.startLineNumber)):D);await f.get(is).showWhile(g.invokeFunction(AS,u,S,1,Zs.None,he.None,!0),250)}}le(nm.ID,nm,2);le(rm.ID,rm,2);I(Uk);I(qk);we.registerCommand("editor.action.format",async(f)=>{let u=f.get(ye).getFocusedCodeEditor();if(!u||!u.hasModel())return;let g=f.get(Ne);if(u.getSelection().isEmpty())await g.executeCommand("editor.action.formatDocument");else await g.executeCommand("editor.action.formatSelection")});var sm="editor.action.showHover",jk="editor.action.showDefinitionPreviewHover",$k="editor.action.hideHover",Gk="editor.action.scrollUpHover",Zk="editor.action.scrollDownHover",Xk="editor.action.scrollLeftHover",Yk="editor.action.scrollRightHover",Jk="editor.action.pageUpHover",Qk="editor.action.pageDownHover",e1="editor.action.goToTopHover",t1="editor.action.goToBottomHover",gd="editor.action.increaseHoverVerbosityLevel",i1=e(1160,"Increase Hover Verbosity Level"),pd="editor.action.decreaseHoverVerbosityLevel",o1=e(1161,"Decrease Hover Verbosity Level"),_u="editor.action.hideLongLineWarningHover";function dv(f,u){return!!f[u]}class am{constructor(f,u){if(this.target=f.target,this.isLeftClick=f.event.leftButton,this.isMiddleClick=f.event.middleButton,this.isRightClick=f.event.rightButton,this.mouseMiddleClickAction=u.mouseMiddleClickAction,this.hasTriggerModifier=dv(f.event,u.triggerModifier),this.isMiddleClick&&u.mouseMiddleClickAction==="ctrlLeftClick")this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0;this.hasSideBySideModifier=dv(f.event,u.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=f.event.detail<=1}}class cv{constructor(f,u){this.keyCodeIsTriggerKey=f.keyCode===u.triggerKey,this.keyCodeIsSideBySideKey=f.keyCode===u.triggerSideBySideKey,this.hasTriggerModifier=dv(f,u.triggerModifier)}}class bu{constructor(f,u,g,v,S){this.mouseMiddleClickAction=S,this.triggerKey=f,this.triggerModifier=u,this.triggerSideBySideKey=g,this.triggerSideBySideModifier=v}equals(f){return this.triggerKey===f.triggerKey&&this.triggerModifier===f.triggerModifier&&this.triggerSideBySideKey===f.triggerSideBySideKey&&this.triggerSideBySideModifier===f.triggerSideBySideModifier&&this.mouseMiddleClickAction===f.mouseMiddleClickAction}}function n1(f,u){if(f==="altKey"){if(ue)return new bu(57,"metaKey",6,"altKey",u);return new bu(5,"ctrlKey",6,"altKey",u)}if(ue)return new bu(6,"altKey",57,"metaKey",u);return new bu(6,"altKey",5,"ctrlKey",u)}class Rs extends n{constructor(f,u){super();this._onMouseMoveOrRelevantKeyDown=this._register(new i),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new i),this.onExecute=this._onExecute.event,this._onCancel=this._register(new i),this.onCancel=this._onCancel.event,this._editor=f,this._extractLineNumberFromMouseEvent=u?.extractLineNumberFromMouseEvent??((g)=>g.target.position?g.target.position.lineNumber:0),this._opts=n1(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(86)||g.hasChanged(87)){let v=n1(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(v))return;this._opts=v,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove((g)=>this._onEditorMouseMove(new am(g,this._opts)))),this._register(this._editor.onMouseDown((g)=>this._onEditorMouseDown(new am(g,this._opts)))),this._register(this._editor.onMouseUp((g)=>this._onEditorMouseUp(new am(g,this._opts)))),this._register(this._editor.onKeyDown((g)=>this._onEditorKeyDown(new cv(g,this._opts)))),this._register(this._editor.onKeyUp((g)=>this._onEditorKeyUp(new cv(g,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection((g)=>this._onDidChangeCursorSelection(g))),this._register(this._editor.onDidChangeModel((g)=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange((g)=>{if(g.scrollTopChanged||g.scrollLeftChanged)this._resetHandler()}))}_onDidChangeCursorSelection(f){if(f.selection&&f.selection.startColumn!==f.selection.endColumn)this._resetHandler()}_onEditorMouseMove(f){this._lastMouseMoveEvent=f,this._onMouseMoveOrRelevantKeyDown.fire([f,null])}_onEditorMouseDown(f){this._hasTriggerKeyOnMouseDown=f.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(f)}_onEditorMouseUp(f){let u=this._extractLineNumberFromMouseEvent(f);if(!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===u&&(this._hasTriggerKeyOnMouseDown||f.isMiddleClick&&f.mouseMiddleClickAction==="openLink"))this._onExecute.fire(f)}_onEditorKeyDown(f){if(this._lastMouseMoveEvent&&(f.keyCodeIsTriggerKey||f.keyCodeIsSideBySideKey&&f.hasTriggerModifier))this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,f]);else if(f.hasTriggerModifier)this._onCancel.fire()}_onEditorKeyUp(f){if(f.keyCodeIsTriggerKey)this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Yo{constructor(f,u,g,v){this.isProviderFirst=f,this.parent=u,this.link=g,this._rangeCallback=v,this.id=ly.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(f){this._range=f,this._rangeCallback(this)}get ariaMessage(){let f=this.parent.getPreview(this)?.preview(this.range);if(!f)return e(1145,"in {0} on line {1} at column {2}",hi(this.uri),this.range.startLineNumber,this.range.startColumn);else return e(1146,"{0} in {1} on line {2} at column {3}",f.value,hi(this.uri),this.range.startLineNumber,this.range.startColumn)}}class r1{constructor(f){this._modelReference=f}dispose(){this._modelReference.dispose()}preview(f,u=8){let g=this._modelReference.object.textEditorModel;if(!g)return;let{startLineNumber:v,startColumn:S,endLineNumber:y,endColumn:D}=f,T=g.getWordUntilPosition({lineNumber:v,column:S-u}),R=new t(v,T.startColumn,v,S),K=new t(y,D,y,1073741824),q=g.getValueInRange(R).replace(/^\s+/,""),ee=g.getValueInRange(f),te=g.getValueInRange(K).replace(/\s+$/,"");return{value:q+ee+te,highlight:{start:q.length,end:q.length+ee.length}}}}class Ns{constructor(f,u){this.parent=f,this.uri=u,this.children=[],this._previews=new Ht}dispose(){$e(this._previews.values()),this._previews.clear()}getPreview(f){return this._previews.get(f.uri)}get ariaMessage(){let f=this.children.length;if(f===1)return e(1147,"1 symbol in {0}, full path {1}",hi(this.uri),this.uri.fsPath);else return e(1148,"{0} symbols in {1}, full path {2}",f,hi(this.uri),this.uri.fsPath)}async resolve(f){if(this._previews.size!==0)return this;for(let u of this.children){if(this._previews.has(u.uri))continue;try{let g=await f.createModelReference(u.uri);this._previews.set(u.uri,new r1(g))}catch(g){J(g)}}return this}}class Ji{constructor(f,u){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new i,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=f,this._title=u;let[g]=f;f.sort(Ji._compareReferences);let v;for(let S of f){if(!v||!vn.isEqual(v.uri,S.uri,!0))v=new Ns(this,S.uri),this.groups.push(v);if(v.children.length===0||Ji._compareReferences(S,v.children[v.children.length-1])!==0){let y=new Yo(g===S,v,S,(D)=>this._onDidChangeReferenceRange.fire(D));this.references.push(y),v.children.push(y)}}}dispose(){$e(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Ji(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(f,u){let{parent:g}=f,v=g.children.indexOf(f),S=g.children.length,y=g.parent.groups.length;if(y===1||u&&v+1<S||!u&&v>0){if(u)v=(v+1)%S;else v=(v+S-1)%S;return g.children[v]}if(v=g.parent.groups.indexOf(g),u)return v=(v+1)%y,g.parent.groups[v].children[0];else return v=(v+y-1)%y,g.parent.groups[v].children[g.parent.groups[v].children.length-1]}nearestReference(f,u){let g=this.references.map((v,S)=>({idx:S,prefixLen:uo(v.uri.toString(),f.toString()),offsetDist:Math.abs(v.range.startLineNumber-u.lineNumber)*100+Math.abs(v.range.startColumn-u.column)})).sort((v,S)=>{if(v.prefixLen>S.prefixLen)return-1;else if(v.prefixLen<S.prefixLen)return 1;else if(v.offsetDist<S.offsetDist)return-1;else if(v.offsetDist>S.offsetDist)return 1;else return 0})[0];if(g)return this.references[g.idx];return}referenceAt(f,u){for(let g of this.references)if(g.uri.toString()===f.toString()){if(t.containsPosition(g.range,u))return g}return}firstReference(){for(let f of this.references)if(f.isProviderFirst)return f;return this.references[0]}static _compareReferences(f,u){return vn.compare(f.uri,u.uri)||t.compareRangesUsingStarts(f.range,u.range)}}var lm=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},hm=function(f,u){return function(g,v){u(g,v,f)}},lv,dm=class f{constructor(u){this._resolverService=u}hasChildren(u){if(u instanceof Ji)return!0;if(u instanceof Ns)return!0;return!1}getChildren(u){if(u instanceof Ji)return u.groups;if(u instanceof Ns)return u.resolve(this._resolverService).then((g)=>g.children);throw Error("bad tree")}};dm=lm([hm(0,gn)],dm);class uv{getHeight(){return 23}getTemplateId(f){if(f instanceof Ns)return vu.id;else return wu.id}}var cm=class f{constructor(u){this._keybindingService=u}getKeyboardNavigationLabel(u){if(u instanceof Yo){let g=u.parent.getPreview(u)?.preview(u.range);if(g)return g.value}return hi(u.uri)}};cm=lm([hm(0,ce)],cm);class gv{getId(f){return f instanceof Yo?f.id:f.uri}}var hv=class f extends n{constructor(u,g){super();this._labelService=g;let v=document.createElement("div");v.classList.add("reference-file"),this.file=this._register(new Vc(v,{supportHighlights:!0})),this.badge=this._register(new _g(w(v,m(".count")),{},_0)),u.appendChild(v)}set(u,g){let v=uh(u.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(u.uri),this._labelService.getUriLabel(v,{relative:!0}),{title:this._labelService.getUriLabel(u.uri),matches:g});let S=u.children.length;if(this.badge.setCount(S),S>1)this.badge.setTitleFormat(e(1139,"{0} references",S));else this.badge.setTitleFormat(e(1140,"{0} reference",S))}};hv=lm([hm(1,ml)],hv);var vu=class f{static{lv=this}static{this.id="FileReferencesRenderer"}constructor(u){this._instantiationService=u,this.templateId=lv.id}renderTemplate(u){return this._instantiationService.createInstance(hv,u)}renderElement(u,g,v){v.set(u.element,iu(u.filterData))}disposeTemplate(u){u.dispose()}};vu=lv=lm([hm(0,L)],vu);class s1 extends n{constructor(f){super();this.label=this._register(new Wc(f))}set(f,u){let g=f.parent.getPreview(f)?.preview(f.range);if(!g||!g.value)this.label.set(`${hi(f.uri)}:${f.range.startLineNumber+1}:${f.range.startColumn+1}`);else{let{value:v,highlight:S}=g;if(u&&!Cr.isDefault(u))this.label.element.classList.toggle("referenceMatch",!1),this.label.set(v,iu(u));else this.label.element.classList.toggle("referenceMatch",!0),this.label.set(v,[S])}}}class wu{constructor(){this.templateId=wu.id}static{this.id="OneReferenceRenderer"}renderTemplate(f){return new s1(f)}renderElement(f,u,g){g.set(f.element,f.filterData)}disposeTemplate(f){f.dispose()}}class pv{getWidgetAriaLabel(){return e(1141,"References")}getAriaLabel(f){return f.ariaMessage}}var a1=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},md=function(f,u){return function(g,v){u(g,v,f)}};class fv{static{this.DecorationOptions=oe.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(f,u){this._editor=f,this._model=u,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new c,this._callOnModelChange=new c,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();let f=this._editor.getModel();if(!f)return;for(let u of this._model.references)if(u.uri.toString()===f.uri.toString()){this._addDecorations(u.parent);return}}_addDecorations(f){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let u=[],g=[];for(let v=0,S=f.children.length;v<S;v++){let y=f.children[v];if(this._decorationIgnoreSet.has(y.id))continue;if(y.uri.toString()!==this._editor.getModel().uri.toString())continue;u.push({range:y.range,options:fv.DecorationOptions}),g.push(v)}this._editor.changeDecorations((v)=>{let S=v.deltaDecorations([],u);for(let y=0;y<S.length;y++)this._decorations.set(S[y],f.children[g[y]])})}_onDecorationChanged(){let f=[],u=this._editor.getModel();if(!u)return;for(let[g,v]of this._decorations){let S=u.getDecorationRange(g);if(!S)continue;let y=!1;if(t.equalsRange(S,v.range))continue;if(t.spansMultipleLines(S))y=!0;else{let D=v.range.endColumn-v.range.startColumn,T=S.endColumn-S.startColumn;if(D!==T)y=!0}if(y)this._decorationIgnoreSet.add(v.id),f.push(g);else v.range=S}for(let g=0,v=f.length;g<v;g++)this._decorations.delete(f[g]);this._editor.removeDecorations(f)}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}class _v{constructor(){this.ratio=0.7,this.heightInLines=18}static fromJSON(f){let u,g;try{let v=JSON.parse(f);u=v.ratio,g=v.heightInLines}catch{}return{ratio:u||0.7,heightInLines:g||18}}}class d1 extends L0{}var mv=class f{constructor(u){this.labelService=u,this.disposables=new c}getDragURI(u){if(u instanceof Ns)return u.uri.toString();else if(u instanceof Yo)return QI(u.uri,u.range).toString();return null}getDragLabel(u){if(u.length===0)return;return u.map((v)=>this.labelService.getUriBasenameLabel(v.uri)).join(", ")}onDragStart(u,g){if(!g.dataTransfer)return;let S=u.elements.map((y)=>this.getDragURI(y)).filter(Boolean);if(S.length)g.dataTransfer.setData(Jl.RESOURCES,JSON.stringify(S)),g.dataTransfer.setData(Jl.TEXT,S.join(`
|
|
31
|
-
`))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};mv=a1([md(0,ml)],mv);var um=class f extends vc{constructor(u,g,v,S,y,D,T,R,K){super(u,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},D);this._defaultTreeKeyboardSupport=g,this.layoutData=v,this._textModelResolverService=y,this._instantiationService=D,this._peekViewService=T,this._uriLabel=R,this._keybindingService=K,this._disposeOnNewModel=new c,this._callOnDispose=new c,this._onDidSelectReference=this._callOnDispose.add(new i),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new Je(0,0),this._isClosing=!1,this._applyTheme(S.getColorTheme()),this._callOnDispose.add(S.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(u,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),$e(this._preview),$e(this._previewNotAvailableMessage),$e(this._tree),$e(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(u){let g=u.getColor(_k)||p.transparent;this.style({arrowColor:g,frameColor:g,headerBackgroundColor:u.getColor(fk)||p.transparent,primaryHeadingColor:u.getColor(Lp),secondaryHeadingColor:u.getColor(kp)})}show(u){super.show(u,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(u){if(this._preview&&this._preview.getModel())this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:u.ctrlKey||u.metaKey||u.altKey?"side":"open",source:"title"})}_fillBody(u){this.setCssClass("reference-zone-widget"),this._messageContainer=w(u,m("div.messages")),Wi(this._messageContainer),this._splitView=new fy(u,{orientation:1}),this._previewContainer=w(u,m("div.preview.inline"));let g={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(ro,this._previewContainer,g,{},this.editor),Wi(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(Hc,e(1142,"no preview available"),Fi,Hc.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=w(u,m("div.ref-tree.inline"));let v={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new pv,keyboardNavigationLabelProvider:this._instantiationService.createInstance(cm),identityProvider:new gv,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:bk},dnd:this._instantiationService.createInstance(mv)};if(this._defaultTreeKeyboardSupport)this._callOnDispose.add(ft(this._treeContainer,"keydown",(y)=>{if(y.equals(9))this._keybindingService.dispatchEvent(y,y.target),y.stopPropagation()},!0));this._tree=this._instantiationService.createInstance(d1,"ReferencesWidget",this._treeContainer,new uv,[this._instantiationService.createInstance(vu),this._instantiationService.createInstance(wu)],this._instantiationService.createInstance(dm),v),this._splitView.addView({onDidChange:C.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:(y)=>{this._preview.layout({height:this._dim.height,width:y})}},py.Distribute),this._splitView.addView({onDidChange:C.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:(y)=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${y}px`,this._tree.layout(this._dim.height,y)}},py.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{if(this._dim.width)this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width},void 0));let S=(y,D)=>{if(y instanceof Yo){if(D==="show")this._revealReference(y,!1);this._onDidSelectReference.fire({element:y,kind:D,source:"tree"})}};this._disposables.add(this._tree.onDidOpen((y)=>{if(y.sideBySide)S(y.element,"side");else if(y.editorOptions.pinned)S(y.element,"goto");else S(y.element,"show")})),Wi(this._treeContainer)}_onWidth(u){if(this._dim)this._doLayoutBody(this._dim.height,u)}_doLayoutBody(u,g){super._doLayoutBody(u,g),this._dim=new Je(g,u),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(g),this._splitView.resizeView(0,g*this.layoutData.ratio)}setSelection(u){return this._revealReference(u,!0).then(()=>{if(!this._model)return;this._tree.setSelection([u]),this._tree.setFocus([u])})}setModel(u){if(this._disposeOnNewModel.clear(),this._model=u,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"),po(this._messageContainer),Promise.resolve(void 0);return Wi(this._messageContainer),this._decorationsManager=new fv(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((u)=>this._tree.rerender(u))),this._disposeOnNewModel.add(this._preview.onMouseDown((u)=>{let{event:g,target:v}=u;if(g.detail!==2)return;let S=this._getFocusedReference();if(!S)return;this._onDidSelectReference.fire({element:{uri:S.uri,range:v.range},kind:g.ctrlKey||g.metaKey||g.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),po(this._treeContainer),po(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[u]=this._tree.getFocus();if(u instanceof Yo)return u;else if(u instanceof Ns){if(u.children.length>0)return u.children[0]}return}async revealReference(u){await this._revealReference(u,!1),this._onDidSelectReference.fire({element:u,kind:"goto",source:"tree"})}async _revealReference(u,g){if(this._revealedReference===u)return;if(this._revealedReference=u,u.uri.scheme!==Q.inMemory)this.setTitle(kI(u.uri),this._uriLabel.getUriLabel(uh(u.uri)));else this.setTitle(e(1144,"References"));let v=this._textModelResolverService.createModelReference(u.uri);if(this._tree.getInput()===u.parent)this._tree.reveal(u);else{if(g)this._tree.reveal(u.parent);await this._tree.expand(u.parent),this._tree.reveal(u)}let S=await v;if(!this._model){S.dispose();return}$e(this._previewModelReference);let y=S.object;if(y){let D=this._preview.getModel()===y.textEditorModel?0:1,T=t.lift(u.range).collapseToStart();this._previewModelReference=S,this._preview.setModel(y.textEditorModel),this._preview.setSelection(T),this._preview.revealRangeInCenter(T,D)}else this._preview.setModel(this._previewNotAvailableMessage),S.dispose()}};um=a1([md(3,De),md(4,gn),md(5,L),md(6,Ub),md(7,ml),md(8,ce)],um);var pR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},kc=function(f,u){return function(g,v){u(g,v,f)}},gm,fd=new A("referenceSearchVisible",!1,e(1136,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),Fd=class f{static{gm=this}static{this.ID="editor.contrib.referencesController"}static get(u){return u.getContribution(gm.ID)}constructor(u,g,v,S,y,D,T,R){this._defaultTreeKeyboardSupport=u,this._editor=g,this._editorService=S,this._notificationService=y,this._instantiationService=D,this._storageService=T,this._configurationService=R,this._disposables=new c,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=fd.bindTo(v)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(u,g,v){let S;if(this._widget)S=this._widget.position;if(this.closeWidget(),!!S&&u.containsPosition(S))return;this._peekMode=v,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{if(!this._ignoreModelChangeEvent)this.closeWidget()}));let y="peekViewLayout",D=_v.fromJSON(this._storageService.get(y,0,"{}"));this._widget=this._instantiationService.createInstance(um,this._editor,this._defaultTreeKeyboardSupport,D),this._widget.setTitle(e(1137,"Loading...")),this._widget.show(u),this._disposables.add(this._widget.onDidClose(()=>{if(g.cancel(),this._widget){if(this._storageService.store(y,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((R)=>{let{element:K,kind:q}=R;if(!K)return;switch(q){case"open":if(R.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))this.openReference(K,!1,!1);break;case"side":this.openReference(K,!0,!1);break;case"goto":if(v)this._gotoReference(K,!0);else this.openReference(K,!1,!0);break}}));let T=++this._requestIdPool;g.then((R)=>{if(T!==this._requestIdPool||!this._widget){R.dispose();return}return this._model?.dispose(),this._model=R,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 K=this._editor.getModel().uri,q=new r(u.startLineNumber,u.startColumn),ee=this._model.nearestReference(K,q);if(ee)return this._widget.setSelection(ee).then(()=>{if(this._widget&&this._editor.getOption(99)==="editor")this._widget.focusOnPreviewEditor()})}return})},(R)=>{this._notificationService.error(R)})}changeFocusBetweenPreviewAndReferences(){if(!this._widget)return;if(this._widget.isPreviewEditorFocused())this._widget.focusOnReferenceTree();else this._widget.focusOnPreviewEditor()}async goToNextOrPreviousReference(u){if(!this._editor.hasModel()||!this._model||!this._widget)return;let g=this._widget.position;if(!g)return;let v=this._model.nearestReference(this._editor.getModel().uri,g);if(!v)return;let S=this._model.nextOrPreviousReference(v,u),y=this._editor.hasTextFocus(),D=this._widget.isPreviewEditorFocused();if(await this._widget.setSelection(S),await this._gotoReference(S,!1),y)this._editor.focus();else if(this._widget&&D)this._widget.focusOnPreviewEditor()}async revealReference(u){if(!this._editor.hasModel()||!this._model||!this._widget)return;await this._widget.revealReference(u)}closeWidget(u=!0){if(this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,u)this._editor.focus();this._requestIdPool+=1}_gotoReference(u,g){this._widget?.hide(),this._ignoreModelChangeEvent=!0;let v=t.lift(u.range).collapseToStart();return this._editorService.openCodeEditor({resource:u.uri,options:{selection:v,selectionSource:"code.jump",pinned:g}},this._editor).then((S)=>{if(this._ignoreModelChangeEvent=!1,!S||!this._widget){this.closeWidget();return}if(this._editor===S)this._widget.show(v),this._widget.focusOnReferenceTree();else{let y=gm.get(S),D=this._model.clone();this.closeWidget(),S.focus(),y?.toggleWidget(v,Pt((T)=>Promise.resolve(D)),this._peekMode??!1)}},(S)=>{this._ignoreModelChangeEvent=!1,J(S)})}openReference(u,g,v){if(!g)this.closeWidget();let{uri:S,range:y}=u;this._editorService.openCodeEditor({resource:S,options:{selection:y,selectionSource:"code.jump",pinned:v}},this._editor,g)}};Fd=gm=pR([kc(2,V),kc(3,ye),kc(4,ut),kc(5,L),kc(6,xn),kc(7,X)],Fd);function _d(f,u){let g=yp(f);if(!g)return;let v=Fd.get(g);if(v)u(v)}bn.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Jt(2089,60),when:_.or(fd,qi.inPeekEditor),handler(f){_d(f,(u)=>{u.changeFocusBetweenPreviewAndReferences()})}});bn.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:_.or(fd,qi.inPeekEditor),handler(f){_d(f,(u)=>{u.goToNextOrPreviousReference(!0)})}});bn.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:_.or(fd,qi.inPeekEditor),handler(f){_d(f,(u)=>{u.goToNextOrPreviousReference(!1)})}});we.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");we.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");we.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");we.registerCommand("closeReferenceSearch",(f)=>_d(f,(u)=>u.closeWidget()));bn.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:_.and(qi.inPeekEditor,_.not("config.editor.stablePeek"))});bn.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:_.and(fd,_.not("config.editor.stablePeek"),_.or(o.editorTextFocus,lf.negate()))});bn.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:_.and(fd,RS,E0.negate(),T0.negate()),handler(f){let g=f.get(ks).lastFocusedList?.getFocus();if(Array.isArray(g)&&g[0]instanceof Yo)_d(f,(v)=>v.revealReference(g[0]))}});bn.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:_.and(fd,RS,E0.negate(),T0.negate()),handler(f){let g=f.get(ks).lastFocusedList?.getFocus();if(Array.isArray(g)&&g[0]instanceof Yo)_d(f,(v)=>v.openReference(g[0],!0,!0))}});we.registerCommand("openReference",(f)=>{let g=f.get(ks).lastFocusedList?.getFocus();if(Array.isArray(g)&&g[0]instanceof Yo)_d(f,(v)=>v.openReference(g[0],!1,!0))});var c1=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Su=function(f,u){return function(g,v){u(g,v,f)}},wv=new A("hasSymbols",!1,e(1153,"Whether there are symbol locations that can be navigated via keyboard-only.")),Cu=Z("ISymbolNavigationService"),bv=class f{constructor(u,g,v,S){this._editorService=g,this._notificationService=v,this._keybindingService=S,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=wv.bindTo(u)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.close(),this._currentModel=void 0,this._currentIdx=-1}put(u){let g=u.parent.parent;if(g.references.length<=1){this.reset();return}this._currentModel=g,this._currentIdx=g.references.indexOf(u),this._ctxHasSymbols.set(!0),this._showMessage();let v=new vv(this._editorService),S=v.onDidChange((y)=>{if(this._ignoreEditorChange)return;let D=this._editorService.getActiveCodeEditor();if(!D)return;let T=D.getModel(),R=D.getPosition();if(!T||!R)return;let K=!1,q=!1;for(let ee of g.references)if(Ar(ee.uri,T.uri))K=!0,q=q||t.containsPosition(ee.range,R);else if(K)break;if(!K||!q)this.reset()});this._currentState=tr(v,S)}revealNext(u){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;let g=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:g.uri,options:{selection:t.collapseToStart(g.range),selectionRevealType:3}},u).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.close();let u=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),g=u?e(1154,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,u.getLabel()):e(1155,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(g)}};bv=c1([Su(0,V),Su(1,ye),Su(2,ut),Su(3,ce)],bv);fe(Cu,bv,1);U(new class extends Bt{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:wv,kbOpts:{weight:100,primary:70}})}runEditorCommand(f,u){return f.get(Cu).revealNext(u)}});bn.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:wv,primary:9,handler(f){f.get(Cu).reset()}});var vv=class f{constructor(u){this._listener=new Map,this._disposables=new c,this._onDidChange=new i,this.onDidChange=this._onDidChange.event,this._disposables.add(u.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(u.onCodeEditorAdd(this._onDidAddEditor,this)),u.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),$e(this._listener.values())}_onDidAddEditor(u){this._listener.set(u,tr(u.onDidChangeCursorPosition((g)=>this._onDidChange.fire({editor:u})),u.onDidChangeModelContent((g)=>this._onDidChange.fire({editor:u}))))}_onDidRemoveEditor(u){this._listener.get(u)?.dispose(),this._listener.delete(u)}};vv=c1([Su(0,ye)],vv);function Sv(f,u){if(u.uri.scheme===f.uri.scheme)return!0;if(Pp(u.uri,Q.walkThroughSnippet,Q.vscodeChatCodeBlock,Q.vscodeChatCodeCompareBlock))return!1;return!0}async function yu(f,u,g,v,S){let D=g.ordered(f,v).map((R)=>Promise.resolve(S(R,f,u)).then(void 0,(K)=>{dt(K);return})),T=await Promise.all(D);return Zi(T.flat()).filter((R)=>Sv(f,R))}function ha(f,u,g,v,S){return yu(u,g,f,v,(y,D,T)=>y.provideDefinition(D,T,S))}function pm(f,u,g,v,S){return yu(u,g,f,v,(y,D,T)=>y.provideDeclaration(D,T,S))}function mm(f,u,g,v,S){return yu(u,g,f,v,(y,D,T)=>y.provideImplementation(D,T,S))}function fm(f,u,g,v,S){return yu(u,g,f,v,(y,D,T)=>y.provideTypeDefinition(D,T,S))}function Ec(f,u,g,v,S,y){return yu(u,g,f,S,async(D,T,R)=>{let K=(await D.provideReferences(T,R,{includeDeclaration:!0},y))?.filter((ee)=>Sv(T,ee));if(!v||!K||K.length!==2)return K;let q=(await D.provideReferences(T,R,{includeDeclaration:!1},y))?.filter((ee)=>Sv(T,ee));if(q&&q.length===1)return q;return K})}async function as(f){let u=await f(),g=new Ji(u,""),v=g.references.map((S)=>S.link);return g.dispose(),v}fo("_executeDefinitionProvider",(f,u,g)=>{let v=f.get(j),S=ha(v.definitionProvider,u,g,!1,he.None);return as(()=>S)});fo("_executeDefinitionProvider_recursive",(f,u,g)=>{let v=f.get(j),S=ha(v.definitionProvider,u,g,!0,he.None);return as(()=>S)});fo("_executeTypeDefinitionProvider",(f,u,g)=>{let v=f.get(j),S=fm(v.typeDefinitionProvider,u,g,!1,he.None);return as(()=>S)});fo("_executeTypeDefinitionProvider_recursive",(f,u,g)=>{let v=f.get(j),S=fm(v.typeDefinitionProvider,u,g,!0,he.None);return as(()=>S)});fo("_executeDeclarationProvider",(f,u,g)=>{let v=f.get(j),S=pm(v.declarationProvider,u,g,!1,he.None);return as(()=>S)});fo("_executeDeclarationProvider_recursive",(f,u,g)=>{let v=f.get(j),S=pm(v.declarationProvider,u,g,!0,he.None);return as(()=>S)});fo("_executeReferenceProvider",(f,u,g)=>{let v=f.get(j),S=Ec(v.referenceProvider,u,g,!1,!1,he.None);return as(()=>S)});fo("_executeReferenceProvider_recursive",(f,u,g)=>{let v=f.get(j),S=Ec(v.referenceProvider,u,g,!1,!0,he.None);return as(()=>S)});fo("_executeImplementationProvider",(f,u,g)=>{let v=f.get(j),S=mm(v.implementationProvider,u,g,!1,he.None);return as(()=>S)});fo("_executeImplementationProvider_recursive",(f,u,g)=>{let v=f.get(j),S=mm(v.implementationProvider,u,g,!0,he.None);return as(()=>S)});Rn.appendMenuItem(a.EditorContext,{submenu:a.EditorContextPeek,title:e(1096,"Peek"),group:"navigation",order:100});class bd{static is(f){if(!f||typeof f!=="object")return!1;if(f instanceof bd)return!0;if(r.isIPosition(f.position)&&f.model)return!0;return!1}constructor(f,u){this.model=f,this.position=u}}class so extends Bo{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return so._allSymbolNavigationCommands.values()}static _patchConfig(f){let u={...f,f1:!0};if(u.menu){for(let g of Ce.wrap(u.menu))if(g.id===a.EditorContext||g.id===a.EditorContextPeek)g.when=_.and(f.precondition,g.when)}return u}constructor(f,u){super(so._patchConfig(u));this.configuration=f,so._allSymbolNavigationCommands.set(u.id,this)}runEditorCommand(f,u,g,v){if(!u.hasModel())return Promise.resolve(void 0);let S=f.get(ut),y=f.get(ye),D=f.get(is),T=f.get(Cu),R=f.get(j),K=f.get(L),q=u.getModel(),ee=u.getPosition(),te=bd.is(g)?g:new bd(q,ee),ne=new Hr(u,5),re=nl(this._getLocationModel(R,te.model,te.position,ne.token),ne.token).then(async(ae)=>{if(!ae||ne.token.isCancellationRequested)return;En(ae.ariaMessage);let ge;if(ae.referenceAt(q.uri,ee)){let Ae=this._getAlternativeCommand(u);if(Ae!==void 0&&!so._activeAlternativeCommands.has(Ae)&&so._allSymbolNavigationCommands.has(Ae))ge=so._allSymbolNavigationCommands.get(Ae)}let ke=ae.references.length;if(ke===0){if(!this.configuration.muteMessage){let Ae=q.getWordAtPosition(ee);Bi.get(u)?.showMessage(this._getNoResultFoundMessage(Ae),ee)}}else if(ke===1&&ge)so._activeAlternativeCommands.add(this.desc.id),K.invokeFunction((Ae)=>ge.runEditorCommand(Ae,u,g,v).finally(()=>{so._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(y,T,u,ae,v)},(ae)=>{S.error(ae)}).finally(()=>{ne.dispose()});return D.showWhile(re,250),re}async _onResult(f,u,g,v,S){let y=this._getGoToPreference(g);if(!(g instanceof ro)&&(this.configuration.openInPeek||y==="peek"&&v.references.length>1))this._openInPeek(g,v,S);else{let D=v.firstReference(),T=v.references.length>1&&y==="gotoAndPeek",R=await this._openReference(g,f,D,this.configuration.openToSide,!T);if(T&&R)this._openInPeek(R,v,S);else v.dispose();if(y==="goto")u.put(D)}}async _openReference(f,u,g,v,S){let y=void 0;if(uI(g))y=g.targetSelectionRange;if(!y)y=g.range;if(!y)return;let D=await u.openCodeEditor({resource:g.uri,options:{selection:t.collapseToStart(y),selectionRevealType:3,selectionSource:"code.jump"}},f,v);if(!D)return;if(S){let T=D.getModel(),R=D.createDecorationsCollection([{range:y,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{if(D.getModel()===T)R.clear()},350)}return D}_openInPeek(f,u,g){let v=Fd.get(f);if(v&&f.hasModel())v.toggleWidget(g??f.getSelection(),Pt((S)=>Promise.resolve(u)),this.configuration.openInPeek);else u.dispose()}}class ua extends so{async _getLocationModel(f,u,g,v){return new Ji(await ha(f.definitionProvider,u,g,!1,v),e(1097,"Definitions"))}_getNoResultFoundMessage(f){return f&&f.word?e(1098,"No definition found for '{0}'",f.word):e(1099,"No definition found")}_getAlternativeCommand(f){return f.getOption(67).alternativeDefinitionCommand}_getGoToPreference(f){return f.getOption(67).multipleDefinitions}}Ye(class f extends ua{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.id,title:{...h(1123,"Go to Definition"),mnemonicTitle:e(1100,"Go to &&Definition")},precondition:o.hasDefinitionProvider,keybinding:[{when:o.editorTextFocus,primary:70,weight:100},{when:_.and(o.editorTextFocus,IS),primary:2118,weight:100}],menu:[{id:a.EditorContext,group:"navigation",order:1.1},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]});we.registerCommandAlias("editor.action.goToDeclaration",f.id)}});Ye(class f extends ua{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:f.id,title:h(1124,"Open Definition to the Side"),precondition:_.and(o.hasDefinitionProvider,o.isInEmbeddedEditor.toNegated()),keybinding:[{when:o.editorTextFocus,primary:Jt(2089,70),weight:100},{when:_.and(o.editorTextFocus,IS),primary:Jt(2089,2118),weight:100}]});we.registerCommandAlias("editor.action.openDeclarationToTheSide",f.id)}});Ye(class f extends ua{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:f.id,title:h(1125,"Peek Definition"),precondition:_.and(o.hasDefinitionProvider,qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:a.EditorContextPeek,group:"peek",order:2}});we.registerCommandAlias("editor.action.previewDeclaration",f.id)}});class Cv extends so{async _getLocationModel(f,u,g,v){return new Ji(await pm(f.declarationProvider,u,g,!1,v),e(1101,"Declarations"))}_getNoResultFoundMessage(f){return f&&f.word?e(1102,"No declaration found for '{0}'",f.word):e(1103,"No declaration found")}_getAlternativeCommand(f){return f.getOption(67).alternativeDeclarationCommand}_getGoToPreference(f){return f.getOption(67).multipleDeclarations}}Ye(class f extends Cv{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.id,title:{...h(1126,"Go to Declaration"),mnemonicTitle:e(1104,"Go to &&Declaration")},precondition:_.and(o.hasDeclarationProvider,o.isInEmbeddedEditor.toNegated()),menu:[{id:a.EditorContext,group:"navigation",order:1.3},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(u){return u&&u.word?e(1105,"No declaration found for '{0}'",u.word):e(1106,"No declaration found")}});Ye(class f extends Cv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:h(1127,"Peek Declaration"),precondition:_.and(o.hasDeclarationProvider,qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:3}})}});class yv extends so{async _getLocationModel(f,u,g,v){return new Ji(await fm(f.typeDefinitionProvider,u,g,!1,v),e(1107,"Type Definitions"))}_getNoResultFoundMessage(f){return f&&f.word?e(1108,"No type definition found for '{0}'",f.word):e(1109,"No type definition found")}_getAlternativeCommand(f){return f.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(f){return f.getOption(67).multipleTypeDefinitions}}Ye(class f extends yv{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.ID,title:{...h(1128,"Go to Type Definition"),mnemonicTitle:e(1110,"Go to &&Type Definition")},precondition:o.hasTypeDefinitionProvider,keybinding:{when:o.editorTextFocus,primary:0,weight:100},menu:[{id:a.EditorContext,group:"navigation",order:1.4},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}});Ye(class f extends yv{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:f.ID,title:h(1129,"Peek Type Definition"),precondition:_.and(o.hasTypeDefinitionProvider,qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:4}})}});class xv extends so{async _getLocationModel(f,u,g,v){return new Ji(await mm(f.implementationProvider,u,g,!1,v),e(1111,"Implementations"))}_getNoResultFoundMessage(f){return f&&f.word?e(1112,"No implementation found for '{0}'",f.word):e(1113,"No implementation found")}_getAlternativeCommand(f){return f.getOption(67).alternativeImplementationCommand}_getGoToPreference(f){return f.getOption(67).multipleImplementations}}Ye(class f extends xv{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.ID,title:{...h(1130,"Go to Implementations"),mnemonicTitle:e(1114,"Go to &&Implementations")},precondition:o.hasImplementationProvider,keybinding:{when:o.editorTextFocus,primary:2118,weight:100},menu:[{id:a.EditorContext,group:"navigation",order:1.45},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}});Ye(class f extends xv{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:f.ID,title:h(1131,"Peek Implementations"),precondition:_.and(o.hasImplementationProvider,qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:3142,weight:100},menu:{id:a.EditorContextPeek,group:"peek",order:5}})}});class Lv extends so{_getNoResultFoundMessage(f){return f?e(1115,"No references found for '{0}'",f.word):e(1116,"No references found")}_getAlternativeCommand(f){return f.getOption(67).alternativeReferenceCommand}_getGoToPreference(f){return f.getOption(67).multipleReferences}}Ye(class f extends Lv{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...h(1132,"Go to References"),mnemonicTitle:e(1117,"Go to &&References")},precondition:_.and(o.hasReferenceProvider,qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:1094,weight:100},menu:[{id:a.EditorContext,group:"navigation",order:1.45},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(u,g,v,S){return new Ji(await Ec(u.referenceProvider,g,v,!0,!1,S),e(1118,"References"))}});Ye(class f extends Lv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:h(1133,"Peek References"),precondition:_.and(o.hasReferenceProvider,qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(u,g,v,S){return new Ji(await Ec(u.referenceProvider,g,v,!1,!1,S),e(1119,"References"))}});class l1 extends so{constructor(f,u,g){super(f,{id:"editor.action.goToLocation",title:h(1134,"Go to Any Symbol"),precondition:_.and(qi.notInPeekEditor,o.isInEmbeddedEditor.toNegated())});this._references=u,this._gotoMultipleBehaviour=g}async _getLocationModel(f,u,g,v){return new Ji(this._references,e(1120,"Locations"))}_getNoResultFoundMessage(f){return f&&e(1121,"No results for '{0}'",f.word)||""}_getGoToPreference(f){return this._gotoMultipleBehaviour??f.getOption(67).multipleReferences}_getAlternativeCommand(){return}}we.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:W},{name:"position",description:"The position at which to start",constraint:r.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(f,u,g,v,S,y,D)=>{Ie(W.isUri(u)),Ie(r.isIPosition(g)),Ie(Array.isArray(v)),Ie(typeof S>"u"||typeof S==="string"),Ie(typeof D>"u"||typeof D==="boolean");let T=f.get(ye),R=await T.openCodeEditor({resource:u},T.getFocusedCodeEditor());if(ea(R))return R.setPosition(g),R.revealPositionInCenterIfOutsideViewport(g,0),R.invokeWithinContext((K)=>{let q=new class extends l1{_getNoResultFoundMessage(ee){return y||super._getNoResultFoundMessage(ee)}}({muteMessage:!Boolean(y),openInPeek:Boolean(D),openToSide:!1},v,S);K.get(L).invokeFunction(q.run.bind(q),R)})}});we.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:W},{name:"position",description:"The position at which to start",constraint:r.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(f,u,g,v,S)=>{f.get(Ne).executeCommand("editor.action.goToLocations",u,g,v,S,void 0,!0)}});we.registerCommand({id:"editor.action.findReferences",handler:(f,u,g)=>{Ie(W.isUri(u)),Ie(r.isIPosition(g));let v=f.get(j),S=f.get(ye);return S.openCodeEditor({resource:u},S.getFocusedCodeEditor()).then((y)=>{if(!ea(y)||!y.hasModel())return;let D=Fd.get(y);if(!D)return;let T=Pt((K)=>Ec(v.referenceProvider,y.getModel(),r.lift(g),!1,!1,K).then((q)=>new Ji(q,e(1122,"References")))),R=new t(g.lineNumber,g.column,g.lineNumber,g.column);return Promise.resolve(D.toggleWidget(R,T,!1))})}});we.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var mR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},kv=function(f,u){return function(g,v){u(g,v,f)}},xu,Mc=class f{static{xu=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(u,g,v,S){this.textModelResolverService=g,this.languageService=v,this.languageFeaturesService=S,this.toUnhook=new c,this.toUnhookForKeyboard=new c,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=u,this.linkDecorations=this.editor.createDecorationsCollection();let y=new Rs(u);this.toUnhook.add(y),this.toUnhook.add(y.onMouseMoveOrRelevantKeyDown(([D,T])=>{this.startFindDefinitionFromMouse(D,T??void 0)})),this.toUnhook.add(y.onExecute((D)=>{if(this.isEnabled(D))this.gotoDefinition(D.target.position,D.hasSideBySideModifier).catch((T)=>{J(T)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(y.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(u){return u.getContribution(xu.ID)}async startFindDefinitionFromCursor(u){await this.startFindDefinition(u),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown((g)=>{if(g)this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))}startFindDefinitionFromMouse(u,g){if(u.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(u,g)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}let v=u.target.position;this.startFindDefinition(v)}async startFindDefinition(u){this.toUnhookForKeyboard.clear();let g=u?this.editor.getModel()?.getWordAtPosition(u):null;if(!g){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===g.startColumn&&this.currentWordAtPosition.endColumn===g.endColumn&&this.currentWordAtPosition.word===g.word)return;this.currentWordAtPosition=g;let v=new Nh(this.editor,15);if(this.previousPromise)this.previousPromise.cancel(),this.previousPromise=null;this.previousPromise=Pt((D)=>this.findDefinition(u,D));let S;try{S=await this.previousPromise}catch(D){J(D);return}if(!S||!S.length||!v.validate(this.editor)){this.removeLinkDecorations();return}let y=S[0].originSelectionRange?t.lift(S[0].originSelectionRange):new t(u.lineNumber,g.startColumn,u.lineNumber,g.endColumn);if(S.length>1){let D=y;for(let{originSelectionRange:T}of S)if(T)D=t.plusRange(D,T);this.addDecoration(D,new wn().appendText(e(1135,"Click to show {0} definitions.",S.length)))}else{let D=S[0];if(!D.uri)return;return this.textModelResolverService.createModelReference(D.uri).then((T)=>{if(!T.object||!T.object.textEditorModel){T.dispose();return}let{object:{textEditorModel:R}}=T,{startLineNumber:K}=D.range;if(K<1||K>R.getLineCount()){T.dispose();return}let q=this.getPreviewValue(R,K,D),ee=this.languageService.guessLanguageIdByFilepathOrFirstLine(R.uri);this.addDecoration(y,q?new wn().appendCodeblock(ee?ee:"",q):void 0),T.dispose()})}}getPreviewValue(u,g,v){let S=v.range;if(S.endLineNumber-S.startLineNumber>=xu.MAX_SOURCE_PREVIEW_LINES)S=this.getPreviewRangeBasedOnIndentation(u,g);return S=u.validateRange(S),this.stripIndentationFromPreviewRange(u,g,S)}stripIndentationFromPreviewRange(u,g,v){let y=u.getLineFirstNonWhitespaceColumn(g);for(let T=g+1;T<v.endLineNumber;T++){let R=u.getLineFirstNonWhitespaceColumn(T);y=Math.min(y,R)}return u.getValueInRange(v).replace(new RegExp(`^\\s{${y-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(u,g){let v=u.getLineFirstNonWhitespaceColumn(g),S=Math.min(u.getLineCount(),g+xu.MAX_SOURCE_PREVIEW_LINES),y=g+1;for(;y<S;y++){let D=u.getLineFirstNonWhitespaceColumn(y);if(v===D)break}return new t(g,1,y+1,1)}addDecoration(u,g){let v={range:u,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:g}};this.linkDecorations.set([v])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(u,g){return this.editor.hasModel()&&u.isLeftClick&&u.isNoneOrSingleMouseDown&&u.target.type===6&&!(u.target.detail.injectedText?.options instanceof Yl)&&(u.hasTriggerModifier||(g?g.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(u,g){let v=this.editor.getModel();if(!v)return Promise.resolve(null);return ha(this.languageFeaturesService.definitionProvider,v,u,!1,g)}async gotoDefinition(u,g){return this.editor.setPosition(u),this.editor.invokeWithinContext((v)=>{let S=!g&&this.editor.getOption(101)&&!this.isInPeekEditor(v);return new ua({openToSide:g,openInPeek:S,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(v)})}isInPeekEditor(u){let g=u.get(V);return qi.inPeekEditor.getValue(g)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};Mc=xu=mR([kv(1,gn),kv(2,pt),kv(3,j)],Mc);le(Mc.ID,Mc,2);var fr="editor.action.inlineSuggest.commit",vd="editor.action.inlineSuggest.commitAlternativeAction",_m="editor.action.inlineSuggest.showPrevious",bm="editor.action.inlineSuggest.showNext",zc="editor.action.inlineSuggest.jump",vm="editor.action.inlineSuggest.hide",Iu="editor.action.inlineSuggest.toggleShowCollapsed",Ev="editor.action.inlineSuggest.renameSymbol";var Pv=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},un=function(f,u){return function(g,v){u(g,v,f)}},wm,Sm=class f extends n{constructor(u,g,v){super();this.editor=u,this.model=g,this.instantiationService=v,this.alwaysShowToolbar=Le(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=d(this,(S)=>{let y=this.model.read(S)?.primaryGhostText.read(S);if(!this.alwaysShowToolbar.read(S)||!y||y.parts.length===0)return this.sessionPosition=void 0,null;let D=y.parts[0].column;if(this.sessionPosition&&this.sessionPosition.lineNumber!==y.lineNumber)this.sessionPosition=void 0;let T=new r(y.lineNumber,Math.min(D,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=T,T}),this._register(jn((S,y)=>{let D=this.model.read(S);if(!D||!this.alwaysShowToolbar.read(S))return;let T=d((K)=>{let q=K.store.add(this.instantiationService.createInstance(Ms.hot.read(K),this.editor,!0,this.position,D.selectedInlineCompletionIndex,D.inlineCompletionsCount,D.activeCommands,D.warning,()=>{}));return u.addContentWidget(q),K.store.add(E(()=>u.removeContentWidget(q))),K.store.add(H((ee)=>{if(!this.position.read(ee))return;if(D.lastTriggerKind.read(ee)!==Po.Explicit)D.triggerExplicitly()})),q}),R=Ho(this,(K,q)=>!!this.position.read(K)||!!q);y.add(H((K)=>{if(R.read(K))T.read(K)}))}))}};Sm=Pv([un(2,L)],Sm);var fR=Tt("inline-suggestion-hints-next",b.chevronRight,e(1270,"Icon for show next parameter hint.")),_R=Tt("inline-suggestion-hints-previous",b.chevronLeft,e(1271,"Icon for show previous parameter hint.")),Ms=class f extends n{static{wm=this}static{this.hot=Cg(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(u,g,v){let S=new Qi(u,g,v,!0,()=>this._commandService.executeCommand(u));return S.tooltip=this.keybindingService.appendKeybinding(g,u,this._contextKeyService),S}constructor(u,g,v,S,y,D,T,R,K,q,ee,te,ne){super();this.editor=u,this.withBorder=g,this._position=v,this._currentSuggestionIdx=S,this._suggestionCount=y,this._extraCommands=D,this._warning=T,this._relayout=R,this._commandService=K,this.keybindingService=ee,this._contextKeyService=te,this._menuService=ne,this.id=`InlineSuggestionHintsContentWidget${wm.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=d((re)=>{let ae=this._warning.read(re);if(!ae)return;if(typeof ae.message==="string")return ae.message;return re.store.add(Ta(ae.message)).element}),this._warningMessageNode=se.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:d((re)=>this._warning.read(re)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=_e("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,_e("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(_m,e(1272,"Previous"),G.asClassName(_R))),this.availableSuggestionCountAction=this._register(new Qi("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(bm,e(1273,"Next"),G.asClassName(fR))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(a.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new be(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new be(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(H((re)=>{this._warningMessageContentNode.read(re),this._warningMessageNode.readEffect(re),this._relayout()})),this.toolBar=this._register(q.createInstance(Tv,this.nodes.toolBar,a.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:(re)=>re.startsWith("primary")},actionViewItemProvider:(re,ae)=>{if(re instanceof ki)return q.createInstance(u1,re,void 0);if(re===this.availableSuggestionCountAction){let ge=new h1(void 0,re,{label:!0,icon:!1});return ge.setClass("availableSuggestionCount"),ge}return},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((re)=>{wm._dropDownVisible=re})),this._register(H((re)=>{this._position.read(re),this.editor.layoutContentWidget(this)})),this._register(H((re)=>{let ae=this._suggestionCount.read(re),ge=this._currentSuggestionIdx.read(re);if(ae!==void 0)this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${ge+1}/${ae}`;else this.clearAvailableSuggestionCountLabelDebounced.schedule();if(ae!==void 0&&ae>1)this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0;else this.disableButtonsDebounced.schedule()})),this._register(H((re)=>{let ge=this._extraCommands.read(re).map((ke)=>({class:void 0,id:ke.command.id,enabled:!0,tooltip:ke.command.tooltip||"",label:ke.command.title,run:()=>this._commandService.executeCommand(ke.command.id,...ke.command.arguments??[])}));for(let[ke,Ae]of this.inlineCompletionsActionsMenus.getActions())for(let He of Ae)if(He instanceof ki)ge.push(He);if(ge.length>0)ge.unshift(new Xe);this.toolBar.setAdditionalSecondaryActions(ge)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Ms=wm=Pv([un(8,Ne),un(9,L),un(10,ce),un(11,V),un(12,ui)],Ms);class h1 extends fl{constructor(){super(...arguments);this._className=void 0}setClass(f){this._className=f}render(f){if(super.render(f),this._className)f.classList.add(this._className)}updateTooltip(){}}class u1 extends La{updateLabel(){let f=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!f)return super.updateLabel();if(this.label){let u=_e("div.keybinding").root;this._register(new Xs(u,di,{disableTitle:!0,...P0})).set(f),this.label.textContent=this._action.label,this.label.appendChild(u),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}var Tv=class f extends Sy{constructor(u,g,v,S,y,D,T,R,K){super(u,{resetMenu:g,...v},S,y,D,T,R,K);this.menuId=g,this.options2=v,this.menuService=S,this.contextKeyService=y,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:u,secondary:g}=cf(this.menu.getActions(this.options2?.menuOptions),this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);g.push(...this.additionalActions),u.unshift(...this.prependedPrimaryActions),u.push(...this.additionalPrimaryActions),this.setActions(u,g)}setPrependedPrimaryActions(u){if(Ge(this.prependedPrimaryActions,u,(g,v)=>g===v))return;this.prependedPrimaryActions=u,this.updateToolbar()}setAdditionalSecondaryActions(u){if(Ge(this.additionalActions,u,(g,v)=>g===v))return;this.additionalActions=u,this.updateToolbar()}};Tv=Pv([un(3,ui),un(4,V),un(5,Dn),un(6,ce),un(7,Ne),un(8,kn)],Tv);function Da(f,u,g){let v=mt(f);if(u<v.left+3||u>v.left+v.width-3||g<v.top+3||g>v.top+v.height-3)return!1;return!0}function Cm(f,u,g){if(f==="on")return!0;if(f==="off")return!1;return Lu(u,g.event)}function Lu(f,u){if(f==="altKey")return u.ctrlKey||u.metaKey;return u.altKey}class g1{constructor(f,u,g,v){this.value=f,this.isComplete=u,this.hasLoadingMessage=g,this.options=v}}class ku extends n{constructor(f,u){super();this._editor=f,this._computer=u,this._onResult=this._register(new i),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new ym((g)=>this._triggerAsyncComputation(g),0)),this._syncComputationScheduler=this._register(new ym((g)=>this._triggerSyncComputation(g),0)),this._loadingMessageScheduler=this._register(new ym((g)=>this._triggerLoadingMessage(g),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(f,u){this._options=u,this._state=f,this._fireResult(u)}_triggerAsyncComputation(f){if(this._setState(2,f),this._syncComputationScheduler.schedule(f,this._secondWaitTime),this._computer.computeAsync)this._asyncIterableDone=!1,this._asyncIterable=bI((u)=>this._computer.computeAsync(f,u)),(async()=>{try{for await(let u of this._asyncIterable)if(u)this._result.push(u),this._fireResult(f);if(this._asyncIterableDone=!0,this._state===3||this._state===4)this._setState(0,f)}catch(u){J(u)}})();else this._asyncIterableDone=!0}_triggerSyncComputation(f){if(this._computer.computeSync)this._result=this._result.concat(this._computer.computeSync(f));this._setState(this._asyncIterableDone?0:3,f)}_triggerLoadingMessage(f){if(this._state===3)this._setState(4,f)}_fireResult(f){if(this._state===1||this._state===2)return;let u=this._state===0,g=this._state===4;this._onResult.fire(new g1(this._result.slice(0),u,g,f))}start(f,u){if(f===0){if(this._state===0)this._setState(1,u),this._asyncComputationScheduler.schedule(u,this._firstWaitTime),this._loadingMessageScheduler.schedule(u,this._loadingMessageTime)}else switch(this._state){case 0:this._triggerAsyncComputation(u),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(u);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(u);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 ym extends n{constructor(f,u){super();this._scheduler=this._register(new be(()=>f(this._options),u))}schedule(f,u){this._options=f,this._scheduler.schedule(u)}cancel(){this._scheduler.cancel()}}class Eu{constructor(f,u,g,v){this.priority=f,this.range=u,this.initialMousePosX=g,this.initialMousePosY=v,this.type=1}equals(f){return f.type===1&&this.range.equalsRange(f.range)}canAdoptVisibleHover(f,u){return f.type===1&&u.lineNumber===this.range.startLineNumber}}class Ra{constructor(f,u,g,v,S,y){this.priority=f,this.owner=u,this.range=g,this.initialMousePosX=v,this.initialMousePosY=S,this.supportsMarkerHover=y,this.type=2}equals(f){return f.type===2&&this.owner===f.owner}canAdoptVisibleHover(f,u){return f.type===2&&this.owner===f.owner}}class Jo{constructor(f,u){this.renderedHoverParts=f,this.disposables=u}dispose(){for(let f of this.renderedHoverParts)f.dispose();this.disposables?.dispose()}}var pa=new class f{constructor(){this._participants=[]}register(u){this._participants.push(u)}getAll(){return this._participants}};class wd{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new i,this._onDidResize=new i,this._sashListener=new c,this._size=new Je(0,0),this._minSize=new Je(0,0),this._maxSize=new Je(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new Ui(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new Ui(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new Ui(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:hy.North}),this._southSash=new Ui(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:hy.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let f,u=0,g=0;this._sashListener.add(C.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{if(f===void 0)this._onDidWillResize.fire(),f=this._size,u=0,g=0})),this._sashListener.add(C.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{if(f!==void 0)f=void 0,u=0,g=0,this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(this._eastSash.onDidChange((v)=>{if(f)g=v.currentX-v.startX,this.layout(f.height+u,f.width+g),this._onDidResize.fire({dimension:this._size,done:!1,east:!0})})),this._sashListener.add(this._westSash.onDidChange((v)=>{if(f)g=-(v.currentX-v.startX),this.layout(f.height+u,f.width+g),this._onDidResize.fire({dimension:this._size,done:!1,west:!0})})),this._sashListener.add(this._northSash.onDidChange((v)=>{if(f)u=-(v.currentY-v.startY),this.layout(f.height+u,f.width+g),this._onDidResize.fire({dimension:this._size,done:!1,north:!0})})),this._sashListener.add(this._southSash.onDidChange((v)=>{if(f)u=v.currentY-v.startY,this.layout(f.height+u,f.width+g),this._onDidResize.fire({dimension:this._size,done:!1,south:!0})})),this._sashListener.add(C.any(this._eastSash.onDidReset,this._westSash.onDidReset)((v)=>{if(this._preferredSize)this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(C.any(this._northSash.onDidReset,this._southSash.onDidReset)((v)=>{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(f,u,g,v){this._northSash.state=f?3:0,this._eastSash.state=u?3:0,this._southSash.state=g?3:0,this._westSash.state=v?3:0}layout(f=this.size.height,u=this.size.width){let{height:g,width:v}=this._minSize,{height:S,width:y}=this._maxSize;f=Math.max(g,Math.min(S,f)),u=Math.max(v,Math.min(y,u));let D=new Je(u,f);if(!Je.equals(D,this._size))this.domNode.style.height=f+"px",this.domNode.style.width=u+"px",this._size=D,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(f){this._maxSize=f}get maxSize(){return this._maxSize}set minSize(f){this._minSize=f}get minSize(){return this._minSize}set preferredSize(f){this._preferredSize=f}get preferredSize(){return this._preferredSize}}var bR=30,vR=24;class $v extends n{constructor(f,u=new Je(10,10)){super();this._editor=f,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new wd),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=Je.lift(u),this._resizableNode.layout(u.height,u.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((g)=>{if(this._resize(new Je(g.dimension.width,g.dimension.height)),g.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?r.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(f){let u=this._editor.getDomNode(),g=this._editor.getScrolledVisiblePosition(f);if(!u||!g)return;return mt(u).top+g.top-bR}_availableVerticalSpaceBelow(f){let u=this._editor.getDomNode(),g=this._editor.getScrolledVisiblePosition(f);if(!u||!g)return;let v=mt(u),S=ys(u.ownerDocument.body),y=v.top+g.top+g.height;return S.height-y-vR}_findPositionPreference(f,u){let g=Math.min(this._availableVerticalSpaceBelow(u)??1/0,f),v=Math.min(this._availableVerticalSpaceAbove(u)??1/0,f),S=Math.min(Math.max(v,g),f),y=Math.min(f,S),D;if(this._editor.getOption(69).above)D=y<=v?1:2;else D=y<=g?2:1;if(D===1)this._resizableNode.enableSashes(!0,!0,!1,!1);else this._resizableNode.enableSashes(!1,!0,!0,!1);return D}_resize(f){this._resizableNode.layout(f.height,f.width)}}var wR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},xm=function(f,u){return function(g,v){u(g,v,f)}},_n,p1=30,Im=class f extends $v{static{_n=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new Je(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(u,g,v,S,y){let D=u.getOption(75)+8,T=150,R=new Je(150,D);super(u,R);this._configurationService=v,this._accessibilityService=S,this._keybindingService=y,this._hover=this._register(new of(!0)),this._onDidResize=this._register(new i),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new i),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new i),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=R,this._hoverVisibleKey=o.hoverVisible.bindTo(g),this._hoverFocusedKey=o.hoverFocused.bindTo(g),w(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((q)=>{if(q.hasChanged(59))this._updateFont()}));let K=this._register(Zn(this._resizableNode.domNode));this._register(K.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(K.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll((q)=>{this._onDidScroll.fire(q)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return _n.ID}static _applyDimensions(u,g,v){let S=typeof g==="number"?`${g}px`:g,y=typeof v==="number"?`${v}px`:v;u.style.width=S,u.style.height=y}_setContentsDomNodeDimensions(u,g){let v=this._hover.contentsDomNode;return _n._applyDimensions(v,u,g)}_setContainerDomNodeDimensions(u,g){let v=this._hover.containerDomNode;return _n._applyDimensions(v,u,g)}_setScrollableElementDimensions(u,g){let v=this._hover.scrollbar.getDomNode();return _n._applyDimensions(v,u,g)}_setHoverWidgetDimensions(u,g){this._setContainerDomNodeDimensions(u,g),this._setScrollableElementDimensions(u,g),this._setContentsDomNodeDimensions(u,g),this._layoutContentWidget()}static _applyMaxDimensions(u,g,v){let S=typeof g==="number"?`${g}px`:g,y=typeof v==="number"?`${v}px`:v;u.style.maxWidth=S,u.style.maxHeight=y}_setHoverWidgetMaxDimensions(u,g){_n._applyMaxDimensions(this._hover.contentsDomNode,u,g),_n._applyMaxDimensions(this._hover.scrollbar.getDomNode(),u,g),_n._applyMaxDimensions(this._hover.containerDomNode,u,g),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof u==="number"?`${u}px`:u),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(u){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(u.width,u.height)}_updateResizableNodeMaxDimensions(){let u=this._findMaximumRenderingWidth()??1/0,g=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new Je(u,g),this._setHoverWidgetMaxDimensions(u,g)}_resize(u){_n._lastDimensions=new Je(u.width,u.height),this._setAdjustedHoverWidgetDimensions(u),this._resizableNode.layout(u.height,u.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){let u=this._renderedHover?.showAtPosition;if(!u)return;return this._positionPreference===1?this._availableVerticalSpaceAbove(u):this._availableVerticalSpaceBelow(u)}_findMaximumRenderingHeight(){let u=this._findAvailableSpaceVertically();if(!u)return;let v=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach((S)=>{v+=S.clientHeight}),Math.min(u,v)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");let u=Array.from(this._hover.contentsDomNode.children).some((g)=>g.scrollWidth>g.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),u}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;let u=this._isHoverTextOverflowing(),g=typeof this._contentWidth>"u"?0:this._contentWidth;if(u||this._hover.containerDomNode.clientWidth<g){let v=ys(this._hover.containerDomNode.ownerDocument.body).width,S=14;return v-14}else return this._hover.containerDomNode.clientWidth}isMouseGettingCloser(u,g){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=u,this._renderedHover.initialMousePosY=g,!1;let v=mt(this.getDomNode());if(this._renderedHover.closestMouseDistance===void 0)this._renderedHover.closestMouseDistance=m1(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,v.left,v.top,v.width,v.height);let S=m1(u,g,v.left,v.top,v.width,v.height);if(S>this._renderedHover.closestMouseDistance+4)return!1;return this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,S),!0}_setRenderedHover(u){this._renderedHover?.dispose(),this._renderedHover=u,this._hoverVisibleKey.set(!!u),this._hover.containerDomNode.classList.toggle("hidden",!u)}_updateFont(){let{fontSize:u,lineHeight:g}=this._editor.getOption(59),v=this._hover.contentsDomNode;v.style.fontSize=`${u}px`,v.style.lineHeight=`${g/u}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((y)=>this._editor.applyFontInfo(y))}_updateContent(u){let g=this._hover.contentsDomNode;g.style.paddingBottom="",g.textContent="",g.appendChild(u)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){let u=Math.max(this._editor.getLayoutInfo().height/4,250,_n._lastDimensions.height),g=Math.max(this._editor.getLayoutInfo().width*0.66,750,_n._lastDimensions.width);this._resizableNode.maxSize=new Je(g,u),this._setHoverWidgetMaxDimensions(g,u)}_render(u){this._setRenderedHover(u),this._updateFont(),this._updateContent(u.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(u){if(!this._editor||!this._editor.hasModel())return;this._render(u);let g=ya(this._hover.containerDomNode),v=u.showAtPosition;if(this._positionPreference=this._findPositionPreference(g,v)??1,this.handleContentsChanged(),u.shouldFocus)this._hover.containerDomNode.focus();this._onDidResize.fire();let y=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&f0(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");if(y)this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+y}hide(){if(!this._renderedHover)return;let u=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();if(this._setRenderedHover(void 0),this._resizableNode.maxSize=new Je(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),u)this._editor.focus()}_removeConstraintsRenderNormally(){let u=this._editor.getLayoutInfo();this._resizableNode.layout(u.height,u.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(u){this._minimumSize=new Je(Math.max(this._minimumSize.width,u.width),Math.max(this._minimumSize.height,u.height)),this._updateMinimumWidth()}_updateMinimumWidth(){let u=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new Je(u,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();let u=this._hover.contentsDomNode,g=ya(u),v=ho(u)+2;if(this._resizableNode.layout(g,v),this._setHoverWidgetDimensions(v,g),g=ya(u),v=ho(u),this._contentWidth=v,this._updateMinimumWidth(),this._resizableNode.layout(g,v),this._renderedHover?.showAtPosition){let S=ya(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(S,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,g=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:u-g.lineHeight})}scrollDown(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,g=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:u+g.lineHeight})}scrollLeft(){let u=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:u-p1})}scrollRight(){let u=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:u+p1})}pageUp(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,g=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:u-g})}pageDown(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,g=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:u+g})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};Im=_n=wR([xm(1,V),xm(2,X),xm(3,Vt),xm(4,ce)],Im);function m1(f,u,g,v,S,y){let D=g+S/2,T=v+y/2,R=Math.max(Math.abs(f-D)-S/2,0),K=Math.max(Math.abs(u-T)-y/2,0);return Math.sqrt(R*R+K*K)}class Du{constructor(f,u){this._editor=f,this._participants=u}static _getLineDecorations(f,u){if(u.type!==1&&!u.supportsMarkerHover)return[];let g=f.getModel(),v=u.range.startLineNumber;if(v>g.getLineCount())return[];let S=g.getLineMaxColumn(v);return f.getLineDecorations(v).filter((y)=>{if(y.options.isWholeLine)return!0;let D=y.range.startLineNumber===v?y.range.startColumn:1,T=y.range.endLineNumber===v?y.range.endColumn:S;if(y.options.showIfCollapsed){if(D>u.range.startColumn+1||u.range.endColumn-1>T)return!1}else if(D>u.range.startColumn||u.range.endColumn>T)return!1;return!0})}computeAsync(f,u){let g=f.anchor;if(!this._editor.hasModel()||!g)return Fn.EMPTY;let v=Du._getLineDecorations(this._editor,g);return Fn.merge(this._participants.map((S)=>{if(!S.computeAsync)return Fn.EMPTY;return S.computeAsync(g,v,f.source,u)}))}computeSync(f){if(!this._editor.hasModel())return[];let u=f.anchor,g=Du._getLineDecorations(this._editor,u),v=[];for(let S of this._participants)v=v.concat(S.computeSync(u,g,f.source));return Zi(v)}}class Lm{constructor(f,u,g){this.hoverParts=f,this.isComplete=u,this.options=g}filter(f){let u=this.hoverParts.filter((g)=>g.isValidForHoverAnchor(f));if(u.length===this.hoverParts.length)return this;return new f1(this,u,this.isComplete,this.options)}}class f1 extends Lm{constructor(f,u,g,v){super(u,g,v);this.original=f}filter(f){return this.original.filter(f)}}var SR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},_1=function(f,u){return function(g,v){u(g,v,f)}},b1=m,Pm=class f extends n{get hasContent(){return this._hasContent}constructor(u,g){super();this._keybindingService=u,this._hoverService=g,this.actions=[],this._hasContent=!1,this.hoverElement=b1("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=w(this.hoverElement,b1("div.actions"))}addAction(u){let g=this._keybindingService.lookupKeybinding(u.commandId),v=g?g.getLabel():null;this._hasContent=!0;let S=this._register(Th.render(this.actionsElement,u,v));return this._register(this._hoverService.setupManagedHover(Wo("element"),S.actionContainer,S.actionRenderedLabel)),this.actions.push(S),S}append(u){let g=w(this.actionsElement,u);return this._hasContent=!0,g}};Pm=SR([_1(0,ce),_1(1,yn)],Pm);var CR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},v1=function(f,u){return function(g,v){u(g,v,f)}},km=class f extends n{constructor(u,g,v,S){super();this._container=u,this._getContent=g,this._clipboardService=v,this._hoverService=S,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new bs({label:e(1186,"Copy"),icon:b.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){let u=this._getContent();if(u)await this._clipboardService.writeText(u),bo(e(1187,"Copied to clipboard"))}};km=CR([v1(2,Xn),v1(3,yn)],km);class w1{constructor(f,u,g){this.provider=f,this.hover=u,this.ordinal=g}}async function yR(f,u,g,v,S){let y=await Promise.resolve(f.provideHover(g,v,S)).catch(dt);if(!y||!xR(y))return;return new w1(f,y,u)}function Tu(f,u,g,v,S=!1){let D=f.ordered(u,S).map((T,R)=>yR(T,R,u,g,v));return Fn.fromPromisesResolveOrder(D).coalesce()}async function S1(f,u,g,v,S=!1){let y=[];for await(let D of Tu(f,u,g,v,S))y.push(D.hover);return y}fo("_executeHoverProvider",(f,u,g)=>{let v=f.get(j);return S1(v.hoverProvider,u,g,he.None)});fo("_executeHoverProvider_recursive",(f,u,g)=>{let v=f.get(j);return S1(v.hoverProvider,u,g,he.None,!0)});function xR(f){let u=typeof f.range<"u",g=typeof f.contents<"u"&&f.contents&&f.contents.length>0;return u&&g}var IR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Kc=function(f,u){return function(g,v){u(g,v,f)}},Sd=m,LR=Tt("hover-increase-verbosity",b.addSmall,e(1188,"Icon for increaseing hover verbosity.")),kR=Tt("hover-decrease-verbosity",b.removeSmall,e(1189,"Icon for decreasing hover verbosity."));class Lo{constructor(f,u,g,v,S,y=void 0){this.owner=f,this.range=u,this.contents=g,this.isBeforeContent=v,this.ordinal=S,this.source=y}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}class ew{constructor(f,u,g){this.hover=f,this.hoverProvider=u,this.hoverPosition=g}supportsVerbosityAction(f){switch(f){case Rr.Increase:return this.hover.canIncreaseVerbosity??!1;case Rr.Decrease:return this.hover.canDecreaseVerbosity??!1}}}var Na=class f{constructor(u,g,v,S,y,D,T){this._editor=u,this._markdownRendererService=g,this._configurationService=v,this._languageFeaturesService=S,this._keybindingService=y,this._hoverService=D,this._commandService=T,this.hoverOrdinal=3}createLoadingMessage(u){return new Lo(this,u.range,[new wn().appendText(e(1190,"Loading..."))],!1,2000)}computeSync(u,g){if(!this._editor.hasModel()||u.type!==1)return[];let v=this._editor.getModel(),S=u.range.startLineNumber,y=v.getLineMaxColumn(S),D=[],T=1000,R=v.getLineLength(S),K=v.getLanguageIdAtPosition(u.range.startLineNumber,u.range.startColumn),q=this._editor.getOption(133),ee=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:K}),te=this._editor.getOption(69).showLongLineWarning,ne=!1;if(q>=0&&R>q&&u.range.startColumn>=q){if(ne=!0,te)D.push(new Lo(this,u.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})",_u),isTrusted:!0}],!1,T++))}if(!ne&&typeof ee==="number"&&R>=ee){if(te)D.push(new Lo(this,u.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})",_u),isTrusted:!0}],!1,T++))}let re=!1;for(let ae of g){let ge=ae.range.startLineNumber===S?ae.range.startColumn:1,ke=ae.range.endLineNumber===S?ae.range.endColumn:y,Ae=ae.options.hoverMessage;if(!Ae||ou(Ae))continue;if(ae.options.beforeContentClassName)re=!0;let He=new t(u.range.startLineNumber,ge,u.range.startLineNumber,ke);D.push(new Lo(this,He,Bm(Ae),re,T++))}return D}computeAsync(u,g,v,S){if(!this._editor.hasModel()||u.type!==1)return Fn.EMPTY;let y=this._editor.getModel(),D=this._languageFeaturesService.hoverProvider;if(!D.has(y))return Fn.EMPTY;return this._getMarkdownHovers(D,y,u,S)}async*_getMarkdownHovers(u,g,v,S){let y=v.range.getStartPosition(),D=Tu(u,g,y,S);for await(let T of D)if(!ou(T.hover.contents)){let R=T.hover.range?t.lift(T.hover.range):v.range,K=new ew(T.hover,T.provider,y);yield new Lo(this,R,T.hover.contents,!1,T.ordinal,K)}}renderHoverParts(u,g){return this._renderedHoverParts=new C1(g,u.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,u.onContentsChanged),this._renderedHoverParts}handleScroll(u){this._renderedHoverParts?.handleScroll(u)}getAccessibleContent(u){return this._renderedHoverParts?.getAccessibleContent(u)??""}updateMarkdownHoverVerbosityLevel(u,g){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(u,g))}};Na=IR([Kc(1,yo),Kc(2,X),Kc(3,j),Kc(4,ce),Kc(5,yn),Kc(6,Ne)],Na);class Ru{constructor(f,u,g,v){this.hoverPart=f,this.hoverElement=u,this.disposables=g,this.actionsContainer=v}dispose(){this.disposables.dispose()}}class C1{constructor(f,u,g,v,S,y,D,T,R,K){this._hoverParticipant=g,this._editor=v,this._commandService=S,this._keybindingService=y,this._hoverService=D,this._configurationService=T,this._markdownRendererService=R,this._onFinishedRendering=K,this._ongoingHoverOperations=new Map,this._disposables=new c,this.renderedHoverParts=this._renderHoverParts(f,u,this._onFinishedRendering),this._disposables.add(E(()=>{this.renderedHoverParts.forEach((q)=>{q.dispose()}),this._ongoingHoverOperations.forEach((q)=>{q.tokenSource.dispose(!0)})}))}_renderHoverParts(f,u,g){return f.sort(Cn((v)=>v.ordinal,xi)),f.map((v)=>{let S=this._renderHoverPart(v,g);return u.appendChild(S.hoverElement),S})}_renderHoverPart(f,u){let g=this._renderMarkdownHover(f,u),v=g.hoverElement,S=f.source,y=new c;if(y.add(g),!S)return new Ru(f,v,y);let D=S.supportsVerbosityAction(Rr.Increase),T=S.supportsVerbosityAction(Rr.Decrease);if(!D&&!T)return new Ru(f,v,y);let R=Sd("div.verbosity-actions");v.prepend(R);let K=Sd("div.verbosity-actions-inner");return R.append(K),y.add(this._renderHoverExpansionAction(K,Rr.Increase,D)),y.add(this._renderHoverExpansionAction(K,Rr.Decrease,T)),new Ru(f,v,y,K)}_renderMarkdownHover(f,u){return x1(this._editor,f,this._markdownRendererService,u)}_renderHoverExpansionAction(f,u,g){let v=new c,S=u===Rr.Increase,y=w(f,Sd(G.asCSSSelector(S?LR:kR)));y.tabIndex=0;let D=v.add(new Bc("mouse",void 0,{target:f,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(v.add(this._hoverService.setupManagedHover(D,y,ER(this._keybindingService,u))),!g)return y.classList.add("disabled"),v;y.classList.add("enabled");let T=()=>this._commandService.executeCommand(u===Rr.Increase?gd:pd,{focus:!0});return v.add(new m0(y,T)),v.add(new g0(y,T,[3,10])),v}handleScroll(f){this.renderedHoverParts.forEach((u)=>{let g=u.actionsContainer;if(!g)return;let v=u.hoverElement,y=f.scrollTop+f.height,{offsetTop:D,clientHeight:T}=v,R=D+T,K=22,q;if(R<=y||D>=y)q=T-K;else q=y-D-K;g.style.top=`${q}px`})}async updateMarkdownHoverPartVerbosityLevel(f,u){let g=this._editor.getModel();if(!g)return;let v=this._getRenderedHoverPartAtIndex(u),S=v?.hoverPart.source;if(!v||!S?.supportsVerbosityAction(f))return;let y=await this._fetchHover(S,g,f);if(!y)return;let D=new ew(y,S.hoverProvider,S.hoverPosition),T=v.hoverPart,R=new Lo(this._hoverParticipant,T.range,y.contents,T.isBeforeContent,T.ordinal,D),K=this._updateRenderedHoverPart(u,R);if(!K)return;return{hoverPart:R,hoverElement:K.hoverElement}}getAccessibleContent(f){let u=this.renderedHoverParts.findIndex((y)=>y.hoverPart===f);if(u===-1)return;let g=this._getRenderedHoverPartAtIndex(u);if(!g)return;return g.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(f,u,g){let v=g===Rr.Increase?1:-1,S=f.hoverProvider,y=this._ongoingHoverOperations.get(S);if(y)y.tokenSource.cancel(),v+=y.verbosityDelta;let D=new Oe;this._ongoingHoverOperations.set(S,{verbosityDelta:v,tokenSource:D});let T={verbosityRequest:{verbosityDelta:v,previousHover:f.hover}},R;try{R=await Promise.resolve(S.provideHover(u,f.hoverPosition,D.token,T))}catch(K){dt(K)}return D.dispose(),this._ongoingHoverOperations.delete(S),R}_updateRenderedHoverPart(f,u){if(f>=this.renderedHoverParts.length||f<0)return;let g=this._renderHoverPart(u,this._onFinishedRendering),v=this.renderedHoverParts[f],S=v.hoverElement,y=g.hoverElement,D=Array.from(y.children);S.replaceChildren(...D);let T=new Ru(u,S,g.disposables,g.actionsContainer);return v.dispose(),this.renderedHoverParts[f]=T,T}_getRenderedHoverPartAtIndex(f){return this.renderedHoverParts[f]}dispose(){this._disposables.dispose()}}function y1(f,u,g,v){u.sort(Cn((y)=>y.ordinal,xi));let S=[];for(let y of u){let D=x1(g,y,v,f.onContentsChanged);f.fragment.appendChild(D.hoverElement),S.push(D)}return new Jo(S)}function x1(f,u,g,v){let S=new c,y=Sd("div.hover-row"),D=Sd("div.hover-row-contents");y.appendChild(D);let T=u.contents;for(let K of T){if(ou(K))continue;let q=Sd("div.markdown-hover"),ee=w(q,Sd("div.hover-contents")),te=S.add(g.render(K,{context:f,asyncRenderCallback:()=>{ee.className="hover-contents code-hover-contents",v()}}));ee.appendChild(te.element),D.appendChild(q)}return{hoverPart:u,hoverElement:y,dispose(){S.dispose()}}}function ER(f,u){switch(u){case Rr.Increase:return f.appendKeybinding(e(1193,"Increase Hover Verbosity"),gd);case Rr.Decrease:return f.appendKeybinding(e(1194,"Decrease Hover Verbosity"),pd)}}var I1=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},tw=function(f,u){return function(g,v){u(g,v,f)}},Ip=class f{constructor(u){this._editorWorkerService=u}async provideDocumentColors(u,g){return this._editorWorkerService.computeDefaultDocumentColors(u.uri)}provideColorPresentations(u,g,v){let{range:S,color:y}=g,D=new p(new k(Math.round(255*y.red),Math.round(255*y.green),Math.round(255*y.blue),y.alpha)),T=p.Format.CSS.formatRGB(D),R=p.Format.CSS.formatHSL(D),K=p.Format.CSS.formatHexA(D,!0),q=[];return q.push({label:T,textEdit:{range:S,text:T}}),q.push({label:R,textEdit:{range:S,text:R}}),q.push({label:K,textEdit:{range:S,text:K}}),q}};Ip=I1([tw(0,pi)],Ip);var $x=class f extends n{constructor(u,g){super();this._register(u.colorProvider.register("*",new Ip(g)))}};$x=I1([tw(0,j),tw(1,pi)],$x);async function Dx(f,u,g,v="auto"){return Ax(new L1,f,u,g,v)}function iw(f,u,g,v){return Promise.resolve(g.provideColorPresentations(f,u,v))}class L1{constructor(){}async compute(f,u,g,v){let S=await f.provideDocumentColors(u,g);if(Array.isArray(S))for(let y of S)v.push({colorInfo:y,provider:f});return Array.isArray(S)}}class cS{constructor(){}async compute(f,u,g,v){let S=await f.provideDocumentColors(u,g);if(Array.isArray(S))for(let y of S)v.push({range:y.range,color:[y.color.red,y.color.green,y.color.blue,y.color.alpha]});return Array.isArray(S)}}class dS{constructor(f){this.colorInfo=f}async compute(f,u,g,v){let S=await f.provideColorPresentations(u,this.colorInfo,he.None);if(Array.isArray(S))v.push(...S);return Array.isArray(S)}}async function Ax(f,u,g,v,S){let y=!1,D,T=[],R=u.ordered(g);for(let K=R.length-1;K>=0;K--){let q=R[K];if(S!=="always"&&q instanceof Ip)D=q;else try{if(await f.compute(q,g,v,T))y=!0}catch(ee){dt(ee)}}if(y)return T;if(D&&S!=="never")return await f.compute(D,g,v,T),T;return[]}function uS(f,u){let{colorProvider:g}=f.get(j),v=f.get(gt).getModel(u);if(!v)throw Xi();let S=f.get(X).getValue("editor.defaultColorDecorators",{resource:u});return{model:v,colorProviderRegistry:g,defaultColorDecoratorsEnablement:S}}var DR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},ow=function(f,u){return function(g,v){u(g,v,f)}},Cd,nw=Object.create({}),jd=class f extends n{static{Cd=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1000}static{this.colorDecoratorInnerWidthInEm=0.8}static{this.colorDecoratorMarginInEm=0.2}constructor(u,g,v,S){super();this._editor=u,this._configurationService=g,this._languageFeaturesService=v,this._localToDispose=this._register(new c),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new k1),this._colorDecorationClassRefs=this._register(new c),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new lg(this._editor));let y=this._editor.getContainerDomNode();y.style.setProperty("--vscode-colorPicker-colorDecoratorWidth",`${Cd.colorDecoratorInnerWidthInEm}em`),y.style.setProperty("--vscode-colorPicker-colorDecoratorMargin",`${Cd.colorDecoratorMarginInEm}em`),this._register(E(()=>{y.style.removeProperty("--vscode-colorPicker-colorDecoratorWidth"),y.style.removeProperty("--vscode-colorPicker-colorDecoratorMargin")})),this._debounceInformation=S.for(v.colorProvider,"Document Colors",{min:Cd.RECOMPUTE_TIME}),this._register(u.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(u.onDidChangeModelLanguage(()=>this.updateColors())),this._register(v.colorProvider.onDidChange(()=>this.updateColors())),this._register(u.onDidChangeConfiguration((D)=>{let T=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168);let R=T!==this._isColorDecoratorsEnabled||D.hasChanged(27),K=D.hasChanged(168);if(R||K)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 u=this._editor.getModel();if(!u)return!1;let g=u.getLanguageId(),v=this._configurationService.getValue(g);if(v&&typeof v==="object"){let S=v.colorDecorators;if(S&&S.enable!==void 0&&!S.enable)return S.enable}return this._editor.getOption(26)}static get(u){return u.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled){this.removeAllDecorations();return}let u=this._editor.getModel();if(!u||!this._languageFeaturesService.colorProvider.has(u))return;this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{if(!this._timeoutTimer)this._timeoutTimer=new Un,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(u))})),this.beginCompute()}async beginCompute(){this._computePromise=Pt(async(u)=>{let g=this._editor.getModel();if(!g)return[];let v=new Kt(!1),S=await Dx(this._languageFeaturesService.colorProvider,g,u,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(g,v.elapsed()),S});try{let u=await this._computePromise;this.updateDecorations(u),this.updateColorDecorators(u),this._computePromise=null}catch(u){J(u)}}stop(){if(this._timeoutTimer)this._timeoutTimer.cancel(),this._timeoutTimer=null;if(this._computePromise)this._computePromise.cancel(),this._computePromise=null;this._localToDispose.clear()}updateDecorations(u){let g=u.map((v)=>({range:{startLineNumber:v.colorInfo.range.startLineNumber,startColumn:v.colorInfo.range.startColumn,endLineNumber:v.colorInfo.range.endLineNumber,endColumn:v.colorInfo.range.endColumn},options:oe.EMPTY}));this._editor.changeDecorations((v)=>{this._decorationsIds=v.deltaDecorations(this._decorationsIds,g),this._colorDatas=new Map,this._decorationsIds.forEach((S,y)=>this._colorDatas.set(S,u[y]))})}updateColorDecorators(u){this._colorDecorationClassRefs.clear();let g=[],v=Cd.colorDecoratorInnerWidthInEm+2*Cd.colorDecoratorMarginInEm,S=this._editor.getOption(27);for(let D=0;D<u.length&&g.length<S;D++){let{red:T,green:R,blue:K,alpha:q}=u[D].colorInfo.color,ee=new k(Math.round(T*255),Math.round(R*255),Math.round(K*255),q),te=`rgba(${ee.r}, ${ee.g}, ${ee.b}, ${ee.a})`,ne=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:te}));g.push({range:{startLineNumber:u[D].colorInfo.range.startLineNumber,startColumn:u[D].colorInfo.range.startColumn,endLineNumber:u[D].colorInfo.range.endLineNumber,endColumn:u[D].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:Vx,inlineClassName:`${ne.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:nw,widthInEm:v}}})}let y=S<u.length?S:!1;this._decoratorLimitReporter.update(u.length,y),this._colorDecoratorIds.set(g)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(u){let g=this._editor.getModel();if(!g)return null;let v=g.getDecorationsInRange(t.fromPositions(u,u)).filter((S)=>this._colorDatas.has(S.id));if(v.length===0)return null;return this._colorDatas.get(v[0].id)}isColorDecoration(u){return this._colorDecoratorIds.has(u)}};jd=Cd=DR([ow(1,X),ow(2,j),ow(3,Hi)],jd);class k1 extends n{constructor(){super(...arguments);this._onDidChange=this._register(new i),this._computed=0,this._limited=!1}update(f,u){if(f!==this._computed||u!==this._limited)this._computed=f,this._limited=u,this._onDidChange.fire()}}var E1=m;class rw extends n{constructor(f,u,g){super();this.model=u,this.pixelRatio=g,this._onDidChange=this._register(new i),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new i),this.onColorFlushed=this._onColorFlushed.event,this._domNode=E1(".saturation-wrap"),w(f,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",w(this._domNode,this._canvas),this.selection=E1(".saturation-selection"),w(this._domNode,this.selection),this.layout(),this._register(l(this._domNode,x.POINTER_DOWN,(v)=>this.onPointerDown(v))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(f){if(!f.target||!(f.target instanceof Element))return;this.monitor=this._register(new Ca);let u=mt(this._domNode);if(f.target!==this.selection)this.onDidChangePosition(f.offsetX,f.offsetY);this.monitor.startMonitoring(f.target,f.pointerId,f.buttons,(v)=>this.onDidChangePosition(v.pageX-u.left,v.pageY-u.top),()=>null);let g=l(f.target.ownerDocument,x.POINTER_UP,()=>{if(this._onColorFlushed.fire(),g.dispose(),this.monitor)this.monitor.stopMonitoring(!0),this.monitor=null},!0)}onDidChangePosition(f,u){let g=Math.max(0,Math.min(1,f/this.width)),v=Math.max(0,Math.min(1,1-u/this.height));this.paintSelection(g,v),this._onDidChange.fire({s:g,v})}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 f=this.model.color.hsva;this.paintSelection(f.s,f.v)}paint(){let f=this.model.color.hsva,u=new p(new al(f.h,1,1,1)),g=this._canvas.getContext("2d"),v=g.createLinearGradient(0,0,this._canvas.width,0);v.addColorStop(0,"rgba(255, 255, 255, 1)"),v.addColorStop(0.5,"rgba(255, 255, 255, 0.5)"),v.addColorStop(1,"rgba(255, 255, 255, 0)");let S=g.createLinearGradient(0,0,0,this._canvas.height);S.addColorStop(0,"rgba(0, 0, 0, 0)"),S.addColorStop(1,"rgba(0, 0, 0, 1)"),g.rect(0,0,this._canvas.width,this._canvas.height),g.fillStyle=p.Format.CSS.format(u),g.fill(),g.fillStyle=v,g.fill(),g.fillStyle=S,g.fill()}paintSelection(f,u){this.selection.style.left=`${f*this.width}px`,this.selection.style.top=`${this.height-u*this.height}px`}onDidChangeColor(f){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let u=f.hsva;this.paintSelection(u.s,u.v)}}class sw extends n{constructor(f){super();this._onClicked=this._register(new i),this.onClicked=this._onClicked.event,this._button=w(f,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(l(this._button,x.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}var Nu=m;class aw extends n{constructor(f,u,g){super();if(this.model=u,this._onDidChange=this._register(new i),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new i),this.onColorFlushed=this._onColorFlushed.event,g==="standalone")this.domNode=w(f,Nu(".standalone-strip")),this.overlay=w(this.domNode,Nu(".standalone-overlay"));else this.domNode=w(f,Nu(".strip")),this.overlay=w(this.domNode,Nu(".overlay"));this.slider=w(this.domNode,Nu(".slider")),this.slider.style.top="0px",this._register(l(this.domNode,x.POINTER_DOWN,(v)=>this.onPointerDown(v))),this._register(u.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;let f=this.getValue(this.model.color);this.updateSliderPosition(f)}onDidChangeColor(f){let u=this.getValue(f);this.updateSliderPosition(u)}onPointerDown(f){if(!f.target||!(f.target instanceof Element))return;let u=this._register(new Ca),g=mt(this.domNode);if(this.domNode.classList.add("grabbing"),f.target!==this.slider)this.onDidChangeTop(f.offsetY);u.startMonitoring(f.target,f.pointerId,f.buttons,(S)=>this.onDidChangeTop(S.pageY-g.top),()=>null);let v=l(f.target.ownerDocument,x.POINTER_UP,()=>{this._onColorFlushed.fire(),v.dispose(),u.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(f){let u=Math.max(0,Math.min(1,1-f/this.height));this.updateSliderPosition(u),this._onDidChange.fire(u)}updateSliderPosition(f){this.slider.style.top=`${(1-f)*this.height}px`}}class dw extends aw{constructor(f,u,g){super(f,u,g);this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(f){super.onDidChangeColor(f);let{r:u,g,b:v}=f.rgba,S=new p(new k(u,g,v,1)),y=new p(new k(u,g,v,0));this.overlay.style.background=`linear-gradient(to bottom, ${S} 0%, ${y} 100%)`}getValue(f){return f.hsva.a}}class cw extends aw{constructor(f,u,g){super(f,u,g);this.domNode.classList.add("hue-strip")}getValue(f){return 1-f.hsva.h/360}}var TR=m;class lw extends n{constructor(f,u,g,v){super();if(this.model=u,this.pixelRatio=g,this._insertButton=null,this._domNode=TR(".colorpicker-body"),w(f,this._domNode),this._saturationBox=new rw(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 dw(this._domNode,this.model,v),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new cw(this._domNode,this.model,v),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),v==="standalone")this._insertButton=this._register(new sw(this._domNode)),this._domNode.classList.add("standalone-colorpicker")}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:f,v:u}){let g=this.model.color.hsva;this.model.color=new p(new al(g.h,f,u,g.a))}onDidOpacityChange(f){let u=this.model.color.hsva;this.model.color=new p(new al(u.h,u.s,u.v,f))}onDidHueChange(f){let u=this.model.color.hsva,g=(1-f)*360;this.model.color=new p(new al(g===360?0:g,u.s,u.v,u.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 RR=m;class hw extends n{constructor(f){super();this._onClicked=this._register(new i),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),w(f,this._button);let u=document.createElement("div");u.classList.add("close-button-inner-div"),w(this._button,u),w(u,RR(".button"+G.asCSSSelector(Tt("color-picker-close",b.close,e(936,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(l(this._button,x.CLICK,()=>{this._onClicked.fire()}))}}var Em=m;class uw extends n{constructor(f,u,g,v){super();this.model=u,this.type=v,this._closeButton=null,this._domNode=Em(".colorpicker-header"),w(f,this._domNode),this._pickedColorNode=w(this._domNode,Em(".picked-color")),w(this._pickedColorNode,Em("span.codicon.codicon-color-mode")),this._pickedColorPresentation=w(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");let S=e(937,"Click to toggle color options (rgb/hsl/hex)");if(this._pickedColorNode.setAttribute("title",S),this._originalColorNode=w(this._domNode,Em(".original-color")),this._originalColorNode.style.backgroundColor=p.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=g.getColorTheme().getColor(Kp)||p.white,this._register(g.onDidColorThemeChange((y)=>{this.backgroundColor=y.getColor(Kp)||p.white})),this._register(l(this._pickedColorNode,x.CLICK,()=>this.model.selectNextColorPresentation())),this._register(l(this._originalColorNode,x.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(u.onDidChangeColor(this.onDidChangeColor,this)),this._register(u.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=p.Format.CSS.format(u.color)||"",this._pickedColorNode.classList.toggle("light",u.color.rgba.a<0.5?this.backgroundColor.isLighter():u.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone")this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new hw(this._domNode))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(f){this._pickedColorNode.style.backgroundColor=p.Format.CSS.format(f)||"",this._pickedColorNode.classList.toggle("light",f.rgba.a<0.5?this.backgroundColor.isLighter():f.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}var NR=m;class Rv extends ni{constructor(f,u,g,v,S){super();this.model=u,this.pixelRatio=g,this._register(ch.getInstance(F(f)).onDidChange(()=>this.layout())),this._domNode=NR(".colorpicker-widget"),f.appendChild(this._domNode),this.header=this._register(new uw(this._domNode,this.model,v,S)),this.body=this._register(new lw(this._domNode,this.model,this.pixelRatio,S))}layout(){this.body.layout()}get domNode(){return this._domNode}}class gw extends n{get color(){return this._color}set color(f){if(this._color.equals(f))return;this._color=f,this._onDidChangeColor.fire(f)}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(f){if(this._colorPresentations=f,this.presentationIndex>f.length-1)this.presentationIndex=0;this._onDidChangePresentation.fire(this.presentation)}constructor(f,u,g){super();this.presentationIndex=g,this._onColorFlushed=this._register(new i),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new i),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new i),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=f,this._color=f,this._colorPresentations=u}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(f,u){let g=-1;for(let v=0;v<this.colorPresentations.length;v++)if(u.toLowerCase()===this.colorPresentations[v].label){g=v;break}if(g===-1){let v=u.split("(")[0].toLowerCase();for(let S=0;S<this.colorPresentations.length;S++)if(this.colorPresentations[S].label.toLowerCase().startsWith(v)){g=S;break}}if(g!==-1&&g!==this.presentationIndex)this.presentationIndex=g,this._onDidChangePresentation.fire(this.presentation)}flushColor(){this._onColorFlushed.fire(this._color)}}async function Nx(f,u,g){let v=f.getValueInRange(u.range),{red:S,green:y,blue:D,alpha:T}=u.color,R=new k(Math.round(S*255),Math.round(y*255),Math.round(D*255),T),K=new p(R),q=await iw(f,u,g,he.None),ee=new gw(K,[],0);return ee.colorPresentations=q||[],ee.guessColorPresentation(K,v),{range:t.lift(u.range),model:ee,provider:g}}function Ox(f,u,g,v){let S=[],y=g.presentation.textEdit??{range:u,text:g.presentation.label,forceMoveMarkers:!1};if(g.presentation.additionalTextEdits)S.push(...g.presentation.additionalTextEdits);let D=t.lift(y.range),T=f.getModel()._setTrackedRange(null,D,3);if(v)S.push(...v.map((R)=>({range:R,text:y.text,forceMoveMarkers:!1})));else S.push(y);return f.executeEdits("colorpicker",S),f.pushUndoStop(),f.getModel()._getTrackedRange(T)??D}async function Rp(f,u,g,v,S){let y=await iw(f,{range:v,color:{red:g.rgba.r/255,green:g.rgba.g/255,blue:g.rgba.b/255,alpha:g.rgba.a}},S.provider,he.None);u.colorPresentations=y||[]}var MR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},OR=function(f,u){return function(g,v){u(g,v,f)}};class Uc{constructor(f,u,g,v){this.owner=f,this.range=u,this.model=g,this.provider=v,this.forceShowAtRange=!0}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}static fromBaseColor(f,u){return new Uc(f,u.range,u.model,u.provider)}}var Fm=class f{constructor(u,g){this._editor=u,this._themeService=g,this.hoverOrdinal=2}computeSync(u,g,v){return[]}computeAsync(u,g,v,S){return Fn.fromPromise(this._computeAsync(u,g,v))}async _computeAsync(u,g,v){if(!this._editor.hasModel())return[];if(!this._isValidRequest(v))return[];let S=jd.get(this._editor);if(!S)return[];for(let y of g){if(!S.isColorDecoration(y))continue;let D=S.getColorData(y.range.getStartPosition());if(D)return[Uc.fromBaseColor(this,await Nx(this._editor.getModel(),D.colorInfo,D.provider))]}return[]}_isValidRequest(u){let g=this._editor.getOption(169);switch(u){case 0:return g==="hover"||g==="clickAndHover";case 1:return g==="click"||g==="clickAndHover";case 2:return!0}}renderHoverParts(u,g){let v=this._editor;if(g.length===0||!v.hasModel())return new Jo([]);let S=v.getOption(75)+8;u.setMinimumDimensions(new Je(302,S));let y=new c,D=g[0],T=v.getModel(),R=D.model;this._colorPicker=y.add(new Rv(u.fragment,R,v.getOption(164),this._themeService,"hover"));let K=!1,q=new t(D.range.startLineNumber,D.range.startColumn,D.range.endLineNumber,D.range.endColumn);y.add(R.onColorFlushed(async(te)=>{await Rp(T,R,te,q,D),K=!0,q=Ox(v,q,R)})),y.add(R.onDidChangeColor((te)=>{Rp(T,R,te,q,D)})),y.add(v.onDidChangeModelContent((te)=>{if(K)K=!1;else u.hide(),v.focus()}));let ee={hoverPart:Uc.fromBaseColor(this,D),hoverElement:this._colorPicker.domNode,dispose(){y.dispose()}};return new Jo([ee])}getAccessibleContent(u){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}};Fm=MR([OR(1,De)],Fm);class Dm{constructor(f,u){this.range=f,this.direction=u}}class pw{constructor(f,u,g){this.hint=f,this.anchor=u,this.provider=g,this._isResolved=!1}with(f){let u=new pw(this.hint,f.anchor,this.provider);return u._isResolved=this._isResolved,u._currentResolve=this._currentResolve,u}async resolve(f){if(typeof this.provider.resolveInlayHint!=="function")return;if(this._currentResolve){if(await this._currentResolve,f.isCancellationRequested)return;return this.resolve(f)}if(!this._isResolved)this._currentResolve=this._doResolve(f).finally(()=>this._currentResolve=void 0);await this._currentResolve}async _doResolve(f){try{let u=await Promise.resolve(this.provider.resolveInlayHint(this.hint,f));this.hint.tooltip=u?.tooltip??this.hint.tooltip,this.hint.label=u?.label??this.hint.label,this.hint.textEdits=u?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(u){dt(u),this._isResolved=!1}}}class yd{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(f,u,g,v){let S=[],y=f.ordered(u).reverse().map((D)=>g.map(async(T)=>{try{let R=await D.provideInlayHints(u,T,v);if(R?.hints.length||D.onDidChangeInlayHints)S.push([R??yd._emptyInlayHintList,D])}catch(R){dt(R)}}));if(await Promise.all(y.flat()),v.isCancellationRequested||u.isDisposed())throw new er;return new yd(g,S,u)}constructor(f,u,g){this._disposables=new c,this.ranges=f,this.provider=new Set;let v=[];for(let[S,y]of u){this._disposables.add(S),this.provider.add(y);for(let D of S.hints){let T=g.validatePosition(D.position),R="before",K=yd._getRangeAtPosition(g,T),q;if(K.getStartPosition().isBefore(T))q=t.fromPositions(K.getStartPosition(),T),R="after";else q=t.fromPositions(T,K.getEndPosition()),R="before";v.push(new pw(D,new Dm(q,R),y))}}this.items=v.sort((S,y)=>r.compare(S.hint.position,y.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(f,u){let g=u.lineNumber,v=f.getWordAtPosition(u);if(v)return new t(g,v.startColumn,g,v.endColumn);f.tokenization.tokenizeIfCheap(g);let S=f.tokenization.getLineTokens(g),y=u.column-1,D=S.findTokenIndexAtOffset(y),T=S.getStartOffset(D),R=S.getEndOffset(D);if(R-T===1){if(T===y&&D>1)T=S.getStartOffset(D-1),R=S.getEndOffset(D-1);else if(R===y&&D<S.getCount()-1)T=S.getStartOffset(D+1),R=S.getEndOffset(D+1)}return new t(g,T+1,g,R+1)}}function D1(f){return v0(f.id,...f.arguments??[]).toString()}async function T1(f,u,g,v){let S=f.get(gn),y=f.get(Dn),D=f.get(Ne),T=f.get(L),R=f.get(ut);if(await v.item.resolve(he.None),!v.part.location)return;let K=v.part.location,q=[],ee=new Set(Rn.getMenuItems(a.EditorContext).map((ne)=>dh(ne)?ne.command.id:Ea()));for(let ne of so.all())if(ee.has(ne.desc.id))q.push(new Qi(ne.desc.id,ki.label(ne.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let re=await S.createModelReference(K.uri);try{let ae=new bd(re.object.textEditorModel,t.getStartPosition(K.range)),ge=v.item.anchor.range;await T.invokeFunction(ne.runEditorCommand.bind(ne),u,ae,ge)}finally{re.dispose()}}));if(v.part.command){let{command:ne}=v.part;q.push(new Xe),q.push(new Qi(ne.id,ne.title,void 0,!0,async()=>{try{await D.executeCommand(ne.id,...ne.arguments??[])}catch(re){R.notify({severity:ul.Error,source:v.item.provider.displayName,message:re})}}))}let te=u.getOption(144);y.showContextMenu({domForShadowRoot:te?u.getDomNode()??void 0:void 0,getAnchor:()=>{let ne=mt(g);return{x:ne.left,y:ne.top+ne.height+8}},getActions:()=>q,onHide:()=>{u.focus()},autoSelectFirstItem:!0})}async function Tm(f,u,g,v){let y=await f.get(gn).createModelReference(v.uri);await g.invokeWithinContext(async(D)=>{let T=u.hasSideBySideModifier,R=D.get(V),K=qi.inPeekEditor.getValue(R),q=!T&&g.getOption(101)&&!K;return new ua({openToSide:T,openInPeek:q,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(D,new bd(y.object.textEditorModel,t.getStartPosition(v.range)),t.lift(v.range))}),y.dispose()}var PR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Gc=function(f,u){return function(g,v){u(g,v,f)}},Zc;class Rm{constructor(){this._entries=new Ei(50)}get(f){let u=Rm._key(f);return this._entries.get(u)}set(f,u){let g=Rm._key(f);this._entries.set(g,u)}static _key(f){return`${f.uri.toString()}/${f.getVersionId()}`}}var R1=Z("IInlayHintsCache");fe(R1,Rm,1);class Mu{constructor(f,u){this.item=f,this.index=u}get part(){let f=this.item.hint.label;if(typeof f==="string")return{label:f};else return f[this.index]}}class N1{constructor(f,u){this.part=f,this.hasTriggerModifier=u}}class M1{constructor(){this._store=new ie,this._tokenSource=new Oe}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new Oe,this._store.value=new c,{store:this._store.value,token:this._tokenSource.token}}}var $p=class f{static{Zc=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(u){return u.getContribution(Zc.ID)??void 0}constructor(u,g,v,S,y,D,T){this._editor=u,this._languageFeaturesService=g,this._inlayHintsCache=S,this._commandService=y,this._notificationService=D,this._instaService=T,this._disposables=new c,this._sessionDisposables=new c,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new lg(this._editor)),this._debounceInfo=v.for(g.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(g.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(u.onDidChangeModel(()=>this._update())),this._disposables.add(u.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(u.onDidChangeConfiguration((R)=>{if(R.hasChanged(159))this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();let u=this._editor.getOption(159);if(u.enabled==="off")return;let g=this._editor.getModel();if(!g||!this._languageFeaturesService.inlayHintsProvider.has(g))return;if(u.enabled==="on")this._activeRenderMode=0;else{let K,q;if(u.enabled==="onUnlessPressed")K=0,q=1;else K=1,q=0;this._activeRenderMode=K,this._sessionDisposables.add(Gs.getInstance().event((ee)=>{if(!this._editor.hasModel())return;let te=ee.altKey&&ee.ctrlKey&&!(ee.shiftKey||ee.metaKey)?q:K;if(te!==this._activeRenderMode){this._activeRenderMode=te;let ne=this._editor.getModel(),re=this._copyInlayHintsWithCurrentAnchor(ne);this._updateHintsDecorators([ne.getFullModelRange()],re),T.schedule(0)}}))}let v=this._inlayHintsCache.get(g);if(v)this._updateHintsDecorators([g.getFullModelRange()],v);this._sessionDisposables.add(E(()=>{if(!g.isDisposed())this._cacheHintsForFastRestore(g)}));let S,y=new Set;this._sessionDisposables.add(g.onWillDispose(()=>S?.cancel()));let D=this._sessionDisposables.add(new M1),T=new be(async()=>{let K=Date.now(),{store:q,token:ee}=D.reset();try{let te=await yd.create(this._languageFeaturesService.inlayHintsProvider,g,this._getHintsRanges(),ee);if(T.delay=this._debounceInfo.update(g,Date.now()-K),ee.isCancellationRequested){te.dispose();return}for(let ne of te.provider)if(typeof ne.onDidChangeInlayHints==="function"&&!y.has(ne))y.add(ne),q.add(ne.onDidChangeInlayHints(()=>{if(!T.isScheduled())T.schedule()}));q.add(te),q.add(E(()=>y.clear())),this._updateHintsDecorators(te.ranges,te.items),this._cacheHintsForFastRestore(g)}catch(te){J(te)}},this._debounceInfo.get(g));this._sessionDisposables.add(T),T.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((K)=>{if(K.scrollTopChanged||!T.isScheduled())T.schedule()}));let R=this._sessionDisposables.add(new ie);this._sessionDisposables.add(this._editor.onDidChangeModelContent((K)=>{let q=Math.max(T.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+q},R.value=Jn(()=>T.schedule(0),q),T.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration((K)=>{if(K.hasChanged(159))T.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>T.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){let u=new c,g=u.add(new Rs(this._editor)),v=new c;return u.add(v),u.add(g.onMouseMoveOrRelevantKeyDown((S)=>{let[y]=S,D=this._getInlayHintLabelPart(y),T=this._editor.getModel();if(!D||!T){v.clear();return}let R=new Oe;v.add(E(()=>R.dispose(!0))),D.item.resolve(R.token),this._activeInlayHintPart=D.part.command||D.part.location?new N1(D,y.hasTriggerModifier):void 0;let K=T.validatePosition(D.item.hint.position).lineNumber,q=new t(K,1,K,T.getLineMaxColumn(K)),ee=this._getInlineHintsForRange(q);this._updateHintsDecorators([q],ee),v.add(E(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([q],ee)}))})),u.add(g.onCancel(()=>v.clear())),u.add(g.onExecute(async(S)=>{let y=this._getInlayHintLabelPart(S);if(y){let D=y.part;if(D.location)this._instaService.invokeFunction(Tm,S,this._editor,D.location);else if(Gm.is(D.command))await this._invokeCommand(D.command,y.item)}})),u}_getInlineHintsForRange(u){let g=new Set;for(let v of this._decorationsMetadata.values())if(u.containsRange(v.item.anchor.range))g.add(v.item);return Array.from(g)}_installDblClickGesture(u){return this._editor.onMouseUp(async(g)=>{if(g.event.detail!==2)return;let v=this._getInlayHintLabelPart(g);if(!v)return;if(g.event.preventDefault(),await v.item.resolve(he.None),Ln(v.item.hint.textEdits)){let S=v.item.hint.textEdits.map((y)=>Mt.replace(t.lift(y.range),y.text));this._editor.executeEdits("inlayHint.default",S),u()}})}_installContextMenu(){return this._editor.onContextMenu(async(u)=>{if(!xe(u.event.target))return;let g=this._getInlayHintLabelPart(u);if(g)await this._instaService.invokeFunction(T1,this._editor,u.event.target,g)})}_getInlayHintLabelPart(u){if(u.target.type!==6)return;let g=u.target.detail.injectedText?.options;if(g instanceof Yl&&g?.attachedData instanceof Mu)return g.attachedData;return}async _invokeCommand(u,g){try{await this._commandService.executeCommand(u.id,...u.arguments??[])}catch(v){this._notificationService.notify({severity:ul.Error,source:g.provider.displayName,message:v})}}_cacheHintsForFastRestore(u){let g=this._copyInlayHintsWithCurrentAnchor(u);this._inlayHintsCache.set(u,g)}_copyInlayHintsWithCurrentAnchor(u){let g=new Map;for(let[v,S]of this._decorationsMetadata){if(g.has(S.item))continue;let y=u.getDecorationRange(v);if(y){let D=new Dm(y,S.item.anchor.direction),T=S.item.with({anchor:D});g.set(S.item,T)}}return Array.from(g.values())}_getHintsRanges(){let g=this._editor.getModel(),v=this._editor.getVisibleRangesPlusViewportAboveBelow(),S=[];for(let y of v.sort(t.compareRangesUsingStarts)){let D=g.validateRange(new t(y.startLineNumber-30,y.startColumn,y.endLineNumber+30,y.endColumn));if(S.length===0||!t.areIntersectingOrTouching(S[S.length-1],D))S.push(D);else S[S.length-1]=t.plusRange(S[S.length-1],D)}return S}_updateHintsDecorators(u,g){let v=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&u.some((ke)=>ke.containsPosition(this._cursorInfo.position))){let{position:ke}=this._cursorInfo;this._cursorInfo=void 0;let Ae=new Map;for(let Te of this._editor.getLineDecorations(ke.lineNumber)??[]){let We=this._decorationsMetadata.get(Te.id);if(Te.range.startColumn>ke.column)continue;let et=We?.decoration.options[We.item.anchor.direction];if(et&&et.attachedData!==Zc._whitespaceData){let tt=Ae.get(We.item)??0;Ae.set(We.item,tt+et.content.length)}}let He=g.filter((Te)=>Te.anchor.range.startLineNumber===ke.lineNumber&&Te.anchor.range.endColumn<=ke.column),Ke=Array.from(Ae.values()),Ue;while(!0){let Te=He.shift(),We=Ke.shift();if(!We&&!Te)break;if(Te)v.set(Te,We??0),Ue=Te;else if(Ue&&We){let et=v.get(Ue);et+=We,et+=Ke.reduce((tt,ot)=>tt+ot,0),Ke.length=0;break}}}let{fontSize:S,fontFamily:y,padding:D,isUniform:T}=this._getLayoutInfo(),R=this._editor.getOption(61),K=[],q=(ke,Ae,He,Ke,Ue,Te)=>{let We={content:He,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:Ae.className,cursorStops:Ke,attachedData:Ue,widthInEm:Te};K.push({item:ke,classNameRef:Ae,decoration:{range:ke.anchor.range,options:{description:"InlayHint",showIfCollapsed:ke.anchor.range.isEmpty(),collapseOnReplaceEdit:!ke.anchor.range.isEmpty(),stickiness:0,[ke.anchor.direction]:this._activeRenderMode===0?We:void 0}}})},ee=(ke,Ae)=>{let He=S/3|0,Ke=He/R,Ue=this._ruleFactory.createClassNameRef({width:`${He}px`,display:"inline-block"});q(ke,Ue,"",Ae?Or.Right:Or.None,Zc._whitespaceData,Ke)},te=this._editor.getOption(159).maximumLength,ne="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(ne,y);let re={line:0,totalLen:0};for(let ke=0;ke<g.length;ke++){let Ae=g[ke];if(re.line!==Ae.anchor.range.startLineNumber)re={line:Ae.anchor.range.startLineNumber,totalLen:0};if(te&&re.totalLen>te)continue;if(Ae.hint.paddingLeft)ee(Ae,!1);let He=typeof Ae.hint.label==="string"?[{label:Ae.hint.label}]:Ae.hint.label,Ke=v.get(Ae),Ue=0;for(let Te=0;Te<He.length;Te++){let We=He[Te],et=Te===0,tt=Te===He.length-1,ot={fontSize:`${S}px`,fontFamily:`var(${ne}), ${co.fontFamily}`,verticalAlign:T?"baseline":"middle",unicodeBidi:"isolate"};if(Ln(Ae.hint.textEdits))ot.cursor="default";if(this._fillInColors(ot,Ae.hint),(We.command||We.location)&&this._activeInlayHintPart?.part.item===Ae&&this._activeInlayHintPart.part.index===Te){if(ot.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier)ot.color=en(AI),ot.cursor="pointer"}let je=We.label;re.totalLen+=je.length;let nt=!1,_t=te!==0?re.totalLen-te:0;if(_t>0)je=je.slice(0,-_t)+"…",nt=!0;if(Ue+=je.length,Ke!==void 0){let st=Ue-Ke;if(st>=0)Ue-=st,je=je.slice(0,-(1+st))+"…",nt=!0}if(D)if(et&&(tt||nt))ot.padding=`1px ${Math.max(1,S/4)|0}px`,ot.borderRadius=`${S/4|0}px`;else if(et)ot.padding=`1px 0 1px ${Math.max(1,S/4)|0}px`,ot.borderRadius=`${S/4|0}px 0 0 ${S/4|0}px`;else if(tt||nt)ot.padding=`1px ${Math.max(1,S/4)|0}px 1px 0`,ot.borderRadius=`0 ${S/4|0}px ${S/4|0}px 0`;else ot.padding="1px 0 1px 0";if(q(Ae,this._ruleFactory.createClassNameRef(ot),AR(je),tt&&!Ae.hint.paddingRight?Or.Right:Or.None,new Mu(Ae,Te)),nt)break}if(Ke!==void 0&&Ue<Ke){let Te=Ke-Ue;q(Ae,this._ruleFactory.createClassNameRef({})," ".repeat(Te),Or.None)}if(Ae.hint.paddingRight)ee(Ae,!0);if(K.length>Zc._MAX_DECORATORS)break}let ae=[];for(let[ke,Ae]of this._decorationsMetadata){let He=this._editor.getModel()?.getDecorationRange(ke);if(He&&u.some((Ke)=>Ke.containsRange(He)))ae.push(ke),Ae.classNameRef.dispose(),this._decorationsMetadata.delete(ke)}let ge=Sr.capture(this._editor);this._editor.changeDecorations((ke)=>{let Ae=ke.deltaDecorations(ae,K.map((He)=>He.decoration));for(let He=0;He<Ae.length;He++){let Ke=K[He];this._decorationsMetadata.set(Ae[He],Ke)}}),ge.restore(this._editor)}_fillInColors(u,g){if(g.kind===Ov.Parameter)u.backgroundColor=en(HI),u.color=en(jI);else if(g.kind===Ov.Type)u.backgroundColor=en(FI),u.color=en(PI);else u.backgroundColor=en(n0),u.color=en(t0)}_getLayoutInfo(){let u=this._editor.getOption(159),g=u.padding,v=this._editor.getOption(61),S=this._editor.getOption(58),y=u.fontSize;if(!y||y<5||y>v)y=v;let D=u.fontFamily||S;return{fontSize:y,fontFamily:D,padding:g,isUniform:!g&&D===S&&y===v}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(let u of this._decorationsMetadata.values())u.classNameRef.dispose();this._decorationsMetadata.clear()}};$p=Zc=PR([Gc(1,j),Gc(2,Hi),Gc(3,R1),Gc(4,Ne),Gc(5,ut),Gc(6,L)],$p);function AR(f){return f.replace(/[ \t]/g," ")}we.registerCommand("_executeInlayHintProvider",async(f,...u)=>{let[g,v]=u;Ie(W.isUri(g)),Ie(t.isIRange(v));let{inlayHintsProvider:S}=f.get(j),y=await f.get(gn).createModelReference(g);try{let D=await yd.create(S,y.object.textEditorModel,[t.lift(v)],he.None),T=D.items.map((R)=>R.hint);return setTimeout(()=>D.dispose(),0),T}finally{y.dispose()}});var FR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},xd=function(f,u){return function(g,v){u(g,v,f)}};class mw extends Ra{constructor(f,u,g,v){super(10,u,f.item.anchor.range,g,v,!0);this.part=f}}var jm=class f extends Na{constructor(u,g,v,S,y,D,T,R){super(u,g,y,T,v,S,R);this._resolverService=D,this.hoverOrdinal=6}suggestHoverAnchor(u){if(!$p.get(this._editor))return null;if(u.target.type!==6)return null;let v=u.target.detail.injectedText?.options;if(!(v instanceof Yl&&v.attachedData instanceof Mu))return null;return new mw(v.attachedData,this,u.event.posx,u.event.posy)}computeSync(){return[]}computeAsync(u,g,v,S){if(!(u instanceof mw))return Fn.EMPTY;return new Fn(async(y)=>{let{part:D}=u;if(await D.item.resolve(S),S.isCancellationRequested)return;let T;if(typeof D.item.hint.tooltip==="string")T=new wn().appendText(D.item.hint.tooltip);else if(D.item.hint.tooltip)T=D.item.hint.tooltip;if(T)y.emitOne(new Lo(this,u.range,[T],!1,0));if(Ln(D.item.hint.textEdits))y.emitOne(new Lo(this,u.range,[new wn().appendText(e(1220,"Double-click to insert"))],!1,10001));let R;if(typeof D.part.tooltip==="string")R=new wn().appendText(D.part.tooltip);else if(D.part.tooltip)R=D.part.tooltip;if(R)y.emitOne(new Lo(this,u.range,[R],!1,1));if(D.part.location||D.part.command){let q,te=this._editor.getOption(86)==="altKey"?ue?e(1221,"cmd + click"):e(1222,"ctrl + click"):ue?e(1223,"option + click"):e(1224,"alt + click");if(D.part.location&&D.part.command)q=new wn().appendText(e(1225,"Go to Definition ({0}), right click for more",te));else if(D.part.location)q=new wn().appendText(e(1226,"Go to Definition ({0})",te));else if(D.part.command)q=new wn(`[${e(1227,"Execute Command")}](${D1(D.part.command)} "${D.part.command.title}") (${te})`,{isTrusted:!0});if(q)y.emitOne(new Lo(this,u.range,[q],!1,1e4))}let K=this._resolveInlayHintLabelPartHover(D,S);for await(let q of K)y.emitOne(q)})}async*_resolveInlayHintLabelPartHover(u,g){if(!u.part.location)return;let{uri:v,range:S}=u.part.location,y=await this._resolverService.createModelReference(v);try{let D=y.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(D))return;for await(let T of Tu(this._languageFeaturesService.hoverProvider,D,new r(S.startLineNumber,S.startColumn),g))if(!ou(T.hover.contents))yield new Lo(this,u.item.anchor.range,T.hover.contents,!1,2+T.ordinal)}finally{y.dispose()}}};jm=FR([xd(1,yo),xd(2,ce),xd(3,yn),xd(4,X),xd(5,gn),xd(6,j),xd(7,Ne)],jm);var O1=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Xc=function(f,u){return function(g,v){u(g,v,f)}},fw,_w,Am=fw=class f extends n{constructor(u,g,v,S,y,D,T){super();let R=g.hoverParts;this._renderedHoverParts=this._register(new bw(u,v,R,S,y,D,T));let K=g.options,q=K.anchor,{showAtPosition:ee,showAtSecondaryPosition:te}=fw.computeHoverPositions(u,q.range,R);this.shouldAppearBeforeContent=R.some((ne)=>ne.isBeforeContent),this.showAtPosition=ee,this.showAtSecondaryPosition=te,this.initialMousePosX=q.initialMousePosX,this.initialMousePosY=q.initialMousePosY,this.shouldFocus=K.shouldFocus,this.source=K.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(u){this._renderedHoverParts.focusHoverPartWithIndex(u)}async updateHoverVerbosityLevel(u,g,v){this._renderedHoverParts.updateHoverVerbosityLevel(u,g,v)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(u,g,v){let S=1;if(u.hasModel()){let q=u._getViewModel(),ee=q.coordinatesConverter,te=ee.convertModelRangeToViewRange(g),ne=q.getLineMinColumn(te.startLineNumber),re=new r(te.startLineNumber,ne);S=ee.convertViewPositionToModelPosition(re).column}let{startLineNumber:y,startColumn:D}=g,T;for(let q of v){let ee=q.range,te=ee.startLineNumber===y,ne=ee.endLineNumber===y;if(te&&ne){let ae=ee.startColumn,ge=Math.min(D,ae);D=Math.max(ge,S)}if(q.forceShowAtRange)T=ee}let R,K;if(T){let q=T.getStartPosition();R=q,K=q}else R=g.getStartPosition(),K=new r(y,D);return{showAtPosition:R,showAtSecondaryPosition:K}}};Am=fw=O1([Xc(4,ce),Xc(5,yn),Xc(6,Xn)],Am);class P1{constructor(f,u){this._statusBar=u,f.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var bw=class f extends n{static{_w=this}static{this._DECORATION_OPTIONS=oe.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(u,g,v,S,y,D,T){super();this._hoverService=D,this._clipboardService=T,this._renderedParts=[],this._perPartDisposables=new Map,this._focusedHoverPartIndex=-1,this._context=S,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(g,v,S,y,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(u,v)),this._updateMarkdownAndColorParticipantInfo(g)}_createEditorDecorations(u,g){if(g.length===0)return n.None;let v=g[0].range;for(let y of g){let D=y.range;v=t.plusRange(v,D)}let S=u.createDecorationsCollection();return S.set([{range:v,options:_w._DECORATION_OPTIONS}]),E(()=>{S.clear()})}_renderParts(u,g,v,S,y){let D=new Pm(S,y),T={fragment:this._fragment,statusBar:D,...v},R=new c;R.add(D);for(let q of u){let ee=this._renderHoverPartsForParticipant(g,q,T);R.add(ee);for(let te of ee.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:q,hoverPart:te.hoverPart,hoverElement:te.hoverElement})}let K=this._renderStatusBar(this._fragment,D);if(K)R.add(K),this._renderedParts.push({type:"statusBar",hoverElement:K.hoverElement,actions:K.actions});return R}_renderHoverPartsForParticipant(u,g,v){let S=u.filter((D)=>D.owner===g);if(!(S.length>0))return new Jo([]);return g.renderHoverParts(v,S)}_renderStatusBar(u,g){if(!g.hasContent)return;return new P1(u,g)}_registerListenersOnRenderedParts(){return this._renderedParts.forEach((u,g)=>{this._createListenersForPart(g,u)}),E(()=>{for(let u of this._perPartDisposables.values())u.dispose();this._perPartDisposables.clear()})}_createListenersForPart(u,g){let v=new c,S=g.hoverElement;if(S.tabIndex=0,v.add(l(S,x.FOCUS_IN,(y)=>{y.stopPropagation(),this._focusedHoverPartIndex=u})),v.add(l(S,x.FOCUS_OUT,(y)=>{y.stopPropagation(),this._focusedHoverPartIndex=-1})),g.type==="hoverPart"&&!(g.hoverPart instanceof Uc)&&!g.participant.hideCopyButton)v.add(new km(S,()=>g.participant.getAccessibleContent(g.hoverPart),this._clipboardService,this._hoverService));this._perPartDisposables.set(u,v)}_updateMarkdownAndColorParticipantInfo(u){let g=u.find((v)=>v instanceof Na&&!(v instanceof jm));if(g)this._markdownHoverParticipant=g;this._colorHoverParticipant=u.find((v)=>v instanceof Fm)}focusHoverPartWithIndex(u){if(u<0||u>=this._renderedParts.length)return;this._renderedParts[u].hoverElement.focus()}async updateHoverVerbosityLevel(u,g,v){if(!this._markdownHoverParticipant)return;let S;if(g>=0)S={start:g,endExclusive:g+1};else S=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let y=S.start;y<S.endExclusive;y++){let D=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,y);if(D===void 0)continue;let T=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(u,D);if(!T)continue;let R=this._perPartDisposables.get(y);if(R)R.dispose(),this._perPartDisposables.delete(y);this._renderedParts[y]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:T.hoverPart,hoverElement:T.hoverElement},this._createListenersForPart(y,this._renderedParts[y])}if(v)if(g>=0)this.focusHoverPartWithIndex(g);else this._context.focus();this._context.onContentsChanged()}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(u,g){let v=this._renderedParts[g];if(!v||v.type!=="hoverPart")return;if(v.participant!==u)return;let y=this._renderedParts.findIndex((D)=>D.type==="hoverPart"&&D.participant===u);if(y===-1)throw new P;return g-y}_findRangeOfMarkdownHoverParts(u){let g=this._renderedParts.slice(),v=g.findIndex((D)=>D.type==="hoverPart"&&D.participant===u),S=g.reverse().findIndex((D)=>D.type==="hoverPart"&&D.participant===u),y=S>=0?g.length-S:S;return{start:v,endExclusive:y+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}};bw=_w=O1([Xc(4,ce),Xc(5,yn),Xc(6,Xn)],bw);var HR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Vm=function(f,u){return function(g,v){u(g,v,f)}},$m=class f extends n{constructor(u,g,v,S,y){super();this._editor=u,this._instantiationService=g,this._keybindingService=v,this._hoverService=S,this._clipboardService=y,this._currentResult=null,this._renderedContentHover=this._register(new ie),this._onContentsChanged=this._register(new i),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(Im,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new ku(this._editor,new Du(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){let u=[];for(let g of pa.getAll()){let v=this._instantiationService.createInstance(g,this._editor);u.push(v)}return u.sort((g,v)=>g.hoverOrdinal-v.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach((g)=>g.handleResize?.())})),this._register(this._contentHoverWidget.onDidScroll((g)=>{this._participants.forEach((v)=>v.handleScroll?.(g))})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach((g)=>g.handleContentsChanged?.())})),u}_registerListeners(){this._register(this._hoverOperation.onResult((g)=>{let v=g.hasLoadingMessage?this._addLoadingMessage(g):g.value;this._withResult(new Lm(v,g.isComplete,g.options))}));let u=this._contentHoverWidget.getDomNode();this._register(ft(u,"keydown",(g)=>{if(g.equals(9))this.hide()})),this._register(ft(u,"mouseleave",(g)=>{this._onMouseLeave(g)})),this._register(Dt.onDidChange(()=>{if(this._contentHoverWidget.position&&this._currentResult)this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(u,g,v,S,y){if(!(this._contentHoverWidget.position&&this._currentResult)){if(u)return this._startHoverOperationIfNecessary(u,g,v,S,!1),!0;return!1}let T=this._editor.getOption(69).sticky,R=y&&this._contentHoverWidget.isMouseGettingCloser(y.event.posx,y.event.posy);if(T&&R){if(u)this._startHoverOperationIfNecessary(u,g,v,S,!0);return!0}if(!u)return this._setCurrentResult(null),!1;if(this._currentResult&&this._currentResult.options.anchor.equals(u))return!0;if(!(this._currentResult&&u.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)))return this._setCurrentResult(null),this._startHoverOperationIfNecessary(u,g,v,S,!1),!0;if(this._currentResult)this._setCurrentResult(this._currentResult.filter(u));return this._startHoverOperationIfNecessary(u,g,v,S,!1),!0}_startHoverOperationIfNecessary(u,g,v,S,y){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(u))return;this._hoverOperation.cancel();let T={anchor:u,source:v,shouldFocus:S,insistOnKeepingHoverVisible:y};this._hoverOperation.start(g,T)}_setCurrentResult(u){let g=u;if(this._currentResult===g)return;if(g&&g.hoverParts.length===0)g=null;if(this._currentResult=g,this._currentResult)this._showHover(this._currentResult);else this._hideHover()}_addLoadingMessage(u){for(let g of this._participants){if(!g.createLoadingMessage)continue;let v=g.createLoadingMessage(u.options.anchor);if(!v)continue;return u.value.slice(0).concat([v])}return u.value}_withResult(u){if(!(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete))this._setCurrentResult(u);if(!u.isComplete)return;let S=u.hoverParts.length===0,y=u.options.insistOnKeepingHoverVisible;if(S&&y)return;this._setCurrentResult(u)}_showHover(u){let g=this._getHoverContext();if(this._renderedContentHover.value=new Am(this._editor,u,this._participants,g,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((u)=>u.handleHide?.())}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:(y)=>{this._contentHoverWidget.setMinimumDimensions(y)},focus:()=>this.focus()}}showsOrWillShow(u){if(this._contentHoverWidget.isResizing)return!0;if(this._isMouseOnCodeActionWidget(u))return!0;let v=this._findHoverAnchorCandidates(u);if(!(v.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,u);let y=v[0];return this._startShowingOrUpdateHover(y,0,0,!1,u)}_findHoverAnchorCandidates(u){let g=[];for(let S of this._participants){if(!S.suggestHoverAnchor)continue;let y=S.suggestHoverAnchor(u);if(!y)continue;g.push(y)}let v=u.target;switch(v.type){case 6:{g.push(new Eu(0,v.range,u.event.posx,u.event.posy));break}case 7:{let S=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!v.detail.isAfterLines&&typeof v.detail.horizontalDistanceToText==="number"&&v.detail.horizontalDistanceToText<S))break;g.push(new Eu(0,v.range,u.event.posx,u.event.posy));break}}return g.sort((S,y)=>y.priority-S.priority),g}_isMouseOnCodeActionWidget(u){let g=u.event.browserEvent.target;if(g instanceof Element&&!!g.closest(".action-widget"))return!0;return!1}_onMouseLeave(u){let g=this._editor.getDomNode();if(!g||!Da(g,u.x,u.y))this.hide()}startShowingAtRange(u,g,v,S){this._startShowingOrUpdateHover(new Eu(0,u,void 0,void 0),g,v,S,null)}async updateHoverVerbosityLevel(u,g,v){this._renderedContentHover.value?.updateHoverVerbosityLevel(u,g,v)}focusedHoverPartIndex(){return this._renderedContentHover.value?.focusedHoverPartIndex??-1}containsNode(u){return u?this._contentHoverWidget.getDomNode().contains(u):!1}focus(){if(this._renderedContentHover.value?.hoverPartsCount===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(u){this._renderedContentHover.value?.focusHoverPartWithIndex(u)}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}};$m=HR([Vm(1,L),Vm(2,ce),Vm(3,yn),Vm(4,Xn)],$m);function Mx(f){let u=f.target;return!!u&&u.type===6&&u.detail.injectedText?.options.attachedData===nw}var WR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},vw=function(f,u){return function(g,v){u(g,v,f)}},ww,ao=class f extends n{static{ww=this}static{this.ID="editor.contrib.contentHover"}constructor(u,g,v,S){super();this._editor=u,this._instantiationService=v,this._keybindingService=S,this._onHoverContentsChanged=this._register(new i),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new c,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new be(()=>{if(this._mouseMoveEvent)this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(g.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(g.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((y)=>{if(y.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}static get(u){return u.getContribution(ww.ID)}_hookListeners(){let u=this._editor.getOption(69);if(this._hoverSettings={enabled:u.enabled,sticky:u.sticky,hidingDelay:u.hidingDelay},u.enabled==="off")this._cancelSchedulerAndHide();this._listenersStore.add(this._editor.onMouseDown((g)=>this._onEditorMouseDown(g))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((g)=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown((g)=>this._onKeyDown(g))),this._listenersStore.add(this._editor.onMouseLeave((g)=>this._onEditorMouseLeave(g))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((g)=>this._onEditorScrollChanged(g)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(u){if(this._ignoreMouseEvents)return;if(u.scrollTopChanged||u.scrollLeftChanged)this.hideContentHover()}_onEditorMouseDown(u){if(this._ignoreMouseEvents)return;if(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(u))return;this.hideContentHover()}_shouldKeepHoverWidgetVisible(u){return this._isMouseOnContentHoverWidget(u)||this._isContentWidgetResizing()||Mx(u)}_isMouseOnContentHoverWidget(u){if(!this._contentWidget||!this._contentWidget.getDomNode().isConnected)return!1;return Da(this._contentWidget.getDomNode(),u.event.posx,u.event.posy)}_onEditorMouseUp(){if(this._ignoreMouseEvents)return;this._isMouseDown=!1}_onEditorMouseLeave(u){if(this._ignoreMouseEvents)return;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(u))return;this.hideContentHover()}_shouldKeepCurrentHover(u){let g=this._contentWidget;if(!g)return!1;let v=this._hoverSettings.sticky,S=(q,ee)=>{let te=this._isMouseOnContentHoverWidget(q);return ee&&te},y=(q)=>{let ee=g.isColorPickerVisible,te=this._isMouseOnContentHoverWidget(q),ne=ee&&te,re=ee&&this._isMouseDown;return ne||re},D=(q,ee)=>{let te=q.event.browserEvent.view;if(!te)return!1;return ee&&g.containsNode(te.document.activeElement)&&!te.getSelection()?.isCollapsed},{isFocused:T,isResizing:R}=g,K=this._hoverSettings.sticky&&g.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||T||R||K||S(u,v)||y(u)||D(u,v)}_onEditorMouseMove(u){if(this._ignoreMouseEvents)return;if(this._isMouseDown&&!this._shouldKeepHoverWidgetVisible(u)){this._cancelSchedulerAndHide();return}if(this._mouseMoveEvent=u,this._shouldKeepCurrentHover(u)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){if(!this._reactToEditorMouseMoveRunner.isScheduled())this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(u)}_shouldRescheduleHoverComputation(){let u=this._hoverSettings.hidingDelay;return(this._contentWidget?.isVisible??!1)&&this._hoverSettings.sticky&&u>0}_reactToEditorMouseMove(u){if(Cm(this._hoverSettings.enabled,this._editor.getOption(86),u)){if(this._getOrCreateContentWidget().showsOrWillShow(u))return}this.hideContentHover()}_onKeyDown(u){if(this._ignoreMouseEvents||!this._contentWidget)return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&Lu(this._editor.getOption(86),u)&&this._mouseMoveEvent){if(!this._contentWidget.isVisible)this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}let g=this._isPotentialKeyboardShortcut(u),v=zd(u.keyCode);if(g||v)return;if(this._contentWidget.isFocused&&u.keyCode===2)return;this.hideContentHover()}_isPotentialKeyboardShortcut(u){if(!this._editor.hasModel()||!this._contentWidget)return!1;let g=this._keybindingService.softDispatch(u,this._editor.getDomNode()),v=g.kind===1,S=g.kind===2&&(g.commandId===sm||g.commandId===gd||g.commandId===pd)&&this._contentWidget.isVisible;return v||S}hideContentHover(){if(Ms.dropDownVisible)return;this._contentWidget?.hide()}_getOrCreateContentWidget(){if(!this._contentWidget)this._contentWidget=this._instantiationService.createInstance($m,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()));return this._contentWidget}showContentHover(u,g,v,S){this._getOrCreateContentWidget().startShowingAtRange(u,g,v,S)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(u,g,v){this._getOrCreateContentWidget().updateHoverVerbosityLevel(u,g,v)}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()}};ao=ww=WR([vw(1,Dn),vw(2,L),vw(3,ce)],ao);var vr;(function(f){f.NoAutoFocus="noAutoFocus",f.FocusIfVisible="focusIfVisible",f.AutoFocusImmediately="autoFocusImmediately"})(vr||(vr={}));class Sw extends z{constructor(){super({id:sm,label:h(1165,"Show or Focus Hover"),metadata:{description:h(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:[vr.NoAutoFocus,vr.FocusIfVisible,vr.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:vr.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2087),weight:100}})}run(f,u,g){if(!u.hasModel())return;let v=ao.get(u);if(!v)return;let S=g?.focus,y=vr.FocusIfVisible;if(Object.values(vr).includes(S))y=S;else if(typeof S==="boolean"&&S)y=vr.AutoFocusImmediately;let D=(R)=>{let K=u.getPosition(),q=new t(K.lineNumber,K.column,K.lineNumber,K.column);v.showContentHover(q,1,2,R)},T=u.getOption(2)===2;if(v.isHoverVisible)if(y!==vr.NoAutoFocus)v.focus();else D(T);else D(T||y===vr.AutoFocusImmediately)}}class Cw extends z{constructor(){super({id:jk,label:h(1167,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:h(1168,"Show the definition preview hover in the editor.")}})}run(f,u){let g=ao.get(u);if(!g)return;let v=u.getPosition();if(!v)return;let S=new t(v.lineNumber,v.column,v.lineNumber,v.column),y=Mc.get(u);if(!y)return;y.startFindDefinitionFromCursor(v).then(()=>{g.showContentHover(S,1,2,!0)})}}class yw extends z{constructor(){super({id:$k,label:h(1169,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(f,u){ao.get(u)?.hideContentHover()}}class xw extends z{constructor(){super({id:Gk,label:h(1170,"Scroll Up Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:16,weight:100},metadata:{description:h(1171,"Scroll up the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.scrollUp()}}class Iw extends z{constructor(){super({id:Zk,label:h(1172,"Scroll Down Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:18,weight:100},metadata:{description:h(1173,"Scroll down the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.scrollDown()}}class Lw extends z{constructor(){super({id:Xk,label:h(1174,"Scroll Left Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:15,weight:100},metadata:{description:h(1175,"Scroll left the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.scrollLeft()}}class kw extends z{constructor(){super({id:Yk,label:h(1176,"Scroll Right Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:17,weight:100},metadata:{description:h(1177,"Scroll right the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.scrollRight()}}class Ew extends z{constructor(){super({id:Jk,label:h(1178,"Page Up Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:h(1179,"Page up the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.pageUp()}}class Dw extends z{constructor(){super({id:Qk,label:h(1180,"Page Down Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:h(1181,"Page down the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.pageDown()}}class Tw extends z{constructor(){super({id:e1,label:h(1182,"Go To Top Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:h(1183,"Go to the top of the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.goToTop()}}class Rw extends z{constructor(){super({id:t1,label:h(1184,"Go To Bottom Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:h(1185,"Go to the bottom of the editor hover.")}})}run(f,u){let g=ao.get(u);if(!g)return;g.goToBottom()}}class Nw extends z{constructor(){super({id:gd,label:i1,alias:"Increase Hover Verbosity Level",precondition:o.hoverVisible})}run(f,u,g){let v=ao.get(u);if(!v)return;let S=g?.index!==void 0?g.index:v.focusedHoverPartIndex();v.updateHoverVerbosityLevel(Rr.Increase,S,g?.focus)}}class Mw extends z{constructor(){super({id:pd,label:o1,alias:"Decrease Hover Verbosity Level",precondition:o.hoverVisible})}run(f,u,g){let v=ao.get(u);if(!v)return;let S=g?.index!==void 0?g.index:v.focusedHoverPartIndex();ao.get(u)?.updateHoverVerbosityLevel(Rr.Decrease,S,g?.focus)}}var BR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ou=function(f,u){return function(g,v){u(g,v,f)}},Tn=m;class F1{constructor(f,u,g){this.owner=f,this.range=u,this.marker=g}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}var A1={type:1,filter:{include:zt.QuickFix},triggerAction:ji.QuickFixHover},Jm=class f{constructor(u,g,v,S,y,D){this._editor=u,this._markerDecorationsService=g,this._openerService=v,this._languageFeaturesService=S,this._menuService=y,this._contextKeyService=D,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(u,g){if(!this._editor.hasModel()||u.type!==1&&!u.supportsMarkerHover)return[];let v=this._editor.getModel(),S=u.range;if(!v.isValidRange(u.range))return[];let y=S.startLineNumber,D=v.getLineMaxColumn(y),T=[];for(let R of g){let K=R.range.startLineNumber===y?R.range.startColumn:1,q=R.range.endLineNumber===y?R.range.endColumn:D,ee=this._markerDecorationsService.getMarker(v.uri,R);if(!ee)continue;let te=new t(u.range.startLineNumber,K,u.range.startLineNumber,q);T.push(new F1(this,te,ee))}return T}renderHoverParts(u,g){if(!g.length)return new Jo([]);let v=[];g.forEach((D)=>{let T=this._renderMarkerHover(D);u.fragment.appendChild(T.hoverElement),v.push(T)});let S=g.length===1?g[0]:g.sort((D,T)=>Ut.compare(D.marker.severity,T.marker.severity))[0],y=this._renderMarkerStatusbar(u,S);return new Jo(v,y)}getAccessibleContent(u){let{marker:g}=u,v=Ln(g.relatedInformation)?g.relatedInformation.map((S)=>`${hi(S.resource)}(${S.startLineNumber}, ${S.startColumn}): ${S.message}`).join(`
|
|
32
|
-
`):void 0;return[g.message,v].filter((S)=>!!S).join(`
|
|
33
|
-
`)}_renderMarkerHover(u){let g=new c,v=Tn("div.hover-row"),S=w(v,Tn("div.marker.hover-contents")),{source:y,message:D,code:T,relatedInformation:R}=u.marker;this._editor.applyFontInfo(S);let K=w(S,Tn("span"));if(K.style.whiteSpace="pre-wrap",K.innerText=D,y||T)if(T&&typeof T!=="string"){let ee=Tn("span");if(y){let ae=w(ee,Tn("span"));ae.innerText=y}let te=w(ee,Tn("a.code-link"));te.setAttribute("href",T.target.toString(!0)),g.add(l(te,"click",(ae)=>{this._openerService.open(T.target),ae.preventDefault(),ae.stopPropagation()}));let ne=w(te,Tn("span"));ne.innerText=T.value;let re=w(S,ee);re.style.opacity="0.6",re.style.paddingLeft="6px"}else{let ee=w(S,Tn("span"));ee.style.opacity="0.6",ee.style.paddingLeft="6px",ee.innerText=y&&T?`${y}(${T})`:y?y:`(${T})`}if(Ln(R))for(let{message:ee,resource:te,startLineNumber:ne,startColumn:re}of R){let ae=w(S,Tn("div"));ae.style.marginTop="8px";let ge=w(ae,Tn("a"));ge.innerText=`${hi(te)}(${ne}, ${re}): `,ge.style.cursor="pointer",g.add(l(ge,"click",(Ae)=>{if(Ae.stopPropagation(),Ae.preventDefault(),this._openerService){let He={selection:{startLineNumber:ne,startColumn:re}};this._openerService.open(te,{fromUserGesture:!0,editorOptions:He}).catch(J)}}));let ke=w(ae,Tn("span"));ke.innerText=ee,this._editor.applyFontInfo(ke)}return{hoverPart:u,hoverElement:v,dispose:()=>g.dispose()}}_renderMarkerStatusbar(u,g){let v=new c;if(g.marker.severity===Ut.Error||g.marker.severity===Ut.Warning||g.marker.severity===Ut.Info){let D=sa.get(this._editor);if(D)u.statusBar.addAction({label:e(1195,"View Problem"),commandId:Ls.ID,run:()=>{u.hide(),D.showAtMarker(g.marker),this._editor.focus()}})}let S=[];for(let[,D]of this._menuService.getMenuActions(a.MarkerHoverStatusBar,this._contextKeyService))for(let T of D)if(T instanceof ki&&T.enabled)S.push(T);let y=()=>{for(let D of S)u.statusBar.addAction({label:D.label,commandId:D.id,iconClass:D.class,run:()=>{u.hide(),this._editor.setSelection(t.lift(g.range)),D.run()}})};if(!this._editor.getOption(104)){let D=u.statusBar.append(Tn("div"));if(this.recentMarkerCodeActionsInfo)if(wy.makeKey(this.recentMarkerCodeActionsInfo.marker)===wy.makeKey(g.marker)){if(!this.recentMarkerCodeActionsInfo.hasCodeActions){if(S.length===0)D.textContent=e(1196,"No quick fixes available")}}else this.recentMarkerCodeActionsInfo=void 0;let T=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?n.None:Jn(()=>D.textContent=e(1197,"Checking for quick fixes..."),200,v);if(!D.textContent)D.textContent=String.fromCharCode(160);let R=this.getCodeActions(g.marker);v.add(E(()=>R.cancel())),R.then((K)=>{if(T.dispose(),this.recentMarkerCodeActionsInfo={marker:g.marker,hasCodeActions:K.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){if(K.dispose(),S.length===0)D.textContent=e(1198,"No quick fixes available");else D.style.display="none";y();return}D.style.display="none";let q=!1;v.add(E(()=>{if(!q)K.dispose()})),u.statusBar.addAction({label:e(1199,"Quick Fix..."),commandId:da,run:(te)=>{q=!0;let ne=ss.get(this._editor),re=mt(te);ne?.showCodeActions(A1,K,{x:re.left,y:re.top,width:re.width,height:re.height})}});let ee=K.validActions.find((te)=>te.action.isAI);if(ee)u.statusBar.addAction({label:ee.action.title,commandId:ee.action.command?.id??"",iconClass:G.asClassName(b.sparkle),run:()=>{ss.get(this._editor)?.applyCodeAction(ee,!1,!1,rs.FromProblemsHover)}});else y();u.onContentsChanged()},J)}else y();return v}getCodeActions(u){return Pt((g)=>ca(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new t(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn),A1,Zs.None,g))}};Jm=BR([Ou(1,ig),Ou(2,To),Ou(3,j),Ou(4,ui),Ou(5,V)],Jm);class Ow{constructor(f){this._editor=f}computeSync(f){let u=(y)=>({value:y}),g=this._editor.getLineDecorations(f.lineNumber),v=[],S=f.laneOrLine==="lineNo";if(!g)return v;for(let y of g){let D=y.options.glyphMargin?.position??xr.Center;if(!S&&D!==f.laneOrLine)continue;let T=S?y.options.lineNumberHoverMessage:y.options.glyphMarginHoverMessage;if(!T||ou(T))continue;v.push(...Bm(T).map(u))}return v}}var VR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},zR=function(f,u){return function(g,v){u(g,v,f)}},Pw,H1=m,sf=class f extends n{static{Pw=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(u,g){super();this._markdownRendererService=g,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new c),this._editor=u,this._isVisible=!1,this._messages=[],this._hover=this._register(new of(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new ku(this._editor,new Ow(this._editor))),this._register(this._hoverOperation.onResult((v)=>this._withResult(v))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(59))this._updateFont()})),this._register(ft(this._hover.containerDomNode,"mouseleave",(v)=>{this._onMouseLeave(v)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Pw.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((g)=>this._editor.applyFontInfo(g))}_onModelDecorationsChanged(){if(this._isVisible&&this._hoverComputerOptions)this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions)}showsOrWillShow(u){let g=u.target;if(g.type===2&&g.detail.glyphMarginLane)return this._startShowingAt(g.position.lineNumber,g.detail.glyphMarginLane),!0;if(g.type===3)return this._startShowingAt(g.position.lineNumber,"lineNo"),!0;return!1}_startShowingAt(u,g){if(this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===u&&this._hoverComputerOptions.laneOrLine===g)return;this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:u,laneOrLine:g},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(u){if(this._messages=u.value,this._messages.length>0)this._renderMessages(u.options.lineNumber,u.options.laneOrLine,this._messages);else this.hide()}_renderMessages(u,g,v){this._renderDisposeables.clear();let S=document.createDocumentFragment();for(let y of v){let D=H1("div.hover-row.markdown-hover"),T=w(D,H1("div.hover-contents")),R=this._renderDisposeables.add(this._markdownRendererService.render(y.value,{context:this._editor}));T.appendChild(R.element),S.appendChild(D)}this._updateContents(S),this._showAt(u,g)}_updateContents(u){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(u),this._updateFont()}_showAt(u,g){if(!this._isVisible)this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible);let v=this._editor.getLayoutInfo(),S=this._editor.getTopForLineNumber(u),y=this._editor.getScrollTop(),D=this._editor.getOption(75),T=this._hover.containerDomNode.clientHeight,R=S-y-(T-D)/2,K=v.glyphMarginLeft+v.glyphMarginWidth+(g==="lineNo"?v.lineNumbersWidth:0),ee=v.height-T,te=Math.max(0,Math.min(Math.round(R),ee));if(this._editor.getOption(51)){let re=this._editor.getDomNode();if(re){let ae=mt(re);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${ae.left+K}px`,this._hover.containerDomNode.style.top=`${ae.top+te}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${K}px`,this._hover.containerDomNode.style.top=`${te}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(u){let g=this._editor.getDomNode();if(!g||!Da(g,u.x,u.y))this.hide()}};sf=Pw=VR([zR(1,yo)],sf);var KR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},UR=function(f,u){return function(g,v){u(g,v,f)}},Pu=class f extends n{static{this.ID="editor.contrib.marginHover"}constructor(u,g){super();this._editor=u,this._instantiationService=g,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new c,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new be(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}_hookListeners(){let u=this._editor.getOption(69);if(this._hoverSettings={enabled:u.enabled,sticky:u.sticky,hidingDelay:u.hidingDelay},u.enabled!=="off")this._listenersStore.add(this._editor.onMouseDown((g)=>this._onEditorMouseDown(g))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((g)=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown((g)=>this._onKeyDown(g)));else this._listenersStore.add(this._editor.onMouseMove((g)=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown((g)=>this._onKeyDown(g)));this._listenersStore.add(this._editor.onMouseLeave((g)=>this._onEditorMouseLeave(g))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((g)=>this._onEditorScrollChanged(g)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(u){if(u.scrollTopChanged||u.scrollLeftChanged)this.hideGlyphHover()}_onEditorMouseDown(u){if(this._hoverState.mouseDown=!0,this._isMouseOnGlyphHoverWidget(u))return;this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(u){let g=this._glyphWidget?.getDomNode();if(g)return Da(g,u.event.posx,u.event.posy);return!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(u){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(u))return;this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(u){let g=this._hoverSettings.sticky,v=this._isMouseOnGlyphHoverWidget(u);return g&&v}_onEditorMouseMove(u){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=u,this._shouldNotRecomputeCurrentHoverWidget(u)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(u)}_reactToEditorMouseMove(u){if(!u)return;if(!Cm(this._hoverSettings.enabled,this._editor.getOption(86),u)){this.hideGlyphHover();return}if(this._tryShowHoverWidget(u))return;this.hideGlyphHover()}_tryShowHoverWidget(u){return this._getOrCreateGlyphWidget().showsOrWillShow(u)}_onKeyDown(u){if(!this._editor.hasModel())return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&Lu(this._editor.getOption(86),u)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}if(zd(u.keyCode))return;this.hideGlyphHover()}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){if(!this._glyphWidget)this._glyphWidget=this._instantiationService.createInstance(sf,this._editor);return this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};Pu=KR([UR(1,L)],Pu);var Yc=new class f{constructor(){this._implementations=[]}register(u){return this._implementations.push(u),{dispose:()=>{let g=this._implementations.indexOf(u);if(g!==-1)this._implementations.splice(g,1)}}}getImplementations(){return this._implementations}};class Aw{}class Fw{}class Hw{}le(ao.ID,ao,2);le(Pu.ID,Pu,2);I(Sw);I(Cw);I(yw);I(xw);I(Iw);I(Lw);I(kw);I(Ew);I(Dw);I(Tw);I(Rw);I(Nw);I(Mw);pa.register(Na);pa.register(Jm);we.registerCommand(_u,(f)=>{f.get(X).updateValue("editor.hover.showLongLineWarning",!1)});oi((f,u)=>{let g=f.getColor(xh);if(g)u.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${g.transparent(0.5)}; }`),u.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${g.transparent(0.5)}; }`),u.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${g.transparent(0.5)}; }`)});Yc.register(new Aw);Yc.register(new Fw);Yc.register(new Hw);class W1{constructor(f,u){this._link=f,this._provider=u}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(f){if(this._link.url)return this._link.url;if(typeof this._provider.resolveLink==="function")return Promise.resolve(this._provider.resolveLink(this._link,f)).then((u)=>{if(this._link=u||this._link,this._link.url)return this.resolve(f);return Promise.reject(Error("missing"))});return Promise.reject(Error("missing"))}}class Au{static{this.Empty=new Au([])}constructor(f){this._disposables=new c;let u=[];for(let[g,v]of f){let S=g.links.map((y)=>new W1(y,v));if(u=Au._union(u,S),ms(g))this._disposables??=new c,this._disposables.add(g)}this.links=u}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(f,u){let g=[],v,S,y,D;for(v=0,y=0,S=f.length,D=u.length;v<S&&y<D;){let T=f[v],R=u[y];if(t.areIntersectingOrTouching(T.range,R.range)){v++;continue}if(t.compareRangesUsingStarts(T.range,R.range)<0)g.push(T),v++;else g.push(R),y++}for(;v<S;v++)g.push(f[v]);for(;y<D;y++)g.push(u[y]);return g}}async function Ww(f,u,g){let v=[],S=f.ordered(u).reverse().map(async(D,T)=>{try{let R=await D.provideLinks(u,g);if(R)v[T]=[R,D]}catch(R){dt(R)}});await Promise.all(S);let y=new Au(Zi(v));if(g.isCancellationRequested)y.dispose(),y=Au.Empty;return y}we.registerCommand("_executeLinkProvider",async(f,...u)=>{let[g,v]=u;if(Ie(g instanceof W),typeof v!=="number")v=0;let{linkProvider:S}=f.get(j),y=f.get(gt).getModel(g);if(!y)return[];let D=await Ww(S,y,he.None);if(!D)return[];for(let R=0;R<Math.min(v,D.links.length);R++)await D.links[R].resolve(he.None);let T=D.links.slice(0);return D.dispose(),T});var qR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},af=function(f,u){return function(g,v){u(g,v,f)}},Bw,Fu=class f extends n{static{Bw=this}static{this.ID="editor.linkDetector"}static get(u){return u.getContribution(Bw.ID)}constructor(u,g,v,S,y){super();this.editor=u,this.openerService=g,this.notificationService=v,this.languageFeaturesService=S,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=y.for(this.providers,"Links",{min:1000,max:4000}),this.computeLinks=this._register(new be(()=>this.computeLinksNow(),1000)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;let D=this._register(new Rs(u));this._register(D.onMouseMoveOrRelevantKeyDown(([T,R])=>{this._onEditorMouseMove(T,R)})),this._register(D.onExecute((T)=>{this.onEditorMouseUp(T)})),this._register(D.onCancel((T)=>{this.cleanUpActiveLinkDecoration()})),this._register(u.onDidChangeConfiguration((T)=>{if(!T.hasChanged(79))return;this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0)})),this._register(u.onDidChangeModelContent((T)=>{if(!this.editor.hasModel())return;this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(u.onDidChangeModel((T)=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(u.onDidChangeModelLanguage((T)=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange((T)=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;let u=this.editor.getModel();if(u.isTooLargeForSyncing())return;if(!this.providers.has(u))return;if(this.activeLinksList)this.activeLinksList.dispose(),this.activeLinksList=null;this.computePromise=Pt((g)=>Ww(this.providers,u,g));try{let g=new Kt(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(u,g.elapsed()),u.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(g){J(g)}finally{this.computePromise=null}}updateDecorations(u){let g=this.editor.getOption(86)==="altKey",v=[],S=Object.keys(this.currentOccurrences);for(let D of S){let T=this.currentOccurrences[D];v.push(T.decorationId)}let y=[];if(u)for(let D of u)y.push(Jc.decoration(D,g));this.editor.changeDecorations((D)=>{let T=D.deltaDecorations(v,y);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let R=0,K=T.length;R<K;R++){let q=new Jc(u[R],T[R]);this.currentOccurrences[q.decorationId]=q}})}_onEditorMouseMove(u,g){let v=this.editor.getOption(86)==="altKey";if(this.isEnabled(u,g)){this.cleanUpActiveLinkDecoration();let S=this.getLinkOccurrence(u.target.position);if(S)this.editor.changeDecorations((y)=>{S.activate(y,v),this.activeLinkDecorationId=S.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){let u=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){let g=this.currentOccurrences[this.activeLinkDecorationId];if(g)this.editor.changeDecorations((v)=>{g.deactivate(v,u)});this.activeLinkDecorationId=null}}onEditorMouseUp(u){if(!this.isEnabled(u))return;let g=this.getLinkOccurrence(u.target.position);if(!g)return;this.openLinkOccurrence(g,u.hasSideBySideModifier,!0)}openLinkOccurrence(u,g,v=!1){if(!this.openerService)return;let{link:S}=u;S.resolve(he.None).then((y)=>{if(typeof y==="string"&&this.editor.hasModel()){let D=this.editor.getModel().uri;if(D.scheme===Q.file&&y.startsWith(`${Q.file}:`)){let T=W.parse(y);if(T.scheme===Q.file){let R=Vl(T),K=null;if(R.startsWith("/./")||R.startsWith("\\.\\"))K=`.${R.substr(1)}`;else if(R.startsWith("//./")||R.startsWith("\\\\.\\"))K=`.${R.substr(2)}`;if(K)y=Jx(D,K)}}}return this.openerService.open(y,{openToSide:g,fromUserGesture:v,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},(y)=>{let D=y instanceof Error?y.message:y;if(D==="invalid")this.notificationService.warn(e(1343,"Failed to open this link because it is not well-formed: {0}",S.url.toString()));else if(D==="missing")this.notificationService.warn(e(1344,"Failed to open this link because its target is missing."));else J(y)})}getLinkOccurrence(u){if(!this.editor.hasModel()||!u)return null;let g=this.editor.getModel().getDecorationsInRange({startLineNumber:u.lineNumber,startColumn:u.column,endLineNumber:u.lineNumber,endColumn:u.column},0,!0);for(let v of g){let S=this.currentOccurrences[v.id];if(S)return S}return null}isEnabled(u,g){return Boolean(u.target.type===6&&(u.hasTriggerModifier||g&&g.keyCodeIsTriggerKey||u.isMiddleClick&&u.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()}};Fu=Bw=qR([af(1,To),af(2,ut),af(3,j),af(4,Hi)],Fu);var B1={general:oe.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:oe.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class Jc{static decoration(f,u){return{range:f.range,options:Jc._getOptions(f,u,!1)}}static _getOptions(f,u,g){let v={...g?B1.active:B1.general};return v.hoverMessage=jR(f,u),v}constructor(f,u){this.link=f,this.decorationId=u}activate(f,u){f.changeDecorationOptions(this.decorationId,Jc._getOptions(this.link,u,!0))}deactivate(f,u){f.changeDecorationOptions(this.decorationId,Jc._getOptions(this.link,u,!1))}}function jR(f,u){let g=f.url&&/^command:/i.test(f.url.toString()),v=f.tooltip?f.tooltip:g?e(1345,"Execute command"):e(1346,"Follow link"),S=u?ue?e(1347,"cmd + click"):e(1348,"ctrl + click"):ue?e(1349,"option + click"):e(1350,"alt + click");if(f.url){let y="";if(/^command:/i.test(f.url.toString())){let T=f.url.toString().match(/^command:([^?#]+)/);if(T){let R=T[1];y=e(1351,"Execute command {0}",R)}}return new wn("",!0).appendLink(f.url.toString(!0).replace(/ /g,"%20"),v,y).appendMarkdown(` (${S})`)}else return new wn().appendText(`${v} (${S})`)}class V1 extends z{constructor(){super({id:"editor.action.openLink",label:h(1352,"Open Link"),precondition:void 0})}run(f,u){let g=Fu.get(u);if(!g)return;if(!u.hasModel())return;let v=u.getSelections();for(let S of v){let y=g.getLinkOccurrence(S.getEndPosition());if(y)g.openLinkOccurrence(y,!1)}}}le(Fu.ID,Fu,1);I(V1);var Os={Visible:new A("parameterHintsVisible",!1),MultipleSignatures:new A("parameterHintsMultipleSignatures",!1)};async function Vw(f,u,g,v,S){let y=f.ordered(u);for(let D of y)try{let T=await D.provideSignatureHelp(u,g,S,v);if(T)return T}catch(T){dt(T)}return}we.registerCommand("_executeSignatureHelpProvider",async(f,...u)=>{let[g,v,S]=u;Ie(W.isUri(g)),Ie(r.isIPosition(v)),Ie(typeof S==="string"||!S);let y=f.get(j),D=await f.get(gn).createModelReference(g);try{let T=await Vw(y.signatureHelpProvider,D.object.textEditorModel,r.lift(v),{triggerKind:ga.Invoke,isRetrigger:!1,triggerCharacter:S},he.None);if(!T)return;return setTimeout(()=>T.dispose(),0),T.value}finally{D.dispose()}});var Ma;(function(f){f.Default={type:0};class u{constructor(v,S){this.request=v,this.previouslyActiveHints=S,this.type=2}}f.Pending=u;class g{constructor(v){this.hints=v,this.type=1}}f.Active=g})(Ma||(Ma={}));class hf extends n{static{this.DEFAULT_DELAY=120}constructor(f,u,g=hf.DEFAULT_DELAY){super();this._onChangedHints=this._register(new i),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Ma.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ie),this.triggerChars=new fh,this.retriggerChars=new fh,this.triggerId=0,this.editor=f,this.providers=u,this.throttledDelayer=this._register(new Ci(g)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel((v)=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage((v)=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection((v)=>this.onCursorChange(v))),this._register(this.editor.onDidChangeModelContent((v)=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((v)=>this.onDidType(v))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(f){if(this._state.type===2)this._state.request.cancel();this._state=f}cancel(f=!1){if(this.state=Ma.Default,this.throttledDelayer.cancel(),!f)this._onChangedHints.fire(void 0)}trigger(f,u){let g=this.editor.getModel();if(!g||!this.providers.has(g))return;let v=++this.triggerId;this._pendingTriggers.push(f),this.throttledDelayer.trigger(()=>this.doTrigger(v),u).catch(J)}next(){if(this.state.type!==1)return;let f=this.state.hints.signatures.length,u=this.state.hints.activeSignature,g=u%f===f-1,v=this.editor.getOption(98).cycle;if((f<2||g)&&!v){this.cancel();return}this.updateActiveSignature(g&&v?0:u+1)}previous(){if(this.state.type!==1)return;let f=this.state.hints.signatures.length,u=this.state.hints.activeSignature,g=u===0,v=this.editor.getOption(98).cycle;if((f<2||g)&&!v){this.cancel();return}this.updateActiveSignature(g&&v?f-1:u-1)}updateActiveSignature(f){if(this.state.type!==1)return;this.state=new Ma.Active({...this.state.hints,activeSignature:f}),this._onChangedHints.fire(this.state.hints)}async doTrigger(f){let u=this.state.type===1||this.state.type===2,g=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;let v=this._pendingTriggers.reduce($R);this._pendingTriggers=[];let S={triggerKind:v.triggerKind,triggerCharacter:v.triggerCharacter,isRetrigger:u,activeSignatureHelp:g};if(!this.editor.hasModel())return!1;let y=this.editor.getModel(),D=this.editor.getPosition();this.state=new Ma.Pending(Pt((T)=>Vw(this.providers,y,D,S,T)),g);try{let T=await this.state.request;if(f!==this.triggerId)return T?.dispose(),!1;if(!T||!T.value.signatures||T.value.signatures.length===0)return T?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1;else return this.state=new Ma.Active(T.value),this._lastSignatureHelpResult.value=T,this._onChangedHints.fire(this.state.hints),!0}catch(T){if(f===this.triggerId)this.state=Ma.Default;return J(T),!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 f=this.editor.getModel();if(!f)return;for(let u of this.providers.ordered(f)){for(let g of u.signatureHelpTriggerCharacters||[])if(g.length){let v=g.charCodeAt(0);this.triggerChars.add(v),this.retriggerChars.add(v)}for(let g of u.signatureHelpRetriggerCharacters||[])if(g.length)this.retriggerChars.add(g.charCodeAt(0))}}onDidType(f){if(!this.triggerOnType)return;let u=f.length-1,g=f.charCodeAt(u);if(this.triggerChars.has(g)||this.isTriggered&&this.retriggerChars.has(g))this.trigger({triggerKind:ga.TriggerCharacter,triggerCharacter:f.charAt(u)})}onCursorChange(f){if(f.source==="mouse")this.cancel();else if(this.isTriggered)this.trigger({triggerKind:ga.ContentChange})}onModelContentChange(){if(this.isTriggered)this.trigger({triggerKind:ga.ContentChange})}onEditorConfigurationChange(){if(this.triggerOnType=this.editor.getOption(98).enabled,!this.triggerOnType)this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function $R(f,u){switch(u.triggerKind){case ga.Invoke:return u;case ga.ContentChange:return f;case ga.TriggerCharacter:default:return u}}var GR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},z1=function(f,u){return function(g,v){u(g,v,f)}},zw,Uo=m,ZR=Tt("parameter-hints-next",b.chevronDown,e(1378,"Icon for show next parameter hint.")),XR=Tt("parameter-hints-previous",b.chevronUp,e(1379,"Icon for show previous parameter hint.")),uf=class f extends n{static{zw=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(u,g,v,S){super();this.editor=u,this.model=g,this.markdownRendererService=S,this.renderDisposeables=this._register(new c),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=Os.Visible.bindTo(v),this.keyMultipleSignatures=Os.MultipleSignatures.bindTo(v)}createParameterHintDOMNodes(){let u=Uo(".editor-widget.parameter-hints-widget"),g=w(u,Uo(".phwrapper"));g.tabIndex=-1;let v=w(g,Uo(".controls")),S=w(v,Uo(".button"+G.asCSSSelector(XR))),y=w(v,Uo(".overloads")),D=w(v,Uo(".button"+G.asCSSSelector(ZR)));this._register(l(S,"click",(te)=>{ve.stop(te),this.previous()})),this._register(l(D,"click",(te)=>{ve.stop(te),this.next()}));let T=Uo(".body"),R=new ka(T,{alwaysConsumeMouseWheel:!0});this._register(R),g.appendChild(R.getDomNode());let K=w(T,Uo(".signature")),q=w(T,Uo(".docs"));u.style.userSelect="text",this.domNodes={element:u,signature:K,overloads:y,docs:q,scrollbar:R},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((te)=>{if(this.visible)this.editor.layoutContentWidget(this)}));let ee=()=>{if(!this.domNodes)return;let te=this.editor.getOption(59),ne=this.domNodes.element;ne.style.fontSize=`${te.fontSize}px`,ne.style.lineHeight=`${te.lineHeight/te.fontSize}`,ne.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",te.fontFamily),ne.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",co.fontFamily)};ee(),this._register(C.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(te)=>te.filter((ne)=>ne.hasChanged(59)))(ee)),this._register(this.editor.onDidLayoutChange((te)=>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(u){if(this.renderDisposeables.clear(),!this.domNodes)return;let g=u.signatures.length>1;this.domNodes.element.classList.toggle("multiple",g),this.keyMultipleSignatures.set(g),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";let v=u.signatures[u.activeSignature];if(!v)return;let S=w(this.domNodes.signature,Uo(".code")),y=v.parameters.length>0,D=v.activeParameter??u.activeParameter;if(!y){let K=w(S,Uo("span"));K.textContent=v.label}else this.renderParameters(S,v,D);let T=v.parameters[D];if(T?.documentation){let K=Uo("span.documentation");if(typeof T.documentation==="string")K.textContent=T.documentation;else{let q=this.renderMarkdownDocs(T.documentation);K.appendChild(q.element)}w(this.domNodes.docs,Uo("p",{},K))}if(v.documentation===void 0);else if(typeof v.documentation==="string")w(this.domNodes.docs,Uo("p",{},v.documentation));else{let K=this.renderMarkdownDocs(v.documentation);w(this.domNodes.docs,K.element)}let R=this.hasDocs(v,T);if(this.domNodes.signature.classList.toggle("has-docs",R),this.domNodes.docs.classList.toggle("empty",!R),this.domNodes.overloads.textContent=String(u.activeSignature+1).padStart(u.signatures.length.toString().length,"0")+"/"+u.signatures.length,T){let K="",q=v.parameters[D];if(Array.isArray(q.label))K=v.label.substring(q.label[0],q.label[1]);else K=q.label;if(q.documentation)K+=typeof q.documentation==="string"?`, ${q.documentation}`:`, ${q.documentation.value}`;if(v.documentation)K+=typeof v.documentation==="string"?`, ${v.documentation}`:`, ${v.documentation.value}`;if(this.announcedLabel!==K)En(e(1380,"{0}, hint",K)),this.announcedLabel=K}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(u){let g=this.renderDisposeables.add(this.markdownRendererService.render(u,{context:this.editor,asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));return g.element.classList.add("markdown-docs"),g}hasDocs(u,g){if(g&&typeof g.documentation==="string"&&Xa(g.documentation).length>0)return!0;if(g&&typeof g.documentation==="object"&&Xa(g.documentation).value.length>0)return!0;if(u.documentation&&typeof u.documentation==="string"&&Xa(u.documentation).length>0)return!0;if(u.documentation&&typeof u.documentation==="object"&&Xa(u.documentation.value).length>0)return!0;return!1}renderParameters(u,g,v){let[S,y]=this.getParameterLabelOffsets(g,v),D=document.createElement("span");D.textContent=g.label.substring(0,S);let T=document.createElement("span");T.textContent=g.label.substring(S,y),T.className="parameter active";let R=document.createElement("span");R.textContent=g.label.substring(y),w(u,D,T,R)}getParameterLabelOffsets(u,g){let v=u.parameters[g];if(!v)return[0,0];else if(Array.isArray(v.label))return v.label;else if(!v.label.length)return[0,0];else{let S=new RegExp(`(\\W|^)${_i(v.label)}(?=\\W|$)`,"g");S.test(u.label);let y=S.lastIndex-v.label.length;return y>=0?[y,S.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 zw.ID}updateMaxHeight(){if(!this.domNodes)return;let g=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=g;let v=this.domNodes.element.getElementsByClassName("phwrapper");if(v.length)v[0].style.maxHeight=g}};uf=zw=GR([z1(2,V),z1(3,yo)],uf);s("editorHoverWidget.highlightForeground",_h,e(1381,"Foreground color of the active item in the parameter hint."));var YR=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},K1=function(f,u){return function(g,v){u(g,v,f)}},Kw,Qc=class f extends n{static{Kw=this}static{this.ID="editor.controller.parameterHints"}static get(u){return u.getContribution(Kw.ID)}constructor(u,g,v){super();this.editor=u,this.model=this._register(new hf(u,v.signatureHelpProvider)),this._register(this.model.onChangedHints((S)=>{if(S)this.widget.value.show(),this.widget.value.render(S);else this.widget.rawValue?.hide()})),this.widget=new Pn(()=>this._register(g.createInstance(uf,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(u){this.model.trigger(u,0)}};Qc=Kw=YR([K1(1,L),K1(2,j)],Qc);class U1 extends z{constructor(){super({id:"editor.action.triggerParameterHints",label:h(1377,"Trigger Parameter Hints"),precondition:o.hasSignatureHelpProvider,kbOpts:{kbExpr:o.editorTextFocus,primary:3082,weight:100}})}run(f,u){Qc.get(u)?.trigger({triggerKind:ga.Invoke})}}le(Qc.ID,Qc,2);I(U1);var Uw=175,qw=Bt.bindToContribution(Qc.get);U(new qw({id:"closeParameterHints",precondition:Os.Visible,handler:(f)=>f.cancel(),kbOpts:{weight:Uw,kbExpr:o.focus,primary:9,secondary:[1033]}}));U(new qw({id:"showPrevParameterHint",precondition:_.and(Os.Visible,Os.MultipleSignatures),handler:(f)=>f.previous(),kbOpts:{weight:Uw,kbExpr:o.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));U(new qw({id:"showNextParameterHint",precondition:_.and(Os.Visible,Os.MultipleSignatures),handler:(f)=>f.next(),kbOpts:{weight:Uw,kbExpr:o.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var rt={Visible:ap,HasFocusedSuggestion:new A("suggestWidgetHasFocusedSuggestion",!1,e(1525,"Whether any suggestion is focused")),DetailsVisible:new A("suggestWidgetDetailsVisible",!1,e(1526,"Whether suggestion details are visible")),DetailsFocused:new A("suggestWidgetDetailsFocused",!1,e(1527,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new A("suggestWidgetMultipleSuggestions",!1,e(1528,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new A("suggestionMakesTextEdit",!0,e(1529,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new A("acceptSuggestionOnEnter",!0,e(1530,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new A("suggestionHasInsertAndReplaceRange",!1,e(1531,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new A("suggestionInsertMode",void 0,{type:"string",description:e(1532,"Whether the default behaviour is to insert or replace")}),CanResolve:new A("suggestionCanResolve",!1,e(1533,"Whether the current suggestion supports to resolve further details"))},Lr=new a("suggestWidgetStatusBar");class q1{constructor(f,u,g,v){if(this.position=f,this.completion=u,this.container=g,this.provider=v,this.isInvalid=!1,this.score=Cr.Default,this.distance=0,this.textLabel=typeof u.label==="string"?u.label:u.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=u.sortText&&u.sortText.toLowerCase(),this.filterTextLow=u.filterText&&u.filterText.toLowerCase(),this.extensionId=u.extensionId,t.isIRange(u.range))this.editStart=new r(u.range.startLineNumber,u.range.startColumn),this.editInsertEnd=new r(u.range.endLineNumber,u.range.endColumn),this.editReplaceEnd=new r(u.range.endLineNumber,u.range.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(u.range)||u.range.startLineNumber!==f.lineNumber;else this.editStart=new r(u.range.insert.startLineNumber,u.range.insert.startColumn),this.editInsertEnd=new r(u.range.insert.endLineNumber,u.range.insert.endColumn),this.editReplaceEnd=new r(u.range.replace.endLineNumber,u.range.replace.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(u.range.insert)||t.spansMultipleLines(u.range.replace)||u.range.insert.startLineNumber!==f.lineNumber||u.range.replace.startLineNumber!==f.lineNumber||u.range.insert.startColumn!==u.range.replace.startColumn;if(typeof v.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(f){if(!this._resolveCache){let u=f.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),g=new Kt(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,f)).then((v)=>{Object.assign(this.completion,v),this._resolveDuration=g.elapsed()},(v)=>{if(Kn(v))this._resolveCache=void 0,this._resolveDuration=void 0}).finally(()=>{u.dispose()})}return this._resolveCache}}class Id{static{this.default=new Id}constructor(f=2,u=new Set,g=new Set,v=new Map,S=!0){this.snippetSortOrder=f,this.kindFilter=u,this.providerFilter=g,this.providerItemsToReuse=v,this.showDeprecated=S}}class j1{constructor(f,u,g,v){this.items=f,this.needsClipboard=u,this.durations=g,this.disposable=v}}async function Hu(f,u,g,v=Id.default,S={triggerKind:0},y=he.None){let D=new Kt;g=g.clone();let T=u.getWordAtPosition(g),R=T?new t(g.lineNumber,T.startColumn,g.lineNumber,T.endColumn):t.fromPositions(g),K={replace:R,insert:R.setEndPosition(g.lineNumber,g.column)},q=[],ee=new c,te=[],ne=!1,re=(ge,ke,Ae)=>{let He=!1;if(!ke)return He;for(let Ke of ke.suggestions)if(!v.kindFilter.has(Ke.kind)){if(!v.showDeprecated&&Ke?.tags?.includes(1))continue;if(!Ke.range)Ke.range=K;if(!Ke.sortText)Ke.sortText=typeof Ke.label==="string"?Ke.label:Ke.label.label;if(!ne&&Ke.insertTextRules&&Ke.insertTextRules&4)ne=Mo.guessNeedsClipboard(Ke.insertText);q.push(new q1(g,Ke,ke,ge)),He=!0}if(ms(ke))ee.add(ke);return te.push({providerName:ge._debugDisplayName??"unknown_provider",elapsedProvider:ke.duration??-1,elapsedOverall:Ae.elapsed()}),He},ae=(async()=>{return})();for(let ge of f.orderedGroups(u)){let ke=!1;if(await Promise.all(ge.map(async(Ae)=>{if(v.providerItemsToReuse.has(Ae)){let He=v.providerItemsToReuse.get(Ae);He.forEach((Ke)=>q.push(Ke)),ke=ke||He.length>0;return}if(v.providerFilter.size>0&&!v.providerFilter.has(Ae))return;try{let He=new Kt,Ke=await Ae.provideCompletionItems(u,g,S,y);ke=re(Ae,Ke,He)||ke}catch(He){dt(He)}})),ke||y.isCancellationRequested)break}if(await ae,y.isCancellationRequested)return ee.dispose(),Promise.reject(new er);return new j1(q.sort(eN(v.snippetSortOrder)),ne,{entries:te,elapsed:D.elapsed()},ee)}function jw(f,u){if(f.sortTextLow&&u.sortTextLow){if(f.sortTextLow<u.sortTextLow)return-1;else if(f.sortTextLow>u.sortTextLow)return 1}if(f.textLabel<u.textLabel)return-1;else if(f.textLabel>u.textLabel)return 1;return f.completion.kind-u.completion.kind}function JR(f,u){if(f.completion.kind!==u.completion.kind){if(f.completion.kind===28)return-1;else if(u.completion.kind===28)return 1}return jw(f,u)}function QR(f,u){if(f.completion.kind!==u.completion.kind){if(f.completion.kind===28)return 1;else if(u.completion.kind===28)return-1}return jw(f,u)}var gf=new Map;gf.set(0,JR);gf.set(2,QR);gf.set(1,jw);function eN(f){return gf.get(f)}we.registerCommand("_executeCompletionItemProvider",async(f,...u)=>{let[g,v,S,y]=u;Ie(W.isUri(g)),Ie(r.isIPosition(v)),Ie(typeof S==="string"||!S),Ie(typeof y==="number"||!y);let{completionProvider:D}=f.get(j),T=await f.get(gn).createModelReference(g);try{let R={incomplete:!1,suggestions:[]},K=[],q=T.object.textEditorModel.validatePosition(v),ee=await Hu(D,T.object.textEditorModel,q,void 0,{triggerCharacter:S??void 0,triggerKind:S?1:0});for(let te of ee.items){if(K.length<(y??0))K.push(te.resolve(he.None));R.incomplete=R.incomplete||te.container.incomplete,R.suggestions.push(te.completion)}try{return await Promise.all(K),R}finally{setTimeout(()=>ee.disposable.dispose(),100)}}finally{T.dispose()}});function $1(f,u){f.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(u),void 0,!0)}class Ps{static isAllOff(f){return f.other==="off"&&f.comments==="off"&&f.strings==="off"}static isAllOn(f){return f.other==="on"&&f.comments==="on"&&f.strings==="on"}static valueFor(f,u){switch(u){case 1:return f.comments;case 2:return f.strings;default:return f.other}}}function $w(f,u=Wt){if(SI(f,u))return f.charAt(0).toUpperCase()+f.slice(1);return f}var tN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},iN=function(f,u){return function(g,v){u(g,v,f)}};class pf{constructor(f){this._delegates=f}resolve(f){for(let u of this._delegates){let g=u.resolve(f);if(g!==void 0)return g}return}}class mf{constructor(f,u,g,v){this._model=f,this._selection=u,this._selectionIdx=g,this._overtypingCapturer=v}resolve(f){let{name:u}=f;if(u==="SELECTION"||u==="TM_SELECTED_TEXT"){let g=this._model.getValueInRange(this._selection)||void 0,v=this._selection.startLineNumber!==this._selection.endLineNumber;if(!g&&this._overtypingCapturer){let S=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);if(S)g=S.value,v=S.multiline}if(g&&v&&f.snippet){let S=this._model.getLineContent(this._selection.startLineNumber),y=Ct(S,0,this._selection.startColumn-1),D=y;f.snippet.walk((R)=>{if(R===f)return!1;if(R instanceof Ki)D=Ct(ei(R.value).pop());return!0});let T=uo(D,y);g=g.replace(/(\r\n|\r|\n)(.*)/g,(R,K,q)=>`${K}${D.substr(T)}${q}`)}return g}else if(u==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);else if(u==="TM_CURRENT_WORD"){let g=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return g&&g.word||void 0}else if(u==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);else if(u==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);else if(u==="CURSOR_INDEX")return String(this._selectionIdx);else if(u==="CURSOR_NUMBER")return String(this._selectionIdx+1);return}}class ff{constructor(f,u){this._labelService=f,this._model=u}resolve(f){let{name:u}=f;if(u==="TM_FILENAME")return fa(this._model.uri.fsPath);else if(u==="TM_FILENAME_BASE"){let g=fa(this._model.uri.fsPath),v=g.lastIndexOf(".");if(v<=0)return g;else return g.slice(0,v)}else if(u==="TM_DIRECTORY"){if(Um(this._model.uri.fsPath)===".")return"";return this._labelService.getUriLabel(uh(this._model.uri))}else if(u==="TM_DIRECTORY_BASE"){if(Um(this._model.uri.fsPath)===".")return"";return fa(Um(this._model.uri.fsPath))}else if(u==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);else if(u==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0});return}}class _f{constructor(f,u,g,v){this._readClipboardText=f,this._selectionIdx=u,this._selectionCount=g,this._spread=v}resolve(f){if(f.name!=="CLIPBOARD")return;let u=this._readClipboardText();if(!u)return;if(this._spread){let g=u.split(/\r\n|\n|\r/).filter((v)=>!Wx(v));if(g.length===this._selectionCount)return g[this._selectionIdx]}return u}}var Wu=class f{constructor(u,g,v){this._model=u,this._selection=g,this._languageConfigurationService=v}resolve(u){let{name:g}=u,v=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),S=this._languageConfigurationService.getLanguageConfiguration(v).comments;if(!S)return;if(g==="LINE_COMMENT")return S.lineCommentToken||void 0;else if(g==="BLOCK_COMMENT_START")return S.blockCommentStartToken||void 0;else if(g==="BLOCK_COMMENT_END")return S.blockCommentEndToken||void 0;return}};Wu=tN([iN(2,Qe)],Wu);class Oa{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(f){let{name:u}=f;switch(u){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 Oa.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return Oa.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return Oa.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return Oa.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 g=this._date.getTimezoneOffset(),v=g>0?"-":"+",S=Math.trunc(Math.abs(g/60)),y=S<10?"0"+S:S,D=Math.abs(g)-S*60,T=D<10?"0"+D:D;return v+y+":"+T}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}return}}class bf{constructor(f){this._workspaceService=f}resolve(f){if(!this._workspaceService)return;let u=oR(this._workspaceService.getWorkspace());if(iR(u))return;if(f.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(u);else if(f.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(u);return}_resolveWorkspaceName(f){if(R0(f))return fa(f.uri.path);let u=fa(f.configPath.path);if(u.endsWith($0))u=u.substr(0,u.length-$0.length-1);return u}_resoveWorkspacePath(f){if(R0(f))return $w(f.uri.fsPath);let u=fa(f.configPath.path),g=f.configPath.fsPath;if(g.endsWith(u))g=g.substr(0,g.length-u.length-1);return g?$w(g):"/"}}class vf{resolve(f){let{name:u}=f;if(u==="RANDOM")return Math.random().toString().slice(-6);else if(u==="RANDOM_HEX")return Math.random().toString(16).slice(-6);else if(u==="UUID")return Ea();return}}var oN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},nN=function(f,u){return function(g,v){u(g,v,f)}},kr;class Nn{static{this._decor={active:oe.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:oe.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:oe.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:oe.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(f,u,g){this._editor=f,this._snippet=u,this._snippetLineLeadingWhitespace=g,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=fS(u.placeholders,No.compareByIndex),this._placeholderGroupsIdx=-1}initialize(f){this._offset=f.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 f=this._editor.getModel();this._editor.changeDecorations((u)=>{for(let g of this._snippet.placeholders){let v=this._snippet.offset(g),S=this._snippet.fullLen(g),y=t.fromPositions(f.getPositionAt(this._offset+v),f.getPositionAt(this._offset+v+S)),D=g.isFinalTabstop?Nn._decor.inactiveFinal:Nn._decor.inactive,T=u.addDecoration(y,D);this._placeholderDecorations.set(g,T)}})}move(f){if(!this._editor.hasModel())return[];this._initDecorations();let u=this._editor.getModel();if(this._placeholderGroupsIdx>=0){let S=[];for(let y of this._placeholderGroups[this._placeholderGroupsIdx])if(y.transform){let D=this._placeholderDecorations.get(y),T=D?u.getDecorationRange(D):null;if(T){let R=u.getValueInRange(T),K=y.transform.resolve(R).split(/\r\n|\r|\n/);for(let q=1;q<K.length;q++)K[q]=u.normalizeIndentation(this._snippetLineLeadingWhitespace+K[q]);S.push(Mt.replace(T,K.join(u.getEOL())))}}if(S.length>0)this._editor.executeEdits("snippet.placeholderTransform",S)}let g=!1;if(f===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1)this._placeholderGroupsIdx+=1,g=!0;else if(f===!1&&this._placeholderGroupsIdx>0)this._placeholderGroupsIdx-=1,g=!0;let v=u.changeDecorations((S)=>{let y=new Set,D=[];for(let T of this._placeholderGroups[this._placeholderGroupsIdx]){let R=this._placeholderDecorations.get(T),K=R?u.getDecorationRange(R):null;if(g=g&&this._hasPlaceholderBeenCollapsed(T),!R||!K)continue;D.push(new O(K.startLineNumber,K.startColumn,K.endLineNumber,K.endColumn)),S.changeDecorationOptions(R,T.isFinalTabstop?Nn._decor.activeFinal:Nn._decor.active),y.add(T);for(let q of this._snippet.enclosingPlaceholders(T)){let ee=this._placeholderDecorations.get(q);if(ee)S.changeDecorationOptions(ee,q.isFinalTabstop?Nn._decor.activeFinal:Nn._decor.active),y.add(q)}}for(let[T,R]of this._placeholderDecorations)if(!y.has(T))S.changeDecorationOptions(R,T.isFinalTabstop?Nn._decor.inactiveFinal:Nn._decor.inactive);return D});return!g?v??[]:this.move(f)}_hasPlaceholderBeenCollapsed(f){let u=this._editor.getModel(),g=f;while(g){if(g instanceof No){let v=this._placeholderDecorations.get(g),S=v?u.getDecorationRange(v):null;if((!S||S.isEmpty())&&g.toString().length>0)return!0}g=g.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[f]=this._snippet.placeholders;if(f.isFinalTabstop){if(this._snippet.rightMostDescendant===f)return!0}}return!1}computePossibleSelections(){let f=new Map;for(let u of this._placeholderGroups){let g;for(let v of u){if(v.isFinalTabstop)break;if(!g)g=[],f.set(v.index,g);let S=this._placeholderDecorations.get(v),y=this._editor.getModel().getDecorationRange(S);if(!y){f.delete(v.index);break}g.push(y)}}return f}get activeChoice(){if(!this._placeholderDecorations)return;let f=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!f?.choice)return;let u=this._placeholderDecorations.get(f);if(!u)return;let g=this._editor.getModel().getDecorationRange(u);if(!g)return;return{range:g,choice:f.choice}}get hasChoice(){let f=!1;return this._snippet.walk((u)=>(f=u instanceof td,!f)),f}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(f){let u=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((g)=>{for(let v of this._placeholderGroups[this._placeholderGroupsIdx]){let S=f.shift();console.assert(S._offset!==-1),console.assert(!S._placeholderDecorations);let y=S._snippet.placeholderInfo.last.index;for(let T of S._snippet.placeholderInfo.all)if(T.isFinalTabstop)T.index=v.index+(y+1)/this._nestingLevel;else T.index=v.index+T.index/this._nestingLevel;this._snippet.replace(v,S._snippet.children);let D=this._placeholderDecorations.get(v);g.removeDecoration(D),this._placeholderDecorations.delete(v);for(let T of S._snippet.placeholders){let R=S._snippet.offset(T),K=S._snippet.fullLen(T),q=t.fromPositions(u.getPositionAt(S._offset+R),u.getPositionAt(S._offset+R+K)),ee=g.addDecoration(q,Nn._decor.inactive);this._placeholderDecorations.set(T,ee)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=fS(this._snippet.placeholders,No.compareByIndex)})}_renormalizePlaceholderIndices(){let f=this._snippet.placeholders,u=new Set;for(let S of f)if(!S.isFinalTabstop)u.add(S.index);let g=[...u].sort((S,y)=>S-y),v=new Map;for(let S=0;S<g.length;S++)v.set(g[S],S+1);for(let S of f)if(!S.isFinalTabstop)S.index=v.get(S.index);this._nestingLevel=1}}var G1={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},il=kr=class f{static adjustWhitespace(u,g,v,S,y){let D=u.getLineContent(g.lineNumber),T=Ct(D,0,g.column-1),R;return S.walk((K)=>{if(!(K instanceof Ki)||K.parent instanceof td)return!0;if(y&&!y.has(K))return!0;let q=K.value.split(/\r\n|\r|\n/);if(v){let te=S.offset(K);if(te===0)q[0]=u.normalizeIndentation(q[0]);else{R=R??S.toString();let ne=R.charCodeAt(te-1);if(ne===10||ne===13)q[0]=u.normalizeIndentation(T+q[0])}for(let ne=1;ne<q.length;ne++)q[ne]=u.normalizeIndentation(T+q[ne])}let ee=q.join(u.getEOL());if(ee!==K.value)K.parent.replace(K,[new Ki(ee)]),R=void 0;return!0}),T}static adjustSelection(u,g,v,S){if(v!==0||S!==0){let{positionLineNumber:y,positionColumn:D}=g,T=D-v,R=D+S,K=u.validateRange({startLineNumber:y,startColumn:T,endLineNumber:y,endColumn:R});g=O.createWithDirection(K.startLineNumber,K.startColumn,K.endLineNumber,K.endColumn,g.getDirection())}return g}static createEditsAndSnippetsFromSelections(u,g,v,S,y,D,T,R,K){let q=[],ee=[];if(!u.hasModel())return{edits:q,snippets:ee};let te=u.getModel(),ne=u.invokeWithinContext((Ke)=>Ke.get(Es)),re=u.invokeWithinContext((Ke)=>new ff(Ke.get(ml),te)),ae=()=>T,ge=te.getValueInRange(kr.adjustSelection(te,u.getSelection(),v,0)),ke=te.getValueInRange(kr.adjustSelection(te,u.getSelection(),0,S)),Ae=te.getLineFirstNonWhitespaceColumn(u.getSelection().positionLineNumber),He=u.getSelections().map((Ke,Ue)=>({selection:Ke,idx:Ue})).sort((Ke,Ue)=>t.compareRangesUsingStarts(Ke.selection,Ue.selection));for(let{selection:Ke,idx:Ue}of He){let Te=kr.adjustSelection(te,Ke,v,0),We=kr.adjustSelection(te,Ke,0,S);if(ge!==te.getValueInRange(Te))Te=Ke;if(ke!==te.getValueInRange(We))We=Ke;let et=Ke.setStartPosition(Te.startLineNumber,Te.startColumn).setEndPosition(We.endLineNumber,We.endColumn),tt=new Mo().parse(g,!0,y),ot=et.getStartPosition(),je=kr.adjustWhitespace(te,ot,D||Ue>0&&Ae!==te.getLineFirstNonWhitespaceColumn(Ke.positionLineNumber),tt);tt.resolveVariables(new pf([re,new _f(ae,Ue,He.length,u.getOption(88)==="spread"),new mf(te,Ke,Ue,R),new Wu(te,Ke,K),new Oa,new bf(ne),new vf])),q[Ue]=Mt.replace(et,tt.toString()),q[Ue].identifier={major:Ue,minor:0},q[Ue]._isTracked=!0,ee[Ue]=new Nn(u,tt,je)}return{edits:q,snippets:ee}}static createEditsAndSnippetsFromEdits(u,g,v,S,y,D,T){if(!u.hasModel()||g.length===0)return{edits:[],snippets:[]};let R=[],K=u.getModel(),q=new Mo,ee=new tc,te=u.invokeWithinContext((Ke)=>new ff(Ke.get(ml),K)),ne=new Oa,re=new bf(u.invokeWithinContext((Ke)=>Ke.get(Es))),ae=new vf,ge=()=>y,ke=u.getOption(88)==="spread",Ae=g.map((Ke,Ue)=>({edit:Ke,idx:Ue})).sort((Ke,Ue)=>t.compareRangesUsingStarts(Ke.edit.range,Ue.edit.range)),He=0;for(let Ke=0;Ke<Ae.length;Ke++){let{edit:{range:Ue,template:Te,keepWhitespace:We},idx:et}=Ae[Ke];if(Ke>0){let at=Ae[Ke-1].edit.range,gi=t.fromPositions(at.getEndPosition(),Ue.getStartPosition()),vt=new Ki(K.getValueInRange(gi));ee.appendChild(vt),He+=vt.value.length}let tt=new Set;ee.walk((at)=>{if(at instanceof Ys)tt.add(at);return!0});let ot=q.parseFragment(Te,ee);kr.adjustWhitespace(K,Ue.getStartPosition(),We!==void 0?!We:S,ee,new Set(ot));let je=O.fromRange(Ue,0),nt=new pf([te,new _f(ge,et,Ae.length,ke),new mf(K,je,et,D),new Wu(K,je,T),ne,re,ae]);ee.walk((at)=>{if(at instanceof Ys&&!tt.has(at))at.resolve(nt);return!0});let _t=ee.toString(),st=_t.slice(He);He=_t.length;let xt=Mt.replace(Ue,st);xt.identifier={major:Ke,minor:0},xt._isTracked=!0,R.push(xt)}return q.ensureFinalTabstop(ee,v,!0),{edits:R,snippets:[new Nn(u,ee,"")]}}constructor(u,g,v=G1,S){this._editor=u,this._template=g,this._options=v,this._languageConfigurationService=S,this._templateMerges=[],this._snippets=[]}dispose(){$e(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(u){if(!this._editor.hasModel())return;let{edits:g,snippets:v}=typeof this._template==="string"?kr.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):kr.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=v,this._editor.executeEdits(u??$n.snippet(),g,(S)=>{let y=S.filter((D)=>!!D.identifier);for(let D=0;D<v.length;D++)v[D].initialize(y[D].textChange);if(this._snippets[0].hasPlaceholder)return this._move(!0);else return y.map((D)=>O.fromPositions(D.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(u,g=G1){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,u]);let{edits:v,snippets:S}=kr.createEditsAndSnippetsFromSelections(this._editor,u,g.overwriteBefore,g.overwriteAfter,!0,g.adjustWhitespace,g.clipboardText,g.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",v,(y)=>{let D=y.filter((K)=>!!K.identifier);for(let K=0;K<S.length;K++)S[K].initialize(D[K].textChange);let T=S[0].isTrivialSnippet,R=S.length===this._snippets.reduce((K,q)=>K+q.activePlaceholderCount,0);if(!T&&R){for(let K of this._snippets)K.merge(S);console.assert(S.length===0)}if(this._snippets[0].hasPlaceholder&&!T&&R)return this._move(void 0);else return D.map((K)=>O.fromPositions(K.range.getEndPosition()))})}next(){let u=this._move(!0);if(u.length>0)this._editor.setSelections(u),this._editor.revealPositionInCenterIfOutsideViewport(u[0].getPosition())}prev(){let u=this._move(!1);if(u.length>0)this._editor.setSelections(u),this._editor.revealPositionInCenterIfOutsideViewport(u[0].getPosition())}_move(u){let g=[];for(let v of this._snippets){let S=v.move(u);g.push(...S)}return g}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 u=this._editor.getSelections();if(u.length<this._snippets.length)return!1;let g=new Map;for(let v of this._snippets){let S=v.computePossibleSelections();if(g.size===0)for(let[y,D]of S){D.sort(t.compareRangesUsingStarts);for(let T of u)if(D[0].containsRange(T)){g.set(y,[]);break}}if(g.size===0)return!1;g.forEach((y,D)=>{y.push(...S.get(D))})}u.sort(t.compareRangesUsingStarts);for(let[v,S]of g){if(S.length!==u.length){g.delete(v);continue}S.sort(t.compareRangesUsingStarts);for(let y=0;y<S.length;y++)if(!S[y].containsRange(u[y])){g.delete(v);continue}}return g.size>0}};il=kr=oN([nN(3,Qe)],il);var rN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},wf=function(f,u){return function(g,v){u(g,v,f)}},Ld,Z1={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},wi=class f{static{Ld=this}static{this.ID="snippetController2"}static get(u){return u.getContribution(Ld.ID)}static{this.InSnippetMode=new A("inSnippetMode",!1,e(1471,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new A("hasNextTabstop",!1,e(1472,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new A("hasPrevTabstop",!1,e(1473,"Whether there is a previous tab stop when in snippet mode"))}static{this.InSnippetChoice=new A("inSnippetChoice",!1,e(1474,"Whether the current snippet tab stop is a choice"))}constructor(u,g,v,S,y){this._editor=u,this._logService=g,this._languageFeaturesService=v,this._languageConfigurationService=y,this._inSnippetObservable=M(this,!1),this._snippetListener=new c,this._modelVersionId=-1,this._inSnippet=Ld.InSnippetMode.bindTo(S),this._hasNextTabstop=Ld.HasNextTabstop.bindTo(S),this._hasPrevTabstop=Ld.HasPrevTabstop.bindTo(S),this._inSnippetChoice=Ld.InSnippetChoice.bindTo(S)}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(u,g){try{this._doInsert(u,typeof g>"u"?Z1:{...Z1,...g})}catch(v){this.cancel(),this._logService.error(v),this._logService.error("snippet_error"),this._logService.error("insert_template=",u),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(u,g){if(!this._editor.hasModel())return;if(this._snippetListener.clear(),g.undoStopBefore)this._editor.getModel().pushStackElement();if(this._session&&typeof u!=="string")this.cancel();if(!this._session)this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new il(this._editor,u,g,this._languageConfigurationService),this._session.insert(g.reason);else Ie(typeof u==="string"),this._session.merge(u,g);if(g.undoStopAfter)this._editor.getModel().pushStackElement();if(this._session?.hasChoice){let v={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(K,q)=>{if(!this._session||K!==this._editor.getModel()||!r.equals(this._editor.getPosition(),q))return;let{activeChoice:ee}=this._session;if(!ee||ee.choice.options.length===0)return;let te=K.getValueInRange(ee.range),ne=Boolean(ee.choice.options.find((ae)=>ae.value===te)),re=[];for(let ae=0;ae<ee.choice.options.length;ae++){let ge=ee.choice.options[ae];re.push({kind:13,label:ge.value,insertText:ge.value,sortText:"a".repeat(ae+1),range:ee.range,filterText:ne?`${te}_${ge.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:e(1475,"Go to next placeholder...")}})}return{suggestions:re}}},S=this._editor.getModel(),y,D=!1,T=()=>{y?.dispose(),D=!1},R=()=>{if(!D)y=this._languageFeaturesService.completionProvider.register({language:S.getLanguageId(),pattern:S.uri.fsPath,scheme:S.uri.scheme,exclusive:!0},v),this._snippetListener.add(y),D=!0};this._choiceCompletions={provider:v,enable:R,disable:T}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((v)=>v.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:u}=this._session;if(!u||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}if(this._inSnippetChoice.set(!0),this._currentChoice!==u.choice)this._currentChoice=u.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{$1(this._editor,this._choiceCompletions.provider)})}finish(){while(this._inSnippet.get())this.next()}cancel(u=!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,u)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}};wi=Ld=rN([wf(1,Be),wf(2,j),wf(3,V),wf(4,Qe)],wi);le(wi.ID,wi,4);var Sf=Bt.bindToContribution(wi.get);U(new Sf({id:"jumpToNextSnippetPlaceholder",precondition:_.and(wi.InSnippetMode,wi.HasNextTabstop),handler:(f)=>f.next(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:2}}));U(new Sf({id:"jumpToPrevSnippetPlaceholder",precondition:_.and(wi.InSnippetMode,wi.HasPrevTabstop),handler:(f)=>f.prev(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:1026}}));bn.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:_.and(wi.InSnippetMode,wi.HasPrevTabstop,wi.InSnippetChoice,o.textInputFocus),primary:1026});U(new Sf({id:"leaveSnippet",precondition:wi.InSnippetMode,handler:(f)=>f.cancel(!0),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));U(new Sf({id:"acceptSnippet",precondition:wi.InSnippetMode,handler:(f)=>f.finish()}));class Cf{constructor(f,u){this.leadingLineContent=f,this.characterCountDelta=u}}class ds{constructor(f,u,g,v,S,y,D=pg.default,T=void 0){if(this.clipboardText=T,this._snippetCompareFn=ds._compareCompletionItems,this._items=f,this._column=u,this._wordDistance=v,this._options=S,this._refilterKind=1,this._lineContext=g,this._fuzzyScoreOptions=D,y==="top")this._snippetCompareFn=ds._compareCompletionItemsSnippetsUp;else if(y==="bottom")this._snippetCompareFn=ds._compareCompletionItemsSnippetsDown}get lineContext(){return this._lineContext}set lineContext(f){if(this._lineContext.leadingLineContent!==f.leadingLineContent||this._lineContext.characterCountDelta!==f.characterCountDelta)this._refilterKind=this._lineContext.characterCountDelta<f.characterCountDelta&&this._filteredItems?2:1,this._lineContext=f}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let f=new Set;for(let[u,g]of this.getItemsByProvider())if(g.length>0&&g[0].container.incomplete)f.add(u);return f}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){if(this._refilterKind!==0)this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let f=[],{leadingLineContent:u,characterCountDelta:g}=this._lineContext,v="",S="",y=this._refilterKind===1?this._items:this._filteredItems,D=[],T=!this._options.filterGraceful||y.length>2000?Xl:XI;for(let R=0;R<y.length;R++){let K=y[R];if(K.isInvalid)continue;let q=this._itemsByProvider.get(K.provider);if(q)q.push(K);else this._itemsByProvider.set(K.provider,[K]);let ee=K.position.column-K.editStart.column,te=ee+g-(K.position.column-this._column);if(v.length!==te)v=te===0?"":u.slice(-te),S=v.toLowerCase();if(K.word=v,te===0)K.score=Cr.Default;else{let ne=0;while(ne<ee){let re=v.charCodeAt(ne);if(re===32||re===9)ne+=1;else break}if(ne>=te)K.score=Cr.Default;else if(typeof K.completion.filterText==="string"){let re=T(v,S,ne,K.completion.filterText,K.filterTextLow,0,this._fuzzyScoreOptions);if(!re)continue;if(Mv(K.completion.filterText,K.textLabel)===0)K.score=re;else K.score=ZI(v,S,ne,K.textLabel,K.labelLow,0),K.score[0]=re[0]}else{let re=T(v,S,ne,K.textLabel,K.labelLow,0,this._fuzzyScoreOptions);if(!re)continue;K.score=re}}K.idx=R,K.distance=this._wordDistance.distance(K.position,K.completion),D.push(K),f.push(K.textLabel.length)}this._filteredItems=D.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:f.length?Px(f.length-0.85,f,(R,K)=>R-K):0}}static _compareCompletionItems(f,u){if(f.score[0]>u.score[0])return-1;else if(f.score[0]<u.score[0])return 1;else if(f.distance<u.distance)return-1;else if(f.distance>u.distance)return 1;else if(f.idx<u.idx)return-1;else if(f.idx>u.idx)return 1;else return 0}static _compareCompletionItemsSnippetsDown(f,u){if(f.completion.kind!==u.completion.kind){if(f.completion.kind===28)return 1;else if(u.completion.kind===28)return-1}return ds._compareCompletionItems(f,u)}static _compareCompletionItemsSnippetsUp(f,u){if(f.completion.kind!==u.completion.kind){if(f.completion.kind===28)return-1;else if(u.completion.kind===28)return 1}return ds._compareCompletionItems(f,u)}}var sN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},X1=function(f,u){return function(g,v){u(g,v,f)}},Bu;class yf{constructor(f){this.name=f}select(f,u,g){if(g.length===0)return 0;let v=g[0].score[0];for(let S=0;S<g.length;S++){let{score:y,completion:D}=g[S];if(y[0]!==v)break;if(D.preselect)return S}return 0}}class Gw extends yf{constructor(){super("first")}memorize(f,u,g){}toJSON(){return}fromJSON(){}}class Y1 extends yf{constructor(){super("recentlyUsed");this._cache=new Ei(300,0.66),this._seq=0}memorize(f,u,g){let v=`${f.getLanguageId()}/${g.textLabel}`;this._cache.set(v,{touch:this._seq++,type:g.completion.kind,insertText:g.completion.insertText})}select(f,u,g){if(g.length===0)return 0;let v=f.getLineContent(u.lineNumber).substr(u.column-10,u.column-1);if(/\s$/.test(v))return super.select(f,u,g);let S=g[0].score[0],y=-1,D=-1,T=-1;for(let R=0;R<g.length;R++){if(g[R].score[0]!==S)break;let K=`${f.getLanguageId()}/${g[R].textLabel}`,q=this._cache.peek(K);if(q&&q.touch>T&&q.type===g[R].completion.kind&&q.insertText===g[R].completion.insertText)T=q.touch,D=R;if(g[R].completion.preselect&&y===-1)return y=R}if(D!==-1)return D;else if(y!==-1)return y;else return 0}toJSON(){return this._cache.toJSON()}fromJSON(f){this._cache.clear();let u=0;for(let[g,v]of f)v.touch=u,v.type=typeof v.type==="number"?v.type:Wd.fromString(v.type),this._cache.set(g,v);this._seq=this._cache.size}}class J1 extends yf{constructor(){super("recentlyUsedByPrefix");this._trie=Ih.forStrings(),this._seq=0}memorize(f,u,g){let{word:v}=f.getWordUntilPosition(u),S=`${f.getLanguageId()}/${v}`;this._trie.set(S,{type:g.completion.kind,insertText:g.completion.insertText,touch:this._seq++})}select(f,u,g){let{word:v}=f.getWordUntilPosition(u);if(!v)return super.select(f,u,g);let S=`${f.getLanguageId()}/${v}`,y=this._trie.get(S);if(!y)y=this._trie.findSubstr(S);if(y)for(let D=0;D<g.length;D++){let{kind:T,insertText:R}=g[D].completion;if(T===y.type&&R===y.insertText)return D}return super.select(f,u,g)}toJSON(){let f=[];return this._trie.forEach((u,g)=>f.push([g,u])),f.sort((u,g)=>-(u[1].touch-g[1].touch)).forEach((u,g)=>u[1].touch=g),f.slice(0,200)}fromJSON(f){if(this._trie.clear(),f.length>0){this._seq=f[0][1].touch+1;for(let[u,g]of f)g.type=typeof g.type==="number"?g.type:Wd.fromString(g.type),this._trie.set(u,g)}}}var Zw=class f{static{Bu=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",J1],["recentlyUsed",Y1],["first",Gw]])}static{this._storagePrefix="suggest/memories"}constructor(u,g){this._storageService=u,this._configService=g,this._disposables=new c,this._persistSoon=new be(()=>this._saveState(),500),this._disposables.add(u.onWillSaveState((v)=>{if(v.reason===pl.SHUTDOWN)this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(u,g,v){this._withStrategy(u,g).memorize(u,g,v),this._persistSoon.schedule()}select(u,g,v){return this._withStrategy(u,g).select(u,g,v)}_withStrategy(u,g){let v=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:u.getLanguageIdAtPosition(g.lineNumber,g.column),resource:u.uri});if(this._strategy?.name!==v){this._saveState();let S=Bu._strategyCtors.get(v)||Gw;this._strategy=new S;try{let D=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,T=this._storageService.get(`${Bu._storagePrefix}/${v}`,D);if(T)this._strategy.fromJSON(JSON.parse(T))}catch(y){}}return this._strategy}_saveState(){if(this._strategy){let g=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,v=JSON.stringify(this._strategy);this._storageService.store(`${Bu._storagePrefix}/${this._strategy.name}`,v,g,1)}}};Zw=Bu=sN([X1(0,xn),X1(1,X)],Zw);var dl=Z("ISuggestMemories");fe(dl,Zw,1);var Q1;function xf(f){return Q1?.(f)??null}function eE(f){Q1=f}class Rt{static{this.inlineSuggestionVisible=new A("inlineSuggestionVisible",!1,e(1249,"Whether an inline suggestion is visible"))}static{this.inlineSuggestionAlternativeActionVisible=new A("inlineSuggestionAlternativeActionVisible",!1,e(1250,"Whether an alternative action for the inline suggestion is visible."))}static{this.inlineSuggestionHasIndentation=new A("inlineSuggestionHasIndentation",!1,e(1251,"Whether the inline suggestion starts with whitespace"))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new A("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 A("inlineSuggestionSuppressSuggestions",void 0,e(1253,"Whether suggestions should be suppressed for the current suggestion"))}static{this.cursorBeforeGhostText=new A("cursorBeforeGhostText",!1,e(1254,"Whether the cursor is at ghost text"))}static{this.cursorInIndentation=new A("cursorInIndentation",!1,e(1255,"Whether the cursor is in indentation"))}static{this.hasSelection=new A("editor.hasSelection",!1,e(1256,"Whether the editor has a selection"))}static{this.cursorAtInlineEdit=new A("cursorAtInlineEdit",!1,e(1257,"Whether the cursor is at an inline edit"))}static{this.inlineEditVisible=new A("inlineEditIsVisible",!1,e(1258,"Whether an inline edit is visible"))}static{this.tabShouldJumpToInlineEdit=new A("tabShouldJumpToInlineEdit",!1,e(1259,"Whether tab should jump to an inline edit."))}static{this.tabShouldAcceptInlineEdit=new A("tabShouldAcceptInlineEdit",!1,e(1260,"Whether tab should accept the inline edit."))}static{this.inInlineEditsPreviewEditor=new A("inInlineEditsPreviewEditor",!0,e(1261,"Whether the current code editor is showing an inline edits preview"))}}class On{static{this.None=new class extends On{distance(){return 0}}}static async create(f,u){if(!u.getOption(134).localityBonus)return On.None;if(!u.hasModel())return On.None;let g=u.getModel(),v=u.getPosition();if(!f.canComputeWordRanges(g.uri))return On.None;let[S]=await new Ko().provideSelectionRanges(g,[v]);if(S.length===0)return On.None;let y=await f.computeWordRanges(g.uri,S[0].range);if(!y)return On.None;let D=g.getWordUntilPosition(v);return delete y[D.word],new class extends On{distance(T,R){if(!v.equals(u.getPosition()))return 0;if(R.kind===17)return 2097152;let K=typeof R.label==="string"?R.label:R.label.label,q=y[K];if(Fx(q))return 2097152;let ee=Dp(q,t.fromPositions(T),t.compareRangesUsingStarts),te=ee>=0?q[ee]:q[Math.max(0,~ee-1)],ne=S.length;for(let re of S){if(!t.containsRange(re.range,te))break;ne-=1}return ne}}}}var aN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Pa=function(f,u){return function(g,v){u(g,v,f)}},Xw;class Aa{static shouldAutoTrigger(f){if(!f.hasModel())return!1;let u=f.getModel(),g=f.getPosition();u.tokenization.tokenizeIfCheap(g.lineNumber);let v=u.getWordAtPosition(g);if(!v)return!1;if(v.endColumn!==g.column&&v.startColumn+1!==g.column)return!1;if(!isNaN(Number(v.word)))return!1;return!0}constructor(f,u,g){this.leadingLineContent=f.getLineContent(u.lineNumber).substr(0,u.column-1),this.leadingWord=f.getWordUntilPosition(u),this.lineNumber=u.lineNumber,this.column=u.column,this.triggerOptions=g}}function dN(f,u,g){if(!Boolean(u.getContextKeyValue(Rt.inlineSuggestionVisible.key)))return!0;let v=u.getContextKeyValue(Rt.suppressSuggestions.key);if(v!==void 0)return!v;return!f.getOption(71).suppressSuggestions}function cN(f,u,g){if(!Boolean(u.getContextKeyValue("inlineSuggestionVisible")))return!0;let v=u.getContextKeyValue(Rt.suppressSuggestions.key);if(v!==void 0)return!v;return!f.getOption(71).suppressSuggestions}var _l=Xw=class f{constructor(u,g,v,S,y,D,T,R,K){this._editor=u,this._editorWorkerService=g,this._clipboardService=v,this._telemetryService=S,this._logService=y,this._contextKeyService=D,this._configurationService=T,this._languageFeaturesService=R,this._envService=K,this._toDispose=new c,this._triggerCharacterListener=new c,this._triggerQuickSuggest=new Un,this._triggerState=void 0,this._completionDisposables=new c,this._onDidCancel=new i,this._onDidTrigger=new i,this._onDidSuggest=new i,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new O(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 q=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{q=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{q=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection((ee)=>{if(!q)this._onCursorChange(ee)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{if(!q&&this._triggerState!==void 0)this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){$e(this._triggerCharacterListener),$e([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 u=new Map;for(let v of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let S of v.triggerCharacters||[]){let y=u.get(S);if(!y)y=new Set,u.set(S,y);y.add(v)}let g=(v)=>{if(!cN(this._editor,this._contextKeyService,this._configurationService))return;if(Aa.shouldAutoTrigger(this._editor))return;if(!v){let D=this._editor.getPosition();v=this._editor.getModel().getLineContent(D.lineNumber).substr(0,D.column-1)}let S="";if(tl(v.charCodeAt(v.length-1))){if(fn(v.charCodeAt(v.length-2)))S=v.substr(v.length-2)}else S=v.charAt(v.length-1);let y=u.get(S);if(y){let D=new Map;if(this._completionModel){for(let[T,R]of this._completionModel.getItemsByProvider())if(!y.has(T))D.set(T,R)}this.trigger({auto:!0,triggerKind:1,triggerCharacter:S,retrigger:Boolean(this._completionModel),clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:y,providerItemsToReuse:D}})}};this._triggerCharacterListener.add(this._editor.onDidType(g)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>g()))}get state(){if(!this._triggerState)return 0;else if(!this._triggerState.auto)return 1;else return 2}cancel(u=!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:u})}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(u){if(!this._editor.hasModel())return;let g=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!u.selection.isEmpty()||u.reason!==0&&u.reason!==3||u.source!=="keyboard"&&u.source!=="deleteLeft"){this.cancel();return}if(this._triggerState===void 0&&u.reason===0){if(g.containsRange(this._currentSelection)||g.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))this._doTriggerQuickSuggest()}else if(this._triggerState!==void 0&&u.reason===3)this._refilterCompletionItems()}_onCompositionEnd(){if(this._triggerState===void 0)this._doTriggerQuickSuggest();else this._refilterCompletionItems()}_doTriggerQuickSuggest(){if(Ps.isAllOff(this._editor.getOption(102)))return;if(this._editor.getOption(134).snippetsPreventQuickSuggestions&&wi.get(this._editor)?.isInSnippet())return;this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0)return;if(!Aa.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let u=this._editor.getModel(),g=this._editor.getPosition(),v=this._editor.getOption(102);if(Ps.isAllOff(v))return;let S=!1;if(!Ps.isAllOn(v)){u.tokenization.tokenizeIfCheap(g.lineNumber);let y=u.tokenization.getLineTokens(g.lineNumber),D=y.getStandardTokenType(y.findTokenIndexAtOffset(Math.max(g.column-1-1,0))),T=Ps.valueFor(v,D);if(T==="off"||T==="inline")return;if(T==="offWhenInlineCompletions")S=this._languageFeaturesService.inlineCompletionsProvider.has(u)&&this._editor.getOption(71).enabled}if(!dN(this._editor,this._contextKeyService,this._configurationService))return;if(!this._languageFeaturesService.completionProvider.has(u))return;if(S)this._waitForInlineCompletionsAndTrigger(u,g);else this.trigger({auto:!0})},this._editor.getOption(103))}_waitForInlineCompletionsAndTrigger(u,g){let v=u.getVersionId(),S=xf(this._editor),y=S?.model.get();if(!S||!y){this.trigger({auto:!0});return}if(y.state.get()?.inlineSuggestion)return;let T=new c;this._waitForInlineCompletions=T;let R=(K)=>{if(T.dispose(),this._waitForInlineCompletions===T)this._waitForInlineCompletions=void 0;if(this._triggerState!==void 0)return;if(!K)return;let q=this._editor.getModel(),ee=this._editor.getPosition();if(q===u&&q.getVersionId()===v&&ee?.equals(g)&&this._editor.hasWidgetFocus())this.trigger({auto:!0})};Jn(()=>{R(!0),y.stop("automatic")},750,T),yI(T,(K)=>{if(S.model.read(K)!==y){K.dispose(),R(!1);return}let ee=y.status.read(K),te=y.state.read(K);if(!te&&ee==="loading")return;K.dispose(),R(!te)})}_refilterCompletionItems(){Ie(this._editor.hasModel()),Ie(this._triggerState!==void 0);let u=this._editor.getModel(),g=this._editor.getPosition(),v=new Aa(u,g,{...this._triggerState,refilter:!0});this._onNewContext(v)}trigger(u){if(!this._editor.hasModel())return;let g=this._editor.getModel(),v=new Aa(g,this._editor.getPosition(),u);this.cancel(u.retrigger),this._triggerState=u,this._onDidTrigger.fire({auto:u.auto,shy:u.shy??!1,position:this._editor.getPosition()}),this._context=v;let S={triggerKind:u.triggerKind??0};if(u.triggerCharacter)S={triggerKind:1,triggerCharacter:u.triggerCharacter};this._requestToken=new Oe;let y=this._editor.getOption(128),D=1;switch(y){case"top":D=0;break;case"bottom":D=2;break}let{itemKind:T,showDeprecated:R}=Xw.createSuggestFilter(this._editor),K=new Id(D,u.completionOptions?.kindFilter??T,u.completionOptions?.providerFilter,u.completionOptions?.providerItemsToReuse,R),q=On.create(this._editorWorkerService,this._editor),ee=Hu(this._languageFeaturesService.completionProvider,g,this._editor.getPosition(),K,S,this._requestToken.token);Promise.all([ee,q]).then(async([te,ne])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){te.disposable.dispose();return}let re=u?.clipboardText;if(!re&&te.needsClipboard)re=await this._clipboardService.readText();if(this._triggerState===void 0){te.disposable.dispose();return}let ae=this._editor.getModel(),ge=new Aa(ae,this._editor.getPosition(),u),ke={...pg.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new ds(te.items,this._context.column,{leadingLineContent:ge.leadingLineContent,characterCountDelta:ge.column-this._context.column},ne,this._editor.getOption(134),this._editor.getOption(128),ke,re),this._completionDisposables.add(te.disposable),this._onNewContext(ge),this._reportDurationsTelemetry(te.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment){for(let Ae of te.items)if(Ae.isInvalid)this._logService.warn(`[suggest] did IGNORE invalid completion item from ${Ae.provider._debugDisplayName}`,Ae.completion)}}).catch(J)}_reportDurationsTelemetry(u){if(Math.random()>0.0001)return;setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(u)}),this._logService.debug("suggest.durations.json",u)})}static createSuggestFilter(u){let g=new Set;if(u.getOption(128)==="none")g.add(28);let S=u.getOption(134);if(!S.showMethods)g.add(0);if(!S.showFunctions)g.add(1);if(!S.showConstructors)g.add(2);if(!S.showFields)g.add(3);if(!S.showVariables)g.add(4);if(!S.showClasses)g.add(5);if(!S.showStructs)g.add(6);if(!S.showInterfaces)g.add(7);if(!S.showModules)g.add(8);if(!S.showProperties)g.add(9);if(!S.showEvents)g.add(10);if(!S.showOperators)g.add(11);if(!S.showUnits)g.add(12);if(!S.showValues)g.add(13);if(!S.showConstants)g.add(14);if(!S.showEnums)g.add(15);if(!S.showEnumMembers)g.add(16);if(!S.showKeywords)g.add(17);if(!S.showWords)g.add(18);if(!S.showColors)g.add(19);if(!S.showFiles)g.add(20);if(!S.showReferences)g.add(21);if(!S.showColors)g.add(22);if(!S.showFolders)g.add(23);if(!S.showTypeParameters)g.add(24);if(!S.showSnippets)g.add(28);if(!S.showUsers)g.add(25);if(!S.showIssues)g.add(26);return{itemKind:g,showDeprecated:S.showDeprecated}}_onNewContext(u){if(!this._context)return;if(u.lineNumber!==this._context.lineNumber){this.cancel();return}if(Ct(u.leadingLineContent)!==Ct(this._context.leadingLineContent)){this.cancel();return}if(u.column<this._context.column){if(u.leadingWord.word)this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});else this.cancel();return}if(!this._completionModel)return;if(u.leadingWord.word.length!==0&&u.leadingWord.startColumn>this._context.leadingWord.startColumn){if(Aa.shouldAutoTrigger(this._editor)&&this._context){let v=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:v}})}return}if(u.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&u.leadingWord.word.length!==0){let g=new Map,v=new Set;for(let[S,y]of this._completionModel.getItemsByProvider())if(y.length>0&&y[0].container.incomplete)v.add(S);else g.set(S,y);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:v,providerItemsToReuse:g}})}else{let g=this._completionModel.lineContext,v=!1;if(this._completionModel.lineContext={leadingLineContent:u.leadingLineContent,characterCountDelta:u.column-this._context.column},this._completionModel.items.length===0){let S=Aa.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(S&&this._context.leadingWord.endColumn<u.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(!this._context.triggerOptions.auto){if(this._completionModel.lineContext=g,v=this._completionModel.items.length>0,v&&u.leadingWord.word.length===0){this.cancel();return}}else{this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:u.triggerOptions,isFrozen:v})}}};_l=Xw=aN([Pa(1,pi),Pa(2,Xn),Pa(3,kn),Pa(4,Be),Pa(5,V),Pa(6,X),Pa(7,j),Pa(8,mg)],_l);var tE=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Vu=function(f,u){return function(g,v){u(g,v,f)}};class iE{constructor(f,u,g,v,S,y,D){this.range=f,this.insertText=u,this.filterText=g,this.additionalTextEdits=v,this.command=S,this.gutterMenuLinkAction=y,this.completion=D,this.doNotLog=!0}}var Yw=class f extends mS{constructor(u,g,v,S,y,D){super(y.disposable);this.model=u,this.line=g,this.word=v,this.completionModel=S,this._suggestMemoryService=D}canBeReused(u,g,v){return this.model===u&&this.line===g&&this.word.word.length>0&&this.word.startColumn===v.startColumn&&this.word.endColumn<v.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){let u=[],{items:g}=this.completionModel,v=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},g),S=Ce.slice(g,v),y=Ce.slice(g,0,v),D=5;for(let T of Ce.concat(S,y)){if(T.score===Cr.Default)continue;let R=new t(T.editStart.lineNumber,T.editStart.column,T.editInsertEnd.lineNumber,T.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),K=T.completion.insertTextRules&&T.completion.insertTextRules&4?{snippet:T.completion.insertText}:T.completion.insertText;if(u.push(new iE(R,K,T.filterTextLow??T.labelLow,T.completion.additionalTextEdits,T.completion.command,T.completion.action,T)),D-->=0)T.resolve(he.None)}return u}};Yw=tE([Vu(5,dl)],Yw);var Jw=class f extends n{constructor(u,g,v,S){super();this._languageFeatureService=u,this._clipboardService=g,this._suggestMemoryService=v,this._editorService=S,this._store.add(u.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(u,g,v,S){if(v.selectedSuggestionInfo)return;let y;for(let ne of this._editorService.listCodeEditors())if(ne.getModel()===u){y=ne;break}if(!y)return;let D=y.getOption(102);if(Ps.isAllOff(D))return;u.tokenization.tokenizeIfCheap(g.lineNumber);let T=u.tokenization.getLineTokens(g.lineNumber),R=T.getStandardTokenType(T.findTokenIndexAtOffset(Math.max(g.column-1-1,0)));if(Ps.valueFor(D,R)!=="inline")return;let K=u.getWordAtPosition(g),q;if(!K?.word)q=this._getTriggerCharacterInfo(u,g);if(!K?.word&&!q)return;if(!K)K=u.getWordUntilPosition(g);if(K.endColumn!==g.column)return;let ee,te=u.getValueInRange(new t(g.lineNumber,1,g.lineNumber,g.column));if(!q&&this._lastResult?.canBeReused(u,g.lineNumber,K)){let ne=new Cf(te,g.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=ne,this._lastResult.acquire(),ee=this._lastResult}else{let ne=await Hu(this._languageFeatureService.completionProvider,u,g,new Id(void 0,_l.createSuggestFilter(y).itemKind,q?.providers),q&&{triggerKind:1,triggerCharacter:q.ch},S),re;if(ne.needsClipboard)re=await this._clipboardService.readText();let ae=new ds(ne.items,g.column,new Cf(te,0),On.None,y.getOption(134),y.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},re);ee=new Yw(u,g.lineNumber,K,ae,ne,this._suggestMemoryService)}return this._lastResult=ee,ee}handleItemDidShow(u,g){g.completion.resolve(he.None)}disposeInlineCompletions(u){u.release()}_getTriggerCharacterInfo(u,g){let v=u.getValueInRange(t.fromPositions({lineNumber:g.lineNumber,column:g.column-1},g)),S=new Set;for(let y of this._languageFeatureService.completionProvider.all(u))if(y.triggerCharacters?.includes(v))S.add(y);if(S.size===0)return;return{providers:S,ch:v}}};Jw=tE([Vu(0,j),Vu(1,Xn),Vu(2,dl),Vu(3,ye)],Jw);Ia(Jw);var lN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},hN=function(f,u){return function(g,v){u(g,v,f)}};function nE(f){if(f instanceof Qw)return f._instance;return f}class Qw{constructor(f){this.instantiationService=f}init(...f){}}function rE(f){return f.get()}var oE=class f extends Qw{constructor(u,g){super(g);this.init(u)}};oE=lN([hN(1,L)],oE);class kd{validateOrThrow(f){let u=this.validate(f);if(u.error)throw Error(u.error.message);return u.content}}class zu extends kd{constructor(f){super();this.type=f}validate(f){if(typeof f!==this.type)return{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof f}`}};return{content:f,error:void 0}}getJSONSchema(){return{type:this.type}}}var uN=new zu("string");function sE(){return uN}new zu("number");var gN=new zu("boolean");function eS(){return gN}new zu("object");class aE extends kd{validate(f){return{content:f,error:void 0}}getJSONSchema(){return{}}}function dE(){return new aE}class tS extends kd{validate(f){if(f!==void 0)return{content:void 0,error:{message:`Expected undefined, but got ${typeof f}`}};return{content:void 0,error:void 0}}getJSONSchema(){return{}}}function cE(){return new tS}class If{constructor(f){this.validator=f}}function Ku(f){return new If(f)}class lE extends kd{constructor(f){super();this.properties=f}validate(f){if(typeof f!=="object"||f===null)return{content:void 0,error:{message:"Expected object"}};let u={};for(let g in this.properties){let v=this.properties[g],S=f[g],y=v instanceof If,D=y?v.validator:v;if(y&&S===void 0)continue;let{content:T,error:R}=D.validate(S);if(R)return{content:void 0,error:{message:`Error in property '${g}': ${R.message}`}};u[g]=T}return{content:u,error:void 0}}getJSONSchema(){let f=[],u={};for(let[v,S]of Object.entries(this.properties)){let y=S instanceof If,D=y?S.validator:S;if(u[v]=D.getJSONSchema(),!y)f.push(v)}return{type:"object",properties:u,...f.length>0?{required:f}:{}}}}function hE(f){return new lE(f)}class uE extends kd{constructor(f){super();this.validators=f}validate(f){let u;for(let g of this.validators){let{content:v,error:S}=g.validate(f);if(!S)return{content:v,error:void 0};u=S}return{content:void 0,error:u}}getJSONSchema(){return{oneOf:sI(this.validators,(f)=>{if(f instanceof tS)return;return f.getJSONSchema()})}}}function gE(...f){return new uE(f)}class pE extends kd{constructor(f,u){super();this._ref=f,this._validator=u}validate(f){return this._validator.validate(f)}getJSONSchema(){return{$ref:this._ref}}}function mE(f,u){return new pE(f,u)}var pN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},fE=function(f,u){return function(g,v){u(g,v,f)}};function _E(f){return f.sourceId+" @@ "+JSON.stringify({...f,modelUri:f.modelUri?.toString(),sourceId:void 0})}var wl=class f extends n{static cast(){return this}constructor(u,g,v){super();this._key=u,this._contextKeyService=g,this._dataChannelService=v,this._isEnabledContextKeyValue=mN("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map((S)=>S!==void 0)}log(u){if(!this._isEnabledContextKeyValue.get())return!1;return this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(u),!0}};wl=pN([fE(1,V),fE(2,wg)],wl);function mN(f,u){return Le(u.onDidChangeContext,()=>u.getContextKeyValue(f))}var fN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},bE=function(f,u){return function(g,v){u(g,v,f)}},Lf=class f extends n{constructor(u,g,v){super();this._editor=u,this._instantiationService=g,this._loggerService=v,this._structuredLogger=this._register(this._instantiationService.createInstance(wl.cast(),"editor.inlineSuggest.logChangeReason.commandId"));let S=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),y=Le(this,S.onDidChangeLogLevel,()=>S.getLevel());this._register(H((D)=>{if(!wS(y.read(D),Pi.Trace))return;D.store.add(this._editor.onDidChangeModelContent((T)=>{if(this._editor.getModel()?.uri.scheme==="output")return;S.trace("onDidChangeModelContent: "+T.detailedReasons.map((R)=>R.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(H((D)=>{if(!(this._editor instanceof hl))return;if(!this._structuredLogger.isEnabled.read(D))return;D.store.add(this._editor.onDidChangeModelContent((T)=>{let R=this._editor.getModel();if(!R)return;let K=T.detailedReasons[0],q={...K.metadata,sourceId:"TextModel.setChangeReason",source:K.metadata.source,time:Date.now(),modelUri:R.uri,modelVersion:R.getVersionId()};setTimeout(()=>{this._structuredLogger.log(q)},0)}))}))}};Lf=fN([bE(1,L),bE(2,Yx)],Lf);function Ed(f){return new vE(f)}class vE extends qv{constructor(f){super();this._textModel=f}getOffset(f){return this._textModel.getOffsetAt(f)}getPosition(f){return this._textModel.getPositionAt(f)}}var _N=[];function wE(){return _N}function iS(f){return bN(f).map((g)=>g.getEndPosition())}function bN(f){let u=Dv.createSortPermutation(f,Cn((S)=>S.range,t.compareRangesUsingStarts)),v=new mo(u.apply(f)).getNewRanges();return u.inverse().apply(v)}function SE(f,u){let g=Ed(u),v=u.getValue();return f.map((D)=>g.getStringReplacement(D)).map((D)=>D.removeCommonSuffixPrefix(v)).map((D)=>g.getTextReplacement(D))}function CE(f,u){let g=M("result",[]),v=[];return u.add(H((S)=>{let y=f.read(S);Fe((D)=>{if(y.length!==v.length){v.length=y.length;for(let T=0;T<v.length;T++)if(!v[T])v[T]=M("item",y[T]);g.set([...v],D)}v.forEach((T,R)=>T.set(y[R],D))})})),g}class oS{constructor(f){this._contextKeyService=f}bind(f,u){return jr(f,this._contextKeyService,u instanceof Function?u:(g)=>u.read(g))}}function nS(f,u){return new Promise((g)=>{let v=void 0,S=setTimeout(()=>{if(v)v.dispose();g()},f);if(u)v=u.onCancellationRequested(()=>{if(clearTimeout(S),v)v.dispose();g()})})}class Sl{static message(f){return new Sl(void 0,f)}constructor(f,u=void 0){this.error=f,this.message=u}static is(f){return f instanceof Sl}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 kf{static startNow(f,u,g,v=yE){return new kf(f,u,g,Date.now(),v)}constructor(f,u,g,v,S=yE){if(this.startValue=f,this.endValue=u,this.durationMs=g,this.startTimeMs=v,this._interpolationFunction=S,f===u)this.durationMs=0}isFinished(f){return f>=this.startTimeMs+this.durationMs}getValue(f){let u=f-this.startTimeMs;if(u>=this.durationMs)return this.endValue;return this._interpolationFunction(u,this.startValue,this.endValue-this.startValue,this.durationMs)}}function yE(f,u,g,v){return f===v?u+g:g*(-Math.pow(2,-10*f/v)+1)+u}function xE(f,u,g,v){return g*((f=f/v-1)*f*f+1)+u}class rS{constructor(f){this._value=f}getValue(f){let u=Date.now();if(!this._value.isFinished(u))Hm.instance.invalidateOnNextAnimationFrame(f);return this._value.getValue(u)}isFinished(f){let u=Date.now(),g=this._value.isFinished(u);if(!g)Hm.instance.invalidateOnNextAnimationFrame(f);return g}}class Hm{constructor(){this._counter=Mi(this),this._isScheduled=!1}static{this.instance=new Hm}invalidateOnNextAnimationFrame(f){if(this._counter.read(f),!this._isScheduled)this._isScheduled=!0,Me().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()})}_update(){this._counter.trigger(void 0)}}class As{constructor(f,u){this.lineNumber=f,this.parts=u,fs(()=>Tc(u,(g,v)=>g.column<=v.column))}equals(f){return this.lineNumber===f.lineNumber&&this.parts.length===f.parts.length&&this.parts.every((u,g)=>u.equals(f.parts[g]))}renderForScreenReader(f){if(this.parts.length===0)return"";let u=this.parts[this.parts.length-1],g=f.substr(0,u.column-1);return new mo([...this.parts.map((S)=>new ct(t.fromPositions(new r(1,S.column)),S.lines.map((y)=>y.line).join(`
|
|
34
|
-
`)))]).applyToString(g).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((f)=>f.lines.length===0)}get lineCount(){return 1+this.parts.reduce((f,u)=>f+u.lines.length-1,0)}}class Dd{constructor(f,u,g,v=[]){this.column=f,this.text=u,this.preview=g,this._inlineDecorations=v,this.lines=ei(this.text).map((S,y)=>({line:S,lineDecorations:Ii.filter(this._inlineDecorations,y+1,1,S.length+1)}))}equals(f){return this.column===f.column&&this.lines.length===f.lines.length&&this.lines.every((u,g)=>u.line===f.lines[g].line&&Ii.equalsArr(u.lineDecorations,f.lines[g].lineDecorations))}}class Uu{constructor(f,u,g,v=0){this.lineNumber=f,this.columnRange=u,this.text=g,this.additionalReservedLineCount=v,this.parts=[new Dd(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=ei(this.text)}renderForScreenReader(f){return this.newLines.join(`
|
|
35
|
-
`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((f)=>f.lines.length===0)}equals(f){return this.lineNumber===f.lineNumber&&this.columnRange.equals(f.columnRange)&&this.newLines.length===f.newLines.length&&this.newLines.every((u,g)=>u===f.newLines[g])&&this.additionalReservedLineCount===f.additionalReservedLineCount}}function sS(f,u){return Ge(f,u,aS)}function aS(f,u){if(f===u)return!0;if(!f||!u)return!1;if(f instanceof As&&u instanceof As)return f.equals(u);if(f instanceof Uu&&u instanceof Uu)return f.equals(u);return!1}function Qo(f,u,g){let v=g?f.range.intersectRanges(g):f.range;if(!v)return f;let S=f.text.replaceAll(`\r
|
|
36
|
-
`,`
|
|
37
|
-
`),y=u.getValueInRange(v,1),D=uo(y,S),T=Nt.ofText(y.substring(0,D)).addToPosition(f.range.getStartPosition()),R=S.substring(D),K=t.fromPositions(T,f.range.getEndPosition());return new ct(K,R)}function Ef(f,u){return f.text.startsWith(u.text)&&vN(f.range,u.range)}function vN(f,u){return u.getStartPosition().equals(f.getStartPosition())&&u.getEndPosition().isBeforeOrEqual(f.getEndPosition())}function DS(f,u,g,v,S=0){let y=Qo(f,u);if(y.range.endLineNumber!==y.range.startLineNumber)return;let D=u.getLineContent(y.range.startLineNumber),T=Ct(D).length;if(y.range.startColumn-1<=T){let re=Ct(y.text).length,ae=D.substring(y.range.startColumn-1,T),[ge,ke]=[y.range.getStartPosition(),y.range.getEndPosition()],Ae=ge.column+ae.length<=ke.column?ge.delta(0,ae.length):ke,He=t.fromPositions(Ae,ke),Ke=y.text.startsWith(ae)?y.text.substring(ae.length):y.text.substring(re);y=new ct(He,Ke)}let K=u.getValueInRange(y.range),q=wN(K,y.text);if(!q)return;let ee=y.range.startLineNumber,te=[];if(g==="prefix"){let re=q.filter((ae)=>ae.originalLength===0);if(re.length>1||re.length===1&&re[0].originalStart!==K.length)return}let ne=y.text.length-S;for(let re of q){let ae=y.range.startColumn+re.originalStart+re.originalLength;if(g==="subwordSmart"&&v&&v.lineNumber===y.range.startLineNumber&&ae<v.column)return;if(re.originalLength>0)return;if(re.modifiedLength===0)continue;let ge=re.modifiedStart+re.modifiedLength,ke=Math.max(re.modifiedStart,Math.min(ge,ne)),Ae=y.text.substring(re.modifiedStart,ke),He=y.text.substring(ke,Math.max(re.modifiedStart,ge));if(Ae.length>0)te.push(new Dd(ae,Ae,!1));if(He.length>0)te.push(new Dd(ae,He,!0))}return new As(ee,te)}var Df=void 0;function wN(f,u){if(Df?.originalValue===f&&Df?.newValue===u)return Df?.changes;else{let g=LE(f,u,!0);if(g){let v=IE(g);if(v>0){let S=LE(f,u,!1);if(S&&IE(S)<v)g=S}}return Df={originalValue:f,newValue:u,changes:g},g}}function IE(f){let u=0;for(let g of f)u+=g.originalLength;return u}function LE(f,u,g){if(f.length>5000||u.length>5000)return;function v(K){let q=0;for(let ee=0,te=K.length;ee<te;ee++){let ne=K.charCodeAt(ee);if(ne>q)q=ne}return q}let S=Math.max(v(f),v(u));function y(K){if(K<0)throw Error("unexpected");return S+K+1}function D(K){let q=0,ee=0,te=new Int32Array(K.length);for(let ne=0,re=K.length;ne<re;ne++)if(g&&K[ne]==="("){let ae=ee*100+q;te[ne]=y(2*ae),q++}else if(g&&K[ne]===")"){q=Math.max(q-1,0);let ae=ee*100+q;if(te[ne]=y(2*ae+1),q===0)ee++}else te[ne]=K.charCodeAt(ne);return te}let T=D(f),R=D(u);return new ws({getElements:()=>T},{getElements:()=>R}).ComputeDiff(!1).changes}function kE(f,u){let g=void 0,v=!1,S=new jv(new Yn(f,void 0,u.update),(y,D)=>{if(!v)g=u.initial instanceof Function?u.initial():u.initial,v=!0;let T=u.update(y,g,D);return g=T,T},u.changeTracker,()=>{if(v)u.disposeFinal?.(g),v=!1},u.equalityComparer??So,(y,D,T)=>{if(!v)throw new P("Can only set when there is a listener! This is to prevent leaks.");zl(D,(R)=>{g=y,S.setValue(y,R,T)})},At.ofCaller());return S}var SN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},EE=function(f,u){return function(g,v){u(g,v,f)}};class DE{constructor(f,u){this._baseService=f,this._intercept=u}publicLog2(f,u){this._intercept(f,u),this._baseService.publicLog2(f,u)}}var Tf=class f extends DE{constructor(u,g){super(u,(v,S)=>{let y=!0;if(S&&MS in S)y=Boolean(S[MS]);if(y)g.getDataChannel("editTelemetry").sendData({eventName:v,data:S??{}})})}};Tf=SN([EE(0,kn),EE(1,wg)],Tf);var MS=Symbol("shouldForwardToChannel");function TE(f){return{[MS]:f}}function OS(f){if(!f)return!1;let u=f.toLowerCase();return u==="github.copilot"||u==="github.copilot-chat"}function RE(f,u){f.publicLog2("inlineCompletion.endOfLife",u)}var CN=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function yN(f){return CN.has(f)}function xN(f){return/[a-zA-Z0-9_]/.test(f)}function IN(f){return f===" "||f==="\t"}function Rf(f){let u=f.split(/\r\n|\r|\n/);if(u.length>1)return{kind:"multiLine",lineCount:u.length};let g=f.length===1,v;if(g){if(yN(f))v="syntactical";else if(xN(f))v="identifier";else if(IN(f))v="whitespace"}let S=f.match(/[ \t]+/g)||[],y=S.some((q)=>q.length>1),D=S.some((q)=>q.includes(" ")||q.includes("\t\t")),T=f.split(/\s+/).filter((q)=>q.length>0),R=T.length===1&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(T[0]),K=T.length>1;return{kind:"singleLine",isSingleCharacter:g,singleCharacterKind:v,isWord:R,isMultipleWords:K,isMultipleWhitespace:y,hasDuplicatedWhitespace:D}}class NE{constructor(f){this.edits=f}toString(){return JSON.stringify({edits:this.edits})}}function FS(f,u,g){if(f.replacements.length===0)return;return new NE(f.replacements.map((v)=>LN(v,u)))}function PS(f){if(f.length===0)return 0;return f.split(/\r\n|\r|\n/).length-1}function LN(f,u,g){let{replaceRange:v,newText:S}=f,y=v.length,D=S.length,T=PS(S);switch(v.isEmpty?"insert":S.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:kN(v.start,S,u),charactersInserted:D,charactersDeleted:0,linesInserted:T,linesDeleted:0};case"delete":{let K=u.getValue().substring(v.start,v.endExclusive);return{operation:"delete",properties:EN(v.start,v.endExclusive,u),charactersInserted:0,charactersDeleted:y,linesInserted:0,linesDeleted:PS(K)}}case"replace":{let K=u.getValue().substring(v.start,v.endExclusive);return{operation:"replace",properties:DN(K,S),charactersInserted:D,charactersDeleted:y,linesInserted:T,linesDeleted:PS(K)}}}}function kN(f,u,g,v){let S=Rf(u),y=g.getPositionAt(f),D=g.getLineContent(y.lineNumber),T=D.length,R,K=D.trim().length===0,q=y.column>T,ee=y.column===1;if(K)R="emptyLine";else if(q)R="endOfLine";else if(ee)R="startOfLine";else R="middleOfLine";let te;return{textShape:S,locationShape:R,relativeToCursor:te}}function EN(f,u,g){let v=g.getValue().substring(f,u),S=Rf(v),y=g.getPositionAt(f),D=g.getPositionAt(u),T=g.getLineContent(D.lineNumber),R=D.column>T.length,K=y.lineNumber===D.lineNumber&&y.column===1&&D.column>T.length;return{textShape:S,isAtEndOfLine:R,deletesEntireLineContent:K}}function DN(f,u){let g=Rf(f),v=Rf(u),S=g.kind==="singleLine"&&g.isWord,y=v.kind==="singleLine"&&v.isWord,D=S&&y,T=u.length>f.length,R=u.length<f.length,K=g.kind==="singleLine"&&v.kind==="singleLine",q=g.kind==="singleLine"&&v.kind==="multiLine",ee=g.kind==="multiLine"&&v.kind==="singleLine";return{isWordToWordReplacement:D,isAdditive:T,isSubtractive:R,isSingleLineToSingleLine:K,isSingleLineToMultiLine:q,isMultiLineToSingleLine:ee}}function Nf(f,u,g,v){let S=Qo(f,g),y=f.range;if(!y||u&&!u.getStartPosition().equals(y.getStartPosition())||v.lineNumber!==S.range.startLineNumber||S.isEmpty)return!1;let D=g.getValueInRange(S.range,1),T=S.text,R=Math.max(0,v.column-S.range.startColumn),K=T.substring(0,R),q=T.substring(R),ee=D.substring(0,R),te=D.substring(R),ne=g.getLineIndentColumn(S.range.startLineNumber);if(S.range.startColumn<=ne){if(ee=ee.trimStart(),ee.length===0)te=te.trimStart();if(K=K.trimStart(),K.length===0)q=q.trimStart()}return K.startsWith(ee)&&!!TS(te,q)}var Mf;(function(f){function u(g){return g?.command.id??void 0}f.toString=u})(Mf||(Mf={}));class cs extends Bp{static snapshot(f){return new cs(f)}constructor(f){super();this._textModel=f,this._version=f.getVersionId()}get uri(){return this._textModel.uri}_assertValid(){if(this._textModel.getVersionId()!==this._version)J(Error(`TextModel has changed: expected version ${this._version}, got ${this._textModel.getVersionId()}`))}targets(f){return this._textModel.uri.toString()===f.uri.toString()}getValueOfRange(f){return this._assertValid(),this._textModel.getValueInRange(f)}getLineLength(f){return this._assertValid(),this._textModel.getLineLength(f)}get length(){this._assertValid();let f=this._textModel.getLineCount(),u=this._textModel.getLineLength(f);return new Nt(f-1,u)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(f){return this._assertValid(),this._textModel.getPositionAt(f)}getValueInRange(f){return this._assertValid(),this._textModel.getValueInRange(f)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var Cl;(function(f){function u(g,v,S=!0){if(!g.isInlineEdit&&!g.action?.uri&&g.action?.kind==="edit")return qu.create(g,v,g.action);else return ju.create(g,v,S)}f.create=u})(Cl||(Cl={}));function TN(f){let u=f?.kind==="edit"?{...f,alternativeAction:Mf.toString(f.alternativeAction),target:f?.target.uri.toString()}:{...f,target:f?.target.uri.toString()};return JSON.stringify(u)}class HS{constructor(f,u,g,v){this._data=f,this.identity=u,this.hint=g,this.originalTextRef=v}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===Po.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 P("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 TN(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(f,u,g,v,S){let y=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(f,y,u,g,this.computeEditKind(v),S)}reportPartialAccept(f,u,g){this._data.reportPartialAccept(f,u,g)}reportEndOfLife(f){this._data.reportEndOfLife(f)}setEndOfLifeReason(f){this._data.setEndOfLifeReason(f)}setIsPreceeded(f){this._data.setIsPreceeded(f.partialAccepts)}setNotShownReasonIfNotSet(f){this._data.setNotShownReason(f)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(f){this._data.setRenameProcessingInfo(f)}withAction(f){return this._data.withAction(f)}addPerformanceMarker(f){this._data.addPerformanceMarker(f)}}class Pf{constructor(){this._onDispose=Mi(this),this.onDispose=this._onDispose,this._jumpedTo=M(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+Pf.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(f){this._jumpedTo.set(!0,f)}}class $u{static create(f){return new $u(t.lift(f.range),f.content,f.style)}constructor(f,u,g){this.range=f,this.content=u,this.style=g}withEdit(f,u){let g=new B(u.getOffset(this.range.getStartPosition()),u.getOffset(this.range.getEndPosition())),v=xS([g],f)[0];if(!v)return;let S=u.getRange(v);return new $u(S,this.content,this.style)}}class qu extends HS{static create(f,u,g){let v=new Pf,S=u.getTransformer(),y=g.insertText.replace(/\r\n|\r|\n/g,u.getEOL()),D=MN(new qn(S.getOffsetRange(g.range),y),u),T=D.removeCommonSuffixAndPrefix(u.getValue()),R=S.getTextReplacement(D),K=f.hint?$u.create(f.hint):void 0;return new qu(D,T,R,R.range,g.snippetInfo,f.additionalTextEdits,f,v,K,u)}constructor(f,u,g,v,S,y,D,T,R,K){super(D,T,R,K);this._edit=f,this._trimmedEdit=u,this._textEdit=g,this._originalRange=v,this.snippetInfo=S,this.additionalTextEdits=y,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new eo([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(f){return new qu(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,f,this.hint,this.originalTextRef)}withEdit(f,u){if(!this.originalTextRef.targets(u))return this;let g=xS([this._edit.replaceRange],f);if(g.length===0)return;let v=new qn(g[0],this._textEdit.text),S=Ed(u),y=S.getTextReplacement(v),D=this.hint;if(D){if(D=D.withEdit(f,S),!D)return}let T=v.removeCommonSuffixAndPrefix(u.getValue());return new qu(v,T,y,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,D,this.originalTextRef)}canBeReused(f,u){let g=this._textEdit.range;return!!g&&g.containsPosition(u)&&this.isVisible(f,u)&&Nt.ofRange(g).isGreaterThanOrEqualTo(Nt.ofRange(this._originalRange))}isVisible(f,u){let g=this.getSingleTextEdit();return Nf(g,this._originalRange,f,u)}computeEditKind(f){return FS(new eo([this._edit]),f)}get editRange(){return this.getSingleTextEdit().range}}class ju extends HS{static create(f,u,g=!0){let v,S=[];if(f.action?.kind==="edit"){let T=g?RN(u,f.action.range,f.action.insertText):NN(u,f.action.range,f.action.insertText),R=mo.fromStringEdit(T,u),K=T.isEmpty()?new ct(new t(1,1,1,1),""):R.toReplacement(u);S=T.replacements.map((q)=>{let ee=t.fromPositions(u.getPositionAt(q.replaceRange.start),u.getTransformer().getPosition(q.replaceRange.endExclusive)),te=u.getValueInRange(ee);return Of.create(q,te)}),v={kind:"edit",snippetInfo:f.action.snippetInfo,stringEdit:T,textReplacement:K,alternativeAction:f.action.alternativeAction,target:u}}else if(f.action?.kind==="jumpTo")v={kind:"jumpTo",position:f.action.position,offset:u.getTransformer().getOffset(f.action.position),target:u};else if(v=void 0,!f.hint)throw new P("InlineEditItem: action is undefined and no hint is provided");let y=new Pf,D=f.hint?$u.create(f.hint):void 0;return new ju(v,f,y,S,D,!1,u.getVersionId(),u)}constructor(f,u,g,v,S,y=!1,D,T){super(u,g,S,T);this._action=f,this._edits=v,this._lastChangePartOfInlineEdit=y,this._inlineEditModelVersion=D,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get action(){return this._action}withIdentity(f){return new ju(this._action,this._data,f,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(f,u){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===f.getVersionId()}withEdit(f,u){if(!this.originalTextRef.targets(u))return this;return this._applyTextModelChanges(f,this._edits,u)}_applyTextModelChanges(f,u,g){let v=Ed(g),S=!1,y=this._inlineEditModelVersion,D,T=cs.snapshot(g);if(this.action?.kind==="edit"){if(u=u.map((te)=>te.applyTextModelChanges(f)),u.some((te)=>te.edit===void 0))return;let K=g.getVersionId();if(S=u.some((te)=>te.lastChangeUpdatedEdit),S)y=K??-1;if(K===null||y+20<K)return;if(u=u.filter((te)=>!te.edit.isEmpty),u.length===0)return;let q=new eo(u.map((te)=>te.edit));D={kind:"edit",textReplacement:v.getTextEdit(q).toReplacement(new au(g)),snippetInfo:this.snippetInfo,stringEdit:q,alternativeAction:this.action.alternativeAction,target:T}}else if(this.action?.kind==="jumpTo"){let K=this.action.offset,q=f.applyToOffsetOrUndefined(K);if(q===void 0)return;D={kind:"jumpTo",position:v.getPosition(q),offset:q,target:T}}else D=void 0;let R=this.hint;if(R){if(R=R.withEdit(f,v),!R)return}return new ju(D,this._data,this.identity,u,R,S,y,T)}computeEditKind(f){let u=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(!u)return;return FS(u,f)}}function RN(f,u,g){let v=f.getEOL(),S=f.getValueOfRange(u),y=g.replace(/\r\n|\r|\n/g,v),R=zp.getDefault().computeDiff(ei(S),ei(y),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap((te)=>te.innerChanges??[]);function K(te,ne){let re=Nt.fromPosition(ne.getStartPosition());return Nt.ofRange(ne).createRange(re.addToPosition(te))}let q=new xa(y);return new eo(R.map((te)=>{let ne=K(u.getStartPosition(),te.originalRange),re=f.getTransformer().getOffsetRange(ne),ae=q.getValueOfRange(te.modifiedRange),ge=new qn(re,ae),ke=f.getValueOfRange(ne);return ON(ge,ke,R.length,f)}))}function NN(f,u,g){return new eo([new qn(f.getTransformer().getOffsetRange(u),g)])}class Of{static create(f,u){let g=uo(f.newText,u),v=Qr(f.newText,u),S=f.newText.substring(g,f.newText.length-v);return new Of(f,S,g,v)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(f,u,g,v,S=!1){this._edit=f,this._trimmedNewText=u,this._prefixLength=g,this._suffixLength=v,this._lastChangeUpdatedEdit=S}applyTextModelChanges(f){let u=this._clone();return u._applyTextModelChanges(f),u}_clone(){return new Of(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(f){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new P("UpdatedInnerEdits: No edit to apply changes to");let u=this._applyChanges(this._edit,f);if(!u){this._edit=void 0;return}this._edit=u.edit,this._lastChangeUpdatedEdit=u.editHasChanged}_applyChanges(f,u){let g=f.replaceRange.start,v=f.replaceRange.endExclusive,S=f.newText,y=!1,D=this._prefixLength>0||this._suffixLength>0;for(let T=u.replacements.length-1;T>=0;T--){let R=u.replacements[T],K=R.newText.length>0&&R.replaceRange.isEmpty;if(K&&!D&&R.replaceRange.start===g&&S.startsWith(R.newText)){g+=R.newText.length,S=S.substring(R.newText.length),v+=R.newText.length,y=!0;continue}if(K&&D&&R.replaceRange.start===g+this._prefixLength&&this._trimmedNewText.startsWith(R.newText)){v+=R.newText.length,y=!0,this._prefixLength+=R.newText.length,this._trimmedNewText=this._trimmedNewText.substring(R.newText.length);continue}if(R.newText.length===0&&R.replaceRange.length>0&&R.replaceRange.start>=g+this._prefixLength&&R.replaceRange.endExclusive<=v-this._suffixLength){v-=R.replaceRange.length,y=!0;continue}if(R.equals(f)){y=!0,g=R.replaceRange.endExclusive,S="";continue}if(R.replaceRange.start>v)continue;if(R.replaceRange.endExclusive<g){g+=R.newText.length-R.replaceRange.length,v+=R.newText.length-R.replaceRange.length;continue}return}if(this._trimmedNewText.length===0&&g+this._prefixLength===v-this._suffixLength)return{edit:new qn(new B(g+this._prefixLength,g+this._prefixLength),""),editHasChanged:!0};return{edit:new qn(new B(g,v),S),editHasChanged:y}}}function MN(f,u){let g=u.getEOL();if(f.replaceRange.isEmpty&&f.newText.includes(g))f=ME(f,u);return f}function ON(f,u,g,v){let S=v.getEOL();if(f.newText.endsWith(S)&&u.endsWith(S))f=new qn(f.replaceRange.deltaEnd(-S.length),f.newText.slice(0,-S.length));if(g===1&&f.replaceRange.isEmpty&&f.newText.includes(S)){let y=v.getTransformer().getPosition(f.replaceRange.start);if(v.getLineLength(y.lineNumber)!==0)f=ME(f,v)}if(g===1){let y=uo(u,f.newText),D=Qr(u.slice(y),f.newText.slice(y));if(y+D===u.length)return new qn(f.replaceRange.deltaStart(y).deltaEnd(-D),f.newText.substring(y,f.newText.length-D));if(y+D===f.newText.length)return new qn(f.replaceRange.deltaStart(y).deltaEnd(-D),"")}return f}function ME(f,u){if(!f.replaceRange.isEmpty)throw new P("Unexpected original range");if(f.replaceRange.start===0)return f;let g=u.getEOL(),v=u.getTransformer().getPosition(f.replaceRange.start),{column:S,lineNumber:y}=v;if(S===1&&y>1&&f.newText.endsWith(g)&&!f.newText.startsWith(g))return new qn(f.replaceRange.delta(-1),g+f.newText.slice(0,-g.length));return f}function OE(f,u){let g=new oy,v=new sy(g,(K)=>u.getLanguageConfiguration(K)),S=new ry(new PE([f]),v),y=ay(S,[],void 0,!0),D="",T=f.getLineContent();function R(K,q){if(K.kind===2){if(R(K.openingBracket,q),q=tn(q,K.openingBracket.length),K.child)R(K.child,q),q=tn(q,K.child.length);if(K.closingBracket)R(K.closingBracket,q),q=tn(q,K.closingBracket.length);else{let te=v.getSingleLanguageBracketTokens(K.openingBracket.languageId).findClosingTokenText(K.openingBracket.bracketIds);D+=te}}else if(K.kind===3);else if(K.kind===0||K.kind===1)D+=T.substring(hg(q),hg(tn(q,K.length)));else if(K.kind===4)for(let ee of K.children)R(ee,q),q=tn(q,ee.length)}return R(y,Vi),D}class PE{constructor(f){this.lines=f,this.tokenization={getLineTokens:(u)=>this.lines[u-1]}}getLineCount(){return this.lines.length}getLineLength(f){return this.lines[f-1].getLineContent().length}}var ci;(function(f){f.Jump="jump",f.Accept="accept",f.Inactive="inactive"})(ci||(ci={}));class qo{static create(f,u=!1){return new qo(new Vn(F(f),f),u)}constructor(f,u=!1){this.event=f,this.alternativeAction=u}}var ht;(function(f){f.GhostText="ghostText",f.Custom="custom",f.SideBySide="sideBySide",f.Deletion="deletion",f.InsertionInline="insertionInline",f.InsertionMultiLine="insertionMultiLine",f.WordReplacements="wordReplacements",f.LineReplacement="lineReplacement",f.Collapsed="collapsed",f.JumpTo="jumpTo"})(ht||(ht={}));class yl{constructor(f,u,g,v,S,y,D,T){this.cursorColumnDistance=f,this.cursorLineDistance=u,this.lineCountOriginal=g,this.lineCountModified=v,this.characterCountOriginal=S,this.characterCountModified=y,this.disjointReplacements=D,this.sameShapeReplacements=T,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0,this.isForAnotherDocument=void 0}setLongDistanceViewData(f,u){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(u-f)}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 Af{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(f,u){let g=new Af;for(let v of f)g._nodes.add(v);for(let v of f){let S=u(v);if(S.length>0){let y=new Set;for(let D of S)y.add(D);g._outgoingEdges.set(v,y)}}return g}removeCycles(){let f=[],u=new Set,g=new Set,v=[],S=(y)=>{u.add(y),g.add(y);let D=this._outgoingEdges.get(y);if(D){for(let T of D)if(!u.has(T))S(T);else if(g.has(T))f.push(T),v.push({from:y,to:T})}g.delete(y)};for(let y of this._nodes)if(!u.has(y))S(y);for(let{from:y,to:D}of v){let T=this._outgoingEdges.get(y);if(T)T.delete(D)}return{foundCycles:f}}getOutgoing(f){let u=this._outgoingEdges.get(f);return u?Array.from(u):[]}}function FE(f,u,g,v,S,y){let D=s0("icr"),T=new Oe,R=void 0,K={...v,requestUuid:D},q=AN(u,g),ee=qI(f,(ke)=>ke.groupId),te=Af.from(f,(ke)=>ke.yieldsToGroupIds?.flatMap((Ae)=>ee.get(Ae)??[])??[]),{foundCycles:ne}=te.removeCycles();if(ne.length>0)dt(Error(`Inline completions: cyclic yield-to dependency detected. Path: ${ne.map((ke)=>ke.toString?ke.toString():""+ke).join(" -> ")}`));let re=0,ae=new Km(async(ke)=>{try{if(re++,T.token.isCancellationRequested)return;let Ae=te.getOutgoing(ke);for(let et of Ae){let tt=await ae.get(et);if(tt)for(let ot of tt.inlineSuggestions.items){if(ot.isInlineEdit||typeof ot.insertText!=="string"&&ot.insertText!==void 0)return;if(ot.insertText!==void 0){let je=new ct(t.lift(ot.range)??q,ot.insertText);if(Nf(je,void 0,g,u))return}}}let He,Ke=Date.now();try{He=await ke.provideInlineCompletions(g,u,K,T.token)}catch(et){dt(et);return}let Ue=Date.now();if(!He)return;let Te=[],We=new BE(He,Te,ke);if(We.addRef(),WS(T.token,()=>We.removeRef(R)),T.token.isCancellationRequested)return;for(let et of He.items){let tt=PN(et,We,q,g,y,K,S,{startTime:Ke,endTime:Ue});if(Sl.is(tt)){tt.logError();continue}Te.push(tt)}return We}finally{re--}}),ge=Fn.fromPromisesResolveOrder(f.map((ke)=>ae.get(ke))).filter(Mn);return{contextWithUuid:K,get didAllProvidersReturn(){return re===0},lists:ge,cancelAndDispose:(ke)=>{if(R!==void 0)return;R=ke,T.dispose(!0)}}}function WS(f,u){if(f.isCancellationRequested)return u(),n.None;else{let g=f.onCancellationRequested(()=>{g.dispose(),u()});return{dispose:()=>g.dispose()}}}function PN(f,u,g,v,S,y,D,T){let R,K=f.uri?W.revive(f.uri):void 0;if(f.jumpToPosition!==void 0)R={kind:"jumpTo",position:r.lift(f.jumpToPosition),uri:K};else if(f.insertText!==void 0){let q,ee,te=f.range?t.lift(f.range):g;if(typeof f.insertText==="string"){if(q=f.insertText,S&&f.completeBracketPairs){q=AE(q,te.getStartPosition(),v,S);let ne=q.length-f.insertText.length;if(ne!==0)te=new t(te.startLineNumber,te.startColumn,te.endLineNumber,te.endColumn+ne)}ee=void 0}else if("snippet"in f.insertText){let ne=f.insertText.snippet.length;if(S&&f.completeBracketPairs){f.insertText.snippet=AE(f.insertText.snippet,te.getStartPosition(),v,S);let ae=f.insertText.snippet.length-ne;if(ae!==0)te=new t(te.startLineNumber,te.startColumn,te.endLineNumber,te.endColumn+ae)}let re=new Mo().parse(f.insertText.snippet);if(re.children.length===1&&re.children[0]instanceof Ki)q=re.children[0].value,ee=void 0;else q=re.toString(),ee={snippet:f.insertText.snippet,range:te}}else Za(f.insertText);R={kind:"edit",range:te,insertText:q,snippetInfo:ee,uri:K,alternativeAction:void 0}}else if(R=void 0,!f.hint)return Sl.message("Inline completion has no insertText, jumpToPosition nor hint.");return new HE(R,f.hint,f.additionalTextEdits||wE(),f,u,y,f.isInlineEdit??!1,f.supportsRename??!1,D,T,f.correlationId)}class HE{get action(){return this._action}constructor(f,u,g,v,S,y,D,T,R,K,q){this._action=f,this.hint=u,this.additionalTextEdits=g,this.sourceInlineCompletion=v,this.source=S,this.context=y,this.isInlineEdit=D,this.supportsRename=T,this._requestInfo=R,this._providerRequestInfo=K,this._correlationId=q,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 WE,this._viewData={editorType:R.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(f,u,g,v,S,y){if(this.updateShownDuration(g),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=S,this._viewData.viewKind=g,this._viewData.renderData=v,this._timeUntilShown=y-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;let D=new nf(v.lineCountModified,v.lineCountOriginal,v.characterCountModified,v.characterCountOriginal);if(this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,u,D),this.sourceInlineCompletion.shownCommand)await f.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(f,u,g){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=g.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*g.ratio,1),this._partiallyAcceptedSinceOriginal.count+=g.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,f,u)}reportEndOfLife(f){if(this._didReportEndOfLife)return;if(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),!f)f=this._lastSetEndOfLifeReason??{kind:ma.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(f.kind===ma.Rejected&&!this._didShow)f={kind:ma.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(f.kind===ma.Rejected&&this.source.provider.handleRejection)this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion);if(this.source.provider.handleEndOfLifetime){let u={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((g)=>g.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,f,u)}}setIsPreceeded(f){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=f}setNotShownReason(f){this._notShownReason??=f}setEndOfLifeReason(f){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=f}updateShownDuration(f){let u=Date.now();if(!this._showStartTime)this._showStartTime=u;let g=f===ht.Collapsed;if(!g&&this._showUncollapsedStartTime===void 0)this._showUncollapsedStartTime=u;if(g&&this._showUncollapsedStartTime!==void 0)this._showUncollapsedDuration+=u-this._showUncollapsedStartTime}reportInlineEditHidden(){if(this._showStartTime===void 0)return;let f=Date.now();if(this._shownDuration+=f-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime===void 0)return;this._showUncollapsedDuration+=f-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0}setRenameProcessingInfo(f){if(this._renameInfo)throw new P("Rename info has already been set.");this._renameInfo=f}withAction(f){return this._action=f,this}addPerformanceMarker(f){this.performance.mark(f)}}class WE{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(f){this.markers.push({name:f,timeStamp:Date.now()})}toString(){let f=[];for(let u=1;u<this.markers.length;u++){let g=this.markers[u].timeStamp-this.markers[u-1].timeStamp;f.push({[this.markers[u].name]:g})}return JSON.stringify(f)}}var li;(function(f){f.TextEditor="textEditor",f.DiffEditor="diffEditor",f.Notebook="notebook"})(li||(li={}));class BE{constructor(f,u,g){this.inlineSuggestions=f,this.inlineSuggestionsData=u,this.provider=g,this.refCount=0}addRef(){this.refCount++}removeRef(f={kind:"other"}){if(this.refCount--,this.refCount===0){for(let u of this.inlineSuggestionsData)u.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,f)}else if(this.refCount<0)J(new P(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}}function AN(f,u){let g=u.getWordAtPosition(f),v=u.getLineMaxColumn(f.lineNumber);return g?new t(f.lineNumber,g.startColumn,f.lineNumber,v):t.fromPositions(f,f.with(void 0,v))}function AE(f,u,g,v){let S=g.getLineContent(u.lineNumber),y=qn.replace(new B(u.column-1,S.length),f),T=g.tokenization.tokenizeLinesAt(u.lineNumber,[y.replace(S)])?.[0].sliceZeroCopy(y.getRangeAfterReplace());if(!T)return f;return OE(T,v)}var FN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ff=function(f,u){return function(g,v){u(g,v,f)}},Td=new A("renameInputVisible",!1,e(1460,"Whether the rename input widget is visible"));new A("renameInputFocused",!1,e(1461,"Whether the rename input widget is focused"));var Hf=class f{constructor(u,g,v,S,y,D){this._editor=u,this._acceptKeybindings=g,this._themeService=v,this._keybindingService=S,this._logService=D,this.allowEditorOverflow=!0,this._disposables=new c,this._visibleContextKey=Td.bindTo(y),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new Kt,this._inputWithButton=new VE,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((T)=>{if(T.hasChanged(59))this._updateFont()})),this._disposables.add(v.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 BS(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:(u)=>{this._inputWithButton.input.value=u,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(u){if(!this._domNode)return;let g=u.getColor(Fc),v=u.getColor(sg);this._domNode.style.backgroundColor=String(u.getColor(vo)??""),this._domNode.style.boxShadow=g?` 0 0 8px 2px ${g}`:"",this._domNode.style.border=v?`1px solid ${v}`:"",this._domNode.style.color=String(u.getColor(o0)??"");let S=u.getColor(r0);this._inputWithButton.domNode.style.backgroundColor=String(u.getColor(Xv)??""),this._inputWithButton.input.style.backgroundColor=String(u.getColor(Xv)??""),this._inputWithButton.domNode.style.borderWidth=S?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=S?"solid":"none",this._inputWithButton.domNode.style.borderColor=S?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;Ie(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);let u=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(u.fontSize)}px`}_computeLabelFontSize(u){return u*0.8}getPosition(){if(!this._visible)return null;if(!this._editor.hasModel()||!this._editor.getDomNode())return null;let u=ys(this.getDomNode().ownerDocument.body),g=mt(this._editor.getDomNode()),v=this._getTopForPosition();this._nPxAvailableAbove=v+g.top,this._nPxAvailableBelow=u.height-this._nPxAvailableAbove;let S=this._editor.getOption(75),{totalHeight:y}=xl.getLayoutInfo({lineHeight:S}),D=this._nPxAvailableBelow>y*6?[2,1]:[1,2];return{position:this._position,preference:D}}beforeRender(){let[u,g]=this._acceptKeybindings;return this._label.innerText=e(1462,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(u)?.getLabel(),this._keybindingService.lookupKeybinding(g)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(u){if(u===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Ie(this._renameCandidateListView),Ie(this._nPxAvailableAbove!==void 0),Ie(this._nPxAvailableBelow!==void 0);let g=ya(this._inputWithButton.domNode),v=ya(this._label),S;if(u===2)S=this._nPxAvailableBelow;else S=this._nPxAvailableAbove;this._renameCandidateListView.layout({height:S-v-g,width:ho(this._inputWithButton.domNode)})}acceptInput(u){this._trace("invoking acceptInput"),this._currentAcceptInput?.(u)}cancelInput(u,g){this._currentCancelInput?.(u)}focusNextRenameSuggestion(){if(!this._renameCandidateListView?.focusNext())this._inputWithButton.input.value=this._currentName}focusPreviousRenameSuggestion(){if(!this._renameCandidateListView?.focusPrevious())this._inputWithButton.input.value=this._currentName}getInput(u,g,v,S,y){let{start:D,end:T}=this._getSelection(u,g);this._renameCts=y;let R=new c;if(this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,S===void 0)this._inputWithButton.button.style.display="none";else this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=S,this._requestRenameCandidates(g,!1),R.add(l(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(g,!0))),R.add(l(this._inputWithButton.button,x.KEY_DOWN,(q)=>{let ee=new ze(q);if(ee.equals(3)||ee.equals(10))ee.stopPropagation(),ee.preventDefault(),this._requestRenameCandidates(g,!0)}));this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",v),this._position=new r(u.startLineNumber,u.startColumn),this._currentName=g,this._inputWithButton.input.value=g,this._inputWithButton.input.setAttribute("selectionStart",D.toString()),this._inputWithButton.input.setAttribute("selectionEnd",T.toString()),this._inputWithButton.input.size=Math.max((u.endColumn-u.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),R.add(E(()=>{this._renameCts=void 0,y.dispose(!0)})),R.add(E(()=>{if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0})),R.add(E(()=>this._candidates.clear()));let K=new vs;return K.p.finally(()=>{R.dispose(),this._hide()}),this._currentCancelInput=(q)=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),K.complete(q),!0),this._currentAcceptInput=(q)=>{this._trace("invoking _currentAcceptInput"),Ie(this._renameCandidateListView!==void 0);let ee=this._renameCandidateListView.nCandidates,te,ne,re=this._renameCandidateListView.focusedCandidate;if(re!==void 0)this._trace("using new name from renameSuggestion"),te=re,ne={k:"renameSuggestion"};else this._trace("using new name from inputField"),te=this._inputWithButton.input.value,ne=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"};if(te===g||te.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(),K.complete({newName:te,wantsPreview:v&&q,stats:{source:ne,nRenameSuggestions:ee,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},R.add(y.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),R.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),K.p}_requestRenameCandidates(u,g){if(this._requestRenameCandidatesOnce===void 0)return;if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0);if(Ie(this._renameCts),this._inputWithButton.buttonState!=="stop"){this._renameCandidateProvidersCts=new Oe;let v=g?Op.Invoke:Op.Automatic,S=this._requestRenameCandidatesOnce(v,this._renameCandidateProvidersCts.token);if(S.length===0){this._inputWithButton.setSparkleButton();return}if(!g)this._hadAutomaticRenameSuggestionsInvocation=!0;this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(S,u,this._renameCts.token)}}_getSelection(u,g){Ie(this._editor.hasModel());let v=this._editor.getSelection(),S=0,y=g.length;if(!t.isEmpty(v)&&!t.spansMultipleLines(v)&&t.containsRange(u,v))S=Math.max(0,v.startColumn-u.startColumn),y=Math.min(u.endColumn,v.endColumn)-u.startColumn;return{start:S,end:y}}_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(u,g,v){let S=(...K)=>this._trace("_updateRenameCandidates",...K);S("start");let y=await nl(Promise.allSettled(u),v);if(this._inputWithButton.setSparkleButton(),y===void 0){S("returning early - received updateRenameCandidates results - undefined");return}let D=y.flatMap((K)=>K.status==="fulfilled"&&Mn(K.value)?K.value:[]);S(`received updateRenameCandidates results - total (unfiltered) ${D.length} candidates.`);let T=Kr(D,(K)=>K.newSymbolName);S(`distinct candidates - ${T.length} candidates.`);let R=T.filter(({newSymbolName:K})=>K.trim().length>0&&K!==this._inputWithButton.input.value&&K!==g&&!this._candidates.has(K));if(S(`valid distinct candidates - ${D.length} candidates.`),R.forEach((K)=>this._candidates.add(K.newSymbolName)),R.length<1){S("returning early - no valid distinct candidates");return}S("setting candidates"),this._renameCandidateListView.setCandidates(R),S("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 u=this._editor.getVisibleRanges(),g;if(u.length>0)g=u[0].startLineNumber;else this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),g=Math.max(1,this._position.lineNumber-5);return this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(g)}_trace(...u){this._logService.trace("RenameWidget",...u)}};Hf=FN([Ff(2,De),Ff(3,ce),Ff(4,V),Ff(5,Be)],Hf);class BS{constructor(f,u){this._disposables=new c,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=u.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=u.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",f.appendChild(this._listContainer),this._listWidget=BS._createListWidget(this._listContainer,this._candidateViewHeight,u.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus((g)=>{if(g.elements.length===1)u.onFocusChange(g.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection((g)=>{if(g.elements.length===1)u.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur((g)=>{this._listWidget.setFocus([])})),this._listWidget.style(Ql({listInactiveFocusForeground:Gl,listInactiveFocusBackground:Kl}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:f,width:u}){this._availableHeight=f,this._minimumWidth=u}setCandidates(f){this._listWidget.splice(0,0,f);let u=this._pickListHeight(this._listWidget.length),g=this._pickListWidth(f);this._listWidget.layout(u,g),this._listContainer.style.height=`${u}px`,this._listContainer.style.width=`${g}px`,bo(e(1463,"Received {0} rename suggestions",f.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 f=this._listWidget.getSelectedElements()[0];if(f!==void 0)return f.newSymbolName;let u=this._listWidget.getFocusedElements()[0];if(u!==void 0)return u.newSymbolName;return}focusNext(){if(this._listWidget.length===0)return!1;let f=this._listWidget.getFocus();if(f.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;else if(f[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;else{this._listWidget.focusNext();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;let f=this._listWidget.getFocus();if(f.length===0){this._listWidget.focusLast();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}else if(f[0]===0)return this._listWidget.setFocus([]),!1;else{this._listWidget.focusPrevious();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){let{totalHeight:f}=xl.getLayoutInfo({lineHeight:this._lineHeight});return f}_pickListHeight(f){let u=this._candidateViewHeight*f,g=7;return Math.min(u,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(f){let u=Math.ceil(Math.max(...f.map((v)=>v.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+u+10)}static _createListWidget(f,u,g){let v=new class{getTemplateId(y){return"candidate"}getHeight(y){return u}},S=new class{constructor(){this.templateId="candidate"}renderTemplate(y){return new xl(y,g)}renderElement(y,D,T){T.populate(y)}disposeTemplate(y){y.dispose()}};return new no("NewSymbolNameCandidates",f,v,[S],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class VE{constructor(){this._buttonHoverContent="",this._disposables=new c,this._onDidInputChange=this._disposables.add(new i),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(ri().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(l(this.input,x.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(l(this.input,x.KEY_DOWN,(f)=>{let u=new ze(f);if(u.keyCode===15||u.keyCode===17)this._onDidInputChange.fire()})),this._disposables.add(l(this.input,x.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(l(this.input,x.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(l(this.input,x.BLUR,()=>{this.domNode.style.outline="none"}));return this._domNode}get input(){return Ie(this._inputNode),this._inputNode}get button(){return Ie(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=to(b.sparkle),Xt(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??=to(b.stopCircle),Xt(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 xl{static{this._PADDING=2}constructor(f,u){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=`${u.lineHeight}px`,this._domNode.style.padding=`${xl._PADDING}px`;let g=document.createElement("div");g.style.display="flex",g.style.alignItems="center",g.style.width=g.style.height=`${u.lineHeight*0.8}px`,this._domNode.appendChild(g),this._icon=to(b.sparkle),this._icon.style.display="none",g.appendChild(this._icon),this._label=document.createElement("div"),an(this._label,u),this._domNode.appendChild(this._label),f.appendChild(this._domNode)}populate(f){this._updateIcon(f),this._updateLabel(f)}_updateIcon(f){let u=!!f.tags?.includes(zx.AIGenerated);this._icon.style.display=u?"inherit":"none"}_updateLabel(f){this._label.innerText=f.newSymbolName}static getLayoutInfo({lineHeight:f}){return{totalHeight:f+xl._PADDING*2}}dispose(){}}var HN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Rd=function(f,u){return function(g,v){u(g,v,f)}},VS;class Gu{constructor(f,u,g){this.model=f,this.position=u,this._providerRenameIdx=0,this._providers=g.ordered(f)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(f){let u=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){let v=this._providers[this._providerRenameIdx];if(!v.resolveRenameLocation)break;let S=await v.resolveRenameLocation(this.model,this.position,f);if(!S)continue;if(S.rejectReason){u.push(S.rejectReason);continue}return S}this._providerRenameIdx=0;let g=this.model.getWordAtPosition(this.position);if(!g)return{range:t.fromPositions(this.position),text:"",rejectReason:u.length>0?u.join(`
|
|
38
|
-
`):void 0};return{range:new t(this.position.lineNumber,g.startColumn,this.position.lineNumber,g.endColumn),text:g.word,rejectReason:u.length>0?u.join(`
|
|
39
|
-
`):void 0}}async provideRenameEdits(f,u){return this._provideRenameEdits(f,this._providerRenameIdx,[],u)}async _provideRenameEdits(f,u,g,v){let S=this._providers[u];if(!S)return{edits:[],rejectReason:g.join(`
|
|
40
|
-
`)};let y=await S.provideRenameEdits(this.model,this.position,f,v);if(!y)return this._provideRenameEdits(f,u+1,g.concat(e(1449,"No result.")),v);else if(y.rejectReason)return this._provideRenameEdits(f,u+1,g.concat(y.rejectReason),v);return y}}function zE(f,u){return f.ordered(u).length>0}async function KE(f,u,g,v,S){return new Gu(u,g,f).provideRenameEdits(v,S??he.None)}async function WN(f,u,g,v){let S=new Gu(u,g,f),y=await S.resolveRenameLocation(he.None);if(y?.rejectReason)return{edits:[],rejectReason:y.rejectReason};return S.provideRenameEdits(v,he.None)}var Fa=class f{static{VS=this}static{this.ID="editor.contrib.renameController"}static get(u){return u.getContribution(VS.ID)}constructor(u,g,v,S,y,D,T,R){this.editor=u,this._instaService=g,this._notificationService=v,this._bulkEditService=S,this._progressService=y,this._logService=D,this._configService=T,this._languageFeaturesService=R,this._disposableStore=new c,this._cts=new Oe,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(Hf,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){let u=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Oe,!this.editor.hasModel()){u("editor has no model");return}let g=this.editor.getPosition(),v=new Gu(this.editor.getModel(),g,this._languageFeaturesService.renameProvider);if(!v.hasProvider()){u("skeleton has no provider");return}let S=new Hr(this.editor,5,void 0,this._cts.token),y;try{u("resolving rename location");let re=v.resolveRenameLocation(S.token);this._progressService.showWhile(re,250),y=await re,u("resolved rename location")}catch(re){if(re instanceof er)u("resolve rename location cancelled",JSON.stringify(re,null,"\t"));else if(u("resolve rename location failed",re instanceof Error?re:JSON.stringify(re,null,"\t")),typeof re==="string"||lr(re))Bi.get(this.editor)?.showMessage(re||e(1450,"An unknown error occurred while resolving rename location"),g);return}finally{S.dispose()}if(!y){u("returning early - no loc");return}if(y.rejectReason){u(`returning early - rejected with reason: ${y.rejectReason}`,y.rejectReason),Bi.get(this.editor)?.showMessage(y.rejectReason,g);return}if(S.token.isCancellationRequested){u("returning early - cts1 cancelled");return}let D=new Hr(this.editor,5,y.range,this._cts.token),T=this.editor.getModel(),R=this._languageFeaturesService.newSymbolNamesProvider.all(T),K=await Promise.all(R.map(async(re)=>[re,await re.supportsAutomaticNewSymbolNamesTriggerKind??!1])),q=(re,ae)=>{let ge=K.slice();if(re===Op.Automatic)ge=ge.filter(([ke,Ae])=>Ae);return ge.map(([ke])=>ke.provideNewSymbolNames(T,y.range,re,ae))};u("creating rename input field and awaiting its result");let ee=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),te=await this._renameWidget.getInput(y.range,y.text,ee,R.length>0?q:void 0,D);if(u("received response from rename input field"),typeof te==="boolean"){if(u(`returning early - rename input field response - ${te}`),te)this.editor.focus();D.dispose();return}this.editor.focus(),u("requesting rename edits");let ne=nl(v.provideRenameEdits(te.newName,D.token),D.token).then(async(re)=>{if(!re){u("returning early - no rename edits result");return}if(!this.editor.hasModel()){u("returning early - no model after rename edits are provided");return}if(re.rejectReason){u(`returning early - rejected with reason: ${re.rejectReason}`),this._notificationService.info(re.rejectReason);return}this.editor.setSelection(t.fromPositions(this.editor.getSelection().getPosition())),u("applying edits"),this._bulkEditService.apply(re,{editor:this.editor,showPreview:te.wantsPreview,label:e(1451,"Renaming '{0}' to '{1}'",y?.text,te.newName),code:"undoredo.rename",quotableLabel:e(1452,"Renaming {0} to {1}",y?.text,te.newName),respectAutoSaveConfig:!0,reason:$n.rename(y?.text,te.newName)}).then((ae)=>{if(u("edits applied"),ae.ariaSummary)En(e(1453,"Successfully renamed '{0}' to '{1}'. Summary: {2}",y.text,te.newName,ae.ariaSummary))}).catch((ae)=>{u(`error when applying edits ${JSON.stringify(ae,null,"\t")}`),this._notificationService.error(e(1454,"Rename failed to apply edits")),this._logService.error(ae)})},(re)=>{u("error when providing rename edits",JSON.stringify(re,null,"\t")),this._notificationService.error(e(1455,"Rename failed to compute edits")),this._logService.error(re)}).finally(()=>{D.dispose()});return u("returning rename operation"),this._progressService.showWhile(ne,250),ne}acceptRenameInput(u){this._renameWidget.acceptInput(u)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}};Fa=VS=HN([Rd(1,L),Rd(2,ut),Rd(3,bl),Rd(4,is),Rd(5,Be),Rd(6,tg),Rd(7,j)],Fa);class UE extends z{constructor(){super({id:"editor.action.rename",label:h(1457,"Rename Symbol"),precondition:_.and(o.writable,o.hasRenameProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(f,u){let g=f.get(ye),[v,S]=Array.isArray(u)&&u||[void 0,void 0];if(W.isUri(v)&&r.isIPosition(S))return g.openCodeEditor({resource:v},g.getActiveCodeEditor()).then((y)=>{if(!y)return;y.setPosition(S),y.invokeWithinContext((D)=>(this.reportTelemetry(D,y),this.run(D,y)))},J);return super.runCommand(f,u)}run(f,u){let g=f.get(Be),v=Fa.get(u);if(v)return g.trace("[RenameAction] got controller, running..."),v.run();return g.trace("[RenameAction] returning early - controller missing"),Promise.resolve()}}le(Fa.ID,Fa,4);I(UE);var zS=Bt.bindToContribution(Fa.get);U(new zS({id:"acceptRenameInput",precondition:Td,handler:(f)=>f.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:o.focus,primary:3}}));U(new zS({id:"acceptRenameInputWithPreview",precondition:_.and(Td,_.has("config.editor.rename.enablePreview")),handler:(f)=>f.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:o.focus,primary:2051}}));U(new zS({id:"cancelRenameInput",precondition:Td,handler:(f)=>f.cancelRenameInput(),kbOpts:{weight:199,kbExpr:o.focus,primary:9,secondary:[1033]}}));Ye(class f extends ln{constructor(){super({id:"focusNextRenameSuggestion",title:{...h(1458,"Focus Next Rename Suggestion")},precondition:Td,keybinding:[{primary:18,weight:199}]})}run(u){let g=u.get(ye).getFocusedCodeEditor();if(!g)return;let v=Fa.get(g);if(!v)return;v.focusNextRenameSuggestion()}});Ye(class f extends ln{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...h(1459,"Focus Previous Rename Suggestion")},precondition:Td,keybinding:[{primary:16,weight:199}]})}run(u){let g=u.get(ye).getFocusedCodeEditor();if(!g)return;let v=Fa.get(g);if(!v)return;v.focusPreviousRenameSuggestion()}});fo("_executeDocumentRenameProvider",function(f,u,g,...v){let[S]=v;Ie(typeof S==="string");let{renameProvider:y}=f.get(j);return WN(y,u,g,S)});fo("_executePrepareRename",async function(f,u,g){let{renameProvider:v}=f.get(j),y=await new Gu(u,g,v).resolveRenameLocation(he.None);if(y?.rejectReason)throw Error(y.rejectReason);return y});it.as(or.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 BN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Il=function(f,u){return function(g,v){u(g,v,f)}},Fs;(function(f){f.no="no",f.yes="yes",f.maybe="maybe"})(Fs||(Fs={}));(function(f){function u(g){switch(g){case"no":return f.no;case"yes":return f.yes;case"maybe":return f.maybe;default:return f.no}}f.fromString=u})(Fs||(Fs={}));class qE{constructor(){}inferRename(f,u,g,v){let S=new t(u.startLineNumber,1,u.endLineNumber,f.getLineMaxColumn(u.endLineNumber)),y=u.startColumn-S.startColumn,D=S.endColumn-u.endColumn,T=f.getValueInRange(S),R=f.getValueInRange(new t(S.startLineNumber,S.startColumn,S.startLineNumber,S.startColumn+y))+g+f.getValueInRange(new t(S.endLineNumber,S.endColumn-D,S.endLineNumber,S.endColumn)),K=[],q=[],ee=void 0,te=void 0,ne=void 0,re=f.getOffsetAt(S.getStartPosition()),{changes:ae}=new ws(new Qm(T),new Qm(R)).ComputeDiff(!0);if(ae.length===0)return;let ge=[];for(let He of ae){if(ge.length===0){ge.push(He);continue}let Ke=ge[ge.length-1],Ue=He.originalStart-(Ke.originalStart+Ke.originalLength);if(Ue>0){let Te=re+Ke.originalStart+Ke.originalLength,We=f.getPositionAt(Te),et=f.getWordAtPosition(We);if(et){let tt=f.getOffsetAt(new r(We.lineNumber,et.startColumn)),ot=f.getOffsetAt(new r(We.lineNumber,et.endColumn)),je=Te+Ue;if(tt<=Te&&je<=ot&&tt<=je&&je<=ot){Ke.originalLength=He.originalStart+He.originalLength-Ke.originalStart,Ke.modifiedLength=He.modifiedStart+He.modifiedLength-Ke.modifiedStart;continue}}}ge.push(He)}let ke=0;for(let He of ge){let Ke=T.substring(He.originalStart,He.originalStart+He.originalLength),Ue=R.substring(He.modifiedStart,He.modifiedStart+He.modifiedLength),Te=re+He.originalStart,We=f.getPositionAt(Te),et=Te+He.originalLength,tt=f.getPositionAt(et),ot=t.fromPositions(We,tt),je=Ue.length-He.originalLength;if(/\s/.test(Ke)){K.push(new ct(ot,Ue)),ke+=je;continue}if(Ke.length>0){v.lastIndex=0;let at=v.exec(Ke);if(at===null||at.index!==0||at[0].length!==Ke.length){K.push(new ct(ot,Ue)),ke+=je;continue}}if(/\s/.test(Ue)){K.push(new ct(ot,Ue)),ke+=je;continue}if(Ue.length>0){v.lastIndex=0;let at=v.exec(Ue);if(at===null||at.index!==0||at[0].length!==Ue.length){K.push(new ct(ot,Ue)),ke+=je;continue}}let nt=f.getWordAtPosition(We);if(nt===null){K.push(new ct(ot,Ue)),ke+=je;continue}let _t=He.originalStart+1,st=He.originalLength===0&&He.modifiedLength>0,xt;if(st&&_t===nt.endColumn&&nt.endColumn>nt.startColumn)xt=this.getTokenAtPosition(f,new r(We.lineNumber,nt.startColumn));else xt=this.getTokenAtPosition(f,We);if(nt.startColumn!==xt.range.startColumn||nt.endColumn!==xt.range.endColumn){K.push(new ct(ot,Ue)),ke+=je;continue}if(xt.type===0){let at=f.getValueInRange(xt.range);if(at.length===0){K.push(new ct(ot,Ue)),ke+=je;continue}if(ee===void 0)ee=at;else if(ee!==at){K.push(new ct(ot,Ue)),ke+=je;continue}let gi=f.getOffsetAt(xt.range.getStartPosition())-re+ke,vt=f.getOffsetAt(xt.range.getEndPosition())-re+ke;if(at=R.substring(gi,vt+je),at.length===0){K.push(new ct(ot,Ue)),ke+=je;continue}if(te===void 0)te=at;else if(te!==at){K.push(new ct(ot,Ue)),ke+=je;continue}if(ne===void 0)ne=xt.range.getStartPosition();if(ee!==void 0&&te!==void 0&&ee.length>0&&te.length>0&&ee!==te)q.push(new ct(xt.range,te));else q.push(new ct(ot,Ue));ke+=je}else K.push(new ct(ot,Ue)),ke+=Ue.length-He.originalLength}if(ee===void 0||te===void 0||ne===void 0||ee.length===0||te.length===0||ee===te)return;v.lastIndex=0;let Ae=v.exec(ee);if(Ae===null||Ae.index!==0||Ae[0].length!==ee.length)return;if(v.lastIndex=0,Ae=v.exec(te),Ae===null||Ae.index!==0||Ae[0].length!==te.length)return;return{renames:{edits:q,position:ne,oldName:ee,newName:te},others:{edits:K}}}getTokenAtPosition(f,u){f.tokenization.tokenizeIfCheap(u.lineNumber);let g=f.tokenization.getLineTokens(u.lineNumber),v=g.findTokenIndexAtOffset(u.column-1);return{type:g.getStandardTokenType(v),range:new t(u.lineNumber,1+g.getStartOffset(v),u.lineNumber,1+g.getEndOffset(v))}}}class Zu{static create(f,u){let g=f.getFocusedCodeEditor();if(g===null)return;if(g.getModel()!==u)return;return new Zu(g,u.getVersionId())}constructor(f,u){this.editor=f,this.versionId=u}equals(f){if(f===void 0)return!1;return this.editor===f.editor&&this.versionId===f.versionId}}class jE{constructor(f,u,g,v,S,y,D,T,R){if(this._result=void 0,this._commandService=u,this._textModel=v,this._state=S,this._requestUuid=g,this._cancellationTokenSource=new Oe,T===void 0||R===void 0){this._promise=KE(f.renameProvider,v,y,D,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(v,y,R,D,T)}get requestUuid(){return this._requestUuid}isValid(f){return this._state.equals(Zu.create(f,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;let f=await this.getResult();if(f===void 0||this._cancellationTokenSource.token.isCancellationRequested)return 0;return f.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(f,u,g,v,S){try{let y=await this._commandService.executeCommand("github.copilot.nes.postRename",f.uri,u,g,v,S);if(y===void 0)return{rejectReason:"Rename failed",edits:[]};let D=[];for(let T of y)for(let R of T.changes){let K=new t(R.range.start.line+1,R.range.start.character+1,R.range.end.line+1,R.range.end.character+1),q=new vl(T.file,new ct(K,R.newText??v));D.push(q)}return{edits:D}}catch(y){return{rejectReason:"Rename failed",edits:[]}}}}var Wf=class f extends n{constructor(u,g,v,S,y,D){super();this._commandService=u,this._languageFeaturesService=g,this._languageConfigurationService=v,this._renameSymbolTrackerService=y,this._codeEditorService=D,this._renameInferenceEngine=new qE,this._renameRunnable=void 0,this._register(we.registerCommand(Ev,async(T,R,K)=>{if(K===void 0||!K.isValid(this._codeEditorService))return;try{let q=await K.getWorkspaceEdit();if(q===void 0)return;S.apply(q,{reason:R})}finally{if(this._renameRunnable===K)this._renameRunnable=void 0}}))}async proposeRenameRefactoring(u,g,v){if(!g.supportsRename||g.action?.kind!=="edit"||v.selectedSuggestionInfo)return g;if(!zE(this._languageFeaturesService.renameProvider,u))return g;let S=Zu.create(this._codeEditorService,u);if(S===void 0)return g;let y=Date.now(),D=g.action.textReplacement,T=this._languageConfigurationService.getLanguageConfiguration(u.getLanguageId()),R=this._renameInferenceEngine.inferRename(u,D.range,D.text,T.wordDefinition);if(R===void 0||R.renames.edits.length===0)return g;let{oldName:K,newName:q,position:ee,edits:te}=R.renames,ne=this._renameSymbolTrackerService.trackedWord.get(),re=void 0;if(ne!==void 0&&ne.model===u&&ne.originalWord===K&&ne.currentWord===q)re=ne.currentRange;let ae=!1,ge=await gI(this.checkRenamePrecondition(g,u,ee,K,q,re),100,()=>{ae=!0}),ke=this.isRenamePossible(g,ge,S,u);if(g.setRenameProcessingInfo({createdRename:ke,duration:Date.now()-y,timedOut:ae,droppedOtherEdits:ke?R.others.edits.length:void 0,droppedRenameEdits:ke?te.length-1:void 0}),!ke)return g;if(this._renameRunnable===void 0)this._renameRunnable=new jE(this._languageFeaturesService,this._commandService,g.requestUuid,u,S,ee,q,re,re!==void 0?K:void 0);let Ae=$n.inlineCompletionAccept({nes:g.isInlineEdit,requestUuid:g.requestUuid,providerId:g.source.provider.providerId,languageId:u.getLanguageId(),correlationId:g.getSourceCompletion().correlationId}),He={id:Ev,title:e(1274,"Rename"),arguments:[Ae,this._renameRunnable]},Ke={label:e(1275,"Rename"),icon:b.replaceAll,command:He,count:this._renameRunnable.getCount()},Ue={kind:"edit",range:te[0].range,insertText:te[0].text,snippetInfo:g.snippetInfo,alternativeAction:Ke,uri:u.uri},Te=cs.snapshot(u);return Cl.create(g.withAction(Ue),Te,!1)}async checkRenamePrecondition(u,g,v,S,y,D){let T={canRename:Fs.no,timedOut:!1};try{let R=await this._commandService.executeCommand("github.copilot.nes.prepareRename",g.uri,v,S,y,u.requestUuid,D);if(R===void 0)return T;else if(typeof R==="string"){let K=Fs.fromString(R);if(K===Fs.yes||K===Fs.maybe)return{canRename:K,oldName:S,onOldState:!1};else return{canRename:K,timedOut:!1}}else return R}catch(R){return T}}isRenamePossible(u,g,v,S){if(g===void 0||g.canRename===Fs.no)return!1;if(!v.equals(Zu.create(this._codeEditorService,S)))return!1;if(this._renameRunnable===void 0)return!0;if(this._renameRunnable.requestUuid===u.requestUuid)return!1;else return this._renameRunnable.cancel(),this._renameRunnable=void 0,!0}};Wf=BN([Il(0,Ne),Il(1,j),Il(2,Qe),Il(3,bl),Il(4,A0),Il(5,ye)],Wf);var VN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ll=function(f,u){return function(g,v){u(g,v,f)}},KS,Bf=class f extends n{static{KS=this}static{this._requestId=0}constructor(u,g,v,S,y,D,T,R,K,q,ee){super();if(this._textModel=u,this._versionId=g,this._debounceValue=v,this._cursorPosition=S,this._languageConfigurationService=D,this._logService=T,this._configurationService=R,this._instantiationService=K,this._contextKeyService=q,this._textModelService=ee,this._updateOperation=this._register(new ie),this._state=kE(this,{initial:()=>({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:$o.createEmpty()}),disposeFinal:(te)=>{te.inlineCompletions.dispose(),te.suggestWidgetInlineCompletions.dispose()},changeTracker:GI(()=>({versionId:this._versionId})),update:(te,ne,re)=>{let ae=eo.compose(re.changes.map((ge)=>ge.change?h0(ge.change.changes):eo.empty).filter(Mn));if(ae.isEmpty())return ne;try{return{inlineCompletions:ne.inlineCompletions.createStateWithAppliedEdit(ae,this._textModel),suggestWidgetInlineCompletions:ne.suggestWidgetInlineCompletions.createStateWithAppliedEdit(ae,this._textModel)}}finally{ne.inlineCompletions.dispose(),ne.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,(te)=>te.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,(te)=>te.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=d(this,(te)=>{this._versionId.read(te),this._updateOperation.clear();return}),this._loadingCount=M(this,0),this.loading=this._loadingCount.map(this,(te)=>te>0),this._dataChannelTelemetryService=this._instantiationService.createInstance(Tf),this._loggingEnabled=$S("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=$S("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(wl.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(Wf)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store),y)this._updateCompletionsEnablement(y),this._register(this._configurationService.onDidChangeConfiguration((te)=>{if(te.affectsConfiguration(y))this._updateCompletionsEnablement(y)}));this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(u){let g=this._configurationService.getValue(u);if(!Gt(g))this._completionsEnabled=void 0;else this._completionsEnabled=g}_log(u){if(this._loggingEnabled.get())this._logService.info(_E(u));this._structuredFetchLogger.log(u)}fetch(u,g,v,S,y,D,T){let R=this._cursorPosition.get(),K=new $E(R,v,this._textModel.getVersionId(),new Set(u)),q=v.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if(this._updateOperation.value?.request.satisfies(K))return this._updateOperation.value.promise;else if(q?.request?.satisfies(K))return Promise.resolve(!0);let ee=!!this._updateOperation.value;this._updateOperation.clear();let te=new Oe,ne=(async()=>{let ae=new c;this._loadingCount.set(this._loadingCount.get()+1,void 0);let ge=!1,ke=()=>{if(!ge)ge=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0)};ae.add(new be(()=>ke(),1e4)).schedule();let He=u.filter((Ue)=>Ue.providerId),Ke=new GE(v,T,He);try{let Ue=this._debounceValue.get(this._textModel),Te=Xx(u.map((vt)=>vt.debounceDelayMs),aI(xi))??Ue;if(ee||y&&v.triggerKind===Po.Automatic)await nS(Te,te.token);if(te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId)return Ke.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;let et=KS._requestId++;if(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:et,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:v.triggerKind,suggestInfo:v.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:g});let tt=new Date,ot=FE(u,this._cursorPosition.get(),this._textModel,v,T,this._languageConfigurationService);WS(te.token,()=>ot.cancelAndDispose({kind:"tokenCancellation"}));let je=!1,nt=!1,_t=[];for await(let vt of ot.lists){if(!vt)continue;vt.addRef(),ae.add(E(()=>vt.removeRef(vt.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(let Ot of vt.inlineSuggestionsData){if(nt=!0,!v.includeInlineEdits&&(Ot.isInlineEdit||Ot.showInlineEditMenu)){Ot.setNotShownReason("notInlineEditRequested");continue}if(!v.includeInlineCompletions&&!(Ot.isInlineEdit||Ot.showInlineEditMenu)){Ot.setNotShownReason("notInlineCompletionRequested");continue}Ot.addPerformanceMarker("providerReturned");let bi=Ot.action?.uri,Zt,$t;if(bi&&bi.toString()!==this._textModel.uri.toString()){let ai=await this._textModelService.createModelReference(bi);Zt=ai.object.textEditorModel,$t=ai}else Zt=this._textModel,$t=void 0;let vi=cs.snapshot(Zt),mi=Cl.create(Ot,vi);if($t){let ai=sr(mi.identity.onDispose,()=>{$t?.dispose(),ai.dispose()})}if(Ot.addPerformanceMarker("itemCreated"),_t.push(mi),!mi.isInlineEdit&&!mi.showInlineEditMenu&&v.triggerKind===Po.Automatic){if(mi.isVisible(this._textModel,this._cursorPosition.get()))je=!0}}if(je)break}_t.forEach((vt)=>vt.addPerformanceMarker("providersResolved"));let st=await Promise.all(_t.map(async(vt)=>this._renameProcessor.proposeRenameRefactoring(this._textModel,vt,v)));if(st.forEach((vt)=>vt.addPerformanceMarker("renameProcessed")),ot.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){let vt=ot.didAllProvidersReturn,Ot=void 0;if(te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId)Ot="canceled";let bi=st.map((Zt)=>{let $t=Zt.getSourceCompletion();if($t.doNotLog)return;let vi={insertText:$t.insertText,range:$t.range,additionalTextEdits:$t.additionalTextEdits,uri:$t.uri,command:$t.command,gutterMenuLinkAction:$t.gutterMenuLinkAction,shownCommand:$t.shownCommand,completeBracketPairs:$t.completeBracketPairs,isInlineEdit:$t.isInlineEdit,showInlineEditMenu:$t.showInlineEditMenu,showRange:$t.showRange,warning:$t.warning,hint:$t.hint,supportsRename:$t.supportsRename,correlationId:$t.correlationId,jumpToPosition:$t.jumpToPosition};return{...Wm(vi,(mi)=>{if(t.isIRange(mi))return t.lift(mi).toString();if(r.isIPosition(mi))return r.lift(mi).toString();if(Gm.is(mi))return{$commandId:mi.id};return mi}),$providerId:Zt.source.provider.providerId?.toString()}}).filter((Zt)=>Zt!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:et,durationMs:Date.now()-tt.getTime(),error:Ot,result:bi,time:Date.now(),didAllProvidersReturn:vt})}if(Ke.setRequestUuid(ot.contextWithUuid.requestUuid),nt){if(Ke.setHasProducedSuggestion(),st.length>0&&te.token.isCancellationRequested)st.forEach((vt)=>vt.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"))}else if(te.token.isCancellationRequested)Ke.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{let vt=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");Ke.setNoSuggestionReasonIfNotSet(vt?"completionsQuotaExceeded":"noSuggestion")}let xt=v.earliestShownDateTime-Date.now();if(xt>0)await nS(xt,te.token);if(st.forEach((vt)=>vt.addPerformanceMarker("minShowDelayPassed")),te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId||D.get()){let vt=te.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==K.versionId?"canceled:documentChanged":D.get()?"canceled:userJumped":"unknown";return st.forEach((Ot)=>Ot.setNotShownReasonIfNotSet(vt)),!1}let at=new Date;this._debounceValue.update(this._textModel,at.getTime()-tt.getTime());let gi=this._cursorPosition.get();this._updateOperation.clear(),Fe((vt)=>{let Ot=this._state.get();if(v.selectedSuggestionInfo)this._state.set({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:Ot.suggestWidgetInlineCompletions.createStateWithAppliedResults(st,K,this._textModel,gi,S)},vt);else this._state.set({inlineCompletions:Ot.inlineCompletions.createStateWithAppliedResults(st,K,this._textModel,gi,S),suggestWidgetInlineCompletions:$o.createEmpty()},vt);Ot.inlineCompletions.dispose(),Ot.suggestWidgetInlineCompletions.dispose()})}finally{ae.dispose(),ke(),this._sendInlineCompletionsRequestTelemetry(Ke)}return!0})(),re=new ZE(K,te,ne);return this._updateOperation.value=re,ne}clear(u){if(this._store.isDisposed)return;this._updateOperation.clear();let g=this._state.get();this._state.set({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:$o.createEmpty()},u),g.inlineCompletions.dispose(),g.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){let u=this.inlineCompletions.get(),g=this.suggestWidgetInlineCompletions.get();if(!g)return;Fe((v)=>{if(!u||(g.request?.versionId??-1)>(u.request?.versionId??-1)){u?.dispose();let S=this._state.get();this._state.set({inlineCompletions:g.clone(),suggestWidgetInlineCompletions:$o.createEmpty()},v),S.inlineCompletions.dispose(),S.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(v)})}seedWithCompletion(u,g){let v=this._state.get();this._state.set({inlineCompletions:new $o([u],void 0),suggestWidgetInlineCompletions:$o.createEmpty()},g),v.inlineCompletions.dispose(),v.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(u){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment"))return;if(u.requestUuid===void 0||u.hasProducedSuggestion)return;if(!_S(this._completionsEnabled,this._textModel.getLanguageId()))return;if(!u.providers.some((v)=>OS(v.providerId?.extensionId)))return;let g={opportunityId:u.requestUuid,noSuggestionReason:u.noSuggestionReason??"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,skuPlan:u.requestInfo.sku?.plan,skuType:u.requestInfo.sku?.type,editorType:u.requestInfo.editorType,requestReason:u.requestInfo.reason,typingInterval:u.requestInfo.typingInterval,typingIntervalCharacterCount:u.requestInfo.typingIntervalCharacterCount,languageId:u.requestInfo.languageId,selectedSuggestionInfo:!!u.context.selectedSuggestionInfo,availableProviders:u.providers.map((v)=>v.providerId?.toString()).filter(Mn).join(","),...TE(u.providers.some((v)=>OS(v.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};RE(this._dataChannelTelemetryService,g)}clearSuggestWidgetInlineCompletions(u){if(this._updateOperation.value?.request.context.selectedSuggestionInfo)this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};Bf=KS=VN([Ll(5,Qe),Ll(6,Be),Ll(7,X),Ll(8,L),Ll(9,V),Ll(10,gn)],Bf);class $E{constructor(f,u,g,v){this.position=f,this.context=u,this.versionId=g,this.providers=v}satisfies(f){return this.position.equals(f.position)&&gS(this.context.selectedSuggestionInfo,f.context.selectedSuggestionInfo,sh())&&(f.context.triggerKind===Po.Automatic||this.context.triggerKind===Po.Explicit)&&this.versionId===f.versionId&&zN(f.providers,this.providers)}}class GE{constructor(f,u,g){this.context=f,this.requestInfo=u,this.providers=g,this.hasProducedSuggestion=!1}setRequestUuid(f){this.requestUuid=f}setNoSuggestionReasonIfNotSet(f){this.noSuggestionReason??=f}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function zN(f,u){return[...f].every((g)=>u.has(g))}class ZE{constructor(f,u,g){this.request=f,this.cancellationTokenSource=u,this.promise=g}dispose(){this.cancellationTokenSource.cancel()}}class $o extends n{static createEmpty(){return new $o([],void 0)}constructor(f,u){super();this.inlineCompletions=f,this.request=u;for(let g of this.inlineCompletions)g.addRef();this._register({dispose:()=>{for(let g of this.inlineCompletions)g.removeRef()}})}_findById(f){return this.inlineCompletions.find((u)=>u.identity===f)}_findByHash(f){return this.inlineCompletions.find((u)=>u.hash===f)}createStateWithAppliedEdit(f,u){let g=this.inlineCompletions.map((v)=>v.withEdit(f,u)).filter(Mn);return new $o(g,this.request)}createStateWithAppliedResults(f,u,g,v,S){let y=void 0;if(S){let R=this._findById(S);if(R&&R.canBeReused(g,u.position)){y=R;let K=f.find((q)=>q.hash===R.hash);if(K)f=UN(K,f);else f=[R,...f]}}let D=y?!y.isInlineEdit:f.some((R)=>!R.isInlineEdit&&R.isVisible(g,v)),T=[];for(let R of f){let K=this._findByHash(R.hash),q;if(K&&K!==R)q=R.withIdentity(K.identity),R.setIsPreceeded(K),K.setEndOfLifeReason({kind:ma.Ignored,userTypingDisagreed:!1,supersededBy:R.getSourceCompletion()});else q=R;if(D!==q.isInlineEdit)T.push(q)}return T.sort(Cn((R)=>R.showInlineEditMenu,jx)),T=KN(T,(R)=>R.semanticId),new $o(T,u)}clone(){return new $o(this.inlineCompletions,this.request)}}function KN(f,u){let g=new Set;return f.filter((v)=>{let S=u(v);if(g.has(S))return!1;return g.add(S),!0})}function UN(f,u){let g=u.indexOf(f);if(g>-1)return[f,...u.slice(0,g),...u.slice(g+1)];return u}class Hs extends n{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(f){super();this._textModel=f,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent((u)=>this._updateTypingSpeed(u)))}_updateTypingSpeed(f){let u=Date.now();if(!this._isUserTyping(f)){this._finalizeCurrentSession();return}if(this._currentSession&&u-this._lastChangeTime>Hs.MAX_SESSION_GAP_MS)this._finalizeCurrentSession();if(!this._currentSession)this._currentSession={startTime:u,endTime:u,characterCount:0};this._currentSession.endTime=u,this._currentSession.characterCount+=this._getActualCharacterCount(f),this._lastChangeTime=u,this._cacheInvalidated=!0}_getActualCharacterCount(f){let u=0;for(let g of f.changes)u+=Math.max(g.text.length,g.rangeLength);return u}_isUserTyping(f){if(!f.detailedReasons||f.detailedReasons.length===0)return!1;for(let u of f.detailedReasons)if(this._isUserTypingReason(u))return!0;return!1}_isUserTypingReason(f){if(f.metadata.isUndoing||f.metadata.isRedoing)return!1;switch(f.metadata.source){case"cursor":{let u=f.metadata.kind;return u==="type"||u==="compositionType"||u==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;if(this._currentSession.endTime-this._currentSession.startTime>=Hs.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0){if(this._typingSessions.push(this._currentSession),this._typingSessions.length>Hs.SESSION_HISTORY_LIMIT)this._typingSessions.shift()}this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){let f={...this._currentSession};if(f.endTime-f.startTime>=Hs.MIN_SESSION_DURATION_MS&&f.characterCount>0){let g=[...this._typingSessions,f];return this._calculateSpeedFromSessions(g)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(f){if(f.length===0)return{averageInterval:0,characterCount:0};let u=[...f].sort((K,q)=>q.endTime-K.endTime),g=Date.now()-Hs.TYPING_SPEED_WINDOW_MS,v=u.filter((K)=>K.endTime>g),S=u.splice(v.length),y=zm(v.map((K)=>K.characterCount));for(let K=0;K<S.length&&y<Hs.MIN_CHARS_FOR_RELIABLE_SPEED;K++)v.push(S[K]),y+=S[K].characterCount;let D=zm(v.map((K)=>K.endTime-K.startTime));if(D===0||y<=1)return{averageInterval:0,characterCount:y};let T=Math.max(1,y-1),R=D/T;return{averageInterval:Math.round(R),characterCount:y}}dispose(){this._finalizeCurrentSession(),super.dispose()}}var qN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ha=function(f,u){return function(g,v){u(g,v,f)}},Vf=class f extends n{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(u,g,v,S,y,D,T,R,K,q,ee,te,ne,re,ae,ge){super();this.textModel=u,this._selectedSuggestItem=g,this._textModelVersionId=v,this._positions=S,this._debounceValue=y,this._enabled=D,this._isSuppressed=T,this._editor=R,this._instantiationService=K,this._commandService=q,this._languageConfigurationService=ee,this._accessibilityService=te,this._languageFeaturesService=ne,this._codeEditorService=re,this._inlineCompletionsService=ae,this._isActive=M(this,!1),this._onlyRequestInlineEditsSignal=Mi(this),this._forceUpdateExplicitlySignal=Mi(this),this._noDelaySignal=Mi(this),this._fetchSpecificProviderSignal=Mi(this),this._selectedInlineCompletionId=M(this,void 0),this.primaryPosition=d(this,(Te)=>this._positions.read(Te)[0]??new r(1,1)),this.allPositions=d(this,(Te)=>this._positions.read(Te)),this.sku=M(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=d(this,(Te)=>{let We=this.state.read(Te);if(!We||!We.inlineSuggestion)return!1;return qS(this._editor,We.inlineSuggestion,Te)}),this._onDidAccept=this._register(new i),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=Ux({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(Te,We)=>(We.didUndo=Te.didChange(this._textModelVersionId)&&!!Te.change?.isUndoing,!0)}},(Te,We)=>{let et=this._textModelVersionId.read(Te);if(et!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===et-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&We.didUndo)return this._lastAcceptedInlineCompletionInfo=void 0,!0;return!1}),this._preserveCurrentCompletionReasons=new Set([Ws.Redo,Ws.Undo,Ws.AcceptWord]),this.dontRefetchSignal=Mi(this),this._fetchInlineCompletionsPromise=Ux({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Po.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,changeHint:void 0,textChange:!1,changeReason:""}),handleChange:(Te,We)=>{if(Te.didChange(this._textModelVersionId)){if(this._preserveCurrentCompletionReasons.has(this._getReason(Te.change)))We.preserveCurrentCompletion=!0;let et=Te.change?.detailedReasons??[];We.changeReason=et.length>0?et[0].getType():"",We.textChange=!0}else if(Te.didChange(this._forceUpdateExplicitlySignal))We.preserveCurrentCompletion=!0,We.inlineCompletionTriggerKind=Po.Explicit;else if(Te.didChange(this.dontRefetchSignal))We.dontRefetch=!0;else if(Te.didChange(this._onlyRequestInlineEditsSignal))We.onlyRequestInlineEdits=!0;else if(Te.didChange(this._fetchSpecificProviderSignal))We.provider=Te.change?.provider,We.changeHint=Te.change?.changeHint;return!0}}},(Te,We)=>{if(this._source.clearOperationOnTextModelChange.read(Te),this._noDelaySignal.read(Te),this.dontRefetchSignal.read(Te),this._onlyRequestInlineEditsSignal.read(Te),this._forceUpdateExplicitlySignal.read(Te),this._fetchSpecificProviderSignal.read(Te),!(!this._isSuppressed()&&(this._enabled.read(Te)&&this._selectedSuggestItem.read(Te)||this._isActive.read(Te))&&(!this._inlineCompletionsService.isSnoozing()||We.inlineCompletionTriggerKind===Po.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(Te);let tt=this._source.suggestWidgetInlineCompletions.read(void 0),ot=this._selectedSuggestItem.read(Te);if(this._shouldShowOnSuggestConflict.read(void 0))ot=void 0;if(tt&&!ot)this._source.seedInlineCompletionsWithSuggestWidget();if(We.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(Te)&&We.inlineCompletionTriggerKind!==Po.Explicit){Fe((bi)=>{this._source.clear(bi)});return}let je="";if(We.provider)je+="providerOnDidChange";else if(We.inlineCompletionTriggerKind===Po.Explicit)je+="explicit";if(We.changeReason)je+=je.length>0?`:${We.changeReason}`:We.changeReason;let nt=this._typing.getTypingInterval(),_t={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:je,typingInterval:nt.averageInterval,typingIntervalCharacterCount:nt.characterCount,availableProviders:[],sku:this.sku.read(void 0)},st={triggerKind:We.inlineCompletionTriggerKind,selectedSuggestionInfo:ot?.toSelectedSuggestionInfo(),includeInlineCompletions:!We.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(Te),requestIssuedDateTime:_t.startTime,earliestShownDateTime:_t.startTime+(We.inlineCompletionTriggerKind===Po.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:We.changeHint};if(st.triggerKind===Po.Automatic&&We.textChange){if(this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId)st={...st,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit}}let xt=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,at=We.preserveCurrentCompletion||xt?.forwardStable?xt:void 0,gi=this._jumpedToId.map((bi)=>!!bi&&bi===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),vt=We.provider?{providers:[We.provider],label:"single:"+We.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},Ot=this.getAvailableProviders(vt.providers);return _t.availableProviders=Ot.map((bi)=>bi.providerId).filter(Mn),this._source.fetch(Ot,vt.label,st,at?.identity,We.shouldDebounce,gi,_t)}),this._inlineSuggestionItems=mn({owner:this},(Te)=>{let We=this._source.inlineCompletions.read(Te);if(!We)return;let et=this.primaryPosition.read(Te),tt=void 0,ot=[];for(let je of We.inlineCompletions)if(!je.isInlineEdit){if(je.isVisible(this.textModel,et))ot.push(je)}else tt=je;if(ot.length!==0)tt=void 0;return{inlineCompletions:ot,inlineEdit:tt}}),this._inlineCompletionItems=mn({owner:this,equalsFn:qd()},(Te)=>this._inlineSuggestionItems.read(Te)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=d(this,(Te)=>{let We=this._selectedInlineCompletionId.read(Te),et=this._inlineCompletionItems.read(Te),tt=this._selectedInlineCompletionId===void 0?-1:et.findIndex((ot)=>ot.semanticId===We);if(tt===-1)return this._selectedInlineCompletionId.set(void 0,void 0),0;return tt}),this.selectedInlineCompletion=d(this,(Te)=>{let We=this._inlineCompletionItems.read(Te),et=this.selectedInlineCompletionIndex.read(Te);return We[et]}),this.activeCommands=mn({owner:this,equalsFn:qd()},(Te)=>this.selectedInlineCompletion.read(Te)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=d(this,(Te)=>{if(this.lastTriggerKind.read(Te)===Po.Explicit)return this._inlineCompletionItems.read(Te).length;else return}),this._hasVisiblePeekWidgets=d(this,(Te)=>this._editorObs.openedPeekWidgets.read(Te)>0),this._shouldShowOnSuggestConflict=d(this,(Te)=>{let We=this._showOnSuggestConflict.read(Te);if(We!=="never"){if(!!this.selectedInlineCompletion.read(Te)){let tt=this._selectedSuggestItem.read(Te);if(!tt)return!1;if(We==="whenSuggestListIsIncomplete")return tt.listIncomplete;return!0}}return!1}),this.state=mn({owner:this,equalsFn:(Te,We)=>{if(!Te||!We)return Te===We;if(Te.kind==="ghostText"&&We.kind==="ghostText")return sS(Te.ghostTexts,We.ghostTexts)&&Te.inlineSuggestion===We.inlineSuggestion&&Te.suggestItem===We.suggestItem;else if(Te.kind==="inlineEdit"&&We.kind==="inlineEdit")return Te.inlineSuggestion===We.inlineSuggestion;return!1}},(Te)=>{let We=this.textModel;if(this._suppressInSnippetMode.read(Te)&&this._isInSnippetMode.read(Te))return;let et=this._inlineSuggestionItems.read(Te),tt=et?.inlineEdit;if(tt){if(this._hasVisiblePeekWidgets.read(Te))return;let je=this.primaryPosition.map((xt)=>Y.fromRangeInclusive(tt.targetRange).addMargin(1,1).contains(xt.lineNumber)),nt=tt.action?.kind==="edit"?tt.action.stringEdit:void 0,_t=nt?mo.fromStringEdit(nt,new au(this.textModel)).replacements:[],st=(et.inlineEdit?.command?.id==="vscode.open"||et.inlineEdit?.command?.id==="_workbench.open")&&et.inlineEdit?.command.arguments?.length?W.from(et.inlineEdit?.command.arguments[0]):void 0;if(!tt.originalTextRef.targets(this.textModel))st=tt.originalTextRef.uri;return{kind:"inlineEdit",inlineSuggestion:tt,edits:_t,cursorAtInlineEdit:je,nextEditUri:st}}let ot=this._selectedSuggestItem.read(Te);if(!this._shouldShowOnSuggestConflict.read(Te)&&ot){let je=Qo(ot.getSingleTextEdit(),We),nt=this._computeAugmentation(je,Te);if(!this._suggestPreviewEnabled.read(Te)&&!nt)return;let st=nt?.edit??je,xt=nt?nt.edit.text.length-je.text.length:0,at=this._suggestPreviewMode.read(Te),gi=this._positions.read(Te),Ot=[st,...US(this.textModel,gi,st)].map((vi,mi)=>({edit:vi,ghostText:vi?DS(vi,We,at,gi[mi],xt):void 0})).filter(({edit:vi,ghostText:mi})=>vi!==void 0&&mi!==void 0),bi=Ot.map(({edit:vi})=>vi),Zt=Ot.map(({ghostText:vi})=>vi),$t=Zt[0]??new As(st.range.endLineNumber,[]);return{kind:"ghostText",edits:bi,primaryGhostText:$t,ghostTexts:Zt,inlineSuggestion:nt?.completion,suggestItem:ot}}else{if(!this._isActive.read(Te))return;let je=this.selectedInlineCompletion.read(Te);if(!je)return;let nt=je.getSingleTextEdit(),_t=this._inlineSuggestMode.read(Te),st=this._positions.read(Te),at=[nt,...US(this.textModel,st,nt)].map((Ot,bi)=>({edit:Ot,ghostText:Ot?DS(Ot,We,_t,st[bi],0):void 0})).filter(({edit:Ot,ghostText:bi})=>Ot!==void 0&&bi!==void 0),gi=at.map(({edit:Ot})=>Ot),vt=at.map(({ghostText:Ot})=>Ot);if(!vt[0])return;return{kind:"ghostText",edits:gi,primaryGhostText:vt[0],ghostTexts:vt,inlineSuggestion:je,suggestItem:void 0}}}),this.status=d(this,(Te)=>{if(this._source.loading.read(Te))return"loading";let We=this.state.read(Te);if(We?.kind==="ghostText")return"ghostText";if(We?.kind==="inlineEdit")return"inlineEdit";return"noSuggestion"}),this.inlineCompletionState=d(this,(Te)=>{let We=this.state.read(Te);if(!We||We.kind!=="ghostText")return;if(this._editorObs.inComposition.read(Te))return;return We}),this.inlineEditState=d(this,(Te)=>{let We=this.state.read(Te);if(!We||We.kind!=="inlineEdit")return;return We}),this.inlineEditAvailable=d(this,(Te)=>!!this.inlineEditState.read(Te)),this.warning=d(this,(Te)=>this.inlineCompletionState.read(Te)?.inlineSuggestion?.warning),this.ghostTexts=mn({owner:this,equalsFn:sS},(Te)=>{let We=this.inlineCompletionState.read(Te);if(!We)return;return We.ghostTexts}),this.primaryGhostText=mn({owner:this,equalsFn:aS},(Te)=>{let We=this.inlineCompletionState.read(Te);if(!We)return;return We?.primaryGhostText}),this.showCollapsed=d(this,(Te)=>{let We=this.state.read(Te);if(!We||We.kind!=="inlineEdit")return!1;if(We.inlineSuggestion.hint||We.inlineSuggestion.action?.kind==="jumpTo")return!1;let et=We.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(Te);return(this._inlineEditsShowCollapsedEnabled.read(Te)||!et)&&this._jumpedToId.read(Te)!==We.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(Te)}),this._tabShouldIndent=d(this,(Te)=>{if(this._inAcceptFlow.read(Te))return!1;function We(ot){return ot.startLineNumber!==ot.endLineNumber}function et(ot,je){let nt=ot.getLineIndentColumn(je),_t=ot.getLineLastNonWhitespaceColumn(je),st=Math.max(_t,nt);return new t(je,nt,je,st)}return this._editorObs.selections.read(Te)?.some((ot)=>{if(ot.isEmpty())return this.textModel.getLineLength(ot.startLineNumber)===0;else return We(ot)||ot.containsRange(et(this.textModel,ot.startLineNumber))})}),this.tabShouldJumpToInlineEdit=d(this,(Te)=>{if(this._tabShouldIndent.read(Te))return!1;let We=this.inlineEditState.read(Te);if(!We)return!1;if(We.inlineSuggestion.action?.kind==="jumpTo")return!0;if(this.showCollapsed.read(Te))return!0;if(this._inAcceptFlow.read(Te)&&this._appearedInsideViewport.read(Te))return!1;return!We.cursorAtInlineEdit.read(Te)}),this.tabShouldAcceptInlineEdit=d(this,(Te)=>{let We=this.inlineEditState.read(Te);if(!We)return!1;if(We.inlineSuggestion.action?.kind==="jumpTo")return!1;if(this.showCollapsed.read(Te))return!1;if(this._tabShouldIndent.read(Te))return!1;if(this._inAcceptFlow.read(Te)&&this._appearedInsideViewport.read(Te))return!0;if(We.inlineSuggestion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(Te))return!0;if(this._jumpedToId.read(Te)===We.inlineSuggestion.semanticId)return!0;return We.cursorAtInlineEdit.read(Te)}),this._jumpedToId=M(this,void 0),this._inAcceptFlow=M(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(Bf,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition,ph.defaultChatAgent?.completionsEnablementSetting)),this.lastTriggerKind=this._source.inlineCompletions.map(this,(Te)=>Te?.request?.context.triggerKind),this._editorObs=Ze(this._editor);let ke=this._editorObs.getOption(134);this._suggestPreviewEnabled=ke.map((Te)=>Te.preview),this._suggestPreviewMode=ke.map((Te)=>Te.previewMode);let Ae=this._editorObs.getOption(71);this._inlineSuggestMode=Ae.map((Te)=>Te.mode),this._suppressedInlineCompletionGroupIds=Ae.map((Te)=>new Set(Te.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=Ae.map((Te)=>!!Te.edits.enabled),this._inlineEditsShowCollapsedEnabled=Ae.map((Te)=>Te.edits.showCollapsed),this._triggerCommandOnProviderChange=Ae.map((Te)=>Te.triggerCommandOnProviderChange),this._minShowDelay=Ae.map((Te)=>Te.minShowDelay),this._showOnSuggestConflict=Ae.map((Te)=>Te.experimental.showOnSuggestConflict),this._suppressInSnippetMode=Ae.map((Te)=>Te.suppressInSnippetMode);let He=wi.get(this._editor);this._isInSnippetMode=He?.isInSnippetObservable??Se(!1),ge.getDefaultAccount().then(jN((Te)=>this.sku.set(XE(Te),void 0),this._store)),this._register(ge.onDidChangeDefaultAccount((Te)=>this.sku.set(XE(Te),void 0))),this._typing=this._register(new Hs(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((Te)=>{if(Te)this.stop()}));{let Te=this.textModel.uri.scheme===Q.vscodeNotebookCell,[We]=this._codeEditorService.listDiffEditors().filter((et)=>et.getOriginalEditor().getId()===this._editor.getId()||et.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!We,this.editorType=Te?li.Notebook:this.isInDiffEditor?li.DiffEditor:li.TextEditor}this._register(Gd(this.state,(Te)=>{if(Te&&Te.inlineSuggestion)this._inlineCompletionsService.reportNewCompletion(Te.inlineSuggestion.requestUuid)})),this._register(Gd(this._fetchInlineCompletionsPromise)),this._register(H((Te)=>{this._editorObs.versionId.read(Te),this._inAcceptFlow.set(!1,void 0)})),this._register(H((Te)=>{if(this.state.map((et,tt)=>!et||et.kind==="inlineEdit"&&!et.cursorAtInlineEdit.read(tt)).read(Te))this._jumpedToId.set(void 0,void 0)})),this._register(H((Te)=>{let We=this.state.map((et)=>et?.inlineSuggestion).read(Te);if(We)We.addPerformanceMarker("activeSuggestion")}));let Ke=this.inlineEditState.map((Te)=>Te?.inlineSuggestion.semanticId);this._register(H((Te)=>{if(Ke.read(Te))this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion}}));let Ue=Le(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(u));Wl(this,Ue,(Te,We)=>{if(!Te.onDidChangeInlineCompletions)return;We.add(Te.onDidChangeInlineCompletions((et)=>{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 ot=this.state.get();if(ot&&(ot.inlineSuggestion||ot.edits)&&ot.inlineSuggestion?.source.provider!==Te)return;Fe((je)=>{this._fetchSpecificProviderSignal.trigger(je,{provider:Te,changeHint:et??void 0}),this.trigger(je)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(u){let g=!1,v=!0,S=this?.primaryGhostText.read(u);if(!!this?._selectedSuggestItem&&S&&S.parts.length>0){let{column:y,lines:D}=S.parts[0],T=D[0].line,R=this.textModel.getLineIndentColumn(S.lineNumber);if(y<=R){let q=In(T);if(q===-1)q=T.length-1;g=q>0;let ee=this.textModel.getOptions().tabSize;v=yt.visibleColumnFromColumn(T,q+1,ee)<ee}}return{startsWithIndentation:g,startsWithIndentationLessThanTabSize:v}}_getReason(u){if(u?.isUndoing)return Ws.Undo;if(u?.isRedoing)return Ws.Redo;if(this.isAcceptingPartially)return Ws.AcceptWord;return Ws.Other}getAvailableProviders(u){let g=this._suppressedInlineCompletionGroupIds.get(),v=u.filter((D)=>!(D.groupId&&g.has(D.groupId))),S=new Set;for(let D of v)D.excludesGroupIds?.forEach((T)=>S.add(T));let y=[];for(let D of v){if(D.groupId&&S.has(D.groupId))continue;y.push(D)}return y}async trigger(u,g={}){zl(u,(v)=>{if(g.onlyFetchInlineEdits)this._onlyRequestInlineEditsSignal.trigger(v);if(g.noDelay)this._noDelaySignal.trigger(v);if(this._isActive.set(!0,v),g.explicit)this._inAcceptFlow.set(!0,v),this._forceUpdateExplicitlySignal.trigger(v);if(g.provider)this._fetchSpecificProviderSignal.trigger(v,{provider:g.provider,changeHint:g.changeHint})}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(u,g=!1){return this.trigger(u,{onlyFetchInlineEdits:g,explicit:!0})}stop(u="automatic",g){zl(g,(v)=>{if(u==="explicitCancel"){let S=this.state.get()?.inlineSuggestion;if(S)S.reportEndOfLife({kind:ma.Rejected})}this._isActive.set(!1,v),this._source.clear(v)})}_computeAugmentation(u,g){let v=this.textModel,S=this._source.suggestWidgetInlineCompletions.read(g),y=S?S.inlineCompletions.filter((T)=>!T.isInlineEdit):[this.selectedInlineCompletion.read(g)].filter(Mn);return II(y,(T)=>{let R=T.getSingleTextEdit();return R=Qo(R,v,t.fromPositions(R.range.getStartPosition(),u.range.getEndPosition())),Ef(R,u)?{completion:T,edit:R}:void 0})}async _deltaSelectedInlineCompletionIndex(u){await this.triggerExplicitly();let g=this._inlineCompletionItems.get()||[];if(g.length>0){let v=(this.selectedInlineCompletionIndex.get()+u+g.length)%g.length;this._selectedInlineCompletionId.set(g[v].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(u,g,v=void 0){if(v)return $n.inlineCompletionPartialAccept({nes:u.isInlineEdit,requestUuid:u.requestUuid,providerId:u.source.provider.providerId,languageId:g,type:v,correlationId:u.getSourceCompletion().correlationId});else return $n.inlineCompletionAccept({nes:u.isInlineEdit,requestUuid:u.requestUuid,correlationId:u.getSourceCompletion().correlationId,providerId:u.source.provider.providerId,languageId:g})}async accept(u=this._editor,g=!1){if(u.getModel()!==this.textModel)throw new P;let v,S=!1,y=this.state.get();if(y?.kind==="ghostText"){if(!y||y.primaryGhostText.isEmpty()||!y.inlineSuggestion)return;v=y.inlineSuggestion}else if(y?.kind==="inlineEdit")v=y.inlineSuggestion,S=!!y.nextEditUri;else return;v.addRef();try{let D=!1;if(u.pushUndoStop(),!v.originalTextRef.targets(this.textModel)){let T=await this._codeEditorService.openCodeEditor({resource:v.originalTextRef.uri},this._editor);if(T){let K=xf(T)?.model.get();T.focus(),K?.transplantCompletion(v),T.revealLineInCenter(v.targetRange.startLineNumber)}}else if(S);else if(v.action?.kind==="edit"){let T=v.action;if(g&&T.alternativeAction){D=!0;let R=T.alternativeAction.command;await this._commandService.executeCommand(R.id,...R.arguments||[]).then(void 0,dt)}else if(T.snippetInfo){let R=ct.delete(T.textReplacement.range),K=v.additionalTextEdits.map((ee)=>new ct(t.lift(ee.range),ee.text??"")),q=mo.fromParallelReplacementsUnsorted([R,...K]);u.edit(q,this._getMetadata(v,this.textModel.getLanguageId())),u.setPosition(T.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),wi.get(u)?.insert(T.snippetInfo.snippet,{undoStopBefore:!1})}else{let R=y.edits,K=R;if(y.kind==="ghostText")K=SE(R,this.textModel);let q=iS(K).map((ne)=>O.fromPositions(ne)),ee=v.additionalTextEdits.map((ne)=>new ct(t.lift(ne.range),ne.text??"")),te=mo.fromParallelReplacementsUnsorted([...R,...ee]);if(u.edit(te,this._getMetadata(v,this.textModel.getLanguageId())),v.hint===void 0)u.setSelections(y.kind==="inlineEdit"?q.slice(-1):q,"inlineCompletionAccept");if(y.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){let ne=te.getNewRanges(),re=this._store.add(new YE(u,ne,()=>{this._store.delete(re)}))}}}if(this._onDidAccept.fire(),this.stop(),v.command)await this._commandService.executeCommand(v.command.id,...v.command.arguments||[]).then(void 0,dt);if(D)this.trigger(void 0);v.reportEndOfLife({kind:ma.Accepted,alternativeAction:g})}finally{v.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:v}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(u,g)=>{let v=this.textModel.getLanguageIdAtPosition(u.lineNumber,u.column),S=this._languageConfigurationService.getLanguageConfiguration(v),y=new RegExp(S.wordDefinition.source,S.wordDefinition.flags.replace("g","")),D=g.match(y),T=0;if(D&&D.index!==void 0)if(D.index===0)T=D[0].length;else T=D.index;else T=g.length;let K=/\s+/g.exec(g);if(K&&K.index!==void 0){if(K.index+K[0].length<T)T=K.index+K[0].length}return T},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(u,g)=>{let v=g.match(/\n/);if(v&&v.index!==void 0)return v.index+1;return g.length},1)}async _acceptNext(u,g,v,S){if(u.getModel()!==this.textModel)throw new P;let y=this.inlineCompletionState.get();if(!y||y.primaryGhostText.isEmpty()||!y.inlineSuggestion)return;let{primaryGhostText:D,inlineSuggestion:T}=y;if(T.snippetInfo){await this.accept(u);return}let R=D.parts[0],K=new r(D.lineNumber,R.column),q=R.text,ee=v(K,q);if(ee===q.length&&D.parts.length===1){this.accept(u);return}let te=q.substring(0,ee),ne=this._positions.get(),re=ne[0];T.addRef();try{this._isAcceptingPartially=!0;try{u.pushUndoStop();let Ae=t.fromPositions(re,K),He=u.getModel().getValueInRange(Ae)+te,Ke=new ct(Ae,He),Ue=[Ke,...US(this.textModel,ne,Ke)].filter(Mn),Te=iS(Ue).map((We)=>O.fromPositions(We));u.edit(mo.fromParallelReplacementsUnsorted(Ue),this._getMetadata(T,this.textModel.getLanguageId(),g)),u.setSelections(Te,"inlineCompletionPartialAccept"),u.revealPositionInCenterIfOutsideViewport(u.getPosition(),0)}finally{this._isAcceptingPartially=!1}let ae=t.fromPositions(T.editRange.getStartPosition(),Nt.ofText(te).addToPosition(K)),ke=u.getModel().getValueInRange(ae,1).length;T.reportPartialAccept(ke,{kind:S,acceptedLength:ke},{characters:ee,ratio:ee/q.length,count:1})}finally{T.removeRef()}}handleSuggestAccepted(u){let g=Qo(u.getSingleTextEdit(),this.textModel),v=this._computeAugmentation(g,void 0);if(!v)return;let y=this.textModel.getValueInRange(v.completion.editRange,1).length+g.text.length;v.completion.reportPartialAccept(g.text.length,{kind:2,acceptedLength:y},{characters:g.text.length,count:1,ratio:1})}extractReproSample(){let u=this.textModel.getValue(),g=this.state.get()?.inlineSuggestion;return{documentValue:u,inlineCompletion:g?.getSourceCompletion()}}jump(){let u=this.inlineEditState.get();if(!u)return;let g=u.inlineSuggestion;if(!g.originalTextRef.targets(this.textModel)){this.accept(this._editor);return}g.addRef();try{Fe((v)=>{if(g.action?.kind==="jumpTo")this.stop(void 0,v),g.reportEndOfLife({kind:ma.Accepted,alternativeAction:!1});this._jumpedToId.set(u.inlineSuggestion.semanticId,v),this.dontRefetchSignal.trigger(v);let S=u.inlineSuggestion.targetRange,y=S.getStartPosition();if(this._editor.setPosition(y,"inlineCompletions.jump"),S.isSingleLine()&&(u.inlineSuggestion.hint||u.inlineSuggestion.action?.kind==="edit"&&!u.inlineSuggestion.action.textReplacement.text.includes(`
|
|
41
|
-
`))||u.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(y,0);else{let T=new t(S.startLineNumber-1,1,S.endLineNumber+1,1);this._editor.revealRange(T,0)}u.inlineSuggestion.identity.setJumpTo(v),this._editor.focus()})}finally{g.removeRef()}}async handleInlineSuggestionShown(u,g,v,S){await u.reportInlineEditShown(this._commandService,g,v,this.textModel,S)}transplantCompletion(u){Fe((g)=>{this._source.seedWithCompletion(u,g),this._isActive.set(!0,g),this._inAcceptFlow.set(!0,g),this.dontRefetchSignal.trigger(g)})}};Vf=qN([Ha(8,L),Ha(9,Ne),Ha(10,Qe),Ha(11,Vt),Ha(12,j),Ha(13,ye),Ha(14,dy),Ha(15,S0)],Vf);var Ws;(function(f){f[f.Undo=0]="Undo",f[f.Redo=1]="Redo",f[f.AcceptWord=2]="AcceptWord",f[f.Other=3]="Other"})(Ws||(Ws={}));function US(f,u,g){if(u.length===1)return[];let v=new au(f),S=v.getTransformer(),y=S.getOffset(u[0]),D=u.slice(1).map((te)=>S.getOffset(te));g=g.removeCommonPrefixAndSuffix(v);let T=S.getStringReplacement(g),R=T.replaceRange.start-y,K=T.replaceRange.join(B.emptyAt(y)),q=v.getValueOfOffsetRange(K);return D.map((te)=>{let ne=te+R,re=ne+T.replaceRange.length,ae=new B(ne,re),ge=ae.join(B.emptyAt(te));if(v.getValueOfOffsetRange(ge)!==q)return;let Ae=new qn(ae,T.newText);return S.getTextReplacement(Ae)}).filter(Mn)}class YE extends n{constructor(f,u,g){super();if(g)this._register({dispose:()=>g()});this._register(Ze(f).setDecorations(Se(u.map((S)=>({range:S,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));let v=new rS(kf.startNow(1,0,1000,xE));this._register(H((S)=>{let y=v.getValue(S);if(f.getContainerDomNode().style.setProperty("--animation-opacity",y.toString()),v.isFinished(S))this.dispose()}))}}function qS(f,u,g=void 0){let v=u.targetRange;Ze(f).scrollTop.read(g);let S=f.getVisibleRanges();if(S.length<1)return!1;return new t(S[0].startLineNumber,S[0].startColumn,S[S.length-1].endLineNumber,S[S.length-1].endColumn).containsRange(v)}function XE(f){if(f?.entitlementsData?.access_type_sku&&f?.entitlementsData?.copilot_plan)return{type:f.entitlementsData.access_type_sku,plan:f.entitlementsData.copilot_plan};return}class JE{constructor(f){this.handler=(u)=>this._cb?.(u),this._cb=f}dispose(){this._cb=void 0}}function jN(f,u){let g=new JE(f);return u.add(g),g.handler}var $N=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},GN=function(f,u){return function(g,v){u(g,v,f)}},jS,Xu=class f{static{jS=this}static{this.AtEnd=new A("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(u,g){this._editor=u,this._enabled=!1,this._ckAtEnd=jS.AtEnd.bindTo(g),this._configListener=this._editor.onDidChangeConfiguration((v)=>v.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let u=this._editor.getOption(139)==="on";if(this._enabled===u)return;if(this._enabled=u,this._enabled){let g=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let v=this._editor.getModel(),S=this._editor.getSelection(),y=v.getWordAtPosition(S.getStartPosition());if(!y){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(y.endColumn===S.getStartPosition().column&&S.getStartPosition().lineNumber===S.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(g),g()}else if(this._selectionListener)this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0}};Xu=jS=$N([GN(1,V)],Xu);var ZN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},XN=function(f,u){return function(g,v){u(g,v,f)}},Yu,Nd=class f{static{Yu=this}static{this.OtherSuggestions=new A("hasOtherSuggestions",!1)}constructor(u,g){this._editor=u,this._index=0,this._ckOtherSuggestions=Yu.OtherSuggestions.bindTo(g)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:u,index:g},v){if(u.items.length===0){this.reset();return}if(Yu._moveIndex(!0,u,g)===g){this.reset();return}this._acceptNext=v,this._model=u,this._index=g,this._listener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignore)this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(u,g,v){let S=v;for(let y=g.items.length;y>0;y--){if(S=(S+g.items.length+(u?1:-1))%g.items.length,S===v)break;if(!g.items[S].completion.additionalTextEdits)break}return S}next(){this._move(!0)}prev(){this._move(!1)}_move(u){if(!this._model)return;try{this._ignore=!0,this._index=Yu._moveIndex(u,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Nd=Yu=ZN([XN(1,V)],Nd);class GS{constructor(f,u,g,v){this._disposables=new c,this._disposables.add(g.onDidSuggest((S)=>{if(S.completionModel.items.length===0)this.reset()})),this._disposables.add(g.onDidCancel((S)=>{this.reset()})),this._disposables.add(u.onDidShow(()=>this._onItem(u.getFocusedItem()))),this._disposables.add(u.onDidFocus(this._onItem,this)),this._disposables.add(u.onDidHide(this.reset,this)),this._disposables.add(f.onWillType((S)=>{if(this._active&&!u.isFrozen()&&g.state!==0){let y=S.charCodeAt(S.length-1);if(this._active.acceptCharacters.has(y)&&f.getOption(0))v(this._active.item)}}))}_onItem(f){if(!f||!Ln(f.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===f.item)return;let u=new fh;for(let g of f.item.completion.commitCharacters)if(g.length>0)u.add(g.charCodeAt(0));this._active={acceptCharacters:u,item:f}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class zf{static{this._maxSelectionLength=51200}constructor(f,u){this._disposables=new c,this._lastOvertyped=[],this._locked=!1,this._disposables.add(f.onWillType(()=>{if(this._locked||!f.hasModel())return;let g=f.getSelections(),v=g.length,S=!1;for(let D=0;D<v;D++)if(!g[D].isEmpty()){S=!0;break}if(!S){if(this._lastOvertyped.length!==0)this._lastOvertyped.length=0;return}this._lastOvertyped=[];let y=f.getModel();for(let D=0;D<v;D++){let T=g[D];if(y.getValueLengthInRange(T)>zf._maxSelectionLength)return;this._lastOvertyped[D]={value:y.getValueInRange(T),multiline:T.startLineNumber!==T.endLineNumber}}})),this._disposables.add(u.onDidTrigger((g)=>{this._locked=!0})),this._disposables.add(u.onDidCancel((g)=>{this._locked=!1}))}getLastOvertypedInfo(f){if(f>=0&&f<this._lastOvertyped.length)return this._lastOvertyped[f];return}dispose(){this._disposables.dispose()}}var YN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},ZS=function(f,u){return function(g,v){u(g,v,f)}},Kf=class f{constructor(u,g,v,S,y,D){this._menuId=g,this._menuService=y,this._contextKeyService=D,this._menuDisposables=new c,this.element=w(u,m(".suggest-status-bar"));let T=(R)=>{if(v?.showIconsNoKeybindings)return R instanceof ki?S.createInstance(La,R,void 0):void 0;else return R instanceof ki?S.createInstance(C0,R,{useComma:!1}):void 0};this._leftActions=new Ri(this.element,{actionViewItemProvider:T}),this._rightActions=new Ri(this.element,{actionViewItemProvider:T}),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 u=this._menuService.createMenu(this._menuId,this._contextKeyService),g=()=>{let v=[],S=[];for(let[y,D]of u.getActions())if(y==="left")v.push(...D);else S.push(...D);this._leftActions.clear(),this._leftActions.push(v),this._rightActions.clear(),this._rightActions.push(S)};this._menuDisposables.add(u.onDidChange(()=>g())),this._menuDisposables.add(u)}hide(){this._menuDisposables.clear()}};Kf=YN([ZS(3,L),ZS(4,ui),ZS(5,V)],Kf);var JN=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},QE=function(f,u){return function(g,v){u(g,v,f)}};function Ju(f){return!!f&&Boolean(f.completion.documentation||f.completion.detail&&f.completion.detail!==f.completion.label)}var Uf=class f{constructor(u,g,v){this._editor=u,this._themeService=g,this._markdownRendererService=v,this._onDidClose=new i,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new i,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new c,this._renderDisposeable=new c,this._size=new Je(330,0),this.domNode=m(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=m(".body"),this._scrollbar=new ka(this._body,{alwaysConsumeMouseWheel:!0}),w(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=w(this._body,m(".header")),this._close=w(this._header,m("span"+G.asCSSSelector(b.close))),this._close.title=e(1563,"Close"),this._close.ariaLabel=e(1564,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=w(this._header,m("p.type")),this._docs=w(this._body,m("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((S)=>{if(S.hasChanged(59))this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){let u=this._editor.getOptions(),g=u.get(59),v=g.getMassagedFontFamily(),S=u.get(135)||g.fontSize,y=u.get(136)||g.lineHeight,D=g.fontWeight,T=`${S}px`,R=`${y}px`;this.domNode.style.fontSize=T,this.domNode.style.lineHeight=`${y/S}`,this.domNode.style.fontWeight=D,this.domNode.style.fontFeatureSettings=g.fontFeatureSettings,this._type.style.fontFamily=v,this._close.style.height=R,this._close.style.width=R}getLayoutInfo(){let u=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,g=zo(this._themeService.getColorTheme().type)?2:1,v=g*2;return{lineHeight:u,borderWidth:g,borderHeight:v,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(u,g){this._renderDisposeable.clear();let{detail:v,documentation:S}=u.completion;if(g){let y="";y+=`score: ${u.score[0]}
|
|
42
|
-
`,y+=`prefix: ${u.word??"(no prefix)"}
|
|
43
|
-
`,y+=`word: ${u.completion.filterText?u.completion.filterText+" (filterText)":u.textLabel}
|
|
44
|
-
`,y+=`distance: ${u.distance} (localityBonus-setting)
|
|
45
|
-
`,y+=`index: ${u.idx}, based on ${u.completion.sortText&&`sortText: "${u.completion.sortText}"`||"label"}
|
|
46
|
-
`,y+=`commit_chars: ${u.completion.commitCharacters?.join("")}
|
|
47
|
-
`,S=new wn().appendCodeblock("empty",y),v=`Provider: ${u.provider._debugDisplayName}`}if(!g&&!Ju(u)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),v){let y=v.length>1e5?`${v.substr(0,1e5)}…`:v;this._type.textContent=y,this._type.title=y,po(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(y))}else Xt(this._type),this._type.title="",Wi(this._type),this.domNode.classList.add("no-type");if(Xt(this._docs),typeof S==="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=S;else if(S){this._docs.classList.add("markdown-docs"),Xt(this._docs);let y=this._markdownRendererService.render(S,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(y.element),this._renderDisposeable.add(y)}this.domNode.classList.toggle("detail-and-doc",!!v&&!!S),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=(y)=>{y.preventDefault(),y.stopPropagation()},this._close.onclick=(y)=>{y.preventDefault(),y.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(u,g){let v=new Je(u,g);if(!Je.equals(v,this._size))this._size=v,_I(this.domNode,u,g);this._scrollbar.scanDomNode()}scrollDown(u=8){this._body.scrollTop+=u}scrollUp(u=8){this._body.scrollTop-=u}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};Uf=JN([QE(1,De),QE(2,yo)],Uf);class XS{constructor(f,u){this.widget=f,this._editor=u,this.allowEditorOverflow=!0,this._disposables=new c,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new wd,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(f.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let g,v,S=0,y=0;this._disposables.add(this._resizable.onDidWillResize(()=>{g=this._topLeft,v=this._resizable.size})),this._disposables.add(this._resizable.onDidResize((D)=>{if(g&&v){this.widget.layout(D.dimension.width,D.dimension.height);let T=!1;if(D.west)y=v.width-D.dimension.width,T=!0;if(D.north)S=v.height-D.dimension.height,T=!0;if(T)this._applyTopLeft({top:g.top+S,left:g.left+y})}if(D.done)g=void 0,v=void 0,S=0,y=0,this._userSize=D.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(f=!1){if(this._resizable.clearSashHoverState(),this._added)this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0;if(f)this._userSize=void 0,this.widget.clearContents()}placeAtAnchor(f,u){let g=f.getBoundingClientRect();this._anchorBox=g,this._preferAlignAtTop=u,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,u)}_placeAtAnchor(f,u,g){let v=ys(this.getDomNode().ownerDocument.body),S=this.widget.getLayoutInfo(),y=new Je(220,2*S.lineHeight),D=f.top,T=function(){let Te=v.width-(f.left+f.width+S.borderWidth+S.horizontalPadding),We=-S.borderWidth+f.left+f.width,et=new Je(Te,v.height-f.top-S.borderHeight-S.verticalPadding),tt=et.with(void 0,f.top+f.height-S.borderHeight-S.verticalPadding);return{top:D,left:We,fit:Te-u.width,maxSizeTop:et,maxSizeBottom:tt,minSize:y.with(Math.min(Te,y.width))}}(),R=function(){let Te=f.left-S.borderWidth-S.horizontalPadding,We=Math.max(S.horizontalPadding,f.left-u.width-S.borderWidth),et=new Je(Te,v.height-f.top-S.borderHeight-S.verticalPadding),tt=et.with(void 0,f.top+f.height-S.borderHeight-S.verticalPadding);return{top:D,left:We,fit:Te-u.width,maxSizeTop:et,maxSizeBottom:tt,minSize:y.with(Math.min(Te,y.width))}}(),K=function(){let Te=f.left,We=-S.borderWidth+f.top+f.height,et=new Je(f.width-S.borderHeight,v.height-f.top-f.height-S.verticalPadding);return{top:We,left:Te,fit:et.height-u.height,maxSizeBottom:et,maxSizeTop:et,minSize:y.with(et.width)}}(),q=function(){let Te=f.left,We=new Je(f.width-S.borderHeight,f.top-S.verticalPadding);return{top:Math.max(S.verticalPadding,f.top-u.height),left:Te,fit:We.height-u.height,maxSizeTop:We,maxSizeBottom:We,minSize:y.with(We.width)}}(),te=[T,R,g?K:q],ne=te.find((Te)=>Te.fit>=0)??te.sort((Te,We)=>We.fit-Te.fit)[0],re=f.top+f.height-S.borderHeight,ae,ge=u.height,ke=Math.max(ne.maxSizeTop.height,ne.maxSizeBottom.height);if(ge>ke)ge=ke;let Ae;if(g)if(ge<=ne.maxSizeTop.height)ae=!0,Ae=ne.maxSizeTop;else ae=!1,Ae=ne.maxSizeBottom;else if(ge<=ne.maxSizeBottom.height)ae=!1,Ae=ne.maxSizeBottom;else ae=!0,Ae=ne.maxSizeTop;let{top:He,left:Ke}=ne;if(ne===q)He=f.top-ge+S.borderWidth;else if(!ae&&ge>f.height)He=re-ge;let Ue=this._editor.getDomNode();if(Ue){let Te=Ue.getBoundingClientRect();He-=Te.top,Ke-=Te.left}if(this._applyTopLeft({left:Ke,top:He}),ne===q)this._resizable.enableSashes(!0,!1,!1,!0);else this._resizable.enableSashes(!ae,ne===T,ae,ne!==T);this._resizable.minSize=ne.minSize,this._resizable.maxSize=Ae,this._resizable.layout(ge,Math.min(Ae.width,u.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(f){this._topLeft=f,this._editor.layoutOverlayWidget(this)}}var hS=Z("fileService"),Go;(function(f){f[f.FILE=0]="FILE",f[f.FOLDER=1]="FOLDER",f[f.ROOT_FOLDER=2]="ROOT_FOLDER"})(Go||(Go={}));var QN=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Md(f,u,g,v,S){if(G.isThemeIcon(S))return[`codicon-${S.id}`,"predefined-file-icon"];if(W.isUri(S))return[];let y=v===Go.ROOT_FOLDER?["rootfolder-icon"]:v===Go.FOLDER?["folder-icon"]:["file-icon"];if(g){let D;if(g.scheme===Q.data)D=Nc.parseMetaData(g).get(Nc.META_DATA_LABEL);else{let T=g.path.match(QN);if(T){if(D=qf(T[2].toLowerCase()),T[1])y.push(`${qf(T[1].toLowerCase())}-name-dir-icon`)}else D=qf(g.authority.toLowerCase())}if(v===Go.ROOT_FOLDER)y.push(`${D}-root-name-folder-icon`);else if(v===Go.FOLDER)y.push(`${D}-name-folder-icon`);else{if(D){if(y.push(`${D}-name-file-icon`),y.push("name-file-icon"),D.length<=255){let R=D.split(".");for(let K=1;K<R.length;K++)y.push(`${R.slice(K).join(".")}-ext-file-icon`)}y.push("ext-file-icon")}let T=eM(f,u,g);if(T)y.push(`${qf(T)}-lang-file-icon`)}}return y}function eM(f,u,g){if(!g)return null;let v=null;if(g.scheme===Q.data){let y=Nc.parseMetaData(g).get(Nc.META_DATA_MIME);if(y)v=u.getLanguageIdByMimeType(y)}else{let S=f.getModel(g);if(S)v=S.getLanguageId()}if(v&&v!==Fi)return v;return u.guessLanguageIdByFilepathOrFirstLine(g)}function qf(f){return f.replace(/[\s]/g,"/")}var tM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},YS=function(f,u){return function(g,v){u(g,v,f)}},iM=Tt("suggest-more-info",b.chevronRight,e(1566,"Icon for more information in the suggest widget.")),oM=new class f{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(`^${f._regexRelaxed.source}$`,"i")}extract(u,g){if(u.textLabel.match(f._regexStrict))return g[0]=u.textLabel,!0;if(u.completion.detail&&u.completion.detail.match(f._regexStrict))return g[0]=u.completion.detail,!0;if(u.completion.documentation){let v=typeof u.completion.documentation==="string"?u.completion.documentation:u.completion.documentation.value,S=f._regexRelaxed.exec(v);if(S&&(S.index===0||S.index+S[0].length===v.length))return g[0]=S[0],!0}return!1}},jf=class f{constructor(u,g,v,S){this._editor=u,this._modelService=g,this._languageService=v,this._themeService=S,this._onDidToggleDetails=new i,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(u){let g=new c,v=u;v.classList.add("show-file-icons");let S=w(u,m(".icon")),y=w(S,m("span.colorspan")),D=w(u,m(".contents")),T=w(D,m(".main")),R=w(T,m(".icon-label.codicon")),K=w(T,m("span.left")),q=w(T,m("span.right")),ee=new Vc(K,{supportHighlights:!0,supportIcons:!0});g.add(ee);let te=w(K,m("span.signature-label")),ne=w(K,m("span.qualifier-label")),re=w(q,m("span.details-label")),ae=w(q,m("span.readMore"+G.asCSSSelector(iM)));return ae.title=e(1567,"Read More"),{root:v,left:K,right:q,icon:S,colorspan:y,iconLabel:ee,iconContainer:R,parametersLabel:te,qualifierLabel:ne,detailsLabel:re,readMore:ae,disposables:g,configureFont:()=>{let ke=this._editor.getOptions(),Ae=ke.get(59),He=Ae.getMassagedFontFamily(),{fontFeatureSettings:Ke,fontVariationSettings:Ue}=Ae,Te=ke.get(135)||Ae.fontSize,We=ke.get(136)||Ae.lineHeight,{fontWeight:et,letterSpacing:tt}=Ae,ot=`${Te}px`,je=`${We}px`,nt=`${tt}px`;v.style.fontSize=ot,v.style.fontWeight=et,v.style.letterSpacing=nt,T.style.fontFamily=He,T.style.fontFeatureSettings=Ke,T.style.fontVariationSettings=Ue,T.style.lineHeight=je,S.style.height=je,S.style.width=je,ae.style.height=je,ae.style.width=je}}}renderElement(u,g,v){v.configureFont();let{completion:S}=u;v.colorspan.style.backgroundColor="";let y={labelEscapeNewLines:!0,matches:iu(u.score)},D=[];if(S.kind===19&&oM.extract(u,D))v.icon.className="icon customcolor",v.iconContainer.className="icon hide",v.colorspan.style.backgroundColor=D[0];else if(S.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){v.icon.className="icon hide",v.iconContainer.className="icon hide";let T=Md(this._modelService,this._languageService,W.from({scheme:"fake",path:u.textLabel}),Go.FILE),R=Md(this._modelService,this._languageService,W.from({scheme:"fake",path:S.detail}),Go.FILE);y.extraClasses=T.length>R.length?T:R}else if(S.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons)v.icon.className="icon hide",v.iconContainer.className="icon hide",y.extraClasses=[Md(this._modelService,this._languageService,W.from({scheme:"fake",path:u.textLabel}),Go.FOLDER),Md(this._modelService,this._languageService,W.from({scheme:"fake",path:S.detail}),Go.FOLDER)].flat();else v.icon.className="icon hide",v.iconContainer.className="",v.iconContainer.classList.add("suggest-icon",...G.asClassNameArray(Wd.toIcon(S.kind)));if(S.tags&&S.tags.indexOf(1)>=0)y.extraClasses=(y.extraClasses||[]).concat(["deprecated"]),y.matches=[];if(v.iconLabel.setLabel(u.textLabel,void 0,y),typeof S.label==="string")v.parametersLabel.textContent="",v.detailsLabel.textContent=JS(S.detail||""),v.root.classList.add("string-label");else v.parametersLabel.textContent=JS(S.label.detail||""),v.detailsLabel.textContent=JS(S.label.description||""),v.root.classList.remove("string-label");if(this._editor.getOption(134).showInlineDetails)po(v.detailsLabel);else Wi(v.detailsLabel);if(Ju(u))v.right.classList.add("can-expand-details"),po(v.readMore),v.readMore.onmousedown=(T)=>{T.stopPropagation(),T.preventDefault()},v.readMore.onclick=(T)=>{T.stopPropagation(),T.preventDefault(),this._onDidToggleDetails.fire()};else v.right.classList.remove("can-expand-details"),Wi(v.readMore),v.readMore.onmousedown=null,v.readMore.onclick=null}disposeTemplate(u){u.disposables.dispose()}};jf=tM([YS(1,gt),YS(2,pt),YS(3,De)],jf);function JS(f){return f.replace(/\r\n|\r|\n/g,"")}var nM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},$f=function(f,u){return function(g,v){u(g,v,f)}},kl,Gf=s("editorSuggestWidget.background",vo,e(1545,"Background color of the suggest widget."));s("editorSuggestWidget.border",vh,e(1546,"Border color of the suggest widget."));var QS=s("editorSuggestWidget.foreground",Ks,e(1547,"Foreground color of the suggest widget.")),eD=s("editorSuggestWidget.selectedForeground",{dark:Gl,light:Gl,hcDark:Gf,hcLight:Gf},e(1548,"Foreground color of the selected entry in the suggest widget."));s("editorSuggestWidget.selectedIconForeground",{dark:Zp,light:Zp,hcDark:Gf,hcLight:Gf},e(1549,"Icon foreground color of the selected entry in the suggest widget."));var rM=s("editorSuggestWidget.selectedBackground",{dark:Kl,light:Kl,hcDark:QS,hcLight:QS},e(1550,"Background color of the selected entry in the suggest widget.")),sM=s("editorSuggestWidget.focusOutline",Ft,e(1551,"Outline color of the focused (keyboard-navigated) entry in the suggest widget."));s("editorSuggestWidget.highlightForeground",_h,e(1552,"Color of the match highlights in the suggest widget."));s("editorSuggestWidget.focusHighlightForeground",{dark:Zv,light:Zv,hcDark:eD,hcLight:eD},e(1553,"Color of the match highlights in the suggest widget when an item is focused."));s("editorSuggestWidgetStatus.foreground",de(QS,0.5),e(1554,"Foreground color of the suggest widget status."));class tD{constructor(f,u){this._service=f,this._key=`suggestWidget.size/${u.getEditorType()}/${u instanceof ro}`}restore(){let f=this._service.get(this._key,0)??"";try{let u=JSON.parse(f);if(Je.is(u))return Je.lift(u)}catch{}return}store(f){this._service.store(this._key,JSON.stringify(f),0,1)}reset(){this._service.remove(this._key,0)}}var Zf=class f{static{kl=this}static{this.LOADING_MESSAGE=e(1555,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=e(1556,"No suggestions.")}constructor(u,g,v,S,y){this.editor=u,this._storageService=g,this._state=0,this._isAuto=!1,this._loadingTimeout=new ie,this._pendingLayout=new ie,this._pendingShowDetails=new ie,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new Un,this._disposables=new c,this._onDidSelect=new el,this._onDidFocus=new el,this._onDidHide=new i,this._onDidShow=new i,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new i,this.element=new wd,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new iD(this,u),this._persistedSize=new tD(g,u);class D{constructor(re,ae,ge=!1,ke=!1){this.persistedSize=re,this.currentSize=ae,this.persistHeight=ge,this.persistWidth=ke}}let T;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),T=new D(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize((re)=>{if(this._resize(re.dimension.width,re.dimension.height),T)T.persistHeight=T.persistHeight||!!re.north||!!re.south,T.persistWidth=T.persistWidth||!!re.east||!!re.west;if(!re.done)return;if(T){let{itemHeight:ae,defaultSize:ge}=this.getLayoutInfo(),ke=Math.round(ae/2),{width:Ae,height:He}=this.element.size;if(!T.persistHeight||Math.abs(T.currentSize.height-He)<=ke)He=T.persistedSize?.height??ge.height;if(!T.persistWidth||Math.abs(T.currentSize.width-Ae)<=ke)Ae=T.persistedSize?.width??ge.width;this._persistedSize.store(new Je(Ae,He))}this._contentWidget.unlockPreference(),T=void 0})),this._messageElement=w(this.element.domNode,m(".message")),this._listElement=w(this.element.domNode,m(".tree"));let R=this._disposables.add(y.createInstance(Uf,this.editor));R.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new XS(R,this.editor);let K=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);K();let q=()=>this.element.domNode.classList.toggle("fit-width-to-details",this.editor.getOption(134).fitWidthToDetails);q();let ee=y.createInstance(jf,this.editor);this._disposables.add(ee),this._disposables.add(ee.onDidToggleDetails(()=>this.toggleDetails())),this._list=new no("SuggestWidget",this._listElement,{getHeight:(re)=>this.getLayoutInfo().itemHeight,getTemplateId:(re)=>"suggestion"},[ee],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>Wt?"listitem":"option",getWidgetAriaLabel:()=>e(1557,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:(re)=>{let ae=re.textLabel,ge=Wd.toLabel(re.completion.kind);if(typeof re.completion.label!=="string"){let{detail:Ke,description:Ue}=re.completion.label;if(Ke&&Ue)ae=e(1558,"{0} {1}, {2}, {3}",ae,Ke,Ue,ge);else if(Ke)ae=e(1559,"{0} {1}, {2}",ae,Ke,ge);else if(Ue)ae=e(1560,"{0}, {1}, {2}",ae,Ue,ge)}else ae=e(1561,"{0}, {1}",ae,ge);if(!re.isResolved||!this._isDetailsVisible())return ae;let{documentation:ke,detail:Ae}=re.completion,He=qs("{0}{1}",Ae||"",ke?typeof ke==="string"?ke:ke.value:"");return e(1562,"{0}, docs: {1}",ae,He)}}}),this._list.style(Ql({listInactiveFocusBackground:rM,listInactiveFocusOutline:sM})),this._status=y.createInstance(Kf,this.element.domNode,Lr,void 0);let te=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);te(),this._disposables.add(this._list.onMouseDown((re)=>this._onListMouseDownOrTap(re))),this._disposables.add(this._list.onTap((re)=>this._onListMouseDownOrTap(re))),this._disposables.add(this._list.onDidChangeSelection((re)=>this._onListSelection(re))),this._disposables.add(this._list.onDidChangeFocus((re)=>this._onListFocus(re))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration((re)=>{if(re.hasChanged(134))te(),K(),q();if(this._completionModel&&(re.hasChanged(59)||re.hasChanged(135)||re.hasChanged(136)))this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=rt.Visible.bindTo(v),this._ctxSuggestWidgetDetailsVisible=rt.DetailsVisible.bindTo(v),this._ctxSuggestWidgetMultipleSuggestions=rt.MultipleSuggestions.bindTo(v),this._ctxSuggestWidgetHasFocusedSuggestion=rt.HasFocusedSuggestion.bindTo(v),this._ctxSuggestWidgetDetailsFocused=rt.DetailsFocused.bindTo(v);let ne=Zn(this._details.widget.domNode);this._disposables.add(ne),this._disposables.add(ne.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(ne.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(ft(this._details.widget.domNode,"keydown",(re)=>{this._onDetailsKeydown.fire(re)})),this._disposables.add(this.editor.onMouseDown((re)=>this._onEditorMouseDown(re)))}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(u){if(this._details.widget.domNode.contains(u.target.element))this._details.widget.domNode.focus();else if(this.element.domNode.contains(u.target.element))this.editor.focus()}_onCursorSelectionChanged(){if(this._state!==0)this._contentWidget.layout()}_onListMouseDownOrTap(u){if(typeof u.element>"u"||typeof u.index>"u")return;u.browserEvent.preventDefault(),u.browserEvent.stopPropagation(),this._select(u.element,u.index)}_onListSelection(u){if(u.elements.length)this._select(u.elements[0],u.indexes[0])}_select(u,g){let v=this._completionModel;if(v)this._onDidSelect.fire({item:u,index:g,model:v}),this.editor.focus()}_onListFocus(u){if(this._ignoreFocusEvents)return;if(this._state===5)this._setState(3);if(!u.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 g=u.elements[0],v=u.indexes[0];if(g!==this._focusedItem)this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=g,this._list.reveal(v),this._currentSuggestionDetails=Pt(async(S)=>{let y=Jn(()=>{if(this._isDetailsVisible())this._showDetails(!0,!1)},250),D=S.onCancellationRequested(()=>y.dispose());try{return await g.resolve(S)}finally{y.dispose(),D.dispose()}}),this._currentSuggestionDetails.then(()=>{if(v>=this._list.length||g!==this._list.element(v))return;if(this._ignoreFocusEvents=!0,this._list.splice(v,1,[g]),this._list.setFocus([v]),this._ignoreFocusEvents=!1,this._isDetailsVisible())this._showDetails(!1,!1);else this.element.domNode.classList.remove("docs-side");this.editor.setAriaOptions({activeDescendant:this._list.getElementID(v)})}).catch(J);this._onDidFocus.fire({item:g,index:v,model:this._completionModel})}_setState(u){if(this._state===u)return;switch(this._state=u,this.element.domNode.classList.toggle("frozen",u===4),this.element.domNode.classList.remove("message"),u){case 0:Wi(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=kl.LOADING_MESSAGE,Wi(this._listElement,this._status.element),po(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,bo(kl.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=kl.NO_SUGGESTIONS_MESSAGE,Wi(this._listElement,this._status.element),po(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,bo(kl.NO_SUGGESTIONS_MESSAGE);break;case 3:Wi(this._messageElement),po(this._listElement,this._status.element),this._show();break;case 4:Wi(this._messageElement),po(this._listElement,this._status.element),this._show();break;case 5:Wi(this._messageElement),po(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(u,g){if(this._state!==0)return;if(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!u,!this._isAuto)this._loadingTimeout.value=Jn(()=>this._setState(1),g)}showSuggestions(u,g,v,S,y){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==u)this._completionModel=u;if(v&&this._state!==2&&this._state!==0){this._setState(4);return}let D=this._completionModel.items.length,T=D===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(D>1),T){this._setState(S?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(v?4:3),this._list.reveal(g,0,g===0?0:this.getLayoutInfo().itemHeight*0.33),this._list.setFocus(y?[]:[g])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Ym(F(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(u=!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((Ju(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,u)}_showDetails(u,g){this._pendingShowDetails.value=Ym(F(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let v=!1;if(u)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"),g)this._details.widget.focus(),v=!0}else this._details.hide();if(!v)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 u=this._persistedSize.restore(),g=Math.ceil(this.getLayoutInfo().itemHeight*4.3);if(u&&u.height<g)this._persistedSize.store(u.with(void 0,g))}isFrozen(){return this._state===4}_afterRender(u){if(u===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(u){if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;let g=ys(this.element.domNode.ownerDocument.body),v=this.getLayoutInfo();if(!u)u=v.defaultSize;let S=u.height,y=u.width;if(this._status.element.style.height=`${v.itemHeight}px`,this._state===2||this._state===1)S=v.itemHeight+v.borderHeight,y=v.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new Je(y,S),this._contentWidget.setPreference(2);else{let D=g.width-v.borderHeight-2*v.horizontalPadding;if(y>D)y=D;let T=this._completionModel?this._completionModel.stats.pLabelLen*v.typicalHalfwidthCharacterWidth:y;if(this.editor.getOption(134).fitWidthToDetails&&this._completionModel&&!this._persistedSize.restore()){let Ae=Math.min(D,this.editor.getLayoutInfo().width),He=Math.min(Ae,this._measureContentWidth(v));y=Math.max(y,He),T=Math.max(T,He)}let R=v.statusBarHeight+this._list.contentHeight+v.borderHeight,K=v.itemHeight+v.statusBarHeight,q=mt(this.editor.getDomNode()),ee=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),te=q.top+ee.top+ee.height,ne=Math.min(g.height-te-v.verticalPadding,R),re=q.top+ee.top-v.verticalPadding,ae=Math.min(re,R),ge=Math.min(Math.max(ae,ne)+v.borderHeight,R);if(S===this._cappedHeight?.capped)S=this._cappedHeight.wanted;if(S<K)S=K;if(S>ge)S=ge;let ke=150;if(S>ne&&ae>ne||this._forceRenderingAbove&&re>ke)this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),ge=ae;else this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),ge=ne;this.element.preferredSize=new Je(T,v.defaultSize.height),this.element.maxSize=new Je(D,ge),this.element.minSize=new Je(220,K),this._cappedHeight=S===R?{wanted:this._cappedHeight?.wanted??u.height,capped:S}:void 0}this._resize(y,S)}_resize(u,g){let{width:v,height:S}=this.element.maxSize;u=Math.min(v,u),g=Math.min(S,g);let{statusBarHeight:y}=this.getLayoutInfo();this._list.layout(g-y,u),this._listElement.style.height=`${g-y}px`,this.element.layout(g,u),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){if(this._isDetailsVisible())this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}_measureContentWidth(u){let g=this._completionModel;if(!g)return 0;if(this._fitContentWidth?.model===g)return this._fitContentWidth.width;if(this._measureContext===void 0)this._measureContext=m("canvas").getContext("2d");let v;if(this._measureContext){let D=this.editor.getOptions(),T=D.get(59),R=D.get(135)||T.fontSize;this._measureContext.font=`${T.fontWeight} ${R}px ${T.getMassagedFontFamily()}`,v=0;for(let K of g.items){let{completion:q}=K,ee=K.textLabel;if(typeof q.label==="string")ee+=q.detail??"";else ee+=(q.label.detail??"")+(q.label.description??"");v=Math.max(v,this._measureContext.measureText(ee).width)}}else v=g.stats.pLabelLen*u.typicalHalfwidthCharacterWidth;let S=2*u.itemHeight+2*u.horizontalPadding+20,y=v+S;return this._fitContentWidth={model:g,width:y},y}getLayoutInfo(){let u=this.editor.getOption(59),g=Si(this.editor.getOption(136)||u.lineHeight,8,1000),v=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:g,S=this._details.widget.getLayoutInfo().borderWidth,y=2*S;return{itemHeight:g,statusBarHeight:v,borderWidth:S,borderHeight:y,typicalHalfwidthCharacterWidth:u.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new Je(430,v+12*g)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(u){this._storageService.store("expandSuggestionDocs",u,0,0)}forceRenderingAbove(){if(!this._forceRenderingAbove)this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore())}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Zf=kl=nM([$f(1,xn),$f(2,V),$f(3,De),$f(4,L)],Zf);class iD{constructor(f,u){this._widget=f,this._editor=u,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:f,width:u}=this._widget.element.size,{borderWidth:g,horizontalPadding:v}=this._widget.getLayoutInfo();return new Je(u+2*g+v,f+2*g)}afterRender(f){this._widget._afterRender(f)}setPreference(f){if(!this._preferenceLocked)this._preference=f}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(f){this._position=f}}var aM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},El=function(f,u){return function(g,v){u(g,v,f)}},eC;class oD{constructor(f,u){if(this._model=f,this._position=u,this._decorationOptions=oe.register({description:"suggest-line-suffix",stickiness:1}),f.getLineMaxColumn(u.lineNumber)!==u.column){let v=f.getOffsetAt(u),S=f.getPositionAt(v+1);f.changeDecorations((y)=>{if(this._marker)y.removeDecoration(this._marker);this._marker=y.addDecoration(t.fromPositions(u,S),this._decorationOptions)})}}dispose(){if(this._marker&&!this._model.isDisposed())this._model.changeDecorations((f)=>{f.removeDecoration(this._marker),this._marker=void 0})}delta(f){if(this._model.isDisposed()||this._position.lineNumber!==f.lineNumber)return 0;if(this._marker){let u=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(u.getStartPosition())-this._model.getOffsetAt(f)}else return this._model.getLineMaxColumn(f.lineNumber)-f.column}}var An=class f{static{eC=this}static{this.ID="editor.contrib.suggestController"}static get(u){return u.getContribution(eC.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(u,g,v,S,y,D,T){this._memoryService=g,this._commandService=v,this._contextKeyService=S,this._instantiationService=y,this._logService=D,this._telemetryService=T,this._lineSuffix=new ie,this._toDispose=new c,this._selectors=new nD((ee)=>ee.priority),this._onWillInsertSuggestItem=new i,this._wantsForceRenderingAbove=!1,this.editor=u,this.model=y.createInstance(_l,this.editor),this._selectors.register({priority:0,select:(ee,te,ne)=>this._memoryService.select(ee,te,ne)});let R=rt.InsertMode.bindTo(S);R.set(u.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>R.set(u.getOption(134).insertMode))),this.widget=this._toDispose.add(new Bv(F(u.getDomNode()),()=>{let ee=this._instantiationService.createInstance(Zf,this.editor);this._toDispose.add(ee),this._toDispose.add(ee.onDidSelect((ge)=>this._insertSuggestion(ge,0),this));let te=new GS(this.editor,ee,this.model,(ge)=>this._insertSuggestion(ge,2));this._toDispose.add(te);let ne=rt.MakesTextEdit.bindTo(this._contextKeyService),re=rt.HasInsertAndReplaceRange.bindTo(this._contextKeyService),ae=rt.CanResolve.bindTo(this._contextKeyService);if(this._toDispose.add(E(()=>{ne.reset(),re.reset(),ae.reset()})),this._toDispose.add(ee.onDidFocus(({item:ge})=>{let ke=this.editor.getPosition(),Ae=ge.editStart.column,He=ke.column,Ke=!0;if(this.editor.getOption(1)==="smart"&&this.model.state===2&&!ge.completion.additionalTextEdits&&!(ge.completion.insertTextRules&4)&&He-Ae===ge.completion.insertText.length)Ke=this.editor.getModel().getValueInRange({startLineNumber:ke.lineNumber,startColumn:Ae,endLineNumber:ke.lineNumber,endColumn:He})!==ge.completion.insertText;ne.set(Ke),re.set(!r.equals(ge.editInsertEnd,ge.editReplaceEnd)),ae.set(Boolean(ge.provider.resolveCompletionItem)||Boolean(ge.completion.documentation)||ge.completion.detail!==ge.completion.label)})),this._wantsForceRenderingAbove)ee.forceRenderingAbove();return ee})),this._overtypingCapturer=this._toDispose.add(new Bv(F(u.getDomNode()),()=>this._toDispose.add(new zf(this.editor,this.model)))),this._alternatives=this._toDispose.add(new Bv(F(u.getDomNode()),()=>this._toDispose.add(new Nd(this.editor,this._contextKeyService)))),this._toDispose.add(y.createInstance(Xu,u)),this._toDispose.add(this.model.onDidTrigger((ee)=>{this.widget.value.showTriggered(ee.auto,ee.shy?250:50),this._lineSuffix.value=new oD(this.editor.getModel(),ee.position)})),this._toDispose.add(this.model.onDidSuggest((ee)=>{if(ee.triggerOptions.shy)return;let te=-1;for(let re of this._selectors.itemsOrderedByPriorityDesc)if(te=re.select(this.editor.getModel(),this.editor.getPosition(),ee.completionModel.items),te!==-1)break;if(te===-1)te=0;if(this.model.state===0)return;let ne=!1;if(ee.triggerOptions.auto){let re=this.editor.getOption(134);if(re.selectionMode==="never"||re.selectionMode==="always")ne=re.selectionMode==="never";else if(re.selectionMode==="whenTriggerCharacter")ne=ee.triggerOptions.triggerKind!==1;else if(re.selectionMode==="whenQuickSuggestion")ne=ee.triggerOptions.triggerKind===1&&!ee.triggerOptions.refilter}this.widget.value.showSuggestions(ee.completionModel,te,ee.isFrozen,ee.triggerOptions.auto,ne)})),this._toDispose.add(this.model.onDidCancel((ee)=>{if(!ee.retrigger)this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let K=rt.AcceptSuggestionsOnEnter.bindTo(S),q=()=>{let ee=this.editor.getOption(1);K.set(ee==="on"||ee==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>q())),q()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(u,g){if(!u||!u.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let v=wi.get(this.editor);if(!v)return;this._onWillInsertSuggestItem.fire({item:u.item});let S=this.editor.getModel(),y=S.getAlternativeVersionId(),{item:D}=u,T=[],R=new Oe;if(!(g&1))this.editor.pushUndoStop();let K=this.getOverwriteInfo(D,Boolean(g&8));this._memoryService.memorize(S,this.editor.getPosition(),D);let q=D.isResolved,ee=-1,te=-1;if(Array.isArray(D.completion.additionalTextEdits)){this.model.cancel();let re=Sr.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",D.completion.additionalTextEdits.map((ae)=>{let ge=t.lift(ae.range);if(ge.startLineNumber===D.position.lineNumber&&ge.startColumn>D.position.column){let ke=this.editor.getPosition().column-D.position.column,Ae=ke,He=t.spansMultipleLines(ge)?0:ke;ge=new t(ge.startLineNumber,ge.startColumn+Ae,ge.endLineNumber,ge.endColumn+He)}return Mt.replaceMove(ge,ae.text)})),re.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!q){let re=new Kt,ae,ge=S.onDidChangeContent((Ke)=>{if(Ke.isFlush){R.cancel(),ge.dispose();return}for(let Ue of Ke.changes){let Te=t.getEndPosition(Ue.range);if(!ae||r.isBefore(Te,ae))ae=Te}}),ke=g;g|=2;let Ae=!1,He=this.editor.onWillType(()=>{if(He.dispose(),Ae=!0,!(ke&2))this.editor.pushUndoStop()});T.push(D.resolve(R.token).then(()=>{if(!D.completion.additionalTextEdits||R.token.isCancellationRequested)return;if(ae&&D.completion.additionalTextEdits.some((Ue)=>r.isBefore(ae,t.getStartPosition(Ue.range))))return!1;if(Ae)this.editor.pushUndoStop();let Ke=Sr.capture(this.editor);if(this.editor.executeEdits("suggestController.additionalTextEdits.async",D.completion.additionalTextEdits.map((Ue)=>Mt.replaceMove(t.lift(Ue.range),Ue.text))),Ke.restoreRelativeVerticalPositionOfCursor(this.editor),Ae||!(ke&2))this.editor.pushUndoStop();return!0}).then((Ke)=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",re.elapsed(),Ke),te=Ke===!0?1:Ke===!1?0:-2}).finally(()=>{ge.dispose(),He.dispose()}))}let{insertText:ne}=D.completion;if(!(D.completion.insertTextRules&4))ne=Mo.escape(ne);if(this.model.cancel(),v.insert(ne,{overwriteBefore:K.overwriteBefore,overwriteAfter:K.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(D.completion.insertTextRules&1),clipboardText:u.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:$n.suggest({providerId:qm.fromExtensionId(D.extensionId?.value)})}),!(g&2))this.editor.pushUndoStop();if(D.completion.command)if(D.completion.command.id===Xf.id)this.model.trigger({auto:!0,retrigger:!0});else{let re=new Kt;T.push(this._commandService.executeCommand(D.completion.command.id,...D.completion.command.arguments?[...D.completion.command.arguments]:[]).catch((ae)=>{if(D.completion.extensionId)dt(ae);else J(ae)}).finally(()=>{ee=re.elapsed()}))}if(g&4)this._alternatives.value.set(u,(re)=>{R.cancel();while(S.canUndo()){if(y!==S.getAlternativeVersionId())S.undo();this._insertSuggestion(re,3|(g&8?8:0));break}});this._alertCompletionItem(D),Promise.all(T).finally(()=>{this._reportSuggestionAcceptedTelemetry(D,S,q,ee,te,u.index,u.model.items),this.model.clear(),R.dispose()})}_reportSuggestionAcceptedTelemetry(u,g,v,S,y,D,T){if(Math.random()>0.0001)return;let R=new Map;for(let te=0;te<Math.min(30,T.length);te++){let ne=T[te].textLabel;if(R.has(ne))R.get(ne).push(te);else R.set(ne,[te])}let K=R.get(u.textLabel),ee=K&&K.length>1?K[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:u.extensionId?.value??"unknown",providerId:u.provider._debugDisplayName??"unknown",kind:u.completion.kind,basenameHash:Rc(hi(g.uri)).toString(16),languageId:g.getLanguageId(),fileExtension:EI(g.uri),resolveInfo:!u.provider.resolveCompletionItem?-1:v?1:0,resolveDuration:u.resolveDuration,commandDuration:S,additionalEditsAsync:y,index:D,firstIndex:ee})}getOverwriteInfo(u,g){Ie(this.editor.hasModel());let v=this.editor.getOption(134).insertMode==="replace";if(g)v=!v;let S=u.position.column-u.editStart.column,y=(v?u.editReplaceEnd.column:u.editInsertEnd.column)-u.position.column,D=this.editor.getPosition().column-u.position.column,T=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:S+D,overwriteAfter:y+T}}_alertCompletionItem(u){if(Ln(u.completion.additionalTextEdits)){let g=e(1534,"Accepting '{0}' made {1} additional edits",u.textLabel,u.completion.additionalTextEdits.length);En(g)}}triggerSuggest(u,g,v){if(this.editor.hasModel())this.model.trigger({auto:g??!1,completionOptions:{providerFilter:u,kindFilter:v?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus()}triggerSuggestAndAcceptBest(u){if(!this.editor.hasModel())return;let g=this.editor.getPosition(),v=()=>{if(g.equals(this.editor.getPosition()))this._commandService.executeCommand(u.fallback)},S=(y)=>{if(y.completion.insertTextRules&4||y.completion.additionalTextEdits)return!0;let D=this.editor.getPosition(),T=y.editStart.column,R=D.column;if(R-T!==y.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:D.lineNumber,startColumn:T,endLineNumber:D.lineNumber,endColumn:R})!==y.completion.insertText};C.once(this.model.onDidTrigger)((y)=>{let D=[];C.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{$e(D),v()},void 0,D),this.model.onDidSuggest(({completionModel:T})=>{if($e(D),T.items.length===0){v();return}let R=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),T.items),K=T.items[R];if(!S(K)){v();return}this.editor.pushUndoStop(),this._insertSuggestion({index:R,item:K,model:T},7)},void 0,D)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(g,0),this.editor.focus()}acceptSelectedSuggestion(u,g){let v=this.widget.value.getFocusedItem(),S=0;if(u)S|=4;if(g)S|=8;this._insertSuggestion(v,S)}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(u){return this._selectors.register(u)}};An=eC=aM([El(1,dl),El(2,Ne),El(3,V),El(4,L),El(5,Be),El(6,kn)],An);class nD{constructor(f){this.prioritySelector=f,this._items=[]}register(f){if(this._items.indexOf(f)!==-1)throw Error("Value is already registered");return this._items.push(f),this._items.sort((u,g)=>this.prioritySelector(g)-this.prioritySelector(u)),{dispose:()=>{let u=this._items.indexOf(f);if(u>=0)this._items.splice(u,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class Xf extends z{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:Xf.id,label:h(1543,"Trigger Suggest"),precondition:_.and(o.writable,o.hasCompletionItemProvider,rt.Visible.toNegated()),kbOpts:{kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(f,u,g){let v=An.get(u);if(!v)return;let S;if(g&&typeof g==="object"){if(g.auto===!0)S=!0}v.triggerSuggest(void 0,S,void 0)}}le(An.ID,An,2);I(Xf);var Do=190,_o=Bt.bindToContribution(An.get);U(new _o({id:"acceptSelectedSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion),handler(f){f.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:_.and(rt.Visible,o.textInputFocus),weight:Do},{primary:3,kbExpr:_.and(rt.Visible,o.textInputFocus,rt.AcceptSuggestionsOnEnter,rt.MakesTextEdit),weight:Do}],menuOpts:[{menuId:Lr,title:e(1535,"Insert"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange.toNegated())},{menuId:Lr,title:e(1536,"Insert"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("insert"))},{menuId:Lr,title:e(1537,"Replace"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("replace"))}]}));U(new _o({id:"acceptAlternativeSelectedSuggestion",precondition:_.and(rt.Visible,o.textInputFocus,rt.HasFocusedSuggestion),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:1027,secondary:[1026]},handler(f){f.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Lr,group:"left",order:2,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("insert")),title:e(1538,"Replace")},{menuId:Lr,group:"left",order:2,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("replace")),title:e(1539,"Insert")}]}));we.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");U(new _o({id:"hideSuggestWidget",precondition:rt.Visible,handler:(f)=>f.cancelSuggestWidget(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));U(new _o({id:"selectNextSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(f)=>f.selectNextSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:Lr,group:"left",order:0,when:rt.HasFocusedSuggestion.toNegated(),title:e(1540,"Select")}}));U(new _o({id:"selectNextPageSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(f)=>f.selectNextPageSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:12,secondary:[2060]}}));U(new _o({id:"selectLastSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(f)=>f.selectLastSuggestion()}));U(new _o({id:"selectPrevSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(f)=>f.selectPrevSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));U(new _o({id:"selectPrevPageSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(f)=>f.selectPrevPageSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:11,secondary:[2059]}}));U(new _o({id:"selectFirstSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(f)=>f.selectFirstSuggestion()}));U(new _o({id:"focusSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion.negate()),handler:(f)=>f.focusSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));U(new _o({id:"focusAndAcceptSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion.negate()),handler:(f)=>{f.focusSuggestion(),f.acceptSelectedSuggestion(!0,!1)}}));U(new _o({id:"toggleSuggestionDetails",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion),handler:(f)=>f.toggleSuggestionDetails(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Lr,group:"right",order:1,when:_.and(rt.DetailsVisible,rt.CanResolve),title:e(1541,"Show Less")},{menuId:Lr,group:"right",order:1,when:_.and(rt.DetailsVisible.toNegated(),rt.CanResolve),title:e(1542,"Show More")}]}));U(new _o({id:"toggleExplainMode",precondition:rt.Visible,handler:(f)=>f.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));U(new _o({id:"toggleSuggestionFocus",precondition:rt.Visible,handler:(f)=>f.toggleSuggestionFocus(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2570,mac:{primary:778}}}));U(new _o({id:"insertBestCompletion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Xu.AtEnd,rt.Visible.toNegated(),Nd.OtherSuggestions.toNegated(),wi.InSnippetMode.toNegated()),handler:(f,u)=>{f.triggerSuggestAndAcceptBest(Gt(u)?{fallback:"tab",...u}:{fallback:"tab"})},kbOpts:{weight:Do,primary:2}}));U(new _o({id:"insertNextSuggestion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Nd.OtherSuggestions,rt.Visible.toNegated(),wi.InSnippetMode.toNegated()),handler:(f)=>f.acceptNextSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2}}));U(new _o({id:"insertPrevSuggestion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Nd.OtherSuggestions,rt.Visible.toNegated(),wi.InSnippetMode.toNegated()),handler:(f)=>f.acceptPrevSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:1026}}));U(new class extends Bt{constructor(){super({id:"suggestWidgetCopy",precondition:rt.DetailsFocused,kbOpts:{weight:Do+10,kbExpr:rt.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(f,u){F(u.getDomNode()).document.execCommand("copy")}});I(class extends z{constructor(){super({id:"editor.action.resetSuggestSize",label:h(1544,"Reset Suggest Widget Size"),precondition:void 0})}run(f,u){An.get(u)?.resetWidgetSize()}});class rD extends n{get selectedItem(){return this._currentSuggestItemInfo}constructor(f,u,g){super();this.editor=f,this.suggestControllerPreselector=u,this.onWillAccept=g,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new i),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(f.onKeyDown((S)=>{if(S.shiftKey&&!this.isShiftKeyPressed)this.isShiftKeyPressed=!0,this.update(this._isActive)})),this._register(f.onKeyUp((S)=>{if(S.shiftKey&&this.isShiftKeyPressed)this.isShiftKeyPressed=!1,this.update(this._isActive)}));let v=An.get(this.editor);if(v){this._register(v.registerSelector({priority:100,select:(D,T,R)=>{let K=this.editor.getModel();if(!K)return-1;let q=this.suggestControllerPreselector(),ee=q?Qo(q,K):void 0;if(!ee)return-1;let te=r.lift(T),ne=R.map((ae,ge)=>{let ke=Qu.fromSuggestion(v,K,te,ae,this.isShiftKeyPressed),Ae=Qo(ke.getSingleTextEdit(),K),He=Ef(ee,Ae);return{index:ge,valid:He,prefixLength:Ae.text.length,suggestItem:ae}}).filter((ae)=>ae&&ae.valid&&ae.prefixLength>0),re=Uv(ne,Cn((ae)=>ae.prefixLength,xi));return re?re.index:-1}}));let S=!1,y=()=>{if(S)return;S=!0,this._register(v.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(v.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(v.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))};this._register(C.once(v.model.onDidTrigger)((D)=>{y()})),this._register(v.onWillInsertSuggestItem((D)=>{let T=this.editor.getPosition(),R=this.editor.getModel();if(!T||!R)return;let K=Qu.fromSuggestion(v,R,T,D.item,this.isShiftKeyPressed);this.onWillAccept(K)}))}this.update(this._isActive)}update(f){let u=this.getSuggestItemInfo();if(this._isActive!==f||!dM(this._currentSuggestItemInfo,u))this._isActive=f,this._currentSuggestItemInfo=u,this._onDidSelectedItemChange.fire()}getSuggestItemInfo(){let f=An.get(this.editor);if(!f||!this.isSuggestWidgetVisible)return;let u=f.widget.value.getFocusedItem(),g=this.editor.getPosition(),v=this.editor.getModel();if(!u||!g||!v)return;return Qu.fromSuggestion(f,v,g,u.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){An.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){An.get(this.editor)?.forceRenderingAbove()}}class Qu{static fromSuggestion(f,u,g,v,S){let{insertText:y}=v.completion,D=!1;if(v.completion.insertTextRules&4){let R=new Mo().parse(y);if(R.children.length<100)il.adjustWhitespace(u,g,!0,R);y=R.toString(),D=!0}let T=f.getOverwriteInfo(v,S);return new Qu(t.fromPositions(g.delta(0,-T.overwriteBefore),g.delta(0,Math.max(T.overwriteAfter,0))),y,v.completion.kind,D,v.container.incomplete??!1)}constructor(f,u,g,v,S){this.range=f,this.insertText=u,this.completionItemKind=g,this.isSnippetText=v,this.listIncomplete=S}equals(f){return this.range.equalsRange(f.range)&&this.insertText===f.insertText&&this.completionItemKind===f.completionItemKind&&this.isSnippetText===f.isSnippetText}toSelectedSuggestionInfo(){return new Nv(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new ct(this.range,this.insertText)}}function dM(f,u){if(f===u)return!0;if(!f||!u)return!1;return f.equals(u)}class tC extends n{constructor(f,u,g){super();this._editorObs=f,this._handleSuggestAccepted=u,this._suggestControllerPreselector=g,this._suggestWidgetAdaptor=this._register(new rD(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),(v)=>this._editorObs.forceUpdate((S)=>{this._handleSuggestAccepted(v)}))),this.selectedItem=Le(this,(v)=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate((S)=>v(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class iC{constructor(f,u){this.lineNumber=f,this.columnRange=u}}class Yf{constructor(f,u){if(this.startColumn=f,this.endColumnExclusive=u,f>u)throw new P(`startColumn ${f} cannot be after endColumnExclusive ${u}`)}toRange(f){return new t(f,this.startColumn,f,this.endColumnExclusive)}equals(f){return this.startColumn===f.startColumn&&this.endColumnExclusive===f.endColumnExclusive}toZeroBasedOffsetRange(){return new B(this.startColumn-1,this.endColumnExclusive-1)}}class Wa{static fromLineTokens(f){let u=[];for(let g=0;g<f.getCount();g++)u.push(new oC(f.getTokenText(g),f.getMetadata(g)));return Wa.create(u)}static create(f){return new Wa(f)}constructor(f){this._tokenInfo=f}toLineTokens(f){return bt.createFromTextAndMetadata(this.map((u,g)=>({text:g.text,metadata:g.metadata})),f)}map(f){let u=[],g=0;for(let v of this._tokenInfo){let S=new B(g,g+v.text.length);u.push(f(S,v)),g+=v.text.length}return u}slice(f){let u=[],g=0;for(let v of this._tokenInfo){let S=g,y=S+v.text.length;if(y>f.start){if(S>=f.endExclusive)break;let D=Math.max(0,f.start-S),T=Math.max(0,y-f.endExclusive);u.push(new oC(v.text.slice(D,v.text.length-T),v.metadata))}g+=v.text.length}return Wa.create(u)}append(f){let u=this._tokenInfo.concat(f._tokenInfo);return Wa.create(u)}}class oC{constructor(f,u){this.text=f,this.metadata=u}}var cM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},lM=function(f,u){return function(g,v){u(g,v,f)}};class Qf{static from(f){if(!f)return;return new Qf(f.icon)}constructor(f=b.warning){this.icon=f}}var dD="ghost-text",Ba=class f extends n{constructor(u,g,v,S){super();if(this._editor=u,this._data=g,this._languageService=S,this._isDisposed=M(this,!1),this._warningState=d((y)=>{let D=this._data.read(y),T=D?.warning;if(!D||!T)return;let R=D.ghostText;return{lineNumber:R.lineNumber,position:new r(R.lineNumber,R.parts[0].column),icon:T.icon}}),this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=d(this,(y)=>{let D=this._data.read(y);if(!D)return;return D.ghostText.parts.map((K)=>K.lines.map((q)=>q.line).join("")).join("").replace(/\s/g,"").length}),this._extraClassNames=d(this,(y)=>{let D=this._extraClasses.slice();if(this._warningState.read(y))D.push("warning");let T=this._nonWhitespaceCount.read(y);if(this._highlightShortText&&T&&T<3)D.push("short-text");else if(this._useSyntaxHighlighting.read(y))D.push("syntax-highlighted");return D.map((K)=>` ${K}`).join("")}),this._state=d(this,(y)=>{if(this._isDisposed.read(y))return;let D=this._data.read(y);if(!D)return;let T=this._editorObs.model.read(y);if(!T)return;let R=D.ghostText,K=R instanceof Uu?R.columnRange:void 0,q=this._useSyntaxHighlighting.read(y),ee=this._extraClassNames.read(y),{inlineTexts:te,additionalLines:ne,hiddenRange:re,additionalLinesOriginalSuffix:ae}=hM(R,T,dD+ee),ge=T.getLineContent(R.lineNumber),ke=new eo(te.map((ot)=>qn.insert(ot.column-1,ot.text))),Ae=q?T.tokenization.tokenizeLinesAt(R.lineNumber,[ke.apply(ge),...ne.map((ot)=>ot.content)]):void 0,He=ke.getNewRanges(),Ke=te.map((ot,je)=>({...ot,tokens:Ae?.[0]?.getTokensInRange(He[je])})),Ue=ne.map((ot,je)=>{let nt=Ae?.[je+1]??bt.createEmpty(ot.content,this._languageService.languageIdCodec);if(je===ne.length-1&&ae){let st=Wa.fromLineTokens(T.tokenization.getLineTokens(ae.lineNumber)).slice(ae.columnRange.toZeroBasedOffsetRange());nt=Wa.fromLineTokens(nt).append(st).toLineTokens(nt.languageIdCodec)}return new hD(nt,ot.decorations)}),Te=this._editor.getSelection()?.getStartPosition().column,We=Ke.filter((ot)=>ot.text!==""),et=We.length!==0,tt=new yl((et?We[0].column:1)-Te,et?0:ne.findIndex((ot)=>ot.content!=="")+1,et?1:0,ne.length+(et?1:0),0,zm(We.map((ot)=>ot.text.length))+zm(Ue.map((ot)=>ot.content.getTextLength())),We.length+(ne.length>0?1:0),We.length>1&&Ue.length===0?We.every((ot)=>ot.text===We[0].text):void 0);return{replacedRange:K,inlineTexts:Ke,additionalLines:Ue,hiddenRange:re,lineNumber:R.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(y),targetTextModel:T,syntaxHighlightingEnabled:q,telemetryViewData:tt,handleInlineCompletionShown:D.handleInlineCompletionShown}}),this._decorations=d(this,(y)=>{let D=this._state.read(y);if(!D)return[];let T=[],R=this._extraClassNames.read(y);if(D.replacedRange)T.push({range:D.replacedRange.toRange(D.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+R,description:"GhostTextReplacement"}});if(D.hiddenRange)T.push({range:D.hiddenRange.toRange(D.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(let K of D.inlineTexts){let q="";if(this._highlightShortText&&K.text.length<5)q+=" short-text";T.push({range:t.fromPositions(new r(D.lineNumber,K.column)),options:{description:"ghost-text-decoration",after:{content:K.text,tokens:K.tokens,inlineClassName:(K.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+R+q+K.lineDecorations.map((ee)=>" "+ee.className).join(" "),cursorStops:Or.Left,attachedData:new Jf(this)},showIfCollapsed:!0}})}return T}),this.isHovered=d(this,(y)=>{if(this._isDisposed.read(y))return!1;return this._isInlineTextHovered.read(y)||this._additionalLinesWidget.isHovered.read(y)}),this._extraClasses=v.extraClasses??[],this._isClickable=v.isClickable??!1,this._shouldKeepCursorStable=v.shouldKeepCursorStable??!1,this._minReservedLineCount=v.minReservedLineCount??Se(0),this._useSyntaxHighlighting=v.useSyntaxHighlighting??Se(!0),this._highlightShortText=v.highlightShortSuggestions??!1,this._editorObs=Ze(this._editor),this._additionalLinesWidget=this._register(new lD(this._editor,mn({owner:this,equalsFn:$c(sh())},(y)=>{let D=this._state.read(y);return D?new cD(D.lineNumber,D.additionalLines,D.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered((y)=>y.target.type===6&&y.target.detail.injectedText?.options.attachedData instanceof Jf&&y.target.detail.injectedText.options.attachedData.owner===this,this._store),this._register(E(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this._decorations)),this._isClickable)this._register(this._additionalLinesWidget.onDidClick((y)=>this._onDidClick.fire(y))),this._register(this._editor.onMouseUp((y)=>{if(y.target.type!==6)return;let D=y.target.detail.injectedText?.options.attachedData;if(D instanceof Jf&&D.owner===this)this._onDidClick.fire(y.event)}));this._register(H((y)=>{let D=this._state.read(y);D?.handleInlineCompletionShown(D.telemetryViewData)})),this._register(jn((y,D)=>{return}))}static getWarningWidgetContext(u){let g=u.ghostTextViewWarningWidgetData;if(g)return g;else if(u.parentElement)return this.getWarningWidgetContext(u.parentElement);return}ownsViewZone(u){return this._additionalLinesWidget.viewZoneId===u}};Ba=cM([lM(3,pt)],Ba);class Jf{constructor(f){this.owner=f}}function hM(f,u,g){let v=[],S=[];function y(ee,te){if(S.length>0){let ne=S[S.length-1];if(te)ne.decorations.push(new Ii(ne.content.length+1,ne.content.length+1+ee[0].line.length,te,0));ne.content+=ee[0].line,ee=ee.slice(1)}for(let ne of ee)S.push({content:ne.line,decorations:te?[new Ii(1,ne.line.length+1,te,0),...ne.lineDecorations]:[...ne.lineDecorations]})}let D=u.getLineContent(f.lineNumber),T=void 0,R=0;for(let ee of f.parts){let te=ee.lines;if(T===void 0)v.push({column:ee.column,text:te[0].line,preview:ee.preview,lineDecorations:te[0].lineDecorations}),te=te.slice(1);else y([{line:D.substring(R,ee.column-1),lineDecorations:[]}],void 0);if(te.length>0){if(y(te,g),T===void 0&&ee.column<=D.length)T=ee.column}R=ee.column-1}let K=void 0;if(T!==void 0)K=new iC(f.lineNumber,new Yf(R+1,D.length+1));let q=T!==void 0?new Yf(T,D.length+1):void 0;return{inlineTexts:v,additionalLines:S,hiddenRange:q,additionalLinesOriginalSuffix:K}}class cD{constructor(f,u,g){this.lineNumber=f,this.additionalLines=u,this.minReservedLineCount=g}equals(f){if(this.lineNumber!==f.lineNumber)return!1;if(this.minReservedLineCount!==f.minReservedLineCount)return!1;return Ge(this.additionalLines,f.additionalLines,sh())}}class lD extends n{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}constructor(f,u,g,v){super();if(this._editor=f,this._lines=u,this._shouldKeepCursorStable=g,this._isClickable=v,this._viewZoneHeight=M("viewZoneHeight",void 0),this.editorOptionsChanged=si("editorOptionChanged",C.filter(this._editor.onDidChangeConfiguration,(S)=>S.hasChanged(40)||S.hasChanged(133)||S.hasChanged(113)||S.hasChanged(108)||S.hasChanged(60)||S.hasChanged(59)||S.hasChanged(75)||S.hasChanged(176))),this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new ie),this.isHovered=Ze(this._editor).isTargetHovered((S)=>sD(S.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof hl&&this._shouldKeepCursorStable)this._register(this._editor.onBeforeExecuteEdit((S)=>this.hasBeenAccepted=S.source==="inlineCompletionAccept"));this._register(H((S)=>{let y=this._lines.read(S);if(this.editorOptionsChanged.read(S),y)this.hasBeenAccepted=!1,this.updateLines(y.lineNumber,y.additionalLines,y.minReservedLineCount);else this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones((f)=>{this.removeActiveViewZone(f)})}updateLines(f,u,g){let v=this._editor.getModel();if(!v)return;let{tabSize:S}=v.getOptions();Ze(this._editor).transaction((y)=>{this._editor.changeViewZones((D)=>{let T=new c;this.removeActiveViewZone(D);let R=Math.max(u.length,g);if(R>0){let K=document.createElement("div");if(uM(K,S,u,this._editor.getOptions(),this._isClickable),this._isClickable)T.add(l(K,"mousedown",(q)=>{q.preventDefault()})),T.add(l(K,"click",(q)=>{if(sD(q.target))this._onDidClick.fire(new Vn(F(q),q))}));this.addViewZone(D,f,R,K)}this._viewZoneListener.value=T})})}addViewZone(f,u,g,v){let S=f.addZone({afterLineNumber:u,heightInLines:g,domNode:v,afterColumnAffinity:1,onComputedHeight:(y)=>{this._viewZoneHeight.set(y,void 0)}});this.keepCursorStable(u,g),this._viewZoneInfo={viewZoneId:S,heightInLines:g,lineNumber:u}}removeActiveViewZone(f){if(this._viewZoneInfo){if(f.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(f,u){if(!this._shouldKeepCursorStable)return;let g=this._editor.getSelection()?.getStartPosition()?.lineNumber;if(g!==void 0&&f<g)this._editor.setScrollTop(this._editor.getScrollTop()+u*this._editor.getOption(75))}}function sD(f){return xe(f)&&f.classList.contains(dD)}class hD{constructor(f,u){this.content=f,this.decorations=u}equals(f){if(!this.content.equals(f.content))return!1;return Ii.equalsArr(this.decorations,f.decorations)}}function uM(f,u,g,v,S){let y=v.get(40),D=v.get(133),T="none",R=v.get(108),K=v.get(60),q=v.get(59),ee=v.get(75),te=v.get(176)==="twoCells",ne="suggest-preview-text";if(S)ne+=" clickable";let re=new Nr(1e4);re.appendString(`<div class="${ne}">`);for(let ke=0,Ae=g.length;ke<Ae;ke++){let He=g[ke],Ke=He.content;re.appendString('<div class="view-line'),re.appendString('" style="top:'),re.appendString(String(ke*ee)),re.appendString('px;width:1000000px;">');let Ue=Ke.getLineContent(),Te=Ic(Ue),We=va(Ue);Ul(new Mr(q.isMonospace&&!y,q.canUseHalfwidthRightwardsArrow,Ue,!1,Te,We,0,Ke,He.decorations.slice(),u,0,q.spaceWidth,q.middotWidth,q.wsmiddotWidth,D,"none",R,K!==nr.OFF,null,null,0,!1,te),re),re.appendString("</div>")}re.appendString("</div>"),an(f,q);let ae=re.build(),ge=aD?aD.createHTML(ae):ae;f.innerHTML=ge}var aD=go("editorGhostText",{createHTML:(f)=>f});class Va{constructor(f,u){this.width=f,this.height=u}toString(){return`(${this.width},${this.height})`}transpose(){return new Va(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class Lt{static fromPoints(f,u){return new Lt(f.x,f.y,u.x,u.y)}static fromPointSize(f,u){return new Lt(f.x,f.y,f.x+u.x,f.y+u.y)}static fromLeftTopRightBottom(f,u,g,v){return new Lt(f,u,g,v)}static fromLeftTopWidthHeight(f,u,g,v){return new Lt(f,u,f+g,u+v)}static fromRanges(f,u){return new Lt(f.start,u.start,f.endExclusive,u.endExclusive)}static hull(f){let{MAX_SAFE_INTEGER:u,MAX_SAFE_INTEGER:g,MIN_SAFE_INTEGER:v,MIN_SAFE_INTEGER:S}=Number;for(let y of f)u=Math.min(u,y.left),g=Math.min(g,y.top),v=Math.max(v,y.right),S=Math.max(S,y.bottom);return new Lt(u,g,v,S)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(f,u,g,v){if(this.left=f,this.top=u,this.right=g,this.bottom=v,f>g)throw new P("Invalid arguments: Horizontally offset by "+(f-g));if(u>v)throw new P("Invalid arguments: Vertically offset by "+(u-v))}withMargin(f,u,g,v){let S,y,D,T;if(u===void 0&&g===void 0&&v===void 0)S=y=D=T=f;else if(g===void 0&&v===void 0)S=y=u,D=T=f;else S=v,y=u,D=f,T=g;return new Lt(this.left-S,this.top-D,this.right+y,this.bottom+T)}intersectVertical(f){let u=Math.max(this.top,f.start),g=Math.min(this.bottom,f.endExclusive);return new Lt(this.left,u,this.right,Math.max(u,g))}intersectHorizontal(f){let u=Math.max(this.left,f.start),g=Math.min(this.right,f.endExclusive);return new Lt(u,this.top,Math.max(u,g),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(f){let u=Math.max(this.left,f.left),g=Math.min(this.right,f.right),v=Math.max(this.top,f.top),S=Math.min(this.bottom,f.bottom);if(u>g||v>S)return;return new Lt(u,v,g,S)}containsRect(f){return this.left<=f.left&&this.top<=f.top&&this.right>=f.right&&this.bottom>=f.bottom}containsPoint(f){return this.left<=f.x&&this.top<=f.y&&this.right>=f.x&&this.bottom>=f.y}moveToBeContainedIn(f){let u=this.width,g=this.height,v=this.left,S=this.top;if(v<f.left)v=f.left;else if(v+u>f.right)v=f.right-u;if(S<f.top)S=f.top;else if(S+g>f.bottom)S=f.bottom-g;return new Lt(v,S,v+u,S+g)}withWidth(f){return new Lt(this.left,this.top,this.left+f,this.bottom)}withHeight(f){return new Lt(this.left,this.top,this.right,this.top+f)}withTop(f){return new Lt(this.left,f,this.right,this.bottom)}withLeft(f){return new Lt(f,this.top,this.right,this.bottom)}translateX(f){return new Lt(this.left+f,this.top,this.right+f,this.bottom)}translateY(f){return new Lt(this.left,this.top+f,this.right,this.bottom+f)}getLeftBottom(){return new Qn(this.left,this.bottom)}getRightBottom(){return new Qn(this.right,this.bottom)}getRightTop(){return new Qn(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(f){return new Lt(f.start,this.top,f.endExclusive,this.bottom)}getSize(){return new Va(this.width,this.height)}}class Dl{constructor(f,u,g,v=null){this.startLineNumbers=f,this.endLineNumbers=u,this.lastLineRelativePosition=g,this.showEndForLine=v}equals(f){return!!f&&this.lastLineRelativePosition===f.lastLineRelativePosition&&this.showEndForLine===f.showEndForLine&&Ge(this.startLineNumbers,f.startLineNumbers)&&Ge(this.endLineNumbers,f.endLineNumbers)}static get Empty(){return new Dl([],[],0)}}var uD=go("stickyScrollViewLayer",{createHTML:(f)=>f}),nC="data-sticky-line-index",gD="data-sticky-is-line",gM="data-sticky-is-line-number",pD="data-sticky-is-folding-icon";class rC extends n{get height(){return this._height}constructor(f){super();this._foldingIconStore=this._register(new c),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 i),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=f,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",f instanceof ro),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);let u=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((g)=>{if(g.hasChanged(131))u()})),this._register(this._editor.onDidScrollChange((g)=>{if(g.scrollLeftChanged)u();if(g.scrollWidthChanged)this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{u(),this._updateWidgetWidth()})),u(),this._register(this._editor.onDidLayoutChange((g)=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(f){return this._renderedStickyLines.find((u)=>u.lineNumber===f)}getCurrentLines(){return this._lineNumbers}setState(f,u,g){let v=!this._state&&!f,S=this._state&&this._state.equals(f);if(g===void 0&&(v||S))return;let y=this._findRenderingData(f),D=this._lineNumbers;this._lineNumbers=y.lineNumbers,this._lastLineRelativePosition=y.lastLineRelativePosition;let T=this._findIndexToRebuildFrom(D,this._lineNumbers,g);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,u,T),this._state=f}_findRenderingData(f){if(!f)return{lineNumbers:[],lastLineRelativePosition:0};let u=[...f.startLineNumbers];if(f.showEndForLine!==null)u[f.showEndForLine]=f.endLineNumbers[f.showEndForLine];let g=0;for(let v=0;v<u.length;v++){let S=new r(u[v],1),y=this._editor._getViewModel();if(y&&S.lineNumber<=y.getLineCount())g+=this._editor.getLineHeightForPosition(new r(u[v],1))}if(g===0)return{lineNumbers:[],lastLineRelativePosition:0};return{lineNumbers:u,lastLineRelativePosition:f.lastLineRelativePosition}}_findIndexToRebuildFrom(f,u,g){if(u.length===0)return 0;if(g!==void 0)return g;let v=u.findIndex((S)=>!f.includes(S));return v===-1?0:v}_updateWidgetWidth(){let f=this._editor.getLayoutInfo(),u=f.contentLeft;this._lineNumbersDomNode.style.width=`${u}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-f.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${f.width-f.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(f){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${f?0.5:0}s`)}_setFoldingIconsVisibility(f){for(let u of this._renderedStickyLines){let g=u.foldingIcon;if(!g)continue;g.setVisible(f?!0:g.isCollapsed)}}async _renderRootNode(f,u,g,v){let S=this._editor._getViewModel();if(!S){this._clearWidget();return}if(f.length===0){this._clearWidget();return}let y=[],D=f[f.length-1],T=0;for(let K=0;K<this._renderedStickyLines.length;K++)if(K<v){let q=this._renderedStickyLines[K];y.push(this._updatePosition(q,T,q.lineNumber===D)),T+=q.height}else{let q=this._renderedStickyLines[K];q.lineNumberDomNode.remove(),q.lineDomNode.remove()}let R=this._editor.getLayoutInfo();for(let K=v;K<f.length;K++){let q=f[K];if(q>S.getLineCount())continue;let ee=this._renderChildNode(S,K,q,T,D===q,g,R);T+=ee.height,this._linesDomNode.appendChild(ee.lineDomNode),this._lineNumbersDomNode.appendChild(ee.lineNumberDomNode),y.push(ee)}if(g)this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin);this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map((K)=>K.scrollWidth))+R.verticalScrollbarWidth,this._renderedStickyLines=y,this._setHeight(T+u),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let f=0;f<this._renderedStickyLines.length;f++){let u=this._renderedStickyLines[f];u.lineNumberDomNode.remove(),u.lineDomNode.remove()}this._setHeight(0)}_setHeight(f){if(this._height===f)return;if(this._height=f,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(l(this._lineNumbersDomNode,x.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(l(this._lineNumbersDomNode,x.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))}_renderChildNode(f,u,g,v,S,y,D){let T=new mD(this._editor,f,D,y,this._isOnGlyphMargin,u,g);return this._updatePosition(T,v,S)}_updatePosition(f,u,g){let{lineDomNode:v,lineNumberDomNode:S}=f;if(g){v.style.zIndex="0",S.style.zIndex="0";let D=`${u+this._lastLineRelativePosition+(f.foldingIcon?.isCollapsed?1:0)}px`;v.style.top=D,S.style.top=D}else v.style.zIndex="1",S.style.zIndex="1",v.style.top=`${u}px`,S.style.top=`${u}px`;return f}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(f){if(0<=f&&f<this._renderedStickyLines.length)this._renderedStickyLines[f].lineDomNode.focus()}getEditorPositionFromNode(f){if(!f||f.children.length>0)return null;let u=this._getRenderedStickyLineFromChildDomNode(f);if(!u)return null;let g=eu(u.characterMapping,f,0);return new r(u.lineNumber,g)}getLineNumberFromChildDomNode(f){return this._getRenderedStickyLineFromChildDomNode(f)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(f){let u=this.getLineIndexFromChildDomNode(f);if(u===null||u<0||u>=this._renderedStickyLines.length)return null;return this._renderedStickyLines[u]}getLineIndexFromChildDomNode(f){let u=this._getAttributeValue(f,nC);return u?parseInt(u,10):null}isInStickyLine(f){return this._getAttributeValue(f,gD)!==void 0}isInFoldingIconDomNode(f){return this._getAttributeValue(f,pD)!==void 0}_getAttributeValue(f,u){while(f&&f!==this._rootDomNode){let g=f.getAttribute(u);if(g!==null)return g;f=f.parentElement}return}}class mD{constructor(f,u,g,v,S,y,D){this.index=y,this.lineNumber=D;let T=u.coordinatesConverter.convertModelPositionToViewPosition(new r(D,1)).lineNumber,R=u.getViewLineRenderingData(T),K=f.getOption(76),q=f.getOption(117).verticalScrollbarSize,ee;try{ee=Ii.filter(R.inlineDecorations,T,R.minColumn,R.maxColumn)}catch(We){ee=[]}let te=f.getLineHeightForPosition(new r(D,1)),ne=u.getTextDirection(D),re=f.getOption(59),ae=new Mr(!0,!0,R.content,R.continuesWithWrappedLine,R.isBasicASCII,R.containsRTL,0,R.tokens,ee,R.tabSize,R.startVisibleColumn,re.spaceWidth,1,1,500,"none",!0,!0,null,ne,q,!1,f.getOption(176)==="twoCells"),ge=new Nr(2000),ke=Ul(ae,ge);this.characterMapping=ke.characterMapping;let Ae;if(uD)Ae=uD.createHTML(ge.build());else Ae=ge.build();let He=document.createElement("span");He.setAttribute(nC,String(y)),He.setAttribute(gD,""),He.setAttribute("role","listitem"),He.tabIndex=0,He.className="sticky-line-content",He.classList.add(`stickyLine${D}`),He.style.lineHeight=`${te}px`,He.innerHTML=Ae;let Ke=document.createElement("span");Ke.setAttribute(nC,String(y)),Ke.setAttribute(gM,""),Ke.className="sticky-line-number",Ke.style.lineHeight=`${te}px`;let Ue=g.contentLeft;Ke.style.width=`${Ue}px`;let Te=document.createElement("span");if(K.renderType===1||K.renderType===3&&D%10===0)Te.innerText=D.toString();else if(K.renderType===2)Te.innerText=Math.abs(D-f.getPosition().lineNumber).toString();if(Te.className="sticky-line-number-inner",Te.style.width=`${g.lineNumbersWidth}px`,Te.style.paddingLeft=`${g.lineNumbersLeft}px`,Ke.appendChild(Te),this.foldingIcon=this._renderFoldingIconForLine(f,v,D,te,S),this.foldingIcon)Ke.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${g.lineNumbersWidth+g.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${te}px`;f.applyFontInfo(He),f.applyFontInfo(Ke),Ke.style.lineHeight=`${te}px`,He.style.lineHeight=`${te}px`,Ke.style.height=`${te}px`,He.style.height=`${te}px`,this.scrollWidth=He.scrollWidth,this.lineDomNode=He,this.lineNumberDomNode=Ke,this.height=te}_renderFoldingIconForLine(f,u,g,v,S){let y=f.getOption(126);if(!u||y==="never")return;let D=u.regions,T=D.findRange(g),R=D.getStartLineNumber(T);if(g!==R)return;let q=D.isCollapsed(T),ee=new fD(q,R,D.getEndLineNumber(T),v);return ee.setVisible(S?!0:q||y==="always"),ee.domNode.setAttribute(pD,""),ee}}class fD{constructor(f,u,g,v){this.isCollapsed=f,this.foldingStartLine=u,this.foldingEndLine=g,this.dimension=v,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${v}px`,this.domNode.style.lineHeight=`${v}px`,this.domNode.className=G.asClassName(f?Xh:Zh)}setVisible(f){this.domNode.style.cursor=f?"pointer":"default",this.domNode.style.opacity=f?"1":"0"}}var pM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},sC=function(f,u){return function(g,v){u(g,v,f)}};class Od{remove(){this.parent?.children.delete(this.id)}static findId(f,u){let g;if(typeof f==="string")g=`${u.id}/${f}`;else if(g=`${u.id}/${f.name}`,u.children.get(g)!==void 0)g=`${u.id}/${f.name}_${f.range.startLineNumber}_${f.range.startColumn}`;let v=g;for(let S=0;u.children.get(v)!==void 0;S++)v=`${g}_${S}`;return v}static empty(f){return f.children.size===0}}class ng extends Od{constructor(f,u,g){super();this.id=f,this.parent=u,this.symbol=g,this.children=new Map}}class e_ extends Od{constructor(f,u,g,v){super();this.id=f,this.parent=u,this.label=g,this.order=v,this.children=new Map}}class ls extends Od{static create(f,u,g){let v=new Oe(g),S=new ls(u.uri),y=f.ordered(u),D=y.map((R,K)=>{let q=Od.findId(`provider_${K}`,S),ee=new e_(q,S,R.displayName??"Unknown Outline Provider",K);return Promise.resolve(R.provideDocumentSymbols(u,v.token)).then((te)=>{for(let ne of te||[])ls._makeOutlineElement(ne,ee);return ee},(te)=>(dt(te),ee)).then((te)=>{if(!Od.empty(te))S._groups.set(q,te);else te.remove()})}),T=f.onDidChange(()=>{let R=f.ordered(u);if(!Ge(R,y))v.cancel()});return Promise.all(D).then(()=>{if(v.token.isCancellationRequested&&!g.isCancellationRequested)return ls.create(f,u,g);else return S._compact()}).finally(()=>{v.dispose(),T.dispose(),v.dispose()})}static _makeOutlineElement(f,u){let g=Od.findId(f,u),v=new ng(g,u,f);if(f.children)for(let S of f.children)ls._makeOutlineElement(S,v);u.children.set(v.id,v)}constructor(f){super();this.uri=f,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let f=0;for(let[u,g]of this._groups)if(g.children.size===0)this._groups.delete(u);else f+=1;if(f!==1)this.children=this._groups;else{let u=Ce.first(this._groups.values());for(let[,g]of u.children)g.parent=this,this.children.set(g.id,g)}return this}getTopLevelSymbols(){let f=[];for(let u of this.children.values())if(u instanceof ng)f.push(u.symbol);else f.push(...Ce.map(u.children.values(),(g)=>g.symbol));return f.sort((u,g)=>t.compareRangesUsingStarts(u.range,g.range))}asListOfDocumentSymbols(){let f=this.getTopLevelSymbols(),u=[];return ls._flattenDocumentSymbols(u,f,""),u.sort((g,v)=>r.compare(t.getStartPosition(g.range),t.getStartPosition(v.range))||r.compare(t.getEndPosition(v.range),t.getEndPosition(g.range)))}static _flattenDocumentSymbols(f,u,g){for(let v of u)if(f.push({kind:v.kind,tags:v.tags,name:v.name,detail:v.detail,containerName:v.containerName||g,range:v.range,selectionRange:v.selectionRange,children:void 0}),v.children)ls._flattenDocumentSymbols(f,v.children,v.name)}}var Hd=Z("IOutlineModelService"),aC=class f{constructor(u,g,v){this._languageFeaturesService=u,this._disposables=new c,this._cache=new Ei(15,0.7),this._debounceInformation=g.for(u.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(v.onModelRemoved((S)=>{this._cache.delete(S.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(u,g){let v=this._languageFeaturesService.documentSymbolProvider,S=v.ordered(u),y=this._cache.get(u.id);if(!y||y.versionId!==u.getVersionId()||!Ge(y.provider,S)){let T=new Oe;y={versionId:u.getVersionId(),provider:S,promiseCnt:0,source:T,promise:ls.create(v,u,T.token),model:void 0},this._cache.set(u.id,y);let R=Date.now();y.promise.then((K)=>{y.model=K,this._debounceInformation.update(u,Date.now()-R)}).catch((K)=>{this._cache.delete(u.id)})}if(y.model)return y.model;y.promiseCnt+=1;let D=g.onCancellationRequested(()=>{if(--y.promiseCnt===0)y.source.cancel(),this._cache.delete(u.id)});try{return await y.promise}finally{D.dispose()}}};aC=pM([sC(0,j),sC(1,Hi),sC(2,gt)],aC);fe(Hd,aC,1);class za{constructor(f,u){this.startLineNumber=f,this.endLineNumber=u}}class Tl{constructor(f,u,g){this.range=f,this.children=u,this.parent=g}}class t_{constructor(f,u,g,v){this.uri=f,this.version=u,this.element=g,this.outlineProviderId=v}}var o_=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ig=function(f,u){return function(g,v){u(g,v,f)}},xg;(function(f){f.OUTLINE_MODEL="outlineModel",f.FOLDING_PROVIDER_MODEL="foldingProviderModel",f.INDENTATION_MODEL="indentationModel"})(xg||(xg={}));var Ka;(function(f){f[f.VALID=0]="VALID",f[f.INVALID=1]="INVALID",f[f.CANCELED=2]="CANCELED"})(Ka||(Ka={}));var i_=class f extends n{constructor(u,g,v,S){super();switch(this._editor=u,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Ci(300)),this._updateOperation=this._register(new c),this._editor.getOption(131).defaultModel){case xg.OUTLINE_MODEL:this._modelProviders.push(new dC(this._editor,S));case xg.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new lC(this._editor,g,S));case xg.INDENTATION_MODEL:this._modelProviders.push(new cC(this._editor,v));break}}dispose(){this._modelProviders.forEach((u)=>u.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){if(this._modelPromise)this._modelPromise.cancel(),this._modelPromise=null}async update(u){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(let g of this._modelProviders){let{statusPromise:v,modelPromise:S}=g.computeStickyModel(u);this._modelPromise=S;let y=await v;if(this._modelPromise!==S)return null;switch(y){case Ka.CANCELED:return this._updateOperation.clear(),null;case Ka.VALID:return g.stickyModel}}return null}).catch((g)=>(J(g),null))}};i_=o_([Ig(2,L),Ig(3,j)],i_);class hC extends n{constructor(f){super();this._editor=f,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,Ka.INVALID}computeStickyModel(f){if(f.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};let u=Pt((g)=>this.createModelFromProvider(g));return{statusPromise:u.then((g)=>{if(!this.isModelValid(g))return this._invalid();if(f.isCancellationRequested)return Ka.CANCELED;return this._stickyModel=this.createStickyModel(f,g),Ka.VALID}).then(void 0,(g)=>(J(g),Ka.CANCELED)),modelPromise:u}}isModelValid(f){return!0}isProviderValid(){return!0}}var dC=class f extends hC{constructor(u,g){super(u);this._languageFeaturesService=g}createModelFromProvider(u){return ls.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),u)}createStickyModel(u,g){let{stickyOutlineElement:v,providerID:S}=this._stickyModelFromOutlineModel(g,this._stickyModel?.outlineProviderId),y=this._editor.getModel();return new t_(y.uri,y.getVersionId(),v,S)}isModelValid(u){return u&&u.children.size>0}_stickyModelFromOutlineModel(u,g){let v;if(Ce.first(u.children.values())instanceof e_){let T=Ce.find(u.children.values(),(R)=>R.id===g);if(T)v=T.children;else{let R="",K=-1,q=void 0;for(let[ee,te]of u.children.entries()){let ne=this._findSumOfRangesOfGroup(te);if(ne>K)q=te,K=ne,R=te.id}g=R,v=q.children}}else v=u.children;let S=[],y=Array.from(v.values()).sort((T,R)=>{let K=new za(T.symbol.range.startLineNumber,T.symbol.range.endLineNumber),q=new za(R.symbol.range.startLineNumber,R.symbol.range.endLineNumber);return this._comparator(K,q)});for(let T of y)S.push(this._stickyModelFromOutlineElement(T,T.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new Tl(void 0,S,void 0),providerID:g}}_stickyModelFromOutlineElement(u,g){let v=[];for(let y of u.children.values())if(y.symbol.selectionRange.startLineNumber!==y.symbol.range.endLineNumber)if(y.symbol.selectionRange.startLineNumber!==g)v.push(this._stickyModelFromOutlineElement(y,y.symbol.selectionRange.startLineNumber));else for(let D of y.children.values())v.push(this._stickyModelFromOutlineElement(D,y.symbol.selectionRange.startLineNumber));v.sort((y,D)=>this._comparator(y.range,D.range));let S=new za(u.symbol.selectionRange.startLineNumber,u.symbol.range.endLineNumber);return new Tl(S,v,void 0)}_comparator(u,g){if(u.startLineNumber!==g.startLineNumber)return u.startLineNumber-g.startLineNumber;else return g.endLineNumber-u.endLineNumber}_findSumOfRangesOfGroup(u){let g=0;for(let v of u.children.values())g+=this._findSumOfRangesOfGroup(v);if(u instanceof ng)return g+u.symbol.range.endLineNumber-u.symbol.selectionRange.startLineNumber;else return g}};dC=o_([Ig(1,j)],dC);class uC extends hC{constructor(f){super(f);this._foldingLimitReporter=this._register(new Sp(f))}createStickyModel(f,u){let g=this._fromFoldingRegions(u),v=this._editor.getModel();return new t_(v.uri,v.getVersionId(),g,void 0)}isModelValid(f){return f!==null}_fromFoldingRegions(f){let u=f.length,g=[],v=new Tl(void 0,[],void 0);for(let S=0;S<u;S++){let y=f.getParentIndex(S),D;if(y!==-1)D=g[y];else D=v;let T=new Tl(new za(f.getStartLineNumber(S),f.getEndLineNumber(S)+1),[],D);D.children.push(T),g.push(T)}return v}}var cC=class f extends uC{constructor(u,g){super(u);this._languageConfigurationService=g,this.provider=this._register(new fc(u.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(u){return this.provider.compute(u)}};cC=o_([Ig(1,Qe)],cC);var lC=class f extends uC{constructor(u,g,v){super(u);this._languageFeaturesService=v,this.provider=this._register(new ie),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(u,g)})),this._updateProvider(u,g)}_updateProvider(u,g){let v=qr.getFoldingRangeProviders(this._languageFeaturesService,u.getModel());if(v.length===0)return;this.provider.value=new bc(u.getModel(),v,g,this._foldingLimitReporter,void 0)}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(u){return this.provider.value?.compute(u)??null}};lC=o_([Ig(2,j)],lC);var mM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},_D=function(f,u){return function(g,v){u(g,v,f)}};class bD{constructor(f,u,g,v){this.startLineNumber=f,this.endLineNumber=u,this.top=g,this.height=v}}var n_=class f extends n{constructor(u,g,v){super();this._languageFeaturesService=g,this._languageConfigurationService=v,this._onDidChangeStickyScroll=this._register(new i),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=u,this._sessionStore=this._register(new c),this._updateSoon=this._register(new be(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration((S)=>{if(S.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(E(()=>{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 i_(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService)}async update(){this._cts?.dispose(!0),this._cts=new Oe,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(u){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}let g=await this._stickyModelProvider.update(u);if(!u.isCancellationRequested)this._model=g}getCandidateStickyLinesIntersecting(u){if(!this._model?.element)return[];let g=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(u,this._model.element,g,0,0,-1),this.filterHiddenRanges(g)}getCandidateStickyLinesIntersectingFromStickyModel(u,g,v,S,y,D){let T=this._editor.getModel();if(!T)return;if(g.children.length===0)return;let R=D,K=[];for(let te=0;te<g.children.length;te++){let ne=g.children[te];if(ne.range)K.push(ne.range.startLineNumber)}let q=this.updateIndex(Dp(K,u.startLineNumber,(te,ne)=>te-ne)),ee=this.updateIndex(Dp(K,u.endLineNumber,(te,ne)=>te-ne));for(let te=q;te<=ee;te++){let ne=g.children[te];if(!ne||!ne.range)continue;let{startLineNumber:re,endLineNumber:ae}=ne.range;if(ae>re+1&&u.startLineNumber<=ae+1&&re-1<=u.endLineNumber&&re!==R&&T.isValidRange(new t(re,1,ae,1))){R=re;let ge=this._editor.getLineHeightForPosition(new r(re,1));v.push(new bD(re,ae-1,y,ge)),this.getCandidateStickyLinesIntersectingFromStickyModel(u,ne,v,S+1,y+ge,re)}}}filterHiddenRanges(u){let g=this._editor._getViewModel()?.getHiddenAreas();if(!g)return u;return u.filter((v)=>!g.some((S)=>v.startLineNumber>=S.startLineNumber&&v.endLineNumber<=S.endLineNumber+1))}updateIndex(u){if(u===-1)return 0;else if(u<0)return-u-2;return u}};n_=mM([_D(1,j),_D(2,Qe)],n_);var fM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Rl=function(f,u){return function(g,v){u(g,v,f)}},gC,Gr=class f extends n{static{gC=this}static{this.ID="store.contrib.stickyScrollController"}constructor(u,g,v,S,y,D,T){super();this._editor=u,this._contextMenuService=g,this._languageFeaturesService=v,this._instaService=S,this._contextKeyService=T,this._sessionStore=new c,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 i),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new rC(this._editor),this._stickyLineCandidateProvider=new n_(this._editor,v,y),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=Dl.Empty;let R=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight((q)=>{q.changes.forEach((ee)=>{let te=ee.lineNumber;if(this._widgetState.startLineNumbers.includes(te))this._renderStickyScroll(te)})})),this._register(this._editor.onDidChangeFont((q)=>{q.changes.forEach((ee)=>{let te=ee.lineNumber;if(this._widgetState.startLineNumbers.includes(te))this._renderStickyScroll(te)})})),this._register(this._editor.onDidChangeConfiguration((q)=>{this._readConfigurationChange(q)})),this._register(l(R,x.CONTEXT_MENU,async(q)=>{this._onContextMenu(F(R),q)})),this._stickyScrollFocusedContextKey=o.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=o.stickyScrollVisible.bindTo(this._contextKeyService);let K=this._register(Zn(R));this._register(K.onDidBlur((q)=>{if(this._positionRevealed===!1&&R.clientHeight===0)this._focusedStickyElementIndex=-1,this.focus();else this._disposeFocusStickyScrollStore()})),this._register(K.onDidFocus((q)=>{this.focus()})),this._registerMouseListeners(),this._register(l(R,x.MOUSE_DOWN,(q)=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight((q)=>{this._onDidChangeStickyScrollHeight.fire(q)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(u){return u.getContribution(gC.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 c,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(u){this._focusedStickyElementIndex=u?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){let u=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:u[this._focusedStickyElementIndex],column:1})}_revealPosition(u){this._reveaInEditor(u,()=>this._editor.revealPosition(u))}_revealLineInCenterIfOutsideViewport(u){this._reveaInEditor(u,()=>this._editor.revealLineInCenterIfOutsideViewport(u.lineNumber,0))}_reveaInEditor(u,g){if(this._focused)this._disposeFocusStickyScrollStore();this._positionRevealed=!0,g(),this._editor.setSelection(t.fromPositions(u)),this._editor.focus()}_registerMouseListeners(){let u=this._register(new c),g=this._register(new Rs(this._editor,{extractLineNumberFromMouseEvent:(y)=>{let D=this._stickyScrollWidget.getEditorPositionFromNode(y.target.element);return D?D.lineNumber:0}})),v=(y)=>{if(!this._editor.hasModel())return null;if(y.target.type!==12||y.target.detail!==this._stickyScrollWidget.getId())return null;let D=y.target.element;if(!D||D.innerText!==D.innerHTML)return null;let T=this._stickyScrollWidget.getEditorPositionFromNode(D);if(!T)return null;return{range:new t(T.lineNumber,T.column,T.lineNumber,T.column+D.innerText.length),textElement:D}},S=this._stickyScrollWidget.getDomNode();this._register(ft(S,x.CLICK,(y)=>{if(y.ctrlKey||y.altKey||y.metaKey)return;if(!y.leftButton)return;if(y.shiftKey){let K=this._stickyScrollWidget.getLineIndexFromChildDomNode(y.target);if(K===null)return;let q=new r(this._endLineNumbers[K],1);this._revealLineInCenterIfOutsideViewport(q);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(y.target)){let K=this._stickyScrollWidget.getLineNumberFromChildDomNode(y.target);this._toggleFoldingRegionForLine(K);return}if(!this._stickyScrollWidget.isInStickyLine(y.target))return;let R=this._stickyScrollWidget.getEditorPositionFromNode(y.target);if(!R){let K=this._stickyScrollWidget.getLineNumberFromChildDomNode(y.target);if(K===null)return;R=new r(K,1)}this._revealPosition(R)})),this._register(l(Pe,x.MOUSE_MOVE,(y)=>{this._mouseTarget=y.target,this._onMouseMoveOrKeyDown(y)})),this._register(l(Pe,x.KEY_DOWN,(y)=>{this._onMouseMoveOrKeyDown(y)})),this._register(l(Pe,x.KEY_UP,()=>{if(this._showEndForLine!==void 0)this._showEndForLine=void 0,this._renderStickyScroll()})),this._register(g.onMouseMoveOrRelevantKeyDown(([y,D])=>{let T=v(y);if(!T||!y.hasTriggerModifier||!this._editor.hasModel()){u.clear();return}let{range:R,textElement:K}=T;if(!R.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=R,u.clear();else if(K.style.textDecoration==="underline")return;let q=new Oe;u.add(E(()=>q.dispose(!0)));let ee;ha(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new r(R.startLineNumber,R.startColumn+1),!1,q.token).then((te)=>{if(q.token.isCancellationRequested)return;if(te.length!==0){this._candidateDefinitionsLength=te.length;let ne=K;if(ee!==ne)u.clear(),ee=ne,ee.style.textDecoration="underline",u.add(E(()=>{ee.style.textDecoration="none"}));else if(!ee)ee=ne,ee.style.textDecoration="underline",u.add(E(()=>{ee.style.textDecoration="none"}))}else u.clear()})})),this._register(g.onCancel(()=>{u.clear()})),this._register(g.onExecute(async(y)=>{if(y.target.type!==12||y.target.detail!==this._stickyScrollWidget.getId())return;let D=this._stickyScrollWidget.getEditorPositionFromNode(y.target.element);if(!D)return;if(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor)return;if(this._candidateDefinitionsLength>1){if(this._focused)this._disposeFocusStickyScrollStore();this._revealPosition({lineNumber:D.lineNumber,column:1})}this._instaService.invokeFunction(Tm,y,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})}))}_onContextMenu(u,g){let v=new Vn(u,g);this._contextMenuService.showContextMenu({menuId:a.StickyScrollContext,getAnchor:()=>v,menuActionOptions:{renderShortTitle:!0}})}_onMouseMoveOrKeyDown(u){if(!u.shiftKey)return;if(!this._mouseTarget||!xe(this._mouseTarget))return;let g=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);if(g===null||this._showEndForLine===g)return;this._showEndForLine=g,this._renderStickyScroll()}_toggleFoldingRegionForLine(u){if(!this._foldingModel||u===null)return;let g=this._stickyScrollWidget.getRenderedStickyLine(u),v=g?.foldingIcon;if(!v)return;Gh(this._foldingModel,1,[u]),v.isCollapsed=!v.isCollapsed;let S=(v.isCollapsed?this._editor.getTopForLineNumber(v.foldingEndLine):this._editor.getTopForLineNumber(v.foldingStartLine))-this._editor.getOption(75)*g.index+1;this._editor.setScrollTop(S),this._renderStickyScroll(u)}_readConfiguration(){let u=this._editor.getOption(131);if(u.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else if(u.enabled&&!this._enabled)this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((v)=>{if(v.scrollTopChanged)this._showEndForLine=void 0,this._renderStickyScroll()})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens((v)=>this._onTokensChange(v))),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((v)=>{if(this._positionLineNumber===v.position.lineNumber)return;this._positionLineNumber=v.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(u){if(u.hasChanged(131)||u.hasChanged(81)||u.hasChanged(75)||u.hasChanged(126)||u.hasChanged(76))this._readConfiguration();if(u.hasChanged(76)||u.hasChanged(52)||u.hasChanged(126)||u.hasChanged(59)||u.hasChanged(176))this._renderStickyScroll(0)}_needsUpdate(u){let g=this._stickyScrollWidget.getCurrentLines();for(let v of g)for(let S of u.ranges)if(v>=S.fromLineNumber&&v<=S.toLineNumber)return!0;return!1}_onTokensChange(u){if(this._needsUpdate(u))this._renderStickyScroll(0)}_onDidResize(){let g=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(g*0.25),this._renderStickyScroll(0)}async _renderStickyScroll(u){let g=this._editor.getModel();if(!g||g.isTooLargeForTokenization()){this._resetState();return}let v=this._updateAndGetMinRebuildFromLine(u),S=this._stickyLineCandidateProvider.getVersionId();if(S===void 0||S===g.getVersionId())if(!this._focused)await this._updateState(v);else if(this._focusedStickyElementIndex===-1){if(await this._updateState(v),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1)this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}else{let D=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];if(await this._updateState(v),this._stickyScrollWidget.lineNumberCount===0)this._focusedStickyElementIndex=-1;else{if(!this._stickyScrollWidget.lineNumbers.includes(D))this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1;this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}}}_updateAndGetMinRebuildFromLine(u){if(u!==void 0){let g=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(u,g)}return this._minRebuildFromLine}async _updateState(u){this._minRebuildFromLine=void 0,this._foldingModel=await qr.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();let g=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(g),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,u)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=Dl.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){let u=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),g=this._editor.getScrollTop(),v=0,S=[],y=[],D=this._editor.getVisibleRanges();if(D.length!==0){let T=new za(D[0].startLineNumber,D[D.length-1].endLineNumber),R=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(T);for(let K of R){let{startLineNumber:q,endLineNumber:ee,top:te}=K,ne=te+K.height,re=this._editor.getTopForLineNumber(q)-g,ae=this._editor.getBottomForLineNumber(ee)-g;if(te>re&&te<=ae){if(S.push(q),y.push(ee+1),ne>ae)v=ae-ne}if(S.length===u)break}}return this._endLineNumbers=y,new Dl(S,y,v,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Gr=gC=fM([Rl(1,Dn),Rl(2,j),Rl(3,L),Rl(4,Qe),Rl(5,Hi),Rl(6,V)],Gr);var qa=s("inlineEdit.originalBackground",de(Pc,0.2),e(1286,"Background color for the original text in inline edits."),!0),r_=s("inlineEdit.modifiedBackground",de(Zd,0.3),e(1287,"Background color for the modified text in inline edits."),!0);s("inlineEdit.originalChangedLineBackground",de(Pc,0.8),e(1288,"Background color for the changed lines in the original text of inline edits."),!0);var vD=s("inlineEdit.originalChangedTextBackground",de(Pc,0.8),e(1289,"Overlay color for the changed text in the original text of inline edits."),!0),wD=s("inlineEdit.modifiedChangedLineBackground",{light:de(Kv,0.7),dark:de(Kv,0.7),hcDark:Kv,hcLight:Kv},e(1290,"Background color for the changed lines in the modified text of inline edits."),!0),SD=s("inlineEdit.modifiedChangedTextBackground",de(Zd,0.7),e(1291,"Overlay color for the changed text in the modified text of inline edits."),!0),ja=s("inlineEdit.gutterIndicator.primaryForeground",ag,e(1292,"Foreground color for the primary inline edit gutter indicator.")),Bn=s("inlineEdit.gutterIndicator.primaryBorder",Qd,e(1293,"Border color for the primary inline edit gutter indicator.")),hs=s("inlineEdit.gutterIndicator.primaryBackground",{light:de(Bn,0.5),dark:de(Bn,0.4),hcDark:de(Bn,0.4),hcLight:de(Bn,0.5)},e(1294,"Background color for the primary inline edit gutter indicator.")),CD=s("inlineEdit.gutterIndicator.secondaryForeground",rg,e(1295,"Foreground color for the secondary inline edit gutter indicator.")),yD=s("inlineEdit.gutterIndicator.secondaryBorder",xh,e(1296,"Border color for the secondary inline edit gutter indicator.")),Nl=s("inlineEdit.gutterIndicator.secondaryBackground",Kp,e(1297,"Background color for the secondary inline edit gutter indicator.")),xD=s("inlineEdit.gutterIndicator.successfulForeground",ag,e(1298,"Foreground color for the successful inline edit gutter indicator.")),pC=s("inlineEdit.gutterIndicator.successfulBorder",Qd,e(1299,"Border color for the successful inline edit gutter indicator.")),Ml=s("inlineEdit.gutterIndicator.successfulBackground",pC,e(1300,"Background color for the successful inline edit gutter indicator.")),ID=s("inlineEdit.gutterIndicator.background",{hcDark:de("tab.inactiveBackground",0.5),hcLight:de("tab.inactiveBackground",0.5),dark:de("tab.inactiveBackground",0.5),light:"#5f5f5f18"},e(1301,"Background color for the inline edit gutter indicator.")),Lg=s("inlineEdit.originalBorder",{light:Pc,dark:Pc,hcDark:Pc,hcLight:Pc},e(1302,"Border color for the original text in inline edits.")),Eg=s("inlineEdit.modifiedBorder",{light:rr(Zd,0.6),dark:Zd,hcDark:Zd,hcLight:Zd},e(1303,"Border color for the modified text in inline edits.")),_M=s("inlineEdit.tabWillAcceptModifiedBorder",{light:rr(Eg,0),dark:rr(Eg,0),hcDark:rr(Eg,0),hcLight:rr(Eg,0)},e(1304,"Modified border color for the inline edits widget when tab will accept it.")),bM=s("inlineEdit.tabWillAcceptOriginalBorder",{light:rr(Lg,0),dark:rr(Lg,0),hcDark:rr(Lg,0),hcLight:rr(Lg,0)},e(1305,"Original border color for the inline edits widget over the original text when tab will accept it."));function Bs(f){return f.map((u)=>u===ci.Accept?_M:Eg)}function $a(f){return f.map((u)=>u===ci.Accept?bM:Lg)}function yi(f,u){let g;if(typeof f==="string")g=Ua(f,u);else g=f.map((S,y)=>Ua(S,u).read(y));let v=Ua(Eo,u);return g.map((S,y)=>S.makeOpaque(v.read(y)))}function Ro(f){let u;switch(f){case li.TextEditor:u=Eo;break;case li.DiffEditor:u=Eo;break;case li.Notebook:u="notebook.cellEditorBackground";break;default:Za(f,"Not supported editor type yet")}return N(u)}function Ua(f,u){return es({owner:{observeColor:f},equalsFn:(g,v)=>g.equals(v),debugName:()=>`observeColor(${f})`},u.onDidColorThemeChange,()=>{let g=u.getColorTheme().getColor(f);if(!g)throw new P(`Missing color: ${f}`);return g})}var Li=3;function on(f,u,g){let v=f.model.read(g);if(!v)return 0;let S=0;for(let D=u.startLineNumber;D<u.endLineNumberExclusive;D++){let T=f.getWidthOfLine(D,g);S=Math.max(S,T)}let y=u.mapToLineArray((D)=>v.getLineContent(D));if(S<5&&y.some((D)=>D.length>0)&&v.uri.scheme!=="file")console.log("unexpected width");return S}function LD(f,u,g){si(f,f.editor.onDidChangeLineHeight).read(g);let v=f.model.read(g);if(!v)throw new P("Model is required");let S=[];for(let y=u.startLineNumber;y<u.endLineNumberExclusive;y++){let D=f.getWidthOfLine(y,g);if(D===-1){let R=v.getLineMaxColumn(y),K=f.editor.getOption(59).typicalHalfwidthCharacterWidth;D=R*K}let T=f.editor.getLineHeightForPosition(new r(y,1));S.push(new Va(D,T))}return S}function kD(f,u,g){if(f.layoutInfo.read(g),f.value.read(g),!f.model.read(g))return 0;return f.scrollTop.read(g),f.editor.getOffsetForColumn(u.lineNumber,u.column)}function Ol(f,u,g,v,S=void 0){let y=v.getModel();if(!y)return{prefixTrim:0,prefixLeftOffset:0};let D=f.map((te)=>te.isSingleLine()?te.startColumn-1:0),T=u.mapToLineArray((te)=>p0(y.getLineContent(te))),R=g.filter((te)=>te!=="").map((te)=>p0(te)),K=Math.min(...D,...T,...R),q;if(y.getLineIndentColumn(u.startLineNumber)>=K+1)Ze(v).scrollTop.read(S),q=v.getOffsetForColumn(u.startLineNumber,K+1);else if(g.length>0)q=Dg(g[0].slice(0,K),v,y);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:K,prefixLeftOffset:q}}function Dg(f,u,g){let v=u.getOption(59).typicalHalfwidthCharacterWidth,S=g.getOptions().tabSize*v,y=f.split("\t").length-1;return(f.length-y)*v+y*S}function Pl(f){let u=f.layoutInfoContentLeft,g=d({name:"editor.validOverlay.width"},(S)=>{let y=f.layoutInfoMinimap.read(S).minimapLeft!==0,D=Math.max(0,f.layoutInfoWidth.read(S)-u.read(S));if(y){let T=f.layoutInfoMinimap.read(S).minimapWidth+f.layoutInfoVerticalScrollbarWidth.read(S);return Math.max(0,D-T)}return D}),v=d({name:"editor.validOverlay.height"},(S)=>f.layoutInfoHeight.read(S)+f.contentHeight.read(S));return d({name:"editor.validOverlay"},(S)=>Lt.fromLeftTopWidthHeight(u.read(S),0,g.read(S),v.read(S)))}function ED(f,u){let g=[];for(let v of f){let S=u.mapRange(v.modifiedRange);g.push(new Ti(v.originalRange,S))}return g}function Al(...f){return f.filter((u)=>typeof u==="string").join(" ")}function vM(f,u){return new t(u.lineNumber,u.column+f.start,u.lineNumber,u.column+f.endExclusive)}function wM(f,u){let g=0;e:for(let v=0,S=f.length;v<S;v++)switch(f.charCodeAt(v)){case 9:g+=u;break;case 32:g++;break;default:break e}return g-g%u}function SM(f,u,g){let v=u-u%g,S=0;for(;S<f.length;S++){if(v===0)break;switch(f.charCodeAt(S)){case 9:v-=g;break;case 32:v--;break;default:throw new P("Unexpected character found while calculating indent length")}}return S}function DD(f,u,g){let v=ei(f),S=[],y=Qx(u.mapToLineArray((D)=>wM(v[D-1],g)),xi);return u.forEach((D)=>{let T=SM(v[D-1],y,g);S.push(new ct(vM(new B(0,T),new r(D,1)),""))}),new mo(S)}class Fl{constructor(){this._data=""}moveTo(f){return this._data+=`M ${f.x} ${f.y} `,this}lineTo(f){return this._data+=`L ${f.x} ${f.y} `,this}build(){return this._data}}function xo(f){let u=Ho(void 0,(g,v)=>f.read(g)||v);return mn({debugName:()=>`${f.debugName}.mapOutFalsy`},(g)=>{if(u.read(g),!f.read(g))return;return u})}function Di(f,u=At.ofCaller()){return{left:d({name:"editor.validOverlay.left"},(g)=>f(g)?.left,u),top:d({name:"editor.validOverlay.top"},(g)=>f(g)?.top,u),width:d({name:"editor.validOverlay.width"},(g)=>{let v=f(g);if(!v)return;return v.width},u),height:d({name:"editor.validOverlay.height"},(g)=>{let v=f(g);if(!v)return;return v.height},u)}}function TD(f,u){let g=f.getContainerDomNode(),v=M("domRect",g.getBoundingClientRect());return u.add(f.onDidLayoutChange((S)=>{v.set(g.getBoundingClientRect(),void 0)})),v}var CM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},mC=function(f,u){return function(g,v){u(g,v,f)}},s_=class f{constructor(u,g,v,S,y,D){this._editorObs=u,this._data=g,this._close=v,this._contextKeyService=S,this._keybindingService=y,this._commandService=D,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map((T)=>T.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){let u=M("active",void 0),g=(ae)=>({title:ae.title,icon:ae.icon,keybinding:typeof ae.commandId==="string"?this._getKeybinding(ae.commandArgs?void 0:ae.commandId):d(this,(ge)=>typeof ae.commandId==="string"?void 0:this._getKeybinding(ae.commandArgs?void 0:ae.commandId.read(ge)).read(ge)),isActive:u.map((ge)=>ge===ae.id),onHoverChange:(ge)=>u.set(ge?ae.id:void 0,void 0),onAction:()=>{let ge=typeof ae.commandId==="string"?ae.commandId:ae.commandId.get();return this._close(!0,ge),this._commandService.executeCommand(ge,...ae.commandArgs??[])}}),v=this._data.extensionCommands.map((ae)=>ae.map((ge,ke)=>Ga(g({id:ge.command.id+"_"+ke,title:ge.command.title,icon:ge.icon??b.symbolEvent,commandId:ge.command.id,commandArgs:ge.command.arguments})))),S=[];for(let ae of v)if(ae.length>0)S.push(fC()),S.push(...ae);if(this._data.extensionCommandsOnly)return RD(S.slice(1));let y=yM(this._data.displayName),D=Ga(g({id:"gotoAndAccept",title:e(1276,"Go To / Accept"),icon:b.check,commandId:fr})),T=Ga(g({id:"reject",title:e(1277,"Reject"),icon:b.close,commandId:vm})),R=this._data.alternativeAction?Ga(g({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:vd})):void 0,K=[],q=this._inlineEditsShowCollapsed.map((ae)=>ae?Ga(g({id:"showExpanded",title:e(1278,"Show Expanded"),icon:b.expandAll,commandId:Iu})):Ga(g({id:"showCollapsed",title:e(1279,"Show Collapsed"),icon:b.collapseAll,commandId:Iu}))),ee=Ga(g({id:"snooze",title:e(1280,"Snooze"),icon:b.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),te=Ga(g({id:"settings",title:e(1281,"Settings"),icon:b.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),ne=this._data.action?[this._data.action]:[],re=ne.length>0?xM(ne.map((ae)=>({id:ae.id,label:ae.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(ae.id,...ae.arguments??[]),class:void 0,tooltip:ae.tooltip??ae.title})),{hoverDelegate:KI}):void 0;return RD([y,D,R,T,q,K.length?fC():void 0,...K,ee,te,...S,re?fC():void 0,re])}_getKeybinding(u){if(!u)return Se(void 0);return Le(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(u))}};s_=CM([mC(3,V),mC(4,ce),mC(5,Ne)],s_);function RD(f){return se.div({class:"content",style:{margin:4,minWidth:180}},f)}function yM(f){return se.div({class:"header",style:{color:N(Gv),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[f])}function Ga(f){return d({name:"inlineEdits.option"},(u)=>se.div({class:["monaco-menu-option",f.isActive?.map((g)=>g&&"active")],onmouseenter:()=>f.onHoverChange?.(!0),onmouseleave:()=>f.onHoverChange?.(!1),onclick:f.onAction,onkeydown:(g)=>{if(g.key==="Enter")f.onAction?.()},tabIndex:0,style:{borderRadius:3}},[se.elem("span",{style:{fontSize:16,display:"flex"}},[G.isThemeIcon(f.icon)?to(f.icon):f.icon.map((g)=>to(g))]),se.elem("span",{},[f.title]),se.div({style:{marginLeft:"auto"},ref:(g)=>{let v=u.store.add(new Xs(g,di,{disableTitle:!0,...gg,keybindingLabelShadow:void 0,keybindingLabelForeground:N(Gv),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));u.store.add(H((S)=>{v.set(f.keybinding.read(S))}))}})]))}function xM(f,u){return d({name:"inlineEdits.actionBar"},(g)=>se.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[se.div({ref:(v)=>{g.store.add(new Ri(v,u)).push(f,{icon:!1,label:!0})}})]))}function fC(){return se.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:N(BI),padding:"2px 0"}},se.div({style:{borderBottom:`1px solid ${N(xh)}`}}))}var IM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Tg=function(f,u){return function(g,v){u(g,v,f)}};class Rg{constructor(f,u,g,v,S){this.gutterMenuData=f,this.originalRange=u,this.model=g,this.altAction=v,this.customization=S}}class eh{static fromInlineSuggestion(f){let u=f.action?.kind==="edit"?f.action.alternativeAction:void 0,g=f.source.inlineSuggestions.commands??[];return new eh(f.gutterMenuLinkAction,f.source.provider.displayName??e(1282,"Inline Suggestion"),g.length>0?[g]:[],u,f.source.provider.modelInfo,f.source.provider.setModelId?.bind(f.source.provider))}constructor(f,u,g,v,S,y,D=!1){this.action=f,this.displayName=u,this.extensionCommands=g,this.alternativeAction=v,this.modelInfo=S,this.setModelId=y,this.extensionCommandsOnly=D}}class th{static fromInlineCompletionModel(f){return new th(()=>f.accept(),()=>f.jump())}constructor(f,u){this.accept=f,this.jump=u}}var _C=16,ND=2,$l=class f extends n{constructor(u,g,v,S,y,D,T,R,K,q,ee){super();this._editorObs=u,this._data=g,this._tabAction=v,this._verticalOffset=S,this._isHoveringOverInlineEdit=y,this._focusIsInMenu=D,this._hoverService=T,this._instantiationService=R,this._accessibilityService=K,this._themeService=q,this._userInteractionService=ee,this._onDidCloseWithCommand=this._register(new i),this._modifierPressed=d(this,(ne)=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),ne).shiftKey),this._gutterIndicatorStyles=d(this,(ne)=>{let re=this._tabAction.read(ne),ae=this._data.read(ne)?.altAction,ge=this._modifierPressed.read(ne);if(ae&&ge)re=ci.Inactive;switch(re){case ci.Inactive:return{background:yi(Nl,this._themeService).read(ne).toString(),foreground:yi(CD,this._themeService).read(ne).toString(),border:yi(yD,this._themeService).read(ne).toString()};case ci.Jump:return{background:yi(hs,this._themeService).read(ne).toString(),foreground:yi(ja,this._themeService).read(ne).toString(),border:yi(Bn,this._themeService).read(ne).toString()};case ci.Accept:return{background:yi(Ml,this._themeService).read(ne).toString(),foreground:yi(xD,this._themeService).read(ne).toString(),border:yi(pC,this._themeService).read(ne).toString()};default:Za()}}),this._state=d(this,(ne)=>{let re=this._originalRangeObs.read(ne);if(!re)return;return{range:re,lineOffsetRange:this._editorObs.observeLineOffsetRange(re,ne.store)}}),this._lineNumberToRender=d(this,(ne)=>{if(this._verticalOffset.read(ne)!==0)return"";let re=this._data.read(ne)?.originalRange.startLineNumber,ae=this._editorObs.getOption(76).read(ne);if(re===void 0||ae.renderType===0)return"";if(ae.renderType===3){let ge=this._editorObs.cursorPosition.read(ne);if(re%10===0||ge&&ge.lineNumber===re)return re.toString();return""}if(ae.renderType===2){let ge=this._editorObs.cursorPosition.read(ne);if(!ge)return"";let ke=Math.abs(re-ge.lineNumber);if(ke===0)return re.toString();return ke.toString()}if(ae.renderType===4){if(ae.renderFn)return ae.renderFn(re);return""}return re.toString()}),this._availableWidthForIcon=d(this,(ne)=>{let re=this._editorObs.editor.getModel(),ae=this._editorObs.editor,ge=this._editorObs.layoutInfo.read(ne),ke=ge.decorationsLeft+ge.decorationsWidth-ge.glyphMarginLeft;if(!re||ke<=0)return()=>0;if(ge.lineNumbersLeft===0)return()=>ke;let Ae=this._editorObs.getOption(76).read(ne);if(Ae.renderType===2||Ae.renderType===0)return()=>ke;let He=ae.getOption(59).typicalHalfwidthCharacterWidth,Ke=ge.lineNumbersLeft+ge.lineNumbersWidth,Te=(re.getLineCount()+1).toString().length,We=[];for(let et=1;et<=Te;et++){let tt=10**(et-1),ot=ae.getTopForLineNumber(tt),je=et*He,nt=Math.min(ke,Math.max(0,Ke-je-ge.glyphMarginLeft));We.push({firstLineNumberWithDigitCount:tt,topOfLineNumber:ot,usableWidthLeftOfLineNumber:nt})}return(et)=>{for(let tt=We.length-1;tt>=0;tt--)if(et>=We[tt].topOfLineNumber)return We[tt].usableWidthLeftOfLineNumber;throw new P("Could not find avilable width for icon")}}),this._layout=d(this,(ne)=>{let re=this._state.read(ne);if(!re)return;let ae=this._editorObs.layoutInfo.read(ne),ge=this._editorObs.observeLineHeightForLine(re.range.map((ai)=>ai.startLineNumber)).read(ne),ke=1,Ae=2,He=ae.decorationsLeft+ae.decorationsWidth-ae.glyphMarginLeft-2*ke,Ke=ae.height-2*Ae,Ue=Lt.fromLeftTopWidthHeight(ke,Ae,He,Ke),Te=Ue.withTop(this._stickyScrollHeight.read(ne)),We=Ue.withTop(Te.top+Ae),et=re.lineOffsetRange.read(ne),tt=Lt.fromRanges(B.fromTo(We.left,We.right),et),ot=ge,je=this._verticalOffset.read(ne),nt=tt.withHeight(ot).translateY(je),_t=Te.containsRect(nt),st=this._data.read(ne)?.customization?.icon,xt=st?Se(st):this._tabAction.map((ai)=>ai===ci.Accept?b.keyboardTab:b.arrowRight),at=st?Se(st):d(this,(ai)=>{if(this._isHoveredOverIconDebounced.read(ai)||this._isHoveredOverInlineEditDebounced.read(ai))return b.check;if(this._tabAction.read(ai)===ci.Accept)return b.keyboardTab;let Gi=this._editorObs.cursorLineNumber.read(ai)??0,$s=re.range.read(ai).startLineNumber;return Gi<=$s?b.keyboardTabAbove:b.keyboardTabBelow}),gi=22,vt=(ai)=>{let Gi=this._availableWidthForIcon.read(void 0)(ai.bottom+this._editorObs.editor.getScrollTop())-ke;return Math.max(Math.min(Gi,gi),_C)};if(_t){let ai=nt,Gi;if(ae.lineNumbersWidth===0)Gi=Math.max(0,Math.min(Math.max(ae.lineNumbersLeft-Ue.left,0),ai.width-gi));else Gi=Math.max(ae.lineNumbersLeft+ae.lineNumbersWidth-Ue.left,0);let $s=ai.withWidth(Gi),nn=_C+ND,Tr=Math.min(ai.width-Gi,gi),Ja=ai.withWidth(Math.max(Tr,nn)).translateX(Gi),R_=Tr>=nn;return{gutterEditArea:tt,icon:at,iconDirection:"right",iconRect:Ja,iconVisible:R_,pillRect:ai,lineNumberRect:$s}}let Ot=Ue.intersect(tt);if(Ot&&Ot.height>=ot){let ai=nt.moveToBeContainedIn(We).moveToBeContainedIn(Ot),Gi=ai.withWidth(vt(ai));return{gutterEditArea:tt,icon:at,iconDirection:"right",iconRect:Gi,pillRect:Gi,iconVisible:!0}}let Zt=nt.moveToBeContainedIn(Ue),$t=Zt.withWidth(vt(Zt)),vi=$t,mi=$t.top<nt.top?"top":"bottom";return{gutterEditArea:tt,icon:xt,iconDirection:mi,iconRect:vi,pillRect:$t,iconVisible:!0}}),this._iconRef=se.ref(),this.isVisible=this._layout.map((ne)=>!!ne),this._hoverVisible=M(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=M(this,!1),this._isHoveredOverIconDebounced=Gx(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=se.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},xo(this._layout).map((ne)=>!ne?[]:[se.div({style:{position:"absolute",background:N(ID),borderRadius:`${Li}px`,...Di((re)=>ne.read(re).gutterEditArea)}}),se.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{let ae=this._layout.get()?.icon.get()===b.check,ge=this._data.get();if(!ge)throw new P("Gutter indicator data not available");if(this._editorObs.editor.focus(),ae)ge.model.accept();else ge.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((re)=>re.background),["--vscodeIconForeground"]:this._gutterIndicatorStyles.map((re)=>re.foreground),border:this._gutterIndicatorStyles.map((re)=>`1px solid ${re.border}`),boxSizing:"border-box",borderRadius:`${Li}px`,display:"flex",justifyContent:ne.map((re)=>re.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map((re)=>re?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Di((re)=>ne.read(re).pillRect)}},[se.div({className:"line-number",style:{lineHeight:ne.map((re)=>re.lineNumberRect?re.lineNumberRect.height:0),display:ne.map((re)=>re.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:ne.map((re)=>re.lineNumberRect?re.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map((re)=>re.foreground)}},this._lineNumberToRender),se.div({style:{transform:ne.map((re)=>`rotate(${LM(re.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:ne.map((re)=>re.iconVisible?"1":"0"),marginRight:ne.map((re)=>re.pillRect.width-re.iconRect.width-(re.lineNumberRect?.width??0)),width:ne.map((re)=>re.iconRect.width),position:"relative",right:ne.map((re)=>re.iconDirection==="top"?"1px":"0"),color:this._data.map((re)=>re?.customization?.icon?.color?N(re.customization.icon.color.id):void 0)}},[ne.map((re,ae)=>kM(to(re.icon.read(ae)),{fontSize:EM(Math.min(re.iconRect.width-ND,_C))}))])])])),this._originalRangeObs=xo(this._data.map((ne)=>ne?.originalRange)),this._stickyScrollController=Gr.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Le(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Se(0),this._isHoveredOverInlineEditDebounced=Gx(this._isHoveringOverInlineEdit,100);let te=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:te.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:Se(0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(sr(this._isHoveredOverInlineEditDebounced,(ne)=>{if(ne)this.triggerAnimation()})),this._register(H((ne)=>{if(te.readEffect(ne),te.element)this._editorObs.editor.applyFontInfo(te.element)}))}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map((g)=>g.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;let u=this._data.get();if(!u)throw new P("Gutter indicator data not available");let g=new c,v=g.add(this._instantiationService.createInstance(s_,this._editorObs,u.gutterMenuData,(D,T)=>{if(D)this._editorObs.editor.focus();if(T)this._onDidCloseWithCommand.fire(T);y?.dispose()}).toDisposableLiveElement()),S=this._userInteractionService.createFocusTracker(v.element,g);g.add(H((D)=>{this._focusIsInMenu.set(S.read(D),void 0)})),g.add(E(()=>this._focusIsInMenu.set(!1,void 0)));let y=this._hoverService.showInstantHover({target:this._iconRef.element,content:v.element});if(y)this._hoverVisible.set(!0,void 0),g.add(this._editorObs.editor.onDidScrollChange(()=>y.dispose())),g.add(y.onDispose(()=>{this._hoverVisible.set(!1,void 0),g.dispose()}));else g.dispose()}};$l=IM([Tg(6,yn),Tg(7,L),Tg(8,Vt),Tg(9,De),Tg(10,ar)],$l);function LM(f){switch(f){case"top":return 90;case"bottom":return-90;case"right":return 0}}function kM(f,u){for(let g in u)f.style[g]=u[g];return f}function EM(f){return`${f}px`}var DM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},MD=function(f,u){return function(g,v){u(g,v,f)}},Zo;(function(f){f.FirstTime="firstTime",f.SecondTime="secondTime",f.Active="active"})(Zo||(Zo={}));var a_=class f extends n{constructor(u,g,v,S,y){super();this._model=u,this._indicator=g,this._collapsedView=v,this._storageService=S,this._configurationService=y,this._disposables=this._register(new ie),this._setupDone=M({name:"setupDone"},!1),this._activeCompletionId=d((D)=>{let T=this._model.read(D);if(!T)return;if(!this._setupDone.read(D))return;let R=this._indicator.read(D);if(!R||!R.isVisible.read(D))return;return T.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 u=new c,g=!1,v=!1,S=0,y=0;return u.add(UI(this._activeCompletionId,async(D,T,R,K)=>{if(D===void 0)return;let q=this.getNewUserType();switch(q){case Zo.FirstTime:{if(S++>=5||g)q=Zo.SecondTime,this.setNewUserType(q);break}case Zo.SecondTime:{if(y++>=3&&v)q=Zo.Active,this.setNewUserType(q);break}}switch(q){case Zo.FirstTime:{for(let ee=0;ee<3&&!K.isCancellationRequested;ee++)await this._indicator.get()?.triggerAnimation(),await ir(500);break}case Zo.SecondTime:{this._indicator.get()?.triggerAnimation();break}}})),u.add(H((D)=>{if(this._collapsedView.isVisible.read(D)){if(this.getNewUserType()!==Zo.Active)this._collapsedView.triggerAnimation()}})),u.add(H((D)=>{let T=this._indicator.read(D);if(!T)return;D.store.add(sr(T.isHoveredOverIcon,async(R)=>{if(R)g=!0}))})),u.add(H((D)=>{let T=this._model.read(D);if(!T)return;D.store.add(T.onDidAccept(()=>{v=!0}))})),u}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,Zo.FirstTime)}setNewUserType(u){switch(u){case Zo.FirstTime:throw new P("UserKind should not be set to first time");case Zo.SecondTime:break;case Zo.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",u,-1,0)}_initializeDebugSetting(){if(this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1);return this._configurationService.onDidChangeConfiguration((v)=>{if(v.affectsConfiguration("editor.inlineSuggest.edits.resetNewUserExperience")&&this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience()})}};a_=DM([MD(3,xn),MD(4,X)],a_);class bC{static{this.empty=new bC([])}constructor(f){this.replacements=f,Bd(Tc(f,(u,g)=>u.lineRange.endLineNumberExclusive<=g.lineRange.startLineNumber))}toString(){return this.replacements.map((f)=>f.toString()).join(",")}getNewLineRanges(){let f=[],u=0;for(let g of this.replacements)f.push(Y.ofLength(g.lineRange.startLineNumber+u,g.newLines.length)),u+=g.newLines.length-g.lineRange.length;return f}}class nh{static fromSingleTextEdit(f,u){let g=ei(f.text),v=f.range.startLineNumber,S=u.getValueOfRange(t.fromPositions(new r(f.range.startLineNumber,1),f.range.getStartPosition()));g[0]=S+g[0];let y=f.range.endLineNumber+1,D=u.getTransformer().getLineLength(f.range.endLineNumber)+1,T=u.getValueOfRange(t.fromPositions(f.range.getEndPosition(),new r(f.range.endLineNumber,D)));g[g.length-1]=g[g.length-1]+T;let R=f.range.startColumn===u.getTransformer().getLineLength(f.range.startLineNumber)+1,K=f.range.endColumn===1;if(R&&g[0].length===S.length)v++,g.shift();if(g.length>0&&v<y&&K&&g[g.length-1].length===T.length)y--,g.pop();return new nh(new Y(v,y),g)}constructor(f,u){this.lineRange=f,this.newLines=u}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new bC([this])}}class vC{get lineEdit(){if(this.action?.kind==="jumpTo")return new nh(Y.ofLength(this.action.position.lineNumber,0),[]);else if(this.action?.kind==="edit")return nh.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText);return new nh(new Y(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(Y.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(f,u,g,v,S,y,D){this.originalText=f,this.action=u,this.edit=g,this.cursorPosition=v,this.multiCursorPositions=S,this.commands=y,this.inlineCompletion=D}}class wC{constructor(f,u,g){this._model=f,this.inlineEdit=u,this.tabAction=g,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=d(this,(v)=>qS(this._model.editor,this.inlineEdit.inlineCompletion,v)),this.onDidAccept=this._model.onDidAccept}accept(f){this._model.accept(void 0,f)}handleInlineEditShownNextFrame(f,u){let g=this.inlineEdit.inlineCompletion,v=Date.now();g.addRef(),Us(()=>{this._model.handleInlineSuggestionShown(g,f,u,v),g.removeRef()})}}var TM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},RM=function(f,u){return function(g,v){u(g,v,f)}},d_=class f extends n{constructor(u,g,v){super();this._editor=u,this._edit=g,this._accessibilityService=v,this.onDidClick=C.None,this._iconRef=se.ref(),this.isHovered=Se(!1),this._editorObs=Ze(this._editor);let y=this._edit.map((K)=>K?.edit?.replacements[0]??null).map((K)=>K?Qo(K,this._editor.getModel()).range.getStartPosition():null),D=this._editorObs.observePosition(y,this._store),T=d((K)=>{let q=D.read(K);if(!q)return null;let ee=this._editorObs.layoutInfoContentLeft.read(K),te=this._editorObs.scrollLeft.read(K);return new Qn(ee+q.x-te,q.y)}),R=se.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(T)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:R,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:Se(0)})),this.isVisible=this._edit.map((K,q)=>!!K&&T.read(q)!==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(u){let g=this._editorObs.layoutInfoContentLeft,v=u.map((y,D)=>y?y.deltaX(-g.read(D)):null),S=this.createIconPath(v);return se.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Di((y)=>Pl(this._editorObs).read(y)),overflow:"hidden",pointerEvents:"none"}},[se.svgElem("path",{class:"collapsedViewPath",d:S,fill:N(Bn)})])}createIconPath(u){return u.map((y)=>{if(!y)return new Fl().build();let D=y.deltaX(-3).deltaY(-1),T=D.deltaX(6),R=D.deltaY(1),K=T.deltaY(1),q=R.deltaX(3).deltaY(3);return new Fl().moveTo(D).lineTo(T).lineTo(K).lineTo(q).lineTo(R).lineTo(D).build()})}};d_=TM([RM(2,Vt)],d_);var NM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},OD=function(f,u){return function(g,v){u(g,v,f)}},c_=14,SC=0,zs=4,l_=4,PD=2,h_=class f extends n{constructor(u,g,v,S,y,D){super();this._editor=u,this._languageService=D,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._isHovered=M(this,!1),this.isHovered=this._isHovered,this._viewRef=se.ref(),this._editorObs=Ze(this._editor);let T=v.map((ee,te)=>{let ne;switch(ee){case ci.Inactive:ne=Nl;break;case ci.Jump:ne=hs;break;case ci.Accept:ne=Ml;break}return{border:yi(ne,y).read(te).toString(),background:Ro(S.read(te))}}),R=g.map((ee)=>ee?this.getState(ee):void 0),K=R.map((ee)=>ee?this.getRendering(ee,T):void 0);this.minEditorScrollHeight=d(this,(ee)=>{let te=R.read(ee);if(!te)return 0;return te.rect.read(ee).bottom+this._editor.getScrollTop()});let q=se.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[K]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:q.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:Ho(this,(ee,te)=>{let ne=R.read(ee);if(!ne)return te??0;let re=ne.rect.map((ae)=>ae.right).read(ee)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(ee)+zs-this._editorObs.layoutInfoContentLeft.read(ee);return Math.max(te??0,re)}).recomputeInitiallyAndOnChange(this._store)})),this._register(H((ee)=>{if(!K.read(ee)){this._isHovered.set(!1,void 0);return}this._isHovered.set(q.isHovered.read(ee),void 0)}))}fitsInsideViewport(u,g,v){let S=this._editorObs.layoutInfoWidth.read(v),y=this._editorObs.layoutInfoContentLeft.read(v),D=this._editor.getLayoutInfo().verticalScrollbarWidth,T=this._editorObs.layoutInfoMinimap.read(v).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(v).minimapWidth:0,R=on(this._editorObs,u,void 0),K=Dg(g,this._editor,this._editor.getModel()),q=zs+c_;return R+K+q<S-y-D-T}getState(u){let g=d(this,(T)=>{let R=u.range.startLineNumber,K=u.range.endLineNumber,q=u.range.startColumn,ee=u.range.endColumn,te=this._editor.getModel()?.getLineCount()??0,ne=on(this._editorObs,new Y(R,R+1),T),re=R+1<=te?on(this._editorObs,new Y(R+1,R+2),T):void 0,ae=R-1>=1?on(this._editorObs,new Y(R-1,R),T):void 0,ge=this._editor.getOffsetForColumn(R,q),ke=this._editor.getOffsetForColumn(K,ee);return{lineWidth:ne,lineWidthBelow:re,lineWidthAbove:ae,startContentLeftOffset:ge,endContentLeftOffset:ke}}),v=u.range.startLineNumber,S=u.range.endLineNumber,y=this.fitsInsideViewport(new Y(v,S+1),u.content,void 0);return{rect:d(this,(T)=>{let R=this._editorObs.getOption(59).read(T).typicalHalfwidthCharacterWidth,{lineWidth:K,lineWidthBelow:q,lineWidthAbove:ee,startContentLeftOffset:te,endContentLeftOffset:ne}=g.read(T),re=this._editorObs.layoutInfoContentLeft.read(T),ae=this._editorObs.observeLineHeightForLine(v).recomputeInitiallyAndOnChange(T.store).read(T),ge=this._editorObs.scrollTop.read(T),ke=this._editorObs.scrollLeft.read(T),Ae;if(v===S&&ne+5*R>=K&&y)Ae="end";else if(q!==void 0&&q+c_-l_-zs<te)Ae="below";else if(ee!==void 0&&ee+c_-l_-zs<te)Ae="above";else Ae="end";let He,Ke,Ue=0,Te=0;switch(Ae){case"end":{He=this._editorObs.editor.getTopForLineNumber(v),Ke=K,Ue=zs+c_;break}case"below":{He=this._editorObs.editor.getTopForLineNumber(v+1),Ke=te,Ue=zs+l_,Te=SC+PD;break}case"above":{He=this._editorObs.editor.getTopForLineNumber(v-1),Ke=te,Ue=zs+l_,Te=-SC+PD;break}}return Lt.fromLeftTopWidthHeight(re+Ke-ke,He-ge,R*u.content.length,ae).withMargin(SC,zs).translateX(Ue).translateY(Te)}),label:u.content,kind:u.style}}getRendering(u,g){let v=document.createElement("div"),S=this._editor.getModel().tokenization.tokenizeLinesAt(1,[u.label])?.[0],y;if(S&&u.kind===Bx.Code)y=_a.fromLineTokens(S).toLineTokens(u.label,this._languageService.languageIdCodec);else y=bt.createEmpty(u.label,this._languageService.languageIdCodec);let D=qc(new ec([y]),Qs.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],v,!0);v.style.width=`${D.minWidthInPx}px`;let T=u.rect.map((R)=>R.withMargin(0,zs));return se.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Di((R)=>T.read(R)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:g.map((R)=>`1px solid ${R.border}`),borderRadius:`${Li}px`,backgroundColor:g.map((R)=>R.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:(R)=>{R.preventDefault()},onclick:(R)=>{this._onDidClick.fire(qo.create(R))}},[v])}};h_=NM([OD(4,De),OD(5,pt)],h_);var MM=0,OM=0,CC=1,PM=1,AM=3,yC=Li;class xC extends n{constructor(f,u,g,v){super();this._editor=f,this._edit=u,this._uiState=g,this._tabAction=v,this.onDidClick=C.None,this._display=d(this,(D)=>this._uiState.read(D)?"block":"none"),this._editorMaxContentWidthInRange=d(this,(D)=>{let T=this._originalDisplayRange.read(D);if(!T)return Se(0);return this._editorObs.versionId.read(D),Ho(this,(R,K)=>{let q=on(this._editorObs,T,R);return Math.max(q,K??0)})}).map((D,T)=>D.read(T)),this._maxPrefixTrim=d(this,(D)=>{let T=this._uiState.read(D);if(!T)return{prefixTrim:0,prefixLeftOffset:0};return Ol(T.deletions,T.originalRange,[],this._editor)}),this._editorLayoutInfo=d(this,(D)=>{let T=this._edit.read(D);if(!T)return null;if(!this._uiState.read(D))return null;let K=this._editorObs.layoutInfo.read(D),q=this._editorObs.scrollLeft.read(D),ee=this._editorObs.getOption(59).map((Ae)=>Ae.typicalHalfwidthCharacterWidth).read(D),te=K.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(D),ee)-q,ne=T.originalLineRange,re=this._originalVerticalStartPosition.read(D)??this._editor.getTopForLineNumber(ne.startLineNumber)-this._editorObs.scrollTop.read(D),ae=this._originalVerticalEndPosition.read(D)??this._editor.getTopForLineNumber(ne.endLineNumberExclusive)-this._editorObs.scrollTop.read(D),ge=K.contentLeft+this._maxPrefixTrim.read(D).prefixLeftOffset-q;if(te<=ge)return null;return{codeRect:Lt.fromLeftTopRightBottom(ge,re,te,ae).withMargin(OM,MM),contentLeft:K.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=se.div({style:{pointerEvents:"none"}},d(this,(D)=>{let T=xo(this._editorLayoutInfo).read(D);if(!T)return;let R=T.map((ne)=>Lt.fromLeftTopRightBottom(ne.contentLeft-yC-CC,ne.codeRect.top,ne.contentLeft,ne.codeRect.bottom)),K=d(this,(ne)=>{let re=T.read(ne).codeRect,ae=R.read(ne);return re.intersectHorizontal(new B(ae.left,Number.MAX_SAFE_INTEGER))}),q=this._uiState.map((ne)=>ne?.editorType===li.DiffEditor?AM:PM).read(D),ee=K.map((ne)=>ne.withMargin(q,q)),te=Ro(this._uiState.map((ne)=>ne?.editorType??li.TextEditor).read(D));return[se.div({class:"originalSeparatorDeletion",style:{...ee.read(D).toStyles(),borderRadius:`${yC}px`,border:`${CC+q}px solid ${te}`,boxSizing:"border-box"}}),se.div({class:"originalOverlayDeletion",style:{...K.read(D).toStyles(),borderRadius:`${yC}px`,border:$a(this._tabAction).map((ne)=>`${CC}px solid ${N(ne)}`),boxSizing:"border-box",backgroundColor:N(qa)}}),se.div({class:"originalOverlayHiderDeletion",style:{...R.read(D).toStyles(),backgroundColor:te}})]})).keepUpdated(this._store),this._nonOverflowView=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=Se(!1),this._editorObs=Ze(this._editor);let S=d(this,(D)=>{let T=this._edit.read(D);return T?new r(T.originalLineRange.startLineNumber,1):null}),y=d(this,(D)=>{let T=this._edit.read(D);return T?new r(T.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map((D)=>D?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(S,this._store).map((D)=>D?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(y,this._store).map((D)=>D?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:d(this,(D)=>{let T=this._editorLayoutInfo.read(D);if(T===null)return 0;return T.codeRect.width})}))}}var FM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},AD=function(f,u){return function(g,v){u(g,v,f)}},rh=1,HM=1,WM=3,IC=Li,u_=class f extends n{constructor(u,g,v,S,y){super();this._editor=u,this._input=g,this._tabAction=v,this._languageService=y,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._state=d(this,(D)=>{let T=this._input.read(D);if(!T)return;let R=this._editor.getModel(),K=R.getEOL();if(T.startColumn===1&&T.lineNumber>1&&R.getLineLength(T.lineNumber)!==0&&T.text.endsWith(K)&&!T.text.startsWith(K)){let q=R.getLineLength(T.lineNumber-1)+1;return{lineNumber:T.lineNumber-1,column:q,text:K+T.text.slice(0,-K.length)}}return{lineNumber:T.lineNumber,column:T.startColumn,text:T.text}}),this._trimVertically=d(this,(D)=>{let T=this._state.read(D);if(!T)return{topOffset:0,contentHeight:0,linesTop:0,linesBottom:0};let R=T.text,K=this._editor.getLineHeightForPosition(new r(T.lineNumber,1)),q=this._editor.getModel().getEOL(),ee=R.split(q).length,te=0,ne=0;if(R.trim()!==""){let re=0;for(;re<R.length&&R.startsWith(q,re);re+=q.length)te+=1;for(let ae=R.length;ae>re&&R.endsWith(q,ae);ae-=q.length)ne+=1}return{topOffset:te*K,contentHeight:(ee-te-ne)*K,linesTop:te,linesBottom:ne}}),this._maxPrefixTrim=d(this,(D)=>{let T=this._state.read(D);if(!T)return{prefixLeftOffset:0,prefixTrim:0};let R=this._editor.getModel(),K=R.getEOL(),q=this._trimVertically.read(D),ee=T.text.split(K),te=ee.slice(q.linesTop,ee.length-q.linesBottom);if(q.linesTop===0)te[0]=R.getLineContent(T.lineNumber)+te[0];let ne=new Y(T.lineNumber,T.lineNumber+(q.linesTop>0?0:1));return Ol([],ne,te,this._editor)}),this._ghostText=d((D)=>{let T=this._state.read(D),R=this._maxPrefixTrim.read(D);if(!T)return;let q=this._editor.getModel().getEOL(),te=T.text.split(q).map((ne,re)=>new Zl(new t(re+1,re===0?1:R.prefixTrim+1,re+1,ne.length+1),"modified-background",0));return new As(T.lineNumber,[new Dd(T.column,T.text,!1,te)])}),this._display=d(this,(D)=>this._state.read(D)?"block":"none"),this._editorMaxContentWidthInRange=d(this,(D)=>{let T=this._state.read(D);if(!T)return 0;this._editorObs.versionId.read(D);let R=this._editor.getModel(),K=R.getEOL(),q=T.text.startsWith(K)?"":R.getValueInRange(new t(T.lineNumber,1,T.lineNumber,T.column)),ee=R.getValueInRange(new t(T.lineNumber,T.column,T.lineNumber,R.getLineLength(T.lineNumber)+1)),ne=(q+T.text+ee).split(K),re=Qs.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),ae=ne.map((ge)=>{let ke=R.tokenization.tokenizeLinesAt(T.lineNumber,[ge])?.[0],Ae;if(ke)Ae=_a.fromLineTokens(ke).toLineTokens(ge,this._languageService.languageIdCodec);else Ae=bt.createEmpty(ge,this._languageService.languageIdCodec);return qc(new ec([Ae]),re,[],m("div"),!0).minWidthInPx});return Math.max(...ae)}),this.startLineOffset=this._trimVertically.map((D)=>D.topOffset),this.originalLines=this._state.map((D)=>D?new Y(D.lineNumber,Math.min(D.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=d(this,(D)=>{this._ghostText.read(D);let T=this._state.read(D);if(!T)return null;this._editorObs.observePosition(M(this,new r(T.lineNumber,T.column)),D.store).read(D);let R=this._editorObs.layoutInfo.read(D),K=this._editorObs.scrollLeft.read(D),q=this._editorObs.layoutInfoVerticalScrollbarWidth.read(D),ee=R.contentLeft+this._editorMaxContentWidthInRange.read(D)-K,te=this._maxPrefixTrim.read(D).prefixLeftOffset??0,ne=R.contentLeft+te-K;if(ee<=ne)return null;let{topOffset:re,contentHeight:ae}=this._trimVertically.read(D),ge=this._editorObs.scrollTop.read(D),ke=this._editor.getTopForLineNumber(T.lineNumber)-ge+re,Ae=ke+ae,He=new Lt(ne,ke,ee,Ae);return{overlay:He,startsAtContentLeft:te===0,contentLeft:R.contentLeft,minContentWidthRequired:te+He.width+q}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=se.div({style:{pointerEvents:"none"}},d(this,(D)=>{let T=xo(this._overlayLayout).read(D);if(!T)return;let R=T.map((ne)=>Lt.fromLeftTopRightBottom(ne.contentLeft-IC-rh,ne.overlay.top,ne.contentLeft,ne.overlay.bottom)).read(D),K=this._input.map((ne)=>ne?.editorType===li.DiffEditor?WM:HM).read(D),q=T.map((ne)=>ne.overlay.withMargin(0,rh,rh,ne.startsAtContentLeft?0:rh).intersectHorizontal(new B(R.left,Number.MAX_SAFE_INTEGER))),ee=q.map((ne)=>ne.withMargin(K,K)),te=Ro(this._input.read(void 0)?.editorType??li.TextEditor);return[se.div({class:"originalUnderlayInsertion",style:{...ee.read(D).toStyles(),borderRadius:IC,border:`${rh+K}px solid ${te}`,boxSizing:"border-box"}}),se.div({class:"originalOverlayInsertion",style:{...q.read(D).toStyles(),borderRadius:IC,border:Bs(this._tabAction).map((ne)=>`${rh}px solid ${N(ne)}`),boxSizing:"border-box",backgroundColor:N(r_)}}),se.div({class:"originalOverlayHiderInsertion",style:{...R.toStyles(),backgroundColor:te}})]})).keepUpdated(this._store),this._view=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=Ze(this._editor),this._ghostTextView=this._register(S.createInstance(Ba,this._editor,d((D)=>{let T=this._ghostText.read(D);if(!T)return;return{ghostText:T,handleInlineCompletionShown:(R)=>{},warning:void 0}}),{extraClasses:["inline-edit"],isClickable:!0,shouldKeepCursorStable:!0})),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick((D)=>{this._onDidClick.fire(new qo(D))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:d(this,(D)=>{let T=this._overlayLayout.read(D);if(T===null)return 0;return T.minContentWidthRequired})}))}};u_=FM([AD(3,L),AD(4,pt)],u_);var BM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},FD=function(f,u){return function(g,v){u(g,v,f)}},g_=class f extends n{constructor(u,g,v,S,y,D){super();this._editor=u,this._edit=g,this._editorType=v,this._tabAction=S,this._languageService=y,this._themeService=D,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((T,R)=>T?Ol(T.replacements.flatMap((K)=>[K.originalRange,K.modifiedRange]),T.originalRange,T.modifiedLines,this._editor.editor,R):void 0),this._modifiedLineElements=d(this,(T)=>{let R=[],K=0,q=this._maxPrefixTrim.read(T),ee=this._edit.read(T);if(!ee||!q)return;let te=q.prefixTrim,ne=VM(ee.replacements.map((ge)=>ge.modifiedRange)).map((ge)=>new t(ge.startLineNumber,ge.startColumn-te,ge.endLineNumber,ge.endColumn-te)),re=this._editor.model.get(),ae=ee.modifiedRange.startLineNumber;for(let ge=0;ge<ee.modifiedRange.length;ge++){let ke=document.createElement("div"),Ae=ae+ge,He=ee.modifiedLines[ge].slice(te),Ke=re.tokenization.tokenizeLinesAt(Ae,[He])?.[0],Ue;if(Ke)Ue=_a.fromLineTokens(Ke).toLineTokens(He,this._languageService.languageIdCodec);else Ue=bt.createEmpty(He,this._languageService.languageIdCodec);let Te=[];for(let et of ne.filter((tt)=>tt.startLineNumber===Ae)){let tt=Math.min(et.endColumn,He.length+1);Te.push(new Zl(new t(1,et.startColumn,1,tt),"inlineCompletions-modified-bubble",0))}let We=qc(new ec([Ue]),Qs.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),Te,ke,!0);this._editor.getOption(59).read(T),K=Math.max(K,We.minWidthInPx),R.push(ke)}return{lines:R,requiredWidth:K}}),this._layout=d(this,(T)=>{let R=this._modifiedLineElements.read(T),K=this._maxPrefixTrim.read(T),q=this._edit.read(T);if(!R||!K||!q)return;let{prefixLeftOffset:ee}=K,{requiredWidth:te}=R,ne=this._editor.observeLineHeightsForLineRange(q.originalRange).read(T),re=(()=>{let at=ne.slice(0,q.modifiedRange.length);while(at.length<q.modifiedRange.length)at.push(ne[ne.length-1]);return at})(),ae=this._editor.layoutInfoContentLeft.read(T),ge=this._editor.layoutInfoVerticalScrollbarWidth.read(T),ke=this._editor.scrollLeft.read(T),Ae=this._editor.scrollTop.read(T),He=ae-ke,Ke=this._editor.editor.getModel(),Ue=q.originalRange.mapToLineArray((at)=>this._editor.editor.getOffsetForColumn(at,Ke.getLineMaxColumn(at))-ee),Te=Math.max(...Ue,te),We=q.originalRange.startLineNumber,et=q.originalRange.endLineNumberExclusive-1,tt=this._editor.editor.getTopForLineNumber(We)-Ae,ot=this._editor.editor.getBottomForLineNumber(et)-Ae,je=Lt.fromLeftTopWidthHeight(He+ee,tt,Te,ot-tt),nt=Lt.fromLeftTopWidthHeight(je.left,je.bottom,je.width,re.reduce((at,gi)=>at+gi,0)),_t=Lt.hull([je,nt]),st=_t.intersectVertical(new B(je.bottom,Number.MAX_SAFE_INTEGER)),xt=new Lt(st.left,st.top,st.right,st.bottom);return{originalLinesOverlay:je,modifiedLinesOverlay:nt,background:_t,lowerBackground:st,lowerText:xt,modifiedLineHeights:re,minContentWidthRequired:ee+Te+ge}}),this._viewZoneInfo=d((T)=>{if(!this._editor.getOption(71).map((ne)=>ne.edits.allowCodeShifting==="always").read(T))return;let K=this._layout.read(T),q=this._edit.read(T);if(!K||!q)return;let ee=K.lowerBackground.height,te=q.originalRange.endLineNumberExclusive;return{height:ee,lineNumber:te}}),this.minEditorScrollHeight=d(this,(T)=>{let R=xo(this._layout).read(T);if(!R||this._viewZoneInfo.read(T)!==void 0)return 0;return R.read(T).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=se.div({class:"line-replacement"},[d(this,(T)=>{let R=xo(this._layout).read(T),K=this._modifiedLineElements.read(T);if(!R||!K)return[];let q=R.read(T),ee=this._editor.layoutInfoContentLeft.read(T),te=this._editorType.read(T)===li.DiffEditor?3:1;K.lines.forEach((ge,ke)=>{ge.style.width=`${q.lowerText.width}px`,ge.style.height=`${q.modifiedLineHeights[ke]}px`,ge.style.position="relative"});let ne=Bs(this._tabAction).read(T),re=$a(this._tabAction).read(T),ae=Ro(this._editorType.read(T));return[se.div({style:{position:"absolute",...Di((ge)=>Pl(this._editor).read(ge)),overflow:"hidden",pointerEvents:"none"}},[se.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Di((ge)=>R.read(ge).background.translateX(-ee).withMargin(te)),borderRadius:`${Li}px`,border:`${te+1}px solid ${ae}`,boxSizing:"border-box",pointerEvents:"none"}}),se.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Di((ge)=>R.read(ge).background.translateX(-ee)),borderRadius:`${Li}px`,border:yi(re,this._themeService).map((ge)=>`1px solid ${ge.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:N(qa)}}),se.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Di((ge)=>R.read(ge).lowerBackground.translateX(-ee)),borderRadius:`0 0 ${Li}px ${Li}px`,background:ae,boxShadow:`${N(Up)} 0 6px 6px -6px`,border:`1px solid ${N(ne)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:(ge)=>{ge.preventDefault()},onclick:(ge)=>this._onDidClick.fire(qo.create(ge))},[se.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:N(wD)}})]),se.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Di((ge)=>R.read(ge).lowerText.translateX(-ee)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${Li}px ${Li}px`,overflow:"hidden"}},[...K.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered((T)=>this._isMouseOverWidget(T),this._store),this._previousViewZoneInfo=void 0,this._register(E(()=>this._editor.editor.changeViewZones((T)=>this.removePreviousViewZone(T)))),this._register(vI(this._viewZoneInfo,({lastValue:T,newValue:R})=>{if(T===R||T?.height===R?.height&&T?.lineNumber===R?.lineNumber)return;this._editor.editor.changeViewZones((K)=>{if(this.removePreviousViewZone(K),!R)return;this.addViewZone(R,K)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:d(this,(T)=>this._layout.read(T)?.minContentWidthRequired??0),position:Se({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(u){let g=this._layout.get();if(!g||!(u.event instanceof Sa))return!1;return g.lowerBackground.containsPoint(new Qn(u.event.relativePos.x,u.event.relativePos.y))}removePreviousViewZone(u){if(!this._previousViewZoneInfo)return;u.removeZone(this._previousViewZoneInfo.id);let g=this._editor.cursorLineNumber.get();if(g!==null&&g>=this._previousViewZoneInfo.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height);this._previousViewZoneInfo=void 0}addViewZone(u,g){let v=g.addZone({afterLineNumber:u.lineNumber-1,heightInPx:u.height,domNode:m("div")});this._previousViewZoneInfo={height:u.height,lineNumber:u.lineNumber,id:v};let S=this._editor.cursorLineNumber.get();if(S!==null&&S>=u.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()+u.height)}};g_=BM([FD(4,pt),FD(5,De)],g_);function VM(f){let u=[];while(f.length){let g=f.shift();if(g.startLineNumber!==g.endLineNumber)f.push(new t(g.startLineNumber+1,1,g.endLineNumber,g.endColumn)),g=new t(g.startLineNumber,g.startColumn,g.startLineNumber,Number.MAX_SAFE_INTEGER);u.push(g)}return u}function HD(f,u){let g={};for(let[D,T]of Object.entries(u))if(Array.isArray(T))g[D]={min:0,rules:T};else g[D]={min:T.min??0,rules:T.rules??[{max:T.max,priority:T.priority,share:T.share}]};let v={},S=0;for(let[D,T]of Object.entries(g))v[D]=T.min,S+=T.min;if(S>f)return null;let y=f-S;while(y>0){let D=[];for(let[te,ne]of Object.entries(g))for(let re=0;re<ne.rules.length;re++){let ae=ne.rules[re],ge=v[te],ke=ae.max??1/0;if(ge<ke)D.push({partKey:te,ruleIndex:re,rule:ae,priority:ae.priority??0,share:ae.share??1})}if(D.length===0)break;let T=Math.max(...D.map((te)=>te.priority)),R=D.filter((te)=>te.priority===T),K=R.reduce((te,ne)=>te+ne.share,0),q=0,ee=[];for(let te of R){let ne=te.rule,re=v[te.partKey],ge=(ne.max??1/0)-re,ke=y*te.share/K,Ae=Math.min(ke,ge);ee.push({partKey:te.partKey,ruleIndex:te.ruleIndex,amount:Ae}),q+=Ae}if(q===0)break;for(let te of ee)v[te.partKey]+=te.amount;if(y-=q,y<0.0001)break}return v}var zM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},LC=function(f,u){return function(g,v){u(g,v,f)}},p_=class f extends n{constructor(u,g,v,S,y,D){super();this._editor=u,this._data=v,this._themeService=S,this._keybindingService=y,this._contextKeyService=D,this._styles=d(this,(R)=>({background:yi(hs,this._themeService).read(R).toString(),foreground:yi(ja,this._themeService).read(R).toString(),border:yi(Bn,this._themeService).read(R).toString()})),this._pos=d(this,(R)=>this._editor.observePosition(d((K)=>this._data.read(K)?.jumpToPosition||null),R.store)).flatten(),this._layout=d(this,(R)=>{let K=this._data.read(R);if(!K)return;let q=K.jumpToPosition,ee=this._editor.observeLineHeightForLine(Se(q.lineNumber)).read(R),te=this._editor.scrollLeft.read(R),ne=this._pos.read(R);if(!ne)return;let re=this._editor.layoutInfo.read(R);return{widgetRect:Lt.fromLeftTopWidthHeight(ne.x+re.contentLeft+2-te,ne.y,100,ee)}}),this._blink=KM([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=se.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map((R)=>R?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Di((R)=>this._layout.read(R)?.widgetRect)}},d((R)=>{if(this._data.read(R)===void 0)return[];return se.div({style:{display:"flex",alignItems:"center",gap:"4px",padding:"0 4px",height:"100%",backgroundColor:this._styles.map((K)=>K.background),["--vscodeIconForeground"]:this._styles.map((K)=>K.foreground),border:this._styles.map((K)=>`1px solid ${K.border}`),borderRadius:"3px",boxSizing:"border-box",fontSize:"11px",color:this._styles.map((K)=>K.foreground)}},[this._style==="cursor"?se.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map((K)=>K?"0":"1")}}):[d(()=>se.elem("div",{},UM(this._keybinding))),se.elem("div",{style:{lineHeight:this._layout.map((K)=>K?.widgetRect.height),marginTop:"-2px"}},["to jump"])]])})),this._style=g.style,this._keybinding=this._getKeybinding(fr);let T=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:T.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:Se(0)})),this._register(this._editor.setDecorations(d((R)=>{let K=this._data.read(R);if(!K)return[];return[{range:t.fromPositions(K.jumpToPosition,K.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]})))}_getKeybinding(u,g=At.ofCaller()){if(!u)return Se(void 0);return Le(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(u),g)}};p_=zM([LC(3,De),LC(4,ce),LC(5,V)],p_);function KM(f,u=At.ofCaller()){let g=0;return Le(void 0,(v)=>{g=0;let S=new be(()=>{g=(g+1)%f.length,v(null),S.schedule(f[g].durationMs)},0);return S.schedule(0),S},()=>f[g].value,u)}function UM(f){return d((u)=>se.div({style:{},ref:(g)=>{let v=u.store.add(new Xs(g,di,{disableTitle:!0,...gg,keybindingLabelShadow:void 0,keybindingLabelForeground:N(ja),keybindingLabelBackground:"transparent",keybindingLabelBorder:N(ja),keybindingLabelBottomBorder:void 0}));u.store.add(H((S)=>{v.set(f.read(S))}))}}))}var qM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},jM=function(f,u){return function(g,v){u(g,v,f)}};function $M(f,u,g){let v=Math.max(1,Math.min(g,f)),S=Math.max(1,v-u),y=Math.min(g+1,v+u+1);return new Y(S,y)}var m_=class f extends n{constructor(u,g,v,S,y){super();this._previewTextModel=u,this._properties=g,this._parentEditor=v,this._tabAction=S,this._instantiationService=y,this._previewRef=se.ref(),this.element=se.div({class:"preview",style:{},ref:this._previewRef}),this._state=d(this,(D)=>{let T=this._properties.read(D);if(!T)return;let R,K;if(T.nextCursorPosition!==null)R="original",K=T.nextCursorPosition.lineNumber;else if(T.diff[0].innerChanges?.every((re)=>re.modifiedRange.isEmpty()))R="original",K=T.diff[0].original.startLineNumber;else R="modified",K=T.diff[0].modified.startLineNumber;let q=R==="modified"?cs.snapshot(this._previewTextModel):T.target,ee=this._parentEditorObs.getOption(71).read(D).edits.longDistanceHintContextLineCount,te=R==="modified"?this._previewTextModel:T.target.dangerouslyGetUnderlyingModel(),ne=$M(K,ee,te.getLineCount());return{mode:R,targetLineNumber:K,visibleLineRange:ne,textModel:q,diff:T.diff}}),this.updatePreviewEditorEffect=d(this,(D)=>{this._previewEditorObs.model.read(D);let T=this._state.read(D)?.visibleLineRange;if(!T)return;let R=[];if(T.startLineNumber>1)R.push(new t(1,1,T.startLineNumber-1,1));if(T.endLineNumberExclusive<this._previewTextModel.getLineCount()+1)R.push(new t(T.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(R,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=d(this,(D)=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,D)),this.contentHeight=d(this,(D)=>{let T=this._state.read(D);if(!T)return Se(null);return this._previewEditorObs.observeLineHeightsForLineRange(T.visibleLineRange).map((R)=>R.reduce((K,q)=>K+q,0))}).flatten(),this._editorDecorations=d(this,(D)=>{let T=this._state.read(D);if(!T)return;let R={diff:T.diff},K=[],q=[],ee=oe.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),te=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),ne=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(let re of R.diff)if(re.modified.isEmpty||re.original.isEmpty){if(!re.original.isEmpty)K.push({range:re.original.toInclusiveRange(),options:ee});if(!re.modified.isEmpty)q.push({range:re.modified.toInclusiveRange(),options:te})}else for(let ae of re.innerChanges||[]){if(re.original.contains(ae.originalRange.startLineNumber)&&!ae.originalRange.isEmpty())K.push({range:ae.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Al("inlineCompletions-char-delete",ae.originalRange.isEmpty()&&"empty"),zIndex:1}});if(re.modified.contains(ae.modifiedRange.startLineNumber))q.push({range:ae.modifiedRange,options:ne})}return{originalDecorations:K,modifiedDecorations:q}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=Ze(this._parentEditor),this._register(H((D)=>{let T=this._state.read(D)?.textModel||null;if(T)this.previewEditor.setModel(T.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=Ze(this.previewEditor),this._register(this._previewEditorObs.setDecorations(d((D)=>{let T=this._state.read(D),R=this._editorDecorations.read(D);return(T?.mode==="original"?R?.originalDecorations:R?.modifiedDecorations)??[]}))),this._register(H((D)=>{if(!this._properties.read(D))return;let T=this._parentEditorObs.cursorPosition.read(D);if(T)this.previewEditor.setPosition(this._previewTextModel.validatePosition(T),"longDistanceHintPreview")})),this._register(H((D)=>{let T=this._state.read(D);if(!T)return;let R=(T.visibleLineRange.endLineNumberExclusive-1).toString().length;this.previewEditor.updateOptions({lineNumbersMinChars:R+1})})),this._register(this._instantiationService.createInstance($l,this._previewEditorObs,d((D)=>{let T=this._state.read(D);if(!T)return;let R=this._properties.read(D);if(!R)return;return new Rg(R.inlineSuggestInfo,Y.ofLength(T.targetLineNumber,1),R.model,void 0)}),this._tabAction,Se(0),Se(!1),M(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(ro,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:{[Rt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(u,g){let v=this._state.read(g);if(!v)return;let S=v.diff,y=this._properties.read(g)?.nextCursorPosition,D=v.visibleLineRange,T=this._previewEditorObs.layoutInfo.read(g),R=on(this._previewEditorObs,D,g),K;if(y)K=t.fromPositions(y);else if(S[0].innerChanges)K=v.mode==="modified"?S[0].innerChanges[0].modifiedRange:S[0].innerChanges[0].originalRange;else return;let q=GM(u.getModel(),K,5),ee=this._previewEditorObs.getLeftOfPosition(q.getStartPosition(),g),te=this._previewEditorObs.getLeftOfPosition(q.getEndPosition(),g),ne=Si(ee,0,R),re=Si(te,ne,R),ae=u.getModel().getLineFirstNonWhitespaceColumn(q.startLineNumber),ge=this._previewEditorObs.getLeftOfPosition(new r(q.startLineNumber,ae),g),ke=new B(ne,re);return{indentationEnd:ge,preferredRangeToReveal:ke,maxEditorWidth:R+T.contentLeft,contentWidth:R,nonContentWidth:T.contentLeft}}layout(u,g){this.previewEditor.layout(u),this._previewEditorObs.editor.setScrollLeft(g)}};m_=qM([jM(4,L)],m_);function GM(f,u,g){let v=u.getStartPosition(),S=u.getEndPosition(),y=f.getLineContent(v.lineNumber);function D(q){let ee=y.charAt(q-1);return/[a-zA-Z0-9_]/.test(ee)}function T(q){let ee=y.charAt(q-1);return ee===" "||ee==="\t"}let R=v.column;while(R>1&&D(R)&&!T(R-1)&&v.column-R<g)R--;let K=S.column-1;while(K<=y.length&&D(K)&&!T(K+1)&&K-S.column<g)K++;return new t(v.lineNumber,R,S.lineNumber,K+1)}function WD(f,u){let{start:g,endExclusive:v}=f,S=Number.MAX_VALUE,y=0;for(let D of u){let T=y+D.width,R=Math.max(g,y),K=Math.min(v,T);if(R<K)S=Math.min(S,D.height);y=T}if(v>y)return 0;return S===Number.MAX_VALUE?0:S}class f_{constructor(f,u,g){this._lineRangeInfo=f,this.availableSpaceSizes=f.sizes.map((v,S)=>{let y=f.lineRange.startLineNumber+S,D=g(y);return new Va(Math.max(0,u-v.width-D),v.height)}),this.availableSpaceHeightPrefixSums=XM(this.availableSpaceSizes,(v)=>v.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map((v)=>v.transpose())}getWidgetVerticalOutline(f,u,g){let v=f-this._lineRangeInfo.lineRange.startLineNumber,S=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[v],y=B.ofStartAndLength(S,u),{previewEditorMargin:D,widgetPadding:T,widgetBorder:R,lowerBarHeight:K}=g;return y.withMargin(D+T+R).withMargin(0,K)}tryFindWidgetOutline(f,u,g,v){if(this._lineRangeInfo.lineRange.length<3)return;return ZM(this._lineRangeInfo.lineRange.addMargin(-1,-1),f,(S)=>{let y=this.getWidgetVerticalOutline(S,u,v),D=WD(y.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(D<v.minWidgetWidth)return;return{horizontalWidgetRange:B.ofStartAndLength(g-D,D),verticalWidgetRange:y}})}}function BD(f,u,g,v,S){let y=[],D=f.startLineNumber,T=g,R=[];for(let K=0;K<u.length;K++){let q=f.startLineNumber+K,ee=T+R.reduce((ne,re)=>ne+re.height,0),te=v.editor.getTopForLineNumber(q);if(K>0&&te!==ee)y.push({lineRange:Y.ofLength(D,q-D),top:T,sizes:R}),D=q,T=te,R=[];R.push(u[K])}return y.push({lineRange:Y.ofLength(D,f.endLineNumberExclusive-D),top:T,sizes:R}),d({owner:"splitIntoContinuousLineRanges"},(K)=>v.observeTopForLineNumber(f.endLineNumberExclusive-1).read(K)).read(S),y}function ZM(f,u,g){for(let v=0;;v++){let S=u+v;if(S<=f.endLineNumberExclusive){let D=g(S);if(D!==void 0)return D}let y=u-v;if(y>=f.startLineNumber){let D=g(y);if(D!==void 0)return D}if(y<f.startLineNumber&&S>f.endLineNumberExclusive)return}}function XM(f,u){let g=[0],v=0;for(let S of f)v+=u(S),g.push(v);return g}var YM=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ng=function(f,u){return function(g,v){u(g,v,f)}},JM=6,kC={EMPTY_SPACE:425,OVERLAY:375},QM=250,eO={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:QM},__=class f extends n{constructor(u,g,v,S,y,D,T,R,K){super();this._editor=u,this._viewState=g,this._previewTextModel=v,this._tabAction=S,this._instantiationService=y,this._themeService=D,this._keybindingService=T,this._modelService=R,this._languageService=K,this.onDidClick=C.None,this._viewWithElement=void 0,this._hintTextPosition=d(this,(q)=>{let ee=this._viewState.read(q);return ee?new r(ee.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=d(this,(q)=>{let ee=this._viewState.read(q),te=this._hintTextPosition.read(q);if(!ee||!te)return[];let ne=this._editorObs.model.read(q);if(!ne)return[];let re=Y.ofLength(te.lineNumber,1).addMargin(5,5).intersect(Y.ofLength(1,ne.getLineCount()));if(!re)return[];let ae=LD(this._editorObs,re,q),ge=this._editorObs.observeTopForLineNumber(re.startLineNumber).read(q);return BD(re,ae,ge,this._editorObs,q)}),this._isVisibleDelayed=vS(d(this,(q)=>this._viewState.read(q)?.hint.isVisible),(q,ee)=>q===!0&&ee===!1?200:0),this._previewEditorLayoutInfo=d(this,(q)=>{let ee=this._viewState.read(q);if(!ee||!this._isVisibleDelayed.read(q))return;let te=this._lineSizesAroundHintPosition.read(q);if(te.length===0)return;let ne=this._editorObs.scrollTop.read(q),re=this._editorObs.scrollLeft.read(q),ae=this._editorObs.layoutInfo.read(q),ge=this._previewEditor.contentHeight.read(q),ke=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(q);if(!ge||!ke)return;let Ae=ae.contentWidth-ae.verticalScrollbarWidth,He=ae.contentLeft+Ae;if(!this._editorObs.cursorLineNumber.read(q))return;let Ue=eO,We=ge+2,et,tt,ot=(nn)=>nn===ee.hint.lineNumber?40:20;for(let nn of te){let Tr=new f_(nn,Ae,ot);if(tt=Tr,et=Tr.tryFindWidgetOutline(ee.hint.lineNumber,We,He,Ue),et)break}let je="empty-space";if(!et){je="overlay";let nn=Math.min(ae.width-ae.contentLeft,kC.OVERLAY),Tr=tt??new f_(te[0],Ae,ot);et={horizontalWidgetRange:B.ofStartAndLength(He-nn,nn),verticalWidgetRange:Tr.getWidgetVerticalOutline(ee.hint.lineNumber+2,We,Ue).delta(10)}}if(!et)return;let nt=Lt.fromRanges(et.horizontalWidgetRange,et.verticalWidgetRange).translateX(-re).translateY(-ne),{previewEditorMargin:_t,widgetPadding:st,widgetBorder:xt,lowerBarHeight:at}=Ue,gi=je==="overlay"?kC.OVERLAY:kC.EMPTY_SPACE,vt=ke.maxEditorWidth+_t+st,Ot=Math.min(gi,Math.max(vt,Ue.minWidgetWidth)),bi=HD(nt.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:Ot,priority:1}]},spaceAfter:{min:10}});if(!bi)return null;let Zt=tO([bi.spaceBefore,bi.content,bi.spaceAfter],nt.left);nt.withHorizontalRange(Zt[0]);let $t=nt.withHorizontalRange(Zt[1]);nt.withHorizontalRange(Zt[2]);let vi=$t.withMargin(-st-xt-_t).withMargin(0,0,-at,0),mi=vi.width-ke.nonContentWidth,ai=mi*0.8,Gi=ke.preferredRangeToReveal.intersect(B.ofStartAndLength(ke.preferredRangeToReveal.start,ai))??ke.preferredRangeToReveal,$s=iO(ke.indentationEnd,mi,Gi);return{codeEditorSize:vi.getSize(),codeScrollLeft:re,contentLeft:ae.contentLeft,widgetRect:$t,previewEditorMargin:_t,widgetPadding:st,widgetBorder:xt,lowerBarHeight:at,desiredPreviewEditorScrollLeft:$s.newScrollPosition}}),this._view=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:d(this,(q)=>this._previewEditorLayoutInfo.read(q)?"block":"none")}},[d(this,(q)=>[this._widgetContent])]),this._widgetContent=d(this,(q)=>se.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:N(vo),padding:this._previewEditorLayoutInfo.map((ee)=>ee?.widgetPadding),boxSizing:"border-box",borderRadius:JM,border:d((ee)=>`${this._previewEditorLayoutInfo.read(ee)?.widgetBorder}px solid ${this._styles.read(ee).border}`),display:"flex",flexDirection:"column",opacity:d((ee)=>this._viewState.read(ee)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Di((ee)=>this._previewEditorLayoutInfo.read(ee)?.widgetRect)},onmousedown:(ee)=>{ee.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[se.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map((ee)=>ee?.previewEditorMargin),background:this._styles.map((ee)=>ee.background),pointerEvents:"none"}},[d(this,(ee)=>this._previewEditor.element)]),se.div({class:"bar",style:{color:N(Gv),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map((ee)=>ee?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[d(this,(ee)=>{let te=[],ne=this._viewState.read(ee);if(!ne)return te;let re=this._editorObs.model.read(ee),ae=ne.target.uri,ge=!re||!ne.target.targets(re);if(ge){let Ue=hi(ae),Te=Md(this._modelService,this._languageService,ae,Go.FILE);te.push(se.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[se.elem("span",{class:Te,style:{flexShrink:"0",marginRight:"4px"}}),Ue]))}else{let Ue=this._originalOutlineSource.read(ee),Te=this._originalTargetLineNumber.read(ee),We=Ue?.getAt(Te,ee).slice(0,1)??[],et=[];if(We.length>0)for(let tt=0;tt<We.length;tt++){let ot=We[tt],je=Ud.toIcon(ot.kind);et.push(se.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[to(je)," ",ot.name,...tt===We.length-1?[]:[to(b.chevronRight)]]))}te.push(se.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},et))}let ke=this._originalTargetLineNumber.read(ee),Ae=ge?b.arrowRight:ne.hint.lineNumber<ke?b.arrowDown:b.arrowUp,He=this._keybindingService.lookupKeybinding(zc),Ke=ge?"Go to file":"Go to suggestion";if(He&&He.getLabel()==="Tab")Ke=ge?"Tab to open":"Tab to jump";return te.push(se.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[Ke," ",to(Ae)])),te})])])),this._originalTargetLineNumber=d(this,(q)=>{let ee=this._viewState.read(q);if(!ee)return-1;if(ee.edit.action?.kind==="jumpTo")return ee.edit.action.position.lineNumber;return ee.diff[0]?.original.startLineNumber??-1}),this._originalOutlineSource=jo(this,(q)=>{let ee=this._editorObs.model.read(q),te=lu._breadcrumbsSourceFactory.read(q);return!ee||!te?void 0:te(ee,this._instantiationService)}),this._styles=d((q)=>{let ee=this._tabAction.read(q),te=Ua(vh,this._themeService).read(q),ne=Le(this._themeService.onDidColorThemeChange,()=>{let ae=this._themeService.getColorTheme();return ae.type==="hcDark"||ae.type==="hcLight"}).read(q),re;if(ne)re=te;else{let ae;switch(ee){case ci.Inactive:ae=Nl;break;case ci.Jump:ae=hs;break;case ci.Accept:ae=Ml;break}re=yi(ae,this._themeService).read(q)}return{border:re.toString(),background:Ro(this._viewState.map((ae)=>ae?.editorType??li.TextEditor).read(q))}}),this._editorObs=Ze(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(m_,this._previewTextModel,d((q)=>{let ee=this._viewState.read(q);if(!ee)return;return{diff:ee.diff,model:ee.model,inlineSuggestInfo:ee.inlineSuggestInfo,nextCursorPosition:ee.nextCursorPosition,target:ee.target}}),this._editor,this._tabAction)),this._viewWithElement=this._view.keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._viewWithElement.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:Se(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(H((q)=>{let ee=this._previewEditorLayoutInfo.read(q);if(!ee)return;this._previewEditor.layout(ee.codeEditorSize.toDimension(),ee.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};__=YM([Ng(4,L),Ng(5,De),Ng(6,ce),Ng(7,gt),Ng(8,pt)],__);function tO(f,u=0){let g=[],v=u;for(let S of f)g.push(new B(v,v+S)),v+=S;return g}function iO(f,u,g){let v=new B(f,f+u);if(v.containsRange(g))return{newScrollPosition:f};if(g.length>u)return{newScrollPosition:g.start};if(g.endExclusive>v.endExclusive)return{newScrollPosition:g.endExclusive-u};if(g.start<v.start)return{newScrollPosition:g.start};return{newScrollPosition:f}}var oO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},EC=function(f,u){return function(g,v){u(g,v,f)}},bh=0,Mg=0,Er=1,nO=1,rO=3,js=Li,DC=20,VD=12,Og=class f extends n{static fitsInsideViewport(u,g,v,S){let y=Ze(u),D=y.layoutInfoWidth.read(S),T=y.layoutInfoContentLeft.read(S),R=u.getLayoutInfo().verticalScrollbarWidth,K=y.layoutInfoMinimap.read(S).minimapLeft!==0?y.layoutInfoMinimap.read(S).minimapWidth:0,q=on(y,v.displayRange,void 0),ee=v.lineEdit.newLines.reduce((re,ae)=>Math.max(re,Dg(ae,u,g)),0),te=DC,ne=VD+2*Er;return q+ee+te+ne<D-T-R-K}constructor(u,g,v,S,y,D,T,R){super();this._editor=u,this._edit=g,this._previewTextModel=v,this._uiState=S,this._tabAction=y,this._instantiationService=D,this._themeService=T,this._userInteractionService=R,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._editorObs=Ze(this._editor),this._display=d(this,(ee)=>this._uiState.read(ee)?"block":"none"),this.previewRef=se.ref();let K=this._uiState.map((ee)=>ee?.editorType===li.DiffEditor?rO:nO);this._editorContainer=se.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:(ee)=>{ee.preventDefault()},onclick:(ee)=>{this._onDidClick.fire(qo.create(ee))}},[se.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(ro,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:{[Rt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=Ze(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=d(this,(ee)=>{if(this._editorContainer.readEffect(ee),this._previewEditorObs.model.read(ee),this._display.read(ee),this._nonOverflowView)this._nonOverflowView.element.style.display=this._display.read(ee);let te=this._uiState.read(ee),ne=this._edit.read(ee);if(!te||!ne)return;let re=ne.originalLineRange,ae=[];if(re.startLineNumber>1)ae.push(new t(1,1,re.startLineNumber-1,1));if(re.startLineNumber+te.newTextLineCount<this._previewTextModel.getLineCount()+1)ae.push(new t(re.startLineNumber+te.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(ae,void 0,!0);let ge=[...this._activeViewZones];this._activeViewZones=[];let ke=re.endLineNumberExclusive-re.startLineNumber-te.newTextLineCount;this.previewEditor.changeViewZones((Ae)=>{if(ge.forEach((He)=>Ae.removeZone(He)),ke>0)this._activeViewZones.push(Ae.addZone({afterLineNumber:re.startLineNumber+te.newTextLineCount-1,heightInLines:ke,showInHiddenAreas:!0,domNode:m("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=d(this,(ee)=>{let te=this._edit.read(ee);if(!te)return 0;return this._updatePreviewEditor.read(ee),on(this._previewEditorObs,te.modifiedLineRange,ee)}),this._cursorPosIfTouchesEdit=d(this,(ee)=>{let te=this._editorObs.cursorPosition.read(ee),ne=this._edit.read(ee);if(!ne||!te)return;return ne.modifiedLineRange.contains(te.lineNumber)?te:void 0}),this._originalStartPosition=d(this,(ee)=>{let te=this._edit.read(ee);return te?new r(te.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=d(this,(ee)=>{let te=this._edit.read(ee);return te?new r(te.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map((ee)=>ee?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map((ee)=>ee?.y),this._originalDisplayRange=this._edit.map((ee)=>ee?.displayRange),this._editorMaxContentWidthInRange=d(this,(ee)=>{let te=this._originalDisplayRange.read(ee);if(!te)return Se(0);return this._editorObs.versionId.read(ee),Ho(this,(ne,re)=>{let ae=on(this._editorObs,te,ne);return Math.max(ae,re??0)})}).map((ee,te)=>ee.read(te));let q=TD(this._editor,this._store);this._previewEditorLayoutInfo=d(this,(ee)=>{let te=this._edit.read(ee);if(!te)return null;if(!this._uiState.read(ee))return null;let re=te.originalLineRange,ae=this._editorObs.scrollLeft.read(ee),ge=this._editorMaxContentWidthInRange.read(ee),ke=this._editorObs.layoutInfo.read(ee),Ae=this._previewEditorWidth.read(ee),He=ke.contentWidth-ke.verticalScrollbarWidth,Ke=q.read(ee),Ue=ke.contentLeft+ke.contentWidth+Ke.left,Te=F(this._editor.getContainerDomNode()).innerWidth-Ue,We=F(this._editor.getContainerDomNode()).innerWidth-Ke.right,et=Math.min(ke.contentWidth*0.3,Ae,100),tt=0,ot=tt+Te,je=this._cursorPosIfTouchesEdit.read(ee),nt=Math.max(He+ae-tt-Math.max(0,et-ot),Math.min(je?kD(this._editorObs,je,ee)+50:0,He+ae)),_t=Math.min(ge+DC,nt),st=ge+DC+Ae+70,xt=nt-_t,at,gi;if(_t>ae)at=0,gi=ke.contentLeft+_t-ae;else at=ae-_t,gi=ke.contentLeft;let vt=this._originalVerticalStartPosition.read(ee)??this._editor.getTopForLineNumber(re.startLineNumber)-this._editorObs.scrollTop.read(ee),Ot=this._originalVerticalEndPosition.read(ee)??this._editor.getBottomForLineNumber(re.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(ee),bi=ke.contentLeft-ae,Zt=Lt.fromLeftTopRightBottom(bi,vt,gi,Ot),$t=Zt.height===0;if(!$t)Zt=Zt.withMargin(Mg,bh);let mi=this._previewEditorObs.observeLineHeightsForLineRange(te.modifiedLineRange).read(ee).reduce((R_,s2)=>R_+s2,0),ai=Ot-vt,Gi=Math.max(ai,mi),$s=xt===0,nn=0,Tr=Math.min(Ae+VD,We+ke.width-ke.contentLeft-nn),Ja=Lt.fromLeftTopWidthHeight(Zt.right+nn,vt,Tr,Gi);if(!$t)Ja=Ja.withMargin(Mg,bh).translateX(bh+Er);else Ja=Ja.withMargin(Mg,bh).translateY(Mg);return{codeRect:Zt,editRect:Ja,codeScrollLeft:ae,contentLeft:ke.contentLeft,isInsertion:$t,maxContentWidth:st,shouldShowShadow:$s,desiredPreviewEditorScrollLeft:at,previewEditorWidth:Tr}}),this._stickyScrollController=Gr.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Le(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Se(0),this._shouldOverflow=d(this,(ee)=>!1),this._originalBackgroundColor=Le(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(qa)??p.transparent),this._editorBackgroundColor=this._uiState.map((ee)=>Ro(ee?.editorType??li.TextEditor)),this._backgroundSvg=se.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[se.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:d(this,(ee)=>{let te=this._previewEditorLayoutInfo.read(ee);if(!te)return;if(this._originalBackgroundColor.read(ee).isTransparent())return;return new Fl().moveTo(te.codeRect.getRightTop()).lineTo(te.codeRect.getRightTop().deltaX(1000)).lineTo(te.codeRect.getRightBottom().deltaX(1000)).lineTo(te.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=se.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map((ee)=>ee?.isInsertion?"none":"block")}},d(this,(ee)=>{let te=xo(this._previewEditorLayoutInfo).read(ee);if(!te)return;let ne=this._editorBackgroundColor.read(ee),re=K.read(ee),ae=$a(this._tabAction).map((tt)=>`${Er}px solid ${N(tt)}`),ge=`${Er+re}px solid ${ne}`,ke=te.read(ee).codeScrollLeft!==0,Ae=te.map((tt)=>tt.codeRect.bottom<tt.editRect.bottom),He=js*2+Er*2,Ke=te.map((tt)=>Lt.fromLeftTopRightBottom(tt.contentLeft-js-Er,tt.codeRect.top,tt.contentLeft,tt.codeRect.bottom+He)).read(ee),Ue=new B(Ke.left,Number.MAX_SAFE_INTEGER),Te=te.map((tt)=>tt.codeRect.intersectHorizontal(Ue)),We=Te.map((tt)=>tt.withMargin(re,0,re,re).intersectHorizontal(Ue)),et=Te.map((tt)=>Lt.fromLeftTopWidthHeight(tt.right-He+Er,tt.bottom-Er,He,He).intersectHorizontal(Ue));return[se.div({class:"originalSeparatorSideBySide",style:{...We.read(ee).toStyles(),boxSizing:"border-box",borderRadius:`${js}px 0 0 ${js}px`,borderTop:ge,borderBottom:ge,borderLeft:ke?"none":ge}}),se.div({class:"originalOverlaySideBySide",style:{...Te.read(ee).toStyles(),boxSizing:"border-box",borderRadius:`${js}px 0 0 ${js}px`,borderTop:ae,borderBottom:ae,borderLeft:ke?"none":ae,backgroundColor:N(qa)}}),se.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:Ae.map((tt)=>tt?"block":"none"),...et.read(ee).toStyles()}},[se.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:yi(qa,this._themeService).map((tt)=>tt.toString())}}),se.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:ae,borderRight:ae,borderRadius:"0 100% 0 0",backgroundColor:ne}})]),se.div({class:"originalOverlaySideBySideHider",style:{...Ke.toStyles(),backgroundColor:ne}})]})).keepUpdated(this._store),this._modifiedOverlay=se.div({style:{pointerEvents:"none"}},d(this,(ee)=>{let te=xo(this._previewEditorLayoutInfo).read(ee);if(!te)return;let ne=te.map((Te)=>Te.codeRect.bottom<Te.editRect.bottom),re=this._editorBackgroundColor.read(ee),ae=K.read(ee),ge=ne.map((Te)=>`0 ${js}px ${js}px ${Te?js:0}px`),ke=yi(Bs(this._tabAction),this._themeService).map((Te)=>`1px solid ${Te.toString()}`),Ae=`${Er+ae}px solid ${re}`,He=te.map((Te)=>Te.editRect.withMargin(0,Er)),Ke=He.map((Te)=>Te.withMargin(ae,ae,ae,0)),Ue=d(this,(Te)=>{let We=He.read(Te),et=te.read(Te);if(!et.isInsertion||et.contentLeft>=We.left)return Lt.fromLeftTopWidthHeight(We.left,We.top,0,0);return new Lt(et.contentLeft,We.top,We.left,We.top+Er*2)});return[se.div({class:"modifiedInsertionSideBySide",style:{...Ue.read(ee).toStyles(),backgroundColor:Bs(this._tabAction).map((Te)=>N(Te))}}),se.div({class:"modifiedSeparatorSideBySide",style:{...Ke.read(ee).toStyles(),borderRadius:ge,borderTop:Ae,borderBottom:Ae,borderRight:Ae,boxSizing:"border-box"}}),se.div({class:"modifiedOverlaySideBySide",style:{...He.read(ee).toStyles(),borderRadius:ge,border:ke,boxSizing:"border-box",backgroundColor:N(r_)}})]})).keepUpdated(this._store),this._nonOverflowView=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,d(this,(ee)=>this._shouldOverflow.read(ee)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Se(null),allowEditorOverflow:!1,minContentWidthInPx:d(this,(ee)=>{let te=this._previewEditorLayoutInfo.read(ee)?.maxContentWidth;if(te===void 0)return 0;return te})})),this.previewEditor.setModel(this._previewTextModel),this._register(H((ee)=>{let te=this._previewEditorLayoutInfo.read(ee);if(!te)return;let ne=te.editRect.withMargin(-Mg,-bh);this.previewEditor.layout({height:ne.height,width:te.previewEditorWidth+15}),this._editorContainer.element.style.top=`${ne.top}px`,this._editorContainer.element.style.left=`${ne.left}px`,this._editorContainer.element.style.width=`${te.previewEditorWidth+bh}px`})),this._register(H((ee)=>{let te=this._previewEditorLayoutInfo.read(ee);if(!te)return;this._previewEditorObs.editor.setScrollLeft(te.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};Og=oO([EC(5,L),EC(6,De),EC(7,ar)],Og);var sO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Pg=function(f,u){return function(g,v){u(g,v,f)}};class RC{constructor(f,u,g){this.edit=f,this.editorType=u,this.alternativeAction=g}equals(f){return this.edit.equals(f.edit)&&this.alternativeAction===f.alternativeAction}}var wo=1,zD="word-replacement-view-overlay",KD="word-replacement-view-widget",UD="word-replacement-view-replacement",TC="word-replacement-view-rename",Ad=class f extends n{static{this.MAX_LENGTH=100}constructor(u,g,v,S,y,D,T,R){super();this._editor=u,this._viewData=g,this._tabAction=v,this._languageService=S,this._themeService=y,this._keybindingService=D,this._hoverService=T,this._userInteractionService=R,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(Se(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(Se(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=M(this,null),this._secondaryElement=M(this,null),this.isHovered=d(this,(te)=>{let ne=this._primaryElement.read(te);if(!ne)return!1;return this._userInteractionService.createHoverTracker(ne.element,te.store).read(te)}),this._renderTextEffect=d(this,(te)=>{let ne=this._editor.model.read(void 0);if(!ne)return;let re=ne.getLineContent(this._viewData.edit.range.startLineNumber),ae=qn.replace(new B(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),ge=ae.replace(re),ke=ne.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[ge])?.[0],Ae;if(ke)Ae=_a.fromLineTokens(ke).slice(ae.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec);else Ae=bt.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);let He=qc(new ec([Ae]),Qs.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${He.minWidthInPx}px`});let K=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),q=bS(this._viewData.alternativeAction?.count??new Promise((te)=>te(void 0))).map((te)=>te.value),ee=d(this,(te)=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),te).shiftKey);this._layout=d(this,(te)=>{this._renderTextEffect.read(te);let ne=this._start.read(te),re=this._end.read(te);if(!ne||!re||ne.x>re.x||ne.y>re.y)return;let ae=K.read(te);if(ae<=0)return;let ge=this._editor.scrollLeft.read(te),ke=this._editor.getOption(59).read(te).typicalHalfwidthCharacterWidth,Ae=3*ke,Ke=new Qn(Ae,4),Ue=void 0;if(this._viewData.alternativeAction){let ot=this._viewData.alternativeAction.label,je=q.read(te),nt=ee.read(te),_t=je!==void 0?je===1?e(1283,"{0} 1 occurrence",ot):e(1284,"{0} {1} occurrences",ot,je):ot,st=e(1285,"{0} show occurrences","[shift]");Ue={label:je!==void 0?nt?_t:ot:ot,tooltip:_t?`${_t}
|
|
48
|
-
${st}`:void 0,icon:void 0,count:je,keybinding:this._keybindingService.lookupKeybinding(vd),active:ee}}let Te=Lt.fromPoints(ne,re).withHeight(ae).translateX(-ge),We=Lt.fromPointSize(Te.getLeftBottom().add(Ke),new Qn(this._viewData.edit.text.length*ke,Te.height)),et=We.withWidth(We.width+(Ue?Ue.label.length*ke+8+4+12:0)),tt=et.withLeft(Te.left);return{alternativeAction:Ue,originalLine:Te,codeLine:We,modifiedLine:et,lowerBackground:tt,lineHeight:ae}}),this.minEditorScrollHeight=d(this,(te)=>{let ne=xo(this._layout).read(te);if(!ne)return 0;return ne.read(te).modifiedLine.bottom+wo+this._editor.editor.getScrollTop()}),this._root=se.div({class:"word-replacement"},[d(this,(te)=>{let ne=xo(this._layout).read(te);if(!ne)return[];let re=$a(this._tabAction).map((je)=>N(je)).read(te),ae=Bs(this._tabAction).map((je)=>N(je)).read(te);this._line.style.lineHeight=`${ne.read(te).modifiedLine.height+2*wo}px`;let ge=Se(!1),ke=ne.map((je)=>je.alternativeAction),Ae=d((je)=>(ke.read(je)?.active.read(je)??!1)||ge.read(je)),Ke=Le(this._themeService.onDidColorThemeChange,()=>{let je=this._themeService.getColorTheme();return je.type==="hcDark"||je.type==="hcLight"}).read(te)?Ua(Re,this._themeService).read(te):null,Ue={borderColor:Ke?Ke.toString():ae,backgroundColor:N(SD),color:"",opacity:"1"},Te={borderColor:Ke?Ke.toString():N(Bn),backgroundColor:N(hs),color:N(ja),opacity:"1"},We={borderColor:Ke?Ke.toString():Ua(rg,this._themeService).map((je)=>je.transparent(0.2).toString()).read(te),backgroundColor:Ro(this._viewData.editorType),color:"",opacity:"0.7"},et=Ro(this._viewData.editorType),tt=d(this,(je)=>Ae.read(je)?Ue:Ue),ot=d(this,(je)=>Ae.read(je)?Te:We);return[se.div({id:zD,style:{position:"absolute",...Di((je)=>Pl(this._editor).read(je)),overflow:"hidden",pointerEvents:"none"}},[se.div({style:{position:"absolute",...Di((je)=>ne.read(je).lowerBackground.withMargin(wo,2*wo,wo,0)),background:et,cursor:"pointer",pointerEvents:"auto"},onmousedown:(je)=>this._mouseDown(je)}),se.div({id:KD,style:{position:"absolute",...Di((je)=>ne.read(je).modifiedLine.withMargin(wo,2*wo)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${Li}px`,background:et,display:"flex",justifyContent:"left",outline:`2px solid ${et}`},onmousedown:(je)=>this._mouseDown(je)},[se.div({id:UD,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Di((je)=>ne.read(je).codeLine.withMargin(wo,2*wo)).width,borderRadius:`${Li}px`,border:tt.map((je)=>`${wo}px solid ${je.borderColor}`),boxSizing:"border-box",padding:`${wo}px`,opacity:tt.map((je)=>je.opacity),background:tt.map((je)=>je.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:(je)=>{this._primaryElement.set(je,void 0)}},[this._line]),d(this,(je)=>{let nt=ke.read(je);if(!nt)return;let _t=document.createElement("div");return je.store.add(new Xs(_t,di,{...P0,disableTitle:!0})).set(nt.keybinding),se.div({id:TC,style:{position:"relative",borderRadius:`${Li}px`,borderTop:`${wo}px solid`,borderRight:`${wo}px solid`,borderBottom:`${wo}px solid`,borderLeft:`${wo}px solid`,borderColor:ot.map((xt)=>xt.borderColor),opacity:ot.map((xt)=>xt.opacity),color:ot.map((xt)=>xt.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:ot.map((xt)=>xt.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:(xt)=>{this._secondaryElement.set(xt,void 0)},ref:(xt)=>{if(nt.tooltip)je.store.add(this._hoverService.setupDelayedHoverAtMouse(xt,{content:nt.tooltip,appearance:{compact:!0}}))}},[_t,m("div.inline-edit-alternative-action-label-separator"),nt.icon?to(nt.icon):void 0,nt.label])})]),se.div({style:{position:"absolute",...Di((je)=>ne.read(je).originalLine.withMargin(wo)),boxSizing:"border-box",borderRadius:`${Li}px`,border:`${wo}px solid ${re}`,background:N(vD),pointerEvents:"none"}},[]),se.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:ne.map((je)=>je.modifiedLine.left-16),top:ne.map((je)=>je.modifiedLine.top+Math.round((je.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:(je)=>this._mouseDown(je)},[se.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:N(rg)}),se.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:N(rg)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:Se(0),position:Se({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(u){let g=aO(u.target,new Set([KD,UD,TC,zD]));if(!g)return;u.preventDefault(),this._onDidClick.fire(qo.create(u,g===TC))}};Ad=sO([Pg(3,pt),Pg(4,De),Pg(5,ce),Pg(6,yn),Pg(7,ar)],Ad);function aO(f,u){let g=f;while(g){if(u.has(g.id))return g.id;g=g.parentElement}return null}class NC extends n{constructor(f,u,g){super();this._originalEditor=f,this._state=u,this._modifiedTextModel=g,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this.isHovered=Ze(this._originalEditor).isTargetHovered((S)=>S.target.type===6&&S.target.detail.injectedText?.options.attachedData instanceof b_&&S.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=lO(this._modifiedTextModel),this._decorations=d(this,(S)=>{let y=this._state.read(S);if(!y)return;let D=y.modifiedText,T=y.mode==="insertionInline",R=y.diff.length===1&&y.diff[0].innerChanges?.length===1,K=!0,q=[],ee=[],te=oe.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),ne=oe.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),re=oe.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),ae=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),ge=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),ke=oe.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),Ae=oe.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),He=y.mode!=="sideBySide"&&y.mode!=="deletion"&&y.mode!=="insertionInline"&&y.mode!=="lineReplacement",Ke=y.mode==="lineReplacement";for(let Ue of y.diff){if(He){if(!Ue.original.isEmpty)q.push({range:Ue.original.toInclusiveRange(),options:ne});if(!Ue.modified.isEmpty)ee.push({range:Ue.modified.toInclusiveRange(),options:te})}if(Ue.modified.isEmpty||Ue.original.isEmpty){if(!Ue.original.isEmpty)q.push({range:Ue.original.toInclusiveRange(),options:re});if(!Ue.modified.isEmpty)ee.push({range:Ue.modified.toInclusiveRange(),options:ae})}else{let Te=T&&dO(Ue);for(let We of Ue.innerChanges||[]){if(Ue.original.contains(We.originalRange.startLineNumber)&&!(Ke&&We.originalRange.isEmpty())){let et=this._originalEditor.getModel()?.getValueInRange(We.originalRange,1);q.push({range:We.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Al("inlineCompletions-char-delete",We.originalRange.isSingleLine()&&y.mode==="insertionInline"&&"single-line-inline",We.originalRange.isEmpty()&&"empty",(We.originalRange.isEmpty()&&R||y.mode==="deletion"&&et===`
|
|
49
|
-
`)&&K&&!Te&&"diff-range-empty"),inlineClassName:Te?Al("strike-through","inlineCompletions"):null,zIndex:1}})}if(Ue.modified.contains(We.modifiedRange.startLineNumber))ee.push({range:We.modifiedRange,options:We.modifiedRange.isEmpty()&&K&&!Te&&R?ke:ge});if(Te){let et=D.getValueOfRange(We.modifiedRange),tt=et.length>3?[{text:et.slice(0,1),extraClasses:["start"],offsetRange:new B(We.modifiedRange.startColumn-1,We.modifiedRange.startColumn)},{text:et.slice(1,-1),extraClasses:[],offsetRange:new B(We.modifiedRange.startColumn,We.modifiedRange.endColumn-2)},{text:et.slice(-1),extraClasses:["end"],offsetRange:new B(We.modifiedRange.endColumn-2,We.modifiedRange.endColumn-1)}]:[{text:et,extraClasses:["start","end"],offsetRange:new B(We.modifiedRange.startColumn-1,We.modifiedRange.endColumn)}];this._tokenizationFinished.read(S);let ot=this._modifiedTextModel.tokenization.getLineTokens(We.modifiedRange.startLineNumber);for(let{text:je,extraClasses:nt,offsetRange:_t}of tt)q.push({range:t.fromPositions(We.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:ot.getTokensInRange(_t),content:je,inlineClassName:Al("inlineCompletions-char-insert",We.modifiedRange.isSingleLine()&&y.mode==="insertionInline"&&"single-line-inline",...nt),cursorStops:Or.None,attachedData:new b_(this)},zIndex:2,showIfCollapsed:!0}})}}}}if(y.editorType===li.DiffEditor){for(let Ue of y.diff)if(!Ue.original.isEmpty)q.push({range:Ue.original.toExclusiveRange(),options:Ae})}return{originalDecorations:q,modifiedDecorations:ee}}),this._register(Ze(this._originalEditor).setDecorations(this._decorations.map((S)=>S?.originalDecorations??[])));let v=this._state.map((S)=>S?.modifiedCodeEditor);this._register(jn((S,y)=>{let D=v.read(S);if(D)y.add(Ze(D).setDecorations(this._decorations.map((T)=>T?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp((S)=>{if(S.target.type!==6)return;let y=S.target.detail.injectedText?.options.attachedData;if(y instanceof b_&&y.owner===this)this._onDidClick.fire(new qo(S.event))}))}}class b_{constructor(f){this.owner=f}}function dO(f){if(!f.innerChanges)return!1;return f.innerChanges.every((u)=>Cy(u.modifiedRange)&&Cy(u.originalRange))}var cO=0;function lO(f){return Le(f.onDidChangeTokens,()=>cO++)}var hO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},uO=function(f,u){return function(g,v){u(g,v,f)}},v_=class f extends n{constructor(u,g,v,S,y,D){super();this._editor=u,this._model=g,this._simpleModel=v,this._inlineSuggestInfo=S,this._showCollapsed=y,this._instantiationService=D,this._tabAction=d((q)=>this._model.read(q)?.tabAction.read(q)??ci.Inactive),this.displayRange=d(this,(q)=>{let ee=this._uiState.read(q);if(!ee)return;if(ee.target.uri.toString()!==this._editorObs.model.read(q)?.uri.toString())return;if(ee.state?.kind==="custom"){let te=ee.state.displayLocation?.range;if(!te)throw new P("custom view should have a range");return new Y(te.startLineNumber,te.endLineNumber)}if(ee.state?.kind==="insertionMultiLine")return this._insertion.originalLines.read(q);return ee.edit.displayRange}),this._currentInlineEditCache=void 0,this._uiState=d(this,(q)=>{let ee=this._model.read(q),te=this._editorObs.model.read(q);if(!ee||!te||!this._constructorDone.read(q))return;let ne=ee.inlineEdit,re,ae,ge=void 0;if(ne.edit)ae=Ti.fromEdit(ne.edit),ge=new xa(ne.edit.apply(ne.originalText)),re=gh(ae,ne.originalText,ge);else ae=[],re=[],ge=ne.originalText;let ke=this._determineRenderState(ee,q,re,ge);if(!ke){J(Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}let Ae=this._getLongDistanceHintState(ee,q);if(Ae&&Ae.isVisible)ke.viewData.setLongDistanceViewData(Ae.lineNumber,ne.lineEdit.lineRange.startLineNumber);if(ke.viewData.isForAnotherDocument=!ne.originalText.targets(te),ke.kind===ht.SideBySide){let Ue=DD(ge.getValue(),ne.modifiedLineRange,te.getOptions().tabSize);ge=new xa(Ue.applyToString(ge.getValue())),ae=ED(ae,Ue),re=gh(ae,ne.originalText,ge)}this._previewTextModel.setLanguage(te.getLanguageId());let He=this._previewTextModel.getValue();if(He!==ge.getValue()){this._previewTextModel.setEOL(te.getEndOfLineSequence());let Te=eo.replace(new B(0,He.length),ge.getValue()).removeCommonSuffixPrefix(He),We=Ed(this._previewTextModel).getTextEdit(Te);this._previewTextModel.edit(We)}if(this._showCollapsed.read(q))ke={kind:ht.Collapsed,viewData:ke.viewData};ee.handleInlineEditShownNextFrame(ke.kind,ke.viewData);let Ke=ne.action?.kind==="jumpTo"?ne.action.position:null;return{state:ke,diff:re,edit:ne,newText:ge.getValue(),newTextLineCount:ne.modifiedLineRange.length,editorType:ee.editorType,longDistanceHint:Ae,nextCursorPosition:Ke,target:ne.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=d(this,(q)=>this._sideBySide.isHovered.read(q)||this._wordReplacementViews.read(q).some((ee)=>ee.isHovered.read(q))||this._deletion.isHovered.read(q)||this._inlineDiffView.isHovered.read(q)||this._lineReplacementView.isHovered.read(q)||this._insertion.isHovered.read(q)||this._customView.isHovered.read(q)||this._longDistanceHint.map((ee,te)=>ee?.isHovered.read(te)??!1).read(q)),this.gutterIndicatorOffset=d(this,(q)=>{if(this._uiState.read(q)?.state?.kind==="insertionMultiLine")return this._insertion.startLineOffset.read(q);return 0}),this._editorObs=Ze(this._editor),this._constructorDone=M(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(Hc,"",this._editor.getModel().getLanguageId(),{...Hc.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(Og,this._editor,this._model.map((q)=>q?.inlineEdit),this._previewTextModel,this._uiState.map((q)=>q&&q.state?.kind===ht.SideBySide?{newTextLineCount:q.newTextLineCount,editorType:q.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(xC,this._editor,this._model.map((q)=>q?.inlineEdit),this._uiState.map((q)=>q&&q.state?.kind===ht.Deletion?{originalRange:q.state.originalRange,deletions:q.state.deletions,editorType:q.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(u_,this._editor,this._uiState.map((q)=>q&&q.state?.kind===ht.InsertionMultiLine?{lineNumber:q.state.lineNumber,startColumn:q.state.column,text:q.state.text,editorType:q.editorType}:void 0),this._tabAction)),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(d_,this._editor,this._model.map((q,ee)=>this._uiState.read(ee)?.state?.kind===ht.Collapsed?q?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(h_,this._editor,this._model.map((q,ee)=>this._uiState.read(ee)?.state?.kind===ht.Custom?q?.displayLocation:void 0),this._tabAction,this._uiState.map((q)=>q?.editorType??li.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,(q)=>q.edits.showLongDistanceHint),this._longDistanceHint=d(this,(q)=>{if(!this._showLongDistanceHint.read(q))return;return q.store.add(this._instantiationService.createInstance(__,this._editor,this._uiState.map((ee,te)=>ee?.longDistanceHint?{hint:ee.longDistanceHint,newTextLineCount:ee.newTextLineCount,edit:ee.edit,diff:ee.diff,editorType:ee.editorType,model:this._simpleModel.read(te),inlineSuggestInfo:this._inlineSuggestInfo.read(te),nextCursorPosition:ee.nextCursorPosition,target:ee.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=d(this,(q)=>{let ee=this._uiState.read(q);if(!ee||!ee.state)return;if(ee.state.kind==="wordReplacements"||ee.state.kind==="insertionMultiLine"||ee.state.kind==="collapsed"||ee.state.kind==="custom"||ee.state.kind==="jumpTo")return;return{modifiedText:new xa(ee.newText),diff:ee.diff,mode:ee.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:ee.editorType}}),this._inlineDiffView=this._register(new NC(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(p_,this._editorObs,{style:"label"},d((q)=>{let ee=this._uiState.read(q);if(ee?.state?.kind===ht.JumpTo)return{jumpToPosition:ee.state.position};return})));let T=mn({equalsFn:Fv.arrayC(Fv.thisC())},(q)=>{let ee=this._uiState.read(q);return ee?.state?.kind===ht.WordReplacements?ee.state.replacements.map((te)=>new RC(te,ee.editorType,ee.state?.alternativeAction)):[]});this._wordReplacementViews=Wl(this,T,(q,ee)=>ee.add(this._instantiationService.createInstance(Ad,this._editorObs,q,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(g_,this._editorObs,this._uiState.map((q)=>q?.state?.kind===ht.LineReplacement?{originalRange:q.state.originalRange,modifiedRange:q.state.modifiedRange,modifiedLines:q.state.modifiedLines,replacements:q.state.replacements}:void 0),this._uiState.map((q)=>q?.editorType??li.TextEditor),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map((q)=>q.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map((q)=>q.edits.renderSideBySide),this._register(H((q)=>{let ee=this._model.read(q);if(!ee)return;q.store.add(C.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(q).map((te)=>te.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)((te)=>{if(this._viewHasBeenShownLongerThan(350))te.event.preventDefault(),ee.accept(te.alternativeAction)}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);let R=d(this,(q)=>Math.max(...this._wordReplacementViews.read(q).map((ee)=>ee.minEditorScrollHeight.read(q)),this._lineReplacementView.minEditorScrollHeight.read(q),this._customView.minEditorScrollHeight.read(q))).recomputeInitiallyAndOnChange(this._store),K;this._register(H((q)=>{let ee=R.read(q),te=this._editorObs.model.read(q);if(!te)return;this._editor.changeViewZones((ne)=>{let re=this._editor.getScrollHeight(),ae=ee-re+1;if(ae!==0&&K!==void 0)ne.removeZone(K),K=void 0;if(ae<=0)return;K=ne.addZone({afterLineNumber:te.getLineCount(),heightInPx:ae,domNode:m("div.minScrollHeightViewZone")})})})),this._constructorDone.set(!0,void 0)}_getLongDistanceHintState(u,g){if(u.inlineEdit.inlineCompletion.identity.jumpedTo.read(g))return;if(u.inlineEdit.action===void 0)return;let v=this._editorObs.model.read(g);if(!v||!u.inlineEdit.originalText.targets(v))return{isVisible:!0,lineNumber:u.inlineEdit.cursorPosition.lineNumber};if(this._currentInlineEditCache?.inlineSuggestionIdentity!==u.inlineEdit.inlineCompletion.identity)this._currentInlineEditCache={inlineSuggestionIdentity:u.inlineEdit.inlineCompletion.identity,firstCursorLineNumber:u.inlineEdit.cursorPosition.lineNumber};return{lineNumber:this._currentInlineEditCache.firstCursorLineNumber,isVisible:!u.inViewPort.read(g)}}_getCacheId(u){return u.inlineEdit.inlineCompletion.identity.id}_determineView(u,g,v,S){let y=u.inlineEdit,D=this._previousView?.id===this._getCacheId(u)&&this._previousView?.uri.toString()===this._editorObs.model.get().uri.toString(),T=this._previousView?.editorWidth!==this._editorObs.layoutInfoWidth.read(g)&&(this._previousView?.view===ht.SideBySide||this._previousView?.view===ht.LineReplacement);if(D&&!T)return this._previousView.view;let R=u.inlineEdit.inlineCompletion.action;if(R?.kind==="edit"&&R.alternativeAction)return ht.WordReplacements;let K=u.inlineEdit.inlineCompletion.originalTextRef.uri,q=this._editorObs.model.read(g)?.uri;if(q&&K.toString()!==q.toString())return ht.Custom;if(u.displayLocation&&!u.inlineEdit.inlineCompletion.identity.jumpedTo.read(g))return ht.Custom;let ee=y.originalLineRange.length,te=y.modifiedLineRange.length,ne=v.flatMap((ae)=>ae.innerChanges??[]),re=ne.length===1;if(u.editorType!==li.DiffEditor){if(re&&this._useCodeShifting.read(g)!=="never"&&ZD(v)){if(pO(v,y.cursorPosition))return ht.InsertionInline;return ht.LineReplacement}if(jD(ne,y,S))return ht.Deletion;if(qD(v)&&this._useCodeShifting.read(g)==="always")return ht.InsertionMultiLine;if(ne.every((ge)=>Nt.ofRange(ge.originalRange).columnCount<Ad.MAX_LENGTH&&Nt.ofRange(ge.modifiedRange).columnCount<Ad.MAX_LENGTH)&&re&&ee===1&&te===1){let ge=ne.map((Ae)=>S.getValueOfRange(Ae.modifiedRange)),ke=ne.map((Ae)=>u.inlineEdit.originalText.getValueOfRange(Ae.originalRange));if(!ge.some((Ae)=>Ae.includes("\t"))&&!ke.some((Ae)=>Ae.includes("\t"))){if(!ne.some((Ae)=>Ae.originalRange.isEmpty())||!$D(ne.map((Ae)=>new ct(Ae.originalRange,"")),y.originalText).some((Ae)=>Ae.range.isEmpty()&&Nt.ofRange(Ae.range).columnCount<Ad.MAX_LENGTH))return ht.WordReplacements}}}if(ee>0&&te>0){if(ee===1&&te===1&&u.editorType!==li.DiffEditor)return ht.LineReplacement;if(this._renderSideBySide.read(g)!=="never"&&Og.fitsInsideViewport(this._editor,this._previewTextModel,y,g))return ht.SideBySide;return ht.LineReplacement}if(u.editorType===li.DiffEditor){if(jD(ne,y,S))return ht.Deletion;if(qD(v)&&this._useCodeShifting.read(g)==="always")return ht.InsertionMultiLine}return ht.SideBySide}_determineRenderState(u,g,v,S){if(u.inlineEdit.action?.kind==="jumpTo")return{kind:ht.JumpTo,position:u.inlineEdit.action.position,viewData:GD()};let y=u.inlineEdit,D=this._determineView(u,g,v,S);if(this._willRenderAboveCursor(g,y,D))switch(D){case ht.LineReplacement:case ht.WordReplacements:D=ht.SideBySide;break}this._previousView={id:this._getCacheId(u),view:D,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now(),uri:this._editorObs.model.get().uri};let T=v.flatMap((te)=>te.innerChanges??[]),R=this._editor.getModel(),K=T.map((te)=>({originalRange:te.originalRange,modifiedRange:te.modifiedRange,original:y.originalText.getValueOfRange(te.originalRange),modified:S.getValueOfRange(te.modifiedRange)})),q=gO(y,K,R);switch(D){case ht.InsertionInline:return{kind:ht.InsertionInline,viewData:q};case ht.SideBySide:return{kind:ht.SideBySide,viewData:q};case ht.Collapsed:return{kind:ht.Collapsed,viewData:q};case ht.Custom:return{kind:ht.Custom,displayLocation:u.displayLocation,viewData:q}}if(D===ht.Deletion)return{kind:ht.Deletion,originalRange:y.originalLineRange,deletions:T.map((te)=>te.originalRange),viewData:q};if(D===ht.InsertionMultiLine){let te=T[0];return{kind:ht.InsertionMultiLine,lineNumber:te.originalRange.startLineNumber,column:te.originalRange.startColumn,text:S.getValueOfRange(te.modifiedRange),viewData:q}}let ee=K.map((te)=>new ct(te.originalRange,te.modified));if(ee.length===0)return;if(D===ht.WordReplacements){let te=mO(ee,y.originalText);if(te.some((ne)=>ne.range.isEmpty()))te=$D(ee,y.originalText);return{kind:ht.WordReplacements,replacements:te,alternativeAction:u.inlineEdit.action?.alternativeAction,viewData:q}}if(D===ht.LineReplacement)return{kind:ht.LineReplacement,originalRange:y.originalLineRange,modifiedRange:y.modifiedLineRange,modifiedLines:y.modifiedLineRange.mapToLineArray((te)=>S.getLineAt(te)),replacements:T.map((te)=>({originalRange:te.originalRange,modifiedRange:te.modifiedRange})),viewData:q};return}_willRenderAboveCursor(u,g,v){if(this._useCodeShifting.read(u)==="always")return!1;for(let y of g.multiCursorPositions){if(v===ht.WordReplacements&&y.lineNumber===g.originalLineRange.startLineNumber+1)return!0;if(v===ht.LineReplacement&&y.lineNumber>=g.originalLineRange.endLineNumberExclusive&&y.lineNumber<g.modifiedLineRange.endLineNumberExclusive+g.modifiedLineRange.length)return!0}return!1}_viewHasBeenShownLongerThan(u){let g=this._previousView?.timestamp;if(!g)throw new P("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-g>=u}};v_=hO([uO(5,L)],v_);var GD=()=>new yl(-1,-1,-1,-1,-1,-1,-1,!0);function gO(f,u,g){if(!f.edit)return GD();let v=f.cursorPosition,S=u.length===0?!1:u[0].modified.startsWith(g.getEOL());return new yl(f.edit.replacements.length===0?0:f.edit.replacements[0].range.getStartPosition().column-v.column,f.lineEdit.lineRange.startLineNumber-v.lineNumber+(S&&f.lineEdit.lineRange.startLineNumber>=v.lineNumber?1:0),f.lineEdit.lineRange.length,f.lineEdit.newLines.length,u.reduce((D,T)=>D+T.original.length,0),u.reduce((D,T)=>D+T.modified.length,0),u.length,u.every((D)=>D.original===u[0].original&&D.modified===u[0].modified))}function ZD(f){return f.every((g)=>g.innerChanges.every((v)=>u(v)));function u(g){if(!g.originalRange.isEmpty())return!1;if(g.modifiedRange.startLineNumber!==g.modifiedRange.endLineNumber)return!1;return!0}}function pO(f,u){if(!u)return!1;if(!ZD(f))return!1;let g=u;return f.every((S)=>S.innerChanges.every((y)=>v(y)));function v(S){let y=S.originalRange.getStartPosition();if(g.isBeforeOrEqual(y))return!0;if(y.lineNumber<g.lineNumber)return!0;return!1}}function qD(f){let u=f.flatMap((v)=>v.innerChanges??[]);if(u.length!==1)return!1;let g=u[0];if(!g.originalRange.isEmpty())return!1;if(g.modifiedRange.startLineNumber===g.modifiedRange.endLineNumber)return!1;return!0}function jD(f,u,g){return f.map((S)=>({original:u.originalText.getValueOfRange(S.originalRange),modified:g.getValueOfRange(S.modifiedRange)})).every(({original:S,modified:y})=>y.trim()===""&&S.length>0&&(S.length>y.length||S.trim()!==""))}function mO(f,u){return XD(f,u,(g)=>/^[a-zA-Z]$/.test(g))}function $D(f,u){return XD(f,u,(g)=>!/^\s$/.test(g))}function XD(f,u,g){let v=[];f.sort((y,D)=>t.compareRangesUsingStarts(y.range,D.range));for(let y of f){let D=y.range.startColumn-1,T=y.range.endColumn-2,R="",K="",q=u.getLineAt(y.range.startLineNumber),ee=u.getLineAt(y.range.endLineNumber);if(S(q[D]))while(S(q[D-1]))R=q[D-1]+R,D--;if(S(ee[T])||T<D)while(S(ee[T+1]))K+=ee[T+1],T++;let te=new ct(new t(y.range.startLineNumber,D+1,y.range.endLineNumber,T+2),R+y.text+K);if(v.length>0&&t.areIntersectingOrTouching(v[v.length-1].range,te.range))te=ct.joinReplacements([v.pop(),te],u);v.push(te)}function S(y){if(y===void 0)return!1;return g(y)}return v}var fO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},_O=function(f,u){return function(g,v){u(g,v,f)}},w_=class f extends n{constructor(u,g,v,S){super();this._editor=u,this._model=g,this._showCollapsed=v,this._inlineEdit=d(this,(y)=>{let D=this._model.read(y);if(!D)return;if(!this._editor.getModel())return;let R=D.inlineEditState.read(y);if(!R)return;let K=R.inlineSuggestion.action,q;if(K?.kind==="edit"){let ee=K.stringEdit,te=R.inlineSuggestion.originalTextRef.getTransformer(),ne=ee.replacements.map((re)=>{let ae=t.fromPositions(te.getPosition(re.replaceRange.start),te.getPosition(re.replaceRange.endExclusive));return new ct(ae,re.newText)});q=new mo(ne)}else q=void 0;return new vC(R.inlineSuggestion.originalTextRef,K,q,D.primaryPosition.read(void 0),D.allPositions.read(void 0),R.inlineSuggestion.source.inlineSuggestions.commands??[],R.inlineSuggestion)}),this._inlineEditModel=d(this,(y)=>{let D=this._model.read(y);if(!D)return;let T=this._inlineEdit.read(y);if(!T)return;let R=d(this,(K)=>{if(this._editorObs.isFocused.read(K)){if(D.tabShouldJumpToInlineEdit.read(K))return ci.Jump;if(D.tabShouldAcceptInlineEdit.read(K))return ci.Accept}return ci.Inactive});return new wC(D,T,R)}),this._editorObs=Ze(this._editor),this.view=this._register(S.createInstance(v_,this._editor,this._inlineEditModel,this._model.map((y)=>y?th.fromInlineCompletionModel(y):void 0),this._inlineEdit.map((y)=>y?eh.fromInlineSuggestion(y.inlineCompletion):void 0),this._showCollapsed))}};w_=fO([_O(3,L)],w_);var bO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},vO=function(f,u){return function(g,v){u(g,v,f)}},S_=class f extends n{static{this.hot=Cg(this)}constructor(u,g,v,S){super();this._editor=u,this._model=g,this._focusIsInMenu=v,this._instantiationService=S,this._ghostTexts=d(this,(y)=>this._model.read(y)?.ghostTexts.read(y)??[]),this._inlineEdit=d(this,(y)=>this._model.read(y)?.inlineEditState.read(y)?.inlineSuggestion),this._everHadInlineEdit=Ho(this,(y,D)=>D||!!this._inlineEdit.read(y)||!!this._model.read(y)?.inlineCompletionState.read(y)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=M(this,void 0),this._showInlineEditCollapsed=d(this,(y)=>(this._model.read(y)?.showCollapsed.read(y)??!1)&&!this._indicatorIsHoverVisible.read(y)?.read(y)),this._inlineEditWidget=jo((y)=>{if(!this._everHadInlineEdit.read(y))return;return this._instantiationService.createInstance(w_,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=d((y)=>{let D=this._model.read(y);if(!D)return;let T=D.state.read(y);if(T?.kind==="ghostText"&&T.inlineSuggestion?.showInlineEditMenu)return{displayRange:Y.ofLength(T.primaryGhostText.lineNumber,1),tabAction:d(this,(R)=>this._editorObs.isFocused.read(R)?ci.Accept:ci.Inactive),gutterIndicatorOffset:Se(wO(T.inlineSuggestion,this._editor)),inlineSuggestion:T.inlineSuggestion,model:D};else if(T?.kind==="inlineEdit"){let R=this._inlineEditWidget.read(y)?.view;if(!R)return;let K=R.displayRange.read(y);if(!K)return;return{displayRange:K,tabAction:d((q)=>{if(this._editorObs.isFocused.read(q)){if(D.tabShouldJumpToInlineEdit.read(q))return ci.Jump;if(D.tabShouldAcceptInlineEdit.read(q))return ci.Accept}return ci.Inactive}),gutterIndicatorOffset:R.gutterIndicatorOffset,inlineSuggestion:T.inlineSuggestion,model:D}}else return}),this._stablizedGhostTexts=CE(this._ghostTexts,this._store),this._editorObs=Ze(this._editor),this._ghostTextWidgets=Wl(this,this._stablizedGhostTexts,(y,D)=>D.add(this._createGhostText(y))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map((y)=>y.fontFamily),this._register($I(d((y)=>`
|
|
50
|
-
.monaco-editor .ghost-text-decoration,
|
|
51
|
-
.monaco-editor .ghost-text-decoration-preview,
|
|
52
|
-
.monaco-editor .ghost-text {
|
|
53
|
-
font-family: ${this._fontFamily.read(y)};
|
|
54
|
-
}`))),this._register(new Sm(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance($l,this._editorObs,d((y)=>{let D=this._gutterIndicatorState.read(y);if(!D)return;return new Rg(eh.fromInlineSuggestion(D.inlineSuggestion),D.displayRange,th.fromInlineCompletionModel(D.model),D.inlineSuggestion.action?.kind==="edit"?D.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((y,D)=>y?.tabAction?.read(D)??ci.Inactive),this._gutterIndicatorState.map((y,D)=>y?.gutterIndicatorOffset?.read(D)??0),this._inlineEditWidget.map((y,D)=>y?.view.inlineEditsIsHovered.read(D)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),d((y)=>{let D=this._inlineEditWidget.read(y);if(!D)return;return y.store.add(this._instantiationService.createInstance(a_,D._inlineEditModel,Se(this._indicator),D.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(u){return this._instantiationService.createInstance(Ba,this._editor,d((g)=>{let v=this._model.read(g),S=v?.inlineCompletionState.read(g)?.inlineSuggestion;if(!v||!S)return{ghostText:u.read(g),handleInlineCompletionShown:()=>{},warning:void 0};return{ghostText:u.read(g),handleInlineCompletionShown:(y)=>v.handleInlineSuggestionShown(S,ht.GhostText,y,Date.now()),warning:Qf.from(v?.warning.read(g))}}),{useSyntaxHighlighting:this._editorObs.getOption(71).map((g)=>g.syntaxHighlightingEnabled),highlightShortSuggestions:!0})}shouldShowHoverAtViewZone(u){return this._ghostTextWidgets.get()[0]?.ownsViewZone(u)??!1}};S_=bO([vO(3,L)],S_);function wO(f,u){let g=f.getSingleTextEdit(),v=u.getModel();if(!v)return 0;let S=v.getEOL();if(g.range.isEmpty()&&g.text.startsWith(S)){let y=u.getLineHeightForPosition(g.range.getStartPosition());return SO(g.text,S)*y}return 0}function SO(f,u){if(!u.length)return 0;let g=0,v=0;while(f.startsWith(u,v))g++,v+=u.length;return g}var CO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Ya=function(f,u){return function(g,v){u(g,v,f)}},us;eE((f)=>$i.get(f));var $i=class f extends n{static{us=this}static{this._instances=new Set}static{this.hot=Cg(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(u){let g=yp(u);if(!g)return null;return us.get(g)}static get(u){return nE(u.getContribution(us.ID))}constructor(u,g,v,S,y,D,T,R,K){super();this.editor=u,this._instantiationService=g,this._contextKeyService=v,this._configurationService=S,this._commandService=y,this._debounceService=D,this._languageFeaturesService=T,this._accessibilitySignalService=R,this._keybindingService=K,this._focusIsInMenu=M(this,!1),this._focusIsInEditorOrMenu=d(this,(re)=>{let ae=this._editorObs.isFocused.read(re),ge=this._focusIsInMenu.read(re);return ae||ge}),this._cursorIsInIndentation=d(this,(re)=>{let ae=this._editorObs.cursorPosition.read(re);if(ae===null)return!1;let ge=this._editorObs.model.read(re);if(!ge)return!1;this._editorObs.versionId.read(re);let ke=ge.getLineIndentColumn(ae.lineNumber);return ae.column<=ke}),this.model=jo(this,(re)=>{if(this._editorObs.isReadonly.read(re))return;let ae=this._editorObs.model.read(re);if(!ae)return;return this._instantiationService.createInstance(Vf,ae,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabledInConfig,()=>this._isEditorDictationInProgress(),this.editor)}),this._playAccessibilitySignal=Mi(this),this._view=d((re)=>re.store.add(this._instantiationService.createInstance(S_.hot.read(re),this.editor,this.model,this._focusIsInMenu))),this._editorObs=Ze(this.editor),this._positions=d(this,(re)=>this._editorObs.selections.read(re)?.map((ae)=>ae.getEndPosition())??[new r(1,1)]),this._suggestWidgetAdapter=this._register(new tC(this._editorObs,(re)=>this.model.get()?.handleSuggestAccepted(re),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=Le(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._register(this._contextKeyService.onDidChangeContext((re)=>{if(re.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((re)=>!0),this._view.recomputeInitiallyAndOnChange(this._store),us._instances.add(this),this._register(E(()=>us._instances.delete(this))),this._register(H((re)=>{let ae=this.model.read(re);if(!ae)return;let ge=ae.state.read(re);if(!ge)return;if(!this._focusIsInEditorOrMenu.read(void 0))return;let ke=ge.kind==="inlineEdit"?ge.nextEditUri:void 0;for(let Ae of us._instances)if(Ae===this)continue;else if(ke&&Ar(ke,Ae.editor.getModel()?.uri))Ae.model.read(void 0)?.trigger();else Ae.reject()})),this._register(H((re)=>{let ae=this.model.read(re),ge=this.editor.getModel()?.uri;if(!ae||!ge)return;re.store.add(ae.onDidAccept(()=>{for(let ke of us._instances){if(ke===this)continue;let Ae=ke.model.read(void 0)?.state.read(void 0);if(Ae?.kind==="inlineEdit"&&Ar(Ae.nextEditUri,ge))ke.model.read(void 0)?.stop("automatic")}}))})),this._register(sr(this._editorObs.onDidType,(re,ae)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()})),this._register(sr(this._editorObs.onDidPaste,(re,ae)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()}));let q=new Set([Eh.Tab.id,Eh.DeleteLeft.id,Eh.DeleteRight.id,fr,"acceptSelectedSuggestion",Ah.ID,Ph.ID,qt.NextMatchFindAction,Ls.ID,cd.ID,du.ID,cu.ID,...Hp.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand((re)=>{if(q.has(re.commandId)&&u.hasTextFocus()&&this._enabledInConfig.get()&&!this._isEditorDictationInProgress()){let ae=!1;if(re.commandId===fr)ae=!0;this._editorObs.forceUpdate((ge)=>{this.model.get()?.trigger(ge,{noDelay:ae})})}})),this._register(sr(this._editorObs.selections,(re,ae,ge)=>{if(ge.some((ke)=>ke.reason===3||ke.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;let ke=this.model.get();if(!ke)return;if(ke.state.get()?.kind==="ghostText")this.model.get()?.stop()}})),this._register(H((re)=>{let ae=this._focusIsInEditorOrMenu.read(re),ge=this.model.read(void 0);if(ae){let ke=ge?.state.read(void 0);if(!ke||ke.kind!=="inlineEdit"||!ke.nextEditUri)Fe((Ae)=>{for(let He of us._instances)if(He!==this)He.model.read(void 0)?.stop("automatic",Ae)});return}if(this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||u.getOption(71).keepOnBlur||Ms.dropDownVisible)return;if(!ge)return;if(ge.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&ge.inlineEditAvailable.read(void 0))return;Fe((ke)=>{ge.stop("automatic",ke)})})),this._register(H((re)=>{let ae=this.model.read(re)?.inlineCompletionState.read(re);if(ae?.suggestItem){if(ae.primaryGhostText.lineCount>=2)this._suggestWidgetAdapter.forceRenderingAbove()}else this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(E(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));let ee=Ho(this,(re,ae)=>{let ke=this.model.read(re)?.state.read(re);if(this._suggestWidgetAdapter.selectedItem.get())return ae;return ke?.inlineSuggestion?.semanticId});this._register(ES(d((re)=>(this._playAccessibilitySignal.read(re),ee.read(re),{})),async(re,ae,ge,ke)=>{let Ae=this.model.get(),He=Ae?.state.get();if(!He||!Ae)return;if(await ir(50,Av(ke)),await j0(this._suggestWidgetAdapter.selectedItem,Oi,()=>!1,Av(ke)),Ae=this.model.get(),He=Ae?.state.get(),!He||!Ae)return;let Ke=He.kind==="ghostText"?Ae.textModel.getLineContent(He.primaryGhostText.lineNumber):"";if(this._accessibilitySignalService.playSignal(He.kind==="ghostText"?qe.inlineSuggestion:qe.nextEditSuggestion),this.editor.getOption(12))if(He.kind==="ghostText")this._provideScreenReaderUpdate(He.primaryGhostText.renderForScreenReader(Ke));else{let Ue=He.inlineSuggestion.targetRange.startLineNumber,Te=Ae.tabShouldAcceptInlineEdit.get(),We=Ae.tabShouldJumpToInlineEdit.get(),et;if(Te){let tt=this._keybindingService.lookupKeybinding(fr)?.getAriaLabel();et=tt?e(1262,"Next edit suggestion available on line {0}, press {1} to accept",Ue,tt):e(1263,"Next edit suggestion available on line {0}, accept it to apply",Ue)}else if(We){let tt=this._keybindingService.lookupKeybinding(zc)?.getAriaLabel();et=tt?e(1264,"Next edit suggestion available on line {0}, press {1} to jump",Ue,tt):e(1265,"Next edit suggestion available on line {0}",Ue)}else et=e(1266,"Next edit suggestion available on line {0}",Ue);this._provideScreenReaderUpdate(et)}})),this._register(this._configurationService.onDidChangeConfiguration((re)=>{if(re.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 te=new oS(this._contextKeyService);this._register(te.bind(Rt.cursorInIndentation,this._cursorIsInIndentation)),this._register(te.bind(Rt.hasSelection,(re)=>!this._editorObs.cursorSelection.read(re)?.isEmpty())),this._register(te.bind(Rt.cursorAtInlineEdit,this.model.map((re,ae)=>re?.inlineEditState?.read(ae)?.cursorAtInlineEdit.read(ae)))),this._register(te.bind(Rt.tabShouldAcceptInlineEdit,this.model.map((re,ae)=>!!re?.tabShouldAcceptInlineEdit.read(ae)))),this._register(te.bind(Rt.tabShouldJumpToInlineEdit,this.model.map((re,ae)=>!!re?.tabShouldJumpToInlineEdit.read(ae)))),this._register(te.bind(Rt.inlineEditVisible,(re)=>this.model.read(re)?.inlineEditState.read(re)!==void 0)),this._register(te.bind(Rt.inlineSuggestionHasIndentation,(re)=>this.model.read(re)?.getIndentationInfo(re)?.startsWithIndentation)),this._register(te.bind(Rt.inlineSuggestionHasIndentationLessThanTabSize,(re)=>this.model.read(re)?.getIndentationInfo(re)?.startsWithIndentationLessThanTabSize)),this._register(te.bind(Rt.suppressSuggestions,(re)=>{let ge=this.model.read(re)?.inlineCompletionState.read(re);return ge?.primaryGhostText&&ge?.inlineSuggestion?ge.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(te.bind(Rt.inlineSuggestionAlternativeActionVisible,(re)=>{let ke=this.model.read(re)?.inlineEditState.read(re)?.inlineSuggestion.action;return ke&&ke.kind==="edit"&&ke.alternativeAction!==void 0})),this._register(te.bind(Rt.inlineSuggestionVisible,(re)=>{let ge=this.model.read(re)?.inlineCompletionState.read(re);return!!ge?.inlineSuggestion&&ge?.primaryGhostText!==void 0&&!ge?.primaryGhostText.isEmpty()}));let ne=d(this,(re)=>{let ke=this.model.read(re)?.inlineCompletionState.read(re)?.primaryGhostText;if(!ke||ke.isEmpty())return;return new r(ke.lineNumber,ke.parts[0].column)});this._register(te.bind(Rt.cursorBeforeGhostText,(re)=>{let ae=ne.read(re);if(!ae)return!1;let ge=this._editorObs.cursorPosition.read(re);if(!ge)return!1;return ae.equals(ge)})),this._register(this._instantiationService.createInstance(Lf,this.editor))}_isEditorDictationInProgress(){return this._contextKeyService.getContext(this.editor.getDomNode())?.getValue("editorDictation.inProgress")===!0}playAccessibilitySignal(u){this._playAccessibilitySignal.trigger(u)}_provideScreenReaderUpdate(u){let g=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),v=this._keybindingService.lookupKeybinding("editor.action.accessibleView"),S;if(!g&&v&&this.editor.getOption(170))S=e(1267,"Inspect this in the accessible view ({0})",v.getAriaLabel());En(S?u+", "+S:u)}shouldShowHoverAt(u){let g=this.model.get()?.primaryGhostText.get();if(!g)return!1;return g.parts.some((v)=>u.containsPosition(new r(g.lineNumber,v.column)))}shouldShowHoverAtViewZone(u){return this._view.get().shouldShowHoverAtViewZone(u)}reject(){Fe((u)=>{let g=this.model.get();if(g){if(g.stop("explicitCancel",u),this._focusIsInEditorOrMenu.get()){for(let v of us._instances)if(v!==this&&!v._focusIsInEditorOrMenu.get())v.model.get()?.stop("automatic",u)}}})}jump(){let u=this.model.get();if(u)u.jump()}};$i=us=CO([Ya(1,L),Ya(2,V),Ya(3,X),Ya(4,Ne),Ya(5,Hi),Ya(6,j),Ya(7,Fr),Ya(8,ce)],$i);class C_ extends z{static{this.ID=bm}constructor(){super({id:C_.ID,label:h(1239,"Show Next Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(f,u){$i.get(u)?.model.get()?.next()}}class y_ extends z{static{this.ID=_m}constructor(){super({id:y_.ID,label:h(1240,"Show Previous Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(f,u){$i.get(u)?.model.get()?.previous()}}var yO="vscode://schemas/inlineCompletionProviderIdArgs";function xO(f){let u=[];if(f.providerId)u.push(f.providerId.toStringWithoutVersion()),u.push(f.providerId.extensionId+":*");return u}var YD=gE(hE({showNoResultNotification:Ku(eS()),providerId:Ku(mE(yO,sE())),explicit:Ku(eS()),changeHintData:Ku(dE())}),cE());class MC extends z{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:h(1241,"Trigger Inline Suggestion"),precondition:o.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:YD.getJSONSchema()}]}})}async run(f,u,g){let v=f.get(ut),S=f.get(j),y=$i.get(u),D=YD.validateOrThrow(g),T=D?.providerId?S.inlineCompletionsProvider.all(u.getModel()).find((R)=>xO(R).some((K)=>K===D.providerId)):void 0;if(await wI(async(R)=>{await y?.model.get()?.trigger(R,{provider:T,explicit:D?.explicit??!0,changeHint:D?.changeHintData?{data:D.changeHintData}:void 0}),y?.playAccessibilitySignal(R)}),D?.showNoResultNotification){if(!y?.model.get()?.state.get())v.notify({severity:ul.Info,message:e(1230,"No inline suggestion is available.")})}}}class OC extends z{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:h(1242,"Accept Next Word Of Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:_.and(o.writable,Rt.inlineSuggestionVisible,Rt.cursorBeforeGhostText,Yd.negate())},menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1231,"Accept Word"),group:"primary",order:2}]})}async run(f,u){await $i.get(u)?.model.get()?.acceptNextWord()}}class PC extends z{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:h(1243,"Accept Next Line Of Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1232,"Accept Line"),group:"secondary",order:2}]})}async run(f,u){await $i.get(u)?.model.get()?.acceptNextLine()}}class AC extends z{constructor(){super({id:fr,label:h(1244,"Accept Inline Suggestion"),precondition:_.or(Rt.inlineSuggestionVisible,Rt.inlineEditVisible),menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1233,"Accept"),group:"primary",order:2},{menuId:a.InlineEditsActions,title:e(1234,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:_.or(_.and(Rt.inlineSuggestionVisible,o.tabMovesFocus.toNegated(),rt.Visible.toNegated(),o.hoverFocused.toNegated(),Rt.hasSelection.toNegated(),Rt.inlineSuggestionHasIndentationLessThanTabSize),_.and(Rt.inlineEditVisible,o.tabMovesFocus.toNegated(),rt.Visible.toNegated(),o.hoverFocused.toNegated(),Rt.tabShouldAcceptInlineEdit))}]})}async run(f,u){let g=$i.getInFocusedEditorOrParent(f);if(g)g.model.get()?.accept(g.editor),g.editor.focus()}}bn.registerKeybindingRule({id:fr,weight:202,primary:2,when:_.and(Rt.inInlineEditsPreviewEditor)});class FC extends z{constructor(){super({id:vd,label:h(1245,"Accept Inline Suggestion Alternative Action"),precondition:_.and(Rt.inlineSuggestionAlternativeActionVisible,Rt.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(f,u){let g=$i.getInFocusedEditorOrParent(f);if(g)g.model.get()?.accept(g.editor,!0),g.editor.focus()}}bn.registerKeybindingRule({id:vd,weight:203,primary:1026,when:_.and(Rt.inInlineEditsPreviewEditor)});class HC extends z{constructor(){super({id:zc,label:h(1246,"Jump to next inline edit"),precondition:Rt.inlineEditVisible,menuOpts:[{menuId:a.InlineEditsActions,title:e(1235,"Jump"),group:"primary",order:1,when:Rt.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:_.and(Rt.inlineEditVisible,o.tabMovesFocus.toNegated(),rt.Visible.toNegated(),o.hoverFocused.toNegated(),Rt.tabShouldJumpToInlineEdit)}})}async run(f,u){let g=$i.get(u);if(g)g.jump()}}class Ag extends z{static{this.ID=vm}constructor(){super({id:Ag.ID,label:h(1247,"Hide Inline Suggestion"),precondition:_.or(Rt.inlineSuggestionVisible,Rt.inlineEditVisible),kbOpts:{kbExpr:o.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:a.InlineEditsActions,title:e(1236,"Reject"),group:"primary",order:3}]})}async run(f,u){let g=$i.getInFocusedEditorOrParent(f);Fe((v)=>{g?.model.get()?.stop("explicitCancel",v)}),g?.editor.focus()}}class x_ extends z{static{this.ID=Iu}constructor(){super({id:x_.ID,label:h(1248,"Toggle Inline Suggestions Show Collapsed"),precondition:_.true()})}async run(f,u){let g=f.get(X),v=g.getValue("editor.inlineSuggest.edits.showCollapsed");g.updateValue("editor.inlineSuggest.edits.showCollapsed",!v)}}bn.registerKeybindingRule({id:Ag.ID,weight:-1,primary:9,secondary:[1033],when:_.and(Rt.inInlineEditsPreviewEditor)});class I_ extends ln{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:I_.ID,title:e(1237,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:a.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:_.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(f){let u=f.get(X),v=u.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";u.updateValue("editor.inlineSuggest.showToolbar",v)}}class WC extends z{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:e(1238,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:_.or(Rt.inlineEditVisible,Rt.inlineSuggestionVisible)})}async run(f,u){let g=f.get(Xn),S=$i.get(u)?.model.get();if(!S)return;let y=S.extractReproSample(),T=ei(JSON.stringify({inlineCompletion:y.inlineCompletion},null,4)).map((K)=>"// "+K).join(`
|
|
55
|
-
`),R=`${y.documentValue}
|
|
56
|
-
|
|
57
|
-
// <json>
|
|
58
|
-
${T}
|
|
59
|
-
// </json>
|
|
60
|
-
`;return await g.writeText(R),{reproCase:R}}}var IO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},L_=function(f,u){return function(g,v){u(g,v,f)}};class JD{constructor(f,u,g){this.owner=f,this.range=u,this.controller=g}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}var k_=class f{constructor(u,g,v,S,y){this._editor=u,this.accessibilityService=g,this._instantiationService=v,this._telemetryService=S,this._markdownRendererService=y,this.hoverOrdinal=4,this.hideCopyButton=!0}suggestHoverAnchor(u){let g=$i.get(this._editor);if(!g)return null;let v=u.target;if(v.type===8){let S=v.detail;if(g.shouldShowHoverAtViewZone(S.viewZoneId))return new Ra(1000,this,t.fromPositions(this._editor.getModel().validatePosition(S.positionBefore||S.position)),u.event.posx,u.event.posy,!1)}if(v.type===7){if(g.shouldShowHoverAt(v.range))return new Ra(1000,this,v.range,u.event.posx,u.event.posy,!1)}if(v.type===6){if(v.detail.mightBeForeignElement&&g.shouldShowHoverAt(v.range))return new Ra(1000,this,v.range,u.event.posx,u.event.posy,!1)}if(v.type===9&&v.element){let S=Ba.getWarningWidgetContext(v.element);if(S&&g.shouldShowHoverAt(S.range))return new Ra(1000,this,S.range,u.event.posx,u.event.posy,!1)}return null}computeSync(u,g){if(this._editor.getOption(71).showToolbar!=="onHover")return[];let v=$i.get(this._editor);if(v&&v.shouldShowHoverAt(u.range))return[new JD(this,u.range,v)];return[]}renderHoverParts(u,g){let v=new c,S=g[0];if(this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12))v.add(this.renderScreenReaderText(u,S));let y=S.controller.model.get(),D=document.createElement("div");return u.fragment.appendChild(D),v.add(jn((R,K)=>{let q=K.add(this._instantiationService.createInstance(Ms.hot.read(R),this._editor,!1,Se(null),y.selectedInlineCompletionIndex,y.inlineCompletionsCount,y.activeCommands,y.warning,()=>{u.onContentsChanged()}));D.replaceChildren(q.getDomNode())})),y.triggerExplicitly(),new Jo([{hoverPart:S,hoverElement:D,dispose(){v.dispose()}}])}getAccessibleContent(u){return e(1268,"There are inline completions here")}renderScreenReaderText(u,g){let v=new c,S=m,y=S("div.hover-row.markdown-hover"),D=w(y,S("div.hover-contents",{["aria-live"]:"assertive"})),T=(R)=>{let K=e(1269,"Suggestion:"),q=v.add(this._markdownRendererService.render(new wn().appendText(K).appendCodeblock("text",R),{context:this._editor,asyncRenderCallback:()=>{D.className="hover-contents code-hover-contents",u.onContentsChanged()}}));D.replaceChildren(q.element)};return v.add(H((R)=>{let K=g.controller.model.read(R)?.primaryGhostText.read(R);if(K){let q=this._editor.getModel().getLineContent(K.lineNumber);T(K.renderForScreenReader(q))}else Qt(D)})),u.fragment.appendChild(y),v}};k_=IO([L_(1,Vt),L_(2,L),L_(3,kn),L_(4,yo)],k_);class BC{}le($i.ID,rE($i.hot),3);I(MC);I(C_);I(y_);I(OC);I(PC);I(AC);I(FC);I(x_);I(Ag);I(HC);Ye(I_);I(WC);Ye(y0);Ye(w0);pa.register(k_);Yc.register(new BC);var LO=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Kd=function(f,u){return function(g,v){u(g,v,f)}},VC,Fg=class f{static{VC=this}static{this.ID="editor.contrib.contextmenu"}static get(u){return u.getContribution(VC.ID)}constructor(u,g,v,S,y,D,T,R){this._contextMenuService=g,this._contextViewService=v,this._contextKeyService=S,this._keybindingService=y,this._menuService=D,this._configurationService=T,this._workspaceContextService=R,this._toDispose=new c,this._contextMenuIsBeingShownCount=0,this._editor=u,this._toDispose.add(this._editor.onContextMenu((K)=>this._onContextMenu(K))),this._toDispose.add(this._editor.onMouseWheel((K)=>{if(this._contextMenuIsBeingShownCount>0){let q=this._contextViewService.getContextViewElement(),ee=K.srcElement;if(!(ee.shadowRoot&&wa(q)===ee.shadowRoot))this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown((K)=>{if(!this._editor.getOption(30))return;if(K.keyCode===58)K.preventDefault(),K.stopPropagation(),this.showContextMenu()}))}_onContextMenu(u){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){if(this._editor.focus(),u.target.position&&!this._editor.getSelection().containsPosition(u.target.position))this._editor.setPosition(u.target.position);return}if(u.target.type===12)return;if(u.target.type===6&&u.target.detail.injectedText)return;if(u.event.preventDefault(),u.event.stopPropagation(),u.target.type===11)return this._showScrollbarContextMenu(u.event);if(u.target.type!==6&&u.target.type!==7&&u.target.type!==1)return;if(this._editor.focus(),u.target.position){let v=!1;for(let S of this._editor.getSelections())if(S.containsPosition(u.target.position)){v=!0;break}if(!v)this._editor.setPosition(u.target.position)}let g=null;if(u.target.type!==1)g=u.event;this.showContextMenu(g)}showContextMenu(u){if(!this._editor.getOption(30))return;if(!this._editor.hasModel())return;let g=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);if(g.length>0)this._doShowContextMenu(g,u)}_getMenuActions(u,g){let v=[],S=this._menuService.getMenuActions(g,this._contextKeyService,{arg:u.uri});for(let y of S){let[,D]=y,T=0;for(let R of D)if(R instanceof rl){let K=this._getMenuActions(u,R.item.submenu);if(K.length>0)v.push(new Dr(R.id,R.label,K)),T++}else v.push(R),T++;if(T)v.push(new Xe)}if(v.length)v.pop();return v}_doShowContextMenu(u,g=null){if(!this._editor.hasModel())return;let v=g;if(!v){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let y=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),D=mt(this._editor.getDomNode()),T=D.left+y.left,R=D.top+y.top+y.height;v={x:T,y:R}}let S=this._editor.getOption(144)&&!lo;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:S?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:S&&this._editor.getOption(51),getAnchor:()=>v,getActions:()=>u,getActionViewItem:(y)=>{let D=this._keybindingFor(y);if(D)return new fl(y,y,{label:!0,keybinding:D.getLabel(),isMenu:!0});let T=y;if(typeof T.getActionViewItem==="function")return T.getActionViewItem();return new fl(y,y,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:(y)=>this._keybindingFor(y),onHide:(y)=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(u){if(!this._editor.hasModel())return;if(rR(this._workspaceContextService.getWorkspace()))return;let g=this._editor.getOption(81),v=0,S=(K)=>({id:`menu-action-${++v}`,label:K.label,tooltip:"",class:void 0,enabled:typeof K.enabled>"u"?!0:K.enabled,checked:K.checked,run:K.run}),y=(K,q)=>new Dr(`menu-action-${++v}`,K,q,void 0),D=(K,q,ee,te,ne)=>{if(!q)return S({label:K,enabled:q,run:()=>{}});let re=(ge)=>()=>{this._configurationService.updateValue(ee,ge)},ae=[];for(let ge of ne)ae.push(S({label:ge.label,checked:te===ge.value,run:re(ge.value)}));return y(K,ae)},T=[];T.push(S({label:e(952,"Minimap"),checked:g.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!g.enabled)}})),T.push(new Xe),T.push(S({label:e(953,"Render Characters"),enabled:g.enabled,checked:g.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!g.renderCharacters)}})),T.push(D(e(954,"Vertical size"),g.enabled,"editor.minimap.size",g.size,[{label:e(955,"Proportional"),value:"proportional"},{label:e(956,"Fill"),value:"fill"},{label:e(957,"Fit"),value:"fit"}])),T.push(D(e(958,"Slider"),g.enabled,"editor.minimap.showSlider",g.showSlider,[{label:e(959,"Mouse Over"),value:"mouseover"},{label:e(960,"Always"),value:"always"}])),T.push(D(e(961,"Side"),g.enabled,"editor.minimap.side",g.side,[{label:e(962,"Right"),value:"right"},{label:e(963,"Left"),value:"left"}]));let R=this._editor.getOption(144)&&!lo;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:R?this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:R&&this._editor.getOption(51),getAnchor:()=>u,getActions:()=>T,onHide:(K)=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(u){return this._keybindingService.lookupKeybinding(u.id)}dispose(){if(this._contextMenuIsBeingShownCount>0)this._contextViewService.hideContextView();this._toDispose.dispose()}};Fg=VC=LO([Kd(1,Dn),Kd(2,Pr),Kd(3,V),Kd(4,ce),Kd(5,ui),Kd(6,X),Kd(7,Es)],Fg);class QD extends z{constructor(){super({id:"editor.action.showContextMenu",label:h(964,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:1092,weight:100}})}run(f,u){Fg.get(u)?.showContextMenu()}}le(Fg.ID,Fg,2);I(QD);class zC extends n{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(f){super();this.editor=f,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let f=Bi.get(this.editor);if(f&&this.editor.hasModel()){let u=this.editor.getOptions().get(105);if(!u)if(this.editor.isSimpleWidget)u=new wn(e(1447,"Cannot edit in read-only input"));else u=new wn(e(1448,"Cannot edit in read-only editor"));f.showMessage(u,this.editor.getPosition())}}}le(zC.ID,zC,2);class KC extends ln{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:KC.ID,title:h(1604,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:h(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 u=!Jd.getTabFocusMode();if(Jd.setTabFocusMode(u),u)En(e(1602,"Pressing Tab will now move focus to the next focusable element"));else En(e(1603,"Pressing Tab will now insert the tab character"))}}Ye(KC);var e2=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},UC=function(f,u){return function(g,v){u(g,v,f)}},kO=26,E_=class f extends n{constructor(u,g){super();this._editor=u,this.instantiationService=g,this.banner=this._register(this.instantiationService.createInstance(qC))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(u){this.banner.show({...u,onClose:()=>{this.hide(),u.onClose?.()}}),this._editor.setBanner(this.banner.element,kO)}};E_=e2([UC(1,L)],E_);var qC=class f extends n{constructor(u,g){super();this.instantiationService=u,this.markdownRendererService=g,this.element=m("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(u){if(u.ariaLabel)return u.ariaLabel;if(typeof u.message==="string")return u.message;return}getBannerMessage(u){if(typeof u==="string"){let g=m("span");return g.innerText=u,g}return this.markdownRendererService.render(u).element}clear(){Xt(this.element)}show(u){Xt(this.element);let g=this.getAriaLabel(u);if(g)this.element.setAttribute("aria-label",g);let v=w(this.element,m("div.icon-container"));if(v.setAttribute("aria-hidden","true"),u.icon)v.appendChild(m(`div${G.asCSSSelector(u.icon)}`));let S=w(this.element,m("div.message-container"));if(S.setAttribute("aria-hidden","true"),S.appendChild(this.getBannerMessage(u.message)),this.messageActionsContainer=w(this.element,m("div.message-actions-container")),u.actions)for(let D of u.actions)this._register(this.instantiationService.createInstance(ic,this.messageActionsContainer,{...D,tabIndex:-1},{}));let y=w(this.element,m("div.action-container"));this.actionBar=this._register(new Ri(y)),this.actionBar.push(this._register(new Qi("banner.close",e(1607,"Close Banner"),G.asClassName(F0),!0,()=>{if(typeof u.onClose==="function")u.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};qC=e2([UC(0,L),UC(1,yo)],qC);var XC=function(f,u,g,v){var S=arguments.length,y=S<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,g):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")y=Reflect.decorate(f,u,g,v);else for(var T=f.length-1;T>=0;T--)if(D=f[T])y=(S<3?D(y):S>3?D(u,g,y):D(u,g))||y;return S>3&&y&&Object.defineProperty(u,g,y),y},Hg=function(f,u){return function(g,v){u(g,v,f)}},EO=Tt("extensions-warning-message",b.warning,e(1608,"Icon shown with a warning message in the extensions editor.")),Wg=class f extends n{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(u,g,v,S){super();this._editor=u,this._editorWorkerService=g,this._workspaceTrustService=v,this._highlighter=null,this._bannerClosed=!1,this._updateState=(y)=>{if(y&&y.hasMore){if(this._bannerClosed)return;let D=Math.max(y.ambiguousCharacterCount,y.nonBasicAsciiCharacterCount,y.invisibleCharacterCount),T;if(y.nonBasicAsciiCharacterCount>=D)T={message:e(1609,"This document contains many non-basic ASCII unicode characters"),command:new Vg};else if(y.ambiguousCharacterCount>=D)T={message:e(1610,"This document contains many ambiguous unicode characters"),command:new $d};else if(y.invisibleCharacterCount>=D)T={message:e(1611,"This document contains many invisible unicode characters"),command:new Bg};else throw Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:T.message,icon:EO,actions:[{label:T.command.shortLabel,href:`command:${T.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(S.createInstance(E_,u)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=u.getOption(142),this._register(v.onDidChangeTrust((y)=>{this._updateHighlighter()})),this._register(u.onDidChangeConfiguration((y)=>{if(y.hasChanged(142))this._options=u.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 u=DO(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([u.nonBasicASCII,u.ambiguousCharacters,u.invisibleCharacters].every((v)=>v===!1))return;let g={nonBasicASCII:u.nonBasicASCII,ambiguousCharacters:u.ambiguousCharacters,invisibleCharacters:u.invisibleCharacters,includeComments:u.includeComments,includeStrings:u.includeStrings,allowedCodePoints:Object.keys(u.allowedCharacters).map((v)=>v.codePointAt(0)),allowedLocales:Object.keys(u.allowedLocales).map((v)=>{if(v==="_os")return sl.NumberFormat().value.resolvedOptions().locale;else if(v==="_vscode")return dI;return v})};if(this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri))this._highlighter=new $C(this._editor,g,this._updateState,this._editorWorkerService);else this._highlighter=new t2(this._editor,g,this._updateState)}getDecorationInfo(u){if(this._highlighter)return this._highlighter.getDecorationInfo(u);return null}};Wg=XC([Hg(1,pi),Hg(2,D0),Hg(3,L)],Wg);function DO(f,u){return{nonBasicASCII:u.nonBasicASCII===gs?!f:u.nonBasicASCII,ambiguousCharacters:u.ambiguousCharacters,invisibleCharacters:u.invisibleCharacters,includeComments:u.includeComments===gs?!f:u.includeComments,includeStrings:u.includeStrings===gs?!f:u.includeStrings,allowedCharacters:u.allowedCharacters,allowedLocales:u.allowedLocales}}var $C=class f extends n{constructor(u,g,v,S){super();this._editor=u,this._options=g,this._updateState=v,this._editorWorkerService=S,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new be(()=>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 u=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((g)=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==u)return;this._updateState(g);let v=[];if(!g.hasMore)for(let S of g.ranges)v.push({range:S,options:D_.instance.getDecorationFromOptions(this._options)});this._decorations.set(v)})}getDecorationInfo(u){if(!this._decorations.has(u))return null;let g=this._editor.getModel();if(!ny(g,u))return null;let v=g.getValueInRange(u.range);return{reason:o2(v,this._options),inComment:d0(g,u),inString:u0(g,u)}}};$C=XC([Hg(3,pi)],$C);class t2 extends n{constructor(f,u,g){super();this._editor=f,this._options=u,this._updateState=g,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new be(()=>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 f=this._editor.getVisibleRanges(),u=[],g={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let v of f){let S=eg.computeUnicodeHighlights(this._model,this._options,v);for(let y of S.ranges)g.ranges.push(y);g.ambiguousCharacterCount+=g.ambiguousCharacterCount,g.invisibleCharacterCount+=g.invisibleCharacterCount,g.nonBasicAsciiCharacterCount+=g.nonBasicAsciiCharacterCount,g.hasMore=g.hasMore||S.hasMore}if(!g.hasMore)for(let v of g.ranges)u.push({range:v,options:D_.instance.getDecorationFromOptions(this._options)});this._updateState(g),this._decorations.set(u)}getDecorationInfo(f){if(!this._decorations.has(f))return null;let u=this._editor.getModel(),g=u.getValueInRange(f.range);if(!ny(u,f))return null;return{reason:o2(g,this._options),inComment:d0(u,f),inString:u0(u,f)}}}var i2=e(1612,"Configure Unicode Highlight Options"),GC=class f{constructor(u,g){this._editor=u,this._markdownRendererService=g,this.hoverOrdinal=5}computeSync(u,g){if(!this._editor.hasModel()||u.type!==1)return[];let v=this._editor.getModel(),S=this._editor.getContribution(Wg.ID);if(!S)return[];let y=[],D=new Set,T=300;for(let R of g){let K=S.getDecorationInfo(R);if(!K)continue;let ee=v.getValueInRange(R.range).codePointAt(0),te=jC(ee),ne;switch(K.reason.kind){case 0:{if(Ic(K.reason.confusableWith))ne=e(1613,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",te,jC(K.reason.confusableWith.codePointAt(0)));else ne=e(1614,"The character {0} could be confused with the character {1}, which is more common in source code.",te,jC(K.reason.confusableWith.codePointAt(0)));break}case 1:ne=e(1615,"The character {0} is invisible.",te);break;case 2:ne=e(1616,"The character {0} is not a basic ASCII character.",te);break}if(D.has(ne))continue;D.add(ne);let re={codePoint:ee,reason:K.reason,inComment:K.inComment,inString:K.inString},ae=e(1617,"Adjust settings"),ge=v0(T_.ID,re),ke=new wn("",!0).appendMarkdown(ne).appendText(" ").appendLink(ge,ae,i2);y.push(new Lo(this,R.range,[ke],!1,T++))}return y}renderHoverParts(u,g){return y1(u,g,this._editor,this._markdownRendererService)}getAccessibleContent(u){return u.contents.map((g)=>g.value).join(`
|
|
61
|
-
`)}};GC=XC([Hg(1,yo)],GC);function ZC(f){return`U+${f.toString(16).padStart(4,"0")}`}function jC(f){let u=`\`${ZC(f)}\``;if(!Bl.isInvisibleCharacter(f))u+=` "${`${TO(f)}`}"`;return u}function TO(f){if(f===96)return"`` ` ``";return"`"+String.fromCodePoint(f)+"`"}function o2(f,u){return eg.computeUnicodeHighlightReason(f,u)}class D_{constructor(){this.map=new Map}static{this.instance=new D_}getDecorationFromOptions(f){return this.getDecoration(!f.includeComments,!f.includeStrings)}getDecoration(f,u){let g=`${f}${u}`,v=this.map.get(g);if(!v)v=oe.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:f,hideInStringTokens:u}),this.map.set(g,v);return v}}class n2 extends z{constructor(){super({id:$d.ID,label:h(1626,"Disable highlighting of characters in comments"),precondition:void 0});this.shortLabel=e(1618,"Disable Highlight In Comments")}async run(f,u){let g=f.get(X);if(g)this.runAction(g)}async runAction(f){await f.updateValue(Ir.includeComments,!1,2)}}class r2 extends z{constructor(){super({id:$d.ID,label:h(1627,"Disable highlighting of characters in strings"),precondition:void 0});this.shortLabel=e(1619,"Disable Highlight In Strings")}async run(f,u){let g=f.get(X);if(g)this.runAction(g)}async runAction(f){await f.updateValue(Ir.includeStrings,!1,2)}}class $d extends ln{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:$d.ID,title:h(1628,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1});this.shortLabel=e(1620,"Disable Ambiguous Highlight")}async run(f,u){let g=f.get(X);if(g)this.runAction(g)}async runAction(f){await f.updateValue(Ir.ambiguousCharacters,!1,2)}}class Bg extends ln{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:Bg.ID,title:h(1629,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1});this.shortLabel=e(1621,"Disable Invisible Highlight")}async run(f,u){let g=f.get(X);if(g)this.runAction(g)}async runAction(f){await f.updateValue(Ir.invisibleCharacters,!1,2)}}class Vg extends ln{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:Vg.ID,title:h(1630,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1});this.shortLabel=e(1622,"Disable Non ASCII Highlight")}async run(f,u){let g=f.get(X);if(g)this.runAction(g)}async runAction(f){await f.updateValue(Ir.nonBasicASCII,!1,2)}}class T_ extends ln{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:T_.ID,title:h(1631,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(f,u){let{codePoint:g,reason:v,inString:S,inComment:y}=u,D=String.fromCodePoint(g),T=f.get(dn),R=f.get(X);function K(ne){if(Bl.isInvisibleCharacter(ne))return e(1623,"Exclude {0} (invisible character) from being highlighted",ZC(ne));return e(1624,"Exclude {0} from being highlighted",`${ZC(ne)} "${D}"`)}let q=[];if(v.kind===0)for(let ne of v.notAmbiguousInLocales)q.push({label:e(1625,'Allow unicode characters that are more common in the language "{0}".',ne),run:async()=>{NO(R,[ne])}});if(q.push({label:K(g),run:()=>RO(R,[g])}),y){let ne=new n2;q.push({label:ne.label,run:async()=>ne.runAction(R)})}else if(S){let ne=new r2;q.push({label:ne.label,run:async()=>ne.runAction(R)})}function ee(ne){return typeof ne.desc.title==="string"?ne.desc.title:ne.desc.title.value}if(v.kind===0){let ne=new $d;q.push({label:ee(ne),run:async()=>ne.runAction(R)})}else if(v.kind===1){let ne=new Bg;q.push({label:ee(ne),run:async()=>ne.runAction(R)})}else if(v.kind===2){let ne=new Vg;q.push({label:ee(ne),run:async()=>ne.runAction(R)})}else MO(v);let te=await T.pick(q,{title:i2});if(te)await te.run()}}async function RO(f,u){let g=f.getValue(Ir.allowedCharacters),v;if(typeof g==="object"&&g)v=g;else v={};for(let S of u)v[String.fromCodePoint(S)]=!0;await f.updateValue(Ir.allowedCharacters,v,2)}async function NO(f,u){let g=f.inspect(Ir.allowedLocales).user?.value,v;if(typeof g==="object"&&g)v=Object.assign({},g);else v={};for(let S of u)v[S]=!0;await f.updateValue(Ir.allowedLocales,v,2)}function MO(f){throw Error(`Unexpected value: ${f}`)}Ye($d);Ye(Bg);Ye(Vg);Ye(T_);le(Wg.ID,Wg,1);pa.register(GC);export{It,Nm,Pd,Tx,Lx,Ix,Om,Mm,lS,Rx,jl,Hl,rI,Iv,Fd,pa,Pm,Ip,$x,Dx,cS,dS,Ax,uS,jd,Rv,Nx,Ox,Rp,Fm,$p,jm,Mx,ao,Hm,hS,Hd,Gr,pS};
|
|
62
|
-
|
|
63
|
-
//# debugId=E3852E39233363C864756E2164756E21
|
|
64
|
-
//# sourceMappingURL=studio-gftga7a3.js.map
|