@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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import{Ke,zp,ch,i0,zS,Xi,o0,Ln,Zr,zI,Xm,Cn,_i,r0,WI,Uv,Qm,J,dt,Kn,tr,Qi,P,nl,Gd,ys,Dc,pn,VI,Gt,Xr,Mi,Mn,Ie,il,UI,Js,eg,Wp,e,h,Wt,ue,zn,vr,Qr,co,qI,Ys,ui,es,Ce,ws,$e,nr,E,c,n,ie,WS,Sn,Kt,C,i,rl,uo,ir,ts,xs,Dr,Wi,he,Oe,qv,Jt,Kd,ng,wa,W,r,t,O,b,Ar,Jd,Fo,Gv,a0,ig,xa,Vp,_a,Yd,GI,Zd,Nr,l0,Up,og,Kv,Dt,Pe,rg,Pn,c0,Zs,Ci,ei,In,St,jo,dh,Jv,Ac,Ca,ho,ns,fn,sl,Sa,Nc,YI,d0,ql,Wn,ze,Vn,Pt,al,ZI,XI,Si,or,Jn,Un,be,Cs,QI,Fn,ee,Gp,Oc,ki,So,Xd,hh,VS,Mc,Zv,At,Yn,Xv,d,mn,u0,Ho,H,jn,eR,tR,Fe,nR,Gl,M,Le,is,Pi,US,p0,qS,Qd,Bo,Kl,F,Xt,l,ft,iR,Pc,Qv,ey,ag,ti,ty,Ss,Ye,f0,oR,mt,lg,po,ka,jt,Ea,Et,os,Fc,ph,Me,xe,fh,x,ve,Zn,w,Qt,m,rR,fo,Vi,Xs,ny,_e,wr,GS,se,mh,an,L,Z,ye,gt,gn,eo,Qe,Or,cl,G,Ne,we,_,A,V,it,bn,gh,a,hi,Rn,dl,Ei,ln,Ze,kn,Ht,Ti,sR,Jl,vn,Mr,aR,pi,lR,bh,m0,cR,jc,Be,g0,Fi,KS,Yp,vh,Bt,z,cg,zo,mo,U,I,iy,dR,le,Hn,Pr,X,pt,fe,cn,yh,rr,ji,et,dg,ks,wh,ul,xr,ko,_r,Fr,Hc,ug,B,xh,oy,v0,y0,uR,Y,Nt,ry,Zp,Ta,go,ct,Li,_h,to,qn,JS,Xp,k,hl,f,hg,j,YS,bo,bt,hR,La,Ri,jr,Yl,En,vo,fi,fg,tu,Vt,nu,mg,w0,pR,Ia,N,s,sr,de,Qp,Ee,sy,ef,Re,Ft,tf,Eo,Qs,yo,Sh,nf,fR,ea,kh,rs,Eh,mR,Zl,of,gR,Es,bR,pl,vR,rf,gg,Th,x0,_0,yR,wR,xR,_R,iu,zc,ay,Wc,bg,C0,ZS,ly,cy,Lh,dy,CR,uy,S0,k0,sf,ou,af,vg,ru,Xl,lf,Ql,Ra,yg,Wo,su,yt,wt,Tt,ni,hy,$a,lt,Da,E0,ec,py,Ih,XS,cf,SR,Rh,Vc,wg,Ue,ii,QS,df,kt,xg,mi,_g,au,Cr,uf,L0,$h,fl,o,Dh,De,en,oi,kR,I0,hf,my,R0,$0,Yt,gl,ut,ar,ek,TR,ce,gy,lr,LR,Ls,$n,pf,Ui,Cg,tn,by,vy,yy,wy,D0,IR,Uc,A0,tc,oe,nc,bl,yn,qc,RR,Hr,Dn,ff,Ah,N0,O0,M0,tk,AR,cu,Sr,Sg,ic,NR,wn,du,cr,F0,kg,xy,no,Aa,To,OR,wo,nk,_y,dr,mf,dn,xn,vl,Cy,j0,H0,Eg,Bi,Br,Ge,Xn,Oh,Sy,ik,vf,Vo,ri,Se,io,yl,Tg,Lg,Ig,z0,Mh,oc,yf,FR,Na,W0,Rg,$i,$g,V0,wl,ky,qi,Ey,Ty,xl,U0,Ly,Iy,Ry,$y,Dy,Rs,ok,q0,G0,K0,Ut,Ay,ur,J0,na,ss,$s,Y0,jR,HR,Z0,BR,X0,_l,Cl,Q0,Ny,Mt,Oa,wf,Ds,uu,Ag,Kc,Jc,i_,ia,Lt,o_,Ng,rk,zr,kr,r_,si,Zc,rc,oa,My,Qn,Xe,Py,pu,fu,ra,Og,s_,Hh,Wr,Mg,Bh,ak,zR,lk,zh,pe}from"./studio-y17505ge.js";import{me}from"./studio-09n3fyy0.js";class A_{constructor(p,u,g,v,S){this._onDidChange=new zh,this._onDidExtraLibsChange=new zh,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(p),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(p,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===p)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:p,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(p){for(let u in this._extraLibs)this._removedExtraLibs[u]=this._extraLibs[u].version;if(this._extraLibs=Object.create(null),p&&p.length>0)for(let u of p){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(p){this._compilerOptions=p||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(p){this._diagnosticsOptions=p||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(p){this._workerOptions=p||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(p){this._inlayHintsOptions=p||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(p){}setEagerModelSync(p){this._eagerModelSync=p}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(p){this._modeConfiguration=p||Object.create(null),this._onDidChange.fire(void 0)}}var OC={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},BS=new A_({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},OC),ED=new A_({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},OC);function PC(){return me("eq26t9gs"),import("./tsMode-eq26t9gs.js")}pe.onLanguage("typescript",()=>PC().then((p)=>p.setupTypeScript(BS)));pe.onLanguage("javascript",()=>PC().then((p)=>p.setupJavaScript(ED)));class AC extends z{constructor(){super({id:"editor.action.forceRetokenize",label:h(1606,"Developer: Force Retokenize"),precondition:void 0})}run(p,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(AC);class It{static{this.sep="."}static{this.None=new It("@@none@@")}static{this.Empty=new It("")}constructor(p){this.value=p}equals(p){return this.value===p.value}contains(p){return this.equals(p)||this.value===""||p.value.startsWith(this.value+It.sep)}intersects(p){return this.contains(p)||p.contains(this)}append(...p){return new It((this.value?[this.value,...p]:p).join(It.sep))}}var DD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},TD=function(p,u){return function(g,v){u(g,v,p)}},RD=oe.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:d0,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0,widthInEm:1}});class F_ extends n{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(p,u,g,v,S){super();this.typeId=p,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(p){this.domNode=m(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=p;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 F_.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 Um=class p 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:RD}]).length>0)this._currentWidget.value=this._instantiationService.createInstance(F_,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()}};Um=DD([TD(2,L)],Um);var ND=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},FC=function(p,u){return function(g,v){u(g,v,p)}},Yg,Oi=class p{static{Yg=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(Yg.ID)}constructor(u,g,v){this._openerService=v,this._messageWidget=new ie,this._messageListeners=new c,this._mouseOverMessage=!1,this._editor=u,this._visible=Yg.MESSAGE_VISIBLE.bindTo(g)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(u,g){if(En(cr(u)?u.value:u),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),cr(u)){let S=this._messageListeners.add(Aa(u,{actionHandler:(y,D)=>{this.closeMessage(),nk(this._openerService,y,D.isTrusted)}}));this._messageWidget.value=new Jg(this._editor,g,S.element)}else this._messageWidget.value=new Jg(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(Et(),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(Jg.fadeOut(this._messageWidget.value))}};Oi=Yg=ND([FC(1,V),FC(2,To)],Oi);var MD=Bt.bindToContribution(Oi.get);U(new MD({id:"leaveEditorMessage",precondition:Oi.MESSAGE_VISIBLE,handler:(p)=>p.closeMessage(),kbOpts:{weight:130,primary:9}}));class Jg{static fadeOut(p){let u=()=>{p.dispose(),clearTimeout(g),p.getDomNode().removeEventListener("animationend",u)},g=setTimeout(u,110);return p.getDomNode().addEventListener("animationend",u),p.getDomNode().classList.add("fadeOut"),{dispose:u}}constructor(p,{lineNumber:u,column:g},v){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=p,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(p){this._domNode.classList.toggle("below",p===2)}}le(Oi.ID,Oi,4);var H_=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},eh=function(p,u){return function(g,v){u(g,v,p)}};class ep{constructor(p){this.copyMimeTypes=[],this.kind=p,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(p,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(p,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 Wd extends ep{static{this.id="text"}constructor(){super(It.Empty.append("text","plain"));this.id=Wd.id,this.dropMimeTypes=[cn.text],this.pasteMimeTypes=[cn.text]}async getEdit(p,u){let g=p.get(cn.text);if(!g)return;if(p.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 W_ extends ep{constructor(){super(It.Empty.append("uri","path","absolute"));this.dropMimeTypes=[cn.uriList],this.pasteMimeTypes=[cn.uriList]}async getEdit(p,u){let g=await WC(p);if(!g.length||u.isCancellationRequested)return;let v=0,S=g.map(({uri:D,originalText:T})=>{if(D.scheme===ee.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 Qg=class p extends ep{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 WC(u);if(!v.length||g.isCancellationRequested)return;let S=Xi(v.map(({uri:y})=>{let D=this._workspaceContextService.getWorkspaceFolder(y);return D?cR(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}}};Qg=H_([eh(0,$s)],Qg);class HC{constructor(){this.kind=new It("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:cn.text}]}async provideDocumentPasteEdits(p,u,g,v,S){if(v.triggerKind!==Vp.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 WC(p){let u=p.get(cn.uriList);if(!u)return[];let g=await u.asString(),v=[];for(let S of cf.parse(g))try{v.push({uri:W.parse(S),originalText:S})}catch{}return v}var Ya={scheme:"*",hasAccessToAllModels:!0},Gx=class p extends n{constructor(u,g){super();this._register(u.documentDropEditProvider.register(Ya,new Wd)),this._register(u.documentDropEditProvider.register(Ya,new W_)),this._register(u.documentDropEditProvider.register(Ya,new Qg(g)))}};Gx=H_([eh(0,j),eh(1,$s)],Gx);var Kx=class p extends n{constructor(u,g){super();this._register(u.documentPasteEditProvider.register(Ya,new Wd)),this._register(u.documentPasteEditProvider.register(Ya,new W_)),this._register(u.documentPasteEditProvider.register(Ya,new Qg(g))),this._register(u.documentPasteEditProvider.register(Ya,new HC))}};Kx=H_([eh(0,j),eh(1,$s)],Kx);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(p){return p>=48&&p<=57}static isVariableCharacter(p){return p===95||p>=97&&p<=122||p>=65&&p<=90}text(p){this.value=p,this.pos=0}tokenText(p){return this.value.substr(p.pos,p.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let p=this.pos,u=0,g=this.value.charCodeAt(p),v;if(v=Gn._table[g],typeof v==="number")return this.pos+=1,{type:v,pos:p,len:1};if(Gn.isDigitCharacter(g)){v=8;do u+=1,g=this.value.charCodeAt(p+u);while(Gn.isDigitCharacter(g));return this.pos+=u,{type:v,pos:p,len:u}}if(Gn.isVariableCharacter(g)){v=9;do g=this.value.charCodeAt(p+ ++u);while(Gn.isVariableCharacter(g)||Gn.isDigitCharacter(g));return this.pos+=u,{type:v,pos:p,len:u}}v=10;do u+=1,g=this.value.charCodeAt(p+u);while(!isNaN(g)&&typeof Gn._table[g]>"u"&&!Gn.isDigitCharacter(g)&&!Gn.isVariableCharacter(g));return this.pos+=u,{type:v,pos:p,len:u}}}class Ja{constructor(){this._children=[]}appendChild(p){if(p instanceof Ai&&this._children[this._children.length-1]instanceof Ai)this._children[this._children.length-1].value+=p.value;else p.parent=this,this._children.push(p);return this}replace(p,u){let{parent:g}=p,v=g.children.indexOf(p),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 p=this;while(!0){if(!p)return;if(p instanceof Ad)return p;p=p.parent}}toString(){return this.children.reduce((p,u)=>p+u.toString(),"")}len(){return 0}}class Ai extends Ja{constructor(p){super();this.value=p}toString(){return this.value}len(){return this.value.length}clone(){return new Ai(this.value)}}class B_ extends Ja{}class No extends B_{static compareByIndex(p,u){if(p.index===u.index)return 0;else if(p.isFinalTabstop)return 1;else if(u.isFinalTabstop)return-1;else if(p.index<u.index)return-1;else if(p.index>u.index)return 1;else return 0}constructor(p){super();this.index=p}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Qa?this._children[0]:void 0}clone(){let p=new No(this.index);if(this.transform)p.transform=this.transform.clone();return p._children=this.children.map((u)=>u.clone()),p}}class Qa extends Ja{constructor(){super(...arguments);this.options=[]}appendChild(p){if(p instanceof Ai)p.parent=this,this.options.push(p);return this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let p=new Qa;return this.options.forEach(p.appendChild,p),p}}class V_ extends Ja{constructor(){super(...arguments);this.regexp=new RegExp("")}resolve(p){let u=this,g=!1,v=p.replace(this.regexp,function(){return g=!0,u._replace(Array.prototype.slice.call(arguments,0,-2))});if(!g&&this._children.some((S)=>S instanceof er&&Boolean(S.elseValue)))v=this._replace([]);return v}_replace(p){let u="";for(let g of this._children)if(g instanceof er){let v=p[g.index]||"";v=g.resolve(v),u+=v}else u+=g.toString();return u}toString(){return""}clone(){let p=new V_;return p.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),p._children=this.children.map((u)=>u.clone()),p}}class er extends Ja{constructor(p,u,g,v){super();this.index=p,this.shorthandName=u,this.ifValue=g,this.elseValue=v}resolve(p){if(this.shorthandName==="upcase")return!p?"":p.toLocaleUpperCase();else if(this.shorthandName==="downcase")return!p?"":p.toLocaleLowerCase();else if(this.shorthandName==="capitalize")return!p?"":p[0].toLocaleUpperCase()+p.substr(1);else if(this.shorthandName==="pascalcase")return!p?"":this._toPascalCase(p);else if(this.shorthandName==="camelcase")return!p?"":this._toCamelCase(p);else if(this.shorthandName==="kebabcase")return!p?"":this._toKebabCase(p);else if(this.shorthandName==="snakecase")return!p?"":this._toSnakeCase(p);else if(Boolean(p)&&typeof this.ifValue==="string")return this.ifValue;else if(!Boolean(p)&&typeof this.elseValue==="string")return this.elseValue;else return p||""}_toKebabCase(p){if(!p.match(/[\p{L}0-9]+/gu))return p;if(!p.match(/[\p{L}0-9]/u))return p.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");let g=p.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(p){let u=p.match(/[\p{L}0-9]+/gu);if(!u)return p;return u.map((g)=>g.charAt(0).toUpperCase()+g.substr(1)).join("")}_toCamelCase(p){let u=p.match(/[\p{L}0-9]+/gu);if(!u)return p;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(p){return p.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new er(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Ks extends B_{constructor(p){super();this.name=p}resolve(p){let u=p.resolve(this);if(this.transform)u=this.transform.resolve(u||"");if(u!==void 0)return this._children=[new Ai(u)],!0;return!1}clone(){let p=new Ks(this.name);if(this.transform)p.transform=this.transform.clone();return p._children=this.children.map((u)=>u.clone()),p}}function BC(p,u){let g=[...p];while(g.length>0){let v=g.shift();if(!u(v))break;g.unshift(...v.children)}}class Ad extends Ja{get placeholderInfo(){if(!this._placeholders){let p=[],u;this.walk(function(g){if(g instanceof No)p.push(g),u=!u||u.index<g.index?g:u;return!0}),this._placeholders={all:p,last:u}}return this._placeholders}get placeholders(){let{all:p}=this.placeholderInfo;return p}offset(p){let u=0,g=!1;if(this.walk((v)=>{if(v===p)return g=!0,!1;return u+=v.len(),!0}),!g)return-1;return u}fullLen(p){let u=0;return BC([p],(g)=>(u+=g.len(),!0)),u}enclosingPlaceholders(p){let u=[],{parent:g}=p;while(g){if(g instanceof No)u.push(g);g=g.parent}return u}resolveVariables(p){return this.walk((u)=>{if(u instanceof Ks){if(u.resolve(p))this._placeholders=void 0}return!0}),this}appendChild(p){return this._placeholders=void 0,super.appendChild(p)}replace(p,u){return this._placeholders=void 0,super.replace(p,u)}clone(){let p=new Ad;return p._children=this.children.map((u)=>u.clone()),p}walk(p){BC(this.children,p)}}class Mo{constructor(){this._scanner=new Gn,this._token={type:14,pos:0,len:0}}static escape(p){return p.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(p){return/\${?CLIPBOARD/.test(p)}parse(p,u,g){let v=new Ad;return this.parseFragment(p,v),this.ensureFinalTabstop(v,g??!1,u??!1),v}parseFragment(p,u){let g=u.children.length;this._scanner.text(p),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 Q of K){let te=Q.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(p,u,g){if(u||g&&p.placeholders.length>0){if(!p.placeholders.find((S)=>S.index===0))p.appendChild(new No(0))}}_accept(p,u){if(p===void 0||this._token.type===p){let g=!u?!0:this._scanner.tokenText(this._token);return this._token=this._scanner.next(),g}return!1}_backTo(p){return this._scanner.pos=p.pos+p.len,this._token=p,!1}_until(p){let u=this._token;while(this._token.type!==p){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(p){return this._parseEscaped(p)||this._parseTabstopOrVariableName(p)||this._parseComplexPlaceholder(p)||this._parseComplexVariable(p)||this._parseAnything(p)}_parseEscaped(p){let u;if(u=this._accept(5,!0))return u=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||u,p.appendChild(new Ai(u)),!0;return!1}_parseTabstopOrVariableName(p){let u,g=this._token;if(!(this._accept(0)&&(u=this._accept(9,!0)||this._accept(8,!0))))return this._backTo(g);return p.appendChild(/^\d+$/.test(u)?new No(Number(u)):new Ks(u)),!0}_parseComplexPlaceholder(p){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 p.appendChild(S),!0;if(this._parse(S))continue;return p.appendChild(new Ai("${"+u+":")),S.children.forEach(p.appendChild,p),!0}else if(S.index>0&&this._accept(7)){let y=new Qa;while(!0){if(this._parseChoiceElement(y)){if(this._accept(2))continue;if(this._accept(7)){if(S.appendChild(y),this._accept(4))return p.appendChild(S),!0}}return this._backTo(g),!1}}else if(this._accept(6)){if(this._parseTransform(S))return p.appendChild(S),!0;return this._backTo(g),!1}else if(this._accept(4))return p.appendChild(S),!0;else return this._backTo(g)}_parseChoiceElement(p){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 p.appendChild(new Ai(g.join(""))),!0}_parseComplexVariable(p){let u,g=this._token;if(!(this._accept(0)&&this._accept(3)&&(u=this._accept(9,!0))))return this._backTo(g);let S=new Ks(u);if(this._accept(1))while(!0){if(this._accept(4))return p.appendChild(S),!0;if(this._parse(S))continue;return p.appendChild(new Ai("${"+u+":")),S.children.forEach(p.appendChild,p),!0}else if(this._accept(6)){if(this._parseTransform(S))return p.appendChild(S),!0;return this._backTo(g),!1}else if(this._accept(4))return p.appendChild(S),!0;else return this._backTo(g)}_parseTransform(p){let u=new V_,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 Ai(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 p.transform=u,!0}_parseFormatString(p){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 p.appendChild(new er(Number(v))),!0;else if(this._accept(4))return p.appendChild(new er(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 p.appendChild(new er(Number(v),S)),!0}else if(this._accept(11)){let S=this._until(4);if(S)return p.appendChild(new er(Number(v),void 0,S,void 0)),!0}else if(this._accept(12)){let S=this._until(4);if(S)return p.appendChild(new er(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 p.appendChild(new er(Number(v),void 0,S,y)),!0}}else{let S=this._until(4);if(S)return p.appendChild(new er(Number(v),void 0,void 0,S)),!0}return this._backTo(u),!1}_parseAnything(p){if(this._token.type!==14)return p.appendChild(new Ai(this._scanner.tokenText(this._token))),this._accept(void 0),!0;return!1}}function tp(p,u,g){if(typeof g.insertText==="string"?g.insertText==="":g.insertText.snippet==="")return{edits:g.additionalEdit?.edits??[]};return{edits:[...u.map((v)=>new Cl(p,{range:v,text:typeof g.insertText==="string"?Mo.escape(g.insertText)+"$0":g.insertText.snippet,insertAsSnippet:!0})),...g.additionalEdit?.edits??[]]}}function Jx(p){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 p)for(let T of D.yieldTo??[])for(let R of p){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(p);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(p))}function z_(p,u){if(u&&(p.stack||p.stacktrace))return e(33,"{0}: {1}",zC(p),VC(p.stack)||VC(p.stacktrace));return zC(p)}function VC(p){if(Array.isArray(p))return p.join(`
|
|
2
|
+
`);return p}function zC(p){if(p.code==="ERR_UNC_HOST_NOT_ALLOWED")return`${p.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;if(typeof p.code==="string"&&typeof p.errno==="number"&&typeof p.syscall==="string")return e(34,"A system error occurred ({0})",p.message);return p.message||e(35,"An unknown error occurred. Please consult the log for more details.")}function qm(p=null,u=!1){if(!p)return e(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(p)){let g=Xi(p),v=qm(g[0],u);if(g.length>1)return e(37,"{0} ({1} errors in total)",v,g.length);return v}if(pn(p))return p;if(p.detail){let g=p.detail;if(g.error)return z_(g.error,u);if(g.exception)return z_(g.exception,u)}if(p.stack)return z_(p,u);if(p.message)return p.message;return e(38,"An unknown error occurred. Please consult the log for more details.")}class K_ extends n{constructor(p){super();this._onChange=this._register(new i),this.onChange=this._onChange.event,this._checked=!!p.checked,this._title=p.title??p.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(p.ariaLabel,p.title),this.disabled=!!p.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(p){if(this._checked!==p)this._checked=p,this._applyState()}get disabled(){return this.domNode.disabled}set disabled(p){this.domNode.disabled=p}setAriaLabel(p,u=p){this.domNode.setAttribute("aria-label",p),this._title=u}_applyState(){this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked)}}var OD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Fd=class p 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??Vo("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,(Q)=>Q.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(Tt.addTarget(this.el));let q=C.any(D.event,R,K);this._register(q((Q)=>{if(!this.enabled)return;if(ve.stop(Q,!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)}};Fd=OD([KC(3,yn),KC(4,To)],Fd);var Z_=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Us=function(p,u){return function(g,v){u(g,v,p)}},U_,op="acceptSelectedCodeAction",np="previewSelectedCodeAction",PD=new Set([op,np,"toggleSectionCodeAction"]),AD="actionList.remove";class UC{get templateId(){return"header"}renderTemplate(p){p.classList.add("group-header");let u=document.createElement("span");return p.append(u),{container:p,text:u}}renderElement(p,u,g){g.text.textContent=p.group?.title??p.label??""}disposeTemplate(p){}}class qC{get templateId(){return"separator"}renderTemplate(p){p.classList.add("separator");let u=document.createElement("span");return p.append(u),{container:p,text:u}}renderElement(p,u,g){g.container.classList.toggle("has-label",!!p.label),g.text.textContent=p.label??""}disposeTemplate(p){}}function jC(p){return!!p.submenuActions?.length&&!p.hover?.content||!!p.hover?.expandable}function $C(p){return jC(p)&&p.hover?.showIndicator!==!1}var q_=class p{get templateId(){return"action"}constructor(u,g,v,S,y,D,T,R,K,q,Q,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=Q,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 ia(u,ui),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 Q=document.createElement("div");Q.className="action-list-item-inline-toggle",u.append(Q);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:Q,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(rR(!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=Aa(u.description,{actionHandler:(Q)=>{let te=W.parse(Q);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 Q=v.elementDisposables.add(new K_({ariaLabel:D.title??D.label,checked:D.checked,disabled:D.disabled}));if(v.inlineToggleContainer.append(Q.domNode),u.standaloneToggle)v.elementDisposables.add(this._registerStandaloneToggle(u,Q));v.elementDisposables.add(Q.onChange(()=>D.onChange(Q.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(op)?.getLabel(),R=this._keybindingService.lookupKeybinding(np)?.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(cl({id:AD,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 $i(v.toolbar);if(v.elementDisposables.add(q),this._stopToolbarPointerPropagation)v.elementDisposables.add(Pc(v.toolbar,(Q)=>{Q.preventDefault(),Q.stopPropagation()})),v.elementDisposables.add(l(v.toolbar,x.CLICK,(Q)=>Q.stopPropagation())),v.elementDisposables.add(l(v.toolbar,wt.Tap,(Q)=>Q.stopPropagation()));else v.elementDisposables.add(Pc(v.toolbar,(Q)=>Q.preventDefault()));q.push(K,{icon:!0,label:!1}),v.elementDisposables.add(this._registerToolbar(u,q))}if($C(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(jC(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()}};q_=Z_([Us(10,ce),Us(11,To)],q_);class j_ extends UIEvent{constructor(){super("acceptSelectedAction")}}class $_ extends UIEvent{constructor(){super("previewSelectedAction")}}function FD(p){if(p.kind==="action")return p.label;return}var G_=U_=class p 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},Q=()=>{let ne=this._options?.reserveSubmenuSpace??!0;return ne==="always"||ne&&this._allMenuItems.some($C)};this._list=this._register(new io(u,this.domNode,q,[new q_(this._supportsPreview,(ne)=>this._removeItem(ne),(ne)=>this._showSubmenuForItem(ne),Q,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 UC,new qC],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter&&!this._options?.onType,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:FD},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:cr(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(Mh),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&&PD.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 $i(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(Fd,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(Qv(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)&&(wr(re)||re.closest('button, a, [contenteditable="true"], .action-list-submenu-panel')))return;if((!this._filterInput||!os(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=(Ve)=>{let qe=(Ve.label??"").toLowerCase(),Te=typeof Ve.description==="string"?Ve.description:Ve.description?.value??"";return qe.includes(S)||Te.toLowerCase().includes(S)};for(let Ve of this._allMenuItems){if(Ve.kind==="header")continue;if(Ve.kind==="separator"){Ae(),ae=Ve.label?Ve:void 0;continue}if(Ve.showAlways){ge.push(Ve);continue}if(Ve.isSectionToggle)continue;if(Ve.filterItems){let qe=He(Ve)?Ve.filterItems:Ve.filterItems.filter(He);if(qe.length>0)ke=!0,ge.push(...qe);continue}if(He(Ve))ke=!0,ge.push(Ve)}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 Q=[],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;Q[ae]=te,te=!1}for(let ae=D.length-1;ae>=0;ae--){let ge=D[ae];if(ge.kind!=="separator")continue;let ke=Q[ae],Ae=!ge.label&&!K[ae];if(!ke||Ae)D.splice(ae,1)}if(this._options?.showGroupTitleOnFirstItem)this._recomputeGroupTitles(D);let ne=this._filterInput&&os(this._filterInput),re=Fc(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(os(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 Q=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(Q),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&&os(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&&os(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||!os(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 $_:new j_;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=fh(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 j_)){if(this._list.setSelection([]),this._showSubmenuForItem(g),!v)this._currentSubmenuWidget?.focus();return}if(g.item&&this.focusCondition(g)){let S=u.browserEvent instanceof $_;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=Et();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 Q=T.panelControls.indexOf(D);if(Q>0)q=T.panelControls[Q-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 Q=T.toolbar.viewItems.findIndex((te,ne)=>T.toolbar?.isFocused(ne));if(Q>0){ve.stop(u,!0),T.toolbar.focus(Q-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 Q=T.toolbar.viewItems.findIndex((te,ne)=>T.toolbar?.isFocused(ne));if(Q+1<T.toolbar.length()){ve.stop(u,!0),T.toolbar.focus(Q+1);return}q=T.panelControls[0]}else{let Q=T.panelControls.indexOf(D);if(Q>=0)q=T.panelControls[Q+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 $a(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=Aa(ke,{actionHandler:(Ve)=>{let qe=W.parse(Ve);if(Ae)Ae(qe,u);else this._openerService.open(qe,{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 Ve=this._keybindingService.lookupKeybinding(He.commandId),qe=this._submenuDisposables.add(Ah.render(Ae,{label:He.label,commandId:He.commandId,run:(Te)=>He.run(Te),iconClass:He.iconClass},Ve?.getLabel()??null));this._submenuHoverActionElements.push(qe.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),Q=0,te=R?R.offsetWidth:0,ne;if(S){let ke=this._createSubmenuItems(u.submenuActions),Ae={onHide:()=>{},onSelect:(qe)=>{qe.run();let Te=this._currentSubmenuElement?.item;if(this._hideSubmenu(),Te)this._delegate.onSelect(Te);this.hide()}},He=this._submenuDisposables.add(this._instantiationService.createInstance(U_,"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(),Q=He.computeListHeight(),He.layout(Q);let Ve=He.computeMaxWidth(0);if(te=Math.max(te,Ve,He.footerContainer?.offsetWidth??0),He.layout(Q,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(()=>{Q=He.computeListHeight(),He.layout(Q,te),this._layoutSubmenu?.()})),this._submenuDisposables.add(l(y,"keydown",(qe)=>{if(qe.key==="Escape")ve.stop(qe,!0),this._hideSubmenu(),this.hide();else if(qe.key==="ArrowLeft")ve.stop(qe,!0),this._hideSubmenu(),this._setKeyboardNavigation(!0),this._list.domFocus();else if(qe.key==="Enter"||qe.key===" ")ve.stop(qe,!0),He.acceptSelected();else if(qe.key==="ArrowDown")ve.stop(qe,!0),He.focusNext();else if(qe.key==="ArrowUp")ve.stop(qe,!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,Ve=this._options?.persistentHover;if(!He&&(!Ve||!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 qe=this.domNode.getBoundingClientRect(),Te=Ve||ke.hover?.alignToParent,We=Te?this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect()??qe:qe,Je=He?.getBoundingClientRect()??We,tt=Te||v?lg(this.domNode):1;if(Ve)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:Je.right),_t=We.left,st=Te?0:4,Ct=4;if(!Te){let vi=q.innerWidth-2*Ct;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(Ve&&this._submenuSide&&(this._submenuSide==="right"?nt:_t)>=je)at=this._submenuSide==="right";if(Ve)this._submenuSide=at?"right":"left";let li=at?We.right-qe.left+st:We.left-qe.left-je-st,vt=qe.left+li;if(vt<Ct)li+=Ct-vt;else if(vt+je>q.innerWidth-Ct)li-=vt+je-(q.innerWidth-Ct);this._submenuContainer.style.left=`${li/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?Je.top-qe.top:He?Je.top-qe.top+(Je.height-bi)/2:ot.top-qe.top;if(v&&ke.hover?.alignToAnchorTop&&D&&ne){let vi=ot.height-D.getBoundingClientRect().height,gi=(ne.headerContainer?.offsetHeight??0)+(ne.filterContainer?.offsetHeight??0)+(ne.footerContainer?.offsetHeight??0),ai=vi+(gi+Q)*tt;Zt=Math.min(Zt,q.innerHeight-qe.top-ai-8)}let $t=qe.top+Zt+bi;if($t>q.innerHeight&&!(v&&ke.hover?.alignToAnchorTop))Zt-=$t-q.innerHeight+8;if(qe.top+Zt<0)Zt=-qe.top;if(v)ae??=Zt/tt;if(D&&T){let vi=(ot.height-T.getDomNode().getBoundingClientRect().height)/tt,gi=Math.max(0,(q.innerHeight-qe.top-Zt-8)/tt-vi);D.style.height=`${Math.min(y.getBoundingClientRect().height/tt,gi)}px`,T.scanDomNode()}else if(D&&ne){let vi=(ot.height-D.getBoundingClientRect().height)/tt,gi=Math.max(0,(q.innerHeight-qe.top-Zt-8)/tt-vi),ai=(ne.headerContainer?.offsetHeight??0)+(ne.filterContainer?.offsetHeight??0)+(ne.footerContainer?.offsetHeight??0),Gi=Q===0?0:Math.max(this._actionLineHeight,Math.min(Q,gi-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 ny("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 Or).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,Q=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:Q?{content:Q}:void 0,tooltip:T.tooltip||T.label,onRemove:R.onRemove,submenuActions:T instanceof Or?[new Or(T.id,"",T.actions)]:void 0})}if(y<S.length-1)g.push({kind:"separator",label:""})}for(let y of u)if(!(y instanceof Or)){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(Et()))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 GS(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=Et();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([])}};G_=U_=Z_([Us(6,ce),Us(7,To),Us(8,L)],G_);var ip=class p 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(G_,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=_y(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}};ip=Z_([Us(7,Hr),Us(8,dr),Us(9,L)],ip);function rn(p){return p.replace(/\r\n|\r|\n/g," ")}var HD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},X_=function(p,u){return function(g,v){u(g,v,p)}};s("actionBar.toggledBackground",ou,e(1744,"Background color for toggled action items in action bar."));var GC="--action-widget-close-start-opacity",ZC="--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"),hr=class p 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),Q=this._instantiationService.createInstance(ip,u,g,v,S,R,K,y);this._contextViewService.showContextView({getAnchor:()=>y,render:(te)=>(q.set(!0),this._renderWidget(te,Q,T??[],K)),onHide:(te)=>{q.reset(),this._onWidgetClosed(te)},get anchorPosition(){return Q.anchorPosition},focus:()=>Q.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(GC,y.opacity),v.style.setProperty(ZC,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(GC),this._widgetElement?.style.removeProperty(ZC),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(Pc(R,(ke)=>ke.preventDefault()));let K=0;T.add(Pc(y,()=>{K=Date.now()+1000}));let q=document.createElement("div"),Q=u.appendChild(q);Q.classList.add("context-view-block"),T.add(Pc(Q,(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=Et();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 $i(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)}};hr=HD([X_(0,Hr),X_(1,V),X_(2,L)],hr);fe(Oo,hr,1);var gs=1100;Ze(class extends ln{constructor(){super({id:"hideCodeActionWidget",title:h(1747,"Hide action widget"),precondition:Co.Visible,keybinding:{weight:gs,primary:9,secondary:[1033]}})}run(p){p.get(Oo).hide(!0)}});Ze(class extends ln{constructor(){super({id:"clearFilterCodeActionWidget",title:h(1748,"Clear action widget filter"),precondition:_.and(Co.Visible,Co.FilterFocused),keybinding:{weight:gs+1,primary:9}})}run(p){let u=p.get(Oo);if(u instanceof hr){if(!u.clearFilter())u.hide(!0)}}});Ze(class extends ln{constructor(){super({id:"selectPrevCodeAction",title:h(1749,"Select previous action"),precondition:Co.Visible,keybinding:{weight:gs,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(p){let u=p.get(Oo);if(u instanceof hr)u.focusPrevious()}});Ze(class extends ln{constructor(){super({id:"selectNextCodeAction",title:h(1750,"Select next action"),precondition:Co.Visible,keybinding:{weight:gs,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(p){let u=p.get(Oo);if(u instanceof hr)u.focusNext()}});Ze(class extends ln{constructor(){super({id:"collapseSectionCodeAction",title:h(1751,"Collapse section"),precondition:_.and(Co.Visible,Co.FilterFocused.negate()),keybinding:{weight:gs,primary:15}})}run(p){let u=p.get(Oo);if(u instanceof hr)u.collapseSection()}});Ze(class extends ln{constructor(){super({id:"expandSectionCodeAction",title:h(1752,"Expand section"),precondition:_.and(Co.Visible,Co.FilterFocused.negate()),keybinding:{weight:gs,primary:17}})}run(p){let u=p.get(Oo);if(u instanceof hr)u.expandSection()}});Ze(class extends ln{constructor(){super({id:"toggleSectionCodeAction",title:h(1753,"Toggle section"),precondition:_.and(Co.Visible,Co.FilterFocused.negate()),keybinding:{weight:gs,primary:10}})}run(p){let u=p.get(Oo);if(u instanceof hr){if(!u.toggleSection())u.acceptSelected()}}});Ze(class extends ln{constructor(){super({id:op,title:h(1754,"Accept selected action"),precondition:Co.Visible,keybinding:{weight:gs,primary:3,secondary:[2137]}})}run(p){let u=p.get(Oo);if(u instanceof hr)u.acceptSelected()}});Ze(class extends ln{constructor(){super({id:np,title:h(1755,"Preview selected action"),precondition:Co.Visible,keybinding:{weight:gs,primary:2051}})}run(p){let u=p.get(Oo);if(u instanceof hr)u.acceptSelected(!0)}});var XC=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Hd=function(p,u){return function(g,v){u(g,v,p)}},Y_,J_=class p extends n{static{Y_=this}static{this.baseId="editor.widget.postEditWidget"}constructor(u,g,v,S,y,D,T,R,K,q,Q){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=Q,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 uu(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(l(this.domNode,x.CLICK,()=>this.showSelector()))}getId(){return Y_.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)}};J_=Y_=XC([Hd(8,V),Hd(9,ce),Hd(10,Oo)],J_);var Gm=class p 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 Wr(this._editor,3,void 0,y),Q;try{Q=await ZI(S(T,q.token),q.token)}catch(ke){return K(ke,e(991,`Error resolving edit '{0}':
|
|
5
|
+
{1}`,T.title,qm(ke)))}finally{q.dispose()}if(y.isCancellationRequested)return;let te=tp(D.uri,u,Q),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,qm(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(J_,this._id,this._editor,this._visibleContext,this._showCommand,u,g,v,this._getAdditionalActions())}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Gm=XC([Hd(5,L),Hd(6,_l),Hd(7,ut)],Gm);var WD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},ps=function(p,u){return function(g,v){u(g,v,p)}},sn,MS="editor.changePasteType",BD="editor.pasteAs.preferences",Yx=new A("pasteWidgetVisible",!1,e(971,"Whether the paste widget is showing")),Q_="application/vnd.code.copymetadata",Vl=class p 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((Q)=>this.handleCopy(Q))),this._register(u.onWillCut((Q)=>this.handleCopy(Q))),this._register(u.onWillPaste((Q)=>this.handlePaste(Q))),this._pasteProgressManager=this._register(new Um("pasteIntoEditor",u,g)),this._postPasteWidgetManager=this._register(g.createInstance(Gm,"pasteIntoEditor",u,Yx,{id:MS,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((Q)=>!!Q.prepareDocumentPaste);if(!D.length){this.setCopyMetadata(u.clipboardData,{defaultPastePayload:y});return}let T=new Ih,R=D.flatMap((Q)=>Q.copyMimeTypes??[]),K=Da();this.setCopyMetadata(u.clipboardData,{id:K,providerCopyMimeTypes:R,defaultPastePayload:y});let q=D.map((Q)=>({providerMimeTypes:Q.copyMimeTypes,operation:Pt((te)=>Q.prepareDocumentPaste(g,u.dataToCopy.sourceRanges,T,te).catch((ne)=>{console.error(ne);return}))}));sn._currentCopyOperation?.operations.forEach((Q)=>Q.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(Q_),Oi.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((Q)=>XS(Q,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;Oi.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 Wr(D,3,void 0),R=Pt(async(K)=>{let q=this._editor;if(!q.hasModel())return;let Q=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 Wd)return this.applyDefaultPasteHandler(v,S,re,y);let ge={triggerKind:Vp.Automatic},ke=await this.getPasteEdits(ae,v,Q,g,ge,re);if(te.add(ke),re.isCancellationRequested)return;if(ke.edits.length===1&&ke.edits[0].provider instanceof Wd)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(Q,ke.edits),allEdits:ke.edits},Ae,async(He,Ve)=>{if(!He.provider.resolveDocumentPasteEdit)return He;let qe=He.provider.resolveDocumentPasteEdit(He,Ve),Te=new Cs,We=await this._pasteProgressManager.showWhile(g[0].getEndPosition(),e(975,"Resolving paste edit for '{0}'. Click to cancel",He.title),al(Promise.race([Te.p,qe]),Ve),{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,Q=q.add(new Wr(R,3,void 0,T));try{if(await this.mergeInDataFromCopy(g,S,y,Q.token),Q.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:Vp.PasteAs,only:u&&"only"in u?u.only:void 0},re=q.add(await this.getPasteEdits(te,S,K,v,ne,Q.token));if(Q.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?[UI({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=tp(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(Q_,JSON.stringify(g))}fetchCopyMetadata(u){this._logService.trace("CopyPasteController#fetchCopyMetadata");let g=u.clipboardData.getData(Q_);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)=>XS(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,py(cf.create(y)))}}async getPasteEdits(u,g,v,S,y,D){let T=new c,R=await al(Promise.all(u.map(async(q)=>{try{let Q=await q.provideDocumentPasteEdits?.(v,S,g,y,D);if(Q)T.add(Q);return Q?.edits?.map((te)=>({...te,provider:q}))}catch(Q){if(!Kn(Q))console.error(Q);return}})),D),K=Xi(R??[]).flat().filter((q)=>!y.only||y.only.contains(q.kind));return{edits:Jx(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(BD,{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}};Vl=sn=WD([ps(1,L),ps(2,Be),ps(3,_l),ps(4,Xn),ps(5,Ne),ps(6,X),ps(7,j),ps(8,dn),ps(9,J0)],Vl);var ed="9_cutcopypaste",VD=vr||document.queryCommandSupported&&document.queryCommandSupported("cut"),JC=vr||document.queryCommandSupported&&document.queryCommandSupported("copy"),zD=typeof navigator.clipboard>"u"||Wn?document.queryCommandSupported&&document.queryCommandSupported("paste"):!0;function ib(p){return p.register(),p}var KD=VD?ib(new vh({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:vr?{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:ed,title:e(865,"Cut"),when:o.writable,order:1},{menuId:a.CommandPalette,group:"",title:e(866,"Cut"),order:1},{menuId:a.SimpleEditorContext,group:ed,title:e(867,"Cut"),when:o.writable,order:1}]})):void 0,UD=JC?ib(new vh({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:vr?{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:ed,title:e(869,"Copy"),order:2},{menuId:a.CommandPalette,group:"",title:e(870,"Copy"),order:1},{menuId:a.SimpleEditorContext,group:ed,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:ed,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 eb=zD?ib(new vh({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:vr?{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:ed,title:e(873,"Paste"),when:o.writable,order:4},{menuId:a.CommandPalette,group:"",title:e(874,"Paste"),order:1},{menuId:a.SimpleEditorContext,group:ed,title:e(875,"Paste"),when:o.writable,order:4}]})):void 0;class QC 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(p,u){let g=p.get(Be),v=p.get(Xn);if(g.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!u.hasModel())return;if(!u.getOption(45)&&u.getSelection().isEmpty())return;Vc.forceCopyWithSyntaxHighlighting=!0,u.focus(),g.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),tb(u,v),g.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),Vc.forceCopyWithSyntaxHighlighting=!1}}function tb(p,u){if(Vc.electronBugWorkaroundCopyEventHasFired=!1,p.getContainerDomNode().ownerDocument.execCommand("copy"),vr&&Vc.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:g}=SR(p._getViewModel(),void 0,Wn);u.writeText(g.text)}}function fy(p,u){if(!p)return;p.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")YC(D),S.trace("registerExecCommandImpl (before execCommand copy)"),tb(D,y),D.trigger(void 0,"cut",void 0),S.trace("registerExecCommandImpl (after execCommand copy)");else{if(YC(D),S.trace("registerExecCommandImpl (before execCommand "+u+")"),u==="copy")tb(D,y);else D.getContainerDomNode().ownerDocument.execCommand(u);S.trace("registerExecCommandImpl (after execCommand "+u+")")}return!0}return!1}),p.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+")"),ph().execCommand(u),S.trace("registerExecCommandImpl (after execCommand "+u+")"),!0})}function YC(p){if(p.getOption(171)){let g=gy.get(p.getId());if(g)g.handleWillCopy()}}fy(KD,"cut");fy(UD,"copy");if(eb)eb.addImplementation(1e4,"code-editor",(p,u)=>{let g=p.get(Be);g.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");let v=p.get(ye),S=p.get(Xn),y=v.getFocusedCodeEditor();if(y&&y.hasModel()&&y.hasTextFocus()){if(y.getOption(171)){let R=gy.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)"),Vl.get(y)?.finishedPaste()??Promise.resolve()));else g.trace("registerExecCommandImpl (triggerPaste undefined)");if(Qr)return g.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{let R=await S.readText();if(R!==""){let K=Rh.INSTANCE.get(R),q=!1,Q=null,te=null;if(K)q=y.getOption(45)&&!!K.isFromEmptySelection,Q=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:Q,mode:te})}})();return!0}return!1}),eb.addImplementation(0,"generic-dom",(p,u)=>(p.get(Be).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),p.get(Xn).triggerPaste(Me().vscodeWindowId)??!1));if(JC)I(QC);class Tr{constructor(p,u,g){this.languageConfigurationService=g,this._selection=p,this._insertSpace=u,this._usedEndToken=null}static _haystackHasNeedleAtOffset(p,u,g){if(g<0)return!1;let v=u.length,S=p.length;if(g+v>S)return!1;for(let y=0;y<v;y++){let D=p.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(p,u,g,v,S,y){let{startLineNumber:D,startColumn:T,endLineNumber:R,endColumn:K}=p,q=S.getLineContent(D),Q=S.getLineContent(R),te=q.lastIndexOf(u,T-1+u.length),ne=Q.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=Q.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&&Q.charCodeAt(ne-1)===32)g=" "+g,ne-=1;re=Tr._createRemoveBlockCommentOperations(new t(D,te+u.length+1,R,ne+1),u,g)}else re=Tr._createAddBlockCommentOperations(p,u,g,this._insertSpace),this._usedEndToken=re.length===1?g:null;for(let ae of re)y.addTrackedEditOperation(ae.range,ae.text)}static _createRemoveBlockCommentOperations(p,u,g){let v=[];if(!t.isEmpty(p))v.push(Mt.delete(new t(p.startLineNumber,p.startColumn-u.length,p.startLineNumber,p.startColumn))),v.push(Mt.delete(new t(p.endLineNumber,p.endColumn,p.endLineNumber,p.endColumn+g.length)));else v.push(Mt.delete(new t(p.startLineNumber,p.startColumn-u.length,p.endLineNumber,p.endColumn+g.length)));return v}static _createAddBlockCommentOperations(p,u,g,v){let S=[];if(!t.isEmpty(p))S.push(Mt.insert(new r(p.startLineNumber,p.startColumn),u+(v?" ":""))),S.push(Mt.insert(new r(p.endLineNumber,p.endColumn),(v?" ":"")+g));else S.push(Mt.replace(new t(p.startLineNumber,p.startColumn,p.endLineNumber,p.endColumn),u+" "+g));return S}getEditOperations(p,u){let g=this._selection.startLineNumber,v=this._selection.startColumn;p.tokenization.tokenizeIfCheap(g);let S=p.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,p,u)}computeCursorState(p,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 Rr{constructor(p,u,g,v,S,y,D){this.languageConfigurationService=p,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(p,u,g,v){p.tokenization.tokenizeIfCheap(u);let S=p.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(p,u,g,v,S,y,D,T,R){let K=!0,Q=T.getLanguageConfiguration(R).comments?.lineCommentNoIndent??!1,te;if(p===0)te=!0;else if(p===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=Q?0:ke.length;continue}K=!1;let He=Q?0:Ae;if(ae.ignore=!1,ae.commentStrOffset=He,te&&!Tr._haystackHasNeedleAtOffset(ke,ae.commentStr,He))if(p===0)te=!1;else if(p===1);else ae.ignore=!0;if(te&&u){let Ve=Ae+ae.commentStrLength;if(Ve<ke.length&&ke.charCodeAt(Ve)===32)ae.commentStrLength+=1}}if(p===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(p,u,g,v,S,y,D,T){let R=Rr._gatherPreflightCommentStrings(g,v,S,T),K=g.getLanguageIdAtPosition(v,1);if(R===null)return{supported:!1};return Rr._analyzeLines(p,u,g,R,v,y,D,T,K)}_executeLineComments(p,u,g,v){let S;if(g.shouldRemoveComments)S=Rr._createRemoveLineCommentsOperations(g.lines,v.startLineNumber);else Rr._normalizeInsertionPoint(p,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(p.getLineContent(y.lineNumber).length+1===y.column)this._deltaColumn=(S[D].text||"").length}this._selectionId=u.trackSelection(v)}_attemptRemoveBlockComment(p,u,g,v){let{startLineNumber:S,endLineNumber:y}=u,D=v.length+Math.max(p.getLineFirstNonWhitespaceColumn(u.startLineNumber),u.startColumn),T=p.getLineContent(S).lastIndexOf(g,D-1),R=p.getLineContent(y).indexOf(v,u.endColumn-1-g.length);if(T!==-1&&R===-1)R=p.getLineContent(S).indexOf(v,T+g.length),y=S;if(T===-1&&R!==-1)T=p.getLineContent(y).lastIndexOf(g,R),S=y;if(u.isEmpty()&&(T===-1||R===-1)){if(T=p.getLineContent(S).indexOf(g),T!==-1)R=p.getLineContent(S).indexOf(v,T+g.length)}if(T!==-1&&p.getLineContent(S).charCodeAt(T+g.length)===32)g+=" ";if(R!==-1&&p.getLineContent(y).charCodeAt(R-1)===32)v=" "+v,R-=1;if(T!==-1&&R!==-1)return Tr._createRemoveBlockCommentOperations(new t(S,T+g.length+1,y,R+1),g,v);return null}_executeBlockComment(p,u,g){p.tokenization.tokenizeIfCheap(g.startLineNumber);let v=p.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(p,g,y,D);if(!T){if(g.isEmpty()){let R=p.getLineContent(g.startLineNumber),K=In(R);if(K===-1)K=R.length;T=Tr._createAddBlockCommentOperations(new t(g.startLineNumber,K+1,g.startLineNumber,R.length+1),y,D,this._insertSpace)}else T=Tr._createAddBlockCommentOperations(new t(g.startLineNumber,p.getLineFirstNonWhitespaceColumn(g.startLineNumber),g.endLineNumber,p.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(p,u){let g=this._selection;if(this._moveEndPositionDown=!1,g.startLineNumber===g.endLineNumber&&this._ignoreFirstLine){u.addEditOperation(new t(g.startLineNumber,p.getLineMaxColumn(g.startLineNumber),g.startLineNumber+1,1),g.startLineNumber===p.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,p.getLineMaxColumn(g.endLineNumber-1));let v=Rr._gatherPreflightData(this._type,this._insertSpace,p,g.startLineNumber,g.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);if(v.supported)return this._executeLineComments(p,u,v,g);return this._executeBlockComment(p,u,g)}computeCursorState(p,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(p,u){let g=[];for(let v=0,S=p.length;v<S;v++){let y=p[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(p,u){let g=[],v=this._insertSpace?" ":"";for(let S=0,y=p.length;S<y;S++){let D=p[S];if(D.ignore)continue;g.push(Mt.insert(new r(u+S,D.commentStrOffset+1),D.commentStr+v))}return g}static nextVisibleColumn(p,u,g,v){if(g)return p+(u-p%u);return p+v}static _normalizeInsertionPoint(p,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=p.getLineContent(g+T),q=0;for(let Q=0,te=u[T].commentStrOffset;q<S&&Q<te;Q++)q=Rr.nextVisibleColumn(q,v,K.charCodeAt(Q)===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=p.getLineContent(g+T),q=0;for(y=0,D=u[T].commentStrOffset;q<S&&y<D;y++)q=Rr.nextVisibleColumn(q,v,K.charCodeAt(y)===9,1);if(q>S)u[T].commentStrOffset=y-1;else u[T].commentStrOffset=y}}}class rp extends z{constructor(p,u){super(u);this._type=p}run(p,u){let g=p.get(et);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 Rr(g,K.selection,y.indentSize,this._type,D.insertSpace,D.ignoreEmptyLines,K.ignoreFirstLine));u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class Oy extends rp{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 Fy extends rp{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 Hy extends rp{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 Wy 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(p,u){let g=p.get(et);if(!u.hasModel())return;let v=u.getOption(29),S=[],y=u.getSelections();for(let D of y)S.push(new Tr(D,v.insertSpace,g));u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}I(Oy);I(Fy);I(Hy);I(Wy);class sp{constructor(p){this.selections=p}equals(p){let u=this.selections.length,g=p.selections.length;if(u!==g)return!1;for(let v=0;v<u;v++)if(!this.selections[v].equalsSelection(p.selections[v]))return!1;return!0}}class ap{constructor(p,u,g){this.cursorState=p,this.scrollTop=u,this.scrollLeft=g}}class Bd extends n{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(p){return p.getContribution(Bd.ID)}constructor(p){super();this._editor=p,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(p.onDidChangeModel((u)=>{this._undoStack=[],this._redoStack=[]})),this._register(p.onDidChangeModelContent((u)=>{this._undoStack=[],this._redoStack=[]})),this._register(p.onDidChangeCursorSelection((u)=>{if(this._isCursorUndoRedo)return;if(!u.oldSelections)return;if(u.oldModelVersionId!==u.modelVersionId)return;let g=new sp(u.oldSelections);if(!(this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(g))){if(this._undoStack.push(new ap(g,p.getScrollTop(),p.getScrollLeft())),this._redoStack=[],this._undoStack.length>50)this._undoStack.shift()}}))}cursorUndo(){if(!this._editor.hasModel()||this._undoStack.length===0)return;this._redoStack.push(new ap(new sp(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 ap(new sp(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop())}_applyState(p){this._isCursorUndoRedo=!0,this._editor.setSelections(p.cursorState.selections),this._editor.setScrollPosition({scrollTop:p.scrollTop,scrollLeft:p.scrollLeft}),this._isCursorUndoRedo=!1}}class By extends z{constructor(){super({id:"cursorUndo",label:h(965,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:2099,weight:100}})}run(p,u,g){Bd.get(u)?.cursorUndo()}}class Vy extends z{constructor(){super({id:"cursorRedo",label:h(966,"Cursor Redo"),precondition:void 0})}run(p,u,g){Bd.get(u)?.cursorRedo()}}le(Bd.ID,Bd,0);I(By);I(Vy);class ob{constructor(p,u,g){this.selection=p,this.targetPosition=u,this.copy=g,this.targetSelection=null}getEditOperations(p,u){let g=p.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(p,u){return this.targetSelection}}function zd(p){if(ue)return p.altKey;else return p.ctrlKey}class jd extends n{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=ue?6:5}constructor(p){super();this._editor=p,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(p){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(zd(p))this._modifierPressed=!0;if(this._mouseDown&&zd(p))this._editor.updateOptions({mouseStyle:"copy"})}onEditorKeyUp(p){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(zd(p))this._modifierPressed=!1;if(this._mouseDown&&p.keyCode===jd.TRIGGER_KEY_VALUE)this._editor.updateOptions({mouseStyle:"default"})}_onEditorMouseDown(p){this._mouseDown=!0}_onEditorMouseUp(p){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(p){let u=p.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(zd(p.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(p){if(p.target&&(this._hitContent(p.target)||this._hitMargin(p.target))&&p.target.position){let u=new r(p.target.position.lineNumber,p.target.position.column);if(this._dragSelection===null){let g=null;if(p.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)||(zd(p.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(u)||this._dragSelection.getStartPosition().equals(u)))this._editor.pushUndoStop(),this._editor.executeCommand(jd.ID,new ob(this._dragSelection,u,zd(p.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(p){this._dndDecorationIds.set([{range:new t(p.lineNumber,p.column,p.lineNumber,p.column),options:jd._DECORATION_OPTIONS}]),this._editor.revealPosition(p,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(p){return p.type===6||p.type===7}_hitMargin(p){return p.type===2||p.type===3||p.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}le(jd.ID,jd,2);function nb(p,u,g,v){if(p.getLineCount()===1&&p.getLineMaxColumn(1)===1)return[];let S=u.getLanguageConfiguration(p.getLanguageId()).indentRulesSupport;if(!S)return[];let y=new _g(p,S,u);v=Math.min(v,p.getLineCount());while(g<=v){if(!y.shouldIgnore(g))break;g++}if(g>v-1)return[];let{tabSize:D,indentSize:T,insertSpaces:R}=p.getOptions(),K=(ae,ge)=>(ge=ge||1,Cr.shiftIndent(ae,ae.length+ge,D,T,R)),q=(ae,ge)=>(ge=ge||1,Cr.unshiftIndent(ae,ae.length+ge,D,T,R)),Q=[],te=p.getLineContent(g),ne=St(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(qD(p,ae))continue;let ge=p.getLineContent(ae),ke=St(ge),Ae=re;if(y.shouldDecrease(ae,Ae))re=q(re),ne=q(ne);if(ke!==re)Q.push(Mt.replaceMove(new O(ae,1,ae,ke.length+1),wg(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 Q}function qD(p,u){if(!p.tokenization.isCheapToTokenize(u))return!1;return p.tokenization.getLineTokens(u).getStandardTokenType(0)===2}function Ji(p,u){let g=0;for(let v=0;v<p.length;v++)if(p.charAt(v)==="\t")g+=u;else g++;return g}function td(p,u,g){p=p<0?0:p;let v="";if(!g){let S=Math.floor(p/u);p=p%u;for(let y=0;y<S;y++)v+="\t"}for(let S=0;S<p;S++)v+=" ";return v}var jD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class rb extends z{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:rb.ID,label:h(1204,"Convert Indentation to Spaces"),precondition:o.writable,metadata:{description:h(1205,"Convert the tab indentation to spaces.")}})}run(p,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:!0})}}class sb extends z{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:sb.ID,label:h(1206,"Convert Indentation to Tabs"),precondition:o.writable,metadata:{description:h(1207,"Convert the spaces indentation to tabs.")}})}run(p,u){let g=u.getModel();if(!g)return;let v=g.getOptions(),S=u.getSelection();if(!S)return;let y=new Gy(S,v.tabSize);u.pushUndoStop(),u.executeCommands(this.id,[y]),u.pushUndoStop(),g.updateOptions({insertSpaces:!1})}}class cp extends z{constructor(p,u,g){super(g);this.insertSpaces=p,this.displaySizeOnly=u}run(p,u){let g=p.get(dn),v=p.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 ab extends cp{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:ab.ID,label:h(1208,"Indent Using Tabs"),precondition:void 0,metadata:{description:h(1209,"Use indentation with tabs.")}})}}class db extends cp{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:db.ID,label:h(1210,"Indent Using Spaces"),precondition:void 0,metadata:{description:h(1211,"Use indentation with spaces.")}})}}class cb extends cp{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:cb.ID,label:h(1212,"Change Tab Display Size"),precondition:void 0,metadata:{description:h(1213,"Change the space size equivalent of the tab.")}})}}class lb extends z{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:lb.ID,label:h(1214,"Detect Indentation from Content"),precondition:void 0,metadata:{description:h(1215,"Detect the indentation from content.")}})}run(p,u){let g=p.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 zy 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(p,u){let g=p.get(et),v=u.getModel();if(!v)return;let S=nb(v,g,1,v.getLineCount());if(S.length>0)u.pushUndoStop(),u.executeEdits(this.id,S),u.pushUndoStop()}}class Ky 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(p,u){let g=p.get(et),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=nb(v,g,T,R);y.push(...K)}if(y.length>0)u.pushUndoStop(),u.executeEdits(this.id,y),u.pushUndoStop()}}class Uy{constructor(p,u){this._initialSelection=u,this._edits=[],this._selectionId=null;for(let g of p)if(g.range&&typeof g.text==="string")this._edits.push(g)}getEditOperations(p,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(p,u){return u.getTrackedSelection(this._selectionId)}}var dp=class p{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)&&GD(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)=>Cr.shiftIndent(re,re.length+1,D,T,R),unshiftIndent:(re)=>Cr.unshiftIndent(re,re.length+1,D,T,R)},Q=u.startLineNumber,te=v.getLineContent(Q);if(!/\S/.test(te.substring(0,u.startColumn-1))){let re=uf(y,v,v.getLanguageId(),Q,q,this._languageConfigurationService);if(re!==null){let ae=St(te),ge=Ji(re,D),ke=Ji(ae,D);if(ge!==ke){let Ae=td(ge,D,R);K.push({range:new t(Q,1,Q,ae.length+1),text:Ae}),te=Ae+te.substring(ae.length)}else{let Ae=L0(v,Q,this._languageConfigurationService);if(Ae===0||Ae===8)return}}}let ne=Q;while(Q<u.endLineNumber){if(!/\S/.test(v.getLineContent(Q+1))){Q++;continue}break}if(Q!==u.endLineNumber){let ae=uf(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(),Q+1,q,this._languageConfigurationService);if(ae!==null){let ge=Ji(ae,D),ke=Ji(St(v.getLineContent(Q+1)),D);if(ge!==ke){let Ae=ge-ke;for(let He=Q+1;He<=u.endLineNumber;He++){let Ve=v.getLineContent(He),qe=St(Ve),We=Ji(qe,D)+Ae,Je=td(We,D,R);if(Je!==qe)K.push({range:new t(He,1,He,qe.length+1),text:Je})}}}}if(K.length>0){this.editor.pushUndoStop();let re=new Uy(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()}};dp=jD([$D(1,et)],dp);function GD(p,u){let g=(v)=>hR(p,v)===2;return g(u.getStartPosition())||g(u.getEndPosition())}function qy(p,u,g,v){if(p.getLineCount()===1&&p.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=p.getLineCount();D<=T;D++){let R=p.getLineFirstNonWhitespaceColumn(D);if(R===0)R=p.getLineMaxColumn(D);if(R===1)continue;let K=new t(D,1,D,R),q=p.getValueInRange(K),Q=v?q.replace(/\t/ig,S):q.replace(y,"\t");u.addEditOperation(K,Q)}}class jy{constructor(p,u){this.selection=p,this.tabSize=u,this.selectionId=null}getEditOperations(p,u){this.selectionId=u.trackSelection(this.selection),qy(p,u,this.tabSize,!0)}computeCursorState(p,u){return u.getTrackedSelection(this.selectionId)}}class Gy{constructor(p,u){this.selection=p,this.tabSize=u,this.selectionId=null}getEditOperations(p,u){this.selectionId=u.trackSelection(this.selection),qy(p,u,this.tabSize,!1)}computeCursorState(p,u){return u.getTrackedSelection(this.selectionId)}}le(dp.ID,dp,2);I(rb);I(sb);I(ab);I(db);I(cb);I(lb);I(zy);I(Ky);class Zy extends z{constructor(){super({id:"expandLineSelection",label:h(1309,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:o.textInputFocus,primary:2090}})}run(p,u,g){if(g=g||{},!u.hasModel())return;let v=u._getViewModel();v.model.pushStackElement(),v.setCursorStates(g.source,3,mi.expandLineSelection(v,v.getCursorStates())),v.revealAllCursors(g.source,!0)}}I(Zy);class hb{constructor(p,u,g){this._selection=p,this._cursors=u,this._selectionId=null,this._trimInRegexesAndStrings=g}getEditOperations(p,u){let g=ZD(p,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(p,u){return u.getTrackedSelection(this._selectionId)}}function ZD(p,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=p.getLineCount();T<=R;T++){let K=p.getLineContent(T),q=K.length+1,Q=0;if(y<D&&u[y].lineNumber===T){if(Q=u[y].column,y++,Q===q)continue}if(K.length===0)continue;let te=jo(K),ne=0;if(te===-1)ne=1;else if(te!==K.length-1)ne=te+2;else continue;if(!g){if(!p.tokenization.hasAccurateTokensForLine(T))continue;let re=p.tokenization.getLineTokens(T),ae=re.getStandardTokenType(re.findTokenIndexAtOffset(ne));if(ae===2||ae===3)continue}ne=Math.max(Q,ne),v[S++]=Mt.delete(new t(T,ne,T,q))}return v}class lp{constructor(p,u,g){this._selection=p,this._isCopyingDown=u,this._noop=g||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(p,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,p.getLineMaxColumn(g.endLineNumber-1));let v=[];for(let y=g.startLineNumber;y<=g.endLineNumber;y++)v.push(p.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,p.getLineMaxColumn(g.endLineNumber),g.endLineNumber+1,1),g.endLineNumber===p.getLineCount()?"":`
|
|
9
|
+
`);else if(!this._isCopyingDown)u.addEditOperation(new t(g.endLineNumber,p.getLineMaxColumn(g.endLineNumber),g.endLineNumber,p.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(p,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 XD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},YD=function(p,u){return function(g,v){u(g,v,p)}},hp=class p{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 Q=q;if(this.shouldAutoIndent(u,S)){let te=this.matchEnterRule(u,R,y,K,S.startLineNumber-1);if(te!==null){let re=St(u.getLineContent(K)),ae=te+Ji(re,y);Q=td(ae,y,T)+this.trimStart(q)}else{let re=this.createVirtualModel(u,(ge)=>ge===S.startLineNumber?K:ge),ae=uf(this._autoIndent,re,u.getLanguageIdAtPosition(K,1),S.startLineNumber,R,this._languageConfigurationService);if(ae!==null){let ge=St(u.getLineContent(K)),ke=Ji(ae,y),Ae=Ji(ge,y);if(ke!==Ae)Q=td(ke,y,T)+this.trimStart(q)}}g.addEditOperation(new t(S.startLineNumber,1,S.startLineNumber,1),Q+`
|
|
12
|
+
`);let ne=this.matchEnterRuleMovingDown(u,R,y,S.startLineNumber,K,Q);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?Q:void 0),ae=uf(this._autoIndent,re,u.getLanguageIdAtPosition(K,1),S.startLineNumber+1,R,this._languageConfigurationService);if(ae!==null){let ge=St(u.getLineContent(S.startLineNumber)),ke=Ji(ae,y),Ae=Ji(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),Q+`
|
|
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 Q=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=uf(this._autoIndent,Q,u.getLanguageIdAtPosition(S.startLineNumber,1),K,R,this._languageConfigurationService);if(ne!==null){let re=St(u.getLineContent(S.startLineNumber)),ae=Ji(ne,y),ge=Ji(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)=>Cr.shiftIndent(S,S.length+1,u,g,v),unshiftIndent:(S)=>Cr.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=St(u.getLineContent(S)),K=St(D),q=L0(u,S,this._languageConfigurationService);if(q!==null&&q&2)K=g.unshiftIndent(K);let Q=Ji(K,v),te=Ji(R,v);return Q-te}}return null}matchEnterRuleMovingDown(u,g,v,S,y,D){if(jo(D)>=0){let T=u.getLineMaxColumn(y),R=au(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(jo(q)>=0)break;T--}if(T<1||S>u.getLineCount())return null;let R=u.getLineMaxColumn(T),K=au(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(jo(q)>=0)break;T--}if(T<1||S>u.getLineCount())return null;let R=u.getLineMaxColumn(T),K=au(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=St(R),Q=Ji(K,S)+D,te=td(Q,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}};hp=XD([YD(3,et)],hp);class th{static{this._COLLATOR=ul.Collator()}constructor(p,u){this.selection=p,this.descending=u,this.selectionId=null}getEditOperations(p,u){let g=JD(p,this.selection,this.descending);if(g)u.addEditOperation(g.range,g.text);this.selectionId=u.trackSelection(this.selection)}computeCursorState(p,u){return u.getTrackedSelection(this.selectionId)}static canRun(p,u,g){if(p===null)return!1;let v=Xy(p,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 Xy(p,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(p.getLineContent(T));let D=y.slice(0);if(D.sort(th._COLLATOR.value.compare),g===!0)D=D.reverse();return{startLineNumber:v,endLineNumber:S,before:y,after:D}}function JD(p,u,g){let v=Xy(p,u,g);if(!v)return null;return Mt.replace(new t(v.startLineNumber,1,v.endLineNumber,p.getLineMaxColumn(v.endLineNumber)),v.after.join(`
|
|
15
|
+
`))}class ub extends z{constructor(p,u){super(u);this.down=p}run(p,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 lp(y.selection,this.down,y.ignore));u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class Yy extends ub{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 Jy extends ub{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 Qy 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(p,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 lp(D,!0));else{let T=new O(D.endLineNumber,D.endColumn,D.endLineNumber,D.endColumn);v.push(new QS(T,y.getValueInRange(D)))}u.pushUndoStop(),u.executeCommands(this.id,v),u.pushUndoStop()}}class gb extends z{constructor(p,u){super(u);this.down=p}run(p,u){let g=p.get(et),v=[],S=u.getSelections()||[],y=u.getOption(16);for(let D of S)v.push(new hp(D,this.down,y,g));u.pushUndoStop(),u.executeCommands(this.id,v),u.pushUndoStop()}}class ex extends gb{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 tx extends gb{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 pb extends z{constructor(p,u){super(u);this.descending=p}run(p,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(!th.canRun(u.getModel(),y,this.descending))return;let S=[];for(let y=0,D=v.length;y<D;y++)S[y]=new th(v[y],this.descending);u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class ix extends pb{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:h(1320,"Sort Lines Ascending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class ox extends pb{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:h(1321,"Sort Lines Descending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class nx extends z{constructor(){super({id:"editor.action.removeDuplicateLines",label:h(1322,"Delete Duplicate Lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(p,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 Q=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(Q,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 rx extends z{constructor(){super({id:"editor.action.reverseLines",label:h(1323,"Reverse lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(p,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 Q=new t(R.startLineNumber,1,q,g.getLineMaxColumn(q));if(q===g.getLineCount()&&g.getLineContent(Q.endLineNumber)==="")Q=Q.setEndPosition(Q.endLineNumber-1,g.getLineMaxColumn(Q.endLineNumber-1));let te=[];for(let ge=Q.endLineNumber;ge>=Q.startLineNumber;ge--)te.push(g.getLineContent(ge));let ne=Mt.replace(Q,te.join(`
|
|
17
|
+
`));y.push(ne);let re=function(ge){return ge<=Q.endLineNumber?Q.endLineNumber-ge+Q.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:Ve}=ge;return new O(ke,He,Ae,Ve)}};D.push(ae(K))}u.pushUndoStop(),u.executeEdits(this.id,y,D),u.pushUndoStop()}}class mb extends z{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:mb.ID,label:h(1324,"Trim Trailing Whitespace"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2102),weight:100}})}run(p,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=p.get(X),D=u.getModel(),T=y.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:D?.getLanguageId(),resource:D?.uri}),R=new hb(S,v,T);u.pushUndoStop(),u.executeCommands(this.id,[R]),u.pushUndoStop()}}class sx 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(p,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:Q}=K,te=1,ne=v.getLineMaxColumn(Q);if(Q<v.getLineCount())Q+=1,ne=1;else if(q>1)q-=1,te=v.getLineMaxColumn(q);y.push(Mt.replace(new O(q,te,Q,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(p){let u=p.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 ax 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(p,u){let g=u._getViewModel();if(!g)return;u.pushUndoStop(),u.executeCommands(this.id,fl.indent(g.cursorConfig,u.getModel(),u.getSelections())),u.pushUndoStop()}}class dx 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(p,u){Dh.Outdent.runEditorCommand(p,u,null)}}class ih extends z{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:ih.ID,label:h(1328,"Insert Line Above"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(p,u){let g=u._getViewModel();if(!g)return;u.pushUndoStop(),u.executeCommands(this.id,$h.lineInsertBefore(g.cursorConfig,u.getModel(),u.getSelections()))}}class oh extends z{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:oh.ID,label:h(1329,"Insert Line Below"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(p,u){let g=u._getViewModel();if(!g)return;u.pushUndoStop(),u.executeCommands(this.id,$h.lineInsertAfter(g.cursorConfig,u.getModel(),u.getSelections()))}}class fb extends z{run(p,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 cx extends fb{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(p,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(p))g=D;else v.push(D)}),g)v.unshift(g);return v}_getRangesToDelete(p){let u=p.getSelections();if(u===null)return[];let g=u,v=p.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 lx extends fb{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(p,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(p))g=R;else v.push(R)}if(g)v.unshift(g);return v}_getRangesToDelete(p){let u=p.getModel();if(u===null)return[];let g=p.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 hx 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(p,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((Q,te)=>{if(Q.isEmpty()){if(Q.endLineNumber===te.startLineNumber){if(v.equalsSelection(Q))v=te;return te}if(te.startLineNumber>Q.endLineNumber+1)return S.push(Q),te;else return new O(Q.startLineNumber,Q.startColumn,te.endLineNumber,te.endColumn)}else if(te.startLineNumber>Q.endLineNumber)return S.push(Q),te;else return new O(Q.startLineNumber,Q.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 Q=0,te=S.length;Q<te;Q++){let ne=S[Q],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 Ve=D.getLineContent(re);for(let Te=re+1;Te<=ke;Te++){let We=D.getLineContent(Te),Je=D.getLineFirstNonWhitespaceColumn(Te);if(Je>=1){let tt=!0;if(Ve==="")tt=!1;if(tt&&(Ve.charAt(Ve.length-1)===" "||Ve.charAt(Ve.length-1)==="\t"))tt=!1,Ve=Ve.replace(/[\s\uFEFF\xA0]+$/g," ");let ot=We.substr(Je-1);if(Ve+=(tt?" ":"")+ot,tt)ge=ot.length+1;else ge=ot.length}else ge=0}let qe=new t(re,1,ke,Ae);if(!qe.isEmpty()){let Te;if(ne.isEmpty())T.push(Mt.replace(qe,Ve)),Te=new O(qe.startLineNumber-q,Ve.length-ge+1,re-q,Ve.length-ge+1);else if(ne.startLineNumber===ne.endLineNumber)T.push(Mt.replace(qe,Ve)),Te=new O(ne.startLineNumber-q,ne.startColumn,ne.endLineNumber-q,ne.endColumn);else T.push(Mt.replace(qe,Ve)),Te=new O(ne.startLineNumber-q,ne.startColumn,ne.startLineNumber-q,Ve.length-He);if(t.intersectRanges(qe,v)!==null)K=Te;else R.push(Te)}q+=qe.endLineNumber-qe.startLineNumber}R.unshift(K),u.pushUndoStop(),u.executeEdits(this.id,T,R),u.pushUndoStop()}}class ux extends z{constructor(){super({id:"editor.action.transpose",label:h(1333,"Transpose Characters around the Cursor"),precondition:o.writable,canTriggerInlineEdits:!0})}run(p,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),Q=v.getValueInRange(q).split("").reverse().join("");S.push(new ii(new O(R.lineNumber,Math.max(1,R.column-1),R.lineNumber+1,1),Q))}else{let q=new t(R.lineNumber,Math.max(1,R.column-1),R.lineNumber,R.column+1),Q=v.getValueInRange(q).split("").reverse().join("");S.push(new df(q,Q,new O(R.lineNumber,R.column+1,R.lineNumber,R.column+1)))}}u.pushUndoStop(),u.executeCommands(this.id,S),u.pushUndoStop()}}class qs extends z{run(p,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 gx extends qs{constructor(){super({id:"editor.action.transformToUppercase",label:h(1334,"Transform to Uppercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(p,u){return p.toLocaleUpperCase()}}class px extends qs{constructor(){super({id:"editor.action.transformToLowercase",label:h(1335,"Transform to Lowercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(p,u){return p.toLocaleLowerCase()}}class Xo{constructor(p,u){this._pattern=p,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(p){}}return this._actual}isSupported(){return this.get()!==null}}class up extends qs{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(p,u){let g=up.titleBoundary.get();if(!g)return p;return p.toLocaleLowerCase().replace(g,(v)=>v.toLocaleUpperCase())}}class $d extends qs{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(p,u){let g=$d.caseBoundary.get(),v=$d.singleLetters.get();if(!g||!v)return p;return p.replace(g,"$1_$2").replace(v,"$1_$2$3").toLocaleLowerCase()}}class id extends qs{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(p,u){let g=/\r\n|\r|\n/.test(p)?id.multiLineWordBoundary.get():id.singleLineWordBoundary.get(),v=id.validWordStart.get();if(!g||!v)return p;let S=p.split(g);return S.shift()?.replace(v,(D)=>D.toLocaleLowerCase())+S.map((D)=>D.substring(0,1).toLocaleUpperCase()+D.substring(1)).join("")}}class sc extends qs{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(p,u){let g=sc.wordBoundary.get(),v=sc.wordBoundaryToMaintain.get(),S=sc.upperCaseWordMatcher.get();if(!g||!v||!S)return p;return p.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 ac extends qs{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(p,u){let g=ac.caseBoundary.get(),v=ac.singleLetters.get(),S=ac.underscoreBoundary.get();if(!g||!v||!S)return p;return p.replace(S,"$1-$3").replace(g,"$1-$2").replace(v,"$1-$2").toLocaleLowerCase()}}I(Yy);I(Jy);I(Qy);I(ex);I(tx);I(ix);I(ox);I(nx);I(mb);I(sx);I(ax);I(dx);I(ih);I(oh);I(cx);I(lx);I(hx);I(ux);I(gx);I(px);I(rx);if($d.caseBoundary.isSupported()&&$d.singleLetters.isSupported())I($d);if(id.singleLineWordBoundary.isSupported()&&id.multiLineWordBoundary.isSupported())I(id);if(sc.wordBoundary.isSupported())I(sc);if(up.titleBoundary.isSupported())I(up);if(ac.isSupported())I(ac);class Po{constructor(p){this._editor=p,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 p=this._findScopeDecorationIds.map((u)=>this._editor.getModel().getDecorationRange(u)).filter((u)=>!!u);if(p.length)return p}return null}getStartPosition(){return this._startPosition}setStartPosition(p){this._startPosition=p,this.setCurrentFindMatch(null)}_getDecorationIndex(p){let u=this._decorations.indexOf(p);if(u>=0)return u+1;return 1}getDecorationRangeAt(p){let u=p<this._decorations.length?this._decorations[p]:null;if(u)return this._editor.getModel().getDecorationRange(u);return null}getCurrentMatchesPosition(p){let u=this._editor.getModel().getDecorationsInRange(p);for(let g of u){let v=g.options;if(v===Po._FIND_MATCH_DECORATION||v===Po._FIND_MATCH_NO_OVERVIEW_DECORATION||v===Po._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(g.id)}return 0}setCurrentFindMatch(p){let u=null,g=0;if(p)for(let v=0,S=this._decorations.length;v<S;v++){let y=this._editor.getModel().getDecorationRange(this._decorations[v]);if(p.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,Po._FIND_MATCH_DECORATION),this._highlightedDecorationId=null;if(u!==null)this._highlightedDecorationId=u,v.changeDecorationOptions(this._highlightedDecorationId,Po._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,Po._RANGE_HIGHLIGHT_DECORATION)}});return g}set(p,u){this._editor.changeDecorations((g)=>{let v=Po._FIND_MATCH_DECORATION,S=[];if(p.length>1000){v=Po._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=p[0].range.startLineNumber,Q=p[0].range.endLineNumber;for(let te=1,ne=p.length;te<ne;te++){let re=p[te].range;if(Q+K>=re.startLineNumber){if(re.endLineNumber>Q)Q=re.endLineNumber}else S.push({range:new t(q,1,Q,1),options:Po._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),q=re.startLineNumber,Q=re.endLineNumber}S.push({range:new t(q,1,Q,1),options:Po._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let y=Array(p.length);for(let D=0,T=p.length;D<T;D++)y[D]={range:p[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,Po._FIND_SCOPE_DECORATION))})}matchBeforePosition(p){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>p.lineNumber)continue;if(v.endLineNumber<p.lineNumber)return v;if(v.endColumn>p.column)continue;return v}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(p){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<p.lineNumber)continue;if(S.startLineNumber>p.lineNumber)return S;if(S.startColumn<p.column)continue;return S}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let p=[];if(p=p.concat(this._decorations),p=p.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)p.push(...this._findScopeDecorationIds);if(this._rangeHighlightDecorationId)p.push(this._rangeHighlightDecorationId);return p}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(C0),position:ko.Center},minimap:{color:en(ly),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(C0),position:ko.Center},minimap:{color:en(ly),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(C0),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 _b{constructor(p,u,g){this._editorSelection=p,this._ranges=u,this._replaceStrings=g,this._trackedEditorSelectionId=null}getEditOperations(p,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(p,u){return u.getTrackedSelection(this._trackedEditorSelectionId)}}function bb(p,u){if(p&&p[0]!==""){let g=mx(p,u,"-"),v=mx(p,u,"_");if(g&&!v)return fx(p,u,"-");else if(!g&&v)return fx(p,u,"_");if(p[0].toUpperCase()===p[0])return u.toUpperCase();else if(p[0].toLowerCase()===p[0])return u.toLowerCase();else if(YI(p[0][0])&&u.length>0)return u[0].toUpperCase()+u.substr(1);else if(p[0][0].toUpperCase()!==p[0][0]&&u.length>0)return u[0].toLowerCase()+u.substr(1);else return u}else return u}function mx(p,u,g){return p[0].indexOf(g)!==-1&&u.indexOf(g)!==-1&&p[0].split(g).length===u.split(g).length}function fx(p,u,g){let v=u.split(g),S=p[0].split(g),y="";return v.forEach((D,T)=>{y+=bb([S[T]],D)+g}),y.slice(0,-1)}class vb{constructor(p){this.staticValue=p,this.kind=0}}class _x{constructor(p){this.pieces=p,this.kind=1}}class nd{static fromStaticValue(p){return new nd([od.staticValue(p)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(p){if(!p||p.length===0)this._state=new vb("");else if(p.length===1&&p[0].staticValue!==null)this._state=new vb(p[0].staticValue);else this._state=new _x(p)}buildReplaceString(p,u){if(this._state.kind===0)if(u)return bb(p,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=nd._substitute(y.matchIndex,p);if(y.caseOps!==null&&y.caseOps.length>0){let T=[],R=y.caseOps.length,K=0;for(let q=0,Q=D.length;q<Q;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(p,u){if(u===null)return"";if(p===0)return u[0];let g="";while(p>0){if(p<u.length)return(u[p]||"")+g;g=String(p%10)+g,p=Math.floor(p/10)}return"$"+g}}class od{static staticValue(p){return new od(p,-1,null)}static caseOps(p,u){return new od(null,p,u)}constructor(p,u,g){if(this.staticValue=p,this.matchIndex=u,!g||g.length===0)this.caseOps=null;else this.caseOps=g.slice(0)}}class bx{constructor(p){this._source=p,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(p){this._emitStatic(this._source.substring(this._lastCharIndex,p)),this._lastCharIndex=p}emitStatic(p,u){this._emitStatic(p),this._lastCharIndex=u}_emitStatic(p){if(p.length===0)return;this._currentStaticPiece+=p}emitMatchIndex(p,u,g){if(this._currentStaticPiece.length!==0)this._result[this._resultLen++]=od.staticValue(this._currentStaticPiece),this._currentStaticPiece="";this._result[this._resultLen++]=od.caseOps(p,g),this._lastCharIndex=u}finalize(){if(this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0)this._result[this._resultLen++]=od.staticValue(this._currentStaticPiece),this._currentStaticPiece="";return new nd(this._result)}}function vx(p){if(!p||p.length===0)return new nd(null);let u=[],g=new bx(p);for(let v=0,S=p.length;v<S;v++){let y=p.charCodeAt(v);if(y===92){if(v++,v>=S)break;let D=p.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=p.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=p.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 Kr=new A("findWidgetVisible",!1);Kr.toNegated();var cc=new A("findInputFocussed",!1),nh=new A("replaceInputFocussed",!1),wx=new A("findWidgetFocused",!1),rh={primary:545,mac:{primary:2593}},sh={primary:565,mac:{primary:2613}},ah={primary:560,mac:{primary:2608}},lh={primary:554,mac:{primary:2602}},uh={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,QD=240;class dc{constructor(p,u){this._toDispose=new c,this._editor=p,this._state=u,this._isDisposed=!1,this._startSearchingTimer=new Un,this._decorations=new Po(p),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(p){if(this._isDisposed)return;if(!this._editor.hasModel())return;if(p.searchString||p.isReplaceRevealed||p.isRegex||p.wholeWord||p.matchCase||p.searchScope)if(this._editor.getModel().isTooLargeForSyncing())this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{if(p.searchScope)this.research(p.moveCursor,this._state.searchScope);else this.research(p.moveCursor)},QD);else if(p.searchScope)this.research(p.moveCursor,this._state.searchScope);else this.research(p.moveCursor)}static _getSearchRange(p,u){if(u)return u;return p.getFullModelRange()}research(p,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=xh(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),p&&this._editor.getOption(50).cursorMoveOnType)this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let p=this._decorations.getFindScope();if(p)this._editor.revealRangeInCenterIfOutsideViewport(p,0);return!0}return!1}_setCurrentFindMatch(p){let u=this._decorations.setCurrentFindMatch(p);this._state.changeMatchInfo(u,this._decorations.getCount(),p),this._editor.setSelection(p),this._editor.revealRangeInCenterIfOutsideViewport(p,0)}_prevSearchPosition(p){let u=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:g,column:v}=p,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(p,u=!1){if(!this._state.canNavigateBack()){let K=this._decorations.matchAfterPosition(p);if(K)this._setCurrentFindMatch(K);return}if(this._decorations.getCount()<Vr){let K=this._decorations.matchBeforePosition(p);if(K&&K.isEmpty()&&K.getStartPosition().equals(p))p=this._prevSearchPosition(p),K=this._decorations.matchBeforePosition(p);if(K)this._setCurrentFindMatch(K);return}if(this._cannotFind())return;let g=this._decorations.getFindScope(),v=dc._getSearchRange(this._editor.getModel(),g);if(v.getEndPosition().isBefore(p))p=v.getEndPosition();if(p.isBefore(v.getStartPosition()))p=v.getEndPosition();let{lineNumber:S,column:y}=p,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(p){let u=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:g,column:v}=p,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(p){if(!this._state.canNavigateForward()){let g=this._decorations.matchBeforePosition(p);if(g)this._setCurrentFindMatch(g);return}if(this._decorations.getCount()<Vr){let g=this._decorations.matchAfterPosition(p);if(g&&g.isEmpty()&&g.getStartPosition().equals(p))p=this._nextSearchPosition(p),g=this._decorations.matchAfterPosition(p);if(g)this._setCurrentFindMatch(g);return}let u=this._getNextMatch(p,!1,!0);if(u)this._setCurrentFindMatch(u.range)}_getNextMatch(p,u,g,v=!1){if(this._cannotFind())return null;let S=this._decorations.getFindScope(),y=dc._getSearchRange(this._editor.getModel(),S);if(y.getEndPosition().isBefore(p))p=y.getStartPosition();if(p.isBefore(y.getStartPosition()))p=y.getStartPosition();let{lineNumber:D,column:T}=p,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(p){let u=this._decorations.getDecorationRangeAt(p);if(u)this._setCurrentFindMatch(u)}moveToMatch(p){this._moveToMatch(p)}_getReplacePattern(){if(this._state.isRegex)return vx(this._state.replaceString);return nd.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let p=this._getReplacePattern(),u=this._editor.getSelection(),g=this._getNextMatch(u.getStartPosition(),!0,!1);if(g)if(u.equalsRange(g.range)){let v=p.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(p,u,g){let v=(p||[null]).map((S)=>dc._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 p=this._decorations.getFindScopes();if(p===null&&this._state.matchesCount>=Vr)this._largeReplaceAll();else this._regularReplaceAll(p);this.research(!1)}_largeReplaceAll(){let u=new Hc(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 df(y,T,this._editor.getSelection());this._executeEditorCommand("replaceAll",K)}_regularReplaceAll(p){let u=this._getReplacePattern(),g=this._findMatches(p,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 _b(this._editor.getSelection(),g.map((y)=>y.range),v);this._executeEditorCommand("replaceAll",S)}selectAllMatches(){if(!this._hasMatches())return;let p=this._decorations.getFindScopes(),g=this._findMatches(p,!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(p,u){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(p,u),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var e2=e(5,"input"),t2=e(6,"Preserve Case");class Sx extends xl{constructor(p){super({icon:b.preserveCase,title:t2+p.appendTitle,isChecked:p.isChecked,hoverLifecycleOptions:p.hoverLifecycleOptions,inputActiveOptionBorder:p.inputActiveOptionBorder,inputActiveOptionForeground:p.inputActiveOptionForeground,inputActiveOptionBackground:p.inputActiveOptionBackground})}}class wb extends ni{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(p,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||e2;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 $y(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 Sx({appendTitle:S,isChecked:!1,hoverLifecycleOptions:v.hoverLifecycleOptions,...v.toggleStyles})),this._register(this.preserveCase.onChange((Q)=>{if(this._onDidOptionChange.fire(Q),!Q&&this.fixFocusOnOptionClickEnabled)this.inputBox.focus();this.validate()})),this._register(this.preserveCase.onKeyDown((Q)=>{this._onPreserveCaseKeyDown.fire(Q)})),this._showOptionButtons)this.cachedOptionsWidth=this.preserveCase.width();else this.cachedOptionsWidth=0;let K=[this.preserveCase.domNode];this.onkeydown(this.domNode,(Q)=>{U0(Q,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),p?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(Q)=>this._onKeyDown.fire(Q)),this.onkeyup(this.inputBox.inputElement,(Q)=>this._onKeyUp.fire(Q)),this.oninput(this.inputBox.inputElement,(Q)=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,(Q)=>this._onMouseDown.fire(Q))}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(p){if(p)this.enable();else this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(p){this.preserveCase.checked=p}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(p){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=p+"px"}}var Cx=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},yx=function(p,u){return function(g,v){u(g,v,p)}},fp=new A("suggestWidgetVisible",!1,e(1793,"Whether suggestion are visible")),Sb="historyNavigationWidgetFocus",xx="historyNavigationForwardsEnabled",Ix="historyNavigationBackwardsEnabled",Ch=void 0,gp=[];function Lx(p,u){if(gp.includes(u))throw Error("Cannot register the same widget multiple times");gp.push(u);let g=new c,v=new A(Sb,!1).bindTo(p),S=new A(xx,!0).bindTo(p),y=new A(Ix,!0).bindTo(p),D=()=>{v.set(!0),Ch=u},T=()=>{if(v.set(!1),Ch===u)Ch=void 0};if(os(u.element))D();return g.add(u.onDidFocus(()=>D())),g.add(u.onDidBlur(()=>T())),g.add(E(()=>{gp.splice(gp.indexOf(u),1),T()})),{historyNavigationForwardsEnablement:S,historyNavigationBackwardsEnablement:y,dispose(){g.dispose()}}}var pp=class p extends Dy{constructor(u,g,v,S){super(u,g,v);let y=this._register(S.createScoped(this.inputBox.element));this._register(Lx(y,this.inputBox))}};pp=Cx([yx(3,V)],pp);var mp=class p extends wb{constructor(u,g,v,S,y=!1){super(u,g,y,v);let D=this._register(S.createScoped(this.inputBox.element));this._register(Lx(D,this.inputBox))}};mp=Cx([yx(3,V)],mp);bn.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:_.and(_.has(Sb),_.equals(Ix,!0),fp.isEqualTo(!1)),primary:16,secondary:[528],handler:(p)=>{Ch?.showPreviousValue()}});bn.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:_.and(_.has(Sb),_.equals(xx,!0),fp.isEqualTo(!1)),primary:18,secondary:[530],handler:(p)=>{Ch?.showNextValue()}});function Cb(p){return p.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&p.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var kx=Lt("find-collapsed",b.chevronRight,e(1011,"Icon to indicate that the editor find widget is collapsed.")),Ex=Lt("find-expanded",b.chevronDown,e(1012,"Icon to indicate that the editor find widget is expanded.")),i2=Lt("find-selection",b.selection,e(1013,"Icon for 'Find in Selection' in the editor find widget.")),o2=Lt("find-replace",b.replace,e(1014,"Icon for 'Replace' in the editor find widget.")),n2=Lt("find-replace-all",b.replaceAll,e(1015,"Icon for 'Replace All' in the editor find widget.")),r2=Lt("find-previous-match",b.arrowUp,e(1016,"Icon for 'Find Previous' in the editor find widget.")),s2=Lt("find-next-match",b.arrowDown,e(1017,"Icon for 'Find Next' in the editor find widget.")),a2=e(1018,"Find / Replace"),yb=e(1019,"Find"),d2=e(1020,"Find"),c2=e(1021,"Previous Match"),l2=e(1022,"Next Match"),h2=e(1023,"Find in Selection"),u2=e(1024,"Close"),xb=e(1025,"Replace"),g2=e(1026,"Replace"),p2=e(1027,"Replace"),m2=e(1028,"Replace All"),f2=e(1029,"Toggle Replace"),_2=e(1030,"Only the first {0} results are highlighted, but all find operations work on the entire text.",Vr),b2=e(1031,"{0} of {1}"),bp=e(1032,"No results"),Ur=419,v2=275,w2=v2-54,Nh=69,S2=33,Dx=ue?256:2048;class _p{constructor(p){this.afterLineNumber=p,this.heightInPx=S2,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function Tx(p,u,g){let v=!!u.match(/\n/);if(g&&v&&g.selectionStart>0){p.stopPropagation();return}}function Rx(p,u,g){let v=!!u.match(/\n/);if(g&&v&&g.selectionEnd<g.value.length){p.stopPropagation();return}}class Ul extends ni{static{this.ID="editor.contrib.findWidget"}constructor(p,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=p,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 Si(500),this._register(E(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange((Q)=>this._onStateChanged(Q))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((Q)=>{if(Q.hasChanged(104)){if(this._codeEditor.getOption(104))this._state.change({isReplaceRevealed:!1},!1);this._updateButtons()}if(Q.hasChanged(166))this._tryUpdateWidgetWidth();if(Q.hasChanged(2))this.updateAccessibilitySupport();if(Q.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 _p(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 Q=await this._controller.getGlobalBufferTerm();if(Q&&Q!==this._state.searchString)this._state.change({searchString:Q},!1),this._findInput.select()}})),this._findInputFocused=cc.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=nh.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=wx.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",(Q)=>{if(xe(Q.target))this._lastFocusedElement=Q.target})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop)this._viewZone=new _p(0);this._register(this._codeEditor.onDidChangeModel(()=>{if(!this._isVisible)return;this._viewZoneId=void 0})),this._register(this._codeEditor.onDidScrollChange((Q)=>{if(Q.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return Ul.ID}getDomNode(){return this._domNode}getPosition(){if(this._isVisible)return{preference:0};return null}_onStateChanged(p){if(p.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(p.replaceString)this._replaceInput.inputBox.value=this._state.replaceString;if(p.isRevealed)if(this._state.isRevealed)this._reveal();else this._hide(!0);if(p.isReplaceRevealed){if(this._state.isReplaceRevealed){if(!this._codeEditor.getOption(104)&&!this._isReplaceVisible)this._isReplaceVisible=!0,this._replaceInput.width=po(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()}else if(this._isReplaceVisible)this._isReplaceVisible=!1,this._updateButtons()}if((p.isRevealed||p.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)){if(this._tryUpdateHeight())this._showViewZone()}if(p.isRegex)this._findInput.setRegex(this._state.isRegex);if(p.wholeWord)this._findInput.setWholeWords(this._state.wholeWord);if(p.matchCase)this._findInput.setCaseSensitive(this._state.matchCase);if(p.preserveCase)this._replaceInput.setPreserveCase(this._state.preserveCase);if(p.searchScope){if(this._state.searchScope)this._toggleSelectionFind.checked=!0;else this._toggleSelectionFind.checked=!1;this._updateToggleSelectionFindButton()}if(p.searchString||p.matchesCount||p.matchesPosition){let u=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",u),this._updateMatchesCount(),this._updateButtons()}if(p.searchString||p.currentMatch)this._layoutViewZone();if(p.updateHistory)this._delayedUpdateHistory();if(p.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=Nh+"px",this._state.matchesCount>=Vr)this._matchesCount.title=_2;else this._matchesCount.title="";this._matchesCount.firstChild?.remove();let p;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="?";p=Zs(b2,g,u)}else p=bp;this._matchesCount.appendChild(document.createTextNode(p)),En(this._getAriaLabel(p,this._state.currentMatch,this._state.searchString)),Nh=Math.max(Nh,this._matchesCount.clientWidth)}_getAriaLabel(p,u,g){let v;if(p===bp)v=g===""?e(1033,"{0} found",p):e(1034,"{0} found for '{1}'",p,g);else if(u){let S=e(1035,"{0} found for '{1}', at {2}",p,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}'",p,g);return v}_updateToggleSelectionFindButton(){let p=this._codeEditor.getSelection(),u=p?p.startLineNumber!==p.endLineNumber||p.startColumn!==p.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 p=this._state.searchString.length>0,u=this._state.matchesCount?!0:!1;this._prevBtn.setEnabled(this._isVisible&&p&&u&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&p&&u&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&p),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&p),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((p)=>{clearTimeout(p)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let p=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=!!p&&p.startLineNumber!==p.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&&p){let g=this._codeEditor.getDomNode();if(g){let v=mt(g),S=this._codeEditor.getScrolledVisiblePosition(p.getStartPosition()),y=v.left+(S?S.left:0),D=S?S.top:0;if(this._viewZone&&D<this._viewZone.heightInPx){if(p.endLineNumber>p.startLineNumber)u=!1;let T=f0(this._domNode).left;if(y>T)u=!1;let R=this._codeEditor.getScrolledVisiblePosition(p.getEndPosition());if(v.left+(R?R.left:0)>T)u=!1}}}this._showViewZone(u)}}_hide(p){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(),p)this._codeEditor.focus();this._codeEditor.layoutOverlayWidget(this),this._removeViewZone()}}_layoutViewZone(p){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(p||this._codeEditor.getScrollTop()+g.heightInPx)})}_showViewZone(p=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;if(this._viewZone===void 0)this._viewZone=new _p(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),p)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),p)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+S)}})}_removeViewZone(){this._codeEditor.changeViewZones((p)=>{if(this._viewZoneId!==void 0){if(p.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 p=this._codeEditor.getLayoutInfo();if(p.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else if(this._domNode.classList.contains("hiddenEditor"))this._domNode.classList.remove("hiddenEditor");let g=p.width,v=p.minimap.minimapWidth,S=!1,y=!1,D=!1;if(this._resized){if(po(this._domNode)>Ur){this._domNode.style.maxWidth=`${g-28-v-15}px`,this._replaceInput.width=po(this._findInput.domNode);return}}if(Ur+28+v>=g)y=!0;if(Ur+28+v-Nh>=g)D=!0;if(Ur+28+v-Nh>=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=po(this._findInput.domNode)}_getHeight(){let p=0;if(p+=4,p+=this._findInput.inputBox.height+2,this._isReplaceVisible)p+=4,p+=this._replaceInput.inputBox.height+2;return p+=4,p}_tryUpdateHeight(){let p=this._getHeight();if(this._cachedHeight!==null&&this._cachedHeight===p)return!1;return this._cachedHeight=p,this._domNode.style.height=`${p}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 p=this._codeEditor.getSelections();if(p.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),p.length)this._state.change({searchScope:p},!0)}}_onFindInputMouseDown(p){if(p.middleButton)p.stopPropagation()}_onFindInputKeyDown(p){if(p.equals(Dx|3))if(this._keybindingService.dispatchEvent(p,p.target)){p.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
|
|
19
|
+
`),p.preventDefault();return}if(p.equals(2)){if(this._isReplaceVisible)this._replaceInput.focus();else this._findInput.focusOnCaseSensitive();p.preventDefault();return}if(p.equals(2066)){this._codeEditor.focus(),p.preventDefault();return}if(p.equals(16))return Tx(p,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(p.equals(18))return Rx(p,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(p){if(p.equals(Dx|3))if(this._keybindingService.dispatchEvent(p,p.target)){p.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
|
|
20
|
+
`),p.preventDefault();return}if(p.equals(2)){this._findInput.focusOnCaseSensitive(),p.preventDefault();return}if(p.equals(1026)){this._findInput.focus(),p.preventDefault();return}if(p.equals(2066)){this._codeEditor.focus(),p.preventDefault();return}if(p.equals(16))return Tx(p,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(p.equals(18))return Rx(p,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(p){return 0}_keybindingLabelFor(p){return this._keybindingService.appendKeybinding("",p)}_buildDomNode(){let g=this._codeEditor.getOption(50).history,v=this._codeEditor.getOption(50).replaceHistory;if(this._findInput=this._register(new pp(null,this._contextViewProvider,{width:w2,label:yb,placeholder:d2,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(Q){return{content:Q.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Cb(this._keybindingService),inputBoxStyles:Ig,toggleStyles:Lg,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 ms({label:c2+this._keybindingLabelFor(qt.PreviousMatchFindAction),icon:r2,hoverLifecycleOptions:S,onTrigger:()=>{il(this._codeEditor.getAction(qt.PreviousMatchFindAction)).run().then(void 0,J)}},this._hoverService)),this._nextBtn=this._register(new ms({label:l2+this._keybindingLabelFor(qt.NextMatchFindAction),icon:s2,hoverLifecycleOptions:S,onTrigger:()=>{il(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 xl({icon:i2,title:h2+this._keybindingLabelFor(qt.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:S,inputActiveOptionBackground:N(ou),inputActiveOptionBorder:N(sf),inputActiveOptionForeground:N(af)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let q=this._codeEditor.getSelections();if(q=q.map((Q)=>{if(Q.endColumn===1&&Q.endLineNumber>Q.startLineNumber)Q=Q.setEndPosition(Q.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(Q.endLineNumber-1));if(!Q.isEmpty())return Q;return null}).filter((Q)=>!!Q),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 ms({label:u2+this._keybindingLabelFor(qt.CloseFindWidgetCommand),icon:o_,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 mp(null,void 0,{label:xb,placeholder:g2,appendPreserveCaseLabel:this._keybindingLabelFor(qt.TogglePreserveCaseCommand),history:v==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>Cb(this._keybindingService),inputBoxStyles:Ig,toggleStyles:Lg,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 ms({label:p2+this._keybindingLabelFor(qt.ReplaceOneAction),icon:o2,hoverLifecycleOptions:S,onTrigger:()=>{this._controller.replace()},onKeyDown:(q)=>{if(q.equals(1026))this._closeBtn.focus(),q.preventDefault()}},this._hoverService)),this._replaceAllBtn=this._register(new ms({label:m2+this._keybindingLabelFor(qt.ReplaceAllAction),icon:n2,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 ms({label:f2,className:"codicon toggle left",onTrigger:()=>{if(this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible)this._replaceInput.width=po(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=a2,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 qi(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let K=Ur;this._register(this._resizeSash.onDidStart(()=>{K=po(this._domNode)})),this._register(this._resizeSash.onDidChange((q)=>{this._resized=!0;let Q=K+q.startX-q.currentX;if(Q<Ur)return;let te=parseFloat(ty(this._domNode).maxWidth)||0;if(Q>te)return;if(this._domNode.style.width=`${Q}px`,this._isReplaceVisible)this._replaceInput.width=po(this._findInput.domNode);this._findInput.inputBox.layout(),this._tryUpdateHeight()})),this._register(this._resizeSash.onDidReset(()=>{let q=po(this._domNode);if(q<Ur)return;let Q=Ur;if(!this._resized||q===Ur){let te=this._codeEditor.getLayoutInfo();Q=te.width-28-te.minimap.minimapWidth-15,this._resized=!0}if(this._domNode.style.width=`${Q}px`,this._isReplaceVisible)this._replaceInput.width=po(this._findInput.domNode);this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let p=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(p!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let p=yb,u=xb;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);p=e(1038,"{0}, {1}",p,v),u=e(1039,"{0}, {1}",u,v)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=Jn(()=>{if(this._isVisible)this._findInput.inputBox.setAriaLabel(yb),this._replaceInput.inputBox.setAriaLabel(xb)},1000)}this._findInput.inputBox.setAriaLabel(p),this._replaceInput.inputBox.setAriaLabel(u)}getViewState(){let p=!1;if(this._viewZone&&this._viewZoneId)p=this._viewZone.heightInPx>this._codeEditor.getScrollTop();return{widgetViewZoneVisible:p,scrollTop:this._codeEditor.getScrollTop()}}setViewState(p){if(!p)return;if(p.widgetViewZoneVisible)this._layoutViewZone(p.scrollTop)}}class ms extends ni{constructor(p,u){super();this._opts=p;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},p.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(p){this._domNode.classList.toggle("disabled",!p),this._domNode.setAttribute("aria-disabled",String(!p)),this._domNode.tabIndex=p?0:-1}setExpanded(p){if(this._domNode.setAttribute("aria-expanded",String(!!p)),p)this._domNode.classList.remove(...G.asClassNameArray(kx)),this._domNode.classList.add(...G.asClassNameArray(Ex));else this._domNode.classList.remove(...G.asClassNameArray(Ex)),this._domNode.classList.add(...G.asClassNameArray(kx))}}oi((p,u)=>{let g=p.getColor(pl);if(g)u.addRule(`.monaco-editor .findMatch { border: 1px ${Wo(p.type)?"dotted":"solid"} ${g}; box-sizing: border-box; }`);let v=p.getColor(vR);if(v)u.addRule(`.monaco-editor .findScope { border: 1px ${Wo(p.type)?"dashed":"solid"} ${v}; }`);let S=p.getColor(Re);if(S)u.addRule(`.monaco-editor .find-widget { border: 1px solid ${S}; }`);let y=p.getColor(gR);if(y)u.addRule(`.monaco-editor .findMatchInline { color: ${y}; }`);let D=p.getColor(bR);if(D)u.addRule(`.monaco-editor .currentFindMatchInline { color: ${D}; }`)});class vp extends ni{static{this.ID="editor.contrib.findOptionsWidget"}constructor(p,u,g){super();this._hideSoon=this._register(new be(()=>this._hide(),2000)),this._isVisible=!1,this._editor=p,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(sf),inputActiveOptionForeground:N(af),inputActiveOptionBackground:N(ou)},S={groupId:"find-options-widget"};this.caseSensitive=this._register(new Ly({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 Iy({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 Ry({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(p){return this._keybindingService.appendKeybinding("",p)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return vp.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 wp(p,u){if(p===1)return!0;if(p===2)return!1;return u}class Ib 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 wp(this._isRegexOverride,this._isRegex)}get wholeWord(){return wp(this._wholeWordOverride,this._wholeWord)}get matchCase(){return wp(this._matchCaseOverride,this._matchCase)}get preserveCase(){return wp(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(p,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)p=0;if(p>u)p=u;if(this._matchesPosition!==p)this._matchesPosition=p,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(p,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 p.searchString<"u"){if(this._searchString!==p.searchString)this._searchString=p.searchString,v.searchString=!0,S=!0}if(typeof p.replaceString<"u"){if(this._replaceString!==p.replaceString)this._replaceString=p.replaceString,v.replaceString=!0,S=!0}if(typeof p.isRevealed<"u"){if(this._isRevealed!==p.isRevealed)this._isRevealed=p.isRevealed,v.isRevealed=!0,S=!0}if(typeof p.isReplaceRevealed<"u"){if(this._isReplaceRevealed!==p.isReplaceRevealed)this._isReplaceRevealed=p.isReplaceRevealed,v.isReplaceRevealed=!0,S=!0}if(typeof p.isRegex<"u")this._isRegex=p.isRegex;if(typeof p.wholeWord<"u")this._wholeWord=p.wholeWord;if(typeof p.matchCase<"u")this._matchCase=p.matchCase;if(typeof p.preserveCase<"u")this._preserveCase=p.preserveCase;if(typeof p.searchScope<"u"){if(!p.searchScope?.every((K)=>this._searchScope?.some((q)=>!t.equalsRange(q,K))))this._searchScope=p.searchScope,v.searchScope=!0,S=!0}if(typeof p.loop<"u"){if(this._loop!==p.loop)this._loop=p.loop,v.loop=!0,S=!0}if(typeof p.isSearching<"u"){if(this._isSearching!==p.isSearching)this._isSearching=p.isSearching,v.isSearching=!0,S=!0}if(typeof p.filters<"u"){if(this._filters)this._filters.update(p.filters);else this._filters=p.filters;v.filters=!0,S=!0}if(this._isRegexOverride=typeof p.isRegexOverride<"u"?p.isRegexOverride:0,this._wholeWordOverride=typeof p.wholeWordOverride<"u"?p.wholeWordOverride:0,this._matchCaseOverride=typeof p.matchCaseOverride<"u"?p.matchCaseOverride:0,this._preserveCaseOverride=typeof p.preserveCaseOverride<"u"?p.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 C2=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},y2=function(p,u){return function(g,v){u(g,v,p)}},js,Sp=class p{static{js=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(u){if(!js._instance)js._instance=new js(u);return js._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(js.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(js.FIND_HISTORY_KEY,JSON.stringify(u),1,0),this._onDidChangeEmitter.fire(u),g()})}};Sp=js=C2([y2(0,xn)],Sp);var x2=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},I2=function(p,u){return function(g,v){u(g,v,p)}},Gs,Cp=class p{static{Gs=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(u){if(!Gs._instance)Gs._instance=new Gs(u);return Gs._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(Gs.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(Gs.FIND_HISTORY_KEY,JSON.stringify(u),1,0),this._onDidChangeEmitter.fire(u),g()})}};Cp=Gs=x2([I2(0,xn)],Cp);var Nx=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Ao=function(p,u){return function(g,v){u(g,v,p)}},Lb,L2=524288;function kb(p,u="single",g=!1){if(!p.hasModel())return null;let v=p.getSelection();if(u==="single"&&v.startLineNumber===v.endLineNumber||u==="multiple"){if(v.isEmpty()){let S=p.getConfiguredWordAtPosition(v.getStartPosition());if(S&&g===!1)return S.word}else if(p.getModel().getValueLengthInRange(v)<L2)return p.getModel().getValueInRange(v)}return null}var oo=class p extends n{static{Lb=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(u){return u.getContribution(Lb.ID)}constructor(u,g,v,S,y,D){super();this._editor=u,this._findWidgetVisible=Kr.bindTo(g),this._contextKeyService=g,this._storageService=v,this._clipboardService=S,this._notificationService=y,this._hoverService=D,this._updateHistoryDelayer=this._register(new Si(500)),this._state=this._register(new Ib),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!!cc.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=Ci(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=kb(this._editor,u.seedSearchStringFromSelection,u.seedSearchStringFromNonEmptySelection);if(S)if(this._state.isRegex)v.searchString=Ci(S);else v.searchString=S}else if(u.seedSearchStringFromSelection==="multiple"&&!u.updateSearchScope){let S=kb(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 dc(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=Lb=Nx([Ao(1,V),Ao(2,xn),Ao(3,Xn),Ao(4,ut),Ao(5,yn)],oo);var Eb=class p 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=Sp.getOrCreate(D),this._replaceWidgetHistory=Cp.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 Ul(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 vp(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(u){this._widget?.setViewState(u)}};Eb=Nx([Ao(1,Hr),Ao(2,V),Ao(3,ce),Ao(4,ut),Ao(5,xn),Ao(6,Xn),Ao(7,yn),Ao(8,X),Ao(9,Vt)],Eb);var k2=iy(new cg({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}}));k2.addImplementation(0,(p,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 E2={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 Mx extends z{constructor(){super({id:qt.StartFindWithArgs,label:h(1003,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:E2})}async run(p,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 Ox 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(p,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 Px(p,u){let g=oo.get(p);if(!g)return;let v=p.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&&p.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:p.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:p.getOption(50).loop}),!y()){let D=g.getState();if(S&&D.matchesCount===0&&D.searchString)En(e(996,"{0} found for '{1}'",bp,D.searchString))}}}var D2=iy(new cg({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,cc),primary:3,weight:100}]}));D2.addImplementation(0,async(p,u,g)=>Px(u,!0));var T2=iy(new cg({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,cc),primary:1027,weight:100}]}));T2.addImplementation(0,async(p,u,g)=>Px(u,!1));class Ax extends z{constructor(){super({id:qt.GoToMatchFindAction,label:h(1007,"Go to Match..."),precondition:Kr});this._highlightDecorations=[]}run(p,u){let g=oo.get(u);if(!g)return;let v=g.getState().matchesCount;if(v<1){p.get(ut).notify({severity:gl.Warning,message:e(997,"No matches. Try searching for something else.")});return}let S=p.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 Q=g.getState().matchesCount;if(q>0&&q<=Q)return q-1;else if(q<0&&q>=-Q)return Q+q;return},R=(K)=>{let q=T(K);if(typeof q==="number"){D.validationMessage=void 0,g.goToMatch(q);let Q=g.getState().currentMatch;if(Q)this.addDecorations(u,Q)}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(p){p.changeDecorations((u)=>{this._highlightDecorations=u.deltaDecorations(this._highlightDecorations,[])})}addDecorations(p,u){p.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(I0),position:ko.Full}}}])})}}class Db extends z{async run(p,u){let g=oo.get(u);if(!g)return;let v=kb(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 Fx extends Db{constructor(){super({id:qt.NextSelectionMatchFindAction,label:h(1008,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2109,weight:100}})}_run(p){return p.moveToNextMatch()}}class Hx extends Db{constructor(){super({id:qt.PreviousSelectionMatchFindAction,label:h(1009,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3133,weight:100}})}_run(p){return p.moveToPrevMatch()}}var R2=iy(new cg({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}}));R2.addImplementation(0,(p,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,Eb,0);I(Mx);I(Ox);I(Ax);I(Fx);I(Hx);var gr=Bt.bindToContribution(oo.get);U(new gr({id:qt.CloseFindWidgetCommand,precondition:Kr,handler:(p)=>p.closeFindWidget(),kbOpts:{weight:105,kbExpr:o.focus,primary:9,secondary:[1033]}}));U(new gr({id:qt.ToggleCaseSensitiveCommand,precondition:void 0,handler:(p)=>p.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:o.focus,primary:rh.primary,mac:rh.mac,win:rh.win,linux:rh.linux}}));U(new gr({id:qt.ToggleWholeWordCommand,precondition:void 0,handler:(p)=>p.toggleWholeWords(),kbOpts:{weight:105,kbExpr:o.focus,primary:sh.primary,mac:sh.mac,win:sh.win,linux:sh.linux}}));U(new gr({id:qt.ToggleRegexCommand,precondition:void 0,handler:(p)=>p.toggleRegex(),kbOpts:{weight:105,kbExpr:o.focus,primary:ah.primary,mac:ah.mac,win:ah.win,linux:ah.linux}}));U(new gr({id:qt.ToggleSearchScopeCommand,precondition:void 0,handler:(p)=>p.toggleSearchScope(),kbOpts:{weight:105,kbExpr:o.focus,primary:lh.primary,mac:lh.mac,win:lh.win,linux:lh.linux}}));U(new gr({id:qt.TogglePreserveCaseCommand,precondition:void 0,handler:(p)=>p.togglePreserveCase(),kbOpts:{weight:105,kbExpr:o.focus,primary:uh.primary,mac:uh.mac,win:uh.win,linux:uh.linux}}));U(new gr({id:qt.ReplaceOneAction,precondition:Kr,handler:(p)=>p.replace(),kbOpts:{weight:105,kbExpr:o.focus,primary:3094}}));U(new gr({id:qt.ReplaceOneAction,precondition:Kr,handler:(p)=>p.replace(),kbOpts:{weight:105,kbExpr:_.and(o.focus,nh),primary:3}}));U(new gr({id:qt.ReplaceAllAction,precondition:Kr,handler:(p)=>p.replaceAll(),kbOpts:{weight:105,kbExpr:o.focus,primary:2563}}));U(new gr({id:qt.ReplaceAllAction,precondition:Kr,handler:(p)=>p.replaceAll(),kbOpts:{weight:105,kbExpr:_.and(o.focus,nh),primary:void 0,mac:{primary:2051}}}));U(new gr({id:qt.SelectAllMatchesAction,precondition:Kr,handler:(p)=>p.selectAllMatches(),kbOpts:{weight:105,kbExpr:o.focus,primary:515}}));var N2=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",N2,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 M2=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",M2,e(1642,"Border color of a textual occurrence for a symbol."));var O2=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),P2=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),A2=s("editorOverviewRuler.wordHighlightTextForeground",ZS,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),F2=oe.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:en(P2),position:ko.Center},minimap:{color:en(cy),position:1}}),H2=oe.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:en(A2),position:ko.Center},minimap:{color:en(cy),position:1}}),W2=oe.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:en(ZS),position:ko.Center},minimap:{color:en(cy),position:1}}),B2=oe.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),V2=oe.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:en(O2),position:ko.Center},minimap:{color:en(cy),position:1}});function BI(p){if(p===Yd.Write)return F2;else if(p===Yd.Text)return H2;else return V2}function Wx(p){return p?B2:W2}oi((p,u)=>{let g=p.getColor(of);if(g)u.addRule(`.monaco-editor .selectionHighlight { background-color: ${g.transparent(0.5)}; }`)});var z2=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},K2=function(p,u){return function(g,v){u(g,v,p)}},Tb;function ta(p,u){let g=u.filter((v)=>!p.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);vo(S)}}class Vx 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(p,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,mi.addCursorUp(S,y,v)),S.revealTopMostCursor(g.source),ta(y,S.getCursorStates())}}class zx 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(p,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,mi.addCursorDown(S,y,v)),S.revealBottomMostCursor(g.source),ta(y,S.getCursorStates())}}class Ux 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(p,u,g){if(p.isEmpty())return;for(let v=p.startLineNumber;v<p.endLineNumber;v++){let S=u.getLineMaxColumn(v);g.push(new O(v,S,v,S))}if(p.endColumn>1)g.push(new O(p.endLineNumber,p.endColumn,p.endLineNumber,p.endColumn))}run(p,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);ta(y,S.getCursorStates())}}class qx extends z{constructor(){super({id:"editor.action.addCursorsToBottom",label:h(1367,"Add Cursors to Bottom"),precondition:void 0})}run(p,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);ta(D,y.getCursorStates())}}class jx extends z{constructor(){super({id:"editor.action.addCursorsToTop",label:h(1368,"Add Cursors to Top"),precondition:void 0})}run(p,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);ta(y,S.getCursorStates())}}class Ph{constructor(p,u,g){this.selections=p,this.revealRange=u,this.revealScrollType=g}}class Fh{static create(p,u){if(!p.hasModel())return null;let g=u.getState();if(!p.hasTextFocus()&&g.isRevealed&&g.searchString.length>0)return new Fh(p,u,!1,g.searchString,g.wholeWord,g.matchCase,null);let v=!1,S,y,D=p.getSelections();if(D.length===1&&D[0].isEmpty())v=!0,S=!0,y=!0;else S=g.wholeWord,y=g.matchCase;let T=p.getSelection(),R,K=null;if(T.isEmpty()){let q=p.getConfiguredWordAtPosition(T.getStartPosition());if(!q)return null;R=q.word,K=new O(T.startLineNumber,q.startColumn,T.startLineNumber,q.endColumn)}else R=p.getModel().getValueInRange(T).replace(/\r\n/g,`
|
|
21
|
+
`);return new Fh(p,u,v,R,S,y,K)}constructor(p,u,g,v,S,y,D){this._editor=p,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 p=this._getNextMatch();if(!p)return null;let u=this._editor.getSelections();return new Ph(u.concat(p),p,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let p=this._getNextMatch();if(!p)return null;let u=this._editor.getSelections();return new Ph(u.slice(0,u.length-1).concat(p),p,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let v=this.currentMatch;return this.currentMatch=null,v}this.findController.highlightFindOptions();let p=this._editor.getSelections(),u=p[p.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 p=this._getPreviousMatch();if(!p)return null;let u=this._editor.getSelections();return new Ph(u.concat(p),p,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let p=this._getPreviousMatch();if(!p)return null;let u=this._editor.getSelections();return new Ph(u.slice(0,u.length-1).concat(p),p,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let v=this.currentMatch;return this.currentMatch=null,v}this.findController.highlightFindOptions();let p=this._editor.getSelections(),u=p[p.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(p){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let u=this._editor.getModel();if(p)return u.findMatches(this.searchText,p,!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 lc extends n{static{this.ID="editor.contrib.multiCursorController"}static get(p){return p.getContribution(lc.ID)}constructor(p){super();this._sessionDispose=this._register(new c),this._editor=p,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(p){if(!this._session){let u=Fh.create(this._editor,p);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;p.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(p.getState().onFindReplaceStateChange((v)=>{if(v.matchCase||v.wholeWord)this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){let p={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(p,!1)}this._session=null}_setSelections(p){this._ignoreSelectionChange=!0,this._editor.setSelections(p),this._ignoreSelectionChange=!1}_expandEmptyToWord(p,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(p){if(!p)return;if(this._setSelections(p.selections),p.revealRange)this._editor.revealRangeInCenterIfOutsideViewport(p.revealRange,p.revealScrollType)}getSession(p){return this._session}addSelectionToNextFindMatch(p){if(!this._editor.hasModel())return;if(!this._session){let u=this._editor.getSelections();if(u.length>1){let v=p.getState().matchCase;if(!sI(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(p),this._session)this._applySessionResult(this._session.addSelectionToNextFindMatch())}addSelectionToPreviousFindMatch(p){if(this._beginSessionIfNeeded(p),this._session)this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(p){if(this._beginSessionIfNeeded(p),this._session)this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(p){if(this._beginSessionIfNeeded(p),this._session)this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(p){if(!this._editor.hasModel())return;let u=null,g=p.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(p),!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 rd extends z{run(p,u){let g=lc.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=p.get(L).createInstance(oo,u);this._run(g,D),D.dispose()}ta(S,v.getCursorStates())}}}class $x extends rd{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(p,u){p.addSelectionToNextFindMatch(u)}}class eI extends rd{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(p,u){p.addSelectionToPreviousFindMatch(u)}}class tI extends rd{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(p,u){p.moveSelectionToNextFindMatch(u)}}class iI extends rd{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:h(1372,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(p,u){p.moveSelectionToPreviousFindMatch(u)}}class oI extends rd{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(p,u){p.selectAll(u)}}class nI extends rd{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(p,u){p.selectAll(u)}}class rI{constructor(p,u,g,v,S){if(this._model=p,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((p)=>p.range),this._cachedFindMatches.sort(t.compareRangesUsingStarts);return this._cachedFindMatches}}var yp=class p extends n{static{Tb=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(Tb._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 Q=y.getSelection();if(Q.startLineNumber!==Q.endLineNumber)return null}let D=lc.get(y);if(!D)return null;let T=oo.get(y);if(!T)return null;let R=D.getSession(T);if(!R){let Q=y.getSelections();if(Q.length>1){let ne=T.getState().matchCase;if(!sI(y.getModel(),Q,ne))return null}R=Fh.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 Q=K.searchString;if(!q)Q=Q.toLowerCase();let te=R.searchText;if(!q)te=te.toLowerCase();if(Q===te&&R.matchCase===K.matchCase&&R.wholeWord===K.wholeWord&&!K.isRegex)return null}return new rI(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,Q=v.length,te=S.length;K<Q;){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:Wx(T)}));this._decorations.set(R)}dispose(){this._setState(null),super.dispose()}};yp=Tb=z2([K2(1,j)],yp);function sI(p,u,g){let v=Bx(p,u[0],!g);for(let S=1,y=u.length;S<y;S++){let D=u[S];if(D.isEmpty())return!1;let T=Bx(p,D,!g);if(v!==T)return!1}return!0}function Bx(p,u,g){let v=p.getValueInRange(u);return g?v.toLowerCase():v}class aI 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(p,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),ta(S,v.getCursorStates())}}class dI 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(p,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),ta(S,v.getCursorStates())}}le(lc.ID,lc,4);le(yp.ID,yp,1);I(Vx);I(zx);I(Ux);I($x);I(eI);I(tI);I(iI);I(oI);I(nI);I(qx);I(jx);I(aI);I(dI);class Ko{async provideSelectionRanges(p,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,p,v,y)),await new Promise((D)=>Ko._bracketsLeftYield(D,0,p,v,y,S))}return g}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(p,u,g,v,S){let y=new Map,D=Date.now();while(!0){if(u>=Ko._maxRounds){p();break}if(!v){p();break}let T=g.bracketPairs.findNextBracket(v);if(!T){p();break}if(Date.now()-D>Ko._maxDuration){setTimeout(()=>Ko._bracketsRightYield(p,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 Q=S.get(K);if(!Q)Q=new Sn,S.set(K,Q);Q.push(T.range)}}v=T.range.getEndPosition()}}static _bracketsLeftYield(p,u,g,v,S,y){let D=new Map,T=Date.now();while(!0){if(u>=Ko._maxRounds&&S.size===0){p();break}if(!v){p();break}let R=g.bracketPairs.findPrevBracket(v);if(!R){p();break}if(Date.now()-T>Ko._maxDuration){setTimeout(()=>Ko._bracketsLeftYield(p,u+1,g,v,S,y));break}if(!R.bracketInfo.isOpeningBracket){let q=R.bracketInfo.getOpeningBrackets()[0].bracketText,Q=D.has(q)?D.get(q):0;D.set(q,Q+1)}else{let q=R.bracketInfo.bracketText,Q=D.has(q)?D.get(q):0;if(Q-=1,D.set(q,Math.max(0,Q)),Q<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(p,u,g){if(u.startLineNumber===u.endLineNumber)return;let v=u.startLineNumber,S=p.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=p.getLineFirstNonWhitespaceColumn(y);if(D===u.startColumn&&D!==p.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 Rb{constructor(p=!0){this.selectSubwords=p}provideSelectionRanges(p,u){let g=[];for(let v of u){let S=[];if(g.push(S),this.selectSubwords)this._addInWordRanges(S,p,v);this._addWordRanges(S,p,v),this._addWhitespaceLine(S,p,v),S.push({range:p.getFullModelRange()})}return g}_addInWordRanges(p,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(Ac(q)&&Ca(K))break;K=q}T+=1;for(;R<S.length;R++){let q=S.charCodeAt(R);if(Ca(q)&&Ac(K))break;else if(q===95||q===45)break;K=q}if(T<R)p.push({range:new t(g.lineNumber,y+T,g.lineNumber,y+R)})}_addWordRanges(p,u,g){let v=u.getWordAtPosition(g);if(v)p.push({range:new t(g.lineNumber,v.startColumn,g.lineNumber,v.endColumn)})}_addWhitespaceLine(p,u,g){if(u.getLineLength(g.lineNumber)>0&&u.getLineFirstNonWhitespaceColumn(g.lineNumber)===0&&u.getLineLastNonWhitespaceColumn(g.lineNumber)===0)p.push({range:new t(g.lineNumber,1,g.lineNumber,u.getLineMaxColumn(g.lineNumber))})}}var U2=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},q2=function(p,u){return function(g,v){u(g,v,p)}},Nb;class Mb{constructor(p,u){this.index=p,this.ranges=u}mov(p){let u=this.index+(p?1:-1);if(u<0||u>=this.ranges.length)return this;let g=new Mb(u,this.ranges);if(g.ranges[u].equalsRange(this.ranges[this.index]))return g.mov(p);return g}}var Wh=class p{static{Nb=this}static{this.ID="editor.contrib.smartSelectController"}static get(u){return u.getContribution(Nb.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 hI(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()||!Ke(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 Mb(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}}};Wh=Nb=U2([q2(1,j)],Wh);class Ob extends z{constructor(p,u){super(u);this._forward=p}async run(p,u){let g=Wh.get(u);if(g)await g.run(this._forward)}}class cI extends Ob{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 lI extends Ob{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(Wh.ID,Wh,4);I(cI);I(lI);async function hI(p,u,g,v,S){let y=p.all(u).concat(new Rb(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 Q of K[q])if(t.isIRange(Q.range)&&t.containsPosition(Q.range,g[q]))T[q].push(t.lift(Q.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 Q=[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))Q.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))Q.push(ge)}Q.push(re)}return Q})}we.registerCommand("_executeSelectionRangeProvider",async function(p,...u){let[g,v]=u;Ie(W.isUri(g)),Ie(VI(v,(D)=>r.isIPosition(D)));let S=p.get(j).selectionRangeProvider,y=await p.get(gn).createModelReference(g);try{return hI(S,y.object.textEditorModel,v.map(r.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},he.None)}finally{y.dispose()}});class hc extends Bt{constructor(p){super(p);this._inSelectionMode=p.inSelectionMode,this._wordNavigationType=p.wordNavigationType}runEditorCommand(p,u,g){if(!u.hasModel())return;let v=xr(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)=>Ue.fromModelSelection(R))),T.length===1){let R=new r(T[0].positionLineNumber,T[0].positionColumn);u.revealPosition(R,0)}}_moveTo(p,u,g){if(g)return new O(p.selectionStartLineNumber,p.selectionStartColumn,u.lineNumber,u.column);else return new O(u.lineNumber,u.column,u.lineNumber,u.column)}}class fs extends hc{_move(p,u,g,v,S){return kt.moveWordLeft(p,u,g,v,S)}}class _s extends hc{_move(p,u,g,v,S){return kt.moveWordRight(p,u,g,v)}}class uI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class gI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class pI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(nu,Sy)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class mI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class fI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class _I extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(nu,Sy)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class bI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(p,u,g,v,S){return super._move(xr(Wi.wordSeparators.defaultValue,p.intlSegmenterLocales),u,g,v,S)}}class vI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(p,u,g,v,S){return super._move(xr(Wi.wordSeparators.defaultValue,p.intlSegmenterLocales),u,g,v,S)}}class wI extends _s{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class SI extends _s{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(nu,Sy)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class CI extends _s{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class yI extends _s{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class xI extends _s{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(nu,Sy)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class II extends _s{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class LI extends _s{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(p,u,g,v,S){return super._move(xr(Wi.wordSeparators.defaultValue,p.intlSegmenterLocales),u,g,v,S)}}class kI extends _s{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(p,u,g,v,S){return super._move(xr(Wi.wordSeparators.defaultValue,p.intlSegmenterLocales),u,g,v,S)}}class uc extends Bt{constructor(p){super({canTriggerInlineEdits:!0,...p});this._whitespaceHeuristics=p.whitespaceHeuristics,this._wordNavigationType=p.wordNavigationType}runEditorCommand(p,u,g){let v=p?.get(et);if(!u.hasModel()||!v)return;let S=xr(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(),Q=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,Q),u.pushUndoStop()}}class xp extends uc{_delete(p,u){let g=kt.deleteWordLeft(p,u);if(g)return g;return new t(1,1,1,1)}}class Ip extends uc{_delete(p,u){let g=kt.deleteWordRight(p,u);if(g)return g;let v=p.model.getLineCount(),S=p.model.getLineMaxColumn(v);return new t(v,S,v,S)}}class EI extends xp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:o.writable})}}class DI extends xp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:o.writable})}}class TI extends xp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class RI extends Ip{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:o.writable})}}class NI extends Ip{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:o.writable})}}class MI extends Ip{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class OI 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(p,u,g){if(!u.hasModel())return;let v=!!(g&&typeof g==="object"&&g.onlyWord),S=xr(u.getOption(148),u.getOption(147)),y=u.getModel(),T=u.getSelections().map((R)=>{let K=kt.deleteInsideWord(S,y,R,v);return new ii(K,"")});u.pushUndoStop(),u.executeCommands(this.id,T),u.pushUndoStop()}}U(new uI);U(new gI);U(new pI);U(new mI);U(new fI);U(new _I);U(new wI);U(new SI);U(new CI);U(new yI);U(new xI);U(new II);U(new bI);U(new vI);U(new LI);U(new kI);U(new EI);U(new DI);U(new TI);U(new RI);U(new NI);U(new MI);I(OI);class PI extends uc{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(p,u){let g=xg.deleteWordPartLeft(p);if(g)return g;return new t(1,1,1,1)}}class AI extends uc{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(p,u){let g=xg.deleteWordPartRight(p);if(g)return g;let v=p.model.getLineCount(),S=p.model.getLineMaxColumn(v);return new t(v,S,v,S)}}class Pb extends hc{_move(p,u,g,v,S){return xg.moveWordPartLeft(p,u,g,S)}}class FI extends Pb{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 HI extends Pb{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 Ab extends hc{_move(p,u,g,v,S){return xg.moveWordPartRight(p,u,g)}}class KI extends Ab{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class jI extends Ab{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}U(new PI);U(new AI);U(new FI);U(new HI);U(new KI);U(new jI);var j2={[0]:" ",[1]:"u",[2]:"r"};var gc=16777215;class Lp{constructor(p){let u=Math.ceil(p/32);this._states=new Uint32Array(u)}get(p){let u=p/32|0,g=p%32;return(this._states[u]&1<<g)!==0}set(p,u){let g=p/32|0,v=p%32,S=this._states[g];if(u)this._states[g]=S|1<<v;else this._states[g]=S&~(1<<v)}}class Zi{constructor(p,u,g){if(p.length!==u.length||p.length>65535)throw Error("invalid startIndexes or endIndexes size");this._startIndexes=p,this._endIndexes=u,this._collapseStates=new Lp(p.length),this._userDefinedStates=new Lp(p.length),this._recoveredStates=new Lp(p.length),this._types=g,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let p=[],u=(g,v)=>{let S=p[p.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(p.length>0&&!u(S,y))p.pop();let D=p.length>0?p[p.length-1]:-1;p.push(g),this._startIndexes[g]=S+((D&255)<<24),this._endIndexes[g]=y+((D&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(p){return this._startIndexes[p]&16777215}getEndLineNumber(p){return this._endIndexes[p]&16777215}getType(p){return this._types?this._types[p]:void 0}hasTypes(){return!!this._types}isCollapsed(p){return this._collapseStates.get(p)}setCollapsed(p,u){this._collapseStates.set(p,u)}isUserDefined(p){return this._userDefinedStates.get(p)}setUserDefined(p,u){return this._userDefinedStates.set(p,u)}isRecovered(p){return this._recoveredStates.get(p)}setRecovered(p,u){return this._recoveredStates.set(p,u)}getSource(p){if(this.isUserDefined(p))return 1;else if(this.isRecovered(p))return 2;return 0}setSource(p,u){if(u===1)this.setUserDefined(p,!0),this.setRecovered(p,!1);else if(u===2)this.setUserDefined(p,!1),this.setRecovered(p,!0);else this.setUserDefined(p,!1),this.setRecovered(p,!1)}setCollapsedAllOfType(p,u){let g=!1;if(this._types){for(let v=0;v<this._types.length;v++)if(this._types[v]===p)this.setCollapsed(v,u),g=!0}return g}toRegion(p){return new $I(this,p)}getParentIndex(p){this.ensureParentIndices();let u=((this._startIndexes[p]&4278190080)>>>24)+((this._endIndexes[p]&4278190080)>>>16);if(u===65535)return-1;return u}contains(p,u){return this.getStartLineNumber(p)<=u&&this.getEndLineNumber(p)>=u}findIndex(p){let u=0,g=this._startIndexes.length;if(g===0)return-1;while(u<g){let v=Math.floor((u+g)/2);if(p<this.getStartLineNumber(v))g=v;else u=v+1}return u-1}findRange(p){let u=this.findIndex(p);if(u>=0){if(this.getEndLineNumber(u)>=p)return u;u=this.getParentIndex(u);while(u!==-1){if(this.contains(u,p))return u;u=this.getParentIndex(u)}}return-1}toString(){let p=[];for(let u=0;u<this.length;u++)p[u]=`[${j2[this.getSource(u)]}${this.isCollapsed(u)?"+":"-"}] ${this.getStartLineNumber(u)}/${this.getEndLineNumber(u)}`;return p.join(", ")}toFoldRange(p){return{startLineNumber:this._startIndexes[p]&16777215,endLineNumber:this._endIndexes[p]&16777215,type:this._types?this._types[p]:void 0,isCollapsed:this.isCollapsed(p),source:this.getSource(p)}}static fromFoldRanges(p){let u=p.length,g=new Uint32Array(u),v=new Uint32Array(u),S=[],y=!1;for(let T=0;T<u;T++){let R=p[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 Zi(g,v,S);for(let T=0;T<u;T++){if(p[T].isCollapsed)D.setCollapsed(T,!0);D.setSource(T,p[T].source)}return D}static sanitizeAndMerge(p,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(p,p.length),D=S(u,u.length),T=0,R=0,K=y(0),q=D(0),Q=[],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=Q.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)Q.push(te);te=ae}}}return re}}class $I{constructor(p,u){this.ranges=p,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(p){return p.startLineNumber<=this.startLineNumber&&p.endLineNumber>=this.endLineNumber}containsLine(p){return this.startLineNumber<=p&&p<=this.endLineNumber}}class Fb{get regions(){return this._regions}get textModel(){return this._textModel}constructor(p,u){this._updateEventEmitter=new i,this.onDidChange=this._updateEventEmitter.event,this._textModel=p,this._decorationProvider=u,this._regions=new Zi(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(p){if(!p.length)return;p=p.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 p){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:p})}removeManualRanges(p){let u=new Set,g=!1;for(let y of p)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 p)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(Zi.fromFoldRanges(v))}update(p,u){let g=this._currentFoldedOrManualRanges(u),v=Zi.sanitizeAndMerge(p,g,this._textModel.getLineCount(),u);this.updatePost(Zi.fromFoldRanges(v))}updatePost(p){let u=[],g=-1;for(let v=0,S=p.length;v<S;v++){let y=p.getStartLineNumber(v),D=p.getEndLineNumber(v),T=p.isCollapsed(v),R=p.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=p,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(p){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&&p?.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 p=this._currentFoldedOrManualRanges(),u=[],g=this._textModel.getLineCount();for(let v=0,S=p.length;v<S;v++){let y=p[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(p){if(!Array.isArray(p))return;let u=[],g=this._textModel.getLineCount();for(let S of p){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=Zi.sanitizeAndMerge(this._regions,u,g);this.updatePost(Zi.fromFoldRanges(v))}_getLinesChecksum(p,u){return Oc(this._textModel.getLineContent(p)+this._textModel.getLineContent(u))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(p,u){let g=[];if(this._regions){let v=this._regions.findRange(p),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(p){if(this._regions){let u=this._regions.findRange(p);if(u>=0)return this._regions.toRegion(u)}return null}getRegionsInside(p,u){let g=[],v=p?p.regionIndex+1:0,S=p?p.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 Vh(p,u,g){let v=[];for(let S of g){let y=p.getRegionAtLine(S);if(y){let D=!y.isCollapsed;if(v.push(y),u>1){let T=p.getRegionsInside(y,(R,K)=>R.isCollapsed!==D&&K<u);v.push(...T)}}}p.toggleCollapseState(v)}function sd(p,u,g=Number.MAX_VALUE,v){let S=[];if(v&&v.length>0)for(let y of v){let D=p.getRegionAtLine(y);if(D){if(D.isCollapsed!==u)S.push(D);if(g>1){let T=p.getRegionsInside(D,(R,K)=>R.isCollapsed!==u&&K<g);S.push(...T)}}}else{let y=p.getRegionsInside(null,(D,T)=>D.isCollapsed!==u&&T<g);S.push(...y)}p.toggleCollapseState(S)}function Hb(p,u,g,v){let S=[];for(let y of v){let D=p.getAllRegionsAtLine(y,(T,R)=>T.isCollapsed!==u&&R<=g);S.push(...D)}p.toggleCollapseState(S)}function JI(p,u,g){let v=[];for(let S of g){let y=p.getAllRegionsAtLine(S,(D)=>D.isCollapsed!==u);if(y.length>0)v.push(y[0])}p.toggleCollapseState(v)}function s0(p,u,g,v){let S=(D,T)=>T===u&&D.isCollapsed!==g&&!v.some((R)=>D.containsLine(R)),y=p.getRegionsInside(null,S);p.toggleCollapseState(y)}function Wb(p,u,g){let v=[];for(let D of g){let T=p.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=p.getRegionsInside(null,S);p.toggleCollapseState(y)}function kp(p,u,g){let{textModel:v,regions:S}=p,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))}p.toggleCollapseState(y)}function Ep(p,u,g){let v=p.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));p.toggleCollapseState(S)}function h0(p,u){let g=null,v=u.getRegionAtLine(p);if(v!==null){if(g=v.startLineNumber,p===g){let S=v.parentIndex;if(S!==-1)g=u.regions.getStartLineNumber(S);else g=null}}return g}function b0(p,u){let g=u.getRegionAtLine(p);if(g!==null&&g.startLineNumber===p)if(p!==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<p)return g.startLineNumber;if(g.regionIndex>0)g=u.regions.toRegion(g.regionIndex-1);else g=null}}return null}function T0(p,u){let g=u.getRegionAtLine(p);if(g!==null&&g.startLineNumber===p){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>p)return g.startLineNumber;if(g.regionIndex<u.regions.length)g=u.regions.toRegion(g.regionIndex+1);else g=null}}return null}class Bb{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(p){if(this._updateEventEmitter=new i,this._hasLineChanges=!1,this._foldingModel=p,this._foldingModelListener=p.onDidChange((u)=>this.updateHiddenRanges()),this._hiddenRanges=[],p.regions.length)this.updateHiddenRanges()}notifyChangeModelContent(p){if(this._hiddenRanges.length&&!this._hasLineChanges)this._hasLineChanges=p.changes.some((u)=>u.range.endLineNumber!==u.range.startLineNumber||Ls(u.text)[0]!==0)}updateHiddenRanges(){let p=!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(!p&&v<this._hiddenRanges.length&&this._hiddenRanges[v].startLineNumber===T&&this._hiddenRanges[v].endLineNumber===R)u.push(this._hiddenRanges[v]),v++;else p=!0,u.push(new t(T,1,R,1));S=T,y=R}if(this._hasLineChanges||p||v<this._hiddenRanges.length)this.applyHiddenRanges(u)}applyHiddenRanges(p){this._hiddenRanges=p,this._hasLineChanges=!1,this._updateEventEmitter.fire(p)}hasRanges(){return this._hiddenRanges.length>0}isHidden(p){return P0(this._hiddenRanges,p)!==null}adjustSelections(p){let u=!1,g=this._foldingModel.textModel,v=null,S=(y)=>{if(!v||!$2(y,v))v=P0(this._hiddenRanges,y);if(v)return v.startLineNumber-1;return null};for(let y=0,D=p.length;y<D;y++){let T=p[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;p[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 $2(p,u){return p>=u.startLineNumber&&p<=u.endLineNumber}function P0(p,u){let g=xh(p,(v)=>u<v.startLineNumber)-1;if(g>=0&&p[g].endLineNumber>=u)return p[g];return null}var G2=5000,Z2="indent";class pc{constructor(p,u,g){this.editorModel=p,this.languageConfigurationService=u,this.foldingRangesLimit=g,this.id=Z2}dispose(){}compute(p){let u=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,g=u&&!!u.offSide,v=u&&u.markers;return Promise.resolve(Y2(this.editorModel,g,v,this.foldingRangesLimit))}}class B0{constructor(p){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=p}insertFirst(p,u,g){if(p>gc||u>gc)return;let v=this._length;if(this._startIndexes[v]=p,this._endIndexes[v]=u,this._length++,g<1000)this._indentOccurrences[g]=(this._indentOccurrences[g]||0)+1}toIndentRanges(p){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 Zi(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=p.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=p.getLineContent(K),Q=hf(q,S);if(Q<v||Q===v&&g++<u)y[R]=K,D[R]=this._endIndexes[T],R++}return new Zi(y,D)}}}var X2={limit:G2,update:()=>{}};function Y2(p,u,g,v=X2){let S=p.getOptions().tabSize,y=new B0(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=p.getLineCount()+1;K.push({indent:-1,endAbove:q,line:q});for(let Q=p.getLineCount();Q>0;Q--){let te=p.getLineContent(Q),ne=hf(te,S),re=K[K.length-1];if(ne===-1){if(u)re.endAbove=Q;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(Q,re.line,ne),re.line=Q,re.indent=ne,re.endAbove=Q;continue}}else{K.push({indent:-2,endAbove:Q,line:Q});continue}if(re.indent>ne){do K.pop(),re=K[K.length-1];while(re.indent>ne);let Ae=re.endAbove-1;if(Ae-Q>=1)y.insertFirst(Q,Ae,ne)}if(re.indent===ne)re.endAbove=Q;else K.push({indent:ne,endAbove:Q,line:Q})}return y.toIndentRanges(p)}var J2=s("editor.foldBackground",{light:de(Zl,0.3),dark:de(Zl,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",ef,e(1062,"Color of the folding control in the editor gutter."));var Kh=Lt("folding-expanded",b.chevronDown,e(1063,"Icon for expanded ranges in the editor glyph margin.")),Uh=Lt("folding-collapsed",b.chevronRight,e(1064,"Icon for collapsed ranges in the editor glyph margin.")),eL=Lt("folding-manual-collapsed",Uh,e(1065,"Icon for manually collapsed ranges in the editor glyph margin.")),tL=Lt("folding-manual-expanded",Kh,e(1066,"Icon for manually expanded ranges in the editor glyph margin.")),Vb={color:en(J2),position:1},mc=e(1067,"Click to expand the range."),Dp=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:mc,firstLineDecorationClassName:G.asClassName(Uh)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=oe.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:Vb,isWholeLine:!0,linesDecorationsTooltip:mc,firstLineDecorationClassName:G.asClassName(Uh)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=oe.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:mc,firstLineDecorationClassName:G.asClassName(eL)})}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:Vb,isWholeLine:!0,linesDecorationsTooltip:mc,firstLineDecorationClassName:G.asClassName(eL)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:mc})}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:Vb,isWholeLine:!0,linesDecorationsTooltip:mc})}static{this.EXPANDED_VISUAL_DECORATION=oe.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+G.asClassName(Kh),linesDecorationsTooltip:Dp})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=oe.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:G.asClassName(Kh),linesDecorationsTooltip:Dp})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=oe.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+G.asClassName(tL),linesDecorationsTooltip:Dp})}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(tL),linesDecorationsTooltip:Dp})}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(p){this.editor=p,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(p,u,g){if(u)return Io.HIDDEN_RANGE_DECORATION;if(this.showFoldingControls==="never"){if(p)return this.showFoldingHighlights?Io.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:Io.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;return Io.NO_CONTROLS_EXPANDED_RANGE_DECORATION}if(p)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(p){return this.editor.changeDecorations(p)}removeDecorations(p){this.editor.removeDecorations(p)}}var Q2={},eT="syntax";class fc{constructor(p,u,g,v,S){if(this.editorModel=p,this.providers=u,this.handleFoldingRangesChange=g,this.foldingRangesLimit=v,this.fallbackRangeProvider=S,this.id=eT,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(p){return tT(this.providers,this.editorModel,p).then((u)=>{if(this.editorModel.isDisposed())return null;if(u)return iT(u,this.foldingRangesLimit);return this.fallbackRangeProvider?.compute(p)??null})}dispose(){this.disposables.dispose()}}function tT(p,u,g){let v=null,S=p.map((y,D)=>Promise.resolve(y.provideFoldingRanges(u,Q2,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 iL{constructor(p){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=p}add(p,u,g,v){if(p>gc||u>gc)return;let S=this._length;if(this._startIndexes[S]=p,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 p=this._foldingRangesLimit.limit;if(this._length<=p){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 Zi(u,g,this._types)}else{this._foldingRangesLimit.update(this._length,p);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>p){g=D;break}u+=T}}let v=new Uint32Array(p),S=new Uint32Array(p),y=[];for(let D=0,T=0;D<this._length;D++){let R=this._nestingLevels[D];if(R<g||R===g&&u++<p)v[T]=this._startIndexes[D],S[T]=this._endIndexes[D],y[T]=this._types[D],T++}return new Zi(v,S,y)}}}function iT(p,u){let g=p.sort((D,T)=>{let R=D.start-T.start;if(R===0)R=D.rank-T.rank;return R}),v=new iL(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 oT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},qh=function(p,u){return function(g,v){u(g,v,p)}},jh,Di=new A("foldingEnabled",!1),qr=class p 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 Tp(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=Di.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 Fb(u,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new Bb(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((g)=>this.onHiddenRangesChanges(g))),this.updateScheduler=new Si(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 pc(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 fc(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(Nr.Imports.value,!0);if(K)D=kr.capture(this.editor),this._currentModelHasFoldedImports=K}let T=this.editor.getSelections();u.update(y,nT(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),Q=g.getRegionsInside(null,q);for(let te of Q)if(te.isCollapsed)K.push(te);if(K.length===0)K=Q}else{let q=u.event.middleButton||u.event.shiftKey;if(q){for(let Q of g.getRegionsInside(D))if(Q.isCollapsed===T)K.push(Q)}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=oT([qh(1,V),qh(2,et),qh(3,ut),qh(4,Bi),qh(5,j)],qr);class Tp extends n{constructor(p){super();this.editor=p,this._onDidChange=this._register(new i),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(p,u){if(p!==this._computed||u!==this._limited)this._computed=p,this._limited=u,this._onDidChange.fire()}}class Ni extends z{runEditorCommand(p,u,g){let v=p.get(et),S=qr.get(u);if(!S)return;let y=S.getFoldingModel();if(y)return this.reportTelemetry(p,u),y.then((D)=>{if(D){this.invoke(S,D,u,g,v);let T=u.getSelection();if(T)S.reveal(T.getStartPosition())}})}getSelectedLines(p){let u=p.getSelections();return u?u.map((g)=>g.startLineNumber):[]}getLineNumbers(p,u){if(p&&p.selectionLines)return p.selectionLines.map((g)=>g+1);return this.getSelectedLines(u)}run(p,u){}}function nT(p){if(!p||p.length===0)return{startsInside:()=>!1};return{startsInside(u,g){for(let v of p){let S=v.startLineNumber;if(S>=u&&S<=g)return!0}return!1}}}function oL(p){if(!Mi(p)){if(!Gt(p))return!1;let u=p;if(!Mi(u.levels)&&!Xr(u.levels))return!1;if(!Mi(u.direction)&&!pn(u.direction))return!1;if(!Mi(u.selectionLines)&&(!Array.isArray(u.selectionLines)||!u.selectionLines.every(Xr)))return!1}return!0}class nL extends Ni{constructor(){super({id:"editor.unfold",label:h(1040,"Unfold"),precondition:Di,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:oL,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(p,u,g,v){let S=v&&v.levels||1,y=this.getLineNumbers(v,g);if(v&&v.direction==="up")Hb(u,!1,S,y);else sd(u,!1,S,y)}}class rL extends Ni{constructor(){super({id:"editor.unfoldRecursively",label:h(1041,"Unfold Recursively"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2142),weight:100}})}invoke(p,u,g,v){sd(u,!1,Number.MAX_VALUE,this.getSelectedLines(g))}}class sL extends Ni{constructor(){super({id:"editor.fold",label:h(1042,"Fold"),precondition:Di,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:oL,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(p,u,g,v){let S=this.getLineNumbers(v,g),y=v&&v.levels,D=v&&v.direction;if(typeof y!=="number"&&typeof D!=="string")JI(u,!0,S);else if(D==="up")Hb(u,!0,y||1,S);else sd(u,!0,y||1,S)}}class aL extends Ni{constructor(){super({id:"editor.toggleFold",label:h(1043,"Toggle Fold"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2090),weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);Vh(u,1,v)}}class dL extends Ni{constructor(){super({id:"editor.foldRecursively",label:h(1044,"Fold Recursively"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2140),weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);sd(u,!0,Number.MAX_VALUE,v)}}class cL extends Ni{constructor(){super({id:"editor.toggleFoldRecursively",label:h(1045,"Toggle Fold Recursively"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,3114),weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);Vh(u,Number.MAX_VALUE,v)}}class lL extends Ni{constructor(){super({id:"editor.foldAllBlockComments",label:h(1046,"Fold All Block Comments"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2138),weight:100}})}invoke(p,u,g,v,S){if(u.regions.hasTypes())Ep(u,Nr.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*"+Ci(D.blockCommentStartToken));kp(u,T,!0)}}}}class hL extends Ni{constructor(){super({id:"editor.foldAllMarkerRegions",label:h(1047,"Fold All Regions"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2077),weight:100}})}invoke(p,u,g,v,S){if(u.regions.hasTypes())Ep(u,Nr.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);kp(u,T,!0)}}}}class uL extends Ni{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:h(1048,"Unfold All Regions"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2078),weight:100}})}invoke(p,u,g,v,S){if(u.regions.hasTypes())Ep(u,Nr.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);kp(u,T,!1)}}}}class gL extends Ni{constructor(){super({id:"editor.foldAllExcept",label:h(1049,"Fold All Except Selected"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2136),weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);Wb(u,!0,v)}}class pL extends Ni{constructor(){super({id:"editor.unfoldAllExcept",label:h(1050,"Unfold All Except Selected"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2134),weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);Wb(u,!1,v)}}class mL extends Ni{constructor(){super({id:"editor.foldAll",label:h(1051,"Fold All"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2069),weight:100}})}invoke(p,u,g){sd(u,!0)}}class fL extends Ni{constructor(){super({id:"editor.unfoldAll",label:h(1052,"Unfold All"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2088),weight:100}})}invoke(p,u,g){sd(u,!1)}}class Gh extends Ni{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=(p)=>Gh.ID_PREFIX+p}getFoldingLevel(){return parseInt(this.id.substr(Gh.ID_PREFIX.length))}invoke(p,u,g){s0(u,this.getFoldingLevel(),!0,this.getSelectedLines(g))}}class _L extends Ni{constructor(){super({id:"editor.gotoParentFold",label:h(1053,"Go to Parent Fold"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);if(v.length>0){let S=h0(v[0],u);if(S!==null)g.setSelection({startLineNumber:S,startColumn:1,endLineNumber:S,endColumn:1})}}}class bL extends Ni{constructor(){super({id:"editor.gotoPreviousFold",label:h(1054,"Go to Previous Folding Range"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);if(v.length>0){let S=b0(v[0],u);if(S!==null)g.setSelection({startLineNumber:S,startColumn:1,endLineNumber:S,endColumn:1})}}}class vL extends Ni{constructor(){super({id:"editor.gotoNextFold",label:h(1055,"Go to Next Folding Range"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(p,u,g){let v=this.getSelectedLines(g);if(v.length>0){let S=T0(v[0],u);if(S!==null)g.setSelection({startLineNumber:S,startColumn:1,endLineNumber:S,endColumn:1})}}}class wL extends Ni{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:h(1056,"Create Folding Range from Selection"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2135),weight:100}})}invoke(p,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=Zi.sanitizeAndMerge(u.regions,v,g.getModel()?.getLineCount());u.updatePost(Zi.fromFoldRanges(y))}}}}class SL extends Ni{constructor(){super({id:"editor.removeManualFoldingRanges",label:h(1057,"Remove Manual Folding Ranges"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2137),weight:100}})}invoke(p,u,g){let v=g.getSelections();if(v)u.removeManualRanges(v),p.triggerFoldingModelChanged()}}class CL extends Ni{constructor(){super({id:"editor.toggleImportFold",label:h(1058,"Toggle Import Fold"),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}async invoke(p,u){let g=[],v=u.regions;for(let S=v.length-1;S>=0;S--)if(v.getType(S)===Nr.Imports.value)g.push(v.toRegion(S));u.toggleCollapseState(g),p.triggerFoldingModelChanged()}}le(qr.ID,qr,0);I(nL);I(rL);I(sL);I(dL);I(cL);I(mL);I(fL);I(lL);I(hL);I(uL);I(gL);I(pL);I(aL);I(_L);I(bL);I(vL);I(wL);I(SL);I(CL);for(let p=1;p<=7;p++)dR(new Gh({id:Gh.ID(p),label:h(1059,"Fold Level {0}",p),precondition:Di,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2048|21+p),weight:100}}));we.registerCommand("_executeFoldingRangeProvider",async function(p,...u){let[g]=u;if(!(g instanceof W))throw Qi();let v=p.get(j),S=p.get(gt).getModel(g);if(!S)throw Qi();let y=p.get(X);if(!y.getValue("editor.folding",{resource:g}))return[];let D=p.get(et),T=y.getValue("editor.foldingStrategy",{resource:g}),R={get limit(){return y.getValue("editor.foldingMaximumRegions",{resource:g})},update:(ne,re)=>{}},K=new pc(S,D,R),q=K;if(T!=="indentation"){let ne=qr.getFoldingRangeProviders(v,S);if(ne.length)q=new fc(S,ne,()=>{},R,K)}let Q=await q.compute(he.None),te=[];try{if(Q)for(let ne=0;ne<Q.length;ne++){let re=Q.getType(ne);te.push({start:Q.getStartLineNumber(ne),end:Q.getEndLineNumber(ne),kind:re?Nr.fromValue(re):void 0})}return te}finally{q.dispose()}});var yL=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Rp=function(p,u){return function(g,v){u(g,v,p)}};class zb{constructor(p,u,g){this.marker=p,this.index=u,this.total=g}}var Kb=class p{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=dh(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),Ke(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 zb(u,this._nextIdx+1,this._markers.length)}_initIdx(u,g,v){let S=this._markers.findIndex((y)=>Mr(y.resource,u.uri));if(S<0){if(S=ch(this._markers.length,(y)=>dh(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 zb(this._markers[v],v+1,this._markers.length);return}};Kb=yL([Rp(1,ur),Rp(2,X)],Kb);var qb=Z("IMarkerNavigationService"),Ub=class p{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 Kb(u,this._markerService,this._configService)}};Ub=yL([Rp(0,ur),Rp(1,X)],Ub);fe(qb,Ub,1);var rT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},$r=function(p,u){return function(g,v){u(g,v,p)}},ro=class p extends bl{constructor(u,g,v,S,y,D,T,R,K,q,Q,te,ne,re){super(u,{...S.getRawOptions(),overflowWidgetsDomNode:S.getOverflowWidgetsDomNode()},v,y,D,T,R,K,q,Q,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){Wp(this._overwriteOptions,u,!0),super.updateOptions(this._overwriteOptions)}};ro=rT([$r(4,L),$r(5,ye),$r(6,Ne),$r(7,V),$r(8,De),$r(9,ut),$r(10,Vt),$r(11,et),$r(12,j),$r(13,lr)],ro);function Np(p){let u=p.get(ye).getFocusedCodeEditor();if(u instanceof ro)return u.getParentEditor();return u}var xL=new f(new k(0,122,204)),sT={showArrow:!0,showFrame:!0,className:"",frameColor:xL,arrowColor:xL,keepEditorSelection:!1},aT="vs.editor.contrib.zoneWidget";class IL{constructor(p,u,g,v,S,y,D,T){this.id="",this.domNode=p,this.afterLineNumber=u,this.afterColumn=g,this.heightInLines=v,this.showInHiddenAreas=D,this.ordinal=T,this._onDomNodeTop=S,this._onComputedHeight=y}onDomNodeTop(p){this._onDomNodeTop(p)}onComputedHeight(p){this._onComputedHeight(p)}}class LL{constructor(p,u){this._id=p,this._domNode=u}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class jb{static{this._IdGenerator=new kg(".arrow-decoration-")}constructor(p){this._editor=p,this._ruleName=jb._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),w0(this._ruleName)}set color(p){if(this._color!==p)this._color=p,this._updateStyle()}set height(p){if(this._height!==p)this._height=p,this._updateStyle()}_updateStyle(){w0(this._ruleName),mg(`.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(p){if(p.column===1)p={lineNumber:p.lineNumber,column:2};this._decorations.set([{range:t.fromPositions(p),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class $b{constructor(p,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=p,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Js(u),Wp(this.options,sT,!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((p)=>{if(this._viewZone)p.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 jb(this.editor),this._disposables.add(this._arrow);this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(p){if(p.frameColor)this.options.frameColor=p.frameColor;if(p.arrowColor)this.options.arrowColor=p.arrowColor;this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let p=this.options.frameColor.toString();this.container.style.borderTopColor=p,this.container.style.borderBottomColor=p}if(this._arrow&&this.options.arrowColor){let p=this.options.arrowColor.toString();this._arrow.color=p}}_getWidth(p){return p.width-p.minimap.minimapWidth-p.verticalScrollbarWidth}_getLeft(p){if(p.minimap.minimapWidth>0&&p.minimap.minimapLeft===0)return p.minimap.minimapWidth;return 0}_onViewZoneTop(p){this.domNode.style.top=p+"px"}_onViewZoneHeight(p){if(this.domNode.style.height=`${p}px`,this.container){let u=p-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 p=this._positionMarkerId.getRange(0);if(!p)return;return p.getStartPosition()}show(p,u){let g=t.isIRange(p)?t.lift(p):t.fromPositions(p);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((p)=>{if(this._viewZone)p.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 p=this.editor.getOption(75),u=0;if(this.options.showArrow){let g=Math.round(p/3);u+=2*g}if(this.options.showFrame){let g=this.options.frameWidth??Math.round(p/9);u+=2*g}return u}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*0.8)}_showImpl(p,u){let g=p.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 IL(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 LL(aT+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(p);let Q=this.editor.getModel();if(Q){let te=Q.validateRange(new t(p.startLineNumber,1,p.endLineNumber+1,1));this.revealRange(te,te.startLineNumber===Q.getLineCount())}}revealRange(p,u){if(u)this.editor.revealLineNearTop(p.endLineNumber,0);else this.editor.revealRange(p,0)}setCssClass(p,u){if(!this.container)return;if(u)this.container.classList.remove(u);this.container.classList.add(p)}_onWidth(p){}_doLayout(p,u){}_relayout(p,u){let g=this._getMaximumHeightInLines(),v=u&&g!==void 0?Math.min(g,p):p;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 qi(this.domNode,this,{orientation:1})),!this.options.isResizeable)this._resizeSash.state=0;let p;this._disposables.add(this._resizeSash.onDidStart((u)=>{if(this._viewZone)p={startY:u.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()}})),this._disposables.add(this._resizeSash.onDidEnd(()=>{p=void 0})),this._disposables.add(this._resizeSash.onDidChange((u)=>{if(p){let g=(u.currentY-p.startY)/this.editor.getOption(75),v=g<0?Math.ceil(g):Math.floor(g),S=p.heightInLines+v;if(S>p.minLines&&S<p.maxLines)this._isSashResizeHeight=!0,this._relayout(S)}}))}_updateSashEnablement(){if(this._resizeSash){let{minLines:p,maxLines:u}=this._getResizeBounds();this._resizeSash.state=p===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 p=this.editor.getLayoutInfo();return p.width-p.minimap.minimapWidth}}var kL=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Gb=Z("IPeekViewService");fe(Gb,class{constructor(){this._widgets=new Map}addExclusiveWidget(p,u){let g=this._widgets.get(p);if(g)g.listener.dispose(),g.widget.dispose();let v=()=>{let S=this._widgets.get(p);if(S&&S.widget===u)S.listener.dispose(),this._widgets.delete(p)};this._widgets.set(p,{widget:u,listener:u.onDidClose(v)})}},1);var Hi;(function(p){p.inPeekEditor=new A("inReferenceSearchEditor",!0,e(1382,"Whether the current code editor is embedded inside peek")),p.notInPeekEditor=p.inPeekEditor.toNegated()})(Hi||(Hi={}));var Mp=class p{static{this.ID="editor.contrib.referenceController"}constructor(u,g){if(u instanceof ro)Hi.inPeekEditor.bindTo(g)}dispose(){}};Mp=kL([EL(1,V)],Mp);le(Mp.ID,Mp,0);var dT={headerBackgroundColor:f.white,primaryHeadingColor:f.fromHex("#333333"),secondaryHeadingColor:f.fromHex("#6c6c6cb3")},_c=class p extends $b{constructor(u,g,v){super(u,g);this.instantiationService=v,this._onDidClose=new i,this.onDidClose=this._onDidClose.event,Wp(this.options,dT,!1);let S=Xe(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=Xe(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 $i(v,S),this._disposables.add(this._actionbarWidget),!g)this._actionbarWidget.push(this._disposables.add(new eo("peekview.close",e(1383,"Close"),G.asClassName(b.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(u){}_getActionBarOptions(){return{actionViewItemProvider:Rg.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,fo(this._metaHeading);else Vi(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`}};_c=kL([EL(2,L)],_c);var DL=s("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:f.black,hcLight:f.white},e(1384,"Background color of the peek view title area.")),Op=s("peekViewTitleLabel.foreground",{dark:f.white,light:f.black,hcDark:f.white,hcLight:Qs},e(1385,"Color of the peek view title.")),Pp=s("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},e(1386,"Color of the peek view title info.")),TL=s("peekView.border",{dark:rs,light:rs,hcDark:Re,hcLight:Re},e(1387,"Color of the peek view borders and arrow.")),RL=s("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:f.black,hcLight:f.white},e(1388,"Background color of the peek view result list."));s("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:f.white,hcLight:Qs},e(1389,"Foreground color for line nodes in the peek view result list."));s("peekViewResult.fileForeground",{dark:f.white,light:"#1E1E1E",hcDark:f.white,hcLight:Qs},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:f.white,light:"#6C6C6C",hcDark:f.white,hcLight:Qs},e(1392,"Foreground color of the selected entry in the peek view result list."));var Zb=s("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:f.black,hcLight:f.white},e(1393,"Background color of the peek view editor."));s("peekViewEditorGutter.background",Zb,e(1394,"Background color of the gutter in the peek view editor."));s("peekViewEditorStickyScroll.background",Zb,e(1395,"Background color of sticky scroll in the peek view editor."));s("peekViewEditorStickyScrollGutter.background",Zb,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 Ap;(function(p){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""}}p.className=u})(Ap||(Ap={}));var cT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},bc=function(p,u){return function(g,v){u(g,v,p)}},Xb;class PL{constructor(p,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 hy(y,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),p.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(p){let{source:u,message:g,relatedInformation:v,code:S}=p,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 Q of D)this._longestLineLength=Math.max(Q.length+y,this._longestLineLength);Xt(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(p)),vo(this.getAriaLabel(p)),this._editor.applyFontInfo(this._messageBlock);let T=this._messageBlock;for(let Q of D){if(T=document.createElement("div"),T.innerText=Q,Q==="")T.style.height=this._messageBlock.style.lineHeight;this._messageBlock.appendChild(T)}if(u||S){let Q=document.createElement("span");if(Q.classList.add("details"),T.appendChild(Q),u){let te=document.createElement("span");te.innerText=u,te.classList.add("source"),Q.appendChild(te)}if(S)if(typeof S==="string"){let te=document.createElement("span");te.innerText=`(${S})`,te.classList.add("code"),Q.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,Q.appendChild(this._codeLink)}}if(Xt(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Ln(v)){let Q=this._relatedBlock.appendChild(document.createElement("div"));Q.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,Q.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(p,u){this._scrollable.getDomNode().style.height=`${p}px`,this._scrollable.getDomNode().style.width=`${u}px`,this._scrollable.setScrollDimensions({width:u,height:p})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(p){let u="";switch(p.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,p.message,p.startLineNumber+":"+p.startColumn),v=this._editor.getModel();if(v&&p.startLineNumber<=v.getLineCount()&&p.startLineNumber>=1)g=`${v.getLineContent(p.startLineNumber)}, ${g}`;return g}}var vc=class p extends _c{static{Xb=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=f.white,this._applyTheme(g.getColorTheme()),this._callOnDispose.add(g.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(u){this._backgroundColor=u.getColor(gT);let g=Yb,v=lT;if(this._severity===Ut.Warning)g=Fp,v=hT;else if(this._severity===Ut.Info)g=Jb,v=uT;let S=u.getColor(g),y=u.getColor(v);this.style({arrowColor:S,frameColor:S,headerBackgroundColor:y,primaryHeadingColor:u.getColor(Op),secondaryHeadingColor:u.getColor(Pp)})}_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(Xb.TitleMenu,this._contextKeyService),v=FR(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 PL(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(pi(T.uri),R)}this._icon.className=`codicon ${Ap.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()}};vc=Xb=cT([bc(1,De),bc(2,To),bc(3,hi),bc(4,L),bc(5,V),bc(6,wl)],vc);var NL=Qp(nf,fR),ML=Qp(ea,kh),OL=Qp(rs,Eh),Yb=s("editorMarkerNavigationError.background",{dark:NL,light:NL,hcDark:Re,hcLight:Re},e(1089,"Editor marker navigation widget error color.")),lT=s("editorMarkerNavigationError.headerBackground",{dark:de(Yb,0.1),light:de(Yb,0.1),hcDark:null,hcLight:null},e(1090,"Editor marker navigation widget error heading background.")),Fp=s("editorMarkerNavigationWarning.background",{dark:ML,light:ML,hcDark:Re,hcLight:Re},e(1091,"Editor marker navigation widget warning color.")),hT=s("editorMarkerNavigationWarning.headerBackground",{dark:de(Fp,0.1),light:de(Fp,0.1),hcDark:"#0C141F",hcLight:de(Fp,0.2)},e(1092,"Editor marker navigation widget warning heading background.")),Jb=s("editorMarkerNavigationInfo.background",{dark:OL,light:OL,hcDark:Re,hcLight:Re},e(1093,"Editor marker navigation widget info color.")),uT=s("editorMarkerNavigationInfo.headerBackground",{dark:de(Jb,0.1),light:de(Jb,0.1),hcDark:null,hcLight:null},e(1094,"Editor marker navigation widget info heading background.")),gT=s("editorMarkerNavigation.background",Eo,e(1095,"Editor marker navigation widget background."));var pT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Kp=function(p,u){return function(g,v){u(g,v,p)}},Zh,sa=class p{static{Zh=this}static{this.ID="editor.contrib.markerController"}static get(u){return u.getContribution(Zh.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=AL.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(vc,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)Zh.get(y)?.close(),Zh.get(y)?.navigate(u,g)}else this._widget.showAtMarker(S.selected.marker,S.selected.index,S.selected.total)}};sa=Zh=pT([Kp(1,qb),Kp(2,V),Kp(3,ye),Kp(4,L)],sa);class Xh extends z{constructor(p,u,g){super(g);this._next=p,this._multiFile=u}async run(p,u){if(u.hasModel())await sa.get(u)?.navigate(this._next,this._multiFile)}}class bs extends Xh{static{this.ID="editor.action.marker.next"}static{this.LABEL=h(1078,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:bs.ID,label:bs.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:578,weight:100},menuOpts:{menuId:vc.TitleMenu,title:bs.LABEL.value,icon:Lt("marker-navigation-next",b.arrowDown,e(1074,"Icon for goto next marker.")),group:"navigation",order:1}})}}class ad extends Xh{static{this.ID="editor.action.marker.prev"}static{this.LABEL=h(1079,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:ad.ID,label:ad.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1602,weight:100},menuOpts:{menuId:vc.TitleMenu,title:ad.LABEL.value,icon:Lt("marker-navigation-previous",b.arrowUp,e(1075,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class Yh extends Xh{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:Yh.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 Jh extends Xh{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:Jh.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(bs);I(ad);I(Yh);I(Jh);var AL=new A("markersNavigationVisible",!1),mT=Bt.bindToContribution(sa.get);U(new mT({id:"closeMarkersNavigation",precondition:AL,handler:(p)=>p.close(),kbOpts:{weight:150,kbExpr:o.focus,primary:9,secondary:[1033]}}));class zv{constructor(p){this.options=p,this.rangeHighlightDecorationId=void 0}provide(p,u,g){let v=new c;p.canAcceptInBackground=!!this.options?.canAcceptInBackground,p.matchOnLabel=p.matchOnDescription=p.matchOnDetail=p.sortByLabel=!1;let S=v.add(new ie);return S.value=this.doProvide(p,u,g),v.add(this.onDidActiveTextEditorControlChange(()=>{S.value=void 0,S.value=this.doProvide(p,u)})),v}doProvide(p,u,g){let v=new c,S=this.activeTextEditorControl;if(S&&this.canProvideWithTextEditor(S)){let y={editor:S},D=s_(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(es(u.onCancellationRequested)(()=>y.restoreViewState?.()))}v.add(E(()=>this.clearDecorations(S))),v.add(this.provideWithTextEditor(y,p,u,g))}else v.add(this.provideWithoutTextEditor(p,u));return v}canProvideWithTextEditor(p){return!0}gotoLocation({editor:p},u){if(p.setSelection(u.range,"code.jump"),p.revealRangeInCenter(u.range,0),!u.preserveFocus)p.focus();let g=this.getModel(p);if(g){let v=g.getLineContent(u.range.startLineNumber);vo(e(1401,"Line {0}, column {1}: {2}",u.range.startLineNumber,u.range.startColumn,v))}}getModel(p){return Og(p)?p.getModel()?.modified:p.getModel()}addDecorations(p,u){p.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(I0),position:ko.Full}}}],[y,D]=g.deltaDecorations(v,S);this.rangeHighlightDecorationId={rangeHighlightId:y,overviewRulerDecorationId:D}})}clearDecorations(p){let u=this.rangeHighlightDecorationId;if(u)p.changeDecorations((g)=>{g.deltaDecorations([u.overviewRulerDecorationId,u.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0}}class wc extends zv{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(wc.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(p){this.storageService.store(wc.ZERO_BASED_OFFSET_STORAGE_KEY,p,-1,0)}provideWithoutTextEditor(p){let u=e(1402,"Open a text editor first to go to a line or an offset.");return p.items=[{label:u}],p.ariaLabel=u,n.None}provideWithTextEditor(p,u,g){let v=p.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(p,{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:mf.Input,toggle:{checked:this.useZeroBasedOffset}},D=()=>{let R=u.value.trim().substring(wc.GO_TO_LINE_PREFIX.length),{inOffsetMode:K,lineNumber:q,column:Q,label:te}=this.parsePosition(v,R);if(u.buttons=K?[y]:[],u.items=[{lineNumber:q,column:Q,label:te,ariaLabel:q?e(1405,"Go to line {0}, column {1}. Press Enter to navigate.",q,Q||1):te}],!q){this.clearDecorations(v);return}let ne=this.toRange(q,Q);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=s_(v);if(T){if(T.getOptions().get(76).renderType===2)T.updateOptions({lineNumbers:"on"}),S.add(E(()=>T.updateOptions({lineNumbers:"relative"})))}return S}toRange(p=1,u=1){return{startLineNumber:p,startColumn:u,endLineNumber:p,endColumn:u}}parsePosition(p,u){let g=this.getModel(p);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 fT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},FL=function(p,u){return function(g,v){u(g,v,p)}},aa=class p extends wc{constructor(u,g){super();this.editorService=u,this.storageService=g,this.onDidActiveTextEditorControlChange=C.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};aa=fT([FL(0,ye),FL(1,xn)],aa);class qp extends z{static{this.ID="editor.action.gotoLine"}constructor(){super({id:qp.ID,label:wf.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2085,mac:{primary:293},weight:100}})}run(p){p.get(dn).quickAccess.show(aa.GO_TO_LINE_PREFIX)}}I(qp);it.as(Ds.Quickaccess).registerQuickAccessProvider({ctor:aa,prefix:aa.GO_TO_LINE_PREFIX,helpEntries:[{description:wf.gotoLineActionLabel,commandId:qp.ID}]});class $p extends z{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:$p.ID,label:wf.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(p){p.get(dn).quickAccess.show(aa.GO_TO_OFFSET_PREFIX)}}I($p);it.as(Ds.Quickaccess).registerQuickAccessProvider({ctor:aa,prefix:aa.GO_TO_OFFSET_PREFIX,helpEntries:[{description:wf.gotoOffsetActionLabel,commandId:$p.ID}]});var _T=s("editorOverviewRuler.bracketMatchForeground","#A0A0A0",e(855,"Overview ruler marker color for matching brackets."));class HL 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(p,u){vs.get(u)?.jumpToBracket()}}class WL 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(p,u,g){let v=!0;if(g&&g.selectBrackets===!1)v=!1;vs.get(u)?.selectToBracket(v)}}class BL 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(p,u){vs.get(u)?.removeBrackets(this.id)}}class VL{constructor(p,u,g){this.position=p,this.brackets=u,this.options=g}}class vs extends n{static{this.ID="editor.contrib.bracketMatchingController"}static get(p){return p.getContribution(vs.ID)}constructor(p){super();this._editor=p,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(p.onDidChangeCursorPosition((u)=>{if(this._matchBrackets==="never")return;this._updateBracketsSoon.schedule()})),this._register(p.onDidChangeModelContent((u)=>{this._updateBracketsSoon.schedule()})),this._register(p.onDidChangeModel((u)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(p.onDidChangeModelLanguageConfiguration((u)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(p.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(p.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(p.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let p=this._editor.getModel(),u=this._editor.getSelections().map((g)=>{let v=g.getStartPosition(),S=p.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=p.bracketPairs.findEnclosingBrackets(v);if(D)y=D[1].getStartPosition();else{let T=p.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(p){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=p?R.getStartPosition():R.getEndPosition(),T=p?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(p){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(p,[{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(_T),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 p=[],u=0;for(let g of this._lastBracketsData){let v=g.brackets;if(v)p[u++]={range:v[0],options:g.options},p[u++]={range:v[1],options:g.options}}this._decorations.set(p)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let p=this._editor.getSelections();if(p.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,Q=p.length;q<Q;q++){let te=p[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,Q=S.length;q<Q;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=vs._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;if(!ne&&this._matchBrackets==="always")ne=u.bracketPairs.findEnclosingBrackets(te,20),re=vs._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;D[T++]=new VL(te,ne,re)}}this._lastBracketsData=D,this._lastVersionId=g}}le(vs.ID,vs,1);I(WL);I(HL);I(BL);Rn.appendMenuItem(a.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:e(856,"Go to &&Bracket")},order:2});oi((p,u)=>{let g=p.getColor(kR);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")}},zi;(function(p){p.Refactor="refactor",p.RefactorPreview="refactor preview",p.Lightbulb="lightbulb",p.Default="other (default)",p.SourceAction="source action",p.QuickFix="quick fix action",p.FixAll="fix all",p.OrganizeImports="organize imports",p.AutoFix="auto fix",p.QuickFixHover="quick fix hover window",p.OnSave="save participants",p.ProblemsView="problems view"})(zi||(zi={}));function zL(p,u){if(p.include&&!p.include.intersects(u))return!1;if(p.excludes){if(p.excludes.some((g)=>UL(u,g,p.include)))return!1}if(!p.includeSourceActions&&zt.Source.contains(u))return!1;return!0}function KL(p,u){let g=u.kind?new It(u.kind):void 0;if(p.include){if(!g||!p.include.contains(g))return!1}if(p.excludes){if(g&&p.excludes.some((v)=>UL(g,v,p.include)))return!1}if(!p.includeSourceActions){if(g&&zt.Source.contains(g))return!1}if(p.onlyIncludePreferredActions){if(!u.isPreferred)return!1}return!0}function UL(p,u,g){if(!u.contains(p))return!1;if(g&&u.contains(g))return!1;return!0}class hn{static fromUser(p,u){if(!p||typeof p!=="object")return new hn(u.kind,u.apply,!1);return new hn(hn.getKindFromUser(p,u.kind),hn.getApplyFromUser(p,u.apply),hn.getPreferredUser(p))}static getApplyFromUser(p,u){switch(typeof p.apply==="string"?p.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return u}}static getKindFromUser(p,u){return typeof p.kind==="string"?new It(p.kind):u}static getPreferredUser(p){return typeof p.preferred==="boolean"?p.preferred:!1}constructor(p,u,g){this.kind=p,this.apply=u,this.preferred=g}}class Qb{constructor(p,u,g){this.action=p,this.provider=u,this.highlightRange=g}async resolve(p){if(this.provider?.resolveCodeAction&&!this.action.edit){let u;try{u=await this.provider.resolveCodeAction(this.action,p)}catch(g){dt(g)}if(u)this.action.edit=u.edit}return this}}var Jp="editor.action.codeAction",da="editor.action.quickFix",Sc="editor.action.autoFix",em="editor.action.refactor",tm="editor.action.sourceAction",eu="editor.action.organizeImports",lu="editor.action.fixAll",bT=1000;class Qh extends n{static codeActionsPreferredComparator(p,u){if(p.isPreferred&&!u.isPreferred)return-1;else if(!p.isPreferred&&u.isPreferred)return 1;else return 0}static codeActionsComparator({action:p},{action:u}){if(p.isAI&&!u.isAI)return 1;else if(!p.isAI&&u.isAI)return-1;if(Ln(p.diagnostics))return Ln(u.diagnostics)?Qh.codeActionsPreferredComparator(p,u):-1;else if(Ln(u.diagnostics))return 1;else return Qh.codeActionsPreferredComparator(p,u)}constructor(p,u,g){super();this.documentation=u,this._register(g),this.allActions=[...p].sort(Qh.codeActionsComparator),this.validActions=this.allActions.filter(({action:v})=>!v.disabled)}get hasAutoFix(){return this.validActions.some(({action:p})=>!!p.kind&&zt.QuickFix.contains(new It(p.kind))&&!!p.isPreferred)}get hasAIFix(){return this.validActions.some(({action:p})=>!!p.isAI)}get allAIFixes(){return this.validActions.every(({action:p})=>!!p.isAI)}}var qL={actions:[],documentation:void 0};async function ca(p,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 Mg(u,y),q=v.type===2,Q=vT(p,u,q?T:D),te=new c,ne=Q.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(),qL;if(ke)te.add(ke);let Ae=(ke?.actions||[]).filter((Ve)=>Ve&&KL(D,Ve)),He=ST(ae,Ae,D.include);return{actions:Ae.map((Ve)=>new Qb(Ve,ae)),documentation:He}}catch(ke){if(Kn(ke))throw ke;return dt(ke),qL}finally{clearTimeout(ge)}}),re=p.onDidChange(()=>{let ae=p.all(u);if(!Ke(ae,Q))K.cancel()});try{let ae=await Promise.all(ne),ge=ae.map((He)=>He.actions).flat(),ke=[...Xi(ae.map((He)=>He.documentation)),...wT(p,u,v,ge)],Ae=new Qh(ge,ke,te);return te.add(Ae),Ae}catch(ae){throw te.dispose(),ae}finally{re.dispose(),K.dispose()}}function vT(p,u,g){return p.all(u).filter((v)=>{if(!v.providedCodeActionKinds)return!0;return v.providedCodeActionKinds.some((S)=>zL(g,new It(S)))})}function*wT(p,u,g,v){if(u&&v.length){for(let S of p.all(u))if(S._getAdditionalMenuItems)yield*S._getAdditionalMenuItems?.({trigger:g.type,only:g.filter?.include?.value},v.map((y)=>y.action))}}function ST(p,u,g){if(!p.documentation)return;let v=p.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 Gr;(function(p){p.OnSave="onSave",p.FromProblemsView="fromProblemsView",p.FromCodeActions="fromCodeActions",p.FromAILightbulb="fromAILightbulb",p.FromProblemsHover="fromProblemsHover"})(Gr||(Gr={}));async function jL(p,u,g,v,S=he.None){let y=p.get(_l),D=p.get(Ne),T=p.get(kn),R=p.get(ut),K=p.get(Br);if(T.publicLog2("codeAction.applyCodeAction",{codeActionTitle:u.action.title,codeActionKind:u.action.kind,codeActionIsPreferred:!!u.action.isPreferred,reason:g}),K.playSignal(Ge.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!==Gr.OnSave,showPreview:v?.preview,reason:$n.codeAction({kind:u.action.kind,providerId:ig.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 Q=CT(q);R.error(typeof Q==="string"?Q:e(881,"An unknown error occurred while applying the code action"))}setTimeout(()=>K.playSignal(Ge.codeActionApplied),bT)}function CT(p){if(typeof p==="string")return p;else if(p instanceof Error&&typeof p.message==="string")return p.message;else return}we.registerCommand("_executeCodeActionProvider",async function(p,u,g,v,S){if(!(u instanceof W))throw Qi();let{codeActionProvider:y}=p.get(j),D=p.get(gt).getModel(u);if(!D)throw Qi();let T=O.isISelection(g)?O.liftSelection(g):t.isIRange(g)?D.validateRange(g):void 0;if(!T)throw Qi();let R=typeof v==="string"?new It(v):void 0,K=await ca(y,D,T,{type:1,triggerAction:zi.Default,filter:{includeSourceActions:!0,include:R}},na.None,he.None),q=[],Q=Math.min(K.validActions.length,typeof S==="number"?S:0);for(let te=0;te<Q;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 yT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},ev,im=class p{static{ev=this}static{this.codeActionCommands=[em,Jp,tm,eu,lu]}constructor(u){this.keybindingService=u}getResolver(){let u=new Pn(()=>this.keybindingService.getKeybindings().filter((g)=>ev.codeActionCommands.indexOf(g.command)>=0).filter((g)=>g.resolvedKeybinding).map((g)=>{let v=g.commandArgs;if(g.command===eu)v={kind:zt.SourceOrganizeImports.value};else if(g.command===lu)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)}};im=ev=yT([xT(0,ce)],im);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 $L=Object.freeze({kind:It.Empty,title:e(917,"More Actions...")}),IT=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},$L]);function GL(p,u,g){if(!u)return p.map((y)=>({kind:"action",item:y,group:$L,disabled:!!y.action.disabled,label:y.action.disabled||y.action.title,canPreview:!!y.action.edit?.edits.length}));let v=IT.map((y)=>({group:y,actions:[]}));for(let y of p){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 tv=new A("supportedCodeAction",""),ZL="_typescript.applyFixAllCodeAction";class XL extends n{constructor(p,u,g,v=250){super();this._editor=p,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(p){let u=this._getRangeOfSelectionUnlessWhitespaceEnclosed(p);this._signalChange(u?{trigger:p,selection:u}:void 0)}_onMarkerChanges(p){let u=this._editor.getModel();if(u&&p.some((g)=>Mr(g,u.uri)))this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:zi.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(p){if(!this._editor.hasModel())return;let u=this._editor.getSelection();if(p.type===1)return u;let g=this._editor.getOption(73).enabled;if(g===ts.Off&&!this.ignoreLightbulbOff)return;else if(g===ts.Off||g===ts.On)return u;else if(g===ts.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 dd;(function(p){p.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 hu;throw y})}cancel(){this._cancellablePromise.cancel()}}p.Triggered=u})(dd||(dd={}));var hu=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class iv extends n{constructor(p,u,g,v,S,y){super();this._editor=p,this._registry=u,this._markerService=g,this._progressService=S,this._configurationService=y,this._codeActionOracle=this._register(new ie),this._state=dd.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=tv.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(dd.Empty,!0)}_settingEnabledNearbyQuickfixes(){let p=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:p?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(dd.Empty),this.codeActionsDisposable.clear();let p=this._editor.getModel();if(p&&this._registry.has(p)&&!this._editor.getOption(104)){let u=this._registry.all(p).flatMap((v)=>v.providedCodeActionKinds??[]);this._supportedCodeActions.set(u.join(" "));let g=new XL(this._editor,this._markerService,(v)=>{if(!v){this.setState(dd.Empty);return}let S=v.selection.getStartPosition(),y=Pt(async(R)=>{if(this._settingEnabledNearbyQuickfixes()&&v.trigger.type===1&&(v.trigger.triggerAction===zi.QuickFix||v.trigger.filter?.include?.contains(zt.QuickFix))){let q=new c,Q=!1;try{let te=q.add(await ca(this._registry,p,v.selection,v.trigger,na.None,R)),ne=[...te.allActions];if(R.isCancellationRequested)return hu;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:p.uri});if(re){for(let ke of te.validActions)if(ke.action.command?.arguments?.some((Ae)=>typeof Ae==="string"&&Ae.includes(ZL)))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 Q=!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:Je,startLineNumber:tt}=Te;if(Je===ge.lineNumber||tt===ge.lineNumber){ke=new r(Je,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,p,je,ot,na.None,R));if(R.isCancellationRequested)return hu;if(nt.validActions.length!==0){for(let _t of nt.validActions)if(_t.action.command?.arguments?.some((st)=>typeof st==="string"&&st.includes(ZL)))_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 Ve=He.filter((Te,We,Je)=>Je.findIndex((tt)=>tt.action.title===Te.action.title)===We);Ve.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 qe=this._setCodeActions({validActions:Ve,allActions:ne,documentation:te.documentation,hasAutoFix:te.hasAutoFix,hasAIFix:te.hasAIFix,allAIFixes:te.allAIFixes,dispose:()=>q.dispose()});return Q=!0,qe}}}finally{if(!Q)q.dispose()}}if(v.trigger.type===1){let q=await ca(this._registry,p,v.selection,v.trigger,na.None,R);if(R.isCancellationRequested)return q.dispose(),hu;return this._setCodeActions(q)}let K=await ca(this._registry,p,v.selection,v.trigger,na.None,R);if(R.isCancellationRequested)return K.dispose(),hu;return this._setCodeActions(K)});if(v.trigger.type===1)this._progressService?.showWhile(y,250);let D=new dd.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:zi.Default})}else this._supportedCodeActions.reset()}_setCodeActions(p){return this.codeActionsDisposable.value=p,p}takeCodeActions(p){if(this.codeActionsDisposable.value!==p)return;return this.codeActionsDisposable.clearAndLeak(),p}trigger(p){this._codeActionOracle.value?.trigger(p),this.codeActionsDisposable.clear()}setState(p,u){if(p===this._state)return;if(this._state.type===1)this._state.cancel();if(this._state=p,!u&&!this._disposed)this._onDidChangeState.fire(p)}}var LT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},kT=function(p,u){return function(g,v){u(g,v,p)}},la,YL=Lt("gutter-lightbulb",b.lightBulb,e(925,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),JL=Lt("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.")),QL=Lt("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.")),sk=Lt("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.")),dk=Lt("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(p){p.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}}p.Showing=u})(pr||(pr={}));function ov(p,u,g,v,S=!1){if(p.validActions.length<=0)return;let y,D=!1;if(p.allAIFixes){if(y=S?dk:b.sparkleFilled,p.validActions.length===1)D=!0}else if(p.hasAutoFix)if(p.hasAIFix)y=S?sk:b.lightbulbSparkleAutofix;else y=S?JL:b.lightbulbAutofix;else if(p.hasAIFix)y=S?QL:b.lightbulbSparkle;else y=S?YL:b.lightBulb;let T;if(D)T=e(930,"Run: {0}",p.validActions[0].action.title);else if(p.hasAutoFix&&g)T=e(931,"Show Code Actions. Preferred Quick Fix Available ({0})",g);else if(!p.hasAutoFix&&v)T=e(932,"Show Code Actions ({0})",v);else T=e(933,"Show Code Actions");return{actions:p,trigger:u,icon:y,autoRun:D,title:T,isGutter:S}}var cd=class p extends n{static{la=this}static{this.GUTTER_DECORATION=oe.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:G.asClassName(b.lightBulb),glyphMargin:{position:_r.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 ov(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-"+YL.id,"codicon-"+sk.id,"codicon-"+JL.id,"codicon-"+QL.id,"codicon-"+dk.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(Tt.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(iR(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(Sc)?.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===ts.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),Q=D.getLineContent(T),te=hf(Q,K),ne=q.spaceWidth*te>22,re=(qe)=>qe>2&&this._editor.getTopForLineNumber(qe)===this._editor.getTopForLineNumber(qe-1),ae=this._editor.getLineDecorations(T),ge=!1;if(ae)for(let qe of ae){let Te=qe.options.glyphMarginClassName;if(Te&&!this.lightbulbClasses.some((We)=>Te.includes(We))){ge=!0;break}}let ke=T,Ae=1;if(!ne){let qe=(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,Je=T>1&&qe(T-1),tt=!We&&qe(T+1),ot=qe(T),je=!tt&&!Je;if(!tt&&!Je&&!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(Je||We||Je&&!ot)ke-=1;else if(tt||je&&ot)ke+=1}else if(T===1&&(T===D.getLineCount()||!qe(T+1)&&!qe(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,Ve=u.validActions[0].action.kind;if(He.length!==1||!Ve){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:_r.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)})}};cd=la=LT([kT(1,ce)],cd);var ET=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Cc,DT="quickfix-edit-highlight",Jr=class p extends n{static{Cc=this}static{this.ID="editor.contrib.codeActionController"}static get(u){return u.getContribution(Cc.ID)}constructor(u,g,v,S,y,D,T,R,K,q,Q,te){super();this._commandService=T,this._configurationService=R,this._actionWidgetService=K,this._instantiationService=q,this._progressService=Q,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 iv(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(Sc)?.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(cd.ID);if(ne)this._register(ne.onClick((re)=>this.showCodeActionsFromLightbulb(re.actions,re))),ne.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection;return ne}),this._resolver=S.createInstance(im),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,Gr.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;Oi.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(jL,u,S,{preview:v,editor:this._editor})}finally{if(g)this._trigger({type:2,triggerAction:zi.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(ov(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,Gr.FromCodeActions)}finally{g.dispose()}return}if(u.trigger.context){let D=this.getInvalidActionThatWouldHaveBeenApplied(u.trigger,g);if(D&&D.action.disabled){Oi.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){Oi.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:DT})}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?Gr.FromAILightbulb:Gr.FromCodeActions),this._actionWidgetService.hide(!1),S.clear()},onHide:(K)=>{this._editor?.focus(),S.clear()},onHover:async(K,q)=>{if(q.isCancellationRequested)return;let Q=!1,te=K.action.kind;if(te){let ne=new It(te);Q=[zt.RefactorExtract,zt.RefactorInline,zt.RefactorRewrite,zt.RefactorMove,zt.Source].some((ae)=>ae.contains(ne))}return{canPreview:Q||!!K.action.edit?.edits.length}},onFocus:(K)=>{if(K&&K.action){let q=K.action.ranges,Q=K.action.diagnostics;if(S.clear(),q&&q.length>0){let te=Q&&Q?.length>1?Q.map((ne)=>({range:ne,options:Cc.DECORATION})):q.map((ne)=>({range:ne,options:Cc.DECORATION}));S.set(te)}else if(Q&&Q.length>0){let te=Q.map((re)=>({range:re,options:Cc.DECORATION}));S.set(te);let ne=Q[0];if(ne.startLineNumber&&ne.startColumn){let re=this._editor.getModel()?.getWordAtPosition({lineNumber:ne.startLineNumber,column:ne.startColumn})?.word;vo(e(914,"Context: {0} at line {1} and column {2}.",re,ne.startLineNumber,ne.startColumn))}}}else S.clear()}};this._actionWidgetService.show("codeActionWidget",!0,GL(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}};Jr=Cc=ET([mr(1,ur),mr(2,V),mr(3,L),mr(4,j),mr(5,ss),mr(6,Ne),mr(7,X),mr(8,Oo),mr(9,L),mr(10,ss),mr(11,ce)],Jr);oi((p,u)=>{((S,y)=>{if(y)u.addRule(`.monaco-editor ${S} { background-color: ${y}; }`)})(".quickfix-edit-highlight",p.getColor(Es));let v=p.getColor(pl);if(v)u.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Wo(p.type)?"dotted":"solid"} ${v}; box-sizing: border-box; }`)});function gu(p){return _.regex(tv.keys()[0],new RegExp("(\\s|^)"+Ci(p.value)+"\\b"))}var nv={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 ld(p,u,g,v,S=zi.Default){if(p.hasModel())Jr.get(p)?.manualTriggerAtCurrentPosition(u,S,g,v)}class rv extends zo{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(p,u){return ld(u,e(888,"No code actions available"),void 0,void 0,zi.QuickFix)}}class sv extends Bt{constructor(){super({id:Jp,precondition:_.and(o.writable,o.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:nv}]}})}runEditorCommand(p,u,g){let v=hn.fromUser(g,{kind:It.Empty,apply:"ifSingle"});return ld(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 av extends z{constructor(){super({id:em,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,gu(zt.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:nv}]}})}run(p,u,g){let v=hn.fromUser(g,{kind:zt.Refactor,apply:"never"});return ld(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,zi.Refactor)}}class dv extends z{constructor(){super({id:tm,label:h(906,"Source Action..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:_.and(o.writable,gu(zt.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:nv}]}})}run(p,u,g){let v=hn.fromUser(g,{kind:zt.Source,apply:"never"});return ld(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,zi.SourceAction)}}class cv extends z{constructor(){super({id:eu,label:h(907,"Organize Imports"),precondition:_.and(o.writable,gu(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(p,u){return ld(u,e(901,"No organize imports action available"),{include:zt.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",zi.OrganizeImports)}}class lv extends z{constructor(){super({id:lu,label:h(909,"Fix All"),precondition:_.and(o.writable,gu(zt.SourceFixAll))})}run(p,u){return ld(u,e(902,"No fix all action available"),{include:zt.SourceFixAll,includeSourceActions:!0},"ifSingle",zi.FixAll)}}class hv extends z{constructor(){super({id:Sc,label:h(910,"Auto Fix..."),precondition:_.and(o.writable,gu(zt.QuickFix)),kbOpts:{kbExpr:o.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(p,u){return ld(u,e(903,"No auto fixes available"),{include:zt.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",zi.AutoFix)}}le(Jr.ID,Jr,3);le(cd.ID,cd,4);Ze(rv);I(av);I(dv);I(cv);I(hv);I(lv);U(new sv);it.as(rr.Configuration).registerConfiguration({...Ny,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(rr.Configuration).registerConfiguration({...Ny,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(rr.Configuration).registerConfiguration({...Ny,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 ck=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},mu=function(p,u){return function(g,v){u(g,v,p)}},om=class p{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 wh;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}});lk(this._workerService,this._languageFeaturesService,g,v,u,g.getFormattingOptions(),S.token).then((D)=>{if(S.token.isCancellationRequested)return;if(Ln(D))this._accessibilitySignalService.playSignal(Ge.format,{userGesture:!1}),Bh.execute(this._editor,D,!0)}).finally(()=>{y.dispose()})}};om=ck([mu(1,j),mu(2,fi),mu(3,Br)],om);var nm=class p{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(ak,this.editor,u,2,na.None,he.None,!1).catch(J)}};nm=ck([mu(1,j),mu(2,L)],nm);class hk 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(p,u){if(u.hasModel()){let g=p.get(L);await p.get(ss).showWhile(g.invokeFunction(zR,u,1,na.None,he.None,!0),250)}}}class uk 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(p,u){if(!u.hasModel())return;let g=p.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 p.get(ss).showWhile(g.invokeFunction(ak,u,S,1,na.None,he.None,!0),250)}}le(om.ID,om,2);le(nm.ID,nm,2);I(hk);I(uk);we.registerCommand("editor.action.format",async(p)=>{let u=p.get(ye).getFocusedCodeEditor();if(!u||!u.hasModel())return;let g=p.get(Ne);if(u.getSelection().isEmpty())await g.executeCommand("editor.action.formatDocument");else await g.executeCommand("editor.action.formatSelection")});var rm="editor.action.showHover",gk="editor.action.showDefinitionPreviewHover",pk="editor.action.hideHover",mk="editor.action.scrollUpHover",fk="editor.action.scrollDownHover",_k="editor.action.scrollLeftHover",bk="editor.action.scrollRightHover",vk="editor.action.pageUpHover",wk="editor.action.pageDownHover",Sk="editor.action.goToTopHover",Ck="editor.action.goToBottomHover",hd="editor.action.increaseHoverVerbosityLevel",yk=e(1160,"Increase Hover Verbosity Level"),ud="editor.action.decreaseHoverVerbosityLevel",xk=e(1161,"Decrease Hover Verbosity Level"),_u="editor.action.hideLongLineWarningHover";function uv(p,u){return!!p[u]}class sm{constructor(p,u){if(this.target=p.target,this.isLeftClick=p.event.leftButton,this.isMiddleClick=p.event.middleButton,this.isRightClick=p.event.rightButton,this.mouseMiddleClickAction=u.mouseMiddleClickAction,this.hasTriggerModifier=uv(p.event,u.triggerModifier),this.isMiddleClick&&u.mouseMiddleClickAction==="ctrlLeftClick")this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0;this.hasSideBySideModifier=uv(p.event,u.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=p.event.detail<=1}}class gv{constructor(p,u){this.keyCodeIsTriggerKey=p.keyCode===u.triggerKey,this.keyCodeIsSideBySideKey=p.keyCode===u.triggerSideBySideKey,this.hasTriggerModifier=uv(p,u.triggerModifier)}}class bu{constructor(p,u,g,v,S){this.mouseMiddleClickAction=S,this.triggerKey=p,this.triggerModifier=u,this.triggerSideBySideKey=g,this.triggerSideBySideModifier=v}equals(p){return this.triggerKey===p.triggerKey&&this.triggerModifier===p.triggerModifier&&this.triggerSideBySideKey===p.triggerSideBySideKey&&this.triggerSideBySideModifier===p.triggerSideBySideModifier&&this.mouseMiddleClickAction===p.mouseMiddleClickAction}}function Ik(p,u){if(p==="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 Is extends n{constructor(p,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=p,this._extractLineNumberFromMouseEvent=u?.extractLineNumberFromMouseEvent??((g)=>g.target.position?g.target.position.lineNumber:0),this._opts=Ik(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=Ik(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 sm(g,this._opts)))),this._register(this._editor.onMouseDown((g)=>this._onEditorMouseDown(new sm(g,this._opts)))),this._register(this._editor.onMouseUp((g)=>this._onEditorMouseUp(new sm(g,this._opts)))),this._register(this._editor.onKeyDown((g)=>this._onEditorKeyDown(new gv(g,this._opts)))),this._register(this._editor.onKeyUp((g)=>this._onEditorKeyUp(new gv(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(p){if(p.selection&&p.selection.startColumn!==p.selection.endColumn)this._resetHandler()}_onEditorMouseMove(p){this._lastMouseMoveEvent=p,this._onMouseMoveOrRelevantKeyDown.fire([p,null])}_onEditorMouseDown(p){this._hasTriggerKeyOnMouseDown=p.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(p)}_onEditorMouseUp(p){let u=this._extractLineNumberFromMouseEvent(p);if(!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===u&&(this._hasTriggerKeyOnMouseDown||p.isMiddleClick&&p.mouseMiddleClickAction==="openLink"))this._onExecute.fire(p)}_onEditorKeyDown(p){if(this._lastMouseMoveEvent&&(p.keyCodeIsTriggerKey||p.keyCodeIsSideBySideKey&&p.hasTriggerModifier))this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,p]);else if(p.hasTriggerModifier)this._onCancel.fire()}_onEditorKeyUp(p){if(p.keyCodeIsTriggerKey)this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Yo{constructor(p,u,g,v){this.isProviderFirst=p,this.parent=u,this.link=g,this._rangeCallback=v,this.id=xy.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(p){this._range=p,this._rangeCallback(this)}get ariaMessage(){let p=this.parent.getPreview(this)?.preview(this.range);if(!p)return e(1145,"in {0} on line {1} at column {2}",pi(this.uri),this.range.startLineNumber,this.range.startColumn);else return e(1146,"{0} in {1} on line {2} at column {3}",p.value,pi(this.uri),this.range.startLineNumber,this.range.startColumn)}}class Lk{constructor(p){this._modelReference=p}dispose(){this._modelReference.dispose()}preview(p,u=8){let g=this._modelReference.object.textEditorModel;if(!g)return;let{startLineNumber:v,startColumn:S,endLineNumber:y,endColumn:D}=p,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+/,""),Q=g.getValueInRange(p),te=g.getValueInRange(K).replace(/\s+$/,"");return{value:q+Q+te,highlight:{start:q.length,end:q.length+Q.length}}}}class Ts{constructor(p,u){this.parent=p,this.uri=u,this.children=[],this._previews=new Ht}dispose(){$e(this._previews.values()),this._previews.clear()}getPreview(p){return this._previews.get(p.uri)}get ariaMessage(){let p=this.children.length;if(p===1)return e(1147,"1 symbol in {0}, full path {1}",pi(this.uri),this.uri.fsPath);else return e(1148,"{0} symbols in {1}, full path {2}",p,pi(this.uri),this.uri.fsPath)}async resolve(p){if(this._previews.size!==0)return this;for(let u of this.children){if(this._previews.has(u.uri))continue;try{let g=await p.createModelReference(u.uri);this._previews.set(u.uri,new Lk(g))}catch(g){J(g)}}return this}}class Yi{constructor(p,u){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new i,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=p,this._title=u;let[g]=p;p.sort(Yi._compareReferences);let v;for(let S of p){if(!v||!vn.isEqual(v.uri,S.uri,!0))v=new Ts(this,S.uri),this.groups.push(v);if(v.children.length===0||Yi._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 Yi(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(p,u){let{parent:g}=p,v=g.children.indexOf(p),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(p,u){let g=this.references.map((v,S)=>({idx:S,prefixLen:ho(v.uri.toString(),p.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(p,u){for(let g of this.references)if(g.uri.toString()===p.toString()){if(t.containsPosition(g.range,u))return g}return}firstReference(){for(let p of this.references)if(p.isProviderFirst)return p;return this.references[0]}static _compareReferences(p,u){return vn.compare(p.uri,u.uri)||t.compareRangesUsingStarts(p.range,u.range)}}var cm=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},pv,am=class p{constructor(u){this._resolverService=u}hasChildren(u){if(u instanceof Yi)return!0;if(u instanceof Ts)return!0;return!1}getChildren(u){if(u instanceof Yi)return u.groups;if(u instanceof Ts)return u.resolve(this._resolverService).then((g)=>g.children);throw Error("bad tree")}};am=cm([lm(0,gn)],am);class fv{getHeight(){return 23}getTemplateId(p){if(p instanceof Ts)return vu.id;else return wu.id}}var dm=class p{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 pi(u.uri)}};dm=cm([lm(0,ce)],dm);class _v{getId(p){return p instanceof Yo?p.id:p.uri}}var mv=class p extends n{constructor(u,g){super();this._labelService=g;let v=document.createElement("div");v.classList.add("reference-file"),this.file=this._register(new Jc(v,{supportHighlights:!0})),this.badge=this._register(new Ag(w(v,m(".count")),{},z0)),u.appendChild(v)}set(u,g){let v=bh(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))}};mv=cm([lm(1,wl)],mv);var vu=class p{static{pv=this}static{this.id="FileReferencesRenderer"}constructor(u){this._instantiationService=u,this.templateId=pv.id}renderTemplate(u){return this._instantiationService.createInstance(mv,u)}renderElement(u,g,v){v.set(u.element,cu(u.filterData))}disposeTemplate(u){u.dispose()}};vu=pv=cm([lm(0,L)],vu);class kk extends n{constructor(p){super();this.label=this._register(new Kc(p))}set(p,u){let g=p.parent.getPreview(p)?.preview(p.range);if(!g||!g.value)this.label.set(`${pi(p.uri)}:${p.range.startLineNumber+1}:${p.range.startColumn+1}`);else{let{value:v,highlight:S}=g;if(u&&!Sr.isDefault(u))this.label.element.classList.toggle("referenceMatch",!1),this.label.set(v,cu(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(p){return new kk(p)}renderElement(p,u,g){g.set(p.element,p.filterData)}disposeTemplate(p){p.dispose()}}class bv{getWidgetAriaLabel(){return e(1141,"References")}getAriaLabel(p){return p.ariaMessage}}var Ek=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},gd=function(p,u){return function(g,v){u(g,v,p)}};class wv{static{this.DecorationOptions=oe.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(p,u){this._editor=p,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 p=this._editor.getModel();if(!p)return;for(let u of this._model.references)if(u.uri.toString()===p.uri.toString()){this._addDecorations(u.parent);return}}_addDecorations(p){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let u=[],g=[];for(let v=0,S=p.children.length;v<S;v++){let y=p.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:wv.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],p.children[g[y]])})}_onDecorationChanged(){let p=[],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),p.push(g);else v.range=S}for(let g=0,v=p.length;g<v;g++)this._decorations.delete(p[g]);this._editor.removeDecorations(p)}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}class Sv{constructor(){this.ratio=0.7,this.heightInLines=18}static fromJSON(p){let u,g;try{let v=JSON.parse(p);u=v.ratio,g=v.heightInLines}catch{}return{ratio:u||0.7,heightInLines:g||18}}}class Dk extends K0{}var vv=class p{constructor(u){this.labelService=u,this.disposables=new c}getDragURI(u){if(u instanceof Ts)return u.uri.toString();else if(u instanceof Yo)return OR(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(ec.RESOURCES,JSON.stringify(S)),g.dataTransfer.setData(ec.TEXT,S.join(`
|
|
31
|
+
`))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};vv=Ek([gd(0,wl)],vv);var hm=class p extends _c{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 Ye(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(TL)||f.transparent;this.style({arrowColor:g,frameColor:g,headerBackgroundColor:u.getColor(DL)||f.transparent,primaryHeadingColor:u.getColor(Op),secondaryHeadingColor:u.getColor(Pp)})}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")),Vi(this._messageContainer),this._splitView=new Ty(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),Vi(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(Uc,e(1142,"no preview available"),ji,Uc.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=w(u,m("div.ref-tree.inline"));let v={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new bv,keyboardNavigationLabelProvider:this._instantiationService.createInstance(dm),identityProvider:new _v,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:RL},dnd:this._instantiationService.createInstance(vv)};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(Dk,"ReferencesWidget",this._treeContainer,new fv,[this._instantiationService.createInstance(vu),this._instantiationService.createInstance(wu)],this._instantiationService.createInstance(am),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})}},Ey.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)}},Ey.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")})),Vi(this._treeContainer)}_onWidth(u){if(this._dim)this._doLayoutBody(this._dim.height,u)}_doLayoutBody(u,g){super._doLayoutBody(u,g),this._dim=new Ye(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"),fo(this._messageContainer),Promise.resolve(void 0);return Vi(this._messageContainer),this._decorationsManager=new wv(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"),fo(this._treeContainer),fo(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 Ts){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!==ee.inMemory)this.setTitle(aR(u.uri),this._uriLabel.getUriLabel(bh(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()}};hm=Ek([gd(3,De),gd(4,gn),gd(5,L),gd(6,Gb),gd(7,wl),gd(8,ce)],hm);var TT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},yc=function(p,u){return function(g,v){u(g,v,p)}},um,pd=new A("referenceSearchVisible",!1,e(1136,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),Vd=class p{static{um=this}static{this.ID="editor.contrib.referencesController"}static get(u){return u.getContribution(um.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=pd.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=Sv.fromJSON(this._storageService.get(y,0,"{}"));this._widget=this._instantiationService.createInstance(hm,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),Q=this._model.nearestReference(K,q);if(Q)return this._widget.setSelection(Q).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=um.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)}};Vd=um=TT([yc(2,V),yc(3,ye),yc(4,ut),yc(5,L),yc(6,xn),yc(7,X)],Vd);function md(p,u){let g=Np(p);if(!g)return;let v=Vd.get(g);if(v)u(v)}bn.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Jt(2089,60),when:_.or(pd,Hi.inPeekEditor),handler(p){md(p,(u)=>{u.changeFocusBetweenPreviewAndReferences()})}});bn.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:_.or(pd,Hi.inPeekEditor),handler(p){md(p,(u)=>{u.goToNextOrPreviousReference(!0)})}});bn.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:_.or(pd,Hi.inPeekEditor),handler(p){md(p,(u)=>{u.goToNextOrPreviousReference(!1)})}});we.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");we.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");we.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");we.registerCommand("closeReferenceSearch",(p)=>md(p,(u)=>u.closeWidget()));bn.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:_.and(Hi.inPeekEditor,_.not("config.editor.stablePeek"))});bn.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:_.and(pd,_.not("config.editor.stablePeek"),_.or(o.editorTextFocus,vf.negate()))});bn.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:_.and(pd,ok,q0.negate(),G0.negate()),handler(p){let g=p.get(Rs).lastFocusedList?.getFocus();if(Array.isArray(g)&&g[0]instanceof Yo)md(p,(v)=>v.revealReference(g[0]))}});bn.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:_.and(pd,ok,q0.negate(),G0.negate()),handler(p){let g=p.get(Rs).lastFocusedList?.getFocus();if(Array.isArray(g)&&g[0]instanceof Yo)md(p,(v)=>v.openReference(g[0],!0,!0))}});we.registerCommand("openReference",(p)=>{let g=p.get(Rs).lastFocusedList?.getFocus();if(Array.isArray(g)&&g[0]instanceof Yo)md(p,(v)=>v.openReference(g[0],!1,!0))});var Tk=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},xv=new A("hasSymbols",!1,e(1153,"Whether there are symbol locations that can be navigated via keyboard-only.")),Cu=Z("ISymbolNavigationService"),Cv=class p{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=xv.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 yv(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 Q of g.references)if(Mr(Q.uri,T.uri))K=!0,q=q||t.containsPosition(Q.range,R);else if(K)break;if(!K||!q)this.reset()});this._currentState=nr(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)}};Cv=Tk([Su(0,V),Su(1,ye),Su(2,ut),Su(3,ce)],Cv);fe(Cu,Cv,1);U(new class extends Bt{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:xv,kbOpts:{weight:100,primary:70}})}runEditorCommand(p,u){return p.get(Cu).revealNext(u)}});bn.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:xv,primary:9,handler(p){p.get(Cu).reset()}});var yv=class p{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,nr(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)}};yv=Tk([Su(0,ye)],yv);function Iv(p,u){if(u.uri.scheme===p.uri.scheme)return!0;if(Gp(u.uri,ee.walkThroughSnippet,ee.vscodeChatCodeBlock,ee.vscodeChatCodeCompareBlock))return!1;return!0}async function yu(p,u,g,v,S){let D=g.ordered(p,v).map((R)=>Promise.resolve(S(R,p,u)).then(void 0,(K)=>{dt(K);return})),T=await Promise.all(D);return Xi(T.flat()).filter((R)=>Iv(p,R))}function ha(p,u,g,v,S){return yu(u,g,p,v,(y,D,T)=>y.provideDefinition(D,T,S))}function gm(p,u,g,v,S){return yu(u,g,p,v,(y,D,T)=>y.provideDeclaration(D,T,S))}function pm(p,u,g,v,S){return yu(u,g,p,v,(y,D,T)=>y.provideImplementation(D,T,S))}function mm(p,u,g,v,S){return yu(u,g,p,v,(y,D,T)=>y.provideTypeDefinition(D,T,S))}function xc(p,u,g,v,S,y){return yu(u,g,p,S,async(D,T,R)=>{let K=(await D.provideReferences(T,R,{includeDeclaration:!0},y))?.filter((Q)=>Iv(T,Q));if(!v||!K||K.length!==2)return K;let q=(await D.provideReferences(T,R,{includeDeclaration:!1},y))?.filter((Q)=>Iv(T,Q));if(q&&q.length===1)return q;return K})}async function as(p){let u=await p(),g=new Yi(u,""),v=g.references.map((S)=>S.link);return g.dispose(),v}mo("_executeDefinitionProvider",(p,u,g)=>{let v=p.get(j),S=ha(v.definitionProvider,u,g,!1,he.None);return as(()=>S)});mo("_executeDefinitionProvider_recursive",(p,u,g)=>{let v=p.get(j),S=ha(v.definitionProvider,u,g,!0,he.None);return as(()=>S)});mo("_executeTypeDefinitionProvider",(p,u,g)=>{let v=p.get(j),S=mm(v.typeDefinitionProvider,u,g,!1,he.None);return as(()=>S)});mo("_executeTypeDefinitionProvider_recursive",(p,u,g)=>{let v=p.get(j),S=mm(v.typeDefinitionProvider,u,g,!0,he.None);return as(()=>S)});mo("_executeDeclarationProvider",(p,u,g)=>{let v=p.get(j),S=gm(v.declarationProvider,u,g,!1,he.None);return as(()=>S)});mo("_executeDeclarationProvider_recursive",(p,u,g)=>{let v=p.get(j),S=gm(v.declarationProvider,u,g,!0,he.None);return as(()=>S)});mo("_executeReferenceProvider",(p,u,g)=>{let v=p.get(j),S=xc(v.referenceProvider,u,g,!1,!1,he.None);return as(()=>S)});mo("_executeReferenceProvider_recursive",(p,u,g)=>{let v=p.get(j),S=xc(v.referenceProvider,u,g,!1,!0,he.None);return as(()=>S)});mo("_executeImplementationProvider",(p,u,g)=>{let v=p.get(j),S=pm(v.implementationProvider,u,g,!1,he.None);return as(()=>S)});mo("_executeImplementationProvider_recursive",(p,u,g)=>{let v=p.get(j),S=pm(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 fd{static is(p){if(!p||typeof p!=="object")return!1;if(p instanceof fd)return!0;if(r.isIPosition(p.position)&&p.model)return!0;return!1}constructor(p,u){this.model=p,this.position=u}}class so extends zo{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return so._allSymbolNavigationCommands.values()}static _patchConfig(p){let u={...p,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(p.precondition,g.when)}return u}constructor(p,u){super(so._patchConfig(u));this.configuration=p,so._allSymbolNavigationCommands.set(u.id,this)}runEditorCommand(p,u,g,v){if(!u.hasModel())return Promise.resolve(void 0);let S=p.get(ut),y=p.get(ye),D=p.get(ss),T=p.get(Cu),R=p.get(j),K=p.get(L),q=u.getModel(),Q=u.getPosition(),te=fd.is(g)?g:new fd(q,Q),ne=new Wr(u,5),re=al(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,Q)){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(Q);Oi.get(u)?.showMessage(this._getNoResultFoundMessage(Ae),Q)}}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(p,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,p,D,this.configuration.openToSide,!T);if(T&&R)this._openInPeek(R,v,S);else v.dispose();if(y==="goto")u.put(D)}}async _openReference(p,u,g,v,S){let y=void 0;if(GI(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"}},p,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(p,u,g){let v=Vd.get(p);if(v&&p.hasModel())v.toggleWidget(g??p.getSelection(),Pt((S)=>Promise.resolve(u)),this.configuration.openInPeek);else u.dispose()}}class ua extends so{async _getLocationModel(p,u,g,v){return new Yi(await ha(p.definitionProvider,u,g,!1,v),e(1097,"Definitions"))}_getNoResultFoundMessage(p){return p&&p.word?e(1098,"No definition found for '{0}'",p.word):e(1099,"No definition found")}_getAlternativeCommand(p){return p.getOption(67).alternativeDefinitionCommand}_getGoToPreference(p){return p.getOption(67).multipleDefinitions}}Ze(class p extends ua{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:p.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,ik),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",p.id)}});Ze(class p extends ua{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:p.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,ik),primary:Jt(2089,2118),weight:100}]});we.registerCommandAlias("editor.action.openDeclarationToTheSide",p.id)}});Ze(class p extends ua{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:p.id,title:h(1125,"Peek Definition"),precondition:_.and(o.hasDefinitionProvider,Hi.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",p.id)}});class Lv extends so{async _getLocationModel(p,u,g,v){return new Yi(await gm(p.declarationProvider,u,g,!1,v),e(1101,"Declarations"))}_getNoResultFoundMessage(p){return p&&p.word?e(1102,"No declaration found for '{0}'",p.word):e(1103,"No declaration found")}_getAlternativeCommand(p){return p.getOption(67).alternativeDeclarationCommand}_getGoToPreference(p){return p.getOption(67).multipleDeclarations}}Ze(class p extends Lv{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:p.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")}});Ze(class p extends Lv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:h(1127,"Peek Declaration"),precondition:_.and(o.hasDeclarationProvider,Hi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:3}})}});class kv extends so{async _getLocationModel(p,u,g,v){return new Yi(await mm(p.typeDefinitionProvider,u,g,!1,v),e(1107,"Type Definitions"))}_getNoResultFoundMessage(p){return p&&p.word?e(1108,"No type definition found for '{0}'",p.word):e(1109,"No type definition found")}_getAlternativeCommand(p){return p.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(p){return p.getOption(67).multipleTypeDefinitions}}Ze(class p extends kv{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:p.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}]})}});Ze(class p extends kv{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:p.ID,title:h(1129,"Peek Type Definition"),precondition:_.and(o.hasTypeDefinitionProvider,Hi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:4}})}});class Ev extends so{async _getLocationModel(p,u,g,v){return new Yi(await pm(p.implementationProvider,u,g,!1,v),e(1111,"Implementations"))}_getNoResultFoundMessage(p){return p&&p.word?e(1112,"No implementation found for '{0}'",p.word):e(1113,"No implementation found")}_getAlternativeCommand(p){return p.getOption(67).alternativeImplementationCommand}_getGoToPreference(p){return p.getOption(67).multipleImplementations}}Ze(class p extends Ev{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:p.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}]})}});Ze(class p extends Ev{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:p.ID,title:h(1131,"Peek Implementations"),precondition:_.and(o.hasImplementationProvider,Hi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:3142,weight:100},menu:{id:a.EditorContextPeek,group:"peek",order:5}})}});class Dv extends so{_getNoResultFoundMessage(p){return p?e(1115,"No references found for '{0}'",p.word):e(1116,"No references found")}_getAlternativeCommand(p){return p.getOption(67).alternativeReferenceCommand}_getGoToPreference(p){return p.getOption(67).multipleReferences}}Ze(class p extends Dv{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,Hi.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 Yi(await xc(u.referenceProvider,g,v,!0,!1,S),e(1118,"References"))}});Ze(class p extends Dv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:h(1133,"Peek References"),precondition:_.and(o.hasReferenceProvider,Hi.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(u,g,v,S){return new Yi(await xc(u.referenceProvider,g,v,!1,!1,S),e(1119,"References"))}});class Rk extends so{constructor(p,u,g){super(p,{id:"editor.action.goToLocation",title:h(1134,"Go to Any Symbol"),precondition:_.and(Hi.notInPeekEditor,o.isInEmbeddedEditor.toNegated())});this._references=u,this._gotoMultipleBehaviour=g}async _getLocationModel(p,u,g,v){return new Yi(this._references,e(1120,"Locations"))}_getNoResultFoundMessage(p){return p&&e(1121,"No results for '{0}'",p.word)||""}_getGoToPreference(p){return this._gotoMultipleBehaviour??p.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(p,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=p.get(ye),R=await T.openCodeEditor({resource:u},T.getFocusedCodeEditor());if(ra(R))return R.setPosition(g),R.revealPositionInCenterIfOutsideViewport(g,0),R.invokeWithinContext((K)=>{let q=new class extends Rk{_getNoResultFoundMessage(Q){return y||super._getNoResultFoundMessage(Q)}}({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(p,u,g,v,S)=>{p.get(Ne).executeCommand("editor.action.goToLocations",u,g,v,S,void 0,!0)}});we.registerCommand({id:"editor.action.findReferences",handler:(p,u,g)=>{Ie(W.isUri(u)),Ie(r.isIPosition(g));let v=p.get(j),S=p.get(ye);return S.openCodeEditor({resource:u},S.getFocusedCodeEditor()).then((y)=>{if(!ra(y)||!y.hasModel())return;let D=Vd.get(y);if(!D)return;let T=Pt((K)=>xc(v.referenceProvider,y.getModel(),r.lift(g),!1,!1,K).then((q)=>new Yi(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 RT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Tv=function(p,u){return function(g,v){u(g,v,p)}},xu,Ic=class p{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 Is(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 Hh(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),Q=this.languageService.guessLanguageIdByFilepathOrFirstLine(R.uri);this.addDecoration(y,q?new wn().appendCodeblock(Q?Q:"",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 tc)&&(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 Hi.inPeekEditor.getValue(g)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};Ic=xu=RT([Tv(1,gn),Tv(2,pt),Tv(3,j)],Ic);le(Ic.ID,Ic,2);var fr="editor.action.inlineSuggest.commit",_d="editor.action.inlineSuggest.commitAlternativeAction",fm="editor.action.inlineSuggest.showPrevious",_m="editor.action.inlineSuggest.showNext",Lc="editor.action.inlineSuggest.jump",bm="editor.action.inlineSuggest.hide",Iu="editor.action.inlineSuggest.toggleShowCollapsed",Rv="editor.action.inlineSuggest.renameSymbol";var Mv=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},vm,wm=class p 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(Ns.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((Q)=>{if(!this.position.read(Q))return;if(D.lastTriggerKind.read(Q)!==Fo.Explicit)D.triggerExplicitly()})),q}),R=Bo(this,(K,q)=>!!this.position.read(K)||!!q);y.add(H((K)=>{if(R.read(K))T.read(K)}))}))}};wm=Mv([un(2,L)],wm);var NT=Lt("inline-suggestion-hints-next",b.chevronRight,e(1270,"Icon for show next parameter hint.")),MT=Lt("inline-suggestion-hints-previous",b.chevronLeft,e(1271,"Icon for show previous parameter hint.")),Ns=class p extends n{static{vm=this}static{this.hot=Ng(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(u,g,v){let S=new eo(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,Q,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=Q,this._contextKeyService=te,this._menuService=ne,this.id=`InlineSuggestionHintsContentWidget${vm.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(Aa(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(fm,e(1272,"Previous"),G.asClassName(MT))),this.availableSuggestionCountAction=this._register(new eo("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(_m,e(1273,"Next"),G.asClassName(NT))),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(Nv,this.nodes.toolBar,a.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:(re)=>re.startsWith("primary")},actionViewItemProvider:(re,ae)=>{if(re instanceof Ei)return q.createInstance(Mk,re,void 0);if(re===this.availableSuggestionCountAction){let ge=new Nk(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)=>{vm._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 Ei)ge.push(He);if(ge.length>0)ge.unshift(new Qe);this.toolBar.setAdditionalSecondaryActions(ge)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Ns=vm=Mv([un(8,Ne),un(9,L),un(10,ce),un(11,V),un(12,hi)],Ns);class Nk extends yl{constructor(){super(...arguments);this._className=void 0}setClass(p){this._className=p}render(p){if(super.render(p),this._className)p.classList.add(this._className)}updateTooltip(){}}class Mk extends Na{updateLabel(){let p=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!p)return super.updateLabel();if(this.label){let u=_e("div.keybinding").root;this._register(new ia(u,ui,{disableTitle:!0,...i_})).set(p),this.label.textContent=this._action.label,this.label.appendChild(u),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}var Nv=class p extends Py{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}=yf(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(Ke(this.prependedPrimaryActions,u,(g,v)=>g===v))return;this.prependedPrimaryActions=u,this.updateToolbar()}setAdditionalSecondaryActions(u){if(Ke(this.additionalActions,u,(g,v)=>g===v))return;this.additionalActions=u,this.updateToolbar()}};Nv=Mv([un(3,hi),un(4,V),un(5,Dn),un(6,ce),un(7,Ne),un(8,kn)],Nv);function ga(p,u,g){let v=mt(p);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 Sm(p,u,g){if(p==="on")return!0;if(p==="off")return!1;return Lu(u,g.event)}function Lu(p,u){if(p==="altKey")return u.ctrlKey||u.metaKey;return u.altKey}class Ok{constructor(p,u,g,v){this.value=p,this.isComplete=u,this.hasLoadingMessage=g,this.options=v}}class ku extends n{constructor(p,u){super();this._editor=p,this._computer=u,this._onResult=this._register(new i),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new Cm((g)=>this._triggerAsyncComputation(g),0)),this._syncComputationScheduler=this._register(new Cm((g)=>this._triggerSyncComputation(g),0)),this._loadingMessageScheduler=this._register(new Cm((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(p,u){this._options=u,this._state=p,this._fireResult(u)}_triggerAsyncComputation(p){if(this._setState(2,p),this._syncComputationScheduler.schedule(p,this._secondWaitTime),this._computer.computeAsync)this._asyncIterableDone=!1,this._asyncIterable=QI((u)=>this._computer.computeAsync(p,u)),(async()=>{try{for await(let u of this._asyncIterable)if(u)this._result.push(u),this._fireResult(p);if(this._asyncIterableDone=!0,this._state===3||this._state===4)this._setState(0,p)}catch(u){J(u)}})();else this._asyncIterableDone=!0}_triggerSyncComputation(p){if(this._computer.computeSync)this._result=this._result.concat(this._computer.computeSync(p));this._setState(this._asyncIterableDone?0:3,p)}_triggerLoadingMessage(p){if(this._state===3)this._setState(4,p)}_fireResult(p){if(this._state===1||this._state===2)return;let u=this._state===0,g=this._state===4;this._onResult.fire(new Ok(this._result.slice(0),u,g,p))}start(p,u){if(p===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 Cm extends n{constructor(p,u){super();this._scheduler=this._register(new be(()=>p(this._options),u))}schedule(p,u){this._options=p,this._scheduler.schedule(u)}cancel(){this._scheduler.cancel()}}class Eu{constructor(p,u,g,v){this.priority=p,this.range=u,this.initialMousePosX=g,this.initialMousePosY=v,this.type=1}equals(p){return p.type===1&&this.range.equalsRange(p.range)}canAdoptVisibleHover(p,u){return p.type===1&&u.lineNumber===this.range.startLineNumber}}class pa{constructor(p,u,g,v,S,y){this.priority=p,this.owner=u,this.range=g,this.initialMousePosX=v,this.initialMousePosY=S,this.supportsMarkerHover=y,this.type=2}equals(p){return p.type===2&&this.owner===p.owner}canAdoptVisibleHover(p,u){return p.type===2&&this.owner===p.owner}}class Jo{constructor(p,u){this.renderedHoverParts=p,this.disposables=u}dispose(){for(let p of this.renderedHoverParts)p.dispose();this.disposables?.dispose()}}var ya=new class p{constructor(){this._participants=[]}register(u){this._participants.push(u)}getAll(){return this._participants}};class bd{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 Ye(0,0),this._minSize=new Ye(0,0),this._maxSize=new Ye(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new qi(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new qi(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new qi(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:ky.North}),this._southSash=new qi(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:ky.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let p,u=0,g=0;this._sashListener.add(C.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{if(p===void 0)this._onDidWillResize.fire(),p=this._size,u=0,g=0})),this._sashListener.add(C.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{if(p!==void 0)p=void 0,u=0,g=0,this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(this._eastSash.onDidChange((v)=>{if(p)g=v.currentX-v.startX,this.layout(p.height+u,p.width+g),this._onDidResize.fire({dimension:this._size,done:!1,east:!0})})),this._sashListener.add(this._westSash.onDidChange((v)=>{if(p)g=-(v.currentX-v.startX),this.layout(p.height+u,p.width+g),this._onDidResize.fire({dimension:this._size,done:!1,west:!0})})),this._sashListener.add(this._northSash.onDidChange((v)=>{if(p)u=-(v.currentY-v.startY),this.layout(p.height+u,p.width+g),this._onDidResize.fire({dimension:this._size,done:!1,north:!0})})),this._sashListener.add(this._southSash.onDidChange((v)=>{if(p)u=v.currentY-v.startY,this.layout(p.height+u,p.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(p,u,g,v){this._northSash.state=p?3:0,this._eastSash.state=u?3:0,this._southSash.state=g?3:0,this._westSash.state=v?3:0}layout(p=this.size.height,u=this.size.width){let{height:g,width:v}=this._minSize,{height:S,width:y}=this._maxSize;p=Math.max(g,Math.min(S,p)),u=Math.max(v,Math.min(y,u));let D=new Ye(u,p);if(!Ye.equals(D,this._size))this.domNode.style.height=p+"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(p){this._maxSize=p}get maxSize(){return this._maxSize}set minSize(p){this._minSize=p}get minSize(){return this._minSize}set preferredSize(p){this._preferredSize=p}get preferredSize(){return this._preferredSize}}var OT=30,PT=24;class Ov extends n{constructor(p,u=new Ye(10,10)){super();this._editor=p,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new bd),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=Ye.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 Ye(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(p){let u=this._editor.getDomNode(),g=this._editor.getScrolledVisiblePosition(p);if(!u||!g)return;return mt(u).top+g.top-OT}_availableVerticalSpaceBelow(p){let u=this._editor.getDomNode(),g=this._editor.getScrolledVisiblePosition(p);if(!u||!g)return;let v=mt(u),S=Ss(u.ownerDocument.body),y=v.top+g.top+g.height;return S.height-y-PT}_findPositionPreference(p,u){let g=Math.min(this._availableVerticalSpaceBelow(u)??1/0,p),v=Math.min(this._availableVerticalSpaceAbove(u)??1/0,p),S=Math.min(Math.max(v,g),p),y=Math.min(p,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(p){this._resizableNode.layout(p.height,p.width)}}var AT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},ym=function(p,u){return function(g,v){u(g,v,p)}},_n,Pk=30,xm=class p extends Ov{static{_n=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new Ye(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 Ye(150,D);super(u,R);this._configurationService=v,this._accessibilityService=S,this._keybindingService=y,this._hover=this._register(new ff(!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 Ye(u,g),this._setHoverWidgetMaxDimensions(u,g)}_resize(u){_n._lastDimensions=new Ye(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=Ss(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=Ak(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,v.left,v.top,v.width,v.height);let S=Ak(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 Ye(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=ka(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&&N0(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 Ye(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 Ye(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 Ye(u,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();let u=this._hover.contentsDomNode,g=ka(u),v=po(u)+2;if(this._resizableNode.layout(g,v),this._setHoverWidgetDimensions(v,g),g=ka(u),v=po(u),this._contentWidth=v,this._updateMinimumWidth(),this._resizableNode.layout(g,v),this._renderedHover?.showAtPosition){let S=ka(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-Pk})}scrollRight(){let u=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:u+Pk})}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})}};xm=_n=AT([ym(1,V),ym(2,X),ym(3,Vt),ym(4,ce)],xm);function Ak(p,u,g,v,S,y){let D=g+S/2,T=v+y/2,R=Math.max(Math.abs(p-D)-S/2,0),K=Math.max(Math.abs(u-T)-y/2,0);return Math.sqrt(R*R+K*K)}class Du{constructor(p,u){this._editor=p,this._participants=u}static _getLineDecorations(p,u){if(u.type!==1&&!u.supportsMarkerHover)return[];let g=p.getModel(),v=u.range.startLineNumber;if(v>g.getLineCount())return[];let S=g.getLineMaxColumn(v);return p.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(p,u){let g=p.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,p.source,u)}))}computeSync(p){if(!this._editor.hasModel())return[];let u=p.anchor,g=Du._getLineDecorations(this._editor,u),v=[];for(let S of this._participants)v=v.concat(S.computeSync(u,g,p.source));return Xi(v)}}class Im{constructor(p,u,g){this.hoverParts=p,this.isComplete=u,this.options=g}filter(p){let u=this.hoverParts.filter((g)=>g.isValidForHoverAnchor(p));if(u.length===this.hoverParts.length)return this;return new Fk(this,u,this.isComplete,this.options)}}class Fk extends Im{constructor(p,u,g,v){super(u,g,v);this.original=p}filter(p){return this.original.filter(p)}}var FT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Hk=function(p,u){return function(g,v){u(g,v,p)}},Wk=m,Km=class p extends n{get hasContent(){return this._hasContent}constructor(u,g){super();this._keybindingService=u,this._hoverService=g,this.actions=[],this._hasContent=!1,this.hoverElement=Wk("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=w(this.hoverElement,Wk("div.actions"))}addAction(u){let g=this._keybindingService.lookupKeybinding(u.commandId),v=g?g.getLabel():null;this._hasContent=!0;let S=this._register(Ah.render(this.actionsElement,u,v));return this._register(this._hoverService.setupManagedHover(Vo("element"),S.actionContainer,S.actionRenderedLabel)),this.actions.push(S),S}append(u){let g=w(this.actionsElement,u);return this._hasContent=!0,g}};Km=FT([Hk(0,ce),Hk(1,yn)],Km);var HT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Bk=function(p,u){return function(g,v){u(g,v,p)}},Lm=class p 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 ms({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),vo(e(1187,"Copied to clipboard"))}};Lm=HT([Bk(2,Xn),Bk(3,yn)],Lm);class Vk{constructor(p,u,g){this.provider=p,this.hover=u,this.ordinal=g}}async function WT(p,u,g,v,S){let y=await Promise.resolve(p.provideHover(g,v,S)).catch(dt);if(!y||!BT(y))return;return new Vk(p,y,u)}function Tu(p,u,g,v,S=!1){let D=p.ordered(u,S).map((T,R)=>WT(T,R,u,g,v));return Fn.fromPromisesResolveOrder(D).coalesce()}async function zk(p,u,g,v,S=!1){let y=[];for await(let D of Tu(p,u,g,v,S))y.push(D.hover);return y}mo("_executeHoverProvider",(p,u,g)=>{let v=p.get(j);return zk(v.hoverProvider,u,g,he.None)});mo("_executeHoverProvider_recursive",(p,u,g)=>{let v=p.get(j);return zk(v.hoverProvider,u,g,he.None,!0)});function BT(p){let u=typeof p.range<"u",g=typeof p.contents<"u"&&p.contents&&p.contents.length>0;return u&&g}var VT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},vd=m,zT=Lt("hover-increase-verbosity",b.addSmall,e(1188,"Icon for increaseing hover verbosity.")),KT=Lt("hover-decrease-verbosity",b.removeSmall,e(1189,"Icon for decreasing hover verbosity."));class Lo{constructor(p,u,g,v,S,y=void 0){this.owner=p,this.range=u,this.contents=g,this.isBeforeContent=v,this.ordinal=S,this.source=y}isValidForHoverAnchor(p){return p.type===1&&this.range.startColumn<=p.range.startColumn&&this.range.endColumn>=p.range.endColumn}}class Pv{constructor(p,u,g){this.hover=p,this.hoverProvider=u,this.hoverPosition=g}supportsVerbosityAction(p){switch(p){case Ar.Increase:return this.hover.canIncreaseVerbosity??!1;case Ar.Decrease:return this.hover.canDecreaseVerbosity??!1}}}var ma=class p{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),Q=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 Q==="number"&&R>=Q){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||du(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,Xm(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(!du(T.hover.contents)){let R=T.hover.range?t.lift(T.hover.range):v.range,K=new Pv(T.hover,T.provider,y);yield new Lo(this,R,T.hover.contents,!1,T.ordinal,K)}}renderHoverParts(u,g){return this._renderedHoverParts=new Kk(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))}};ma=VT([kc(1,wo),kc(2,X),kc(3,j),kc(4,ce),kc(5,yn),kc(6,Ne)],ma);class Ru{constructor(p,u,g,v){this.hoverPart=p,this.hoverElement=u,this.disposables=g,this.actionsContainer=v}dispose(){this.disposables.dispose()}}class Kk{constructor(p,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(p,u,this._onFinishedRendering),this._disposables.add(E(()=>{this.renderedHoverParts.forEach((q)=>{q.dispose()}),this._ongoingHoverOperations.forEach((q)=>{q.tokenSource.dispose(!0)})}))}_renderHoverParts(p,u,g){return p.sort(Cn((v)=>v.ordinal,_i)),p.map((v)=>{let S=this._renderHoverPart(v,g);return u.appendChild(S.hoverElement),S})}_renderHoverPart(p,u){let g=this._renderMarkdownHover(p,u),v=g.hoverElement,S=p.source,y=new c;if(y.add(g),!S)return new Ru(p,v,y);let D=S.supportsVerbosityAction(Ar.Increase),T=S.supportsVerbosityAction(Ar.Decrease);if(!D&&!T)return new Ru(p,v,y);let R=vd("div.verbosity-actions");v.prepend(R);let K=vd("div.verbosity-actions-inner");return R.append(K),y.add(this._renderHoverExpansionAction(K,Ar.Increase,D)),y.add(this._renderHoverExpansionAction(K,Ar.Decrease,T)),new Ru(p,v,y,K)}_renderMarkdownHover(p,u){return qk(this._editor,p,this._markdownRendererService,u)}_renderHoverExpansionAction(p,u,g){let v=new c,S=u===Ar.Increase,y=w(p,vd(G.asCSSSelector(S?zT:KT)));y.tabIndex=0;let D=v.add(new qc("mouse",void 0,{target:p,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(v.add(this._hoverService.setupManagedHover(D,y,UT(this._keybindingService,u))),!g)return y.classList.add("disabled"),v;y.classList.add("enabled");let T=()=>this._commandService.executeCommand(u===Ar.Increase?hd:ud,{focus:!0});return v.add(new O0(y,T)),v.add(new M0(y,T,[3,10])),v}handleScroll(p){this.renderedHoverParts.forEach((u)=>{let g=u.actionsContainer;if(!g)return;let v=u.hoverElement,y=p.scrollTop+p.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(p,u){let g=this._editor.getModel();if(!g)return;let v=this._getRenderedHoverPartAtIndex(u),S=v?.hoverPart.source;if(!v||!S?.supportsVerbosityAction(p))return;let y=await this._fetchHover(S,g,p);if(!y)return;let D=new Pv(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(p){let u=this.renderedHoverParts.findIndex((y)=>y.hoverPart===p);if(u===-1)return;let g=this._getRenderedHoverPartAtIndex(u);if(!g)return;return g.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(p,u,g){let v=g===Ar.Increase?1:-1,S=p.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:p.hover}},R;try{R=await Promise.resolve(S.provideHover(u,p.hoverPosition,D.token,T))}catch(K){dt(K)}return D.dispose(),this._ongoingHoverOperations.delete(S),R}_updateRenderedHoverPart(p,u){if(p>=this.renderedHoverParts.length||p<0)return;let g=this._renderHoverPart(u,this._onFinishedRendering),v=this.renderedHoverParts[p],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[p]=T,T}_getRenderedHoverPartAtIndex(p){return this.renderedHoverParts[p]}dispose(){this._disposables.dispose()}}function Uk(p,u,g,v){u.sort(Cn((y)=>y.ordinal,_i));let S=[];for(let y of u){let D=qk(g,y,v,p.onContentsChanged);p.fragment.appendChild(D.hoverElement),S.push(D)}return new Jo(S)}function qk(p,u,g,v){let S=new c,y=vd("div.hover-row"),D=vd("div.hover-row-contents");y.appendChild(D);let T=u.contents;for(let K of T){if(du(K))continue;let q=vd("div.markdown-hover"),Q=w(q,vd("div.hover-contents")),te=S.add(g.render(K,{context:p,asyncRenderCallback:()=>{Q.className="hover-contents code-hover-contents",v()}}));Q.appendChild(te.element),D.appendChild(q)}return{hoverPart:u,hoverElement:y,dispose(){S.dispose()}}}function UT(p,u){switch(u){case Ar.Increase:return p.appendKeybinding(e(1193,"Increase Hover Verbosity"),hd);case Ar.Decrease:return p.appendKeybinding(e(1194,"Decrease Hover Verbosity"),ud)}}var jk=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Av=function(p,u){return function(g,v){u(g,v,p)}},jp=class p{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 f(new k(Math.round(255*y.red),Math.round(255*y.green),Math.round(255*y.blue),y.alpha)),T=f.Format.CSS.formatRGB(D),R=f.Format.CSS.formatHSL(D),K=f.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}};jp=jk([Av(0,fi)],jp);var Zx=class p extends n{constructor(u,g){super();this._register(u.colorProvider.register("*",new jp(g)))}};Zx=jk([Av(0,j),Av(1,fi)],Zx);async function Xx(p,u,g,v="auto"){return Qx(new $k,p,u,g,v)}function Fv(p,u,g,v){return Promise.resolve(g.provideColorPresentations(p,u,v))}class $k{constructor(){}async compute(p,u,g,v){let S=await p.provideDocumentColors(u,g);if(Array.isArray(S))for(let y of S)v.push({colorInfo:y,provider:p});return Array.isArray(S)}}class PS{constructor(){}async compute(p,u,g,v){let S=await p.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 FS{constructor(p){this.colorInfo=p}async compute(p,u,g,v){let S=await p.provideColorPresentations(u,this.colorInfo,he.None);if(Array.isArray(S))v.push(...S);return Array.isArray(S)}}async function Qx(p,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 jp)D=q;else try{if(await p.compute(q,g,v,T))y=!0}catch(Q){dt(Q)}}if(y)return T;if(D&&S!=="never")return await p.compute(D,g,v,T),T;return[]}function jS(p,u){let{colorProvider:g}=p.get(j),v=p.get(gt).getModel(u);if(!v)throw Qi();let S=p.get(X).getValue("editor.defaultColorDecorators",{resource:u});return{model:v,colorProviderRegistry:g,defaultColorDecoratorsEnablement:S}}var qT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Hv=function(p,u){return function(g,v){u(g,v,p)}},wd,Bv=Object.create({}),Ud=class p extends n{static{wd=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 Gk),this._colorDecorationClassRefs=this._register(new c),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new yg(this._editor));let y=this._editor.getContainerDomNode();y.style.setProperty("--vscode-colorPicker-colorDecoratorWidth",`${wd.colorDecoratorInnerWidthInEm}em`),y.style.setProperty("--vscode-colorPicker-colorDecoratorMargin",`${wd.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:wd.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 Xx(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=wd.colorDecoratorInnerWidthInEm+2*wd.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,Q=new k(Math.round(T*255),Math.round(R*255),Math.round(K*255),q),te=`rgba(${Q.r}, ${Q.g}, ${Q.b}, ${Q.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:d0,inlineClassName:`${ne.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:Bv,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)}};Ud=wd=qT([Hv(1,X),Hv(2,j),Hv(3,Bi)],Ud);class Gk extends n{constructor(){super(...arguments);this._onDidChange=this._register(new i),this._computed=0,this._limited=!1}update(p,u){if(p!==this._computed||u!==this._limited)this._computed=p,this._limited=u,this._onDidChange.fire()}}var Zk=m;class Vv extends n{constructor(p,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=Zk(".saturation-wrap"),w(p,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",w(this._domNode,this._canvas),this.selection=Zk(".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(p){if(!p.target||!(p.target instanceof Element))return;this.monitor=this._register(new Ia);let u=mt(this._domNode);if(p.target!==this.selection)this.onDidChangePosition(p.offsetX,p.offsetY);this.monitor.startMonitoring(p.target,p.pointerId,p.buttons,(v)=>this.onDidChangePosition(v.pageX-u.left,v.pageY-u.top),()=>null);let g=l(p.target.ownerDocument,x.POINTER_UP,()=>{if(this._onColorFlushed.fire(),g.dispose(),this.monitor)this.monitor.stopMonitoring(!0),this.monitor=null},!0)}onDidChangePosition(p,u){let g=Math.max(0,Math.min(1,p/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 p=this.model.color.hsva;this.paintSelection(p.s,p.v)}paint(){let p=this.model.color.hsva,u=new f(new hl(p.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=f.Format.CSS.format(u),g.fill(),g.fillStyle=v,g.fill(),g.fillStyle=S,g.fill()}paintSelection(p,u){this.selection.style.left=`${p*this.width}px`,this.selection.style.top=`${this.height-u*this.height}px`}onDidChangeColor(p){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let u=p.hsva;this.paintSelection(u.s,u.v)}}class jv extends n{constructor(p){super();this._onClicked=this._register(new i),this.onClicked=this._onClicked.event,this._button=w(p,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 $v extends n{constructor(p,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(p,Nu(".standalone-strip")),this.overlay=w(this.domNode,Nu(".standalone-overlay"));else this.domNode=w(p,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 p=this.getValue(this.model.color);this.updateSliderPosition(p)}onDidChangeColor(p){let u=this.getValue(p);this.updateSliderPosition(u)}onPointerDown(p){if(!p.target||!(p.target instanceof Element))return;let u=this._register(new Ia),g=mt(this.domNode);if(this.domNode.classList.add("grabbing"),p.target!==this.slider)this.onDidChangeTop(p.offsetY);u.startMonitoring(p.target,p.pointerId,p.buttons,(S)=>this.onDidChangeTop(S.pageY-g.top),()=>null);let v=l(p.target.ownerDocument,x.POINTER_UP,()=>{this._onColorFlushed.fire(),v.dispose(),u.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(p){let u=Math.max(0,Math.min(1,1-p/this.height));this.updateSliderPosition(u),this._onDidChange.fire(u)}updateSliderPosition(p){this.slider.style.top=`${(1-p)*this.height}px`}}class Yv extends $v{constructor(p,u,g){super(p,u,g);this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(p){super.onDidChangeColor(p);let{r:u,g,b:v}=p.rgba,S=new f(new k(u,g,v,1)),y=new f(new k(u,g,v,0));this.overlay.style.background=`linear-gradient(to bottom, ${S} 0%, ${y} 100%)`}getValue(p){return p.hsva.a}}class ew extends $v{constructor(p,u,g){super(p,u,g);this.domNode.classList.add("hue-strip")}getValue(p){return 1-p.hsva.h/360}}var jT=m;class tw extends n{constructor(p,u,g,v){super();if(this.model=u,this.pixelRatio=g,this._insertButton=null,this._domNode=jT(".colorpicker-body"),w(p,this._domNode),this._saturationBox=new Vv(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 Yv(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 ew(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 jv(this._domNode)),this._domNode.classList.add("standalone-colorpicker")}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:p,v:u}){let g=this.model.color.hsva;this.model.color=new f(new hl(g.h,p,u,g.a))}onDidOpacityChange(p){let u=this.model.color.hsva;this.model.color=new f(new hl(u.h,u.s,u.v,p))}onDidHueChange(p){let u=this.model.color.hsva,g=(1-p)*360;this.model.color=new f(new hl(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 $T=m;class iw extends n{constructor(p){super();this._onClicked=this._register(new i),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),w(p,this._button);let u=document.createElement("div");u.classList.add("close-button-inner-div"),w(this._button,u),w(u,$T(".button"+G.asCSSSelector(Lt("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 km=m;class ow extends n{constructor(p,u,g,v){super();this.model=u,this.type=v,this._closeButton=null,this._domNode=km(".colorpicker-header"),w(p,this._domNode),this._pickedColorNode=w(this._domNode,km(".picked-color")),w(this._pickedColorNode,km("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,km(".original-color")),this._originalColorNode.style.backgroundColor=f.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=g.getColorTheme().getColor(rf)||f.white,this._register(g.onDidColorThemeChange((y)=>{this.backgroundColor=y.getColor(rf)||f.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=f.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 iw(this._domNode))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(p){this._pickedColorNode.style.backgroundColor=f.Format.CSS.format(p)||"",this._pickedColorNode.classList.toggle("light",p.rgba.a<0.5?this.backgroundColor.isLighter():p.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}var GT=m;class Wv extends ni{constructor(p,u,g,v,S){super();this.model=u,this.pixelRatio=g,this._register(mh.getInstance(F(p)).onDidChange(()=>this.layout())),this._domNode=GT(".colorpicker-widget"),p.appendChild(this._domNode),this.header=this._register(new ow(this._domNode,this.model,v,S)),this.body=this._register(new tw(this._domNode,this.model,this.pixelRatio,S))}layout(){this.body.layout()}get domNode(){return this._domNode}}class nw extends n{get color(){return this._color}set color(p){if(this._color.equals(p))return;this._color=p,this._onDidChangeColor.fire(p)}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(p){if(this._colorPresentations=p,this.presentationIndex>p.length-1)this.presentationIndex=0;this._onDidChangePresentation.fire(this.presentation)}constructor(p,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=p,this._color=p,this._colorPresentations=u}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(p,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 e0(p,u,g){let v=p.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 f(R),q=await Fv(p,u,g,he.None),Q=new nw(K,[],0);return Q.colorPresentations=q||[],Q.guessColorPresentation(K,v),{range:t.lift(u.range),model:Q,provider:g}}function t0(p,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=p.getModel()._setTrackedRange(null,D,3);if(v)S.push(...v.map((R)=>({range:R,text:y.text,forceMoveMarkers:!1})));else S.push(y);return p.executeEdits("colorpicker",S),p.pushUndoStop(),p.getModel()._getTrackedRange(T)??D}async function Hp(p,u,g,v,S){let y=await Fv(p,{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 ZT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class Ec{constructor(p,u,g,v){this.owner=p,this.range=u,this.model=g,this.provider=v,this.forceShowAtRange=!0}isValidForHoverAnchor(p){return p.type===1&&this.range.startColumn<=p.range.startColumn&&this.range.endColumn>=p.range.endColumn}static fromBaseColor(p,u){return new Ec(p,u.range,u.model,u.provider)}}var Jm=class p{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=Ud.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[Ec.fromBaseColor(this,await e0(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 Ye(302,S));let y=new c,D=g[0],T=v.getModel(),R=D.model;this._colorPicker=y.add(new Wv(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 Hp(T,R,te,q,D),K=!0,q=t0(v,q,R)})),y.add(R.onDidChangeColor((te)=>{Hp(T,R,te,q,D)})),y.add(v.onDidChangeModelContent((te)=>{if(K)K=!1;else u.hide(),v.focus()}));let Q={hoverPart:Ec.fromBaseColor(this,D),hoverElement:this._colorPicker.domNode,dispose(){y.dispose()}};return new Jo([Q])}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}};Jm=ZT([XT(1,De)],Jm);class Em{constructor(p,u){this.range=p,this.direction=u}}class rw{constructor(p,u,g){this.hint=p,this.anchor=u,this.provider=g,this._isResolved=!1}with(p){let u=new rw(this.hint,p.anchor,this.provider);return u._isResolved=this._isResolved,u._currentResolve=this._currentResolve,u}async resolve(p){if(typeof this.provider.resolveInlayHint!=="function")return;if(this._currentResolve){if(await this._currentResolve,p.isCancellationRequested)return;return this.resolve(p)}if(!this._isResolved)this._currentResolve=this._doResolve(p).finally(()=>this._currentResolve=void 0);await this._currentResolve}async _doResolve(p){try{let u=await Promise.resolve(this.provider.resolveInlayHint(this.hint,p));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 Sd{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(p,u,g,v){let S=[],y=p.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??Sd._emptyInlayHintList,D])}catch(R){dt(R)}}));if(await Promise.all(y.flat()),v.isCancellationRequested||u.isDisposed())throw new tr;return new Sd(g,S,u)}constructor(p,u,g){this._disposables=new c,this.ranges=p,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=Sd._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 rw(D,new Em(q,R),y))}}this.items=v.sort((S,y)=>r.compare(S.hint.position,y.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(p,u){let g=u.lineNumber,v=p.getWordAtPosition(u);if(v)return new t(g,v.startColumn,g,v.endColumn);p.tokenization.tokenizeIfCheap(g);let S=p.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 Xk(p){return F0(p.id,...p.arguments??[]).toString()}async function Yk(p,u,g,v){let S=p.get(gn),y=p.get(Dn),D=p.get(Ne),T=p.get(L),R=p.get(ut);if(await v.item.resolve(he.None),!v.part.location)return;let K=v.part.location,q=[],Q=new Set(Rn.getMenuItems(a.EditorContext).map((ne)=>gh(ne)?ne.command.id:Da()));for(let ne of so.all())if(Q.has(ne.desc.id))q.push(new eo(ne.desc.id,Ei.label(ne.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let re=await S.createModelReference(K.uri);try{let ae=new fd(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 Qe),q.push(new eo(ne.id,ne.title,void 0,!0,async()=>{try{await D.executeCommand(ne.id,...ne.arguments??[])}catch(re){R.notify({severity:gl.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 Dm(p,u,g,v){let y=await p.get(gn).createModelReference(v.uri);await g.invokeWithinContext(async(D)=>{let T=u.hasSideBySideModifier,R=D.get(V),K=Hi.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 fd(y.object.textEditorModel,t.getStartPosition(v.range)),t.lift(v.range))}),y.dispose()}var YT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Tc=function(p,u){return function(g,v){u(g,v,p)}},Rc;class Tm{constructor(){this._entries=new Ti(50)}get(p){let u=Tm._key(p);return this._entries.get(u)}set(p,u){let g=Tm._key(p);this._entries.set(g,u)}static _key(p){return`${p.uri.toString()}/${p.getVersionId()}`}}var Jk=Z("IInlayHintsCache");fe(Jk,Tm,1);class Mu{constructor(p,u){this.item=p,this.index=u}get part(){let p=this.item.hint.label;if(typeof p==="string")return{label:p};else return p[this.index]}}class Qk{constructor(p,u){this.part=p,this.hasTriggerModifier=u}}class e1{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 Bp=class p{static{Rc=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(u){return u.getContribution(Rc.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 yg(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(Xs.getInstance().event((Q)=>{if(!this._editor.hasModel())return;let te=Q.altKey&&Q.ctrlKey&&!(Q.shiftKey||Q.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 e1),T=new be(async()=>{let K=Date.now(),{store:q,token:Q}=D.reset();try{let te=await Sd.create(this._languageFeaturesService.inlayHintsProvider,g,this._getHintsRanges(),Q);if(T.delay=this._debounceInfo.update(g,Date.now()-K),Q.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 Is(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 Qk(D,y.hasTriggerModifier):void 0;let K=T.validatePosition(D.item.hint.position).lineNumber,q=new t(K,1,K,T.getLineMaxColumn(K)),Q=this._getInlineHintsForRange(q);this._updateHintsDecorators([q],Q),v.add(E(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([q],Q)}))})),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(Dm,S,this._editor,D.location);else if(og.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(Yk,this._editor,u.event.target,g)})}_getInlayHintLabelPart(u){if(u.target.type!==6)return;let g=u.target.detail.injectedText?.options;if(g instanceof tc&&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:gl.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 Em(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 Je=We?.decoration.options[We.item.anchor.direction];if(Je&&Je.attachedData!==Rc._whitespaceData){let tt=Ae.get(We.item)??0;Ae.set(We.item,tt+Je.content.length)}}let He=g.filter((Te)=>Te.anchor.range.startLineNumber===ke.lineNumber&&Te.anchor.range.endColumn<=ke.column),Ve=Array.from(Ae.values()),qe;while(!0){let Te=He.shift(),We=Ve.shift();if(!We&&!Te)break;if(Te)v.set(Te,We??0),qe=Te;else if(qe&&We){let Je=v.get(qe);Je+=We,Je+=Ve.reduce((tt,ot)=>tt+ot,0),Ve.length=0;break}}}let{fontSize:S,fontFamily:y,padding:D,isUniform:T}=this._getLayoutInfo(),R=this._editor.getOption(61),K=[],q=(ke,Ae,He,Ve,qe,Te)=>{let We={content:He,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:Ae.className,cursorStops:Ve,attachedData:qe,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}}})},Q=(ke,Ae)=>{let He=S/3|0,Ve=He/R,qe=this._ruleFactory.createClassNameRef({width:`${He}px`,display:"inline-block"});q(ke,qe,"",Ae?Fr.Right:Fr.None,Rc._whitespaceData,Ve)},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)Q(Ae,!1);let He=typeof Ae.hint.label==="string"?[{label:Ae.hint.label}]:Ae.hint.label,Ve=v.get(Ae),qe=0;for(let Te=0;Te<He.length;Te++){let We=He[Te],Je=Te===0,tt=Te===He.length-1,ot={fontSize:`${S}px`,fontFamily:`var(${ne}), ${uo.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(mR),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(qe+=je.length,Ve!==void 0){let st=qe-Ve;if(st>=0)qe-=st,je=je.slice(0,-(1+st))+"…",nt=!0}if(D)if(Je&&(tt||nt))ot.padding=`1px ${Math.max(1,S/4)|0}px`,ot.borderRadius=`${S/4|0}px`;else if(Je)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),JT(je),tt&&!Ae.hint.paddingRight?Fr.Right:Fr.None,new Mu(Ae,Te)),nt)break}if(Ve!==void 0&&qe<Ve){let Te=Ve-qe;q(Ae,this._ruleFactory.createClassNameRef({})," ".repeat(Te),Fr.None)}if(Ae.hint.paddingRight)Q(Ae,!0);if(K.length>Rc._MAX_DECORATORS)break}let ae=[];for(let[ke,Ae]of this._decorationsMetadata){let He=this._editor.getModel()?.getDecorationRange(ke);if(He&&u.some((Ve)=>Ve.containsRange(He)))ae.push(ke),Ae.classNameRef.dispose(),this._decorationsMetadata.delete(ke)}let ge=kr.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 Ve=K[He];this._decorationsMetadata.set(Ae[He],Ve)}}),ge.restore(this._editor)}_fillInColors(u,g){if(g.kind===Kv.Parameter)u.backgroundColor=en(_R),u.color=en(xR);else if(g.kind===Kv.Type)u.backgroundColor=en(wR),u.color=en(yR);else u.backgroundColor=en(_0),u.color=en(x0)}_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()}};Bp=Rc=YT([Tc(1,j),Tc(2,Bi),Tc(3,Jk),Tc(4,Ne),Tc(5,ut),Tc(6,L)],Bp);function JT(p){return p.replace(/[ \t]/g," ")}we.registerCommand("_executeInlayHintProvider",async(p,...u)=>{let[g,v]=u;Ie(W.isUri(g)),Ie(t.isIRange(v));let{inlayHintsProvider:S}=p.get(j),y=await p.get(gn).createModelReference(g);try{let D=await Sd.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 QT=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Cd=function(p,u){return function(g,v){u(g,v,p)}};class sw extends pa{constructor(p,u,g,v){super(10,u,p.item.anchor.range,g,v,!0);this.part=p}}var Ym=class p extends ma{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(!Bp.get(this._editor))return null;if(u.target.type!==6)return null;let v=u.target.detail.injectedText?.options;if(!(v instanceof tc&&v.attachedData instanceof Mu))return null;return new sw(v.attachedData,this,u.event.posx,u.event.posy)}computeSync(){return[]}computeAsync(u,g,v,S){if(!(u instanceof sw))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")}](${Xk(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(!du(T.hover.contents))yield new Lo(this,u.item.anchor.range,T.hover.contents,!1,2+T.ordinal)}finally{y.dispose()}}};Ym=QT([Cd(1,wo),Cd(2,ce),Cd(3,yn),Cd(4,X),Cd(5,gn),Cd(6,j),Cd(7,Ne)],Ym);var t1=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Bc=function(p,u){return function(g,v){u(g,v,p)}},aw,dw,Rm=aw=class p extends n{constructor(u,g,v,S,y,D,T){super();let R=g.hoverParts;this._renderedHoverParts=this._register(new cw(u,v,R,S,y,D,T));let K=g.options,q=K.anchor,{showAtPosition:Q,showAtSecondaryPosition:te}=aw.computeHoverPositions(u,q.range,R);this.shouldAppearBeforeContent=R.some((ne)=>ne.isBeforeContent),this.showAtPosition=Q,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(),Q=q.coordinatesConverter,te=Q.convertModelRangeToViewRange(g),ne=q.getLineMinColumn(te.startLineNumber),re=new r(te.startLineNumber,ne);S=Q.convertViewPositionToModelPosition(re).column}let{startLineNumber:y,startColumn:D}=g,T;for(let q of v){let Q=q.range,te=Q.startLineNumber===y,ne=Q.endLineNumber===y;if(te&&ne){let ae=Q.startColumn,ge=Math.min(D,ae);D=Math.max(ge,S)}if(q.forceShowAtRange)T=Q}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}}};Rm=aw=t1([Bc(4,ce),Bc(5,yn),Bc(6,Xn)],Rm);class i1{constructor(p,u){this._statusBar=u,p.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var cw=class p extends n{static{dw=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:dw._DECORATION_OPTIONS}]),E(()=>{S.clear()})}_renderParts(u,g,v,S,y){let D=new Km(S,y),T={fragment:this._fragment,statusBar:D,...v},R=new c;R.add(D);for(let q of u){let Q=this._renderHoverPartsForParticipant(g,q,T);R.add(Q);for(let te of Q.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 i1(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 Ec)&&!g.participant.hideCopyButton)v.add(new Lm(S,()=>g.participant.getAccessibleContent(g.hoverPart),this._clipboardService,this._hoverService));this._perPartDisposables.set(u,v)}_updateMarkdownAndColorParticipantInfo(u){let g=u.find((v)=>v instanceof ma&&!(v instanceof Ym));if(g)this._markdownHoverParticipant=g;this._colorHoverParticipant=u.find((v)=>v instanceof Jm)}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}};cw=dw=t1([Bc(4,ce),Bc(5,yn),Bc(6,Xn)],cw);var ER=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Nm=function(p,u){return function(g,v){u(g,v,p)}},Mm=class p 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(xm,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 ya.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 Im(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 Rm(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||!ga(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}};Mm=ER([Nm(1,L),Nm(2,ce),Nm(3,yn),Nm(4,Xn)],Mm);function n0(p){let u=p.target;return!!u&&u.type===6&&u.detail.injectedText?.options.attachedData===Bv}var DR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},lw=function(p,u){return function(g,v){u(g,v,p)}},hw,lo=class p extends n{static{hw=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(hw.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()||n0(u)}_isMouseOnContentHoverWidget(u){if(!this._contentWidget||!this._contentWidget.getDomNode().isConnected)return!1;return ga(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,Q)=>{let te=this._isMouseOnContentHoverWidget(q);return Q&&te},y=(q)=>{let Q=g.isColorPickerVisible,te=this._isMouseOnContentHoverWidget(q),ne=Q&&te,re=Q&&this._isMouseDown;return ne||re},D=(q,Q)=>{let te=q.event.browserEvent.view;if(!te)return!1;return Q&&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(Sm(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=Kd(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===rm||g.commandId===hd||g.commandId===ud)&&this._contentWidget.isVisible;return v||S}hideContentHover(){if(Ns.dropDownVisible)return;this._contentWidget?.hide()}_getOrCreateContentWidget(){if(!this._contentWidget)this._contentWidget=this._instantiationService.createInstance(Mm,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()}};lo=hw=DR([lw(1,Dn),lw(2,L),lw(3,ce)],lo);var br;(function(p){p.NoAutoFocus="noAutoFocus",p.FocusIfVisible="focusIfVisible",p.AutoFocusImmediately="autoFocusImmediately"})(br||(br={}));class uw extends z{constructor(){super({id:rm,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:[br.NoAutoFocus,br.FocusIfVisible,br.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:br.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2087),weight:100}})}run(p,u,g){if(!u.hasModel())return;let v=lo.get(u);if(!v)return;let S=g?.focus,y=br.FocusIfVisible;if(Object.values(br).includes(S))y=S;else if(typeof S==="boolean"&&S)y=br.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!==br.NoAutoFocus)v.focus();else D(T);else D(T||y===br.AutoFocusImmediately)}}class gw extends z{constructor(){super({id:gk,label:h(1167,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:h(1168,"Show the definition preview hover in the editor.")}})}run(p,u){let g=lo.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=Ic.get(u);if(!y)return;y.startFindDefinitionFromCursor(v).then(()=>{g.showContentHover(S,1,2,!0)})}}class pw extends z{constructor(){super({id:pk,label:h(1169,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(p,u){lo.get(u)?.hideContentHover()}}class mw extends z{constructor(){super({id:mk,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(p,u){let g=lo.get(u);if(!g)return;g.scrollUp()}}class fw extends z{constructor(){super({id:fk,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(p,u){let g=lo.get(u);if(!g)return;g.scrollDown()}}class _w extends z{constructor(){super({id:_k,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(p,u){let g=lo.get(u);if(!g)return;g.scrollLeft()}}class bw extends z{constructor(){super({id:bk,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(p,u){let g=lo.get(u);if(!g)return;g.scrollRight()}}class vw extends z{constructor(){super({id:vk,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(p,u){let g=lo.get(u);if(!g)return;g.pageUp()}}class ww extends z{constructor(){super({id:wk,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(p,u){let g=lo.get(u);if(!g)return;g.pageDown()}}class Sw extends z{constructor(){super({id:Sk,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(p,u){let g=lo.get(u);if(!g)return;g.goToTop()}}class Cw extends z{constructor(){super({id:Ck,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(p,u){let g=lo.get(u);if(!g)return;g.goToBottom()}}class yw extends z{constructor(){super({id:hd,label:yk,alias:"Increase Hover Verbosity Level",precondition:o.hoverVisible})}run(p,u,g){let v=lo.get(u);if(!v)return;let S=g?.index!==void 0?g.index:v.focusedHoverPartIndex();v.updateHoverVerbosityLevel(Ar.Increase,S,g?.focus)}}class xw extends z{constructor(){super({id:ud,label:xk,alias:"Decrease Hover Verbosity Level",precondition:o.hoverVisible})}run(p,u,g){let v=lo.get(u);if(!v)return;let S=g?.index!==void 0?g.index:v.focusedHoverPartIndex();lo.get(u)?.updateHoverVerbosityLevel(Ar.Decrease,S,g?.focus)}}var MR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Tn=m;class n1{constructor(p,u,g){this.owner=p,this.range=u,this.marker=g}isValidForHoverAnchor(p){return p.type===1&&this.range.startColumn<=p.range.startColumn&&this.range.endColumn>=p.range.endColumn}}var o1={type:1,filter:{include:zt.QuickFix},triggerAction:zi.QuickFixHover},Om=class p{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,Q=this._markerDecorationsService.getMarker(v.uri,R);if(!Q)continue;let te=new t(u.range.startLineNumber,K,u.range.startLineNumber,q);T.push(new n1(this,te,Q))}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)=>`${pi(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 Q=Tn("span");if(y){let ae=w(Q,Tn("span"));ae.innerText=y}let te=w(Q,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,Q);re.style.opacity="0.6",re.style.paddingLeft="6px"}else{let Q=w(S,Tn("span"));Q.style.opacity="0.6",Q.style.paddingLeft="6px",Q.innerText=y&&T?`${y}(${T})`:y?y:`(${T})`}if(Ln(R))for(let{message:Q,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=`${pi(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=Q,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:bs.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 Ei&&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(Ay.makeKey(this.recentMarkerCodeActionsInfo.marker)===Ay.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=Jr.get(this._editor),re=mt(te);ne?.showCodeActions(o1,K,{x:re.left,y:re.top,width:re.width,height:re.height})}});let Q=K.validActions.find((te)=>te.action.isAI);if(Q)u.statusBar.addAction({label:Q.action.title,commandId:Q.action.command?.id??"",iconClass:G.asClassName(b.sparkle),run:()=>{Jr.get(this._editor)?.applyCodeAction(Q,!1,!1,Gr.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),o1,na.None,g))}};Om=MR([Ou(1,fg),Ou(2,To),Ou(3,j),Ou(4,hi),Ou(5,V)],Om);class Iw{constructor(p){this._editor=p}computeSync(p){let u=(y)=>({value:y}),g=this._editor.getLineDecorations(p.lineNumber),v=[],S=p.laneOrLine==="lineNo";if(!g)return v;for(let y of g){let D=y.options.glyphMargin?.position??_r.Center;if(!S&&D!==p.laneOrLine)continue;let T=S?y.options.lineNumberHoverMessage:y.options.glyphMarginHoverMessage;if(!T||du(T))continue;v.push(...Xm(T).map(u))}return v}}var PR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},WR=function(p,u){return function(g,v){u(g,v,p)}},Lw,r1=m,Pm=class p extends n{static{Lw=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 ff(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new ku(this._editor,new Iw(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 Lw.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=r1("div.hover-row.markdown-hover"),T=w(D,r1("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),Q=v.height-T,te=Math.max(0,Math.min(Math.round(R),Q));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||!ga(g,u.x,u.y))this.hide()}};Pm=Lw=PR([WR(1,wo)],Pm);var VR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},KR=function(p,u){return function(g,v){u(g,v,p)}},Pu=class p 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 ga(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(!Sm(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(Kd(u.keyCode))return;this.hideGlyphHover()}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){if(!this._glyphWidget)this._glyphWidget=this._instantiationService.createInstance(Pm,this._editor);return this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};Pu=VR([KR(1,L)],Pu);var $c=new class p{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 kw{}class Ew{}class Dw{}le(lo.ID,lo,2);le(Pu.ID,Pu,2);I(uw);I(gw);I(pw);I(mw);I(fw);I(_w);I(bw);I(vw);I(ww);I(Sw);I(Cw);I(yw);I(xw);ya.register(ma);ya.register(Om);we.registerCommand(_u,(p)=>{p.get(X).updateValue("editor.hover.showLongLineWarning",!1)});oi((p,u)=>{let g=p.getColor(Th);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)}; }`)});$c.register(new kw);$c.register(new Ew);$c.register(new Dw);class s1{constructor(p,u){this._link=p,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(p){if(this._link.url)return this._link.url;if(typeof this._provider.resolveLink==="function")return Promise.resolve(this._provider.resolveLink(this._link,p)).then((u)=>{if(this._link=u||this._link,this._link.url)return this.resolve(p);return Promise.reject(Error("missing"))});return Promise.reject(Error("missing"))}}class Au{static{this.Empty=new Au([])}constructor(p){this._disposables=new c;let u=[];for(let[g,v]of p){let S=g.links.map((y)=>new s1(y,v));if(u=Au._union(u,S),ws(g))this._disposables??=new c,this._disposables.add(g)}this.links=u}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(p,u){let g=[],v,S,y,D;for(v=0,y=0,S=p.length,D=u.length;v<S&&y<D;){let T=p[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(p[v]);for(;y<D;y++)g.push(u[y]);return g}}async function Tw(p,u,g){let v=[],S=p.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(Xi(v));if(g.isCancellationRequested)y.dispose(),y=Au.Empty;return y}we.registerCommand("_executeLinkProvider",async(p,...u)=>{let[g,v]=u;if(Ie(g instanceof W),typeof v!=="number")v=0;let{linkProvider:S}=p.get(j),y=p.get(gt).getModel(g);if(!y)return[];let D=await Tw(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 UR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Am=function(p,u){return function(g,v){u(g,v,p)}},Rw,Fu=class p extends n{static{Rw=this}static{this.ID="editor.linkDetector"}static get(u){return u.getContribution(Rw.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 Is(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)=>Tw(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(Gc.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 Gc(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===ee.file&&y.startsWith(`${ee.file}:`)){let T=W.parse(y);if(T.scheme===ee.file){let R=Jl(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=m0(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=Rw=UR([Am(1,To),Am(2,ut),Am(3,j),Am(4,Bi)],Fu);var a1={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 Gc{static decoration(p,u){return{range:p.range,options:Gc._getOptions(p,u,!1)}}static _getOptions(p,u,g){let v={...g?a1.active:a1.general};return v.hoverMessage=qR(p,u),v}constructor(p,u){this.link=p,this.decorationId=u}activate(p,u){p.changeDecorationOptions(this.decorationId,Gc._getOptions(this.link,u,!0))}deactivate(p,u){p.changeDecorationOptions(this.decorationId,Gc._getOptions(this.link,u,!1))}}function qR(p,u){let g=p.url&&/^command:/i.test(p.url.toString()),v=p.tooltip?p.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(p.url){let y="";if(/^command:/i.test(p.url.toString())){let T=p.url.toString().match(/^command:([^?#]+)/);if(T){let R=T[1];y=e(1351,"Execute command {0}",R)}}return new wn("",!0).appendLink(p.url.toString(!0).replace(/ /g,"%20"),v,y).appendMarkdown(` (${S})`)}else return new wn().appendText(`${v} (${S})`)}class d1 extends z{constructor(){super({id:"editor.action.openLink",label:h(1352,"Open Link"),precondition:void 0})}run(p,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(d1);var Ms={Visible:new A("parameterHintsVisible",!1),MultipleSignatures:new A("parameterHintsMultipleSignatures",!1)};async function Nw(p,u,g,v,S){let y=p.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(p,...u)=>{let[g,v,S]=u;Ie(W.isUri(g)),Ie(r.isIPosition(v)),Ie(typeof S==="string"||!S);let y=p.get(j),D=await p.get(gn).createModelReference(g);try{let T=await Nw(y.signatureHelpProvider,D.object.textEditorModel,r.lift(v),{triggerKind:_a.Invoke,isRetrigger:!1,triggerCharacter:S},he.None);if(!T)return;return setTimeout(()=>T.dispose(),0),T.value}finally{D.dispose()}});var fa;(function(p){p.Default={type:0};class u{constructor(v,S){this.request=v,this.previouslyActiveHints=S,this.type=2}}p.Pending=u;class g{constructor(v){this.hints=v,this.type=1}}p.Active=g})(fa||(fa={}));class Fm extends n{static{this.DEFAULT_DELAY=120}constructor(p,u,g=Fm.DEFAULT_DELAY){super();this._onChangedHints=this._register(new i),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=fa.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ie),this.triggerChars=new wh,this.retriggerChars=new wh,this.triggerId=0,this.editor=p,this.providers=u,this.throttledDelayer=this._register(new Si(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(p){if(this._state.type===2)this._state.request.cancel();this._state=p}cancel(p=!1){if(this.state=fa.Default,this.throttledDelayer.cancel(),!p)this._onChangedHints.fire(void 0)}trigger(p,u){let g=this.editor.getModel();if(!g||!this.providers.has(g))return;let v=++this.triggerId;this._pendingTriggers.push(p),this.throttledDelayer.trigger(()=>this.doTrigger(v),u).catch(J)}next(){if(this.state.type!==1)return;let p=this.state.hints.signatures.length,u=this.state.hints.activeSignature,g=u%p===p-1,v=this.editor.getOption(98).cycle;if((p<2||g)&&!v){this.cancel();return}this.updateActiveSignature(g&&v?0:u+1)}previous(){if(this.state.type!==1)return;let p=this.state.hints.signatures.length,u=this.state.hints.activeSignature,g=u===0,v=this.editor.getOption(98).cycle;if((p<2||g)&&!v){this.cancel();return}this.updateActiveSignature(g&&v?p-1:u-1)}updateActiveSignature(p){if(this.state.type!==1)return;this.state=new fa.Active({...this.state.hints,activeSignature:p}),this._onChangedHints.fire(this.state.hints)}async doTrigger(p){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 fa.Pending(Pt((T)=>Nw(this.providers,y,D,S,T)),g);try{let T=await this.state.request;if(p!==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 fa.Active(T.value),this._lastSignatureHelpResult.value=T,this._onChangedHints.fire(this.state.hints),!0}catch(T){if(p===this.triggerId)this.state=fa.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 p=this.editor.getModel();if(!p)return;for(let u of this.providers.ordered(p)){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(p){if(!this.triggerOnType)return;let u=p.length-1,g=p.charCodeAt(u);if(this.triggerChars.has(g)||this.isTriggered&&this.retriggerChars.has(g))this.trigger({triggerKind:_a.TriggerCharacter,triggerCharacter:p.charAt(u)})}onCursorChange(p){if(p.source==="mouse")this.cancel();else if(this.isTriggered)this.trigger({triggerKind:_a.ContentChange})}onModelContentChange(){if(this.isTriggered)this.trigger({triggerKind:_a.ContentChange})}onEditorConfigurationChange(){if(this.triggerOnType=this.editor.getOption(98).enabled,!this.triggerOnType)this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function $R(p,u){switch(u.triggerKind){case _a.Invoke:return u;case _a.ContentChange:return p;case _a.TriggerCharacter:default:return u}}var GR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},c1=function(p,u){return function(g,v){u(g,v,p)}},Mw,Uo=m,ZR=Lt("parameter-hints-next",b.chevronDown,e(1378,"Icon for show next parameter hint.")),XR=Lt("parameter-hints-previous",b.chevronUp,e(1379,"Icon for show previous parameter hint.")),Hm=class p extends n{static{Mw=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=Ms.Visible.bindTo(v),this.keyMultipleSignatures=Ms.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 $a(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 Q=()=>{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",uo.fontFamily)};Q(),this._register(C.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(te)=>te.filter((ne)=>ne.hasChanged(59)))(Q)),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"&&il(g.documentation).length>0)return!0;if(g&&typeof g.documentation==="object"&&il(g.documentation).value.length>0)return!0;if(u.documentation&&typeof u.documentation==="string"&&il(u.documentation).length>0)return!0;if(u.documentation&&typeof u.documentation==="object"&&il(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|^)${Ci(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 Mw.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}};Hm=Mw=GR([c1(2,V),c1(3,wo)],Hm);s("editorHoverWidget.highlightForeground",Lh,e(1381,"Foreground color of the active item in the parameter hint."));var YR=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},l1=function(p,u){return function(g,v){u(g,v,p)}},Ow,Xc=class p extends n{static{Ow=this}static{this.ID="editor.controller.parameterHints"}static get(u){return u.getContribution(Ow.ID)}constructor(u,g,v){super();this.editor=u,this.model=this._register(new Fm(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(Hm,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)}};Xc=Ow=YR([l1(1,L),l1(2,j)],Xc);class h1 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(p,u){Xc.get(u)?.trigger({triggerKind:_a.Invoke})}}le(Xc.ID,Xc,2);I(h1);var Pw=175,Aw=Bt.bindToContribution(Xc.get);U(new Aw({id:"closeParameterHints",precondition:Ms.Visible,handler:(p)=>p.cancel(),kbOpts:{weight:Pw,kbExpr:o.focus,primary:9,secondary:[1033]}}));U(new Aw({id:"showPrevParameterHint",precondition:_.and(Ms.Visible,Ms.MultipleSignatures),handler:(p)=>p.previous(),kbOpts:{weight:Pw,kbExpr:o.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));U(new Aw({id:"showNextParameterHint",precondition:_.and(Ms.Visible,Ms.MultipleSignatures),handler:(p)=>p.next(),kbOpts:{weight:Pw,kbExpr:o.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var rt={Visible:fp,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"))},yr=new a("suggestWidgetStatusBar");class u1{constructor(p,u,g,v){if(this.position=p,this.completion=u,this.container=g,this.provider=v,this.isInvalid=!1,this.score=Sr.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!==p.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!==p.lineNumber||u.range.replace.startLineNumber!==p.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(p){if(!this._resolveCache){let u=p.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),g=new Kt(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,p)).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 yd{static{this.default=new yd}constructor(p=2,u=new Set,g=new Set,v=new Map,S=!0){this.snippetSortOrder=p,this.kindFilter=u,this.providerFilter=g,this.providerItemsToReuse=v,this.showDeprecated=S}}class g1{constructor(p,u,g,v){this.items=p,this.needsClipboard=u,this.durations=g,this.disposable=v}}async function Hu(p,u,g,v=yd.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=[],Q=new c,te=[],ne=!1,re=(ge,ke,Ae)=>{let He=!1;if(!ke)return He;for(let Ve of ke.suggestions)if(!v.kindFilter.has(Ve.kind)){if(!v.showDeprecated&&Ve?.tags?.includes(1))continue;if(!Ve.range)Ve.range=K;if(!Ve.sortText)Ve.sortText=typeof Ve.label==="string"?Ve.label:Ve.label.label;if(!ne&&Ve.insertTextRules&&Ve.insertTextRules&4)ne=Mo.guessNeedsClipboard(Ve.insertText);q.push(new u1(g,Ve,ke,ge)),He=!0}if(ws(ke))Q.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 p.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((Ve)=>q.push(Ve)),ke=ke||He.length>0;return}if(v.providerFilter.size>0&&!v.providerFilter.has(Ae))return;try{let He=new Kt,Ve=await Ae.provideCompletionItems(u,g,S,y);ke=re(Ae,Ve,He)||ke}catch(He){dt(He)}})),ke||y.isCancellationRequested)break}if(await ae,y.isCancellationRequested)return Q.dispose(),Promise.reject(new tr);return new g1(q.sort(eN(v.snippetSortOrder)),ne,{entries:te,elapsed:D.elapsed()},Q)}function Fw(p,u){if(p.sortTextLow&&u.sortTextLow){if(p.sortTextLow<u.sortTextLow)return-1;else if(p.sortTextLow>u.sortTextLow)return 1}if(p.textLabel<u.textLabel)return-1;else if(p.textLabel>u.textLabel)return 1;return p.completion.kind-u.completion.kind}function JR(p,u){if(p.completion.kind!==u.completion.kind){if(p.completion.kind===28)return-1;else if(u.completion.kind===28)return 1}return Fw(p,u)}function QR(p,u){if(p.completion.kind!==u.completion.kind){if(p.completion.kind===28)return 1;else if(u.completion.kind===28)return-1}return Fw(p,u)}var Wm=new Map;Wm.set(0,JR);Wm.set(2,QR);Wm.set(1,Fw);function eN(p){return Wm.get(p)}we.registerCommand("_executeCompletionItemProvider",async(p,...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}=p.get(j),T=await p.get(gn).createModelReference(g);try{let R={incomplete:!1,suggestions:[]},K=[],q=T.object.textEditorModel.validatePosition(v),Q=await Hu(D,T.object.textEditorModel,q,void 0,{triggerCharacter:S??void 0,triggerKind:S?1:0});for(let te of Q.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(()=>Q.disposable.dispose(),100)}}finally{T.dispose()}});function p1(p,u){p.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(u),void 0,!0)}class Os{static isAllOff(p){return p.other==="off"&&p.comments==="off"&&p.strings==="off"}static isAllOn(p){return p.other==="on"&&p.comments==="on"&&p.strings==="on"}static valueFor(p,u){switch(u){case 1:return p.comments;case 2:return p.strings;default:return p.other}}}function Hw(p,u=Wt){if(sR(p,u))return p.charAt(0).toUpperCase()+p.slice(1);return p}var tN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class Bm{constructor(p){this._delegates=p}resolve(p){for(let u of this._delegates){let g=u.resolve(p);if(g!==void 0)return g}return}}class Vm{constructor(p,u,g,v){this._model=p,this._selection=u,this._selectionIdx=g,this._overtypingCapturer=v}resolve(p){let{name:u}=p;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&&p.snippet){let S=this._model.getLineContent(this._selection.startLineNumber),y=St(S,0,this._selection.startColumn-1),D=y;p.snippet.walk((R)=>{if(R===p)return!1;if(R instanceof Ai)D=St(ei(R.value).pop());return!0});let T=ho(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 zm{constructor(p,u){this._labelService=p,this._model=u}resolve(p){let{name:u}=p;if(u==="TM_FILENAME")return wa(this._model.uri.fsPath);else if(u==="TM_FILENAME_BASE"){let g=wa(this._model.uri.fsPath),v=g.lastIndexOf(".");if(v<=0)return g;else return g.slice(0,v)}else if(u==="TM_DIRECTORY"){if(ng(this._model.uri.fsPath)===".")return"";return this._labelService.getUriLabel(bh(this._model.uri))}else if(u==="TM_DIRECTORY_BASE"){if(ng(this._model.uri.fsPath)===".")return"";return wa(ng(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 jm{constructor(p,u,g,v){this._readClipboardText=p,this._selectionIdx=u,this._selectionCount=g,this._spread=v}resolve(p){if(p.name!=="CLIPBOARD")return;let u=this._readClipboardText();if(!u)return;if(this._spread){let g=u.split(/\r\n|\n|\r/).filter((v)=>!c0(v));if(g.length===this._selectionCount)return g[this._selectionIdx]}return u}}var Wu=class p{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,et)],Wu);class ba{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(p){let{name:u}=p;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 ba.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return ba.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return ba.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return ba.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 $m{constructor(p){this._workspaceService=p}resolve(p){if(!this._workspaceService)return;let u=HR(this._workspaceService.getWorkspace());if(jR(u))return;if(p.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(u);else if(p.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(u);return}_resolveWorkspaceName(p){if(Y0(p))return wa(p.uri.path);let u=wa(p.configPath.path);if(u.endsWith(Z0))u=u.substr(0,u.length-Z0.length-1);return u}_resoveWorkspacePath(p){if(Y0(p))return Hw(p.uri.fsPath);let u=wa(p.configPath.path),g=p.configPath.fsPath;if(g.endsWith(u))g=g.substr(0,g.length-u.length-1);return g?Hw(g):"/"}}class gf{resolve(p){let{name:u}=p;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 Da();return}}var oN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Ir;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(p,u,g){this._editor=p,this._snippet=u,this._snippetLineLeadingWhitespace=g,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=zS(u.placeholders,No.compareByIndex),this._placeholderGroupsIdx=-1}initialize(p){this._offset=p.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 p=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(p.getPositionAt(this._offset+v),p.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(p){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(p===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1)this._placeholderGroupsIdx+=1,g=!0;else if(p===!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 Q=this._placeholderDecorations.get(q);if(Q)S.changeDecorationOptions(Q,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(p)}_hasPlaceholderBeenCollapsed(p){let u=this._editor.getModel(),g=p;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[p]=this._snippet.placeholders;if(p.isFinalTabstop){if(this._snippet.rightMostDescendant===p)return!0}}return!1}computePossibleSelections(){let p=new Map;for(let u of this._placeholderGroups){let g;for(let v of u){if(v.isFinalTabstop)break;if(!g)g=[],p.set(v.index,g);let S=this._placeholderDecorations.get(v),y=this._editor.getModel().getDecorationRange(S);if(!y){p.delete(v.index);break}g.push(y)}}return p}get activeChoice(){if(!this._placeholderDecorations)return;let p=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!p?.choice)return;let u=this._placeholderDecorations.get(p);if(!u)return;let g=this._editor.getModel().getDecorationRange(u);if(!g)return;return{range:g,choice:p.choice}}get hasChoice(){let p=!1;return this._snippet.walk((u)=>(p=u instanceof Qa,!p)),p}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(p){let u=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((g)=>{for(let v of this._placeholderGroups[this._placeholderGroupsIdx]){let S=p.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)),Q=g.addDecoration(q,Nn._decor.inactive);this._placeholderDecorations.set(T,Q)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=zS(this._snippet.placeholders,No.compareByIndex)})}_renormalizePlaceholderIndices(){let p=this._snippet.placeholders,u=new Set;for(let S of p)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 p)if(!S.isFinalTabstop)S.index=v.get(S.index);this._nestingLevel=1}}var m1={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Yc=Ir=class p{static adjustWhitespace(u,g,v,S,y){let D=u.getLineContent(g.lineNumber),T=St(D,0,g.column-1),R;return S.walk((K)=>{if(!(K instanceof Ai)||K.parent instanceof Qa)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 Q=q.join(u.getEOL());if(Q!==K.value)K.parent.replace(K,[new Ai(Q)]),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=[],Q=[];if(!u.hasModel())return{edits:q,snippets:Q};let te=u.getModel(),ne=u.invokeWithinContext((Ve)=>Ve.get($s)),re=u.invokeWithinContext((Ve)=>new zm(Ve.get(wl),te)),ae=()=>T,ge=te.getValueInRange(Ir.adjustSelection(te,u.getSelection(),v,0)),ke=te.getValueInRange(Ir.adjustSelection(te,u.getSelection(),0,S)),Ae=te.getLineFirstNonWhitespaceColumn(u.getSelection().positionLineNumber),He=u.getSelections().map((Ve,qe)=>({selection:Ve,idx:qe})).sort((Ve,qe)=>t.compareRangesUsingStarts(Ve.selection,qe.selection));for(let{selection:Ve,idx:qe}of He){let Te=Ir.adjustSelection(te,Ve,v,0),We=Ir.adjustSelection(te,Ve,0,S);if(ge!==te.getValueInRange(Te))Te=Ve;if(ke!==te.getValueInRange(We))We=Ve;let Je=Ve.setStartPosition(Te.startLineNumber,Te.startColumn).setEndPosition(We.endLineNumber,We.endColumn),tt=new Mo().parse(g,!0,y),ot=Je.getStartPosition(),je=Ir.adjustWhitespace(te,ot,D||qe>0&&Ae!==te.getLineFirstNonWhitespaceColumn(Ve.positionLineNumber),tt);tt.resolveVariables(new Bm([re,new jm(ae,qe,He.length,u.getOption(88)==="spread"),new Vm(te,Ve,qe,R),new Wu(te,Ve,K),new ba,new $m(ne),new gf])),q[qe]=Mt.replace(Je,tt.toString()),q[qe].identifier={major:qe,minor:0},q[qe]._isTracked=!0,Q[qe]=new Nn(u,tt,je)}return{edits:q,snippets:Q}}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,Q=new Ad,te=u.invokeWithinContext((Ve)=>new zm(Ve.get(wl),K)),ne=new ba,re=new $m(u.invokeWithinContext((Ve)=>Ve.get($s))),ae=new gf,ge=()=>y,ke=u.getOption(88)==="spread",Ae=g.map((Ve,qe)=>({edit:Ve,idx:qe})).sort((Ve,qe)=>t.compareRangesUsingStarts(Ve.edit.range,qe.edit.range)),He=0;for(let Ve=0;Ve<Ae.length;Ve++){let{edit:{range:qe,template:Te,keepWhitespace:We},idx:Je}=Ae[Ve];if(Ve>0){let at=Ae[Ve-1].edit.range,li=t.fromPositions(at.getEndPosition(),qe.getStartPosition()),vt=new Ai(K.getValueInRange(li));Q.appendChild(vt),He+=vt.value.length}let tt=new Set;Q.walk((at)=>{if(at instanceof Ks)tt.add(at);return!0});let ot=q.parseFragment(Te,Q);Ir.adjustWhitespace(K,qe.getStartPosition(),We!==void 0?!We:S,Q,new Set(ot));let je=O.fromRange(qe,0),nt=new Bm([te,new jm(ge,Je,Ae.length,ke),new Vm(K,je,Je,D),new Wu(K,je,T),ne,re,ae]);Q.walk((at)=>{if(at instanceof Ks&&!tt.has(at))at.resolve(nt);return!0});let _t=Q.toString(),st=_t.slice(He);He=_t.length;let Ct=Mt.replace(qe,st);Ct.identifier={major:Ve,minor:0},Ct._isTracked=!0,R.push(Ct)}return q.ensureFinalTabstop(Q,v,!0),{edits:R,snippets:[new Nn(u,Q,"")]}}constructor(u,g,v=m1,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"?Ir.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Ir.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=m1){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,u]);let{edits:v,snippets:S}=Ir.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}};Yc=Ir=oN([nN(3,et)],Yc);var rN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},xd,f1={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},wi=class p{static{xd=this}static{this.ID="snippetController2"}static get(u){return u.getContribution(xd.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=xd.InSnippetMode.bindTo(S),this._hasNextTabstop=xd.HasNextTabstop.bindTo(S),this._hasPrevTabstop=xd.HasPrevTabstop.bindTo(S),this._inSnippetChoice=xd.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"?f1:{...f1,...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 Yc(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:Q}=this._session;if(!Q||Q.choice.options.length===0)return;let te=K.getValueInRange(Q.range),ne=Boolean(Q.choice.options.find((ae)=>ae.value===te)),re=[];for(let ae=0;ae<Q.choice.options.length;ae++){let ge=Q.choice.options[ae];re.push({kind:13,label:ge.value,insertText:ge.value,sortText:"a".repeat(ae+1),range:Q.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(()=>{p1(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=xd=rN([_f(1,Be),_f(2,j),_f(3,V),_f(4,et)],wi);le(wi.ID,wi,4);var bf=Bt.bindToContribution(wi.get);U(new bf({id:"jumpToNextSnippetPlaceholder",precondition:_.and(wi.InSnippetMode,wi.HasNextTabstop),handler:(p)=>p.next(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:2}}));U(new bf({id:"jumpToPrevSnippetPlaceholder",precondition:_.and(wi.InSnippetMode,wi.HasPrevTabstop),handler:(p)=>p.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 bf({id:"leaveSnippet",precondition:wi.InSnippetMode,handler:(p)=>p.cancel(!0),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));U(new bf({id:"acceptSnippet",precondition:wi.InSnippetMode,handler:(p)=>p.finish()}));class Sf{constructor(p,u){this.leadingLineContent=p,this.characterCountDelta=u}}class ds{constructor(p,u,g,v,S,y,D=Sg.default,T=void 0){if(this.clipboardText=T,this._snippetCompareFn=ds._compareCompletionItems,this._items=p,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(p){if(this._lineContext.leadingLineContent!==p.leadingLineContent||this._lineContext.characterCountDelta!==p.characterCountDelta)this._refilterKind=this._lineContext.characterCountDelta<p.characterCountDelta&&this._filteredItems?2:1,this._lineContext=p}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let p=new Set;for(let[u,g]of this.getItemsByProvider())if(g.length>0&&g[0].container.incomplete)p.add(u);return p}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){if(this._refilterKind!==0)this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let p=[],{leadingLineContent:u,characterCountDelta:g}=this._lineContext,v="",S="",y=this._refilterKind===1?this._items:this._filteredItems,D=[],T=!this._options.filterGraceful||y.length>2000?ic:NR;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 Q=K.position.column-K.editStart.column,te=Q+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=Sr.Default;else{let ne=0;while(ne<Q){let re=v.charCodeAt(ne);if(re===32||re===9)ne+=1;else break}if(ne>=te)K.score=Sr.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(Jv(K.completion.filterText,K.textLabel)===0)K.score=re;else K.score=AR(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),p.push(K.textLabel.length)}this._filteredItems=D.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:p.length?i0(p.length-0.85,p,(R,K)=>R-K):0}}static _compareCompletionItems(p,u){if(p.score[0]>u.score[0])return-1;else if(p.score[0]<u.score[0])return 1;else if(p.distance<u.distance)return-1;else if(p.distance>u.distance)return 1;else if(p.idx<u.idx)return-1;else if(p.idx>u.idx)return 1;else return 0}static _compareCompletionItemsSnippetsDown(p,u){if(p.completion.kind!==u.completion.kind){if(p.completion.kind===28)return 1;else if(u.completion.kind===28)return-1}return ds._compareCompletionItems(p,u)}static _compareCompletionItemsSnippetsUp(p,u){if(p.completion.kind!==u.completion.kind){if(p.completion.kind===28)return-1;else if(u.completion.kind===28)return 1}return ds._compareCompletionItems(p,u)}}var sN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Bu;class Cf{constructor(p){this.name=p}select(p,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 Ww extends Cf{constructor(){super("first")}memorize(p,u,g){}toJSON(){return}fromJSON(){}}class b1 extends Cf{constructor(){super("recentlyUsed");this._cache=new Ti(300,0.66),this._seq=0}memorize(p,u,g){let v=`${p.getLanguageId()}/${g.textLabel}`;this._cache.set(v,{touch:this._seq++,type:g.completion.kind,insertText:g.completion.insertText})}select(p,u,g){if(g.length===0)return 0;let v=p.getLineContent(u.lineNumber).substr(u.column-10,u.column-1);if(/\s$/.test(v))return super.select(p,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=`${p.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(p){this._cache.clear();let u=0;for(let[g,v]of p)v.touch=u,v.type=typeof v.type==="number"?v.type:Jd.fromString(v.type),this._cache.set(g,v);this._seq=this._cache.size}}class v1 extends Cf{constructor(){super("recentlyUsedByPrefix");this._trie=Oh.forStrings(),this._seq=0}memorize(p,u,g){let{word:v}=p.getWordUntilPosition(u),S=`${p.getLanguageId()}/${v}`;this._trie.set(S,{type:g.completion.kind,insertText:g.completion.insertText,touch:this._seq++})}select(p,u,g){let{word:v}=p.getWordUntilPosition(u);if(!v)return super.select(p,u,g);let S=`${p.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(p,u,g)}toJSON(){let p=[];return this._trie.forEach((u,g)=>p.push([g,u])),p.sort((u,g)=>-(u[1].touch-g[1].touch)).forEach((u,g)=>u[1].touch=g),p.slice(0,200)}fromJSON(p){if(this._trie.clear(),p.length>0){this._seq=p[0][1].touch+1;for(let[u,g]of p)g.type=typeof g.type==="number"?g.type:Jd.fromString(g.type),this._trie.set(u,g)}}}var Bw=class p{static{Bu=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",v1],["recentlyUsed",b1],["first",Ww]])}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===vl.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)||Ww;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)}}};Bw=Bu=sN([_1(0,xn),_1(1,X)],Bw);var Qc=Z("ISuggestMemories");fe(Qc,Bw,1);var w1;function xf(p){return w1?.(p)??null}function S1(p){w1=p}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(p,u){if(!u.getOption(134).localityBonus)return On.None;if(!u.hasModel())return On.None;let g=u.getModel(),v=u.getPosition();if(!p.canComputeWordRanges(g.uri))return On.None;let[S]=await new Ko().provideSelectionRanges(g,[v]);if(S.length===0)return On.None;let y=await p.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(o0(q))return 2097152;let Q=zp(q,t.fromPositions(T),t.compareRangesUsingStarts),te=Q>=0?q[Q]:q[Math.max(0,~Q-1)],ne=S.length;for(let re of S){if(!t.containsRange(re.range,te))break;ne-=1}return ne}}}}var aN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},va=function(p,u){return function(g,v){u(g,v,p)}},Vw;class Ma{static shouldAutoTrigger(p){if(!p.hasModel())return!1;let u=p.getModel(),g=p.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(p,u,g){this.leadingLineContent=p.getLineContent(u.lineNumber).substr(0,u.column-1),this.leadingWord=p.getWordUntilPosition(u),this.lineNumber=u.lineNumber,this.column=u.column,this.triggerOptions=g}}function dN(p,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!p.getOption(71).suppressSuggestions}function cN(p,u,g){if(!Boolean(u.getContextKeyValue("inlineSuggestionVisible")))return!0;let v=u.getContextKeyValue(Rt.suppressSuggestions.key);if(v!==void 0)return!v;return!p.getOption(71).suppressSuggestions}var el=Vw=class p{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((Q)=>{if(!q)this._onCursorChange(Q)})),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(Ma.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(sl(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(Os.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(!Ma.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(Os.isAllOff(v))return;let S=!1;if(!Os.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=Os.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(),Q=this._editor.getPosition();if(q===u&&q.getVersionId()===v&&Q?.equals(g)&&this._editor.hasWidgetFocus())this.trigger({auto:!0})};Jn(()=>{R(!0),y.stop("automatic")},750,T),tR(T,(K)=>{if(S.model.read(K)!==y){K.dispose(),R(!1);return}let Q=y.status.read(K),te=y.state.read(K);if(!te&&Q==="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 Ma(u,g,{...this._triggerState,refilter:!0});this._onNewContext(v)}trigger(u){if(!this._editor.hasModel())return;let g=this._editor.getModel(),v=new Ma(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}=Vw.createSuggestFilter(this._editor),K=new yd(D,u.completionOptions?.kindFilter??T,u.completionOptions?.providerFilter,u.completionOptions?.providerItemsToReuse,R),q=On.create(this._editorWorkerService,this._editor),Q=Hu(this._languageFeaturesService.completionProvider,g,this._editor.getPosition(),K,S,this._requestToken.token);Promise.all([Q,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 Ma(ae,this._editor.getPosition(),u),ke={...Sg.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(St(u.leadingLineContent)!==St(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(Ma.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=Ma.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})}}};el=Vw=aN([va(1,fi),va(2,Xn),va(3,kn),va(4,Be),va(5,V),va(6,X),va(7,j),va(8,Eg)],el);var C1=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class y1{constructor(p,u,g,v,S,y,D){this.range=p,this.insertText=u,this.filterText=g,this.additionalTextEdits=v,this.command=S,this.gutterMenuLinkAction=y,this.completion=D,this.doNotLog=!0}}var zw=class p extends WS{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===Sr.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 y1(R,K,T.filterTextLow??T.labelLow,T.completion.additionalTextEdits,T.completion.command,T.completion.action,T)),D-->=0)T.resolve(he.None)}return u}};zw=C1([Vu(5,Qc)],zw);var Kw=class p 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(Os.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(Os.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 Q,te=u.getValueInRange(new t(g.lineNumber,1,g.lineNumber,g.column));if(!q&&this._lastResult?.canBeReused(u,g.lineNumber,K)){let ne=new Sf(te,g.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=ne,this._lastResult.acquire(),Q=this._lastResult}else{let ne=await Hu(this._languageFeatureService.completionProvider,u,g,new yd(void 0,el.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 Sf(te,0),On.None,y.getOption(134),y.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},re);Q=new zw(u,g.lineNumber,K,ae,ne,this._suggestMemoryService)}return this._lastResult=Q,Q}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}}};Kw=C1([Vu(0,j),Vu(1,Xn),Vu(2,Qc),Vu(3,ye)],Kw);Oa(Kw);var lN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};function I1(p){if(p instanceof Uw)return p._instance;return p}class Uw{constructor(p){this.instantiationService=p}init(...p){}}function L1(p){return p.get()}var x1=class p extends Uw{constructor(u,g){super(g);this.init(u)}};x1=lN([hN(1,L)],x1);class Id{validateOrThrow(p){let u=this.validate(p);if(u.error)throw Error(u.error.message);return u.content}}class zu extends Id{constructor(p){super();this.type=p}validate(p){if(typeof p!==this.type)return{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof p}`}};return{content:p,error:void 0}}getJSONSchema(){return{type:this.type}}}var uN=new zu("string");function k1(){return uN}new zu("number");var gN=new zu("boolean");function qw(){return gN}new zu("object");class E1 extends Id{validate(p){return{content:p,error:void 0}}getJSONSchema(){return{}}}function D1(){return new E1}class jw extends Id{validate(p){if(p!==void 0)return{content:void 0,error:{message:`Expected undefined, but got ${typeof p}`}};return{content:void 0,error:void 0}}getJSONSchema(){return{}}}function T1(){return new jw}class If{constructor(p){this.validator=p}}function Ku(p){return new If(p)}class R1 extends Id{constructor(p){super();this.properties=p}validate(p){if(typeof p!=="object"||p===null)return{content:void 0,error:{message:"Expected object"}};let u={};for(let g in this.properties){let v=this.properties[g],S=p[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 p=[],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)p.push(v)}return{type:"object",properties:u,...p.length>0?{required:p}:{}}}}function N1(p){return new R1(p)}class M1 extends Id{constructor(p){super();this.validators=p}validate(p){let u;for(let g of this.validators){let{content:v,error:S}=g.validate(p);if(!S)return{content:v,error:void 0};u=S}return{content:void 0,error:u}}getJSONSchema(){return{oneOf:zI(this.validators,(p)=>{if(p instanceof jw)return;return p.getJSONSchema()})}}}function O1(...p){return new M1(p)}class P1 extends Id{constructor(p,u){super();this._ref=p,this._validator=u}validate(p){return this._validator.validate(p)}getJSONSchema(){return{$ref:this._ref}}}function A1(p,u){return new P1(p,u)}var pN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},F1=function(p,u){return function(g,v){u(g,v,p)}};function H1(p){return p.sourceId+" @@ "+JSON.stringify({...p,modelUri:p.modelUri?.toString(),sourceId:void 0})}var tl=class p 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}};tl=pN([F1(1,V),F1(2,$g)],tl);function mN(p,u){return Le(u.onDidChangeContext,()=>u.getContextKeyValue(p))}var fN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},W1=function(p,u){return function(g,v){u(g,v,p)}},Lf=class p extends n{constructor(u,g,v){super();this._editor=u,this._instantiationService=g,this._loggerService=v,this._structuredLogger=this._register(this._instantiationService.createInstance(tl.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(!KS(y.read(D),Fi.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 bl))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([W1(1,L),W1(2,g0)],Lf);function Ld(p){return new B1(p)}class B1 extends ry{constructor(p){super();this._textModel=p}getOffset(p){return this._textModel.getOffsetAt(p)}getPosition(p){return this._textModel.getPositionAt(p)}}var _N=[];function V1(){return _N}function $w(p){return bN(p).map((g)=>g.getEndPosition())}function bN(p){let u=Uv.createSortPermutation(p,Cn((S)=>S.range,t.compareRangesUsingStarts)),v=new go(u.apply(p)).getNewRanges();return u.inverse().apply(v)}function z1(p,u){let g=Ld(u),v=u.getValue();return p.map((D)=>g.getStringReplacement(D)).map((D)=>D.removeCommonSuffixPrefix(v)).map((D)=>g.getTextReplacement(D))}function K1(p,u){let g=M("result",[]),v=[];return u.add(H((S)=>{let y=p.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 Gw{constructor(p){this._contextKeyService=p}bind(p,u){return zr(p,this._contextKeyService,u instanceof Function?u:(g)=>u.read(g))}}function Zw(p,u){return new Promise((g)=>{let v=void 0,S=setTimeout(()=>{if(v)v.dispose();g()},p);if(u)v=u.onCancellationRequested(()=>{if(clearTimeout(S),v)v.dispose();g()})})}class ol{static message(p){return new ol(void 0,p)}constructor(p,u=void 0){this.error=p,this.message=u}static is(p){return p instanceof ol}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(p,u,g,v=U1){return new kf(p,u,g,Date.now(),v)}constructor(p,u,g,v,S=U1){if(this.startValue=p,this.endValue=u,this.durationMs=g,this.startTimeMs=v,this._interpolationFunction=S,p===u)this.durationMs=0}isFinished(p){return p>=this.startTimeMs+this.durationMs}getValue(p){let u=p-this.startTimeMs;if(u>=this.durationMs)return this.endValue;return this._interpolationFunction(u,this.startValue,this.endValue-this.startValue,this.durationMs)}}function U1(p,u,g,v){return p===v?u+g:g*(-Math.pow(2,-10*p/v)+1)+u}function q1(p,u,g,v){return g*((p=p/v-1)*p*p+1)+u}class Xw{constructor(p){this._value=p}getValue(p){let u=Date.now();if(!this._value.isFinished(u))Zm.instance.invalidateOnNextAnimationFrame(p);return this._value.getValue(u)}isFinished(p){let u=Date.now(),g=this._value.isFinished(u);if(!g)Zm.instance.invalidateOnNextAnimationFrame(p);return g}}class Zm{constructor(){this._counter=Pi(this),this._isScheduled=!1}static{this.instance=new Zm}invalidateOnNextAnimationFrame(p){if(this._counter.read(p),!this._isScheduled)this._isScheduled=!0,Me().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()})}_update(){this._counter.trigger(void 0)}}class Ps{constructor(p,u){this.lineNumber=p,this.parts=u,ys(()=>Dc(u,(g,v)=>g.column<=v.column))}equals(p){return this.lineNumber===p.lineNumber&&this.parts.length===p.parts.length&&this.parts.every((u,g)=>u.equals(p.parts[g]))}renderForScreenReader(p){if(this.parts.length===0)return"";let u=this.parts[this.parts.length-1],g=p.substr(0,u.column-1);return new go([...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((p)=>p.lines.length===0)}get lineCount(){return 1+this.parts.reduce((p,u)=>p+u.lines.length-1,0)}}class kd{constructor(p,u,g,v=[]){this.column=p,this.text=u,this.preview=g,this._inlineDecorations=v,this.lines=ei(this.text).map((S,y)=>({line:S,lineDecorations:Ri.filter(this._inlineDecorations,y+1,1,S.length+1)}))}equals(p){return this.column===p.column&&this.lines.length===p.lines.length&&this.lines.every((u,g)=>u.line===p.lines[g].line&&Ri.equalsArr(u.lineDecorations,p.lines[g].lineDecorations))}}class Uu{constructor(p,u,g,v=0){this.lineNumber=p,this.columnRange=u,this.text=g,this.additionalReservedLineCount=v,this.parts=[new kd(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=ei(this.text)}renderForScreenReader(p){return this.newLines.join(`
|
|
35
|
+
`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((p)=>p.lines.length===0)}equals(p){return this.lineNumber===p.lineNumber&&this.columnRange.equals(p.columnRange)&&this.newLines.length===p.newLines.length&&this.newLines.every((u,g)=>u===p.newLines[g])&&this.additionalReservedLineCount===p.additionalReservedLineCount}}function Yw(p,u){return Ke(p,u,Jw)}function Jw(p,u){if(p===u)return!0;if(!p||!u)return!1;if(p instanceof Ps&&u instanceof Ps)return p.equals(u);if(p instanceof Uu&&u instanceof Uu)return p.equals(u);return!1}function Qo(p,u,g){let v=g?p.range.intersectRanges(g):p.range;if(!v)return p;let S=p.text.replaceAll(`\r
|
|
36
|
+
`,`
|
|
37
|
+
`),y=u.getValueInRange(v,1),D=ho(y,S),T=Nt.ofText(y.substring(0,D)).addToPosition(p.range.getStartPosition()),R=S.substring(D),K=t.fromPositions(T,p.range.getEndPosition());return new ct(K,R)}function Ef(p,u){return p.text.startsWith(u.text)&&vN(p.range,u.range)}function vN(p,u){return u.getStartPosition().equals(p.getStartPosition())&&u.getEndPosition().isBeforeOrEqual(p.getEndPosition())}function Qw(p,u,g,v,S=0){let y=Qo(p,u);if(y.range.endLineNumber!==y.range.startLineNumber)return;let D=u.getLineContent(y.range.startLineNumber),T=St(D).length;if(y.range.startColumn-1<=T){let re=St(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),Ve=y.text.startsWith(ae)?y.text.substring(ae.length):y.text.substring(re);y=new ct(He,Ve)}let K=u.getValueInRange(y.range),q=wN(K,y.text);if(!q)return;let Q=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 kd(ae,Ae,!1));if(He.length>0)te.push(new kd(ae,He,!0))}return new Ps(Q,te)}var Df=void 0;function wN(p,u){if(Df?.originalValue===p&&Df?.newValue===u)return Df?.changes;else{let g=$1(p,u,!0);if(g){let v=j1(g);if(v>0){let S=$1(p,u,!1);if(S&&j1(S)<v)g=S}}return Df={originalValue:p,newValue:u,changes:g},g}}function j1(p){let u=0;for(let g of p)u+=g.originalLength;return u}function $1(p,u,g){if(p.length>5000||u.length>5000)return;function v(K){let q=0;for(let Q=0,te=K.length;Q<te;Q++){let ne=K.charCodeAt(Q);if(ne>q)q=ne}return q}let S=Math.max(v(p),v(u));function y(K){if(K<0)throw Error("unexpected");return S+K+1}function D(K){let q=0,Q=0,te=new Int32Array(K.length);for(let ne=0,re=K.length;ne<re;ne++)if(g&&K[ne]==="("){let ae=Q*100+q;te[ne]=y(2*ae),q++}else if(g&&K[ne]===")"){q=Math.max(q-1,0);let ae=Q*100+q;if(te[ne]=y(2*ae+1),q===0)Q++}else te[ne]=K.charCodeAt(ne);return te}let T=D(p),R=D(u);return new ks({getElements:()=>T},{getElements:()=>R}).ComputeDiff(!1).changes}function G1(p,u){let g=void 0,v=!1,S=new Xv(new Yn(p,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.");Gl(D,(R)=>{g=y,S.setValue(y,R,T)})},At.ofCaller());return S}var SN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class X1{constructor(p,u){this._baseService=p,this._intercept=u}publicLog2(p,u){this._intercept(p,u),this._baseService.publicLog2(p,u)}}var Tf=class p extends X1{constructor(u,g){super(u,(v,S)=>{let y=!0;if(S&&eS in S)y=Boolean(S[eS]);if(y)g.getDataChannel("editTelemetry").sendData({eventName:v,data:S??{}})})}};Tf=SN([Z1(0,kn),Z1(1,$g)],Tf);var eS=Symbol("shouldForwardToChannel");function Y1(p){return{[eS]:p}}function tS(p){if(!p)return!1;let u=p.toLowerCase();return u==="github.copilot"||u==="github.copilot-chat"}function J1(p,u){p.publicLog2("inlineCompletion.endOfLife",u)}var CN=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function yN(p){return CN.has(p)}function xN(p){return/[a-zA-Z0-9_]/.test(p)}function IN(p){return p===" "||p==="\t"}function Rf(p){let u=p.split(/\r\n|\r|\n/);if(u.length>1)return{kind:"multiLine",lineCount:u.length};let g=p.length===1,v;if(g){if(yN(p))v="syntactical";else if(xN(p))v="identifier";else if(IN(p))v="whitespace"}let S=p.match(/[ \t]+/g)||[],y=S.some((q)=>q.length>1),D=S.some((q)=>q.includes(" ")||q.includes("\t\t")),T=p.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 Q1{constructor(p){this.edits=p}toString(){return JSON.stringify({edits:this.edits})}}function oS(p,u,g){if(p.replacements.length===0)return;return new Q1(p.replacements.map((v)=>LN(v,u)))}function iS(p){if(p.length===0)return 0;return p.split(/\r\n|\r|\n/).length-1}function LN(p,u,g){let{replaceRange:v,newText:S}=p,y=v.length,D=S.length,T=iS(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:iS(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:iS(K)}}}}function kN(p,u,g,v){let S=Rf(u),y=g.getPositionAt(p),D=g.getLineContent(y.lineNumber),T=D.length,R,K=D.trim().length===0,q=y.column>T,Q=y.column===1;if(K)R="emptyLine";else if(q)R="endOfLine";else if(Q)R="startOfLine";else R="middleOfLine";let te;return{textShape:S,locationShape:R,relativeToCursor:te}}function EN(p,u,g){let v=g.getValue().substring(p,u),S=Rf(v),y=g.getPositionAt(p),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(p,u){let g=Rf(p),v=Rf(u),S=g.kind==="singleLine"&&g.isWord,y=v.kind==="singleLine"&&v.isWord,D=S&&y,T=u.length>p.length,R=u.length<p.length,K=g.kind==="singleLine"&&v.kind==="singleLine",q=g.kind==="singleLine"&&v.kind==="multiLine",Q=g.kind==="multiLine"&&v.kind==="singleLine";return{isWordToWordReplacement:D,isAdditive:T,isSubtractive:R,isSingleLineToSingleLine:K,isSingleLineToMultiLine:q,isMultiLineToSingleLine:Q}}function Nf(p,u,g,v){let S=Qo(p,g),y=p.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),Q=D.substring(0,R),te=D.substring(R),ne=g.getLineIndentColumn(S.range.startLineNumber);if(S.range.startColumn<=ne){if(Q=Q.trimStart(),Q.length===0)te=te.trimStart();if(K=K.trimStart(),K.length===0)q=q.trimStart()}return K.startsWith(Q)&&!!tk(te,q)}var Mf;(function(p){function u(g){return g?.command.id??void 0}p.toString=u})(Mf||(Mf={}));class cs extends Zp{static snapshot(p){return new cs(p)}constructor(p){super();this._textModel=p,this._version=p.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(p){return this._textModel.uri.toString()===p.uri.toString()}getValueOfRange(p){return this._assertValid(),this._textModel.getValueInRange(p)}getLineLength(p){return this._assertValid(),this._textModel.getLineLength(p)}get length(){this._assertValid();let p=this._textModel.getLineCount(),u=this._textModel.getLineLength(p);return new Nt(p-1,u)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(p){return this._assertValid(),this._textModel.getPositionAt(p)}getValueInRange(p){return this._assertValid(),this._textModel.getValueInRange(p)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var ll;(function(p){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)}p.create=u})(ll||(ll={}));function TN(p){let u=p?.kind==="edit"?{...p,alternativeAction:Mf.toString(p.alternativeAction),target:p?.target.uri.toString()}:{...p,target:p?.target.uri.toString()};return JSON.stringify(u)}class nS{constructor(p,u,g,v){this._data=p,this.identity=u,this.hint=g,this.originalTextRef=v}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===Fo.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(p,u,g,v,S){let y=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(p,y,u,g,this.computeEditKind(v),S)}reportPartialAccept(p,u,g){this._data.reportPartialAccept(p,u,g)}reportEndOfLife(p){this._data.reportEndOfLife(p)}setEndOfLifeReason(p){this._data.setEndOfLifeReason(p)}setIsPreceeded(p){this._data.setIsPreceeded(p.partialAccepts)}setNotShownReasonIfNotSet(p){this._data.setNotShownReason(p)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(p){this._data.setRenameProcessingInfo(p)}withAction(p){return this._data.withAction(p)}addPerformanceMarker(p){this._data.addPerformanceMarker(p)}}class Pf{constructor(){this._onDispose=Pi(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(p){this._jumpedTo.set(!0,p)}}class $u{static create(p){return new $u(t.lift(p.range),p.content,p.style)}constructor(p,u,g){this.range=p,this.content=u,this.style=g}withEdit(p,u){let g=new B(u.getOffset(this.range.getStartPosition()),u.getOffset(this.range.getEndPosition())),v=JS([g],p)[0];if(!v)return;let S=u.getRange(v);return new $u(S,this.content,this.style)}}class qu extends nS{static create(p,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=p.hint?$u.create(p.hint):void 0;return new qu(D,T,R,R.range,g.snippetInfo,p.additionalTextEdits,p,v,K,u)}constructor(p,u,g,v,S,y,D,T,R,K){super(D,T,R,K);this._edit=p,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 to([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(p){return new qu(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,p,this.hint,this.originalTextRef)}withEdit(p,u){if(!this.originalTextRef.targets(u))return this;let g=JS([this._edit.replaceRange],p);if(g.length===0)return;let v=new qn(g[0],this._textEdit.text),S=Ld(u),y=S.getTextReplacement(v),D=this.hint;if(D){if(D=D.withEdit(p,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(p,u){let g=this._textEdit.range;return!!g&&g.containsPosition(u)&&this.isVisible(p,u)&&Nt.ofRange(g).isGreaterThanOrEqualTo(Nt.ofRange(this._originalRange))}isVisible(p,u){let g=this.getSingleTextEdit();return Nf(g,this._originalRange,p,u)}computeEditKind(p){return oS(new to([this._edit]),p)}get editRange(){return this.getSingleTextEdit().range}}class ju extends nS{static create(p,u,g=!0){let v,S=[];if(p.action?.kind==="edit"){let T=g?RN(u,p.action.range,p.action.insertText):NN(u,p.action.range,p.action.insertText),R=go.fromStringEdit(T,u),K=T.isEmpty()?new ct(new t(1,1,1,1),""):R.toReplacement(u);S=T.replacements.map((q)=>{let Q=t.fromPositions(u.getPositionAt(q.replaceRange.start),u.getTransformer().getPosition(q.replaceRange.endExclusive)),te=u.getValueInRange(Q);return Of.create(q,te)}),v={kind:"edit",snippetInfo:p.action.snippetInfo,stringEdit:T,textReplacement:K,alternativeAction:p.action.alternativeAction,target:u}}else if(p.action?.kind==="jumpTo")v={kind:"jumpTo",position:p.action.position,offset:u.getTransformer().getOffset(p.action.position),target:u};else if(v=void 0,!p.hint)throw new P("InlineEditItem: action is undefined and no hint is provided");let y=new Pf,D=p.hint?$u.create(p.hint):void 0;return new ju(v,p,y,S,D,!1,u.getVersionId(),u)}constructor(p,u,g,v,S,y=!1,D,T){super(u,g,S,T);this._action=p,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(p){return new ju(this._action,this._data,p,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(p,u){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===p.getVersionId()}withEdit(p,u){if(!this.originalTextRef.targets(u))return this;return this._applyTextModelChanges(p,this._edits,u)}_applyTextModelChanges(p,u,g){let v=Ld(g),S=!1,y=this._inlineEditModelVersion,D,T=cs.snapshot(g);if(this.action?.kind==="edit"){if(u=u.map((te)=>te.applyTextModelChanges(p)),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 to(u.map((te)=>te.edit));D={kind:"edit",textReplacement:v.getTextEdit(q).toReplacement(new pu(g)),snippetInfo:this.snippetInfo,stringEdit:q,alternativeAction:this.action.alternativeAction,target:T}}else if(this.action?.kind==="jumpTo"){let K=this.action.offset,q=p.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(p,v),!R)return}return new ju(D,this._data,this.identity,u,R,S,y,T)}computeEditKind(p){let u=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(!u)return;return oS(u,p)}}function RN(p,u,g){let v=p.getEOL(),S=p.getValueOfRange(u),y=g.replace(/\r\n|\r|\n/g,v),R=Xp.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 Ta(y);return new to(R.map((te)=>{let ne=K(u.getStartPosition(),te.originalRange),re=p.getTransformer().getOffsetRange(ne),ae=q.getValueOfRange(te.modifiedRange),ge=new qn(re,ae),ke=p.getValueOfRange(ne);return ON(ge,ke,R.length,p)}))}function NN(p,u,g){return new to([new qn(p.getTransformer().getOffsetRange(u),g)])}class Of{static create(p,u){let g=ho(p.newText,u),v=ns(p.newText,u),S=p.newText.substring(g,p.newText.length-v);return new Of(p,S,g,v)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(p,u,g,v,S=!1){this._edit=p,this._trimmedNewText=u,this._prefixLength=g,this._suffixLength=v,this._lastChangeUpdatedEdit=S}applyTextModelChanges(p){let u=this._clone();return u._applyTextModelChanges(p),u}_clone(){return new Of(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(p){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new P("UpdatedInnerEdits: No edit to apply changes to");let u=this._applyChanges(this._edit,p);if(!u){this._edit=void 0;return}this._edit=u.edit,this._lastChangeUpdatedEdit=u.editHasChanged}_applyChanges(p,u){let g=p.replaceRange.start,v=p.replaceRange.endExclusive,S=p.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(p)){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(p,u){let g=u.getEOL();if(p.replaceRange.isEmpty&&p.newText.includes(g))p=eE(p,u);return p}function ON(p,u,g,v){let S=v.getEOL();if(p.newText.endsWith(S)&&u.endsWith(S))p=new qn(p.replaceRange.deltaEnd(-S.length),p.newText.slice(0,-S.length));if(g===1&&p.replaceRange.isEmpty&&p.newText.includes(S)){let y=v.getTransformer().getPosition(p.replaceRange.start);if(v.getLineLength(y.lineNumber)!==0)p=eE(p,v)}if(g===1){let y=ho(u,p.newText),D=ns(u.slice(y),p.newText.slice(y));if(y+D===u.length)return new qn(p.replaceRange.deltaStart(y).deltaEnd(-D),p.newText.substring(y,p.newText.length-D));if(y+D===p.newText.length)return new qn(p.replaceRange.deltaStart(y).deltaEnd(-D),"")}return p}function eE(p,u){if(!p.replaceRange.isEmpty)throw new P("Unexpected original range");if(p.replaceRange.start===0)return p;let g=u.getEOL(),v=u.getTransformer().getPosition(p.replaceRange.start),{column:S,lineNumber:y}=v;if(S===1&&y>1&&p.newText.endsWith(g)&&!p.newText.startsWith(g))return new qn(p.replaceRange.delta(-1),g+p.newText.slice(0,-g.length));return p}function tE(p,u){let g=new by,v=new yy(g,(K)=>u.getLanguageConfiguration(K)),S=new vy(new iE([p]),v),y=wy(S,[],void 0,!0),D="",T=p.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(Cg(q),Cg(tn(q,K.length)));else if(K.kind===4)for(let Q of K.children)R(Q,q),q=tn(q,Q.length)}return R(y,Ui),D}class iE{constructor(p){this.lines=p,this.tokenization={getLineTokens:(u)=>this.lines[u-1]}}getLineCount(){return this.lines.length}getLineLength(p){return this.lines[p-1].getLineContent().length}}var di;(function(p){p.Jump="jump",p.Accept="accept",p.Inactive="inactive"})(di||(di={}));class qo{static create(p,u=!1){return new qo(new Vn(F(p),p),u)}constructor(p,u=!1){this.event=p,this.alternativeAction=u}}var ht;(function(p){p.GhostText="ghostText",p.Custom="custom",p.SideBySide="sideBySide",p.Deletion="deletion",p.InsertionInline="insertionInline",p.InsertionMultiLine="insertionMultiLine",p.WordReplacements="wordReplacements",p.LineReplacement="lineReplacement",p.Collapsed="collapsed",p.JumpTo="jumpTo"})(ht||(ht={}));class ml{constructor(p,u,g,v,S,y,D,T){this.cursorColumnDistance=p,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(p,u){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(u-p)}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(p,u){let g=new Af;for(let v of p)g._nodes.add(v);for(let v of p){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 p=[],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))p.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:p}}getOutgoing(p){let u=this._outgoingEdges.get(p);return u?Array.from(u):[]}}function nE(p,u,g,v,S,y){let D=E0("icr"),T=new Oe,R=void 0,K={...v,requestUuid:D},q=AN(u,g),Q=LR(p,(ke)=>ke.groupId),te=Af.from(p,(ke)=>ke.yieldsToGroupIds?.flatMap((Ae)=>Q.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 rg(async(ke)=>{try{if(re++,T.token.isCancellationRequested)return;let Ae=te.getOutgoing(ke);for(let Je of Ae){let tt=await ae.get(Je);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,Ve=Date.now();try{He=await ke.provideInlineCompletions(g,u,K,T.token)}catch(Je){dt(Je);return}let qe=Date.now();if(!He)return;let Te=[],We=new aE(He,Te,ke);if(We.addRef(),rS(T.token,()=>We.removeRef(R)),T.token.isCancellationRequested)return;for(let Je of He.items){let tt=PN(Je,We,q,g,y,K,S,{startTime:Ve,endTime:qe});if(ol.is(tt)){tt.logError();continue}Te.push(tt)}return We}finally{re--}}),ge=Fn.fromPromisesResolveOrder(p.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 rS(p,u){if(p.isCancellationRequested)return u(),n.None;else{let g=p.onCancellationRequested(()=>{g.dispose(),u()});return{dispose:()=>g.dispose()}}}function PN(p,u,g,v,S,y,D,T){let R,K=p.uri?W.revive(p.uri):void 0;if(p.jumpToPosition!==void 0)R={kind:"jumpTo",position:r.lift(p.jumpToPosition),uri:K};else if(p.insertText!==void 0){let q,Q,te=p.range?t.lift(p.range):g;if(typeof p.insertText==="string"){if(q=p.insertText,S&&p.completeBracketPairs){q=oE(q,te.getStartPosition(),v,S);let ne=q.length-p.insertText.length;if(ne!==0)te=new t(te.startLineNumber,te.startColumn,te.endLineNumber,te.endColumn+ne)}Q=void 0}else if("snippet"in p.insertText){let ne=p.insertText.snippet.length;if(S&&p.completeBracketPairs){p.insertText.snippet=oE(p.insertText.snippet,te.getStartPosition(),v,S);let ae=p.insertText.snippet.length-ne;if(ae!==0)te=new t(te.startLineNumber,te.startColumn,te.endLineNumber,te.endColumn+ae)}let re=new Mo().parse(p.insertText.snippet);if(re.children.length===1&&re.children[0]instanceof Ai)q=re.children[0].value,Q=void 0;else q=re.toString(),Q={snippet:p.insertText.snippet,range:te}}else nl(p.insertText);R={kind:"edit",range:te,insertText:q,snippetInfo:Q,uri:K,alternativeAction:void 0}}else if(R=void 0,!p.hint)return ol.message("Inline completion has no insertText, jumpToPosition nor hint.");return new rE(R,p.hint,p.additionalTextEdits||V1(),p,u,y,p.isInlineEdit??!1,p.supportsRename??!1,D,T,p.correlationId)}class rE{get action(){return this._action}constructor(p,u,g,v,S,y,D,T,R,K,q){this._action=p,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 sE,this._viewData={editorType:R.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(p,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 pf(v.lineCountModified,v.lineCountOriginal,v.characterCountModified,v.characterCountOriginal);if(this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,u,D),this.sourceInlineCompletion.shownCommand)await p.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(p,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,p,u)}reportEndOfLife(p){if(this._didReportEndOfLife)return;if(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),!p)p=this._lastSetEndOfLifeReason??{kind:xa.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(p.kind===xa.Rejected&&!this._didShow)p={kind:xa.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(p.kind===xa.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,p,u)}}setIsPreceeded(p){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=p}setNotShownReason(p){this._notShownReason??=p}setEndOfLifeReason(p){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=p}updateShownDuration(p){let u=Date.now();if(!this._showStartTime)this._showStartTime=u;let g=p===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 p=Date.now();if(this._shownDuration+=p-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime===void 0)return;this._showUncollapsedDuration+=p-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0}setRenameProcessingInfo(p){if(this._renameInfo)throw new P("Rename info has already been set.");this._renameInfo=p}withAction(p){return this._action=p,this}addPerformanceMarker(p){this.performance.mark(p)}}class sE{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(p){this.markers.push({name:p,timeStamp:Date.now()})}toString(){let p=[];for(let u=1;u<this.markers.length;u++){let g=this.markers[u].timeStamp-this.markers[u-1].timeStamp;p.push({[this.markers[u].name]:g})}return JSON.stringify(p)}}var ci;(function(p){p.TextEditor="textEditor",p.DiffEditor="diffEditor",p.Notebook="notebook"})(ci||(ci={}));class aE{constructor(p,u,g){this.inlineSuggestions=p,this.inlineSuggestionsData=u,this.provider=g,this.refCount=0}addRef(){this.refCount++}removeRef(p={kind:"other"}){if(this.refCount--,this.refCount===0){for(let u of this.inlineSuggestionsData)u.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,p)}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(p,u){let g=u.getWordAtPosition(p),v=u.getLineMaxColumn(p.lineNumber);return g?new t(p.lineNumber,g.startColumn,p.lineNumber,v):t.fromPositions(p,p.with(void 0,v))}function oE(p,u,g,v){let S=g.getLineContent(u.lineNumber),y=qn.replace(new B(u.column-1,S.length),p),T=g.tokenization.tokenizeLinesAt(u.lineNumber,[y.replace(S)])?.[0].sliceZeroCopy(y.getRangeAfterReplace());if(!T)return p;return tE(T,v)}var FN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Ed=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 p{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=Ed.bindTo(y),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new Kt,this._inputWithButton=new dE,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 sS(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(Wc),v=u.getColor(bg);this._domNode.style.backgroundColor=String(u.getColor(yo)??""),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(S0)??"");let S=u.getColor(k0);this._inputWithButton.domNode.style.backgroundColor=String(u.getColor(uy)??""),this._inputWithButton.input.style.backgroundColor=String(u.getColor(uy)??""),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=Ss(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}=Sl.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=ka(this._inputWithButton.domNode),v=ka(this._label),S;if(u===2)S=this._nPxAvailableBelow;else S=this._nPxAvailableAbove;this._renameCandidateListView.layout({height:S-v-g,width:po(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 Q=new ze(q);if(Q.equals(3)||Q.equals(10))Q.stopPropagation(),Q.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 Cs;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 Q=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:Q,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?Up.Invoke:Up.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 al(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=Zr(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 sS{constructor(p,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",p.appendChild(this._listContainer),this._listWidget=sS._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(oc({listInactiveFocusForeground:Xl,listInactiveFocusBackground:Ql}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:p,width:u}){this._availableHeight=p,this._minimumWidth=u}setCandidates(p){this._listWidget.splice(0,0,p);let u=this._pickListHeight(this._listWidget.length),g=this._pickListWidth(p);this._listWidget.layout(u,g),this._listContainer.style.height=`${u}px`,this._listContainer.style.width=`${g}px`,vo(e(1463,"Received {0} rename suggestions",p.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 p=this._listWidget.getSelectedElements()[0];if(p!==void 0)return p.newSymbolName;let u=this._listWidget.getFocusedElements()[0];if(u!==void 0)return u.newSymbolName;return}focusNext(){if(this._listWidget.length===0)return!1;let p=this._listWidget.getFocus();if(p.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;else if(p[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 p=this._listWidget.getFocus();if(p.length===0){this._listWidget.focusLast();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}else if(p[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:p}=Sl.getLayoutInfo({lineHeight:this._lineHeight});return p}_pickListHeight(p){let u=this._candidateViewHeight*p,g=7;return Math.min(u,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(p){let u=Math.ceil(Math.max(...p.map((v)=>v.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+u+10)}static _createListWidget(p,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 Sl(y,g)}renderElement(y,D,T){T.populate(y)}disposeTemplate(y){y.dispose()}};return new io("NewSymbolNameCandidates",p,v,[S],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class dE{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,(p)=>{let u=new ze(p);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??=no(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??=no(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 Sl{static{this._PADDING=2}constructor(p,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=`${Sl._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=no(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),p.appendChild(this._domNode)}populate(p){this._updateIcon(p),this._updateLabel(p)}_updateIcon(p){let u=!!p.tags?.includes(l0.AIGenerated);this._icon.style.display=u?"inherit":"none"}_updateLabel(p){this._label.innerText=p.newSymbolName}static getLayoutInfo({lineHeight:p}){return{totalHeight:p+Sl._PADDING*2}}dispose(){}}var HN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Dd=function(p,u){return function(g,v){u(g,v,p)}},aS;class Gu{constructor(p,u,g){this.model=p,this.position=u,this._providerRenameIdx=0,this._providers=g.ordered(p)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(p){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,p);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(p,u){return this._provideRenameEdits(p,this._providerRenameIdx,[],u)}async _provideRenameEdits(p,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,p,v);if(!y)return this._provideRenameEdits(p,u+1,g.concat(e(1449,"No result.")),v);else if(y.rejectReason)return this._provideRenameEdits(p,u+1,g.concat(y.rejectReason),v);return y}}function cE(p,u){return p.ordered(u).length>0}async function lE(p,u,g,v,S){return new Gu(u,g,p).provideRenameEdits(v,S??he.None)}async function WN(p,u,g,v){let S=new Gu(u,g,p),y=await S.resolveRenameLocation(he.None);if(y?.rejectReason)return{edits:[],rejectReason:y.rejectReason};return S.provideRenameEdits(v,he.None)}var Pa=class p{static{aS=this}static{this.ID="editor.contrib.renameController"}static get(u){return u.getContribution(aS.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 Wr(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 tr)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"||cr(re))Oi.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),Oi.get(this.editor)?.showMessage(y.rejectReason,g);return}if(S.token.isCancellationRequested){u("returning early - cts1 cancelled");return}let D=new Wr(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===Up.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 Q=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),te=await this._renameWidget.getInput(y.range,y.text,Q,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=al(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()}};Pa=aS=HN([Dd(1,L),Dd(2,ut),Dd(3,_l),Dd(4,ss),Dd(5,Be),Dd(6,hg),Dd(7,j)],Pa);class hE 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(p,u){let g=p.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(p,u)}run(p,u){let g=p.get(Be),v=Pa.get(u);if(v)return g.trace("[RenameAction] got controller, running..."),v.run();return g.trace("[RenameAction] returning early - controller missing"),Promise.resolve()}}le(Pa.ID,Pa,4);I(hE);var dS=Bt.bindToContribution(Pa.get);U(new dS({id:"acceptRenameInput",precondition:Ed,handler:(p)=>p.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:o.focus,primary:3}}));U(new dS({id:"acceptRenameInputWithPreview",precondition:_.and(Ed,_.has("config.editor.rename.enablePreview")),handler:(p)=>p.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:o.focus,primary:2051}}));U(new dS({id:"cancelRenameInput",precondition:Ed,handler:(p)=>p.cancelRenameInput(),kbOpts:{weight:199,kbExpr:o.focus,primary:9,secondary:[1033]}}));Ze(class p extends ln{constructor(){super({id:"focusNextRenameSuggestion",title:{...h(1458,"Focus Next Rename Suggestion")},precondition:Ed,keybinding:[{primary:18,weight:199}]})}run(u){let g=u.get(ye).getFocusedCodeEditor();if(!g)return;let v=Pa.get(g);if(!v)return;v.focusNextRenameSuggestion()}});Ze(class p extends ln{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...h(1459,"Focus Previous Rename Suggestion")},precondition:Ed,keybinding:[{primary:16,weight:199}]})}run(u){let g=u.get(ye).getFocusedCodeEditor();if(!g)return;let v=Pa.get(g);if(!v)return;v.focusPreviousRenameSuggestion()}});mo("_executeDocumentRenameProvider",function(p,u,g,...v){let[S]=v;Ie(typeof S==="string");let{renameProvider:y}=p.get(j);return WN(y,u,g,S)});mo("_executePrepareRename",async function(p,u,g){let{renameProvider:v}=p.get(j),y=await new Gu(u,g,v).resolveRenameLocation(he.None);if(y?.rejectReason)throw Error(y.rejectReason);return y});it.as(rr.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:e(1456,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var BN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},As;(function(p){p.no="no",p.yes="yes",p.maybe="maybe"})(As||(As={}));(function(p){function u(g){switch(g){case"no":return p.no;case"yes":return p.yes;case"maybe":return p.maybe;default:return p.no}}p.fromString=u})(As||(As={}));class uE{constructor(){}inferRename(p,u,g,v){let S=new t(u.startLineNumber,1,u.endLineNumber,p.getLineMaxColumn(u.endLineNumber)),y=u.startColumn-S.startColumn,D=S.endColumn-u.endColumn,T=p.getValueInRange(S),R=p.getValueInRange(new t(S.startLineNumber,S.startColumn,S.startLineNumber,S.startColumn+y))+g+p.getValueInRange(new t(S.endLineNumber,S.endColumn-D,S.endLineNumber,S.endColumn)),K=[],q=[],Q=void 0,te=void 0,ne=void 0,re=p.getOffsetAt(S.getStartPosition()),{changes:ae}=new ks(new dg(T),new dg(R)).ComputeDiff(!0);if(ae.length===0)return;let ge=[];for(let He of ae){if(ge.length===0){ge.push(He);continue}let Ve=ge[ge.length-1],qe=He.originalStart-(Ve.originalStart+Ve.originalLength);if(qe>0){let Te=re+Ve.originalStart+Ve.originalLength,We=p.getPositionAt(Te),Je=p.getWordAtPosition(We);if(Je){let tt=p.getOffsetAt(new r(We.lineNumber,Je.startColumn)),ot=p.getOffsetAt(new r(We.lineNumber,Je.endColumn)),je=Te+qe;if(tt<=Te&&je<=ot&&tt<=je&&je<=ot){Ve.originalLength=He.originalStart+He.originalLength-Ve.originalStart,Ve.modifiedLength=He.modifiedStart+He.modifiedLength-Ve.modifiedStart;continue}}}ge.push(He)}let ke=0;for(let He of ge){let Ve=T.substring(He.originalStart,He.originalStart+He.originalLength),qe=R.substring(He.modifiedStart,He.modifiedStart+He.modifiedLength),Te=re+He.originalStart,We=p.getPositionAt(Te),Je=Te+He.originalLength,tt=p.getPositionAt(Je),ot=t.fromPositions(We,tt),je=qe.length-He.originalLength;if(/\s/.test(Ve)){K.push(new ct(ot,qe)),ke+=je;continue}if(Ve.length>0){v.lastIndex=0;let at=v.exec(Ve);if(at===null||at.index!==0||at[0].length!==Ve.length){K.push(new ct(ot,qe)),ke+=je;continue}}if(/\s/.test(qe)){K.push(new ct(ot,qe)),ke+=je;continue}if(qe.length>0){v.lastIndex=0;let at=v.exec(qe);if(at===null||at.index!==0||at[0].length!==qe.length){K.push(new ct(ot,qe)),ke+=je;continue}}let nt=p.getWordAtPosition(We);if(nt===null){K.push(new ct(ot,qe)),ke+=je;continue}let _t=He.originalStart+1,st=He.originalLength===0&&He.modifiedLength>0,Ct;if(st&&_t===nt.endColumn&&nt.endColumn>nt.startColumn)Ct=this.getTokenAtPosition(p,new r(We.lineNumber,nt.startColumn));else Ct=this.getTokenAtPosition(p,We);if(nt.startColumn!==Ct.range.startColumn||nt.endColumn!==Ct.range.endColumn){K.push(new ct(ot,qe)),ke+=je;continue}if(Ct.type===0){let at=p.getValueInRange(Ct.range);if(at.length===0){K.push(new ct(ot,qe)),ke+=je;continue}if(Q===void 0)Q=at;else if(Q!==at){K.push(new ct(ot,qe)),ke+=je;continue}let li=p.getOffsetAt(Ct.range.getStartPosition())-re+ke,vt=p.getOffsetAt(Ct.range.getEndPosition())-re+ke;if(at=R.substring(li,vt+je),at.length===0){K.push(new ct(ot,qe)),ke+=je;continue}if(te===void 0)te=at;else if(te!==at){K.push(new ct(ot,qe)),ke+=je;continue}if(ne===void 0)ne=Ct.range.getStartPosition();if(Q!==void 0&&te!==void 0&&Q.length>0&&te.length>0&&Q!==te)q.push(new ct(Ct.range,te));else q.push(new ct(ot,qe));ke+=je}else K.push(new ct(ot,qe)),ke+=qe.length-He.originalLength}if(Q===void 0||te===void 0||ne===void 0||Q.length===0||te.length===0||Q===te)return;v.lastIndex=0;let Ae=v.exec(Q);if(Ae===null||Ae.index!==0||Ae[0].length!==Q.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:Q,newName:te},others:{edits:K}}}getTokenAtPosition(p,u){p.tokenization.tokenizeIfCheap(u.lineNumber);let g=p.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(p,u){let g=p.getFocusedCodeEditor();if(g===null)return;if(g.getModel()!==u)return;return new Zu(g,u.getVersionId())}constructor(p,u){this.editor=p,this.versionId=u}equals(p){if(p===void 0)return!1;return this.editor===p.editor&&this.versionId===p.versionId}}class gE{constructor(p,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=lE(p.renameProvider,v,y,D,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(v,y,R,D,T)}get requestUuid(){return this._requestUuid}isValid(p){return this._state.equals(Zu.create(p,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;let p=await this.getResult();if(p===void 0||this._cancellationTokenSource.token.isCancellationRequested)return 0;return p.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(p,u,g,v,S){try{let y=await this._commandService.executeCommand("github.copilot.nes.postRename",p.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 Cl(T.file,new ct(K,R.newText??v));D.push(q)}return{edits:D}}catch(y){return{rejectReason:"Rename failed",edits:[]}}}}var Wf=class p 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 uE,this._renameRunnable=void 0,this._register(we.registerCommand(Rv,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(!cE(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:Q,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 XI(this.checkRenamePrecondition(g,u,Q,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 gE(this._languageFeaturesService,this._commandService,g.requestUuid,u,S,Q,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:Rv,title:e(1274,"Rename"),arguments:[Ae,this._renameRunnable]},Ve={label:e(1275,"Rename"),icon:b.replaceAll,command:He,count:this._renameRunnable.getCount()},qe={kind:"edit",range:te[0].range,insertText:te[0].text,snippetInfo:g.snippetInfo,alternativeAction:Ve,uri:u.uri},Te=cs.snapshot(u);return ll.create(g.withAction(qe),Te,!1)}async checkRenamePrecondition(u,g,v,S,y,D){let T={canRename:As.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=As.fromString(R);if(K===As.yes||K===As.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===As.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,et),Il(3,_l),Il(4,Q0),Il(5,ye)],Wf);var VN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},cS,Bf=class p extends n{static{cS=this}static{this._requestId=0}constructor(u,g,v,S,y,D,T,R,K,q,Q){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=Q,this._updateOperation=this._register(new ie),this._state=G1(this,{initial:()=>({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:$o.createEmpty()}),disposeFinal:(te)=>{te.inlineCompletions.dispose(),te.suggestWidgetInlineCompletions.dispose()},changeTracker:IR(()=>({versionId:this._versionId})),update:(te,ne,re)=>{let ae=to.compose(re.changes.map((ge)=>ge.change?D0(ge.change.changes):to.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=rk("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=rk("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(tl.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(H1(u));this._structuredFetchLogger.log(u)}fetch(u,g,v,S,y,D,T){let R=this._cursorPosition.get(),K=new pE(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 Q=!!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((qe)=>qe.providerId),Ve=new mE(v,T,He);try{let qe=this._debounceValue.get(this._textModel),Te=v0(u.map((vt)=>vt.debounceDelayMs),WI(_i))??qe;if(Q||y&&v.triggerKind===Fo.Automatic)await Zw(Te,te.token);if(te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId)return Ve.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;let Je=cS._requestId++;if(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:Je,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=nE(u,this._cursorPosition.get(),this._textModel,v,T,this._languageConfigurationService);rS(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),gi=ll.create(Ot,vi);if($t){let ai=ar(gi.identity.onDispose,()=>{$t?.dispose(),ai.dispose()})}if(Ot.addPerformanceMarker("itemCreated"),_t.push(gi),!gi.isInlineEdit&&!gi.showInlineEditMenu&&v.triggerKind===Fo.Automatic){if(gi.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{...eg(vi,(gi)=>{if(t.isIRange(gi))return t.lift(gi).toString();if(r.isIPosition(gi))return r.lift(gi).toString();if(og.is(gi))return{$commandId:gi.id};return gi}),$providerId:Zt.source.provider.providerId?.toString()}}).filter((Zt)=>Zt!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:Je,durationMs:Date.now()-tt.getTime(),error:Ot,result:bi,time:Date.now(),didAllProvidersReturn:vt})}if(Ve.setRequestUuid(ot.contextWithUuid.requestUuid),nt){if(Ve.setHasProducedSuggestion(),st.length>0&&te.token.isCancellationRequested)st.forEach((vt)=>vt.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"))}else if(te.token.isCancellationRequested)Ve.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{let vt=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");Ve.setNoSuggestionReasonIfNotSet(vt?"completionsQuotaExceeded":"noSuggestion")}let Ct=v.earliestShownDateTime-Date.now();if(Ct>0)await Zw(Ct,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 li=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,li,S)},vt);else this._state.set({inlineCompletions:Ot.inlineCompletions.createStateWithAppliedResults(st,K,this._textModel,li,S),suggestWidgetInlineCompletions:$o.createEmpty()},vt);Ot.inlineCompletions.dispose(),Ot.suggestWidgetInlineCompletions.dispose()})}finally{ae.dispose(),ke(),this._sendInlineCompletionsRequestTelemetry(Ve)}return!0})(),re=new fE(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(!YS(this._completionsEnabled,this._textModel.getLanguageId()))return;if(!u.providers.some((v)=>tS(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(","),...Y1(u.providers.some((v)=>tS(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};J1(this._dataChannelTelemetryService,g)}clearSuggestWidgetInlineCompletions(u){if(this._updateOperation.value?.request.context.selectedSuggestionInfo)this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};Bf=cS=VN([Ll(5,et),Ll(6,Be),Ll(7,X),Ll(8,L),Ll(9,V),Ll(10,gn)],Bf);class pE{constructor(p,u,g,v){this.position=p,this.context=u,this.versionId=g,this.providers=v}satisfies(p){return this.position.equals(p.position)&&VS(this.context.selectedSuggestionInfo,p.context.selectedSuggestionInfo,hh())&&(p.context.triggerKind===Fo.Automatic||this.context.triggerKind===Fo.Explicit)&&this.versionId===p.versionId&&zN(p.providers,this.providers)}}class mE{constructor(p,u,g){this.context=p,this.requestInfo=u,this.providers=g,this.hasProducedSuggestion=!1}setRequestUuid(p){this.requestUuid=p}setNoSuggestionReasonIfNotSet(p){this.noSuggestionReason??=p}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function zN(p,u){return[...p].every((g)=>u.has(g))}class fE{constructor(p,u,g){this.request=p,this.cancellationTokenSource=u,this.promise=g}dispose(){this.cancellationTokenSource.cancel()}}class $o extends n{static createEmpty(){return new $o([],void 0)}constructor(p,u){super();this.inlineCompletions=p,this.request=u;for(let g of this.inlineCompletions)g.addRef();this._register({dispose:()=>{for(let g of this.inlineCompletions)g.removeRef()}})}_findById(p){return this.inlineCompletions.find((u)=>u.identity===p)}_findByHash(p){return this.inlineCompletions.find((u)=>u.hash===p)}createStateWithAppliedEdit(p,u){let g=this.inlineCompletions.map((v)=>v.withEdit(p,u)).filter(Mn);return new $o(g,this.request)}createStateWithAppliedResults(p,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=p.find((q)=>q.hash===R.hash);if(K)p=UN(K,p);else p=[R,...p]}}let D=y?!y.isInlineEdit:p.some((R)=>!R.isInlineEdit&&R.isVisible(g,v)),T=[];for(let R of p){let K=this._findByHash(R.hash),q;if(K&&K!==R)q=R.withIdentity(K.identity),R.setIsPreceeded(K),K.setEndOfLifeReason({kind:xa.Ignored,userTypingDisagreed:!1,supersededBy:R.getSourceCompletion()});else q=R;if(D!==q.isInlineEdit)T.push(q)}return T.sort(Cn((R)=>R.showInlineEditMenu,r0)),T=KN(T,(R)=>R.semanticId),new $o(T,u)}clone(){return new $o(this.inlineCompletions,this.request)}}function KN(p,u){let g=new Set;return p.filter((v)=>{let S=u(v);if(g.has(S))return!1;return g.add(S),!0})}function UN(p,u){let g=u.indexOf(p);if(g>-1)return[p,...u.slice(0,g),...u.slice(g+1)];return u}class Fs 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(p){super();this._textModel=p,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent((u)=>this._updateTypingSpeed(u)))}_updateTypingSpeed(p){let u=Date.now();if(!this._isUserTyping(p)){this._finalizeCurrentSession();return}if(this._currentSession&&u-this._lastChangeTime>Fs.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(p),this._lastChangeTime=u,this._cacheInvalidated=!0}_getActualCharacterCount(p){let u=0;for(let g of p.changes)u+=Math.max(g.text.length,g.rangeLength);return u}_isUserTyping(p){if(!p.detailedReasons||p.detailedReasons.length===0)return!1;for(let u of p.detailedReasons)if(this._isUserTypingReason(u))return!0;return!1}_isUserTypingReason(p){if(p.metadata.isUndoing||p.metadata.isRedoing)return!1;switch(p.metadata.source){case"cursor":{let u=p.metadata.kind;return u==="type"||u==="compositionType"||u==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;if(this._currentSession.endTime-this._currentSession.startTime>=Fs.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0){if(this._typingSessions.push(this._currentSession),this._typingSessions.length>Fs.SESSION_HISTORY_LIMIT)this._typingSessions.shift()}this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){let p={...this._currentSession};if(p.endTime-p.startTime>=Fs.MIN_SESSION_DURATION_MS&&p.characterCount>0){let g=[...this._typingSessions,p];return this._calculateSpeedFromSessions(g)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(p){if(p.length===0)return{averageInterval:0,characterCount:0};let u=[...p].sort((K,q)=>q.endTime-K.endTime),g=Date.now()-Fs.TYPING_SPEED_WINDOW_MS,v=u.filter((K)=>K.endTime>g),S=u.splice(v.length),y=Qm(v.map((K)=>K.characterCount));for(let K=0;K<S.length&&y<Fs.MIN_CHARS_FOR_RELIABLE_SPEED;K++)v.push(S[K]),y+=S[K].characterCount;let D=Qm(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(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Fa=function(p,u){return function(g,v){u(g,v,p)}},Vf=class p extends n{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(u,g,v,S,y,D,T,R,K,q,Q,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=Q,this._accessibilityService=te,this._languageFeaturesService=ne,this._codeEditorService=re,this._inlineCompletionsService=ae,this._isActive=M(this,!1),this._onlyRequestInlineEditsSignal=Pi(this),this._forceUpdateExplicitlySignal=Pi(this),this._noDelaySignal=Pi(this),this._fetchSpecificProviderSignal=Pi(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 hS(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=u0({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(Te,We)=>(We.didUndo=Te.didChange(this._textModelVersionId)&&!!Te.change?.isUndoing,!0)}},(Te,We)=>{let Je=this._textModelVersionId.read(Te);if(Je!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===Je-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&We.didUndo)return this._lastAcceptedInlineCompletionInfo=void 0,!0;return!1}),this._preserveCurrentCompletionReasons=new Set([Hs.Redo,Hs.Undo,Hs.AcceptWord]),this.dontRefetchSignal=Pi(this),this._fetchInlineCompletionsPromise=u0({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Fo.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 Je=Te.change?.detailedReasons??[];We.changeReason=Je.length>0?Je[0].getType():"",We.textChange=!0}else if(Te.didChange(this._forceUpdateExplicitlySignal))We.preserveCurrentCompletion=!0,We.inlineCompletionTriggerKind=Fo.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===Fo.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!==Fo.Explicit){Fe((bi)=>{this._source.clear(bi)});return}let je="";if(We.provider)je+="providerOnDidChange";else if(We.inlineCompletionTriggerKind===Fo.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===Fo.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:We.changeHint};if(st.triggerKind===Fo.Automatic&&We.textChange){if(this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId)st={...st,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit}}let Ct=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,at=We.preserveCurrentCompletion||Ct?.forwardStable?Ct:void 0,li=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,li,_t)}),this._inlineSuggestionItems=mn({owner:this},(Te)=>{let We=this._source.inlineCompletions.read(Te);if(!We)return;let Je=this.primaryPosition.read(Te),tt=void 0,ot=[];for(let je of We.inlineCompletions)if(!je.isInlineEdit){if(je.isVisible(this.textModel,Je))ot.push(je)}else tt=je;if(ot.length!==0)tt=void 0;return{inlineCompletions:ot,inlineEdit:tt}}),this._inlineCompletionItems=mn({owner:this,equalsFn:Xd()},(Te)=>this._inlineSuggestionItems.read(Te)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=d(this,(Te)=>{let We=this._selectedInlineCompletionId.read(Te),Je=this._inlineCompletionItems.read(Te),tt=this._selectedInlineCompletionId===void 0?-1:Je.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),Je=this.selectedInlineCompletionIndex.read(Te);return We[Je]}),this.activeCommands=mn({owner:this,equalsFn:Xd()},(Te)=>this.selectedInlineCompletion.read(Te)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=d(this,(Te)=>{if(this.lastTriggerKind.read(Te)===Fo.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 Yw(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 Je=this._inlineSuggestionItems.read(Te),tt=Je?.inlineEdit;if(tt){if(this._hasVisiblePeekWidgets.read(Te))return;let je=this.primaryPosition.map((Ct)=>Y.fromRangeInclusive(tt.targetRange).addMargin(1,1).contains(Ct.lineNumber)),nt=tt.action?.kind==="edit"?tt.action.stringEdit:void 0,_t=nt?go.fromStringEdit(nt,new pu(this.textModel)).replacements:[],st=(Je.inlineEdit?.command?.id==="vscode.open"||Je.inlineEdit?.command?.id==="_workbench.open")&&Je.inlineEdit?.command.arguments?.length?W.from(Je.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,Ct=nt?nt.edit.text.length-je.text.length:0,at=this._suggestPreviewMode.read(Te),li=this._positions.read(Te),Ot=[st,...lS(this.textModel,li,st)].map((vi,gi)=>({edit:vi,ghostText:vi?Qw(vi,We,at,li[gi],Ct):void 0})).filter(({edit:vi,ghostText:gi})=>vi!==void 0&&gi!==void 0),bi=Ot.map(({edit:vi})=>vi),Zt=Ot.map(({ghostText:vi})=>vi),$t=Zt[0]??new Ps(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,...lS(this.textModel,st,nt)].map((Ot,bi)=>({edit:Ot,ghostText:Ot?Qw(Ot,We,_t,st[bi],0):void 0})).filter(({edit:Ot,ghostText:bi})=>Ot!==void 0&&bi!==void 0),li=at.map(({edit:Ot})=>Ot),vt=at.map(({ghostText:Ot})=>Ot);if(!vt[0])return;return{kind:"ghostText",edits:li,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:Yw},(Te)=>{let We=this.inlineCompletionState.read(Te);if(!We)return;return We.ghostTexts}),this.primaryGhostText=mn({owner:this,equalsFn:Jw},(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 Je=We.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(Te);return(this._inlineEditsShowCollapsedEnabled.read(Te)||!Je)&&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 Je(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(Je(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,yh.defaultChatAgent?.completionsEnablementSetting)),this.lastTriggerKind=this._source.inlineCompletions.map(this,(Te)=>Te?.request?.context.triggerKind),this._editorObs=Xe(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(_E(Te),void 0),this._store)),this._register(ge.onDidChangeDefaultAccount((Te)=>this.sku.set(_E(Te),void 0))),this._typing=this._register(new Fs(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((Te)=>{if(Te)this.stop()}));{let Te=this.textModel.uri.scheme===ee.vscodeNotebookCell,[We]=this._codeEditorService.listDiffEditors().filter((Je)=>Je.getOriginalEditor().getId()===this._editor.getId()||Je.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!We,this.editorType=Te?ci.Notebook:this.isInDiffEditor?ci.DiffEditor:ci.TextEditor}this._register(Qd(this.state,(Te)=>{if(Te&&Te.inlineSuggestion)this._inlineCompletionsService.reportNewCompletion(Te.inlineSuggestion.requestUuid)})),this._register(Qd(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((Je,tt)=>!Je||Je.kind==="inlineEdit"&&!Je.cursorAtInlineEdit.read(tt)).read(Te))this._jumpedToId.set(void 0,void 0)})),this._register(H((Te)=>{let We=this.state.map((Je)=>Je?.inlineSuggestion).read(Te);if(We)We.addPerformanceMarker("activeSuggestion")}));let Ve=this.inlineEditState.map((Te)=>Te?.inlineSuggestion.semanticId);this._register(H((Te)=>{if(Ve.read(Te))this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion}}));let qe=Le(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(u));Kl(this,qe,(Te,We)=>{if(!Te.onDidChangeInlineCompletions)return;We.add(Te.onDidChangeInlineCompletions((Je)=>{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:Je??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 Q=this.textModel.getOptions().tabSize;v=yt.visibleColumnFromColumn(T,q+1,Q)<Q}}return{startsWithIndentation:g,startsWithIndentationLessThanTabSize:v}}_getReason(u){if(u?.isUndoing)return Hs.Undo;if(u?.isRedoing)return Hs.Redo;if(this.isAcceptingPartially)return Hs.AcceptWord;return Hs.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={}){Gl(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){Gl(g,(v)=>{if(u==="explicitCancel"){let S=this.state.get()?.inlineSuggestion;if(S)S.reportEndOfLife({kind:xa.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 uR(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((Q)=>new ct(t.lift(Q.range),Q.text??"")),q=go.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=z1(R,this.textModel);let q=$w(K).map((ne)=>O.fromPositions(ne)),Q=v.additionalTextEdits.map((ne)=>new ct(t.lift(ne.range),ne.text??"")),te=go.fromParallelReplacementsUnsorted([...R,...Q]);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 bE(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:xa.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,Q=v(K,q);if(Q===q.length&&D.parts.length===1){this.accept(u);return}let te=q.substring(0,Q),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,Ve=new ct(Ae,He),qe=[Ve,...lS(this.textModel,ne,Ve)].filter(Mn),Te=$w(qe).map((We)=>O.fromPositions(We));u.edit(go.fromParallelReplacementsUnsorted(qe),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:Q,ratio:Q/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:xa.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([Fa(8,L),Fa(9,Ne),Fa(10,et),Fa(11,Vt),Fa(12,j),Fa(13,ye),Fa(14,Cy),Fa(15,V0)],Vf);var Hs;(function(p){p[p.Undo=0]="Undo",p[p.Redo=1]="Redo",p[p.AcceptWord=2]="AcceptWord",p[p.Other=3]="Other"})(Hs||(Hs={}));function lS(p,u,g){if(u.length===1)return[];let v=new pu(p),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 bE extends n{constructor(p,u,g){super();if(g)this._register({dispose:()=>g()});this._register(Xe(p).setDecorations(Se(u.map((S)=>({range:S,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));let v=new Xw(kf.startNow(1,0,1000,q1));this._register(H((S)=>{let y=v.getValue(S);if(p.getContainerDomNode().style.setProperty("--animation-opacity",y.toString()),v.isFinished(S))this.dispose()}))}}function hS(p,u,g=void 0){let v=u.targetRange;Xe(p).scrollTop.read(g);let S=p.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 _E(p){if(p?.entitlementsData?.access_type_sku&&p?.entitlementsData?.copilot_plan)return{type:p.entitlementsData.access_type_sku,plan:p.entitlementsData.copilot_plan};return}class vE{constructor(p){this.handler=(u)=>this._cb?.(u),this._cb=p}dispose(){this._cb=void 0}}function jN(p,u){let g=new vE(p);return u.add(g),g.handler}var $N=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},uS,Xu=class p{static{uS=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=uS.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=uS=$N([GN(1,V)],Xu);var ZN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},Yu,Td=class p{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}}};Td=Yu=ZN([XN(1,V)],Td);class gS{constructor(p,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(p.onWillType((S)=>{if(this._active&&!u.isFrozen()&&g.state!==0){let y=S.charCodeAt(S.length-1);if(this._active.acceptCharacters.has(y)&&p.getOption(0))v(this._active.item)}}))}_onItem(p){if(!p||!Ln(p.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===p.item)return;let u=new wh;for(let g of p.item.completion.commitCharacters)if(g.length>0)u.add(g.charCodeAt(0));this._active={acceptCharacters:u,item:p}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class zf{static{this._maxSelectionLength=51200}constructor(p,u){this._disposables=new c,this._lastOvertyped=[],this._locked=!1,this._disposables.add(p.onWillType(()=>{if(this._locked||!p.hasModel())return;let g=p.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=p.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(p){if(p>=0&&p<this._lastOvertyped.length)return this._lastOvertyped[p];return}dispose(){this._disposables.dispose()}}var YN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},pS=function(p,u){return function(g,v){u(g,v,p)}},Kf=class p{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 Ei?S.createInstance(Na,R,void 0):void 0;else return R instanceof Ei?S.createInstance(W0,R,{useComma:!1}):void 0};this._leftActions=new $i(this.element,{actionViewItemProvider:T}),this._rightActions=new $i(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([pS(3,L),pS(4,hi),pS(5,V)],Kf);var JN=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},wE=function(p,u){return function(g,v){u(g,v,p)}};function Ju(p){return!!p&&Boolean(p.completion.documentation||p.completion.detail&&p.completion.detail!==p.completion.label)}var Uf=class p{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 Ye(330,0),this.domNode=m(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=m(".body"),this._scrollbar=new $a(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=Wo(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,fo(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(y))}else Xt(this._type),this._type.title="",Vi(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 Ye(u,g);if(!Ye.equals(v,this._size))this._size=v,oR(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([wE(1,De),wE(2,wo)],Uf);class mS{constructor(p,u){this.widget=p,this._editor=u,this.allowEditorOverflow=!0,this._disposables=new c,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new bd,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(p.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(p=!1){if(this._resizable.clearSashHoverState(),this._added)this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0;if(p)this._userSize=void 0,this.widget.clearContents()}placeAtAnchor(p,u){let g=p.getBoundingClientRect();this._anchorBox=g,this._preferAlignAtTop=u,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,u)}_placeAtAnchor(p,u,g){let v=Ss(this.getDomNode().ownerDocument.body),S=this.widget.getLayoutInfo(),y=new Ye(220,2*S.lineHeight),D=p.top,T=function(){let Te=v.width-(p.left+p.width+S.borderWidth+S.horizontalPadding),We=-S.borderWidth+p.left+p.width,Je=new Ye(Te,v.height-p.top-S.borderHeight-S.verticalPadding),tt=Je.with(void 0,p.top+p.height-S.borderHeight-S.verticalPadding);return{top:D,left:We,fit:Te-u.width,maxSizeTop:Je,maxSizeBottom:tt,minSize:y.with(Math.min(Te,y.width))}}(),R=function(){let Te=p.left-S.borderWidth-S.horizontalPadding,We=Math.max(S.horizontalPadding,p.left-u.width-S.borderWidth),Je=new Ye(Te,v.height-p.top-S.borderHeight-S.verticalPadding),tt=Je.with(void 0,p.top+p.height-S.borderHeight-S.verticalPadding);return{top:D,left:We,fit:Te-u.width,maxSizeTop:Je,maxSizeBottom:tt,minSize:y.with(Math.min(Te,y.width))}}(),K=function(){let Te=p.left,We=-S.borderWidth+p.top+p.height,Je=new Ye(p.width-S.borderHeight,v.height-p.top-p.height-S.verticalPadding);return{top:We,left:Te,fit:Je.height-u.height,maxSizeBottom:Je,maxSizeTop:Je,minSize:y.with(Je.width)}}(),q=function(){let Te=p.left,We=new Ye(p.width-S.borderHeight,p.top-S.verticalPadding);return{top:Math.max(S.verticalPadding,p.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=p.top+p.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:Ve}=ne;if(ne===q)He=p.top-ge+S.borderWidth;else if(!ae&&ge>p.height)He=re-ge;let qe=this._editor.getDomNode();if(qe){let Te=qe.getBoundingClientRect();He-=Te.top,Ve-=Te.left}if(this._applyTopLeft({left:Ve,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(p){this._topLeft=p,this._editor.layoutOverlayWidget(this)}}var HS=Z("fileService"),Go;(function(p){p[p.FILE=0]="FILE",p[p.FOLDER=1]="FOLDER",p[p.ROOT_FOLDER=2]="ROOT_FOLDER"})(Go||(Go={}));var QN=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Rd(p,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===ee.data)D=jc.parseMetaData(g).get(jc.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(p,u,g);if(T)y.push(`${qf(T)}-lang-file-icon`)}}return y}function eM(p,u,g){if(!g)return null;let v=null;if(g.scheme===ee.data){let y=jc.parseMetaData(g).get(jc.META_DATA_MIME);if(y)v=u.getLanguageIdByMimeType(y)}else{let S=p.getModel(g);if(S)v=S.getLanguageId()}if(v&&v!==ji)return v;return u.guessLanguageIdByFilepathOrFirstLine(g)}function qf(p){return p.replace(/[\s]/g,"/")}var tM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},fS=function(p,u){return function(g,v){u(g,v,p)}},iM=Lt("suggest-more-info",b.chevronRight,e(1566,"Icon for more information in the suggest widget.")),oM=new class p{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(`^${p._regexRelaxed.source}$`,"i")}extract(u,g){if(u.textLabel.match(p._regexStrict))return g[0]=u.textLabel,!0;if(u.completion.detail&&u.completion.detail.match(p._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=p._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 p{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")),Q=new Jc(K,{supportHighlights:!0,supportIcons:!0});g.add(Q);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:Q,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:Ve,fontVariationSettings:qe}=Ae,Te=ke.get(135)||Ae.fontSize,We=ke.get(136)||Ae.lineHeight,{fontWeight:Je,letterSpacing:tt}=Ae,ot=`${Te}px`,je=`${We}px`,nt=`${tt}px`;v.style.fontSize=ot,v.style.fontWeight=Je,v.style.letterSpacing=nt,T.style.fontFamily=He,T.style.fontFeatureSettings=Ve,T.style.fontVariationSettings=qe,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:cu(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=Rd(this._modelService,this._languageService,W.from({scheme:"fake",path:u.textLabel}),Go.FILE),R=Rd(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=[Rd(this._modelService,this._languageService,W.from({scheme:"fake",path:u.textLabel}),Go.FOLDER),Rd(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(Jd.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=_S(S.detail||""),v.root.classList.add("string-label");else v.parametersLabel.textContent=_S(S.label.detail||""),v.detailsLabel.textContent=_S(S.label.description||""),v.root.classList.remove("string-label");if(this._editor.getOption(134).showInlineDetails)fo(v.detailsLabel);else Vi(v.detailsLabel);if(Ju(u))v.right.classList.add("can-expand-details"),fo(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"),Vi(v.readMore),v.readMore.onmousedown=null,v.readMore.onclick=null}disposeTemplate(u){u.disposables.dispose()}};jf=tM([fS(1,gt),fS(2,pt),fS(3,De)],jf);function _S(p){return p.replace(/\r\n|\r|\n/g,"")}var nM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},kl,Gf=s("editorSuggestWidget.background",yo,e(1545,"Background color of the suggest widget."));s("editorSuggestWidget.border",Sh,e(1546,"Border color of the suggest widget."));var bS=s("editorSuggestWidget.foreground",Qs,e(1547,"Foreground color of the suggest widget.")),SE=s("editorSuggestWidget.selectedForeground",{dark:Xl,light:Xl,hcDark:Gf,hcLight:Gf},e(1548,"Foreground color of the selected entry in the suggest widget."));s("editorSuggestWidget.selectedIconForeground",{dark:lf,light:lf,hcDark:Gf,hcLight:Gf},e(1549,"Icon foreground color of the selected entry in the suggest widget."));var rM=s("editorSuggestWidget.selectedBackground",{dark:Ql,light:Ql,hcDark:bS,hcLight:bS},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",Lh,e(1552,"Color of the match highlights in the suggest widget."));s("editorSuggestWidget.focusHighlightForeground",{dark:dy,light:dy,hcDark:SE,hcLight:SE},e(1553,"Color of the match highlights in the suggest widget when an item is focused."));s("editorSuggestWidgetStatus.foreground",de(bS,0.5),e(1554,"Foreground color of the suggest widget status."));class CE{constructor(p,u){this._service=p,this._key=`suggestWidget.size/${u.getEditorType()}/${u instanceof ro}`}restore(){let p=this._service.get(this._key,0)??"";try{let u=JSON.parse(p);if(Ye.is(u))return Ye.lift(u)}catch{}return}store(p){this._service.store(this._key,JSON.stringify(p),0,1)}reset(){this._service.remove(this._key,0)}}var Zf=class p{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 rl,this._onDidFocus=new rl,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 bd,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new yE(this,u),this._persistedSize=new CE(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 Ye(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 mS(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 Q=y.createInstance(jf,this.editor);this._disposables.add(Q),this._disposables.add(Q.onDidToggleDetails(()=>this.toggleDetails())),this._list=new io("SuggestWidget",this._listElement,{getHeight:(re)=>this.getLayoutInfo().itemHeight,getTemplateId:(re)=>"suggestion"},[Q],{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=Jd.toLabel(re.completion.kind);if(typeof re.completion.label!=="string"){let{detail:Ve,description:qe}=re.completion.label;if(Ve&&qe)ae=e(1558,"{0} {1}, {2}, {3}",ae,Ve,qe,ge);else if(Ve)ae=e(1559,"{0} {1}, {2}",ae,Ve,ge);else if(qe)ae=e(1560,"{0}, {1}, {2}",ae,qe,ge)}else ae=e(1561,"{0}, {1}",ae,ge);if(!re.isResolved||!this._isDetailsVisible())return ae;let{documentation:ke,detail:Ae}=re.completion,He=Zs("{0}{1}",Ae||"",ke?typeof ke==="string"?ke:ke.value:"");return e(1562,"{0}, docs: {1}",ae,He)}}}),this._list.style(oc({listInactiveFocusBackground:rM,listInactiveFocusOutline:sM})),this._status=y.createInstance(Kf,this.element.domNode,yr,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:Vi(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,Vi(this._listElement,this._status.element),fo(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,vo(kl.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=kl.NO_SUGGESTIONS_MESSAGE,Vi(this._listElement,this._status.element),fo(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,vo(kl.NO_SUGGESTIONS_MESSAGE);break;case 3:Vi(this._messageElement),fo(this._listElement,this._status.element),this._show();break;case 4:Vi(this._messageElement),fo(this._listElement,this._status.element),this._show();break;case 5:Vi(this._messageElement),fo(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=ag(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=ag(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=Ss(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 Ye(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()),Q=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),te=q.top+Q.top+Q.height,ne=Math.min(g.height-te-v.verticalPadding,R),re=q.top+Q.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 Ye(T,v.defaultSize.height),this.element.maxSize=new Ye(D,ge),this.element.minSize=new Ye(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,Q=K.textLabel;if(typeof q.label==="string")Q+=q.detail??"";else Q+=(q.label.detail??"")+(q.label.description??"");v=Math.max(v,this._measureContext.measureText(Q).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=ki(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 Ye(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 yE{constructor(p,u){this._widget=p,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:p,width:u}=this._widget.element.size,{borderWidth:g,horizontalPadding:v}=this._widget.getLayoutInfo();return new Ye(u+2*g+v,p+2*g)}afterRender(p){this._widget._afterRender(p)}setPreference(p){if(!this._preferenceLocked)this._preference=p}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(p){this._position=p}}var aM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},vS;class xE{constructor(p,u){if(this._model=p,this._position=u,this._decorationOptions=oe.register({description:"suggest-line-suffix",stickiness:1}),p.getLineMaxColumn(u.lineNumber)!==u.column){let v=p.getOffsetAt(u),S=p.getPositionAt(v+1);p.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((p)=>{p.removeDecoration(this._marker),this._marker=void 0})}delta(p){if(this._model.isDisposed()||this._position.lineNumber!==p.lineNumber)return 0;if(this._marker){let u=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(u.getStartPosition())-this._model.getOffsetAt(p)}else return this._model.getLineMaxColumn(p.lineNumber)-p.column}}var An=class p{static{vS=this}static{this.ID="editor.contrib.suggestController"}static get(u){return u.getContribution(vS.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 IE((Q)=>Q.priority),this._onWillInsertSuggestItem=new i,this._wantsForceRenderingAbove=!1,this.editor=u,this.model=y.createInstance(el,this.editor),this._selectors.register({priority:0,select:(Q,te,ne)=>this._memoryService.select(Q,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 ey(F(u.getDomNode()),()=>{let Q=this._instantiationService.createInstance(Zf,this.editor);this._toDispose.add(Q),this._toDispose.add(Q.onDidSelect((ge)=>this._insertSuggestion(ge,0),this));let te=new gS(this.editor,Q,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(Q.onDidFocus(({item:ge})=>{let ke=this.editor.getPosition(),Ae=ge.editStart.column,He=ke.column,Ve=!0;if(this.editor.getOption(1)==="smart"&&this.model.state===2&&!ge.completion.additionalTextEdits&&!(ge.completion.insertTextRules&4)&&He-Ae===ge.completion.insertText.length)Ve=this.editor.getModel().getValueInRange({startLineNumber:ke.lineNumber,startColumn:Ae,endLineNumber:ke.lineNumber,endColumn:He})!==ge.completion.insertText;ne.set(Ve),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)Q.forceRenderingAbove();return Q})),this._overtypingCapturer=this._toDispose.add(new ey(F(u.getDomNode()),()=>this._toDispose.add(new zf(this.editor,this.model)))),this._alternatives=this._toDispose.add(new ey(F(u.getDomNode()),()=>this._toDispose.add(new Td(this.editor,this._contextKeyService)))),this._toDispose.add(y.createInstance(Xu,u)),this._toDispose.add(this.model.onDidTrigger((Q)=>{this.widget.value.showTriggered(Q.auto,Q.shy?250:50),this._lineSuffix.value=new xE(this.editor.getModel(),Q.position)})),this._toDispose.add(this.model.onDidSuggest((Q)=>{if(Q.triggerOptions.shy)return;let te=-1;for(let re of this._selectors.itemsOrderedByPriorityDesc)if(te=re.select(this.editor.getModel(),this.editor.getPosition(),Q.completionModel.items),te!==-1)break;if(te===-1)te=0;if(this.model.state===0)return;let ne=!1;if(Q.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=Q.triggerOptions.triggerKind!==1;else if(re.selectionMode==="whenQuickSuggestion")ne=Q.triggerOptions.triggerKind===1&&!Q.triggerOptions.refilter}this.widget.value.showSuggestions(Q.completionModel,te,Q.isFrozen,Q.triggerOptions.auto,ne)})),this._toDispose.add(this.model.onDidCancel((Q)=>{if(!Q.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 Q=this.editor.getOption(1);K.set(Q==="on"||Q==="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,Q=-1,te=-1;if(Array.isArray(D.completion.additionalTextEdits)){this.model.cancel();let re=kr.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((Ve)=>{if(Ve.isFlush){R.cancel(),ge.dispose();return}for(let qe of Ve.changes){let Te=t.getEndPosition(qe.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((qe)=>r.isBefore(ae,t.getStartPosition(qe.range))))return!1;if(Ae)this.editor.pushUndoStop();let Ve=kr.capture(this.editor);if(this.editor.executeEdits("suggestController.additionalTextEdits.async",D.completion.additionalTextEdits.map((qe)=>Mt.replaceMove(t.lift(qe.range),qe.text))),Ve.restoreRelativeVerticalPositionOfCursor(this.editor),Ae||!(ke&2))this.editor.pushUndoStop();return!0}).then((Ve)=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",re.elapsed(),Ve),te=Ve===!0?1:Ve===!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:ig.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(()=>{Q=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,Q,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),Q=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:Oc(pi(g.uri)).toString(16),languageId:g.getLanguageId(),fileExtension:lR(g.uri),resolveInfo:!u.provider.resolveCompletionItem?-1:v?1:0,resolveDuration:u.resolveDuration,commandDuration:S,additionalEditsAsync:y,index:D,firstIndex:Q})}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=vS=aM([El(1,Qc),El(2,Ne),El(3,V),El(4,L),El(5,Be),El(6,kn)],An);class IE{constructor(p){this.prioritySelector=p,this._items=[]}register(p){if(this._items.indexOf(p)!==-1)throw Error("Value is already registered");return this._items.push(p),this._items.sort((u,g)=>this.prioritySelector(g)-this.prioritySelector(u)),{dispose:()=>{let u=this._items.indexOf(p);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(p,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,ao=Bt.bindToContribution(An.get);U(new ao({id:"acceptSelectedSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion),handler(p){p.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:yr,title:e(1535,"Insert"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange.toNegated())},{menuId:yr,title:e(1536,"Insert"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("insert"))},{menuId:yr,title:e(1537,"Replace"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("replace"))}]}));U(new ao({id:"acceptAlternativeSelectedSuggestion",precondition:_.and(rt.Visible,o.textInputFocus,rt.HasFocusedSuggestion),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:1027,secondary:[1026]},handler(p){p.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:yr,group:"left",order:2,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("insert")),title:e(1538,"Replace")},{menuId:yr,group:"left",order:2,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("replace")),title:e(1539,"Insert")}]}));we.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");U(new ao({id:"hideSuggestWidget",precondition:rt.Visible,handler:(p)=>p.cancelSuggestWidget(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));U(new ao({id:"selectNextSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(p)=>p.selectNextSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:yr,group:"left",order:0,when:rt.HasFocusedSuggestion.toNegated(),title:e(1540,"Select")}}));U(new ao({id:"selectNextPageSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(p)=>p.selectNextPageSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:12,secondary:[2060]}}));U(new ao({id:"selectLastSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(p)=>p.selectLastSuggestion()}));U(new ao({id:"selectPrevSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(p)=>p.selectPrevSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));U(new ao({id:"selectPrevPageSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(p)=>p.selectPrevPageSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:11,secondary:[2059]}}));U(new ao({id:"selectFirstSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(p)=>p.selectFirstSuggestion()}));U(new ao({id:"focusSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion.negate()),handler:(p)=>p.focusSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));U(new ao({id:"focusAndAcceptSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion.negate()),handler:(p)=>{p.focusSuggestion(),p.acceptSelectedSuggestion(!0,!1)}}));U(new ao({id:"toggleSuggestionDetails",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion),handler:(p)=>p.toggleSuggestionDetails(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:yr,group:"right",order:1,when:_.and(rt.DetailsVisible,rt.CanResolve),title:e(1541,"Show Less")},{menuId:yr,group:"right",order:1,when:_.and(rt.DetailsVisible.toNegated(),rt.CanResolve),title:e(1542,"Show More")}]}));U(new ao({id:"toggleExplainMode",precondition:rt.Visible,handler:(p)=>p.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));U(new ao({id:"toggleSuggestionFocus",precondition:rt.Visible,handler:(p)=>p.toggleSuggestionFocus(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2570,mac:{primary:778}}}));U(new ao({id:"insertBestCompletion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Xu.AtEnd,rt.Visible.toNegated(),Td.OtherSuggestions.toNegated(),wi.InSnippetMode.toNegated()),handler:(p,u)=>{p.triggerSuggestAndAcceptBest(Gt(u)?{fallback:"tab",...u}:{fallback:"tab"})},kbOpts:{weight:Do,primary:2}}));U(new ao({id:"insertNextSuggestion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Td.OtherSuggestions,rt.Visible.toNegated(),wi.InSnippetMode.toNegated()),handler:(p)=>p.acceptNextSuggestion(),kbOpts:{weight:Do,kbExpr:o.textInputFocus,primary:2}}));U(new ao({id:"insertPrevSuggestion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Td.OtherSuggestions,rt.Visible.toNegated(),wi.InSnippetMode.toNegated()),handler:(p)=>p.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(p,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(p,u){An.get(u)?.resetWidgetSize()}});class LE extends n{get selectedItem(){return this._currentSuggestItemInfo}constructor(p,u,g){super();this.editor=p,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(p.onKeyDown((S)=>{if(S.shiftKey&&!this.isShiftKeyPressed)this.isShiftKeyPressed=!0,this.update(this._isActive)})),this._register(p.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(),Q=q?Qo(q,K):void 0;if(!Q)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(Q,Ae);return{index:ge,valid:He,prefixLength:Ae.text.length,suggestItem:ae}}).filter((ae)=>ae&&ae.valid&&ae.prefixLength>0),re=oy(ne,Cn((ae)=>ae.prefixLength,_i));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(p){let u=this.getSuggestItemInfo();if(this._isActive!==p||!dM(this._currentSuggestItemInfo,u))this._isActive=p,this._currentSuggestItemInfo=u,this._onDidSelectedItemChange.fire()}getSuggestItemInfo(){let p=An.get(this.editor);if(!p||!this.isSuggestWidgetVisible)return;let u=p.widget.value.getFocusedItem(),g=this.editor.getPosition(),v=this.editor.getModel();if(!u||!g||!v)return;return Qu.fromSuggestion(p,v,g,u.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){An.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){An.get(this.editor)?.forceRenderingAbove()}}class Qu{static fromSuggestion(p,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)Yc.adjustWhitespace(u,g,!0,R);y=R.toString(),D=!0}let T=p.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(p,u,g,v,S){this.range=p,this.insertText=u,this.completionItemKind=g,this.isSnippetText=v,this.listIncomplete=S}equals(p){return this.range.equalsRange(p.range)&&this.insertText===p.insertText&&this.completionItemKind===p.completionItemKind&&this.isSnippetText===p.isSnippetText}toSelectedSuggestionInfo(){return new Gv(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new ct(this.range,this.insertText)}}function dM(p,u){if(p===u)return!0;if(!p||!u)return!1;return p.equals(u)}class wS extends n{constructor(p,u,g){super();this._editorObs=p,this._handleSuggestAccepted=u,this._suggestControllerPreselector=g,this._suggestWidgetAdaptor=this._register(new LE(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 SS{constructor(p,u){this.lineNumber=p,this.columnRange=u}}class Yf{constructor(p,u){if(this.startColumn=p,this.endColumnExclusive=u,p>u)throw new P(`startColumn ${p} cannot be after endColumnExclusive ${u}`)}toRange(p){return new t(p,this.startColumn,p,this.endColumnExclusive)}equals(p){return this.startColumn===p.startColumn&&this.endColumnExclusive===p.endColumnExclusive}toZeroBasedOffsetRange(){return new B(this.startColumn-1,this.endColumnExclusive-1)}}class Ha{static fromLineTokens(p){let u=[];for(let g=0;g<p.getCount();g++)u.push(new CS(p.getTokenText(g),p.getMetadata(g)));return Ha.create(u)}static create(p){return new Ha(p)}constructor(p){this._tokenInfo=p}toLineTokens(p){return bt.createFromTextAndMetadata(this.map((u,g)=>({text:g.text,metadata:g.metadata})),p)}map(p){let u=[],g=0;for(let v of this._tokenInfo){let S=new B(g,g+v.text.length);u.push(p(S,v)),g+=v.text.length}return u}slice(p){let u=[],g=0;for(let v of this._tokenInfo){let S=g,y=S+v.text.length;if(y>p.start){if(S>=p.endExclusive)break;let D=Math.max(0,p.start-S),T=Math.max(0,y-p.endExclusive);u.push(new CS(v.text.slice(D,v.text.length-T),v.metadata))}g+=v.text.length}return Ha.create(u)}append(p){let u=this._tokenInfo.concat(p._tokenInfo);return Ha.create(u)}}class CS{constructor(p,u){this.text=p,this.metadata=u}}var cM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class Qf{static from(p){if(!p)return;return new Qf(p.icon)}constructor(p=b.warning){this.icon=p}}var DE="ghost-text",Wa=class p 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),Q=this._extraClassNames.read(y),{inlineTexts:te,additionalLines:ne,hiddenRange:re,additionalLinesOriginalSuffix:ae}=hM(R,T,DE+Q),ge=T.getLineContent(R.lineNumber),ke=new to(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(),Ve=te.map((ot,je)=>({...ot,tokens:Ae?.[0]?.getTokensInRange(He[je])})),qe=ne.map((ot,je)=>{let nt=Ae?.[je+1]??bt.createEmpty(ot.content,this._languageService.languageIdCodec);if(je===ne.length-1&&ae){let st=Ha.fromLineTokens(T.tokenization.getLineTokens(ae.lineNumber)).slice(ae.columnRange.toZeroBasedOffsetRange());nt=Ha.fromLineTokens(nt).append(st).toLineTokens(nt.languageIdCodec)}return new NE(nt,ot.decorations)}),Te=this._editor.getSelection()?.getStartPosition().column,We=Ve.filter((ot)=>ot.text!==""),Je=We.length!==0,tt=new ml((Je?We[0].column:1)-Te,Je?0:ne.findIndex((ot)=>ot.content!=="")+1,Je?1:0,ne.length+(Je?1:0),0,Qm(We.map((ot)=>ot.text.length))+Qm(qe.map((ot)=>ot.content.getTextLength())),We.length+(ne.length>0?1:0),We.length>1&&qe.length===0?We.every((ot)=>ot.text===We[0].text):void 0);return{replacedRange:K,inlineTexts:Ve,additionalLines:qe,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((Q)=>" "+Q.className).join(" "),cursorStops:Fr.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=Xe(this._editor),this._additionalLinesWidget=this._register(new RE(this._editor,mn({owner:this,equalsFn:Mc(hh())},(y)=>{let D=this._state.read(y);return D?new TE(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}};Wa=cM([lM(3,pt)],Wa);class Jf{constructor(p){this.owner=p}}function hM(p,u,g){let v=[],S=[];function y(Q,te){if(S.length>0){let ne=S[S.length-1];if(te)ne.decorations.push(new Ri(ne.content.length+1,ne.content.length+1+Q[0].line.length,te,0));ne.content+=Q[0].line,Q=Q.slice(1)}for(let ne of Q)S.push({content:ne.line,decorations:te?[new Ri(1,ne.line.length+1,te,0),...ne.lineDecorations]:[...ne.lineDecorations]})}let D=u.getLineContent(p.lineNumber),T=void 0,R=0;for(let Q of p.parts){let te=Q.lines;if(T===void 0)v.push({column:Q.column,text:te[0].line,preview:Q.preview,lineDecorations:te[0].lineDecorations}),te=te.slice(1);else y([{line:D.substring(R,Q.column-1),lineDecorations:[]}],void 0);if(te.length>0){if(y(te,g),T===void 0&&Q.column<=D.length)T=Q.column}R=Q.column-1}let K=void 0;if(T!==void 0)K=new SS(p.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 TE{constructor(p,u,g){this.lineNumber=p,this.additionalLines=u,this.minReservedLineCount=g}equals(p){if(this.lineNumber!==p.lineNumber)return!1;if(this.minReservedLineCount!==p.minReservedLineCount)return!1;return Ke(this.additionalLines,p.additionalLines,hh())}}class RE extends n{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}constructor(p,u,g,v){super();if(this._editor=p,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=Xe(this._editor).isTargetHovered((S)=>kE(S.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof bl&&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((p)=>{this.removeActiveViewZone(p)})}updateLines(p,u,g){let v=this._editor.getModel();if(!v)return;let{tabSize:S}=v.getOptions();Xe(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(kE(q.target))this._onDidClick.fire(new Vn(F(q),q))}));this.addViewZone(D,p,R,K)}this._viewZoneListener.value=T})})}addViewZone(p,u,g,v){let S=p.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(p){if(this._viewZoneInfo){if(p.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(p,u){if(!this._shouldKeepCursorStable)return;let g=this._editor.getSelection()?.getStartPosition()?.lineNumber;if(g!==void 0&&p<g)this._editor.setScrollTop(this._editor.getScrollTop()+u*this._editor.getOption(75))}}function kE(p){return xe(p)&&p.classList.contains(DE)}class NE{constructor(p,u){this.content=p,this.decorations=u}equals(p){if(!this.content.equals(p.content))return!1;return Ri.equalsArr(this.decorations,p.decorations)}}function uM(p,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),Q=v.get(75),te=v.get(176)==="twoCells",ne="suggest-preview-text";if(S)ne+=" clickable";let re=new Pr(1e4);re.appendString(`<div class="${ne}">`);for(let ke=0,Ae=g.length;ke<Ae;ke++){let He=g[ke],Ve=He.content;re.appendString('<div class="view-line'),re.appendString('" style="top:'),re.appendString(String(ke*Q)),re.appendString('px;width:1000000px;">');let qe=Ve.getLineContent(),Te=Nc(qe),We=Sa(qe);Yl(new jr(q.isMonospace&&!y,q.canUseHalfwidthRightwardsArrow,qe,!1,Te,We,0,Ve,He.decorations.slice(),u,0,q.spaceWidth,q.middotWidth,q.wsmiddotWidth,D,"none",R,K!==ir.OFF,null,null,0,!1,te),re),re.appendString("</div>")}re.appendString("</div>"),an(p,q);let ae=re.build(),ge=EE?EE.createHTML(ae):ae;p.innerHTML=ge}var EE=bo("editorGhostText",{createHTML:(p)=>p});class Ba{constructor(p,u){this.width=p,this.height=u}toString(){return`(${this.width},${this.height})`}transpose(){return new Ba(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class xt{static fromPoints(p,u){return new xt(p.x,p.y,u.x,u.y)}static fromPointSize(p,u){return new xt(p.x,p.y,p.x+u.x,p.y+u.y)}static fromLeftTopRightBottom(p,u,g,v){return new xt(p,u,g,v)}static fromLeftTopWidthHeight(p,u,g,v){return new xt(p,u,p+g,u+v)}static fromRanges(p,u){return new xt(p.start,u.start,p.endExclusive,u.endExclusive)}static hull(p){let{MAX_SAFE_INTEGER:u,MAX_SAFE_INTEGER:g,MIN_SAFE_INTEGER:v,MIN_SAFE_INTEGER:S}=Number;for(let y of p)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 xt(u,g,v,S)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(p,u,g,v){if(this.left=p,this.top=u,this.right=g,this.bottom=v,p>g)throw new P("Invalid arguments: Horizontally offset by "+(p-g));if(u>v)throw new P("Invalid arguments: Vertically offset by "+(u-v))}withMargin(p,u,g,v){let S,y,D,T;if(u===void 0&&g===void 0&&v===void 0)S=y=D=T=p;else if(g===void 0&&v===void 0)S=y=u,D=T=p;else S=v,y=u,D=p,T=g;return new xt(this.left-S,this.top-D,this.right+y,this.bottom+T)}intersectVertical(p){let u=Math.max(this.top,p.start),g=Math.min(this.bottom,p.endExclusive);return new xt(this.left,u,this.right,Math.max(u,g))}intersectHorizontal(p){let u=Math.max(this.left,p.start),g=Math.min(this.right,p.endExclusive);return new xt(u,this.top,Math.max(u,g),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(p){let u=Math.max(this.left,p.left),g=Math.min(this.right,p.right),v=Math.max(this.top,p.top),S=Math.min(this.bottom,p.bottom);if(u>g||v>S)return;return new xt(u,v,g,S)}containsRect(p){return this.left<=p.left&&this.top<=p.top&&this.right>=p.right&&this.bottom>=p.bottom}containsPoint(p){return this.left<=p.x&&this.top<=p.y&&this.right>=p.x&&this.bottom>=p.y}moveToBeContainedIn(p){let u=this.width,g=this.height,v=this.left,S=this.top;if(v<p.left)v=p.left;else if(v+u>p.right)v=p.right-u;if(S<p.top)S=p.top;else if(S+g>p.bottom)S=p.bottom-g;return new xt(v,S,v+u,S+g)}withWidth(p){return new xt(this.left,this.top,this.left+p,this.bottom)}withHeight(p){return new xt(this.left,this.top,this.right,this.top+p)}withTop(p){return new xt(this.left,p,this.right,this.bottom)}withLeft(p){return new xt(p,this.top,this.right,this.bottom)}translateX(p){return new xt(this.left+p,this.top,this.right+p,this.bottom)}translateY(p){return new xt(this.left,this.top+p,this.right,this.bottom+p)}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(p){return new xt(p.start,this.top,p.endExclusive,this.bottom)}getSize(){return new Ba(this.width,this.height)}}class Dl{constructor(p,u,g,v=null){this.startLineNumbers=p,this.endLineNumbers=u,this.lastLineRelativePosition=g,this.showEndForLine=v}equals(p){return!!p&&this.lastLineRelativePosition===p.lastLineRelativePosition&&this.showEndForLine===p.showEndForLine&&Ke(this.startLineNumbers,p.startLineNumbers)&&Ke(this.endLineNumbers,p.endLineNumbers)}static get Empty(){return new Dl([],[],0)}}var ME=bo("stickyScrollViewLayer",{createHTML:(p)=>p}),yS="data-sticky-line-index",OE="data-sticky-is-line",gM="data-sticky-is-line-number",PE="data-sticky-is-folding-icon";class xS extends n{get height(){return this._height}constructor(p){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=p,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",p 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(p){return this._renderedStickyLines.find((u)=>u.lineNumber===p)}getCurrentLines(){return this._lineNumbers}setState(p,u,g){let v=!this._state&&!p,S=this._state&&this._state.equals(p);if(g===void 0&&(v||S))return;let y=this._findRenderingData(p),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=p}_findRenderingData(p){if(!p)return{lineNumbers:[],lastLineRelativePosition:0};let u=[...p.startLineNumbers];if(p.showEndForLine!==null)u[p.showEndForLine]=p.endLineNumbers[p.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:p.lastLineRelativePosition}}_findIndexToRebuildFrom(p,u,g){if(u.length===0)return 0;if(g!==void 0)return g;let v=u.findIndex((S)=>!p.includes(S));return v===-1?0:v}_updateWidgetWidth(){let p=this._editor.getLayoutInfo(),u=p.contentLeft;this._lineNumbersDomNode.style.width=`${u}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-p.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${p.width-p.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(p){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${p?0.5:0}s`)}_setFoldingIconsVisibility(p){for(let u of this._renderedStickyLines){let g=u.foldingIcon;if(!g)continue;g.setVisible(p?!0:g.isCollapsed)}}async _renderRootNode(p,u,g,v){let S=this._editor._getViewModel();if(!S){this._clearWidget();return}if(p.length===0){this._clearWidget();return}let y=[],D=p[p.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<p.length;K++){let q=p[K];if(q>S.getLineCount())continue;let Q=this._renderChildNode(S,K,q,T,D===q,g,R);T+=Q.height,this._linesDomNode.appendChild(Q.lineDomNode),this._lineNumbersDomNode.appendChild(Q.lineNumberDomNode),y.push(Q)}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 p=0;p<this._renderedStickyLines.length;p++){let u=this._renderedStickyLines[p];u.lineNumberDomNode.remove(),u.lineDomNode.remove()}this._setHeight(0)}_setHeight(p){if(this._height===p)return;if(this._height=p,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(p,u,g,v,S,y,D){let T=new AE(this._editor,p,D,y,this._isOnGlyphMargin,u,g);return this._updatePosition(T,v,S)}_updatePosition(p,u,g){let{lineDomNode:v,lineNumberDomNode:S}=p;if(g){v.style.zIndex="0",S.style.zIndex="0";let D=`${u+this._lastLineRelativePosition+(p.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 p}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(p){if(0<=p&&p<this._renderedStickyLines.length)this._renderedStickyLines[p].lineDomNode.focus()}getEditorPositionFromNode(p){if(!p||p.children.length>0)return null;let u=this._getRenderedStickyLineFromChildDomNode(p);if(!u)return null;let g=su(u.characterMapping,p,0);return new r(u.lineNumber,g)}getLineNumberFromChildDomNode(p){return this._getRenderedStickyLineFromChildDomNode(p)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(p){let u=this.getLineIndexFromChildDomNode(p);if(u===null||u<0||u>=this._renderedStickyLines.length)return null;return this._renderedStickyLines[u]}getLineIndexFromChildDomNode(p){let u=this._getAttributeValue(p,yS);return u?parseInt(u,10):null}isInStickyLine(p){return this._getAttributeValue(p,OE)!==void 0}isInFoldingIconDomNode(p){return this._getAttributeValue(p,PE)!==void 0}_getAttributeValue(p,u){while(p&&p!==this._rootDomNode){let g=p.getAttribute(u);if(g!==null)return g;p=p.parentElement}return}}class AE{constructor(p,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=p.getOption(76),q=p.getOption(117).verticalScrollbarSize,Q;try{Q=Ri.filter(R.inlineDecorations,T,R.minColumn,R.maxColumn)}catch(We){Q=[]}let te=p.getLineHeightForPosition(new r(D,1)),ne=u.getTextDirection(D),re=p.getOption(59),ae=new jr(!0,!0,R.content,R.continuesWithWrappedLine,R.isBasicASCII,R.containsRTL,0,R.tokens,Q,R.tabSize,R.startVisibleColumn,re.spaceWidth,1,1,500,"none",!0,!0,null,ne,q,!1,p.getOption(176)==="twoCells"),ge=new Pr(2000),ke=Yl(ae,ge);this.characterMapping=ke.characterMapping;let Ae;if(ME)Ae=ME.createHTML(ge.build());else Ae=ge.build();let He=document.createElement("span");He.setAttribute(yS,String(y)),He.setAttribute(OE,""),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 Ve=document.createElement("span");Ve.setAttribute(yS,String(y)),Ve.setAttribute(gM,""),Ve.className="sticky-line-number",Ve.style.lineHeight=`${te}px`;let qe=g.contentLeft;Ve.style.width=`${qe}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-p.getPosition().lineNumber).toString();if(Te.className="sticky-line-number-inner",Te.style.width=`${g.lineNumbersWidth}px`,Te.style.paddingLeft=`${g.lineNumbersLeft}px`,Ve.appendChild(Te),this.foldingIcon=this._renderFoldingIconForLine(p,v,D,te,S),this.foldingIcon)Ve.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${g.lineNumbersWidth+g.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${te}px`;p.applyFontInfo(He),p.applyFontInfo(Ve),Ve.style.lineHeight=`${te}px`,He.style.lineHeight=`${te}px`,Ve.style.height=`${te}px`,He.style.height=`${te}px`,this.scrollWidth=He.scrollWidth,this.lineDomNode=He,this.lineNumberDomNode=Ve,this.height=te}_renderFoldingIconForLine(p,u,g,v,S){let y=p.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),Q=new FE(q,R,D.getEndLineNumber(T),v);return Q.setVisible(S?!0:q||y==="always"),Q.domNode.setAttribute(PE,""),Q}}class FE{constructor(p,u,g,v){this.isCollapsed=p,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(p?Uh:Kh)}setVisible(p){this.domNode.style.cursor=p?"pointer":"default",this.domNode.style.opacity=p?"1":"0"}}var pM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},IS=function(p,u){return function(g,v){u(g,v,p)}};class Nd{remove(){this.parent?.children.delete(this.id)}static findId(p,u){let g;if(typeof p==="string")g=`${u.id}/${p}`;else if(g=`${u.id}/${p.name}`,u.children.get(g)!==void 0)g=`${u.id}/${p.name}_${p.range.startLineNumber}_${p.range.startColumn}`;let v=g;for(let S=0;u.children.get(v)!==void 0;S++)v=`${g}_${S}`;return v}static empty(p){return p.children.size===0}}class tg extends Nd{constructor(p,u,g){super();this.id=p,this.parent=u,this.symbol=g,this.children=new Map}}class e_ extends Nd{constructor(p,u,g,v){super();this.id=p,this.parent=u,this.label=g,this.order=v,this.children=new Map}}class ls extends Nd{static create(p,u,g){let v=new Oe(g),S=new ls(u.uri),y=p.ordered(u),D=y.map((R,K)=>{let q=Nd.findId(`provider_${K}`,S),Q=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,Q);return Q},(te)=>(dt(te),Q)).then((te)=>{if(!Nd.empty(te))S._groups.set(q,te);else te.remove()})}),T=p.onDidChange(()=>{let R=p.ordered(u);if(!Ke(R,y))v.cancel()});return Promise.all(D).then(()=>{if(v.token.isCancellationRequested&&!g.isCancellationRequested)return ls.create(p,u,g);else return S._compact()}).finally(()=>{v.dispose(),T.dispose(),v.dispose()})}static _makeOutlineElement(p,u){let g=Nd.findId(p,u),v=new tg(g,u,p);if(p.children)for(let S of p.children)ls._makeOutlineElement(S,v);u.children.set(v.id,v)}constructor(p){super();this.uri=p,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let p=0;for(let[u,g]of this._groups)if(g.children.size===0)this._groups.delete(u);else p+=1;if(p!==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 p=[];for(let u of this.children.values())if(u instanceof tg)p.push(u.symbol);else p.push(...Ce.map(u.children.values(),(g)=>g.symbol));return p.sort((u,g)=>t.compareRangesUsingStarts(u.range,g.range))}asListOfDocumentSymbols(){let p=this.getTopLevelSymbols(),u=[];return ls._flattenDocumentSymbols(u,p,""),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(p,u,g){for(let v of u)if(p.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(p,v.children,v.name)}}var qd=Z("IOutlineModelService"),LS=class p{constructor(u,g,v){this._languageFeaturesService=u,this._disposables=new c,this._cache=new Ti(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()||!Ke(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()}}};LS=pM([IS(0,j),IS(1,Bi),IS(2,gt)],LS);fe(qd,LS,1);class Va{constructor(p,u){this.startLineNumber=p,this.endLineNumber=u}}class Tl{constructor(p,u,g){this.range=p,this.children=u,this.parent=g}}class t_{constructor(p,u,g,v){this.uri=p,this.version=u,this.element=g,this.outlineProviderId=v}}var a_=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},sg;(function(p){p.OUTLINE_MODEL="outlineModel",p.FOLDING_PROVIDER_MODEL="foldingProviderModel",p.INDENTATION_MODEL="indentationModel"})(sg||(sg={}));var za;(function(p){p[p.VALID=0]="VALID",p[p.INVALID=1]="INVALID",p[p.CANCELED=2]="CANCELED"})(za||(za={}));var n_=class p extends n{constructor(u,g,v,S){super();switch(this._editor=u,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Si(300)),this._updateOperation=this._register(new c),this._editor.getOption(131).defaultModel){case sg.OUTLINE_MODEL:this._modelProviders.push(new kS(this._editor,S));case sg.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new DS(this._editor,g,S));case sg.INDENTATION_MODEL:this._modelProviders.push(new ES(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 za.CANCELED:return this._updateOperation.clear(),null;case za.VALID:return g.stickyModel}}return null}).catch((g)=>(J(g),null))}};n_=a_([pg(2,L),pg(3,j)],n_);class TS extends n{constructor(p){super();this._editor=p,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,za.INVALID}computeStickyModel(p){if(p.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(p.isCancellationRequested)return za.CANCELED;return this._stickyModel=this.createStickyModel(p,g),za.VALID}).then(void 0,(g)=>(J(g),za.CANCELED)),modelPromise:u}}isModelValid(p){return!0}isProviderValid(){return!0}}var kS=class p extends TS{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[Q,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 Va(T.symbol.range.startLineNumber,T.symbol.range.endLineNumber),q=new Va(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 Va(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 tg)return g+u.symbol.range.endLineNumber-u.symbol.selectionRange.startLineNumber;else return g}};kS=a_([pg(1,j)],kS);class RS extends TS{constructor(p){super(p);this._foldingLimitReporter=this._register(new Tp(p))}createStickyModel(p,u){let g=this._fromFoldingRegions(u),v=this._editor.getModel();return new t_(v.uri,v.getVersionId(),g,void 0)}isModelValid(p){return p!==null}_fromFoldingRegions(p){let u=p.length,g=[],v=new Tl(void 0,[],void 0);for(let S=0;S<u;S++){let y=p.getParentIndex(S),D;if(y!==-1)D=g[y];else D=v;let T=new Tl(new Va(p.getStartLineNumber(S),p.getEndLineNumber(S)+1),[],D);D.children.push(T),g.push(T)}return v}}var ES=class p extends RS{constructor(u,g){super(u);this._languageConfigurationService=g,this.provider=this._register(new pc(u.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(u){return this.provider.compute(u)}};ES=a_([pg(1,et)],ES);var DS=class p extends RS{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 fc(u.getModel(),v,g,this._foldingLimitReporter,void 0)}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(u){return this.provider.value?.compute(u)??null}};DS=a_([pg(2,j)],DS);var mM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},HE=function(p,u){return function(g,v){u(g,v,p)}};class WE{constructor(p,u,g,v){this.startLineNumber=p,this.endLineNumber=u,this.top=g,this.height=v}}var d_=class p 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 n_(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(zp(K,u.startLineNumber,(te,ne)=>te-ne)),Q=this.updateIndex(zp(K,u.endLineNumber,(te,ne)=>te-ne));for(let te=q;te<=Q;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 WE(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}};d_=mM([HE(1,j),HE(2,et)],d_);var fM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},NS,Yr=class p extends n{static{NS=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 xS(this._editor),this._stickyLineCandidateProvider=new d_(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((Q)=>{let te=Q.lineNumber;if(this._widgetState.startLineNumbers.includes(te))this._renderStickyScroll(te)})})),this._register(this._editor.onDidChangeFont((q)=>{q.changes.forEach((Q)=>{let te=Q.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(NS.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 Is(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 Q;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(Q!==ne)u.clear(),Q=ne,Q.style.textDecoration="underline",u.add(E(()=>{Q.style.textDecoration="none"}));else if(!Q)Q=ne,Q.style.textDecoration="underline",u.add(E(()=>{Q.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(Dm,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;Vh(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 Va(D[0].startLineNumber,D[D.length-1].endLineNumber),R=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(T);for(let K of R){let{startLineNumber:q,endLineNumber:Q,top:te}=K,ne=te+K.height,re=this._editor.getTopForLineNumber(q)-g,ae=this._editor.getBottomForLineNumber(Q)-g;if(te>re&&te<=ae){if(S.push(q),y.push(Q+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()}};Yr=NS=fM([Rl(1,Dn),Rl(2,j),Rl(3,L),Rl(4,et),Rl(5,Bi),Rl(6,V)],Yr);var Ua=s("inlineEdit.originalBackground",de(zc,0.2),e(1286,"Background color for the original text in inline edits."),!0),c_=s("inlineEdit.modifiedBackground",de(iu,0.3),e(1287,"Background color for the modified text in inline edits."),!0);s("inlineEdit.originalChangedLineBackground",de(zc,0.8),e(1288,"Background color for the changed lines in the original text of inline edits."),!0);var BE=s("inlineEdit.originalChangedTextBackground",de(zc,0.8),e(1289,"Overlay color for the changed text in the original text of inline edits."),!0),VE=s("inlineEdit.modifiedChangedLineBackground",{light:de(ay,0.7),dark:de(ay,0.7),hcDark:ay,hcLight:ay},e(1290,"Background color for the changed lines in the modified text of inline edits."),!0),zE=s("inlineEdit.modifiedChangedTextBackground",de(iu,0.7),e(1291,"Overlay color for the changed text in the modified text of inline edits."),!0),qa=s("inlineEdit.gutterIndicator.primaryForeground",vg,e(1292,"Foreground color for the primary inline edit gutter indicator.")),Bn=s("inlineEdit.gutterIndicator.primaryBorder",ru,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.")),KE=s("inlineEdit.gutterIndicator.secondaryForeground",gg,e(1295,"Foreground color for the secondary inline edit gutter indicator.")),UE=s("inlineEdit.gutterIndicator.secondaryBorder",Th,e(1296,"Border color for the secondary inline edit gutter indicator.")),Nl=s("inlineEdit.gutterIndicator.secondaryBackground",rf,e(1297,"Background color for the secondary inline edit gutter indicator.")),qE=s("inlineEdit.gutterIndicator.successfulForeground",vg,e(1298,"Foreground color for the successful inline edit gutter indicator.")),OS=s("inlineEdit.gutterIndicator.successfulBorder",ru,e(1299,"Border color for the successful inline edit gutter indicator.")),Ml=s("inlineEdit.gutterIndicator.successfulBackground",OS,e(1300,"Background color for the successful inline edit gutter indicator.")),jE=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.")),Dg=s("inlineEdit.originalBorder",{light:zc,dark:zc,hcDark:zc,hcLight:zc},e(1302,"Border color for the original text in inline edits.")),Pg=s("inlineEdit.modifiedBorder",{light:sr(iu,0.6),dark:iu,hcDark:iu,hcLight:iu},e(1303,"Border color for the modified text in inline edits.")),_M=s("inlineEdit.tabWillAcceptModifiedBorder",{light:sr(Pg,0),dark:sr(Pg,0),hcDark:sr(Pg,0),hcLight:sr(Pg,0)},e(1304,"Modified border color for the inline edits widget when tab will accept it.")),bM=s("inlineEdit.tabWillAcceptOriginalBorder",{light:sr(Dg,0),dark:sr(Dg,0),hcDark:sr(Dg,0),hcLight:sr(Dg,0)},e(1305,"Original border color for the inline edits widget over the original text when tab will accept it."));function Ws(p){return p.map((u)=>u===di.Accept?_M:Pg)}function ja(p){return p.map((u)=>u===di.Accept?bM:Dg)}function yi(p,u){let g;if(typeof p==="string")g=Ka(p,u);else g=p.map((S,y)=>Ka(S,u).read(y));let v=Ka(Eo,u);return g.map((S,y)=>S.makeOpaque(v.read(y)))}function Ro(p){let u;switch(p){case ci.TextEditor:u=Eo;break;case ci.DiffEditor:u=Eo;break;case ci.Notebook:u="notebook.cellEditorBackground";break;default:nl(p,"Not supported editor type yet")}return N(u)}function Ka(p,u){return is({owner:{observeColor:p},equalsFn:(g,v)=>g.equals(v),debugName:()=>`observeColor(${p})`},u.onDidColorThemeChange,()=>{let g=u.getColorTheme().getColor(p);if(!g)throw new P(`Missing color: ${p}`);return g})}var xi=3;function on(p,u,g){let v=p.model.read(g);if(!v)return 0;let S=0;for(let D=u.startLineNumber;D<u.endLineNumberExclusive;D++){let T=p.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 $E(p,u,g){si(p,p.editor.onDidChangeLineHeight).read(g);let v=p.model.read(g);if(!v)throw new P("Model is required");let S=[];for(let y=u.startLineNumber;y<u.endLineNumberExclusive;y++){let D=p.getWidthOfLine(y,g);if(D===-1){let R=v.getLineMaxColumn(y),K=p.editor.getOption(59).typicalHalfwidthCharacterWidth;D=R*K}let T=p.editor.getLineHeightForPosition(new r(y,1));S.push(new Ba(D,T))}return S}function GE(p,u,g){if(p.layoutInfo.read(g),p.value.read(g),!p.model.read(g))return 0;return p.scrollTop.read(g),p.editor.getOffsetForColumn(u.lineNumber,u.column)}function Ol(p,u,g,v,S=void 0){let y=v.getModel();if(!y)return{prefixTrim:0,prefixLeftOffset:0};let D=p.map((te)=>te.isSingleLine()?te.startColumn-1:0),T=u.mapToLineArray((te)=>A0(y.getLineContent(te))),R=g.filter((te)=>te!=="").map((te)=>A0(te)),K=Math.min(...D,...T,...R),q;if(y.getLineIndentColumn(u.startLineNumber)>=K+1)Xe(v).scrollTop.read(S),q=v.getOffsetForColumn(u.startLineNumber,K+1);else if(g.length>0)q=Fg(g[0].slice(0,K),v,y);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:K,prefixLeftOffset:q}}function Fg(p,u,g){let v=u.getOption(59).typicalHalfwidthCharacterWidth,S=g.getOptions().tabSize*v,y=p.split("\t").length-1;return(p.length-y)*v+y*S}function Pl(p){let u=p.layoutInfoContentLeft,g=d({name:"editor.validOverlay.width"},(S)=>{let y=p.layoutInfoMinimap.read(S).minimapLeft!==0,D=Math.max(0,p.layoutInfoWidth.read(S)-u.read(S));if(y){let T=p.layoutInfoMinimap.read(S).minimapWidth+p.layoutInfoVerticalScrollbarWidth.read(S);return Math.max(0,D-T)}return D}),v=d({name:"editor.validOverlay.height"},(S)=>p.layoutInfoHeight.read(S)+p.contentHeight.read(S));return d({name:"editor.validOverlay"},(S)=>xt.fromLeftTopWidthHeight(u.read(S),0,g.read(S),v.read(S)))}function ZE(p,u){let g=[];for(let v of p){let S=u.mapRange(v.modifiedRange);g.push(new Li(v.originalRange,S))}return g}function Al(...p){return p.filter((u)=>typeof u==="string").join(" ")}function vM(p,u){return new t(u.lineNumber,u.column+p.start,u.lineNumber,u.column+p.endExclusive)}function wM(p,u){let g=0;e:for(let v=0,S=p.length;v<S;v++)switch(p.charCodeAt(v)){case 9:g+=u;break;case 32:g++;break;default:break e}return g-g%u}function SM(p,u,g){let v=u-u%g,S=0;for(;S<p.length;S++){if(v===0)break;switch(p.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 XE(p,u,g){let v=ei(p),S=[],y=y0(u.mapToLineArray((D)=>wM(v[D-1],g)),_i);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 go(S)}class Fl{constructor(){this._data=""}moveTo(p){return this._data+=`M ${p.x} ${p.y} `,this}lineTo(p){return this._data+=`L ${p.x} ${p.y} `,this}build(){return this._data}}function xo(p){let u=Bo(void 0,(g,v)=>p.read(g)||v);return mn({debugName:()=>`${p.debugName}.mapOutFalsy`},(g)=>{if(u.read(g),!p.read(g))return;return u})}function Ii(p,u=At.ofCaller()){return{left:d({name:"editor.validOverlay.left"},(g)=>p(g)?.left,u),top:d({name:"editor.validOverlay.top"},(g)=>p(g)?.top,u),width:d({name:"editor.validOverlay.width"},(g)=>{let v=p(g);if(!v)return;return v.width},u),height:d({name:"editor.validOverlay.height"},(g)=>{let v=p(g);if(!v)return;return v.height},u)}}function YE(p,u){let g=p.getContainerDomNode(),v=M("domRect",g.getBoundingClientRect());return u.add(p.onDidLayoutChange((S)=>{v.set(g.getBoundingClientRect(),void 0)})),v}var CM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},AS=function(p,u){return function(g,v){u(g,v,p)}},l_=class p{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($S()),S.push(...ae);if(this._data.extensionCommandsOnly)return JE(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:bm})),R=this._data.alternativeAction?Ga(g({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:_d})):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}))),Q=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:RR}):void 0;return JE([y,D,R,T,q,K.length?$S():void 0,...K,Q,te,...S,re?$S():void 0,re])}_getKeybinding(u){if(!u)return Se(void 0);return Le(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(u))}};l_=CM([AS(3,V),AS(4,ce),AS(5,Ne)],l_);function JE(p){return se.div({class:"content",style:{margin:4,minWidth:180}},p)}function yM(p){return se.div({class:"header",style:{color:N(sy),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[p])}function Ga(p){return d({name:"inlineEdits.option"},(u)=>se.div({class:["monaco-menu-option",p.isActive?.map((g)=>g&&"active")],onmouseenter:()=>p.onHoverChange?.(!0),onmouseleave:()=>p.onHoverChange?.(!1),onclick:p.onAction,onkeydown:(g)=>{if(g.key==="Enter")p.onAction?.()},tabIndex:0,style:{borderRadius:3}},[se.elem("span",{style:{fontSize:16,display:"flex"}},[G.isThemeIcon(p.icon)?no(p.icon):p.icon.map((g)=>no(g))]),se.elem("span",{},[p.title]),se.div({style:{marginLeft:"auto"},ref:(g)=>{let v=u.store.add(new ia(g,ui,{disableTitle:!0,...Tg,keybindingLabelShadow:void 0,keybindingLabelForeground:N(sy),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));u.store.add(H((S)=>{v.set(p.keybinding.read(S))}))}})]))}function xM(p,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 $i(v,u)).push(p,{icon:!1,label:!0})}})]))}function $S(){return se.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:N(CR),padding:"2px 0"}},se.div({style:{borderBottom:`1px solid ${N(Th)}`}}))}var IM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};class Wg{constructor(p,u,g,v,S){this.gutterMenuData=p,this.originalRange=u,this.model=g,this.altAction=v,this.customization=S}}class Wl{static fromInlineSuggestion(p){let u=p.action?.kind==="edit"?p.action.alternativeAction:void 0,g=p.source.inlineSuggestions.commands??[];return new Wl(p.gutterMenuLinkAction,p.source.provider.displayName??e(1282,"Inline Suggestion"),g.length>0?[g]:[],u,p.source.provider.modelInfo,p.source.provider.setModelId?.bind(p.source.provider))}constructor(p,u,g,v,S,y,D=!1){this.action=p,this.displayName=u,this.extensionCommands=g,this.alternativeAction=v,this.modelInfo=S,this.setModelId=y,this.extensionCommandsOnly=D}}class Bl{static fromInlineCompletionModel(p){return new Bl(()=>p.accept(),()=>p.jump())}constructor(p,u){this.accept=p,this.jump=u}}var eC=16,QE=2,Hl=class p extends n{constructor(u,g,v,S,y,D,T,R,K,q,Q){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=Q,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=di.Inactive;switch(re){case di.Inactive:return{background:yi(Nl,this._themeService).read(ne).toString(),foreground:yi(KE,this._themeService).read(ne).toString(),border:yi(UE,this._themeService).read(ne).toString()};case di.Jump:return{background:yi(hs,this._themeService).read(ne).toString(),foreground:yi(qa,this._themeService).read(ne).toString(),border:yi(Bn,this._themeService).read(ne).toString()};case di.Accept:return{background:yi(Ml,this._themeService).read(ne).toString(),foreground:yi(qE,this._themeService).read(ne).toString(),border:yi(OS,this._themeService).read(ne).toString()};default:nl()}}),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,Ve=ge.lineNumbersLeft+ge.lineNumbersWidth,Te=(re.getLineCount()+1).toString().length,We=[];for(let Je=1;Je<=Te;Je++){let tt=10**(Je-1),ot=ae.getTopForLineNumber(tt),je=Je*He,nt=Math.min(ke,Math.max(0,Ve-je-ge.glyphMarginLeft));We.push({firstLineNumberWithDigitCount:tt,topOfLineNumber:ot,usableWidthLeftOfLineNumber:nt})}return(Je)=>{for(let tt=We.length-1;tt>=0;tt--)if(Je>=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,Ve=ae.height-2*Ae,qe=xt.fromLeftTopWidthHeight(ke,Ae,He,Ve),Te=qe.withTop(this._stickyScrollHeight.read(ne)),We=qe.withTop(Te.top+Ae),Je=re.lineOffsetRange.read(ne),tt=xt.fromRanges(B.fromTo(We.left,We.right),Je),ot=ge,je=this._verticalOffset.read(ne),nt=tt.withHeight(ot).translateY(je),_t=Te.containsRect(nt),st=this._data.read(ne)?.customization?.icon,Ct=st?Se(st):this._tabAction.map((ai)=>ai===di.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)===di.Accept)return b.keyboardTab;let Gi=this._editorObs.cursorLineNumber.read(ai)??0,zs=re.range.read(ai).startLineNumber;return Gi<=zs?b.keyboardTabAbove:b.keyboardTabBelow}),li=22,vt=(ai)=>{let Gi=this._availableWidthForIcon.read(void 0)(ai.bottom+this._editorObs.editor.getScrollTop())-ke;return Math.max(Math.min(Gi,li),eC)};if(_t){let ai=nt,Gi;if(ae.lineNumbersWidth===0)Gi=Math.max(0,Math.min(Math.max(ae.lineNumbersLeft-qe.left,0),ai.width-li));else Gi=Math.max(ae.lineNumbersLeft+ae.lineNumbersWidth-qe.left,0);let zs=ai.withWidth(Gi),nn=eC+QE,Er=Math.min(ai.width-Gi,li),Xa=ai.withWidth(Math.max(Er,nn)).translateX(Gi),P_=Er>=nn;return{gutterEditArea:tt,icon:at,iconDirection:"right",iconRect:Xa,iconVisible:P_,pillRect:ai,lineNumberRect:zs}}let Ot=qe.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(qe),$t=Zt.withWidth(vt(Zt)),vi=$t,gi=$t.top<nt.top?"top":"bottom";return{gutterEditArea:tt,icon:Ct,iconDirection:gi,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=p0(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(jE),borderRadius:`${xi}px`,...Ii((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:`${xi}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"),...Ii((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(no(re.icon.read(ae)),{fontSize:EM(Math.min(re.iconRect.width-QE,eC))}))])])])),this._originalRangeObs=xo(this._data.map((ne)=>ne?.originalRange)),this._stickyScrollController=Yr.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Le(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Se(0),this._isHoveredOverInlineEditDebounced=p0(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(ar(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(l_,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()}};Hl=IM([Hg(6,yn),Hg(7,L),Hg(8,Vt),Hg(9,De),Hg(10,lr)],Hl);function LM(p){switch(p){case"top":return 90;case"bottom":return-90;case"right":return 0}}function kM(p,u){for(let g in u)p.style[g]=u[g];return p}function EM(p){return`${p}px`}var DM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},eD=function(p,u){return function(g,v){u(g,v,p)}},Zo;(function(p){p.FirstTime="firstTime",p.SecondTime="secondTime",p.Active="active"})(Zo||(Zo={}));var h_=class p 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(TR(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 Q=0;Q<3&&!K.isCancellationRequested;Q++)await this._indicator.get()?.triggerAnimation(),await or(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(ar(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()})}};h_=DM([eD(3,xn),eD(4,X)],h_);class tC{static{this.empty=new tC([])}constructor(p){this.replacements=p,Gd(Dc(p,(u,g)=>u.lineRange.endLineNumberExclusive<=g.lineRange.startLineNumber))}toString(){return this.replacements.map((p)=>p.toString()).join(",")}getNewLineRanges(){let p=[],u=0;for(let g of this.replacements)p.push(Y.ofLength(g.lineRange.startLineNumber+u,g.newLines.length)),u+=g.newLines.length-g.lineRange.length;return p}}class zl{static fromSingleTextEdit(p,u){let g=ei(p.text),v=p.range.startLineNumber,S=u.getValueOfRange(t.fromPositions(new r(p.range.startLineNumber,1),p.range.getStartPosition()));g[0]=S+g[0];let y=p.range.endLineNumber+1,D=u.getTransformer().getLineLength(p.range.endLineNumber)+1,T=u.getValueOfRange(t.fromPositions(p.range.getEndPosition(),new r(p.range.endLineNumber,D)));g[g.length-1]=g[g.length-1]+T;let R=p.range.startColumn===u.getTransformer().getLineLength(p.range.startLineNumber)+1,K=p.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 zl(new Y(v,y),g)}constructor(p,u){this.lineRange=p,this.newLines=u}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new tC([this])}}class iC{get lineEdit(){if(this.action?.kind==="jumpTo")return new zl(Y.ofLength(this.action.position.lineNumber,0),[]);else if(this.action?.kind==="edit")return zl.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText);return new zl(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(p,u,g,v,S,y,D){this.originalText=p,this.action=u,this.edit=g,this.cursorPosition=v,this.multiCursorPositions=S,this.commands=y,this.inlineCompletion=D}}class oC{constructor(p,u,g){this._model=p,this.inlineEdit=u,this.tabAction=g,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=d(this,(v)=>hS(this._model.editor,this.inlineEdit.inlineCompletion,v)),this.onDidAccept=this._model.onDidAccept}accept(p){this._model.accept(void 0,p)}handleInlineEditShownNextFrame(p,u){let g=this.inlineEdit.inlineCompletion,v=Date.now();g.addRef(),Ys(()=>{this._model.handleInlineSuggestionShown(g,p,u,v),g.removeRef()})}}var TM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},u_=class p 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=Xe(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 Q=this._editorObs.layoutInfoContentLeft.read(K),te=this._editorObs.scrollLeft.read(K);return new Qn(Q+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",...Ii((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()})}};u_=TM([RM(2,Vt)],u_);var NM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},tD=function(p,u){return function(g,v){u(g,v,p)}},g_=14,nC=0,Bs=4,p_=4,iD=2,m_=class p 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=Xe(this._editor);let T=v.map((Q,te)=>{let ne;switch(Q){case di.Inactive:ne=Nl;break;case di.Jump:ne=hs;break;case di.Accept:ne=Ml;break}return{border:yi(ne,y).read(te).toString(),background:Ro(S.read(te))}}),R=g.map((Q)=>Q?this.getState(Q):void 0),K=R.map((Q)=>Q?this.getRendering(Q,T):void 0);this.minEditorScrollHeight=d(this,(Q)=>{let te=R.read(Q);if(!te)return 0;return te.rect.read(Q).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:Bo(this,(Q,te)=>{let ne=R.read(Q);if(!ne)return te??0;let re=ne.rect.map((ae)=>ae.right).read(Q)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(Q)+Bs-this._editorObs.layoutInfoContentLeft.read(Q);return Math.max(te??0,re)}).recomputeInitiallyAndOnChange(this._store)})),this._register(H((Q)=>{if(!K.read(Q)){this._isHovered.set(!1,void 0);return}this._isHovered.set(q.isHovered.read(Q),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=Fg(g,this._editor,this._editor.getModel()),q=Bs+g_;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,Q=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,Q);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:Q,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+g_-p_-Bs<te)Ae="below";else if(Q!==void 0&&Q+g_-p_-Bs<te)Ae="above";else Ae="end";let He,Ve,qe=0,Te=0;switch(Ae){case"end":{He=this._editorObs.editor.getTopForLineNumber(v),Ve=K,qe=Bs+g_;break}case"below":{He=this._editorObs.editor.getTopForLineNumber(v+1),Ve=te,qe=Bs+p_,Te=nC+iD;break}case"above":{He=this._editorObs.editor.getTopForLineNumber(v-1),Ve=te,qe=Bs+p_,Te=-nC+iD;break}}return xt.fromLeftTopWidthHeight(re+Ve-ke,He-ge,R*u.content.length,ae).withMargin(nC,Bs).translateX(qe).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===a0.Code)y=La.fromLineTokens(S).toLineTokens(u.label,this._languageService.languageIdCodec);else y=bt.createEmpty(u.label,this._languageService.languageIdCodec);let D=Zc(new rc([y]),oa.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],v,!0);v.style.width=`${D.minWidthInPx}px`;let T=u.rect.map((R)=>R.withMargin(0,Bs));return se.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Ii((R)=>T.read(R)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:g.map((R)=>`1px solid ${R.border}`),borderRadius:`${xi}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])}};m_=NM([tD(4,De),tD(5,pt)],m_);var MM=0,OM=0,rC=1,PM=1,AM=3,sC=xi;class aC extends n{constructor(p,u,g,v){super();this._editor=p,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),Bo(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),Q=this._editorObs.getOption(59).map((Ae)=>Ae.typicalHalfwidthCharacterWidth).read(D),te=K.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(D),Q)-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:xt.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)=>xt.fromLeftTopRightBottom(ne.contentLeft-sC-rC,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===ci.DiffEditor?AM:PM).read(D),Q=K.map((ne)=>ne.withMargin(q,q)),te=Ro(this._uiState.map((ne)=>ne?.editorType??ci.TextEditor).read(D));return[se.div({class:"originalSeparatorDeletion",style:{...Q.read(D).toStyles(),borderRadius:`${sC}px`,border:`${rC+q}px solid ${te}`,boxSizing:"border-box"}}),se.div({class:"originalOverlayDeletion",style:{...K.read(D).toStyles(),borderRadius:`${sC}px`,border:ja(this._tabAction).map((ne)=>`${rC}px solid ${N(ne)}`),boxSizing:"border-box",backgroundColor:N(Ua)}}),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=Xe(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(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},jl=1,HM=1,WM=3,dC=xi,f_=class p 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(),Q=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:(Q-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),Q=T.text.split(K),te=Q.slice(q.linesTop,Q.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 nc(new t(re+1,re===0?1:R.prefixTrim+1,re+1,ne.length+1),"modified-background",0));return new Ps(T.lineNumber,[new kd(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)),Q=R.getValueInRange(new t(T.lineNumber,T.column,T.lineNumber,R.getLineLength(T.lineNumber)+1)),ne=(q+T.text+Q).split(K),re=oa.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),ae=ne.map((ge)=>{let ke=R.tokenization.tokenizeLinesAt(T.lineNumber,[ge])?.[0],Ae;if(ke)Ae=La.fromLineTokens(ke).toLineTokens(ge,this._languageService.languageIdCodec);else Ae=bt.createEmpty(ge,this._languageService.languageIdCodec);return Zc(new rc([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),Q=R.contentLeft+this._editorMaxContentWidthInRange.read(D)-K,te=this._maxPrefixTrim.read(D).prefixLeftOffset??0,ne=R.contentLeft+te-K;if(Q<=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 xt(ne,ke,Q,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)=>xt.fromLeftTopRightBottom(ne.contentLeft-dC-jl,ne.overlay.top,ne.contentLeft,ne.overlay.bottom)).read(D),K=this._input.map((ne)=>ne?.editorType===ci.DiffEditor?WM:HM).read(D),q=T.map((ne)=>ne.overlay.withMargin(0,jl,jl,ne.startsAtContentLeft?0:jl).intersectHorizontal(new B(R.left,Number.MAX_SAFE_INTEGER))),Q=q.map((ne)=>ne.withMargin(K,K)),te=Ro(this._input.read(void 0)?.editorType??ci.TextEditor);return[se.div({class:"originalUnderlayInsertion",style:{...Q.read(D).toStyles(),borderRadius:dC,border:`${jl+K}px solid ${te}`,boxSizing:"border-box"}}),se.div({class:"originalOverlayInsertion",style:{...q.read(D).toStyles(),borderRadius:dC,border:Ws(this._tabAction).map((ne)=>`${jl}px solid ${N(ne)}`),boxSizing:"border-box",backgroundColor:N(c_)}}),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=Xe(this._editor),this._ghostTextView=this._register(S.createInstance(Wa,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})}))}};f_=FM([oD(3,L),oD(4,pt)],f_);var BM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},nD=function(p,u){return function(g,v){u(g,v,p)}},__=class p 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),Q=this._edit.read(T);if(!Q||!q)return;let te=q.prefixTrim,ne=VM(Q.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=Q.modifiedRange.startLineNumber;for(let ge=0;ge<Q.modifiedRange.length;ge++){let ke=document.createElement("div"),Ae=ae+ge,He=Q.modifiedLines[ge].slice(te),Ve=re.tokenization.tokenizeLinesAt(Ae,[He])?.[0],qe;if(Ve)qe=La.fromLineTokens(Ve).toLineTokens(He,this._languageService.languageIdCodec);else qe=bt.createEmpty(He,this._languageService.languageIdCodec);let Te=[];for(let Je of ne.filter((tt)=>tt.startLineNumber===Ae)){let tt=Math.min(Je.endColumn,He.length+1);Te.push(new nc(new t(1,Je.startColumn,1,tt),"inlineCompletions-modified-bubble",0))}let We=Zc(new rc([qe]),oa.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:Q}=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,Ve=this._editor.editor.getModel(),qe=q.originalRange.mapToLineArray((at)=>this._editor.editor.getOffsetForColumn(at,Ve.getLineMaxColumn(at))-Q),Te=Math.max(...qe,te),We=q.originalRange.startLineNumber,Je=q.originalRange.endLineNumberExclusive-1,tt=this._editor.editor.getTopForLineNumber(We)-Ae,ot=this._editor.editor.getBottomForLineNumber(Je)-Ae,je=xt.fromLeftTopWidthHeight(He+Q,tt,Te,ot-tt),nt=xt.fromLeftTopWidthHeight(je.left,je.bottom,je.width,re.reduce((at,li)=>at+li,0)),_t=xt.hull([je,nt]),st=_t.intersectVertical(new B(je.bottom,Number.MAX_SAFE_INTEGER)),Ct=new xt(st.left,st.top,st.right,st.bottom);return{originalLinesOverlay:je,modifiedLinesOverlay:nt,background:_t,lowerBackground:st,lowerText:Ct,modifiedLineHeights:re,minContentWidthRequired:Q+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 Q=K.lowerBackground.height,te=q.originalRange.endLineNumberExclusive;return{height:Q,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),Q=this._editor.layoutInfoContentLeft.read(T),te=this._editorType.read(T)===ci.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=Ws(this._tabAction).read(T),re=ja(this._tabAction).read(T),ae=Ro(this._editorType.read(T));return[se.div({style:{position:"absolute",...Ii((ge)=>Pl(this._editor).read(ge)),overflow:"hidden",pointerEvents:"none"}},[se.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Ii((ge)=>R.read(ge).background.translateX(-Q).withMargin(te)),borderRadius:`${xi}px`,border:`${te+1}px solid ${ae}`,boxSizing:"border-box",pointerEvents:"none"}}),se.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Ii((ge)=>R.read(ge).background.translateX(-Q)),borderRadius:`${xi}px`,border:yi(re,this._themeService).map((ge)=>`1px solid ${ge.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:N(Ua)}}),se.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Ii((ge)=>R.read(ge).lowerBackground.translateX(-Q)),borderRadius:`0 0 ${xi}px ${xi}px`,background:ae,boxShadow:`${N(tf)} 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(VE)}})]),se.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Ii((ge)=>R.read(ge).lowerText.translateX(-Q)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${xi}px ${xi}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(eR(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 Ra))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)}};__=BM([nD(4,pt),nD(5,De)],__);function VM(p){let u=[];while(p.length){let g=p.shift();if(g.startLineNumber!==g.endLineNumber)p.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 rD(p,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>p)return null;let y=p-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,Q=[];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);Q.push({partKey:te.partKey,ruleIndex:te.ruleIndex,amount:Ae}),q+=Ae}if(q===0)break;for(let te of Q)v[te.partKey]+=te.amount;if(y-=q,y<0.0001)break}return v}var zM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},cC=function(p,u){return function(g,v){u(g,v,p)}},b_=class p 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(qa,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,Q=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:xt.fromLeftTopWidthHeight(ne.x+re.contentLeft+2-te,ne.y,100,Q)}}),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",...Ii((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)}};b_=zM([cC(3,De),cC(4,ce),cC(5,V)],b_);function KM(p,u=At.ofCaller()){let g=0;return Le(void 0,(v)=>{g=0;let S=new be(()=>{g=(g+1)%p.length,v(null),S.schedule(p[g].durationMs)},0);return S.schedule(0),S},()=>p[g].value,u)}function UM(p){return d((u)=>se.div({style:{},ref:(g)=>{let v=u.store.add(new ia(g,ui,{disableTitle:!0,...Tg,keybindingLabelShadow:void 0,keybindingLabelForeground:N(qa),keybindingLabelBackground:"transparent",keybindingLabelBorder:N(qa),keybindingLabelBottomBorder:void 0}));u.store.add(H((S)=>{v.set(p.read(S))}))}}))}var qM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}};function $M(p,u,g){let v=Math.max(1,Math.min(g,p)),S=Math.max(1,v-u),y=Math.min(g+1,v+u+1);return new Y(S,y)}var v_=class p 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,Q=this._parentEditorObs.getOption(71).read(D).edits.longDistanceHintContextLineCount,te=R==="modified"?this._previewTextModel:T.target.dangerouslyGetUnderlyingModel(),ne=$M(K,Q,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=[],Q=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:Q});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=Xe(this._parentEditor),this._register(H((D)=>{let T=this._state.read(D)?.textModel||null;if(T)this.previewEditor.setModel(T.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=Xe(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(Hl,this._previewEditorObs,d((D)=>{let T=this._state.read(D);if(!T)return;let R=this._properties.read(D);if(!R)return;return new Wg(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),Q=this._previewEditorObs.getLeftOfPosition(q.getStartPosition(),g),te=this._previewEditorObs.getLeftOfPosition(q.getEndPosition(),g),ne=ki(Q,0,R),re=ki(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)}};v_=qM([jM(4,L)],v_);function GM(p,u,g){let v=u.getStartPosition(),S=u.getEndPosition(),y=p.getLineContent(v.lineNumber);function D(q){let Q=y.charAt(q-1);return/[a-zA-Z0-9_]/.test(Q)}function T(q){let Q=y.charAt(q-1);return Q===" "||Q==="\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 sD(p,u){let{start:g,endExclusive:v}=p,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 w_{constructor(p,u,g){this._lineRangeInfo=p,this.availableSpaceSizes=p.sizes.map((v,S)=>{let y=p.lineRange.startLineNumber+S,D=g(y);return new Ba(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(p,u,g){let v=p-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(p,u,g,v){if(this._lineRangeInfo.lineRange.length<3)return;return ZM(this._lineRangeInfo.lineRange.addMargin(-1,-1),p,(S)=>{let y=this.getWidgetVerticalOutline(S,u,v),D=sD(y.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(D<v.minWidgetWidth)return;return{horizontalWidgetRange:B.ofStartAndLength(g-D,D),verticalWidgetRange:y}})}}function aD(p,u,g,v,S){let y=[],D=p.startLineNumber,T=g,R=[];for(let K=0;K<u.length;K++){let q=p.startLineNumber+K,Q=T+R.reduce((ne,re)=>ne+re.height,0),te=v.editor.getTopForLineNumber(q);if(K>0&&te!==Q)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,p.endLineNumberExclusive-D),top:T,sizes:R}),d({owner:"splitIntoContinuousLineRanges"},(K)=>v.observeTopForLineNumber(p.endLineNumberExclusive-1).read(K)).read(S),y}function ZM(p,u,g){for(let v=0;;v++){let S=u+v;if(S<=p.endLineNumberExclusive){let D=g(S);if(D!==void 0)return D}let y=u-v;if(y>=p.startLineNumber){let D=g(y);if(D!==void 0)return D}if(y<p.startLineNumber&&S>p.endLineNumberExclusive)return}}function XM(p,u){let g=[0],v=0;for(let S of p)v+=u(S),g.push(v);return g}var YM=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Bg=function(p,u){return function(g,v){u(g,v,p)}},JM=6,lC={EMPTY_SPACE:425,OVERLAY:375},QM=250,eO={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:QM},S_=class p 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 Q=this._viewState.read(q);return Q?new r(Q.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=d(this,(q)=>{let Q=this._viewState.read(q),te=this._hintTextPosition.read(q);if(!Q||!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=$E(this._editorObs,re,q),ge=this._editorObs.observeTopForLineNumber(re.startLineNumber).read(q);return aD(re,ae,ge,this._editorObs,q)}),this._isVisibleDelayed=qS(d(this,(q)=>this._viewState.read(q)?.hint.isVisible),(q,Q)=>q===!0&&Q===!1?200:0),this._previewEditorLayoutInfo=d(this,(q)=>{let Q=this._viewState.read(q);if(!Q||!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 qe=eO,We=ge+2,Je,tt,ot=(nn)=>nn===Q.hint.lineNumber?40:20;for(let nn of te){let Er=new w_(nn,Ae,ot);if(tt=Er,Je=Er.tryFindWidgetOutline(Q.hint.lineNumber,We,He,qe),Je)break}let je="empty-space";if(!Je){je="overlay";let nn=Math.min(ae.width-ae.contentLeft,lC.OVERLAY),Er=tt??new w_(te[0],Ae,ot);Je={horizontalWidgetRange:B.ofStartAndLength(He-nn,nn),verticalWidgetRange:Er.getWidgetVerticalOutline(Q.hint.lineNumber+2,We,qe).delta(10)}}if(!Je)return;let nt=xt.fromRanges(Je.horizontalWidgetRange,Je.verticalWidgetRange).translateX(-re).translateY(-ne),{previewEditorMargin:_t,widgetPadding:st,widgetBorder:Ct,lowerBarHeight:at}=qe,li=je==="overlay"?lC.OVERLAY:lC.EMPTY_SPACE,vt=ke.maxEditorWidth+_t+st,Ot=Math.min(li,Math.max(vt,qe.minWidgetWidth)),bi=rD(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-Ct-_t).withMargin(0,0,-at,0),gi=vi.width-ke.nonContentWidth,ai=gi*0.8,Gi=ke.preferredRangeToReveal.intersect(B.ofStartAndLength(ke.preferredRangeToReveal.start,ai))??ke.preferredRangeToReveal,zs=iO(ke.indentationEnd,gi,Gi);return{codeEditorSize:vi.getSize(),codeScrollLeft:re,contentLeft:ae.contentLeft,widgetRect:$t,previewEditorMargin:_t,widgetPadding:st,widgetBorder:Ct,lowerBarHeight:at,desiredPreviewEditorScrollLeft:zs.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(yo),padding:this._previewEditorLayoutInfo.map((Q)=>Q?.widgetPadding),boxSizing:"border-box",borderRadius:JM,border:d((Q)=>`${this._previewEditorLayoutInfo.read(Q)?.widgetBorder}px solid ${this._styles.read(Q).border}`),display:"flex",flexDirection:"column",opacity:d((Q)=>this._viewState.read(Q)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Ii((Q)=>this._previewEditorLayoutInfo.read(Q)?.widgetRect)},onmousedown:(Q)=>{Q.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[se.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map((Q)=>Q?.previewEditorMargin),background:this._styles.map((Q)=>Q.background),pointerEvents:"none"}},[d(this,(Q)=>this._previewEditor.element)]),se.div({class:"bar",style:{color:N(sy),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map((Q)=>Q?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[d(this,(Q)=>{let te=[],ne=this._viewState.read(Q);if(!ne)return te;let re=this._editorObs.model.read(Q),ae=ne.target.uri,ge=!re||!ne.target.targets(re);if(ge){let qe=pi(ae),Te=Rd(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"}}),qe]))}else{let qe=this._originalOutlineSource.read(Q),Te=this._originalTargetLineNumber.read(Q),We=qe?.getAt(Te,Q).slice(0,1)??[],Je=[];if(We.length>0)for(let tt=0;tt<We.length;tt++){let ot=We[tt],je=Zd.toIcon(ot.kind);Je.push(se.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[no(je)," ",ot.name,...tt===We.length-1?[]:[no(b.chevronRight)]]))}te.push(se.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Je))}let ke=this._originalTargetLineNumber.read(Q),Ae=ge?b.arrowRight:ne.hint.lineNumber<ke?b.arrowDown:b.arrowUp,He=this._keybindingService.lookupKeybinding(Lc),Ve=ge?"Go to file":"Go to suggestion";if(He&&He.getLabel()==="Tab")Ve=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"}},[Ve," ",no(Ae)])),te})])])),this._originalTargetLineNumber=d(this,(q)=>{let Q=this._viewState.read(q);if(!Q)return-1;if(Q.edit.action?.kind==="jumpTo")return Q.edit.action.position.lineNumber;return Q.diff[0]?.original.startLineNumber??-1}),this._originalOutlineSource=Ho(this,(q)=>{let Q=this._editorObs.model.read(q),te=fu._breadcrumbsSourceFactory.read(q);return!Q||!te?void 0:te(Q,this._instantiationService)}),this._styles=d((q)=>{let Q=this._tabAction.read(q),te=Ka(Sh,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(Q){case di.Inactive:ae=Nl;break;case di.Jump:ae=hs;break;case di.Accept:ae=Ml;break}re=yi(ae,this._themeService).read(q)}return{border:re.toString(),background:Ro(this._viewState.map((ae)=>ae?.editorType??ci.TextEditor).read(q))}}),this._editorObs=Xe(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(v_,this._previewTextModel,d((q)=>{let Q=this._viewState.read(q);if(!Q)return;return{diff:Q.diff,model:Q.model,inlineSuggestInfo:Q.inlineSuggestInfo,nextCursorPosition:Q.nextCursorPosition,target:Q.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 Q=this._previewEditorLayoutInfo.read(q);if(!Q)return;this._previewEditor.layout(Q.codeEditorSize.toDimension(),Q.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};S_=YM([Bg(4,L),Bg(5,De),Bg(6,ce),Bg(7,gt),Bg(8,pt)],S_);function tO(p,u=0){let g=[],v=u;for(let S of p)g.push(new B(v,v+S)),v+=S;return g}function iO(p,u,g){let v=new B(p,p+u);if(v.containsRange(g))return{newScrollPosition:p};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:p}}var oO=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},hC=function(p,u){return function(g,v){u(g,v,p)}},$l=0,Vg=0,Lr=1,nO=1,rO=3,Vs=xi,uC=20,dD=12,zg=class p extends n{static fitsInsideViewport(u,g,v,S){let y=Xe(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),Q=v.lineEdit.newLines.reduce((re,ae)=>Math.max(re,Fg(ae,u,g)),0),te=uC,ne=dD+2*Lr;return q+Q+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=Xe(this._editor),this._display=d(this,(Q)=>this._uiState.read(Q)?"block":"none"),this.previewRef=se.ref();let K=this._uiState.map((Q)=>Q?.editorType===ci.DiffEditor?rO:nO);this._editorContainer=se.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:(Q)=>{Q.preventDefault()},onclick:(Q)=>{this._onDidClick.fire(qo.create(Q))}},[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=Xe(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=d(this,(Q)=>{if(this._editorContainer.readEffect(Q),this._previewEditorObs.model.read(Q),this._display.read(Q),this._nonOverflowView)this._nonOverflowView.element.style.display=this._display.read(Q);let te=this._uiState.read(Q),ne=this._edit.read(Q);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,(Q)=>{let te=this._edit.read(Q);if(!te)return 0;return this._updatePreviewEditor.read(Q),on(this._previewEditorObs,te.modifiedLineRange,Q)}),this._cursorPosIfTouchesEdit=d(this,(Q)=>{let te=this._editorObs.cursorPosition.read(Q),ne=this._edit.read(Q);if(!ne||!te)return;return ne.modifiedLineRange.contains(te.lineNumber)?te:void 0}),this._originalStartPosition=d(this,(Q)=>{let te=this._edit.read(Q);return te?new r(te.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=d(this,(Q)=>{let te=this._edit.read(Q);return te?new r(te.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map((Q)=>Q?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map((Q)=>Q?.y),this._originalDisplayRange=this._edit.map((Q)=>Q?.displayRange),this._editorMaxContentWidthInRange=d(this,(Q)=>{let te=this._originalDisplayRange.read(Q);if(!te)return Se(0);return this._editorObs.versionId.read(Q),Bo(this,(ne,re)=>{let ae=on(this._editorObs,te,ne);return Math.max(ae,re??0)})}).map((Q,te)=>Q.read(te));let q=YE(this._editor,this._store);this._previewEditorLayoutInfo=d(this,(Q)=>{let te=this._edit.read(Q);if(!te)return null;if(!this._uiState.read(Q))return null;let re=te.originalLineRange,ae=this._editorObs.scrollLeft.read(Q),ge=this._editorMaxContentWidthInRange.read(Q),ke=this._editorObs.layoutInfo.read(Q),Ae=this._previewEditorWidth.read(Q),He=ke.contentWidth-ke.verticalScrollbarWidth,Ve=q.read(Q),qe=ke.contentLeft+ke.contentWidth+Ve.left,Te=F(this._editor.getContainerDomNode()).innerWidth-qe,We=F(this._editor.getContainerDomNode()).innerWidth-Ve.right,Je=Math.min(ke.contentWidth*0.3,Ae,100),tt=0,ot=tt+Te,je=this._cursorPosIfTouchesEdit.read(Q),nt=Math.max(He+ae-tt-Math.max(0,Je-ot),Math.min(je?GE(this._editorObs,je,Q)+50:0,He+ae)),_t=Math.min(ge+uC,nt),st=ge+uC+Ae+70,Ct=nt-_t,at,li;if(_t>ae)at=0,li=ke.contentLeft+_t-ae;else at=ae-_t,li=ke.contentLeft;let vt=this._originalVerticalStartPosition.read(Q)??this._editor.getTopForLineNumber(re.startLineNumber)-this._editorObs.scrollTop.read(Q),Ot=this._originalVerticalEndPosition.read(Q)??this._editor.getBottomForLineNumber(re.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(Q),bi=ke.contentLeft-ae,Zt=xt.fromLeftTopRightBottom(bi,vt,li,Ot),$t=Zt.height===0;if(!$t)Zt=Zt.withMargin(Vg,$l);let gi=this._previewEditorObs.observeLineHeightsForLineRange(te.modifiedLineRange).read(Q).reduce((P_,kD)=>P_+kD,0),ai=Ot-vt,Gi=Math.max(ai,gi),zs=Ct===0,nn=0,Er=Math.min(Ae+dD,We+ke.width-ke.contentLeft-nn),Xa=xt.fromLeftTopWidthHeight(Zt.right+nn,vt,Er,Gi);if(!$t)Xa=Xa.withMargin(Vg,$l).translateX($l+Lr);else Xa=Xa.withMargin(Vg,$l).translateY(Vg);return{codeRect:Zt,editRect:Xa,codeScrollLeft:ae,contentLeft:ke.contentLeft,isInsertion:$t,maxContentWidth:st,shouldShowShadow:zs,desiredPreviewEditorScrollLeft:at,previewEditorWidth:Er}}),this._stickyScrollController=Yr.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Le(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Se(0),this._shouldOverflow=d(this,(Q)=>!1),this._originalBackgroundColor=Le(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(Ua)??f.transparent),this._editorBackgroundColor=this._uiState.map((Q)=>Ro(Q?.editorType??ci.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,(Q)=>{let te=this._previewEditorLayoutInfo.read(Q);if(!te)return;if(this._originalBackgroundColor.read(Q).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((Q)=>Q?.isInsertion?"none":"block")}},d(this,(Q)=>{let te=xo(this._previewEditorLayoutInfo).read(Q);if(!te)return;let ne=this._editorBackgroundColor.read(Q),re=K.read(Q),ae=ja(this._tabAction).map((tt)=>`${Lr}px solid ${N(tt)}`),ge=`${Lr+re}px solid ${ne}`,ke=te.read(Q).codeScrollLeft!==0,Ae=te.map((tt)=>tt.codeRect.bottom<tt.editRect.bottom),He=Vs*2+Lr*2,Ve=te.map((tt)=>xt.fromLeftTopRightBottom(tt.contentLeft-Vs-Lr,tt.codeRect.top,tt.contentLeft,tt.codeRect.bottom+He)).read(Q),qe=new B(Ve.left,Number.MAX_SAFE_INTEGER),Te=te.map((tt)=>tt.codeRect.intersectHorizontal(qe)),We=Te.map((tt)=>tt.withMargin(re,0,re,re).intersectHorizontal(qe)),Je=Te.map((tt)=>xt.fromLeftTopWidthHeight(tt.right-He+Lr,tt.bottom-Lr,He,He).intersectHorizontal(qe));return[se.div({class:"originalSeparatorSideBySide",style:{...We.read(Q).toStyles(),boxSizing:"border-box",borderRadius:`${Vs}px 0 0 ${Vs}px`,borderTop:ge,borderBottom:ge,borderLeft:ke?"none":ge}}),se.div({class:"originalOverlaySideBySide",style:{...Te.read(Q).toStyles(),boxSizing:"border-box",borderRadius:`${Vs}px 0 0 ${Vs}px`,borderTop:ae,borderBottom:ae,borderLeft:ke?"none":ae,backgroundColor:N(Ua)}}),se.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:Ae.map((tt)=>tt?"block":"none"),...Je.read(Q).toStyles()}},[se.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:yi(Ua,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:{...Ve.toStyles(),backgroundColor:ne}})]})).keepUpdated(this._store),this._modifiedOverlay=se.div({style:{pointerEvents:"none"}},d(this,(Q)=>{let te=xo(this._previewEditorLayoutInfo).read(Q);if(!te)return;let ne=te.map((Te)=>Te.codeRect.bottom<Te.editRect.bottom),re=this._editorBackgroundColor.read(Q),ae=K.read(Q),ge=ne.map((Te)=>`0 ${Vs}px ${Vs}px ${Te?Vs:0}px`),ke=yi(Ws(this._tabAction),this._themeService).map((Te)=>`1px solid ${Te.toString()}`),Ae=`${Lr+ae}px solid ${re}`,He=te.map((Te)=>Te.editRect.withMargin(0,Lr)),Ve=He.map((Te)=>Te.withMargin(ae,ae,ae,0)),qe=d(this,(Te)=>{let We=He.read(Te),Je=te.read(Te);if(!Je.isInsertion||Je.contentLeft>=We.left)return xt.fromLeftTopWidthHeight(We.left,We.top,0,0);return new xt(Je.contentLeft,We.top,We.left,We.top+Lr*2)});return[se.div({class:"modifiedInsertionSideBySide",style:{...qe.read(Q).toStyles(),backgroundColor:Ws(this._tabAction).map((Te)=>N(Te))}}),se.div({class:"modifiedSeparatorSideBySide",style:{...Ve.read(Q).toStyles(),borderRadius:ge,borderTop:Ae,borderBottom:Ae,borderRight:Ae,boxSizing:"border-box"}}),se.div({class:"modifiedOverlaySideBySide",style:{...He.read(Q).toStyles(),borderRadius:ge,border:ke,boxSizing:"border-box",backgroundColor:N(c_)}})]})).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,(Q)=>this._shouldOverflow.read(Q)?[]:[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,(Q)=>{let te=this._previewEditorLayoutInfo.read(Q)?.maxContentWidth;if(te===void 0)return 0;return te})})),this.previewEditor.setModel(this._previewTextModel),this._register(H((Q)=>{let te=this._previewEditorLayoutInfo.read(Q);if(!te)return;let ne=te.editRect.withMargin(-Vg,-$l);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+$l}px`})),this._register(H((Q)=>{let te=this._previewEditorLayoutInfo.read(Q);if(!te)return;this._previewEditorObs.editor.setScrollLeft(te.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};zg=oO([hC(5,L),hC(6,De),hC(7,lr)],zg);var sO=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Kg=function(p,u){return function(g,v){u(g,v,p)}};class pC{constructor(p,u,g){this.edit=p,this.editorType=u,this.alternativeAction=g}equals(p){return this.edit.equals(p.edit)&&this.alternativeAction===p.alternativeAction}}var _o=1,cD="word-replacement-view-overlay",lD="word-replacement-view-widget",hD="word-replacement-view-replacement",gC="word-replacement-view-rename",Md=class p 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=La.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=Zc(new rc([Ae]),oa.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=US(this._viewData.alternativeAction?.count??new Promise((te)=>te(void 0))).map((te)=>te.value),Q=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,Ve=new Qn(Ae,4),qe=void 0;if(this._viewData.alternativeAction){let ot=this._viewData.alternativeAction.label,je=q.read(te),nt=Q.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]");qe={label:je!==void 0?nt?_t:ot:ot,tooltip:_t?`${_t}
|
|
48
|
+
${st}`:void 0,icon:void 0,count:je,keybinding:this._keybindingService.lookupKeybinding(_d),active:Q}}let Te=xt.fromPoints(ne,re).withHeight(ae).translateX(-ge),We=xt.fromPointSize(Te.getLeftBottom().add(Ve),new Qn(this._viewData.edit.text.length*ke,Te.height)),Je=We.withWidth(We.width+(qe?qe.label.length*ke+8+4+12:0)),tt=Je.withLeft(Te.left);return{alternativeAction:qe,originalLine:Te,codeLine:We,modifiedLine:Je,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+_o+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=ja(this._tabAction).map((je)=>N(je)).read(te),ae=Ws(this._tabAction).map((je)=>N(je)).read(te);this._line.style.lineHeight=`${ne.read(te).modifiedLine.height+2*_o}px`;let ge=Se(!1),ke=ne.map((je)=>je.alternativeAction),Ae=d((je)=>(ke.read(je)?.active.read(je)??!1)||ge.read(je)),Ve=Le(this._themeService.onDidColorThemeChange,()=>{let je=this._themeService.getColorTheme();return je.type==="hcDark"||je.type==="hcLight"}).read(te)?Ka(Re,this._themeService).read(te):null,qe={borderColor:Ve?Ve.toString():ae,backgroundColor:N(zE),color:"",opacity:"1"},Te={borderColor:Ve?Ve.toString():N(Bn),backgroundColor:N(hs),color:N(qa),opacity:"1"},We={borderColor:Ve?Ve.toString():Ka(gg,this._themeService).map((je)=>je.transparent(0.2).toString()).read(te),backgroundColor:Ro(this._viewData.editorType),color:"",opacity:"0.7"},Je=Ro(this._viewData.editorType),tt=d(this,(je)=>Ae.read(je)?qe:qe),ot=d(this,(je)=>Ae.read(je)?Te:We);return[se.div({id:cD,style:{position:"absolute",...Ii((je)=>Pl(this._editor).read(je)),overflow:"hidden",pointerEvents:"none"}},[se.div({style:{position:"absolute",...Ii((je)=>ne.read(je).lowerBackground.withMargin(_o,2*_o,_o,0)),background:Je,cursor:"pointer",pointerEvents:"auto"},onmousedown:(je)=>this._mouseDown(je)}),se.div({id:lD,style:{position:"absolute",...Ii((je)=>ne.read(je).modifiedLine.withMargin(_o,2*_o)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${xi}px`,background:Je,display:"flex",justifyContent:"left",outline:`2px solid ${Je}`},onmousedown:(je)=>this._mouseDown(je)},[se.div({id:hD,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Ii((je)=>ne.read(je).codeLine.withMargin(_o,2*_o)).width,borderRadius:`${xi}px`,border:tt.map((je)=>`${_o}px solid ${je.borderColor}`),boxSizing:"border-box",padding:`${_o}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 ia(_t,ui,{...i_,disableTitle:!0})).set(nt.keybinding),se.div({id:gC,style:{position:"relative",borderRadius:`${xi}px`,borderTop:`${_o}px solid`,borderRight:`${_o}px solid`,borderBottom:`${_o}px solid`,borderLeft:`${_o}px solid`,borderColor:ot.map((Ct)=>Ct.borderColor),opacity:ot.map((Ct)=>Ct.opacity),color:ot.map((Ct)=>Ct.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:ot.map((Ct)=>Ct.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:(Ct)=>{this._secondaryElement.set(Ct,void 0)},ref:(Ct)=>{if(nt.tooltip)je.store.add(this._hoverService.setupDelayedHoverAtMouse(Ct,{content:nt.tooltip,appearance:{compact:!0}}))}},[_t,m("div.inline-edit-alternative-action-label-separator"),nt.icon?no(nt.icon):void 0,nt.label])})]),se.div({style:{position:"absolute",...Ii((je)=>ne.read(je).originalLine.withMargin(_o)),boxSizing:"border-box",borderRadius:`${xi}px`,border:`${_o}px solid ${re}`,background:N(BE),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(gg)}),se.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:N(gg)})])])]})]).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([lD,hD,gC,cD]));if(!g)return;u.preventDefault(),this._onDidClick.fire(qo.create(u,g===gC))}};Md=sO([Kg(3,pt),Kg(4,De),Kg(5,ce),Kg(6,yn),Kg(7,lr)],Md);function aO(p,u){let g=p;while(g){if(u.has(g.id))return g.id;g=g.parentElement}return null}class mC extends n{constructor(p,u,g){super();this._originalEditor=p,this._state=u,this._modifiedTextModel=g,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this.isHovered=Xe(this._originalEditor).isTargetHovered((S)=>S.target.type===6&&S.target.detail.injectedText?.options.attachedData instanceof C_&&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=[],Q=[],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",Ve=y.mode==="lineReplacement";for(let qe of y.diff){if(He){if(!qe.original.isEmpty)q.push({range:qe.original.toInclusiveRange(),options:ne});if(!qe.modified.isEmpty)Q.push({range:qe.modified.toInclusiveRange(),options:te})}if(qe.modified.isEmpty||qe.original.isEmpty){if(!qe.original.isEmpty)q.push({range:qe.original.toInclusiveRange(),options:re});if(!qe.modified.isEmpty)Q.push({range:qe.modified.toInclusiveRange(),options:ae})}else{let Te=T&&dO(qe);for(let We of qe.innerChanges||[]){if(qe.original.contains(We.originalRange.startLineNumber)&&!(Ve&&We.originalRange.isEmpty())){let Je=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"&&Je===`
|
|
49
|
+
`)&&K&&!Te&&"diff-range-empty"),inlineClassName:Te?Al("strike-through","inlineCompletions"):null,zIndex:1}})}if(qe.modified.contains(We.modifiedRange.startLineNumber))Q.push({range:We.modifiedRange,options:We.modifiedRange.isEmpty()&&K&&!Te&&R?ke:ge});if(Te){let Je=D.getValueOfRange(We.modifiedRange),tt=Je.length>3?[{text:Je.slice(0,1),extraClasses:["start"],offsetRange:new B(We.modifiedRange.startColumn-1,We.modifiedRange.startColumn)},{text:Je.slice(1,-1),extraClasses:[],offsetRange:new B(We.modifiedRange.startColumn,We.modifiedRange.endColumn-2)},{text:Je.slice(-1),extraClasses:["end"],offsetRange:new B(We.modifiedRange.endColumn-2,We.modifiedRange.endColumn-1)}]:[{text:Je,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:Fr.None,attachedData:new C_(this)},zIndex:2,showIfCollapsed:!0}})}}}}if(y.editorType===ci.DiffEditor){for(let qe of y.diff)if(!qe.original.isEmpty)q.push({range:qe.original.toExclusiveRange(),options:Ae})}return{originalDecorations:q,modifiedDecorations:Q}}),this._register(Xe(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(Xe(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 C_&&y.owner===this)this._onDidClick.fire(new qo(S.event))}))}}class C_{constructor(p){this.owner=p}}function dO(p){if(!p.innerChanges)return!1;return p.innerChanges.every((u)=>My(u.modifiedRange)&&My(u.originalRange))}var cO=0;function lO(p){return Le(p.onDidChangeTokens,()=>cO++)}var hO=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},y_=class p 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)??di.Inactive),this.displayRange=d(this,(q)=>{let Q=this._uiState.read(q);if(!Q)return;if(Q.target.uri.toString()!==this._editorObs.model.read(q)?.uri.toString())return;if(Q.state?.kind==="custom"){let te=Q.state.displayLocation?.range;if(!te)throw new P("custom view should have a range");return new Y(te.startLineNumber,te.endLineNumber)}if(Q.state?.kind==="insertionMultiLine")return this._insertion.originalLines.read(q);return Q.edit.displayRange}),this._currentInlineEditCache=void 0,this._uiState=d(this,(q)=>{let Q=this._model.read(q),te=this._editorObs.model.read(q);if(!Q||!te||!this._constructorDone.read(q))return;let ne=Q.inlineEdit,re,ae,ge=void 0;if(ne.edit)ae=Li.fromEdit(ne.edit),ge=new Ta(ne.edit.apply(ne.originalText)),re=_h(ae,ne.originalText,ge);else ae=[],re=[],ge=ne.originalText;let ke=this._determineRenderState(Q,q,re,ge);if(!ke){J(Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}let Ae=this._getLongDistanceHintState(Q,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 qe=XE(ge.getValue(),ne.modifiedLineRange,te.getOptions().tabSize);ge=new Ta(qe.applyToString(ge.getValue())),ae=ZE(ae,qe),re=_h(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=to.replace(new B(0,He.length),ge.getValue()).removeCommonSuffixPrefix(He),We=Ld(this._previewTextModel).getTextEdit(Te);this._previewTextModel.edit(We)}if(this._showCollapsed.read(q))ke={kind:ht.Collapsed,viewData:ke.viewData};Q.handleInlineEditShownNextFrame(ke.kind,ke.viewData);let Ve=ne.action?.kind==="jumpTo"?ne.action.position:null;return{state:ke,diff:re,edit:ne,newText:ge.getValue(),newTextLineCount:ne.modifiedLineRange.length,editorType:Q.editorType,longDistanceHint:Ae,nextCursorPosition:Ve,target:ne.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=d(this,(q)=>this._sideBySide.isHovered.read(q)||this._wordReplacementViews.read(q).some((Q)=>Q.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((Q,te)=>Q?.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=Xe(this._editor),this._constructorDone=M(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(Uc,"",this._editor.getModel().getLanguageId(),{...Uc.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(zg,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(aC,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(f_,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(u_,this._editor,this._model.map((q,Q)=>this._uiState.read(Q)?.state?.kind===ht.Collapsed?q?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(m_,this._editor,this._model.map((q,Q)=>this._uiState.read(Q)?.state?.kind===ht.Custom?q?.displayLocation:void 0),this._tabAction,this._uiState.map((q)=>q?.editorType??ci.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(S_,this._editor,this._uiState.map((Q,te)=>Q?.longDistanceHint?{hint:Q.longDistanceHint,newTextLineCount:Q.newTextLineCount,edit:Q.edit,diff:Q.diff,editorType:Q.editorType,model:this._simpleModel.read(te),inlineSuggestInfo:this._inlineSuggestInfo.read(te),nextCursorPosition:Q.nextCursorPosition,target:Q.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=d(this,(q)=>{let Q=this._uiState.read(q);if(!Q||!Q.state)return;if(Q.state.kind==="wordReplacements"||Q.state.kind==="insertionMultiLine"||Q.state.kind==="collapsed"||Q.state.kind==="custom"||Q.state.kind==="jumpTo")return;return{modifiedText:new Ta(Q.newText),diff:Q.diff,mode:Q.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:Q.editorType}}),this._inlineDiffView=this._register(new mC(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(b_,this._editorObs,{style:"label"},d((q)=>{let Q=this._uiState.read(q);if(Q?.state?.kind===ht.JumpTo)return{jumpToPosition:Q.state.position};return})));let T=mn({equalsFn:Zv.arrayC(Zv.thisC())},(q)=>{let Q=this._uiState.read(q);return Q?.state?.kind===ht.WordReplacements?Q.state.replacements.map((te)=>new pC(te,Q.editorType,Q.state?.alternativeAction)):[]});this._wordReplacementViews=Kl(this,T,(q,Q)=>Q.add(this._instantiationService.createInstance(Md,this._editorObs,q,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(__,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??ci.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 Q=this._model.read(q);if(!Q)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(),Q.accept(te.alternativeAction)}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);let R=d(this,(q)=>Math.max(...this._wordReplacementViews.read(q).map((Q)=>Q.minEditorScrollHeight.read(q)),this._lineReplacementView.minEditorScrollHeight.read(q),this._customView.minEditorScrollHeight.read(q))).recomputeInitiallyAndOnChange(this._store),K;this._register(H((q)=>{let Q=R.read(q),te=this._editorObs.model.read(q);if(!te)return;this._editor.changeViewZones((ne)=>{let re=this._editor.getScrollHeight(),ae=Q-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 Q=y.originalLineRange.length,te=y.modifiedLineRange.length,ne=v.flatMap((ae)=>ae.innerChanges??[]),re=ne.length===1;if(u.editorType!==ci.DiffEditor){if(re&&this._useCodeShifting.read(g)!=="never"&&fD(v)){if(pO(v,y.cursorPosition))return ht.InsertionInline;return ht.LineReplacement}if(gD(ne,y,S))return ht.Deletion;if(uD(v)&&this._useCodeShifting.read(g)==="always")return ht.InsertionMultiLine;if(ne.every((ge)=>Nt.ofRange(ge.originalRange).columnCount<Md.MAX_LENGTH&&Nt.ofRange(ge.modifiedRange).columnCount<Md.MAX_LENGTH)&&re&&Q===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())||!pD(ne.map((Ae)=>new ct(Ae.originalRange,"")),y.originalText).some((Ae)=>Ae.range.isEmpty()&&Nt.ofRange(Ae.range).columnCount<Md.MAX_LENGTH))return ht.WordReplacements}}}if(Q>0&&te>0){if(Q===1&&te===1&&u.editorType!==ci.DiffEditor)return ht.LineReplacement;if(this._renderSideBySide.read(g)!=="never"&&zg.fitsInsideViewport(this._editor,this._previewTextModel,y,g))return ht.SideBySide;return ht.LineReplacement}if(u.editorType===ci.DiffEditor){if(gD(ne,y,S))return ht.Deletion;if(uD(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:mD()};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 Q=K.map((te)=>new ct(te.originalRange,te.modified));if(Q.length===0)return;if(D===ht.WordReplacements){let te=mO(Q,y.originalText);if(te.some((ne)=>ne.range.isEmpty()))te=pD(Q,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}};y_=hO([uO(5,L)],y_);var mD=()=>new ml(-1,-1,-1,-1,-1,-1,-1,!0);function gO(p,u,g){if(!p.edit)return mD();let v=p.cursorPosition,S=u.length===0?!1:u[0].modified.startsWith(g.getEOL());return new ml(p.edit.replacements.length===0?0:p.edit.replacements[0].range.getStartPosition().column-v.column,p.lineEdit.lineRange.startLineNumber-v.lineNumber+(S&&p.lineEdit.lineRange.startLineNumber>=v.lineNumber?1:0),p.lineEdit.lineRange.length,p.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 fD(p){return p.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(p,u){if(!u)return!1;if(!fD(p))return!1;let g=u;return p.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 uD(p){let u=p.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 gD(p,u,g){return p.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(p,u){return _D(p,u,(g)=>/^[a-zA-Z]$/.test(g))}function pD(p,u){return _D(p,u,(g)=>!/^\s$/.test(g))}function _D(p,u,g){let v=[];p.sort((y,D)=>t.compareRangesUsingStarts(y.range,D.range));for(let y of p){let D=y.range.startColumn-1,T=y.range.endColumn-2,R="",K="",q=u.getLineAt(y.range.startLineNumber),Q=u.getLineAt(y.range.endLineNumber);if(S(q[D]))while(S(q[D-1]))R=q[D-1]+R,D--;if(S(Q[T])||T<D)while(S(Q[T+1]))K+=Q[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(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},x_=class p 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 Q=K.stringEdit,te=R.inlineSuggestion.originalTextRef.getTransformer(),ne=Q.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 go(ne)}else q=void 0;return new iC(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 di.Jump;if(D.tabShouldAcceptInlineEdit.read(K))return di.Accept}return di.Inactive});return new oC(D,T,R)}),this._editorObs=Xe(this._editor),this.view=this._register(S.createInstance(y_,this._editor,this._inlineEditModel,this._model.map((y)=>y?Bl.fromInlineCompletionModel(y):void 0),this._inlineEdit.map((y)=>y?Wl.fromInlineSuggestion(y.inlineCompletion):void 0),this._showCollapsed))}};x_=fO([_O(3,L)],x_);var bO=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},I_=class p extends n{static{this.hot=Ng(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=Bo(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=Ho((y)=>{if(!this._everHadInlineEdit.read(y))return;return this._instantiationService.createInstance(x_,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)?di.Accept:di.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 di.Jump;if(D.tabShouldAcceptInlineEdit.read(q))return di.Accept}return di.Inactive}),gutterIndicatorOffset:R.gutterIndicatorOffset,inlineSuggestion:T.inlineSuggestion,model:D}}else return}),this._stablizedGhostTexts=K1(this._ghostTexts,this._store),this._editorObs=Xe(this._editor),this._ghostTextWidgets=Kl(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(pR(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 wm(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(Hl,this._editorObs,d((y)=>{let D=this._gutterIndicatorState.read(y);if(!D)return;return new Wg(Wl.fromInlineSuggestion(D.inlineSuggestion),D.displayRange,Bl.fromInlineCompletionModel(D.model),D.inlineSuggestion.action?.kind==="edit"?D.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((y,D)=>y?.tabAction?.read(D)??di.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(h_,D._inlineEditModel,Se(this._indicator),D.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(u){return this._instantiationService.createInstance(Wa,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}};I_=bO([vO(3,L)],I_);function wO(p,u){let g=p.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(p,u){if(!u.length)return 0;let g=0,v=0;while(p.startsWith(u,v))g++,v+=u.length;return g}var CO=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},Za=function(p,u){return function(g,v){u(g,v,p)}},us;S1((p)=>Ki.get(p));var Ki=class p extends n{static{us=this}static{this._instances=new Set}static{this.hot=Ng(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(u){let g=Np(u);if(!g)return null;return us.get(g)}static get(u){return I1(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=Ho(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=Pi(this),this._view=d((re)=>re.store.add(this._instantiationService.createInstance(I_.hot.read(re),this.editor,this.model,this._focusIsInMenu))),this._editorObs=Xe(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 wS(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&&Mr(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"&&Mr(Ae.nextEditUri,ge))ke.model.read(void 0)?.stop("automatic")}}))})),this._register(ar(this._editorObs.onDidType,(re,ae)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()})),this._register(ar(this._editorObs.onDidPaste,(re,ae)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()}));let q=new Set([Dh.Tab.id,Dh.DeleteLeft.id,Dh.DeleteRight.id,fr,"acceptSelectedSuggestion",oh.ID,ih.ID,qt.NextMatchFindAction,bs.ID,ad.ID,Yh.ID,Jh.ID,...Yp.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(ar(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||Ns.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 Q=Bo(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(ek(d((re)=>(this._playAccessibilitySignal.read(re),Q.read(re),{})),async(re,ae,ge,ke)=>{let Ae=this.model.get(),He=Ae?.state.get();if(!He||!Ae)return;if(await or(50,qv(ke)),await r_(this._suggestWidgetAdapter.selectedItem,Mi,()=>!1,qv(ke)),Ae=this.model.get(),He=Ae?.state.get(),!He||!Ae)return;let Ve=He.kind==="ghostText"?Ae.textModel.getLineContent(He.primaryGhostText.lineNumber):"";if(this._accessibilitySignalService.playSignal(He.kind==="ghostText"?Ge.inlineSuggestion:Ge.nextEditSuggestion),this.editor.getOption(12))if(He.kind==="ghostText")this._provideScreenReaderUpdate(He.primaryGhostText.renderForScreenReader(Ve));else{let qe=He.inlineSuggestion.targetRange.startLineNumber,Te=Ae.tabShouldAcceptInlineEdit.get(),We=Ae.tabShouldJumpToInlineEdit.get(),Je;if(Te){let tt=this._keybindingService.lookupKeybinding(fr)?.getAriaLabel();Je=tt?e(1262,"Next edit suggestion available on line {0}, press {1} to accept",qe,tt):e(1263,"Next edit suggestion available on line {0}, accept it to apply",qe)}else if(We){let tt=this._keybindingService.lookupKeybinding(Lc)?.getAriaLabel();Je=tt?e(1264,"Next edit suggestion available on line {0}, press {1} to jump",qe,tt):e(1265,"Next edit suggestion available on line {0}",qe)}else Je=e(1266,"Next edit suggestion available on line {0}",qe);this._provideScreenReaderUpdate(Je)}})),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 Gw(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()}};Ki=us=CO([Za(1,L),Za(2,V),Za(3,X),Za(4,Ne),Za(5,Bi),Za(6,j),Za(7,Br),Za(8,ce)],Ki);class L_ extends z{static{this.ID=_m}constructor(){super({id:L_.ID,label:h(1239,"Show Next Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(p,u){Ki.get(u)?.model.get()?.next()}}class k_ extends z{static{this.ID=fm}constructor(){super({id:k_.ID,label:h(1240,"Show Previous Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(p,u){Ki.get(u)?.model.get()?.previous()}}var yO="vscode://schemas/inlineCompletionProviderIdArgs";function xO(p){let u=[];if(p.providerId)u.push(p.providerId.toStringWithoutVersion()),u.push(p.providerId.extensionId+":*");return u}var bD=O1(N1({showNoResultNotification:Ku(qw()),providerId:Ku(A1(yO,k1())),explicit:Ku(qw()),changeHintData:Ku(D1())}),T1());class fC 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:bD.getJSONSchema()}]}})}async run(p,u,g){let v=p.get(ut),S=p.get(j),y=Ki.get(u),D=bD.validateOrThrow(g),T=D?.providerId?S.inlineCompletionsProvider.all(u.getModel()).find((R)=>xO(R).some((K)=>K===D.providerId)):void 0;if(await nR(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:gl.Info,message:e(1230,"No inline suggestion is available.")})}}}class _C 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,nu.negate())},menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1231,"Accept Word"),group:"primary",order:2}]})}async run(p,u){await Ki.get(u)?.model.get()?.acceptNextWord()}}class bC 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(p,u){await Ki.get(u)?.model.get()?.acceptNextLine()}}class vC 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(p,u){let g=Ki.getInFocusedEditorOrParent(p);if(g)g.model.get()?.accept(g.editor),g.editor.focus()}}bn.registerKeybindingRule({id:fr,weight:202,primary:2,when:_.and(Rt.inInlineEditsPreviewEditor)});class wC extends z{constructor(){super({id:_d,label:h(1245,"Accept Inline Suggestion Alternative Action"),precondition:_.and(Rt.inlineSuggestionAlternativeActionVisible,Rt.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(p,u){let g=Ki.getInFocusedEditorOrParent(p);if(g)g.model.get()?.accept(g.editor,!0),g.editor.focus()}}bn.registerKeybindingRule({id:_d,weight:203,primary:1026,when:_.and(Rt.inInlineEditsPreviewEditor)});class SC extends z{constructor(){super({id:Lc,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(p,u){let g=Ki.get(u);if(g)g.jump()}}class Ug extends z{static{this.ID=bm}constructor(){super({id:Ug.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(p,u){let g=Ki.getInFocusedEditorOrParent(p);Fe((v)=>{g?.model.get()?.stop("explicitCancel",v)}),g?.editor.focus()}}class E_ extends z{static{this.ID=Iu}constructor(){super({id:E_.ID,label:h(1248,"Toggle Inline Suggestions Show Collapsed"),precondition:_.true()})}async run(p,u){let g=p.get(X),v=g.getValue("editor.inlineSuggest.edits.showCollapsed");g.updateValue("editor.inlineSuggest.edits.showCollapsed",!v)}}bn.registerKeybindingRule({id:Ug.ID,weight:-1,primary:9,secondary:[1033],when:_.and(Rt.inInlineEditsPreviewEditor)});class D_ extends ln{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:D_.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(p){let u=p.get(X),v=u.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";u.updateValue("editor.inlineSuggest.showToolbar",v)}}class CC 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(p,u){let g=p.get(Xn),S=Ki.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(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},T_=function(p,u){return function(g,v){u(g,v,p)}};class vD{constructor(p,u,g){this.owner=p,this.range=u,this.controller=g}isValidForHoverAnchor(p){return p.type===1&&this.range.startColumn<=p.range.startColumn&&this.range.endColumn>=p.range.endColumn}}var R_=class p{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=Ki.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 pa(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 pa(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 pa(1000,this,v.range,u.event.posx,u.event.posy,!1)}if(v.type===9&&v.element){let S=Wa.getWarningWidgetContext(v.element);if(S&&g.shouldShowHoverAt(S.range))return new pa(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=Ki.get(this._editor);if(v&&v.shouldShowHoverAt(u.range))return[new vD(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(Ns.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}};R_=IO([T_(1,Vt),T_(2,L),T_(3,kn),T_(4,wo)],R_);class yC{}le(Ki.ID,L1(Ki.hot),3);I(fC);I(L_);I(k_);I(_C);I(bC);I(vC);I(wC);I(E_);I(Ug);I(SC);Ze(D_);I(CC);Ze(j0);Ze(H0);ya.register(R_);$c.register(new yC);var LO=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},xC,qg=class p{static{xC=this}static{this.ID="editor.contrib.contextmenu"}static get(u){return u.getContribution(xC.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(),Q=K.srcElement;if(!(Q.shadowRoot&&Ea(q)===Q.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 dl){let K=this._getMenuActions(u,R.item.submenu);if(K.length>0)v.push(new Or(R.id,R.label,K)),T++}else v.push(R),T++;if(T)v.push(new Qe)}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)&&!co;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 yl(y,y,{label:!0,keybinding:D.getLabel(),isMenu:!0});let T=y;if(typeof T.getActionViewItem==="function")return T.getActionViewItem();return new yl(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(BR(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 Or(`menu-action-${++v}`,K,q,void 0),D=(K,q,Q,te,ne)=>{if(!q)return S({label:K,enabled:q,run:()=>{}});let re=(ge)=>()=>{this._configurationService.updateValue(Q,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 Qe),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)&&!co;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()}};qg=xC=LO([Od(1,Dn),Od(2,Hr),Od(3,V),Od(4,ce),Od(5,hi),Od(6,X),Od(7,$s)],qg);class wD 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(p,u){qg.get(u)?.showContextMenu()}}le(qg.ID,qg,2);I(wD);class IC extends n{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(p){super();this.editor=p,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let p=Oi.get(this.editor);if(p&&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"));p.showMessage(u,this.editor.getPosition())}}}le(IC.ID,IC,2);class LC extends ln{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:LC.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=!tu.getTabFocusMode();if(tu.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"))}}Ze(LC);var SD=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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(p,u){return function(g,v){u(g,v,p)}},kO=26,N_=class p extends n{constructor(u,g){super();this._editor=u,this.instantiationService=g,this.banner=this._register(this.instantiationService.createInstance(EC))}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)}};N_=SD([kC(1,L)],N_);var EC=class p 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(Fd,this.messageActionsContainer,{...D,tabIndex:-1},{}));let y=w(this.element,m("div.action-container"));this.actionBar=this._register(new $i(y)),this.actionBar.push(this._register(new eo("banner.close",e(1607,"Close Banner"),G.asClassName(o_),!0,()=>{if(typeof u.onClose==="function")u.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};EC=SD([kC(0,L),kC(1,wo)],EC);var MC=function(p,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(p,u,g,v);else for(var T=p.length-1;T>=0;T--)if(D=p[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},jg=function(p,u){return function(g,v){u(g,v,p)}},EO=Lt("extensions-warning-message",b.warning,e(1608,"Icon shown with a warning message in the extensions editor.")),Gg=class p 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 Xg};else if(y.ambiguousCharacterCount>=D)T={message:e(1610,"This document contains many ambiguous unicode characters"),command:new Pd};else if(y.invisibleCharacterCount>=D)T={message:e(1611,"This document contains many invisible unicode characters"),command:new Zg};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(N_,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 ul.NumberFormat().value.resolvedOptions().locale;else if(v==="_vscode")return qI;return v})};if(this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri))this._highlighter=new TC(this._editor,g,this._updateState,this._editorWorkerService);else this._highlighter=new CD(this._editor,g,this._updateState)}getDecorationInfo(u){if(this._highlighter)return this._highlighter.getDecorationInfo(u);return null}};Gg=MC([jg(1,fi),jg(2,X0),jg(3,L)],Gg);function DO(p,u){return{nonBasicASCII:u.nonBasicASCII===xs?!p:u.nonBasicASCII,ambiguousCharacters:u.ambiguousCharacters,invisibleCharacters:u.invisibleCharacters,includeComments:u.includeComments===xs?!p:u.includeComments,includeStrings:u.includeStrings===xs?!p:u.includeStrings,allowedCharacters:u.allowedCharacters,allowedLocales:u.allowedLocales}}var TC=class p 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:M_.instance.getDecorationFromOptions(this._options)});this._decorations.set(v)})}getDecorationInfo(u){if(!this._decorations.has(u))return null;let g=this._editor.getModel();if(!my(g,u))return null;let v=g.getValueInRange(u.range);return{reason:xD(v,this._options),inComment:R0(g,u),inString:$0(g,u)}}};TC=MC([jg(3,fi)],TC);class CD extends n{constructor(p,u,g){super();this._editor=p,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 p=this._editor.getVisibleRanges(),u=[],g={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let v of p){let S=ug.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:M_.instance.getDecorationFromOptions(this._options)});this._updateState(g),this._decorations.set(u)}getDecorationInfo(p){if(!this._decorations.has(p))return null;let u=this._editor.getModel(),g=u.getValueInRange(p.range);if(!my(u,p))return null;return{reason:xD(g,this._options),inComment:R0(u,p),inString:$0(u,p)}}}var yD=e(1612,"Configure Unicode Highlight Options"),RC=class p{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(Gg.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 Q=v.getValueInRange(R.range).codePointAt(0),te=DC(Q),ne;switch(K.reason.kind){case 0:{if(Nc(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,DC(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,DC(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:Q,reason:K.reason,inComment:K.inComment,inString:K.inString},ae=e(1617,"Adjust settings"),ge=F0(O_.ID,re),ke=new wn("",!0).appendMarkdown(ne).appendText(" ").appendLink(ge,ae,yD);y.push(new Lo(this,R.range,[ke],!1,T++))}return y}renderHoverParts(u,g){return Uk(u,g,this._editor,this._markdownRendererService)}getAccessibleContent(u){return u.contents.map((g)=>g.value).join(`
|
|
61
|
+
`)}};RC=MC([jg(1,wo)],RC);function NC(p){return`U+${p.toString(16).padStart(4,"0")}`}function DC(p){let u=`\`${NC(p)}\``;if(!ql.isInvisibleCharacter(p))u+=` "${`${TO(p)}`}"`;return u}function TO(p){if(p===96)return"`` ` ``";return"`"+String.fromCodePoint(p)+"`"}function xD(p,u){return ug.computeUnicodeHighlightReason(p,u)}class M_{constructor(){this.map=new Map}static{this.instance=new M_}getDecorationFromOptions(p){return this.getDecoration(!p.includeComments,!p.includeStrings)}getDecoration(p,u){let g=`${p}${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:p,hideInStringTokens:u}),this.map.set(g,v);return v}}class ID extends z{constructor(){super({id:Pd.ID,label:h(1626,"Disable highlighting of characters in comments"),precondition:void 0});this.shortLabel=e(1618,"Disable Highlight In Comments")}async run(p,u){let g=p.get(X);if(g)this.runAction(g)}async runAction(p){await p.updateValue(Dr.includeComments,!1,2)}}class LD extends z{constructor(){super({id:Pd.ID,label:h(1627,"Disable highlighting of characters in strings"),precondition:void 0});this.shortLabel=e(1619,"Disable Highlight In Strings")}async run(p,u){let g=p.get(X);if(g)this.runAction(g)}async runAction(p){await p.updateValue(Dr.includeStrings,!1,2)}}class Pd extends ln{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:Pd.ID,title:h(1628,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1});this.shortLabel=e(1620,"Disable Ambiguous Highlight")}async run(p,u){let g=p.get(X);if(g)this.runAction(g)}async runAction(p){await p.updateValue(Dr.ambiguousCharacters,!1,2)}}class Zg extends ln{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:Zg.ID,title:h(1629,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1});this.shortLabel=e(1621,"Disable Invisible Highlight")}async run(p,u){let g=p.get(X);if(g)this.runAction(g)}async runAction(p){await p.updateValue(Dr.invisibleCharacters,!1,2)}}class Xg extends ln{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:Xg.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(p,u){let g=p.get(X);if(g)this.runAction(g)}async runAction(p){await p.updateValue(Dr.nonBasicASCII,!1,2)}}class O_ extends ln{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:O_.ID,title:h(1631,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(p,u){let{codePoint:g,reason:v,inString:S,inComment:y}=u,D=String.fromCodePoint(g),T=p.get(dn),R=p.get(X);function K(ne){if(ql.isInvisibleCharacter(ne))return e(1623,"Exclude {0} (invisible character) from being highlighted",NC(ne));return e(1624,"Exclude {0} from being highlighted",`${NC(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 ID;q.push({label:ne.label,run:async()=>ne.runAction(R)})}else if(S){let ne=new LD;q.push({label:ne.label,run:async()=>ne.runAction(R)})}function Q(ne){return typeof ne.desc.title==="string"?ne.desc.title:ne.desc.title.value}if(v.kind===0){let ne=new Pd;q.push({label:Q(ne),run:async()=>ne.runAction(R)})}else if(v.kind===1){let ne=new Zg;q.push({label:Q(ne),run:async()=>ne.runAction(R)})}else if(v.kind===2){let ne=new Xg;q.push({label:Q(ne),run:async()=>ne.runAction(R)})}else MO(v);let te=await T.pick(q,{title:yD});if(te)await te.run()}}async function RO(p,u){let g=p.getValue(Dr.allowedCharacters),v;if(typeof g==="object"&&g)v=g;else v={};for(let S of u)v[String.fromCodePoint(S)]=!0;await p.updateValue(Dr.allowedCharacters,v,2)}async function NO(p,u){let g=p.inspect(Dr.allowedLocales).user?.value,v;if(typeof g==="object"&&g)v=Object.assign({},g);else v={};for(let S of u)v[S]=!0;await p.updateValue(Dr.allowedLocales,v,2)}function MO(p){throw Error(`Unexpected value: ${p}`)}Ze(Pd);Ze(Zg);Ze(Xg);Ze(O_);le(Gg.ID,Gg,1);ya.register(RC);export{It,Um,Wd,Gx,Kx,Jx,qm,Gm,MS,Yx,Vl,Ul,BI,zv,Vd,ya,Km,jp,Zx,Xx,PS,FS,Qx,jS,Ud,Wv,e0,t0,Hp,Jm,Bp,Ym,n0,lo,Zm,HS,qd,Yr,BS};
|
|
62
|
+
|
|
63
|
+
//# debugId=5C33CAACE003C97A64756E2164756E21
|
|
64
|
+
//# sourceMappingURL=studio-mb8jhtr4.js.map
|