@reformer/builder 3.0.0-beta.5 → 3.0.0-beta.7

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.
Files changed (167) hide show
  1. package/README.md +32 -198
  2. package/bin/reformer-builder.d.mts +7 -9
  3. package/bin/reformer-builder.mjs +43 -54
  4. package/dist/assets/css/index-DgRudQqc.css +1 -0
  5. package/dist/assets/css/monaco-runtime-Ch4loDnq.css +1 -0
  6. package/dist/assets/i18n/en-DHElWsPO.js +1 -0
  7. package/dist/assets/i18n/ru-DXsuKRv9.js +1 -0
  8. package/dist/assets/js/index-BSeq6-8S.js +67 -0
  9. package/dist/assets/js/index-CQvmAVe0.js +115 -0
  10. package/dist/assets/js/naming-9aaM0Wbc.js +1 -0
  11. package/dist/assets/js/rules-CM1OzesO.js +1 -0
  12. package/dist/assets/js/selectors-BiPlGN2c.js +1 -0
  13. package/dist/assets/monaco/html-R9lQ-L9C.js +1 -0
  14. package/dist/assets/monaco/javascript-COUjr2au.js +1 -0
  15. package/dist/assets/monaco/jsonMode-C3DAkvde.js +12 -0
  16. package/dist/assets/monaco/monaco-runtime-DNdOZY7f.js +924 -0
  17. package/dist/assets/monaco/typescript-CVSiBX9O.js +1 -0
  18. package/dist/assets/monaco/xml-ee1lph4p.js +1 -0
  19. package/dist/assets/monaco/yaml-DXPc9WLc.js +1 -0
  20. package/dist/assets/{byok-B9mwOrn0.js → plugins/ai-byok-DgeZQTZb.js} +55 -55
  21. package/dist/assets/plugins/ai-jKAVkXuU.js +178 -0
  22. package/dist/assets/plugins/ai-knowledge-docs-DCjqodcj.js +1 -0
  23. package/dist/assets/plugins/ai-knowledge-index-bUfNPqlZ.js +1 -0
  24. package/dist/assets/plugins/codegen-B0riFOHC.js +416 -0
  25. package/dist/assets/{MarkdownPreview-CmqjlfzE.js → plugins/editor-markdown-MarkdownPreview-DyHZvj8H.js} +20 -20
  26. package/dist/assets/plugins/editor-markdown-oiBrRpM4.js +2 -0
  27. package/dist/assets/plugins/editor-schema-CVPAk-MV.js +4 -0
  28. package/dist/assets/plugins/plugin-manager-BmjjSqYy.js +1 -0
  29. package/dist/assets/plugins/templates-DNeIl0cD.js +2 -0
  30. package/dist/assets/vendor/ajv-CCplthOF.js +8 -0
  31. package/dist/assets/vendor/collapsible-base-DZxAKbAF-h07cIL_F.js +1 -0
  32. package/dist/assets/vendor/highlight.js/common-g0-hl6Ud.js +5 -0
  33. package/dist/assets/vendor/index-jGqhTST4.js +6 -0
  34. package/dist/assets/vendor/lucide-react/eye-COs0olKf.js +1 -0
  35. package/dist/assets/vendor/lucide-react/file-code-corner-BMVX-Qf1.js +1 -0
  36. package/dist/assets/vendor/lucide-react/rotate-ccw-D0mVnqJN.js +1 -0
  37. package/dist/assets/vendor/lucide-react/wrench-BX6KiYsu.js +1 -0
  38. package/dist/assets/vendor/message-base-B5jT1FuY-GU8TkaN4.js +1 -0
  39. package/dist/assets/vendor/reformer-cdk/async-boundary-DPu-1Ifi.js +1 -0
  40. package/dist/assets/vendor/reformer-cdk/define-steps-CyGUrx9p-B_03D9I7.js +1 -0
  41. package/dist/assets/vendor/reformer-cdk/file-upload-C_DEa-OT.js +1 -0
  42. package/dist/assets/vendor/reformer-cdk/form-array-DRkRfAUh.js +1 -0
  43. package/dist/assets/vendor/reformer-cdk/form-wizard-DFqFjH7E.js +1 -0
  44. package/dist/assets/vendor/reformer-cdk/index-BXFomK5m.js +1 -0
  45. package/dist/assets/vendor/reformer-cdk/list-BrqYwhrQ.js +1 -0
  46. package/dist/assets/vendor/reformer-form-registry/index-s1IAa6Lm.js +1 -0
  47. package/dist/assets/vendor/reformer-form-registry/loader-BK2c_fCA-D59m3JOQ.js +2 -0
  48. package/dist/assets/vendor/reformer-form-registry/react-B8lbN6s4.js +1 -0
  49. package/dist/assets/vendor/reformer-form-registry/storage-BbhnRE7V.js +1 -0
  50. package/dist/assets/vendor/reformer-form-registry/types-DoMH_n1U-BSN9tyeo.js +1 -0
  51. package/dist/assets/vendor/reformer-renderer-json/validate-C5Gll2Yt.js +8 -0
  52. package/dist/assets/vendor/reformer-ui-kit/alert-base-WOl_V-qI-CYoSap05.js +1 -0
  53. package/dist/assets/vendor/reformer-ui-kit/component-catalog-BKjWf5Yx.js +1 -0
  54. package/dist/assets/{typescript-DL3gRsAd.js → vendor/typescript/typescript-Dp5hP5cS.js} +1 -1
  55. package/dist/index.html +4 -4
  56. package/package.json +15 -18
  57. package/runtime-config.schema.json +17 -60
  58. package/dist/assets/App-BupMDG_t.js +0 -1137
  59. package/dist/assets/BootError-CWnToysV.js +0 -1
  60. package/dist/assets/ChatPanel-B4wt7hBH.js +0 -82
  61. package/dist/assets/CodeEditor-Cca8j3Z3.js +0 -1
  62. package/dist/assets/RawJsonEditor-D5mwkIJa.js +0 -1
  63. package/dist/assets/abap-DLDM7-KI.js +0 -1
  64. package/dist/assets/apex-DNDY2TF8.js +0 -1
  65. package/dist/assets/azcli-Y6nb8tq_.js +0 -1
  66. package/dist/assets/bat-BwHxbl9M.js +0 -1
  67. package/dist/assets/bicep-CFznDFnq.js +0 -2
  68. package/dist/assets/boot-BCJd6Ujw.js +0 -2
  69. package/dist/assets/cameligo-Bf6VGUru.js +0 -1
  70. package/dist/assets/clojure-Dnu-v4kV.js +0 -1
  71. package/dist/assets/coffee-Bd8akH9Z.js +0 -1
  72. package/dist/assets/cpp-BbWJElDN.js +0 -1
  73. package/dist/assets/csharp-Co3qMtFm.js +0 -1
  74. package/dist/assets/csp-D-4FJmMZ.js +0 -1
  75. package/dist/assets/cypher-cTPe9QuQ.js +0 -1
  76. package/dist/assets/dart-BOtBlQCF.js +0 -1
  77. package/dist/assets/dockerfile-BG73LgW2.js +0 -1
  78. package/dist/assets/ecl-BEgZUVRK.js +0 -1
  79. package/dist/assets/editor-BzOv8av-.css +0 -1
  80. package/dist/assets/editor.api-BWDeQ8t4.js +0 -865
  81. package/dist/assets/elixir-BkW5O-1t.js +0 -1
  82. package/dist/assets/flow9-BeJ5waoc.js +0 -1
  83. package/dist/assets/freemarker2-DQaxDgne.js +0 -3
  84. package/dist/assets/fsharp-PahG7c26.js +0 -1
  85. package/dist/assets/go-acbASCJo.js +0 -1
  86. package/dist/assets/graphql-BxJiqAUM.js +0 -1
  87. package/dist/assets/handlebars-e1hbsCFi.js +0 -1
  88. package/dist/assets/hcl-DtV1sZF8.js +0 -1
  89. package/dist/assets/html-QXilGQ4Y.js +0 -1
  90. package/dist/assets/index-BLGbxQaR.js +0 -104
  91. package/dist/assets/index-BwhW-Atz.js +0 -3
  92. package/dist/assets/index-BxUg93Np.css +0 -1
  93. package/dist/assets/index-CF7RI8Bt.js +0 -68
  94. package/dist/assets/index-CLTXPf4k.js +0 -11
  95. package/dist/assets/index-Crsub4wy.js +0 -5028
  96. package/dist/assets/index-DhcNqNgT.js +0 -10
  97. package/dist/assets/index-DzAasWzr.css +0 -1
  98. package/dist/assets/index-U9gpmElw.js +0 -4709
  99. package/dist/assets/index-eRs9yupj.js +0 -1
  100. package/dist/assets/ini-Kd9XrMLS.js +0 -1
  101. package/dist/assets/java-CXBNlu9o.js +0 -1
  102. package/dist/assets/javascript-C7cOj8ds.js +0 -1
  103. package/dist/assets/jsonMode-BgHFRVOe.css +0 -1
  104. package/dist/assets/jsonMode-DEqS3I0B.js +0 -70
  105. package/dist/assets/julia-cl7-CwDS.js +0 -1
  106. package/dist/assets/kotlin-s7OhZKlX.js +0 -1
  107. package/dist/assets/less-9HpZscsL.js +0 -2
  108. package/dist/assets/lexon-OrD6JF1K.js +0 -1
  109. package/dist/assets/liquid-grdNDW6i.js +0 -1
  110. package/dist/assets/load-QsSQTL2T.js +0 -11
  111. package/dist/assets/lua-Cyyb5UIc.js +0 -1
  112. package/dist/assets/m3-B8OfTtLu.js +0 -1
  113. package/dist/assets/mdx-BGpbXlZS.js +0 -1
  114. package/dist/assets/mips-CiqrrVzr.js +0 -1
  115. package/dist/assets/monaco-languages-BZWxuU3F.js +0 -2
  116. package/dist/assets/monaco-setup-1PbjxubL.js +0 -12
  117. package/dist/assets/msdax-DmeGPVcC.js +0 -1
  118. package/dist/assets/mysql-C_tMU-Nz.js +0 -1
  119. package/dist/assets/objective-c-BDtDVThU.js +0 -1
  120. package/dist/assets/pascal-vHIfCaH5.js +0 -1
  121. package/dist/assets/pascaligo-DtZ0uQbO.js +0 -1
  122. package/dist/assets/perl-Ub6l9XKa.js +0 -1
  123. package/dist/assets/pgsql-BlNEE0v7.js +0 -1
  124. package/dist/assets/php-BBUBE1dy.js +0 -1
  125. package/dist/assets/pla-DSh2-awV.js +0 -1
  126. package/dist/assets/postiats-CocnycG-.js +0 -1
  127. package/dist/assets/powerquery-tScXyioY.js +0 -1
  128. package/dist/assets/powershell-COWaemsV.js +0 -1
  129. package/dist/assets/protobuf-Brw8urJB.js +0 -2
  130. package/dist/assets/pug-8SOpv6rk.js +0 -1
  131. package/dist/assets/python-D5X7CY5Y.js +0 -1
  132. package/dist/assets/qsharp-Bw9ernYp.js +0 -1
  133. package/dist/assets/r-j7ic8hl3.js +0 -1
  134. package/dist/assets/razor-B2pbhZKy.js +0 -1
  135. package/dist/assets/redis-Bu5POkcn.js +0 -1
  136. package/dist/assets/redshift-Bs9aos_-.js +0 -1
  137. package/dist/assets/reformer-ui-kit-11-bLtlFFvp.js +0 -1
  138. package/dist/assets/reformer-ui-kit-tUqYBSLv.js +0 -1
  139. package/dist/assets/restructuredtext-CqXO7rUv.js +0 -1
  140. package/dist/assets/ruby-zBfavPgS.js +0 -1
  141. package/dist/assets/rust-BzKRNQWT.js +0 -1
  142. package/dist/assets/sb-BBc9UKZt.js +0 -1
  143. package/dist/assets/scala-D9hQfWCl.js +0 -1
  144. package/dist/assets/scheme-BPhDTwHR.js +0 -1
  145. package/dist/assets/scss-CBJaRo0y.js +0 -3
  146. package/dist/assets/shell-DiJ1NA_G.js +0 -1
  147. package/dist/assets/solidity-Db0IVjzk.js +0 -1
  148. package/dist/assets/sophia-CnS9iZB_.js +0 -1
  149. package/dist/assets/sparql-CJmd_6j2.js +0 -1
  150. package/dist/assets/sql-ClhHkBeG.js +0 -1
  151. package/dist/assets/st-CHwy0fLd.js +0 -1
  152. package/dist/assets/swift-CnmFD0ga.js +0 -1
  153. package/dist/assets/systemverilog-Bs9z6M-B.js +0 -1
  154. package/dist/assets/tcl-Dm6ycUr_.js +0 -1
  155. package/dist/assets/twig-Csy3S7wG.js +0 -1
  156. package/dist/assets/typescript-Ccn-IGn9.js +0 -1
  157. package/dist/assets/typespec-Btyra-wh.js +0 -1
  158. package/dist/assets/useFormField-BLbvmpme-Dwz_jyMW.js +0 -1
  159. package/dist/assets/vb-Db0cS2oM.js +0 -1
  160. package/dist/assets/wgsl-BTesnYfV.js +0 -298
  161. package/dist/assets/xml-NgTjWpvZ.js +0 -1
  162. package/dist/assets/yaml-CboCRslW.js +0 -1
  163. /package/dist/assets/{codicon-Brq4_Ui5.ttf → fonts/codicon-Brq4_Ui5.ttf} +0 -0
  164. /package/dist/assets/{css-DdJfP1eB.js → monaco/css-DdJfP1eB.js} +0 -0
  165. /package/dist/assets/{editor.worker-CRaYpIdo.js → monaco/editor.worker-CRaYpIdo.js} +0 -0
  166. /package/dist/assets/{json.worker-C5PEkLU0.js → monaco/json.worker-C5PEkLU0.js} +0 -0
  167. /package/dist/assets/{markdown-BFxVWTOG.js → monaco/markdown-BFxVWTOG.js} +0 -0
@@ -1,70 +0,0 @@
1
- import{a as L,A as tt,C as T,I as Ie,D as tl,b as Ue,g as If,M as q,c as U,d as vi,e as C,r as he,f as Mi,h as m,i as dR,j as Ee,R as ie,S as J,k as It,n as mi,o as pe,p as ae,q as P,s as F,K as Ge,t as V,u as A,v as et,w as I,x as te,O as wn,y as Xe,P as $,z as Tc,B as cR,F as Cp,G as Pc,H as Ux,$ as B,T as ce,J as re,L as Pe,N as ee,Q as Ke,U as no,V as W,W as Zh,X as xf,Y as hR,Z as Ve,_ as uR,a0 as Xr,a1 as Mt,a2 as K,a3 as so,a4 as G,a5 as Nt,a6 as _o,a7 as gR,a8 as $x,a9 as Le,aa as mt,ab as wm,ac as zx,ad as jx,ae as Te,af as Lf,ag as fR,ah as Oc,ai as Mc,aj as ye,ak as pR,al as pi,am as mR,an as oo,ao as Je,ap as Y,aq as ke,ar as tS,as as Es,at as _R,au as z,av as Vn,aw as od,ax as vR,ay as Ht,az as Xh,aA as bR,aB as iS,aC as Rn,aD as os,aE as wp,aF as As,aG as SR,aH as Tt,aI as Ac,aJ as Lt,aK as Tr,aL as CR,aM as rs,aN as nS,aO as dt,aP as qx,aQ as GC,aR as sS,aS as il,aT as wR,aU as yR,aV as Pt,aW as li,aX as it,aY as Ai,aZ as IR,a_ as Dl,a$ as Kx,b0 as oS,b1 as Gx,b2 as Yh,b3 as xR,b4 as LR,b5 as DR,b6 as Jh,b7 as ER,b8 as Ze,b9 as Gn,ba as Yt,bb as de,bc as Un,bd as RR,be as sn,bf as ri,bg as vo,bh as rS,bi as $d,bj as Pr,bk as Zx,bl as aS,bm as nt,bn as Fc,bo as ro,bp as rd,bq as ze,br as ym,bs as Ne,bt as R,bu as Xx,bv as NR,bw as le,bx as lS,by as we,bz as Df,bA as nl,bB as kR,bC as Yx,bD as zd,bE as ao,bF as jd,bG as Nn,bH as Ef,bI as dS,bJ as cS,bK as Ce,bL as Wi,bM as Wc,bN as TR,bO as Th,bP as hS,bQ as PR,bR as Qh,bS as uS,bT as sl,bU as Hi,bV as as,bW as fe,bX as ol,bY as Jx,bZ as _i,b_ as gS,b$ as rl,c0 as j,c1 as qd,c2 as Or,c3 as Kd,c4 as bo,c5 as Im,c6 as fS,c7 as Qx,c8 as OR,c9 as eL,ca as Hc,cb as xt,cc as Vc,cd as ni,ce as So,cf as MR,cg as xe,ch as ya,ci as ZC,cj as Bc,ck as tL,cl as Ia,cm as AR,cn as Ei,co as Co,cp as yn,cq as bi,cr as FR,cs as iL,ct as XC,cu as yp,cv as WR,cw as kt,cx as nL,cy as HR,cz as sL,cA as Uc,cB as VR,cC as oL,cD as di,cE as BR,cF as lo,cG as pS,cH as UR,cI as YC,cJ as JC,cK as $R,cL as xa,cM as rL,cN as zR,cO as jR,cP as Ln,cQ as qR,cR as KR,cS as Yn,cT as aL,cU as lL,cV as $t,cW as wo,cX as Gd,cY as dL,cZ as gi,c_ as Mr,c$ as Ar,d0 as GR,d1 as ZR,d2 as XR,d3 as cL,d4 as Ph,d5 as xm,d6 as YR,d7 as yt,d8 as mS,d9 as hL,da as st,db as Rf,dc as _S,dd as vS,de as JR,df as QR,dg as QC,dh as e0,di as $c,dj as Lm,dk as Fr,dl as We,dm as co,dn as t0,dp as ki,dq as si,dr as ew,ds as El,dt as Jn,du as on,dv as i0,dw as ci,dx as al,dy as Nf,dz as uL,dA as n0,dB as s0,dC as bS,dD as o0,dE as Zd,dF as r0,dG as tw,dH as a0,dI as eu,dJ as gL,dK as iw,dL as l0,dM as d0,dN as c0,dO as SS,dP as fL,dQ as pL,dR as mL,dS as _L,dT as h0,dU as Fs,dV as u0,dW as vL,dX as bL,dY as g0,dZ as kf,d_ as f0,d$ as SL,e0 as $e,e1 as CS,e2 as p0,e3 as Ao,e4 as nw,e5 as m0,e6 as _0,e7 as v0,e8 as b0,e9 as S0,ea as C0,eb as at,ec as Tf,ed as CL,ee as Rl,ef as Dm,eg as w0,eh as y0,ei as Em,ej as I0,ek as x0,el as L0,em as D0,en as E0,eo as R0,ep as Pf,eq as Of,er as wL,es as yL,et as N0,eu as Ye,ev as sw,ew as k0,ex as Nl,ey as T0,ez as ad,eA as wS,eB as ow,eC as Xd,eD as tu,eE as P0,eF as O0,eG as IL,eH as M0,eI as A0,eJ as F0,eK as rw,eL as xL,eM as _t,eN as ih,eO as W0,eP as yS,eQ as H0,eR as V0,eS as B0,eT as U0,eU as $0,eV as iu,eW as z0,eX as Qn,eY as Sd,eZ as Ct,e_ as Cd,e$ as ll,f0 as nh,f1 as LL,f2 as Ip,f3 as DL,f4 as EL,f5 as j0,f6 as q0,f7 as Oh,f8 as RL,f9 as K0,fa as G0,fb as Z0,fc as IS,fd as X0,fe as Ma,ff as xp,fg as Y0,fh as J0,fi as Q0,fj as aw,fk as lw,fl as dw,fm as eN,fn as tN,fo as $n,fp as en,fq as iN,fr as xs,fs as nN,ft as NL,fu as Ae,fv as dl,fw as In,fx as kL,fy as sN,fz as oN,fA as rN,fB as Rm,fC as Mf,fD as aN,fE as lN,fF as ai,fG as es,fH as TL,fI as xS,fJ as Be,fK as dN,fL as Mh,fM as LS,fN as cN,fO as hN,fP as uN,fQ as gN,fR as Ul,fS as cw,fT as fN,fU as DS,fV as pN,fW as mN,fX as _N,fY as Zn,fZ as ES,f_ as vN,f$ as Rs,g0 as bN,g1 as SN,g2 as RS,g3 as CN,g4 as wN,g5 as hw,g6 as NS,g7 as Nm,g8 as yN,g9 as IN,ga as xn,gb as PL,gc as OL,gd as xN,ge as ML,gf as AL,gg as LN,gh as DN,gi as EN,gj as uw,gk as gw,gl as RN,gm as NN,gn as kN,go as Aa,gp as TN,gq as PN,gr as ON,gs as kS,gt as MN,gu as AN,gv as FN,gw as nu,gx as WN,gy as HN,gz as fw,gA as pn,gB as pw,gC as Qe,gD as _e,gE as mw,gF as TS,gG as Ah,gH as VN,gI as BN,gJ as Af,gK as FL,gL as WL,gM as UN,gN as $N,gO as zN,gP as jN,gQ as qN,gR as km,gS as KN,gT as GN,gU as ZN,gV as XN,gW as HL,gX as YN,gY as su,gZ as ls,g_ as VL,g$ as JN,h0 as BL,h1 as QN,h2 as _w,h3 as vw,h4 as Tm,h5 as Lp,h6 as ek,h7 as tk,h8 as ik,h9 as kl,ha as UL,hb as nk,hc as ou,hd as $L,he as sk,hf as zL,hg as jL,hh as qL,hi as ok,hj as Pi,hk as rk,hl as Vo,hm as La,hn as sh,ho as KL,hp as GL,hq as Fh,hr as PS,hs as zn,ht as ak,hu as bw,hv as lk,hw as ZL,hx as XL,hy as dk,hz as OS,hA as ck,hB as Sw,hC as hk,hD as Ff,hE as uk,hF as gk,hG as fk,hH as Wf,hI as Hf,hJ as Vf,hK as Bf,hL as YL,hM as pk,hN as mk,hO as _k,hP as vk,hQ as JL,hR as MS,hS as QL,hT as bk,hU as Cw,hV as ww,hW as yw,hX as Sk,hY as Ck,hZ as wk,h_ as Iw,h$ as yk,i0 as Ik,i1 as zc,i2 as xk,i3 as Lk,i4 as e1,i5 as $l,i6 as Dk,i7 as Ek,i8 as Wh,i9 as Rk,ia as xw,ib as Nk,ic as kk,id as Tk,ie as AS,ig as FS,ih as Pk,ii as Ok,ij as Mk,ik as Ak,il as t1,im as Uf,io as Fk,ip as ru,iq as Ws,ir as Wk,is as Hk,it as Vk,iu as WS,iv as i1,iw as Lw,ix as Dw,iy as Bk,iz as Uk,iA as Ew,iB as Dp,iC as $k,iD as zk,iE as jk,iF as Ep,iG as n1,iH as s1,iI as o1,iJ as r1,iK as ts,iL as a1,iM as HS,iN as Rw,iO as qk,iP as l1,iQ as Kk,iR as Gk,iS as $f,iT as Yr,iU as zf,iV as jc,iW as Zk,iX as jf,iY as Xk,iZ as Nw,i_ as Yk,i$ as d1,j0 as zl,j1 as Jk,j2 as Qk,j3 as eT,j4 as tT,j5 as Tl,j6 as iT,j7 as c1,j8 as h1,j9 as nT,ja as qf,jb as Pm,jc as sT,jd as oT,je as rT,jf as Om,jg as aT,jh as lT,ji as dT,jj as cT,jk as hT,jl as uT,jm as gT,jn as fT,jo as u1,jp as pT,jq as mT,jr as _T,js as kw,jt as vT,ju as bT,jv as Ri,jw as g1,l as pt,jx as f1,jy as jl}from"./editor.api-BWDeQ8t4.js";import"./index-DhcNqNgT.js";class ST extends tt{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:L(101,"Toggle Collapse Unchanged Regions"),icon:U.map,toggled:T.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:T.has("isInDiffEditor"),menu:{when:T.has("isInDiffEditor"),id:q.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Ie),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}class p1 extends tt{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:L(102,"Toggle Show Moved Code Blocks"),precondition:T.has("isInDiffEditor")})}run(e,...t){const i=e.get(Ie),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}class m1 extends tt{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:L(103,"Toggle Use Inline View When Space Is Limited"),precondition:T.has("isInDiffEditor")})}run(e,...t){const i=e.get(Ie),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}const qc=L(104,"Diff Editor");class CT extends vi{constructor(){super({id:"diffEditor.switchSide",title:L(105,"Switch Side"),icon:U.arrowSwap,precondition:T.has("isInDiffEditor"),f1:!0,category:qc})}runEditorCommand(e,t,i){const n=Jr(e);if(n instanceof tl){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}class wT extends vi{constructor(){super({id:"diffEditor.exitCompareMove",title:L(106,"Exit Compare Move"),icon:U.close,precondition:C.comparingMovedCode,f1:!1,category:qc,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=Jr(e);n instanceof tl&&n.exitCompareMove()}}class yT extends vi{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:L(107,"Collapse All Unchanged Regions"),icon:U.fold,precondition:T.has("isInDiffEditor"),f1:!0,category:qc})}runEditorCommand(e,t,...i){const n=Jr(e);n instanceof tl&&n.collapseAllUnchangedRegions()}}class IT extends vi{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:L(108,"Show All Unchanged Regions"),icon:U.unfold,precondition:T.has("isInDiffEditor"),f1:!0,category:qc})}runEditorCommand(e,t,...i){const n=Jr(e);n instanceof tl&&n.showAllUnchangedRegions()}}class Mm extends tt{constructor(){super({id:"diffEditor.revert",title:L(109,"Revert"),f1:!0,category:qc,precondition:T.has("isInDiffEditor")})}run(e,t){return t?this.runViaToolbarContext(e,t):this.runViaCursorOrSelection(e)}runViaCursorOrSelection(e){const t=Jr(e);t instanceof tl&&t.revertFocusedRangeMappings()}runViaToolbarContext(e,t){const i=xT(e,t.originalUri,t.modifiedUri);i instanceof tl&&i.revertRangeMappings(t.mapping.innerChanges??[])}}const _1=L(110,"Accessible Diff Viewer"),Rg=class Rg extends tt{constructor(){super({id:Rg.id,title:L(111,"Go to Next Difference"),category:_1,precondition:T.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){Jr(e)?.accessibleDiffViewerNext()}};Rg.id="editor.action.accessibleDiffViewer.next";let Yd=Rg;const Ng=class Ng extends tt{constructor(){super({id:Ng.id,title:L(112,"Go to Previous Difference"),category:_1,precondition:T.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){Jr(e)?.accessibleDiffViewerPrev()}};Ng.id="editor.action.accessibleDiffViewer.prev";let au=Ng;function xT(o,e,t){return o.get(Ue).listDiffEditors().find(s=>{const r=s.getModifiedEditor(),a=s.getOriginalEditor();return r&&r.getModel()?.uri.toString()===t.toString()&&a&&a.getModel()?.uri.toString()===e.toString()})||null}function Jr(o){const t=o.get(Ue).listDiffEditors(),i=If();if(i){for(const n of t)if(n.getContainerDomNode().contains(i))return n}return null}he(ST);he(p1);he(m1);Mi.appendMenuItem(q.EditorTitle,{command:{id:new m1().desc.id,title:m(135,"Use Inline View When Space Is Limited"),toggled:T.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:T.has("isInDiffEditor")},order:11,group:"1_diff",when:T.and(C.diffEditorRenderSideBySideInlineBreakpointReached,T.has("isInDiffEditor"))});Mi.appendMenuItem(q.EditorTitle,{command:{id:new p1().desc.id,title:m(136,"Show Moved Code Blocks"),icon:U.move,toggled:dR.create("config.diffEditor.experimental.showMoves",!0),precondition:T.has("isInDiffEditor")},order:10,group:"1_diff",when:T.has("isInDiffEditor")});he(Mm);for(const o of[{icon:U.arrowRight,key:C.diffEditorInlineMode.toNegated()},{icon:U.discard,key:C.diffEditorInlineMode}])Mi.appendMenuItem(q.DiffEditorHunkToolbar,{command:{id:new Mm().desc.id,title:m(137,"Revert Block"),icon:o.icon},when:T.and(C.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),Mi.appendMenuItem(q.DiffEditorSelectionToolbar,{command:{id:new Mm().desc.id,title:m(138,"Revert Selection"),icon:o.icon},when:T.and(C.diffEditorModifiedWritable,o.key),order:5,group:"primary"});he(CT);he(wT);he(yT);he(IT);Mi.appendMenuItem(q.EditorTitle,{command:{id:Yd.id,title:m(139,"Open Accessible Diff Viewer"),precondition:T.has("isInDiffEditor")},order:10,group:"2_diff",when:T.and(C.accessibleDiffViewerVisible.negate(),T.has("isInDiffEditor"))});Ee.registerCommandAlias("editor.action.diffReview.next",Yd.id);he(Yd);Ee.registerCommandAlias("editor.action.diffReview.prev",au.id);he(au);var LT=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},DT=function(o,e){return function(t,i){e(t,i,o)}},Am;const Kf=new ie("selectionAnchorSet",!1);var Ko;let ho=(Ko=class{static get(e){return e.getContribution(Am.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=Kf.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(J.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new It().appendText(m(834,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),mi(m(835,"Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(J.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}},Am=Ko,Ko.ID="editor.contrib.selectionAnchorController",Ko);ho=Am=LT([DT(1,pe)],ho);class ET extends F{constructor(){super({id:"editor.action.setSelectionAnchor",label:L(836,"Set Selection Anchor"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2080),weight:100}})}async run(e,t){ho.get(t)?.setSelectionAnchor()}}class RT extends F{constructor(){super({id:"editor.action.goToSelectionAnchor",label:L(837,"Go to Selection Anchor"),precondition:Kf})}async run(e,t){ho.get(t)?.goToSelectionAnchor()}}class NT extends F{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:L(838,"Select from Anchor to Cursor"),precondition:Kf,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2089),weight:100}})}async run(e,t){ho.get(t)?.selectFromAnchorToCursor()}}class kT extends F{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:L(839,"Cancel Selection Anchor"),precondition:Kf,kbOpts:{kbExpr:C.editorTextFocus,primary:9,weight:100}})}async run(e,t){ho.get(t)?.cancelSelectionAnchor()}}ae(ho.ID,ho,4);P(ET);P(RT);P(NT);P(kT);const TT=V("editorOverviewRuler.bracketMatchForeground","#A0A0A0",m(840,"Overview ruler marker color for matching brackets."));class PT extends F{constructor(){super({id:"editor.action.jumpToBracket",label:L(842,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:3165,weight:100}})}run(e,t){Wr.get(t)?.jumpToBracket()}}class OT extends F{constructor(){super({id:"editor.action.selectToBracket",label:L(843,"Select to Bracket"),precondition:void 0,metadata:{description:L(844,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){let n=!0;i&&i.selectBrackets===!1&&(n=!1),Wr.get(t)?.selectToBracket(n)}}class MT extends F{constructor(){super({id:"editor.action.removeBrackets",label:L(845,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(e,t){Wr.get(t)?.removeBrackets(this.id)}}class AT{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}const bs=class bs extends A{static get(e){return e.getContribution(bs.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new et(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(80)&&(this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const n=i.getStartPosition(),s=e.bracketPairs.matchBracket(n);let r=null;if(s)s[0].containsPosition(n)&&!s[1].containsPosition(n)?r=s[1].getStartPosition():s[1].containsPosition(n)&&(r=s[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(n);if(a)r=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(n);l&&l.range&&(r=l.range.getStartPosition())}}return r?new J(r.lineNumber,r.column,r.lineNumber,r.column):new J(n.lineNumber,n.column,n.lineNumber,n.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(n=>{const s=n.getStartPosition();let r=t.bracketPairs.matchBracket(s);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(s),!r)){const d=t.bracketPairs.findNextBracket(s);d&&d.range&&(r=t.bracketPairs.matchBracket(d.range.getStartPosition()))}let a=null,l=null;if(r){r.sort(I.compareRangesUsingStarts);const[d,c]=r;if(a=e?d.getStartPosition():d.getEndPosition(),l=e?c.getEndPosition():c.getStartPosition(),c.containsPosition(s)){const h=a;a=l,l=h}}a&&l&&i.push(new J(a.lineNumber,a.column,l.lineNumber,l.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const n=i.getPosition();let s=t.bracketPairs.matchBracket(n);s||(s=t.bracketPairs.findEnclosingBrackets(n)),s&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:s[0],text:""},{range:s[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const s=[];let r=0;for(let h=0,g=e.length;h<g;h++){const u=e[h];u.isEmpty()&&(s[r++]=u.getStartPosition())}s.length>1&&s.sort($.compare);const a=[];let l=0,d=0;const c=n.length;for(let h=0,g=s.length;h<g;h++){const u=s[h];for(;d<c&&n[d].position.isBefore(u);)d++;if(d<c&&n[d].position.equals(u))a[l++]=n[d];else{let f=t.bracketPairs.matchBracket(u,20),p=bs._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!f&&this._matchBrackets==="always"&&(f=t.bracketPairs.findEnclosingBrackets(u,20),p=bs._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[l++]=new AT(u,f,p)}}this._lastBracketsData=a,this._lastVersionId=i}};bs.ID="editor.contrib.bracketMatchingController",bs._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=te.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:Xe(TT),position:wn.Center}}),bs._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=te.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"});let Wr=bs;ae(Wr.ID,Wr,1);P(OT);P(PT);P(MT);Mi.appendMenuItem(q.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:m(841,"Go to &&Bracket")},order:2});Tc((o,e)=>{const t=o.getColor(cR);t&&e.addRule(`.monaco-editor .bracket-match-inline { color: ${t} !important; }`)});class FT{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,n=this._selection.startColumn,s=this._selection.endColumn;if(!(this._isMovingLeft&&n===1)&&!(!this._isMovingLeft&&s===e.getLineMaxColumn(i)))if(this._isMovingLeft){const r=new I(i,n-1,i,n),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new I(i,s,i,s),a)}else{const r=new I(i,s,i,s+1),a=e.getValueInRange(r);t.addEditOperation(r,null),t.addEditOperation(new I(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new J(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new J(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class v1 extends F{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],n=t.getSelections();for(const s of n)i.push(new FT(s,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class WT extends v1{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:L(846,"Move Selected Text Left"),precondition:C.writable})}}class HT extends v1{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:L(847,"Move Selected Text Right"),precondition:C.writable})}}P(WT);P(HT);class VT extends F{constructor(){super({id:"editor.action.transposeLetters",label:L(848,"Transpose Letters"),precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],s=t.getSelections();for(const r of s){if(!r.isEmpty())continue;const a=r.startLineNumber,l=r.startColumn,d=i.getLineMaxColumn(a);if(a===1&&(l===1||l===2&&d===2))continue;const c=l===d?r.getPosition():Cp.rightPosition(i,r.getPosition().lineNumber,r.getPosition().column),h=Cp.leftPosition(i,c),g=Cp.leftPosition(i,h),u=i.getValueInRange(I.fromPositions(g,h)),f=i.getValueInRange(I.fromPositions(h,c)),p=I.fromPositions(g,c);n.push(new Pc(p,f+u))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}P(VT);const hn=class hn{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===""||e.value.startsWith(this.value+hn.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new hn((this.value?[this.value,...e]:e).join(hn.sep))}};hn.sep=".",hn.None=new hn("@@none@@"),hn.Empty=new hn("");let Oe=hn;var BT=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},UT=function(o,e){return function(t,i){e(t,i,o)}};const $T=te.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:Ux,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),kg=class kg extends A{constructor(e,t,i,n,s){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=s,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(n),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=B(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=B("span.icon");this.domNode.append(t),t.classList.add(...ce.asClassNameArray(U.loading),"codicon-modifier-spin");const i=()=>{const n=this.editor.getOption(75);this.domNode.style.height=`${n}px`,this.domNode.style.width=`${Math.ceil(.8*n)}px`};i(),this._register(this.editor.onDidChangeConfiguration(n=>{(n.hasChanged(61)||n.hasChanged(75))&&i()})),this._register(re(this.domNode,Pe.CLICK,n=>{this.delegate.cancel()}))}getId(){return kg.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)}};kg.baseId="editor.widget.inlineProgressWidget";let Fm=kg,lu=class extends A{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Ke),this._currentWidget=this._register(new Ke),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,i,n,s){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=no(()=>{const a=I.fromPositions(e);this._currentDecorations.set([{range:a,options:$T}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(Fm,this.id,this._editor,a,t,n))},s??this._showDelay);try{return await i}finally{this._currentOperation===r&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};lu=BT([UT(2,ee)],lu);var zT=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Tw=function(o,e){return function(t,i){e(t,i,o)}},Hh,Bs;let qt=(Bs=class{static get(e){return e.getContribution(Hh.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Ke,this._messageListeners=new W,this._mouseOverMessage=!1,this._editor=e,this._visible=Hh.MESSAGE_VISIBLE.bindTo(t)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){if(mi(Zh(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),Zh(e)){const n=this._messageListeners.add(xf(e,{actionHandler:(s,r)=>{this.closeMessage(),hR(this._openerService,s,r.isTrusted)}}));this._messageWidget.value=new Rp(this._editor,t,n.element)}else this._messageWidget.value=new Rp(this._editor,t,e);this._messageListeners.add(Ve.debounce(this._editor.onDidBlurEditorText,(n,s)=>s,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&uR(If(),this._messageWidget.value.getDomNode())||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(re(this._messageWidget.value.getDomNode(),Pe.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(re(this._messageWidget.value.getDomNode(),Pe.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(n=>{n.target.position&&(i?i.containsPosition(n.target.position)||this.closeMessage():i=new I(t.lineNumber-3,1,n.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(Rp.fadeOut(this._messageWidget.value))}},Hh=Bs,Bs.ID="editor.contrib.messageController",Bs.MESSAGE_VISIBLE=new ie("messageVisible",!1,m(1333,"Whether the editor is currently showing an inline message")),Bs);qt=Hh=zT([Tw(1,pe),Tw(2,Xr)],qt);const jT=Mt.bindToContribution(qt.get);K(new jT({id:"leaveEditorMessage",precondition:qt.MESSAGE_VISIBLE,handler:o=>o.closeMessage(),kbOpts:{weight:130,primary:9}}));let Rp=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:i},n){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);const r=document.createElement("div");typeof n=="string"?(r.classList.add("message"),r.textContent=n):(n.classList.add("message"),r.appendChild(n)),this._domNode.appendChild(r);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),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(e){this._domNode.classList.toggle("below",e===2)}};ae(qt.ID,qt,4);var VS=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Jd=function(o,e){return function(t,i){e(t,i,o)}};class BS{constructor(e){this.copyMimeTypes=[],this.kind=e,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(e,t,i,n,s){const r=await this.getEdit(i,s);if(r)return{edits:[{insertText:r.insertText,title:r.title,kind:r.kind,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,i,n){const s=await this.getEdit(i,n);if(s)return{edits:[{insertText:s.insertText,title:s.title,kind:s.kind,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}],dispose(){}}}}const Tg=class Tg extends BS{constructor(){super(Oe.Empty.append("text","plain")),this.id=Tg.id,this.dropMimeTypes=[Nt.text],this.pasteMimeTypes=[Nt.text]}async getEdit(e,t){const i=e.get(Nt.text);if(!i||e.has(Nt.uriList))return;const n=await i.asString();return{handledMimeType:Nt.text,title:m(965,"Insert Plain Text"),insertText:n,kind:this.kind}}};Tg.id="text";let Hr=Tg;class b1 extends BS{constructor(){super(Oe.Empty.append("uri","path","absolute")),this.dropMimeTypes=[Nt.uriList],this.pasteMimeTypes=[Nt.uriList]}async getEdit(e,t){const i=await S1(e);if(!i.length||t.isCancellationRequested)return;let n=0;const s=i.map(({uri:a,originalText:l})=>a.scheme===mt.file?a.fsPath:(n++,l)).join(" ");let r;return n>0?r=i.length>1?m(966,"Insert Uris"):m(967,"Insert Uri"):r=i.length>1?m(968,"Insert Paths"):m(969,"Insert Path"),{handledMimeType:Nt.uriList,insertText:s,title:r,kind:this.kind}}}let du=class extends BS{constructor(e){super(Oe.Empty.append("uri","path","relative")),this._workspaceContextService=e,this.dropMimeTypes=[Nt.uriList],this.pasteMimeTypes=[Nt.uriList]}async getEdit(e,t){const i=await S1(e);if(!i.length||t.isCancellationRequested)return;const n=_o(i.map(({uri:s})=>{const r=this._workspaceContextService.getWorkspaceFolder(s);return r?gR(r.uri,s):void 0}));if(n.length)return{handledMimeType:Nt.uriList,insertText:n.join(" "),title:i.length>1?m(970,"Insert Relative Paths"):m(971,"Insert Relative Path"),kind:this.kind}}};du=VS([Jd(0,so)],du);class qT{constructor(){this.kind=new Oe("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Nt.text}]}async provideDocumentPasteEdits(e,t,i,n,s){if(n.triggerKind!==wm.PasteAs&&!n.only?.contains(this.kind))return;const a=await i.get("text/html")?.asString();if(!(!a||s.isCancellationRequested))return{dispose(){},edits:[{insertText:a,yieldTo:this._yieldTo,title:m(972,"Insert HTML"),kind:this.kind}]}}}async function S1(o){const e=o.get(Nt.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const n of $x.parse(t))try{i.push({uri:Le.parse(n),originalText:n})}catch{}return i}const Bo={scheme:"*",hasAccessToAllModels:!0};let Wm=class extends A{constructor(e,t){super(),this._register(e.documentDropEditProvider.register(Bo,new Hr)),this._register(e.documentDropEditProvider.register(Bo,new b1)),this._register(e.documentDropEditProvider.register(Bo,new du(t)))}};Wm=VS([Jd(0,G),Jd(1,so)],Wm);let Hm=class extends A{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register(Bo,new Hr)),this._register(e.documentPasteEditProvider.register(Bo,new b1)),this._register(e.documentPasteEditProvider.register(Bo,new du(t))),this._register(e.documentPasteEditProvider.register(Bo,new qT))}};Hm=VS([Jd(0,G),Jd(1,so)],Hm);const xi=class xi{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t=0,i=this.value.charCodeAt(e),n;if(n=xi._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(xi.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(xi.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(xi.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(xi.isVariableCharacter(i)||xi.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}n=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof xi._table[i]>"u"&&!xi.isDigitCharacter(i)&&!xi.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}};xi._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let Vm=xi;class Pl{constructor(){this._children=[]}appendChild(e){return e instanceof Rt&&this._children[this._children.length-1]instanceof Rt?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,n=i.children.indexOf(e),s=i.children.slice(0);s.splice(n,1,...t),i._children=s,(function r(a,l){for(const d of a)d.parent=l,r(d.children,d)})(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof Kc)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}class Rt extends Pl{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new Rt(this.value)}}class C1 extends Pl{}class fi extends C1{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Ol?this._children[0]:void 0}clone(){const e=new fi(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Ol extends Pl{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Rt&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Ol;return this.options.forEach(e.appendChild,e),e}}class US extends Pl{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,n=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(s=>s instanceof Ki&&!!s.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof Ki){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new US;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}}class Ki extends Pl{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":this.shorthandName==="kebabcase"?e?this._toKebabCase(e):"":this.shorthandName==="snakecase"?e?this._toSnakeCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toKebabCase(e){if(!e.match(/[\p{L}0-9]+/gu))return e;if(!e.match(/[\p{L}0-9]/u))return e.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");const i=e.trim().replace(/^_+|_+$/g,""),n=i.match(new RegExp("\\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"));return n?n.map(s=>s.toLowerCase()).join("-"):i.split(/[\s_-]+/).filter(s=>s.length>0).map(s=>s.toLowerCase()).join("-")}_toPascalCase(e){const t=e.match(/[\p{L}0-9]+/gu);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[\p{L}0-9]+/gu);return t?t.map((i,n)=>n===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toSnakeCase(e){return e.replace(new RegExp("(\\p{Ll})(\\p{Lu})","gu"),"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new Ki(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Vr extends C1{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new Rt(t)],!0):!1}clone(){const e=new Vr(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function Pw(o,e){const t=[...o];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class Kc extends Pl{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof fi&&(e.push(i),t=!t||t.index<i.index?i:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk(n=>n===e?(i=!0,!1):(t+=n.len(),!0)),i?t:-1}fullLen(e){let t=0;return Pw([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof fi&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof Vr&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new Kc;return e._children=this.children.map(t=>t.clone()),e}walk(e){Pw(this.children,e)}}class Br{constructor(){this._scanner=new Vm,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const n=new Kc;return this.parseFragment(e,n),this.ensureFinalTabstop(n,i??!1,t??!1),n}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const n=new Map,s=[];t.walk(l=>(l instanceof fi&&(l.isFinalTabstop?n.set(0,void 0):!n.has(l.index)&&l.children.length>0?n.set(l.index,l.children):s.push(l)),!0));const r=(l,d)=>{const c=n.get(l.index);if(!c)return;const h=new fi(l.index);h.transform=l.transform;for(const g of c){const u=g.clone();h.appendChild(u),u instanceof fi&&n.has(u.index)&&!d.has(u.index)&&(d.add(u.index),r(u,d),d.delete(u.index))}t.replace(l,[h])},a=new Set;for(const l of s)r(l,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(s=>s.index===0)||e.appendChild(new fi(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const n=this._scanner.next();if(n.type!==0&&n.type!==4&&n.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Rt(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new fi(Number(t)):new Vr(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const s=new fi(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Rt("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else if(s.index>0&&this._accept(7)){const r=new Ol;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(s.appendChild(r),this._accept(4)))return e.appendChild(s),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(s)?(e.appendChild(s),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(s),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let n;if((n=this._accept(5,!0))?n=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||n:n=this._accept(void 0,!0),!n)return this._backTo(t),!1;i.push(n)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new Rt(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const s=new Vr(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(s),!0;if(!this._parse(s))return e.appendChild(new Rt("${"+t+":")),s.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(s)?(e.appendChild(s),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(s),!0):this._backTo(i)}_parseTransform(e){const t=new US;let i="",n="";for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(6,!0)||s,i+=s;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(5,!0)||this._accept(6,!0)||s,t.appendChild(new Rt(s));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,n)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const n=this._accept(8,!0);if(n)if(i){if(this._accept(4))return e.appendChild(new Ki(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Ki(Number(n))),!0;else return this._backTo(t),!1;if(this._accept(6)){const s=this._accept(9,!0);return!s||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new Ki(Number(n),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return e.appendChild(new Ki(Number(n),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return e.appendChild(new Ki(Number(n),void 0,void 0,s)),!0}else if(this._accept(13)){const s=this._until(1);if(s){const r=this._until(4);if(r)return e.appendChild(new Ki(Number(n),void 0,s,r)),!0}}else{const s=this._until(4);if(s)return e.appendChild(new Ki(Number(n),void 0,void 0,s)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Rt(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function w1(o,e,t){return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:t.additionalEdit?.edits??[]}:{edits:[...e.map(i=>new zx(o,{range:i,text:typeof t.insertText=="string"?Br.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...t.additionalEdit?.edits??[]]}}function y1(o){function e(r,a){return"mimeType"in r?r.mimeType===a.handledMimeType:!!a.kind&&r.kind.contains(a.kind)}const t=new Map;for(const r of o)for(const a of r.yieldTo??[])for(const l of o)if(l!==r&&e(a,l)){let d=t.get(r);d||(d=[],t.set(r,d)),d.push(l)}if(!t.size)return Array.from(o);const i=new Set,n=[];function s(r){if(!r.length)return[];const a=r[0];if(n.includes(a))return console.warn("Yield to cycle detected",a),r;if(i.has(a))return s(r.slice(1));let l=[];const d=t.get(a);return d&&(n.push(a),l=s(d),n.pop()),i.add(a),[...l,a,...s(r.slice(1))]}return s(Array.from(o))}function Np(o,e){return e&&(o.stack||o.stacktrace)?m(33,"{0}: {1}",Mw(o),Ow(o.stack)||Ow(o.stacktrace)):Mw(o)}function Ow(o){return Array.isArray(o)?o.join(`
2
- `):o}function Mw(o){return o.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${o.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof o.code=="string"&&typeof o.errno=="number"&&typeof o.syscall=="string"?m(34,"A system error occurred ({0})",o.message):o.message||m(35,"An unknown error occurred. Please consult the log for more details.")}function cu(o=null,e=!1){if(!o)return m(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(o)){const t=_o(o),i=cu(t[0],e);return t.length>1?m(37,"{0} ({1} errors in total)",i,t.length):i}if(jx(o))return o;if(o.detail){const t=o.detail;if(t.error)return Np(t.error,e);if(t.exception)return Np(t.exception,e)}return o.stack?Np(o,e):o.message?o.message:m(38,"An unknown error occurred. Please consult the log for more details.")}var $S=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Hs=function(o,e){return function(t,i){e(t,i,o)}},Bm;const I1="acceptSelectedCodeAction",x1="previewSelectedCodeAction";class KT{get templateId(){return"header"}renderTemplate(e){e.classList.add("group-header");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){i.text.textContent=e.group?.title??e.label??""}disposeTemplate(e){}}class GT{get templateId(){return"separator"}renderTemplate(e){e.classList.add("separator");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){i.text.textContent=e.label??""}disposeTemplate(e){}}let Um=class{get templateId(){return"action"}constructor(e,t,i,n,s,r,a,l,d){this._supportsPreview=e,this._onRemoveItem=t,this._onShowSubmenu=i,this._hasAnySubmenuActions=n,this._groupTitleByIndex=s,this._linkHandler=r,this._hideDefaultKeybindingTooltip=a,this._keybindingService=l,this._openerService=d}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement("div");t.className="icon",e.append(t);const i=document.createElement("span");i.className="title",e.append(i);const n=document.createElement("span");n.className="action-item-badge",e.append(n);const s=document.createElement("span");s.className="description",e.append(s);const r=document.createElement("span");r.className="group-title",e.append(r);const a=document.createElement("span");a.className="detail",e.append(a);const l=new Oc(e,Mc),d=document.createElement("div");d.className="action-list-item-toolbar",e.append(d);const c=document.createElement("div");c.className="action-list-submenu-indicator",e.append(c);const h=new W;return{container:e,icon:t,text:i,detail:a,badge:n,description:s,groupTitle:r,keybinding:l,toolbar:d,submenuIndicator:c,elementDisposables:h}}renderElement(e,t,i){if(i.elementDisposables.clear(),e.group?.icon?(i.icon.className=ce.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=ye(e.group.icon.color.id))):(i.icon.className=ce.asClassName(U.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;if(pR(!e.hideIcon,i.icon),e.isSectionToggle){const l=e.group?.icon===U.chevronDown;i.container.setAttribute("aria-expanded",String(l))}else i.container.removeAttribute("aria-expanded");if(i.previousClassName&&i.container.classList.remove(i.previousClassName),i.container.classList.toggle("action-list-custom",!!e.className),e.className&&i.container.classList.add(e.className),i.previousClassName=e.className,i.text.textContent=fn(e.label),e.badge?(i.badge.textContent=e.badge,i.badge.style.display=""):(i.badge.textContent="",i.badge.style.display="none"),e.keybinding)i.description.textContent=e.keybinding.getLabel(),i.description.style.display="inline",i.description.style.letterSpacing="0.5px";else if(e.description){if(pi(i.description),typeof e.description=="string")i.description.textContent=fn(e.description);else{const l=xf(e.description,{actionHandler:d=>{const c=Le.parse(d);this._linkHandler?this._linkHandler(c,e):this._openerService.open(c,{allowCommands:!0})}});i.elementDisposables.add(l),i.description.appendChild(l.element)}i.description.style.display="inline"}else i.description.textContent="",i.description.style.display="none";const n=this._groupTitleByIndex.get(t);n?(i.groupTitle.textContent=n,i.groupTitle.style.display=""):(i.groupTitle.textContent="",i.groupTitle.style.display="none"),e.detail?(i.detail.textContent=fn(e.detail),i.detail.style.display=""):(i.detail.textContent="",i.detail.style.display="none");const s=this._keybindingService.lookupKeybinding(I1)?.getLabel(),r=this._keybindingService.lookupKeybinding(x1)?.getLabel();i.container.classList.toggle("option-disabled",!!e.disabled),e.hover!==void 0?i.container.title="":e.tooltip?i.container.title=e.tooltip:e.disabled?i.container.title=e.label:this._hideDefaultKeybindingTooltip?i.container.title="":s&&r?this._supportsPreview&&e.canPreview?i.container.title=m(1705,"{0} to Apply, {1} to Preview",s,r):i.container.title=m(1706,"{0} to Apply",s):i.container.title="",pi(i.toolbar);const a=[...e.toolbarActions??[]];if(e.onRemove&&a.push(mR({id:"actionList.remove",label:m(1707,"Remove"),class:ce.asClassName(U.close),run:async()=>{await e.onRemove(),this._onRemoveItem?.(e)}})),i.container.classList.toggle("has-toolbar",a.length>0),a.length>0){const l=new oo(i.toolbar);i.elementDisposables.add(l),l.push(a,{icon:!0,label:!1})}e.submenuActions?.length&&!e.hover?.content?(i.submenuIndicator.className="action-list-submenu-indicator has-submenu "+ce.asClassName(U.chevronRight),i.submenuIndicator.style.display="",i.submenuIndicator.style.visibility="",i.elementDisposables.add(re(i.submenuIndicator,Pe.CLICK,l=>{l.stopPropagation(),this._onShowSubmenu?.(e)}))):this._hasAnySubmenuActions?(i.submenuIndicator.className="action-list-submenu-indicator",i.submenuIndicator.style.display="",i.submenuIndicator.style.visibility="hidden"):(i.submenuIndicator.className="action-list-submenu-indicator",i.submenuIndicator.style.display="none")}disposeTemplate(e){e.keybinding.dispose(),e.elementDisposables.dispose()}};Um=$S([Hs(7,Te),Hs(8,Xr)],Um);class ZT extends UIEvent{constructor(){super("acceptSelectedAction")}}class Aw extends UIEvent{constructor(){super("previewSelectedAction")}}function XT(o){if(o.kind==="action")return o.label}let $m=Bm=class extends A{constructor(e,t,i,n,s,r,a,l,d){if(super(),this._supportsPreview=t,this._delegate=n,this._options=r,this._keybindingService=a,this._openerService=l,this._instantiationService=d,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new Je),this._submenuDisposables=this._register(new W),this._collapsedSections=new Set,this._filterText="",this._suppressHover=!1,this._hasLaidOut=!1,this._filterCts=this._register(new Ke),this._groupTitleByIndex=new Map,this._onDidRequestLayout=this._register(new Y),this.onDidRequestLayout=this._onDidRequestLayout.event,this.domNode=document.createElement("div"),this.domNode.classList.add("actionList"),this._options?.inlineDescription&&this.domNode.classList.add("inline-description"),this._options?.className){const u=this._options.className.split(/\s+/).filter(f=>f.length>0);u.length>0&&this.domNode.classList.add(...u)}if(this._actionLineHeight=24,this._submenuContainer=document.createElement("div"),this._submenuContainer.className="action-list-submenu-panel action-widget",this._submenuContainer.style.display="none",this._submenuContainer.tabIndex=-1,this.domNode.append(this._submenuContainer),this._register(re(this._submenuContainer,"mouseenter",()=>{this._cancelSubmenuHide()})),this._register(re(this._submenuContainer,"mouseleave",()=>{this._scheduleSubmenuHide()})),this._register(ke(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(const u of this._options.collapsedByDefault)this._collapsedSections.add(u);const c={getHeight:u=>this._getItemHeight(u),getTemplateId:u=>u.kind},g=(this._options?.reserveSubmenuSpace??!0)&&i.some(u=>!!u.submenuActions?.length&&!u.hover?.content);if(this._list=this._register(new tS(e,this.domNode,c,[new Um(this._supportsPreview,u=>this._removeItem(u),u=>this._showSubmenuForItem(u),g,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._keybindingService,this._openerService),new KT,new GT],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:XT},accessibilityProvider:{getAriaLabel:u=>{if(u.kind==="action"){let f=u.label?fn(u?.label):"";if(u.detail&&(f=f+", "+fn(u.detail)),u.ariaDescription)f=f+", "+fn(u.ariaDescription);else if(u.description){const p=typeof u.description=="string"?u.description:u.description.value;f=f+", "+fn(p)}if(u.hover?.content&&!u.ariaDescription&&!u.description){const p=u.hover.content,_=typeof p=="string"?p:Zh(p)?p.value:Es(p)?p.textContent??void 0:void 0;_&&(!u.detail||fn(u.detail)!==fn(_))&&(f=f+", "+fn(_))}return u.group?.title&&(f=f+", "+u.group.title),u.disabled&&(f=m(1708,"{0}, Disabled Reason: {1}",f,u.disabled)),u.submenuActions?.length&&(f=m(1709,"{0}, use right arrow to access options",f)),f}return null},getWidgetAriaLabel:()=>m(1710,"Action Widget"),getRole:u=>{switch(u.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...s}})),this._list.style(_R),this._register(this._list.onMouseClick(u=>this.onListClick(u))),this._register(this._list.onMouseOver(u=>this.onListHover(u))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(u=>this.onListSelection(u))),this._allMenuItems=[...i],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement("div"),this._filterContainer.className="action-list-filter";const u=z(this._filterContainer,B(".action-list-filter-row"));if(this._options?.showFilter){this._filterInput=document.createElement("input"),this._filterInput.type="text",this._filterInput.className="action-list-filter-input",this._filterInput.placeholder=this._options?.filterPlaceholder??m(1711,"Search..."),this._filterInput.setAttribute("aria-label",m(1712,"Filter items")),u.appendChild(this._filterInput);const f=this._options?.filterActions??[];if(f.length>0){const p=z(u,B(".action-list-filter-actions"));this._register(new oo(p)).push(f,{icon:!0,label:!1})}this._register(re(this._filterInput,"input",()=>{this._filterText=this._filterInput.value,this._applyOrUpdateFilter()}))}if(this._options?.secondaryHeading){const f=z(u,B(".action-list-filter-label"));f.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),this._options?.headerText){if(this._headerContainer=document.createElement("div"),this._headerContainer.className="action-list-header",this._options.headerIcon){const f=z(this._headerContainer,B("span.action-list-header-icon"));f.classList.add(...ce.asClassNameArray(this._options.headerIcon)),f.setAttribute("aria-hidden","true")}const u=z(this._headerContainer,B("span.action-list-header-text"));u.textContent=this._options.headerText}this._applyFilter(),this._list.length&&this._focusCheckedOrFirst(),this._register(re(this.domNode,"keydown",u=>{if(u.key==="ArrowRight"){const f=this._list.getFocus();if(f.length>0){const p=this._list.element(f[0]);if(p?.submenuActions?.length){Vn.stop(u,!0);const _=this._getRowElement(f[0]);_&&(this._showSubmenuForElement(p,_),this._currentSubmenuWidget?.focus())}}}})),this._filterInput&&this._register(re(this.domNode,"keydown",u=>{this._filterInput&&!od(this._filterInput)&&u.key.length===1&&u.key!==" "&&!u.ctrlKey&&!u.metaKey&&!u.altKey&&(this._filterInput.focus(),this._filterInput.value=u.key,this._filterText=u.key,this._applyOrUpdateFilter(),u.preventDefault(),u.stopPropagation())}))}_toggleSection(e){this._collapsedSections.has(e)?this._collapsedSections.delete(e):this._collapsedSections.add(e),this._options?.onDidToggleSection?.(e,this._collapsedSections.has(e)),this._applyFilter()}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}const e=this._filterText;this._filterCts.value?.cancel();const t=new Je;this._filterCts.value=t,this._delegate.onFilter(e,t.token).then(i=>{t.token.isCancellationRequested||(this._allMenuItems=[...i],this._applyFilter(!0))}).catch(()=>{})}_applyFilter(e=!1,t=!0){const i=e?"":this._filterText.toLowerCase(),n=!e&&i.length>0,s=[],r=this._list.getFocus();let a;if(r.length>0&&(a=this._list.element(r[0])),n){let u,f=[],p=!1;const _=()=>{u&&p&&s.push(u),s.push(...f),u=void 0,f=[],p=!1},v=S=>{const y=(S.label??"").toLowerCase(),x=typeof S.description=="string"?S.description:S.description?.value??"";return y.includes(i)||x.toLowerCase().includes(i)};for(const S of this._allMenuItems)if(S.kind!=="header"){if(S.kind==="separator"){_(),u=S.label?S:void 0;continue}if(S.showAlways){f.push(S);continue}S.isSectionToggle||v(S)&&(p=!0,f.push(S))}_()}else for(const u of this._allMenuItems){if(u.kind==="header"){s.push(u);continue}if(u.kind==="separator"){if(u.section&&this._collapsedSections.has(u.section))continue;s.push(u);continue}if(u.isSectionToggle&&u.section){const f=this._collapsedSections.has(u.section);s.push({...u,group:{...u.group,icon:f?U.chevronRight:U.chevronDown}});continue}u.section&&this._collapsedSections.has(u.section)||s.push(u)}const l=[];let d=!1;for(let u=0;u<s.length;u++)l[u]=d,s[u].kind==="action"&&(d=!0);const c=[];let h=!1;for(let u=s.length-1;u>=0;u--){if(s[u].kind==="action"){h=!0;continue}s[u].kind==="separator"&&(c[u]=h,h=!1)}for(let u=s.length-1;u>=0;u--){const f=s[u];if(f.kind!=="separator")continue;const p=c[u],_=!f.label&&!l[u];(!p||_)&&s.splice(u,1)}this._options?.showGroupTitleOnFirstItem&&this._recomputeGroupTitles(s);const g=this._filterInput&&od(this._filterInput);if(this._list.splice(0,this._list.length,s),t&&this._onDidRequestLayout.fire(),g)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut&&a){const u=a.item?.id;if(u){for(let f=0;f<this._list.length;f++)if(this._list.element(f).item?.id===u){this._list.setFocus([f]),this._list.reveal(f),this._list.domFocus();break}}}}get filterContainer(){return this._filterContainer}get footerContainer(){return this._footerContainer}get headerContainer(){return this._headerContainer}get filterInput(){return this._filterInput}focusCondition(e){return!e.disabled&&e.kind==="action"}focus(){if(this._filterInput&&this._options?.focusFilterOnOpen){this._filterInput.focus(),this._focusCheckedOrFirst();return}this._list.domFocus(),this._focusCheckedOrFirst()}clearFocus(){this._list.setFocus([])}getFocusedElement(){const e=this._list.getFocus();if(e.length>0)return this._list.element(e[0])}_focusCheckedOrFirst(){this._suppressHover=!0;try{for(let t=0;t<this._list.length;t++){const i=this._list.element(t);if(i.kind==="action"&&i.item?.checked){this._list.setFocus([t]),this._list.reveal(t);return}}this._list.focusFirst(void 0,this.focusCondition);const e=this._list.getFocus();e.length>0&&this._list.reveal(e[0])}finally{this._suppressHover=!1}}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._filterCts.value?.cancel(),this._filterCts.clear(),this._hideSubmenu()}clearFilter(){return this._filterInput&&this._filterText?(this._filterInput.value="",this._filterText="",this._applyOrUpdateFilter(),!0):!1}get hasDynamicHeight(){return this._options?.showFilter?!0:this._allMenuItems.some(e=>e.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(e){switch(e.kind){case"header":return this._headerLineHeight;case"separator":return e.label?this._actionLineHeight:this._separatorLineHeight;default:return e.detail?this._options?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){let e=0;for(const t of this._allMenuItems)e+=this._getItemHeight(t);return e}computeListHeight(){const e=this._list.length;let t=0;for(let i=0;i<e;i++){const n=this._list.element(i);t+=this._getItemHeight(n)}return t}layout(e,t){this._hasLaidOut=!0,this._list.layout(e,t),this.domNode.style.height=`${e}px`,this._filterContainer&&this._filterContainer.parentElement&&this._filterContainer.parentElement.insertBefore(this._filterContainer,this.domNode)}computeMaxWidth(e){const t=this._list.length,i=Math.max(e,this._options?.minWidth??0),n=this._options?.maxWidth??Number.POSITIVE_INFINITY,s=Math.max(n,i),r=c=>Math.min(Math.max(c,i),s);let a=i;const l=this._allMenuItems.length;if(l>=50)return r(380);if(l>t){const c=[];for(let f=0;f<t;f++)c.push(this._list.element(f));const h=[...this._allMenuItems];this._list.splice(0,t,h);let g=0;for(const f of h)g+=this._getItemHeight(f);this._list.layout(g);const u=[];for(let f=0;f<h.length;f++){const p=this._getRowElement(f);if(p){p.style.width="auto";const _=p.getBoundingClientRect().width;p.style.width="",u.push(_+this._computeToolbarWidth(h[f]))}}return a=r(Math.max(...u)),this._list.splice(0,h.length,c),a}const d=[];for(let c=0;c<t;c++){const h=this._getRowElement(c);if(h){h.style.width="auto";const g=h.getBoundingClientRect().width;h.style.width="",d.push(g+this._computeToolbarWidth(this._list.element(c)))}}return r(Math.max(...d))}focusPrevious(){if(this._filterInput&&od(this._filterInput)){this._list.domFocus();const i=this._list.getFocus();if(i.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);const n=this._list.getFocus();n.length>0&&n[0]>=i[0]?this._filterInput.focus():n.length>0&&this._list.reveal(n[0])}else{this._list.focusLast(void 0,this.focusCondition);const n=this._list.getFocus();n.length>0&&this._list.reveal(n[0])}return}const e=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);const t=this._list.getFocus();if(t.length>0){if(this._filterInput&&e.length>0&&t[0]>e[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(t[0])}}focusNext(){if(this._filterInput&&od(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);const n=this._list.getFocus();n.length>0&&this._list.reveal(n[0])}else{this._list.focusFirst(void 0,this.focusCondition);const n=this._list.getFocus();n.length>0&&this._list.reveal(n[0])}return}const e=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);const t=this._list.getFocus();if(t.length>0){if(this._filterInput&&e.length>0&&t[0]<e[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(t[0])}}collapseFocusedSection(){const e=this._getFocusedSection();e&&!this._collapsedSections.has(e)&&this._toggleSection(e)}expandFocusedSection(){const e=this._getFocusedSection();e&&this._collapsedSections.has(e)&&this._toggleSection(e)}toggleFocusedSection(){const e=this._list.getFocus();if(e.length===0)return!1;const t=this._list.element(e[0]);return t.isSectionToggle&&t.section?(this._toggleSection(t.section),!0):!1}_getFocusedSection(){const e=this._list.getFocus();if(e.length===0)return;const t=this._list.element(e[0]);return t.isSectionToggle&&t.section,t.section}acceptSelected(e){const t=this._list.getFocus();if(t.length===0)return;const i=t[0],n=this._list.element(i);if(!this.focusCondition(n))return;const s=e?new Aw:new ZT;this._list.setSelection([i],s)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];if(t.isSectionToggle&&t.section){this._list.setSelection([]);const i=t.section;queueMicrotask(()=>{this._toggleSection(i)});return}if(vR(e.browserEvent)){const i=e.browserEvent.target;if(Es(i)&&(i.closest(".action-list-item-toolbar")||i.closest(".action-list-submenu-indicator"))){this._list.setSelection([]);return}}if(t.item&&this.focusCondition(t)){const i=e.browserEvent instanceof Aw;this._delegate.onSelect(t.item,i&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){const e=this._list.getFocus();if(e.length===0)return;const t=e[0],i=this._list.element(t);this._delegate.onFocus?.(i.item),this._suppressHover||this._showHoverForElement(i,t)}_removeItem(e){const t=this._allMenuItems.indexOf(e);t>=0&&(this._allMenuItems.splice(t,1),this._applyFilter())}_recomputeGroupTitles(e){this._groupTitleByIndex.clear();const t=new Set;for(let i=0;i<e.length;i++){const n=e[i];n.kind==="action"&&n.group?.title&&!t.has(n.group.title)&&(t.add(n.group.title),this._groupTitleByIndex.set(i,n.group.title))}}_computeToolbarWidth(e){let t=e.toolbarActions?.length??0;return e.onRemove&&t++,t===0?0:t*22+6}_getRowElement(e){return this.domNode.ownerDocument.getElementById(this._list.getElementID(e))}_showHoverForElement(e,t){if(this._currentSubmenuElement===e)return;const i=!!e.hover?.content,n=!!e.submenuActions?.length;if(i||n){const s=this._getRowElement(t);s&&this._showSubmenuForElement(e,s);return}this._hideSubmenu()}_showSubmenuForItem(e){const t=this._list.indexOf(e);if(t>=0){const i=this._getRowElement(t);i&&this._showSubmenuForElement(e,i)}}_showSubmenuForElement(e,t){if(this._currentSubmenuElement===e)return;this._submenuDisposables.clear(),this._currentSubmenuElement=e,this._clearSubmenuContainer();let i;const n=e.hover?.content;if(n){if(Es(n))i=n,e.hover?.disposable&&this._register(e.hover.disposable);else{const w=typeof n=="string"?new It(n):n,D=this._options?.linkHandler,N=xf(w,{actionHandler:E=>{const M=Le.parse(E);D?D(M,e):this._openerService.open(M,{allowCommands:!0})}});this._submenuDisposables.add(N),i=N.element}i.classList.add("action-list-submenu-hover-header"),e.submenuActions?.length&&i.classList.add("has-submenu"),this._submenuContainer.appendChild(i)}const s=!!e.submenuActions?.length;this._submenuContainer.style.display="",this._submenuContainer.style.position="absolute",this._submenuContainer.removeAttribute("role");const r=t.getBoundingClientRect(),a=this.domNode.getBoundingClientRect(),l=Ht(this.domNode);let d=0,c=i?i.offsetWidth:0;if(s){const w=[],N=e.submenuActions.filter(H=>H instanceof Xh).filter(H=>H.actions.length>0);for(let H=0;H<N.length;H++){const Z=N[H];Z.label&&w.push({kind:"header",group:{title:Z.label},label:Z.label});for(let se=0;se<Z.actions.length;se++){const ve=Z.actions[se],oe=ve,be=oe.icon??ce.fromId(ve.checked?U.check.id:U.blank.id),Q=oe.hoverContent;w.push({item:ve,kind:"action",label:ve.label,description:ve.tooltip||void 0,group:{title:"",icon:be},hideIcon:!1,hover:Q?{content:Q}:{},onRemove:oe.onRemove})}H<N.length-1&&w.push({kind:"separator",label:""})}for(const H of e.submenuActions)if(!(H instanceof Xh)){const Z=H;w.push({item:H,kind:"action",label:H.label,description:H.tooltip||void 0,group:{title:""},hideIcon:!1,hover:{},onRemove:Z.onRemove})}const E={onHide:()=>{},onSelect:H=>{H.run();const Z=this._currentSubmenuElement?.item;this._hideSubmenu(),Z&&this._delegate.onSelect(Z),this.hide()}},M=this._submenuDisposables.add(this._instantiationService.createInstance(Bm,"submenu",!1,w,E,void 0,void 0));this._submenuContainer.appendChild(M.domNode),this._currentSubmenuWidget=M,M.clearFocus(),d=M.computeListHeight(),M.layout(d);const O=M.computeMaxWidth(0);c=Math.max(c,O),M.layout(d,c),M.domNode.style.width=`${c}px`,this._submenuDisposables.add(re(M.domNode,"keydown",H=>{if(H.key==="ArrowLeft"||H.key==="Escape")Vn.stop(H,!0),this._hideSubmenu(),this._list.domFocus();else if(H.key==="Enter"){Vn.stop(H,!0);const Z=M.getFocusedElement();if(Z?.item){Z.item.run();const se=this._currentSubmenuElement?.item;this._hideSubmenu(),se&&this._delegate.onSelect(se),this.hide()}}else H.key==="ArrowDown"?(Vn.stop(H,!0),M.focusNext()):H.key==="ArrowUp"&&(Vn.stop(H,!0),M.focusPrevious())}))}const g=l.innerWidth-r.right,u=a.left,f=c+10,p=4;g>=f||g>=u?this._submenuContainer.style.left=`${a.right-a.left+p}px`:this._submenuContainer.style.left=`${-f-p}px`;const _=i?i.offsetHeight:0,v=d+_,S=l.innerHeight,y=r.height;let x=r.top-a.top+(y-v)/2;const b=a.top+x+v;b>S&&(x-=b-S+8),a.top+x<0&&(x=-a.top),this._submenuContainer.style.top=`${x}px`}_hideSubmenu(){this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._submenuDisposables.clear(),this._currentSubmenuWidget=void 0,this._currentSubmenuElement=void 0,this._clearSubmenuContainer(),this._submenuContainer.style.display="none"}_clearSubmenuContainer(){this._submenuContainer.contains(If())&&this._list.domFocus(),pi(this._submenuContainer)}_scheduleSubmenuHide(){this._cancelSubmenuHide(),this._submenuHideTimeout=setTimeout(()=>{this._hideSubmenu()},300)}_cancelSubmenuHide(){this._submenuHideTimeout!==void 0&&(clearTimeout(this._submenuHideTimeout),this._submenuHideTimeout=void 0)}_scheduleSubmenuShow(e,t){this._cancelSubmenuShow(),this._submenuShowTimeout=setTimeout(()=>{this._submenuShowTimeout=void 0;const i=typeof t=="number"?this._getRowElement(t):null;i&&this._showSubmenuForElement(e,i)},500)}_cancelSubmenuShow(){this._submenuShowTimeout!==void 0&&(clearTimeout(this._submenuShowTimeout),this._submenuShowTimeout=void 0)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(Es(e.browserEvent.target)&&e.browserEvent.target.closest(".action-list-item-toolbar")!==null){t.submenuActions?.length||this._cancelSubmenuShow(),this._list.setFocus([]);return}const n=!!(t.submenuActions?.length||t.hover?.content);if(n&&(this._suppressHover=!0),this._list.setFocus(typeof e.index=="number"?[e.index]:[]),n&&(this._suppressHover=!1),n){this._currentSubmenuElement===t?(this._cancelSubmenuHide(),this._cancelSubmenuShow()):(this._hideSubmenu(),this._scheduleSubmenuShow(t,e.index));return}if(this._currentSubmenuElement===t?this._cancelSubmenuHide():(this._cancelSubmenuShow(),this._hideSubmenu()),this._delegate.onHover&&!t.disabled&&t.kind==="action"&&this._currentSubmenuElement!==t){const s=await this._delegate.onHover(t.item,this.cts.token),r=s?s.canPreview:void 0;r!==t.canPreview&&(t.canPreview=r,typeof e.index=="number"&&(this._list.splice(e.index,1,[t]),this._list.setFocus([e.index])))}}else t&&t.hover?.content&&typeof e.index=="number"&&(this._currentSubmenuElement===t?(this._cancelSubmenuHide(),this._cancelSubmenuShow()):(this._hideSubmenu(),this._scheduleSubmenuShow(t,e.index)))}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};$m=Bm=$S([Hs(6,Te),Hs(7,Xr),Hs(8,ee)],$m);let zm=class extends A{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 anchorPosition(){if(this._showAbove!==void 0)return this._showAbove?1:0}constructor(e,t,i,n,s,r,a,l,d,c){super(),this._contextViewService=l,this._layoutService=d,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=a,this._widget=this._register(c.createInstance($m,e,t,i,n,s,r)),this._register(this._widget.onDidRequestLayout(()=>{this._hasLaidOut&&(this.layout(this._lastMinWidth),this._contextViewService.layout())}))}focus(){this._widget.focus()}hide(e){this._widget.hide(e),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(e){this._widget.acceptSelected(e)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){const e=this.domNode.parentElement?.closest(".action-widget");if(!e)return 0;const t=Ht(e).getComputedStyle(e),i=n=>Number.parseFloat(n)||0;return i(t.paddingTop)+i(t.paddingBottom)+i(t.borderTopWidth)+i(t.borderBottomWidth)}computeHeight(){const e=this._widget.computeListHeight(),t=this._widget.filterContainer?36:0,i=this._widget.footerContainer?32:0,n=this._widget.headerContainer?this._widget.headerContainer.offsetHeight||36:0,s=t+i+n,r=Ht(this.domNode);let a;if(this.hasDynamicHeight()){const g=r.innerHeight,u=bR(this._anchor),f=u.top-r.pageYOffset,_=g-f-u.height-30,v=f;if(this._showAbove===void 0){const S=s+this._widget.computeFullHeight();this._showAbove=S>_&&v>_}a=Math.max(0,(this._showAbove?v:_)-this.computeActionWidgetVerticalChromeHeight())}else{const u=this._layoutService.getContainer(r).clientHeight,f=this.domNode.getBoundingClientRect().top;a=f>0?u-f-10:u*.7}const l=Math.floor(r.innerHeight*.6),d=this._widget.lineHeight,c=Math.min(Math.max(a,d*3+s),l);return Math.min(e+s,c)-s}layout(e){this._hasLaidOut=!0,this._lastMinWidth=e;const t=this.computeHeight();this._widget.layout(t);const i=this._widget.computeMaxWidth(e);return this._cachedMaxWidth=i,this._widget.layout(t,this._cachedMaxWidth),this._cachedMaxWidth}};zm=$S([Hs(7,Lf),Hs(8,fR),Hs(9,ee)],zm);function fn(o){return o.replace(/\r\n|\r|\n/g," ")}var YT=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},kp=function(o,e){return function(t,i){e(t,i,o)}};V("actionBar.toggledBackground",iS,m(1713,"Background color for toggled action items in action bar."));const Vt={Visible:new ie("codeActionMenuVisible",!1,m(1714,"Whether the action widget list is visible")),FilterFocused:new ie("codeActionMenuFilterFocused",!1,m(1715,"Whether the action widget filter input is focused"))},Vi=Rn("actionWidgetService");let rn=class extends A{get isVisible(){return Vt.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new Ke)}show(e,t,i,n,s,r,a,l,d){const c=Vt.Visible.bindTo(this._contextKeyService),h=this._instantiationService.createInstance(zm,e,t,i,n,l,d,s);this._contextViewService.showContextView({getAnchor:()=>s,render:g=>(c.set(!0),this._renderWidget(g,h,a??[])),onHide:g=>{c.reset(),this._onWidgetClosed(g)},get anchorPosition(){return h.anchorPosition}},r,!1)}acceptSelected(e){this._list.value?.acceptSelected(e)}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(e){this._list.value?.hide(e),this._list.clear()}_renderWidget(e,t,i){const n=document.createElement("div");if(n.classList.add("action-widget"),e.appendChild(n),this._list.value=t,this._list.value)this._list.value.headerContainer&&n.appendChild(this._list.value.headerContainer),this._list.value.filterContainer&&n.appendChild(this._list.value.filterContainer),n.appendChild(this._list.value.domNode),this._list.value.footerContainer&&n.appendChild(this._list.value.footerContainer);else throw new Error("List has no value");const s=new W,r=this._list.value.headerContainer;r&&s.add(wp(r,p=>p.preventDefault()));const a=document.createElement("div"),l=e.appendChild(a);l.classList.add("context-view-block"),s.add(wp(l,p=>p.stopPropagation()));const d=document.createElement("div"),c=e.appendChild(d);c.classList.add("context-view-pointerBlock"),s.add(re(c,Pe.POINTER_MOVE,()=>c.remove())),s.add(wp(c,()=>c.remove()));let h=0;if(i.length){const p=this._createActionBar(".action-widget-action-bar",i);p&&(n.appendChild(p.getContainer().parentElement),s.add(p),h=p.getContainer().offsetWidth)}const g=this._list.value?.layout(h);n.style.width=`${g}px`,this._list.value?.focus();const u=Vt.FilterFocused.bindTo(this._contextKeyService);if(s.add({dispose:()=>u.reset()}),this._list.value?.filterInput){const p=this._list.value.filterInput;s.add(re(p,"focus",()=>u.set(!0))),s.add(re(p,"blur",()=>u.set(!1)))}const f=s.add(As(e));return s.add(f.onDidBlur(()=>{const p=If();p?.closest(".action-widget-hover")||p?.closest(".action-list-submenu-panel")||this.hide(!0)})),s}_createActionBar(e,t){if(!t.length)return;const i=B(e),n=new oo(i);return n.push(t,{icon:!1,label:!0}),n}_onWidgetClosed(e){this._list.value?.hide(e)}};rn=YT([kp(0,Lf),kp(1,pe),kp(2,ee)],rn);os(Vi,rn,1);const ds=1100;he(class extends tt{constructor(){super({id:"hideCodeActionWidget",title:L(1716,"Hide action widget"),precondition:Vt.Visible,keybinding:{weight:ds,primary:9,secondary:[1033]}})}run(o){o.get(Vi).hide(!0)}});he(class extends tt{constructor(){super({id:"clearFilterCodeActionWidget",title:L(1717,"Clear action widget filter"),precondition:T.and(Vt.Visible,Vt.FilterFocused),keybinding:{weight:ds+1,primary:9}})}run(o){const e=o.get(Vi);e instanceof rn&&(e.clearFilter()||e.hide(!0))}});he(class extends tt{constructor(){super({id:"selectPrevCodeAction",title:L(1718,"Select previous action"),precondition:Vt.Visible,keybinding:{weight:ds,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(o){const e=o.get(Vi);e instanceof rn&&e.focusPrevious()}});he(class extends tt{constructor(){super({id:"selectNextCodeAction",title:L(1719,"Select next action"),precondition:Vt.Visible,keybinding:{weight:ds,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(o){const e=o.get(Vi);e instanceof rn&&e.focusNext()}});he(class extends tt{constructor(){super({id:"collapseSectionCodeAction",title:L(1720,"Collapse section"),precondition:T.and(Vt.Visible,Vt.FilterFocused.negate()),keybinding:{weight:ds,primary:15}})}run(o){const e=o.get(Vi);e instanceof rn&&e.collapseSection()}});he(class extends tt{constructor(){super({id:"expandSectionCodeAction",title:L(1721,"Expand section"),precondition:T.and(Vt.Visible,Vt.FilterFocused.negate()),keybinding:{weight:ds,primary:17}})}run(o){const e=o.get(Vi);e instanceof rn&&e.expandSection()}});he(class extends tt{constructor(){super({id:"toggleSectionCodeAction",title:L(1722,"Toggle section"),precondition:T.and(Vt.Visible,Vt.FilterFocused.negate()),keybinding:{weight:ds,primary:10}})}run(o){const e=o.get(Vi);e instanceof rn&&(e.toggleSection()||e.acceptSelected())}});he(class extends tt{constructor(){super({id:I1,title:L(1723,"Accept selected action"),precondition:Vt.Visible,keybinding:{weight:ds,primary:3,secondary:[2137]}})}run(o){const e=o.get(Vi);e instanceof rn&&e.acceptSelected()}});he(class extends tt{constructor(){super({id:x1,title:L(1724,"Preview selected action"),precondition:Vt.Visible,keybinding:{weight:ds,primary:2051}})}run(o){const e=o.get(Vi);e instanceof rn&&e.acceptSelected(!0)}});var L1=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Fa=function(o,e){return function(t,i){e(t,i,o)}},jm,Go;let qm=(Go=class extends A{constructor(e,t,i,n,s,r,a,l,d,c,h){super(),this.typeId=e,this.editor=t,this.showCommand=n,this.range=s,this.edits=r,this.onSelectNewEdit=a,this.additionalActions=l,this._keybindingService=c,this._actionWidgetService=h,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(d),this.visibleContext.set(!0),this._register(ke(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(ke((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(g=>{this.dispose()})),this._register(Ve.runAndSubscribe(c.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=B(".post-edit-widget"),this.button=this._register(new SR(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(re(this.domNode,Pe.CLICK,()=>this.showSelector()))}getId(){return jm.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){const e=Tt(this.button.element),t={x:e.left+e.width,y:e.top+e.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((i,n)=>({kind:"action",item:i,label:i.title,disabled:!1,canPreview:!1,group:{title:"",icon:ce.fromId(n===this.edits.activeEditIndex?U.check.id:U.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:i=>{this._actionWidgetService.hide(!1);const n=this.edits.allEdits.findIndex(s=>s===i);if(n!==this.edits.activeEditIndex)return this.onSelectNewEdit(n)}},t,this.editor.getDomNode()??void 0,this.additionalActions)}},jm=Go,Go.baseId="editor.widget.postEditWidget",Go);qm=jm=L1([Fa(8,pe),Fa(9,Te),Fa(10,Vi)],qm);let hu=class extends A{constructor(e,t,i,n,s,r,a,l){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=n,this._getAdditionalActions=s,this._instantiationService=r,this._bulkEditService=a,this._notificationService=l,this._currentWidget=this._register(new Ke),this._register(Ve.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,n,s){if(!e.length||!this._editor.hasModel())return;const r=this._editor.getModel(),a=t.allEdits.at(t.activeEditIndex);if(!a)return;const l=async v=>{const S=this._editor.getModel();S&&(await S.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:v,allEdits:t.allEdits},i,n,s))},d=(v,S)=>{rs(v)||(this._notificationService.error(S),i&&this.show(e[0],t,l))},c=new Tr(this._editor,3,void 0,s);let h;try{h=await CR(n(a,c.token),c.token)}catch(v){return d(v,m(976,`Error resolving edit '{0}':
3
- {1}`,a.title,cu(v)))}finally{c.dispose()}if(s.isCancellationRequested)return;const g=w1(r.uri,e,h),u=e[0],f=r.deltaDecorations([],[{range:u,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let p,_;try{p=await this._bulkEditService.apply(g,{editor:this._editor,token:s}),_=r.getDecorationRange(f[0])}catch(v){return d(v,m(977,`Error applying edit '{0}':
4
- {1}`,a.title,cu(v)))}finally{r.deltaDecorations(f,[])}s.isCancellationRequested||i&&p.isApplied&&t.allEdits.length>1&&this.show(_??u,t,l)}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(qm,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i,this._getAdditionalActions()))}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};hu=L1([Fa(5,ee),Fa(6,Ac),Fa(7,Lt)],hu);var JT=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Tn=function(o,e){return function(t,i){e(t,i,o)}},wi;const D1="editor.changePasteType",QT="editor.pasteAs.preferences",zS=new ie("pasteWidgetVisible",!1,m(956,"Whether the paste widget is showing")),Tp="application/vnd.code.copymetadata";var Zo;let is=(Zo=class extends A{static get(e){return e.getContribution(wi.ID)}constructor(e,t,i,n,s,r,a,l,d,c){super(),this._logService=i,this._bulkEditService=n,this._clipboardService=s,this._commandService=r,this._configService=a,this._languageFeaturesService=l,this._quickInputService=d,this._progressService=c,this._editor=e,this._register(e.onWillCopy(h=>this.handleCopy(h))),this._register(e.onWillCut(h=>this.handleCopy(h))),this._register(e.onWillPaste(h=>this.handlePaste(h))),this._pasteProgressManager=this._register(new lu("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(hu,"pasteIntoEditor",e,zS,{id:D1,label:m(957,"Show paste options...")},()=>wi._configureDefaultAction?[wi._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(e){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:e},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(e){if(this._logService.trace("CopyPasteController#handleCopy"),!this._editor.hasTextFocus()||(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled()))return;const t=this._editor.getModel(),i=this._editor._getViewModel(),n=this._editor.getSelections();if(!t||!i||!n?.length)return;const s={multicursorText:e.dataToCopy.multicursorText??null,pasteOnNewLine:e.dataToCopy.isFromEmptySelection,mode:null},r=this._languageFeaturesService.documentPasteEditProvider.ordered(t).filter(h=>!!h.prepareDocumentPaste);if(!r.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:s});return}const a=new qx,l=r.flatMap(h=>h.copyMimeTypes??[]),d=nS();this.setCopyMetadata(e.clipboardData,{id:d,providerCopyMimeTypes:l,defaultPastePayload:s});const c=r.map(h=>({providerMimeTypes:h.copyMimeTypes,operation:dt(g=>h.prepareDocumentPaste(t,e.dataToCopy.sourceRanges,a,g).catch(u=>{console.error(u)}))}));wi._currentCopyOperation?.operations.forEach(h=>h.operation.cancel()),wi._currentCopyOperation={handle:d,operations:c}}async handlePaste(e){if(this._logService.trace("CopyPasteController#handlePaste for id : ",e.metadata?.id),!this._editor.hasTextFocus())return;const t=e.toExternalVSDataTransfer();if(!t)return;t.delete(Tp),qt.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;const i=this._editor.getModel(),n=this._editor.getSelections();if(!n?.length||!i||this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const s=this.fetchCopyMetadata(e);this._logService.trace("CopyPasteController#handlePaste with metadata : ",s?.id," and text.length : ",e.clipboardData.getData("text/plain").length);const r=Array.from(e.clipboardData.files).map(d=>d.type),a=[...e.clipboardData.types,...r,...s?.providerCopyMimeTypes??[],Nt.uriList],l=this._languageFeaturesService.documentPasteEditProvider.ordered(i).filter(d=>{const c=this._pasteAsActionContext?.preferred;return c&&!this.providerMatchesPreference(d,c)?!1:d.pasteMimeTypes?.some(h=>GC(h,a))});if(!l.length){this._pasteAsActionContext?.preferred&&(this.showPasteAsNoEditMessage(n,this._pasteAsActionContext.preferred),e.setHandled());return}e.setHandled(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,l,n,t,s):this.doPasteInline(l,n,t,s,e.browserEvent)}showPasteAsNoEditMessage(e,t){const i="only"in t?t.only.value:"preferences"in t?t.preferences.length?t.preferences.map(n=>n.value).join(", "):m(958,"empty"):t.providerId;qt.get(this._editor)?.showMessage(m(959,"No paste edits for '{0}' found",i),e[0].getStartPosition())}doPasteInline(e,t,i,n,s){this._logService.trace("CopyPasteController#doPasteInline");const r=this._editor;if(!r.hasModel())return;const a=new Tr(r,3,void 0),l=dt(async d=>{const c=this._editor;if(!c.hasModel())return;const h=c.getModel(),g=new W,u=g.add(new Je(d));g.add(a.token.onCancellationRequested(()=>u.cancel()));const f=u.token;try{if(await this.mergeInDataFromCopy(e,i,n,f),f.isCancellationRequested)return;const p=e.filter(S=>this.isSupportedPasteProvider(S,i));if(!p.length||p.length===1&&p[0]instanceof Hr)return this.applyDefaultPasteHandler(i,n,f,s);const _={triggerKind:wm.Automatic},v=await this.getPasteEdits(p,i,h,t,_,f);if(g.add(v),f.isCancellationRequested)return;if(v.edits.length===1&&v.edits[0].provider instanceof Hr)return this.applyDefaultPasteHandler(i,n,f,s);if(v.edits.length){const S=c.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:this.getInitialActiveEditIndex(h,v.edits),allEdits:v.edits},S,async(y,x)=>{if(!y.provider.resolveDocumentPasteEdit)return y;const b=y.provider.resolveDocumentPasteEdit(y,x),w=new sS,D=await this._pasteProgressManager.showWhile(t[0].getEndPosition(),m(960,"Resolving paste edit for '{0}'. Click to cancel",y.title),il(Promise.race([w.p,b]),x),{cancel:()=>w.cancel()},0);return D&&(y.insertText=D.insertText,y.additionalEdit=D.additionalEdit),y},f)}await this.applyDefaultPasteHandler(i,n,f,s)}finally{g.dispose(),this._currentPasteOperation===l&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),m(961,"Running paste handlers. Click to cancel and do basic paste"),l,{cancel:async()=>{l.cancel(),!a.token.isCancellationRequested&&await this.applyDefaultPasteHandler(i,n,a.token,s)}}).finally(()=>{a.dispose()}),this._currentPasteOperation=l}showPasteAsPick(e,t,i,n,s){this._logService.trace("CopyPasteController#showPasteAsPick");const r=dt(async a=>{const l=this._editor;if(!l.hasModel())return;const d=l.getModel(),c=new W,h=c.add(new Tr(l,3,void 0,a));try{if(await this.mergeInDataFromCopy(t,n,s,h.token),h.token.isCancellationRequested)return;let g=t.filter(v=>this.isSupportedPasteProvider(v,n,e));e&&(g=g.filter(v=>this.providerMatchesPreference(v,e)));const u={triggerKind:wm.PasteAs,only:e&&"only"in e?e.only:void 0};let f=c.add(await this.getPasteEdits(g,n,d,i,u,h.token));if(h.token.isCancellationRequested)return;if(e&&(f={edits:f.edits.filter(v=>"only"in e?e.only.contains(v.kind):"preferences"in e?e.preferences.some(S=>S.contains(v.kind)):e.providerId===v.provider.id),dispose:f.dispose}),!f.edits.length){e&&this.showPasteAsNoEditMessage(i,e);return}let p;if(e)p=f.edits.at(0);else{const v={id:"editor.pasteAs.default",label:m(962,"Configure default paste action"),edit:void 0},S=await this._quickInputService.pick([...f.edits.map(y=>({label:y.title,description:y.kind?.value,edit:y})),...wi._configureDefaultAction?[wR({type:"separator"}),{label:wi._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:m(963,"Select Paste Action")});if(S===v){wi._configureDefaultAction?.run();return}p=S?.edit}if(!p)return;const _=w1(d.uri,i,p);await this._bulkEditService.apply(_,{editor:this._editor})}finally{c.dispose(),this._currentPasteOperation===r&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:m(964,"Running paste handlers")},()=>r)}setCopyMetadata(e,t){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",t.id),e.setData(Tp,JSON.stringify(t))}fetchCopyMetadata(e){this._logService.trace("CopyPasteController#fetchCopyMetadata");const t=e.clipboardData.getData(Tp);if(t)try{return JSON.parse(t)}catch{return}if(e.metadata)return{defaultPastePayload:{mode:e.metadata.mode,multicursorText:e.metadata.multicursorText??null,pasteOnNewLine:!!e.metadata.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,i,n){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",i?.id),i?.id&&wi._currentCopyOperation?.handle===i.id){const s=wi._currentCopyOperation.operations.filter(a=>e.some(l=>l.pasteMimeTypes.some(d=>GC(d,a.providerMimeTypes)))).map(a=>a.operation),r=await Promise.all(s);if(n.isCancellationRequested)return;for(const a of r.reverse())if(a)for(const[l,d]of a)t.replace(l,d)}if(!t.has(Nt.uriList)){const s=await this._clipboardService.readResources();if(n.isCancellationRequested)return;s.length&&t.append(Nt.uriList,yR($x.create(s)))}}async getPasteEdits(e,t,i,n,s,r){const a=new W,l=await il(Promise.all(e.map(async c=>{try{const h=await c.provideDocumentPasteEdits?.(i,n,t,s,r);return h&&a.add(h),h?.edits?.map(g=>({...g,provider:c}))}catch(h){rs(h)||console.error(h);return}})),r),d=_o(l??[]).flat().filter(c=>!s.only||s.only.contains(c.kind));return{edits:y1(d),dispose:()=>a.dispose()}}async applyDefaultPasteHandler(e,t,i,n){const r=await(e.get(Nt.text)??e.get("text"))?.asString()??"";if(i.isCancellationRequested)return;const a={clipboardEvent:n,text:r,pasteOnNewLine:t?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:t?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",t?.id),this._editor.trigger("keyboard","paste",a)}isSupportedPasteProvider(e,t,i){return e.pasteMimeTypes?.some(n=>t.matches(n))?!i||this.providerMatchesPreference(e,i):!1}providerMatchesPreference(e,t){return"only"in t?e.providedPasteEditKinds.some(i=>t.only.contains(i)):"preferences"in t?e.providedPasteEditKinds.some(i=>t.preferences.some(n=>n.contains(i))):e.id===t.providerId}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(QT,{resource:e.uri});for(const n of Array.isArray(i)?i:[]){const s=new Oe(n),r=t.findIndex(a=>s.contains(a.kind));if(r>=0)return r}return 0}},wi=Zo,Zo.ID="editor.contrib.copyPasteActionController",Zo);is=wi=JT([Tn(1,ee),Tn(2,Pt),Tn(3,Ac),Tn(4,li),Tn(5,it),Tn(6,Ie),Tn(7,G),Tn(8,Ai),Tn(9,IR)],is);const Ur="9_cutcopypaste",eP=Dl||document.queryCommandSupported("cut"),E1=Dl||document.queryCommandSupported("copy"),tP=typeof navigator.clipboard>"u"||Kx?document.queryCommandSupported("paste"):!0;function jS(o){return o.register(),o}const iP=eP?jS(new oS({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Dl?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:q.MenubarEditMenu,group:"2_ccp",title:m(849,"Cu&&t"),order:1},{menuId:q.EditorContext,group:Ur,title:m(850,"Cut"),when:C.writable,order:1},{menuId:q.CommandPalette,group:"",title:m(851,"Cut"),order:1},{menuId:q.SimpleEditorContext,group:Ur,title:m(852,"Cut"),when:C.writable,order:1}]})):void 0,nP=E1?jS(new oS({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Dl?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:q.MenubarEditMenu,group:"2_ccp",title:m(853,"&&Copy"),order:2},{menuId:q.EditorContext,group:Ur,title:m(854,"Copy"),order:2},{menuId:q.CommandPalette,group:"",title:m(855,"Copy"),order:1},{menuId:q.SimpleEditorContext,group:Ur,title:m(856,"Copy"),order:2}]})):void 0;Mi.appendMenuItem(q.MenubarEditMenu,{submenu:q.MenubarCopy,title:L(861,"Copy As"),group:"2_ccp",order:3});Mi.appendMenuItem(q.EditorContext,{submenu:q.EditorContextCopy,title:L(862,"Copy As"),group:Ur,order:3});Mi.appendMenuItem(q.EditorContext,{submenu:q.EditorContextShare,title:L(863,"Share"),group:"11_share",order:-1,when:T.and(T.notEquals("resourceScheme","output"),C.editorTextFocus)});Mi.appendMenuItem(q.ExplorerContext,{submenu:q.ExplorerContextShare,title:L(864,"Share"),group:"11_share",order:-1});const Pp=tP?jS(new oS({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Dl?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:q.MenubarEditMenu,group:"2_ccp",title:m(857,"&&Paste"),order:4},{menuId:q.EditorContext,group:Ur,title:m(858,"Paste"),when:C.writable,order:4},{menuId:q.CommandPalette,group:"",title:m(859,"Paste"),order:1},{menuId:q.SimpleEditorContext,group:Ur,title:m(860,"Paste"),when:C.writable,order:4}]})):void 0;class sP extends F{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:L(865,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:0,weight:100}})}run(e,t){const i=e.get(Pt),n=e.get(li);i.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!(!t.hasModel()||!t.getOption(45)&&t.getSelection().isEmpty())&&(Jh.forceCopyWithSyntaxHighlighting=!0,t.focus(),i.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),Km(t,n),i.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),Jh.forceCopyWithSyntaxHighlighting=!1)}}function Km(o,e){if(Jh.electronBugWorkaroundCopyEventHasFired=!1,o.getContainerDomNode().ownerDocument.execCommand("copy"),Dl&&Jh.electronBugWorkaroundCopyEventHasFired===!1){const{dataToCopy:t}=ER(o._getViewModel(),void 0,Kx);e.writeText(t.text)}}function R1(o,e){o&&(o.addImplementation(1e4,"code-editor",(t,i)=>{const n=t.get(Pt),s=t.get(li);n.trace("registerExecCommandImpl (addImplementation code-editor for : ",e,")");const r=t.get(Ue).getFocusedCodeEditor();if(r&&r.hasTextFocus()&&r.hasModel()){const a=r.getOption(45),l=r.getSelection();return l&&l.isEmpty()&&!a||(r.getOption(170)&&e==="cut"?(Fw(r),n.trace("registerExecCommandImpl (before execCommand copy)"),Km(r,s),r.trigger(void 0,"cut",void 0),n.trace("registerExecCommandImpl (after execCommand copy)")):(Fw(r),n.trace("registerExecCommandImpl (before execCommand "+e+")"),e==="copy"?Km(r,s):r.getContainerDomNode().ownerDocument.execCommand(e),n.trace("registerExecCommandImpl (after execCommand "+e+")"))),!0}return!1}),o.addImplementation(0,"generic-dom",(t,i)=>{const n=t.get(Pt);return n.trace("registerExecCommandImpl (addImplementation generic-dom for : ",e,")"),n.trace("registerExecCommandImpl (before execCommand "+e+")"),DR().execCommand(e),n.trace("registerExecCommandImpl (after execCommand "+e+")"),!0}))}function Fw(o){if(o.getOption(170)){const t=Gx.get(o.getId());t&&t.handleWillCopy()}}R1(iP,"cut");R1(nP,"copy");Pp&&(Pp.addImplementation(1e4,"code-editor",(o,e)=>{const t=o.get(Pt);t.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");const i=o.get(Ue),n=o.get(li),s=i.getFocusedCodeEditor();if(s&&s.hasModel()&&s.hasTextFocus()){if(s.getOption(170)){const l=Gx.get(s.getId());l&&l.handleWillPaste()}t.trace("registerExecCommandImpl (before triggerPaste)");const a=n.triggerPaste(Yh().vscodeWindowId);return a?(t.trace("registerExecCommandImpl (triggerPaste defined)"),a.then(async()=>(t.trace("registerExecCommandImpl (after triggerPaste)"),is.get(s)?.finishedPaste()??Promise.resolve()))):(t.trace("registerExecCommandImpl (triggerPaste undefined)"),xR?(t.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{const l=await n.readText();if(l!==""){const d=LR.INSTANCE.get(l);let c=!1,h=null,g=null;d&&(c=s.getOption(45)&&!!d.isFromEmptySelection,h=typeof d.multicursorText<"u"?d.multicursorText:null,g=d.mode),t.trace("registerExecCommandImpl (clipboardText.length : ",l.length," id : ",d?.id,")"),s.trigger("keyboard","paste",{text:l,pasteOnNewLine:c,multicursorText:h,mode:g})}})()):!0)}return!1}),Pp.addImplementation(0,"generic-dom",(o,e)=>(o.get(Pt).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),o.get(li).triggerPaste(Yh().vscodeWindowId)??!1)));E1&&P(sP);const Re=new class{constructor(){this.QuickFix=new Oe("quickfix"),this.Refactor=new Oe("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 Oe("notebook"),this.Source=new Oe("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var Zt;(function(o){o.Refactor="refactor",o.RefactorPreview="refactor preview",o.Lightbulb="lightbulb",o.Default="other (default)",o.SourceAction="source action",o.QuickFix="quick fix action",o.FixAll="fix all",o.OrganizeImports="organize imports",o.AutoFix="auto fix",o.QuickFixHover="quick fix hover window",o.OnSave="save participants",o.ProblemsView="problems view"})(Zt||(Zt={}));function oP(o,e){return!(o.include&&!o.include.intersects(e)||o.excludes&&o.excludes.some(t=>N1(e,t,o.include))||!o.includeSourceActions&&Re.Source.contains(e))}function rP(o,e){const t=e.kind?new Oe(e.kind):void 0;return!(o.include&&(!t||!o.include.contains(t))||o.excludes&&t&&o.excludes.some(i=>N1(t,i,o.include))||!o.includeSourceActions&&t&&Re.Source.contains(t)||o.onlyIncludePreferredActions&&!e.isPreferred)}function N1(o,e,t){return!(!e.contains(o)||t&&e.contains(t))}class vn{static fromUser(e,t){return!e||typeof e!="object"?new vn(t.kind,t.apply,!1):new vn(vn.getKindFromUser(e,t.kind),vn.getApplyFromUser(e,t.apply),vn.getPreferredUser(e))}static getApplyFromUser(e,t){switch(typeof e.apply=="string"?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}static getKindFromUser(e,t){return typeof e.kind=="string"?new Oe(e.kind):t}static getPreferredUser(e){return typeof e.preferred=="boolean"?e.preferred:!1}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class aP{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}async resolve(e){if(this.provider?.resolveCodeAction&&!this.action.edit){let t;try{t=await this.provider.resolveCodeAction(this.action,e)}catch(i){Ze(i)}t&&(this.action.edit=t.edit)}return this}}const k1="editor.action.codeAction",Gf="editor.action.quickFix",qS="editor.action.autoFix",T1="editor.action.refactor",P1="editor.action.sourceAction",Gm="editor.action.organizeImports",Zm="editor.action.fixAll",lP=1e3;class wd extends A{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return e.isAI&&!t.isAI?1:!e.isAI&&t.isAI?-1:ri(e.diagnostics)?ri(t.diagnostics)?wd.codeActionsPreferredComparator(e,t):-1:ri(t.diagnostics)?1:wd.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(wd.codeActionsComparator),this.validActions=this.allActions.filter(({action:n})=>!n.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&Re.QuickFix.contains(new Oe(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}}const Ww={actions:[],documentation:void 0};async function Da(o,e,t,i,n,s){const r=i.filter||{},a={...r,excludes:[...r.excludes||[],Re.Notebook]},l={only:r.include?.value,trigger:i.type},d=new RR(e,s),c=i.type===2,h=dP(o,e,c?a:r),g=new W,u=h.map(async p=>{const _=setTimeout(()=>n.report(p),1250);try{const v=await p.provideCodeActions(e,t,l,d.token);if(d.token.isCancellationRequested)return v?.dispose(),Ww;v&&g.add(v);const S=(v?.actions||[]).filter(x=>x&&rP(r,x)),y=hP(p,S,r.include);return{actions:S.map(x=>new aP(x,p)),documentation:y}}catch(v){if(rs(v))throw v;return Ze(v),Ww}finally{clearTimeout(_)}}),f=o.onDidChange(()=>{const p=o.all(e);sn(p,h)||d.cancel()});try{const p=await Promise.all(u),_=p.map(y=>y.actions).flat(),v=[..._o(p.map(y=>y.documentation)),...cP(o,e,i,_)],S=new wd(_,v,g);return g.add(S),S}catch(p){throw g.dispose(),p}finally{f.dispose(),d.dispose()}}function dP(o,e,t){return o.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(n=>oP(t,new Oe(n))):!0)}function*cP(o,e,t,i){if(e&&i.length)for(const n of o.all(e))n._getAdditionalMenuItems&&(yield*n._getAdditionalMenuItems?.({trigger:t.type,only:t.filter?.include?.value},i.map(s=>s.action)))}function hP(o,e,t){if(!o.documentation)return;const i=o.documentation.map(n=>({kind:new Oe(n.kind),command:n.command}));if(t){let n;for(const s of i)s.kind.contains(t)&&(n?n.kind.contains(s.kind)&&(n=s):n=s);if(n)return n?.command}for(const n of e)if(n.kind){for(const s of i)if(s.kind.contains(new Oe(n.kind)))return s.command}}var Ns;(function(o){o.OnSave="onSave",o.FromProblemsView="fromProblemsView",o.FromCodeActions="fromCodeActions",o.FromAILightbulb="fromAILightbulb",o.FromProblemsHover="fromProblemsHover"})(Ns||(Ns={}));async function uP(o,e,t,i,n=de.None){const s=o.get(Ac),r=o.get(it),a=o.get(vo),l=o.get(Lt),d=o.get(rS);if(a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),d.playSignal($d.codeActionTriggered),await e.resolve(n),!n.isCancellationRequested&&!(e.action.edit?.edits.length&&!(await s.apply(e.action.edit,{editor:i?.editor,label:e.action.title,quotableLabel:e.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:t!==Ns.OnSave,showPreview:i?.preview,reason:Pr.codeAction({kind:e.action.kind,providerId:Zx.fromExtensionId(e.provider?.extensionId)})})).isApplied)){if(e.action.command)try{await r.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(c){const h=gP(c);l.error(typeof h=="string"?h:m(866,"An unknown error occurred while applying the code action"))}setTimeout(()=>d.playSignal($d.codeActionApplied),lP)}}function gP(o){return typeof o=="string"?o:o instanceof Error&&typeof o.message=="string"?o.message:void 0}Ee.registerCommand("_executeCodeActionProvider",async function(o,e,t,i,n){if(!(e instanceof Le))throw Gn();const{codeActionProvider:s}=o.get(G),r=o.get(Yt).getModel(e);if(!r)throw Gn();const a=J.isISelection(t)?J.liftSelection(t):I.isIRange(t)?r.validateRange(t):void 0;if(!a)throw Gn();const l=typeof i=="string"?new Oe(i):void 0,d=await Da(s,r,a,{type:1,triggerAction:Zt.Default,filter:{includeSourceActions:!0,include:l}},Un.None,de.None),c=[],h=Math.min(d.validActions.length,typeof n=="number"?n:0);for(let g=0;g<h;g++)c.push(d.validActions[g].resolve(de.None));try{return await Promise.all(c),d.validActions.map(g=>g.action)}finally{setTimeout(()=>d.dispose(),100)}});var fP=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},pP=function(o,e){return function(t,i){e(t,i,o)}},Xm,Xo;let Ym=(Xo=class{constructor(e){this.keybindingService=e}getResolver(){const e=new aS(()=>this.keybindingService.getKeybindings().filter(t=>Xm.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command===Gm?i={kind:Re.SourceOrganizeImports.value}:t.command===Zm&&(i={kind:Re.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...vn.fromUser(i,{kind:Oe.None,apply:"never"})}}));return t=>{if(t.kind)return this.bestKeybindingForCodeAction(t,e.value)?.resolvedKeybinding}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new Oe(e.kind);return t.filter(n=>n.kind.contains(i)).filter(n=>n.preferred?e.isPreferred:!0).reduceRight((n,s)=>n?n.kind.contains(s.kind)?s:n:s,void 0)}},Xm=Xo,Xo.codeActionCommands=[T1,k1,P1,Gm,Zm],Xo);Ym=Xm=fP([pP(0,Te)],Ym);V("symbolIcon.arrayForeground",nt,m(1547,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.booleanForeground",nt,m(1548,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},m(1549,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.colorForeground",nt,m(1550,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.constantForeground",nt,m(1551,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},m(1552,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},m(1553,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},m(1554,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},m(1555,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},m(1556,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.fileForeground",nt,m(1557,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.folderForeground",nt,m(1558,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},m(1559,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},m(1560,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.keyForeground",nt,m(1561,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.keywordForeground",nt,m(1562,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},m(1563,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.moduleForeground",nt,m(1564,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.namespaceForeground",nt,m(1565,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.nullForeground",nt,m(1566,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.numberForeground",nt,m(1567,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.objectForeground",nt,m(1568,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.operatorForeground",nt,m(1569,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.packageForeground",nt,m(1570,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.propertyForeground",nt,m(1571,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.referenceForeground",nt,m(1572,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.snippetForeground",nt,m(1573,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.stringForeground",nt,m(1574,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.structForeground",nt,m(1575,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.textForeground",nt,m(1576,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.typeParameterForeground",nt,m(1577,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.unitForeground",nt,m(1578,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));V("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},m(1579,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const O1=Object.freeze({kind:Oe.Empty,title:m(902,"More Actions...")}),mP=Object.freeze([{kind:Re.QuickFix,title:m(903,"Quick Fix")},{kind:Re.RefactorExtract,title:m(904,"Extract"),icon:U.wrench},{kind:Re.RefactorInline,title:m(905,"Inline"),icon:U.wrench},{kind:Re.RefactorRewrite,title:m(906,"Rewrite"),icon:U.wrench},{kind:Re.RefactorMove,title:m(907,"Move"),icon:U.wrench},{kind:Re.SurroundWith,title:m(908,"Surround With"),icon:U.surroundWith},{kind:Re.Source,title:m(909,"Source Action"),icon:U.symbolFile},O1]);function _P(o,e,t){if(!e)return o.map(s=>({kind:"action",item:s,group:O1,disabled:!!s.action.disabled,label:s.action.disabled||s.action.title,canPreview:!!s.action.edit?.edits.length}));const i=mP.map(s=>({group:s,actions:[]}));for(const s of o){const r=s.action.kind?new Oe(s.action.kind):Oe.None;for(const a of i)if(a.group.kind.contains(r)){a.actions.push(s);break}}const n=[];for(const s of i)if(s.actions.length){n.push({kind:"header",group:s.group});for(const r of s.actions){const a=s.group;n.push({kind:"action",item:r,group:r.action.isAI?{title:a.title,kind:a.kind,icon:U.sparkle}:a,label:r.action.title,disabled:!!r.action.disabled,keybinding:t(r.action)})}}return n}const M1=new ie("supportedCodeAction",""),Hw="_typescript.applyFixAllCodeAction";class vP extends A{constructor(e,t,i,n=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=n,this._autoTriggerTimer=this._register(new Fc),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged(s=>this._onMarkerChanges(s))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(i=>ro(i,t.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:Zt.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getSelection();if(e.type===1)return t;const i=this._editor.getOption(73).enabled;if(!(i===rd.Off&&!this.ignoreLightbulbOff)){{if(i===rd.Off||i===rd.On)return t;if(i===rd.OnCode){if(!t.isEmpty())return t;const s=this._editor.getModel(),{lineNumber:r,column:a}=t.getPosition(),l=s.getLineContent(r);if(l.length===0)return;if(a===1){if(/\s/.test(l[0]))return}else if(a===s.getLineMaxColumn(r)){if(/\s/.test(l[l.length-1]))return}else if(/\s/.test(l[a-2])&&/\s/.test(l[a-1]))return}}return t}}}var Fo;(function(o){o.Empty={type:0};class e{constructor(i,n,s){this.trigger=i,this.position=n,this._cancellablePromise=s,this.type=1,this.actions=s.catch(r=>{if(rs(r))return Jm;throw r})}cancel(){this._cancellablePromise.cancel()}}o.Triggered=e})(Fo||(Fo={}));const Jm=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class bP extends A{constructor(e,t,i,n,s,r){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=s,this._configurationService=r,this._codeActionOracle=this._register(new Ke),this._state=Fo.Empty,this._onDidChangeState=this._register(new Y),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new Ke),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=M1.bindTo(n),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(a=>{a.hasChanged(73)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Fo.Empty,!0))}_settingEnabledNearbyQuickfixes(){const e=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:e?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Fo.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(104)){const t=this._registry.all(e).flatMap(n=>n.providedCodeActionKinds??[]);this._supportedCodeActions.set(t.join(" "));const i=new vP(this._editor,this._markerService,n=>{if(!n){this.setState(Fo.Empty);return}const s=n.selection.getStartPosition(),r=dt(async d=>{if(this._settingEnabledNearbyQuickfixes()&&n.trigger.type===1&&(n.trigger.triggerAction===Zt.QuickFix||n.trigger.filter?.include?.contains(Re.QuickFix))){const h=await Da(this._registry,e,n.selection,n.trigger,Un.None,d);this.codeActionsDisposable.value=h;const g=[...h.allActions];if(d.isCancellationRequested)return h.dispose(),Jm;const u=h.validActions?.some(p=>p.action.kind&&Re.QuickFix.contains(new Oe(p.action.kind))&&!p.action.isAI),f=this._markerService.read({resource:e.uri});if(u){for(const p of h.validActions)p.action.command?.arguments?.some(_=>typeof _=="string"&&_.includes(Hw))&&(p.action.diagnostics=[...f.filter(_=>_.relatedInformation)]);return{validActions:h.validActions,allActions:g,documentation:h.documentation,hasAutoFix:h.hasAutoFix,hasAIFix:h.hasAIFix,allAIFixes:h.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=h}}}else if(!u&&f.length>0){const p=n.selection.getPosition();let _=p,v=Number.MAX_VALUE;const S=[...h.validActions];for(const x of f){const b=x.endColumn,w=x.endLineNumber,D=x.startLineNumber;if(w===p.lineNumber||D===p.lineNumber){_=new $(w,b);const N={type:n.trigger.type,triggerAction:n.trigger.triggerAction,filter:{include:n.trigger.filter?.include?n.trigger.filter?.include:Re.QuickFix},autoApply:n.trigger.autoApply,context:{notAvailableMessage:n.trigger.context?.notAvailableMessage||"",position:_}},E=new J(_.lineNumber,_.column,_.lineNumber,_.column),M=await Da(this._registry,e,E,N,Un.None,d);if(d.isCancellationRequested)return M.dispose(),Jm;if(M.validActions.length!==0){for(const O of M.validActions)O.action.command?.arguments?.some(H=>typeof H=="string"&&H.includes(Hw))&&(O.action.diagnostics=[...f.filter(H=>H.relatedInformation)]);h.allActions.length===0&&g.push(...M.allActions),Math.abs(p.column-b)<v?S.unshift(...M.validActions):S.push(...M.validActions)}v=Math.abs(p.column-b)}}const y=S.filter((x,b,w)=>w.findIndex(D=>D.action.title===x.action.title)===b);return y.sort((x,b)=>x.action.isPreferred&&!b.action.isPreferred?-1:!x.action.isPreferred&&b.action.isPreferred||x.action.isAI&&!b.action.isAI?1:!x.action.isAI&&b.action.isAI?-1:0),{validActions:y,allActions:g,documentation:h.documentation,hasAutoFix:h.hasAutoFix,hasAIFix:h.hasAIFix,allAIFixes:h.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=h}}}}if(n.trigger.type===1){const h=await Da(this._registry,e,n.selection,n.trigger,Un.None,d);return this.codeActionsDisposable.value=h,h}const c=await Da(this._registry,e,n.selection,n.trigger,Un.None,d);return this.codeActionsDisposable.value=c,c});n.trigger.type===1&&this._progressService?.showWhile(r,250);const a=new Fo.Triggered(n.trigger,s,r);let l=!1;this._state.type===1&&(l=this._state.trigger.type===1&&a.type===1&&a.trigger.type===2&&this._state.position!==a.position),l?setTimeout(()=>{this.setState(a)},500):this.setState(a)},void 0);i.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=i,this._codeActionOracle.value.trigger({type:2,triggerAction:Zt.Default})}else this._supportedCodeActions.reset()}trigger(e){this._codeActionOracle.value?.trigger(e),this.codeActionsDisposable.dispose()}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}}var SP=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},CP=function(o,e){return function(t,i){e(t,i,o)}},fs;const A1=ze("gutter-lightbulb",U.lightBulb,m(910,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),F1=ze("gutter-lightbulb-auto-fix",U.lightbulbAutofix,m(911,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),W1=ze("gutter-lightbulb-sparkle",U.lightbulbSparkle,m(912,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),H1=ze("gutter-lightbulb-aifix-auto-fix",U.lightbulbSparkleAutofix,m(913,"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.")),V1=ze("gutter-lightbulb-sparkle-filled",U.sparkleFilled,m(914,"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."));var ji;(function(o){o.Hidden={type:0};class e{constructor(i,n,s,r){this.actions=i,this.trigger=n,this.editorPosition=s,this.widgetPosition=r,this.type=1}}o.Showing=e})(ji||(ji={}));function B1(o,e,t,i,n=!1){if(o.validActions.length<=0)return;let s,r=!1;o.allAIFixes?(s=n?V1:U.sparkleFilled,o.validActions.length===1&&(r=!0)):o.hasAutoFix?o.hasAIFix?s=n?H1:U.lightbulbSparkleAutofix:s=n?F1:U.lightbulbAutofix:o.hasAIFix?s=n?W1:U.lightbulbSparkle:s=n?A1:U.lightBulb;let a;return r?a=m(915,"Run: {0}",o.validActions[0].action.title):o.hasAutoFix&&t?a=m(916,"Show Code Actions. Preferred Quick Fix Available ({0})",t):!o.hasAutoFix&&i?a=m(917,"Show Code Actions ({0})",i):a=m(918,"Show Code Actions"),{actions:o,trigger:e,icon:s,autoRun:r,title:a,isGutter:n}}var qn;let Qd=(qn=class extends A{static _computeLightBulbInfo(e,t,i,n){if(e.type===1)return B1(e.actions,e.trigger,i,n,t)}constructor(e,t){super(),this._editor=e,this._keybindingService=t,this.onlyWithEmptySelection=!1,this._onClick=this._register(new Y),this.onClick=this._onClick.event,this._state=Ne(this,ji.Hidden),this._gutterState=Ne(this,ji.Hidden),this._combinedInfo=R(this,i=>{const n=this._gutterState.read(i);if(n.type===1)return fs._computeLightBulbInfo(n,!0,this._preferredKbLabel.read(i),this._quickFixKbLabel.read(i));const s=this._state.read(i);if(s.type===1)return fs._computeLightBulbInfo(s,!1,this._preferredKbLabel.read(i),this._quickFixKbLabel.read(i))}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+A1.id,"codicon-"+H1.id,"codicon-"+F1.id,"codicon-"+W1.id,"codicon-"+V1.id],this._preferredKbLabel=Ne(this,void 0),this._quickFixKbLabel=Ne(this,void 0),this.gutterDecoration=fs.GUTTER_DECORATION,this._domNode=B("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Xx.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(i=>{const n=this._editor.getModel(),s=this._state.get();(s.type!==1||!n||s.editorPosition.lineNumber>=n.getLineCount())&&this.hide();const r=this._gutterState.get();(r.type!==1||!n||r.editorPosition.lineNumber>=n.getLineCount())&&this.gutterHide()})),this._register(NR(this._domNode,i=>{const n=this._state.get();if(n.type!==1)return;this._editor.focus(),i.preventDefault();const{top:s,height:r}=Tt(this._domNode),a=this._editor.getOption(75);let l=Math.floor(a/3);n.widgetPosition.position!==null&&n.widgetPosition.position.lineNumber<n.editorPosition.lineNumber&&(l+=a),this._onClick.fire({x:i.posx,y:s+r+l,actions:n.actions,trigger:n.trigger})})),this._register(re(this._domNode,"mouseenter",i=>{(i.buttons&1)===1&&this.hide()})),this._register(Ve.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(qS)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Gf)?.getLabel()??void 0,void 0)})),this._register(le(i=>{const n=this._combinedInfo.read(i);this._updateLightBulbTitleAndIcon(n),this._updateGutterDecorationOptions(n)})),this._register(this._editor.onMouseDown(async i=>{if(!i.target.element||!this.lightbulbClasses.some(d=>i.target.element&&i.target.element.classList.contains(d)))return;const n=this._gutterState.get();if(n.type!==1)return;this._editor.focus();const{top:s,height:r}=Tt(i.target.element),a=this._editor.getOption(75);let l=Math.floor(a/3);n.widgetPosition.position!==null&&n.widgetPosition.position.lineNumber<n.editorPosition.lineNumber&&(l+=a),this._onClick.fire({x:i.event.posx,y:s+r+l,actions:n.actions,trigger:n.trigger})}))}dispose(){super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){const e=this._state.get();return e.type===1?e.widgetPosition:null}update(e,t,i){if(e.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===rd.Off)return this.gutterHide(),this.hide();const r=this._editor.getModel();if(!r)return this.gutterHide(),this.hide();const{lineNumber:a,column:l}=r.validatePosition(i),d=r.getOptions().tabSize,c=this._editor.getOptions().get(59),h=r.getLineContent(a),g=lS(h,d),u=c.spaceWidth*g>22,f=b=>b>2&&this._editor.getTopForLineNumber(b)===this._editor.getTopForLineNumber(b-1),p=this._editor.getLineDecorations(a);let _=!1;if(p)for(const b of p){const w=b.options.glyphMarginClassName;if(w&&!this.lightbulbClasses.some(D=>w.includes(D))){_=!0;break}}let v=a,S=1;if(!u){const b=w=>{const D=r.getLineContent(w);return/^\s*$|^\s+/.test(D)||D.length<=S};if(a>1&&!f(a-1)){const w=r.getLineCount(),D=a===w,N=a>1&&b(a-1),E=!D&&b(a+1),M=b(a),O=!E&&!N;if(!E&&!N&&!_)return this._gutterState.set(new ji.Showing(e,t,i,{position:{lineNumber:v,column:S},preference:fs._posPref}),void 0),this.renderGutterLightbub(),this.hide();N||D||N&&!M?v-=1:(E||O&&M)&&(v+=1)}else if(a===1&&(a===r.getLineCount()||!b(a+1)&&!b(a)))if(this._gutterState.set(new ji.Showing(e,t,i,{position:{lineNumber:v,column:S},preference:fs._posPref}),void 0),_)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(a<r.getLineCount()&&!f(a+1))v+=1;else if(l*c.spaceWidth<22)return this.hide();S=/^\S\s*$/.test(r.getLineContent(v))?2:1}this._state.set(new ji.Showing(e,t,i,{position:{lineNumber:v,column:S},preference:fs._posPref}),void 0),this._gutterDecorationID&&(this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide());const y=e.validActions,x=e.validActions[0].action.kind;if(y.length!==1||!x){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this._state.get()!==ji.Hidden&&(this._state.set(ji.Hidden,void 0),this._editor.layoutContentWidget(this))}gutterHide(){this._gutterState.get()!==ji.Hidden&&(this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID),this._gutterState.set(ji.Hidden,void 0))}_updateLightBulbTitleAndIcon(e){this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!(!e||e.isGutter)&&(this._domNode.title=e.title,this._iconClasses=ce.asClassNameArray(e.icon),this._domNode.classList.add(...this._iconClasses))}_updateGutterDecorationOptions(e){!e||!e.isGutter||(this.gutterDecoration=te.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:ce.asClassName(e.icon),glyphMargin:{position:ym.Left},stickiness:1}))}renderGutterLightbub(){const e=this._editor.getSelection();e&&(this._gutterDecorationID===void 0?this._addGutterDecoration(e.startLineNumber):this._updateGutterDecoration(this._gutterDecorationID,e.startLineNumber))}_addGutterDecoration(e){this._editor.changeDecorations(t=>{this._gutterDecorationID=t.addDecoration(new I(e,0,e,0),this.gutterDecoration)})}_removeGutterDecoration(e){this._editor.changeDecorations(t=>{t.removeDecoration(e),this._gutterDecorationID=void 0})}_updateGutterDecoration(e,t){this._editor.changeDecorations(i=>{i.changeDecoration(e,new I(t,0,t,0)),i.changeDecorationOptions(e,this.gutterDecoration)})}},fs=qn,qn.GUTTER_DECORATION=te.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:ce.asClassName(U.lightBulb),glyphMargin:{position:ym.Left},stickiness:1}),qn.ID="editor.contrib.lightbulbWidget",qn._posPref=[0],qn);Qd=fs=SP([CP(1,Te)],Qd);var wP=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ui=function(o,e){return function(t,i){e(t,i,o)}},Sa;const yP="quickfix-edit-highlight";var Us;let $r=(Us=class extends A{static get(e){return e.getContribution(Sa.ID)}constructor(e,t,i,n,s,r,a,l,d,c,h,g){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=d,this._instantiationService=c,this._progressService=h,this._keybindingService=g,this._activeCodeActions=this._register(new Ke),this._showDisabled=!1,this._disposed=!1,this._onlyLightBulbWithEmptySelection=!1,this._lightBulbInfoObs=Ne(this,void 0),this._preferredKbLabel=Ne(this,void 0),this._quickFixKbLabel=Ne(this,void 0),this._editor=e,this._model=this._register(new bP(this._editor,s.codeActionProvider,t,i,r,l)),this._register(this._model.onDidChangeState(u=>this.update(u))),this._register(Ve.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(qS)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Gf)?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new aS(()=>{const u=this._editor.getContribution(Qd.ID);return u&&(this._register(u.onClick(f=>this.showCodeActionsFromLightbulb(f.actions,f))),u.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection),u}),this._resolver=n.createInstance(Ym),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(e.allAIFixes&&e.validActions.length===1){const i=e.validActions[0],n=i.action.command;n&&n.id==="inlineChat.start"&&n.arguments&&n.arguments.length>=1&&n.arguments[0]&&(n.arguments[0]={...n.arguments[0],autoSend:!1}),await this.applyCodeAction(i,!1,!1,Ns.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,n){if(!this._editor.hasModel())return;qt.get(this._editor)?.closeMessage();const s=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:n,context:{notAvailableMessage:e,position:s}})}_trigger(e){return this._model.trigger(e)}async applyCodeAction(e,t,i,n){const s=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(uP,e,n,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:Zt.QuickFix,filter:{}}),s.done()}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(e){if(e.type!==1){this.hideLightBulbWidget(),this._lightBulbInfoObs.set(void 0,void 0);return}let t;try{t=await e.actions}catch(n){we(n);return}if(!(this._disposed||this._editor.getSelection()?.startLineNumber!==e.position.lineNumber))if(this._lightBulbWidget.value?.update(t,e.trigger,e.position),this._lightBulbInfoObs.set(B1(t,e.trigger,this._preferredKbLabel.get(),this._quickFixKbLabel.get()),void 0),e.trigger.type===1){if(e.trigger.filter?.include){const s=this.tryGetValidActionToApply(e.trigger,t);if(s){try{this.hideLightBulbWidget(),await this.applyCodeAction(s,!1,!1,Ns.FromCodeActions)}finally{t.dispose()}return}if(e.trigger.context){const r=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,t);if(r&&r.action.disabled){qt.get(this._editor)?.showMessage(r.action.disabled,e.trigger.context.position),t.dispose();return}}}const n=!!e.trigger.filter?.include;if(e.trigger.context&&(!t.allActions.length||!n&&!t.validActions.length)){qt.get(this._editor)?.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=t,t.dispose();return}this._activeCodeActions.value=t,this.showCodeActionList(t,this.toCoords(e.position),{includeDisabledActions:n,fromLightbulb:!1})}else this._actionWidgetService.isVisible?t.dispose():this._activeCodeActions.value=t}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply==="first"&&t.validActions.length===0||e.autoApply==="ifSingle"&&t.allActions.length===1))return t.allActions.find(({action:i})=>i.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply==="first"&&t.validActions.length>0||e.autoApply==="ifSingle"&&t.validActions.length===1))return t.validActions[0]}async showCodeActionList(e,t,i){const n=this._editor.createDecorationsCollection(),s=this._editor.getDomNode();if(!s)return;const r=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!r.length)return;const a=$.isIPosition(t)?this.toCoords(t):t,l={onSelect:async(d,c)=>{this.applyCodeAction(d,!0,!!c,i.fromLightbulb?Ns.FromAILightbulb:Ns.FromCodeActions),this._actionWidgetService.hide(!1),n.clear()},onHide:d=>{this._editor?.focus(),n.clear()},onHover:async(d,c)=>{if(c.isCancellationRequested)return;let h=!1;const g=d.action.kind;if(g){const u=new Oe(g);h=[Re.RefactorExtract,Re.RefactorInline,Re.RefactorRewrite,Re.RefactorMove,Re.Source].some(p=>p.contains(u))}return{canPreview:h||!!d.action.edit?.edits.length}},onFocus:d=>{if(d&&d.action){const c=d.action.ranges,h=d.action.diagnostics;if(n.clear(),c&&c.length>0){const g=h&&h?.length>1?h.map(u=>({range:u,options:Sa.DECORATION})):c.map(u=>({range:u,options:Sa.DECORATION}));n.set(g)}else if(h&&h.length>0){const g=h.map(f=>({range:f,options:Sa.DECORATION}));n.set(g);const u=h[0];if(u.startLineNumber&&u.startColumn){const f=this._editor.getModel()?.getWordAtPosition({lineNumber:u.startLineNumber,column:u.startColumn})?.word;ao(m(899,"Context: {0} at line {1} and column {2}.",f,u.startLineNumber,u.startColumn))}}}else n.clear()}};this._actionWidgetService.show("codeActionWidget",!0,_P(r,this._shouldShowHeaders(),this._resolver.getResolver()),l,a,s,this._getActionBarActions(e,t,i))}toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=Tt(this._editor.getDomNode()),n=i.left+t.left,s=i.top+t.top+t.height;return{x:n,y:s}}_shouldShowHeaders(){const e=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:e?.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const n=e.documentation.map(s=>({id:s.id,label:s.title,tooltip:s.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(s.id,...s.arguments??[])}));return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&n.push(this._showDisabled?{id:"hideMoreActions",label:m(900,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:"showMoreActions",label:m(901,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),n}},Sa=Us,Us.ID="editor.contrib.codeActionController",Us.DECORATION=te.register({description:"quickfix-highlight",className:yP}),Us);$r=Sa=wP([Ui(1,Df),Ui(2,pe),Ui(3,ee),Ui(4,G),Ui(5,nl),Ui(6,it),Ui(7,Ie),Ui(8,Vi),Ui(9,ee),Ui(10,nl),Ui(11,Te)],$r);Tc((o,e)=>{((n,s)=>{s&&e.addRule(`.monaco-editor ${n} { background-color: ${s}; }`)})(".quickfix-edit-highlight",o.getColor(kR));const i=o.getColor(Yx);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${zd(o.type)?"dotted":"solid"} ${i}; box-sizing: border-box; }`)});function Gc(o){return T.regex(M1.keys()[0],new RegExp("(\\s|^)"+jd(o.value)+"\\b"))}const KS={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:m(867,"Kind of the code action to run.")},apply:{type:"string",description:m(868,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[m(869,"Always apply the first returned code action."),m(870,"Apply the first returned code action if it is the only one."),m(871,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:m(872,"Controls if only preferred code actions should be returned.")}}};function Qr(o,e,t,i,n=Zt.Default){o.hasModel()&&$r.get(o)?.manualTriggerAtCurrentPosition(e,n,t,i)}class IP extends vi{constructor(){super({id:Gf,title:L(889,"Quick Fix..."),precondition:T.and(C.writable,C.hasCodeActionsProvider),icon:U.lightBulb,f1:!0,keybinding:{when:C.textInputFocus,primary:2137,weight:100},menu:{id:q.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:T.and(C.writable,C.hasCodeActionsProvider)}})}runEditorCommand(e,t){return Qr(t,m(873,"No code actions available"),void 0,void 0,Zt.QuickFix)}}class xP extends Mt{constructor(){super({id:k1,precondition:T.and(C.writable,C.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:KS}]}})}runEditorCommand(e,t,i){const n=vn.fromUser(i,{kind:Oe.Empty,apply:"ifSingle"});return Qr(t,typeof i?.kind=="string"?n.preferred?m(874,"No preferred code actions for '{0}' available",i.kind):m(875,"No code actions for '{0}' available",i.kind):n.preferred?m(876,"No preferred code actions available"):m(877,"No code actions available"),{include:n.kind,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply)}}class LP extends F{constructor(){super({id:T1,label:L(890,"Refactor..."),precondition:T.and(C.writable,C.hasCodeActionsProvider),kbOpts:{kbExpr:C.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:T.and(C.writable,Gc(Re.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:KS}]}})}run(e,t,i){const n=vn.fromUser(i,{kind:Re.Refactor,apply:"never"});return Qr(t,typeof i?.kind=="string"?n.preferred?m(878,"No preferred refactorings for '{0}' available",i.kind):m(879,"No refactorings for '{0}' available",i.kind):n.preferred?m(880,"No preferred refactorings available"):m(881,"No refactorings available"),{include:Re.Refactor.contains(n.kind)?n.kind:Oe.None,onlyIncludePreferredActions:n.preferred},n.apply,Zt.Refactor)}}class DP extends F{constructor(){super({id:P1,label:L(891,"Source Action..."),precondition:T.and(C.writable,C.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:T.and(C.writable,Gc(Re.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:KS}]}})}run(e,t,i){const n=vn.fromUser(i,{kind:Re.Source,apply:"never"});return Qr(t,typeof i?.kind=="string"?n.preferred?m(882,"No preferred source actions for '{0}' available",i.kind):m(883,"No source actions for '{0}' available",i.kind):n.preferred?m(884,"No preferred source actions available"):m(885,"No source actions available"),{include:Re.Source.contains(n.kind)?n.kind:Oe.None,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply,Zt.SourceAction)}}class EP extends F{constructor(){super({id:Gm,label:L(892,"Organize Imports"),precondition:T.and(C.writable,Gc(Re.SourceOrganizeImports)),kbOpts:{kbExpr:C.textInputFocus,primary:1581,weight:100},metadata:{description:L(893,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(e,t){return Qr(t,m(886,"No organize imports action available"),{include:Re.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",Zt.OrganizeImports)}}class RP extends F{constructor(){super({id:Zm,label:L(894,"Fix All"),precondition:T.and(C.writable,Gc(Re.SourceFixAll))})}run(e,t){return Qr(t,m(887,"No fix all action available"),{include:Re.SourceFixAll,includeSourceActions:!0},"ifSingle",Zt.FixAll)}}class NP extends F{constructor(){super({id:qS,label:L(895,"Auto Fix..."),precondition:T.and(C.writable,Gc(Re.QuickFix)),kbOpts:{kbExpr:C.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return Qr(t,m(888,"No auto fixes available"),{include:Re.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",Zt.AutoFix)}}ae($r.ID,$r,3);ae(Qd.ID,Qd,4);he(IP);P(LP);P(DP);P(EP);P(NP);P(RP);K(new xP);Nn.as(Ef.Configuration).registerConfiguration({...dS,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:m(896,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});Nn.as(Ef.Configuration).registerConfiguration({...dS,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:m(897,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});Nn.as(Ef.Configuration).registerConfiguration({...dS,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:6,markdownDescription:m(898,"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}}});const Pg=class Pg{constructor(){this.lenses=[]}dispose(){this._store?.dispose()}get isDisposed(){return this._store?.isDisposed??!1}add(e,t){cS(e)&&(this._store??=new W,this._store.add(e));for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}};Pg.Empty=new Pg;let cl=Pg;async function U1(o,e,t){const i=o.ordered(e),n=new Map,s=new cl,r=i.map(async(a,l)=>{n.set(a,l);try{const d=await Promise.resolve(a.provideCodeLenses(e,t));d&&s.add(d,a)}catch(d){Ze(d)}});return await Promise.all(r),t.isCancellationRequested?(s.dispose(),cl.Empty):(s.lenses=s.lenses.sort((a,l)=>a.symbol.range.startLineNumber<l.symbol.range.startLineNumber?-1:a.symbol.range.startLineNumber>l.symbol.range.startLineNumber?1:n.get(a.provider)<n.get(l.provider)?-1:n.get(a.provider)>n.get(l.provider)?1:a.symbol.range.startColumn<l.symbol.range.startColumn?-1:a.symbol.range.startColumn>l.symbol.range.startColumn?1:0),s)}Ee.registerCommand("_executeCodeLensProvider",function(o,...e){let[t,i]=e;Ce(Le.isUri(t)),Ce(typeof i=="number"||!i);const{codeLensProvider:n}=o.get(G),s=o.get(Yt).getModel(t);if(!s)throw Gn();const r=[],a=new W;return U1(n,s,de.None).then(l=>{a.add(l);const d=[];for(const c of l.lenses)i==null||c.symbol.command?r.push(c.symbol):i-- >0&&c.provider.resolveCodeLens&&d.push(Promise.resolve(c.provider.resolveCodeLens(s,c.symbol,de.None)).then(h=>r.push(h||c.symbol)));return Promise.all(d)}).then(()=>r).finally(()=>{setTimeout(()=>a.dispose(),100)})});var kP=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},TP=function(o,e){return function(t,i){e(t,i,o)}};const $1=Rn("ICodeLensCache");class Vw{constructor(e,t){this.lineCount=e,this.data=t}}let Qm=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new Wc(20,.75);const t="codelens/cache";TR(Th,()=>e.remove(t,1));const i="codelens/cache2",n=e.get(i,1,"{}");this._deserialize(n);const s=Ve.filter(e.onWillSaveState,r=>r.reason===hS.SHUTDOWN);Ve.once(s)(r=>{e.store(i,this._serialize(),1,1)})}put(e,t){const i=t.lenses.map(r=>({range:r.symbol.range,command:r.symbol.command&&{id:"",title:r.symbol.command?.title}})),n=new cl;n.add({lenses:i},this._fakeProvider);const s=new Vw(e.getLineCount(),n);this._cache.set(e.uri.toString(),s)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const n=new Set;for(const s of i.data.lenses)n.add(s.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...n.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const i in t){const n=t[i],s=[];for(const a of n.lines)s.push({range:new I(a,1,a,11)});const r=new cl;r.add({lenses:s},this._fakeProvider),this._cache.set(i,new Vw(n.lineCount,r))}}catch{}}};Qm=kP([TP(0,Wi)],Qm);os($1,Qm,1);class PP{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}const Vd=class Vd{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${Vd._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let n=!1;for(let s=0;s<e.length;s++){const r=e[s];if(r&&(n=!0,r.command)){const a=PR(r.command.title.trim());if(r.command.id){const l=`c${Vd._idPool++}`;i.push(B("a",{id:l,title:r.command.tooltip,role:"button"},...a)),this._commands.set(l,r.command)}else i.push(B("span",{title:r.command.tooltip},...a));s+1<e.length&&i.push(B("span",void 0," | "))}}n?(Qh(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):Qh(this._domNode,B("span",void 0,"no commands"))}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}};Vd._idPool=0;let e_=Vd;class Op{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){const t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,n=t.length;i<n;i++)this._addDecorationsCallbacks[i](t[i])}}const Bw=te.register({collapseOnReplaceEdit:!0,description:"codelens"});class Uw{constructor(e,t,i,n,s,r){this._isDisposed=!1,this._editor=t,this._data=e,this._decorationIds=[];let a;const l=[];this._data.forEach((d,c)=>{d.symbol.command&&l.push(d.symbol),i.addDecoration({range:d.symbol.range,options:Bw},h=>this._decorationIds[c]=h),a?a=I.plusRange(a,d.symbol.range):a=I.lift(d.symbol.range)}),this._viewZone=new PP(a.startLineNumber-1,s,r),this._viewZoneId=n.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new e_(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t?.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),n=this._data[t].symbol;return!!(i&&I.isEmpty(n.range)===i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((i,n)=>{t.addDecoration({range:i.symbol.range,options:Bw},s=>this._decorationIds[n]=s)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){const i=e.getDecorationRange(this._decorationIds[t]);i&&(this._data[t].symbol.range=i)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){const i=e[t];if(i){const{symbol:n}=this._data[t];n.command=i.command||n.command}}}getCommand(e){return this._contentWidget?.getCommand(e)}getLineNumber(){const e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}update(e){if(this.isValid()){const t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}}var OP=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ql=function(o,e){return function(t,i){e(t,i,o)}},Ua;let ec=(Ua=class{constructor(e,t,i,n,s,r){this._editor=e,this._languageFeaturesService=t,this._commandService=n,this._notificationService=s,this._codeLensCache=r,this._disposables=new W,this._localToDispose=new W,this._lenses=[],this._oldCodeLensModels=new W,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new et(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(59)||a.hasChanged(25)||a.hasChanged(24))&&this._updateLensStyle(),a.hasChanged(23)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){this._localDispose(),this._localToDispose.dispose(),this._disposables.dispose(),this._resolveCodeLensesScheduler.dispose(),this._oldCodeLensModels.dispose(),this._currentCodeLensModel?.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(75)/this._editor.getOption(61));let t=this._editor.getOption(25);return(!t||t<5)&&(t=this._editor.getOption(61)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(24),n=this._editor.getOption(59),{style:s}=this._editor.getContainerDomNode();s.setProperty("--vscode-editorCodeLens-lineHeight",`${e}px`),s.setProperty("--vscode-editorCodeLens-fontSize",`${t}px`),s.setProperty("--vscode-editorCodeLens-fontFeatureSettings",n.fontFeatureSettings),i&&(s.setProperty("--vscode-editorCodeLens-fontFamily",i),s.setProperty("--vscode-editorCodeLens-fontFamilyDefault",uS.fontFamily)),this._editor.changeViewZones(r=>{for(const a of this._lenses)a.updateHeight(e,r)})}_localDispose(){this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=void 0,this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),this._currentCodeLensModel?.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(23)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&no(()=>{const n=this._codeLensCache.get(e);t===n&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3,this._localToDispose);return}for(const n of this._languageFeaturesService.codeLensProvider.all(e))if(typeof n.onDidChange=="function"){const s=n.onDidChange(()=>i.schedule());this._localToDispose.add(s)}const i=new et(()=>{const n=Date.now();this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=dt(s=>U1(this._languageFeaturesService.codeLensProvider,e,s)),this._getCodeLensModelPromise.then(s=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=s,this._codeLensCache.put(e,s);const r=this._provideCodeLensDebounce.update(e,Date.now()-n);i.delay=r,this._renderCodeLensSymbols(s),this._resolveCodeLensesInViewportSoon()},we)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add(ke(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._editor.changeDecorations(n=>{this._editor.changeViewZones(s=>{const r=[];let a=-1;this._lenses.forEach(d=>{!d.isValid()||a===d.getLineNumber()?r.push(d):(d.update(s),a=d.getLineNumber())});const l=new Op;r.forEach(d=>{d.dispose(l,s),this._lenses.splice(this._lenses.indexOf(d),1)}),l.commit(n)})}),i.schedule(),this._resolveCodeLensesScheduler.cancel(),this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{i.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{i.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(n=>{n.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(ke(()=>{if(this._editor.getModel()){const n=sl.capture(this._editor);this._editor.changeDecorations(s=>{this._editor.changeViewZones(r=>{this._disposeAllLenses(s,r)})}),n.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(n=>{if(n.target.type!==9)return;let s=n.target.element;if(s?.tagName==="SPAN"&&(s=s.parentElement),s?.tagName==="A")for(const r of this._lenses){const a=r.getCommand(s);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new Op;for(const n of this._lenses)n.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let n;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(n&&n[n.length-1].symbol.range.startLineNumber===l?n.push(a):(n=[a],i.push(n)))}if(!i.length&&!this._lenses.length)return;const s=sl.capture(this._editor),r=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const d=new Op;let c=0,h=0;for(;h<i.length&&c<this._lenses.length;){const g=i[h][0].symbol.range.startLineNumber,u=this._lenses[c].getLineNumber();u<g?(this._lenses[c].dispose(d,l),this._lenses.splice(c,1)):u===g?(this._lenses[c].updateCodeLensSymbols(i[h],d),h++,c++):(this._lenses.splice(c,0,new Uw(i[h],this._editor,d,l,r.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),c++,h++)}for(;c<this._lenses.length;)this._lenses[c].dispose(d,l),this._lenses.splice(c,1);for(;h<i.length;)this._lenses.push(new Uw(i[h],this._editor,d,l,r.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),h++;d.commit(a)})}),s.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0;const e=this._editor.getModel();if(!e)return;const t=[],i=[];if(this._lenses.forEach(r=>{const a=r.computeIfNecessary(e);a&&(t.push(a),i.push(r))}),t.length===0){this._oldCodeLensModels.clear();return}const n=Date.now(),s=dt(r=>{const a=t.map((l,d)=>{const c=new Array(l.length),h=l.map((g,u)=>!g.symbol.command&&typeof g.provider.resolveCodeLens=="function"?Promise.resolve(g.provider.resolveCodeLens(e,g.symbol,r)).then(f=>{c[u]=f},Ze):(c[u]=g.symbol,Promise.resolve(void 0)));return Promise.all(h).then(()=>{!r.isCancellationRequested&&!i[d].isDisposed()&&i[d].updateCommands(c)})});return Promise.all(a)});this._resolveCodeLensesPromise=s,this._resolveCodeLensesPromise.then(()=>{const r=this._resolveCodeLensesDebounce.update(e,Date.now()-n);this._resolveCodeLensesScheduler.delay=r,this._currentCodeLensModel&&this._codeLensCache.put(e,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},r=>{we(r),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,this._currentCodeLensModel?.isDisposed?void 0:this._currentCodeLensModel}},Ua.ID="css.editor.codeLens",Ua);ec=OP([ql(1,G),ql(2,Hi),ql(3,it),ql(4,Lt),ql(5,$1)],ec);ae(ec.ID,ec,1);P(class extends F{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:C.hasCodeLensProvider,label:L(920,"Show CodeLens Commands for Current Line")})}async run(e,t){if(!t.hasModel())return;const i=e.get(Ai),n=e.get(it),s=e.get(Lt),r=t.getSelection().positionLineNumber,a=t.getContribution(ec.ID);if(!a)return;const l=await a.getModel();if(!l)return;const d=[];for(const g of l.lenses)g.symbol.command&&g.symbol.range.startLineNumber===r&&d.push({label:g.symbol.command.title,command:g.symbol.command});if(d.length===0)return;const c=await i.pick(d,{canPickMany:!1,placeHolder:m(919,"Select a command")});if(!c)return;let h=c.command;if(l.isDisposed){const u=(await a.getModel())?.lenses.find(f=>f.symbol.range.startLineNumber===r&&f.symbol.command?.title===h.title);if(!u||!u.symbol.command)return;h=u.symbol.command}try{await n.executeCommand(h.id,...h.arguments||[])}catch(g){s.error(g)}}});class Mp{constructor(e,t,i,n){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=n,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}}class ld{constructor(e,t,i,n,s,r){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=n,this.initialMousePosY=s,this.supportsMarkerHover=r,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}class zr{constructor(e,t){this.renderedHoverParts=e,this.disposables=t}dispose(){for(const e of this.renderedHoverParts)e.dispose();this.disposables?.dispose()}}const ea=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};var z1=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},t_=function(o,e){return function(t,i){e(t,i,o)}};let tc=class{constructor(e){this._editorWorkerService=e}async provideDocumentColors(e,t){return this._editorWorkerService.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const n=t.range,s=t.color,r=new fe(new ol(Math.round(255*s.red),Math.round(255*s.green),Math.round(255*s.blue),s.alpha)),a=fe.Format.CSS.formatRGB(r),l=fe.Format.CSS.formatHSL(r),d=fe.Format.CSS.formatHexA(r,!0),c=[];return c.push({label:a,textEdit:{range:n,text:a}}),c.push({label:l,textEdit:{range:n,text:l}}),c.push({label:d,textEdit:{range:n,text:d}}),c}};tc=z1([t_(0,as)],tc);let i_=class extends A{constructor(e,t){super(),this._register(e.colorProvider.register("*",new tc(t)))}};i_=z1([t_(0,G),t_(1,as)],i_);async function j1(o,e,t,i="auto"){return GS(new MP,o,e,t,i)}function q1(o,e,t,i){return Promise.resolve(t.provideColorPresentations(o,e,i))}class MP{constructor(){}async compute(e,t,i,n){const s=await e.provideDocumentColors(t,i);if(Array.isArray(s))for(const r of s)n.push({colorInfo:r,provider:e});return Array.isArray(s)}}class AP{constructor(){}async compute(e,t,i,n){const s=await e.provideDocumentColors(t,i);if(Array.isArray(s))for(const r of s)n.push({range:r.range,color:[r.color.red,r.color.green,r.color.blue,r.color.alpha]});return Array.isArray(s)}}class FP{constructor(e){this.colorInfo=e}async compute(e,t,i,n){const s=await e.provideColorPresentations(t,this.colorInfo,de.None);return Array.isArray(s)&&n.push(...s),Array.isArray(s)}}async function GS(o,e,t,i,n){let s=!1,r;const a=[],l=e.ordered(t);for(let d=l.length-1;d>=0;d--){const c=l[d];if(n!=="always"&&c instanceof tc)r=c;else try{await o.compute(c,t,i,a)&&(s=!0)}catch(h){Ze(h)}}return s?a:r&&n!=="never"?(await o.compute(r,t,i,a),a):[]}function K1(o,e){const{colorProvider:t}=o.get(G),i=o.get(Yt).getModel(e);if(!i)throw Gn();const n=o.get(Ie).getValue("editor.defaultColorDecorators",{resource:e});return{model:i,colorProviderRegistry:t,defaultColorDecoratorsEnablement:n}}var WP=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ap=function(o,e){return function(t,i){e(t,i,o)}},n_;const G1=Object.create({});var $s;let hl=($s=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new W),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new HP),this._colorDecorationClassRefs=this._register(new W),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new Jx(this._editor)),this._debounceInformation=n.for(i.colorProvider,"Document Colors",{min:n_.RECOMPUTE_TIME}),this._register(e.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(e.onDidChangeModelLanguage(()=>this.updateColors())),this._register(i.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(s=>{const r=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167);const a=r!==this._isColorDecoratorsEnabled||s.hasChanged(27),l=s.hasChanged(167);(a||l)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&typeof i=="object"){const n=i.colorDecorators;if(n&&n.enable!==void 0&&!n.enable)return n.enable}return this._editor.getOption(26)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();!e||!this._languageFeaturesService.colorProvider.has(e)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new Fc,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}async beginCompute(){this._computePromise=dt(async e=>{const t=this._editor.getModel();if(!t)return[];const i=new _i(!1),n=await j1(this._languageFeaturesService.colorProvider,t,e,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(t,i.elapsed()),n});try{const e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){we(e)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map(i=>({range:{startLineNumber:i.colorInfo.range.startLineNumber,startColumn:i.colorInfo.range.startColumn,endLineNumber:i.colorInfo.range.endLineNumber,endColumn:i.colorInfo.range.endColumn},options:te.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((n,s)=>this._colorDatas.set(n,e[s]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(27);for(let s=0;s<e.length&&t.length<i;s++){const{red:r,green:a,blue:l,alpha:d}=e[s].colorInfo.color,c=new ol(Math.round(r*255),Math.round(a*255),Math.round(l*255),d),h=`rgba(${c.r}, ${c.g}, ${c.b}, ${c.a})`,g=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:h}));t.push({range:{startLineNumber:e[s].colorInfo.range.startLineNumber,startColumn:e[s].colorInfo.range.startColumn,endLineNumber:e[s].colorInfo.range.endLineNumber,endColumn:e[s].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:Ux,inlineClassName:`${g.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:G1}}})}const n=i<e.length?i:!1;this._decoratorLimitReporter.update(e.length,n),this._colorDecoratorIds.set(t)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(I.fromPositions(e,e)).filter(n=>this._colorDatas.has(n.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}},n_=$s,$s.ID="editor.contrib.colorDetector",$s.RECOMPUTE_TIME=1e3,$s);hl=n_=WP([Ap(1,Ie),Ap(2,G),Ap(3,Hi)],hl);class HP extends A{constructor(){super(...arguments),this._onDidChange=this._register(new Y),this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}const Z1="editor.action.showHover",VP="editor.action.showDefinitionPreviewHover",BP="editor.action.hideHover",UP="editor.action.scrollUpHover",$P="editor.action.scrollDownHover",zP="editor.action.scrollLeftHover",jP="editor.action.scrollRightHover",qP="editor.action.pageUpHover",KP="editor.action.pageDownHover",GP="editor.action.goToTopHover",ZP="editor.action.goToBottomHover",Zf="editor.action.increaseHoverVerbosityLevel",XP=m(1145,"Increase Hover Verbosity Level"),Xf="editor.action.decreaseHoverVerbosityLevel",YP=m(1146,"Decrease Hover Verbosity Level"),s_="editor.action.hideLongLineWarningHover",ul="editor.action.inlineSuggest.commit",Yf="editor.action.inlineSuggest.commitAlternativeAction",X1="editor.action.inlineSuggest.showPrevious",Y1="editor.action.inlineSuggest.showNext",J1="editor.action.inlineSuggest.jump",Q1="editor.action.inlineSuggest.hide",o_="editor.action.inlineSuggest.toggleShowCollapsed",$w="editor.action.inlineSuggest.renameSymbol";var ZS=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ni=function(o,e){return function(t,i){e(t,i,o)}},Vh;let r_=class extends A{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=xt(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=R(this,n=>{const s=this.model.read(n)?.primaryGhostText.read(n);if(!this.alwaysShowToolbar.read(n)||!s||s.parts.length===0)return this.sessionPosition=void 0,null;const r=s.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==s.lineNumber&&(this.sessionPosition=void 0);const a=new $(s.lineNumber,Math.min(r,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=a,a}),this._register(Vc((n,s)=>{const r=this.model.read(n);if(!r||!this.alwaysShowToolbar.read(n))return;const a=R(d=>{const c=d.store.add(this.instantiationService.createInstance(gl.hot.read(d),this.editor,!0,this.position,r.selectedInlineCompletionIndex,r.inlineCompletionsCount,r.activeCommands,r.warning,()=>{}));return e.addContentWidget(c),d.store.add(ke(()=>e.removeContentWidget(c))),d.store.add(le(h=>{this.position.read(h)&&r.lastTriggerKind.read(h)!==ni.Explicit&&r.triggerExplicitly()})),c}),l=So(this,(d,c)=>!!this.position.read(d)||!!c);s.add(le(d=>{l.read(d)&&a.read(d)}))}))}};r_=ZS([Ni(2,ee)],r_);const JP=ze("inline-suggestion-hints-next",U.chevronRight,m(1250,"Icon for show next parameter hint.")),QP=ze("inline-suggestion-hints-previous",U.chevronLeft,m(1251,"Icon for show previous parameter hint."));var bn;let gl=(bn=class extends A{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const n=new rl(e,t,i,!0,()=>this._commandService.executeCommand(e));return n.tooltip=this.keybindingService.appendKeybinding(t,e,this._contextKeyService),n}constructor(e,t,i,n,s,r,a,l,d,c,h,g,u){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=n,this._suggestionCount=s,this._extraCommands=r,this._warning=a,this._relayout=l,this._commandService=d,this.keybindingService=h,this._contextKeyService=g,this._menuService=u,this.id=`InlineSuggestionHintsContentWidget${Vh.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=R(f=>{const p=this._warning.read(f);return p?typeof p.message=="string"?p.message:f.store.add(xf(p.message)).element:void 0}),this._warningMessageNode=j.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:R(f=>this._warning.read(f)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=qd("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,qd("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(X1,m(1252,"Previous"),ce.asClassName(QP))),this.availableSuggestionCountAction=this._register(new rl("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(Y1,m(1253,"Next"),ce.asClassName(JP))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(q.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new et(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new et(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(le(f=>{this._warningMessageContentNode.read(f),this._warningMessageNode.readEffect(f),this._relayout()})),this.toolBar=this._register(c.createInstance(a_,this.nodes.toolBar,q.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:f=>f.startsWith("primary")},actionViewItemProvider:(f,p)=>{if(f instanceof Or)return c.createInstance(tO,f,void 0);if(f===this.availableSuggestionCountAction){const _=new eO(void 0,f,{label:!0,icon:!1});return _.setClass("availableSuggestionCount"),_}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(f=>{Vh._dropDownVisible=f})),this._register(le(f=>{this._position.read(f),this.editor.layoutContentWidget(this)})),this._register(le(f=>{const p=this._suggestionCount.read(f),_=this._currentSuggestionIdx.read(f);p!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${_+1}/${p}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),p!==void 0&&p>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(le(f=>{const _=this._extraCommands.read(f).map(v=>({class:void 0,id:v.command.id,enabled:!0,tooltip:v.command.tooltip||"",label:v.command.title,run:()=>this._commandService.executeCommand(v.command.id,...v.command.arguments??[])}));for(const[v,S]of this.inlineCompletionsActionsMenus.getActions())for(const y of S)y instanceof Or&&_.push(y);_.length>0&&_.unshift(new Kd),this.toolBar.setAdditionalSecondaryActions(_)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}},Vh=bn,bn.hot=gS(bn),bn._dropDownVisible=!1,bn.id=0,bn);gl=Vh=ZS([Ni(8,it),Ni(9,ee),Ni(10,Te),Ni(11,pe),Ni(12,bo)],gl);class eO extends Im{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}}class tO extends fS{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!e)return super.updateLabel();if(this.label){const t=qd("div.keybinding").root;this._register(new Oc(t,Mc,{disableTitle:!0,...Qx})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let a_=class extends OR{constructor(e,t,i,n,s,r,a,l,d){super(e,{resetMenu:t,...i},n,s,r,a,l,d),this.menuId=t,this.options2=i,this.menuService=n,this.contextKeyService=s,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(){const{primary:e,secondary:t}=eL(this.menu.getActions(this.options2?.menuOptions),this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);t.push(...this.additionalActions),e.unshift(...this.prependedPrimaryActions),e.push(...this.additionalPrimaryActions),this.setActions(e,t)}setPrependedPrimaryActions(e){sn(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){sn(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};a_=ZS([Ni(3,bo),Ni(4,pe),Ni(5,Hc),Ni(6,Te),Ni(7,it),Ni(8,vo)],a_);function Jf(o,e,t){const i=Tt(o);return!(e<i.left+3||e>i.left+i.width-3||t<i.top+3||t>i.top+i.height-3)}function eD(o,e,t){return o==="on"?!0:o==="off"?!1:XS(e,t.event)}function XS(o,e){return o==="altKey"?e.ctrlKey||e.metaKey:e.altKey}class iO{constructor(e,t,i,n){this.value=e,this.isComplete=t,this.hasLoadingMessage=i,this.options=n}}class tD extends A{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new Y),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new Fp(i=>this._triggerAsyncComputation(i),0)),this._syncComputationScheduler=this._register(new Fp(i=>this._triggerSyncComputation(i),0)),this._loadingMessageScheduler=this._register(new Fp(i=>this._triggerLoadingMessage(i),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){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(e,t){this._options=t,this._state=e,this._fireResult(t)}_triggerAsyncComputation(e){this._setState(2,e),this._syncComputationScheduler.schedule(e,this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=MR(t=>this._computer.computeAsync(e,t)),(async()=>{try{for await(const t of this._asyncIterable)t&&(this._result.push(t),this._fireResult(e));this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0,e)}catch(t){we(t)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(e){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync(e))),this._setState(this._asyncIterableDone?0:3,e)}_triggerLoadingMessage(e){this._state===3&&this._setState(4,e)}_fireResult(e){if(this._state===1||this._state===2)return;const t=this._state===0,i=this._state===4;this._onResult.fire(new iO(this._result.slice(0),t,i,e))}start(e,t){if(e===0)this._state===0&&(this._setState(1,t),this._asyncComputationScheduler.schedule(t,this._firstWaitTime),this._loadingMessageScheduler.schedule(t,this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(t),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(t);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(t);break}}cancel(){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 Fp extends A{constructor(e,t){super(),this._scheduler=this._register(new et(()=>e(this._options),t))}schedule(e,t){this._options=e,this._scheduler.schedule(t)}cancel(){this._scheduler.cancel()}}class YS{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new Y,this._onDidResize=new Y,this._sashListener=new W,this._size=new xe(0,0),this._minSize=new xe(0,0),this._maxSize=new xe(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new ya(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new ya(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new ya(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:ZC.North}),this._southSash=new ya(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:ZC.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,i=0;this._sashListener.add(Ve.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)})),this._sashListener.add(Ve.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(n=>{e&&(i=n.currentX-n.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(n=>{e&&(i=-(n.currentX-n.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(n=>{e&&(t=-(n.currentY-n.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(n=>{e&&(t=n.currentY-n.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(Ve.any(this._eastSash.onDidReset,this._westSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(Ve.any(this._northSash.onDidReset,this._southSash.onDidReset)(n=>{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(e,t,i,n){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=n?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:n}=this._minSize,{height:s,width:r}=this._maxSize;e=Math.max(i,Math.min(s,e)),t=Math.max(n,Math.min(r,t));const a=new xe(t,e);xe.equals(a,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=a,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(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}const nO=30,sO=24;class oO extends A{constructor(e,t=new xe(10,10)){super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new YS),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=xe.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(i=>{this._resize(new xe(i.dimension.width,i.dimension.height)),i.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?$.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);return!t||!i?void 0:Tt(t).top+i.top-nO}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const n=Tt(t),s=Bc(t.ownerDocument.body),r=n.top+i.top+i.height;return s.height-r-sO}_findPositionPreference(e,t){const i=Math.min(this._availableVerticalSpaceBelow(t)??1/0,e),n=Math.min(this._availableVerticalSpaceAbove(t)??1/0,e),s=Math.min(Math.max(n,i),e),r=Math.min(e,s);let a;return this._editor.getOption(69).above?a=r<=n?1:2:a=r<=i?2:1,a===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),a}_resize(e){this._resizableNode.layout(e.height,e.width)}}var rO=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},oh=function(o,e){return function(t,i){e(t,i,o)}},yi;const zw=30;var zs;let l_=(zs=class extends oO{get isVisibleFromKeyboard(){return this._renderedHover?.source===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(e,t,i,n,s){const r=e.getOption(75)+8,a=150,l=new xe(a,r);super(e,l),this._configurationService=i,this._accessibilityService=n,this._keybindingService=s,this._hover=this._register(new tL(!0)),this._onDidResize=this._register(new Y),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new Y),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new Y),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=l,this._hoverVisibleKey=C.hoverVisible.bindTo(t),this._hoverFocusedKey=C.hoverFocused.bindTo(t),z(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(c=>{c.hasChanged(59)&&this._updateFont()}));const d=this._register(As(this._resizableNode.domNode));this._register(d.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(d.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll(c=>{this._onDidScroll.fire(c)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return yi.ID}static _applyDimensions(e,t,i){const n=typeof t=="number"?`${t}px`:t,s=typeof i=="number"?`${i}px`:i;e.style.width=n,e.style.height=s}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return yi._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return yi._applyDimensions(i,e,t)}_setScrollableElementDimensions(e,t){const i=this._hover.scrollbar.getDomNode();return yi._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContainerDomNodeDimensions(e,t),this._setScrollableElementDimensions(e,t),this._setContentsDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const n=typeof t=="number"?`${t}px`:t,s=typeof i=="number"?`${i}px`:i;e.style.maxWidth=n,e.style.maxHeight=s}_setHoverWidgetMaxDimensions(e,t){yi._applyMaxDimensions(this._hover.contentsDomNode,e,t),yi._applyMaxDimensions(this._hover.scrollbar.getDomNode(),e,t),yi._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof e=="number"?`${e}px`:e),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(e.width,e.height)}_updateResizableNodeMaxDimensions(){const e=this._findMaximumRenderingWidth()??1/0,t=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new xe(e,t),this._setHoverWidgetMaxDimensions(e,t)}_resize(e){yi._lastDimensions=new xe(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){const e=this._renderedHover?.showAtPosition;if(e)return this._positionPreference===1?this._availableVerticalSpaceAbove(e):this._availableVerticalSpaceBelow(e)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let i=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach(n=>{i+=n.clientHeight}),Math.min(e,i)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const e=Array.from(this._hover.contentsDomNode.children).some(t=>t.scrollWidth>t.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t=typeof this._contentWidth>"u"?0:this._contentWidth;return e||this._hover.containerDomNode.clientWidth<t?Bc(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth}isMouseGettingCloser(e,t){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=e,this._renderedHover.initialMousePosY=t,!1;const i=Tt(this.getDomNode());this._renderedHover.closestMouseDistance===void 0&&(this._renderedHover.closestMouseDistance=jw(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,i.left,i.top,i.width,i.height));const n=jw(e,t,i.left,i.top,i.width,i.height);return n>this._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,n),!0)}_setRenderedHover(e){this._renderedHover?.dispose(),this._renderedHover=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(59),i=this._hover.contentsDomNode;i.style.fontSize=`${e}px`,i.style.lineHeight=`${t/e}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(s=>this._editor.applyFontInfo(s))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom="",t.textContent="",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,yi._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,750,yi._lastDimensions.width);this._resizableNode.maxSize=new xe(t,e),this._setHoverWidgetMaxDimensions(t,e)}_render(e){this._setRenderedHover(e),this._updateFont(),this._updateContent(e.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(e){if(!this._editor||!this._editor.hasModel())return;this._render(e);const t=Ia(this._hover.containerDomNode),i=e.showAtPosition;this._positionPreference=this._findPositionPreference(t,i)??1,this.handleContentsChanged(),e.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const s=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&AR(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");s&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+s)}hide(){if(!this._renderedHover)return;const e=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new xe(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(e){this._minimumSize=new xe(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new xe(e,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();const e=this._hover.contentsDomNode;let t=Ia(e),i=Ei(e)+2;if(this._resizableNode.layout(t,i),this._setHoverWidgetDimensions(i,t),t=Ia(e),i=Ei(e),this._contentWidth=i,this._updateMinimumWidth(),this._resizableNode.layout(t,i),this._renderedHover?.showAtPosition){const n=Ia(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(n,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-zw})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+zw})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}},yi=zs,zs.ID="editor.contrib.resizableContentHoverWidget",zs._lastDimensions=new xe(0,0),zs);l_=yi=rO([oh(1,pe),oh(2,Ie),oh(3,Co),oh(4,Te)],l_);function jw(o,e,t,i,n,s){const r=t+n/2,a=i+s/2,l=Math.max(Math.abs(o-r)-n/2,0),d=Math.max(Math.abs(e-a)-s/2,0);return Math.sqrt(l*l+d*d)}class uu{constructor(e,t){this._editor=e,this._participants=t}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),n=t.range.startLineNumber;if(n>i.getLineCount())return[];const s=i.getLineMaxColumn(n);return e.getLineDecorations(n).filter(r=>{if(r.options.isWholeLine)return!0;const a=r.range.startLineNumber===n?r.range.startColumn:1,l=r.range.endLineNumber===n?r.range.endColumn:s;if(r.options.showIfCollapsed){if(a>t.range.startColumn+1||t.range.endColumn-1>l)return!1}else if(a>t.range.startColumn||t.range.endColumn>l)return!1;return!0})}computeAsync(e,t){const i=e.anchor;if(!this._editor.hasModel()||!i)return yn.EMPTY;const n=uu._getLineDecorations(this._editor,i);return yn.merge(this._participants.map(s=>s.computeAsync?s.computeAsync(i,n,e.source,t):yn.EMPTY))}computeSync(e){if(!this._editor.hasModel())return[];const t=e.anchor,i=uu._getLineDecorations(this._editor,t);let n=[];for(const s of this._participants)n=n.concat(s.computeSync(t,i,e.source));return _o(n)}}class iD{constructor(e,t,i){this.hoverParts=e,this.isComplete=t,this.options=i}filter(e){const t=this.hoverParts.filter(i=>i.isValidForHoverAnchor(e));return t.length===this.hoverParts.length?this:new aO(this,t,this.isComplete,this.options)}}class aO extends iD{constructor(e,t,i,n){super(t,i,n),this.original=e}filter(e){return this.original.filter(e)}}var lO=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},qw=function(o,e){return function(t,i){e(t,i,o)}};const Kw=B;let gu=class extends A{get hasContent(){return this._hasContent}constructor(e,t){super(),this._keybindingService=e,this._hoverService=t,this.actions=[],this._hasContent=!1,this.hoverElement=Kw("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=z(this.hoverElement,Kw("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;this._hasContent=!0;const n=this._register(FR.render(this.actionsElement,e,i));return this._register(this._hoverService.setupManagedHover(iL("element"),n.actionContainer,n.actionRenderedLabel)),this.actions.push(n),n}append(e){const t=z(this.actionsElement,e);return this._hasContent=!0,t}};gu=lO([qw(0,Te),qw(1,bi)],gu);const St=class St{constructor(e){this._editor=e,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(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){const t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const n=i.options;if(n===St._FIND_MATCH_DECORATION||n===St._FIND_MATCH_NO_OVERVIEW_DECORATION||n===St._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let n=0,s=this._decorations.length;n<s;n++){const r=this._editor.getModel().getDecorationRange(this._decorations[n]);if(e.equalsRange(r)){t=this._decorations[n],i=n+1;break}}return(this._highlightedDecorationId!==null||t!==null)&&this._editor.changeDecorations(n=>{if(this._highlightedDecorationId!==null&&(n.changeDecorationOptions(this._highlightedDecorationId,St._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,n.changeDecorationOptions(this._highlightedDecorationId,St._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(n.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let s=this._editor.getModel().getDecorationRange(t);if(s.startLineNumber!==s.endLineNumber&&s.endColumn===1){const r=s.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(r);s=new I(s.startLineNumber,s.startColumn,r,a)}this._rangeHighlightDecorationId=n.addDecoration(s,St._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let n=St._FIND_MATCH_DECORATION;const s=[];if(e.length>1e3){n=St._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),d=this._editor.getLayoutInfo().height/a,c=Math.max(2,Math.ceil(3/d));let h=e[0].range.startLineNumber,g=e[0].range.endLineNumber;for(let u=1,f=e.length;u<f;u++){const p=e[u].range;g+c>=p.startLineNumber?p.endLineNumber>g&&(g=p.endLineNumber):(s.push({range:new I(h,1,g,1),options:St._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),h=p.startLineNumber,g=p.endLineNumber)}s.push({range:new I(h,1,g,1),options:St._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const r=new Array(e.length);for(let a=0,l=e.length;a<l;a++)r[a]={range:e[a].range,options:n};this._decorations=i.deltaDecorations(this._decorations,r),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,s),this._rangeHighlightDecorationId&&(i.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(a=>i.removeDecoration(a)),this._findScopeDecorationIds=[]),t?.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,St._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],n=this._editor.getModel().getDecorationRange(i);if(!(!n||n.endLineNumber>e.lineNumber)){if(n.endLineNumber<e.lineNumber)return n;if(!(n.endColumn>e.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;t<i;t++){const n=this._decorations[t],s=this._editor.getModel().getDecorationRange(n);if(!(!s||s.startLineNumber<e.lineNumber)){if(s.startLineNumber>e.lineNumber)return s;if(!(s.startColumn<e.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}};St._CURRENT_FIND_MATCH_DECORATION=te.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:Xe(yp),position:wn.Center},minimap:{color:Xe(XC),position:1}}),St._FIND_MATCH_DECORATION=te.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:Xe(yp),position:wn.Center},minimap:{color:Xe(XC),position:1}}),St._FIND_MATCH_NO_OVERVIEW_DECORATION=te.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0}),St._FIND_MATCH_ONLY_OVERVIEW_DECORATION=te.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:Xe(yp),position:wn.Center}}),St._RANGE_HIGHLIGHT_DECORATION=te.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0}),St._FIND_SCOPE_DECORATION=te.register({description:"find-scope",className:"findScope",isWholeLine:!0});let d_=St;class dO{constructor(e,t,i){this._editorSelection=e,this._ranges=t,this._replaceStrings=i,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const i=[];for(let r=0;r<this._ranges.length;r++)i.push({range:this._ranges[r],text:this._replaceStrings[r]});i.sort((r,a)=>I.compareRangesUsingStarts(r.range,a.range));const n=[];let s=i[0];for(let r=1;r<i.length;r++)s.range.endLineNumber===i[r].range.startLineNumber&&s.range.endColumn===i[r].range.startColumn?(s.range=s.range.plusRange(i[r].range),s.text=s.text+i[r].text):(n.push(s),s=i[r]);n.push(s);for(const r of n)t.addEditOperation(r.range,r.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}function nD(o,e){if(o&&o[0]!==""){const t=Gw(o,e,"-"),i=Gw(o,e,"_");return t&&!i?Zw(o,e,"-"):!t&&i?Zw(o,e,"_"):o[0].toUpperCase()===o[0]?e.toUpperCase():o[0].toLowerCase()===o[0]?e.toLowerCase():WR(o[0][0])&&e.length>0?e[0].toUpperCase()+e.substr(1):o[0][0].toUpperCase()!==o[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function Gw(o,e,t){return o[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&o[0].split(t).length===e.split(t).length}function Zw(o,e,t){const i=e.split(t),n=o[0].split(t);let s="";return i.forEach((r,a)=>{s+=nD([n[a]],r)+t}),s.slice(0,-1)}class Xw{constructor(e){this.staticValue=e,this.kind=0}}class cO{constructor(e){this.pieces=e,this.kind=1}}class fl{static fromStaticValue(e){return new fl([jo.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new Xw(""):e.length===1&&e[0].staticValue!==null?this._state=new Xw(e[0].staticValue):this._state=new cO(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?nD(e,this._state.staticValue):this._state.staticValue;let i="";for(let n=0,s=this._state.pieces.length;n<s;n++){const r=this._state.pieces[n];if(r.staticValue!==null){i+=r.staticValue;continue}let a=fl._substitute(r.matchIndex,e);if(r.caseOps!==null&&r.caseOps.length>0){const l=[],d=r.caseOps.length;let c=0;for(let h=0,g=a.length;h<g;h++){if(c>=d){l.push(a.slice(h));break}switch(r.caseOps[c]){case"U":l.push(a[h].toUpperCase());break;case"u":l.push(a[h].toUpperCase()),c++;break;case"L":l.push(a[h].toLowerCase());break;case"l":l.push(a[h].toLowerCase()),c++;break;default:l.push(a[h])}}a=l.join("")}i+=a}return i}static _substitute(e,t){if(t===null)return"";if(e===0)return t[0];let i="";for(;e>0;){if(e<t.length)return(t[e]||"")+i;i=String(e%10)+i,e=Math.floor(e/10)}return"$"+i}}class jo{static staticValue(e){return new jo(e,-1,null)}static caseOps(e,t){return new jo(null,e,t)}constructor(e,t,i){this.staticValue=e,this.matchIndex=t,!i||i.length===0?this.caseOps=null:this.caseOps=i.slice(0)}}class hO{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){e.length!==0&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,i){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=jo.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=jo.caseOps(e,i),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=jo.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new fl(this._result)}}function uO(o){if(!o||o.length===0)return new fl(null);const e=[],t=new hO(o);for(let i=0,n=o.length;i<n;i++){const s=o.charCodeAt(i);if(s===92){if(i++,i>=n)break;const r=o.charCodeAt(i);switch(r){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(`
5
- `,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(" ",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic("",i+1),e.push(String.fromCharCode(r));break}continue}if(s===36){if(i++,i>=n)break;const r=o.charCodeAt(i);if(r===36){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(r===48||r===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=r&&r<=57){let a=r-48;if(i+1<n){const l=o.charCodeAt(i+1);if(48<=l&&l<=57){i++,a=a*10+(l-48),t.emitUnchanged(i-2),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}t.emitUnchanged(i-1),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}}return t.finalize()}const cs=new ie("findWidgetVisible",!1);cs.toNegated();const Qf=new ie("findInputFocussed",!1),JS=new ie("replaceInputFocussed",!1),gO=new ie("findWidgetFocused",!1),rh={primary:545,mac:{primary:2593}},ah={primary:565,mac:{primary:2613}},lh={primary:560,mac:{primary:2608}},dh={primary:554,mac:{primary:2602}},ch={primary:558,mac:{primary:2606}},De={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"},ks=19999,fO=240;class yd{constructor(e,t){this._toDispose=new W,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new Fc,this._decorations=new d_(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new et(()=>{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,kt(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},fO)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;typeof t<"u"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new I(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const n=this._findMatches(i,!1,ks);this._decorations.set(n,i);const s=this._editor.getSelection();let r=this._decorations.getCurrentMatchesPosition(s);if(r===0&&n.length>0){const a=nL(n.map(l=>l.range),l=>I.compareRangesUsingStarts(l,s)>=0);r=a>0?a-1+1:r}this._state.changeMatchInfo(r,this._decorations.getCount(),void 0),e&&this._editor.getOption(50).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const s=this._editor.getModel();return t||n===1?(i===1?i=s.getLineCount():i--,n=s.getLineMaxColumn(i)):n--,new $(i,n)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const c=this._decorations.matchAfterPosition(e);c&&this._setCurrentFindMatch(c);return}if(this._decorations.getCount()<ks){let c=this._decorations.matchBeforePosition(e);c&&c.isEmpty()&&c.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),c=this._decorations.matchBeforePosition(e)),c&&this._setCurrentFindMatch(c);return}if(this._cannotFind())return;const i=this._decorations.getFindScope(),n=yd._getSearchRange(this._editor.getModel(),i);n.getEndPosition().isBefore(e)&&(e=n.getEndPosition()),e.isBefore(n.getStartPosition())&&(e=n.getEndPosition());const{lineNumber:s,column:r}=e,a=this._editor.getModel();let l=new $(s,r),d=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(d&&d.range.isEmpty()&&d.range.getStartPosition().equals(l)&&(l=this._prevSearchPosition(l),d=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1)),!!d){if(!t&&!n.containsRange(d.range))return this._moveToPrevMatch(d.range.getStartPosition(),!0);this._setCurrentFindMatch(d.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const s=this._editor.getModel();return t||n===s.getLineMaxColumn(i)?(i===s.getLineCount()?i=1:i++,n=1):n++,new $(i,n)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()<ks){let i=this._decorations.matchAfterPosition(e);i&&i.isEmpty()&&i.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),i=this._decorations.matchAfterPosition(e)),i&&this._setCurrentFindMatch(i);return}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,i,n=!1){if(this._cannotFind())return null;const s=this._decorations.getFindScope(),r=yd._getSearchRange(this._editor.getModel(),s);r.getEndPosition().isBefore(e)&&(e=r.getStartPosition()),e.isBefore(r.getStartPosition())&&(e=r.getStartPosition());const{lineNumber:a,column:l}=e,d=this._editor.getModel();let c=new $(a,l),h=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,t);return i&&h&&h.range.isEmpty()&&h.range.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),h=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,t)),h?!n&&!r.containsRange(h.range)?this._getNextMatch(h.range.getEndPosition(),t,i,!0):h:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){const t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?uO(this._state.replaceString):fl.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const n=e.buildReplaceString(i.matches,this._state.preserveCase),s=new Pc(t,n);this._executeEditorCommand("replace",s),this._decorations.setStartPosition(new $(t.startLineNumber,t.startColumn+n.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const n=(e||[null]).map(s=>yd._getSearchRange(this._editor.getModel(),s));return this._editor.getModel().findMatches(this._state.searchString,n,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=ks?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new HR(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let h="mu";i.ignoreCase&&(h+="i"),i.global&&(h+="g"),i=new RegExp(i.source,h)}const n=this._editor.getModel(),s=n.getValue(1),r=n.getFullModelRange(),a=this._getReplacePattern();let l;const d=this._state.preserveCase;a.hasReplacementPatterns||d?l=s.replace(i,function(){return a.buildReplaceString(arguments,d)}):l=s.replace(i,a.buildReplaceString(null,d));const c=new sL(r,l,this._editor.getSelection());this._executeEditorCommand("replaceAll",c)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),n=[];for(let r=0,a=i.length;r<a;r++)n[r]=t.buildReplaceString(i[r].matches,this._state.preserveCase);const s=new dO(this._editor.getSelection(),i.map(r=>r.range),n);this._executeEditorCommand("replaceAll",s)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let i=this._findMatches(e,!1,1073741824).map(s=>new J(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn));const n=this._editor.getSelection();for(let s=0,r=i.length;s<r;s++)if(i[s].equalsRange(n)){i=[n].concat(i.slice(0,s)).concat(i.slice(s+1));break}this._editor.setSelections(i)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}const pO=m(5,"input"),mO=m(6,"Preserve Case");class _O extends oL{constructor(e){super({icon:U.preserveCase,title:mO+e.appendTitle,isChecked:e.isChecked,hoverLifecycleOptions:e.hoverLifecycleOptions,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class vO extends Uc{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(e,t,i,n){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new Y),this._onKeyDown=this._register(new Y),this._onMouseDown=this._register(new Y),this._onInput=this._register(new Y),this._onKeyUp=this._register(new Y),this._onPreserveCaseKeyDown=this._register(new Y),this.contextViewProvider=t,this.placeholder=n.placeholder||"",this.validation=n.validation,this.label=n.label||pO;const s=n.appendPreserveCaseLabel||"",r=n.history||new Set([]),a=!!n.flexibleHeight,l=!!n.flexibleWidth,d=n.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new VR(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:r,showHistoryHint:n.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:d,inputBoxStyles:n.inputBoxStyles})),this.preserveCase=this._register(new _O({appendTitle:s,isChecked:!1,hoverLifecycleOptions:n.hoverLifecycleOptions,...n.toggleStyles})),this._register(this.preserveCase.onChange(g=>{this._onDidOptionChange.fire(g),!g&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(g=>{this._onPreserveCaseKeyDown.fire(g)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const c=[this.preserveCase.domNode];this.onkeydown(this.domNode,g=>{if(g.equals(15)||g.equals(17)||g.equals(9)){const u=c.indexOf(this.domNode.ownerDocument.activeElement);if(u>=0){let f=-1;g.equals(17)?f=(u+1)%c.length:g.equals(15)&&(u===0?f=c.length-1:f=u-1),g.equals(9)?(c[u].blur(),this.inputBox.focus()):f>=0&&c[f].focus(),Vn.stop(g,!0)}}});const h=document.createElement("div");h.className="controls",h.style.display=this._showOptionButtons?"block":"none",h.appendChild(this.preserveCase.domNode),this.domNode.appendChild(h),e?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,g=>this._onKeyDown.fire(g)),this.onkeyup(this.inputBox.inputElement,g=>this._onKeyUp.fire(g)),this.oninput(this.inputBox.inputElement,g=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,g=>this._onMouseDown.fire(g))}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(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}}var sD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},oD=function(o,e){return function(t,i){e(t,i,o)}};const QS=new ie("suggestWidgetVisible",!1,m(1760,"Whether suggestion are visible")),eC="historyNavigationWidgetFocus",rD="historyNavigationForwardsEnabled",aD="historyNavigationBackwardsEnabled";let Id;const hh=[];function lD(o,e){if(hh.includes(e))throw new Error("Cannot register the same widget multiple times");hh.push(e);const t=new W,i=new ie(eC,!1).bindTo(o),n=new ie(rD,!0).bindTo(o),s=new ie(aD,!0).bindTo(o),r=()=>{i.set(!0),Id=e},a=()=>{i.set(!1),Id===e&&(Id=void 0)};return od(e.element)&&r(),t.add(e.onDidFocus(()=>r())),t.add(e.onDidBlur(()=>a())),t.add(ke(()=>{hh.splice(hh.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:n,historyNavigationBackwardsEnablement:s,dispose(){t.dispose()}}}let c_=class extends BR{constructor(e,t,i,n){super(e,t,i);const s=this._register(n.createScoped(this.inputBox.element));this._register(lD(s,this.inputBox))}};c_=sD([oD(3,pe)],c_);let h_=class extends vO{constructor(e,t,i,n,s=!1){super(e,t,s,i);const r=this._register(n.createScoped(this.inputBox.element));this._register(lD(r,this.inputBox))}};h_=sD([oD(3,pe)],h_);di.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:T.and(T.has(eC),T.equals(aD,!0),T.not("isComposing"),QS.isEqualTo(!1)),primary:16,secondary:[528],handler:o=>{Id?.showPreviousValue()}});di.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:T.and(T.has(eC),T.equals(rD,!0),T.not("isComposing"),QS.isEqualTo(!1)),primary:18,secondary:[530],handler:o=>{Id?.showNextValue()}});function Yw(o){return o.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&o.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}const Jw=ze("find-collapsed",U.chevronRight,m(996,"Icon to indicate that the editor find widget is collapsed.")),Qw=ze("find-expanded",U.chevronDown,m(997,"Icon to indicate that the editor find widget is expanded.")),bO=ze("find-selection",U.selection,m(998,"Icon for 'Find in Selection' in the editor find widget.")),SO=ze("find-replace",U.replace,m(999,"Icon for 'Replace' in the editor find widget.")),CO=ze("find-replace-all",U.replaceAll,m(1e3,"Icon for 'Replace All' in the editor find widget.")),wO=ze("find-previous-match",U.arrowUp,m(1001,"Icon for 'Find Previous' in the editor find widget.")),yO=ze("find-next-match",U.arrowDown,m(1002,"Icon for 'Find Next' in the editor find widget.")),IO=m(1003,"Find / Replace"),Wp=m(1004,"Find"),xO=m(1005,"Find"),LO=m(1006,"Previous Match"),DO=m(1007,"Next Match"),EO=m(1008,"Find in Selection"),RO=m(1009,"Close"),Hp=m(1010,"Replace"),NO=m(1011,"Replace"),kO=m(1012,"Replace"),TO=m(1013,"Replace All"),PO=m(1014,"Toggle Replace"),OO=m(1015,"Only the first {0} results are highlighted, but all find operations work on the entire text.",ks),MO=m(1016,"{0} of {1}"),u_=m(1017,"No results"),ln=419,AO=275,FO=AO-54;let Kl=69;const WO=33,ey=Yn?256:2048;class Vp{constructor(e){this.afterLineNumber=e,this.heightInPx=WO,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function ty(o,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){o.stopPropagation();return}}function iy(o,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEnd<t.value.length){o.stopPropagation();return}}const Og=class Og extends Uc{constructor(e,t,i,n,s,r,a,l,d,c,h){super(),this._hoverService=a,this._findWidgetSearchHistory=l,this._replaceWidgetHistory=d,this._configurationService=c,this._accessibilityService=h,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=i,this._contextViewProvider=n,this._keybindingService=s,this._contextKeyService=r,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new lo(500),this._register(ke(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(g=>this._onStateChanged(g))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(g=>{if(g.hasChanged(104)&&(this._codeEditor.getOption(104)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),g.hasChanged(165)&&this._tryUpdateWidgetWidth(),g.hasChanged(2)&&this.updateAccessibilitySupport(),g.hasChanged(50)){const u=this._codeEditor.getOption(50).loop;this._state.change({loop:u},!1);const f=this._codeEditor.getOption(50).addExtraSpaceOnTop;f&&!this._viewZone&&(this._viewZone=new Vp(0),this._showViewZone()),!f&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const g=await this._controller.getGlobalBufferTerm();g&&g!==this._state.searchString&&(this._state.change({searchString:g},!1),this._findInput.select())}})),this._findInputFocused=Qf.bindTo(r),this._findFocusTracker=this._register(As(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=JS.bindTo(r),this._replaceFocusTracker=this._register(As(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=gO.bindTo(r),this._widgetFocusTracker=this._register(As(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(re(this._domNode,"focusin",g=>{Es(g.target)&&(this._lastFocusedElement=g.target)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop&&(this._viewZone=new Vp(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(g=>{if(g.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return Og.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(104)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=Ei(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,we)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=Kl+"px",this._state.matchesCount>=ks?this._matchesCount.title=OO:this._matchesCount.title="",this._matchesCount.firstChild?.remove();let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=ks&&(t+="+");let i=String(this._state.matchesPosition);i==="0"&&(i="?"),e=pS(MO,i,t)}else e=u_;this._matchesCount.appendChild(document.createTextNode(e)),mi(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),Kl=Math.max(Kl,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){let n;if(e===u_)n=i===""?m(1018,"{0} found",e):m(1019,"{0} found for '{1}'",e,i);else if(t){const s=m(1020,"{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),r=this._codeEditor.getModel();r&&t.startLineNumber<=r.getLineCount()&&t.startLineNumber>=1?n=`${r.getLineContent(t.startLineNumber)}, ${s}`:n=s}else n=m(1021,"{0} found for '{1}'",e,i);return n}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=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":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;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 t=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const n=Tt(i),s=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),r=n.left+(s?s.left:0),a=s?s.top:0;if(this._viewZone&&a<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const l=UR(this._domNode).left;r>l&&(t=!1);const d=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());n.left+(d?d.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._accessibilityHelpHintAnnounced=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(n=>{i.heightInPx=this._getHeight(),this._viewZoneId=n.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new Vp(0));const i=this._viewZone;this._codeEditor.changeViewZones(n=>{if(this._viewZoneId!==void 0){const s=this._getHeight();if(s===i.heightInPx)return;const r=s-i.heightInPx;i.heightInPx=s,n.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r);return}else{let s=this._getHeight();if(s-=this._codeEditor.getOption(96).top,s<=0)return;i.heightInPx=s,this._viewZoneId=n.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+s)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.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||!this._domNode.isConnected)return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=e.width,n=e.minimap.minimapWidth;let s=!1,r=!1,a=!1;if(this._resized&&Ei(this._domNode)>ln){this._domNode.style.maxWidth=`${i-28-n-15}px`,this._replaceInput.width=Ei(this._findInput.domNode);return}if(ln+28+n>=i&&(r=!0),ln+28+n-Kl>=i&&(a=!0),ln+28+n-Kl>=i+50&&(s=!0),this._domNode.classList.toggle("collapsed-find-widget",s),this._domNode.classList.toggle("narrow-find-widget",a),this._domNode.classList.toggle("reduced-find-widget",r),!a&&!s&&(this._domNode.style.maxWidth=`${i-28-n-15}px`),this._findInput.layout({collapsedFindWidget:s,narrowFindWidget:a,reducedFindWidget:r}),this._resized){const l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=Ei(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}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()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!I.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(ey|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
6
- `),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return ty(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return iy(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(ey|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
7
- `),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return ty(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return iy(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){return this._keybindingService.appendKeybinding("",e)}_buildDomNode(){const i=this._codeEditor.getOption(50).history,n=this._codeEditor.getOption(50).replaceHistory;this._findInput=this._register(new c_(null,this._contextViewProvider,{width:FO,label:Wp,placeholder:xO,appendCaseSensitiveLabel:this._keybindingLabelFor(De.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(De.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(De.ToggleRegexCommand),validation:h=>{if(h.length===0||!this._findInput.getRegex())return null;try{return new RegExp(h,"gu"),null}catch(g){return{content:g.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Yw(this._keybindingService),inputBoxStyles:JC,toggleStyles:YC,history:i==="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(h=>{h.equals(3)&&!this._codeEditor.getOption(50).findOnType&&this._state.change({searchString:this._findInput.getValue()},!0),this._onFindInputKeyDown(h)})),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||!this._codeEditor.getOption(50).findOnType||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(h=>{h.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),h.preventDefault())})),this._register(this._findInput.onRegexKeyDown(h=>{h.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),h.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(h=>{this._tryUpdateHeight()&&this._showViewZone()})),$R&&this._register(this._findInput.onMouseDown(h=>this._onFindInputMouseDown(h))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const s={groupId:"find-widget"};this._prevBtn=this._register(new To({label:LO+this._keybindingLabelFor(De.PreviousMatchFindAction),icon:wO,hoverLifecycleOptions:s,onTrigger:()=>{xa(this._codeEditor.getAction(De.PreviousMatchFindAction)).run().then(void 0,we)}},this._hoverService)),this._nextBtn=this._register(new To({label:DO+this._keybindingLabelFor(De.NextMatchFindAction),icon:yO,hoverLifecycleOptions:s,onTrigger:()=>{xa(this._codeEditor.getAction(De.NextMatchFindAction)).run().then(void 0,we)}},this._hoverService));const r=document.createElement("div");r.className="find-part",r.appendChild(this._findInput.domNode);const a=document.createElement("div");a.className="find-actions",r.appendChild(a),a.appendChild(this._matchesCount),a.appendChild(this._prevBtn.domNode),a.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new oL({icon:bO,title:EO+this._keybindingLabelFor(De.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:s,inputActiveOptionBackground:ye(iS),inputActiveOptionBorder:ye(lL),inputActiveOptionForeground:ye(aL)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let h=this._codeEditor.getSelections();h=h.map(g=>(g.endColumn===1&&g.endLineNumber>g.startLineNumber&&(g=g.setEndPosition(g.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(g.endLineNumber-1))),g.isEmpty()?null:g)).filter(g=>!!g),h.length&&this._state.change({searchScope:h},!0)}}else this._state.change({searchScope:null},!0)})),a.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new To({label:RO+this._keybindingLabelFor(De.CloseFindWidgetCommand),icon:rL,hoverLifecycleOptions:s,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:h=>{h.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),h.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new h_(null,void 0,{label:Hp,placeholder:NO,appendPreserveCaseLabel:this._keybindingLabelFor(De.TogglePreserveCaseCommand),history:n==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>Yw(this._keybindingService),inputBoxStyles:JC,toggleStyles:YC,hoverLifecycleOptions:s},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(h=>this._onReplaceInputKeyDown(h))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(h=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(h=>{h.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),h.preventDefault())})),this._replaceBtn=this._register(new To({label:kO+this._keybindingLabelFor(De.ReplaceOneAction),icon:SO,hoverLifecycleOptions:s,onTrigger:()=>{this._controller.replace()},onKeyDown:h=>{h.equals(1026)&&(this._closeBtn.focus(),h.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new To({label:TO+this._keybindingLabelFor(De.ReplaceAllAction),icon:CO,hoverLifecycleOptions:s,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const l=document.createElement("div");l.className="replace-part",l.appendChild(this._replaceInput.domNode);const d=document.createElement("div");d.className="replace-actions",l.appendChild(d),d.appendChild(this._replaceBtn.domNode),d.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new To({label:PO,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=Ei(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=IO,this._domNode.role="dialog",this._domNode.style.width=`${ln}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(r),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(l),this._resizeSash=this._register(new ya(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let c=ln;this._register(this._resizeSash.onDidStart(()=>{c=Ei(this._domNode)})),this._register(this._resizeSash.onDidChange(h=>{this._resized=!0;const g=c+h.startX-h.currentX;if(g<ln)return;const u=parseFloat(zR(this._domNode).maxWidth)||0;g>u||(this._domNode.style.width=`${g}px`,this._isReplaceVisible&&(this._replaceInput.width=Ei(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const h=Ei(this._domNode);if(h<ln)return;let g=ln;if(!this._resized||h===ln){const u=this._codeEditor.getLayoutInfo();g=u.width-28-u.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${g}px`,this._isReplaceVisible&&(this._replaceInput.width=Ei(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let e=Wp,t=Hp;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){const i=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(i){const n=m(1022,"Press {0} for accessibility help",i);e=m(1023,"{0}, {1}",e,n),t=m(1024,"{0}, {1}",t,n)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=no(()=>{this._isVisible&&(this._findInput.inputBox.setAriaLabel(Wp),this._replaceInput.inputBox.setAriaLabel(Hp))},1e3)}this._findInput.inputBox.setAriaLabel(e),this._replaceInput.inputBox.setAriaLabel(t)}getViewState(){let e=!1;return this._viewZone&&this._viewZoneId&&(e=this._viewZone.heightInPx>this._codeEditor.getScrollTop()),{widgetViewZoneVisible:e,scrollTop:this._codeEditor.getScrollTop()}}setViewState(e){e&&e.widgetViewZoneVisible&&this._layoutViewZone(e.scrollTop)}};Og.ID="editor.contrib.findWidget";let g_=Og;class To extends Uc{constructor(e,t){super(),this._opts=e;let i="button";this._opts.className&&(i=i+" "+this._opts.className),this._opts.icon&&(i=i+" "+ce.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=i,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(t.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},e.hoverLifecycleOptions)),this.onclick(this._domNode,n=>{this._opts.onTrigger(),n.preventDefault()}),this.onkeydown(this._domNode,n=>{if(n.equals(10)||n.equals(3)){this._opts.onTrigger(),n.preventDefault();return}this._opts.onKeyDown?.(n)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(...ce.asClassNameArray(Jw)),this._domNode.classList.add(...ce.asClassNameArray(Qw))):(this._domNode.classList.remove(...ce.asClassNameArray(Qw)),this._domNode.classList.add(...ce.asClassNameArray(Jw)))}}Tc((o,e)=>{const t=o.getColor(Yx);t&&e.addRule(`.monaco-editor .findMatch { border: 1px ${zd(o.type)?"dotted":"solid"} ${t}; box-sizing: border-box; }`);const i=o.getColor(jR);i&&e.addRule(`.monaco-editor .findScope { border: 1px ${zd(o.type)?"dashed":"solid"} ${i}; }`);const n=o.getColor(Ln);n&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${n}; }`);const s=o.getColor(qR);s&&e.addRule(`.monaco-editor .findMatchInline { color: ${s}; }`);const r=o.getColor(KR);r&&e.addRule(`.monaco-editor .currentFindMatchInline { color: ${r}; }`)});var HO=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ny=function(o,e){return function(t,i){e(t,i,o)}};let f_=class extends A{constructor(e,t,i,n){super(),this._container=e,this._getContent=t,this._clipboardService=i,this._hoverService=n,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new To({label:m(1171,"Copy"),icon:U.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){const e=this._getContent();e&&(await this._clipboardService.writeText(e),ao(m(1172,"Copied to clipboard")))}};f_=HO([ny(2,li),ny(3,bi)],f_);class VO{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}async function BO(o,e,t,i,n){const s=await Promise.resolve(o.provideHover(t,i,n)).catch(Ze);if(!(!s||!UO(s)))return new VO(o,s,e)}function tC(o,e,t,i,n=!1){const r=o.ordered(e,n).map((a,l)=>BO(a,l,e,t,i));return yn.fromPromisesResolveOrder(r).coalesce()}async function dD(o,e,t,i,n=!1){const s=[];for await(const r of tC(o,e,t,i,n))s.push(r.hover);return s}$t("_executeHoverProvider",(o,e,t)=>{const i=o.get(G);return dD(i.hoverProvider,e,t,de.None)});$t("_executeHoverProvider_recursive",(o,e,t)=>{const i=o.get(G);return dD(i.hoverProvider,e,t,de.None,!0)});function UO(o){const e=typeof o.range<"u",t=typeof o.contents<"u"&&o.contents&&o.contents.length>0;return e&&t}var $O=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},oa=function(o,e){return function(t,i){e(t,i,o)}};const Uo=B,zO=ze("hover-increase-verbosity",U.addSmall,m(1173,"Icon for increaseing hover verbosity.")),jO=ze("hover-decrease-verbosity",U.removeSmall,m(1174,"Icon for decreasing hover verbosity."));class Ti{constructor(e,t,i,n,s,r=void 0){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=n,this.ordinal=s,this.source=r}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}class cD{constructor(e,t,i){this.hover=e,this.hoverProvider=t,this.hoverPosition=i}supportsVerbosityAction(e){switch(e){case gi.Increase:return this.hover.canIncreaseVerbosity??!1;case gi.Decrease:return this.hover.canDecreaseVerbosity??!1}}}let ic=class{constructor(e,t,i,n,s,r,a){this._editor=e,this._markdownRendererService=t,this._configurationService=i,this._languageFeaturesService=n,this._keybindingService=s,this._hoverService=r,this._commandService=a,this.hoverOrdinal=3}createLoadingMessage(e){return new Ti(this,e.range,[new It().appendText(m(1175,"Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,s=i.getLineMaxColumn(n),r=[];let a=1e3;const l=i.getLineLength(n),d=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),c=this._editor.getOption(133),h=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:d}),g=this._editor.getOption(69).showLongLineWarning;let u=!1;c>=0&&l>c&&e.range.startColumn>=c&&(u=!0,g&&r.push(new Ti(this,e.range,[{value:m(1176,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`. [Don't Show Again](command:{0})",s_),isTrusted:!0}],!1,a++))),!u&&typeof h=="number"&&l>=h&&g&&r.push(new Ti(this,e.range,[{value:m(1177,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`. [Don't Show Again](command:{0})",s_),isTrusted:!0}],!1,a++));let f=!1;for(const p of t){const _=p.range.startLineNumber===n?p.range.startColumn:1,v=p.range.endLineNumber===n?p.range.endColumn:s,S=p.options.hoverMessage;if(!S||Gd(S))continue;p.options.beforeContentClassName&&(f=!0);const y=new I(e.range.startLineNumber,_,e.range.startLineNumber,v);r.push(new Ti(this,y,dL(S),f,a++))}return r}computeAsync(e,t,i,n){if(!this._editor.hasModel()||e.type!==1)return yn.EMPTY;const s=this._editor.getModel(),r=this._languageFeaturesService.hoverProvider;return r.has(s)?this._getMarkdownHovers(r,s,e,n):yn.EMPTY}async*_getMarkdownHovers(e,t,i,n){const s=i.range.getStartPosition(),r=tC(e,t,s,n);for await(const a of r)if(!Gd(a.hover.contents)){const l=a.hover.range?I.lift(a.hover.range):i.range,d=new cD(a.hover,a.provider,s);yield new Ti(this,l,a.hover.contents,!1,a.ordinal,d)}}renderHoverParts(e,t){return this._renderedHoverParts=new qO(t,e.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,e.onContentsChanged),this._renderedHoverParts}handleScroll(e){this._renderedHoverParts?.handleScroll(e)}getAccessibleContent(e){return this._renderedHoverParts?.getAccessibleContent(e)??""}updateMarkdownHoverVerbosityLevel(e,t){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(e,t))}};ic=$O([oa(1,wo),oa(2,Ie),oa(3,G),oa(4,Te),oa(5,bi),oa(6,it)],ic);class uh{constructor(e,t,i,n){this.hoverPart=e,this.hoverElement=t,this.disposables=i,this.actionsContainer=n}dispose(){this.disposables.dispose()}}class qO{constructor(e,t,i,n,s,r,a,l,d,c){this._hoverParticipant=i,this._editor=n,this._commandService=s,this._keybindingService=r,this._hoverService=a,this._configurationService=l,this._markdownRendererService=d,this._onFinishedRendering=c,this._ongoingHoverOperations=new Map,this._disposables=new W,this.renderedHoverParts=this._renderHoverParts(e,t,this._onFinishedRendering),this._disposables.add(ke(()=>{this.renderedHoverParts.forEach(h=>{h.dispose()}),this._ongoingHoverOperations.forEach(h=>{h.tokenSource.dispose(!0)})}))}_renderHoverParts(e,t,i){return e.sort(Mr(n=>n.ordinal,Ar)),e.map(n=>{const s=this._renderHoverPart(n,i);return t.appendChild(s.hoverElement),s})}_renderHoverPart(e,t){const i=this._renderMarkdownHover(e,t),n=i.hoverElement,s=e.source,r=new W;if(r.add(i),!s)return new uh(e,n,r);const a=s.supportsVerbosityAction(gi.Increase),l=s.supportsVerbosityAction(gi.Decrease);if(!a&&!l)return new uh(e,n,r);const d=Uo("div.verbosity-actions");n.prepend(d);const c=Uo("div.verbosity-actions-inner");return d.append(c),r.add(this._renderHoverExpansionAction(c,gi.Increase,a)),r.add(this._renderHoverExpansionAction(c,gi.Decrease,l)),new uh(e,n,r,c)}_renderMarkdownHover(e,t){return hD(this._editor,e,this._markdownRendererService,t)}_renderHoverExpansionAction(e,t,i){const n=new W,s=t===gi.Increase,r=z(e,Uo(ce.asCSSSelector(s?zO:jO)));r.tabIndex=0;const a=n.add(new GR("mouse",void 0,{target:e,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(n.add(this._hoverService.setupManagedHover(a,r,GO(this._keybindingService,t))),!i)return r.classList.add("disabled"),n;r.classList.add("enabled");const l=()=>this._commandService.executeCommand(t===gi.Increase?Zf:Xf,{focus:!0});return n.add(new ZR(r,l)),n.add(new XR(r,l,[3,10])),n}handleScroll(e){this.renderedHoverParts.forEach(t=>{const i=t.actionsContainer;if(!i)return;const n=t.hoverElement,r=e.scrollTop+e.height,a=n.offsetTop,l=n.clientHeight,d=a+l,c=22;let h;d<=r||a>=r?h=l-c:h=r-a-c,i.style.top=`${h}px`})}async updateMarkdownHoverPartVerbosityLevel(e,t){const i=this._editor.getModel();if(!i)return;const n=this._getRenderedHoverPartAtIndex(t),s=n?.hoverPart.source;if(!n||!s?.supportsVerbosityAction(e))return;const r=await this._fetchHover(s,i,e);if(!r)return;const a=new cD(r,s.hoverProvider,s.hoverPosition),l=n.hoverPart,d=new Ti(this._hoverParticipant,l.range,r.contents,l.isBeforeContent,l.ordinal,a),c=this._updateRenderedHoverPart(t,d);if(c)return{hoverPart:d,hoverElement:c.hoverElement}}getAccessibleContent(e){const t=this.renderedHoverParts.findIndex(r=>r.hoverPart===e);if(t===-1)return;const i=this._getRenderedHoverPartAtIndex(t);return i?i.hoverElement.innerText.replace(/[^\S\n\r]+/gu," "):void 0}async _fetchHover(e,t,i){let n=i===gi.Increase?1:-1;const s=e.hoverProvider,r=this._ongoingHoverOperations.get(s);r&&(r.tokenSource.cancel(),n+=r.verbosityDelta);const a=new Je;this._ongoingHoverOperations.set(s,{verbosityDelta:n,tokenSource:a});const l={verbosityRequest:{verbosityDelta:n,previousHover:e.hover}};let d;try{d=await Promise.resolve(s.provideHover(t,e.hoverPosition,a.token,l))}catch(c){Ze(c)}return a.dispose(),this._ongoingHoverOperations.delete(s),d}_updateRenderedHoverPart(e,t){if(e>=this.renderedHoverParts.length||e<0)return;const i=this._renderHoverPart(t,this._onFinishedRendering),n=this.renderedHoverParts[e],s=n.hoverElement,r=i.hoverElement,a=Array.from(r.children);s.replaceChildren(...a);const l=new uh(t,s,i.disposables,i.actionsContainer);return n.dispose(),this.renderedHoverParts[e]=l,l}_getRenderedHoverPartAtIndex(e){return this.renderedHoverParts[e]}dispose(){this._disposables.dispose()}}function KO(o,e,t,i){e.sort(Mr(s=>s.ordinal,Ar));const n=[];for(const s of e){const r=hD(t,s,i,o.onContentsChanged);o.fragment.appendChild(r.hoverElement),n.push(r)}return new zr(n)}function hD(o,e,t,i){const n=new W,s=Uo("div.hover-row"),r=Uo("div.hover-row-contents");s.appendChild(r);const a=e.contents;for(const d of a){if(Gd(d))continue;const c=Uo("div.markdown-hover"),h=z(c,Uo("div.hover-contents")),g=n.add(t.render(d,{context:o,asyncRenderCallback:()=>{h.className="hover-contents code-hover-contents",i()}}));h.appendChild(g.element),r.appendChild(c)}return{hoverPart:e,hoverElement:s,dispose(){n.dispose()}}}function GO(o,e){switch(e){case gi.Increase:return o.appendKeybinding(m(1178,"Increase Hover Verbosity"),Zf);case gi.Decrease:return o.appendKeybinding(m(1179,"Decrease Hover Verbosity"),Xf)}}const sy=B;class ZO extends A{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=this._register(new Y),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new Y),this.onColorFlushed=this._onColorFlushed.event,this._domNode=sy(".saturation-wrap"),z(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",z(this._domNode,this._canvas),this.selection=sy(".saturation-selection"),z(this._domNode,this.selection),this.layout(),this._register(re(this._domNode,Pe.POINTER_DOWN,n=>this.onPointerDown(n))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new cL);const t=Tt(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,n=>this.onDidChangePosition(n.pageX-t.left,n.pageY-t.top),()=>null);const i=re(e.target.ownerDocument,Pe.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),n=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,n),this._onDidChange.fire({s:i,v:n})}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();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new fe(new Ph(e.h,1,1,1)),i=this._canvas.getContext("2d"),n=i.createLinearGradient(0,0,this._canvas.width,0);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),n.addColorStop(1,"rgba(255, 255, 255, 0)");const s=i.createLinearGradient(0,0,0,this._canvas.height);s.addColorStop(0,"rgba(0, 0, 0, 0)"),s.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=fe.Format.CSS.format(t),i.fill(),i.fillStyle=n,i.fill(),i.fillStyle=s,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class XO extends A{constructor(e){super(),this._onClicked=this._register(new Y),this.onClicked=this._onClicked.event,this._button=z(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(re(this._button,Pe.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}const Gl=B;class uD extends A{constructor(e,t,i){super(),this.model=t,this._onDidChange=this._register(new Y),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new Y),this.onColorFlushed=this._onColorFlushed.event,i==="standalone"?(this.domNode=z(e,Gl(".standalone-strip")),this.overlay=z(this.domNode,Gl(".standalone-overlay"))):(this.domNode=z(e,Gl(".strip")),this.overlay=z(this.domNode,Gl(".overlay"))),this.slider=z(this.domNode,Gl(".slider")),this.slider.style.top="0px",this._register(re(this.domNode,Pe.POINTER_DOWN,n=>this.onPointerDown(n))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new cL),i=Tt(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,s=>this.onDidChangeTop(s.pageY-i.top),()=>null);const n=re(e.target.ownerDocument,Pe.POINTER_UP,()=>{this._onColorFlushed.fire(),n.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}}class YO extends uD{constructor(e,t,i){super(e,t,i),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:n}=e.rgba,s=new fe(new ol(t,i,n,1)),r=new fe(new ol(t,i,n,0));this.overlay.style.background=`linear-gradient(to bottom, ${s} 0%, ${r} 100%)`}getValue(e){return e.hsva.a}}class JO extends uD{constructor(e,t,i){super(e,t,i),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}const QO=B;class eM extends A{constructor(e,t,i,n){super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=QO(".colorpicker-body"),z(e,this._domNode),this._saturationBox=new ZO(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 YO(this._domNode,this.model,n),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new JO(this._domNode,this.model,n),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),n==="standalone"&&(this._insertButton=this._register(new XO(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new fe(new Ph(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new fe(new Ph(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=(1-e)*360;this.model.color=new fe(new Ph(i===360?0:i,t.s,t.v,t.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()}}const tM=B;class iM extends A{constructor(e){super(),this._onClicked=this._register(new Y),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),z(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),z(this._button,t),z(t,tM(".button"+ce.asCSSSelector(ze("color-picker-close",U.close,m(921,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(re(this._button,Pe.CLICK,()=>{this._onClicked.fire()}))}}const gh=B;class nM extends A{constructor(e,t,i,n){super(),this.model=t,this.type=n,this._closeButton=null,this._domNode=gh(".colorpicker-header"),z(e,this._domNode),this._pickedColorNode=z(this._domNode,gh(".picked-color")),z(this._pickedColorNode,gh("span.codicon.codicon-color-mode")),this._pickedColorPresentation=z(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const s=m(922,"Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",s),this._originalColorNode=z(this._domNode,gh(".original-color")),this._originalColorNode.style.backgroundColor=fe.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=i.getColorTheme().getColor(xm)||fe.white,this._register(i.onDidColorThemeChange(r=>{this.backgroundColor=r.getColor(xm)||fe.white})),this._register(re(this._pickedColorNode,Pe.CLICK,()=>this.model.selectNextColorPresentation())),this._register(re(this._originalColorNode,Pe.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=fe.Format.CSS.format(t.color)||"",this._pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone"&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new iM(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=fe.Format.CSS.format(e)||"",this._pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}const sM=B;class gD extends Uc{constructor(e,t,i,n,s){super(),this.model=t,this.pixelRatio=i,this._register(YR.getInstance(Ht(e)).onDidChange(()=>this.layout())),this._domNode=sM(".colorpicker-widget"),e.appendChild(this._domNode),this.header=this._register(new nM(this._domNode,this.model,n,s)),this.body=this._register(new eM(this._domNode,this.model,this.pixelRatio,s))}layout(){this.body.layout()}get domNode(){return this._domNode}}class oM extends A{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){super(),this.presentationIndex=i,this._onColorFlushed=this._register(new Y),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new Y),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new Y),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let n=0;n<this.colorPresentations.length;n++)if(t.toLowerCase()===this.colorPresentations[n].label){i=n;break}if(i===-1){const n=t.split("(")[0].toLowerCase();for(let s=0;s<this.colorPresentations.length;s++)if(this.colorPresentations[s].label.toLowerCase().startsWith(n)){i=s;break}}i!==-1&&i!==this.presentationIndex&&(this.presentationIndex=i,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}}async function fD(o,e,t){const i=o.getValueInRange(e.range),{red:n,green:s,blue:r,alpha:a}=e.color,l=new ol(Math.round(n*255),Math.round(s*255),Math.round(r*255),a),d=new fe(l),c=await q1(o,e,t,de.None),h=new oM(d,[],0);return h.colorPresentations=c||[],h.guessColorPresentation(d,i),{range:I.lift(e.range),model:h,provider:t}}function pD(o,e,t){const i=[],n=t.presentation.textEdit??{range:e,text:t.presentation.label,forceMoveMarkers:!1};i.push(n),t.presentation.additionalTextEdits&&i.push(...t.presentation.additionalTextEdits);const s=I.lift(n.range),r=o.getModel()._setTrackedRange(null,s,3);return o.executeEdits("colorpicker",i),o.pushUndoStop(),o.getModel()._getTrackedRange(r)??s}async function nc(o,e,t,i,n){const s=await q1(o,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},n.provider,de.None);e.colorPresentations=s||[]}var rM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},aM=function(o,e){return function(t,i){e(t,i,o)}};class fu{constructor(e,t,i,n){this.owner=e,this.range=t,this.model=i,this.provider=n,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}static fromBaseColor(e,t){return new fu(e,t.range,t.model,t.provider)}}let pu=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t,i){return[]}computeAsync(e,t,i,n){return yn.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];if(!this._isValidRequest(i))return[];const n=hl.get(this._editor);if(!n)return[];for(const s of t){if(!n.isColorDecoration(s))continue;const r=n.getColorData(s.range.getStartPosition());if(r)return[fu.fromBaseColor(this,await fD(this._editor.getModel(),r.colorInfo,r.provider))]}return[]}_isValidRequest(e){const t=this._editor.getOption(168);switch(e){case 0:return t==="hover"||t==="clickAndHover";case 1:return t==="click"||t==="clickAndHover";case 2:return!0}}renderHoverParts(e,t){const i=this._editor;if(t.length===0||!i.hasModel())return new zr([]);const n=i.getOption(75)+8;e.setMinimumDimensions(new xe(302,n));const s=new W,r=t[0],a=i.getModel(),l=r.model;this._colorPicker=s.add(new gD(e.fragment,l,i.getOption(163),this._themeService,"hover"));let d=!1,c=new I(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);s.add(l.onColorFlushed(async g=>{await nc(a,l,g,c,r),d=!0,c=pD(i,c,l)})),s.add(l.onDidChangeColor(g=>{nc(a,l,g,c,r)})),s.add(i.onDidChangeModelContent(g=>{d?d=!1:(e.hide(),i.focus())}));const h={hoverPart:fu.fromBaseColor(this,r),hoverElement:this._colorPicker.domNode,dispose(){s.dispose()}};return new zr([h])}getAccessibleContent(e){return m(923,"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}};pu=rM([aM(1,yt)],pu);function p_(o,e){return!!o[e]}class Bp{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.mouseMiddleClickAction=t.mouseMiddleClickAction,this.hasTriggerModifier=p_(e.event,t.triggerModifier),this.isMiddleClick&&t.mouseMiddleClickAction==="ctrlLeftClick"&&(this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0),this.hasSideBySideModifier=p_(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class oy{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=p_(e,t.triggerModifier)}}class fh{constructor(e,t,i,n,s){this.mouseMiddleClickAction=s,this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=n}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier&&this.mouseMiddleClickAction===e.mouseMiddleClickAction}}function ry(o,e){return o==="altKey"?Yn?new fh(57,"metaKey",6,"altKey",e):new fh(5,"ctrlKey",6,"altKey",e):Yn?new fh(6,"altKey",57,"metaKey",e):new fh(6,"altKey",5,"ctrlKey",e)}class ep extends A{constructor(e,t){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new Y),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new Y),this.onExecute=this._onExecute.event,this._onCancel=this._register(new Y),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=t?.extractLineNumberFromMouseEvent??(i=>i.target.position?i.target.position.lineNumber:0),this._opts=ry(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(i=>{if(i.hasChanged(86)||i.hasChanged(87)){const n=ry(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(n))return;this._opts=n,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(i=>this._onEditorMouseMove(new Bp(i,this._opts)))),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(new Bp(i,this._opts)))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(new Bp(i,this._opts)))),this._register(this._editor.onKeyDown(i=>this._onEditorKeyDown(new oy(i,this._opts)))),this._register(this._editor.onKeyUp(i=>this._onEditorKeyUp(new oy(i,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(i=>this._onDidChangeCursorSelection(i))),this._register(this._editor.onDidChangeModel(i=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(i=>{(i.scrollTopChanged||i.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&(this._hasTriggerKeyOnMouseDown||e.isMiddleClick&&e.mouseMiddleClickAction==="openLink")&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class mD{constructor(e,t){this.range=e,this.direction=t}}class iC{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new iC(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}async resolve(e){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(e){try{const t=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=t?.tooltip??this.hint.tooltip,this.hint.label=t?.label??this.hint.label,this.hint.textEdits=t?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(t){Ze(t),this._isResolved=!1}}}const Ta=class Ta{static async create(e,t,i,n){const s=[],r=e.ordered(t).reverse().map(a=>i.map(async l=>{try{const d=await a.provideInlayHints(t,l,n);(d?.hints.length||a.onDidChangeInlayHints)&&s.push([d??Ta._emptyInlayHintList,a])}catch(d){Ze(d)}}));if(await Promise.all(r.flat()),n.isCancellationRequested||t.isDisposed())throw new mS;return new Ta(i,s,t)}constructor(e,t,i){this._disposables=new W,this.ranges=e,this.provider=new Set;const n=[];for(const[s,r]of t){this._disposables.add(s),this.provider.add(r);for(const a of s.hints){const l=i.validatePosition(a.position);let d="before";const c=Ta._getRangeAtPosition(i,l);let h;c.getStartPosition().isBefore(l)?(h=I.fromPositions(c.getStartPosition(),l),d="after"):(h=I.fromPositions(l,c.getEndPosition()),d="before"),n.push(new iC(a,new mD(h,d),r))}}this.items=n.sort((s,r)=>$.compare(s.hint.position,r.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,n=e.getWordAtPosition(t);if(n)return new I(i,n.startColumn,i,n.endColumn);e.tokenization.tokenizeIfCheap(i);const s=e.tokenization.getLineTokens(i),r=t.column-1,a=s.findTokenIndexAtOffset(r);let l=s.getStartOffset(a),d=s.getEndOffset(a);return d-l===1&&(l===r&&a>1?(l=s.getStartOffset(a-1),d=s.getEndOffset(a-1)):d===r&&a<s.getCount()-1&&(l=s.getStartOffset(a+1),d=s.getEndOffset(a+1))),new I(i,l+1,i,d+1)}};Ta._emptyInlayHintList=Object.freeze({dispose(){},hints:[]});let mu=Ta;function lM(o){return hL(o.id,...o.arguments??[]).toString()}var dM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},dn=function(o,e){return function(t,i){e(t,i,o)}};let Dn=class extends _S{constructor(e,t,i,n,s,r,a,l,d,c,h,g,u,f){super(e,{...n.getRawOptions(),overflowWidgetsDomNode:n.getOverflowWidgetsDomNode()},i,s,r,a,l,d,c,h,g,u,f),this._parentEditor=n,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(n.onDidChangeConfiguration(p=>this._onParentConfigurationChanged(p)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){vS(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};Dn=dM([dn(4,ee),dn(5,Ue),dn(6,it),dn(7,pe),dn(8,yt),dn(9,Lt),dn(10,Co),dn(11,st),dn(12,G),dn(13,Rf)],Dn);function _D(o){const e=o.get(Ue).getFocusedCodeEditor();return e instanceof Dn?e.getParentEditor():e}const ay=new fe(new ol(0,122,204)),cM={showArrow:!0,showFrame:!0,className:"",frameColor:ay,arrowColor:ay,keepEditorSelection:!1},hM="vs.editor.contrib.zoneWidget";class uM{constructor(e,t,i,n,s,r,a,l){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=n,this.showInHiddenAreas=a,this.ordinal=l,this._onDomNodeTop=s,this._onComputedHeight=r}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class gM{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}const Mg=class Mg{constructor(e){this._editor=e,this._ruleName=Mg._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),QC(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){QC(this._ruleName),e0(`.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(e){e.column===1&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:I.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}};Mg._IdGenerator=new QR(".arrow-decoration-");let m_=Mg;class fM{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new W,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=JR(t),vS(this.options,cM,!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(i=>{const n=this._getWidth(i);this.domNode.style.width=n+"px",this.domNode.style.left=this._getLeft(i)+"px",this._onWidth(n)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new m_(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){if(this.domNode.style.height=`${e}px`,this.container){const t=e-this._decoratingElementsHeight();this.container.style.height=`${t}px`;const i=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(i))}this._resizeSash?.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=I.isIRange(e)?I.lift(e):I.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:te.EMPTY}])}hide(){this._viewZone&&(this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow?.hide(),this._positionMarkerId.clear(),this._isSashResizeHeight=!1}_decoratingElementsHeight(){const e=this.editor.getOption(75);let t=0;if(this.options.showArrow){const i=Math.round(e/3);t+=2*i}if(this.options.showFrame){const i=this.options.frameWidth??Math.round(e/9);t+=2*i}return t}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*.8)}_showImpl(e,t){const i=e.getStartPosition(),n=this.editor.getLayoutInfo(),s=this._getWidth(n);this.domNode.style.width=`${s}px`,this.domNode.style.left=this._getLeft(n)+"px";const r=document.createElement("div");r.style.overflow="hidden";const a=this.editor.getOption(75),l=this._getMaximumHeightInLines();l!==void 0&&(t=Math.min(t,l));let d=0,c=0;if(this._arrow&&this.options.showArrow&&(d=Math.round(a/3),this._arrow.height=d,this._arrow.show(i)),this.options.showFrame&&(c=Math.round(a/9)),this.editor.changeViewZones(u=>{this._viewZone&&u.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new uM(r,i.lineNumber,i.column,t,f=>this._onViewZoneTop(f),f=>this._onViewZoneHeight(f),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=u.addZone(this._viewZone),this._overlayWidget=new gM(hM+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){const u=this.options.frameWidth?this.options.frameWidth:c;this.container.style.borderTopWidth=u+"px",this.container.style.borderBottomWidth=u+"px"}const h=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=d+"px",this.container.style.height=h+"px",this.container.style.overflow="hidden"),this._doLayout(h,s),this.options.keepEditorSelection||this.editor.setSelection(e);const g=this.editor.getModel();if(g){const u=g.validateRange(new I(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(u,u.startLineNumber===g.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e,t){const i=this._getMaximumHeightInLines(),n=t&&i!==void 0?Math.min(i,e):e;this._viewZone&&this._viewZone.heightInLines!==n&&(this.editor.changeViewZones(s=>{this._viewZone&&(this._viewZone.heightInLines=n,s.layoutZone(this._viewZone.id))}),this._updateSashEnablement())}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new ya(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let e;this._disposables.add(this._resizeSash.onDidStart(t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(75),n=i<0?Math.ceil(i):Math.floor(i),s=e.heightInLines+n;s>e.minLines&&s<e.maxLines&&(this._isSashResizeHeight=!0,this._relayout(s))}}))}_updateSashEnablement(){if(this._resizeSash){const{minLines:e,maxLines:t}=this._getResizeBounds();this._resizeSash.state=e===t?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(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}var vD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},bD=function(o,e){return function(t,i){e(t,i,o)}};const SD=Rn("IPeekViewService");os(SD,class{constructor(){this._widgets=new Map}addExclusiveWidget(o,e){const t=this._widgets.get(o);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const n=this._widgets.get(o);n&&n.widget===e&&(n.listener.dispose(),this._widgets.delete(o))};this._widgets.set(o,{widget:e,listener:e.onDidClose(i)})}},1);var Bt;(function(o){o.inPeekEditor=new ie("inReferenceSearchEditor",!0,m(1362,"Whether the current code editor is embedded inside peek")),o.notInPeekEditor=o.inPeekEditor.toNegated()})(Bt||(Bt={}));var $a;let _u=($a=class{constructor(e,t){e instanceof Dn&&Bt.inPeekEditor.bindTo(t)}dispose(){}},$a.ID="editor.contrib.referenceController",$a);_u=vD([bD(1,pe)],_u);ae(_u.ID,_u,0);const pM={headerBackgroundColor:fe.white,primaryHeadingColor:fe.fromHex("#333333"),secondaryHeadingColor:fe.fromHex("#6c6c6cb3")};let vu=class extends fM{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new Y,this.onDidClose=this._onDidClose.event,vS(this.options,pM,!1);const n=We(this.editor);n.openedPeekWidgets.set(n.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();const e=We(this.editor);e.openedPeekWidgets.set(e.openedPeekWidgets.get()-1,void 0)}}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=B(".head"),this._bodyElement=B(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=B(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),co(this._titleElement,"click",s=>this._onTitleClick(s))),z(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=B("span.filename"),this._secondaryHeading=B("span.dirname"),this._metaHeading=B("span.meta"),z(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=B(".peekview-actions");z(this._headElement,i);const n=this._getActionBarOptions();this._actionbarWidget=new oo(i,n),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(this._disposables.add(new rl("peekview.close",m(1363,"Close"),ce.asClassName(U.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:t0.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("title",e),t?this._secondaryHeading.innerText=t:pi(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,ki(this._metaHeading)):si(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(75)*1.2),n=Math.round(e-(i+1));this._doLayoutHead(i,t),this._doLayoutBody(n,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};vu=vD([bD(2,ee)],vu);const mM=V("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:fe.black,hcLight:fe.white},m(1364,"Background color of the peek view title area.")),CD=V("peekViewTitleLabel.foreground",{dark:fe.white,light:fe.black,hcDark:fe.white,hcLight:$c},m(1365,"Color of the peek view title.")),wD=V("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},m(1366,"Color of the peek view title info.")),_M=V("peekView.border",{dark:Lm,light:Lm,hcDark:Ln,hcLight:Ln},m(1367,"Color of the peek view borders and arrow.")),vM=V("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:fe.black,hcLight:fe.white},m(1368,"Background color of the peek view result list."));V("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:fe.white,hcLight:$c},m(1369,"Foreground color for line nodes in the peek view result list."));V("peekViewResult.fileForeground",{dark:fe.white,light:"#1E1E1E",hcDark:fe.white,hcLight:$c},m(1370,"Foreground color for file nodes in the peek view result list."));V("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},m(1371,"Background color of the selected entry in the peek view result list."));V("peekViewResult.selectionForeground",{dark:fe.white,light:"#6C6C6C",hcDark:fe.white,hcLight:$c},m(1372,"Foreground color of the selected entry in the peek view result list."));const nC=V("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:fe.black,hcLight:fe.white},m(1373,"Background color of the peek view editor."));V("peekViewEditorGutter.background",nC,m(1374,"Background color of the gutter in the peek view editor."));V("peekViewEditorStickyScroll.background",nC,m(1375,"Background color of sticky scroll in the peek view editor."));V("peekViewEditorStickyScrollGutter.background",nC,m(1376,"Background color of the gutter part of sticky scroll in the peek view editor."));V("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},m(1377,"Match highlight color in the peek view result list."));V("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},m(1378,"Match highlight color in the peek view editor."));V("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:Fr,hcLight:Fr},m(1379,"Match highlight border in the peek view editor."));class ns{constructor(e,t,i,n){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=n,this.id=i0.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){const e=this.parent.getPreview(this)?.preview(this.range);return e?m(1131,"{0} in {1} on line {2} at column {3}",e.value,on(this.uri),this.range.startLineNumber,this.range.startColumn):m(1130,"in {0} on line {1} at column {2}",on(this.uri),this.range.startLineNumber,this.range.startColumn)}}class bM{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:n,startColumn:s,endLineNumber:r,endColumn:a}=e,l=i.getWordUntilPosition({lineNumber:n,column:s-t}),d=new I(n,l.startColumn,n,s),c=new I(r,a,r,1073741824),h=i.getValueInRange(d).replace(/^\s+/,""),g=i.getValueInRange(e),u=i.getValueInRange(c).replace(/\s+$/,"");return{value:h+g+u,highlight:{start:h.length,end:h.length+g.length}}}}class pl{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new Jn}dispose(){kt(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return e===1?m(1132,"1 symbol in {0}, full path {1}",on(this.uri),this.uri.fsPath):m(1133,"{0} symbols in {1}, full path {2}",e,on(this.uri),this.uri.fsPath)}async resolve(e){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const i=await e.createModelReference(t.uri);this._previews.set(t.uri,new bM(i))}catch(i){we(i)}return this}}class Kt{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new Y,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(Kt._compareReferences);let n;for(const s of e)if((!n||!ew.isEqual(n.uri,s.uri,!0))&&(n=new pl(this,s.uri),this.groups.push(n)),n.children.length===0||Kt._compareReferences(s,n.children[n.children.length-1])!==0){const r=new ns(i===s,n,s,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(r),n.children.push(r)}}dispose(){kt(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Kt(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?m(1134,"No results found"):this.references.length===1?m(1135,"Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?m(1136,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):m(1137,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let n=i.children.indexOf(e);const s=i.children.length,r=i.parent.groups.length;return r===1||t&&n+1<s||!t&&n>0?(t?n=(n+1)%s:n=(n+s-1)%s,i.children[n]):(n=i.parent.groups.indexOf(i),t?(n=(n+1)%r,i.parent.groups[n].children[0]):(n=(n+r-1)%r,i.parent.groups[n].children[i.parent.groups[n].children.length-1]))}nearestReference(e,t){const i=this.references.map((n,s)=>({idx:s,prefixLen:El(n.uri.toString(),e.toString()),offsetDist:Math.abs(n.range.startLineNumber-t.lineNumber)*100+Math.abs(n.range.startColumn-t.column)})).sort((n,s)=>n.prefixLen>s.prefixLen?-1:n.prefixLen<s.prefixLen?1:n.offsetDist<s.offsetDist?-1:n.offsetDist>s.offsetDist?1:0)[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&I.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return ew.compare(e.uri,t.uri)||I.compareRangesUsingStarts(e.range,t.range)}}var tp=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ip=function(o,e){return function(t,i){e(t,i,o)}},__;let v_=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof Kt||e instanceof pl}getChildren(e){if(e instanceof Kt)return e.groups;if(e instanceof pl)return e.resolve(this._resolverService).then(t=>t.children);throw new Error("bad tree")}};v_=tp([ip(0,ci)],v_);class SM{getHeight(){return 23}getTemplateId(e){return e instanceof pl?bu.id:Su.id}}let b_=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){if(e instanceof ns){const t=e.parent.getPreview(e)?.preview(e.range);if(t)return t.value}return on(e.uri)}};b_=tp([ip(0,Te)],b_);class CM{getId(e){return e instanceof ns?e.id:e.uri}}let S_=class extends A{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new uL(i,{supportHighlights:!0})),this.badge=this._register(new n0(z(i,B(".count")),{},s0)),e.appendChild(i)}set(e,t){const i=bS(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const n=e.children.length;this.badge.setCount(n),n>1?this.badge.setTitleFormat(m(1124,"{0} references",n)):this.badge.setTitleFormat(m(1125,"{0} reference",n))}};S_=tp([ip(1,al)],S_);var Yo;let bu=(Yo=class{constructor(e){this._instantiationService=e,this.templateId=__.id}renderTemplate(e){return this._instantiationService.createInstance(S_,e)}renderElement(e,t,i){i.set(e.element,Nf(e.filterData))}disposeTemplate(e){e.dispose()}},__=Yo,Yo.id="FileReferencesRenderer",Yo);bu=__=tp([ip(0,ee)],bu);class wM extends A{constructor(e){super(),this.label=this._register(new o0(e))}set(e,t){const i=e.parent.getPreview(e)?.preview(e.range);if(!i||!i.value)this.label.set(`${on(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`);else{const{value:n,highlight:s}=i;t&&!Zd.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(n,Nf(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(n,[s]))}}}const Ag=class Ag{constructor(){this.templateId=Ag.id}renderTemplate(e){return new wM(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}};Ag.id="OneReferenceRenderer";let Su=Ag;class yM{getWidgetAriaLabel(){return m(1126,"References")}getAriaLabel(e){return e.ariaMessage}}var yD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Po=function(o,e){return function(t,i){e(t,i,o)}};const Fg=class Fg{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new W,this._callOnModelChange=new W,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e){for(const t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let n=0,s=e.children.length;n<s;n++){const r=e.children[n];this._decorationIgnoreSet.has(r.id)||r.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:r.range,options:Fg.DecorationOptions}),i.push(n))}this._editor.changeDecorations(n=>{const s=n.deltaDecorations([],t);for(let r=0;r<s.length;r++)this._decorations.set(s[r],e.children[i[r]])})}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,n]of this._decorations){const s=t.getDecorationRange(i);if(!s)continue;let r=!1;if(!I.equalsRange(s,n.range)){if(I.spansMultipleLines(s))r=!0;else{const a=n.range.endColumn-n.range.startColumn,l=s.endColumn-s.startColumn;a!==l&&(r=!0)}r?(this._decorationIgnoreSet.add(n.id),e.push(i)):n.range=s}}for(let i=0,n=e.length;i<n;i++)this._decorations.delete(e[i]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}};Fg.DecorationOptions=te.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"});let C_=Fg;class IM{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,i;try{const n=JSON.parse(e);t=n.ratio,i=n.heightInLines}catch{}return{ratio:t||.7,heightInLines:i||18}}}class xM extends d0{}let w_=class{constructor(e){this.labelService=e,this.disposables=new W}getDragURI(e){return e instanceof pl?e.uri.toString():e instanceof ns?r0(e.uri,e.range).toString():null}getDragLabel(e){return e.length===0?void 0:e.map(i=>this.labelService.getUriBasenameLabel(i.uri)).join(", ")}onDragStart(e,t){if(!t.dataTransfer)return;const n=e.elements.map(s=>this.getDragURI(s)).filter(Boolean);n.length&&(t.dataTransfer.setData(tw.RESOURCES,JSON.stringify(n)),t.dataTransfer.setData(tw.TEXT,n.join(`
8
- `)))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};w_=yD([Po(0,al)],w_);let y_=class extends vu{constructor(e,t,i,n,s,r,a,l,d){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},r),this._defaultTreeKeyboardSupport=t,this.layoutData=i,this._textModelResolverService=s,this._instantiationService=r,this._peekViewService=a,this._uriLabel=l,this._keybindingService=d,this._disposeOnNewModel=new W,this._callOnDispose=new W,this._onDidSelectReference=this._callOnDispose.add(new Y),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new xe(0,0),this._isClosing=!1,this._applyTheme(n.getColorTheme()),this._callOnDispose.add(n.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(e,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),kt(this._preview),kt(this._previewNotAvailableMessage),kt(this._tree),kt(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor(_M)||fe.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(mM)||fe.transparent,primaryHeadingColor:e.getColor(CD),secondaryHeadingColor:e.getColor(wD)})}show(e){super.show(e,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?"side":"open",source:"title"})}_fillBody(e){this.setCssClass("reference-zone-widget"),this._messageContainer=z(e,B("div.messages")),si(this._messageContainer),this._splitView=new a0(e,{orientation:1}),this._previewContainer=z(e,B("div.preview.inline"));const t={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(Dn,this._previewContainer,t,{},this.editor),si(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(eu,m(1127,"no preview available"),gL,eu.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=z(e,B("div.ref-tree.inline"));const i={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new yM,keyboardNavigationLabelProvider:this._instantiationService.createInstance(b_),identityProvider:new CM,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:vM},dnd:this._instantiationService.createInstance(w_)};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(co(this._treeContainer,"keydown",s=>{s.equals(9)&&(this._keybindingService.dispatchEvent(s,s.target),s.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(xM,"ReferencesWidget",this._treeContainer,new SM,[this._instantiationService.createInstance(bu),this._instantiationService.createInstance(Su)],this._instantiationService.createInstance(v_),i),this._splitView.addView({onDidChange:Ve.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:s=>{this._preview.layout({height:this._dim.height,width:s})}},iw.Distribute),this._splitView.addView({onDidChange:Ve.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:s=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${s}px`,this._tree.layout(this._dim.height,s)}},iw.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const n=(s,r)=>{s instanceof ns&&(r==="show"&&this._revealReference(s,!1),this._onDidSelectReference.fire({element:s,kind:r,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(s=>{s.sideBySide?n(s.element,"side"):s.editorOptions.pinned?n(s.element,"goto"):n(s.element,"show")})),si(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new xe(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=m(1128,"No results"),ki(this._messageContainer),Promise.resolve(void 0)):(si(this._messageContainer),this._decorationsManager=new C_(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{const{event:t,target:i}=e;if(t.detail!==2)return;const n=this._getFocusedReference();n&&this._onDidSelectReference.fire({element:{uri:n.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),ki(this._treeContainer),ki(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();if(e instanceof ns)return e;if(e instanceof pl&&e.children.length>0)return e.children[0]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}async _revealReference(e,t){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==mt.inMemory?this.setTitle(l0(e.uri),this._uriLabel.getUriLabel(bS(e.uri))):this.setTitle(m(1129,"References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent),this._tree.reveal(e));const n=await i;if(!this._model){n.dispose();return}kt(this._previewModelReference);const s=n.object;if(s){const r=this._preview.getModel()===s.textEditorModel?0:1,a=I.lift(e.range).collapseToStart();this._previewModelReference=n,this._preview.setModel(s.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,r)}else this._preview.setModel(this._previewNotAvailableMessage),n.dispose()}};y_=yD([Po(3,yt),Po(4,ci),Po(5,ee),Po(6,SD),Po(7,al),Po(8,Te)],y_);var LM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ra=function(o,e){return function(t,i){e(t,i,o)}},Bh;const ta=new ie("referenceSearchVisible",!1,m(1121,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));var Jo;let jr=(Jo=class{static get(e){return e.getContribution(Bh.ID)}constructor(e,t,i,n,s,r,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=n,this._notificationService=s,this._instantiationService=r,this._storageService=a,this._configurationService=l,this._disposables=new W,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=ta.bindTo(i)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let n;if(this._widget&&(n=this._widget.position),this.closeWidget(),n&&e.containsPosition(n))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const s="peekViewLayout",r=IM.fromJSON(this._storageService.get(s,0,"{}"));this._widget=this._instantiationService.createInstance(y_,this._editor,this._defaultTreeKeyboardSupport,r),this._widget.setTitle(m(1122,"Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget?(this._storageService.store(s,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(l=>{const{element:d,kind:c}=l;if(d)switch(c){case"open":(l.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(d,!1,!1);break;case"side":this.openReference(d,!0,!1);break;case"goto":i?this._gotoReference(d,!0):this.openReference(d,!1,!0);break}}));const a=++this._requestIdPool;t.then(l=>{if(a!==this._requestIdPool||!this._widget){l.dispose();return}return this._model?.dispose(),this._model=l,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(m(1123,"{0} ({1})",this._model.title,this._model.references.length));const d=this._editor.getModel().uri,c=new $(e.startLineNumber,e.startColumn),h=this._model.nearestReference(d,c);if(h)return this._widget.setSelection(h).then(()=>{this._widget&&this._editor.getOption(99)==="editor"&&this._widget.focusOnPreviewEditor()})}})},l=>{this._notificationService.error(l)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const n=this._model.nextOrPreviousReference(i,e),s=this._editor.hasTextFocus(),r=this._widget.isPreviewEditorFocused();await this._widget.setSelection(n),await this._gotoReference(n,!1),s?this._editor.focus():this._widget&&r&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){this._widget?.hide(),this._ignoreModelChangeEvent=!0;const i=I.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:i,selectionSource:"code.jump",pinned:t}},this._editor).then(n=>{if(this._ignoreModelChangeEvent=!1,!n||!this._widget){this.closeWidget();return}if(this._editor===n)this._widget.show(i),this._widget.focusOnReferenceTree();else{const s=Bh.get(n),r=this._model.clone();this.closeWidget(),n.focus(),s?.toggleWidget(i,dt(a=>Promise.resolve(r)),this._peekMode??!1)}},n=>{this._ignoreModelChangeEvent=!1,we(n)})}openReference(e,t,i){t||this.closeWidget();const{uri:n,range:s}=e;this._editorService.openCodeEditor({resource:n,options:{selection:s,selectionSource:"code.jump",pinned:i}},this._editor,t)}},Bh=Jo,Jo.ID="editor.contrib.referencesController",Jo);jr=Bh=LM([ra(2,pe),ra(3,Ue),ra(4,Lt),ra(5,ee),ra(6,Wi),ra(7,Ie)],jr);function ia(o,e){const t=_D(o);if(!t)return;const i=jr.get(t);i&&e(i)}di.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Ge(2089,60),when:T.or(ta,Bt.inPeekEditor),handler(o){ia(o,e=>{e.changeFocusBetweenPreviewAndReferences()})}});di.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:T.or(ta,Bt.inPeekEditor),handler(o){ia(o,e=>{e.goToNextOrPreviousReference(!0)})}});di.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:T.or(ta,Bt.inPeekEditor),handler(o){ia(o,e=>{e.goToNextOrPreviousReference(!1)})}});Ee.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");Ee.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");Ee.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");Ee.registerCommand("closeReferenceSearch",o=>ia(o,e=>e.closeWidget()));di.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:T.and(Bt.inPeekEditor,T.not("config.editor.stablePeek"))});di.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:T.and(ta,T.not("config.editor.stablePeek"),T.or(C.editorTextFocus,c0.negate()))});di.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:T.and(ta,fL,pL.negate(),mL.negate()),handler(o){const t=o.get(SS).lastFocusedList?.getFocus();Array.isArray(t)&&t[0]instanceof ns&&ia(o,i=>i.revealReference(t[0]))}});di.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:T.and(ta,fL,pL.negate(),mL.negate()),handler(o){const t=o.get(SS).lastFocusedList?.getFocus();Array.isArray(t)&&t[0]instanceof ns&&ia(o,i=>i.openReference(t[0],!0,!0))}});Ee.registerCommand("openReference",o=>{const t=o.get(SS).lastFocusedList?.getFocus();Array.isArray(t)&&t[0]instanceof ns&&ia(o,i=>i.openReference(t[0],!1,!0))});var ID=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},dd=function(o,e){return function(t,i){e(t,i,o)}};const sC=new ie("hasSymbols",!1,m(1138,"Whether there are symbol locations that can be navigated via keyboard-only.")),np=Rn("ISymbolNavigationService");let I_=class{constructor(e,t,i,n){this._editorService=t,this._notificationService=i,this._keybindingService=n,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=sC.bindTo(e)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.close(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1){this.reset();return}this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new x_(this._editorService),n=i.onDidChange(s=>{if(this._ignoreEditorChange)return;const r=this._editorService.getActiveCodeEditor();if(!r)return;const a=r.getModel(),l=r.getPosition();if(!a||!l)return;let d=!1,c=!1;for(const h of t.references)if(ro(h.uri,a.uri))d=!0,c=c||I.containsPosition(h.range,l);else if(d)break;(!d||!c)&&this.reset()});this._currentState=_L(i,n)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:I.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.close();const e=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),t=e?m(1139,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,e.getLabel()):m(1140,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(t)}};I_=ID([dd(0,pe),dd(1,Ue),dd(2,Lt),dd(3,Te)],I_);os(np,I_,1);K(new class extends Mt{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:sC,kbOpts:{weight:100,primary:70}})}runEditorCommand(o,e){return o.get(np).revealNext(e)}});di.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:sC,primary:9,handler(o){o.get(np).reset()}});let x_=class{constructor(e){this._listener=new Map,this._disposables=new W,this._onDidChange=new Y,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),kt(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,_L(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){this._listener.get(e)?.dispose(),this._listener.delete(e)}};x_=ID([dd(0,Ue)],x_);function L_(o,e){return e.uri.scheme===o.uri.scheme?!0:!h0(e.uri,mt.walkThroughSnippet,mt.vscodeChatCodeBlock,mt.vscodeChatCodeCompareBlock)}async function Zc(o,e,t,i,n){const r=t.ordered(o,i).map(l=>Promise.resolve(n(l,o,e)).then(void 0,d=>{Ze(d)})),a=await Promise.all(r);return _o(a.flat()).filter(l=>L_(o,l))}function Xc(o,e,t,i,n){return Zc(e,t,o,i,(s,r,a)=>s.provideDefinition(r,a,n))}function oC(o,e,t,i,n){return Zc(e,t,o,i,(s,r,a)=>s.provideDeclaration(r,a,n))}function rC(o,e,t,i,n){return Zc(e,t,o,i,(s,r,a)=>s.provideImplementation(r,a,n))}function aC(o,e,t,i,n){return Zc(e,t,o,i,(s,r,a)=>s.provideTypeDefinition(r,a,n))}function Yc(o,e,t,i,n,s){return Zc(e,t,o,n,async(r,a,l)=>{const d=(await r.provideReferences(a,l,{includeDeclaration:!0},s))?.filter(h=>L_(a,h));if(!i||!d||d.length!==2)return d;const c=(await r.provideReferences(a,l,{includeDeclaration:!1},s))?.filter(h=>L_(a,h));return c&&c.length===1?c:d})}async function kn(o){const e=await o(),t=new Kt(e,""),i=t.references.map(n=>n.link);return t.dispose(),i}$t("_executeDefinitionProvider",(o,e,t)=>{const i=o.get(G),n=Xc(i.definitionProvider,e,t,!1,de.None);return kn(()=>n)});$t("_executeDefinitionProvider_recursive",(o,e,t)=>{const i=o.get(G),n=Xc(i.definitionProvider,e,t,!0,de.None);return kn(()=>n)});$t("_executeTypeDefinitionProvider",(o,e,t)=>{const i=o.get(G),n=aC(i.typeDefinitionProvider,e,t,!1,de.None);return kn(()=>n)});$t("_executeTypeDefinitionProvider_recursive",(o,e,t)=>{const i=o.get(G),n=aC(i.typeDefinitionProvider,e,t,!0,de.None);return kn(()=>n)});$t("_executeDeclarationProvider",(o,e,t)=>{const i=o.get(G),n=oC(i.declarationProvider,e,t,!1,de.None);return kn(()=>n)});$t("_executeDeclarationProvider_recursive",(o,e,t)=>{const i=o.get(G),n=oC(i.declarationProvider,e,t,!0,de.None);return kn(()=>n)});$t("_executeReferenceProvider",(o,e,t)=>{const i=o.get(G),n=Yc(i.referenceProvider,e,t,!1,!1,de.None);return kn(()=>n)});$t("_executeReferenceProvider_recursive",(o,e,t)=>{const i=o.get(G),n=Yc(i.referenceProvider,e,t,!1,!0,de.None);return kn(()=>n)});$t("_executeImplementationProvider",(o,e,t)=>{const i=o.get(G),n=rC(i.implementationProvider,e,t,!1,de.None);return kn(()=>n)});$t("_executeImplementationProvider_recursive",(o,e,t)=>{const i=o.get(G),n=rC(i.implementationProvider,e,t,!0,de.None);return kn(()=>n)});Mi.appendMenuItem(q.EditorContext,{submenu:q.EditorContextPeek,title:m(1081,"Peek"),group:"navigation",order:100});class ml{static is(e){return!e||typeof e!="object"?!1:!!(e instanceof ml||$.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}}const Li=class Li extends vi{static all(){return Li._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of Fs.wrap(t.menu))(i.id===q.EditorContext||i.id===q.EditorContextPeek)&&(i.when=T.and(e.precondition,i.when));return t}constructor(e,t){super(Li._patchConfig(t)),this.configuration=e,Li._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,n){if(!t.hasModel())return Promise.resolve(void 0);const s=e.get(Lt),r=e.get(Ue),a=e.get(nl),l=e.get(np),d=e.get(G),c=e.get(ee),h=t.getModel(),g=t.getPosition(),u=ml.is(i)?i:new ml(h,g),f=new Tr(t,5),p=il(this._getLocationModel(d,u.model,u.position,f.token),f.token).then(async _=>{if(!_||f.token.isCancellationRequested)return;mi(_.ariaMessage);let v;if(_.referenceAt(h.uri,g)){const y=this._getAlternativeCommand(t);y!==void 0&&!Li._activeAlternativeCommands.has(y)&&Li._allSymbolNavigationCommands.has(y)&&(v=Li._allSymbolNavigationCommands.get(y))}const S=_.references.length;if(S===0){if(!this.configuration.muteMessage){const y=h.getWordAtPosition(g);qt.get(t)?.showMessage(this._getNoResultFoundMessage(y),g)}}else if(S===1&&v)Li._activeAlternativeCommands.add(this.desc.id),c.invokeFunction(y=>v.runEditorCommand(y,t,i,n).finally(()=>{Li._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(r,l,t,_,n)},_=>{s.error(_)}).finally(()=>{f.dispose()});return a.showWhile(p,250),p}async _onResult(e,t,i,n,s){const r=this._getGoToPreference(i);if(!(i instanceof Dn)&&(this.configuration.openInPeek||r==="peek"&&n.references.length>1))this._openInPeek(i,n,s);else{const a=n.firstReference(),l=n.references.length>1&&r==="gotoAndPeek",d=await this._openReference(i,e,a,this.configuration.openToSide,!l);l&&d?this._openInPeek(d,n,s):n.dispose(),r==="goto"&&t.put(a)}}async _openReference(e,t,i,n,s){let r;if(u0(i)&&(r=i.targetSelectionRange),r||(r=i.range),!r)return;const a=await t.openCodeEditor({resource:i.uri,options:{selection:I.collapseToStart(r),selectionRevealType:3,selectionSource:"code.jump"}},e,n);if(a){if(s){const l=a.getModel(),d=a.createDecorationsCollection([{range:r,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{a.getModel()===l&&d.clear()},350)}return a}}_openInPeek(e,t,i){const n=jr.get(e);n&&e.hasModel()?n.toggleWidget(i??e.getSelection(),dt(s=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}};Li._allSymbolNavigationCommands=new Map,Li._activeAlternativeCommands=new Set;let ss=Li;class Jc extends ss{async _getLocationModel(e,t,i,n){return new Kt(await Xc(e.definitionProvider,t,i,!1,n),m(1082,"Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?m(1083,"No definition found for '{0}'",e.word):m(1084,"No definition found")}_getAlternativeCommand(e){return e.getOption(67).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(67).multipleDefinitions}}var js;he((js=class extends Jc{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:js.id,title:{...L(1108,"Go to Definition"),mnemonicTitle:m(1085,"Go to &&Definition")},precondition:C.hasDefinitionProvider,keybinding:[{when:C.editorTextFocus,primary:70,weight:100},{when:T.and(C.editorTextFocus,vL),primary:2118,weight:100}],menu:[{id:q.EditorContext,group:"navigation",order:1.1},{id:q.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),Ee.registerCommandAlias("editor.action.goToDeclaration",js.id)}},js.id="editor.action.revealDefinition",js));var qs;he((qs=class extends Jc{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:qs.id,title:L(1109,"Open Definition to the Side"),precondition:T.and(C.hasDefinitionProvider,C.isInEmbeddedEditor.toNegated()),keybinding:[{when:C.editorTextFocus,primary:Ge(2089,70),weight:100},{when:T.and(C.editorTextFocus,vL),primary:Ge(2089,2118),weight:100}]}),Ee.registerCommandAlias("editor.action.openDeclarationToTheSide",qs.id)}},qs.id="editor.action.revealDefinitionAside",qs));var Ks;he((Ks=class extends Jc{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Ks.id,title:L(1110,"Peek Definition"),precondition:T.and(C.hasDefinitionProvider,Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated()),keybinding:{when:C.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:q.EditorContextPeek,group:"peek",order:2}}),Ee.registerCommandAlias("editor.action.previewDeclaration",Ks.id)}},Ks.id="editor.action.peekDefinition",Ks));class xD extends ss{async _getLocationModel(e,t,i,n){return new Kt(await oC(e.declarationProvider,t,i,!1,n),m(1086,"Declarations"))}_getNoResultFoundMessage(e){return e&&e.word?m(1087,"No declaration found for '{0}'",e.word):m(1088,"No declaration found")}_getAlternativeCommand(e){return e.getOption(67).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(67).multipleDeclarations}}var Qo;he((Qo=class extends xD{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Qo.id,title:{...L(1111,"Go to Declaration"),mnemonicTitle:m(1089,"Go to &&Declaration")},precondition:T.and(C.hasDeclarationProvider,C.isInEmbeddedEditor.toNegated()),menu:[{id:q.EditorContext,group:"navigation",order:1.3},{id:q.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?m(1090,"No declaration found for '{0}'",e.word):m(1091,"No declaration found")}},Qo.id="editor.action.revealDeclaration",Qo));he(class extends xD{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:L(1112,"Peek Declaration"),precondition:T.and(C.hasDeclarationProvider,Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated()),menu:{id:q.EditorContextPeek,group:"peek",order:3}})}});class LD extends ss{async _getLocationModel(e,t,i,n){return new Kt(await aC(e.typeDefinitionProvider,t,i,!1,n),m(1092,"Type Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?m(1093,"No type definition found for '{0}'",e.word):m(1094,"No type definition found")}_getAlternativeCommand(e){return e.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(67).multipleTypeDefinitions}}var er;he((er=class extends LD{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:er.ID,title:{...L(1113,"Go to Type Definition"),mnemonicTitle:m(1095,"Go to &&Type Definition")},precondition:C.hasTypeDefinitionProvider,keybinding:{when:C.editorTextFocus,primary:0,weight:100},menu:[{id:q.EditorContext,group:"navigation",order:1.4},{id:q.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},er.ID="editor.action.goToTypeDefinition",er));var tr;he((tr=class extends LD{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:tr.ID,title:L(1114,"Peek Type Definition"),precondition:T.and(C.hasTypeDefinitionProvider,Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated()),menu:{id:q.EditorContextPeek,group:"peek",order:4}})}},tr.ID="editor.action.peekTypeDefinition",tr));class DD extends ss{async _getLocationModel(e,t,i,n){return new Kt(await rC(e.implementationProvider,t,i,!1,n),m(1096,"Implementations"))}_getNoResultFoundMessage(e){return e&&e.word?m(1097,"No implementation found for '{0}'",e.word):m(1098,"No implementation found")}_getAlternativeCommand(e){return e.getOption(67).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(67).multipleImplementations}}var ir;he((ir=class extends DD{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:ir.ID,title:{...L(1115,"Go to Implementations"),mnemonicTitle:m(1099,"Go to &&Implementations")},precondition:C.hasImplementationProvider,keybinding:{when:C.editorTextFocus,primary:2118,weight:100},menu:[{id:q.EditorContext,group:"navigation",order:1.45},{id:q.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},ir.ID="editor.action.goToImplementation",ir));var nr;he((nr=class extends DD{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:nr.ID,title:L(1116,"Peek Implementations"),precondition:T.and(C.hasImplementationProvider,Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated()),keybinding:{when:C.editorTextFocus,primary:3142,weight:100},menu:{id:q.EditorContextPeek,group:"peek",order:5}})}},nr.ID="editor.action.peekImplementation",nr));class ED extends ss{_getNoResultFoundMessage(e){return e?m(1100,"No references found for '{0}'",e.word):m(1101,"No references found")}_getAlternativeCommand(e){return e.getOption(67).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(67).multipleReferences}}he(class extends ED{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...L(1117,"Go to References"),mnemonicTitle:m(1102,"Go to &&References")},precondition:T.and(C.hasReferenceProvider,Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated()),keybinding:{when:C.editorTextFocus,primary:1094,weight:100},menu:[{id:q.EditorContext,group:"navigation",order:1.45},{id:q.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(e,t,i,n){return new Kt(await Yc(e.referenceProvider,t,i,!0,!1,n),m(1103,"References"))}});he(class extends ED{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:L(1118,"Peek References"),precondition:T.and(C.hasReferenceProvider,Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated()),menu:{id:q.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,i,n){return new Kt(await Yc(e.referenceProvider,t,i,!1,!1,n),m(1104,"References"))}});class DM extends ss{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",title:L(1119,"Go to Any Symbol"),precondition:T.and(Bt.notInPeekEditor,C.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}async _getLocationModel(e,t,i,n){return new Kt(this._references,m(1105,"Locations"))}_getNoResultFoundMessage(e){return e&&m(1106,"No results for '{0}'",e.word)||""}_getGoToPreference(e){return this._gotoMultipleBehaviour??e.getOption(67).multipleReferences}_getAlternativeCommand(){}}Ee.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:Le},{name:"position",description:"The position at which to start",constraint:$.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(o,e,t,i,n,s,r)=>{Ce(Le.isUri(e)),Ce($.isIPosition(t)),Ce(Array.isArray(i)),Ce(typeof n>"u"||typeof n=="string"),Ce(typeof r>"u"||typeof r=="boolean");const a=o.get(Ue),l=await a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(bL(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(d=>{const c=new class extends DM{_getNoResultFoundMessage(h){return s||super._getNoResultFoundMessage(h)}}({muteMessage:!s,openInPeek:!!r,openToSide:!1},i,n);d.get(ee).invokeFunction(c.run.bind(c),l)})}});Ee.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:Le},{name:"position",description:"The position at which to start",constraint:$.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(o,e,t,i,n)=>{o.get(it).executeCommand("editor.action.goToLocations",e,t,i,n,void 0,!0)}});Ee.registerCommand({id:"editor.action.findReferences",handler:(o,e,t)=>{Ce(Le.isUri(e)),Ce($.isIPosition(t));const i=o.get(G),n=o.get(Ue);return n.openCodeEditor({resource:e},n.getFocusedCodeEditor()).then(s=>{if(!bL(s)||!s.hasModel())return;const r=jr.get(s);if(!r)return;const a=dt(d=>Yc(i.referenceProvider,s.getModel(),$.lift(t),!1,!1,d).then(c=>new Kt(c,m(1107,"References")))),l=new I(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(r.toggleWidget(l,a,!1))})}});Ee.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function EM(o,e,t,i){const n=o.get(ci),s=o.get(Hc),r=o.get(it),a=o.get(ee),l=o.get(Lt);if(await i.item.resolve(de.None),!i.part.location)return;const d=i.part.location,c=[],h=new Set(Mi.getMenuItems(q.EditorContext).map(u=>g0(u)?u.command.id:nS()));for(const u of ss.all())h.has(u.desc.id)&&c.push(new rl(u.desc.id,Or.label(u.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const f=await n.createModelReference(d.uri);try{const p=new ml(f.object.textEditorModel,I.getStartPosition(d.range)),_=i.item.anchor.range;await a.invokeFunction(u.runEditorCommand.bind(u),e,p,_)}finally{f.dispose()}}));if(i.part.command){const{command:u}=i.part;c.push(new Kd),c.push(new rl(u.id,u.title,void 0,!0,async()=>{try{await r.executeCommand(u.id,...u.arguments??[])}catch(f){l.notify({severity:kf.Error,source:i.item.provider.displayName,message:f})}}))}const g=e.getOption(144);s.showContextMenu({domForShadowRoot:g?e.getDomNode()??void 0:void 0,getAnchor:()=>{const u=Tt(t);return{x:u.left,y:u.top+u.height+8}},getActions:()=>c,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function RD(o,e,t,i){const s=await o.get(ci).createModelReference(i.uri);await t.invokeWithinContext(async r=>{const a=e.hasSideBySideModifier,l=r.get(pe),d=Bt.inPeekEditor.getValue(l),c=!a&&t.getOption(101)&&!d;return new Jc({openToSide:a,openInPeek:c,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(r,new ml(s.object.textEditorModel,I.getStartPosition(i.range)),I.lift(i.range))}),s.dispose()}var RM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},aa=function(o,e){return function(t,i){e(t,i,o)}},Ca;class Cu{constructor(){this._entries=new Wc(50)}get(e){const t=Cu._key(e);return this._entries.get(t)}set(e,t){const i=Cu._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const ND=Rn("IInlayHintsCache");os(ND,Cu,1);class D_{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return typeof e=="string"?{label:e}:e[this.index]}}class NM{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}class kM{constructor(){this._store=new Ke,this._tokenSource=new Je}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new Je,this._store.value=new W,{store:this._store.value,token:this._tokenSource.token}}}var Kn;let sc=(Kn=class{static get(e){return e.getContribution(Ca.ID)??void 0}constructor(e,t,i,n,s,r,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=n,this._commandService=s,this._notificationService=r,this._instaService=a,this._disposables=new W,this._sessionDisposables=new W,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new Jx(this._editor)),this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(l=>{l.hasChanged(159)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(159);if(e.enabled==="off")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if(e.enabled==="on")this._activeRenderMode=0;else{let d,c;e.enabled==="onUnlessPressed"?(d=0,c=1):(d=1,c=0),this._activeRenderMode=d,this._sessionDisposables.add(f0.getInstance().event(h=>{if(!this._editor.hasModel())return;const g=h.altKey&&h.ctrlKey&&!(h.shiftKey||h.metaKey)?c:d;if(g!==this._activeRenderMode){this._activeRenderMode=g;const u=this._editor.getModel(),f=this._copyInlayHintsWithCurrentAnchor(u);this._updateHintsDecorators([u.getFullModelRange()],f),a.schedule(0)}}))}const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(ke(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let n;const s=new Set;this._sessionDisposables.add(t.onWillDispose(()=>n?.cancel()));const r=this._sessionDisposables.add(new kM),a=new et(async()=>{const d=Date.now(),{store:c,token:h}=r.reset();try{const g=await mu.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),h);if(a.delay=this._debounceInfo.update(t,Date.now()-d),h.isCancellationRequested){g.dispose();return}for(const u of g.provider)typeof u.onDidChangeInlayHints=="function"&&!s.has(u)&&(s.add(u),c.add(u.onDidChangeInlayHints(()=>{a.isScheduled()||a.schedule()})));c.add(g),c.add(ke(()=>s.clear())),this._updateHintsDecorators(g.ranges,g.items),this._cacheHintsForFastRestore(t)}catch(g){we(g)}},this._debounceInfo.get(t));this._sessionDisposables.add(a),a.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(d=>{(d.scrollTopChanged||!a.isScheduled())&&a.schedule()}));const l=this._sessionDisposables.add(new Ke);this._sessionDisposables.add(this._editor.onDidChangeModelContent(d=>{const c=Math.max(a.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+c},l.value=no(()=>a.schedule(0),c),a.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration(d=>{d.hasChanged(159)&&a.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>a.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new W,t=e.add(new ep(this._editor)),i=new W;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(n=>{const[s]=n,r=this._getInlayHintLabelPart(s),a=this._editor.getModel();if(!r||!a){i.clear();return}const l=new Je;i.add(ke(()=>l.dispose(!0))),r.item.resolve(l.token),this._activeInlayHintPart=r.part.command||r.part.location?new NM(r,s.hasTriggerModifier):void 0;const d=a.validatePosition(r.item.hint.position).lineNumber,c=new I(d,1,d,a.getLineMaxColumn(d)),h=this._getInlineHintsForRange(c);this._updateHintsDecorators([c],h),i.add(ke(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([c],h)}))})),e.add(t.onCancel(()=>i.clear())),e.add(t.onExecute(async n=>{const s=this._getInlayHintLabelPart(n);if(s){const r=s.part;r.location?this._instaService.invokeFunction(RD,n,this._editor,r.location):SL.is(r.command)&&await this._invokeCommand(r.command,s.item)}})),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(async t=>{if(t.event.detail!==2)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),await i.item.resolve(de.None),ri(i.item.hint.textEdits))){const n=i.item.hint.textEdits.map(s=>$e.replace(I.lift(s.range),s.text));this._editor.executeEdits("inlayHint.default",n),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!Es(e.event.target))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(EM,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){if(e.target.type!==6)return;const t=e.target.detail.injectedText?.options;if(t instanceof CS&&t?.attachedData instanceof D_)return t.attachedData}async _invokeCommand(e,t){try{await this._commandService.executeCommand(e.id,...e.arguments??[])}catch(i){this._notificationService.notify({severity:kf.Error,source:t.provider.displayName,message:i})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,n]of this._decorationsMetadata){if(t.has(n.item))continue;const s=e.getDecorationRange(i);if(s){const r=new mD(s,n.item.anchor.direction),a=n.item.with({anchor:r});t.set(n.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),n=[];for(const s of i.sort(I.compareRangesUsingStarts)){const r=t.validateRange(new I(s.startLineNumber-30,s.startColumn,s.endLineNumber+30,s.endColumn));n.length===0||!I.areIntersectingOrTouching(n[n.length-1],r)?n.push(r):n[n.length-1]=I.plusRange(n[n.length-1],r)}return n}_updateHintsDecorators(e,t){const i=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&e.some(_=>_.containsPosition(this._cursorInfo.position))){const{position:_}=this._cursorInfo;this._cursorInfo=void 0;const v=new Map;for(const b of this._editor.getLineDecorations(_.lineNumber)??[]){const w=this._decorationsMetadata.get(b.id);if(b.range.startColumn>_.column)continue;const D=w?.decoration.options[w.item.anchor.direction];if(D&&D.attachedData!==Ca._whitespaceData){const N=v.get(w.item)??0;v.set(w.item,N+D.content.length)}}const S=t.filter(b=>b.anchor.range.startLineNumber===_.lineNumber&&b.anchor.range.endColumn<=_.column),y=Array.from(v.values());let x;for(;;){const b=S.shift(),w=y.shift();if(!w&&!b)break;if(b)i.set(b,w??0),x=b;else if(x&&w){let D=i.get(x);D+=w,D+=y.reduce((N,E)=>N+E,0),y.length=0;break}}}const n=[],s=(_,v,S,y,x)=>{const b={content:S,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:v.className,cursorStops:y,attachedData:x};n.push({item:_,classNameRef:v,decoration:{range:_.anchor.range,options:{description:"InlayHint",showIfCollapsed:_.anchor.range.isEmpty(),collapseOnReplaceEdit:!_.anchor.range.isEmpty(),stickiness:0,[_.anchor.direction]:this._activeRenderMode===0?b:void 0}}})},r=(_,v)=>{const S=this._ruleFactory.createClassNameRef({width:`${a/3|0}px`,display:"inline-block"});s(_,S," ",v?Ao.Right:Ao.None,Ca._whitespaceData)},{fontSize:a,fontFamily:l,padding:d,isUniform:c}=this._getLayoutInfo(),h=this._editor.getOption(159).maximumLength,g="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(g,l);let u={line:0,totalLen:0};for(let _=0;_<t.length;_++){const v=t[_];if(u.line!==v.anchor.range.startLineNumber&&(u={line:v.anchor.range.startLineNumber,totalLen:0}),h&&u.totalLen>h)continue;v.hint.paddingLeft&&r(v,!1);const S=typeof v.hint.label=="string"?[{label:v.hint.label}]:v.hint.label,y=i.get(v);let x=0;for(let b=0;b<S.length;b++){const w=S[b],D=b===0,N=b===S.length-1,E={fontSize:`${a}px`,fontFamily:`var(${g}), ${uS.fontFamily}`,verticalAlign:c?"baseline":"middle",unicodeBidi:"isolate"};ri(v.hint.textEdits)&&(E.cursor="default"),this._fillInColors(E,v.hint),(w.command||w.location)&&this._activeInlayHintPart?.part.item===v&&this._activeInlayHintPart.part.index===b&&(E.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(E.color=Xe(p0),E.cursor="pointer"));let M=w.label;u.totalLen+=M.length;let O=!1;const H=h!==0?u.totalLen-h:0;if(H>0&&(M=M.slice(0,-H)+"…",O=!0),x+=M.length,y!==void 0){const Z=x-y;Z>=0&&(x-=Z,M=M.slice(0,-(1+Z))+"…",O=!0)}if(d&&(D&&(N||O)?(E.padding=`1px ${Math.max(1,a/4)|0}px`,E.borderRadius=`${a/4|0}px`):D?(E.padding=`1px 0 1px ${Math.max(1,a/4)|0}px`,E.borderRadius=`${a/4|0}px 0 0 ${a/4|0}px`):N||O?(E.padding=`1px ${Math.max(1,a/4)|0}px 1px 0`,E.borderRadius=`0 ${a/4|0}px ${a/4|0}px 0`):E.padding="1px 0 1px 0"),s(v,this._ruleFactory.createClassNameRef(E),TM(M),N&&!v.hint.paddingRight?Ao.Right:Ao.None,new D_(v,b)),O)break}if(y!==void 0&&x<y){const b=y-x;s(v,this._ruleFactory.createClassNameRef({})," ".repeat(b),Ao.None)}if(v.hint.paddingRight&&r(v,!0),n.length>Ca._MAX_DECORATORS)break}const f=[];for(const[_,v]of this._decorationsMetadata){const S=this._editor.getModel()?.getDecorationRange(_);S&&e.some(y=>y.containsRange(S))&&(f.push(_),v.classNameRef.dispose(),this._decorationsMetadata.delete(_))}const p=sl.capture(this._editor);this._editor.changeDecorations(_=>{const v=_.deltaDecorations(f,n.map(S=>S.decoration));for(let S=0;S<v.length;S++){const y=n[S];this._decorationsMetadata.set(v[S],y)}}),p.restore(this._editor)}_fillInColors(e,t){t.kind===nw.Parameter?(e.backgroundColor=Xe(m0),e.color=Xe(_0)):t.kind===nw.Type?(e.backgroundColor=Xe(v0),e.color=Xe(b0)):(e.backgroundColor=Xe(S0),e.color=Xe(C0))}_getLayoutInfo(){const e=this._editor.getOption(159),t=e.padding,i=this._editor.getOption(61),n=this._editor.getOption(58);let s=e.fontSize;(!s||s<5||s>i)&&(s=i);const r=e.fontFamily||n;return{fontSize:s,fontFamily:r,padding:t,isUniform:!t&&r===n&&s===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}},Ca=Kn,Kn.ID="editor.contrib.InlayHints",Kn._MAX_DECORATORS=1500,Kn._whitespaceData={},Kn);sc=Ca=RM([aa(1,G),aa(2,Hi),aa(3,ND),aa(4,it),aa(5,Lt),aa(6,ee)],sc);function TM(o){return o.replace(/[ \t]/g," ")}Ee.registerCommand("_executeInlayHintProvider",async(o,...e)=>{const[t,i]=e;Ce(Le.isUri(t)),Ce(I.isIRange(i));const{inlayHintsProvider:n}=o.get(G),s=await o.get(ci).createModelReference(t);try{const r=await mu.create(n,s.object.textEditorModel,[I.lift(i)],de.None),a=r.items.map(l=>l.hint);return setTimeout(()=>r.dispose(),0),a}finally{s.dispose()}});var PM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Eo=function(o,e){return function(t,i){e(t,i,o)}};class ly extends ld{constructor(e,t,i,n){super(10,t,e.item.anchor.range,i,n,!0),this.part=e}}let wu=class extends ic{constructor(e,t,i,n,s,r,a,l){super(e,t,s,a,i,n,l),this._resolverService=r,this.hoverOrdinal=6}suggestHoverAnchor(e){if(!sc.get(this._editor)||e.target.type!==6)return null;const i=e.target.detail.injectedText?.options;return i instanceof CS&&i.attachedData instanceof D_?new ly(i.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i,n){return e instanceof ly?new yn(async s=>{const{part:r}=e;if(await r.item.resolve(n),n.isCancellationRequested)return;let a;typeof r.item.hint.tooltip=="string"?a=new It().appendText(r.item.hint.tooltip):r.item.hint.tooltip&&(a=r.item.hint.tooltip),a&&s.emitOne(new Ti(this,e.range,[a],!1,0)),ri(r.item.hint.textEdits)&&s.emitOne(new Ti(this,e.range,[new It().appendText(m(1205,"Double-click to insert"))],!1,10001));let l;if(typeof r.part.tooltip=="string"?l=new It().appendText(r.part.tooltip):r.part.tooltip&&(l=r.part.tooltip),l&&s.emitOne(new Ti(this,e.range,[l],!1,1)),r.part.location||r.part.command){let c;const g=this._editor.getOption(86)==="altKey"?Yn?m(1206,"cmd + click"):m(1207,"ctrl + click"):Yn?m(1208,"option + click"):m(1209,"alt + click");r.part.location&&r.part.command?c=new It().appendText(m(1210,"Go to Definition ({0}), right click for more",g)):r.part.location?c=new It().appendText(m(1211,"Go to Definition ({0})",g)):r.part.command&&(c=new It(`[${m(1212,"Execute Command")}](${lM(r.part.command)} "${r.part.command.title}") (${g})`,{isTrusted:!0})),c&&s.emitOne(new Ti(this,e.range,[c],!1,1e4))}const d=this._resolveInlayHintLabelPartHover(r,n);for await(const c of d)s.emitOne(c)}):yn.EMPTY}async*_resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return;const{uri:i,range:n}=e.part.location,s=await this._resolverService.createModelReference(i);try{const r=s.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(r))return;for await(const a of tC(this._languageFeaturesService.hoverProvider,r,new $(n.startLineNumber,n.startColumn),t))Gd(a.hover.contents)||(yield new Ti(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal))}finally{s.dispose()}}};wu=PM([Eo(1,wo),Eo(2,Te),Eo(3,bi),Eo(4,Ie),Eo(5,ci),Eo(6,G),Eo(7,it)],wu);var kD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Wa=function(o,e){return function(t,i){e(t,i,o)}},E_,R_;let N_=E_=class extends A{constructor(e,t,i,n,s,r,a){super();const l=t.hoverParts;this._renderedHoverParts=this._register(new k_(e,i,l,n,s,r,a));const d=t.options,c=d.anchor,{showAtPosition:h,showAtSecondaryPosition:g}=E_.computeHoverPositions(e,c.range,l);this.shouldAppearBeforeContent=l.some(u=>u.isBeforeContent),this.showAtPosition=h,this.showAtSecondaryPosition=g,this.initialMousePosX=c.initialMousePosX,this.initialMousePosY=c.initialMousePosY,this.shouldFocus=d.shouldFocus,this.source=d.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(e){this._renderedHoverParts.focusHoverPartWithIndex(e)}async updateHoverVerbosityLevel(e,t,i){this._renderedHoverParts.updateHoverVerbosityLevel(e,t,i)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(e,t,i){let n=1;if(e.hasModel()){const c=e._getViewModel(),h=c.coordinatesConverter,g=h.convertModelRangeToViewRange(t),u=c.getLineMinColumn(g.startLineNumber),f=new $(g.startLineNumber,u);n=h.convertViewPositionToModelPosition(f).column}const s=t.startLineNumber;let r=t.startColumn,a;for(const c of i){const h=c.range,g=h.startLineNumber===s,u=h.endLineNumber===s;if(g&&u){const p=h.startColumn,_=Math.min(r,p);r=Math.max(_,n)}c.forceShowAtRange&&(a=h)}let l,d;if(a){const c=a.getStartPosition();l=c,d=c}else l=t.getStartPosition(),d=new $(s,r);return{showAtPosition:l,showAtSecondaryPosition:d}}};N_=E_=kD([Wa(4,Te),Wa(5,bi),Wa(6,li)],N_);class OM{constructor(e,t){this._statusBar=t,e.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var sr;let k_=(sr=class extends A{constructor(e,t,i,n,s,r,a){super(),this._hoverService=r,this._clipboardService=a,this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=n,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(t,i,n,s,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(e,i)),this._updateMarkdownAndColorParticipantInfo(t)}_createEditorDecorations(e,t){if(t.length===0)return A.None;let i=t[0].range;for(const s of t){const r=s.range;i=I.plusRange(i,r)}const n=e.createDecorationsCollection();return n.set([{range:i,options:R_._DECORATION_OPTIONS}]),ke(()=>{n.clear()})}_renderParts(e,t,i,n,s){const r=new gu(n,s),a={fragment:this._fragment,statusBar:r,...i},l=new W;l.add(r);for(const c of e){const h=this._renderHoverPartsForParticipant(t,c,a);l.add(h);for(const g of h.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:c,hoverPart:g.hoverPart,hoverElement:g.hoverElement})}const d=this._renderStatusBar(this._fragment,r);return d&&(l.add(d),this._renderedParts.push({type:"statusBar",hoverElement:d.hoverElement,actions:d.actions})),l}_renderHoverPartsForParticipant(e,t,i){const n=e.filter(r=>r.owner===t);return n.length>0?t.renderHoverParts(i,n):new zr([])}_renderStatusBar(e,t){if(t.hasContent)return new OM(e,t)}_registerListenersOnRenderedParts(){const e=new W;return this._renderedParts.forEach((t,i)=>{const n=t.hoverElement;n.tabIndex=0,e.add(re(n,Pe.FOCUS_IN,s=>{s.stopPropagation(),this._focusedHoverPartIndex=i})),e.add(re(n,Pe.FOCUS_OUT,s=>{s.stopPropagation(),this._focusedHoverPartIndex=-1})),t.type==="hoverPart"&&!t.participant.hideCopyButton&&e.add(new f_(n,()=>t.participant.getAccessibleContent(t.hoverPart),this._clipboardService,this._hoverService))}),e}_updateMarkdownAndColorParticipantInfo(e){const t=e.find(i=>i instanceof ic&&!(i instanceof wu));t&&(this._markdownHoverParticipant=t),this._colorHoverParticipant=e.find(i=>i instanceof pu)}focusHoverPartWithIndex(e){e<0||e>=this._renderedParts.length||this._renderedParts[e].hoverElement.focus()}async updateHoverVerbosityLevel(e,t,i){if(!this._markdownHoverParticipant)return;let n;t>=0?n={start:t,endExclusive:t+1}:n=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let s=n.start;s<n.endExclusive;s++){const r=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,s);if(r===void 0)continue;const a=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(e,r);a&&(this._renderedParts[s]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:a.hoverPart,hoverElement:a.hoverElement})}i&&(t>=0?this.focusHoverPartWithIndex(t):this._context.focus()),this._context.onContentsChanged()}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(e,t){const i=this._renderedParts[t];if(!i||i.type!=="hoverPart"||!(i.participant===e))return;const s=this._renderedParts.findIndex(r=>r.type==="hoverPart"&&r.participant===e);if(s===-1)throw new at;return t-s}_findRangeOfMarkdownHoverParts(e){const t=this._renderedParts.slice(),i=t.findIndex(r=>r.type==="hoverPart"&&r.participant===e),n=t.reverse().findIndex(r=>r.type==="hoverPart"&&r.participant===e),s=n>=0?t.length-n:n;return{start:i,endExclusive:s+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}},R_=sr,sr._DECORATION_OPTIONS=te.register({description:"content-hover-highlight",className:"hoverHighlight"}),sr);k_=R_=kD([Wa(4,Te),Wa(5,bi),Wa(6,li)],k_);var MM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ph=function(o,e){return function(t,i){e(t,i,o)}};let T_=class extends A{constructor(e,t,i,n,s){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._hoverService=n,this._clipboardService=s,this._currentResult=null,this._renderedContentHover=this._register(new Ke),this._onContentsChanged=this._register(new Y),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(l_,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new tD(this._editor,new uu(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){const e=[];for(const t of ea.getAll()){const i=this._instantiationService.createInstance(t,this._editor);e.push(i)}return e.sort((t,i)=>t.hoverOrdinal-i.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(t=>t.handleResize?.())})),this._register(this._contentHoverWidget.onDidScroll(t=>{this._participants.forEach(i=>i.handleScroll?.(t))})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach(t=>t.handleContentsChanged?.())})),e}_registerListeners(){this._register(this._hoverOperation.onResult(t=>{const i=t.hasLoadingMessage?this._addLoadingMessage(t):t.value;this._withResult(new iD(i,t.isComplete,t.options))}));const e=this._contentHoverWidget.getDomNode();this._register(co(e,"keydown",t=>{t.equals(9)&&this.hide()})),this._register(co(e,"mouseleave",t=>{this._onMouseLeave(t)})),this._register(Tf.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(e,t,i,n,s){if(!(this._contentHoverWidget.position&&this._currentResult))return e?(this._startHoverOperationIfNecessary(e,t,i,n,!1),!0):!1;const a=this._editor.getOption(69).sticky,l=s&&this._contentHoverWidget.isMouseGettingCloser(s.event.posx,s.event.posy);return a&&l?(e&&this._startHoverOperationIfNecessary(e,t,i,n,!0),!0):e?this._currentResult&&this._currentResult.options.anchor.equals(e)?!0:this._currentResult&&e.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)?(this._currentResult&&this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,n,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,n,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,n,s){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(e))return;this._hoverOperation.cancel();const a={anchor:e,source:i,shouldFocus:n,insistOnKeepingHoverVisible:s};this._hoverOperation.start(t,a)}_setCurrentResult(e){let t=e;if(this._currentResult===t)return;t&&t.hoverParts.length===0&&(t=null),this._currentResult=t,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(e){for(const t of this._participants){if(!t.createLoadingMessage)continue;const i=t.createLoadingMessage(e.options.anchor);if(i)return e.value.slice(0).concat([i])}return e.value}_withResult(e){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(e),!e.isComplete)return;const n=e.hoverParts.length===0,s=e.options.insistOnKeepingHoverVisible;n&&s||this._setCurrentResult(e)}_showHover(e){const t=this._getHoverContext();this._renderedContentHover.value=new N_(this._editor,e,this._participants,t,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover.value):this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach(e=>e.handleHide?.())}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:s=>{this._contentHoverWidget.setMinimumDimensions(s)},focus:()=>this.focus()}}showsOrWillShow(e){if(this._contentHoverWidget.isResizing)return!0;const i=this._findHoverAnchorCandidates(e);if(!(i.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,e);const s=i[0];return this._startShowingOrUpdateHover(s,0,0,!1,e)}_findHoverAnchorCandidates(e){const t=[];for(const n of this._participants){if(!n.suggestHoverAnchor)continue;const s=n.suggestHoverAnchor(e);s&&t.push(s)}const i=e.target;switch(i.type){case 6:{t.push(new Mp(0,i.range,e.event.posx,e.event.posy));break}case 7:{const n=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText=="number"&&i.detail.horizontalDistanceToText<n))break;t.push(new Mp(0,i.range,e.event.posx,e.event.posy));break}}return t.sort((n,s)=>s.priority-n.priority),t}_onMouseLeave(e){const t=this._editor.getDomNode();(!t||!Jf(t,e.x,e.y))&&this.hide()}startShowingAtRange(e,t,i,n){this._startShowingOrUpdateHover(new Mp(0,e,void 0,void 0),t,i,n,null)}async updateHoverVerbosityLevel(e,t,i){this._renderedContentHover.value?.updateHoverVerbosityLevel(e,t,i)}focusedHoverPartIndex(){return this._renderedContentHover.value?.focusedHoverPartIndex??-1}containsNode(e){return e?this._contentHoverWidget.getDomNode().contains(e):!1}focus(){if(this._renderedContentHover.value?.hoverPartsCount===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(e){this._renderedContentHover.value?.focusHoverPartWithIndex(e)}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}};T_=MM([ph(1,ee),ph(2,Te),ph(3,bi),ph(4,li)],T_);function TD(o){const e=o.target;return!!e&&e.type===6&&e.detail.injectedText?.options.attachedData===G1}var AM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Up=function(o,e){return function(t,i){e(t,i,o)}},P_,or;let wt=(or=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._instantiationService=i,this._keybindingService=n,this._onHoverContentsChanged=this._register(new Y),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new W,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new et(()=>{this._mouseMoveEvent&&this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(t.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(t.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(P_.ID)}_hookListeners(){const e=this._editor.getOption(69);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.hidingDelay},e.enabled==="off"&&this._cancelSchedulerAndHide(),this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){this._ignoreMouseEvents||(e.scrollTopChanged||e.scrollLeftChanged)&&this.hideContentHover()}_onEditorMouseDown(e){this._ignoreMouseEvents||(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(e))||this.hideContentHover()}_shouldKeepHoverWidgetVisible(e){return this._isMouseOnContentHoverWidget(e)||this._isContentWidgetResizing()||TD(e)}_isMouseOnContentHoverWidget(e){return this._contentWidget?Jf(this._contentWidget.getDomNode(),e.event.posx,e.event.posy):!1}_onEditorMouseUp(){this._ignoreMouseEvents||(this._isMouseDown=!1)}_onEditorMouseLeave(e){this._ignoreMouseEvents||this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(e))||this.hideContentHover()}_shouldKeepCurrentHover(e){const t=this._contentWidget;if(!t)return!1;const i=this._hoverSettings.sticky,n=(c,h)=>{const g=this._isMouseOnContentHoverWidget(c);return h&&g},s=c=>{const h=t.isColorPickerVisible,g=this._isMouseOnContentHoverWidget(c),u=h&&g,f=h&&this._isMouseDown;return u||f},r=(c,h)=>{const g=c.event.browserEvent.view;return g?h&&t.containsNode(g.document.activeElement)&&!g.getSelection()?.isCollapsed:!1},a=t.isFocused,l=t.isResizing,d=this._hoverSettings.sticky&&t.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||a||l||d||n(e,i)||s(e)||r(e,i)}_onEditorMouseMove(e){if(this._ignoreMouseEvents)return;if(this._mouseMoveEvent=e,this._shouldKeepCurrentHover(e)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(e)}_shouldRescheduleHoverComputation(){const e=this._hoverSettings.hidingDelay;return(this._contentWidget?.isVisible??!1)&&this._hoverSettings.sticky&&e>0}_reactToEditorMouseMove(e){eD(this._hoverSettings.enabled,this._editor.getOption(86),e)&&this._getOrCreateContentWidget().showsOrWillShow(e)||this.hideContentHover()}_onKeyDown(e){if(this._ignoreMouseEvents||!this._contentWidget)return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&XS(this._editor.getOption(86),e)&&this._mouseMoveEvent){this._contentWidget.isVisible||this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}const t=this._isPotentialKeyboardShortcut(e),i=CL(e.keyCode);t||i||this._contentWidget.isFocused&&e.keyCode===2||this.hideContentHover()}_isPotentialKeyboardShortcut(e){if(!this._editor.hasModel()||!this._contentWidget)return!1;const t=this._keybindingService.softDispatch(e,this._editor.getDomNode()),i=t.kind===1,n=t.kind===2&&(t.commandId===Z1||t.commandId===Zf||t.commandId===Xf)&&this._contentWidget.isVisible;return i||n}hideContentHover(){gl.dropDownVisible||this._contentWidget?.hide()}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(T_,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(e,t,i,n){this._getOrCreateContentWidget().startShowingAtRange(e,t,i,n)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(e,t,i){this._getOrCreateContentWidget().updateHoverVerbosityLevel(e,t,i)}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()}},P_=or,or.ID="editor.contrib.contentHover",or);wt=P_=AM([Up(1,Hc),Up(2,ee),Up(3,Te)],wt);const BC=class BC extends A{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(168);if(t!=="click"&&t!=="clickAndHover"||!TD(e))return;const i=this._editor.getContribution(wt.ID);if(!i||i.isColorPickerVisible)return;const n=e.target.range;if(!n)return;const s=new I(n.startLineNumber,n.startColumn+1,n.endLineNumber,n.endColumn+1);i.showContentHover(s,1,1,!1)}};BC.ID="editor.contrib.colorContribution";let yu=BC;var FM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},WM=function(o,e){return function(t,i){e(t,i,o)}};class lC{constructor(e,t,i,n){this.owner=e,this.range=t,this.model=i,this.provider=n}static fromBaseColor(e,t){return new lC(e,t.range,t.model,t.provider)}}class HM extends A{constructor(e,t,i,n){super();const s=e.getModel(),r=i.model;this.color=i.model.color,this.colorPicker=this._register(new gD(t.fragment,r,e.getOption(163),n,"standalone")),this._register(r.onColorFlushed(a=>{this.color=a})),this._register(r.onDidChangeColor(a=>{nc(s,r,a,i.range,i)})),this._register(e.onDidChangeModelContent(a=>{t.hide(),e.focus()})),nc(s,r,this.color,i.range,i)}}let O_=class{constructor(e,t){this._editor=e,this._themeService=t}async createColorHover(e,t,i){if(!this._editor.hasModel()||!hl.get(this._editor))return null;const s=await j1(i,this._editor.getModel(),de.None);let r=null,a=null;for(const g of s){const u=g.colorInfo;I.containsRange(u.range,e.range)&&(r=u,a=g.provider)}const l=r??e,d=a??t,c=!!r;return{colorHover:lC.fromBaseColor(this,await fD(this._editor.getModel(),l,d)),foundInEditor:c}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new I(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await nc(this._editor.getModel(),t,this._color,i,e),i=pD(this._editor,i,t))}renderHoverParts(e,t){if(!(t.length===0||!this._editor.hasModel()))return this._setMinimumDimensions(e),this._renderedParts=new HM(this._editor,e,t[0],this._themeService),this._renderedParts}_setMinimumDimensions(e){const t=this._editor.getOption(75)+8;e.setMinimumDimensions(new xe(302,t))}get _color(){return this._renderedParts?.color}};O_=FM([WM(1,yt)],O_);var VM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Zl=function(o,e){return function(t,i){e(t,i,o)}},M_;class BM{constructor(e,t){this.value=e,this.foundInEditor=t}}const dy=8,UM=22;var rr;let A_=(rr=class extends A{constructor(e,t,i,n,s,r,a,l){super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._keybindingService=s,this._languageFeaturesService=r,this._editorWorkerService=a,this._hoverService=l,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new Y),this.onResult=this._onResult.event,this._renderedHoverParts=this._register(new Ke),this._renderedStatusBar=this._register(new Ke),this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=n.createInstance(O_,this._editor),this._position=this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;const d=this._editor.getSelection(),c=d?{startLineNumber:d.startLineNumber,startColumn:d.startColumn,endLineNumber:d.endLineNumber,endColumn:d.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},h=this._register(As(this._body));this._register(h.onDidBlur(g=>{this.hide()})),this._register(h.onDidFocus(g=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(g=>{const u=g.target.element?.classList;u&&u.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(g=>{this._render(g.value,g.foundInEditor)})),this._start(c),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return M_.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(69).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new BM(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=await this._standaloneColorPickerParticipant.createColorHover(t,new tc(this._editorWorkerService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null}_render(e,t){const i=document.createDocumentFragment();this._renderedStatusBar.value=this._register(new gu(this._keybindingService,this._hoverService));const n={fragment:i,statusBar:this._renderedStatusBar.value,onContentsChanged:()=>{},setMinimumDimensions:()=>{},hide:()=>this.hide(),focus:()=>this.focus()};if(this._colorHover=e,this._renderedHoverParts.value=this._standaloneColorPickerParticipant.renderHoverParts(n,[e]),!this._renderedHoverParts.value){this._renderedStatusBar.clear(),this._renderedHoverParts.clear();return}const s=this._renderedHoverParts.value.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(i),s.layout();const r=s.body,a=r.saturationBox.domNode.clientWidth,l=r.domNode.clientWidth-a-UM-dy,d=s.body.enterButton;d?.onClicked(()=>{this.updateEditor(),this.hide()});const c=s.header,h=c.pickedColorNode;h.style.width=a+dy+"px";const g=c.originalColorNode;g.style.width=l+"px",s.header.closeButton?.onClicked(()=>{this.hide()}),t&&(d&&(d.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}},M_=rr,rr.ID="editor.contrib.standaloneColorPickerWidget",rr);A_=M_=VM([Zl(3,ee),Zl(4,Te),Zl(5,G),Zl(6,as),Zl(7,bi)],A_);var $M=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},cy=function(o,e){return function(t,i){e(t,i,o)}},F_,ar;let qr=(ar=class extends A{constructor(e,t,i){super(),this._editor=e,this._instantiationService=i,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=C.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=C.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||this._standaloneColorPickerWidget?.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(A_,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerWidget?.hide(),this._editor.focus()}insertColor(){this._standaloneColorPickerWidget?.updateEditor(),this.hide()}static get(e){return e.getContribution(F_.ID)}},F_=ar,ar.ID="editor.contrib.standaloneColorPickerController",ar);qr=F_=$M([cy(1,pe),cy(2,ee)],qr);class zM extends vi{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...L(925,"Show or Focus Standalone Color Picker"),mnemonicTitle:m(924,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:q.CommandPalette}],metadata:{description:L(926,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(e,t){qr.get(t)?.showOrFocus()}}class jM extends F{constructor(){super({id:"editor.action.hideColorPicker",label:L(927,"Hide the Color Picker"),precondition:C.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:L(928,"Hide the standalone color picker.")}})}run(e,t){qr.get(t)?.hide()}}class qM extends F{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:L(929,"Insert Color with Standalone Color Picker"),precondition:C.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:L(930,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(e,t){qr.get(t)?.insertColor()}}P(jM);P(qM);he(zM);ae(yu.ID,yu,2);ae(qr.ID,qr,1);ae(hl.ID,hl,1);Rl(i_);ea.register(pu);Ee.registerCommand("_executeDocumentColorProvider",function(o,...e){const[t]=e;if(!(t instanceof Le))throw Gn();const{model:i,colorProviderRegistry:n,defaultColorDecoratorsEnablement:s}=K1(o,t);return GS(new AP,n,i,de.None,s)});Ee.registerCommand("_executeColorPresentationProvider",function(o,...e){const[t,i]=e;if(!i)return;const{uri:n,range:s}=i;if(!(n instanceof Le)||!Array.isArray(t)||t.length!==4||!I.isIRange(s))throw Gn();const{model:r,colorProviderRegistry:a,defaultColorDecoratorsEnablement:l}=K1(o,n),[d,c,h,g]=t;return GS(new FP({range:s,color:{red:d,green:c,blue:h,alpha:g}}),a,r,de.None,l)});class Ts{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const n=t.length,s=e.length;if(i+n>s)return!1;for(let r=0;r<n;r++){const a=e.charCodeAt(i+r),l=t.charCodeAt(r);if(a!==l&&!(a>=65&&a<=90&&a+32===l)&&!(l>=65&&l<=90&&l+32===a))return!1}return!0}_createOperationsForBlockComment(e,t,i,n,s,r){const a=e.startLineNumber,l=e.startColumn,d=e.endLineNumber,c=e.endColumn,h=s.getLineContent(a),g=s.getLineContent(d);let u=h.lastIndexOf(t,l-1+t.length),f=g.indexOf(i,c-1-i.length);if(u!==-1&&f!==-1)if(a===d)h.substring(u+t.length,f).indexOf(i)>=0&&(u=-1,f=-1);else{const _=h.substring(u+t.length),v=g.substring(0,f);(_.indexOf(i)>=0||v.indexOf(i)>=0)&&(u=-1,f=-1)}let p;u!==-1&&f!==-1?(n&&u+t.length<h.length&&h.charCodeAt(u+t.length)===32&&(t=t+" "),n&&f>0&&g.charCodeAt(f-1)===32&&(i=" "+i,f-=1),p=Ts._createRemoveBlockCommentOperations(new I(a,u+t.length+1,d,f+1),t,i)):(p=Ts._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=p.length===1?i:null);for(const _ of p)r.addTrackedEditOperation(_.range,_.text)}static _createRemoveBlockCommentOperations(e,t,i){const n=[];return I.isEmpty(e)?n.push($e.delete(new I(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(n.push($e.delete(new I(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),n.push($e.delete(new I(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),n}static _createAddBlockCommentOperations(e,t,i,n){const s=[];return I.isEmpty(e)?s.push($e.replace(new I(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(s.push($e.insert(new $(e.startLineNumber,e.startColumn),t+(n?" ":""))),s.push($e.insert(new $(e.endLineNumber,e.endColumn),(n?" ":"")+i))),s}getEditOperations(e,t){const i=this._selection.startLineNumber,n=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const s=e.getLanguageIdAtPosition(i,n),r=this.languageConfigurationService.getLanguageConfiguration(s).comments;!r||!r.blockCommentStartToken||!r.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,r.blockCommentStartToken,r.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length===2){const n=i[0],s=i[1];return new J(n.range.endLineNumber,n.range.endColumn,s.range.startLineNumber,s.range.startColumn)}else{const n=i[0].range,s=this._usedEndToken?-this._usedEndToken.length-1:0;return new J(n.endLineNumber,n.endColumn+s,n.endLineNumber,n.endColumn+s)}}}class Fn{constructor(e,t,i,n,s,r,a){this.languageConfigurationService=e,this._selection=t,this._indentSize=i,this._type=n,this._insertSpace=s,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=r,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,n){e.tokenization.tokenizeIfCheap(t);const s=e.getLanguageIdAtPosition(t,1),r=n.getLanguageConfiguration(s).comments,a=r?r.lineCommentToken:null;if(!a)return null;const l=[];for(let d=0,c=i-t+1;d<c;d++)l[d]={ignore:!1,commentStr:a,commentStrOffset:0,commentStrLength:a.length};return l}static _analyzeLines(e,t,i,n,s,r,a,l,d){let c=!0;const g=l.getLanguageConfiguration(d).comments?.lineCommentNoIndent??!1;let u;e===0?u=!0:e===1?u=!1:u=!0;for(let f=0,p=n.length;f<p;f++){const _=n[f],v=s+f;if(v===s&&a){_.ignore=!0;continue}const S=i.getLineContent(v),y=Dm(S);if(y===-1){_.ignore=r,_.commentStrOffset=g?0:S.length;continue}c=!1;const x=g?0:y;if(_.ignore=!1,_.commentStrOffset=x,u&&!Ts._haystackHasNeedleAtOffset(S,_.commentStr,x)&&(e===0?u=!1:e===1||(_.ignore=!0)),u&&t){const b=y+_.commentStrLength;b<S.length&&S.charCodeAt(b)===32&&(_.commentStrLength+=1)}}if(e===0&&c){u=!1;for(let f=0,p=n.length;f<p;f++)n[f].ignore=!1}return{supported:!0,shouldRemoveComments:u,lines:n}}static _gatherPreflightData(e,t,i,n,s,r,a,l){const d=Fn._gatherPreflightCommentStrings(i,n,s,l),c=i.getLanguageIdAtPosition(n,1);return d===null?{supported:!1}:Fn._analyzeLines(e,t,i,d,n,r,a,l,c)}_executeLineComments(e,t,i,n){let s;i.shouldRemoveComments?s=Fn._createRemoveLineCommentsOperations(i.lines,n.startLineNumber):(Fn._normalizeInsertionPoint(e,i.lines,n.startLineNumber,this._indentSize),s=this._createAddLineCommentsOperations(i.lines,n.startLineNumber));const r=new $(n.positionLineNumber,n.positionColumn);for(let a=0,l=s.length;a<l;a++)t.addEditOperation(s[a].range,s[a].text),I.isEmpty(s[a].range)&&I.getStartPosition(s[a].range).equals(r)&&e.getLineContent(r.lineNumber).length+1===r.column&&(this._deltaColumn=(s[a].text||"").length);this._selectionId=t.trackSelection(n)}_attemptRemoveBlockComment(e,t,i,n){let s=t.startLineNumber,r=t.endLineNumber;const a=n.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let l=e.getLineContent(s).lastIndexOf(i,a-1),d=e.getLineContent(r).indexOf(n,t.endColumn-1-i.length);return l!==-1&&d===-1&&(d=e.getLineContent(s).indexOf(n,l+i.length),r=s),l===-1&&d!==-1&&(l=e.getLineContent(r).lastIndexOf(i,d),s=r),t.isEmpty()&&(l===-1||d===-1)&&(l=e.getLineContent(s).indexOf(i),l!==-1&&(d=e.getLineContent(s).indexOf(n,l+i.length))),l!==-1&&e.getLineContent(s).charCodeAt(l+i.length)===32&&(i+=" "),d!==-1&&e.getLineContent(r).charCodeAt(d-1)===32&&(n=" "+n,d-=1),l!==-1&&d!==-1?Ts._createRemoveBlockCommentOperations(new I(s,l+i.length+1,r,d+1),i,n):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const n=e.getLanguageIdAtPosition(i.startLineNumber,1),s=this.languageConfigurationService.getLanguageConfiguration(n).comments;if(!s||!s.blockCommentStartToken||!s.blockCommentEndToken)return;const r=s.blockCommentStartToken,a=s.blockCommentEndToken;let l=this._attemptRemoveBlockComment(e,i,r,a);if(!l){if(i.isEmpty()){const d=e.getLineContent(i.startLineNumber);let c=Dm(d);c===-1&&(c=d.length),l=Ts._createAddBlockCommentOperations(new I(i.startLineNumber,c+1,i.startLineNumber,d.length+1),r,a,this._insertSpace)}else l=Ts._createAddBlockCommentOperations(new I(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),r,a,this._insertSpace);l.length===1&&(this._deltaColumn=r.length+1)}this._selectionId=t.trackSelection(i);for(const d of l)t.addEditOperation(d.range,d.text)}getEditOperations(e,t){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine){t.addEditOperation(new I(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?"":`
9
- `),this._selectionId=t.trackSelection(i);return}i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const n=Fn._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return n.supported?this._executeLineComments(e,t,n,i):this._executeBlockComment(e,t,i)}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),new J(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let n=0,s=e.length;n<s;n++){const r=e[n];r.ignore||i.push($e.delete(new I(t+n,r.commentStrOffset+1,t+n,r.commentStrOffset+r.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],n=this._insertSpace?" ":"";for(let s=0,r=e.length;s<r;s++){const a=e[s];a.ignore||i.push($e.insert(new $(t+s,a.commentStrOffset+1),a.commentStr+n))}return i}static nextVisibleColumn(e,t,i,n){return i?e+(t-e%t):e+n}static _normalizeInsertionPoint(e,t,i,n){let s=1073741824,r,a;for(let l=0,d=t.length;l<d;l++){if(t[l].ignore)continue;const c=e.getLineContent(i+l);let h=0;for(let g=0,u=t[l].commentStrOffset;h<s&&g<u;g++)h=Fn.nextVisibleColumn(h,n,c.charCodeAt(g)===9,1);h<s&&(s=h)}s=Math.floor(s/n)*n;for(let l=0,d=t.length;l<d;l++){if(t[l].ignore)continue;const c=e.getLineContent(i+l);let h=0;for(r=0,a=t[l].commentStrOffset;h<s&&r<a;r++)h=Fn.nextVisibleColumn(h,n,c.charCodeAt(r)===9,1);h>s?t[l].commentStrOffset=r-1:t[l].commentStrOffset=r}}}class dC extends F{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(st);if(!t.hasModel())return;const n=t.getModel(),s=[],r=n.getOptions(),a=t.getOption(29),l=t.getSelections().map((c,h)=>({selection:c,index:h,ignoreFirstLine:!1}));l.sort((c,h)=>I.compareRangesUsingStarts(c.selection,h.selection));let d=l[0];for(let c=1;c<l.length;c++){const h=l[c];d.selection.endLineNumber===h.selection.startLineNumber&&(d.index<h.index?h.ignoreFirstLine=!0:(d.ignoreFirstLine=!0,d=h))}for(const c of l)s.push(new Fn(i,c.selection,r.indentSize,this._type,a.insertSpace,a.ignoreEmptyLines,c.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class KM extends dC{constructor(){super(0,{id:"editor.action.commentLine",label:L(933,"Toggle Line Comment"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:q.MenubarEditMenu,group:"5_insert",title:m(931,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class GM extends dC{constructor(){super(1,{id:"editor.action.addCommentLine",label:L(934,"Add Line Comment"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class ZM extends dC{constructor(){super(2,{id:"editor.action.removeCommentLine",label:L(935,"Remove Line Comment"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class XM extends F{constructor(){super({id:"editor.action.blockComment",label:L(936,"Toggle Block Comment"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:q.MenubarEditMenu,group:"5_insert",title:m(932,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(e,t){const i=e.get(st);if(!t.hasModel())return;const n=t.getOption(29),s=[],r=t.getSelections();for(const a of r)s.push(new Ts(a,n.insertSpace,i));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}P(KM);P(GM);P(ZM);P(XM);var YM=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ro=function(o,e){return function(t,i){e(t,i,o)}},W_,lr;let oc=(lr=class{static get(e){return e.getContribution(W_.ID)}constructor(e,t,i,n,s,r,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=n,this._keybindingService=s,this._menuService=r,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new W,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(d=>this._onContextMenu(d))),this._toDispose.add(this._editor.onMouseWheel(d=>{if(this._contextMenuIsBeingShownCount>0){const c=this._contextViewService.getContextViewElement(),h=d.srcElement;h.shadowRoot&&w0(c)===h.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(d=>{this._editor.getOption(30)&&d.keyCode===58&&(d.preventDefault(),d.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let i=!1;for(const n of this._editor.getSelections())if(n.containsPosition(e.target.position)){i=!0;break}i||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(30)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],n=this._menuService.getMenuActions(t,this._contextKeyService,{arg:e.uri});for(const s of n){const[,r]=s;let a=0;for(const l of r)if(l instanceof y0){const d=this._getMenuActions(e,l.item.submenu);d.length>0&&(i.push(new Xh(l.id,l.label,d)),a++)}else i.push(l),a++;a&&i.push(new Kd)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;let i=t;if(!i){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const s=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),r=Tt(this._editor.getDomNode()),a=r.left+s.left,l=r.top+s.top+s.height;i={x:a,y:l}}const n=this._editor.getOption(144)&&!Em;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:n?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>i,getActions:()=>e,getActionViewItem:s=>{const r=this._keybindingFor(s);if(r)return new Im(s,s,{label:!0,keybinding:r.getLabel(),isMenu:!0});const a=s;return typeof a.getActionViewItem=="function"?a.getActionViewItem():new Im(s,s,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:s=>this._keybindingFor(s),onHide:s=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||I0(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(81);let i=0;const n=d=>({id:`menu-action-${++i}`,label:d.label,tooltip:"",class:void 0,enabled:typeof d.enabled>"u"?!0:d.enabled,checked:d.checked,run:d.run}),s=(d,c)=>new Xh(`menu-action-${++i}`,d,c,void 0),r=(d,c,h,g,u)=>{if(!c)return n({label:d,enabled:c,run:()=>{}});const f=_=>()=>{this._configurationService.updateValue(h,_)},p=[];for(const _ of u)p.push(n({label:_.label,checked:g===_.value,run:f(_.value)}));return s(d,p)},a=[];a.push(n({label:m(937,"Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),a.push(new Kd),a.push(n({label:m(938,"Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),a.push(r(m(939,"Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:m(940,"Proportional"),value:"proportional"},{label:m(941,"Fill"),value:"fill"},{label:m(942,"Fit"),value:"fit"}])),a.push(r(m(943,"Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:m(944,"Mouse Over"),value:"mouseover"},{label:m(945,"Always"),value:"always"}])),a.push(r(m(946,"Side"),t.enabled,"editor.minimap.side",t.side,[{label:m(947,"Right"),value:"right"},{label:m(948,"Left"),value:"left"}]));const l=this._editor.getOption(144)&&!Em;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>a,onHide:d=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}},W_=lr,lr.ID="editor.contrib.contextmenu",lr);oc=W_=YM([Ro(1,Hc),Ro(2,Lf),Ro(3,pe),Ro(4,Te),Ro(5,bo),Ro(6,Ie),Ro(7,so)],oc);class JM extends F{constructor(){super({id:"editor.action.showContextMenu",label:L(949,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:1092,weight:100}})}run(e,t){oc.get(t)?.showContextMenu()}}ae(oc.ID,oc,2);P(JM);class $p{constructor(e){this.selections=e}equals(e){const t=this.selections.length,i=e.selections.length;if(t!==i)return!1;for(let n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0}}class zp{constructor(e,t,i){this.cursorState=e,this.scrollTop=t,this.scrollLeft=i}}const Wg=class Wg extends A{static get(e){return e.getContribution(Wg.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new $p(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new zp(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new zp(new $p(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new zp(new $p(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}};Wg.ID="editor.contrib.cursorUndoRedoController";let _l=Wg;class QM extends F{constructor(){super({id:"cursorUndo",label:L(950,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:2099,weight:100}})}run(e,t,i){_l.get(t)?.cursorUndo()}}class eA extends F{constructor(){super({id:"cursorRedo",label:L(951,"Cursor Redo"),precondition:void 0})}run(e,t,i){_l.get(t)?.cursorRedo()}}ae(_l.ID,_l,0);P(QM);P(eA);class tA{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new I(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),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 J(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 J(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 J(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}this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new J(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):this.targetSelection=new J(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(e,t){return this.targetSelection}}function la(o){return Yn?o.altKey:o.ctrlKey}const Ss=class Ss extends A{constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),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(e){!this._editor.getOption(42)||this._editor.getOption(28)||(la(e)&&(this._modifierPressed=!0),this._mouseDown&&la(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(42)||this._editor.getOption(28)||(la(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===Ss.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(this._dragSelection===null){const n=(this._editor.getSelections()||[]).filter(s=>t.position&&s.containsPosition(t.position));if(n.length===1)this._dragSelection=n[0];else return}la(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new $(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const n=this._editor.getSelection();if(n){const{selectionStartLineNumber:s,selectionStartColumn:r}=n;i=[new J(s,r,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(n=>n.containsPosition(t)?new J(t.lineNumber,t.column,t.lineNumber,t.column):n);this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(la(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(Ss.ID,new tA(this._dragSelection,t,la(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new I(e.lineNumber,e.column,e.lineNumber,e.column),options:Ss._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}};Ss.ID="editor.contrib.dragAndDrop",Ss.TRIGGER_KEY_VALUE=Yn?6:5,Ss._DECORATION_OPTIONS=te.register({description:"dnd-target",className:"dnd-target"});let Iu=Ss;ae(Iu.ID,Iu,2);const iA="editor.action.pasteAs";ae(is.ID,is,0);Rl(Hm);K(new class extends Mt{constructor(){super({id:D1,precondition:zS,kbOpts:{weight:100,primary:2137}})}runEditorCommand(o,e){return is.get(e)?.changePasteType()}});K(new class extends Mt{constructor(){super({id:"editor.hidePasteWidget",precondition:zS,kbOpts:{weight:100,primary:9}})}runEditorCommand(o,e){is.get(e)?.clearWidgets()}});var dr;P((dr=class extends F{constructor(){super({id:iA,label:L(954,"Paste As..."),precondition:C.writable,metadata:{description:"Paste as",args:[{name:"args",schema:dr.argsSchema}]},canTriggerInlineEdits:!0})}run(e,t,i){let n;return i&&("kind"in i?n={only:new Oe(i.kind)}:"preferences"in i&&(n={preferences:i.preferences.map(s=>new Oe(s))})),is.get(t)?.pasteAs(n)}},dr.argsSchema={oneOf:[{type:"object",required:["kind"],properties:{kind:{type:"string",description:m(952,`The kind of the paste edit to try pasting with.
10
- If there are multiple edits for this kind, the editor will show a picker. If there are no edits of this kind, the editor will show an error message.`)}}},{type:"object",required:["preferences"],properties:{preferences:{type:"array",description:m(953,`List of preferred paste edit kind to try applying.
11
- The first edit matching the preferences will be applied.`),items:{type:"string"}}}}]},dr));P(class extends F{constructor(){super({id:"editor.action.pasteAsText",label:L(955,"Paste as Text"),precondition:C.writable,canTriggerInlineEdits:!0})}run(o,e){return is.get(e)?.pasteAs({providerId:Hr.id})}});class nA{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}}class hy{constructor(e){this.identifier=e}}const PD=Rn("treeViewsDndService");os(PD,nA,1);var sA=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},mh=function(o,e){return function(t,i){e(t,i,o)}},An;const oA="editor.dropIntoEditor.preferences",OD="editor.changeDropType",cC=new ie("dropWidgetVisible",!1,m(973,"Whether the drop widget is showing"));var cr;let vl=(cr=class extends A{static get(e){return e.getContribution(An.ID)}constructor(e,t,i,n,s){super(),this._configService=i,this._languageFeaturesService=n,this._treeViewsDragAndDropService=s,this.treeItemsTransfer=x0.getInstance(),this._dropProgressManager=this._register(t.createInstance(lu,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(hu,"dropIntoEditor",e,cC,{id:OD,label:m(974,"Show drop options...")},()=>An._configureDefaultAction?[An._configureDefaultAction]:[])),this._register(e.onDropIntoEditor(r=>this.onDropIntoEditor(e,r.position,r.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,i){if(!i.dataTransfer||!e.hasModel())return;An._currentDropOperation?.cancel(),e.focus(),e.setPosition(t);const n=dt(async s=>{const r=new W,a=r.add(new Tr(e,1,void 0,s));try{const l=await this.extractDataTransferData(i);if(l.size===0||a.token.isCancellationRequested)return;const d=e.getModel();if(!d)return;const c=this._languageFeaturesService.documentDropEditProvider.ordered(d).filter(g=>g.dropMimeTypes?g.dropMimeTypes.some(u=>l.matches(u)):!0),h=r.add(await this.getDropEdits(c,d,t,l,a.token));if(a.token.isCancellationRequested)return;if(h.edits.length){const g=this.getInitialActiveEditIndex(d,h.edits),u=e.getOption(43).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([I.fromPositions(t)],{activeEditIndex:g,allEdits:h.edits},u,async f=>f,s)}}finally{r.dispose(),An._currentDropOperation===n&&(An._currentDropOperation=void 0)}});this._dropProgressManager.showWhile(t,m(975,"Running drop handlers. Click to cancel"),n,{cancel:()=>n.cancel()}),An._currentDropOperation=n}async getDropEdits(e,t,i,n,s){const r=new W,a=await il(Promise.all(e.map(async d=>{try{const c=await d.provideDocumentDropEdits(t,i,n,s);return c&&r.add(c),c?.edits.map(h=>({...h,providerId:d.id}))}catch(c){rs(c)||console.error(c),console.error(c)}})),s),l=_o(a??[]).flat();return{edits:y1(l),dispose:()=>r.dispose()}}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(oA,{resource:e.uri});for(const n of Array.isArray(i)?i:[]){const s=new Oe(n),r=t.findIndex(a=>a.kind&&s.contains(a.kind));if(r>=0)return r}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new qx;const t=L0(e.dataTransfer);if(this.treeItemsTransfer.hasData(hy.prototype)){const i=this.treeItemsTransfer.getData(hy.prototype);if(Array.isArray(i))for(const n of i){const s=await this._treeViewsDragAndDropService.removeDragOperationTransfer(n.identifier);if(s)for(const[r,a]of s)t.replace(r,a)}}return t}},An=cr,cr.ID="editor.contrib.dropIntoEditorController",cr);vl=An=sA([mh(1,ee),mh(2,Ie),mh(3,G),mh(4,PD)],vl);ae(vl.ID,vl,2);Rl(Wm);K(new class extends Mt{constructor(){super({id:OD,precondition:cC,kbOpts:{weight:100,primary:2137}})}runEditorCommand(o,e,t){vl.get(e)?.changeDropType()}});K(new class extends Mt{constructor(){super({id:"editor.hideDropWidget",precondition:cC,kbOpts:{weight:100,primary:9}})}runEditorCommand(o,e,t){vl.get(e)?.clearWidgets()}});const Hg=class Hg extends Uc{constructor(e,t,i){super(),this._hideSoon=this._register(new et(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,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");const n={inputActiveOptionBorder:ye(lL),inputActiveOptionForeground:ye(aL),inputActiveOptionBackground:ye(iS)},s={groupId:"find-options-widget"};this.caseSensitive=this._register(new D0({appendTitle:this._keybindingLabelFor(De.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:s,...n})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new E0({appendTitle:this._keybindingLabelFor(De.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:s,...n})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new R0({appendTitle:this._keybindingLabelFor(De.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:s,...n})),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(r=>{let a=!1;r.isRegex&&(this.regex.checked=this._state.isRegex,a=!0),r.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,a=!0),r.matchCase&&(this.caseSensitive.checked=this._state.matchCase,a=!0),!this._state.isRevealed&&a&&this._revealTemporarily()})),this._register(re(this._domNode,Pe.MOUSE_LEAVE,r=>this._onMouseLeave())),this._register(re(this._domNode,"mouseover",r=>this._onMouseOver()))}_keybindingLabelFor(e){return this._keybindingService.appendKeybinding("",e)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Hg.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(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}};Hg.ID="editor.contrib.findOptionsWidget";let H_=Hg;function _h(o,e){return o===1?!0:o===2?!1:e}class rA extends A{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return _h(this._isRegexOverride,this._isRegex)}get wholeWord(){return _h(this._wholeWordOverride,this._wholeWord)}get matchCase(){return _h(this._matchCaseOverride,this._matchCase)}get preserveCase(){return _h(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 Y),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(e,t,i){const n={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};let s=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,n.matchesPosition=!0,s=!0),this._matchesCount!==t&&(this._matchesCount=t,n.matchesCount=!0,s=!0),typeof i<"u"&&(I.equalsRange(this._currentMatch,i)||(this._currentMatch=i,n.currentMatch=!0,s=!0)),s&&this._onFindReplaceStateChange.fire(n)}change(e,t,i=!0){const n={moveCursor:t,updateHistory:i,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};let s=!1;const r=this.isRegex,a=this.wholeWord,l=this.matchCase,d=this.preserveCase;typeof e.searchString<"u"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,n.searchString=!0,s=!0),typeof e.replaceString<"u"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,n.replaceString=!0,s=!0),typeof e.isRevealed<"u"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,n.isRevealed=!0,s=!0),typeof e.isReplaceRevealed<"u"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,n.isReplaceRevealed=!0,s=!0),typeof e.isRegex<"u"&&(this._isRegex=e.isRegex),typeof e.wholeWord<"u"&&(this._wholeWord=e.wholeWord),typeof e.matchCase<"u"&&(this._matchCase=e.matchCase),typeof e.preserveCase<"u"&&(this._preserveCase=e.preserveCase),typeof e.searchScope<"u"&&(e.searchScope?.every(c=>this._searchScope?.some(h=>!I.equalsRange(h,c)))||(this._searchScope=e.searchScope,n.searchScope=!0,s=!0)),typeof e.loop<"u"&&this._loop!==e.loop&&(this._loop=e.loop,n.loop=!0,s=!0),typeof e.isSearching<"u"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,n.isSearching=!0,s=!0),typeof e.filters<"u"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,n.filters=!0,s=!0),this._isRegexOverride=typeof e.isRegexOverride<"u"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride<"u"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride<"u"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride<"u"?e.preserveCaseOverride:0,r!==this.isRegex&&(s=!0,n.isRegex=!0),a!==this.wholeWord&&(s=!0,n.wholeWord=!0),l!==this.matchCase&&(s=!0,n.matchCase=!0),d!==this.preserveCase&&(s=!0,n.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(n)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=ks}}var aA=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},lA=function(o,e){return function(t,i){e(t,i,o)}},ps,Gs;let V_=(Gs=class{static getOrCreate(e){return ps._instance||(ps._instance=new ps(e)),ps._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new Y,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(e){const t=this.inMemoryValues.delete(e);return this.save(),t}add(e){return this.inMemoryValues.add(e),this.save(),this}has(e){return this.inMemoryValues.has(e)}forEach(e,t){return this.load(),this.inMemoryValues.forEach(e)}replace(e){this.inMemoryValues=new Set(e),this.save()}load(){let e;const t=this.storageService.get(ps.FIND_HISTORY_KEY,1);if(t)try{e=JSON.parse(t)}catch{}this.inMemoryValues=new Set(e||[])}save(){const e=[];return this.inMemoryValues.forEach(t=>e.push(t)),new Promise(t=>{this.storageService.store(ps.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}},ps=Gs,Gs.FIND_HISTORY_KEY="workbench.find.history",Gs._instance=null,Gs);V_=ps=aA([lA(0,Wi)],V_);var dA=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},cA=function(o,e){return function(t,i){e(t,i,o)}},ms,Zs;let B_=(Zs=class{static getOrCreate(e){return ms._instance||(ms._instance=new ms(e)),ms._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new Y,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(e){const t=this.inMemoryValues.delete(e);return this.save(),t}add(e){return this.inMemoryValues.add(e),this.save(),this}has(e){return this.inMemoryValues.has(e)}forEach(e,t){return this.load(),this.inMemoryValues.forEach(e)}replace(e){this.inMemoryValues=new Set(e),this.save()}load(){let e;const t=this.storageService.get(ms.FIND_HISTORY_KEY,1);if(t)try{e=JSON.parse(t)}catch{}this.inMemoryValues=new Set(e||[])}save(){const e=[];return this.inMemoryValues.forEach(t=>e.push(t)),new Promise(t=>{this.storageService.store(ms.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}},ms=Zs,Zs.FIND_HISTORY_KEY="workbench.replace.history",Zs._instance=null,Zs);B_=ms=dA([cA(0,Wi)],B_);var MD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ti=function(o,e){return function(t,i){e(t,i,o)}},U_;const hA=524288;function $_(o,e="single",t=!1){if(!o.hasModel())return null;const i=o.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const n=o.getConfiguredWordAtPosition(i.getStartPosition());if(n&&t===!1)return n.word}else if(o.getModel().getValueLengthInRange(i)<hA)return o.getModel().getValueInRange(i)}return null}var hr;let Ut=(hr=class extends A{get editor(){return this._editor}static get(e){return e.getContribution(U_.ID)}constructor(e,t,i,n,s,r){super(),this._editor=e,this._findWidgetVisible=cs.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=n,this._notificationService=s,this._hoverService=r,this._updateHistoryDelayer=this._register(new lo(500)),this._state=this._register(new rA),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(a=>this._onStateChanged(a))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const a=this._editor.getModel()&&this._state.isRevealed;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),a&&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(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),e.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!!Qf.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){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 e=this._editor.getSelections();e=e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=jd(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const i={...t,isRevealed:!0};if(e.seedSearchStringFromSelection==="single"){const n=$_(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);n&&(this._state.isRegex?i.searchString=jd(n):i.searchString=n)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const n=$_(this._editor,e.seedSearchStringFromSelection);n&&(i.searchString=n)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const n=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;n&&(i.searchString=n)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const n=this._editor.getSelections();n.some(s=>!s.isEmpty())&&(i.searchScope=n)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new yd(this._editor,this._state))}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?this._editor.getModel()?.isTooLargeForHeapOperation()?(this._notificationService.warn(m(979,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(e){this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}},U_=hr,hr.ID="editor.contrib.findController",hr);Ut=U_=MD([ti(1,pe),ti(2,Wi),ti(3,li),ti(4,Lt),ti(5,bi)],Ut);let z_=class extends Ut{constructor(e,t,i,n,s,r,a,l,d,c){super(e,i,r,a,s,l),this._contextViewService=t,this._keybindingService=n,this._configurationService=d,this._accessibilityService=c,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=V_.getOrCreate(r),this._replaceWidgetHistory=B_.getOrCreate(r)}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let n=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":n=!0;break;case"never":n=!1;break;case"multiline":{n=!!i&&i.startLineNumber!==i.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||n,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new g_(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 H_(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(e){this._widget?.setViewState(e)}};z_=MD([ti(1,Lf),ti(2,pe),ti(3,Te),ti(4,Lt),ti(5,Wi),ti(6,li),ti(7,bi),ti(8,Ie),ti(9,Co)],z_);const uA=Pf(new Of({id:De.StartFindAction,label:L(987,"Find"),precondition:T.or(C.focus,T.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:q.MenubarEditMenu,group:"3_find",title:m(980,"&&Find"),order:1}}));uA.addImplementation(0,(o,e,t)=>{const i=Ut.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop}):!1});const gA={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 fA extends F{constructor(){super({id:De.StartFindWithArgs,label:L(988,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:gA})}async run(e,t,i){const n=Ut.get(t);if(n){const s=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getState().searchString.length===0&&t.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:i?.findInSelection||!1,loop:t.getOption(50).loop},s),n.setGlobalBufferTerm(n.getState().searchString)}}}class pA extends F{constructor(){super({id:De.StartFindWithSelection,label:L(989,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const i=Ut.get(t);i&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}),i.setGlobalBufferTerm(i.getState().searchString))}}async function AD(o,e){const t=Ut.get(o);if(!t)return;const i=o.getOption(50).closeOnResult,n=t.getState().isRevealed,s=()=>{const r=t.editor.getSelection(),a=e?t.moveToNextMatch():t.moveToPrevMatch();let l=!1;if(a){const d=t.editor.getSelection();(!r&&d||r&&d&&!r.equalsSelection(d))&&(l=!0)}return l?(t.editor.pushUndoStop(),i&&n&&t.isFindInputFocused()&&t.closeFindWidget(),!0):!1};if(!s()&&(await t.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getState().searchString.length===0&&o.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:o.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:o.getOption(50).loop}),!s())){const r=t.getState();n&&r.matchesCount===0&&r.searchString&&mi(m(981,"{0} found for '{1}'",u_,r.searchString))}}const mA=Pf(new Of({id:De.NextMatchFindAction,label:L(990,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:C.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:T.and(C.focus,Qf),primary:3,weight:100}]}));mA.addImplementation(0,async(o,e,t)=>AD(e,!0));const _A=Pf(new Of({id:De.PreviousMatchFindAction,label:L(991,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:C.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:T.and(C.focus,Qf),primary:1027,weight:100}]}));_A.addImplementation(0,async(o,e,t)=>AD(e,!1));class vA extends F{constructor(){super({id:De.GoToMatchFindAction,label:L(992,"Go to Match..."),precondition:cs}),this._highlightDecorations=[]}run(e,t){const i=Ut.get(t);if(!i)return;const n=i.getState().matchesCount;if(n<1){e.get(Lt).notify({severity:kf.Warning,message:m(982,"No matches. Try searching for something else.")});return}const s=e.get(Ai),r=new W,a=r.add(s.createInputBox());a.placeholder=m(983,"Type a number to go to a specific match (between 1 and {0})",n);const l=c=>{const h=parseInt(c);if(isNaN(h))return;const g=i.getState().matchesCount;if(h>0&&h<=g)return h-1;if(h<0&&h>=-g)return g+h},d=c=>{const h=l(c);if(typeof h=="number"){a.validationMessage=void 0,i.goToMatch(h);const g=i.getState().currentMatch;g&&this.addDecorations(t,g)}else a.validationMessage=m(984,"Please type a number between 1 and {0}",i.getState().matchesCount),this.clearDecorations(t)};r.add(a.onDidChangeValue(c=>{d(c)})),r.add(a.onDidAccept(()=>{const c=l(a.value);typeof c=="number"?(i.goToMatch(c),a.hide()):a.validationMessage=m(985,"Please type a number between 1 and {0}",i.getState().matchesCount)})),r.add(a.onDidHide(()=>{this.clearDecorations(t),r.dispose()})),a.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(i=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:Xe(wL),position:wn.Full}}}])})}}class FD extends F{async run(e,t){const i=Ut.get(t);if(!i)return;const n=$_(t,"single",!1);n&&i.setSearchString(n),this._run(i)||(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}),this._run(i))}}class bA extends FD{constructor(){super({id:De.NextSelectionMatchFindAction,label:L(993,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class SA extends FD{constructor(){super({id:De.PreviousSelectionMatchFindAction,label:L(994,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}const CA=Pf(new Of({id:De.StartFindReplaceAction,label:L(995,"Replace"),precondition:T.or(C.focus,T.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:q.MenubarEditMenu,group:"3_find",title:m(986,"&&Replace"),order:2}}));CA.addImplementation(0,(o,e,t)=>{if(!e.hasModel()||e.getOption(104))return!1;const i=Ut.get(e);if(!i)return!1;const n=e.getSelection(),s=i.isFindInputFocused(),r=!n.isEmpty()&&n.startLineNumber===n.endLineNumber&&e.getOption(50).seedSearchStringFromSelection!=="never"&&!s,a=s||r?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop})});ae(Ut.ID,z_,0);P(fA);P(pA);P(vA);P(bA);P(SA);const an=Mt.bindToContribution(Ut.get);K(new an({id:De.CloseFindWidgetCommand,precondition:cs,handler:o=>o.closeFindWidget(),kbOpts:{weight:105,kbExpr:T.and(C.focus,T.not("isComposing")),primary:9,secondary:[1033]}}));K(new an({id:De.ToggleCaseSensitiveCommand,precondition:void 0,handler:o=>o.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:C.focus,primary:rh.primary,mac:rh.mac,win:rh.win,linux:rh.linux}}));K(new an({id:De.ToggleWholeWordCommand,precondition:void 0,handler:o=>o.toggleWholeWords(),kbOpts:{weight:105,kbExpr:C.focus,primary:ah.primary,mac:ah.mac,win:ah.win,linux:ah.linux}}));K(new an({id:De.ToggleRegexCommand,precondition:void 0,handler:o=>o.toggleRegex(),kbOpts:{weight:105,kbExpr:C.focus,primary:lh.primary,mac:lh.mac,win:lh.win,linux:lh.linux}}));K(new an({id:De.ToggleSearchScopeCommand,precondition:void 0,handler:o=>o.toggleSearchScope(),kbOpts:{weight:105,kbExpr:C.focus,primary:dh.primary,mac:dh.mac,win:dh.win,linux:dh.linux}}));K(new an({id:De.TogglePreserveCaseCommand,precondition:void 0,handler:o=>o.togglePreserveCase(),kbOpts:{weight:105,kbExpr:C.focus,primary:ch.primary,mac:ch.mac,win:ch.win,linux:ch.linux}}));K(new an({id:De.ReplaceOneAction,precondition:cs,handler:o=>o.replace(),kbOpts:{weight:105,kbExpr:C.focus,primary:3094}}));K(new an({id:De.ReplaceOneAction,precondition:cs,handler:o=>o.replace(),kbOpts:{weight:105,kbExpr:T.and(C.focus,JS,C.isComposing.negate()),primary:3}}));K(new an({id:De.ReplaceAllAction,precondition:cs,handler:o=>o.replaceAll(),kbOpts:{weight:105,kbExpr:C.focus,primary:2563}}));K(new an({id:De.ReplaceAllAction,precondition:cs,handler:o=>o.replaceAll(),kbOpts:{weight:105,kbExpr:T.and(C.focus,JS),primary:void 0,mac:{primary:2051}}}));K(new an({id:De.SelectAllMatchesAction,precondition:cs,handler:o=>o.selectAllMatches(),kbOpts:{weight:105,kbExpr:C.focus,primary:515}}));const wA={0:" ",1:"u",2:"r"},uy=65535,Gi=16777215,gy=4278190080;class jp{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return(this._states[t]&1<<i)!==0}set(e,t){const i=e/32|0,n=e%32,s=this._states[i];t?this._states[i]=s|1<<n:this._states[i]=s&~(1<<n)}}class oi{constructor(e,t,i){if(e.length!==t.length||e.length>uy)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new jp(e.length),this._userDefinedStates=new jp(e.length),this._recoveredStates=new jp(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,n)=>{const s=e[e.length-1];return this.getStartLineNumber(s)<=i&&this.getEndLineNumber(s)>=n};for(let i=0,n=this._startIndexes.length;i<n;i++){const s=this._startIndexes[i],r=this._endIndexes[i];if(s>Gi||r>Gi)throw new Error("startLineNumber or endLineNumber must not exceed "+Gi);for(;e.length>0&&!t(s,r);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=s+((a&255)<<24),this._endIndexes[i]=r+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Gi}getEndLineNumber(e){return this._endIndexes[e]&Gi}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let n=0;n<this._types.length;n++)this._types[n]===e&&(this.setCollapsed(n,t),i=!0);return i}toRegion(e){return new yA(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&gy)>>>24)+((this._endIndexes[e]&gy)>>>16);return t===uy?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(i===0)return-1;for(;t<i;){const n=Math.floor((t+i)/2);e<this.getStartLineNumber(n)?i=n:t=n+1}return t-1}findRange(e){let t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;t<this.length;t++)e[t]=`[${wA[this.getSource(t)]}${this.isCollapsed(t)?"+":"-"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(", ")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&Gi,endLineNumber:this._endIndexes[e]&Gi,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(e){const t=e.length,i=new Uint32Array(t),n=new Uint32Array(t);let s=[],r=!1;for(let l=0;l<t;l++){const d=e[l];i[l]=d.startLineNumber,n[l]=d.endLineNumber,s.push(d.type),d.type&&(r=!0)}r||(s=void 0);const a=new oi(i,n,s);for(let l=0;l<t;l++)e[l].isCollapsed&&a.setCollapsed(l,!0),a.setSource(l,e[l].source);return a}static sanitizeAndMerge(e,t,i,n){i=i??Number.MAX_VALUE;const s=(_,v)=>Array.isArray(_)?(S=>S<v?_[S]:void 0):(S=>S<v?_.toFoldRange(S):void 0),r=s(e,e.length),a=s(t,t.length);let l=0,d=0,c=r(0),h=a(0);const g=[];let u,f=0;const p=[];for(;c||h;){let _;if(h&&(!c||c.startLineNumber>=h.startLineNumber))c&&c.startLineNumber===h.startLineNumber?(h.source===1?_=h:(_=c,_.isCollapsed=h.isCollapsed&&(c.endLineNumber===h.endLineNumber||!n?.startsInside(c.startLineNumber+1,c.endLineNumber+1)),_.source=0),c=r(++l)):(_=h,h.isCollapsed&&h.source===0&&(_.source=2)),h=a(++d);else{let v=d,S=h;for(;;){if(!S||S.startLineNumber>c.endLineNumber){_=c;break}if(S.source===1&&S.endLineNumber>c.endLineNumber)break;S=a(++v)}c=r(++l)}if(_){for(;u&&u.endLineNumber<_.startLineNumber;)u=g.pop();_.endLineNumber>_.startLineNumber&&_.startLineNumber>f&&_.endLineNumber<=i&&(!u||u.endLineNumber>=_.endLineNumber)&&(p.push(_),f=_.startLineNumber,u&&g.push(u),u=_)}}return p}}class yA{constructor(e,t){this.ranges=e,this.index=t}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(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}class IA{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new Y,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new oi(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((i,n)=>i.regionIndex-n.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let n=0,s=-1,r=-1;const a=l=>{for(;n<l;){const d=this._regions.getEndLineNumber(n),c=this._regions.isCollapsed(n);if(d<=s){const h=this.regions.getSource(n)!==0;i.changeDecorationOptions(this._editorDecorationIds[n],this._decorationProvider.getDecorationOption(c,d<=r,h))}c&&d>r&&(r=d),n++}};for(const l of e){const d=l.regionIndex,c=this._editorDecorationIds[d];if(c&&!t[c]){t[c]=!0,a(d);const h=!this._regions.isCollapsed(d);this._regions.setCollapsed(d,h),s=Math.max(s,this._regions.getEndLineNumber(d))}}a(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=n=>{for(const s of e)if(!(s.startLineNumber>n.endLineNumber||n.startLineNumber>s.endLineNumber))return!0;return!1};for(let n=0;n<this._regions.length;n++){const s=this._regions.toFoldRange(n);(s.source===0||!i(s))&&t.push(s)}this.updatePost(oi.fromFoldRanges(t))}update(e,t){const i=this._currentFoldedOrManualRanges(t),n=oi.sanitizeAndMerge(e,i,this._textModel.getLineCount(),t);this.updatePost(oi.fromFoldRanges(n))}updatePost(e){const t=[];let i=-1;for(let n=0,s=e.length;n<s;n++){const r=e.getStartLineNumber(n),a=e.getEndLineNumber(n),l=e.isCollapsed(n),d=e.getSource(n)!==0,c={startLineNumber:r,startColumn:this._textModel.getLineMaxColumn(r),endLineNumber:a,endColumn:this._textModel.getLineMaxColumn(a)+1};t.push({range:c,options:this._decorationProvider.getDecorationOption(l,a<=i,d)}),l&&a>i&&(i=a)}this._decorationProvider.changeDecorations(n=>this._editorDecorationIds=n.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e){const t=[];for(let i=0,n=this._regions.length;i<n;i++){let s=this.regions.isCollapsed(i);const r=this.regions.getSource(i);if(s||r!==0){const a=this._regions.toFoldRange(i),l=this._textModel.getDecorationRange(this._editorDecorationIds[i]);l&&(s&&e?.startsInside(l.startLineNumber+1,l.endLineNumber)&&(s=!1),t.push({startLineNumber:l.startLineNumber,endLineNumber:l.endLineNumber,type:a.type,isCollapsed:s,source:r}))}}return t}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[],i=this._textModel.getLineCount();for(let n=0,s=e.length;n<s;n++){const r=e[n];if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>i)continue;const a=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);t.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,isCollapsed:r.isCollapsed,source:r.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){if(!Array.isArray(e))return;const t=[],i=this._textModel.getLineCount();for(const s of e){if(s.startLineNumber>=s.endLineNumber||s.startLineNumber<1||s.endLineNumber>i)continue;const r=this._getLinesChecksum(s.startLineNumber+1,s.endLineNumber);(!s.checksum||r===s.checksum)&&t.push({startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,type:void 0,isCollapsed:s.isCollapsed??!0,source:s.source??0})}const n=oi.sanitizeAndMerge(this._regions,t,i);this.updatePost(oi.fromFoldRanges(n))}_getLinesChecksum(e,t){return yL(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let n=this._regions.findRange(e),s=1;for(;n>=0;){const r=this._regions.toRegion(n);(!t||t(r,s))&&i.push(r),s++,n=r.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],n=e?e.regionIndex+1:0,s=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const r=[];for(let a=n,l=this._regions.length;a<l;a++){const d=this._regions.toRegion(a);if(this._regions.getStartLineNumber(a)<s){for(;r.length>0&&!d.containedBy(r[r.length-1]);)r.pop();r.push(d),t(d,r.length)&&i.push(d)}else break}}else for(let r=n,a=this._regions.length;r<a;r++){const l=this._regions.toRegion(r);if(this._regions.getStartLineNumber(r)<s)(!t||t(l))&&i.push(l);else break}return i}}function hC(o,e,t){const i=[];for(const n of t){const s=o.getRegionAtLine(n);if(s){const r=!s.isCollapsed;if(i.push(s),e>1){const a=o.getRegionsInside(s,(l,d)=>l.isCollapsed!==r&&d<e);i.push(...a)}}}o.toggleCollapseState(i)}function Ml(o,e,t=Number.MAX_VALUE,i){const n=[];if(i&&i.length>0)for(const s of i){const r=o.getRegionAtLine(s);if(r&&(r.isCollapsed!==e&&n.push(r),t>1)){const a=o.getRegionsInside(r,(l,d)=>l.isCollapsed!==e&&d<t);n.push(...a)}}else{const s=o.getRegionsInside(null,(r,a)=>r.isCollapsed!==e&&a<t);n.push(...s)}o.toggleCollapseState(n)}function WD(o,e,t,i){const n=[];for(const s of i){const r=o.getAllRegionsAtLine(s,(a,l)=>a.isCollapsed!==e&&l<=t);n.push(...r)}o.toggleCollapseState(n)}function xA(o,e,t){const i=[];for(const n of t){const s=o.getAllRegionsAtLine(n,r=>r.isCollapsed!==e);s.length>0&&i.push(s[0])}o.toggleCollapseState(i)}function LA(o,e,t,i){const n=(r,a)=>a===e&&r.isCollapsed!==t&&!i.some(l=>r.containsLine(l)),s=o.getRegionsInside(null,n);o.toggleCollapseState(s)}function HD(o,e,t){const i=[];for(const r of t){const a=o.getAllRegionsAtLine(r,void 0);a.length>0&&i.push(a[0])}const n=r=>i.every(a=>!a.containedBy(r)&&!r.containedBy(a))&&r.isCollapsed!==e,s=o.getRegionsInside(null,n);o.toggleCollapseState(s)}function uC(o,e,t){const i=o.textModel,n=o.regions,s=[];for(let r=n.length-1;r>=0;r--)if(t!==n.isCollapsed(r)){const a=n.getStartLineNumber(r);e.test(i.getLineContent(a))&&s.push(n.toRegion(r))}o.toggleCollapseState(s)}function gC(o,e,t){const i=o.regions,n=[];for(let s=i.length-1;s>=0;s--)t!==i.isCollapsed(s)&&e===i.getType(s)&&n.push(i.toRegion(s));o.toggleCollapseState(n)}function DA(o,e){let t=null;const i=e.getRegionAtLine(o);if(i!==null&&(t=i.startLineNumber,o===t)){const n=i.parentIndex;n!==-1?t=e.regions.getStartLineNumber(n):t=null}return t}function EA(o,e){let t=e.getRegionAtLine(o);if(t!==null&&t.startLineNumber===o){if(o!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let n=0;for(i!==-1&&(n=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=n)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}}else if(e.regions.length>0)for(t=e.regions.toRegion(e.regions.length-1);t!==null;){if(t.startLineNumber<o)return t.startLineNumber;t.regionIndex>0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function RA(o,e){let t=e.getRegionAtLine(o);if(t!==null&&t.startLineNumber===o){const i=t.parentIndex;let n=0;if(i!==-1)n=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;n=e.regions.getEndLineNumber(e.regions.length-1)}for(;t!==null;)if(t.regionIndex<e.regions.length){if(t=e.regions.toRegion(t.regionIndex+1),t.startLineNumber>=n)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}else if(e.regions.length>0)for(t=e.regions.toRegion(0);t!==null;){if(t.startLineNumber>o)return t.startLineNumber;t.regionIndex<e.regions.length?t=e.regions.toRegion(t.regionIndex+1):t=null}return null}class NA{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(e){this._updateEventEmitter=new Y,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange(t=>this.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||N0(t.text)[0]!==0))}updateHiddenRanges(){let e=!1;const t=[];let i=0,n=0,s=Number.MAX_VALUE,r=-1;const a=this._foldingModel.regions;for(;i<a.length;i++){if(!a.isCollapsed(i))continue;const l=a.getStartLineNumber(i)+1,d=a.getEndLineNumber(i);s<=l&&d<=r||(!e&&n<this._hiddenRanges.length&&this._hiddenRanges[n].startLineNumber===l&&this._hiddenRanges[n].endLineNumber===d?(t.push(this._hiddenRanges[n]),n++):(e=!0,t.push(new I(l,1,d,1))),s=l,r=d)}(this._hasLineChanges||e||n<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return fy(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let n=null;const s=r=>((!n||!kA(r,n))&&(n=fy(this._hiddenRanges,r)),n?n.startLineNumber-1:null);for(let r=0,a=e.length;r<a;r++){let l=e[r];const d=s(l.startLineNumber);d&&(l=l.setStartPosition(d,i.getLineMaxColumn(d)),t=!0);const c=s(l.endLineNumber);c&&(l=l.setEndPosition(c,i.getLineMaxColumn(c)),t=!0),e[r]=l}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null),this._updateEventEmitter.dispose()}}function kA(o,e){return o>=e.startLineNumber&&o<=e.endLineNumber}function fy(o,e){const t=nL(o,i=>e<i.startLineNumber)-1;return t>=0&&o[t].endLineNumber>=e?o[t]:null}const TA=5e3,PA="indent";class fC{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id=PA}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,n=t&&t.markers;return Promise.resolve(AA(this.editorModel,i,n,this.foldingRangesLimit))}}let OA=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>Gi||t>Gi)return;const n=this._length;this._startIndexes[n]=e,this._endIndexes[n]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),n=new Uint32Array(this._length);for(let s=this._length-1,r=0;s>=0;s--,r++)i[r]=this._startIndexes[s],n[r]=this._endIndexes[s];return new oi(i,n)}else{this._foldingRangesLimit.update(this._length,t);let i=0,n=this._indentOccurrences.length;for(let l=0;l<this._indentOccurrences.length;l++){const d=this._indentOccurrences[l];if(d){if(d+i>t){n=l;break}i+=d}}const s=e.getOptions().tabSize,r=new Uint32Array(t),a=new Uint32Array(t);for(let l=this._length-1,d=0;l>=0;l--){const c=this._startIndexes[l],h=e.getLineContent(c),g=lS(h,s);(g<n||g===n&&i++<t)&&(r[d]=c,a[d]=this._endIndexes[l],d++)}return new oi(r,a)}}};const MA={limit:TA,update:()=>{}};function AA(o,e,t,i=MA){const n=o.getOptions().tabSize,s=new OA(i);let r,a,l;t&&(t.start.flags===t.end.flags?r=new RegExp(`(${t.start.source})|(?:${t.end.source})`,t.start.flags):(a=t.start,l=t.end));const d=[],c=o.getLineCount()+1;d.push({indent:-1,endAbove:c,line:c});for(let h=o.getLineCount();h>0;h--){const g=o.getLineContent(h),u=lS(g,n);let f=d[d.length-1];if(u===-1){e&&(f.endAbove=h);continue}let p=!1,_=!1,v;if(r?(r.lastIndex=0,(v=r.exec(g))&&(p=!!v[1],_=!p)):(a&&(a.lastIndex=0,p=a.test(g)),!p&&l&&(l.lastIndex=0,_=l.test(g))),p||_)if(p){let S=d.length-1;for(;S>0&&d[S].indent!==-2;)S--;if(S>0){d.length=S+1,f=d[S],s.insertFirst(h,f.line,u),f.line=h,f.indent=u,f.endAbove=h;continue}}else{d.push({indent:-2,endAbove:h,line:h});continue}if(f.indent>u){do d.pop(),f=d[d.length-1];while(f.indent>u);const S=f.endAbove-1;S-h>=1&&s.insertFirst(h,S,u)}f.indent===u?f.endAbove=h:d.push({indent:u,endAbove:h,line:h})}return s.toIndentRanges(o)}const FA=V("editor.foldBackground",{light:Ye(sw,.3),dark:Ye(sw,.3),hcDark:null,hcLight:null},m(1045,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);V("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},m(1046,"Color of the collapsed text after the first line of a folded range."));V("editorGutter.foldingControlForeground",k0,m(1047,"Color of the folding control in the editor gutter."));const xu=ze("folding-expanded",U.chevronDown,m(1048,"Icon for expanded ranges in the editor glyph margin.")),Lu=ze("folding-collapsed",U.chevronRight,m(1049,"Icon for collapsed ranges in the editor glyph margin.")),py=ze("folding-manual-collapsed",Lu,m(1050,"Icon for manually collapsed ranges in the editor glyph margin.")),my=ze("folding-manual-expanded",xu,m(1051,"Icon for manually expanded ranges in the editor glyph margin.")),qp={color:Xe(FA),position:1},da=m(1052,"Click to expand the range."),vh=m(1053,"Click to collapse the range."),je=class je{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?je.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?je.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:je.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:je.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?je.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:je.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?je.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:je.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?i?je.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:je.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?je.MANUALLY_EXPANDED_VISUAL_DECORATION:je.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}};je.COLLAPSED_VISUAL_DECORATION=te.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:da,firstLineDecorationClassName:ce.asClassName(Lu)}),je.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=te.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:qp,isWholeLine:!0,linesDecorationsTooltip:da,firstLineDecorationClassName:ce.asClassName(Lu)}),je.MANUALLY_COLLAPSED_VISUAL_DECORATION=te.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:da,firstLineDecorationClassName:ce.asClassName(py)}),je.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=te.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:qp,isWholeLine:!0,linesDecorationsTooltip:da,firstLineDecorationClassName:ce.asClassName(py)}),je.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=te.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:da}),je.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=te.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:qp,isWholeLine:!0,linesDecorationsTooltip:da}),je.EXPANDED_VISUAL_DECORATION=te.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ce.asClassName(xu),linesDecorationsTooltip:vh}),je.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=te.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:ce.asClassName(xu),linesDecorationsTooltip:vh}),je.MANUALLY_EXPANDED_VISUAL_DECORATION=te.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ce.asClassName(my),linesDecorationsTooltip:vh}),je.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=te.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:ce.asClassName(my),linesDecorationsTooltip:vh}),je.NO_CONTROLS_EXPANDED_RANGE_DECORATION=te.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),je.HIDDEN_RANGE_DECORATION=te.register({description:"folding-hidden-range-decoration",stickiness:1});let j_=je;const WA={},HA="syntax";class pC{constructor(e,t,i,n,s){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=n,this.fallbackRangeProvider=s,this.id=HA,this.disposables=new W,s&&this.disposables.add(s);for(const r of t)typeof r.onDidChange=="function"&&this.disposables.add(r.onDidChange(i))}compute(e){return VA(this.providers,this.editorModel,e).then(t=>this.editorModel.isDisposed()?null:t?UA(t,this.foldingRangesLimit):this.fallbackRangeProvider?.compute(e)??null)}dispose(){this.disposables.dispose()}}function VA(o,e,t){let i=null;const n=o.map((s,r)=>Promise.resolve(s.provideFoldingRanges(e,WA,t)).then(a=>{if(!t.isCancellationRequested&&Array.isArray(a)){Array.isArray(i)||(i=[]);const l=e.getLineCount();for(const d of a)d.start>0&&d.end>d.start&&d.end<=l&&i.push({start:d.start,end:d.end,rank:r,kind:d.kind})}},Ze));return Promise.all(n).then(s=>i)}class BA{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,n){if(e>Gi||t>Gi)return;const s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._nestingLevels[s]=n,this._types[s]=i,this._length++,n<30&&(this._nestingLevelCounts[n]=(this._nestingLevelCounts[n]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let n=0;n<this._length;n++)t[n]=this._startIndexes[n],i[n]=this._endIndexes[n];return new oi(t,i,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,i=this._nestingLevelCounts.length;for(let a=0;a<this._nestingLevelCounts.length;a++){const l=this._nestingLevelCounts[a];if(l){if(l+t>e){i=a;break}t+=l}}const n=new Uint32Array(e),s=new Uint32Array(e),r=[];for(let a=0,l=0;a<this._length;a++){const d=this._nestingLevels[a];(d<i||d===i&&t++<e)&&(n[l]=this._startIndexes[a],s[l]=this._endIndexes[a],r[l]=this._types[a],l++)}return new oi(n,s,r)}}}function UA(o,e){const t=o.sort((r,a)=>{let l=r.start-a.start;return l===0&&(l=r.rank-a.rank),l}),i=new BA(e);let n;const s=[];for(const r of t)if(!n)n=r,i.add(r.start,r.end,r.kind&&r.kind.value,s.length);else if(r.start>n.start)if(r.end<=n.end)s.push(n),n=r,i.add(r.start,r.end,r.kind&&r.kind.value,s.length);else{if(r.start>n.end){do n=s.pop();while(n&&r.start>n.end);n&&s.push(n),n=r}i.add(r.start,r.end,r.kind&&r.kind.value,s.length)}return i.toIndentRanges()}var $A=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Xl=function(o,e){return function(t,i){e(t,i,o)}},cd;const ut=new ie("foldingEnabled",!1);var ur;let uo=(ur=class extends A{static get(e){return e.getContribution(cd.ID)}static getFoldingRangeProviders(e,t){const i=e.foldingRangeProvider.ordered(t);return cd._foldingRangeSelector?.(i,t)??i}constructor(e,t,i,n,s,r){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=r,this.localToDispose=this._register(new W),this.editor=e,this._foldingLimitReporter=this._register(new VD(e));const a=this.editor.getOptions();this._isEnabled=a.get(52),this._useFoldingProviders=a.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=a.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(55),this.updateDebounceInfo=s.for(r.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 j_(e),this.foldingDecorationProvider.showFoldingControls=a.get(126),this.foldingDecorationProvider.showFoldingHighlights=a.get(54),this.foldingEnabled=ut.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(l=>{if(l.hasChanged(52)&&(this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),l.hasChanged(56)&&this.onModelChanged(),l.hasChanged(126)||l.hasChanged(54)){const d=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=d.get(126),this.foldingDecorationProvider.showFoldingHighlights=d.get(54),this.triggerFoldingModelChanged()}l.hasChanged(53)&&(this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged()),l.hasChanged(57)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57)),l.hasChanged(55)&&(this._foldingImportsByDefault=this.editor.getOptions().get(55))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new IA(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new NA(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new lo(this.updateDebounceInfo.get(e)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new et(()=>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(t=>this.onDidChangeModelContent(t))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(t=>this.onEditorMouseDown(t))),this.localToDispose.add(this.editor.onMouseUp(t=>this.onEditorMouseUp(t))),this.localToDispose.add({dispose:()=>{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(e){if(this.rangeProvider)return this.rangeProvider;const t=new fC(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=cd.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new pC(e,i,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){this.hiddenRangeModel?.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const e=this.foldingModel;if(!e)return null;const t=new _i,i=this.getRangeProvider(e.textModel),n=this.foldingRegionPromise=dt(s=>i.compute(s));return n.then(s=>{if(s&&n===this.foldingRegionPromise){let r;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const d=s.setCollapsedAllOfType(Nl.Imports.value,!0);d&&(r=sl.capture(this.editor),this._currentModelHasFoldedImports=d)}const a=this.editor.getSelections();e.update(s,zA(a)),r?.restore(this.editor);const l=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=l)}return e})}).then(void 0,e=>(we(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const n=[];for(const s of i){const r=s.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(r)&&n.push(...t.getAllRegionsAtLine(r,a=>a.isCollapsed&&r>a.startLineNumber))}n.length&&(t.toggleCollapseState(n),this.reveal(i[0].getPosition()))}}}).then(void 0,we)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const n=e.target.detail,s=e.target.element.offsetLeft;if(n.offsetX-s<4)return;i=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const n=this.editor.getModel();if(n&&t.startColumn===n.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,n=this.mouseDownInfo.iconClicked,s=e.target.range;if(!s||s.startLineNumber!==i)return;if(n){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||s.startColumn!==a.getLineMaxColumn(i))return}const r=t.getRegionAtLine(i);if(r&&r.startLineNumber===i){const a=r.isCollapsed;if(n||a){const l=e.event.altKey;let d=[];if(l){const c=g=>!g.containedBy(r)&&!r.containedBy(g),h=t.getRegionsInside(null,c);for(const g of h)g.isCollapsed&&d.push(g);d.length===0&&(d=h)}else{const c=e.event.middleButton||e.event.shiftKey;if(c)for(const h of t.getRegionsInside(r))h.isCollapsed===a&&d.push(h);(a||!c||d.length===0)&&d.push(r)}t.toggleCollapseState(d),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}},cd=ur,ur.ID="editor.contrib.folding",ur);uo=cd=$A([Xl(1,pe),Xl(2,st),Xl(3,Lt),Xl(4,Hi),Xl(5,G)],uo);class VD extends A{constructor(e){super(),this.editor=e,this._onDidChange=this._register(new Y),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}class vt extends F{runEditorCommand(e,t,i){const n=e.get(st),s=uo.get(t);if(!s)return;const r=s.getFoldingModel();if(r)return this.reportTelemetry(e,t),r.then(a=>{if(a){this.invoke(s,a,t,i,n);const l=t.getSelection();l&&s.reveal(l.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(i=>i.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(i=>i+1):this.getSelectedLines(t)}run(e,t){}}function zA(o){return!o||o.length===0?{startsInside:()=>!1}:{startsInside(e,t){for(const i of o){const n=i.startLineNumber;if(n>=e&&n<=t)return!0}return!1}}}function BD(o){if(!ad(o)){if(!wS(o))return!1;const e=o;if(!ad(e.levels)&&!ow(e.levels)||!ad(e.direction)&&!jx(e.direction)||!ad(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(ow)))return!1}return!0}class jA extends vt{constructor(){super({id:"editor.unfold",label:L(1025,"Unfold"),precondition:ut,kbOpts:{kbExpr:C.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:
12
- * 'levels': Number of levels to unfold. If not set, defaults to 1.
13
- * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
14
- * '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.
15
- `,constraint:BD,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const s=n&&n.levels||1,r=this.getLineNumbers(n,i);n&&n.direction==="up"?WD(t,!1,s,r):Ml(t,!1,s,r)}}class qA extends vt{constructor(){super({id:"editor.unfoldRecursively",label:L(1026,"Unfold Recursively"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2142),weight:100}})}invoke(e,t,i,n){Ml(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}class KA extends vt{constructor(){super({id:"editor.fold",label:L(1027,"Fold"),precondition:ut,kbOpts:{kbExpr:C.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:
16
- * 'levels': Number of levels to fold.
17
- * 'direction': If 'up', folds given number of levels up otherwise folds down.
18
- * '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.
19
- If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
20
- `,constraint:BD,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const s=this.getLineNumbers(n,i),r=n&&n.levels,a=n&&n.direction;typeof r!="number"&&typeof a!="string"?xA(t,!0,s):a==="up"?WD(t,!0,r||1,s):Ml(t,!0,r||1,s)}}class GA extends vt{constructor(){super({id:"editor.toggleFold",label:L(1028,"Toggle Fold"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2090),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);hC(t,1,n)}}class ZA extends vt{constructor(){super({id:"editor.foldRecursively",label:L(1029,"Fold Recursively"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2140),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);Ml(t,!0,Number.MAX_VALUE,n)}}class XA extends vt{constructor(){super({id:"editor.toggleFoldRecursively",label:L(1030,"Toggle Fold Recursively"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,3114),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);hC(t,Number.MAX_VALUE,n)}}class YA extends vt{constructor(){super({id:"editor.foldAllBlockComments",label:L(1031,"Fold All Block Comments"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2138),weight:100}})}invoke(e,t,i,n,s){if(t.regions.hasTypes())gC(t,Nl.Comment.value,!0);else{const r=i.getModel();if(!r)return;const a=s.getLanguageConfiguration(r.getLanguageId()).comments;if(a&&a.blockCommentStartToken){const l=new RegExp("^\\s*"+jd(a.blockCommentStartToken));uC(t,l,!0)}}}}class JA extends vt{constructor(){super({id:"editor.foldAllMarkerRegions",label:L(1032,"Fold All Regions"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2077),weight:100}})}invoke(e,t,i,n,s){if(t.regions.hasTypes())gC(t,Nl.Region.value,!0);else{const r=i.getModel();if(!r)return;const a=s.getLanguageConfiguration(r.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);uC(t,l,!0)}}}}class QA extends vt{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:L(1033,"Unfold All Regions"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2078),weight:100}})}invoke(e,t,i,n,s){if(t.regions.hasTypes())gC(t,Nl.Region.value,!1);else{const r=i.getModel();if(!r)return;const a=s.getLanguageConfiguration(r.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);uC(t,l,!1)}}}}class eF extends vt{constructor(){super({id:"editor.foldAllExcept",label:L(1034,"Fold All Except Selected"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2136),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);HD(t,!0,n)}}class tF extends vt{constructor(){super({id:"editor.unfoldAllExcept",label:L(1035,"Unfold All Except Selected"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2134),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);HD(t,!1,n)}}class iF extends vt{constructor(){super({id:"editor.foldAll",label:L(1036,"Fold All"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2069),weight:100}})}invoke(e,t,i){Ml(t,!0)}}class nF extends vt{constructor(){super({id:"editor.unfoldAll",label:L(1037,"Unfold All"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2088),weight:100}})}invoke(e,t,i){Ml(t,!1)}}const Pa=class Pa extends vt{getFoldingLevel(){return parseInt(this.id.substr(Pa.ID_PREFIX.length))}invoke(e,t,i){LA(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}};Pa.ID_PREFIX="editor.foldLevel",Pa.ID=e=>Pa.ID_PREFIX+e;let Du=Pa;class sF extends vt{constructor(){super({id:"editor.gotoParentFold",label:L(1038,"Go to Parent Fold"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const s=DA(n[0],t);s!==null&&i.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class oF extends vt{constructor(){super({id:"editor.gotoPreviousFold",label:L(1039,"Go to Previous Folding Range"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const s=EA(n[0],t);s!==null&&i.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class rF extends vt{constructor(){super({id:"editor.gotoNextFold",label:L(1040,"Go to Next Folding Range"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const s=RA(n[0],t);s!==null&&i.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}}class aF extends vt{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:L(1041,"Create Folding Range from Selection"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2135),weight:100}})}invoke(e,t,i){const n=[],s=i.getSelections();if(s){for(const r of s){let a=r.endLineNumber;r.endColumn===1&&--a,a>r.startLineNumber&&(n.push({startLineNumber:r.startLineNumber,endLineNumber:a,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:r.startLineNumber,startColumn:1,endLineNumber:r.startLineNumber,endColumn:1}))}if(n.length>0){n.sort((a,l)=>a.startLineNumber-l.startLineNumber);const r=oi.sanitizeAndMerge(t.regions,n,i.getModel()?.getLineCount());t.updatePost(oi.fromFoldRanges(r))}}}}class lF extends vt{constructor(){super({id:"editor.removeManualFoldingRanges",label:L(1042,"Remove Manual Folding Ranges"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2137),weight:100}})}invoke(e,t,i){const n=i.getSelections();if(n){const s=[];for(const r of n){const{startLineNumber:a,endLineNumber:l}=r;s.push(l>=a?{startLineNumber:a,endLineNumber:l}:{endLineNumber:l,startLineNumber:a})}t.removeManualRanges(s),e.triggerFoldingModelChanged()}}}class dF extends vt{constructor(){super({id:"editor.toggleImportFold",label:L(1043,"Toggle Import Fold"),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,weight:100}})}async invoke(e,t){const i=[],n=t.regions;for(let s=n.length-1;s>=0;s--)n.getType(s)===Nl.Imports.value&&i.push(n.toRegion(s));t.toggleCollapseState(i),e.triggerFoldingModelChanged()}}ae(uo.ID,uo,0);P(jA);P(qA);P(KA);P(ZA);P(XA);P(iF);P(nF);P(YA);P(JA);P(QA);P(eF);P(tF);P(GA);P(sF);P(oF);P(rF);P(aF);P(lF);P(dF);for(let o=1;o<=7;o++)T0(new Du({id:Du.ID(o),label:L(1044,"Fold Level {0}",o),precondition:ut,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2048|21+o),weight:100}}));Ee.registerCommand("_executeFoldingRangeProvider",async function(o,...e){const[t]=e;if(!(t instanceof Le))throw Gn();const i=o.get(G),n=o.get(Yt).getModel(t);if(!n)throw Gn();const s=o.get(Ie);if(!s.getValue("editor.folding",{resource:t}))return[];const r=o.get(st),a=s.getValue("editor.foldingStrategy",{resource:t}),l={get limit(){return s.getValue("editor.foldingMaximumRegions",{resource:t})},update:(u,f)=>{}},d=new fC(n,r,l);let c=d;if(a!=="indentation"){const u=uo.getFoldingRangeProviders(i,n);u.length&&(c=new pC(n,u,()=>{},l,d))}const h=await c.compute(de.None),g=[];try{if(h)for(let u=0;u<h.length;u++){const f=h.getType(u);g.push({start:h.getStartLineNumber(u),end:h.getEndLineNumber(u),kind:f?Nl.fromValue(f):void 0})}return g}finally{c.dispose()}});class cF extends F{constructor(){super({id:"editor.action.fontZoomIn",label:L(1054,"Increase Editor Font Size"),precondition:void 0})}run(e,t){Xd.setZoomLevel(Xd.getZoomLevel()+1)}}class hF extends F{constructor(){super({id:"editor.action.fontZoomOut",label:L(1055,"Decrease Editor Font Size"),precondition:void 0})}run(e,t){Xd.setZoomLevel(Xd.getZoomLevel()-1)}}class uF extends F{constructor(){super({id:"editor.action.fontZoomReset",label:L(1056,"Reset Editor Font Size"),precondition:void 0})}run(e,t){Xd.setZoomLevel(0)}}P(cF);P(hF);P(uF);var UD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},xd=function(o,e){return function(t,i){e(t,i,o)}},za;let Eu=(za=class{constructor(e,t,i,n){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=n,this._disposables=new W,this._sessionDisposables=new W,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(s=>{s.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new tu;for(const n of t.autoFormatTriggerCharacters)i.add(n.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(n=>{const s=n.charCodeAt(n.length-1);i.has(s)&&this._trigger(String.fromCharCode(s))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),n=new Je,s=this._editor.onDidChangeModelContent(r=>{if(r.isFlush){n.cancel(),s.dispose();return}for(let a=0,l=r.changes.length;a<l;a++)if(r.changes[a].range.endLineNumber<=i.lineNumber){n.cancel(),s.dispose();return}});P0(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),n.token).then(r=>{n.token.isCancellationRequested||ri(r)&&(this._accessibilitySignalService.playSignal($d.format,{userGesture:!1}),O0.execute(this._editor,r,!0))}).finally(()=>{s.dispose()})}},za.ID="editor.contrib.autoFormat",za);Eu=UD([xd(1,G),xd(2,as),xd(3,rS)],Eu);var ja;let Ru=(ja=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new W,this._callOnModel=new W,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(64)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(IL,this.editor,e,2,Un.None,de.None,!1).catch(we))}},ja.ID="editor.contrib.formatOnPaste",ja);Ru=UD([xd(1,G),xd(2,ee)],Ru);class gF extends F{constructor(){super({id:"editor.action.formatDocument",label:L(1057,"Format Document"),precondition:T.and(C.notInCompositeEditor,C.writable,C.hasDocumentFormattingProvider),kbOpts:{kbExpr:C.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(e,t){if(t.hasModel()){const i=e.get(ee);await e.get(nl).showWhile(i.invokeFunction(M0,t,1,Un.None,de.None,!0),250)}}}class fF extends F{constructor(){super({id:"editor.action.formatSelection",label:L(1058,"Format Selection"),precondition:T.and(C.writable,C.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2084),weight:100},contextMenuOpts:{when:C.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(e,t){if(!t.hasModel())return;const i=e.get(ee),n=t.getModel(),s=t.getSelections().map(a=>a.isEmpty()?new I(a.startLineNumber,1,a.startLineNumber,n.getLineMaxColumn(a.startLineNumber)):a);await e.get(nl).showWhile(i.invokeFunction(IL,t,s,1,Un.None,de.None,!0),250)}}ae(Eu.ID,Eu,2);ae(Ru.ID,Ru,2);P(gF);P(fF);Ee.registerCommand("editor.action.format",async o=>{const e=o.get(Ue).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=o.get(it);e.getSelection().isEmpty()?await t.executeCommand("editor.action.formatDocument"):await t.executeCommand("editor.action.formatSelection")});var pF=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Kp=function(o,e){return function(t,i){e(t,i,o)}};class Ea{remove(){this.parent?.children.delete(this.id)}static findId(e,t){let i;typeof e=="string"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let n=i;for(let s=0;t.children.get(n)!==void 0;s++)n=`${i}_${s}`;return n}static empty(e){return e.children.size===0}}class q_ extends Ea{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class $D extends Ea{constructor(e,t,i,n){super(),this.id=e,this.parent=t,this.label=i,this.order=n,this.children=new Map}}class Hn extends Ea{static create(e,t,i){const n=new Je(i),s=new Hn(t.uri),r=e.ordered(t),a=r.map((d,c)=>{const h=Ea.findId(`provider_${c}`,s),g=new $D(h,s,d.displayName??"Unknown Outline Provider",c);return Promise.resolve(d.provideDocumentSymbols(t,n.token)).then(u=>{for(const f of u||[])Hn._makeOutlineElement(f,g);return g},u=>(Ze(u),g)).then(u=>{Ea.empty(u)?u.remove():s._groups.set(h,u)})}),l=e.onDidChange(()=>{const d=e.ordered(t);sn(d,r)||n.cancel()});return Promise.all(a).then(()=>n.token.isCancellationRequested&&!i.isCancellationRequested?Hn.create(e,t,i):s._compact()).finally(()=>{n.dispose(),l.dispose(),n.dispose()})}static _makeOutlineElement(e,t){const i=Ea.findId(e,t),n=new q_(i,t,e);if(e.children)for(const s of e.children)Hn._makeOutlineElement(s,n);t.children.set(n.id,n)}constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=Fs.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof q_?e.push(t.symbol):e.push(...Fs.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>I.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return Hn._flattenDocumentSymbols(t,e,""),t.sort((i,n)=>$.compare(I.getStartPosition(i.range),I.getStartPosition(n.range))||$.compare(I.getEndPosition(n.range),I.getEndPosition(i.range)))}static _flattenDocumentSymbols(e,t,i){for(const n of t)e.push({kind:n.kind,tags:n.tags,name:n.name,detail:n.detail,containerName:n.containerName||i,range:n.range,selectionRange:n.selectionRange,children:void 0}),n.children&&Hn._flattenDocumentSymbols(e,n.children,n.name)}}const Qc=Rn("IOutlineModelService");let K_=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new W,this._cache=new Wc(15,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved(n=>{this._cache.delete(n.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,n=i.ordered(e);let s=this._cache.get(e.id);if(!s||s.versionId!==e.getVersionId()||!sn(s.provider,n)){const a=new Je;s={versionId:e.getVersionId(),provider:n,promiseCnt:0,source:a,promise:Hn.create(i,e,a.token),model:void 0},this._cache.set(e.id,s);const l=Date.now();s.promise.then(d=>{s.model=d,this._debounceInformation.update(e,Date.now()-l)}).catch(d=>{this._cache.delete(e.id)})}if(s.model)return s.model;s.promiseCnt+=1;const r=t.onCancellationRequested(()=>{--s.promiseCnt===0&&(s.source.cancel(),this._cache.delete(e.id))});try{return await s.promise}finally{r.dispose()}}};K_=pF([Kp(0,G),Kp(1,Hi),Kp(2,Yt)],K_);os(Qc,K_,1);Ee.registerCommand("_executeDocumentSymbolProvider",async function(o,...e){const[t]=e;Ce(Le.isUri(t));const i=o.get(Qc),s=await o.get(ci).createModelReference(t);try{return(await i.getOrCreate(s.object.textEditorModel,de.None)).getTopLevelSymbols()}finally{s.dispose()}});const sp=new class{constructor(){this._implementations=[]}register(e){return this._implementations.push(e),{dispose:()=>{const t=this._implementations.indexOf(e);t!==-1&&this._implementations.splice(t,1)}}}getImplementations(){return this._implementations}};var mF=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},_F=function(o,e){return function(t,i){e(t,i,o)}};function vF(o){return o instanceof zD?o._instance:o}let zD=class{constructor(e){this.instantiationService=e}init(...e){}};function bF(o){return o.get()}let _y=class extends zD{constructor(e,t){super(t),this.init(e)}};_y=mF([_F(1,ee)],_y);class Al{validateOrThrow(e){const t=this.validate(e);if(t.error)throw new Error(t.error.message);return t.content}}class op extends Al{constructor(e){super(),this.type=e}validate(e){return typeof e!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof e}`}}:{content:e,error:void 0}}getJSONSchema(){return{type:this.type}}}const SF=new op("string");function CF(){return SF}new op("number");const wF=new op("boolean");function vy(){return wF}new op("object");class yF extends Al{validate(e){return{content:e,error:void 0}}getJSONSchema(){return{}}}function IF(){return new yF}class jD extends Al{validate(e){return e!==void 0?{content:void 0,error:{message:`Expected undefined, but got ${typeof e}`}}:{content:void 0,error:void 0}}getJSONSchema(){return{}}}function xF(){return new jD}class G_{constructor(e){this.validator=e}}function bh(o){return new G_(o)}class LF extends Al{constructor(e){super(),this.properties=e}validate(e){if(typeof e!="object"||e===null)return{content:void 0,error:{message:"Expected object"}};const t={};for(const i in this.properties){const n=this.properties[i],s=e[i],r=n instanceof G_,a=r?n.validator:n;if(r&&s===void 0)continue;const{content:l,error:d}=a.validate(s);if(d)return{content:void 0,error:{message:`Error in property '${i}': ${d.message}`}};t[i]=l}return{content:t,error:void 0}}getJSONSchema(){const e=[],t={};for(const[n,s]of Object.entries(this.properties)){const r=s instanceof G_,a=r?s.validator:s;t[n]=a.getJSONSchema(),r||e.push(n)}return{type:"object",properties:t,...e.length>0?{required:e}:{}}}}function DF(o){return new LF(o)}class EF extends Al{constructor(e){super(),this.validators=e}validate(e){let t;for(const i of this.validators){const{content:n,error:s}=i.validate(e);if(!s)return{content:n,error:void 0};t=s}return{content:void 0,error:t}}getJSONSchema(){return{oneOf:A0(this.validators,e=>{if(!(e instanceof jD))return e.getJSONSchema()})}}}function RF(...o){return new EF(o)}class NF extends Al{constructor(e,t){super(),this._ref=e,this._validator=t}validate(e){return this._validator.validate(e)}getJSONSchema(){return{$ref:this._ref}}}function kF(o,e){return new NF(o,e)}const X={Visible:QS,HasFocusedSuggestion:new ie("suggestWidgetHasFocusedSuggestion",!1,m(1505,"Whether any suggestion is focused")),DetailsVisible:new ie("suggestWidgetDetailsVisible",!1,m(1506,"Whether suggestion details are visible")),DetailsFocused:new ie("suggestWidgetDetailsFocused",!1,m(1507,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new ie("suggestWidgetMultipleSuggestions",!1,m(1508,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new ie("suggestionMakesTextEdit",!0,m(1509,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new ie("acceptSuggestionOnEnter",!0,m(1510,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new ie("suggestionHasInsertAndReplaceRange",!1,m(1511,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new ie("suggestionInsertMode",void 0,{type:"string",description:m(1512,"Whether the default behaviour is to insert or replace")}),CanResolve:new ie("suggestionCanResolve",!1,m(1513,"Whether the current suggestion supports to resolve further details"))},Xn=new q("suggestWidgetStatusBar");let TF=class{constructor(e,t,i,n){this.position=e,this.completion=t,this.container=i,this.provider=n,this.isInvalid=!1,this.score=Zd.Default,this.distance=0,this.textLabel=typeof t.label=="string"?t.label:t.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,I.isIRange(t.range)?(this.editStart=new $(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new $(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new $(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||I.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new $(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new $(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new $(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||I.spansMultipleLines(t.range.insert)||I.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof n.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(e){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),i=new _i(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(n=>{Object.assign(this.completion,n),this._resolveDuration=i.elapsed()},n=>{rs(n)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}};const Vg=class Vg{constructor(e=2,t=new Set,i=new Set,n=new Map,s=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=n,this.showDeprecated=s}};Vg.default=new Vg;let rc=Vg;class PF{constructor(e,t,i,n){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=n}}async function mC(o,e,t,i=rc.default,n={triggerKind:0},s=de.None){const r=new _i;t=t.clone();const a=e.getWordAtPosition(t),l=a?new I(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):I.fromPositions(t),d={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},c=[],h=new W,g=[];let u=!1;const f=(_,v,S)=>{let y=!1;if(!v)return y;for(const x of v.suggestions)if(!i.kindFilter.has(x.kind)){if(!i.showDeprecated&&x?.tags?.includes(1))continue;x.range||(x.range=d),x.sortText||(x.sortText=typeof x.label=="string"?x.label:x.label.label),!u&&x.insertTextRules&&x.insertTextRules&4&&(u=Br.guessNeedsClipboard(x.insertText)),c.push(new TF(t,x,v,_)),y=!0}return cS(v)&&h.add(v),g.push({providerName:_._debugDisplayName??"unknown_provider",elapsedProvider:v.duration??-1,elapsedOverall:S.elapsed()}),y},p=(async()=>{})();for(const _ of o.orderedGroups(e)){let v=!1;if(await Promise.all(_.map(async S=>{if(i.providerItemsToReuse.has(S)){const y=i.providerItemsToReuse.get(S);y.forEach(x=>c.push(x)),v=v||y.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(S)))try{const y=new _i,x=await S.provideCompletionItems(e,t,n,s);v=f(S,x,y)||v}catch(y){Ze(y)}})),v||s.isCancellationRequested)break}return await p,s.isCancellationRequested?(h.dispose(),Promise.reject(new mS)):new PF(c.sort(AF(i.snippetSortOrder)),u,{entries:g,elapsed:r.elapsed()},h)}function _C(o,e){if(o.sortTextLow&&e.sortTextLow){if(o.sortTextLow<e.sortTextLow)return-1;if(o.sortTextLow>e.sortTextLow)return 1}return o.textLabel<e.textLabel?-1:o.textLabel>e.textLabel?1:o.completion.kind-e.completion.kind}function OF(o,e){if(o.completion.kind!==e.completion.kind){if(o.completion.kind===28)return-1;if(e.completion.kind===28)return 1}return _C(o,e)}function MF(o,e){if(o.completion.kind!==e.completion.kind){if(o.completion.kind===28)return 1;if(e.completion.kind===28)return-1}return _C(o,e)}const rp=new Map;rp.set(0,OF);rp.set(2,MF);rp.set(1,_C);function AF(o){return rp.get(o)}Ee.registerCommand("_executeCompletionItemProvider",async(o,...e)=>{const[t,i,n,s]=e;Ce(Le.isUri(t)),Ce($.isIPosition(i)),Ce(typeof n=="string"||!n),Ce(typeof s=="number"||!s);const{completionProvider:r}=o.get(G),a=await o.get(ci).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},d=[],c=a.object.textEditorModel.validatePosition(i),h=await mC(r,a.object.textEditorModel,c,void 0,{triggerCharacter:n??void 0,triggerKind:n?1:0});for(const g of h.items)d.length<(s??0)&&d.push(g.resolve(de.None)),l.incomplete=l.incomplete||g.container.incomplete,l.suggestions.push(g.completion);try{return await Promise.all(d),l}finally{setTimeout(()=>h.disposable.dispose(),100)}}finally{a.dispose()}});function FF(o,e){o.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(e),void 0,!0)}class Ra{static isAllOff(e){return e.other==="off"&&e.comments==="off"&&e.strings==="off"}static isAllOn(e){return e.other==="on"&&e.comments==="on"&&e.strings==="on"}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}const zt=class zt{};zt.inlineSuggestionVisible=new ie("inlineSuggestionVisible",!1,m(1234,"Whether an inline suggestion is visible")),zt.inlineSuggestionAlternativeActionVisible=new ie("inlineSuggestionAlternativeActionVisible",!1,m(1235,"Whether an alternative action for the inline suggestion is visible.")),zt.inlineSuggestionHasIndentation=new ie("inlineSuggestionHasIndentation",!1,m(1236,"Whether the inline suggestion starts with whitespace")),zt.inlineSuggestionHasIndentationLessThanTabSize=new ie("inlineSuggestionHasIndentationLessThanTabSize",!0,m(1237,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),zt.suppressSuggestions=new ie("inlineSuggestionSuppressSuggestions",void 0,m(1238,"Whether suggestions should be suppressed for the current suggestion")),zt.cursorBeforeGhostText=new ie("cursorBeforeGhostText",!1,m(1239,"Whether the cursor is at ghost text")),zt.cursorInIndentation=new ie("cursorInIndentation",!1,m(1240,"Whether the cursor is in indentation")),zt.hasSelection=new ie("editor.hasSelection",!1,m(1241,"Whether the editor has a selection")),zt.cursorAtInlineEdit=new ie("cursorAtInlineEdit",!1,m(1242,"Whether the cursor is at an inline edit")),zt.inlineEditVisible=new ie("inlineEditIsVisible",!1,m(1243,"Whether an inline edit is visible")),zt.tabShouldJumpToInlineEdit=new ie("tabShouldJumpToInlineEdit",!1,m(1244,"Whether tab should jump to an inline edit.")),zt.tabShouldAcceptInlineEdit=new ie("tabShouldAcceptInlineEdit",!1,m(1245,"Whether tab should accept the inline edit.")),zt.inInlineEditsPreviewEditor=new ie("inInlineEditsPreviewEditor",!0,m(1246,"Whether the current code editor is showing an inline edits preview"));let ge=zt;var qD=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Nu=function(o,e){return function(t,i){e(t,i,o)}};class by{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let Z_=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new Y,this.onDidChange=this._onDidChange.event,this._dispoables=new W,this._markers=[],this._nextIdx=-1,Le.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const n=this._configService.getValue("problems.sortOrder"),s=(a,l)=>{let d=rw(a.resource.toString(),l.resource.toString());return d===0&&(n==="position"?d=I.compareRangesUsingStarts(a,l)||_t.compare(a.severity,l.severity):d=_t.compare(a.severity,l.severity)||I.compareRangesUsingStarts(a,l)),d},r=()=>{let a=this._markerService.read({resource:Le.isUri(e)?e:void 0,severities:_t.Error|_t.Warning|_t.Info});return typeof e=="function"&&(a=a.filter(l=>this._resourceFilter(l.resource))),a.sort(s),sn(a,this._markers,(l,d)=>l.resource.toString()===d.resource.toString()&&l.startLineNumber===d.startLineNumber&&l.startColumn===d.startColumn&&l.endLineNumber===d.endLineNumber&&l.endColumn===d.endColumn&&l.severity===d.severity&&l.message===d.message)?!1:(this._markers=a,!0)};r(),this._dispoables.add(t.onMarkerChanged(a=>{(!this._resourceFilter||a.some(l=>this._resourceFilter(l)))&&r()&&(this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new by(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let n=this._markers.findIndex(s=>ro(s.resource,e.uri));if(n<0)n=F0(this._markers.length,s=>rw(this._markers[s].resource.toString(),e.uri.toString())),n<0&&(n=~n),i?this._nextIdx=n:this._nextIdx=(this._markers.length+n-1)%this._markers.length;else{let s=!1,r=!1;for(let a=n;a<this._markers.length;a++){let l=I.lift(this._markers[a]);if(l.isEmpty()){const d=e.getWordAtPosition(l.getStartPosition());d&&(l=new I(l.startLineNumber,d.startColumn,l.startLineNumber,d.endColumn))}if(t&&(l.containsPosition(t)||t.isBeforeOrEqual(l.getStartPosition()))){this._nextIdx=a,s=!0,r=!l.containsPosition(t);break}if(this._markers[a].resource.toString()!==e.uri.toString())break}s?r&&!i&&(this._nextIdx-=1):this._nextIdx=i?0:this._markers.length-1}this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,i){if(this._markers.length===0)return!1;const n=this._nextIdx;return this._nextIdx===-1?this._initIdx(t,i,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),n!==this._nextIdx}find(e,t){let i=this._markers.findIndex(n=>n.resource.toString()===e.toString());if(!(i<0)){for(;i<this._markers.length;i++)if(I.containsPosition(this._markers[i],t))return new by(this._markers[i],i+1,this._markers.length)}}};Z_=qD([Nu(1,Df),Nu(2,Ie)],Z_);const KD=Rn("IMarkerNavigationService");let X_=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new xL}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new Z_(e,this._markerService,this._configService)}};X_=qD([Nu(0,Df),Nu(1,Ie)],X_);os(KD,X_,1);var Y_;(function(o){function e(t){switch(t){case ih.Ignore:return"severity-ignore "+ce.asClassName(U.info);case ih.Info:return ce.asClassName(U.info);case ih.Warning:return ce.asClassName(U.warning);case ih.Error:return ce.asClassName(U.error);default:return""}}o.className=e})(Y_||(Y_={}));var WF=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ca=function(o,e){return function(t,i){e(t,i,o)}},J_;class HF{constructor(e,t,i,n,s){this._openerService=n,this._labelService=s,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new W,this._editor=t;const r=document.createElement("div");r.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),r.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),r.appendChild(this._relatedBlock),this._disposables.add(co(this._relatedBlock,"click",a=>{a.preventDefault();const l=this._relatedDiagnostics.get(a.target);l&&i(l)})),this._scrollable=new z0(r,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(a=>{r.style.left=`-${a.scrollLeft}px`,r.style.top=`-${a.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){kt(this._disposables)}update(e){const{source:t,message:i,relatedInformation:n,code:s}=e;let r=(t?.length||0)+2;s&&(typeof s=="string"?r+=s.length:r+=s.value.length);const a=Qn(i);this._lines=a.length,this._longestLineLength=0;for(const g of a)this._longestLineLength=Math.max(g.length+r,this._longestLineLength);pi(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),ao(this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const g of a)l=document.createElement("div"),l.innerText=g,g===""&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||s){const g=document.createElement("span");if(g.classList.add("details"),l.appendChild(g),t){const u=document.createElement("span");u.innerText=t,u.classList.add("source"),g.appendChild(u)}if(s)if(typeof s=="string"){const u=document.createElement("span");u.innerText=`(${s})`,u.classList.add("code"),g.appendChild(u)}else{this._codeLink=B("a.code-link"),this._codeLink.setAttribute("href",`${s.target.toString()}`),this._codeLink.onclick=f=>{this._openerService.open(s.target,{allowCommands:!0}),f.preventDefault(),f.stopPropagation()};const u=z(this._codeLink,B("span"));u.innerText=s.value,g.appendChild(this._codeLink)}}if(pi(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),ri(n)){const g=this._relatedBlock.appendChild(document.createElement("div"));g.style.paddingTop=`${Math.floor(this._editor.getOption(75)*.66)}px`,this._lines+=1;for(const u of n){const f=document.createElement("div"),p=document.createElement("a");p.classList.add("filename"),p.innerText=`${this._labelService.getUriBasenameLabel(u.resource)}(${u.startLineNumber}, ${u.startColumn}): `,p.title=this._labelService.getUriLabel(u.resource),this._relatedDiagnostics.set(p,u);const _=document.createElement("span");_.innerText=u.message,f.appendChild(p),f.appendChild(_),this._lines+=1,g.appendChild(f)}}const d=this._editor.getOption(59),c=Math.ceil(d.typicalFullwidthCharacterWidth*this._longestLineLength*.75),h=d.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:c,scrollHeight:h})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case _t.Error:t=m(1067,"Error");break;case _t.Warning:t=m(1068,"Warning");break;case _t.Info:t=m(1069,"Info");break;case _t.Hint:t=m(1070,"Hint");break}let i=m(1071,"{0}: {1} at {2}. ",t,e.message,e.startLineNumber+":"+e.startColumn);const n=this._editor.getModel();return n&&e.startLineNumber<=n.getLineCount()&&e.startLineNumber>=1&&(i=`${n.getLineContent(e.startLineNumber)}, ${i}`),i}}var gr;let ac=(gr=class extends vu{constructor(e,t,i,n,s,r,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},s),this._themeService=t,this._openerService=i,this._menuService=n,this._contextKeyService=r,this._labelService=a,this._callOnDispose=new W,this._onDidSelectRelatedInformation=new Y,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=_t.Warning,this._backgroundColor=fe.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor($F);let t=Q_,i=VF;this._severity===_t.Warning?(t=Uh,i=BF):this._severity===_t.Info&&(t=ev,i=UF);const n=e.getColor(t),s=e.getColor(i);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:s,primaryHeadingColor:e.getColor(CD),secondaryHeadingColor:e.getColor(wD)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),this._onDidSelectRelatedInformation.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(n=>this.editor.focus()));const t=this._menuService.getMenuActions(J_.TitleMenu,this._contextKeyService),i=W0(t);this._actionbarWidget.push(i,{label:!1,icon:!0,index:0})}_fillTitleIcon(e){this._icon=z(e,B(""))}_fillBody(e){this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new HF(this._container,this.editor,t=>this._onDidSelectRelatedInformation.fire(t),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const n=I.lift(e),s=this.editor.getPosition(),r=s&&n.containsPosition(s)?s:n.getStartPosition();super.show(r,this.computeRequiredHeight());const a=this.editor.getModel();if(a){const l=i>1?m(1072,"{0} of {1} problems",t,i):m(1073,"{0} of {1} problem",t,i);this.setTitle(on(a.uri),l)}this._icon.className=`codicon ${Y_.className(_t.toSeverity(this._severity))}`,this.editor.revealPositionInCenterIfOutsideViewport(r,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}},J_=gr,gr.TitleMenu=new q("gotoErrorTitleMenu"),gr);ac=J_=WF([ca(1,yt),ca(2,Xr),ca(3,bo),ca(4,ee),ca(5,pe),ca(6,al)],ac);const Sy=yS(V0,H0),Cy=yS(U0,B0),wy=yS(Lm,$0),Q_=V("editorMarkerNavigationError.background",{dark:Sy,light:Sy,hcDark:Ln,hcLight:Ln},m(1074,"Editor marker navigation widget error color.")),VF=V("editorMarkerNavigationError.headerBackground",{dark:Ye(Q_,.1),light:Ye(Q_,.1),hcDark:null,hcLight:null},m(1075,"Editor marker navigation widget error heading background.")),Uh=V("editorMarkerNavigationWarning.background",{dark:Cy,light:Cy,hcDark:Ln,hcLight:Ln},m(1076,"Editor marker navigation widget warning color.")),BF=V("editorMarkerNavigationWarning.headerBackground",{dark:Ye(Uh,.1),light:Ye(Uh,.1),hcDark:"#0C141F",hcLight:Ye(Uh,.2)},m(1077,"Editor marker navigation widget warning heading background.")),ev=V("editorMarkerNavigationInfo.background",{dark:wy,light:wy,hcDark:Ln,hcLight:Ln},m(1078,"Editor marker navigation widget info color.")),UF=V("editorMarkerNavigationInfo.headerBackground",{dark:Ye(ev,.1),light:Ye(ev,.1),hcDark:null,hcLight:null},m(1079,"Editor marker navigation widget info heading background.")),$F=V("editorMarkerNavigation.background",iu,m(1080,"Editor marker navigation widget background."));var zF=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Sh=function(o,e){return function(t,i){e(t,i,o)}},hd,fr;let Kr=(fr=class{static get(e){return e.getContribution(hd.ID)}constructor(e,t,i,n,s){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=n,this._instantiationService=s,this._sessionDispoables=new W,this._editor=e,this._widgetVisible=GD.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(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(ac,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(i=>{(!this._model?.selected||!I.containsPosition(this._model?.selected.marker,i.position))&&this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const i=this._model.find(this._editor.getModel().uri,this._widget.position);i?this._widget.updateMarker(i.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(i=>{this._editorService.openCodeEditor({resource:i.resource,options:{pinned:!0,revealIfOpened:!0,selection:I.lift(i).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=this._getOrCreateModel(t.uri);i.resetIndex(),i.move(!0,t,new $(e.startLineNumber,e.startColumn)),i.selected&&this._widget.showAtMarker(i.selected.marker,i.selected.index,i.selected.total)}async navigate(e,t){if(!this._editor.hasModel())return;const i=this._editor.getModel(),n=this._getOrCreateModel(t?void 0:i.uri);if(n.move(e,i,this._editor.getPosition()),!!n.selected)if(n.selected.marker.resource.toString()!==i.uri.toString()){this._cleanUp();const s=await this._editorService.openCodeEditor({resource:n.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:n.selected.marker}},this._editor);s&&(hd.get(s)?.close(),hd.get(s)?.navigate(e,t))}else this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}},hd=fr,fr.ID="editor.contrib.markerController",fr);Kr=hd=zF([Sh(1,KD),Sh(2,pe),Sh(3,Ue),Sh(4,ee)],Kr);class ap extends F{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}async run(e,t){t.hasModel()&&await Kr.get(t)?.navigate(this._next,this._multiFile)}}const Wo=class Wo extends ap{constructor(){super(!0,!1,{id:Wo.ID,label:Wo.LABEL,precondition:void 0,kbOpts:{kbExpr:C.focus,primary:578,weight:100},menuOpts:{menuId:ac.TitleMenu,title:Wo.LABEL.value,icon:ze("marker-navigation-next",U.arrowDown,m(1059,"Icon for goto next marker.")),group:"navigation",order:1}})}};Wo.ID="editor.action.marker.next",Wo.LABEL=L(1063,"Go to Next Problem (Error, Warning, Info)");let lc=Wo;const Ho=class Ho extends ap{constructor(){super(!1,!1,{id:Ho.ID,label:Ho.LABEL,precondition:void 0,kbOpts:{kbExpr:C.focus,primary:1602,weight:100},menuOpts:{menuId:ac.TitleMenu,title:Ho.LABEL.value,icon:ze("marker-navigation-previous",U.arrowUp,m(1060,"Icon for goto previous marker.")),group:"navigation",order:2}})}};Ho.ID="editor.action.marker.prev",Ho.LABEL=L(1064,"Go to Previous Problem (Error, Warning, Info)");let ku=Ho;const Bg=class Bg extends ap{constructor(){super(!0,!0,{id:Bg.ID,label:L(1065,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:66,weight:100},menuOpts:{menuId:q.MenubarGoMenu,title:m(1061,"Next &&Problem"),group:"6_problem_nav",order:1}})}};Bg.ID="editor.action.marker.nextInFiles";let Tu=Bg;const Ug=class Ug extends ap{constructor(){super(!1,!0,{id:Ug.ID,label:L(1066,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:1090,weight:100},menuOpts:{menuId:q.MenubarGoMenu,title:m(1062,"Previous &&Problem"),group:"6_problem_nav",order:2}})}};Ug.ID="editor.action.marker.prevInFiles";let Pu=Ug;ae(Kr.ID,Kr,4);P(lc);P(ku);P(Tu);P(Pu);const GD=new ie("markersNavigationVisible",!1),jF=Mt.bindToContribution(Kr.get);K(new jF({id:"closeMarkersNavigation",precondition:GD,handler:o=>o.close(),kbOpts:{weight:150,kbExpr:C.focus,primary:9,secondary:[1033]}}));class qF{constructor(e,t,i){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=i}getEditOperations(e,t){const i=KF(e,this._cursors,this._trimInRegexesAndStrings);for(let n=0,s=i.length;n<s;n++){const r=i[n];t.addEditOperation(r.range,r.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function KF(o,e,t){e.sort((a,l)=>a.lineNumber===l.lineNumber?a.column-l.column:a.lineNumber-l.lineNumber);for(let a=e.length-2;a>=0;a--)e[a].lineNumber===e[a+1].lineNumber&&e.splice(a,1);const i=[];let n=0,s=0;const r=e.length;for(let a=1,l=o.getLineCount();a<=l;a++){const d=o.getLineContent(a),c=d.length+1;let h=0;if(s<r&&e[s].lineNumber===a&&(h=e[s].column,s++,h===c)||d.length===0)continue;const g=Sd(d);let u=0;if(g===-1)u=1;else if(g!==d.length-1)u=g+2;else continue;if(!t){if(!o.tokenization.hasAccurateTokensForLine(a))continue;const f=o.tokenization.getLineTokens(a),p=f.getStandardTokenType(f.findTokenIndexAtOffset(u));if(p===2||p===3)continue}u=Math.max(h,u),i[n++]=$e.delete(new I(a,u,a,c))}return i}class ZD{constructor(e,t,i){this._selection=e,this._isCopyingDown=t,this._noop=i||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const n=[];for(let r=i.startLineNumber;r<=i.endLineNumber;r++)n.push(e.getLineContent(r));const s=n.join(`
21
- `);s===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new I(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber+1,1),i.endLineNumber===e.getLineCount()?"":`
22
- `):this._isCopyingDown?t.addEditOperation(new I(i.startLineNumber,1,i.startLineNumber,1),s+`
23
- `):t.addEditOperation(new I(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),`
24
- `+s),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let n=i.startLineNumber,s=i.startColumn,r=i.endLineNumber,a=i.endColumn;this._startLineNumberDelta!==0&&(n=n+this._startLineNumberDelta,s=1),this._endLineNumberDelta!==0&&(r=r+this._endLineNumberDelta,a=1),i=J.createWithDirection(n,s,r,a,this._selectionDirection)}return i}}function jt(o,e){let t=0;for(let i=0;i<o.length;i++)o.charAt(i)===" "?t+=e:t++;return t}function Ld(o,e,t){o=o<0?0:o;let i="";if(!t){const n=Math.floor(o/e);o=o%e;for(let s=0;s<n;s++)i+=" "}for(let n=0;n<o;n++)i+=" ";return i}var GF=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ZF=function(o,e){return function(t,i){e(t,i,o)}};let tv=class{constructor(e,t,i,n){this._languageConfigurationService=n,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(e,t,i){return{tokenization:{getLineTokens:n=>e.tokenization.getLineTokens(t(n)),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(n,s)=>e.getLanguageIdAtPosition(n,s)},getLineContent:n=>{const s=i?.(n);return s!==void 0?s:e.getLineContent(t(n))}}}getEditOperations(e,t){const i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let n=this._selection;n.startLineNumber<n.endLineNumber&&n.endColumn===1&&(this._moveEndPositionDown=!0,n=n.setEndPosition(n.endLineNumber-1,e.getLineMaxColumn(n.endLineNumber-1)));const{tabSize:s,indentSize:r,insertSpaces:a}=e.getOptions(),l=this.buildIndentConverter(s,r,a);if(n.startLineNumber===n.endLineNumber&&e.getLineMaxColumn(n.startLineNumber)===1){const d=n.startLineNumber,c=this._isMovingDown?d+1:d-1;e.getLineMaxColumn(c)===1?t.addEditOperation(new I(1,1,1,1),null):(t.addEditOperation(new I(d,1,d,1),e.getLineContent(c)),t.addEditOperation(new I(c,1,c,e.getLineMaxColumn(c)),null)),n=new J(c,1,c,1)}else{let d,c;if(this._isMovingDown){d=n.endLineNumber+1,c=e.getLineContent(d),t.addEditOperation(new I(d-1,e.getLineMaxColumn(d-1),d,e.getLineMaxColumn(d)),null);let h=c;if(this.shouldAutoIndent(e,n)){const g=this.matchEnterRule(e,l,s,d,n.startLineNumber-1);if(g!==null){const f=Ct(e.getLineContent(d)),p=g+jt(f,s);h=Ld(p,s,a)+this.trimStart(c)}else{const f=this.createVirtualModel(e,_=>_===n.startLineNumber?d:_),p=Cd(this._autoIndent,f,e.getLanguageIdAtPosition(d,1),n.startLineNumber,l,this._languageConfigurationService);if(p!==null){const _=Ct(e.getLineContent(d)),v=jt(p,s),S=jt(_,s);v!==S&&(h=Ld(v,s,a)+this.trimStart(c))}}t.addEditOperation(new I(n.startLineNumber,1,n.startLineNumber,1),h+`
25
- `);const u=this.matchEnterRuleMovingDown(e,l,s,n.startLineNumber,d,h);if(u!==null)u!==0&&this.getIndentEditsOfMovingBlock(e,t,n,s,a,u);else{const f=this.createVirtualModel(e,_=>_===n.startLineNumber?d:_>=n.startLineNumber+1&&_<=n.endLineNumber+1?_-1:_,_=>_===n.startLineNumber?h:void 0),p=Cd(this._autoIndent,f,e.getLanguageIdAtPosition(d,1),n.startLineNumber+1,l,this._languageConfigurationService);if(p!==null){const _=Ct(e.getLineContent(n.startLineNumber)),v=jt(p,s),S=jt(_,s);if(v!==S){const y=v-S;this.getIndentEditsOfMovingBlock(e,t,n,s,a,y)}}}}else t.addEditOperation(new I(n.startLineNumber,1,n.startLineNumber,1),h+`
26
- `)}else if(d=n.startLineNumber-1,c=e.getLineContent(d),t.addEditOperation(new I(d,1,d+1,1),null),t.addEditOperation(new I(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),`
27
- `+c),this.shouldAutoIndent(e,n)){const h=this.createVirtualModel(e,u=>u===d?n.startLineNumber:u),g=this.matchEnterRule(e,l,s,n.startLineNumber,n.startLineNumber-2);if(g!==null)g!==0&&this.getIndentEditsOfMovingBlock(e,t,n,s,a,g);else{const u=Cd(this._autoIndent,h,e.getLanguageIdAtPosition(n.startLineNumber,1),d,l,this._languageConfigurationService);if(u!==null){const f=Ct(e.getLineContent(n.startLineNumber)),p=jt(u,s),_=jt(f,s);if(p!==_){const v=p-_;this.getIndentEditsOfMovingBlock(e,t,n,s,a,v)}}}}}this._selectionId=t.trackSelection(n)}buildIndentConverter(e,t,i){return{shiftIndent:n=>ll.shiftIndent(n,n.length+1,e,t,i),unshiftIndent:n=>ll.unshiftIndent(n,n.length+1,e,t,i)}}parseEnterResult(e,t,i,n,s){if(s){let r=s.indentation;s.indentAction===nh.None||s.indentAction===nh.Indent?r=s.indentation+s.appendText:s.indentAction===nh.IndentOutdent?r=s.indentation:s.indentAction===nh.Outdent&&(r=t.unshiftIndent(s.indentation)+s.appendText);const a=e.getLineContent(n);if(this.trimStart(a).indexOf(this.trimStart(r))>=0){const l=Ct(e.getLineContent(n));let d=Ct(r);const c=LL(e,n,this._languageConfigurationService);c!==null&&c&2&&(d=t.unshiftIndent(d));const h=jt(d,i),g=jt(l,i);return h-g}}return null}matchEnterRuleMovingDown(e,t,i,n,s,r){if(Sd(r)>=0){const a=e.getLineMaxColumn(s),l=Ip(this._autoIndent,e,new I(s,a,s,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,l)}else{let a=n-1;for(;a>=1;){const c=e.getLineContent(a);if(Sd(c)>=0)break;a--}if(a<1||n>e.getLineCount())return null;const l=e.getLineMaxColumn(a),d=Ip(this._autoIndent,e,new I(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,d)}}matchEnterRule(e,t,i,n,s,r){let a=s;for(;a>=1;){let c;if(a===s&&r!==void 0?c=r:c=e.getLineContent(a),Sd(c)>=0)break;a--}if(a<1||n>e.getLineCount())return null;const l=e.getLineMaxColumn(a),d=Ip(this._autoIndent,e,new I(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,d)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1),n=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(i!==n||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,n,s,r){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),d=Ct(l),h=jt(d,n)+r,g=Ld(h,n,s);g!==d&&(t.addEditOperation(new I(a,1,a,d.length+1),g),a===i.endLineNumber&&i.endColumn<=d.length+1&&g===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber<i.endLineNumber&&(i=i.setEndPosition(i.endLineNumber,2)),i}};tv=GF([ZF(3,st)],tv);const UC=class UC{constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){const i=XF(e,this.selection,this.descending);i&&t.addEditOperation(i.range,i.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,i){if(e===null)return!1;const n=XD(e,t,i);if(!n)return!1;for(let s=0,r=n.before.length;s<r;s++)if(n.before[s]!==n.after[s])return!0;return!1}};UC._COLLATOR=DL.Collator();let dc=UC;function XD(o,e,t){const i=e.startLineNumber;let n=e.endLineNumber;if(e.endColumn===1&&n--,i>=n)return null;const s=[];for(let a=i;a<=n;a++)s.push(o.getLineContent(a));let r=s.slice(0);return r.sort(dc._COLLATOR.value.compare),t===!0&&(r=r.reverse()),{startLineNumber:i,endLineNumber:n,before:s,after:r}}function XF(o,e,t){const i=XD(o,e,t);return i?$e.replace(new I(i.startLineNumber,1,i.endLineNumber,o.getLineMaxColumn(i.endLineNumber)),i.after.join(`
28
- `)):null}class YD extends F{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map((r,a)=>({selection:r,index:a,ignore:!1}));i.sort((r,a)=>I.compareRangesUsingStarts(r.selection,a.selection));let n=i[0];for(let r=1;r<i.length;r++){const a=i[r];n.selection.endLineNumber===a.selection.startLineNumber&&(n.index<a.index?a.ignore=!0:(n.ignore=!0,n=a))}const s=[];for(const r of i)s.push(new ZD(r.selection,this.down,r.ignore));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class YF extends YD{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:L(1295,"Copy Line Up"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"2_line",title:m(1290,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class JF extends YD{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:L(1296,"Copy Line Down"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"2_line",title:m(1291,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class QF extends F{constructor(){super({id:"editor.action.duplicateSelection",label:L(1297,"Duplicate Selection"),precondition:C.writable,menuOpts:{menuId:q.MenubarSelectionMenu,group:"2_line",title:m(1292,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(e,t,i){if(!t.hasModel())return;const n=[],s=t.getSelections(),r=t.getModel();for(const a of s)if(a.isEmpty())n.push(new ZD(a,!0));else{const l=new J(a.endLineNumber,a.endColumn,a.endLineNumber,a.endColumn);n.push(new j0(l,r.getValueInRange(a)))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class JD extends F{constructor(e,t){super(t),this.down=e}run(e,t){const i=e.get(st),n=[],s=t.getSelections()||[],r=t.getOption(16);for(const a of s)n.push(new tv(a,this.down,r,i));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class eW extends JD{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:L(1298,"Move Line Up"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"2_line",title:m(1293,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class tW extends JD{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:L(1299,"Move Line Down"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"2_line",title:m(1294,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class QD extends F{constructor(e,t){super(t),this.descending=e}run(e,t){if(!t.hasModel())return;const i=t.getModel();let n=t.getSelections();n.length===1&&n[0].isSingleLine()&&(n=[new J(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))]);for(const r of n)if(!dc.canRun(t.getModel(),r,this.descending))return;const s=[];for(let r=0,a=n.length;r<a;r++)s[r]=new dc(n[r],this.descending);t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class iW extends QD{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:L(1300,"Sort Lines Ascending"),precondition:C.writable,canTriggerInlineEdits:!0})}}class nW extends QD{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:L(1301,"Sort Lines Descending"),precondition:C.writable,canTriggerInlineEdits:!0})}}class sW extends F{constructor(){super({id:"editor.action.removeDuplicateLines",label:L(1302,"Delete Duplicate Lines"),precondition:C.writable,canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return;const n=[],s=[];let r=0,a=!0,l=t.getSelections();l.length===1&&l[0].isSingleLine()&&(l=[new J(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))],a=!1);for(const d of l){const c=new Set,h=[];for(let p=d.startLineNumber;p<=d.endLineNumber;p++){const _=i.getLineContent(p);c.has(_)||(h.push(_),c.add(_))}const g=new J(d.startLineNumber,1,d.endLineNumber,i.getLineMaxColumn(d.endLineNumber)),u=d.startLineNumber-r,f=new J(u,1,u+h.length-1,h[h.length-1].length+1);n.push($e.replace(g,h.join(`
29
- `))),s.push(f),r+=d.endLineNumber-d.startLineNumber+1-h.length}t.pushUndoStop(),t.executeEdits(this.id,n,a?s:void 0),t.pushUndoStop()}}class oW extends F{constructor(){super({id:"editor.action.reverseLines",label:L(1303,"Reverse lines"),precondition:C.writable,canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=t.getSelections();let s=n;s.length===1&&s[0].isSingleLine()&&(s=[new J(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))]);const r=[],a=[];for(let l=0;l<s.length;l++){const d=s[l],c=n[l];let h=d.endLineNumber;d.startLineNumber<d.endLineNumber&&d.endColumn===1&&h--;let g=new I(d.startLineNumber,1,h,i.getLineMaxColumn(h));h===i.getLineCount()&&i.getLineContent(g.endLineNumber)===""&&(g=g.setEndPosition(g.endLineNumber-1,i.getLineMaxColumn(g.endLineNumber-1)));const u=[];for(let v=g.endLineNumber;v>=g.startLineNumber;v--)u.push(i.getLineContent(v));const f=$e.replace(g,u.join(`
30
- `));r.push(f);const p=function(v){return v<=g.endLineNumber?g.endLineNumber-v+g.startLineNumber:v},_=function(v){if(v.isEmpty())return new J(p(v.positionLineNumber),v.positionColumn,p(v.positionLineNumber),v.positionColumn);{const S=p(v.selectionStartLineNumber),y=p(v.positionLineNumber),x=v.selectionStartColumn,b=v.positionColumn;return new J(S,x,y,b)}};a.push(_(c))}t.pushUndoStop(),t.executeEdits(this.id,r,a),t.pushUndoStop()}}const $g=class $g extends F{constructor(){super({id:$g.ID,label:L(1304,"Trim Trailing Whitespace"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2102),weight:100}})}run(e,t,i){let n=[];i.reason==="auto-save"&&(n=(t.getSelections()||[]).map(c=>new $(c.positionLineNumber,c.positionColumn)));const s=t.getSelection();if(s===null)return;const r=e.get(Ie),a=t.getModel(),l=r.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:a?.getLanguageId(),resource:a?.uri}),d=new qF(s,n,l);t.pushUndoStop(),t.executeCommands(this.id,[d]),t.pushUndoStop()}};$g.ID="editor.action.trimTrailingWhitespace";let iv=$g;class rW extends F{constructor(){super({id:"editor.action.deleteLines",label:L(1305,"Delete Line"),precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),n=t.getModel();if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let s=0;const r=[],a=[];for(let l=0,d=i.length;l<d;l++){const c=i[l];let h=c.startLineNumber,g=c.endLineNumber,u=1,f=n.getLineMaxColumn(g);g<n.getLineCount()?(g+=1,f=1):h>1&&(h-=1,u=n.getLineMaxColumn(h)),r.push($e.replace(new J(h,u,g,f),"")),a.push(new J(h-s,c.positionColumn,h-s,c.positionColumn)),s+=c.endLineNumber-c.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,r,a),t.revealAllCursors(!0),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(s=>{let r=s.endLineNumber;return s.startLineNumber<s.endLineNumber&&s.endColumn===1&&(r-=1),{startLineNumber:s.startLineNumber,selectionStartColumn:s.selectionStartColumn,endLineNumber:r,positionColumn:s.positionColumn}});t.sort((s,r)=>s.startLineNumber===r.startLineNumber?s.endLineNumber-r.endLineNumber:s.startLineNumber-r.startLineNumber);const i=[];let n=t[0];for(let s=1;s<t.length;s++)n.endLineNumber+1>=t[s].startLineNumber?n.endLineNumber=t[s].endLineNumber:(i.push(n),n=t[s]);return i.push(n),i}}class aW extends F{constructor(){super({id:"editor.action.indentLines",label:L(1306,"Indent Line"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,q0.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class lW extends F{constructor(){super({id:"editor.action.outdentLines",label:L(1307,"Outdent Line"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(e,t){Oh.Outdent.runEditorCommand(e,t,null)}}const zg=class zg extends F{constructor(){super({id:zg.ID,label:L(1308,"Insert Line Above"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,EL.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}};zg.ID="editor.action.insertLineBefore";let Ou=zg;const jg=class jg extends F{constructor(){super({id:jg.ID,label:L(1309,"Insert Line Below"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,EL.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}};jg.ID="editor.action.insertLineAfter";let Mu=jg;class eE extends F{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),n=this._getRangesToDelete(t),s=[];for(let l=0,d=n.length-1;l<d;l++){const c=n[l],h=n[l+1];I.intersectRanges(c,h)===null?s.push(c):n[l+1]=I.plusRange(c,h)}s.push(n[n.length-1]);const r=this._getEndCursorState(i,s),a=s.map(l=>$e.replace(l,""));t.pushUndoStop(),t.executeEdits(this.id,a,r),t.pushUndoStop()}}class dW extends eE{constructor(){super({id:"deleteAllLeft",label:L(1310,"Delete All Left"),precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(e,t){let i=null;const n=[];let s=0;return t.forEach(r=>{let a;if(r.endColumn===1&&s>0){const l=r.startLineNumber-s;a=new J(l,r.startColumn,l,r.startColumn)}else a=new J(r.startLineNumber,r.startColumn,r.startLineNumber,r.startColumn);s+=r.endLineNumber-r.startLineNumber,r.intersectRanges(e)?i=a:n.push(a)}),i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let i=t;const n=e.getModel();return n===null?[]:(i.sort(I.compareRangesUsingStarts),i=i.map(s=>{if(s.isEmpty())if(s.startColumn===1){const r=Math.max(1,s.startLineNumber-1),a=s.startLineNumber===1?1:n.getLineLength(r)+1;return new I(r,a,s.startLineNumber,1)}else return new I(s.startLineNumber,1,s.startLineNumber,s.startColumn);else return new I(s.startLineNumber,1,s.endLineNumber,s.endColumn)}),i)}}class cW extends eE{constructor(){super({id:"deleteAllRight",label:L(1311,"Delete All Right"),precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(e,t){let i=null;const n=[];for(let s=0,r=t.length,a=0;s<r;s++){const l=t[s],d=new J(l.startLineNumber-a,l.startColumn,l.startLineNumber-a,l.startColumn);l.intersectRanges(e)?i=d:n.push(d)}return i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getModel();if(t===null)return[];const i=e.getSelections();if(i===null)return[];const n=i.map(s=>{if(s.isEmpty()){const r=t.getLineMaxColumn(s.startLineNumber);return s.startColumn===r?new I(s.startLineNumber,s.startColumn,s.startLineNumber+1,1):new I(s.startLineNumber,s.startColumn,s.startLineNumber,r)}return s});return n.sort(I.compareRangesUsingStarts),n}}class hW extends F{constructor(){super({id:"editor.action.joinLines",label:L(1312,"Join Lines"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(e,t){const i=t.getSelections();if(i===null)return;let n=t.getSelection();if(n===null)return;i.sort(I.compareRangesUsingStarts);const s=[],r=i.reduce((g,u)=>g.isEmpty()?g.endLineNumber===u.startLineNumber?(n.equalsSelection(g)&&(n=u),u):u.startLineNumber>g.endLineNumber+1?(s.push(g),u):new J(g.startLineNumber,g.startColumn,u.endLineNumber,u.endColumn):u.startLineNumber>g.endLineNumber?(s.push(g),u):new J(g.startLineNumber,g.startColumn,u.endLineNumber,u.endColumn));s.push(r);const a=t.getModel();if(a===null)return;const l=[],d=[];let c=n,h=0;for(let g=0,u=s.length;g<u;g++){const f=s[g],p=f.startLineNumber,_=1;let v=0,S,y;const x=a.getLineLength(f.endLineNumber)-f.endColumn;if(f.isEmpty()||f.startLineNumber===f.endLineNumber){const D=f.getStartPosition();D.lineNumber<a.getLineCount()?(S=p+1,y=a.getLineMaxColumn(S)):(S=D.lineNumber,y=a.getLineMaxColumn(D.lineNumber))}else S=f.endLineNumber,y=a.getLineMaxColumn(S);let b=a.getLineContent(p);for(let D=p+1;D<=S;D++){const N=a.getLineContent(D),E=a.getLineFirstNonWhitespaceColumn(D);if(E>=1){let M=!0;b===""&&(M=!1),M&&(b.charAt(b.length-1)===" "||b.charAt(b.length-1)===" ")&&(M=!1,b=b.replace(/[\s\uFEFF\xA0]+$/g," "));const O=N.substr(E-1);b+=(M?" ":"")+O,M?v=O.length+1:v=O.length}else v=0}const w=new I(p,_,S,y);if(!w.isEmpty()){let D;f.isEmpty()?(l.push($e.replace(w,b)),D=new J(w.startLineNumber-h,b.length-v+1,p-h,b.length-v+1)):f.startLineNumber===f.endLineNumber?(l.push($e.replace(w,b)),D=new J(f.startLineNumber-h,f.startColumn,f.endLineNumber-h,f.endColumn)):(l.push($e.replace(w,b)),D=new J(f.startLineNumber-h,f.startColumn,f.startLineNumber-h,b.length-x)),I.intersectRanges(w,n)!==null?c=D:d.push(D)}h+=w.endLineNumber-w.startLineNumber}d.unshift(c),t.pushUndoStop(),t.executeEdits(this.id,l,d),t.pushUndoStop()}}class uW extends F{constructor(){super({id:"editor.action.transpose",label:L(1313,"Transpose Characters around the Cursor"),precondition:C.writable,canTriggerInlineEdits:!0})}run(e,t){const i=t.getSelections();if(i===null)return;const n=t.getModel();if(n===null)return;const s=[];for(let r=0,a=i.length;r<a;r++){const l=i[r];if(!l.isEmpty())continue;const d=l.getStartPosition(),c=n.getLineMaxColumn(d.lineNumber);if(d.column>=c){if(d.lineNumber===n.getLineCount())continue;const h=new I(d.lineNumber,Math.max(1,d.column-1),d.lineNumber+1,1),g=n.getValueInRange(h).split("").reverse().join("");s.push(new Pc(new J(d.lineNumber,Math.max(1,d.column-1),d.lineNumber+1,1),g))}else{const h=new I(d.lineNumber,Math.max(1,d.column-1),d.lineNumber,d.column+1),g=n.getValueInRange(h).split("").reverse().join("");s.push(new sL(h,g,new J(d.lineNumber,d.column+1,d.lineNumber,d.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class na extends F{run(e,t){const i=t.getSelections();if(i===null)return;const n=t.getModel();if(n===null)return;const s=t.getOption(148),r=[];for(const a of i)if(a.isEmpty()){const l=a.getStartPosition(),d=t.getConfiguredWordAtPosition(l);if(!d)continue;const c=new I(l.lineNumber,d.startColumn,l.lineNumber,d.endColumn),h=n.getValueInRange(c);r.push($e.replace(c,this._modifyText(h,s)))}else{const l=n.getValueInRange(a);r.push($e.replace(a,this._modifyText(l,s)))}t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop()}}class gW extends na{constructor(){super({id:"editor.action.transformToUppercase",label:L(1314,"Transform to Uppercase"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){return e.toLocaleUpperCase()}}class fW extends na{constructor(){super({id:"editor.action.transformToLowercase",label:L(1315,"Transform to Lowercase"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){return e.toLocaleLowerCase()}}class Oi{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}const qg=class qg extends na{constructor(){super({id:"editor.action.transformToTitlecase",label:L(1316,"Transform to Title Case"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=qg.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,n=>n.toLocaleUpperCase()):e}};qg.titleBoundary=new Oi("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");let Au=qg;const Oa=class Oa extends na{constructor(){super({id:"editor.action.transformToSnakecase",label:L(1317,"Transform to Snake Case"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=Oa.caseBoundary.get(),n=Oa.singleLetters.get();return!i||!n?e:e.replace(i,"$1_$2").replace(n,"$1_$2$3").toLocaleLowerCase()}};Oa.caseBoundary=new Oi("(\\p{Ll})(\\p{Lu})","gmu"),Oa.singleLetters=new Oi("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");let Dd=Oa;const Cs=class Cs extends na{constructor(){super({id:"editor.action.transformToCamelcase",label:L(1318,"Transform to Camel Case"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=/\r\n|\r|\n/.test(e)?Cs.multiLineWordBoundary.get():Cs.singleLineWordBoundary.get(),n=Cs.validWordStart.get();if(!i||!n)return e;const s=e.split(i);return s.shift()?.replace(n,a=>a.toLocaleLowerCase())+s.map(a=>a.substring(0,1).toLocaleUpperCase()+a.substring(1)).join("")}};Cs.singleLineWordBoundary=new Oi("[_\\s-]+","gm"),Cs.multiLineWordBoundary=new Oi("[_-]+","gm"),Cs.validWordStart=new Oi("^(\\p{Lu}[^\\p{Lu}])","gmu");let Ed=Cs;const ws=class ws extends na{constructor(){super({id:"editor.action.transformToPascalcase",label:L(1319,"Transform to Pascal Case"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=ws.wordBoundary.get(),n=ws.wordBoundaryToMaintain.get(),s=ws.upperCaseWordMatcher.get();return!i||!n||!s?e:e.split(n).map(l=>l.split(i)).flat().map(l=>{const d=l.charAt(0).toLocaleUpperCase()+l.slice(1);return d.length>1&&s.test(d)?d.charAt(0)+d.slice(1).toLocaleLowerCase():d}).join("")}};ws.wordBoundary=new Oi("[_ \\t-]","gm"),ws.wordBoundaryToMaintain=new Oi("(?<=\\.)","gm"),ws.upperCaseWordMatcher=new Oi("^\\p{Lu}+$","mu");let Fu=ws;const ys=class ys extends na{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:L(1320,"Transform to Kebab Case"),precondition:C.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=ys.caseBoundary.get(),n=ys.singleLetters.get(),s=ys.underscoreBoundary.get();return!i||!n||!s?e:e.replace(s,"$1-$3").replace(i,"$1-$2").replace(n,"$1-$2").toLocaleLowerCase()}};ys.caseBoundary=new Oi("(\\p{Ll})(\\p{Lu})","gmu"),ys.singleLetters=new Oi("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),ys.underscoreBoundary=new Oi("(\\S)(_)(\\S)","gm");let Wu=ys;P(YF);P(JF);P(QF);P(eW);P(tW);P(iW);P(nW);P(sW);P(iv);P(rW);P(aW);P(lW);P(Ou);P(Mu);P(dW);P(cW);P(hW);P(uW);P(gW);P(fW);P(oW);Dd.caseBoundary.isSupported()&&Dd.singleLetters.isSupported()&&P(Dd);Ed.singleLineWordBoundary.isSupported()&&Ed.multiLineWordBoundary.isSupported()&&P(Ed);Fu.wordBoundary.isSupported()&&P(Fu);Au.titleBoundary.isSupported()&&P(Au);Wu.isSupported()&&P(Wu);var pW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},yy=function(o,e){return function(t,i){e(t,i,o)}};function mW(o){return o.sourceId+" @@ "+JSON.stringify({...o,modelUri:o.modelUri?.toString(),sourceId:void 0})}let Hu=class extends A{static cast(){return this}constructor(e,t,i){super(),this._key=e,this._contextKeyService=t,this._dataChannelService=i,this._isEnabledContextKeyValue=_W("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map(n=>n!==void 0)}log(e){return this._isEnabledContextKeyValue.get()?(this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(e),!0):!1}};Hu=pW([yy(1,pe),yy(2,RL)],Hu);function _W(o,e){return xt(e.onDidChangeContext,()=>e.getContextKeyValue(o))}var vW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Iy=function(o,e){return function(t,i){e(t,i,o)}};let nv=class extends A{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._loggerService=i,this._structuredLogger=this._register(this._instantiationService.createInstance(Hu.cast(),"editor.inlineSuggest.logChangeReason.commandId"));const n=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),s=xt(this,n.onDidChangeLogLevel,()=>n.getLevel());this._register(le(r=>{G0(s.read(r),Z0.Trace)&&r.store.add(this._editor.onDidChangeModelContent(a=>{this._editor.getModel()?.uri.scheme!=="output"&&n.trace("onDidChangeModelContent: "+a.detailedReasons.map(l=>l.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(le(r=>{this._editor instanceof _S&&this._structuredLogger.isEnabled.read(r)&&r.store.add(this._editor.onDidChangeModelContent(a=>{const l=this._editor.getModel();if(!l)return;const d=a.detailedReasons[0],c={...d.metadata,sourceId:"TextModel.setChangeReason",source:d.metadata.source,time:Date.now(),modelUri:l.uri,modelVersion:l.getVersionId()};setTimeout(()=>{this._structuredLogger.log(c)},0)}))}))}};nv=vW([Iy(1,ee),Iy(2,K0)],nv);function xy(o,e=IS){return X0(o,e)?o.charAt(0).toUpperCase()+o.slice(1):o}var bW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},SW=function(o,e){return function(t,i){e(t,i,o)}};class Ly{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(i!==void 0)return i}}}class Dy{constructor(e,t,i,n){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=n}resolve(e){const{name:t}=e;if(t==="SELECTION"||t==="TM_SELECTED_TEXT"){let i=this._model.getValueInRange(this._selection)||void 0,n=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const s=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);s&&(i=s.value,n=s.multiline)}if(i&&n&&e.snippet){const s=this._model.getLineContent(this._selection.startLineNumber),r=Ct(s,0,this._selection.startColumn-1);let a=r;e.snippet.walk(d=>d===e?!1:(d instanceof Rt&&(a=Ct(Qn(d.value).pop())),!0));const l=El(a,r);i=i.replace(/(\r\n|\r|\n)(.*)/g,(d,c,h)=>`${c}${a.substr(l)}${h}`)}return i}else{if(t==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(t==="TM_CURRENT_WORD"){const i=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return i&&i.word||void 0}else{if(t==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(t==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(t==="CURSOR_INDEX")return String(this._selectionIdx);if(t==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}class Ey{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if(t==="TM_FILENAME")return Ma(this._model.uri.fsPath);if(t==="TM_FILENAME_BASE"){const i=Ma(this._model.uri.fsPath),n=i.lastIndexOf(".");return n<=0?i:i.slice(0,n)}else{if(t==="TM_DIRECTORY")return xp(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(bS(this._model.uri));if(t==="TM_DIRECTORY_BASE")return xp(this._model.uri.fsPath)==="."?"":Ma(xp(this._model.uri.fsPath));if(t==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(t==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}class Ry{constructor(e,t,i,n){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=n}resolve(e){if(e.name!=="CLIPBOARD")return;const t=this._readClipboardText();if(t){if(this._spread){const i=t.split(/\r\n|\n|\r/).filter(n=>!Y0(n));if(i.length===this._selectionCount)return i[this._selectionIdx]}return t}}}let Vu=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),n=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(n){if(t==="LINE_COMMENT")return n.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return n.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return n.blockCommentEndToken||void 0}}};Vu=bW([SW(2,st)],Vu);const un=class un{constructor(){this._date=new Date}resolve(e){const{name:t}=e;switch(t){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 un.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return un.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return un.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return un.monthNamesShort[this._date.getMonth()];case"CURRENT_SECONDS_UNIX":return String(Math.floor(this._date.getTime()/1e3));case"CURRENT_MILLISECONDS_UNIX":return String(this._date.getTime());case"CURRENT_TIMEZONE_OFFSET":{const i=this._date.getTimezoneOffset(),n=i>0?"-":"+",s=Math.trunc(Math.abs(i/60)),r=s<10?"0"+s:s,a=Math.abs(i)-s*60,l=a<10?"0"+a:a;return n+r+":"+l}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}}};un.dayNames=[m(1456,"Sunday"),m(1457,"Monday"),m(1458,"Tuesday"),m(1459,"Wednesday"),m(1460,"Thursday"),m(1461,"Friday"),m(1462,"Saturday")],un.dayNamesShort=[m(1463,"Sun"),m(1464,"Mon"),m(1465,"Tue"),m(1466,"Wed"),m(1467,"Thu"),m(1468,"Fri"),m(1469,"Sat")],un.monthNames=[m(1470,"January"),m(1471,"February"),m(1472,"March"),m(1473,"April"),m(1474,"May"),m(1475,"June"),m(1476,"July"),m(1477,"August"),m(1478,"September"),m(1479,"October"),m(1480,"November"),m(1481,"December")],un.monthNamesShort=[m(1482,"Jan"),m(1483,"Feb"),m(1484,"Mar"),m(1485,"Apr"),m(1486,"May"),m(1487,"Jun"),m(1488,"Jul"),m(1489,"Aug"),m(1490,"Sep"),m(1491,"Oct"),m(1492,"Nov"),m(1493,"Dec")];let Bu=un;class Ny{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=J0(this._workspaceService.getWorkspace());if(!Q0(t)){if(e.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(t);if(e.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(aw(e))return Ma(e.uri.path);let t=Ma(e.configPath.path);return t.endsWith(lw)&&(t=t.substr(0,t.length-lw.length-1)),t}_resoveWorkspacePath(e){if(aw(e))return xy(e.uri.fsPath);const t=Ma(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?xy(i):"/"}}class ky{resolve(e){const{name:t}=e;if(t==="RANDOM")return Math.random().toString().slice(-6);if(t==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(t==="UUID")return nS()}}var CW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},wW=function(o,e){return function(t,i){e(t,i,o)}},zi;const Di=class Di{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=dw(t.placeholders,fi.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){const n=this._snippet.offset(i),s=this._snippet.fullLen(i),r=I.fromPositions(e.getPositionAt(this._offset+n),e.getPositionAt(this._offset+n+s)),a=i.isFinalTabstop?Di._decor.inactiveFinal:Di._decor.inactive,l=t.addDecoration(r,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];this._initDecorations();const t=this._editor.getModel();if(this._placeholderGroupsIdx>=0){const s=[];for(const r of this._placeholderGroups[this._placeholderGroupsIdx])if(r.transform){const a=this._placeholderDecorations.get(r),l=a?t.getDecorationRange(a):null;if(l){const d=t.getValueInRange(l),c=r.transform.resolve(d).split(/\r\n|\r|\n/);for(let h=1;h<c.length;h++)c[h]=t.normalizeIndentation(this._snippetLineLeadingWhitespace+c[h]);s.push($e.replace(l,c.join(t.getEOL())))}}s.length>0&&this._editor.executeEdits("snippet.placeholderTransform",s)}let i=!1;e===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,i=!0):e===!1&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,i=!0);const n=t.changeDecorations(s=>{const r=new Set,a=[];for(const l of this._placeholderGroups[this._placeholderGroupsIdx]){const d=this._placeholderDecorations.get(l),c=d?t.getDecorationRange(d):null;if(i=i&&this._hasPlaceholderBeenCollapsed(l),!(!d||!c)){a.push(new J(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),s.changeDecorationOptions(d,l.isFinalTabstop?Di._decor.activeFinal:Di._decor.active),r.add(l);for(const h of this._snippet.enclosingPlaceholders(l)){const g=this._placeholderDecorations.get(h);g&&(s.changeDecorationOptions(g,h.isFinalTabstop?Di._decor.activeFinal:Di._decor.active),r.add(h))}}}for(const[l,d]of this._placeholderDecorations)r.has(l)||s.changeDecorationOptions(d,l.isFinalTabstop?Di._decor.inactiveFinal:Di._decor.inactive);return a});return i?this.move(e):n??[]}_hasPlaceholderBeenCollapsed(e){const t=this._editor.getModel();let i=e;for(;i;){if(i instanceof fi){const n=this._placeholderDecorations.get(i),s=n?t.getDecorationRange(n):null;if((!s||s.isEmpty())&&i.toString().length>0)return!0}i=i.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){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const n of t){if(n.isFinalTabstop)break;i||(i=[],e.set(n.index,i));const s=this._placeholderDecorations.get(n),r=this._editor.getModel().getDecorationRange(s);if(!r){e.delete(n.index);break}i.push(r)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!e?.choice)return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);if(i)return{range:i,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof Ol,!e)),e}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const s=e.shift();console.assert(s._offset!==-1),console.assert(!s._placeholderDecorations);const r=s._snippet.placeholderInfo.last.index;for(const l of s._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=n.index+(r+1)/this._nestingLevel:l.index=n.index+l.index/this._nestingLevel;this._snippet.replace(n,s._snippet.children);const a=this._placeholderDecorations.get(n);i.removeDecoration(a),this._placeholderDecorations.delete(n);for(const l of s._snippet.placeholders){const d=s._snippet.offset(l),c=s._snippet.fullLen(l),h=I.fromPositions(t.getPositionAt(s._offset+d),t.getPositionAt(s._offset+d+c)),g=i.addDecoration(h,Di._decor.inactive);this._placeholderDecorations.set(l,g)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=dw(this._snippet.placeholders,fi.compareByIndex)})}_renormalizePlaceholderIndices(){const e=this._snippet.placeholders,t=new Set;for(const s of e)s.isFinalTabstop||t.add(s.index);const i=[...t].sort((s,r)=>s-r),n=new Map;for(let s=0;s<i.length;s++)n.set(i[s],s+1);for(const s of e)s.isFinalTabstop||(s.index=n.get(s.index));this._nestingLevel=1}};Di._decor={active:te.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:te.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:te.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:te.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};let Uu=Di;const Ty={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let $u=zi=class{static adjustWhitespace(e,t,i,n,s){const r=e.getLineContent(t.lineNumber),a=Ct(r,0,t.column-1);let l;return n.walk(d=>{if(!(d instanceof Rt)||d.parent instanceof Ol||s&&!s.has(d))return!0;const c=d.value.split(/\r\n|\r|\n/);if(i){const g=n.offset(d);if(g===0)c[0]=e.normalizeIndentation(c[0]);else{l=l??n.toString();const u=l.charCodeAt(g-1);(u===10||u===13)&&(c[0]=e.normalizeIndentation(a+c[0]))}for(let u=1;u<c.length;u++)c[u]=e.normalizeIndentation(a+c[u])}const h=c.join(e.getEOL());return h!==d.value&&(d.parent.replace(d,[new Rt(h)]),l=void 0),!0}),a}static adjustSelection(e,t,i,n){if(i!==0||n!==0){const{positionLineNumber:s,positionColumn:r}=t,a=r-i,l=r+n,d=e.validateRange({startLineNumber:s,startColumn:a,endLineNumber:s,endColumn:l});t=J.createWithDirection(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,i,n,s,r,a,l,d){const c=[],h=[];if(!e.hasModel())return{edits:c,snippets:h};const g=e.getModel(),u=e.invokeWithinContext(x=>x.get(so)),f=e.invokeWithinContext(x=>new Ey(x.get(al),g)),p=()=>a,_=g.getValueInRange(zi.adjustSelection(g,e.getSelection(),i,0)),v=g.getValueInRange(zi.adjustSelection(g,e.getSelection(),0,n)),S=g.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),y=e.getSelections().map((x,b)=>({selection:x,idx:b})).sort((x,b)=>I.compareRangesUsingStarts(x.selection,b.selection));for(const{selection:x,idx:b}of y){let w=zi.adjustSelection(g,x,i,0),D=zi.adjustSelection(g,x,0,n);_!==g.getValueInRange(w)&&(w=x),v!==g.getValueInRange(D)&&(D=x);const N=x.setStartPosition(w.startLineNumber,w.startColumn).setEndPosition(D.endLineNumber,D.endColumn),E=new Br().parse(t,!0,s),M=N.getStartPosition(),O=zi.adjustWhitespace(g,M,r||b>0&&S!==g.getLineFirstNonWhitespaceColumn(x.positionLineNumber),E);E.resolveVariables(new Ly([f,new Ry(p,b,y.length,e.getOption(88)==="spread"),new Dy(g,x,b,l),new Vu(g,x,d),new Bu,new Ny(u),new ky])),c[b]=$e.replace(N,E.toString()),c[b].identifier={major:b,minor:0},c[b]._isTracked=!0,h[b]=new Uu(e,E,O)}return{edits:c,snippets:h}}static createEditsAndSnippetsFromEdits(e,t,i,n,s,r,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],d=e.getModel(),c=new Br,h=new Kc,g=e.invokeWithinContext(x=>new Ey(x.get(al),d)),u=new Bu,f=new Ny(e.invokeWithinContext(x=>x.get(so))),p=new ky,_=()=>s,v=e.getOption(88)==="spread",S=t.map((x,b)=>({edit:x,idx:b})).sort((x,b)=>I.compareRangesUsingStarts(x.edit.range,b.edit.range));let y=0;for(let x=0;x<S.length;x++){const{edit:{range:b,template:w,keepWhitespace:D},idx:N}=S[x];if(x>0){const oe=S[x-1].edit.range,be=I.fromPositions(oe.getEndPosition(),b.getStartPosition()),Q=new Rt(d.getValueInRange(be));h.appendChild(Q),y+=Q.value.length}const E=new Set;h.walk(oe=>(oe instanceof Vr&&E.add(oe),!0));const M=c.parseFragment(w,h);zi.adjustWhitespace(d,b.getStartPosition(),D!==void 0?!D:n,h,new Set(M));const O=J.fromRange(b,0),H=new Ly([g,new Ry(_,N,S.length,v),new Dy(d,O,N,r),new Vu(d,O,a),u,f,p]);h.walk(oe=>(oe instanceof Vr&&!E.has(oe)&&oe.resolve(H),!0));const Z=h.toString(),se=Z.slice(y);y=Z.length;const ve=$e.replace(b,se);ve.identifier={major:x,minor:0},ve._isTracked=!0,l.push(ve)}return c.ensureFinalTabstop(h,i,!0),{edits:l,snippets:[new Uu(e,h,"")]}}constructor(e,t,i=Ty,n){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=n,this._templateMerges=[],this._snippets=[]}dispose(){kt(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(e){if(!this._editor.hasModel())return;const{edits:t,snippets:i}=typeof this._template=="string"?zi.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):zi.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=i,this._editor.executeEdits(e??Pr.snippet(),t,n=>{const s=n.filter(r=>!!r.identifier);for(let r=0;r<i.length;r++)i[r].initialize(s[r].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):s.map(r=>J.fromPositions(r.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=Ty){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:n}=zi.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,s=>{const r=s.filter(d=>!!d.identifier);for(let d=0;d<n.length;d++)n[d].initialize(r[d].textChange);const a=n[0].isTrivialSnippet,l=n.length===this._snippets.reduce((d,c)=>d+c.activePlaceholderCount,0);if(!a&&l){for(const d of this._snippets)d.merge(n);console.assert(n.length===0)}return this._snippets[0].hasPlaceholder&&!a&&l?this._move(void 0):r.map(d=>J.fromPositions(d.range.getEndPosition()))})}next(){const e=this._move(!0);e.length>0&&(this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition()))}prev(){const e=this._move(!1);e.length>0&&(this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition()))}_move(e){const t=[];for(const i of this._snippets){const n=i.move(e);t.push(...n)}return t}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;const e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;const t=new Map;for(const i of this._snippets){const n=i.computePossibleSelections();if(t.size===0)for(const[s,r]of n){r.sort(I.compareRangesUsingStarts);for(const a of e)if(r[0].containsRange(a)){t.set(s,[]);break}}if(t.size===0)return!1;t.forEach((s,r)=>{s.push(...n.get(r))})}e.sort(I.compareRangesUsingStarts);for(const[i,n]of t){if(n.length!==e.length){t.delete(i);continue}n.sort(I.compareRangesUsingStarts);for(let s=0;s<n.length;s++)if(!n[s].containsRange(e[s])){t.delete(i);continue}}return t.size>0}};$u=zi=CW([wW(3,st)],$u);var yW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ch=function(o,e){return function(t,i){e(t,i,o)}},Oo;const Py={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};var Xi;let ct=(Xi=class{static get(e){return e.getContribution(Oo.ID)}constructor(e,t,i,n,s){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=s,this._inSnippetObservable=Ne(this,!1),this._snippetListener=new W,this._modelVersionId=-1,this._inSnippet=Oo.InSnippetMode.bindTo(n),this._hasNextTabstop=Oo.HasNextTabstop.bindTo(n),this._hasPrevTabstop=Oo.HasPrevTabstop.bindTo(n),this._inSnippetChoice=Oo.InSnippetChoice.bindTo(n)}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(e,t){try{this._doInsert(e,typeof t>"u"?Py:{...Py,...t})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(e,t){if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!="string"&&this.cancel(),this._session?(Ce(typeof e=="string"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new $u(this._editor,e,t,this._languageConfigurationService),this._session.insert(t.reason)),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._session?.hasChoice){const i={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(d,c)=>{if(!this._session||d!==this._editor.getModel()||!$.equals(this._editor.getPosition(),c))return;const{activeChoice:h}=this._session;if(!h||h.choice.options.length===0)return;const g=d.getValueInRange(h.range),u=!!h.choice.options.find(p=>p.value===g),f=[];for(let p=0;p<h.choice.options.length;p++){const _=h.choice.options[p];f.push({kind:13,label:_.value,insertText:_.value,sortText:"a".repeat(p+1),range:h.range,filterText:u?`${g}_${_.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:m(1455,"Go to next placeholder...")}})}return{suggestions:f}}},n=this._editor.getModel();let s,r=!1;const a=()=>{s?.dispose(),r=!1},l=()=>{r||(s=this._languageFeaturesService.completionProvider.register({language:n.getLanguageId(),pattern:n.uri.fsPath,scheme:n.uri.scheme,exclusive:!0},i),this._snippetListener.add(s),r=!0)};this._choiceCompletions={provider:i,enable:l,disable:a}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(i=>i.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())){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}const{activeChoice:e}=this._session;if(!e||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}this._inSnippetChoice.set(!0),this._currentChoice!==e.choice&&(this._currentChoice=e.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{FF(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){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,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}get isInSnippetObservable(){return this._inSnippetObservable}},Oo=Xi,Xi.ID="snippetController2",Xi.InSnippetMode=new ie("inSnippetMode",!1,m(1451,"Whether the editor in current in snippet mode")),Xi.HasNextTabstop=new ie("hasNextTabstop",!1,m(1452,"Whether there is a next tab stop when in snippet mode")),Xi.HasPrevTabstop=new ie("hasPrevTabstop",!1,m(1453,"Whether there is a previous tab stop when in snippet mode")),Xi.InSnippetChoice=new ie("inSnippetChoice",!1,m(1454,"Whether the current snippet tab stop is a choice")),Xi);ct=Oo=yW([Ch(1,Pt),Ch(2,G),Ch(3,pe),Ch(4,st)],ct);ae(ct.ID,ct,4);const lp=Mt.bindToContribution(ct.get);K(new lp({id:"jumpToNextSnippetPlaceholder",precondition:T.and(ct.InSnippetMode,ct.HasNextTabstop),handler:o=>o.next(),kbOpts:{weight:130,kbExpr:C.textInputFocus,primary:2}}));K(new lp({id:"jumpToPrevSnippetPlaceholder",precondition:T.and(ct.InSnippetMode,ct.HasPrevTabstop),handler:o=>o.prev(),kbOpts:{weight:130,kbExpr:C.textInputFocus,primary:1026}}));di.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:T.and(ct.InSnippetMode,ct.HasPrevTabstop,ct.InSnippetChoice,C.textInputFocus),primary:1026});K(new lp({id:"leaveSnippet",precondition:ct.InSnippetMode,handler:o=>o.cancel(!0),kbOpts:{weight:130,kbExpr:C.textInputFocus,primary:9,secondary:[1033]}}));K(new lp({id:"acceptSnippet",precondition:ct.InSnippetMode,handler:o=>o.finish()}));function dp(o){return new IW(o)}class IW extends eN{constructor(e){super(),this._textModel=e}getOffset(e){return this._textModel.getOffsetAt(e)}getPosition(e){return this._textModel.getPositionAt(e)}}const xW=[];function LW(){return xW}function Oy(o){return DW(o).map(t=>t.getEndPosition())}function DW(o){const e=tN.createSortPermutation(o,Mr(n=>n.range,I.compareRangesUsingStarts)),i=new $n(e.apply(o)).getNewRanges();return e.inverse().apply(i)}function EW(o,e){const t=dp(e),i=e.getValue();return o.map(r=>t.getStringReplacement(r)).map(r=>r.removeCommonSuffixPrefix(i)).map(r=>t.getTextReplacement(r))}function RW(o,e){const t=Ne("result",[]),i=[];return e.add(le(n=>{const s=o.read(n);en(r=>{if(s.length!==i.length){i.length=s.length;for(let a=0;a<i.length;a++)i[a]||(i[a]=Ne("item",s[a]));t.set([...i],r)}i.forEach((a,l)=>a.set(s[l],r))})})),t}class NW{constructor(e){this._contextKeyService=e}bind(e,t){return iN(e,this._contextKeyService,t instanceof Function?t:i=>t.read(i))}}function My(o,e){return new Promise(t=>{let i;const n=setTimeout(()=>{i&&i.dispose(),t()},o);e&&(i=e.onCancellationRequested(()=>{clearTimeout(n),i&&i.dispose(),t()}))})}class cc{static message(e){return new cc(void 0,e)}constructor(e,t=void 0){this.error=e,this.message=t}static is(e){return e instanceof cc}logError(){this.message?console.error(`ErrorResult: ${this.message}`,this.error):console.error("ErrorResult: An unexpected error-case occurred, usually caused by invalid input.",this.error)}}class vC{static startNow(e,t,i,n=Ay){return new vC(e,t,i,Date.now(),n)}constructor(e,t,i,n,s=Ay){this.startValue=e,this.endValue=t,this.durationMs=i,this.startTimeMs=n,this._interpolationFunction=s,e===t&&(this.durationMs=0)}isFinished(e){return e>=this.startTimeMs+this.durationMs}getValue(e){const t=e-this.startTimeMs;return t>=this.durationMs?this.endValue:this._interpolationFunction(t,this.startValue,this.endValue-this.startValue,this.durationMs)}}function Ay(o,e,t,i){return o===i?e+t:t*(-Math.pow(2,-10*o/i)+1)+e}function kW(o,e,t,i){return t*((o=o/i-1)*o*o+1)+e}class TW{constructor(e){this._value=e}getValue(e){const t=Date.now();return this._value.isFinished(t)||hc.instance.invalidateOnNextAnimationFrame(e),this._value.getValue(t)}isFinished(e){const t=Date.now(),i=this._value.isFinished(t);return i||hc.instance.invalidateOnNextAnimationFrame(e),i}}const Kg=class Kg{constructor(){this._counter=xs(this),this._isScheduled=!1}invalidateOnNextAnimationFrame(e){this._counter.read(e),this._isScheduled||(this._isScheduled=!0,Yh().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()}))}_update(){this._counter.trigger(void 0)}};Kg.instance=new Kg;let hc=Kg;class uc{constructor(e,t){this.lineNumber=e,this.parts=t,nN(()=>NL(t,(i,n)=>i.column<=n.column))}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every((t,i)=>t.equals(e.parts[i]))}renderForScreenReader(e){if(this.parts.length===0)return"";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return new $n([...this.parts.map(s=>new Ae(I.fromPositions(new $(1,s.column)),s.lines.map(r=>r.line).join(`
31
- `)))]).applyToString(i).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}}class zu{constructor(e,t,i,n=[]){this.column=e,this.text=t,this.preview=i,this._inlineDecorations=n,this.lines=Qn(this.text).map((s,r)=>({line:s,lineDecorations:dl.filter(this._inlineDecorations,r+1,1,s.length+1)}))}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,i)=>t.line===e.lines[i].line&&dl.equalsArr(t.lineDecorations,e.lines[i].lineDecorations))}}class sv{constructor(e,t,i,n=0){this.lineNumber=e,this.columnRange=t,this.text=i,this.additionalReservedLineCount=n,this.parts=[new zu(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=Qn(this.text)}renderForScreenReader(e){return this.newLines.join(`
32
- `)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,i)=>t===e.newLines[i])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function Fy(o,e){return sn(o,e,tE)}function tE(o,e){return o===e?!0:!o||!e?!1:o instanceof uc&&e instanceof uc||o instanceof sv&&e instanceof sv?o.equals(e):!1}function Vs(o,e,t){const i=t?o.range.intersectRanges(t):o.range;if(!i)return o;const n=o.text.replaceAll(`\r
33
- `,`
34
- `),s=e.getValueInRange(i,1),r=El(s,n),a=In.ofText(s.substring(0,r)).addToPosition(o.range.getStartPosition()),l=n.substring(r),d=I.fromPositions(a,o.range.getEndPosition());return new Ae(d,l)}function iE(o,e){return o.text.startsWith(e.text)&&PW(o.range,e.range)}function PW(o,e){return e.getStartPosition().equals(o.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(o.getEndPosition())}function Wy(o,e,t,i,n=0){let s=Vs(o,e);if(s.range.endLineNumber!==s.range.startLineNumber)return;const r=e.getLineContent(s.range.startLineNumber),a=Ct(r).length;if(s.range.startColumn-1<=a){const f=Ct(s.text).length,p=r.substring(s.range.startColumn-1,a),[_,v]=[s.range.getStartPosition(),s.range.getEndPosition()],S=_.column+p.length<=v.column?_.delta(0,p.length):v,y=I.fromPositions(S,v),x=s.text.startsWith(p)?s.text.substring(p.length):s.text.substring(f);s=new Ae(y,x)}const d=e.getValueInRange(s.range),c=OW(d,s.text);if(!c)return;const h=s.range.startLineNumber,g=new Array;if(t==="prefix"){const f=c.filter(p=>p.originalLength===0);if(f.length>1||f.length===1&&f[0].originalStart!==d.length)return}const u=s.text.length-n;for(const f of c){const p=s.range.startColumn+f.originalStart+f.originalLength;if(t==="subwordSmart"&&i&&i.lineNumber===s.range.startLineNumber&&p<i.column||f.originalLength>0)return;if(f.modifiedLength===0)continue;const _=f.modifiedStart+f.modifiedLength,v=Math.max(f.modifiedStart,Math.min(_,u)),S=s.text.substring(f.modifiedStart,v),y=s.text.substring(v,Math.max(f.modifiedStart,_));S.length>0&&g.push(new zu(p,S,!1)),y.length>0&&g.push(new zu(p,y,!0))}return new uc(h,g)}let wh;function OW(o,e){if(wh?.originalValue===o&&wh?.newValue===e)return wh?.changes;{let t=Vy(o,e,!0);if(t){const i=Hy(t);if(i>0){const n=Vy(o,e,!1);n&&Hy(n)<i&&(t=n)}}return wh={originalValue:o,newValue:e,changes:t},t}}function Hy(o){let e=0;for(const t of o)e+=t.originalLength;return e}function Vy(o,e,t){if(o.length>5e3||e.length>5e3)return;function i(d){let c=0;for(let h=0,g=d.length;h<g;h++){const u=d.charCodeAt(h);u>c&&(c=u)}return c}const n=Math.max(i(o),i(e));function s(d){if(d<0)throw new Error("unexpected");return n+d+1}function r(d){let c=0,h=0;const g=new Int32Array(d.length);for(let u=0,f=d.length;u<f;u++)if(t&&d[u]==="("){const p=h*100+c;g[u]=s(2*p),c++}else if(t&&d[u]===")"){c=Math.max(c-1,0);const p=h*100+c;g[u]=s(2*p+1),c===0&&h++}else g[u]=d.charCodeAt(u);return g}const a=r(o),l=r(e);return new kL({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}function MW(o,e){let t,i=!1;const n=new sN(new oN(o,void 0,e.update),(s,r)=>{i||(t=e.initial instanceof Function?e.initial():e.initial,i=!0);const a=e.update(s,t,r);return t=a,a},e.changeTracker,()=>{i&&(e.disposeFinal?.(t),i=!1)},e.equalityComparer??rN,(s,r,a)=>{if(!i)throw new at("Can only set when there is a listener! This is to prevent leaks.");Rm(r,l=>{t=s,n.setValue(s,l,a)})},Mf.ofCaller());return n}var AW=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},By=function(o,e){return function(t,i){e(t,i,o)}};class FW{constructor(e,t){this._baseService=e,this._intercept=t}publicLog2(e,t){this._intercept(e,t),this._baseService.publicLog2(e,t)}}let ov=class extends FW{constructor(e,t){super(e,(i,n)=>{let s=!0;n&&rv in n&&(s=!!n[rv]),s&&t.getDataChannel("editTelemetry").sendData({eventName:i,data:n??{}})})}};ov=AW([By(0,vo),By(1,RL)],ov);const rv=Symbol("shouldForwardToChannel");function WW(o){return{[rv]:o}}function Uy(o){if(!o)return!1;const e=o.toLowerCase();return e==="github.copilot"||e==="github.copilot-chat"}function HW(o,e){o.publicLog2("inlineCompletion.endOfLife",e)}const VW=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function BW(o){return VW.has(o)}function UW(o){return/[a-zA-Z0-9_]/.test(o)}function $W(o){return o===" "||o===" "}function ju(o){const e=o.split(/\r\n|\r|\n/);if(e.length>1)return{kind:"multiLine",lineCount:e.length};const t=o.length===1;let i;t&&(BW(o)?i="syntactical":UW(o)?i="identifier":$W(o)&&(i="whitespace"));const n=o.match(/[ \t]+/g)||[],s=n.some(c=>c.length>1),r=n.some(c=>c.includes(" ")||c.includes(" ")),a=o.split(/\s+/).filter(c=>c.length>0),l=a.length===1&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a[0]),d=a.length>1;return{kind:"singleLine",isSingleCharacter:t,singleCharacterKind:i,isWord:l,isMultipleWords:d,isMultipleWhitespace:s,hasDuplicatedWhitespace:r}}class zW{constructor(e){this.edits=e}toString(){return JSON.stringify({edits:this.edits})}}function nE(o,e,t){if(o.replacements.length!==0)return new zW(o.replacements.map(i=>jW(i,e)))}function Gp(o){return o.length===0?0:o.split(/\r\n|\r|\n/).length-1}function jW(o,e,t){const i=o.replaceRange,n=o.newText,s=i.length,r=n.length,a=Gp(n);switch(i.isEmpty?"insert":n.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:qW(i.start,n,e),charactersInserted:r,charactersDeleted:0,linesInserted:a,linesDeleted:0};case"delete":{const d=e.getValue().substring(i.start,i.endExclusive);return{operation:"delete",properties:KW(i.start,i.endExclusive,e),charactersInserted:0,charactersDeleted:s,linesInserted:0,linesDeleted:Gp(d)}}case"replace":{const d=e.getValue().substring(i.start,i.endExclusive);return{operation:"replace",properties:GW(d,n),charactersInserted:r,charactersDeleted:s,linesInserted:a,linesDeleted:Gp(d)}}}}function qW(o,e,t,i){const n=ju(e),s=t.getPositionAt(o),r=t.getLineContent(s.lineNumber),a=r.length;let l;const d=r.trim().length===0,c=s.column>a,h=s.column===1;return d?l="emptyLine":c?l="endOfLine":h?l="startOfLine":l="middleOfLine",{textShape:n,locationShape:l,relativeToCursor:void 0}}function KW(o,e,t){const i=t.getValue().substring(o,e),n=ju(i),s=t.getPositionAt(o),r=t.getPositionAt(e),a=t.getLineContent(r.lineNumber),l=r.column>a.length,d=s.lineNumber===r.lineNumber&&s.column===1&&r.column>a.length;return{textShape:n,isAtEndOfLine:l,deletesEntireLineContent:d}}function GW(o,e){const t=ju(o),i=ju(e),n=t.kind==="singleLine"&&t.isWord,s=i.kind==="singleLine"&&i.isWord,r=n&&s,a=e.length>o.length,l=e.length<o.length,d=t.kind==="singleLine"&&i.kind==="singleLine",c=t.kind==="singleLine"&&i.kind==="multiLine",h=t.kind==="multiLine"&&i.kind==="singleLine";return{isWordToWordReplacement:r,isAdditive:a,isSubtractive:l,isSingleLineToSingleLine:d,isSingleLineToMultiLine:c,isMultiLineToSingleLine:h}}function sE(o,e,t,i){const n=Vs(o,t),s=o.range;if(!s||e&&!e.getStartPosition().equals(s.getStartPosition())||i.lineNumber!==n.range.startLineNumber||n.isEmpty)return!1;const r=t.getValueInRange(n.range,1),a=n.text,l=Math.max(0,i.column-n.range.startColumn);let d=a.substring(0,l),c=a.substring(l),h=r.substring(0,l),g=r.substring(l);const u=t.getLineIndentColumn(n.range.startLineNumber);return n.range.startColumn<=u&&(h=h.trimStart(),h.length===0&&(g=g.trimStart()),d=d.trimStart(),d.length===0&&(c=c.trimStart())),d.startsWith(h)&&!!aN(g,c)}var av;(function(o){function e(t){return t?.command.id??void 0}o.toString=e})(av||(av={}));class Fl extends lN{static snapshot(e){return new Fl(e)}constructor(e){super(),this._textModel=e,this._version=e.getVersionId()}get uri(){return this._textModel.uri}_assertValid(){this._textModel.getVersionId()!==this._version&&we(new Error(`TextModel has changed: expected version ${this._version}, got ${this._textModel.getVersionId()}`))}targets(e){return this._textModel.uri.toString()===e.uri.toString()}getValueOfRange(e){return this._assertValid(),this._textModel.getValueInRange(e)}getLineLength(e){return this._assertValid(),this._textModel.getLineLength(e)}get length(){this._assertValid();const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new In(e-1,t)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(e){return this._assertValid(),this._textModel.getPositionAt(e)}getValueInRange(e){return this._assertValid(),this._textModel.getValueInRange(e)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var qu;(function(o){function e(t,i,n=!0){return!t.isInlineEdit&&!t.action?.uri&&t.action?.kind==="edit"?XW.create(t,i,t.action):Rd.create(t,i,n)}o.create=e})(qu||(qu={}));function ZW(o){const e=o?.kind==="edit"?{...o,alternativeAction:av.toString(o.alternativeAction),target:o?.target.uri.toString()}:{...o,target:o?.target.uri.toString()};return JSON.stringify(e)}class oE{constructor(e,t,i,n){this._data=e,this.identity=t,this.hint=i,this.originalTextRef=n}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===ni.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;if(this.action?.kind==="jumpTo")return I.fromPositions(this.action.position);throw new at("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 ZW(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(e,t,i,n,s){const r=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(e,r,t,i,this.computeEditKind(n),s)}reportPartialAccept(e,t,i){this._data.reportPartialAccept(e,t,i)}reportEndOfLife(e){this._data.reportEndOfLife(e)}setEndOfLifeReason(e){this._data.setEndOfLifeReason(e)}setIsPreceeded(e){this._data.setIsPreceeded(e.partialAccepts)}setNotShownReasonIfNotSet(e){this._data.setNotShownReason(e)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(e){this._data.setRenameProcessingInfo(e)}withAction(e){return this._data.withAction(e)}addPerformanceMarker(e){this._data.addPerformanceMarker(e)}}const Gg=class Gg{constructor(){this._onDispose=xs(this),this.onDispose=this._onDispose,this._jumpedTo=Ne(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+Gg.idCounter++}get jumpedTo(){return this._jumpedTo}addRef(){this._refCount++}removeRef(){this._refCount--,this._refCount===0&&this._onDispose.trigger(void 0)}setJumpTo(e){this._jumpedTo.set(!0,e)}};Gg.idCounter=0;let Ku=Gg;class gc{static create(e){return new gc(I.lift(e.range),e.content,e.style)}constructor(e,t,i){this.range=e,this.content=t,this.style=i}withEdit(e,t){const i=new Be(t.getOffset(this.range.getStartPosition()),t.getOffset(this.range.getEndPosition())),n=TL([i],e)[0];if(!n)return;const s=t.getRange(n);return new gc(s,this.content,this.style)}}let XW=class $h extends oE{static create(e,t,i){const n=new Ku,s=t.getTransformer(),r=i.insertText.replace(/\r\n|\r|\n/g,t.getEOL()),a=QW(new ai(s.getOffsetRange(i.range),r),t),l=a.removeCommonSuffixAndPrefix(t.getValue()),d=s.getTextReplacement(a),c=e.hint?gc.create(e.hint):void 0;return new $h(a,l,d,d.range,i.snippetInfo,e.additionalTextEdits,e,n,c,t)}constructor(e,t,i,n,s,r,a,l,d,c){super(a,l,d,c),this._edit=e,this._trimmedEdit=t,this._textEdit=i,this._originalRange=n,this.snippetInfo=s,this.additionalTextEdits=r,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new es([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(e){return new $h(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,e,this.hint,this.originalTextRef)}withEdit(e,t){if(!this.originalTextRef.targets(t))return this;const i=TL([this._edit.replaceRange],e);if(i.length===0)return;const n=new ai(i[0],this._textEdit.text),s=dp(t),r=s.getTextReplacement(n);let a=this.hint;if(a&&(a=a.withEdit(e,s),!a))return;const l=n.removeCommonSuffixAndPrefix(t.getValue());return new $h(n,l,r,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,a,this.originalTextRef)}canBeReused(e,t){const i=this._textEdit.range;return!!i&&i.containsPosition(t)&&this.isVisible(e,t)&&In.ofRange(i).isGreaterThanOrEqualTo(In.ofRange(this._originalRange))}isVisible(e,t){const i=this.getSingleTextEdit();return sE(i,this._originalRange,e,t)}computeEditKind(e){return nE(new es([this._edit]),e)}get editRange(){return this.getSingleTextEdit().range}};class Rd extends oE{static create(e,t,i=!0){let n,s=[];if(e.action?.kind==="edit"){const l=i?YW(t,e.action.range,e.action.insertText):JW(t,e.action.range,e.action.insertText),d=$n.fromStringEdit(l,t),c=l.isEmpty()?new Ae(new I(1,1,1,1),""):d.toReplacement(t);s=l.replacements.map(h=>{const g=I.fromPositions(t.getPositionAt(h.replaceRange.start),t.getTransformer().getPosition(h.replaceRange.endExclusive)),u=t.getValueInRange(g);return Gu.create(h,u)}),n={kind:"edit",snippetInfo:e.action.snippetInfo,stringEdit:l,textReplacement:c,alternativeAction:e.action.alternativeAction,target:t}}else if(e.action?.kind==="jumpTo")n={kind:"jumpTo",position:e.action.position,offset:t.getTransformer().getOffset(e.action.position),target:t};else if(n=void 0,!e.hint)throw new at("InlineEditItem: action is undefined and no hint is provided");const r=new Ku,a=e.hint?gc.create(e.hint):void 0;return new Rd(n,e,r,s,a,!1,t.getVersionId(),t)}constructor(e,t,i,n,s,r=!1,a,l){super(t,i,s,l),this._action=e,this._edits=n,this._lastChangePartOfInlineEdit=r,this._inlineEditModelVersion=a,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get action(){return this._action}withIdentity(e){return new Rd(this._action,this._data,e,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(e,t){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===e.getVersionId()}withEdit(e,t){return this.originalTextRef.targets(t)?this._applyTextModelChanges(e,this._edits,t):this}_applyTextModelChanges(e,t,i){const n=dp(i);let s=!1,r=this._inlineEditModelVersion,a;const l=Fl.snapshot(i);if(this.action?.kind==="edit"){if(t=t.map(u=>u.applyTextModelChanges(e)),t.some(u=>u.edit===void 0))return;const c=i.getVersionId();if(s=t.some(u=>u.lastChangeUpdatedEdit),s&&(r=c??-1),c===null||r+20<c||(t=t.filter(u=>!u.edit.isEmpty),t.length===0))return;const h=new es(t.map(u=>u.edit));a={kind:"edit",textReplacement:n.getTextEdit(h).toReplacement(new xS(i)),snippetInfo:this.snippetInfo,stringEdit:h,alternativeAction:this.action.alternativeAction,target:l}}else if(this.action?.kind==="jumpTo"){const c=this.action.offset,h=e.applyToOffsetOrUndefined(c);if(h===void 0)return;a={kind:"jumpTo",position:n.getPosition(h),offset:h,target:l}}else a=void 0;let d=this.hint;if(!(d&&(d=d.withEdit(e,n),!d)))return new Rd(a,this._data,this.identity,t,d,s,r,l)}computeEditKind(e){const t=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(t)return nE(t,e)}}function YW(o,e,t){const i=o.getEOL(),n=o.getValueOfRange(e),s=t.replace(/\r\n|\r|\n/g,i),l=dN.getDefault().computeDiff(Qn(n),Qn(s),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap(g=>g.innerChanges??[]);function d(g,u){const f=In.fromPosition(u.getStartPosition());return In.ofRange(u).createRange(f.addToPosition(g))}const c=new Mh(s);return new es(l.map(g=>{const u=d(e.getStartPosition(),g.originalRange),f=o.getTransformer().getOffsetRange(u),p=c.getValueOfRange(g.modifiedRange),_=new ai(f,p),v=o.getValueOfRange(u);return eH(_,v,l.length,o)}))}function JW(o,e,t){return new es([new ai(o.getTransformer().getOffsetRange(e),t)])}class Gu{static create(e,t){const i=El(e.newText,t),n=LS(e.newText,t),s=e.newText.substring(i,e.newText.length-n);return new Gu(e,s,i,n)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(e,t,i,n,s=!1){this._edit=e,this._trimmedNewText=t,this._prefixLength=i,this._suffixLength=n,this._lastChangeUpdatedEdit=s}applyTextModelChanges(e){const t=this._clone();return t._applyTextModelChanges(e),t}_clone(){return new Gu(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(e){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new at("UpdatedInnerEdits: No edit to apply changes to");const t=this._applyChanges(this._edit,e);if(!t){this._edit=void 0;return}this._edit=t.edit,this._lastChangeUpdatedEdit=t.editHasChanged}_applyChanges(e,t){let i=e.replaceRange.start,n=e.replaceRange.endExclusive,s=e.newText,r=!1;const a=this._prefixLength>0||this._suffixLength>0;for(let l=t.replacements.length-1;l>=0;l--){const d=t.replacements[l],c=d.newText.length>0&&d.replaceRange.isEmpty;if(c&&!a&&d.replaceRange.start===i&&s.startsWith(d.newText)){i+=d.newText.length,s=s.substring(d.newText.length),n+=d.newText.length,r=!0;continue}if(c&&a&&d.replaceRange.start===i+this._prefixLength&&this._trimmedNewText.startsWith(d.newText)){n+=d.newText.length,r=!0,this._prefixLength+=d.newText.length,this._trimmedNewText=this._trimmedNewText.substring(d.newText.length);continue}if(d.newText.length===0&&d.replaceRange.length>0&&d.replaceRange.start>=i+this._prefixLength&&d.replaceRange.endExclusive<=n-this._suffixLength){n-=d.replaceRange.length,r=!0;continue}if(d.equals(e)){r=!0,i=d.replaceRange.endExclusive,s="";continue}if(!(d.replaceRange.start>n)){if(d.replaceRange.endExclusive<i){i+=d.newText.length-d.replaceRange.length,n+=d.newText.length-d.replaceRange.length;continue}return}}return this._trimmedNewText.length===0&&i+this._prefixLength===n-this._suffixLength?{edit:new ai(new Be(i+this._prefixLength,i+this._prefixLength),""),editHasChanged:!0}:{edit:new ai(new Be(i,n),s),editHasChanged:r}}}function QW(o,e){const t=e.getEOL();return o.replaceRange.isEmpty&&o.newText.includes(t)&&(o=rE(o,e)),o}function eH(o,e,t,i){const n=i.getEOL();if(o.newText.endsWith(n)&&e.endsWith(n)&&(o=new ai(o.replaceRange.deltaEnd(-n.length),o.newText.slice(0,-n.length))),t===1&&o.replaceRange.isEmpty&&o.newText.includes(n)){const s=i.getTransformer().getPosition(o.replaceRange.start);i.getLineLength(s.lineNumber)!==0&&(o=rE(o,i))}if(t===1){const s=El(e,o.newText),r=LS(e.slice(s),o.newText.slice(s));if(s+r===e.length)return new ai(o.replaceRange.deltaStart(s).deltaEnd(-r),o.newText.substring(s,o.newText.length-r));if(s+r===o.newText.length)return new ai(o.replaceRange.deltaStart(s).deltaEnd(-r),"")}return o}function rE(o,e){if(!o.replaceRange.isEmpty)throw new at("Unexpected original range");if(o.replaceRange.start===0)return o;const t=e.getEOL(),i=e.getTransformer().getPosition(o.replaceRange.start),n=i.column,s=i.lineNumber;return n===1&&s>1&&o.newText.endsWith(t)&&!o.newText.startsWith(t)?new ai(o.replaceRange.delta(-1),t+o.newText.slice(0,-t.length)):o}function tH(o,e){const t=new gN,i=new hN(t,d=>e.getLanguageConfiguration(d)),n=new cN(new iH([o]),i),s=uN(n,[],void 0,!0);let r="";const a=o.getLineContent();function l(d,c){if(d.kind===2)if(l(d.openingBracket,c),c=Ul(c,d.openingBracket.length),d.child&&(l(d.child,c),c=Ul(c,d.child.length)),d.closingBracket)l(d.closingBracket,c),c=Ul(c,d.closingBracket.length);else{const g=i.getSingleLanguageBracketTokens(d.openingBracket.languageId).findClosingTokenText(d.openingBracket.bracketIds);r+=g}else if(d.kind!==3){if(d.kind===0||d.kind===1)r+=a.substring(cw(c),cw(Ul(c,d.length)));else if(d.kind===4)for(const h of d.children)l(h,c),c=Ul(c,h.length)}}return l(s,fN),r}class iH{constructor(e){this.lines=e,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}var qe;(function(o){o.Jump="jump",o.Accept="accept",o.Inactive="inactive"})(qe||(qe={}));class yo{static create(e,t=!1){return new yo(new DS(Ht(e),e),t)}constructor(e,t=!1){this.event=e,this.alternativeAction=t}}var ne;(function(o){o.GhostText="ghostText",o.Custom="custom",o.SideBySide="sideBySide",o.Deletion="deletion",o.InsertionInline="insertionInline",o.InsertionMultiLine="insertionMultiLine",o.WordReplacements="wordReplacements",o.LineReplacement="lineReplacement",o.Collapsed="collapsed",o.JumpTo="jumpTo"})(ne||(ne={}));class bC{constructor(e,t,i,n,s,r,a,l){this.cursorColumnDistance=e,this.cursorLineDistance=t,this.lineCountOriginal=i,this.lineCountModified=n,this.characterCountOriginal=s,this.characterCountModified=r,this.disjointReplacements=a,this.sameShapeReplacements=l,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0}setLongDistanceViewData(e,t){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(t-e)}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}}}class SC{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(e,t){const i=new SC;for(const n of e)i._nodes.add(n);for(const n of e){const s=t(n);if(s.length>0){const r=new Set;for(const a of s)r.add(a);i._outgoingEdges.set(n,r)}}return i}removeCycles(){const e=[],t=new Set,i=new Set,n=[],s=r=>{t.add(r),i.add(r);const a=this._outgoingEdges.get(r);if(a)for(const l of a)t.has(l)?i.has(l)&&(e.push(l),n.push({from:r,to:l})):s(l);i.delete(r)};for(const r of this._nodes)t.has(r)||s(r);for(const{from:r,to:a}of n){const l=this._outgoingEdges.get(r);l&&l.delete(a)}return{foundCycles:e}}getOutgoing(e){const t=this._outgoingEdges.get(e);return t?Array.from(t):[]}}function nH(o,e,t,i,n,s){const r=pN("icr"),a=new Je;let l;const d={...i,requestUuid:r},c=lH(e,t),h=mN(o,v=>v.groupId),g=SC.from(o,v=>v.yieldsToGroupIds?.flatMap(S=>h.get(S)??[])??[]),{foundCycles:u}=g.removeCycles();u.length>0&&Ze(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${u.map(v=>v.toString?v.toString():""+v).join(" -> ")}`));let f=0;const p=new _N(async v=>{try{if(f++,a.token.isCancellationRequested)return;const S=g.getOutgoing(v);for(const N of S){const E=await p.get(N);if(E)for(const M of E.inlineSuggestions.items){if(M.isInlineEdit||typeof M.insertText!="string"&&M.insertText!==void 0)return;if(M.insertText!==void 0){const O=new Ae(I.lift(M.range)??c,M.insertText);if(sE(O,void 0,t,e))return}}}let y;const x=Date.now();try{y=await v.provideInlineCompletions(t,e,d,a.token)}catch(N){Ze(N);return}const b=Date.now();if(!y)return;const w=[],D=new aH(y,w,v);if(D.addRef(),aE(a.token,()=>D.removeRef(l)),a.token.isCancellationRequested)return;for(const N of y.items){const E=sH(N,D,c,t,s,d,n,{startTime:x,endTime:b});if(cc.is(E)){E.logError();continue}w.push(E)}return D}finally{f--}}),_=yn.fromPromisesResolveOrder(o.map(v=>p.get(v))).filter(Zn);return{contextWithUuid:d,get didAllProvidersReturn(){return f===0},lists:_,cancelAndDispose:v=>{l===void 0&&(l=v,a.dispose(!0))}}}function aE(o,e){if(o.isCancellationRequested)return e(),A.None;{const t=o.onCancellationRequested(()=>{t.dispose(),e()});return{dispose:()=>t.dispose()}}}function sH(o,e,t,i,n,s,r,a){let l;const d=o.uri?Le.revive(o.uri):void 0;if(o.jumpToPosition!==void 0)l={kind:"jumpTo",position:$.lift(o.jumpToPosition),uri:d};else if(o.insertText!==void 0){let c,h,g=o.range?I.lift(o.range):t;if(typeof o.insertText=="string"){if(c=o.insertText,n&&o.completeBracketPairs){c=$y(c,g.getStartPosition(),i,n);const u=c.length-o.insertText.length;u!==0&&(g=new I(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn+u))}h=void 0}else if("snippet"in o.insertText){const u=o.insertText.snippet.length;if(n&&o.completeBracketPairs){o.insertText.snippet=$y(o.insertText.snippet,g.getStartPosition(),i,n);const p=o.insertText.snippet.length-u;p!==0&&(g=new I(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn+p))}const f=new Br().parse(o.insertText.snippet);f.children.length===1&&f.children[0]instanceof Rt?(c=f.children[0].value,h=void 0):(c=f.toString(),h={snippet:o.insertText.snippet,range:g})}else ES(o.insertText);l={kind:"edit",range:g,insertText:c,snippetInfo:h,uri:d,alternativeAction:void 0}}else if(l=void 0,!o.hint)return cc.message("Inline completion has no insertText, jumpToPosition nor hint.");return new oH(l,o.hint,o.additionalTextEdits||LW(),o,e,s,o.isInlineEdit??!1,o.supportsRename??!1,r,a,o.correlationId)}class oH{get action(){return this._action}constructor(e,t,i,n,s,r,a,l,d,c,h){this._action=e,this.hint=t,this.additionalTextEdits=i,this.sourceInlineCompletion=n,this.source=s,this.context=r,this.isInlineEdit=a,this.supportsRename=l,this._requestInfo=d,this._providerRequestInfo=c,this._correlationId=h,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 rH,this._viewData={editorType:d.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(e,t,i,n,s,r){if(this.updateShownDuration(i),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=s,this._viewData.viewKind=i,this._viewData.renderData=n,this._timeUntilShown=r-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;const a=new vN(n.lineCountModified,n.lineCountOriginal,n.characterCountModified,n.characterCountOriginal);this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,t,a),this.sourceInlineCompletion.shownCommand&&await e.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(e,t,i){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=i.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*i.ratio,1),this._partiallyAcceptedSinceOriginal.count+=i.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,e,t)}reportEndOfLife(e){if(!this._didReportEndOfLife&&(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),e||(e=this._lastSetEndOfLifeReason??{kind:Rs.Ignored,userTypingDisagreed:!1,supersededBy:void 0}),e.kind===Rs.Rejected&&!this._didShow&&(e={kind:Rs.Ignored,userTypingDisagreed:!1,supersededBy:void 0}),e.kind===Rs.Rejected&&this.source.provider.handleRejection&&this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion),this.source.provider.handleEndOfLifetime)){const t={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(i=>i.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,e,t)}}setIsPreceeded(e){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=e}setNotShownReason(e){this._notShownReason??=e}setEndOfLifeReason(e){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=e}updateShownDuration(e){const t=Date.now();this._showStartTime||(this._showStartTime=t);const i=e===ne.Collapsed;!i&&this._showUncollapsedStartTime===void 0&&(this._showUncollapsedStartTime=t),i&&this._showUncollapsedStartTime!==void 0&&(this._showUncollapsedDuration+=t-this._showUncollapsedStartTime)}reportInlineEditHidden(){if(this._showStartTime===void 0)return;const e=Date.now();this._shownDuration+=e-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime!==void 0&&(this._showUncollapsedDuration+=e-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0)}setRenameProcessingInfo(e){if(this._renameInfo)throw new at("Rename info has already been set.");this._renameInfo=e}withAction(e){return this._action=e,this}addPerformanceMarker(e){this.performance.mark(e)}}class rH{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(e){this.markers.push({name:e,timeStamp:Date.now()})}toString(){const e=[];for(let t=1;t<this.markers.length;t++){const i=this.markers[t].timeStamp-this.markers[t-1].timeStamp;e.push({[this.markers[t].name]:i})}return JSON.stringify(e)}}var rt;(function(o){o.TextEditor="textEditor",o.DiffEditor="diffEditor",o.Notebook="notebook"})(rt||(rt={}));class aH{constructor(e,t,i){this.inlineSuggestions=e,this.inlineSuggestionsData=t,this.provider=i,this.refCount=0}addRef(){this.refCount++}removeRef(e={kind:"other"}){if(this.refCount--,this.refCount===0){for(const t of this.inlineSuggestionsData)t.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,e)}else this.refCount<0&&we(new at(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}}function lH(o,e){const t=e.getWordAtPosition(o),i=e.getLineMaxColumn(o.lineNumber);return t?new I(o.lineNumber,t.startColumn,o.lineNumber,i):I.fromPositions(o,o.with(void 0,i))}function $y(o,e,t,i){const n=t.getLineContent(e.lineNumber),s=ai.replace(new Be(e.column-1,n.length),o),a=t.tokenization.tokenizeLinesAt(e.lineNumber,[s.replace(n)])?.[0].sliceZeroCopy(s.getRangeAfterReplace());return a?tH(a,i):o}var dH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},yh=function(o,e){return function(t,i){e(t,i,o)}};const Wl=new ie("renameInputVisible",!1,m(1440,"Whether the rename input widget is visible"));new ie("renameInputFocused",!1,m(1441,"Whether the rename input widget is focused"));let lv=class{constructor(e,t,i,n,s,r){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=n,this._logService=r,this.allowEditorOverflow=!0,this._disposables=new W,this._visibleContextKey=Wl.bindTo(s),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new _i,this._inputWithButton=new cH,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(59)&&this._updateFont()})),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return 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 CC(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:e=>{this._inputWithButton.input.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{this._renameCandidateListView?.focusedCandidate!==void 0&&(this._isEditingRenameCandidate=!0),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())),this._domNode}_updateStyles(e){if(!this._domNode)return;const t=e.getColor(bN),i=e.getColor(SN);this._domNode.style.backgroundColor=String(e.getColor(RS)??""),this._domNode.style.boxShadow=t?` 0 0 8px 2px ${t}`:"",this._domNode.style.border=i?`1px solid ${i}`:"",this._domNode.style.color=String(e.getColor(CN)??"");const n=e.getColor(wN);this._inputWithButton.domNode.style.backgroundColor=String(e.getColor(hw)??""),this._inputWithButton.input.style.backgroundColor=String(e.getColor(hw)??""),this._inputWithButton.domNode.style.borderWidth=n?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=n?"solid":"none",this._inputWithButton.domNode.style.borderColor=n?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;Ce(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const e=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(e.fontSize)}px`}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=Bc(this.getDomNode().ownerDocument.body),t=Tt(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const n=this._editor.getOption(75),{totalHeight:s}=fc.getLayoutInfo({lineHeight:n}),r=this._nPxAvailableBelow>s*6?[2,1]:[1,2];return{position:this._position,preference:r}}beforeRender(){const[e,t]=this._acceptKeybindings;return this._label.innerText=m(1442,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(e)?.getLabel(),this._keybindingService.lookupKeybinding(t)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(e){if(e===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Ce(this._renameCandidateListView),Ce(this._nPxAvailableAbove!==void 0),Ce(this._nPxAvailableBelow!==void 0);const t=Ia(this._inputWithButton.domNode),i=Ia(this._label);let n;e===2?n=this._nPxAvailableBelow:n=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:n-i-t,width:Ei(this._inputWithButton.domNode)})}acceptInput(e){this._trace("invoking acceptInput"),this._currentAcceptInput?.(e)}cancelInput(e,t){this._currentCancelInput?.(e)}focusNextRenameSuggestion(){this._renameCandidateListView?.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){this._renameCandidateListView?.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(e,t,i,n,s){const{start:r,end:a}=this._getSelection(e,t);this._renameCts=s;const l=new W;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,n===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=n,this._requestRenameCandidates(t,!1),l.add(re(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(t,!0))),l.add(re(this._inputWithButton.button,Pe.KEY_DOWN,c=>{const h=new NS(c);(h.equals(3)||h.equals(10))&&(h.stopPropagation(),h.preventDefault(),this._requestRenameCandidates(t,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",i),this._position=new $(e.startLineNumber,e.startColumn),this._currentName=t,this._inputWithButton.input.value=t,this._inputWithButton.input.setAttribute("selectionStart",r.toString()),this._inputWithButton.input.setAttribute("selectionEnd",a.toString()),this._inputWithButton.input.size=Math.max((e.endColumn-e.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),l.add(ke(()=>{this._renameCts=void 0,s.dispose(!0)})),l.add(ke(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),l.add(ke(()=>this._candidates.clear()));const d=new sS;return d.p.finally(()=>{l.dispose(),this._hide()}),this._currentCancelInput=c=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),d.complete(c),!0),this._currentAcceptInput=c=>{this._trace("invoking _currentAcceptInput"),Ce(this._renameCandidateListView!==void 0);const h=this._renameCandidateListView.nCandidates;let g,u;const f=this._renameCandidateListView.focusedCandidate;if(f!==void 0?(this._trace("using new name from renameSuggestion"),g=f,u={k:"renameSuggestion"}):(this._trace("using new name from inputField"),g=this._inputWithButton.input.value,u=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),g===t||g.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(),d.complete({newName:g,wantsPreview:i&&c,stats:{source:u,nRenameSuggestions:h,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},l.add(s.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),l.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),d.p}_requestRenameCandidates(e,t){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),Ce(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new Je;const i=t?Nm.Invoke:Nm.Automatic,n=this._requestRenameCandidatesOnce(i,this._renameCandidateProvidersCts.token);if(n.length===0){this._inputWithButton.setSparkleButton();return}t||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(n,e,this._renameCts.token)}}_getSelection(e,t){Ce(this._editor.hasModel());const i=this._editor.getSelection();let n=0,s=t.length;return!I.isEmpty(i)&&!I.spansMultipleLines(i)&&I.containsRange(e,i)&&(n=Math.max(0,i.startColumn-e.startColumn),s=Math.min(e.endColumn,i.endColumn)-e.startColumn),{start:n,end:s}}_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(e,t,i){const n=(...d)=>this._trace("_updateRenameCandidates",...d);n("start");const s=await il(Promise.allSettled(e),i);if(this._inputWithButton.setSparkleButton(),s===void 0){n("returning early - received updateRenameCandidates results - undefined");return}const r=s.flatMap(d=>d.status==="fulfilled"&&Zn(d.value)?d.value:[]);n(`received updateRenameCandidates results - total (unfiltered) ${r.length} candidates.`);const a=yN(r,d=>d.newSymbolName);n(`distinct candidates - ${a.length} candidates.`);const l=a.filter(({newSymbolName:d})=>d.trim().length>0&&d!==this._inputWithButton.input.value&&d!==t&&!this._candidates.has(d));if(n(`valid distinct candidates - ${r.length} candidates.`),l.forEach(d=>this._candidates.add(d.newSymbolName)),l.length<1){n("returning early - no valid distinct candidates");return}n("setting candidates"),this._renameCandidateListView.setCandidates(l),n("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(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace("RenameWidget",...e)}};lv=dH([yh(2,yt),yh(3,Te),yh(4,pe),yh(5,Pt)],lv);class CC{constructor(e,t){this._disposables=new W,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",e.appendChild(this._listContainer),this._listWidget=CC._createListWidget(this._listContainer,this._candidateViewHeight,t.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus(i=>{i.elements.length===1&&t.onFocusChange(i.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection(i=>{i.elements.length===1&&t.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur(i=>{this._listWidget.setFocus([])})),this._listWidget.style(PL({listInactiveFocusForeground:AL,listInactiveFocusBackground:ML}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(this._listWidget.length),i=this._pickListWidth(e);this._listWidget.layout(t,i),this._listContainer.style.height=`${t}px`,this._listContainer.style.width=`${i}px`,ao(m(1443,"Received {0} rename suggestions",e.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;const e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(e[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0){this._listWidget.focusLast();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}else{if(e[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:e}=fc.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map(n=>n.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,i){const n=new class{getTemplateId(r){return"candidate"}getHeight(r){return t}},s=new class{constructor(){this.templateId="candidate"}renderTemplate(r){return new fc(r,i)}renderElement(r,a,l){l.populate(r)}disposeTemplate(r){r.dispose()}};return new tS("NewSymbolNameCandidates",e,n,[s],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class cH{constructor(){this._buttonHoverContent="",this._disposables=new W,this._onDidInputChange=this._disposables.add(new Y),this.onDidInputChange=this._onDidInputChange.event}get domNode(){return 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",m(1444,"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=m(1445,"Generate New Name Suggestions"),this._buttonCancelHoverText=m(1446,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add(IN().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(re(this.input,Pe.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(re(this.input,Pe.KEY_DOWN,e=>{const t=new NS(e);(t.keyCode===15||t.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(re(this.input,Pe.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(re(this.input,Pe.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(re(this.input,Pe.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return Ce(this._inputNode),this._inputNode}get button(){return Ce(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=xn(U.sparkle),pi(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??=xn(U.stopCircle),pi(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()}}const Bd=class Bd{constructor(e,t){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=`${t.lineHeight}px`,this._domNode.style.padding=`${Bd._PADDING}px`;const i=document.createElement("div");i.style.display="flex",i.style.alignItems="center",i.style.width=i.style.height=`${t.lineHeight*.8}px`,this._domNode.appendChild(i),this._icon=xn(U.sparkle),this._icon.style.display="none",i.appendChild(this._icon),this._label=document.createElement("div"),OL(this._label,t),this._domNode.appendChild(this._label),e.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(e){const t=!!e.tags?.includes(xN.AIGenerated);this._icon.style.display=t?"inherit":"none"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+Bd._PADDING*2}}dispose(){}};Bd._PADDING=2;let fc=Bd;var hH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},No=function(o,e){return function(t,i){e(t,i,o)}},dv;class cp{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const n=this._providers[this._providerRenameIdx];if(!n.resolveRenameLocation)break;const s=await n.resolveRenameLocation(this.model,this.position,e);if(s){if(s.rejectReason){t.push(s.rejectReason);continue}return s}}this._providerRenameIdx=0;const i=this.model.getWordAtPosition(this.position);return i?{range:new I(this.position.lineNumber,i.startColumn,this.position.lineNumber,i.endColumn),text:i.word,rejectReason:t.length>0?t.join(`
35
- `):void 0}:{range:I.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join(`
36
- `):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,i,n){const s=this._providers[t];if(!s)return{edits:[],rejectReason:i.join(`
37
- `)};const r=await s.provideRenameEdits(this.model,this.position,e,n);if(r){if(r.rejectReason)return this._provideRenameEdits(e,t+1,i.concat(r.rejectReason),n)}else return this._provideRenameEdits(e,t+1,i.concat(m(1429,"No result.")),n);return r}}function uH(o,e){return o.ordered(e).length>0}async function gH(o,e,t,i,n){return new cp(e,t,o).provideRenameEdits(i,n??de.None)}async function fH(o,e,t,i){const n=new cp(e,t,o),s=await n.resolveRenameLocation(de.None);return s?.rejectReason?{edits:[],rejectReason:s.rejectReason}:n.provideRenameEdits(i,de.None)}var pr;let go=(pr=class{static get(e){return e.getContribution(dv.ID)}constructor(e,t,i,n,s,r,a,l){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=n,this._progressService=s,this._logService=r,this._configService=a,this._languageFeaturesService=l,this._disposableStore=new W,this._cts=new Je,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(lv,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){const e=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Je,!this.editor.hasModel()){e("editor has no model");return}const t=this.editor.getPosition(),i=new cp(this.editor.getModel(),t,this._languageFeaturesService.renameProvider);if(!i.hasProvider()){e("skeleton has no provider");return}const n=new Tr(this.editor,5,void 0,this._cts.token);let s;try{e("resolving rename location");const f=i.resolveRenameLocation(n.token);this._progressService.showWhile(f,250),s=await f,e("resolved rename location")}catch(f){f instanceof mS?e("resolve rename location cancelled",JSON.stringify(f,null," ")):(e("resolve rename location failed",f instanceof Error?f:JSON.stringify(f,null," ")),(typeof f=="string"||Zh(f))&&qt.get(this.editor)?.showMessage(f||m(1430,"An unknown error occurred while resolving rename location"),t));return}finally{n.dispose()}if(!s){e("returning early - no loc");return}if(s.rejectReason){e(`returning early - rejected with reason: ${s.rejectReason}`,s.rejectReason),qt.get(this.editor)?.showMessage(s.rejectReason,t);return}if(n.token.isCancellationRequested){e("returning early - cts1 cancelled");return}const r=new Tr(this.editor,5,s.range,this._cts.token),a=this.editor.getModel(),l=this._languageFeaturesService.newSymbolNamesProvider.all(a),d=await Promise.all(l.map(async f=>[f,await f.supportsAutomaticNewSymbolNamesTriggerKind??!1])),c=(f,p)=>{let _=d.slice();return f===Nm.Automatic&&(_=_.filter(([v,S])=>S)),_.map(([v])=>v.provideNewSymbolNames(a,s.range,f,p))};e("creating rename input field and awaiting its result");const h=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),g=await this._renameWidget.getInput(s.range,s.text,h,l.length>0?c:void 0,r);if(e("received response from rename input field"),typeof g=="boolean"){e(`returning early - rename input field response - ${g}`),g&&this.editor.focus(),r.dispose();return}this.editor.focus(),e("requesting rename edits");const u=il(i.provideRenameEdits(g.newName,r.token),r.token).then(async f=>{if(!f){e("returning early - no rename edits result");return}if(!this.editor.hasModel()){e("returning early - no model after rename edits are provided");return}if(f.rejectReason){e(`returning early - rejected with reason: ${f.rejectReason}`),this._notificationService.info(f.rejectReason);return}this.editor.setSelection(I.fromPositions(this.editor.getSelection().getPosition())),e("applying edits"),this._bulkEditService.apply(f,{editor:this.editor,showPreview:g.wantsPreview,label:m(1431,"Renaming '{0}' to '{1}'",s?.text,g.newName),code:"undoredo.rename",quotableLabel:m(1432,"Renaming {0} to {1}",s?.text,g.newName),respectAutoSaveConfig:!0,reason:Pr.rename(s?.text,g.newName)}).then(p=>{e("edits applied"),p.ariaSummary&&mi(m(1433,"Successfully renamed '{0}' to '{1}'. Summary: {2}",s.text,g.newName,p.ariaSummary))}).catch(p=>{e(`error when applying edits ${JSON.stringify(p,null," ")}`),this._notificationService.error(m(1434,"Rename failed to apply edits")),this._logService.error(p)})},f=>{e("error when providing rename edits",JSON.stringify(f,null," ")),this._notificationService.error(m(1435,"Rename failed to compute edits")),this._logService.error(f)}).finally(()=>{r.dispose()});return e("returning rename operation"),this._progressService.showWhile(u,250),u}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}},dv=pr,pr.ID="editor.contrib.renameController",pr);go=dv=hH([No(1,ee),No(2,Lt),No(3,Ac),No(4,nl),No(5,Pt),No(6,LN),No(7,G)],go);class pH extends F{constructor(){super({id:"editor.action.rename",label:L(1437,"Rename Symbol"),precondition:T.and(C.writable,C.hasRenameProvider),kbOpts:{kbExpr:C.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(e,t){const i=e.get(Ue),[n,s]=Array.isArray(t)&&t||[void 0,void 0];return Le.isUri(n)&&$.isIPosition(s)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then(r=>{r&&(r.setPosition(s),r.invokeWithinContext(a=>(this.reportTelemetry(a,r),this.run(a,r))))},we):super.runCommand(e,t)}run(e,t){const i=e.get(Pt),n=go.get(t);return n?(i.trace("[RenameAction] got controller, running..."),n.run()):(i.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}ae(go.ID,go,4);P(pH);const wC=Mt.bindToContribution(go.get);K(new wC({id:"acceptRenameInput",precondition:Wl,handler:o=>o.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:T.and(C.focus,T.not("isComposing")),primary:3}}));K(new wC({id:"acceptRenameInputWithPreview",precondition:T.and(Wl,T.has("config.editor.rename.enablePreview")),handler:o=>o.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:T.and(C.focus,T.not("isComposing")),primary:2051}}));K(new wC({id:"cancelRenameInput",precondition:Wl,handler:o=>o.cancelRenameInput(),kbOpts:{weight:199,kbExpr:C.focus,primary:9,secondary:[1033]}}));he(class extends tt{constructor(){super({id:"focusNextRenameSuggestion",title:{...L(1438,"Focus Next Rename Suggestion")},precondition:Wl,keybinding:[{primary:18,weight:199}]})}run(e){const t=e.get(Ue).getFocusedCodeEditor();if(!t)return;const i=go.get(t);i&&i.focusNextRenameSuggestion()}});he(class extends tt{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...L(1439,"Focus Previous Rename Suggestion")},precondition:Wl,keybinding:[{primary:16,weight:199}]})}run(e){const t=e.get(Ue).getFocusedCodeEditor();if(!t)return;const i=go.get(t);i&&i.focusPreviousRenameSuggestion()}});$t("_executeDocumentRenameProvider",function(o,e,t,...i){const[n]=i;Ce(typeof n=="string");const{renameProvider:s}=o.get(G);return fH(s,e,t,n)});$t("_executePrepareRename",async function(o,e,t){const{renameProvider:i}=o.get(G),s=await new cp(e,t,i).resolveRenameLocation(de.None);if(s?.rejectReason)throw new Error(s.rejectReason);return s});Nn.as(Ef.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:m(1436,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var mH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ha=function(o,e){return function(t,i){e(t,i,o)}},Bn;(function(o){o.no="no",o.yes="yes",o.maybe="maybe"})(Bn||(Bn={}));(function(o){function e(t){switch(t){case"no":return o.no;case"yes":return o.yes;case"maybe":return o.maybe;default:return o.no}}o.fromString=e})(Bn||(Bn={}));class _H{constructor(){}inferRename(e,t,i,n){const s=new I(t.startLineNumber,1,t.endLineNumber,e.getLineMaxColumn(t.endLineNumber)),r=t.startColumn-s.startColumn,a=s.endColumn-t.endColumn,l=e.getValueInRange(s),d=e.getValueInRange(new I(s.startLineNumber,s.startColumn,s.startLineNumber,s.startColumn+r))+i+e.getValueInRange(new I(s.endLineNumber,s.endColumn-a,s.endLineNumber,s.endColumn)),c=[],h=[];let g,u,f;const p=e.getOffsetAt(s.getStartPosition()),{changes:_}=new kL(new uw(l),new uw(d)).ComputeDiff(!0);if(_.length===0)return;const v=[];for(const x of _){if(v.length===0){v.push(x);continue}const b=v[v.length-1],w=x.originalStart-(b.originalStart+b.originalLength);if(w>0){const D=p+b.originalStart+b.originalLength,N=e.getPositionAt(D),E=e.getWordAtPosition(N);if(E){const M=e.getOffsetAt(new $(N.lineNumber,E.startColumn)),O=e.getOffsetAt(new $(N.lineNumber,E.endColumn)),H=D+w;if(M<=D&&H<=O&&M<=H&&H<=O){b.originalLength=x.originalStart+x.originalLength-b.originalStart,b.modifiedLength=x.modifiedStart+x.modifiedLength-b.modifiedStart;continue}}}v.push(x)}let S=0;for(const x of v){const b=l.substring(x.originalStart,x.originalStart+x.originalLength),w=d.substring(x.modifiedStart,x.modifiedStart+x.modifiedLength),D=p+x.originalStart,N=e.getPositionAt(D),E=D+x.originalLength,M=e.getPositionAt(E),O=I.fromPositions(N,M),H=w.length-x.originalLength;if(/\s/.test(b)){c.push(new Ae(O,w)),S+=H;continue}if(b.length>0){n.lastIndex=0;const be=n.exec(b);if(be===null||be.index!==0||be[0].length!==b.length){c.push(new Ae(O,w)),S+=H;continue}}if(/\s/.test(w)){c.push(new Ae(O,w)),S+=H;continue}if(w.length>0){n.lastIndex=0;const be=n.exec(w);if(be===null||be.index!==0||be[0].length!==w.length){c.push(new Ae(O,w)),S+=H;continue}}const Z=e.getWordAtPosition(N);if(Z===null){c.push(new Ae(O,w)),S+=H;continue}const se=x.originalStart+1,ve=x.originalLength===0&&x.modifiedLength>0;let oe;if(ve&&se===Z.endColumn&&Z.endColumn>Z.startColumn?oe=this.getTokenAtPosition(e,new $(N.lineNumber,Z.startColumn)):oe=this.getTokenAtPosition(e,N),Z.startColumn!==oe.range.startColumn||Z.endColumn!==oe.range.endColumn){c.push(new Ae(O,w)),S+=H;continue}if(oe.type===0){let be=e.getValueInRange(oe.range);if(be.length===0){c.push(new Ae(O,w)),S+=H;continue}if(g===void 0)g=be;else if(g!==be){c.push(new Ae(O,w)),S+=H;continue}const Q=e.getOffsetAt(oe.range.getStartPosition())-p+S,ue=e.getOffsetAt(oe.range.getEndPosition())-p+S;if(be=d.substring(Q,ue+H),be.length===0){c.push(new Ae(O,w)),S+=H;continue}if(u===void 0)u=be;else if(u!==be){c.push(new Ae(O,w)),S+=H;continue}f===void 0&&(f=oe.range.getStartPosition()),g!==void 0&&u!==void 0&&g.length>0&&u.length>0&&g!==u?h.push(new Ae(oe.range,u)):h.push(new Ae(O,w)),S+=H}else c.push(new Ae(O,w)),S+=w.length-x.originalLength}if(g===void 0||u===void 0||f===void 0||g.length===0||u.length===0||g===u)return;n.lastIndex=0;let y=n.exec(g);if(!(y===null||y.index!==0||y[0].length!==g.length)&&(n.lastIndex=0,y=n.exec(u),!(y===null||y.index!==0||y[0].length!==u.length)))return{renames:{edits:h,position:f,oldName:g,newName:u},others:{edits:c}}}getTokenAtPosition(e,t){e.tokenization.tokenizeIfCheap(t.lineNumber);const i=e.tokenization.getLineTokens(t.lineNumber),n=i.findTokenIndexAtOffset(t.column-1);return{type:i.getStandardTokenType(n),range:new I(t.lineNumber,1+i.getStartOffset(n),t.lineNumber,1+i.getEndOffset(n))}}}class pc{static create(e,t){const i=e.getFocusedCodeEditor();if(i!==null&&i.getModel()===t)return new pc(i,t.getVersionId())}constructor(e,t){this.editor=e,this.versionId=t}equals(e){return e===void 0?!1:this.editor===e.editor&&this.versionId===e.versionId}}class vH{constructor(e,t,i,n,s,r,a,l,d){if(this._result=void 0,this._commandService=t,this._textModel=n,this._state=s,this._requestUuid=i,this._cancellationTokenSource=new Je,l===void 0||d===void 0){this._promise=gH(e.renameProvider,n,r,a,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(n,r,d,a,l)}get requestUuid(){return this._requestUuid}isValid(e){return this._state.equals(pc.create(e,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;const e=await this.getResult();return e===void 0||this._cancellationTokenSource.token.isCancellationRequested?0:e.edits.length}async getWorkspaceEdit(){return this.getResult()}async getResult(){if(!this._cancellationTokenSource.token.isCancellationRequested&&(this._result===void 0&&(this._result=await this._promise),!(this._result.rejectReason||this._cancellationTokenSource.token.isCancellationRequested)))return this._result}async sendNesRenameRequest(e,t,i,n,s){try{const r=await this._commandService.executeCommand("github.copilot.nes.postRename",e.uri,t,i,n,s);if(r===void 0)return{rejectReason:"Rename failed",edits:[]};const a=[];for(const l of r)for(const d of l.changes){const c=new I(d.range.start.line+1,d.range.start.character+1,d.range.end.line+1,d.range.end.character+1),h=new zx(l.file,new Ae(c,d.newText??n));a.push(h)}return{edits:a}}catch{return{rejectReason:"Rename failed",edits:[]}}}}let cv=class extends A{constructor(e,t,i,n,s,r){super(),this._commandService=e,this._languageFeaturesService=t,this._languageConfigurationService=i,this._renameSymbolTrackerService=s,this._codeEditorService=r,this._renameInferenceEngine=new _H,this._renameRunnable=void 0,this._register(Ee.registerCommand($w,async(a,l,d)=>{if(!(d===void 0||!d.isValid(this._codeEditorService)))try{const c=await d.getWorkspaceEdit();if(c===void 0)return;n.apply(c,{reason:l})}finally{this._renameRunnable===d&&(this._renameRunnable=void 0)}}))}async proposeRenameRefactoring(e,t,i){if(!t.supportsRename||t.action?.kind!=="edit"||i.selectedSuggestionInfo||!uH(this._languageFeaturesService.renameProvider,e))return t;const n=pc.create(this._codeEditorService,e);if(n===void 0)return t;const s=Date.now(),r=t.action.textReplacement,a=this._languageConfigurationService.getLanguageConfiguration(e.getLanguageId()),l=this._renameInferenceEngine.inferRename(e,r.range,r.text,a.wordDefinition);if(l===void 0||l.renames.edits.length===0)return t;const{oldName:d,newName:c,position:h,edits:g}=l.renames,u=this._renameSymbolTrackerService.trackedWord.get();let f;u!==void 0&&u.model===e&&u.originalWord===d&&u.currentWord===c&&(f=u.currentRange);let p=!1;const _=await EN(this.checkRenamePrecondition(t,e,h,d,c,f),100,()=>{p=!0}),v=this.isRenamePossible(t,_,n,e);if(t.setRenameProcessingInfo({createdRename:v,duration:Date.now()-s,timedOut:p,droppedOtherEdits:v?l.others.edits.length:void 0,droppedRenameEdits:v?g.length-1:void 0}),!v)return t;this._renameRunnable===void 0&&(this._renameRunnable=new vH(this._languageFeaturesService,this._commandService,t.requestUuid,e,n,h,c,f,f!==void 0?d:void 0));const S=Pr.inlineCompletionAccept({nes:t.isInlineEdit,requestUuid:t.requestUuid,providerId:t.source.provider.providerId,languageId:e.getLanguageId(),correlationId:t.getSourceCompletion().correlationId}),y={id:$w,title:m(1254,"Rename"),arguments:[S,this._renameRunnable]},x={label:m(1255,"Rename"),icon:U.replaceAll,command:y,count:this._renameRunnable.getCount()},b={kind:"edit",range:g[0].range,insertText:g[0].text,snippetInfo:t.snippetInfo,alternativeAction:x,uri:e.uri},w=Fl.snapshot(e);return qu.create(t.withAction(b),w,!1)}async checkRenamePrecondition(e,t,i,n,s,r){const a={canRename:Bn.no,timedOut:!1};try{const l=await this._commandService.executeCommand("github.copilot.nes.prepareRename",t.uri,i,n,s,e.requestUuid,r);if(l===void 0)return a;if(typeof l=="string"){const d=Bn.fromString(l);return d===Bn.yes||d===Bn.maybe?{canRename:d,oldName:n,onOldState:!1}:{canRename:d,timedOut:!1}}else return l}catch{return a}}isRenamePossible(e,t,i,n){return t===void 0||t.canRename===Bn.no||!i.equals(pc.create(this._codeEditorService,n))?!1:this._renameRunnable===void 0?!0:this._renameRunnable.requestUuid===e.requestUuid?!1:(this._renameRunnable.cancel(),this._renameRunnable=void 0,!0)}};cv=mH([ha(0,it),ha(1,G),ha(2,st),ha(3,Ac),ha(4,DN),ha(5,Ue)],cv);var bH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ua=function(o,e){return function(t,i){e(t,i,o)}},hv,mr;let uv=(mr=class extends A{constructor(e,t,i,n,s,r,a,l,d,c){super(),this._textModel=e,this._versionId=t,this._debounceValue=i,this._cursorPosition=n,this._languageConfigurationService=s,this._logService=r,this._configurationService=a,this._instantiationService=l,this._contextKeyService=d,this._textModelService=c,this._updateOperation=this._register(new Ke),this._state=MW(this,{initial:()=>({inlineCompletions:ii.createEmpty(),suggestWidgetInlineCompletions:ii.createEmpty()}),disposeFinal:g=>{g.inlineCompletions.dispose(),g.suggestWidgetInlineCompletions.dispose()},changeTracker:AN(()=>({versionId:this._versionId})),update:(g,u,f)=>{const p=es.compose(f.changes.map(_=>_.change?FN(_.change.changes):es.empty).filter(Zn));if(p.isEmpty())return u;try{return{inlineCompletions:u.inlineCompletions.createStateWithAppliedEdit(p,this._textModel),suggestWidgetInlineCompletions:u.suggestWidgetInlineCompletions.createStateWithAppliedEdit(p,this._textModel)}}finally{u.inlineCompletions.dispose(),u.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,g=>g.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,g=>g.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=R(this,g=>{this._versionId.read(g),this._updateOperation.clear()}),this._loadingCount=Ne(this,0),this.loading=this._loadingCount.map(this,g=>g>0),this._loggingEnabled=gw("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=gw("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(Hu.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(cv)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store);const h=RN.defaultChatAgent?.completionsEnablementSetting??void 0;h&&(this._updateCompletionsEnablement(h),this._register(this._configurationService.onDidChangeConfiguration(g=>{g.affectsConfiguration(h)&&this._updateCompletionsEnablement(h)}))),this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(e){const t=this._configurationService.getValue(e);wS(t)?this._completionsEnabled=t:this._completionsEnabled=void 0}_log(e){this._loggingEnabled.get()&&this._logService.info(mW(e)),this._structuredFetchLogger.log(e)}fetch(e,t,i,n,s,r,a){const l=this._cursorPosition.get(),d=new SH(l,i,this._textModel.getVersionId(),new Set(e)),c=i.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if(this._updateOperation.value?.request.satisfies(d))return this._updateOperation.value.promise;if(c?.request?.satisfies(d))return Promise.resolve(!0);const h=!!this._updateOperation.value;this._updateOperation.clear();const g=new Je,u=(async()=>{const p=new W;this._loadingCount.set(this._loadingCount.get()+1,void 0);let _=!1;const v=()=>{_||(_=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0))};p.add(new et(()=>v(),10*1e3)).schedule();const y=e.filter(b=>b.providerId),x=new CH(i,a,y);try{const b=this._debounceValue.get(this._textModel),w=NN(e.map(Q=>Q.debounceDelayMs),kN(Ar))??b;if((h||s&&i.triggerKind===ni.Automatic)&&await My(w,g.token),g.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==d.versionId)return x.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;const N=hv._requestId++;(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())&&this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:N,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:i.triggerKind,suggestInfo:i.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:t});const E=new Date,M=nH(e,this._cursorPosition.get(),this._textModel,i,a,this._languageConfigurationService);aE(g.token,()=>M.cancelAndDispose({kind:"tokenCancellation"}));let O=!1,H=!1;const Z=[];for await(const Q of M.lists)if(Q){Q.addRef(),p.add(ke(()=>Q.removeRef(Q.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(const ue of Q.inlineSuggestionsData){if(H=!0,!i.includeInlineEdits&&(ue.isInlineEdit||ue.showInlineEditMenu)){ue.setNotShownReason("notInlineEditRequested");continue}if(!i.includeInlineCompletions&&!(ue.isInlineEdit||ue.showInlineEditMenu)){ue.setNotShownReason("notInlineCompletionRequested");continue}ue.addPerformanceMarker("providerReturned");const Jt=ue.action?.uri;let ot,me;if(Jt&&Jt.toString()!==this._textModel.uri.toString()){const Fe=await this._textModelService.createModelReference(Jt);ot=Fe.object.textEditorModel,me=Fe}else ot=this._textModel,me=void 0;const Si=Fl.snapshot(ot),bt=qu.create(ue,Si);if(me){const Fe=Aa(bt.identity.onDispose,()=>{me?.dispose(),Fe.dispose()})}ue.addPerformanceMarker("itemCreated"),Z.push(bt),!bt.isInlineEdit&&!bt.showInlineEditMenu&&i.triggerKind===ni.Automatic&&bt.isVisible(this._textModel,this._cursorPosition.get())&&(O=!0)}if(O)break}Z.forEach(Q=>Q.addPerformanceMarker("providersResolved"));const se=await Promise.all(Z.map(async Q=>this._renameProcessor.proposeRenameRefactoring(this._textModel,Q,i)));if(se.forEach(Q=>Q.addPerformanceMarker("renameProcessed")),M.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){const Q=M.didAllProvidersReturn;let ue;(g.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==d.versionId)&&(ue="canceled");const Jt=se.map(ot=>{const me=ot.getSourceCompletion();if(me.doNotLog)return;const Si={insertText:me.insertText,range:me.range,additionalTextEdits:me.additionalTextEdits,uri:me.uri,command:me.command,gutterMenuLinkAction:me.gutterMenuLinkAction,shownCommand:me.shownCommand,completeBracketPairs:me.completeBracketPairs,isInlineEdit:me.isInlineEdit,showInlineEditMenu:me.showInlineEditMenu,showRange:me.showRange,warning:me.warning,hint:me.hint,supportsRename:me.supportsRename,correlationId:me.correlationId,jumpToPosition:me.jumpToPosition};return{...TN(Si,bt=>I.isIRange(bt)?I.lift(bt).toString():$.isIPosition(bt)?$.lift(bt).toString():SL.is(bt)?{$commandId:bt.id}:bt),$providerId:ot.source.provider.providerId?.toString()}}).filter(ot=>ot!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:N,durationMs:Date.now()-E.getTime(),error:ue,result:Jt,time:Date.now(),didAllProvidersReturn:Q})}if(x.setRequestUuid(M.contextWithUuid.requestUuid),H)x.setHasProducedSuggestion(),se.length>0&&g.token.isCancellationRequested&&se.forEach(Q=>Q.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"));else if(g.token.isCancellationRequested)x.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{const Q=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");x.setNoSuggestionReasonIfNotSet(Q?"completionsQuotaExceeded":"noSuggestion")}const ve=i.earliestShownDateTime-Date.now();if(ve>0&&await My(ve,g.token),se.forEach(Q=>Q.addPerformanceMarker("minShowDelayPassed")),g.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==d.versionId||r.get()){const Q=g.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==d.versionId?"canceled:documentChanged":r.get()?"canceled:userJumped":"unknown";return se.forEach(ue=>ue.setNotShownReasonIfNotSet(Q)),!1}const oe=new Date;this._debounceValue.update(this._textModel,oe.getTime()-E.getTime());const be=this._cursorPosition.get();this._updateOperation.clear(),en(Q=>{const ue=this._state.get();i.selectedSuggestionInfo?this._state.set({inlineCompletions:ii.createEmpty(),suggestWidgetInlineCompletions:ue.suggestWidgetInlineCompletions.createStateWithAppliedResults(se,d,this._textModel,be,n)},Q):this._state.set({inlineCompletions:ue.inlineCompletions.createStateWithAppliedResults(se,d,this._textModel,be,n),suggestWidgetInlineCompletions:ii.createEmpty()},Q),ue.inlineCompletions.dispose(),ue.suggestWidgetInlineCompletions.dispose()})}finally{p.dispose(),v(),this._sendInlineCompletionsRequestTelemetry(x)}return!0})(),f=new yH(d,g,u);return this._updateOperation.value=f,u}clear(e){if(this._store.isDisposed)return;this._updateOperation.clear();const t=this._state.get();this._state.set({inlineCompletions:ii.createEmpty(),suggestWidgetInlineCompletions:ii.createEmpty()},e),t.inlineCompletions.dispose(),t.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){const e=this.inlineCompletions.get(),t=this.suggestWidgetInlineCompletions.get();t&&en(i=>{if(!e||(t.request?.versionId??-1)>(e.request?.versionId??-1)){e?.dispose();const n=this._state.get();this._state.set({inlineCompletions:t.clone(),suggestWidgetInlineCompletions:ii.createEmpty()},i),n.inlineCompletions.dispose(),n.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(i)})}seedWithCompletion(e,t){const i=this._state.get();this._state.set({inlineCompletions:new ii([e],void 0),suggestWidgetInlineCompletions:ii.createEmpty()},t),i.inlineCompletions.dispose(),i.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(e){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment")||e.requestUuid===void 0||e.hasProducedSuggestion||!PN(this._completionsEnabled,this._textModel.getLanguageId())||!e.providers.some(n=>Uy(n.providerId?.extensionId)))return;const t={opportunityId:e.requestUuid,noSuggestionReason:e.noSuggestionReason??"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,skuPlan:e.requestInfo.sku?.plan,skuType:e.requestInfo.sku?.type,editorType:e.requestInfo.editorType,requestReason:e.requestInfo.reason,typingInterval:e.requestInfo.typingInterval,typingIntervalCharacterCount:e.requestInfo.typingIntervalCharacterCount,languageId:e.requestInfo.languageId,selectedSuggestionInfo:!!e.context.selectedSuggestionInfo,availableProviders:e.providers.map(n=>n.providerId?.toString()).filter(Zn).join(","),...WW(e.providers.some(n=>Uy(n.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,notShownReason:void 0,renameCreated:!1,renameDuration:void 0,renameTimedOut:!1,renameDroppedOtherEdits:void 0,renameDroppedRenameEdits:void 0,performanceMarkers:void 0,editKind:void 0},i=this._instantiationService.createInstance(ov);HW(i,t)}clearSuggestWidgetInlineCompletions(e){this._updateOperation.value?.request.context.selectedSuggestionInfo&&this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}},hv=mr,mr._requestId=0,mr);uv=hv=bH([ua(4,st),ua(5,Pt),ua(6,Ie),ua(7,ee),ua(8,pe),ua(9,ci)],uv);class SH{constructor(e,t,i,n){this.position=e,this.context=t,this.versionId=i,this.providers=n}satisfies(e){return this.position.equals(e.position)&&ON(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,kS())&&(e.context.triggerKind===ni.Automatic||this.context.triggerKind===ni.Explicit)&&this.versionId===e.versionId&&wH(e.providers,this.providers)}}class CH{constructor(e,t,i){this.context=e,this.requestInfo=t,this.providers=i,this.hasProducedSuggestion=!1}setRequestUuid(e){this.requestUuid=e}setNoSuggestionReasonIfNotSet(e){this.noSuggestionReason??=e}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function wH(o,e){return[...o].every(t=>e.has(t))}class yH{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class ii extends A{static createEmpty(){return new ii([],void 0)}constructor(e,t){super(),this.inlineCompletions=e,this.request=t;for(const i of this.inlineCompletions)i.addRef();this._register({dispose:()=>{for(const i of this.inlineCompletions)i.removeRef()}})}_findById(e){return this.inlineCompletions.find(t=>t.identity===e)}_findByHash(e){return this.inlineCompletions.find(t=>t.hash===e)}createStateWithAppliedEdit(e,t){const i=this.inlineCompletions.map(n=>n.withEdit(e,t)).filter(Zn);return new ii(i,this.request)}createStateWithAppliedResults(e,t,i,n,s){let r;if(s){const d=this._findById(s);if(d&&d.canBeReused(i,t.position)){r=d;const c=e.find(h=>h.hash===d.hash);c?e=xH(c,e):e=[d,...e]}}const a=r?!r.isInlineEdit:e.some(d=>!d.isInlineEdit&&d.isVisible(i,n));let l=[];for(const d of e){const c=this._findByHash(d.hash);let h;c&&c!==d?(h=d.withIdentity(c.identity),d.setIsPreceeded(c),c.setEndOfLifeReason({kind:Rs.Ignored,userTypingDisagreed:!1,supersededBy:d.getSourceCompletion()})):h=d,a!==h.isInlineEdit&&l.push(h)}return l.sort(Mr(d=>d.showInlineEditMenu,MN)),l=IH(l,d=>d.semanticId),new ii(l,t)}clone(){return new ii(this.inlineCompletions,this.request)}}function IH(o,e){const t=new Set;return o.filter(i=>{const n=e(i);return t.has(n)?!1:(t.add(n),!0)})}function xH(o,e){const t=e.indexOf(o);return t>-1?[o,...e.slice(0,t),...e.slice(t+1)]:e}const hi=class hi extends A{getTypingInterval(){return(this._cacheInvalidated||this._cachedTypingIntervalResult===null)&&(this._cachedTypingIntervalResult=this._calculateTypingInterval(),this._cacheInvalidated=!1),this._cachedTypingIntervalResult}constructor(e){super(),this._textModel=e,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent(t=>this._updateTypingSpeed(t)))}_updateTypingSpeed(e){const t=Date.now();if(!this._isUserTyping(e)){this._finalizeCurrentSession();return}this._currentSession&&t-this._lastChangeTime>hi.MAX_SESSION_GAP_MS&&this._finalizeCurrentSession(),this._currentSession||(this._currentSession={startTime:t,endTime:t,characterCount:0}),this._currentSession.endTime=t,this._currentSession.characterCount+=this._getActualCharacterCount(e),this._lastChangeTime=t,this._cacheInvalidated=!0}_getActualCharacterCount(e){let t=0;for(const i of e.changes)t+=Math.max(i.text.length,i.rangeLength);return t}_isUserTyping(e){if(!e.detailedReasons||e.detailedReasons.length===0)return!1;for(const t of e.detailedReasons)if(this._isUserTypingReason(t))return!0;return!1}_isUserTypingReason(e){if(e.metadata.isUndoing||e.metadata.isRedoing)return!1;switch(e.metadata.source){case"cursor":{const t=e.metadata.kind;return t==="type"||t==="compositionType"||t==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;this._currentSession.endTime-this._currentSession.startTime>=hi.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0&&(this._typingSessions.push(this._currentSession),this._typingSessions.length>hi.SESSION_HISTORY_LIMIT&&this._typingSessions.shift()),this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){const e={...this._currentSession};if(e.endTime-e.startTime>=hi.MIN_SESSION_DURATION_MS&&e.characterCount>0){const i=[...this._typingSessions,e];return this._calculateSpeedFromSessions(i)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(e){if(e.length===0)return{averageInterval:0,characterCount:0};const t=[...e].sort((c,h)=>h.endTime-c.endTime),i=Date.now()-hi.TYPING_SPEED_WINDOW_MS,n=t.filter(c=>c.endTime>i),s=t.splice(n.length);let r=nu(n.map(c=>c.characterCount));for(let c=0;c<s.length&&r<hi.MIN_CHARS_FOR_RELIABLE_SPEED;c++)n.push(s[c]),r+=s[c].characterCount;const a=nu(n.map(c=>c.endTime-c.startTime));if(a===0||r<=1)return{averageInterval:0,characterCount:r};const l=Math.max(1,r-1),d=a/l;return{averageInterval:Math.round(d),characterCount:r}}dispose(){this._finalizeCurrentSession(),super.dispose()}};hi.MAX_SESSION_GAP_MS=3e3,hi.MIN_SESSION_DURATION_MS=1e3,hi.SESSION_HISTORY_LIMIT=50,hi.TYPING_SPEED_WINDOW_MS=3e5,hi.MIN_CHARS_FOR_RELIABLE_SPEED=20;let gv=hi,lE;function dE(o){return lE?.(o)??null}function LH(o){lE=o}var DH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},hs=function(o,e){return function(t,i){e(t,i,o)}};let fv=class extends A{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(e,t,i,n,s,r,a,l,d,c,h,g,u,f,p){super(),this.textModel=e,this._selectedSuggestItem=t,this._textModelVersionId=i,this._positions=n,this._debounceValue=s,this._enabled=r,this._editor=a,this._instantiationService=l,this._commandService=d,this._languageConfigurationService=c,this._accessibilityService=h,this._languageFeaturesService=g,this._codeEditorService=u,this._inlineCompletionsService=f,this._isActive=Ne(this,!1),this._onlyRequestInlineEditsSignal=xs(this),this._forceUpdateExplicitlySignal=xs(this),this._noDelaySignal=xs(this),this._fetchSpecificProviderSignal=xs(this),this._selectedInlineCompletionId=Ne(this,void 0),this.primaryPosition=R(this,b=>this._positions.read(b)[0]??new $(1,1)),this.allPositions=R(this,b=>this._positions.read(b)),this.sku=Ne(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=R(this,b=>{const w=this.state.read(b);return!w||!w.inlineSuggestion?!1:cE(this._editor,w.inlineSuggestion,b)}),this._onDidAccept=this._register(new Y),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=fw({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(b,w)=>(w.didUndo=b.didChange(this._textModelVersionId)&&!!b.change?.isUndoing,!0)}},(b,w)=>{const D=this._textModelVersionId.read(b);return D!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===D-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&w.didUndo?(this._lastAcceptedInlineCompletionInfo=void 0,!0):!1}),this._preserveCurrentCompletionReasons=new Set([Wn.Redo,Wn.Undo,Wn.AcceptWord]),this.dontRefetchSignal=xs(this),this._fetchInlineCompletionsPromise=fw({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:ni.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,changeHint:void 0,textChange:!1,changeReason:""}),handleChange:(b,w)=>{if(b.didChange(this._textModelVersionId)){this._preserveCurrentCompletionReasons.has(this._getReason(b.change))&&(w.preserveCurrentCompletion=!0);const D=b.change?.detailedReasons??[];w.changeReason=D.length>0?D[0].getType():"",w.textChange=!0}else b.didChange(this._forceUpdateExplicitlySignal)?(w.preserveCurrentCompletion=!0,w.inlineCompletionTriggerKind=ni.Explicit):b.didChange(this.dontRefetchSignal)?w.dontRefetch=!0:b.didChange(this._onlyRequestInlineEditsSignal)?w.onlyRequestInlineEdits=!0:b.didChange(this._fetchSpecificProviderSignal)&&(w.provider=b.change?.provider,w.changeHint=b.change?.changeHint);return!0}}},(b,w)=>{if(this._source.clearOperationOnTextModelChange.read(b),this._noDelaySignal.read(b),this.dontRefetchSignal.read(b),this._onlyRequestInlineEditsSignal.read(b),this._forceUpdateExplicitlySignal.read(b),this._fetchSpecificProviderSignal.read(b),!((this._enabled.read(b)&&this._selectedSuggestItem.read(b)||this._isActive.read(b))&&(!this._inlineCompletionsService.isSnoozing()||w.inlineCompletionTriggerKind===ni.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(b);const N=this._source.suggestWidgetInlineCompletions.read(void 0);let E=this._selectedSuggestItem.read(b);if(this._shouldShowOnSuggestConflict.read(void 0)&&(E=void 0),N&&!E&&this._source.seedInlineCompletionsWithSuggestWidget(),w.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(b)&&w.inlineCompletionTriggerKind!==ni.Explicit){en(ue=>{this._source.clear(ue)});return}let M="";w.provider?M+="providerOnDidChange":w.inlineCompletionTriggerKind===ni.Explicit&&(M+="explicit"),w.changeReason&&(M+=M.length>0?`:${w.changeReason}`:w.changeReason);const O=this._typing.getTypingInterval(),H={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:M,typingInterval:O.averageInterval,typingIntervalCharacterCount:O.characterCount,availableProviders:[],sku:this.sku.read(void 0)};let Z={triggerKind:w.inlineCompletionTriggerKind,selectedSuggestionInfo:E?.toSelectedSuggestionInfo(),includeInlineCompletions:!w.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(b),requestIssuedDateTime:H.startTime,earliestShownDateTime:H.startTime+(w.inlineCompletionTriggerKind===ni.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:w.changeHint};Z.triggerKind===ni.Automatic&&w.textChange&&this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId&&(Z={...Z,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit});const se=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,ve=w.preserveCurrentCompletion||se?.forwardStable?se:void 0,oe=this._jumpedToId.map(ue=>!!ue&&ue===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),be=w.provider?{providers:[w.provider],label:"single:"+w.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},Q=this.getAvailableProviders(be.providers);return H.availableProviders=Q.map(ue=>ue.providerId).filter(Zn),this._source.fetch(Q,be.label,Z,ve?.identity,w.shouldDebounce,oe,H)}),this._inlineSuggestionItems=pn({owner:this},b=>{const w=this._source.inlineCompletions.read(b);if(!w)return;const D=this.primaryPosition.read(b);let N;const E=[];for(const M of w.inlineCompletions)M.isInlineEdit?N=M:M.isVisible(this.textModel,D)&&E.push(M);return E.length!==0&&(N=void 0),{inlineCompletions:E,inlineEdit:N}}),this._inlineCompletionItems=pn({owner:this,equalsFn:pw()},b=>this._inlineSuggestionItems.read(b)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=R(this,b=>{const w=this._selectedInlineCompletionId.read(b),D=this._inlineCompletionItems.read(b),N=this._selectedInlineCompletionId===void 0?-1:D.findIndex(E=>E.semanticId===w);return N===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):N}),this.selectedInlineCompletion=R(this,b=>{const w=this._inlineCompletionItems.read(b),D=this.selectedInlineCompletionIndex.read(b);return w[D]}),this.activeCommands=pn({owner:this,equalsFn:pw()},b=>this.selectedInlineCompletion.read(b)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=R(this,b=>{if(this.lastTriggerKind.read(b)===ni.Explicit)return this._inlineCompletionItems.read(b).length}),this._hasVisiblePeekWidgets=R(this,b=>this._editorObs.openedPeekWidgets.read(b)>0),this._shouldShowOnSuggestConflict=R(this,b=>{const w=this._showOnSuggestConflict.read(b);if(w!=="never"&&!!this.selectedInlineCompletion.read(b)){const N=this._selectedSuggestItem.read(b);return N?w==="whenSuggestListIsIncomplete"?N.listIncomplete:!0:!1}return!1}),this.state=pn({owner:this,equalsFn:(b,w)=>!b||!w?b===w:b.kind==="ghostText"&&w.kind==="ghostText"?Fy(b.ghostTexts,w.ghostTexts)&&b.inlineSuggestion===w.inlineSuggestion&&b.suggestItem===w.suggestItem:b.kind==="inlineEdit"&&w.kind==="inlineEdit"?b.inlineSuggestion===w.inlineSuggestion:!1},b=>{const w=this.textModel;if(this._suppressInSnippetMode.read(b)&&this._isInSnippetMode.read(b))return;const D=this._inlineSuggestionItems.read(b),N=D?.inlineEdit;if(N){if(this._hasVisiblePeekWidgets.read(b))return;const M=this.primaryPosition.map(se=>Qe.fromRangeInclusive(N.targetRange).addMargin(1,1).contains(se.lineNumber)),O=N.action?.kind==="edit"?N.action.stringEdit:void 0,H=O?$n.fromStringEdit(O,new xS(this.textModel)).replacements:[];let Z=(D.inlineEdit?.command?.id==="vscode.open"||D.inlineEdit?.command?.id==="_workbench.open")&&D.inlineEdit?.command.arguments?.length?Le.from(D.inlineEdit?.command.arguments[0]):void 0;return N.originalTextRef.targets(this.textModel)||(Z=N.originalTextRef.uri),{kind:"inlineEdit",inlineSuggestion:N,edits:H,cursorAtInlineEdit:M,nextEditUri:Z}}const E=this._selectedSuggestItem.read(b);if(!this._shouldShowOnSuggestConflict.read(b)&&E){const M=Vs(E.getSingleTextEdit(),w),O=this._computeAugmentation(M,b);if(!this._suggestPreviewEnabled.read(b)&&!O)return;const Z=O?.edit??M,se=O?O.edit.text.length-M.text.length:0,ve=this._suggestPreviewMode.read(b),oe=this._positions.read(b),Q=[Z,...Zp(this.textModel,oe,Z)].map((me,Si)=>({edit:me,ghostText:me?Wy(me,w,ve,oe[Si],se):void 0})).filter(({edit:me,ghostText:Si})=>me!==void 0&&Si!==void 0),ue=Q.map(({edit:me})=>me),Jt=Q.map(({ghostText:me})=>me),ot=Jt[0]??new uc(Z.range.endLineNumber,[]);return{kind:"ghostText",edits:ue,primaryGhostText:ot,ghostTexts:Jt,inlineSuggestion:O?.completion,suggestItem:E}}else{if(!this._isActive.read(b))return;const M=this.selectedInlineCompletion.read(b);if(!M)return;const O=M.getSingleTextEdit(),H=this._inlineSuggestMode.read(b),Z=this._positions.read(b),ve=[O,...Zp(this.textModel,Z,O)].map((Q,ue)=>({edit:Q,ghostText:Q?Wy(Q,w,H,Z[ue],0):void 0})).filter(({edit:Q,ghostText:ue})=>Q!==void 0&&ue!==void 0),oe=ve.map(({edit:Q})=>Q),be=ve.map(({ghostText:Q})=>Q);return be[0]?{kind:"ghostText",edits:oe,primaryGhostText:be[0],ghostTexts:be,inlineSuggestion:M,suggestItem:void 0}:void 0}}),this.status=R(this,b=>{if(this._source.loading.read(b))return"loading";const w=this.state.read(b);return w?.kind==="ghostText"?"ghostText":w?.kind==="inlineEdit"?"inlineEdit":"noSuggestion"}),this.inlineCompletionState=R(this,b=>{const w=this.state.read(b);if(!(!w||w.kind!=="ghostText")&&!this._editorObs.inComposition.read(b))return w}),this.inlineEditState=R(this,b=>{const w=this.state.read(b);if(!(!w||w.kind!=="inlineEdit"))return w}),this.inlineEditAvailable=R(this,b=>!!this.inlineEditState.read(b)),this.warning=R(this,b=>this.inlineCompletionState.read(b)?.inlineSuggestion?.warning),this.ghostTexts=pn({owner:this,equalsFn:Fy},b=>{const w=this.inlineCompletionState.read(b);if(w)return w.ghostTexts}),this.primaryGhostText=pn({owner:this,equalsFn:tE},b=>{const w=this.inlineCompletionState.read(b);if(w)return w?.primaryGhostText}),this.showCollapsed=R(this,b=>{const w=this.state.read(b);if(!w||w.kind!=="inlineEdit"||w.inlineSuggestion.hint||w.inlineSuggestion.action?.kind==="jumpTo")return!1;const D=w.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(b);return(this._inlineEditsShowCollapsedEnabled.read(b)||!D)&&this._jumpedToId.read(b)!==w.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(b)}),this._tabShouldIndent=R(this,b=>{if(this._inAcceptFlow.read(b))return!1;function w(E){return E.startLineNumber!==E.endLineNumber}function D(E,M){const O=E.getLineIndentColumn(M),H=E.getLineLastNonWhitespaceColumn(M),Z=Math.max(H,O);return new I(M,O,M,Z)}return this._editorObs.selections.read(b)?.some(E=>E.isEmpty()?this.textModel.getLineLength(E.startLineNumber)===0:w(E)||E.containsRange(D(this.textModel,E.startLineNumber)))}),this.tabShouldJumpToInlineEdit=R(this,b=>{if(this._tabShouldIndent.read(b))return!1;const w=this.inlineEditState.read(b);return w?w.inlineSuggestion.action?.kind==="jumpTo"||this.showCollapsed.read(b)?!0:this._inAcceptFlow.read(b)&&this._appearedInsideViewport.read(b)?!1:!w.cursorAtInlineEdit.read(b):!1}),this.tabShouldAcceptInlineEdit=R(this,b=>{const w=this.inlineEditState.read(b);return!w||w.inlineSuggestion.action?.kind==="jumpTo"||this.showCollapsed.read(b)||this._tabShouldIndent.read(b)?!1:this._inAcceptFlow.read(b)&&this._appearedInsideViewport.read(b)||w.inlineSuggestion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(b)||this._jumpedToId.read(b)===w.inlineSuggestion.semanticId?!0:w.cursorAtInlineEdit.read(b)}),this._jumpedToId=Ne(this,void 0),this._inAcceptFlow=Ne(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(uv,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition)),this.lastTriggerKind=this._source.inlineCompletions.map(this,b=>b?.request?.context.triggerKind),this._editorObs=We(this._editor);const _=this._editorObs.getOption(134);this._suggestPreviewEnabled=_.map(b=>b.preview),this._suggestPreviewMode=_.map(b=>b.previewMode);const v=this._editorObs.getOption(71);this._inlineSuggestMode=v.map(b=>b.mode),this._suppressedInlineCompletionGroupIds=v.map(b=>new Set(b.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=v.map(b=>!!b.edits.enabled),this._inlineEditsShowCollapsedEnabled=v.map(b=>b.edits.showCollapsed),this._triggerCommandOnProviderChange=v.map(b=>b.triggerCommandOnProviderChange),this._minShowDelay=v.map(b=>b.minShowDelay),this._showOnSuggestConflict=v.map(b=>b.experimental.showOnSuggestConflict),this._suppressInSnippetMode=v.map(b=>b.suppressInSnippetMode);const S=ct.get(this._editor);this._isInSnippetMode=S?.isInSnippetObservable??_e(!1),p.getDefaultAccount().then(NH(b=>this.sku.set(zy(b),void 0),this._store)),this._register(p.onDidChangeDefaultAccount(b=>this.sku.set(zy(b),void 0))),this._typing=this._register(new gv(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing(b=>{b&&this.stop()}));{const b=this.textModel.uri.scheme===mt.vscodeNotebookCell,[w]=this._codeEditorService.listDiffEditors().filter(D=>D.getOriginalEditor().getId()===this._editor.getId()||D.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!w,this.editorType=b?rt.Notebook:this.isInDiffEditor?rt.DiffEditor:rt.TextEditor}this._register(mw(this.state,b=>{b&&b.inlineSuggestion&&this._inlineCompletionsService.reportNewCompletion(b.inlineSuggestion.requestUuid)})),this._register(mw(this._fetchInlineCompletionsPromise)),this._register(le(b=>{this._editorObs.versionId.read(b),this._inAcceptFlow.set(!1,void 0)})),this._register(le(b=>{this.state.map((D,N)=>!D||D.kind==="inlineEdit"&&!D.cursorAtInlineEdit.read(N)).read(b)&&this._jumpedToId.set(void 0,void 0)})),this._register(le(b=>{const w=this.state.map(D=>D?.inlineSuggestion).read(b);w&&w.addPerformanceMarker("activeSuggestion")}));const y=this.inlineEditState.map(b=>b?.inlineSuggestion.semanticId);this._register(le(b=>{y.read(b)&&(this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion})}));const x=xt(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(e));TS(this,x,(b,w)=>{b.onDidChangeInlineCompletions&&w.add(b.onDidChangeInlineCompletions(D=>{if(!this._enabled.get()||(this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor())!==this._editor)return;if(this._triggerCommandOnProviderChange.get()){this.trigger(void 0,{onlyFetchInlineEdits:!0});return}const E=this.state.get();E&&(E.inlineSuggestion||E.edits)&&E.inlineSuggestion?.source.provider!==b||en(M=>{this._fetchSpecificProviderSignal.trigger(M,{provider:b,changeHint:D??void 0}),this.trigger(M)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(e){let t=!1,i=!0;const n=this?.primaryGhostText.read(e);if(this?._selectedSuggestItem&&n&&n.parts.length>0){const{column:s,lines:r}=n.parts[0],a=r[0].line,l=this.textModel.getLineIndentColumn(n.lineNumber);if(s<=l){let c=Dm(a);c===-1&&(c=a.length-1),t=c>0;const h=this.textModel.getOptions().tabSize;i=Ah.visibleColumnFromColumn(a,c+1,h)<h}}return{startsWithIndentation:t,startsWithIndentationLessThanTabSize:i}}_getReason(e){return e?.isUndoing?Wn.Undo:e?.isRedoing?Wn.Redo:this.isAcceptingPartially?Wn.AcceptWord:Wn.Other}getAvailableProviders(e){const t=this._suppressedInlineCompletionGroupIds.get(),i=e.filter(r=>!(r.groupId&&t.has(r.groupId))),n=new Set;for(const r of i)r.excludesGroupIds?.forEach(a=>n.add(a));const s=[];for(const r of i)r.groupId&&n.has(r.groupId)||s.push(r);return s}async trigger(e,t={}){Rm(e,i=>{t.onlyFetchInlineEdits&&this._onlyRequestInlineEditsSignal.trigger(i),t.noDelay&&this._noDelaySignal.trigger(i),this._isActive.set(!0,i),t.explicit&&(this._inAcceptFlow.set(!0,i),this._forceUpdateExplicitlySignal.trigger(i)),t.provider&&this._fetchSpecificProviderSignal.trigger(i,{provider:t.provider,changeHint:t.changeHint})}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(e,t=!1){return this.trigger(e,{onlyFetchInlineEdits:t,explicit:!0})}stop(e="automatic",t){Rm(t,i=>{if(e==="explicitCancel"){const n=this.state.get()?.inlineSuggestion;n&&n.reportEndOfLife({kind:Rs.Rejected})}this._isActive.set(!1,i),this._source.clear(i)})}_computeAugmentation(e,t){const i=this.textModel,n=this._source.suggestWidgetInlineCompletions.read(t),s=n?n.inlineCompletions.filter(a=>!a.isInlineEdit):[this.selectedInlineCompletion.read(t)].filter(Zn);return VN(s,a=>{let l=a.getSingleTextEdit();return l=Vs(l,i,I.fromPositions(l.range.getStartPosition(),e.range.getEndPosition())),iE(l,e)?{completion:a,edit:l}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._inlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(e,t,i=void 0){return i?Pr.inlineCompletionPartialAccept({nes:e.isInlineEdit,requestUuid:e.requestUuid,providerId:e.source.provider.providerId,languageId:t,type:i,correlationId:e.getSourceCompletion().correlationId}):Pr.inlineCompletionAccept({nes:e.isInlineEdit,requestUuid:e.requestUuid,correlationId:e.getSourceCompletion().correlationId,providerId:e.source.provider.providerId,languageId:t})}async accept(e=this._editor,t=!1){if(e.getModel()!==this.textModel)throw new at;let i,n=!1;const s=this.state.get();if(s?.kind==="ghostText"){if(!s||s.primaryGhostText.isEmpty()||!s.inlineSuggestion)return;i=s.inlineSuggestion}else if(s?.kind==="inlineEdit")i=s.inlineSuggestion,n=!!s.nextEditUri;else return;i.addRef();try{let r=!1;if(e.pushUndoStop(),i.originalTextRef.targets(this.textModel)){if(!n){if(i.action?.kind==="edit"){const a=i.action;if(t&&a.alternativeAction){r=!0;const l=a.alternativeAction.command;await this._commandService.executeCommand(l.id,...l.arguments||[]).then(void 0,Ze)}else if(a.snippetInfo){const l=Ae.delete(a.textReplacement.range),d=i.additionalTextEdits.map(h=>new Ae(I.lift(h.range),h.text??"")),c=$n.fromParallelReplacementsUnsorted([l,...d]);e.edit(c,this._getMetadata(i,this.textModel.getLanguageId())),e.setPosition(a.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),ct.get(e)?.insert(a.snippetInfo.snippet,{undoStopBefore:!1})}else{const l=s.edits;let d=l;s.kind==="ghostText"&&(d=EW(l,this.textModel));const c=Oy(d).map(u=>J.fromPositions(u)),h=i.additionalTextEdits.map(u=>new Ae(I.lift(u.range),u.text??"")),g=$n.fromParallelReplacementsUnsorted([...l,...h]);if(e.edit(g,this._getMetadata(i,this.textModel.getLanguageId())),i.hint===void 0&&e.setSelections(s.kind==="inlineEdit"?c.slice(-1):c,"inlineCompletionAccept"),s.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){const u=g.getNewRanges(),f=this._store.add(new EH(e,u,()=>{this._store.delete(f)}))}}}}}else{const a=await this._codeEditorService.openCodeEditor({resource:i.originalTextRef.uri},this._editor);if(a){const d=dE(a)?.model.get();a.focus(),d?.transplantCompletion(i),a.revealLineInCenter(i.targetRange.startLineNumber)}}this._onDidAccept.fire(),this.stop(),i.command&&await this._commandService.executeCommand(i.command.id,...i.command.arguments||[]).then(void 0,Ze),r&&this.trigger(void 0),i.reportEndOfLife({kind:Rs.Accepted,alternativeAction:t})}finally{i.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:i}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(e,t)=>{const i=this.textModel.getLanguageIdAtPosition(e.lineNumber,e.column),n=this._languageConfigurationService.getLanguageConfiguration(i),s=new RegExp(n.wordDefinition.source,n.wordDefinition.flags.replace("g","")),r=t.match(s);let a=0;r&&r.index!==void 0?r.index===0?a=r[0].length:a=r.index:a=t.length;const d=/\s+/g.exec(t);return d&&d.index!==void 0&&d.index+d[0].length<a&&(a=d.index+d[0].length),a},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(e,t)=>{const i=t.match(/\n/);return i&&i.index!==void 0?i.index+1:t.length},1)}async _acceptNext(e,t,i,n){if(e.getModel()!==this.textModel)throw new at;const s=this.inlineCompletionState.get();if(!s||s.primaryGhostText.isEmpty()||!s.inlineSuggestion)return;const r=s.primaryGhostText,a=s.inlineSuggestion;if(a.snippetInfo){await this.accept(e);return}const l=r.parts[0],d=new $(r.lineNumber,l.column),c=l.text,h=i(d,c);if(h===c.length&&r.parts.length===1){this.accept(e);return}const g=c.substring(0,h),u=this._positions.get(),f=u[0];a.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const S=I.fromPositions(f,d),y=e.getModel().getValueInRange(S)+g,x=new Ae(S,y),b=[x,...Zp(this.textModel,u,x)].filter(Zn),w=Oy(b).map(D=>J.fromPositions(D));e.edit($n.fromParallelReplacementsUnsorted(b),this._getMetadata(a,t)),e.setSelections(w,"inlineCompletionPartialAccept"),e.revealPositionInCenterIfOutsideViewport(e.getPosition(),0)}finally{this._isAcceptingPartially=!1}const p=I.fromPositions(a.editRange.getStartPosition(),In.ofText(g).addToPosition(d)),v=e.getModel().getValueInRange(p,1).length;a.reportPartialAccept(v,{kind:n,acceptedLength:v},{characters:h,ratio:h/c.length,count:1})}finally{a.removeRef()}}handleSuggestAccepted(e){const t=Vs(e.getSingleTextEdit(),this.textModel),i=this._computeAugmentation(t,void 0);if(!i)return;const s=this.textModel.getValueInRange(i.completion.editRange,1).length+t.text.length;i.completion.reportPartialAccept(t.text.length,{kind:2,acceptedLength:s},{characters:t.text.length,count:1,ratio:1})}extractReproSample(){const e=this.textModel.getValue(),t=this.state.get()?.inlineSuggestion;return{documentValue:e,inlineCompletion:t?.getSourceCompletion()}}jump(){const e=this.inlineEditState.get();if(!e)return;const t=e.inlineSuggestion;if(!t.originalTextRef.targets(this.textModel)){this.accept(this._editor);return}t.addRef();try{en(i=>{t.action?.kind==="jumpTo"&&(this.stop(void 0,i),t.reportEndOfLife({kind:Rs.Accepted,alternativeAction:!1})),this._jumpedToId.set(e.inlineSuggestion.semanticId,i),this.dontRefetchSignal.trigger(i);const n=e.inlineSuggestion.targetRange,s=n.getStartPosition();if(this._editor.setPosition(s,"inlineCompletions.jump"),n.isSingleLine()&&(e.inlineSuggestion.hint||e.inlineSuggestion.action?.kind==="edit"&&!e.inlineSuggestion.action.textReplacement.text.includes(`
38
- `))||e.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(s,0);else{const a=new I(n.startLineNumber-1,1,n.endLineNumber+1,1);this._editor.revealRange(a,0)}e.inlineSuggestion.identity.setJumpTo(i),this._editor.focus()})}finally{t.removeRef()}}async handleInlineSuggestionShown(e,t,i,n){await e.reportInlineEditShown(this._commandService,t,i,this.textModel,n)}transplantCompletion(e){en(t=>{this._source.seedWithCompletion(e,t),this._isActive.set(!0,t),this._inAcceptFlow.set(!0,t),this.dontRefetchSignal.trigger(t)})}};fv=DH([hs(7,ee),hs(8,it),hs(9,st),hs(10,Co),hs(11,G),hs(12,Ue),hs(13,WN),hs(14,HN)],fv);var Wn;(function(o){o[o.Undo=0]="Undo",o[o.Redo=1]="Redo",o[o.AcceptWord=2]="AcceptWord",o[o.Other=3]="Other"})(Wn||(Wn={}));function Zp(o,e,t){if(e.length===1)return[];const i=new xS(o),n=i.getTransformer(),s=n.getOffset(e[0]),r=e.slice(1).map(g=>n.getOffset(g));t=t.removeCommonPrefixAndSuffix(i);const a=n.getStringReplacement(t),l=a.replaceRange.start-s,d=a.replaceRange.join(Be.emptyAt(s)),c=i.getValueOfOffsetRange(d);return r.map(g=>{const u=g+l,f=u+a.replaceRange.length,p=new Be(u,f),_=p.join(Be.emptyAt(g));if(i.getValueOfOffsetRange(_)!==c)return;const S=new ai(p,a.newText);return n.getTextReplacement(S)}).filter(Zn)}class EH extends A{constructor(e,t,i){super(),i&&this._register({dispose:()=>i()}),this._register(We(e).setDecorations(_e(t.map(s=>({range:s,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));const n=new TW(vC.startNow(1,0,1e3,kW));this._register(le(s=>{const r=n.getValue(s);e.getContainerDomNode().style.setProperty("--animation-opacity",r.toString()),n.isFinished(s)&&this.dispose()}))}}function cE(o,e,t=void 0){const i=e.targetRange;We(o).scrollTop.read(t);const n=o.getVisibleRanges();return n.length<1?!1:new I(n[0].startLineNumber,n[0].startColumn,n[n.length-1].endLineNumber,n[n.length-1].endColumn).containsRange(i)}function zy(o){if(o?.entitlementsData?.access_type_sku&&o?.entitlementsData?.copilot_plan)return{type:o.entitlementsData.access_type_sku,plan:o.entitlementsData.copilot_plan}}class RH{constructor(e){this.handler=t=>this._cb?.(t),this._cb=e}dispose(){this._cb=void 0}}function NH(o,e){const t=new RH(o);return e.add(t),t.handler}var kH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},jy=function(o,e){return function(t,i){e(t,i,o)}},ud;class yC{constructor(e){this.name=e}select(e,t,i){if(i.length===0)return 0;const n=i[0].score[0];for(let s=0;s<i.length;s++){const{score:r,completion:a}=i[s];if(r[0]!==n)break;if(a.preselect)return s}return 0}}class qy extends yC{constructor(){super("first")}memorize(e,t,i){}toJSON(){}fromJSON(){}}class TH extends yC{constructor(){super("recentlyUsed"),this._cache=new Wc(300,.66),this._seq=0}memorize(e,t,i){const n=`${e.getLanguageId()}/${i.textLabel}`;this._cache.set(n,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(i.length===0)return 0;const n=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(n))return super.select(e,t,i);const s=i[0].score[0];let r=-1,a=-1,l=-1;for(let d=0;d<i.length&&i[d].score[0]===s;d++){const c=`${e.getLanguageId()}/${i[d].textLabel}`,h=this._cache.peek(c);if(h&&h.touch>l&&h.type===i[d].completion.kind&&h.insertText===i[d].completion.insertText&&(l=h.touch,a=d),i[d].completion.preselect&&r===-1)return r=d}return a!==-1?a:r!==-1?r:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[i,n]of e)n.touch=t,n.type=typeof n.type=="number"?n.type:Af.fromString(n.type),this._cache.set(i,n);this._seq=this._cache.size}}class PH extends yC{constructor(){super("recentlyUsedByPrefix"),this._trie=BN.forStrings(),this._seq=0}memorize(e,t,i){const{word:n}=e.getWordUntilPosition(t),s=`${e.getLanguageId()}/${n}`;this._trie.set(s,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:n}=e.getWordUntilPosition(t);if(!n)return super.select(e,t,i);const s=`${e.getLanguageId()}/${n}`;let r=this._trie.get(s);if(r||(r=this._trie.findSubstr(s)),r)for(let a=0;a<i.length;a++){const{kind:l,insertText:d}=i[a].completion;if(l===r.type&&d===r.insertText)return a}return super.select(e,t,i)}toJSON(){const e=[];return this._trie.forEach((t,i)=>e.push([i,t])),e.sort((t,i)=>-(t[1].touch-i[1].touch)).forEach((t,i)=>t[1].touch=i),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type=typeof i.type=="number"?i.type:Af.fromString(i.type),this._trie.set(t,i)}}}var Xs;let pv=(Xs=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new W,this._persistSoon=new et(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===hS.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(e,t){const i=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(this._strategy?.name!==i){this._saveState();const n=ud._strategyCtors.get(i)||qy;this._strategy=new n;try{const r=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,a=this._storageService.get(`${ud._storagePrefix}/${i}`,r);a&&this._strategy.fromJSON(JSON.parse(a))}catch{}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${ud._storagePrefix}/${this._strategy.name}`,i,t,1)}}},ud=Xs,Xs._strategyCtors=new Map([["recentlyUsedByPrefix",PH],["recentlyUsed",TH],["first",qy]]),Xs._storagePrefix="suggest/memories",Xs);pv=ud=kH([jy(0,Wi),jy(1,Ie)],pv);const hp=Rn("ISuggestMemories");os(hp,pv,1);var OH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},MH=function(o,e){return function(t,i){e(t,i,o)}},mv,_r;let Zu=(_r=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=mv.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(i=>i.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(139)==="on";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const i=this._editor.getModel(),n=this._editor.getSelection(),s=i.getWordAtPosition(n.getStartPosition());if(!s){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(s.endColumn===n.getStartPosition().column&&n.getStartPosition().lineNumber===n.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}},mv=_r,_r.AtEnd=new ie("atEndOfWord",!1,{type:"boolean",description:m(1546,"A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled")}),_r);Zu=mv=OH([MH(1,pe)],Zu);var AH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},FH=function(o,e){return function(t,i){e(t,i,o)}},gd,vr;let bl=(vr=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=gd.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},i){if(e.items.length===0){this.reset();return}if(gd._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=i,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,i){let n=i;for(let s=t.items.length;s>0&&(n=(n+t.items.length+(e?1:-1))%t.items.length,!(n===i||!t.items[n].completion.additionalTextEdits));s--);return n}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=gd._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}},gd=vr,vr.OtherSuggestions=new ie("hasOtherSuggestions",!1),vr);bl=gd=AH([FH(1,pe)],bl);class WH{constructor(e,t,i,n){this._disposables=new W,this._disposables.add(i.onDidSuggest(s=>{s.completionModel.items.length===0&&this.reset()})),this._disposables.add(i.onDidCancel(s=>{this.reset()})),this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(s=>{if(this._active&&!t.isFrozen()&&i.state!==0){const r=s.charCodeAt(s.length-1);this._active.acceptCharacters.has(r)&&e.getOption(0)&&n(this._active.item)}}))}_onItem(e){if(!e||!ri(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;const t=new tu;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}let Ky=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class Ls{constructor(e,t,i,n,s,r,a=FL.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=Ls._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=n,this._options=s,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,r==="top"?this._snippetCompareFn=Ls._compareCompletionItemsSnippetsUp:r==="bottom"&&(this._snippetCompareFn=Ls._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const e=new Set;for(const[t,i]of this.getItemsByProvider())i.length>0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let n="",s="";const r=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||r.length>2e3?WL:UN;for(let d=0;d<r.length;d++){const c=r[d];if(c.isInvalid)continue;const h=this._itemsByProvider.get(c.provider);h?h.push(c):this._itemsByProvider.set(c.provider,[c]);const g=c.position.column-c.editStart.column,u=g+i-(c.position.column-this._column);if(n.length!==u&&(n=u===0?"":t.slice(-u),s=n.toLowerCase()),c.word=n,u===0)c.score=Zd.Default;else{let f=0;for(;f<g;){const p=n.charCodeAt(f);if(p===32||p===9)f+=1;else break}if(f>=u)c.score=Zd.Default;else if(typeof c.completion.filterText=="string"){const p=l(n,s,f,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!p)continue;$N(c.completion.filterText,c.textLabel)===0?c.score=p:(c.score=zN(n,s,f,c.textLabel,c.labelLow,0),c.score[0]=p[0])}else{const p=l(n,s,f,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!p)continue;c.score=p}}c.idx=d,c.distance=this._wordDistance.distance(c.position,c.completion),a.push(c),e.push(c.textLabel.length)}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?jN(e.length-.85,e,(d,c)=>d-c):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return 1;if(t.completion.kind===28)return-1}return Ls._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return-1;if(t.completion.kind===28)return 1}return Ls._compareCompletionItems(e,t)}}const ui=class ui{async provideSelectionRanges(e,t){const i=[];for(const n of t){const s=[];i.push(s);const r=new Map;await new Promise(a=>ui._bracketsRightYield(a,0,e,n,r)),await new Promise(a=>ui._bracketsLeftYield(a,0,e,n,r,s))}return i}static _bracketsRightYield(e,t,i,n,s){const r=new Map,a=Date.now();for(;;){if(t>=ui._maxRounds){e();break}if(!n){e();break}const l=i.bracketPairs.findNextBracket(n);if(!l){e();break}if(Date.now()-a>ui._maxDuration){setTimeout(()=>ui._bracketsRightYield(e,t+1,i,n,s));break}if(l.bracketInfo.isOpeningBracket){const c=l.bracketInfo.bracketText,h=r.has(c)?r.get(c):0;r.set(c,h+1)}else{const c=l.bracketInfo.getOpeningBrackets()[0].bracketText;let h=r.has(c)?r.get(c):0;if(h-=1,r.set(c,Math.max(0,h)),h<0){let g=s.get(c);g||(g=new xL,s.set(c,g)),g.push(l.range)}}n=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,n,s,r){const a=new Map,l=Date.now();for(;;){if(t>=ui._maxRounds&&s.size===0){e();break}if(!n){e();break}const d=i.bracketPairs.findPrevBracket(n);if(!d){e();break}if(Date.now()-l>ui._maxDuration){setTimeout(()=>ui._bracketsLeftYield(e,t+1,i,n,s,r));break}if(d.bracketInfo.isOpeningBracket){const h=d.bracketInfo.bracketText;let g=a.has(h)?a.get(h):0;if(g-=1,a.set(h,Math.max(0,g)),g<0){const u=s.get(h);if(u){const f=u.shift();u.size===0&&s.delete(h);const p=I.fromPositions(d.range.getEndPosition(),f.getStartPosition()),_=I.fromPositions(d.range.getStartPosition(),f.getEndPosition());r.push({range:p}),r.push({range:_}),ui._addBracketLeading(i,_,r)}}}else{const h=d.bracketInfo.getOpeningBrackets()[0].bracketText,g=a.has(h)?a.get(h):0;a.set(h,g+1)}n=d.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const n=t.startLineNumber,s=e.getLineFirstNonWhitespaceColumn(n);s!==0&&s!==t.startColumn&&(i.push({range:I.fromPositions(new $(n,s),t.getEndPosition())}),i.push({range:I.fromPositions(new $(n,1),t.getEndPosition())}));const r=n-1;if(r>0){const a=e.getLineFirstNonWhitespaceColumn(r);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(r)&&(i.push({range:I.fromPositions(new $(r,a),t.getEndPosition())}),i.push({range:I.fromPositions(new $(r,1),t.getEndPosition())}))}}};ui._maxDuration=30,ui._maxRounds=2;let Xu=ui;const gn=class gn{static async create(e,t){if(!t.getOption(134).localityBonus||!t.hasModel())return gn.None;const i=t.getModel(),n=t.getPosition();if(!e.canComputeWordRanges(i.uri))return gn.None;const[s]=await new Xu().provideSelectionRanges(i,[n]);if(s.length===0)return gn.None;const r=await e.computeWordRanges(i.uri,s[0].range);if(!r)return gn.None;const a=i.getWordUntilPosition(n);return delete r[a.word],new class extends gn{distance(l,d){if(!n.equals(t.getPosition()))return 0;if(d.kind===17)return 2<<20;const c=typeof d.label=="string"?d.label:d.label.label,h=r[c];if(qN(h))return 2<<20;const g=km(h,I.fromPositions(l),I.compareRangesUsingStarts),u=g>=0?h[g]:h[Math.max(0,~g-1)];let f=s.length;for(const p of s){if(!I.containsRange(p.range,u))break;f-=1}return f}}}};gn.None=new class extends gn{distance(){return 0}};let Yu=gn;var HH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},us=function(o,e){return function(t,i){e(t,i,o)}},_v;class ko{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const n=t.getWordAtPosition(i);return!(!n||n.endColumn!==i.column&&n.startColumn+1!==i.column||!isNaN(Number(n.word)))}constructor(e,t,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=i}}function VH(o,e,t){if(!e.getContextKeyValue(ge.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(ge.suppressSuggestions.key);return i!==void 0?!i:!o.getOption(71).suppressSuggestions}function BH(o,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const i=e.getContextKeyValue(ge.suppressSuggestions.key);return i!==void 0?!i:!o.getOption(71).suppressSuggestions}let Ju=_v=class{constructor(e,t,i,n,s,r,a,l,d){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=n,this._logService=s,this._contextKeyService=r,this._configurationService=a,this._languageFeaturesService=l,this._envService=d,this._toDispose=new W,this._triggerCharacterListener=new W,this._triggerQuickSuggest=new Fc,this._triggerState=void 0,this._completionDisposables=new W,this._onDidCancel=new Y,this._onDidTrigger=new Y,this._onDidSuggest=new Y,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new J(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 c=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{c=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{c=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(h=>{c||this._onCursorChange(h)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!c&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){kt(this._triggerCharacterListener),kt([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;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const n of i.triggerCharacters||[]){let s=e.get(n);s||(s=new Set,e.set(n,s)),s.add(i)}const t=i=>{if(!BH(this._editor,this._contextKeyService,this._configurationService)||ko.shouldAutoTrigger(this._editor))return;if(!i){const r=this._editor.getPosition();i=this._editor.getModel().getLineContent(r.lineNumber).substr(0,r.column-1)}let n="";GN(i.charCodeAt(i.length-1))?ZN(i.charCodeAt(i.length-2))&&(n=i.substr(i.length-2)):n=i.charAt(i.length-1);const s=e.get(n);if(s){const r=new Map;if(this._completionModel)for(const[a,l]of this._completionModel.getItemsByProvider())s.has(a)||r.set(a,l);this.trigger({auto:!0,triggerKind:1,triggerCharacter:n,retrigger:!!this._completionModel,clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:s,providerItemsToReuse:r}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){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:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!=="keyboard"&&e.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){Ra.isAllOff(this._editor.getOption(102))||this._editor.getOption(134).snippetsPreventQuickSuggestions&&ct.get(this._editor)?.isInSnippet()||(this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!ko.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=this._editor.getOption(102);if(Ra.isAllOff(i))return;let n=!1;if(!Ra.isAllOn(i)){e.tokenization.tokenizeIfCheap(t.lineNumber);const s=e.tokenization.getLineTokens(t.lineNumber),r=s.getStandardTokenType(s.findTokenIndexAtOffset(Math.max(t.column-1-1,0))),a=Ra.valueFor(i,r);if(a==="off"||a==="inline")return;a==="offWhenInlineCompletions"&&(n=this._languageFeaturesService.inlineCompletionsProvider.has(e)&&this._editor.getOption(71).enabled)}VH(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&(n?this._waitForInlineCompletionsAndTrigger(e,t):this.trigger({auto:!0}))},this._editor.getOption(103)))}_waitForInlineCompletionsAndTrigger(e,t){const i=e.getVersionId(),n=dE(this._editor),s=n?.model.get();if(!n||!s){this.trigger({auto:!0});return}if(s.state.get()?.inlineSuggestion)return;const a=new W;this._waitForInlineCompletions=a;const l=d=>{if(a.dispose(),this._waitForInlineCompletions===a&&(this._waitForInlineCompletions=void 0),this._triggerState!==void 0||!d)return;const c=this._editor.getModel(),h=this._editor.getPosition();c===e&&c.getVersionId()===i&&h?.equals(t)&&this._editor.hasWidgetFocus()&&this.trigger({auto:!0})};no(()=>{l(!0),s.stop("automatic")},750,a),a.add(le(d=>{if(n.model.read(d)!==s){l(!1);return}const h=s.status.read(d),g=s.state.read(d);!g&&h==="loading"||l(!g)}))}_refilterCompletionItems(){Ce(this._editor.hasModel()),Ce(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new ko(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=new ko(t,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:e.shy??!1,position:this._editor.getPosition()}),this._context=i;let n={triggerKind:e.triggerKind??0};e.triggerCharacter&&(n={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new Je;const s=this._editor.getOption(128);let r=1;switch(s){case"top":r=0;break;case"bottom":r=2;break}const{itemKind:a,showDeprecated:l}=_v.createSuggestFilter(this._editor),d=new rc(r,e.completionOptions?.kindFilter??a,e.completionOptions?.providerFilter,e.completionOptions?.providerItemsToReuse,l),c=Yu.create(this._editorWorkerService,this._editor),h=mC(this._languageFeaturesService.completionProvider,t,this._editor.getPosition(),d,n,this._requestToken.token);Promise.all([h,c]).then(async([g,u])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){g.disposable.dispose();return}let f=e?.clipboardText;if(!f&&g.needsClipboard&&(f=await this._clipboardService.readText()),this._triggerState===void 0){g.disposable.dispose();return}const p=this._editor.getModel(),_=new ko(p,this._editor.getPosition(),e),v={...FL.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new Ls(g.items,this._context.column,{leadingLineContent:_.leadingLineContent,characterCountDelta:_.column-this._context.column},u,this._editor.getOption(134),this._editor.getOption(128),v,f),this._completionDisposables.add(g.disposable),this._onNewContext(_),this._reportDurationsTelemetry(g.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const S of g.items)S.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${S.provider._debugDisplayName}`,S.completion)}).catch(we)}_reportDurationsTelemetry(e){Math.random()>1e-4||setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)})}static createSuggestFilter(e){const t=new Set;e.getOption(128)==="none"&&t.add(28);const n=e.getOption(134);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(28),n.showUsers||t.add(25),n.showIssues||t.add(26),{itemKind:t,showDeprecated:n.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(Ct(e.leadingLineContent)!==Ct(this._context.leadingLineContent)){this.cancel();return}if(e.column<this._context.column){e.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();return}if(this._completionModel){if(e.leadingWord.word.length!==0&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){if(ko.shouldAutoTrigger(this._editor)&&this._context){const i=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:i}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,i=new Set;for(const[n,s]of this._completionModel.getItemsByProvider())s.length>0&&s[0].container.incomplete?i.add(n):t.set(n,s);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const n=ko.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(n&&this._context.leadingWord.endColumn<e.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(this._context.triggerOptions.auto){this.cancel();return}else if(this._completionModel.lineContext=t,i=this._completionModel.items.length>0,i&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}}}};Ju=_v=HH([us(1,as),us(2,li),us(3,vo),us(4,Pt),us(5,pe),us(6,Ie),us(7,G),us(8,KN)],Ju);const Zg=class Zg{constructor(e,t){this._disposables=new W,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),n=i.length;let s=!1;for(let a=0;a<n;a++)if(!i[a].isEmpty()){s=!0;break}if(!s){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const r=e.getModel();for(let a=0;a<n;a++){const l=i[a];if(r.getValueLengthInRange(l)>Zg._maxSelectionLength)return;this._lastOvertyped[a]={value:r.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}})),this._disposables.add(t.onDidTrigger(i=>{this._locked=!0})),this._disposables.add(t.onDidCancel(i=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}};Zg._maxSelectionLength=51200;let vv=Zg;var UH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Xp=function(o,e){return function(t,i){e(t,i,o)}};let bv=class{constructor(e,t,i,n,s,r){this._menuId=t,this._menuService=s,this._contextKeyService=r,this._menuDisposables=new W,this.element=z(e,B(".suggest-status-bar"));const a=(l=>i?.showIconsNoKeybindings?l instanceof Or?n.createInstance(fS,l,void 0):void 0:l instanceof Or?n.createInstance(XN,l,{useComma:!1}):void 0);this._leftActions=new oo(this.element,{actionViewItemProvider:a}),this._rightActions=new oo(this.element,{actionViewItemProvider:a}),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(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const i=[],n=[];for(const[s,r]of e.getActions())s==="left"?i.push(...r):n.push(...r);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(n)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};bv=UH([Xp(3,ee),Xp(4,bo),Xp(5,pe)],bv);var $H=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Gy=function(o,e){return function(t,i){e(t,i,o)}};function IC(o){return!!o&&!!(o.completion.documentation||o.completion.detail&&o.completion.detail!==o.completion.label)}let Sv=class{constructor(e,t,i){this._editor=e,this._themeService=t,this._markdownRendererService=i,this._onDidClose=new Y,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new Y,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new W,this._renderDisposeable=new W,this._size=new xe(330,0),this.domNode=B(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=B(".body"),this._scrollbar=new HL(this._body,{alwaysConsumeMouseWheel:!0}),z(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=z(this._body,B(".header")),this._close=z(this._header,B("span"+ce.asCSSSelector(U.close))),this._close.title=m(1542,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=z(this._header,B("p.type")),this._docs=z(this._body,B("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(n=>{n.hasChanged(59)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(59),i=t.getMassagedFontFamily(),n=e.get(135)||t.fontSize,s=e.get(136)||t.lineHeight,r=t.fontWeight,a=`${n}px`,l=`${s}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${s/n}`,this.domNode.style.fontWeight=r,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=l,this._close.style.width=l}getLayoutInfo(){const e=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,t=zd(this._themeService.getColorTheme().type)?2:1,i=t*2;return{lineHeight:e,borderWidth:t,borderHeight:i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=m(1543,"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(e,t){this._renderDisposeable.clear();let{detail:i,documentation:n}=e.completion;if(t){let s="";s+=`score: ${e.score[0]}
39
- `,s+=`prefix: ${e.word??"(no prefix)"}
40
- `,s+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel}
41
- `,s+=`distance: ${e.distance} (localityBonus-setting)
42
- `,s+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"}
43
- `,s+=`commit_chars: ${e.completion.commitCharacters?.join("")}
44
- `,n=new It().appendCodeblock("empty",s),i=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!IC(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),i){const s=i.length>1e5?`${i.substr(0,1e5)}…`:i;this._type.textContent=s,this._type.title=s,ki(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(s))}else pi(this._type),this._type.title="",si(this._type),this.domNode.classList.add("no-type");if(pi(this._docs),typeof n=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=n;else if(n){this._docs.classList.add("markdown-docs"),pi(this._docs);const s=this._markdownRendererService.render(n,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(s.element),this._renderDisposeable.add(s)}this.domNode.classList.toggle("detail-and-doc",!!i&&!!n),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=s=>{s.preventDefault(),s.stopPropagation()},this._close.onclick=s=>{s.preventDefault(),s.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(e,t){const i=new xe(e,t);xe.equals(i,this._size)||(this._size=i,YN(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};Sv=$H([Gy(1,yt),Gy(2,wo)],Sv);class zH{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new W,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new YS,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let i,n,s=0,r=0;this._disposables.add(this._resizable.onDidWillResize(()=>{i=this._topLeft,n=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(a=>{if(i&&n){this.widget.layout(a.dimension.width,a.dimension.height);let l=!1;a.west&&(r=n.width-a.dimension.width,l=!0),a.north&&(s=n.height-a.dimension.height,l=!0),l&&this._applyTopLeft({top:i.top+s,left:i.left+r})}a.done&&(i=void 0,n=void 0,s=0,r=0,this._userSize=a.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{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(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){const i=e.getBoundingClientRect();this._anchorBox=i,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,t)}_placeAtAnchor(e,t,i){const n=Bc(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),r=new xe(220,2*s.lineHeight),a=e.top,l=(function(){const D=n.width-(e.left+e.width+s.borderWidth+s.horizontalPadding),N=-s.borderWidth+e.left+e.width,E=new xe(D,n.height-e.top-s.borderHeight-s.verticalPadding),M=E.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:N,fit:D-t.width,maxSizeTop:E,maxSizeBottom:M,minSize:r.with(Math.min(D,r.width))}})(),d=(function(){const D=e.left-s.borderWidth-s.horizontalPadding,N=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),E=new xe(D,n.height-e.top-s.borderHeight-s.verticalPadding),M=E.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:N,fit:D-t.width,maxSizeTop:E,maxSizeBottom:M,minSize:r.with(Math.min(D,r.width))}})(),c=(function(){const D=e.left,N=-s.borderWidth+e.top+e.height,E=new xe(e.width-s.borderHeight,n.height-e.top-e.height-s.verticalPadding);return{top:N,left:D,fit:E.height-t.height,maxSizeBottom:E,maxSizeTop:E,minSize:r.with(E.width)}})(),h=(function(){const D=e.left,N=new xe(e.width-s.borderHeight,e.top-s.verticalPadding);return{top:Math.max(s.verticalPadding,e.top-t.height),left:D,fit:N.height-t.height,maxSizeTop:N,maxSizeBottom:N,minSize:r.with(N.width)}})(),u=[l,d,i?c:h],f=u.find(D=>D.fit>=0)??u.sort((D,N)=>N.fit-D.fit)[0],p=e.top+e.height-s.borderHeight;let _,v=t.height;const S=Math.max(f.maxSizeTop.height,f.maxSizeBottom.height);v>S&&(v=S);let y;i?v<=f.maxSizeTop.height?(_=!0,y=f.maxSizeTop):(_=!1,y=f.maxSizeBottom):v<=f.maxSizeBottom.height?(_=!1,y=f.maxSizeBottom):(_=!0,y=f.maxSizeTop);let{top:x,left:b}=f;f===h?x=e.top-v+s.borderWidth:!_&&v>e.height&&(x=p-v);const w=this._editor.getDomNode();if(w){const D=w.getBoundingClientRect();x-=D.top,b-=D.left}this._applyTopLeft({left:b,top:x}),f===h?this._resizable.enableSashes(!0,!1,!1,!0):this._resizable.enableSashes(!_,f===l,_,f!==l),this._resizable.minSize=f.minSize,this._resizable.maxSize=y,this._resizable.layout(v,Math.min(y.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}const Zy=Rn("fileService");var tn;(function(o){o[o.FILE=0]="FILE",o[o.FOLDER=1]="FOLDER",o[o.ROOT_FOLDER=2]="ROOT_FOLDER"})(tn||(tn={}));const jH=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function fd(o,e,t,i,n){if(ce.isThemeIcon(n))return[`codicon-${n.id}`,"predefined-file-icon"];if(Le.isUri(n))return[];const s=i===tn.ROOT_FOLDER?["rootfolder-icon"]:i===tn.FOLDER?["folder-icon"]:["file-icon"];if(t){let r;if(t.scheme===mt.data)r=su.parseMetaData(t).get(su.META_DATA_LABEL);else{const a=t.path.match(jH);a?(r=Ih(a[2].toLowerCase()),a[1]&&s.push(`${Ih(a[1].toLowerCase())}-name-dir-icon`)):r=Ih(t.authority.toLowerCase())}if(i===tn.ROOT_FOLDER)s.push(`${r}-root-name-folder-icon`);else if(i===tn.FOLDER)s.push(`${r}-name-folder-icon`);else{if(r){if(s.push(`${r}-name-file-icon`),s.push("name-file-icon"),r.length<=255){const l=r.split(".");for(let d=1;d<l.length;d++)s.push(`${l.slice(d).join(".")}-ext-file-icon`)}s.push("ext-file-icon")}const a=qH(o,e,t);a&&s.push(`${Ih(a)}-lang-file-icon`)}}return s}function qH(o,e,t){if(!t)return null;let i=null;if(t.scheme===mt.data){const s=su.parseMetaData(t).get(su.META_DATA_MIME);s&&(i=e.getLanguageIdByMimeType(s))}else{const n=o.getModel(t);n&&(i=n.getLanguageId())}return i&&i!==gL?i:e.guessLanguageIdByFilepathOrFirstLine(t)}function Ih(o){return o.replace(/[\s]/g,"/")}var KH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Yp=function(o,e){return function(t,i){e(t,i,o)}};const GH=ze("suggest-more-info",U.chevronRight,m(1544,"Icon for more information in the suggest widget."));var Yi;const ZH=new(Yi=class{extract(e,t){if(e.textLabel.match(Yi._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(Yi._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const i=typeof e.completion.documentation=="string"?e.completion.documentation:e.completion.documentation.value,n=Yi._regexRelaxed.exec(i);if(n&&(n.index===0||n.index+n[0].length===i.length))return t[0]=n[0],!0}return!1}},Yi._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*\))/,Yi._regexStrict=new RegExp(`^${Yi._regexRelaxed.source}$`,"i"),Yi);let Cv=class{constructor(e,t,i,n){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=n,this._onDidToggleDetails=new Y,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new W,i=e;i.classList.add("show-file-icons");const n=z(e,B(".icon")),s=z(n,B("span.colorspan")),r=z(e,B(".contents")),a=z(r,B(".main")),l=z(a,B(".icon-label.codicon")),d=z(a,B("span.left")),c=z(a,B("span.right")),h=new uL(d,{supportHighlights:!0,supportIcons:!0});t.add(h);const g=z(d,B("span.signature-label")),u=z(d,B("span.qualifier-label")),f=z(c,B("span.details-label")),p=z(c,B("span.readMore"+ce.asCSSSelector(GH)));return p.title=m(1545,"Read More"),{root:i,left:d,right:c,icon:n,colorspan:s,iconLabel:h,iconContainer:l,parametersLabel:g,qualifierLabel:u,detailsLabel:f,readMore:p,disposables:t,configureFont:()=>{const v=this._editor.getOptions(),S=v.get(59),y=S.getMassagedFontFamily(),x=S.fontFeatureSettings,b=S.fontVariationSettings,w=v.get(135)||S.fontSize,D=v.get(136)||S.lineHeight,N=S.fontWeight,E=S.letterSpacing,M=`${w}px`,O=`${D}px`,H=`${E}px`;i.style.fontSize=M,i.style.fontWeight=N,i.style.letterSpacing=H,a.style.fontFamily=y,a.style.fontFeatureSettings=x,a.style.fontVariationSettings=b,a.style.lineHeight=O,n.style.height=O,n.style.width=O,p.style.height=O,p.style.width=O}}}renderElement(e,t,i){i.configureFont();const{completion:n}=e;i.colorspan.style.backgroundColor="";const s={labelEscapeNewLines:!0,matches:Nf(e.score)},r=[];if(n.kind===19&&ZH.extract(e,r))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=r[0];else if(n.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const a=fd(this._modelService,this._languageService,Le.from({scheme:"fake",path:e.textLabel}),tn.FILE),l=fd(this._modelService,this._languageService,Le.from({scheme:"fake",path:n.detail}),tn.FILE);s.extraClasses=a.length>l.length?a:l}else n.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",s.extraClasses=[fd(this._modelService,this._languageService,Le.from({scheme:"fake",path:e.textLabel}),tn.FOLDER),fd(this._modelService,this._languageService,Le.from({scheme:"fake",path:n.detail}),tn.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...ce.asClassNameArray(Af.toIcon(n.kind))));n.tags&&n.tags.indexOf(1)>=0&&(s.extraClasses=(s.extraClasses||[]).concat(["deprecated"]),s.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,s),typeof n.label=="string"?(i.parametersLabel.textContent="",i.detailsLabel.textContent=Jp(n.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=Jp(n.label.detail||""),i.detailsLabel.textContent=Jp(n.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(134).showInlineDetails?ki(i.detailsLabel):si(i.detailsLabel),IC(e)?(i.right.classList.add("can-expand-details"),ki(i.readMore),i.readMore.onmousedown=a=>{a.stopPropagation(),a.preventDefault()},i.readMore.onclick=a=>{a.stopPropagation(),a.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),si(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};Cv=KH([Yp(1,Yt),Yp(2,ls),Yp(3,yt)],Cv);function Jp(o){return o.replace(/\r\n|\r|\n/g,"")}var XH=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},xh=function(o,e){return function(t,i){e(t,i,o)}},wa;V("editorSuggestWidget.background",RS,m(1525,"Background color of the suggest widget."));V("editorSuggestWidget.border",VL,m(1526,"Border color of the suggest widget."));const YH=V("editorSuggestWidget.foreground",$c,m(1527,"Foreground color of the suggest widget."));V("editorSuggestWidget.selectedForeground",AL,m(1528,"Foreground color of the selected entry in the suggest widget."));V("editorSuggestWidget.selectedIconForeground",JN,m(1529,"Icon foreground color of the selected entry in the suggest widget."));const JH=V("editorSuggestWidget.selectedBackground",ML,m(1530,"Background color of the selected entry in the suggest widget."));V("editorSuggestWidget.highlightForeground",BL,m(1531,"Color of the match highlights in the suggest widget."));V("editorSuggestWidget.focusHighlightForeground",QN,m(1532,"Color of the match highlights in the suggest widget when an item is focused."));V("editorSuggestWidgetStatus.foreground",Ye(YH,.5),m(1533,"Foreground color of the suggest widget status."));class QH{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof Dn}`}restore(){const e=this._service.get(this._key,0)??"";try{const t=JSON.parse(e);if(xe.is(t))return xe.lift(t)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}var Ys;let wv=(Ys=class{constructor(e,t,i,n,s){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._loadingTimeout=new Ke,this._pendingLayout=new Ke,this._pendingShowDetails=new Ke,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new Fc,this._disposables=new W,this._onDidSelect=new _w,this._onDidFocus=new _w,this._onDidHide=new Y,this._onDidShow=new Y,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new Y,this.element=new YS,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new e2(this,e),this._persistedSize=new QH(t,e);class r{constructor(f,p,_=!1,v=!1){this.persistedSize=f,this.currentSize=p,this.persistHeight=_,this.persistWidth=v}}let a;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),a=new r(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(u=>{if(this._resize(u.dimension.width,u.dimension.height),a&&(a.persistHeight=a.persistHeight||!!u.north||!!u.south,a.persistWidth=a.persistWidth||!!u.east||!!u.west),!!u.done){if(a){const{itemHeight:f,defaultSize:p}=this.getLayoutInfo(),_=Math.round(f/2);let{width:v,height:S}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-S)<=_)&&(S=a.persistedSize?.height??p.height),(!a.persistWidth||Math.abs(a.currentSize.width-v)<=_)&&(v=a.persistedSize?.width??p.width),this._persistedSize.store(new xe(v,S))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=z(this.element.domNode,B(".message")),this._listElement=z(this.element.domNode,B(".tree"));const l=this._disposables.add(s.createInstance(Sv,this.editor));l.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new zH(l,this.editor);const d=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);d();const c=s.createInstance(Cv,this.editor);this._disposables.add(c),this._disposables.add(c.onDidToggleDetails(()=>this.toggleDetails())),this._list=new tS("SuggestWidget",this._listElement,{getHeight:u=>this.getLayoutInfo().itemHeight,getTemplateId:u=>"suggestion"},[c],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>IS?"listitem":"option",getWidgetAriaLabel:()=>m(1536,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:u=>{let f=u.textLabel;const p=Af.toLabel(u.completion.kind);if(typeof u.completion.label!="string"){const{detail:y,description:x}=u.completion.label;y&&x?f=m(1537,"{0} {1}, {2}, {3}",f,y,x,p):y?f=m(1538,"{0} {1}, {2}",f,y,p):x&&(f=m(1539,"{0}, {1}, {2}",f,x,p))}else f=m(1540,"{0}, {1}",f,p);if(!u.isResolved||!this._isDetailsVisible())return f;const{documentation:_,detail:v}=u.completion,S=pS("{0}{1}",v||"",_?typeof _=="string"?_:_.value:"");return m(1541,"{0}, docs: {1}",f,S)}}}),this._list.style(PL({listInactiveFocusBackground:JH,listInactiveFocusOutline:Fr})),this._status=s.createInstance(bv,this.element.domNode,Xn,void 0);const h=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);h(),this._disposables.add(this._list.onMouseDown(u=>this._onListMouseDownOrTap(u))),this._disposables.add(this._list.onTap(u=>this._onListMouseDownOrTap(u))),this._disposables.add(this._list.onDidChangeSelection(u=>this._onListSelection(u))),this._disposables.add(this._list.onDidChangeFocus(u=>this._onListFocus(u))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(u=>{u.hasChanged(134)&&(h(),d()),this._completionModel&&(u.hasChanged(59)||u.hasChanged(135)||u.hasChanged(136))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=X.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=X.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=X.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=X.HasFocusedSuggestion.bindTo(i),this._ctxSuggestWidgetDetailsFocused=X.DetailsFocused.bindTo(i);const g=As(this._details.widget.domNode);this._disposables.add(g),this._disposables.add(g.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(g.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(co(this._details.widget.domNode,"keydown",u=>{this._onDetailsKeydown.fire(u)})),this._disposables.add(this.editor.onMouseDown(u=>this._onEditorMouseDown(u)))}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(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){typeof e.element>"u"||typeof e.index>"u"||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onListFocus(e){if(this._ignoreFocusEvents)return;if(this._state===5&&this._setState(3),!e.elements.length){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);const t=e.elements[0],i=e.indexes[0];t!==this._focusedItem&&(this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=t,this._list.reveal(i),this._currentSuggestionDetails=dt(async n=>{const s=no(()=>{this._isDetailsVisible()&&this._showDetails(!0,!1)},250),r=n.onCancellationRequested(()=>s.dispose());try{return await t.resolve(n)}finally{s.dispose(),r.dispose()}}),this._currentSuggestionDetails.then(()=>{i>=this._list.length||t!==this._list.element(i)||(this._ignoreFocusEvents=!0,this._list.splice(i,1,[t]),this._list.setFocus([i]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this._showDetails(!1,!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:this._list.getElementID(i)}))}).catch(we)),this._onDidFocus.fire({item:t,index:i,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle("frozen",e===4),this.element.domNode.classList.remove("message"),e){case 0:si(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=wa.LOADING_MESSAGE,si(this._listElement,this._status.element),ki(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,ao(wa.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=wa.NO_SUGGESTIONS_MESSAGE,si(this._listElement,this._status.element),ki(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,ao(wa.NO_SUGGESTIONS_MESSAGE);break;case 3:si(this._messageElement),ki(this._listElement,this._status.element),this._show();break;case 4:si(this._messageElement),ki(this._listElement,this._status.element),this._show();break;case 5:si(this._messageElement),ki(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(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout.value=no(()=>this._setState(1),t)))}showSuggestions(e,t,i,n,s){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&this._state!==2&&this._state!==0){this._setState(4);return}const r=this._completionModel.items.length,a=r===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(r>1),a){this._setState(n?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(i?4:3),this._list.reveal(t,0,t===0?0:this.getLayoutInfo().itemHeight*.33),this._list.setFocus(s?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=vw(Ht(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){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}}toggleDetailsFocus(){this._state===5?(this._list.setFocus(this._list.getFocus()),this._setState(3)):this._state===3&&(this._setState(5),this._isDetailsVisible()?this._details.widget.focus():this.toggleDetails(!0))}toggleDetails(e=!1){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(IC(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,e))}_showDetails(e,t){this._pendingShowDetails.value=vw(Ht(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let i=!1;e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details"),t&&(this._details.widget.focus(),i=!0)),i||this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this._showDetails(!1,!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout.clear(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const e=this._persistedSize.restore(),t=Math.ceil(this.getLayoutInfo().itemHeight*4.3);e&&e.height<t&&this._persistedSize.store(e.with(void 0,t))}isFrozen(){return this._state===4}_afterRender(e){if(e===null){this._isDetailsVisible()&&this._details.hide();return}this._state===2||this._state===1||(this._isDetailsVisible()&&!this._details.widget.isEmpty&&this._details.show(),this._positionDetails())}_layout(e){if(!this.editor.hasModel()||!this.editor.getDomNode())return;const t=Bc(this.element.domNode.ownerDocument.body),i=this.getLayoutInfo();e||(e=i.defaultSize);let n=e.height,s=e.width;if(this._status.element.style.height=`${i.itemHeight}px`,this._state===2||this._state===1)n=i.itemHeight+i.borderHeight,s=i.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new xe(s,n),this._contentWidget.setPreference(2);else{const r=t.width-i.borderHeight-2*i.horizontalPadding;s>r&&(s=r);const a=this._completionModel?this._completionModel.stats.pLabelLen*i.typicalHalfwidthCharacterWidth:s,l=i.statusBarHeight+this._list.contentHeight+i.borderHeight,d=i.itemHeight+i.statusBarHeight,c=Tt(this.editor.getDomNode()),h=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),g=c.top+h.top+h.height,u=Math.min(t.height-g-i.verticalPadding,l),f=c.top+h.top-i.verticalPadding,p=Math.min(f,l);let _=Math.min(Math.max(p,u)+i.borderHeight,l);n===this._cappedHeight?.capped&&(n=this._cappedHeight.wanted),n<d&&(n=d),n>_&&(n=_),n>u&&p>u||this._forceRenderingAbove&&f>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),_=p):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),_=u),this.element.preferredSize=new xe(a,i.defaultSize.height),this.element.maxSize=new xe(r,_),this.element.minSize=new xe(220,d),this._cappedHeight=n===l?{wanted:this._cappedHeight?.wanted??e.height,capped:n}:void 0}this._resize(s,n)}_resize(e,t){const{width:i,height:n}=this.element.maxSize;e=Math.min(i,e),t=Math.min(n,t);const{statusBarHeight:s}=this.getLayoutInfo();this._list.layout(t-s,e),this._listElement.style.height=`${t-s}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}getLayoutInfo(){const e=this.editor.getOption(59),t=Tm(this.editor.getOption(136)||e.lineHeight,8,1e3),i=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:t,n=this._details.widget.getLayoutInfo().borderWidth,s=2*n;return{itemHeight:t,statusBarHeight:i,borderWidth:n,borderHeight:s,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new xe(430,i+12*t)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}},wa=Ys,Ys.LOADING_MESSAGE=m(1534,"Loading..."),Ys.NO_SUGGESTIONS_MESSAGE=m(1535,"No suggestions."),Ys);wv=wa=XH([xh(1,Wi),xh(2,pe),xh(3,yt),xh(4,ee)],wv);class e2{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:n}=this._widget.getLayoutInfo();return new xe(t+2*i+n,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var t2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ga=function(o,e){return function(t,i){e(t,i,o)}},yv;class i2{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=te.register({description:"suggest-line-suffix",stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){const n=e.getOffsetAt(t),s=e.getPositionAt(n+1);e.changeDecorations(r=>{this._marker&&r.removeDecoration(this._marker),this._marker=r.addDecoration(I.fromPositions(t,s),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}var br;let nn=(br=class{static get(e){return e.getContribution(yv.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(e,t,i,n,s,r,a){this._memoryService=t,this._commandService=i,this._contextKeyService=n,this._instantiationService=s,this._logService=r,this._telemetryService=a,this._lineSuffix=new Ke,this._toDispose=new W,this._selectors=new n2(h=>h.priority),this._onWillInsertSuggestItem=new Y,this._wantsForceRenderingAbove=!1,this.editor=e,this.model=s.createInstance(Ju,this.editor),this._selectors.register({priority:0,select:(h,g,u)=>this._memoryService.select(h,g,u)});const l=X.InsertMode.bindTo(n);l.set(e.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(134).insertMode))),this.widget=this._toDispose.add(new Lp(Ht(e.getDomNode()),()=>{const h=this._instantiationService.createInstance(wv,this.editor);this._toDispose.add(h),this._toDispose.add(h.onDidSelect(_=>this._insertSuggestion(_,0),this));const g=new WH(this.editor,h,this.model,_=>this._insertSuggestion(_,2));this._toDispose.add(g);const u=X.MakesTextEdit.bindTo(this._contextKeyService),f=X.HasInsertAndReplaceRange.bindTo(this._contextKeyService),p=X.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(ke(()=>{u.reset(),f.reset(),p.reset()})),this._toDispose.add(h.onDidFocus(({item:_})=>{const v=this.editor.getPosition(),S=_.editStart.column,y=v.column;let x=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!_.completion.additionalTextEdits&&!(_.completion.insertTextRules&4)&&y-S===_.completion.insertText.length&&(x=this.editor.getModel().getValueInRange({startLineNumber:v.lineNumber,startColumn:S,endLineNumber:v.lineNumber,endColumn:y})!==_.completion.insertText),u.set(x),f.set(!$.equals(_.editInsertEnd,_.editReplaceEnd)),p.set(!!_.provider.resolveCompletionItem||!!_.completion.documentation||_.completion.detail!==_.completion.label)})),this._wantsForceRenderingAbove&&h.forceRenderingAbove(),h})),this._overtypingCapturer=this._toDispose.add(new Lp(Ht(e.getDomNode()),()=>this._toDispose.add(new vv(this.editor,this.model)))),this._alternatives=this._toDispose.add(new Lp(Ht(e.getDomNode()),()=>this._toDispose.add(new bl(this.editor,this._contextKeyService)))),this._toDispose.add(s.createInstance(Zu,e)),this._toDispose.add(this.model.onDidTrigger(h=>{this.widget.value.showTriggered(h.auto,h.shy?250:50),this._lineSuffix.value=new i2(this.editor.getModel(),h.position)})),this._toDispose.add(this.model.onDidSuggest(h=>{if(h.triggerOptions.shy)return;let g=-1;for(const f of this._selectors.itemsOrderedByPriorityDesc)if(g=f.select(this.editor.getModel(),this.editor.getPosition(),h.completionModel.items),g!==-1)break;if(g===-1&&(g=0),this.model.state===0)return;let u=!1;if(h.triggerOptions.auto){const f=this.editor.getOption(134);f.selectionMode==="never"||f.selectionMode==="always"?u=f.selectionMode==="never":f.selectionMode==="whenTriggerCharacter"?u=h.triggerOptions.triggerKind!==1:f.selectionMode==="whenQuickSuggestion"&&(u=h.triggerOptions.triggerKind===1&&!h.triggerOptions.refilter)}this.widget.value.showSuggestions(h.completionModel,g,h.isFrozen,h.triggerOptions.auto,u)})),this._toDispose.add(this.model.onDidCancel(h=>{h.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const d=X.AcceptSuggestionsOnEnter.bindTo(n),c=()=>{const h=this.editor.getOption(1);d.set(h==="on"||h==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>c())),c()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const i=ct.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const n=this.editor.getModel(),s=n.getAlternativeVersionId(),{item:r}=e,a=[],l=new Je;t&1||this.editor.pushUndoStop();const d=this.getOverwriteInfo(r,!!(t&8));this._memoryService.memorize(n,this.editor.getPosition(),r);const c=r.isResolved;let h=-1,g=-1;if(Array.isArray(r.completion.additionalTextEdits)){this.model.cancel();const f=sl.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",r.completion.additionalTextEdits.map(p=>{let _=I.lift(p.range);if(_.startLineNumber===r.position.lineNumber&&_.startColumn>r.position.column){const v=this.editor.getPosition().column-r.position.column,S=v,y=I.spansMultipleLines(_)?0:v;_=new I(_.startLineNumber,_.startColumn+S,_.endLineNumber,_.endColumn+y)}return $e.replaceMove(_,p.text)})),f.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!c){const f=new _i;let p;const _=n.onDidChangeContent(x=>{if(x.isFlush){l.cancel(),_.dispose();return}for(const b of x.changes){const w=I.getEndPosition(b.range);(!p||$.isBefore(w,p))&&(p=w)}}),v=t;t|=2;let S=!1;const y=this.editor.onWillType(()=>{y.dispose(),S=!0,v&2||this.editor.pushUndoStop()});a.push(r.resolve(l.token).then(()=>{if(!r.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(p&&r.completion.additionalTextEdits.some(b=>$.isBefore(p,I.getStartPosition(b.range))))return!1;S&&this.editor.pushUndoStop();const x=sl.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",r.completion.additionalTextEdits.map(b=>$e.replaceMove(I.lift(b.range),b.text))),x.restoreRelativeVerticalPositionOfCursor(this.editor),(S||!(v&2))&&this.editor.pushUndoStop(),!0}).then(x=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",f.elapsed(),x),g=x===!0?1:x===!1?0:-2}).finally(()=>{_.dispose(),y.dispose()}))}let{insertText:u}=r.completion;if(r.completion.insertTextRules&4||(u=Br.escape(u)),this.model.cancel(),i.insert(u,{overwriteBefore:d.overwriteBefore,overwriteAfter:d.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(r.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:Pr.suggest({providerId:Zx.fromExtensionId(r.extensionId?.value)})}),t&2||this.editor.pushUndoStop(),r.completion.command)if(r.completion.command.id===Qu.id)this.model.trigger({auto:!0,retrigger:!0});else{const f=new _i;a.push(this._commandService.executeCommand(r.completion.command.id,...r.completion.command.arguments?[...r.completion.command.arguments]:[]).catch(p=>{r.completion.extensionId?Ze(p):we(p)}).finally(()=>{h=f.elapsed()}))}t&4&&this._alternatives.value.set(e,f=>{for(l.cancel();n.canUndo();){s!==n.getAlternativeVersionId()&&n.undo(),this._insertSuggestion(f,3|(t&8?8:0));break}}),this._alertCompletionItem(r),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(r,n,c,h,g,e.index,e.model.items),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,n,s,r,a){if(Math.random()>1e-4)return;const l=new Map;for(let g=0;g<Math.min(30,a.length);g++){const u=a[g].textLabel;l.has(u)?l.get(u).push(g):l.set(u,[g])}const d=l.get(e.textLabel),h=d&&d.length>1?d[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:e.extensionId?.value??"unknown",providerId:e.provider._debugDisplayName??"unknown",kind:e.completion.kind,basenameHash:yL(on(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:ek(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:n,additionalEditsAsync:s,index:r,firstIndex:h})}getOverwriteInfo(e,t){Ce(this.editor.hasModel());let i=this.editor.getOption(134).insertMode==="replace";t&&(i=!i);const n=e.position.column-e.editStart.column,s=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,r=this.editor.getPosition().column-e.position.column,a=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:n+r,overwriteAfter:s+a}}_alertCompletionItem(e){if(ri(e.completion.additionalTextEdits)){const t=m(1514,"Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);mi(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},n=s=>{if(s.completion.insertTextRules&4||s.completion.additionalTextEdits)return!0;const r=this.editor.getPosition(),a=s.editStart.column,l=r.column;return l-a!==s.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:r.lineNumber,startColumn:a,endLineNumber:r.lineNumber,endColumn:l})!==s.completion.insertText};Ve.once(this.model.onDidTrigger)(s=>{const r=[];Ve.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{kt(r),i()},void 0,r),this.model.onDidSuggest(({completionModel:a})=>{if(kt(r),a.items.length===0){i();return}const l=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),a.items),d=a.items[l];if(!n(d)){i();return}this.editor.pushUndoStop(),this._insertSuggestion({index:l,item:d,model:a},7)},void 0,r)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let n=0;e&&(n|=4),t&&(n|=8),this._insertSuggestion(i,n)}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(){this.widget.isInitialized?this.widget.value.forceRenderingAbove():this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){this.widget.isInitialized?this.widget.value.stopForceRenderingAbove():this._wantsForceRenderingAbove=!1}registerSelector(e){return this._selectors.register(e)}},yv=br,br.ID="editor.contrib.suggestController",br);nn=yv=t2([ga(1,hp),ga(2,it),ga(3,pe),ga(4,ee),ga(5,Pt),ga(6,vo)],nn);class n2{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(this._items.indexOf(e)!==-1)throw new Error("Value is already registered");return this._items.push(e),this._items.sort((t,i)=>this.prioritySelector(i)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}const Xg=class Xg extends F{constructor(){super({id:Xg.id,label:L(1523,"Trigger Suggest"),precondition:T.and(C.writable,C.hasCompletionItemProvider,X.Visible.toNegated()),kbOpts:{kbExpr:C.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const n=nn.get(t);if(!n)return;let s;i&&typeof i=="object"&&i.auto===!0&&(s=!0),n.triggerSuggest(void 0,s,void 0)}};Xg.id="editor.action.triggerSuggest";let Qu=Xg;ae(nn.ID,nn,2);P(Qu);const Xt=190,At=Mt.bindToContribution(nn.get);K(new At({id:"acceptSelectedSuggestion",precondition:T.and(X.Visible,X.HasFocusedSuggestion),handler(o){o.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:T.and(X.Visible,C.textInputFocus),weight:Xt},{primary:3,kbExpr:T.and(X.Visible,C.textInputFocus,X.AcceptSuggestionsOnEnter,X.MakesTextEdit),weight:Xt}],menuOpts:[{menuId:Xn,title:m(1515,"Insert"),group:"left",order:1,when:T.and(X.HasFocusedSuggestion,X.HasInsertAndReplaceRange.toNegated())},{menuId:Xn,title:m(1516,"Insert"),group:"left",order:1,when:T.and(X.HasFocusedSuggestion,X.HasInsertAndReplaceRange,X.InsertMode.isEqualTo("insert"))},{menuId:Xn,title:m(1517,"Replace"),group:"left",order:1,when:T.and(X.HasFocusedSuggestion,X.HasInsertAndReplaceRange,X.InsertMode.isEqualTo("replace"))}]}));K(new At({id:"acceptAlternativeSelectedSuggestion",precondition:T.and(X.Visible,C.textInputFocus,X.HasFocusedSuggestion),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:1027,secondary:[1026]},handler(o){o.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Xn,group:"left",order:2,when:T.and(X.HasFocusedSuggestion,X.HasInsertAndReplaceRange,X.InsertMode.isEqualTo("insert")),title:m(1518,"Replace")},{menuId:Xn,group:"left",order:2,when:T.and(X.HasFocusedSuggestion,X.HasInsertAndReplaceRange,X.InsertMode.isEqualTo("replace")),title:m(1519,"Insert")}]}));Ee.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");K(new At({id:"hideSuggestWidget",precondition:X.Visible,handler:o=>o.cancelSuggestWidget(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:9,secondary:[1033]}}));K(new At({id:"selectNextSuggestion",precondition:T.and(X.Visible,T.or(X.MultipleSuggestions,X.HasFocusedSuggestion.negate())),handler:o=>o.selectNextSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:Xn,group:"left",order:0,when:X.HasFocusedSuggestion.toNegated(),title:m(1520,"Select")}}));K(new At({id:"selectNextPageSuggestion",precondition:T.and(X.Visible,T.or(X.MultipleSuggestions,X.HasFocusedSuggestion.negate())),handler:o=>o.selectNextPageSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:12,secondary:[2060]}}));K(new At({id:"selectLastSuggestion",precondition:T.and(X.Visible,T.or(X.MultipleSuggestions,X.HasFocusedSuggestion.negate())),handler:o=>o.selectLastSuggestion()}));K(new At({id:"selectPrevSuggestion",precondition:T.and(X.Visible,T.or(X.MultipleSuggestions,X.HasFocusedSuggestion.negate())),handler:o=>o.selectPrevSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));K(new At({id:"selectPrevPageSuggestion",precondition:T.and(X.Visible,T.or(X.MultipleSuggestions,X.HasFocusedSuggestion.negate())),handler:o=>o.selectPrevPageSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:11,secondary:[2059]}}));K(new At({id:"selectFirstSuggestion",precondition:T.and(X.Visible,T.or(X.MultipleSuggestions,X.HasFocusedSuggestion.negate())),handler:o=>o.selectFirstSuggestion()}));K(new At({id:"focusSuggestion",precondition:T.and(X.Visible,X.HasFocusedSuggestion.negate()),handler:o=>o.focusSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));K(new At({id:"focusAndAcceptSuggestion",precondition:T.and(X.Visible,X.HasFocusedSuggestion.negate()),handler:o=>{o.focusSuggestion(),o.acceptSelectedSuggestion(!0,!1)}}));K(new At({id:"toggleSuggestionDetails",precondition:T.and(X.Visible,X.HasFocusedSuggestion),handler:o=>o.toggleSuggestionDetails(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Xn,group:"right",order:1,when:T.and(X.DetailsVisible,X.CanResolve),title:m(1521,"Show Less")},{menuId:Xn,group:"right",order:1,when:T.and(X.DetailsVisible.toNegated(),X.CanResolve),title:m(1522,"Show More")}]}));K(new At({id:"toggleExplainMode",precondition:X.Visible,handler:o=>o.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));K(new At({id:"toggleSuggestionFocus",precondition:X.Visible,handler:o=>o.toggleSuggestionFocus(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:2570,mac:{primary:778}}}));K(new At({id:"insertBestCompletion",precondition:T.and(C.textInputFocus,T.equals("config.editor.tabCompletion","on"),Zu.AtEnd,X.Visible.toNegated(),bl.OtherSuggestions.toNegated(),ct.InSnippetMode.toNegated()),handler:(o,e)=>{o.triggerSuggestAndAcceptBest(wS(e)?{fallback:"tab",...e}:{fallback:"tab"})},kbOpts:{weight:Xt,primary:2}}));K(new At({id:"insertNextSuggestion",precondition:T.and(C.textInputFocus,T.equals("config.editor.tabCompletion","on"),bl.OtherSuggestions,X.Visible.toNegated(),ct.InSnippetMode.toNegated()),handler:o=>o.acceptNextSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:2}}));K(new At({id:"insertPrevSuggestion",precondition:T.and(C.textInputFocus,T.equals("config.editor.tabCompletion","on"),bl.OtherSuggestions,X.Visible.toNegated(),ct.InSnippetMode.toNegated()),handler:o=>o.acceptPrevSuggestion(),kbOpts:{weight:Xt,kbExpr:C.textInputFocus,primary:1026}}));K(new class extends Mt{constructor(){super({id:"suggestWidgetCopy",precondition:X.DetailsFocused,kbOpts:{weight:Xt+10,kbExpr:X.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(o,e){Ht(e.getDomNode()).document.execCommand("copy")}});P(class extends F{constructor(){super({id:"editor.action.resetSuggestSize",label:L(1524,"Reset Suggest Widget Size"),precondition:void 0})}run(o,e){nn.get(e)?.resetWidgetSize()}});class s2 extends A{get selectedItem(){return this._currentSuggestItemInfo}constructor(e,t,i){super(),this.editor=e,this.suggestControllerPreselector=t,this.onWillAccept=i,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new Y),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(e.onKeyDown(s=>{s.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(s=>{s.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const n=nn.get(this.editor);if(n){this._register(n.registerSelector({priority:100,select:(a,l,d)=>{const c=this.editor.getModel();if(!c)return-1;const h=this.suggestControllerPreselector(),g=h?Vs(h,c):void 0;if(!g)return-1;const u=$.lift(l),f=d.map((_,v)=>{const S=Nd.fromSuggestion(n,c,u,_,this.isShiftKeyPressed),y=Vs(S.getSingleTextEdit(),c),x=iE(g,y);return{index:v,valid:x,prefixLength:y.text.length,suggestItem:_}}).filter(_=>_&&_.valid&&_.prefixLength>0),p=tk(f,Mr(_=>_.prefixLength,Ar));return p?p.index:-1}}));let s=!1;const r=()=>{s||(s=!0,this._register(n.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(n.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(n.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(Ve.once(n.model.onDidTrigger)(a=>{r()})),this._register(n.onWillInsertSuggestItem(a=>{const l=this.editor.getPosition(),d=this.editor.getModel();if(!l||!d)return;const c=Nd.fromSuggestion(n,d,l,a.item,this.isShiftKeyPressed);this.onWillAccept(c)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!o2(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const e=nn.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),n=this.editor.getModel();if(!(!t||!i||!n))return Nd.fromSuggestion(e,n,i,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){nn.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){nn.get(this.editor)?.forceRenderingAbove()}}class Nd{static fromSuggestion(e,t,i,n,s){let{insertText:r}=n.completion,a=!1;if(n.completion.insertTextRules&4){const d=new Br().parse(r);d.children.length<100&&$u.adjustWhitespace(t,i,!0,d),r=d.toString(),a=!0}const l=e.getOverwriteInfo(n,s);return new Nd(I.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),r,n.completion.kind,a,n.container.incomplete??!1)}constructor(e,t,i,n,s){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=n,this.listIncomplete=s}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new ik(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new Ae(this.range,this.insertText)}}function o2(o,e){return o===e?!0:!o||!e?!1:o.equals(e)}class r2 extends A{constructor(e,t,i){super(),this._editorObs=e,this._handleSuggestAccepted=t,this._suggestControllerPreselector=i,this._suggestWidgetAdaptor=this._register(new s2(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),n=>this._editorObs.forceUpdate(s=>{this._handleSuggestAccepted(n)}))),this.selectedItem=xt(this,n=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(s=>n(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class a2{constructor(e,t){this.lineNumber=e,this.columnRange=t}}class Xy{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new at(`startColumn ${e} cannot be after endColumnExclusive ${t}`)}toRange(e){return new I(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}toZeroBasedOffsetRange(){return new Be(this.startColumn-1,this.endColumnExclusive-1)}}class $o{static fromLineTokens(e){const t=[];for(let i=0;i<e.getCount();i++)t.push(new Yy(e.getTokenText(i),e.getMetadata(i)));return $o.create(t)}static create(e){return new $o(e)}constructor(e){this._tokenInfo=e}toLineTokens(e){return kl.createFromTextAndMetadata(this.map((t,i)=>({text:i.text,metadata:i.metadata})),e)}map(e){const t=[];let i=0;for(const n of this._tokenInfo){const s=new Be(i,i+n.text.length);t.push(e(s,n)),i+=n.text.length}return t}slice(e){const t=[];let i=0;for(const n of this._tokenInfo){const s=i,r=s+n.text.length;if(r>e.start){if(s>=e.endExclusive)break;const a=Math.max(0,e.start-s),l=Math.max(0,r-e.endExclusive);t.push(new Yy(n.text.slice(a,n.text.length-l),n.metadata))}i+=n.text.length}return $o.create(t)}append(e){const t=this._tokenInfo.concat(e._tokenInfo);return $o.create(t)}}class Yy{constructor(e,t){this.text=e,this.metadata=t}}var l2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},d2=function(o,e){return function(t,i){e(t,i,o)}};class xC{static from(e){if(e)return new xC(e.icon)}constructor(e=U.warning){this.icon=e}}const hE="ghost-text";let mc=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._data=t,this._languageService=n,this._isDisposed=Ne(this,!1),this._warningState=R(s=>{const r=this._data.read(s),a=r?.warning;if(!r||!a)return;const l=r.ghostText;return{lineNumber:l.lineNumber,position:new $(l.lineNumber,l.parts[0].column),icon:a.icon}}),this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=R(this,s=>{const r=this._data.read(s);return r?r.ghostText.parts.map(d=>d.lines.map(c=>c.line).join("")).join("").replace(/\s/g,"").length:void 0}),this._extraClassNames=R(this,s=>{const r=this._extraClasses.slice();this._warningState.read(s)&&r.push("warning");const a=this._nonWhitespaceCount.read(s);return this._highlightShortText&&a&&a<3?r.push("short-text"):this._useSyntaxHighlighting.read(s)&&r.push("syntax-highlighted"),r.map(d=>` ${d}`).join("")}),this._state=R(this,s=>{if(this._isDisposed.read(s))return;const r=this._data.read(s);if(!r)return;const a=this._editorObs.model.read(s);if(!a)return;const l=r.ghostText,d=l instanceof sv?l.columnRange:void 0,c=this._useSyntaxHighlighting.read(s),h=this._extraClassNames.read(s),{inlineTexts:g,additionalLines:u,hiddenRange:f,additionalLinesOriginalSuffix:p}=c2(l,a,hE+h),_=a.getLineContent(l.lineNumber),v=new es(g.map(M=>ai.insert(M.column-1,M.text))),S=c?a.tokenization.tokenizeLinesAt(l.lineNumber,[v.apply(_),...u.map(M=>M.content)]):void 0,y=v.getNewRanges(),x=g.map((M,O)=>({...M,tokens:S?.[0]?.getTokensInRange(y[O])})),b=u.map((M,O)=>{let H=S?.[O+1]??kl.createEmpty(M.content,this._languageService.languageIdCodec);if(O===u.length-1&&p){const se=$o.fromLineTokens(a.tokenization.getLineTokens(p.lineNumber)).slice(p.columnRange.toZeroBasedOffsetRange());H=$o.fromLineTokens(H).append(se).toLineTokens(H.languageIdCodec)}return new g2(H,M.decorations)}),w=this._editor.getSelection()?.getStartPosition().column,D=x.filter(M=>M.text!==""),N=D.length!==0,E=new bC((N?D[0].column:1)-w,N?0:u.findIndex(M=>M.content!=="")+1,N?1:0,u.length+(N?1:0),0,nu(D.map(M=>M.text.length))+nu(b.map(M=>M.content.getTextLength())),D.length+(u.length>0?1:0),D.length>1&&b.length===0?D.every(M=>M.text===D[0].text):void 0);return{replacedRange:d,inlineTexts:x,additionalLines:b,hiddenRange:f,lineNumber:l.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(s),targetTextModel:a,syntaxHighlightingEnabled:c,telemetryViewData:E,handleInlineCompletionShown:r.handleInlineCompletionShown}}),this._decorations=R(this,s=>{const r=this._state.read(s);if(!r)return[];const a=[],l=this._extraClassNames.read(s);r.replacedRange&&a.push({range:r.replacedRange.toRange(r.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+l,description:"GhostTextReplacement"}}),r.hiddenRange&&a.push({range:r.hiddenRange.toRange(r.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const d of r.inlineTexts){let c="";this._highlightShortText&&d.text.length<5&&(c+=" short-text"),a.push({range:I.fromPositions(new $(r.lineNumber,d.column)),options:{description:"ghost-text-decoration",after:{content:d.text,tokens:d.tokens,inlineClassName:(d.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+l+c+d.lineDecorations.map(h=>" "+h.className).join(" "),cursorStops:Ao.Left,attachedData:new Qp(this)},showIfCollapsed:!0}})}return a}),this.isHovered=R(this,s=>this._isDisposed.read(s)?!1:this._isInlineTextHovered.read(s)||this._additionalLinesWidget.isHovered.read(s)),this.height=R(this,s=>this._editorObs.getOption(75).read(s)+(this._additionalLinesWidget.viewZoneHeight.read(s)??0)),this._extraClasses=i.extraClasses??[],this._isClickable=i.isClickable??!1,this._shouldKeepCursorStable=i.shouldKeepCursorStable??!1,this._minReservedLineCount=i.minReservedLineCount??_e(0),this._useSyntaxHighlighting=i.useSyntaxHighlighting??_e(!0),this._highlightShortText=i.highlightShortSuggestions??!1,this._editorObs=We(this._editor),this._additionalLinesWidget=this._register(new u2(this._editor,pn({owner:this,equalsFn:nk(kS())},s=>{const r=this._state.read(s);return r?new h2(r.lineNumber,r.additionalLines,r.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered(s=>s.target.type===6&&s.target.detail.injectedText?.options.attachedData instanceof Qp&&s.target.detail.injectedText.options.attachedData.owner===this,this._store),this._register(ke(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this._decorations)),this._isClickable&&(this._register(this._additionalLinesWidget.onDidClick(s=>this._onDidClick.fire(s))),this._register(this._editor.onMouseUp(s=>{if(s.target.type!==6)return;const r=s.target.detail.injectedText?.options.attachedData;r instanceof Qp&&r.owner===this&&this._onDidClick.fire(s.event)}))),this._register(le(s=>{const r=this._state.read(s);r?.handleInlineCompletionShown(r.telemetryViewData)})),this._register(Vc((s,r)=>{}))}static getWarningWidgetContext(e){const t=e.ghostTextViewWarningWidgetData;if(t)return t;if(e.parentElement)return this.getWarningWidgetContext(e.parentElement)}ownsViewZone(e){return this._additionalLinesWidget.viewZoneId===e}};mc=l2([d2(3,ls)],mc);class Qp{constructor(e){this.owner=e}}function c2(o,e,t){const i=[],n=[];function s(h,g){if(n.length>0){const u=n[n.length-1];g&&u.decorations.push(new dl(u.content.length+1,u.content.length+1+h[0].line.length,g,0)),u.content+=h[0].line,h=h.slice(1)}for(const u of h)n.push({content:u.line,decorations:g?[new dl(1,u.line.length+1,g,0),...u.lineDecorations]:[...u.lineDecorations]})}const r=e.getLineContent(o.lineNumber);let a,l=0;for(const h of o.parts){let g=h.lines;a===void 0?(i.push({column:h.column,text:g[0].line,preview:h.preview,lineDecorations:g[0].lineDecorations}),g=g.slice(1)):s([{line:r.substring(l,h.column-1),lineDecorations:[]}],void 0),g.length>0&&(s(g,t),a===void 0&&h.column<=r.length&&(a=h.column)),l=h.column-1}let d;a!==void 0&&(d=new a2(o.lineNumber,new Xy(l+1,r.length+1)));const c=a!==void 0?new Xy(a,r.length+1):void 0;return{inlineTexts:i,additionalLines:n,hiddenRange:c,additionalLinesOriginalSuffix:d}}class h2{constructor(e,t,i){this.lineNumber=e,this.additionalLines=t,this.minReservedLineCount=i}equals(e){return this.lineNumber!==e.lineNumber||this.minReservedLineCount!==e.minReservedLineCount?!1:sn(this.additionalLines,e.additionalLines,kS())}}class u2 extends A{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}get viewZoneHeight(){return this._viewZoneHeight}constructor(e,t,i,n){super(),this._editor=e,this._lines=t,this._shouldKeepCursorStable=i,this._isClickable=n,this._viewZoneHeight=Ne("viewZoneHeight",void 0),this.editorOptionsChanged=ou("editorOptionChanged",Ve.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))),this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new Ke),this.isHovered=We(this._editor).isTargetHovered(s=>Jy(s.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof _S&&this._shouldKeepCursorStable&&this._register(this._editor.onBeforeExecuteEdit(s=>this.hasBeenAccepted=s.source==="inlineSuggestion.accept")),this._register(le(s=>{const r=this._lines.read(s);this.editorOptionsChanged.read(s),r?(this.hasBeenAccepted=!1,this.updateLines(r.lineNumber,r.additionalLines,r.minReservedLineCount)):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones(e=>{this.removeActiveViewZone(e)})}updateLines(e,t,i){const n=this._editor.getModel();if(!n)return;const{tabSize:s}=n.getOptions();We(this._editor).transaction(r=>{this._editor.changeViewZones(a=>{const l=new W;this.removeActiveViewZone(a);const d=Math.max(t.length,i);if(d>0){const c=document.createElement("div");f2(c,s,t,this._editor.getOptions(),this._isClickable),this._isClickable&&(l.add(re(c,"mousedown",h=>{h.preventDefault()})),l.add(re(c,"click",h=>{Jy(h.target)&&this._onDidClick.fire(new DS(Ht(h),h))}))),this.addViewZone(a,e,d,c)}this._viewZoneListener.value=l})})}addViewZone(e,t,i,n){const s=e.addZone({afterLineNumber:t,heightInLines:i,domNode:n,afterColumnAffinity:1,onComputedHeight:r=>{this._viewZoneHeight.set(r,void 0)}});this.keepCursorStable(t,i),this._viewZoneInfo={viewZoneId:s,heightInLines:i,lineNumber:t}}removeActiveViewZone(e){this._viewZoneInfo&&(e.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(e,t){if(!this._shouldKeepCursorStable)return;const i=this._editor.getSelection()?.getStartPosition()?.lineNumber;i!==void 0&&e<i&&this._editor.setScrollTop(this._editor.getScrollTop()+t*this._editor.getOption(75))}}function Jy(o){return Es(o)&&o.classList.contains(hE)}class g2{constructor(e,t){this.content=e,this.decorations=t}equals(e){return this.content.equals(e.content)?dl.equalsArr(this.decorations,e.decorations):!1}}function f2(o,e,t,i,n){const s=i.get(40),r=i.get(133),a="none",l=i.get(108),d=i.get(60),c=i.get(59),h=i.get(75);let g="suggest-preview-text";n&&(g+=" clickable");const u=new $L(1e4);u.appendString(`<div class="${g}">`);for(let _=0,v=t.length;_<v;_++){const S=t[_],y=S.content;u.appendString('<div class="view-line'),u.appendString('" style="top:'),u.appendString(String(_*h)),u.appendString('px;width:1000000px;">');const x=y.getLineContent(),b=qL(x),w=sk(x);zL(new jL(c.isMonospace&&!s,c.canUseHalfwidthRightwardsArrow,x,!1,b,w,0,y,S.decorations.slice(),e,0,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,r,a,l,d!==ok.OFF,null,null,0),u),u.appendString("</div>")}u.appendString("</div>"),OL(o,c);const f=u.build(),p=Qy?Qy.createHTML(f):f;o.innerHTML=p}const Qy=UL("editorGhostText",{createHTML:o=>o});class eh{constructor(e,t){this.width=e,this.height=t}toString(){return`(${this.width},${this.height})`}transpose(){return new eh(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class Se{static fromPoints(e,t){return new Se(e.x,e.y,t.x,t.y)}static fromPointSize(e,t){return new Se(e.x,e.y,e.x+t.x,e.y+t.y)}static fromLeftTopRightBottom(e,t,i,n){return new Se(e,t,i,n)}static fromLeftTopWidthHeight(e,t,i,n){return new Se(e,t,e+i,t+n)}static fromRanges(e,t){return new Se(e.start,t.start,e.endExclusive,t.endExclusive)}static hull(e){let t=Number.MAX_SAFE_INTEGER,i=Number.MAX_SAFE_INTEGER,n=Number.MIN_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER;for(const r of e)t=Math.min(t,r.left),i=Math.min(i,r.top),n=Math.max(n,r.right),s=Math.max(s,r.bottom);return new Se(t,i,n,s)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(e,t,i,n){if(this.left=e,this.top=t,this.right=i,this.bottom=n,e>i)throw new at("Invalid arguments: Horizontally offset by "+(e-i));if(t>n)throw new at("Invalid arguments: Vertically offset by "+(t-n))}withMargin(e,t,i,n){let s,r,a,l;return t===void 0&&i===void 0&&n===void 0?s=r=a=l=e:i===void 0&&n===void 0?(s=r=t,a=l=e):(s=n,r=t,a=e,l=i),new Se(this.left-s,this.top-a,this.right+r,this.bottom+l)}intersectVertical(e){const t=Math.max(this.top,e.start),i=Math.min(this.bottom,e.endExclusive);return new Se(this.left,t,this.right,Math.max(t,i))}intersectHorizontal(e){const t=Math.max(this.left,e.start),i=Math.min(this.right,e.endExclusive);return new Se(t,this.top,Math.max(t,i),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(e){const t=Math.max(this.left,e.left),i=Math.min(this.right,e.right),n=Math.max(this.top,e.top),s=Math.min(this.bottom,e.bottom);if(!(t>i||n>s))return new Se(t,n,i,s)}containsRect(e){return this.left<=e.left&&this.top<=e.top&&this.right>=e.right&&this.bottom>=e.bottom}containsPoint(e){return this.left<=e.x&&this.top<=e.y&&this.right>=e.x&&this.bottom>=e.y}moveToBeContainedIn(e){const t=this.width,i=this.height;let n=this.left,s=this.top;return n<e.left?n=e.left:n+t>e.right&&(n=e.right-t),s<e.top?s=e.top:s+i>e.bottom&&(s=e.bottom-i),new Se(n,s,n+t,s+i)}withWidth(e){return new Se(this.left,this.top,this.left+e,this.bottom)}withHeight(e){return new Se(this.left,this.top,this.right,this.top+e)}withTop(e){return new Se(this.left,e,this.right,this.bottom)}withLeft(e){return new Se(e,this.top,this.right,this.bottom)}translateX(e){return new Se(this.left+e,this.top,this.right+e,this.bottom)}translateY(e){return new Se(this.left,this.top+e,this.right,this.bottom+e)}getLeftBottom(){return new Pi(this.left,this.bottom)}getRightBottom(){return new Pi(this.right,this.bottom)}getRightTop(){return new Pi(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(e){return new Se(e.start,this.top,e.endExclusive,this.bottom)}getSize(){return new eh(this.width,this.height)}}class kd{constructor(e,t,i,n=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=i,this.showEndForLine=n}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&sn(this.startLineNumbers,e.startLineNumbers)&&sn(this.endLineNumbers,e.endLineNumbers)}static get Empty(){return new kd([],[],0)}}const eI=UL("stickyScrollViewLayer",{createHTML:o=>o}),Iv="data-sticky-line-index",uE="data-sticky-is-line",p2="data-sticky-is-line-number",gE="data-sticky-is-folding-icon";class m2 extends A{get height(){return this._height}constructor(e){super(),this._foldingIconStore=this._register(new W),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 Y),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=e,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",e instanceof Dn),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(131)&&t()})),this._register(this._editor.onDidScrollChange(i=>{i.scrollLeftChanged&&t(),i.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),t(),this._register(this._editor.onDidLayoutChange(i=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,i){const n=!this._state&&!e,s=this._state&&this._state.equals(e);if(i===void 0&&(n||s))return;const r=this._findRenderingData(e),a=this._lineNumbers;this._lineNumbers=r.lineNumbers,this._lastLineRelativePosition=r.lastLineRelativePosition;const l=this._findIndexToRebuildFrom(a,this._lineNumbers,i);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,t,l),this._state=e}_findRenderingData(e){if(!e)return{lineNumbers:[],lastLineRelativePosition:0};const t=[...e.startLineNumbers];e.showEndForLine!==null&&(t[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]);let i=0;for(let n=0;n<t.length;n++)i+=this._editor.getLineHeightForPosition(new $(t[n],1));return i===0?{lineNumbers:[],lastLineRelativePosition:0}:{lineNumbers:t,lastLineRelativePosition:e.lastLineRelativePosition}}_findIndexToRebuildFrom(e,t,i){if(t.length===0)return 0;if(i!==void 0)return i;const n=t.findIndex(s=>!e.includes(s));return n===-1?0:n}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${e?.5:0}s`)}_setFoldingIconsVisibility(e){for(const t of this._renderedStickyLines){const i=t.foldingIcon;i&&i.setVisible(e?!0:i.isCollapsed)}}async _renderRootNode(e,t,i,n){const s=this._editor._getViewModel();if(!s){this._clearWidget();return}if(e.length===0){this._clearWidget();return}const r=[],a=e[e.length-1];let l=0;for(let c=0;c<this._renderedStickyLines.length;c++)if(c<n){const h=this._renderedStickyLines[c];r.push(this._updatePosition(h,l,h.lineNumber===a)),l+=h.height}else{const h=this._renderedStickyLines[c];h.lineNumberDomNode.remove(),h.lineDomNode.remove()}const d=this._editor.getLayoutInfo();for(let c=n;c<e.length;c++){const h=this._renderChildNode(s,c,e[c],l,a===e[c],i,d);l+=h.height,this._linesDomNode.appendChild(h.lineDomNode),this._lineNumbersDomNode.appendChild(h.lineNumberDomNode),r.push(h)}i&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin)),this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(c=>c.scrollWidth))+d.verticalScrollbarWidth,this._renderedStickyLines=r,this._setHeight(l+t),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let e=0;e<this._renderedStickyLines.length;e++){const t=this._renderedStickyLines[e];t.lineNumberDomNode.remove(),t.lineDomNode.remove()}this._setHeight(0)}_setHeight(e){this._height!==e&&(this._height=e,this._height===0?this._rootDomNode.style.display="none":(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(){this._foldingIconStore.clear(),this._editor.getOption(126)==="mouseover"&&(this._foldingIconStore.clear(),this._foldingIconStore.add(re(this._lineNumbersDomNode,Pe.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(re(this._lineNumbersDomNode,Pe.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(e,t,i,n,s,r,a){const l=new _2(this._editor,e,a,r,this._isOnGlyphMargin,t,i);return this._updatePosition(l,n,s)}_updatePosition(e,t,i){const n=e.lineDomNode,s=e.lineNumberDomNode;if(i){n.style.zIndex="0",s.style.zIndex="0";const a=`${t+this._lastLineRelativePosition+(e.foldingIcon?.isCollapsed?1:0)}px`;n.style.top=a,s.style.top=a}else n.style.zIndex="1",s.style.zIndex="1",n.style.top=`${t}px`,s.style.top=`${t}px`;return e}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._renderedStickyLines.length&&this._renderedStickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(e){if(!e||e.children.length>0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=rk(t.characterMapping,e,0);return new $(t.lineNumber,i)}getLineNumberFromChildDomNode(e){return this._getRenderedStickyLineFromChildDomNode(e)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,Iv);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,uE)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,gE)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(i!==null)return i;e=e.parentElement}}}class _2{constructor(e,t,i,n,s,r,a){this.index=r,this.lineNumber=a;const l=t.coordinatesConverter.convertModelPositionToViewPosition(new $(a,1)).lineNumber,d=t.getViewLineRenderingData(l),c=e.getOption(76),h=e.getOption(117).verticalScrollbarSize;let g;try{g=dl.filter(d.inlineDecorations,l,d.minColumn,d.maxColumn)}catch{g=[]}const u=e.getLineHeightForPosition(new $(a,1)),f=t.getTextDirection(a),p=new jL(!0,!0,d.content,d.continuesWithWrappedLine,d.isBasicASCII,d.containsRTL,0,d.tokens,g,d.tabSize,d.startVisibleColumn,1,1,1,500,"none",!0,!0,null,f,h),_=new $L(2e3),v=zL(p,_);this.characterMapping=v.characterMapping;let S;eI?S=eI.createHTML(_.build()):S=_.build();const y=document.createElement("span");y.setAttribute(Iv,String(r)),y.setAttribute(uE,""),y.setAttribute("role","listitem"),y.tabIndex=0,y.className="sticky-line-content",y.classList.add(`stickyLine${a}`),y.style.lineHeight=`${u}px`,y.innerHTML=S;const x=document.createElement("span");x.setAttribute(Iv,String(r)),x.setAttribute(p2,""),x.className="sticky-line-number",x.style.lineHeight=`${u}px`;const b=i.contentLeft;x.style.width=`${b}px`;const w=document.createElement("span");c.renderType===1||c.renderType===3&&a%10===0?w.innerText=a.toString():c.renderType===2&&(w.innerText=Math.abs(a-e.getPosition().lineNumber).toString()),w.className="sticky-line-number-inner",w.style.width=`${i.lineNumbersWidth}px`,w.style.paddingLeft=`${i.lineNumbersLeft}px`,x.appendChild(w),this.foldingIcon=this._renderFoldingIconForLine(e,n,a,u,s),this.foldingIcon&&(x.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${i.lineNumbersWidth+i.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${u}px`),e.applyFontInfo(y),e.applyFontInfo(x),x.style.lineHeight=`${u}px`,y.style.lineHeight=`${u}px`,x.style.height=`${u}px`,y.style.height=`${u}px`,this.scrollWidth=y.scrollWidth,this.lineDomNode=y,this.lineNumberDomNode=x,this.height=u}_renderFoldingIconForLine(e,t,i,n,s){const r=e.getOption(126);if(!t||r==="never")return;const a=t.regions,l=a.findRange(i),d=a.getStartLineNumber(l);if(!(i===d))return;const h=a.isCollapsed(l),g=new v2(h,d,a.getEndLineNumber(l),n);return g.setVisible(s?!0:h||r==="always"),g.domNode.setAttribute(gE,""),g}}class v2{constructor(e,t,i,n){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=n,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${n}px`,this.domNode.style.lineHeight=`${n}px`,this.domNode.className=ce.asClassName(e?Lu:xu)}setVisible(e){this.domNode.style.cursor=e?"pointer":"default",this.domNode.style.opacity=e?"1":"0"}}class Td{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class eg{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class fE{constructor(e,t,i,n){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=n}}var up=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},_c=function(o,e){return function(t,i){e(t,i,o)}},Pd;(function(o){o.OUTLINE_MODEL="outlineModel",o.FOLDING_PROVIDER_MODEL="foldingProviderModel",o.INDENTATION_MODEL="indentationModel"})(Pd||(Pd={}));var Ps;(function(o){o[o.VALID=0]="VALID",o[o.INVALID=1]="INVALID",o[o.CANCELED=2]="CANCELED"})(Ps||(Ps={}));let xv=class extends A{constructor(e,t,i,n){switch(super(),this._editor=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new lo(300)),this._updateOperation=this._register(new W),this._editor.getOption(131).defaultModel){case Pd.OUTLINE_MODEL:this._modelProviders.push(new Lv(this._editor,n));case Pd.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new Ev(this._editor,t,n));case Pd.INDENTATION_MODEL:this._modelProviders.push(new Dv(this._editor,i));break}}dispose(){this._modelProviders.forEach(e=>e.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const t of this._modelProviders){const{statusPromise:i,modelPromise:n}=t.computeStickyModel(e);this._modelPromise=n;const s=await i;if(this._modelPromise!==n)return null;switch(s){case Ps.CANCELED:return this._updateOperation.clear(),null;case Ps.VALID:return t.stickyModel}}return null}).catch(t=>(we(t),null))}};xv=up([_c(2,ee),_c(3,G)],xv);class pE extends A{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,Ps.INVALID}computeStickyModel(e){if(e.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const t=dt(i=>this.createModelFromProvider(i));return{statusPromise:t.then(i=>this.isModelValid(i)?e.isCancellationRequested?Ps.CANCELED:(this._stickyModel=this.createStickyModel(e,i),Ps.VALID):this._invalid()).then(void 0,i=>(we(i),Ps.CANCELED)),modelPromise:t}}isModelValid(e){return!0}isProviderValid(){return!0}}let Lv=class extends pE{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Hn.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){const{stickyOutlineElement:i,providerID:n}=this._stickyModelFromOutlineModel(t,this._stickyModel?.outlineProviderId),s=this._editor.getModel();return new fE(s.uri,s.getVersionId(),i,n)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(Fs.first(e.children.values())instanceof $D){const a=Fs.find(e.children.values(),l=>l.id===t);if(a)i=a.children;else{let l="",d=-1,c;for(const[h,g]of e.children.entries()){const u=this._findSumOfRangesOfGroup(g);u>d&&(c=g,d=u,l=g.id)}t=l,i=c.children}}else i=e.children;const n=[],s=Array.from(i.values()).sort((a,l)=>{const d=new Td(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber),c=new Td(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber);return this._comparator(d,c)});for(const a of s)n.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new eg(void 0,n,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const s of e.children.values())if(s.symbol.selectionRange.startLineNumber!==s.symbol.range.endLineNumber)if(s.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(s,s.symbol.selectionRange.startLineNumber));else for(const r of s.children.values())i.push(this._stickyModelFromOutlineElement(r,s.symbol.selectionRange.startLineNumber));i.sort((s,r)=>this._comparator(s.range,r.range));const n=new Td(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new eg(n,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof q_?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};Lv=up([_c(1,G)],Lv);class mE extends pE{constructor(e){super(e),this._foldingLimitReporter=this._register(new VD(e))}createStickyModel(e,t){const i=this._fromFoldingRegions(t),n=this._editor.getModel();return new fE(n.uri,n.getVersionId(),i,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,i=[],n=new eg(void 0,[],void 0);for(let s=0;s<t;s++){const r=e.getParentIndex(s);let a;r!==-1?a=i[r]:a=n;const l=new eg(new Td(e.getStartLineNumber(s),e.getEndLineNumber(s)+1),[],a);a.children.push(l),i.push(l)}return n}}let Dv=class extends mE{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new fC(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};Dv=up([_c(1,st)],Dv);let Ev=class extends mE{constructor(e,t,i){super(e),this._languageFeaturesService=i,this.provider=this._register(new Ke),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(e,t)})),this._updateProvider(e,t)}_updateProvider(e,t){const i=uo.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());i.length!==0&&(this.provider.value=new pC(e.getModel(),i,t,this._foldingLimitReporter,void 0))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){return this.provider.value?.compute(e)??null}};Ev=up([_c(2,G)],Ev);var b2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},tI=function(o,e){return function(t,i){e(t,i,o)}};class S2{constructor(e,t,i,n){this.startLineNumber=e,this.endLineNumber=t,this.top=i,this.height=n}}let Rv=class extends A{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new Y),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new W),this._updateSoon=this._register(new et(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(n=>{n.hasChanged(131)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(131).enabled&&(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(ke(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){return this._model?.version}updateStickyModelProvider(){this._stickyModelProvider?.dispose(),this._stickyModelProvider=null,this._editor.hasModel()&&(this._stickyModelProvider=new xv(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){this._cts?.dispose(!0),this._cts=new Je,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}getCandidateStickyLinesIntersecting(e){if(!this._model?.element)return[];const t=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,t,0,0,-1),this.filterHiddenRanges(t)}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,n,s,r){const a=this._editor.getModel();if(!a||t.children.length===0)return;let l=r;const d=[];for(let g=0;g<t.children.length;g++){const u=t.children[g];u.range&&d.push(u.range.startLineNumber)}const c=this.updateIndex(km(d,e.startLineNumber,(g,u)=>g-u)),h=this.updateIndex(km(d,e.endLineNumber,(g,u)=>g-u));for(let g=c;g<=h;g++){const u=t.children[g];if(!u||!u.range)continue;const{startLineNumber:f,endLineNumber:p}=u.range;if(p>f+1&&e.startLineNumber<=p+1&&f-1<=e.endLineNumber&&f!==l&&a.isValidRange(new I(f,1,p,1))){l=f;const _=this._editor.getLineHeightForPosition(new $(f,1));i.push(new S2(f,p-1,s,_)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,n+1,s+_,f)}}}filterHiddenRanges(e){const t=this._editor._getViewModel()?.getHiddenAreas();return t?e.filter(i=>!t.some(n=>i.startLineNumber>=n.startLineNumber&&i.endLineNumber<=n.endLineNumber+1)):e}updateIndex(e){return e===-1?0:e<0?-e-2:e}};Rv=b2([tI(1,G),tI(2,st)],Rv);var C2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},fa=function(o,e){return function(t,i){e(t,i,o)}},Nv,Sr;let Fi=(Sr=class extends A{constructor(e,t,i,n,s,r,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=n,this._contextKeyService=a,this._sessionStore=new W,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 Y),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new m2(this._editor),this._stickyLineCandidateProvider=new Rv(this._editor,i,s),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=kd.Empty;const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight(c=>{c.changes.forEach(h=>{const g=h.lineNumber;this._widgetState.startLineNumbers.includes(g)&&this._renderStickyScroll(g)})})),this._register(this._editor.onDidChangeFont(c=>{c.changes.forEach(h=>{const g=h.lineNumber;this._widgetState.startLineNumbers.includes(g)&&this._renderStickyScroll(g)})})),this._register(this._editor.onDidChangeConfiguration(c=>{this._readConfigurationChange(c)})),this._register(re(l,Pe.CONTEXT_MENU,async c=>{this._onContextMenu(Ht(l),c)})),this._stickyScrollFocusedContextKey=C.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=C.stickyScrollVisible.bindTo(this._contextKeyService);const d=this._register(As(l));this._register(d.onDidBlur(c=>{this._positionRevealed===!1&&l.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(d.onDidFocus(c=>{this.focus()})),this._registerMouseListeners(),this._register(re(l,Pe.MOUSE_DOWN,c=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight(c=>{this._onDidChangeStickyScrollHeight.fire(c)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(e){return e.getContribution(Nv.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}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new W,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(I.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new W),t=this._register(new ep(this._editor,{extractLineNumberFromMouseEvent:s=>{const r=this._stickyScrollWidget.getEditorPositionFromNode(s.target.element);return r?r.lineNumber:0}})),i=s=>{if(!this._editor.hasModel()||s.target.type!==12||s.target.detail!==this._stickyScrollWidget.getId())return null;const r=s.target.element;if(!r||r.innerText!==r.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(r);return a?{range:new I(a.lineNumber,a.column,a.lineNumber,a.column+r.innerText.length),textElement:r}:null},n=this._stickyScrollWidget.getDomNode();this._register(co(n,Pe.CLICK,s=>{if(s.ctrlKey||s.altKey||s.metaKey||!s.leftButton)return;if(s.shiftKey){const d=this._stickyScrollWidget.getLineIndexFromChildDomNode(s.target);if(d===null)return;const c=new $(this._endLineNumbers[d],1);this._revealLineInCenterIfOutsideViewport(c);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(s.target)){const d=this._stickyScrollWidget.getLineNumberFromChildDomNode(s.target);this._toggleFoldingRegionForLine(d);return}if(!this._stickyScrollWidget.isInStickyLine(s.target))return;let l=this._stickyScrollWidget.getEditorPositionFromNode(s.target);if(!l){const d=this._stickyScrollWidget.getLineNumberFromChildDomNode(s.target);if(d===null)return;l=new $(d,1)}this._revealPosition(l)})),this._register(re(Th,Pe.MOUSE_MOVE,s=>{this._mouseTarget=s.target,this._onMouseMoveOrKeyDown(s)})),this._register(re(Th,Pe.KEY_DOWN,s=>{this._onMouseMoveOrKeyDown(s)})),this._register(re(Th,Pe.KEY_UP,()=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([s,r])=>{const a=i(s);if(!a||!s.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:l,textElement:d}=a;if(!l.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=l,e.clear();else if(d.style.textDecoration==="underline")return;const c=new Je;e.add(ke(()=>c.dispose(!0)));let h;Xc(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new $(l.startLineNumber,l.startColumn+1),!1,c.token).then((g=>{if(!c.token.isCancellationRequested)if(g.length!==0){this._candidateDefinitionsLength=g.length;const u=d;h!==u?(e.clear(),h=u,h.style.textDecoration="underline",e.add(ke(()=>{h.style.textDecoration="none"}))):h||(h=u,h.style.textDecoration="underline",e.add(ke(()=>{h.style.textDecoration="none"})))}else e.clear()}))})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(async s=>{if(s.target.type!==12||s.target.detail!==this._stickyScrollWidget.getId())return;const r=this._stickyScrollWidget.getEditorPositionFromNode(s.target.element);r&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:r.lineNumber,column:1})),this._instaService.invokeFunction(RD,s,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const i=new DS(e,t);this._contextMenuService.showContextMenu({menuId:q.StickyScrollContext,getAnchor:()=>i,menuActionOptions:{renderShortTitle:!0}})}_onMouseMoveOrKeyDown(e){if(!e.shiftKey||!this._mouseTarget||!Es(this._mouseTarget))return;const t=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);t===null||this._showEndForLine===t||(this._showEndForLine=t,this._renderStickyScroll())}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),i=t?.foldingIcon;if(!i)return;hC(this._foldingModel,1,[e]),i.isCollapsed=!i.isCollapsed;const n=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(75)*t.index+1;this._editor.setScrollTop(n),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(131);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(i=>{i.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(i=>this._onTokensChange(i))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(76).renderType===2?this._cursorPositionListener||(this._cursorPositionListener=this._editor.onDidChangeCursorPosition(i=>{this._positionLineNumber!==i.position.lineNumber&&(this._positionLineNumber=i.position.lineNumber,this._showEndForLine=void 0,this._renderStickyScroll(0))}),this._sessionStore.add(this._cursorPositionListener)):this._cursorPositionListener&&(this._sessionStore.delete(this._cursorPositionListener),this._cursorPositionListener.dispose(),this._cursorPositionListener=void 0)}_readConfigurationChange(e){(e.hasChanged(131)||e.hasChanged(81)||e.hasChanged(75)||e.hasChanged(126)||e.hasChanged(76))&&this._readConfiguration(),(e.hasChanged(76)||e.hasChanged(52)||e.hasChanged(126))&&this._renderStickyScroll(0)}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const n of e.ranges)if(i>=n.fromLineNumber&&i<=n.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(t*.25),this._renderStickyScroll(0)}async _renderStickyScroll(e){const t=this._editor.getModel();if(!t||t.isTooLargeForTokenization()){this._resetState();return}const i=this._updateAndGetMinRebuildFromLine(e),n=this._stickyLineCandidateProvider.getVersionId();if(n===void 0||n===t.getVersionId())if(!this._focused)await this._updateState(i);else if(this._focusedStickyElementIndex===-1)await this._updateState(i),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const r=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(i),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(r)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(e){if(e!==void 0){const t=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(e,t)}return this._minRebuildFromLine}async _updateState(e){this._minRebuildFromLine=void 0,this._foldingModel=await uo.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();const t=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(t),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=kd.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const e=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),t=this._editor.getScrollTop();let i=0;const n=[],s=[],r=this._editor.getVisibleRanges();if(r.length!==0){const a=new Td(r[0].startLineNumber,r[r.length-1].endLineNumber),l=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(a);for(const d of l){const c=d.startLineNumber,h=d.endLineNumber,g=d.top,u=g+d.height,f=this._editor.getTopForLineNumber(c)-t,p=this._editor.getBottomForLineNumber(h)-t;if(g>f&&g<=p&&(n.push(c),s.push(h+1),u>p&&(i=p-u)),n.length===e)break}}return this._endLineNumbers=s,new kd(n,s,i,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},Nv=Sr,Sr.ID="store.contrib.stickyScrollController",Sr);Fi=Nv=C2([fa(1,Hc),fa(2,G),fa(3,ee),fa(4,st),fa(5,Hi),fa(6,pe)],Fi);const Od=V("inlineEdit.originalBackground",Ye(Vo,.2),m(1266,"Background color for the original text in inline edits."),!0),_E=V("inlineEdit.modifiedBackground",Ye(La,.3),m(1267,"Background color for the modified text in inline edits."),!0);V("inlineEdit.originalChangedLineBackground",Ye(Vo,.8),m(1268,"Background color for the changed lines in the original text of inline edits."),!0);const w2=V("inlineEdit.originalChangedTextBackground",Ye(Vo,.8),m(1269,"Overlay color for the changed text in the original text of inline edits."),!0),y2=V("inlineEdit.modifiedChangedLineBackground",{light:Ye(sh,.7),dark:Ye(sh,.7),hcDark:sh,hcLight:sh},m(1270,"Background color for the changed lines in the modified text of inline edits."),!0),I2=V("inlineEdit.modifiedChangedTextBackground",Ye(La,.7),m(1271,"Overlay color for the changed text in the modified text of inline edits."),!0),vc=V("inlineEdit.gutterIndicator.primaryForeground",KL,m(1272,"Foreground color for the primary inline edit gutter indicator.")),Os=V("inlineEdit.gutterIndicator.primaryBorder",GL,m(1273,"Border color for the primary inline edit gutter indicator.")),th=V("inlineEdit.gutterIndicator.primaryBackground",{light:Ye(Os,.5),dark:Ye(Os,.4),hcDark:Ye(Os,.4),hcLight:Ye(Os,.5)},m(1274,"Background color for the primary inline edit gutter indicator.")),x2=V("inlineEdit.gutterIndicator.secondaryForeground",Fh,m(1275,"Foreground color for the secondary inline edit gutter indicator.")),L2=V("inlineEdit.gutterIndicator.secondaryBorder",PS,m(1276,"Border color for the secondary inline edit gutter indicator.")),LC=V("inlineEdit.gutterIndicator.secondaryBackground",xm,m(1277,"Background color for the secondary inline edit gutter indicator.")),D2=V("inlineEdit.gutterIndicator.successfulForeground",KL,m(1278,"Foreground color for the successful inline edit gutter indicator.")),vE=V("inlineEdit.gutterIndicator.successfulBorder",GL,m(1279,"Border color for the successful inline edit gutter indicator.")),DC=V("inlineEdit.gutterIndicator.successfulBackground",vE,m(1280,"Background color for the successful inline edit gutter indicator.")),E2=V("inlineEdit.gutterIndicator.background",{hcDark:Ye("tab.inactiveBackground",.5),hcLight:Ye("tab.inactiveBackground",.5),dark:Ye("tab.inactiveBackground",.5),light:"#5f5f5f18"},m(1281,"Background color for the inline edit gutter indicator.")),pd=V("inlineEdit.originalBorder",{light:Vo,dark:Vo,hcDark:Vo,hcLight:Vo},m(1282,"Border color for the original text in inline edits.")),md=V("inlineEdit.modifiedBorder",{light:zn(La,.6),dark:La,hcDark:La,hcLight:La},m(1283,"Border color for the modified text in inline edits.")),R2=V("inlineEdit.tabWillAcceptModifiedBorder",{light:zn(md,0),dark:zn(md,0),hcDark:zn(md,0),hcLight:zn(md,0)},m(1284,"Modified border color for the inline edits widget when tab will accept it.")),N2=V("inlineEdit.tabWillAcceptOriginalBorder",{light:zn(pd,0),dark:zn(pd,0),hcDark:zn(pd,0),hcLight:zn(pd,0)},m(1285,"Original border color for the inline edits widget over the original text when tab will accept it."));function bc(o){return o.map(e=>e===qe.Accept?R2:md)}function gp(o){return o.map(e=>e===qe.Accept?N2:pd)}function Et(o,e){let t;typeof o=="string"?t=Ha(o,e):t=o.map((n,s)=>Ha(n,e).read(s));const i=Ha(iu,e);return t.map((n,s)=>n.makeOpaque(i.read(s)))}function fo(o){let e;switch(o){case rt.TextEditor:e=iu;break;case rt.DiffEditor:e=iu;break;case rt.Notebook:e="notebook.cellEditorBackground";break;default:ES(o,"Not supported editor type yet")}return ye(e)}function Ha(o,e){return ak({owner:{observeColor:o},equalsFn:(t,i)=>t.equals(i),debugName:()=>`observeColor(${o})`},e.onDidColorThemeChange,()=>{const t=e.getColorTheme().getColor(o);if(!t)throw new at(`Missing color: ${o}`);return t})}const Ft=3;function jn(o,e,t){const i=o.model.read(t);if(!i)return 0;let n=0;for(let r=e.startLineNumber;r<e.endLineNumberExclusive;r++){const a=o.getWidthOfLine(r,t);n=Math.max(n,a)}const s=e.mapToLineArray(r=>i.getLineContent(r));return n<5&&s.some(r=>r.length>0)&&i.uri.scheme!=="file"&&console.log("unexpected width"),n}function k2(o,e,t){ou(o,o.editor.onDidChangeLineHeight).read(t);const i=o.model.read(t);if(!i)throw new at("Model is required");const n=[];for(let s=e.startLineNumber;s<e.endLineNumberExclusive;s++){let r=o.getWidthOfLine(s,t);if(r===-1){const l=i.getLineMaxColumn(s),d=o.editor.getOption(59).typicalHalfwidthCharacterWidth;r=l*d}const a=o.editor.getLineHeightForPosition(new $(s,1));n.push(new eh(r,a))}return n}function T2(o,e,t){return o.layoutInfo.read(t),o.value.read(t),o.model.read(t)?(o.scrollTop.read(t),o.editor.getOffsetForColumn(e.lineNumber,e.column)):0}function EC(o,e,t,i,n=void 0){const s=i.getModel();if(!s)return{prefixTrim:0,prefixLeftOffset:0};const r=o.map(g=>g.isSingleLine()?g.startColumn-1:0),a=e.mapToLineArray(g=>bw(s.getLineContent(g))),l=t.filter(g=>g!=="").map(g=>bw(g)),d=Math.min(...r,...a,...l);let c;if(s.getLineIndentColumn(e.startLineNumber)>=d+1)We(i).scrollTop.read(n),c=i.getOffsetForColumn(e.startLineNumber,d+1);else if(t.length>0)c=RC(t[0].slice(0,d),i,s);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:d,prefixLeftOffset:c}}function RC(o,e,t){const i=e.getOption(59).typicalHalfwidthCharacterWidth,n=t.getOptions().tabSize*i,s=o.split(" ").length-1;return(o.length-s)*i+s*n}function NC(o){const e=o.layoutInfoContentLeft,t=R({name:"editor.validOverlay.width"},n=>{const s=o.layoutInfoMinimap.read(n).minimapLeft!==0,r=Math.max(0,o.layoutInfoWidth.read(n)-e.read(n));if(s){const a=o.layoutInfoMinimap.read(n).minimapWidth+o.layoutInfoVerticalScrollbarWidth.read(n);return Math.max(0,r-a)}return r}),i=R({name:"editor.validOverlay.height"},n=>o.layoutInfoHeight.read(n)+o.contentHeight.read(n));return R({name:"editor.validOverlay"},n=>Se.fromLeftTopWidthHeight(e.read(n),0,t.read(n),i.read(n)))}function P2(o,e){const t=[];for(const i of o){const n=e.mapRange(i.modifiedRange);t.push(new ZL(i.originalRange,n))}return t}function zh(...o){return o.filter(e=>typeof e=="string").join(" ")}function O2(o,e){return new I(e.lineNumber,e.column+o.start,e.lineNumber,e.column+o.endExclusive)}function M2(o,e){let t=0;e:for(let i=0,n=o.length;i<n;i++)switch(o.charCodeAt(i)){case 9:t+=e;break;case 32:t++;break;default:break e}return t-t%e}function A2(o,e,t){let i=e-e%t,n=0;for(;n<o.length&&i!==0;n++)switch(o.charCodeAt(n)){case 9:i-=t;break;case 32:i--;break;default:throw new at("Unexpected character found while calculating indent length")}return n}function F2(o,e,t){const i=Qn(o),n=[],s=lk(e.mapToLineArray(r=>M2(i[r-1],t)),Ar);return e.forEach(r=>{const a=A2(i[r-1],s,t);n.push(new Ae(O2(new Be(0,a),new $(r,1)),""))}),new $n(n)}class kv{constructor(){this._data=""}moveTo(e){return this._data+=`M ${e.x} ${e.y} `,this}lineTo(e){return this._data+=`L ${e.x} ${e.y} `,this}build(){return this._data}}function En(o){const e=So(void 0,(t,i)=>o.read(t)||i);return pn({debugName:()=>`${o.debugName}.mapOutFalsy`},t=>{if(e.read(t),!!o.read(t))return e})}function Wt(o,e=Mf.ofCaller()){return{left:R({name:"editor.validOverlay.left"},t=>o(t)?.left,e),top:R({name:"editor.validOverlay.top"},t=>o(t)?.top,e),width:R({name:"editor.validOverlay.width"},t=>{const i=o(t);if(i)return i.width},e),height:R({name:"editor.validOverlay.height"},t=>{const i=o(t);if(i)return i.height},e)}}function W2(o,e){const t=o.getContainerDomNode(),i=Ne("domRect",t.getBoundingClientRect());return e.add(o.onDidLayoutChange(n=>{i.set(t.getBoundingClientRect(),void 0)})),i}var H2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},em=function(o,e){return function(t,i){e(t,i,o)}};let Tv=class{constructor(e,t,i,n,s,r){this._editorObs=e,this._data=t,this._close=i,this._contextKeyService=n,this._keybindingService=s,this._commandService=r,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map(a=>a.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){const e=Ne("active",void 0),t=p=>({title:p.title,icon:p.icon,keybinding:typeof p.commandId=="string"?this._getKeybinding(p.commandArgs?void 0:p.commandId):R(this,_=>typeof p.commandId=="string"?void 0:this._getKeybinding(p.commandArgs?void 0:p.commandId.read(_)).read(_)),isActive:e.map(_=>_===p.id),onHoverChange:_=>e.set(_?p.id:void 0,void 0),onAction:()=>{const _=typeof p.commandId=="string"?p.commandId:p.commandId.get();return this._close(!0,_),this._commandService.executeCommand(_,...p.commandArgs??[])}}),i=this._data.extensionCommands.map(p=>p.map((_,v)=>gs(t({id:_.command.id+"_"+v,title:_.command.title,icon:_.icon??U.symbolEvent,commandId:_.command.id,commandArgs:_.command.arguments})))),n=[];for(const p of i)p.length>0&&(n.push(tm()),n.push(...p));if(this._data.extensionCommandsOnly)return iI(n.slice(1));const s=V2(this._data.displayName),r=gs(t({id:"gotoAndAccept",title:m(1256,"Go To / Accept"),icon:U.check,commandId:ul})),a=gs(t({id:"reject",title:m(1257,"Reject"),icon:U.close,commandId:Q1})),l=this._data.alternativeAction?gs(t({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:Yf})):void 0,d=[],c=this._inlineEditsShowCollapsed.map(p=>gs(t(p?{id:"showExpanded",title:m(1258,"Show Expanded"),icon:U.expandAll,commandId:o_}:{id:"showCollapsed",title:m(1259,"Show Collapsed"),icon:U.collapseAll,commandId:o_}))),h=gs(t({id:"snooze",title:m(1260,"Snooze"),icon:U.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),g=gs(t({id:"settings",title:m(1261,"Settings"),icon:U.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),u=this._data.action?[this._data.action]:[],f=u.length>0?B2(u.map(p=>({id:p.id,label:p.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(p.id,...p.arguments??[]),class:void 0,tooltip:p.tooltip??p.title})),{hoverDelegate:dk}):void 0;return iI([s,r,l,a,c,d.length?tm():void 0,...d,h,g,...n,f?tm():void 0,f])}_getKeybinding(e){return e?xt(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(e)):_e(void 0)}};Tv=H2([em(3,pe),em(4,Te),em(5,it)],Tv);function iI(o){return j.div({class:"content",style:{margin:4,minWidth:180}},o)}function V2(o){return j.div({class:"header",style:{color:ye(OS),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[o])}function gs(o){return R({name:"inlineEdits.option"},e=>j.div({class:["monaco-menu-option",o.isActive?.map(t=>t&&"active")],onmouseenter:()=>o.onHoverChange?.(!0),onmouseleave:()=>o.onHoverChange?.(!1),onclick:o.onAction,onkeydown:t=>{t.key==="Enter"&&o.onAction?.()},tabIndex:0,style:{borderRadius:3}},[j.elem("span",{style:{fontSize:16,display:"flex"}},[ce.isThemeIcon(o.icon)?xn(o.icon):o.icon.map(t=>xn(t))]),j.elem("span",{},[o.title]),j.div({style:{marginLeft:"auto"},ref:t=>{const i=e.store.add(new Oc(t,Mc,{disableTitle:!0,...XL,keybindingLabelShadow:void 0,keybindingLabelForeground:ye(OS),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));e.store.add(le(n=>{i.set(o.keybinding.read(n))}))}})]))}function B2(o,e){return R({name:"inlineEdits.actionBar"},t=>j.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[j.div({ref:i=>{t.store.add(new oo(i,e)).push(o,{icon:!1,label:!0})}})]))}function tm(){return j.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:ye(ck),padding:"2px 0"}},j.div({style:{borderBottom:`1px solid ${ye(PS)}`}}))}var U2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Yl=function(o,e){return function(t,i){e(t,i,o)}};class bE{constructor(e,t,i,n,s){this.gutterMenuData=e,this.originalRange=t,this.model=i,this.altAction=n,this.customization=s}}class fp{static fromInlineSuggestion(e){const t=e.action?.kind==="edit"?e.action.alternativeAction:void 0,i=e.source.inlineSuggestions.commands??[];return new fp(e.gutterMenuLinkAction,e.source.provider.displayName??m(1262,"Inline Suggestion"),i.length>0?[i]:[],t,e.source.provider.modelInfo,e.source.provider.setModelId?.bind(e.source.provider))}constructor(e,t,i,n,s,r,a=!1){this.action=e,this.displayName=t,this.extensionCommands=i,this.alternativeAction=n,this.modelInfo=s,this.setModelId=r,this.extensionCommandsOnly=a}}class pp{static fromInlineCompletionModel(e){return new pp(()=>e.accept(),()=>e.jump())}constructor(e,t){this.accept=e,this.jump=t}}const im=16,nI=2;let tg=class extends A{constructor(e,t,i,n,s,r,a,l,d,c,h){super(),this._editorObs=e,this._data=t,this._tabAction=i,this._verticalOffset=n,this._isHoveringOverInlineEdit=s,this._focusIsInMenu=r,this._hoverService=a,this._instantiationService=l,this._accessibilityService=d,this._themeService=c,this._userInteractionService=h,this._onDidCloseWithCommand=this._register(new Y),this._modifierPressed=R(this,u=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),u).shiftKey),this._gutterIndicatorStyles=R(this,u=>{let f=this._tabAction.read(u);const p=this._data.read(u)?.altAction,_=this._modifierPressed.read(u);switch(p&&_&&(f=qe.Inactive),f){case qe.Inactive:return{background:Et(LC,this._themeService).read(u).toString(),foreground:Et(x2,this._themeService).read(u).toString(),border:Et(L2,this._themeService).read(u).toString()};case qe.Jump:return{background:Et(th,this._themeService).read(u).toString(),foreground:Et(vc,this._themeService).read(u).toString(),border:Et(Os,this._themeService).read(u).toString()};case qe.Accept:return{background:Et(DC,this._themeService).read(u).toString(),foreground:Et(D2,this._themeService).read(u).toString(),border:Et(vE,this._themeService).read(u).toString()};default:ES()}}),this._state=R(this,u=>{const f=this._originalRangeObs.read(u);if(f)return{range:f,lineOffsetRange:this._editorObs.observeLineOffsetRange(f,u.store)}}),this._lineNumberToRender=R(this,u=>{if(this._verticalOffset.read(u)!==0)return"";const f=this._data.read(u)?.originalRange.startLineNumber,p=this._editorObs.getOption(76).read(u);if(f===void 0||p.renderType===0)return"";if(p.renderType===3){const _=this._editorObs.cursorPosition.read(u);return f%10===0||_&&_.lineNumber===f?f.toString():""}if(p.renderType===2){const _=this._editorObs.cursorPosition.read(u);if(!_)return"";const v=Math.abs(f-_.lineNumber);return v===0?f.toString():v.toString()}return p.renderType===4?p.renderFn?p.renderFn(f):"":f.toString()}),this._availableWidthForIcon=R(this,u=>{const f=this._editorObs.editor.getModel(),p=this._editorObs.editor,_=this._editorObs.layoutInfo.read(u),v=_.decorationsLeft+_.decorationsWidth-_.glyphMarginLeft;if(!f||v<=0)return()=>0;if(_.lineNumbersLeft===0)return()=>v;const S=this._editorObs.getOption(76).read(u);if(S.renderType===2||S.renderType===0)return()=>v;const y=p.getOption(59).typicalHalfwidthCharacterWidth,x=_.lineNumbersLeft+_.lineNumbersWidth,w=(f.getLineCount()+1).toString().length,D=[];for(let N=1;N<=w;N++){const E=10**(N-1),M=p.getTopForLineNumber(E),O=N*y,H=Math.min(v,Math.max(0,x-O-_.glyphMarginLeft));D.push({firstLineNumberWithDigitCount:E,topOfLineNumber:M,usableWidthLeftOfLineNumber:H})}return N=>{for(let E=D.length-1;E>=0;E--)if(N>=D[E].topOfLineNumber)return D[E].usableWidthLeftOfLineNumber;throw new at("Could not find avilable width for icon")}}),this._layout=R(this,u=>{const f=this._state.read(u);if(!f)return;const p=this._editorObs.layoutInfo.read(u),_=this._editorObs.observeLineHeightForLine(f.range.map(Fe=>Fe.startLineNumber)).read(u),v=1,S=2,y=p.decorationsLeft+p.decorationsWidth-p.glyphMarginLeft-2*v,x=p.height-2*S,b=Se.fromLeftTopWidthHeight(v,S,y,x),w=b.withTop(this._stickyScrollHeight.read(u)),D=b.withTop(w.top+S),N=f.lineOffsetRange.read(u),E=Se.fromRanges(Be.fromTo(D.left,D.right),N),M=_,O=this._verticalOffset.read(u),H=E.withHeight(M).translateY(O),Z=w.containsRect(H),se=this._data.read(u)?.customization?.icon,ve=se?_e(se):this._tabAction.map(Fe=>Fe===qe.Accept?U.keyboardTab:U.arrowRight),oe=se?_e(se):R(this,Fe=>{if(this._isHoveredOverIconDebounced.read(Fe)||this._isHoveredOverInlineEditDebounced.read(Fe))return U.check;if(this._tabAction.read(Fe)===qe.Accept)return U.keyboardTab;const lt=this._editorObs.cursorLineNumber.read(Fe)??0,Bi=f.range.read(Fe).startLineNumber;return lt<=Bi?U.keyboardTabAbove:U.keyboardTabBelow}),be=22,Q=Fe=>{const lt=this._availableWidthForIcon.read(void 0)(Fe.bottom+this._editorObs.editor.getScrollTop())-v;return Math.max(Math.min(lt,be),im)};if(Z){const Fe=H;let lt;p.lineNumbersWidth===0?lt=Math.max(0,Math.min(Math.max(p.lineNumbersLeft-b.left,0),Fe.width-be)):lt=Math.max(p.lineNumbersLeft+p.lineNumbersWidth-b.left,0);const Bi=Fe.withWidth(lt),Vl=im+nI,Bl=Math.min(Fe.width-lt,be),Do=Fe.withWidth(Math.max(Bl,Vl)).translateX(lt),Sp=Bl>=Vl;return{gutterEditArea:E,icon:oe,iconDirection:"right",iconRect:Do,iconVisible:Sp,pillRect:Fe,lineNumberRect:Bi}}const ue=b.intersect(E);if(ue&&ue.height>=M){const Fe=H.moveToBeContainedIn(D).moveToBeContainedIn(ue),lt=Fe.withWidth(Q(Fe));return{gutterEditArea:E,icon:oe,iconDirection:"right",iconRect:lt,pillRect:lt,iconVisible:!0}}const ot=H.moveToBeContainedIn(b),me=ot.withWidth(Q(ot)),Si=me,bt=me.top<H.top?"top":"bottom";return{gutterEditArea:E,icon:ve,iconDirection:bt,iconRect:Si,pillRect:me,iconVisible:!0}}),this._iconRef=j.ref(),this.isVisible=this._layout.map(u=>!!u),this._hoverVisible=Ne(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=Ne(this,!1),this._isHoveredOverIconDebounced=Sw(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=j.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},En(this._layout).map(u=>u?[j.div({style:{position:"absolute",background:ye(E2),borderRadius:`${Ft}px`,...Wt(f=>u.read(f).gutterEditArea)}}),j.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{const p=this._layout.get()?.icon.get()===U.check,_=this._data.get();if(!_)throw new at("Gutter indicator data not available");this._editorObs.editor.focus(),p?_.model.accept():_.model.jump()},onmouseenter:()=>{this._showHover()},style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map(f=>f.background),"--vscodeIconForeground":this._gutterIndicatorStyles.map(f=>f.foreground),border:this._gutterIndicatorStyles.map(f=>`1px solid ${f.border}`),boxSizing:"border-box",borderRadius:`${Ft}px`,display:"flex",justifyContent:u.map(f=>f.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map(f=>f?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Wt(f=>u.read(f).pillRect)}},[j.div({className:"line-number",style:{lineHeight:u.map(f=>f.lineNumberRect?f.lineNumberRect.height:0),display:u.map(f=>f.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:u.map(f=>f.lineNumberRect?f.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map(f=>f.foreground)}},this._lineNumberToRender),j.div({style:{transform:u.map(f=>`rotate(${$2(f.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:u.map(f=>f.iconVisible?"1":"0"),marginRight:u.map(f=>f.pillRect.width-f.iconRect.width-(f.lineNumberRect?.width??0)),width:u.map(f=>f.iconRect.width),position:"relative",right:u.map(f=>f.iconDirection==="top"?"1px":"0"),color:this._data.map(f=>f?.customization?.icon?.color?ye(f.customization.icon.color.id):void 0)}},[u.map((f,p)=>z2(xn(f.icon.read(p)),{fontSize:j2(Math.min(f.iconRect.width-nI,im))}))])])]:[])),this._originalRangeObs=En(this._data.map(u=>u?.originalRange)),this._stickyScrollController=Fi.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?xt(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):_e(0),this._isHoveredOverInlineEditDebounced=Sw(this._isHoveringOverInlineEdit,100);const g=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:g.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:_e(0)})),this._register(this._editorObs.editor.onMouseMove(u=>{if(this._state.get()===void 0)return;const _=this._iconRef.element.getBoundingClientRect(),v=Se.fromLeftTopWidthHeight(_.left,_.top,_.width,_.height),S=new Pi(u.event.posx,u.event.posy);this._isHoveredOverIcon.set(v.containsPoint(S),void 0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(Aa(this._isHoveredOverInlineEditDebounced,u=>{u&&this.triggerAnimation()})),this._register(le(u=>{g.readEffect(u),g.element&&this._editorObs.editor.applyFontInfo(g.element)}))}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map(t=>t.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;const e=this._data.get();if(!e)throw new at("Gutter indicator data not available");const t=new W,i=t.add(this._instantiationService.createInstance(Tv,this._editorObs,e.gutterMenuData,(r,a)=>{r&&this._editorObs.editor.focus(),a&&this._onDidCloseWithCommand.fire(a),s?.dispose()}).toDisposableLiveElement()),n=this._userInteractionService.createFocusTracker(i.element,t);t.add(le(r=>{this._focusIsInMenu.set(n.read(r),void 0)})),t.add(ke(()=>this._focusIsInMenu.set(!1,void 0)));const s=this._hoverService.showInstantHover({target:this._iconRef.element,content:i.element});s?(this._hoverVisible.set(!0,void 0),t.add(this._editorObs.editor.onDidScrollChange(()=>s.dispose())),t.add(s.onDispose(()=>{this._hoverVisible.set(!1,void 0),t.dispose()}))):t.dispose()}};tg=U2([Yl(6,bi),Yl(7,ee),Yl(8,Co),Yl(9,yt),Yl(10,Rf)],tg);function $2(o){switch(o){case"top":return 90;case"bottom":return-90;case"right":return 0}}function z2(o,e){for(const t in e)o.style[t]=e[t];return o}function j2(o){return`${o}px`}var q2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},sI=function(o,e){return function(t,i){e(t,i,o)}},ei;(function(o){o.FirstTime="firstTime",o.SecondTime="secondTime",o.Active="active"})(ei||(ei={}));let Pv=class extends A{constructor(e,t,i,n,s){super(),this._model=e,this._indicator=t,this._collapsedView=i,this._storageService=n,this._configurationService=s,this._disposables=this._register(new Ke),this._setupDone=Ne({name:"setupDone"},!1),this._activeCompletionId=R(r=>{const a=this._model.read(r);if(!a||!this._setupDone.read(r))return;const l=this._indicator.read(r);if(!(!l||!l.isVisible.read(r)))return a.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===ei.Active)return;const e=new W;let t=!1,i=!1,n=0,s=0;return e.add(hk(this._activeCompletionId,async(r,a,l,d)=>{if(r===void 0)return;let c=this.getNewUserType();switch(c){case ei.FirstTime:{(n++>=5||t)&&(c=ei.SecondTime,this.setNewUserType(c));break}case ei.SecondTime:{s++>=3&&i&&(c=ei.Active,this.setNewUserType(c));break}}switch(c){case ei.FirstTime:{for(let h=0;h<3&&!d.isCancellationRequested;h++)await this._indicator.get()?.triggerAnimation(),await Ff(500);break}case ei.SecondTime:{this._indicator.get()?.triggerAnimation();break}}})),e.add(le(r=>{this._collapsedView.isVisible.read(r)&&this.getNewUserType()!==ei.Active&&this._collapsedView.triggerAnimation()})),e.add(le(r=>{const a=this._indicator.read(r);a&&r.store.add(Aa(a.isHoveredOverIcon,async l=>{l&&(t=!0)}))})),e.add(le(r=>{const a=this._model.read(r);a&&r.store.add(a.onDidAccept(()=>{i=!0}))})),e}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,ei.FirstTime)}setNewUserType(e){switch(e){case ei.FirstTime:throw new at("UserKind should not be set to first time");case ei.SecondTime:break;case ei.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",e,-1,0)}_initializeDebugSetting(){const e="editor.inlineSuggest.edits.resetNewUserExperience";return this._configurationService.getValue(e)&&this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._configurationService.onDidChangeConfiguration(i=>{i.affectsConfiguration(e)&&this._configurationService.getValue(e)&&(this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience())})}};Pv=q2([sI(3,Wi),sI(4,Ie)],Pv);const Yg=class Yg{constructor(e){this.replacements=e,uk(NL(e,(t,i)=>t.lineRange.endLineNumberExclusive<=i.lineRange.startLineNumber))}toString(){return this.replacements.map(e=>e.toString()).join(",")}getNewLineRanges(){const e=[];let t=0;for(const i of this.replacements)e.push(Qe.ofLength(i.lineRange.startLineNumber+t,i.newLines.length)),t+=i.newLines.length-i.lineRange.length;return e}};Yg.empty=new Yg([]);let Ov=Yg;class Md{static fromSingleTextEdit(e,t){const i=Qn(e.text);let n=e.range.startLineNumber;const s=t.getValueOfRange(I.fromPositions(new $(e.range.startLineNumber,1),e.range.getStartPosition()));i[0]=s+i[0];let r=e.range.endLineNumber+1;const a=t.getTransformer().getLineLength(e.range.endLineNumber)+1,l=t.getValueOfRange(I.fromPositions(e.range.getEndPosition(),new $(e.range.endLineNumber,a)));i[i.length-1]=i[i.length-1]+l;const d=e.range.startColumn===t.getTransformer().getLineLength(e.range.startLineNumber)+1,c=e.range.endColumn===1;return d&&i[0].length===s.length&&(n++,i.shift()),i.length>0&&n<r&&c&&i[i.length-1].length===l.length&&(r--,i.pop()),new Md(new Qe(n,r),i)}constructor(e,t){this.lineRange=e,this.newLines=t}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new Ov([this])}}class K2{get lineEdit(){return this.action?.kind==="jumpTo"?new Md(Qe.ofLength(this.action.position.lineNumber,0),[]):this.action?.kind==="edit"?Md.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText):new Md(new Qe(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(Qe.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(e,t,i,n,s,r,a){this.originalText=e,this.action=t,this.edit=i,this.cursorPosition=n,this.multiCursorPositions=s,this.commands=r,this.inlineCompletion=a}}class G2{constructor(e,t,i){this._model=e,this.inlineEdit=t,this.tabAction=i,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=R(this,n=>cE(this._model.editor,this.inlineEdit.inlineCompletion,n)),this.onDidAccept=this._model.onDidAccept}accept(e){this._model.accept(void 0,e)}handleInlineEditShownNextFrame(e,t){const i=this.inlineEdit.inlineCompletion,n=Date.now();i.addRef(),gk(()=>{this._model.handleInlineSuggestionShown(i,e,t,n),i.removeRef()})}}var Z2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},X2=function(o,e){return function(t,i){e(t,i,o)}};let Mv=class extends A{constructor(e,t,i){super(),this._editor=e,this._edit=t,this._accessibilityService=i,this.onDidClick=Ve.None,this._iconRef=j.ref(),this.isHovered=_e(!1),this._editorObs=We(this._editor);const s=this._edit.map(d=>d?.edit?.replacements[0]??null).map(d=>d?Vs(d,this._editor.getModel()).range.getStartPosition():null),r=this._editorObs.observePosition(s,this._store),a=R(d=>{const c=r.read(d);if(!c)return null;const h=this._editorObs.layoutInfoContentLeft.read(d),g=this._editorObs.scrollLeft.read(d);return new Pi(h+c.x-g,c.y)}),l=j.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(a)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:l,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:_e(0)})),this.isVisible=this._edit.map((d,c)=>!!d&&a.read(c)!==null)}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:.2,transform:"translateY(1px)"},{offset:.36,transform:"translateY(-1px)"},{offset:.52,transform:"translateY(1px)"},{offset:.68,transform:"translateY(-1px)"},{offset:.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2e3}).finished}getCollapsedIndicator(e){const t=this._editorObs.layoutInfoContentLeft,i=e.map((s,r)=>s?s.deltaX(-t.read(r)):null),n=this.createIconPath(i);return j.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Wt(s=>NC(this._editorObs).read(s)),overflow:"hidden",pointerEvents:"none"}},[j.svgElem("path",{class:"collapsedViewPath",d:n,fill:ye(Os)})])}createIconPath(e){return e.map(s=>{if(!s)return new kv().build();const r=s.deltaX(-6/2).deltaY(-1),a=r.deltaX(6),l=r.deltaY(1),d=a.deltaY(1),c=l.deltaX(6/2).deltaY(3);return new kv().moveTo(r).lineTo(a).lineTo(d).lineTo(c).lineTo(l).lineTo(r).build()})}};Mv=Z2([X2(2,Co)],Mv);var Y2=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},oI=function(o,e){return function(t,i){e(t,i,o)}};const Lh=14,nm=0,Pn=4,Dh=4,rI=2;let Av=class extends A{constructor(e,t,i,n,s,r){super(),this._editor=e,this._languageService=r,this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._isHovered=Ne(this,!1),this.isHovered=this._isHovered,this._viewRef=j.ref(),this._editorObs=We(this._editor);const a=i.map((h,g)=>{let u;switch(h){case qe.Inactive:u=LC;break;case qe.Jump:u=th;break;case qe.Accept:u=DC;break}return{border:Et(u,s).read(g).toString(),background:fo(n.read(g))}}),l=t.map(h=>h?this.getState(h):void 0),d=l.map(h=>h?this.getRendering(h,a):void 0);this.minEditorScrollHeight=R(this,h=>{const g=l.read(h);return g?g.rect.read(h).bottom+this._editor.getScrollTop():0});const c=j.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[d]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:c.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:So(this,(h,g)=>{const u=l.read(h);if(!u)return g??0;const f=u.rect.map(p=>p.right).read(h)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(h)+Pn-this._editorObs.layoutInfoContentLeft.read(h);return Math.max(g??0,f)}).recomputeInitiallyAndOnChange(this._store)})),this._register(le(h=>{if(!d.read(h)){this._isHovered.set(!1,void 0);return}this._isHovered.set(c.isHovered.read(h),void 0)}))}fitsInsideViewport(e,t,i){const n=this._editorObs.layoutInfoWidth.read(i),s=this._editorObs.layoutInfoContentLeft.read(i),r=this._editor.getLayoutInfo().verticalScrollbarWidth,a=this._editorObs.layoutInfoMinimap.read(i).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(i).minimapWidth:0,l=jn(this._editorObs,e,void 0),d=RC(t,this._editor,this._editor.getModel()),c=Pn+Lh;return l+d+c<n-s-r-a}getState(e){const t=R(this,a=>{const l=e.range.startLineNumber,d=e.range.endLineNumber,c=e.range.startColumn,h=e.range.endColumn,g=this._editor.getModel()?.getLineCount()??0,u=jn(this._editorObs,new Qe(l,l+1),a),f=l+1<=g?jn(this._editorObs,new Qe(l+1,l+2),a):void 0,p=l-1>=1?jn(this._editorObs,new Qe(l-1,l),a):void 0,_=this._editor.getOffsetForColumn(l,c),v=this._editor.getOffsetForColumn(d,h);return{lineWidth:u,lineWidthBelow:f,lineWidthAbove:p,startContentLeftOffset:_,endContentLeftOffset:v}}),i=e.range.startLineNumber,n=e.range.endLineNumber,s=this.fitsInsideViewport(new Qe(i,n+1),e.content,void 0);return{rect:R(this,a=>{const l=this._editorObs.getOption(59).read(a).typicalHalfwidthCharacterWidth,{lineWidth:d,lineWidthBelow:c,lineWidthAbove:h,startContentLeftOffset:g,endContentLeftOffset:u}=t.read(a),f=this._editorObs.layoutInfoContentLeft.read(a),p=this._editorObs.observeLineHeightForLine(i).recomputeInitiallyAndOnChange(a.store).read(a),_=this._editorObs.scrollTop.read(a),v=this._editorObs.scrollLeft.read(a);let S;i===n&&u+5*l>=d&&s?S="end":c!==void 0&&c+Lh-Dh-Pn<g?S="below":h!==void 0&&h+Lh-Dh-Pn<g?S="above":S="end";let y,x,b=0,w=0;switch(S){case"end":{y=this._editorObs.editor.getTopForLineNumber(i),x=d,b=Pn+Lh;break}case"below":{y=this._editorObs.editor.getTopForLineNumber(i+1),x=g,b=Pn+Dh,w=nm+rI;break}case"above":{y=this._editorObs.editor.getTopForLineNumber(i-1),x=g,b=Pn+Dh,w=-nm+rI;break}}return Se.fromLeftTopWidthHeight(f+x-v,y-_,l*e.content.length,p).withMargin(nm,Pn).translateX(b).translateY(w)}),label:e.content,kind:e.style}}getRendering(e,t){const i=document.createElement("div"),n=this._editor.getModel().tokenization.tokenizeLinesAt(1,[e.label])?.[0];let s;n&&e.kind===fk.Code?s=Wf.fromLineTokens(n).toLineTokens(e.label,this._languageService.languageIdCodec):s=kl.createEmpty(e.label,this._languageService.languageIdCodec);const r=Hf(new Bf([s]),Vf.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],i,!0);i.style.width=`${r.minWidthInPx}px`;const a=e.rect.map(l=>l.withMargin(0,Pn));return j.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Wt(l=>a.read(l)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:t.map(l=>`1px solid ${l.border}`),borderRadius:`${Ft}px`,backgroundColor:t.map(l=>l.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:l=>{l.preventDefault()},onclick:l=>{this._onDidClick.fire(yo.create(l))}},[i])}};Av=Y2([oI(4,yt),oI(5,ls)],Av);const J2=0,Q2=0,sm=1,eV=1,tV=3,om=Ft;class iV extends A{constructor(e,t,i,n){super(),this._editor=e,this._edit=t,this._uiState=i,this._tabAction=n,this.onDidClick=Ve.None,this._display=R(this,a=>this._uiState.read(a)?"block":"none"),this._editorMaxContentWidthInRange=R(this,a=>{const l=this._originalDisplayRange.read(a);return l?(this._editorObs.versionId.read(a),So(this,(d,c)=>{const h=jn(this._editorObs,l,d);return Math.max(h,c??0)})):_e(0)}).map((a,l)=>a.read(l)),this._maxPrefixTrim=R(this,a=>{const l=this._uiState.read(a);return l?EC(l.deletions,l.originalRange,[],this._editor):{prefixTrim:0,prefixLeftOffset:0}}),this._editorLayoutInfo=R(this,a=>{const l=this._edit.read(a);if(!l||!this._uiState.read(a))return null;const c=this._editorObs.layoutInfo.read(a),h=this._editorObs.scrollLeft.read(a),g=this._editorObs.getOption(59).map(y=>y.typicalHalfwidthCharacterWidth).read(a),u=c.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(a),g)-h,f=l.originalLineRange,p=this._originalVerticalStartPosition.read(a)??this._editor.getTopForLineNumber(f.startLineNumber)-this._editorObs.scrollTop.read(a),_=this._originalVerticalEndPosition.read(a)??this._editor.getTopForLineNumber(f.endLineNumberExclusive)-this._editorObs.scrollTop.read(a),v=c.contentLeft+this._maxPrefixTrim.read(a).prefixLeftOffset-h;return u<=v?null:{codeRect:Se.fromLeftTopRightBottom(v,p,u,_).withMargin(Q2,J2),contentLeft:c.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=j.div({style:{pointerEvents:"none"}},R(this,a=>{const l=En(this._editorLayoutInfo).read(a);if(!l)return;const d=l.map(f=>Se.fromLeftTopRightBottom(f.contentLeft-om-sm,f.codeRect.top,f.contentLeft,f.codeRect.bottom)),c=R(this,f=>{const p=l.read(f).codeRect,_=d.read(f);return p.intersectHorizontal(new Be(_.left,Number.MAX_SAFE_INTEGER))}),h=this._uiState.map(f=>f?.editorType===rt.DiffEditor?tV:eV).read(a),g=c.map(f=>f.withMargin(h,h)),u=fo(this._uiState.map(f=>f?.editorType??rt.TextEditor).read(a));return[j.div({class:"originalSeparatorDeletion",style:{...g.read(a).toStyles(),borderRadius:`${om}px`,border:`${sm+h}px solid ${u}`,boxSizing:"border-box"}}),j.div({class:"originalOverlayDeletion",style:{...c.read(a).toStyles(),borderRadius:`${om}px`,border:gp(this._tabAction).map(f=>`${sm}px solid ${ye(f)}`),boxSizing:"border-box",backgroundColor:ye(Od)}}),j.div({class:"originalOverlayHiderDeletion",style:{...d.read(a).toStyles(),backgroundColor:u}})]})).keepUpdated(this._store),this._nonOverflowView=j.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=_e(!1),this._editorObs=We(this._editor);const s=R(this,a=>{const l=this._edit.read(a);return l?new $(l.originalLineRange.startLineNumber,1):null}),r=R(this,a=>{const l=this._edit.read(a);return l?new $(l.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map(a=>a?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(s,this._store).map(a=>a?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(r,this._store).map(a=>a?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:R(this,a=>{const l=this._editorLayoutInfo.read(a);return l===null?0:l.codeRect.width})}))}}var nV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},aI=function(o,e){return function(t,i){e(t,i,o)}};const Jl=1,sV=1,oV=3,rm=Ft;let Fv=class extends A{constructor(e,t,i,n,s){super(),this._editor=e,this._input=t,this._tabAction=i,this._languageService=s,this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._state=R(this,r=>{const a=this._input.read(r);if(!a)return;const l=this._editor.getModel(),d=l.getEOL();if(a.startColumn===1&&a.lineNumber>1&&l.getLineLength(a.lineNumber)!==0&&a.text.endsWith(d)&&!a.text.startsWith(d)){const c=l.getLineLength(a.lineNumber-1)+1;return{lineNumber:a.lineNumber-1,column:c,text:d+a.text.slice(0,-d.length)}}return{lineNumber:a.lineNumber,column:a.startColumn,text:a.text}}),this._trimVertically=R(this,r=>{const a=this._state.read(r),l=a?.text;if(!l||l.trim()==="")return{topOffset:0,bottomOffset:0,linesTop:0,linesBottom:0};const d=this._editor.getLineHeightForPosition(new $(a.lineNumber,1)),c=this._editor.getModel().getEOL();let h=0,g=0,u=0;for(;u<l.length&&l.startsWith(c,u);u+=c.length)h+=1;for(let f=l.length;f>u&&l.endsWith(c,f);f-=c.length)g+=1;return{topOffset:h*d,bottomOffset:g*d,linesTop:h,linesBottom:g}}),this._maxPrefixTrim=R(this,r=>{const a=this._state.read(r);if(!a)return{prefixLeftOffset:0,prefixTrim:0};const l=this._editor.getModel(),d=l.getEOL(),c=this._trimVertically.read(r),h=a.text.split(d),g=h.slice(c.linesTop,h.length-c.linesBottom);c.linesTop===0&&(g[0]=l.getLineContent(a.lineNumber)+g[0]);const u=new Qe(a.lineNumber,a.lineNumber+(c.linesTop>0?0:1));return EC([],u,g,this._editor)}),this._ghostText=R(r=>{const a=this._state.read(r),l=this._maxPrefixTrim.read(r);if(!a)return;const c=this._editor.getModel().getEOL(),g=a.text.split(c).map((u,f)=>new YL(new I(f+1,f===0?1:l.prefixTrim+1,f+1,u.length+1),"modified-background",0));return new uc(a.lineNumber,[new zu(a.column,a.text,!1,g)])}),this._display=R(this,r=>this._state.read(r)?"block":"none"),this._editorMaxContentWidthInRange=R(this,r=>{const a=this._state.read(r);if(!a)return 0;this._editorObs.versionId.read(r);const l=this._editor.getModel(),d=l.getEOL(),c=a.text.startsWith(d)?"":l.getValueInRange(new I(a.lineNumber,1,a.lineNumber,a.column)),h=l.getValueInRange(new I(a.lineNumber,a.column,a.lineNumber,l.getLineLength(a.lineNumber)+1)),u=(c+a.text+h).split(d),f=Vf.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),p=u.map(_=>{const v=l.tokenization.tokenizeLinesAt(a.lineNumber,[_])?.[0];let S;return v?S=Wf.fromLineTokens(v).toLineTokens(_,this._languageService.languageIdCodec):S=kl.createEmpty(_,this._languageService.languageIdCodec),Hf(new Bf([S]),f,[],B("div"),!0).minWidthInPx});return Math.max(...p)}),this.startLineOffset=this._trimVertically.map(r=>r.topOffset),this.originalLines=this._state.map(r=>r?new Qe(r.lineNumber,Math.min(r.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=R(this,r=>{this._ghostText.read(r);const a=this._state.read(r);if(!a)return null;this._editorObs.observePosition(Ne(this,new $(a.lineNumber,a.column)),r.store).read(r);const l=this._editorObs.layoutInfo.read(r),d=this._editorObs.scrollLeft.read(r),c=this._editorObs.layoutInfoVerticalScrollbarWidth.read(r),h=l.contentLeft+this._editorMaxContentWidthInRange.read(r)-d,g=this._maxPrefixTrim.read(r).prefixLeftOffset??0,u=l.contentLeft+g-d;if(h<=u)return null;const{topOffset:f,bottomOffset:p}=this._trimVertically.read(r),_=this._editorObs.scrollTop.read(r),v=this._ghostTextView.height.read(r)-f-p,S=this._editor.getTopForLineNumber(a.lineNumber)-_+f,y=S+v,x=new Se(u,S,h,y);return{overlay:x,startsAtContentLeft:g===0,contentLeft:l.contentLeft,minContentWidthRequired:g+x.width+c}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=j.div({style:{pointerEvents:"none"}},R(this,r=>{const a=En(this._overlayLayout).read(r);if(!a)return;const l=a.map(u=>Se.fromLeftTopRightBottom(u.contentLeft-rm-Jl,u.overlay.top,u.contentLeft,u.overlay.bottom)).read(r),d=this._input.map(u=>u?.editorType===rt.DiffEditor?oV:sV).read(r),c=a.map(u=>u.overlay.withMargin(0,Jl,0,u.startsAtContentLeft?0:Jl).intersectHorizontal(new Be(l.left,Number.MAX_SAFE_INTEGER))),h=c.map(u=>u.withMargin(d,d)),g=fo(this._input.read(void 0)?.editorType??rt.TextEditor);return[j.div({class:"originalUnderlayInsertion",style:{...h.read(r).toStyles(),borderRadius:rm,border:`${Jl+d}px solid ${g}`,boxSizing:"border-box"}}),j.div({class:"originalOverlayInsertion",style:{...c.read(r).toStyles(),borderRadius:rm,border:bc(this._tabAction).map(u=>`${Jl}px solid ${ye(u)}`),boxSizing:"border-box",backgroundColor:ye(_E)}}),j.div({class:"originalOverlayHiderInsertion",style:{...l.toStyles(),backgroundColor:g}})]})).keepUpdated(this._store),this._view=j.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=We(this._editor),this._ghostTextView=this._register(n.createInstance(mc,this._editor,R(r=>{const a=this._ghostText.read(r);if(a)return{ghostText:a,handleInlineCompletionShown:l=>{},warning:void 0}}),{extraClasses:["inline-edit"],isClickable:!0,shouldKeepCursorStable:!0})),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick(r=>{this._onDidClick.fire(new yo(r))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:R(this,r=>{const a=this._overlayLayout.read(r);return a===null?0:a.minContentWidthRequired})}))}};Fv=nV([aI(3,ee),aI(4,ls)],Fv);var rV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},lI=function(o,e){return function(t,i){e(t,i,o)}};let Wv=class extends A{constructor(e,t,i,n,s,r){super(),this._editor=e,this._edit=t,this._editorType=i,this._tabAction=n,this._languageService=s,this._themeService=r,this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((a,l)=>a?EC(a.replacements.flatMap(d=>[d.originalRange,d.modifiedRange]),a.originalRange,a.modifiedLines,this._editor.editor,l):void 0),this._modifiedLineElements=R(this,a=>{const l=[];let d=0;const c=this._maxPrefixTrim.read(a),h=this._edit.read(a);if(!h||!c)return;const g=c.prefixTrim,u=aV(h.replacements.map(_=>_.modifiedRange)).map(_=>new I(_.startLineNumber,_.startColumn-g,_.endLineNumber,_.endColumn-g)),f=this._editor.model.get(),p=h.modifiedRange.startLineNumber;for(let _=0;_<h.modifiedRange.length;_++){const v=document.createElement("div"),S=p+_,y=h.modifiedLines[_].slice(g),x=f.tokenization.tokenizeLinesAt(S,[y])?.[0];let b;x?b=Wf.fromLineTokens(x).toLineTokens(y,this._languageService.languageIdCodec):b=kl.createEmpty(y,this._languageService.languageIdCodec);const w=[];for(const N of u.filter(E=>E.startLineNumber===S)){const E=Math.min(N.endColumn,y.length+1);w.push(new YL(new I(1,N.startColumn,1,E),"inlineCompletions-modified-bubble",0))}const D=Hf(new Bf([b]),Vf.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),w,v,!0);this._editor.getOption(59).read(a),d=Math.max(d,D.minWidthInPx),l.push(v)}return{lines:l,requiredWidth:d}}),this._layout=R(this,a=>{const l=this._modifiedLineElements.read(a),d=this._maxPrefixTrim.read(a),c=this._edit.read(a);if(!l||!d||!c)return;const{prefixLeftOffset:h}=d,{requiredWidth:g}=l,u=this._editor.observeLineHeightsForLineRange(c.originalRange).read(a),f=(()=>{const oe=u.slice(0,c.modifiedRange.length);for(;oe.length<c.modifiedRange.length;)oe.push(u[u.length-1]);return oe})(),p=this._editor.layoutInfoContentLeft.read(a),_=this._editor.layoutInfoVerticalScrollbarWidth.read(a),v=this._editor.scrollLeft.read(a),S=this._editor.scrollTop.read(a),y=p-v,x=this._editor.editor.getModel(),b=c.originalRange.mapToLineArray(oe=>this._editor.editor.getOffsetForColumn(oe,x.getLineMaxColumn(oe))-h),w=Math.max(...b,g),D=c.originalRange.startLineNumber,N=c.originalRange.endLineNumberExclusive-1,E=this._editor.editor.getTopForLineNumber(D)-S,M=this._editor.editor.getBottomForLineNumber(N)-S,O=Se.fromLeftTopWidthHeight(y+h,E,w,M-E),H=Se.fromLeftTopWidthHeight(O.left,O.bottom,O.width,f.reduce((oe,be)=>oe+be,0)),Z=Se.hull([O,H]),se=Z.intersectVertical(new Be(O.bottom,Number.MAX_SAFE_INTEGER)),ve=new Se(se.left,se.top,se.right,se.bottom);return{originalLinesOverlay:O,modifiedLinesOverlay:H,background:Z,lowerBackground:se,lowerText:ve,modifiedLineHeights:f,minContentWidthRequired:h+w+_}}),this._viewZoneInfo=R(a=>{if(!this._editor.getOption(71).map(u=>u.edits.allowCodeShifting==="always").read(a))return;const d=this._layout.read(a),c=this._edit.read(a);if(!d||!c)return;const h=d.lowerBackground.height,g=c.originalRange.endLineNumberExclusive;return{height:h,lineNumber:g}}),this.minEditorScrollHeight=R(this,a=>{const l=En(this._layout).read(a);return!l||this._viewZoneInfo.read(a)!==void 0?0:l.read(a).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=j.div({class:"line-replacement"},[R(this,a=>{const l=En(this._layout).read(a),d=this._modifiedLineElements.read(a);if(!l||!d)return[];const c=l.read(a),h=this._editor.layoutInfoContentLeft.read(a),g=this._editorType.read(a)===rt.DiffEditor?3:1;d.lines.forEach((_,v)=>{_.style.width=`${c.lowerText.width}px`,_.style.height=`${c.modifiedLineHeights[v]}px`,_.style.position="relative"});const u=bc(this._tabAction).read(a),f=gp(this._tabAction).read(a),p=fo(this._editorType.read(a));return[j.div({style:{position:"absolute",...Wt(_=>NC(this._editor).read(_)),overflow:"hidden",pointerEvents:"none"}},[j.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Wt(_=>l.read(_).background.translateX(-h).withMargin(g)),borderRadius:`${Ft}px`,border:`${g+1}px solid ${p}`,boxSizing:"border-box",pointerEvents:"none"}}),j.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Wt(_=>l.read(_).background.translateX(-h)),borderRadius:`${Ft}px`,border:Et(f,this._themeService).map(_=>`1px solid ${_.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:ye(Od)}}),j.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Wt(_=>l.read(_).lowerBackground.translateX(-h)),borderRadius:`0 0 ${Ft}px ${Ft}px`,background:p,boxShadow:`${ye(_k)} 0 6px 6px -6px`,border:`1px solid ${ye(u)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:_=>{_.preventDefault()},onclick:_=>this._onDidClick.fire(yo.create(_))},[j.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:ye(y2)}})]),j.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Wt(_=>l.read(_).lowerText.translateX(-h)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${Ft}px ${Ft}px`,overflow:"hidden"}},[...d.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered(a=>this._isMouseOverWidget(a),this._store),this._previousViewZoneInfo=void 0,this._register(ke(()=>this._editor.editor.changeViewZones(a=>this.removePreviousViewZone(a)))),this._register(pk(this._viewZoneInfo,({lastValue:a,newValue:l})=>{a===l||a?.height===l?.height&&a?.lineNumber===l?.lineNumber||this._editor.editor.changeViewZones(d=>{this.removePreviousViewZone(d),l&&this.addViewZone(l,d)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:R(this,a=>this._layout.read(a)?.minContentWidthRequired??0),position:_e({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(e){const t=this._layout.get();return!t||!(e.event instanceof mk)?!1:t.lowerBackground.containsPoint(new Pi(e.event.relativePos.x,e.event.relativePos.y))}removePreviousViewZone(e){if(!this._previousViewZoneInfo)return;e.removeZone(this._previousViewZoneInfo.id);const t=this._editor.cursorLineNumber.get();t!==null&&t>=this._previousViewZoneInfo.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height),this._previousViewZoneInfo=void 0}addViewZone(e,t){const i=t.addZone({afterLineNumber:e.lineNumber-1,heightInPx:e.height,domNode:B("div")});this._previousViewZoneInfo={height:e.height,lineNumber:e.lineNumber,id:i};const n=this._editor.cursorLineNumber.get();n!==null&&n>=e.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()+e.height)}};Wv=rV([lI(4,ls),lI(5,yt)],Wv);function aV(o){const e=[];for(;o.length;){let t=o.shift();t.startLineNumber!==t.endLineNumber&&(o.push(new I(t.startLineNumber+1,1,t.endLineNumber,t.endColumn)),t=new I(t.startLineNumber,t.startColumn,t.startLineNumber,Number.MAX_SAFE_INTEGER)),e.push(t)}return e}function lV(o,e){const t={};for(const[r,a]of Object.entries(e))Array.isArray(a)?t[r]={min:0,rules:a}:t[r]={min:a.min??0,rules:a.rules??[{max:a.max,priority:a.priority,share:a.share}]};const i={};let n=0;for(const[r,a]of Object.entries(t))i[r]=a.min,n+=a.min;if(n>o)return null;let s=o-n;for(;s>0;){const r=[];for(const[g,u]of Object.entries(t))for(let f=0;f<u.rules.length;f++){const p=u.rules[f],_=i[g],v=p.max??1/0;_<v&&r.push({partKey:g,ruleIndex:f,rule:p,priority:p.priority??0,share:p.share??1})}if(r.length===0)break;const a=Math.max(...r.map(g=>g.priority)),l=r.filter(g=>g.priority===a),d=l.reduce((g,u)=>g+u.share,0);let c=0;const h=[];for(const g of l){const u=g.rule,f=i[g.partKey],_=(u.max??1/0)-f,v=s*g.share/d,S=Math.min(v,_);h.push({partKey:g.partKey,ruleIndex:g.ruleIndex,amount:S}),c+=S}if(c===0)break;for(const g of h)i[g.partKey]+=g.amount;if(s-=c,s<1e-4)break}return i}var dV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},am=function(o,e){return function(t,i){e(t,i,o)}};let Hv=class extends A{constructor(e,t,i,n,s,r){super(),this._editor=e,this._data=i,this._themeService=n,this._keybindingService=s,this._contextKeyService=r,this._styles=R(this,l=>({background:Et(th,this._themeService).read(l).toString(),foreground:Et(vc,this._themeService).read(l).toString(),border:Et(Os,this._themeService).read(l).toString()})),this._pos=R(this,l=>this._editor.observePosition(R(d=>this._data.read(d)?.jumpToPosition||null),l.store)).flatten(),this._layout=R(this,l=>{const d=this._data.read(l);if(!d)return;const c=d.jumpToPosition,h=this._editor.observeLineHeightForLine(_e(c.lineNumber)).read(l),g=this._editor.scrollLeft.read(l),u=this._pos.read(l);if(!u)return;const f=this._editor.layoutInfo.read(l);return{widgetRect:Se.fromLeftTopWidthHeight(u.x+f.contentLeft+2-g,u.y,100,h)}}),this._blink=cV([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=j.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map(l=>l?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Wt(l=>this._layout.read(l)?.widgetRect)}},R(l=>this._data.read(l)===void 0?[]:j.div({style:{display:"flex",alignItems:"center",gap:"4px",padding:"0 4px",height:"100%",backgroundColor:this._styles.map(d=>d.background),"--vscodeIconForeground":this._styles.map(d=>d.foreground),border:this._styles.map(d=>`1px solid ${d.border}`),borderRadius:"3px",boxSizing:"border-box",fontSize:"11px",color:this._styles.map(d=>d.foreground)}},[this._style==="cursor"?j.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map(d=>d?"0":"1")}}):[R(()=>j.elem("div",{},hV(this._keybinding))),j.elem("div",{style:{lineHeight:this._layout.map(d=>d?.widgetRect.height),marginTop:"-2px"}},["to jump"])]]))),this._style=t.style,this._keybinding=this._getKeybinding(ul);const a=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:a.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:_e(0)})),this._register(this._editor.setDecorations(R(l=>{const d=this._data.read(l);return d?[{range:I.fromPositions(d.jumpToPosition,d.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]:[]})))}_getKeybinding(e,t=Mf.ofCaller()){return e?xt(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(e),t):_e(void 0)}};Hv=dV([am(3,yt),am(4,Te),am(5,pe)],Hv);function cV(o,e=Mf.ofCaller()){let t=0;return xt(void 0,i=>{t=0;const n=new et(()=>{t=(t+1)%o.length,i(null),n.schedule(o[t].durationMs)},0);return n.schedule(0),n},()=>o[t].value,e)}function hV(o){return R(e=>j.div({style:{},ref:t=>{const i=e.store.add(new Oc(t,Mc,{disableTitle:!0,...XL,keybindingLabelShadow:void 0,keybindingLabelForeground:ye(vc),keybindingLabelBackground:"transparent",keybindingLabelBorder:ye(vc),keybindingLabelBottomBorder:void 0}));e.store.add(le(n=>{i.set(o.read(n))}))}}))}var uV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},gV=function(o,e){return function(t,i){e(t,i,o)}};let Vv=class extends A{constructor(e,t,i,n,s){super(),this._previewTextModel=e,this._properties=t,this._parentEditor=i,this._tabAction=n,this._instantiationService=s,this._previewRef=j.ref(),this.element=j.div({class:"preview",style:{},ref:this._previewRef}),this._state=R(this,r=>{const a=this._properties.read(r);if(!a)return;let l,d;a.nextCursorPosition!==null?(l="original",d=Qe.ofLength(a.nextCursorPosition.lineNumber,1)):a.diff[0].innerChanges?.every(h=>h.modifiedRange.isEmpty())?(l="original",d=Qe.ofLength(a.diff[0].original.startLineNumber,1)):(l="modified",d=Qe.ofLength(a.diff[0].modified.startLineNumber,1));const c=l==="modified"?Fl.snapshot(this._previewTextModel):a.target;return{mode:l,visibleLineRange:d,textModel:c,diff:a.diff}}),this.updatePreviewEditorEffect=R(this,r=>{this._previewEditorObs.model.read(r);const a=this._state.read(r)?.visibleLineRange;if(!a)return;const l=[];a.startLineNumber>1&&l.push(new I(1,1,a.startLineNumber-1,1)),a.endLineNumberExclusive<this._previewTextModel.getLineCount()+1&&l.push(new I(a.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1)),this.previewEditor.setHiddenAreas(l,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=R(this,r=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,r)),this.contentHeight=R(this,r=>{const a=this._state.read(r);return a?this._previewEditorObs.observeLineHeightForLine(a.visibleLineRange.startLineNumber):_e(null)}).flatten(),this._editorDecorations=R(this,r=>{const a=this._state.read(r);if(!a)return;const l={diff:a.diff},d=[],c=[],h=te.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),g=te.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),u=te.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(const f of l.diff)if(f.modified.isEmpty||f.original.isEmpty)f.original.isEmpty||d.push({range:f.original.toInclusiveRange(),options:h}),f.modified.isEmpty||c.push({range:f.modified.toInclusiveRange(),options:g});else for(const p of f.innerChanges||[])f.original.contains(p.originalRange.startLineNumber)&&!p.originalRange.isEmpty()&&d.push({range:p.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:zh("inlineCompletions-char-delete",p.originalRange.isEmpty()&&"empty"),zIndex:1}}),f.modified.contains(p.modifiedRange.startLineNumber)&&c.push({range:p.modifiedRange,options:u});return{originalDecorations:d,modifiedDecorations:c}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=We(this._parentEditor),this._register(le(r=>{const a=this._state.read(r)?.textModel||null;a&&this.previewEditor.setModel(a.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=We(this.previewEditor),this._register(this._previewEditorObs.setDecorations(R(r=>{const a=this._state.read(r),l=this._editorDecorations.read(r);return(a?.mode==="original"?l?.originalDecorations:l?.modifiedDecorations)??[]}))),this._register(le(r=>{if(!this._properties.read(r))return;const a=this._parentEditorObs.cursorPosition.read(r);a&&this.previewEditor.setPosition(this._previewTextModel.validatePosition(a),"longDistanceHintPreview")})),this._register(le(r=>{const a=this._state.read(r);if(!a)return;const l=a.visibleLineRange.startLineNumber.toString().length;this.previewEditor.updateOptions({lineNumbersMinChars:l+1})})),this._register(this._instantiationService.createInstance(tg,this._previewEditorObs,R(r=>{const a=this._state.read(r);if(!a)return;const l=this._properties.read(r);if(l)return new bE(l.inlineSuggestInfo,Qe.ofLength(a.visibleLineRange.startLineNumber,1),l.model,void 0)}),this._tabAction,_e(0),_e(!1),Ne(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(Dn,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:{[ge.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(e,t){const i=this._state.read(t);if(!i)return;const n=i.diff,s=this._properties.read(t)?.nextCursorPosition,r=i.visibleLineRange,a=this._previewEditorObs.layoutInfo.read(t),l=jn(this._previewEditorObs,r,t);let d;if(s)d=I.fromPositions(s);else if(n[0].innerChanges)d=i.mode==="modified"?n[0].innerChanges[0].modifiedRange:n[0].innerChanges[0].originalRange;else return;const c=fV(e.getModel(),d,5),h=this._previewEditorObs.getLeftOfPosition(c.getStartPosition(),t),g=this._previewEditorObs.getLeftOfPosition(c.getEndPosition(),t),u=Tm(h,0,l),f=Tm(g,u,l),p=e.getModel().getLineFirstNonWhitespaceColumn(c.startLineNumber),_=this._previewEditorObs.getLeftOfPosition(new $(c.startLineNumber,p),t),v=new Be(u,f);return{indentationEnd:_,preferredRangeToReveal:v,maxEditorWidth:l+a.contentLeft,contentWidth:l,nonContentWidth:a.contentLeft}}layout(e,t){this.previewEditor.layout(e),this._previewEditorObs.editor.setScrollLeft(t)}};Vv=uV([gV(4,ee)],Vv);function fV(o,e,t){const i=e.getStartPosition(),n=e.getEndPosition(),s=o.getLineContent(i.lineNumber);function r(c){const h=s.charAt(c-1);return/[a-zA-Z0-9_]/.test(h)}function a(c){const h=s.charAt(c-1);return h===" "||h===" "}let l=i.column;for(;l>1&&r(l)&&!a(l-1)&&i.column-l<t;)l--;let d=n.column-1;for(;d<=s.length&&r(d)&&!a(d+1)&&d-n.column<t;)d++;return new I(i.lineNumber,i.column,n.lineNumber,d+1)}function pV(o,e){const t=o.start,i=o.endExclusive;let n=Number.MAX_VALUE,s=0;for(const r of e){const a=s+r.width,l=Math.max(t,s),d=Math.min(i,a);l<d&&(n=Math.min(n,r.height)),s=a}return i>s||n===Number.MAX_VALUE?0:n}class dI{constructor(e,t,i){this._lineRangeInfo=e,this.availableSpaceSizes=e.sizes.map((n,s)=>{const r=e.lineRange.startLineNumber+s,a=i(r);return new eh(Math.max(0,t-n.width-a),n.height)}),this.availableSpaceHeightPrefixSums=vV(this.availableSpaceSizes,n=>n.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map(n=>n.transpose())}getWidgetVerticalOutline(e,t,i){const n=e-this._lineRangeInfo.lineRange.startLineNumber,s=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[n],r=Be.ofStartAndLength(s,t),{previewEditorMargin:a,widgetPadding:l,widgetBorder:d,lowerBarHeight:c}=i;return r.withMargin(a+l+d).withMargin(0,c)}tryFindWidgetOutline(e,t,i,n){if(!(this._lineRangeInfo.lineRange.length<3))return _V(this._lineRangeInfo.lineRange.addMargin(-1,-1),e,s=>{const r=this.getWidgetVerticalOutline(s,t,n),a=pV(r.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);return a<n.minWidgetWidth?void 0:{horizontalWidgetRange:Be.ofStartAndLength(i-a,a),verticalWidgetRange:r}})}}function mV(o,e,t,i,n){const s=[];let r=o.startLineNumber,a=t,l=[];for(let d=0;d<e.length;d++){const c=o.startLineNumber+d,h=a+l.reduce((u,f)=>u+f.height,0),g=i.editor.getTopForLineNumber(c);d>0&&g!==h&&(s.push({lineRange:Qe.ofLength(r,c-r),top:a,sizes:l}),r=c,a=g,l=[]),l.push(e[d])}return s.push({lineRange:Qe.ofLength(r,o.endLineNumberExclusive-r),top:a,sizes:l}),R({owner:"splitIntoContinuousLineRanges"},d=>i.observeTopForLineNumber(o.endLineNumberExclusive-1).read(d)).read(n),s}function _V(o,e,t){for(let i=0;;i++){const n=e+i;if(n<=o.endLineNumberExclusive){const r=t(n);if(r!==void 0)return r}const s=e-i;if(s>=o.startLineNumber){const r=t(s);if(r!==void 0)return r}if(s<o.startLineNumber&&n>o.endLineNumberExclusive)return}}function vV(o,e){const t=[0];let i=0;for(const n of o)i+=e(n),t.push(i);return t}var bV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ql=function(o,e){return function(t,i){e(t,i,o)}};const SV=6,lm={EMPTY_SPACE:425,OVERLAY:375},CV=250,wV={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:CV};let Bv=class extends A{constructor(e,t,i,n,s,r,a,l,d){super(),this._editor=e,this._viewState=t,this._previewTextModel=i,this._tabAction=n,this._instantiationService=s,this._themeService=r,this._keybindingService=a,this._modelService=l,this._languageService=d,this.onDidClick=Ve.None,this._viewWithElement=void 0,this._hintTextPosition=R(this,c=>{const h=this._viewState.read(c);return h?new $(h.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=R(this,c=>{const h=this._viewState.read(c),g=this._hintTextPosition.read(c);if(!h||!g)return[];const u=this._editorObs.model.read(c);if(!u)return[];const f=Qe.ofLength(g.lineNumber,1).addMargin(5,5).intersect(Qe.ofLength(1,u.getLineCount()));if(!f)return[];const p=k2(this._editorObs,f,c),_=this._editorObs.observeTopForLineNumber(f.startLineNumber).read(c);return mV(f,p,_,this._editorObs,c)}),this._isVisibleDelayed=vk(R(this,c=>this._viewState.read(c)?.hint.isVisible),(c,h)=>c===!0&&h===!1?200:0),this._previewEditorLayoutInfo=R(this,c=>{const h=this._viewState.read(c);if(!h||!this._isVisibleDelayed.read(c))return;const g=this._lineSizesAroundHintPosition.read(c);if(g.length===0)return;const u=this._editorObs.scrollTop.read(c),f=this._editorObs.scrollLeft.read(c),p=this._editorObs.layoutInfo.read(c),_=this._previewEditor.contentHeight.read(c),v=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(c);if(!_||!v)return;const S=p.contentWidth-p.verticalScrollbarWidth,y=p.contentLeft+S;if(!this._editorObs.cursorLineNumber.read(c))return;const b=wV,D=_+2;let N,E;const M=lt=>lt===h.hint.lineNumber?40:20;for(const lt of g){const Bi=new dI(lt,S,M);if(E=Bi,N=Bi.tryFindWidgetOutline(h.hint.lineNumber,D,y,b),N)break}let O="empty-space";if(!N){O="overlay";const lt=Math.min(p.width-p.contentLeft,lm.OVERLAY),Bi=E??new dI(g[0],S,M);N={horizontalWidgetRange:Be.ofStartAndLength(y-lt,lt),verticalWidgetRange:Bi.getWidgetVerticalOutline(h.hint.lineNumber+2,D,b).delta(10)}}if(!N)return;const H=Se.fromRanges(N.horizontalWidgetRange,N.verticalWidgetRange).translateX(-f).translateY(-u),{previewEditorMargin:Z,widgetPadding:se,widgetBorder:ve,lowerBarHeight:oe}=b,be=Math.min(O==="overlay"?lm.OVERLAY:lm.EMPTY_SPACE,v.maxEditorWidth+Z+se),Q=lV(H.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:be,priority:1}]},spaceAfter:{min:10}});if(!Q)return null;const ue=yV([Q.spaceBefore,Q.content,Q.spaceAfter],H.left);H.withHorizontalRange(ue[0]);const Jt=H.withHorizontalRange(ue[1]);H.withHorizontalRange(ue[2]);const ot=Jt.withMargin(-se-ve-Z).withMargin(0,0,-oe,0),me=ot.width-v.nonContentWidth,Si=me*.8,bt=v.preferredRangeToReveal.intersect(Be.ofStartAndLength(v.preferredRangeToReveal.start,Si))??v.preferredRangeToReveal,Fe=IV(v.indentationEnd,me,bt);return{codeEditorSize:ot.getSize(),codeScrollLeft:f,contentLeft:p.contentLeft,widgetRect:Jt,previewEditorMargin:Z,widgetPadding:se,widgetBorder:ve,lowerBarHeight:oe,desiredPreviewEditorScrollLeft:Fe.newScrollPosition}}),this._view=j.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:R(this,c=>this._previewEditorLayoutInfo.read(c)?"block":"none")}},[R(this,c=>[this._widgetContent])]),this._widgetContent=R(this,c=>j.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:ye(RS),padding:this._previewEditorLayoutInfo.map(h=>h?.widgetPadding),boxSizing:"border-box",borderRadius:SV,border:R(h=>`${this._previewEditorLayoutInfo.read(h)?.widgetBorder}px solid ${this._styles.read(h).border}`),display:"flex",flexDirection:"column",opacity:R(h=>this._viewState.read(h)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Wt(h=>this._previewEditorLayoutInfo.read(h)?.widgetRect)},onmousedown:h=>{h.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[j.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map(h=>h?.previewEditorMargin),background:this._styles.map(h=>h.background),pointerEvents:"none"}},[R(this,h=>this._previewEditor.element)]),j.div({class:"bar",style:{color:ye(OS),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map(h=>h?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[R(this,h=>{const g=[],u=this._viewState.read(h);if(!u)return g;const f=this._editorObs.model.read(h)?.uri,p=u.target.uri,_=p&&(!f||p.toString()!==f.toString());if(_){const b=on(p),w=fd(this._modelService,this._languageService,p,tn.FILE);g.push(j.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[j.elem("span",{class:w,style:{flexShrink:"0",marginRight:"4px"}}),b]))}else{const b=this._originalOutlineSource.read(h),w=this._originalTargetLineNumber.read(h),D=b?.getAt(w,h).slice(0,1)??[],N=[];if(D.length>0)for(let E=0;E<D.length;E++){const M=D[E],O=JL.toIcon(M.kind);N.push(j.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[xn(O)," ",M.name,...E===D.length-1?[]:[xn(U.chevronRight)]]))}g.push(j.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},N))}const v=this._originalTargetLineNumber.read(h),S=_?U.arrowRight:u.hint.lineNumber<v?U.arrowDown:U.arrowUp,y=this._keybindingService.lookupKeybinding(J1);let x=_?"Go to file":"Go to suggestion";return y&&y.getLabel()==="Tab"&&(x=_?"Tab to open":"Tab to jump"),g.push(j.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[x," ",xn(S)])),g})])])),this._originalTargetLineNumber=R(this,c=>{const h=this._viewState.read(c);return h?h.edit.action?.kind==="jumpTo"?h.edit.action.position.lineNumber:h.diff[0]?.original.startLineNumber??-1:-1}),this._originalOutlineSource=MS(this,c=>{const h=this._editorObs.model.read(c),g=QL._breadcrumbsSourceFactory.read(c);return!h||!g?void 0:g(h,this._instantiationService)}),this._styles=R(c=>{const h=this._tabAction.read(c),g=Ha(VL,this._themeService).read(c),u=xt(this._themeService.onDidColorThemeChange,()=>{const p=this._themeService.getColorTheme();return p.type==="hcDark"||p.type==="hcLight"}).read(c);let f;if(u)f=g;else{let p;switch(h){case qe.Inactive:p=LC;break;case qe.Jump:p=th;break;case qe.Accept:p=DC;break}f=Et(p,this._themeService).read(c)}return{border:f.toString(),background:fo(this._viewState.map(p=>p?.editorType??rt.TextEditor).read(c))}}),this._editorObs=We(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(Vv,this._previewTextModel,R(c=>{const h=this._viewState.read(c);if(h)return{diff:h.diff,model:h.model,inlineSuggestInfo:h.inlineSuggestInfo,nextCursorPosition:h.nextCursorPosition,target:h.target}}),this._editor,this._tabAction)),this._viewWithElement=this._view.keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._viewWithElement.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:_e(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(le(c=>{const h=this._previewEditorLayoutInfo.read(c);h&&this._previewEditor.layout(h.codeEditorSize.toDimension(),h.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};Bv=bV([Ql(4,ee),Ql(5,yt),Ql(6,Te),Ql(7,Yt),Ql(8,ls)],Bv);function yV(o,e=0){const t=[];let i=e;for(const n of o)t.push(new Be(i,i+n)),i+=n;return t}function IV(o,e,t){const i=new Be(o,o+e);return i.containsRange(t)?{newScrollPosition:o}:t.length>e?{newScrollPosition:t.start}:t.endExclusive>i.endExclusive?{newScrollPosition:t.endExclusive-e}:t.start<i.start?{newScrollPosition:t.start}:{newScrollPosition:o}}var xV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},dm=function(o,e){return function(t,i){e(t,i,o)}};const pa=0,ed=0,$i=1,LV=1,DV=3,On=Ft,cm=20,cI=12;let ig=class extends A{static fitsInsideViewport(e,t,i,n){const s=We(e),r=s.layoutInfoWidth.read(n),a=s.layoutInfoContentLeft.read(n),l=e.getLayoutInfo().verticalScrollbarWidth,d=s.layoutInfoMinimap.read(n).minimapLeft!==0?s.layoutInfoMinimap.read(n).minimapWidth:0,c=jn(s,i.displayRange,void 0),h=i.lineEdit.newLines.reduce((f,p)=>Math.max(f,RC(p,e,t)),0),g=cm,u=cI+2*$i;return c+h+g+u<r-a-l-d}constructor(e,t,i,n,s,r,a,l){super(),this._editor=e,this._edit=t,this._previewTextModel=i,this._uiState=n,this._tabAction=s,this._instantiationService=r,this._themeService=a,this._userInteractionService=l,this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._editorObs=We(this._editor),this._display=R(this,h=>this._uiState.read(h)?"block":"none"),this.previewRef=j.ref();const d=this._uiState.map(h=>h?.editorType===rt.DiffEditor?DV:LV);this._editorContainer=j.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:h=>{h.preventDefault()},onclick:h=>{this._onDidClick.fire(yo.create(h))}},[j.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(Dn,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:{[ge.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=We(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=R(this,h=>{this._editorContainer.readEffect(h),this._previewEditorObs.model.read(h),this._display.read(h),this._nonOverflowView&&(this._nonOverflowView.element.style.display=this._display.read(h));const g=this._uiState.read(h),u=this._edit.read(h);if(!g||!u)return;const f=u.originalLineRange,p=[];f.startLineNumber>1&&p.push(new I(1,1,f.startLineNumber-1,1)),f.startLineNumber+g.newTextLineCount<this._previewTextModel.getLineCount()+1&&p.push(new I(f.startLineNumber+g.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1)),this.previewEditor.setHiddenAreas(p,void 0,!0);const _=[...this._activeViewZones];this._activeViewZones=[];const v=f.endLineNumberExclusive-f.startLineNumber-g.newTextLineCount;this.previewEditor.changeViewZones(S=>{_.forEach(y=>S.removeZone(y)),v>0&&this._activeViewZones.push(S.addZone({afterLineNumber:f.startLineNumber+g.newTextLineCount-1,heightInLines:v,showInHiddenAreas:!0,domNode:B("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=R(this,h=>{const g=this._edit.read(h);return g?(this._updatePreviewEditor.read(h),jn(this._previewEditorObs,g.modifiedLineRange,h)):0}),this._cursorPosIfTouchesEdit=R(this,h=>{const g=this._editorObs.cursorPosition.read(h),u=this._edit.read(h);if(!(!u||!g))return u.modifiedLineRange.contains(g.lineNumber)?g:void 0}),this._originalStartPosition=R(this,h=>{const g=this._edit.read(h);return g?new $(g.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=R(this,h=>{const g=this._edit.read(h);return g?new $(g.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map(h=>h?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map(h=>h?.y),this._originalDisplayRange=this._edit.map(h=>h?.displayRange),this._editorMaxContentWidthInRange=R(this,h=>{const g=this._originalDisplayRange.read(h);return g?(this._editorObs.versionId.read(h),So(this,(u,f)=>{const p=jn(this._editorObs,g,u);return Math.max(p,f??0)})):_e(0)}).map((h,g)=>h.read(g));const c=W2(this._editor,this._store);this._previewEditorLayoutInfo=R(this,h=>{const g=this._edit.read(h);if(!g||!this._uiState.read(h))return null;const f=g.originalLineRange,p=this._editorObs.scrollLeft.read(h),_=this._editorMaxContentWidthInRange.read(h),v=this._editorObs.layoutInfo.read(h),S=this._previewEditorWidth.read(h),y=v.contentWidth-v.verticalScrollbarWidth,x=c.read(h),b=v.contentLeft+v.contentWidth+x.left,w=Ht(this._editor.getContainerDomNode()).innerWidth-b,D=Ht(this._editor.getContainerDomNode()).innerWidth-x.right,N=Math.min(v.contentWidth*.3,S,100),E=0,M=E+w,O=this._cursorPosIfTouchesEdit.read(h),H=Math.max(y+p-E-Math.max(0,N-M),Math.min(O?T2(this._editorObs,O,h)+50:0,y+p)),Z=Math.min(_+cm,H),se=_+cm+S+70,ve=H-Z;let oe,be;Z>p?(oe=0,be=v.contentLeft+Z-p):(oe=p-Z,be=v.contentLeft);const Q=this._originalVerticalStartPosition.read(h)??this._editor.getTopForLineNumber(f.startLineNumber)-this._editorObs.scrollTop.read(h),ue=this._originalVerticalEndPosition.read(h)??this._editor.getBottomForLineNumber(f.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(h),Jt=v.contentLeft-p;let ot=Se.fromLeftTopRightBottom(Jt,Q,be,ue);const me=ot.height===0;me||(ot=ot.withMargin(ed,pa));const bt=this._previewEditorObs.observeLineHeightsForLineRange(g.modifiedLineRange).read(h).reduce((Sp,lR)=>Sp+lR,0),Fe=ue-Q,lt=Math.max(Fe,bt),Bi=ve===0,Vl=0,Bl=Math.min(S+cI,D+v.width-v.contentLeft-Vl);let Do=Se.fromLeftTopWidthHeight(ot.right+Vl,Q,Bl,lt);return me?Do=Do.withMargin(ed,pa).translateY(ed):Do=Do.withMargin(ed,pa).translateX(pa+$i),{codeRect:ot,editRect:Do,codeScrollLeft:p,contentLeft:v.contentLeft,isInsertion:me,maxContentWidth:se,shouldShowShadow:Bi,desiredPreviewEditorScrollLeft:oe,previewEditorWidth:Bl}}),this._stickyScrollController=Fi.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?xt(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):_e(0),this._shouldOverflow=R(this,h=>!1),this._originalBackgroundColor=xt(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(Od)??fe.transparent),this._editorBackgroundColor=this._uiState.map(h=>fo(h?.editorType??rt.TextEditor)),this._backgroundSvg=j.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[j.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:R(this,h=>{const g=this._previewEditorLayoutInfo.read(h);if(!(!g||this._originalBackgroundColor.read(h).isTransparent()))return new kv().moveTo(g.codeRect.getRightTop()).lineTo(g.codeRect.getRightTop().deltaX(1e3)).lineTo(g.codeRect.getRightBottom().deltaX(1e3)).lineTo(g.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=j.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map(h=>h?.isInsertion?"none":"block")}},R(this,h=>{const g=En(this._previewEditorLayoutInfo).read(h);if(!g)return;const u=this._editorBackgroundColor.read(h),f=d.read(h),p=gp(this._tabAction).map(E=>`${$i}px solid ${ye(E)}`),_=`${$i+f}px solid ${u}`,v=g.read(h).codeScrollLeft!==0,S=g.map(E=>E.codeRect.bottom<E.editRect.bottom),y=On*2+$i*2,x=g.map(E=>Se.fromLeftTopRightBottom(E.contentLeft-On-$i,E.codeRect.top,E.contentLeft,E.codeRect.bottom+y)).read(h),b=new Be(x.left,Number.MAX_SAFE_INTEGER),w=g.map(E=>E.codeRect.intersectHorizontal(b)),D=w.map(E=>E.withMargin(f,0,f,f).intersectHorizontal(b)),N=w.map(E=>Se.fromLeftTopWidthHeight(E.right-y+$i,E.bottom-$i,y,y).intersectHorizontal(b));return[j.div({class:"originalSeparatorSideBySide",style:{...D.read(h).toStyles(),boxSizing:"border-box",borderRadius:`${On}px 0 0 ${On}px`,borderTop:_,borderBottom:_,borderLeft:v?"none":_}}),j.div({class:"originalOverlaySideBySide",style:{...w.read(h).toStyles(),boxSizing:"border-box",borderRadius:`${On}px 0 0 ${On}px`,borderTop:p,borderBottom:p,borderLeft:v?"none":p,backgroundColor:ye(Od)}}),j.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:S.map(E=>E?"block":"none"),...N.read(h).toStyles()}},[j.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:Et(Od,this._themeService).map(E=>E.toString())}}),j.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:p,borderRight:p,borderRadius:"0 100% 0 0",backgroundColor:u}})]),j.div({class:"originalOverlaySideBySideHider",style:{...x.toStyles(),backgroundColor:u}})]})).keepUpdated(this._store),this._modifiedOverlay=j.div({style:{pointerEvents:"none"}},R(this,h=>{const g=En(this._previewEditorLayoutInfo).read(h);if(!g)return;const u=g.map(w=>w.codeRect.bottom<w.editRect.bottom),f=this._editorBackgroundColor.read(h),p=d.read(h),_=u.map(w=>`0 ${On}px ${On}px ${w?On:0}px`),v=Et(bc(this._tabAction),this._themeService).map(w=>`1px solid ${w.toString()}`),S=`${$i+p}px solid ${f}`,y=g.map(w=>w.editRect.withMargin(0,$i)),x=y.map(w=>w.withMargin(p,p,p,0)),b=R(this,w=>{const D=y.read(w),N=g.read(w);return!N.isInsertion||N.contentLeft>=D.left?Se.fromLeftTopWidthHeight(D.left,D.top,0,0):new Se(N.contentLeft,D.top,D.left,D.top+$i*2)});return[j.div({class:"modifiedInsertionSideBySide",style:{...b.read(h).toStyles(),backgroundColor:bc(this._tabAction).map(w=>ye(w))}}),j.div({class:"modifiedSeparatorSideBySide",style:{...x.read(h).toStyles(),borderRadius:_,borderTop:S,borderBottom:S,borderRight:S,boxSizing:"border-box"}}),j.div({class:"modifiedOverlaySideBySide",style:{...y.read(h).toStyles(),borderRadius:_,border:v,boxSizing:"border-box",backgroundColor:ye(_E)}})]})).keepUpdated(this._store),this._nonOverflowView=j.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,R(this,h=>this._shouldOverflow.read(h)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:_e(null),allowEditorOverflow:!1,minContentWidthInPx:R(this,h=>{const g=this._previewEditorLayoutInfo.read(h)?.maxContentWidth;return g===void 0?0:g})})),this.previewEditor.setModel(this._previewTextModel),this._register(le(h=>{const g=this._previewEditorLayoutInfo.read(h);if(!g)return;const u=g.editRect.withMargin(-ed,-pa);this.previewEditor.layout({height:u.height,width:g.previewEditorWidth+15}),this._editorContainer.element.style.top=`${u.top}px`,this._editorContainer.element.style.left=`${u.left}px`,this._editorContainer.element.style.width=`${g.previewEditorWidth+pa}px`})),this._register(le(h=>{const g=this._previewEditorLayoutInfo.read(h);g&&this._previewEditorObs.editor.setScrollLeft(g.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};ig=xV([dm(5,ee),dm(6,yt),dm(7,Rf)],ig);var EV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},td=function(o,e){return function(t,i){e(t,i,o)}};class RV{constructor(e,t,i){this.edit=e,this.editorType=t,this.alternativeAction=i}equals(e){return this.edit.equals(e.edit)&&this.alternativeAction===e.alternativeAction}}const Dt=1,hI="word-replacement-view-overlay",uI="word-replacement-view-widget",gI="word-replacement-view-replacement",hm="word-replacement-view-rename";var qa;let Na=(qa=class extends A{constructor(e,t,i,n,s,r,a,l){super(),this._editor=e,this._viewData=t,this._tabAction=i,this._languageService=n,this._themeService=s,this._keybindingService=r,this._hoverService=a,this._userInteractionService=l,this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(_e(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(_e(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=Ne(this,null),this._secondaryElement=Ne(this,null),this.isHovered=R(this,g=>{const u=this._primaryElement.read(g);return u?this._userInteractionService.createHoverTracker(u.element,g.store).read(g):!1}),this._renderTextEffect=R(this,g=>{const u=this._editor.model.read(void 0);if(!u)return;const f=u.getLineContent(this._viewData.edit.range.startLineNumber),p=ai.replace(new Be(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),_=p.replace(f),v=u.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[_])?.[0];let S;v?S=Wf.fromLineTokens(v).slice(p.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec):S=kl.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);const y=Hf(new Bf([S]),Vf.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${y.minWidthInPx}px`});const d=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),c=bk(this._viewData.alternativeAction?.count??new Promise(g=>g(void 0))).map(g=>g.value),h=R(this,g=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),g).shiftKey);this._layout=R(this,g=>{this._renderTextEffect.read(g);const u=this._start.read(g),f=this._end.read(g);if(!u||!f||u.x>f.x||u.y>f.y)return;const p=d.read(g);if(p<=0)return;const _=this._editor.scrollLeft.read(g),v=this._editor.getOption(59).read(g).typicalHalfwidthCharacterWidth,S=3*v,y=4,x=new Pi(S,y);let b;if(this._viewData.alternativeAction){const M=this._viewData.alternativeAction.label,O=c.read(g),H=h.read(g),Z=O!==void 0?O===1?m(1263,"{0} 1 occurrence",M):m(1264,"{0} {1} occurrences",M,O):M,se=m(1265,"{0} show occurrences","[shift]");b={label:O!==void 0&&H?Z:M,tooltip:Z?`${Z}
45
- ${se}`:void 0,icon:void 0,count:O,keybinding:this._keybindingService.lookupKeybinding(Yf),active:h}}const w=Se.fromPoints(u,f).withHeight(p).translateX(-_),D=Se.fromPointSize(w.getLeftBottom().add(x),new Pi(this._viewData.edit.text.length*v,w.height)),N=D.withWidth(D.width+(b?b.label.length*v+8+4+12:0)),E=N.withLeft(w.left);return{alternativeAction:b,originalLine:w,codeLine:D,modifiedLine:N,lowerBackground:E,lineHeight:p}}),this.minEditorScrollHeight=R(this,g=>{const u=En(this._layout).read(g);return u?u.read(g).modifiedLine.bottom+Dt+this._editor.editor.getScrollTop():0}),this._root=j.div({class:"word-replacement"},[R(this,g=>{const u=En(this._layout).read(g);if(!u)return[];const f=gp(this._tabAction).map(O=>ye(O)).read(g),p=bc(this._tabAction).map(O=>ye(O)).read(g);this._line.style.lineHeight=`${u.read(g).modifiedLine.height+2*Dt}px`;const _=_e(!1),v=u.map(O=>O.alternativeAction),S=R(O=>(v.read(O)?.active.read(O)??!1)||_.read(O)),x=xt(this._themeService.onDidColorThemeChange,()=>{const O=this._themeService.getColorTheme();return O.type==="hcDark"||O.type==="hcLight"}).read(g)?Ha(Ln,this._themeService).read(g):null,b={borderColor:x?x.toString():p,backgroundColor:ye(I2),color:"",opacity:"1"},w={borderColor:x?x.toString():ye(Os),backgroundColor:ye(th),color:ye(vc),opacity:"1"},D={borderColor:x?x.toString():Ha(Fh,this._themeService).map(O=>O.transparent(.2).toString()).read(g),backgroundColor:fo(this._viewData.editorType),color:"",opacity:"0.7"},N=fo(this._viewData.editorType),E=R(this,O=>(S.read(O),b)),M=R(this,O=>S.read(O)?w:D);return[j.div({id:hI,style:{position:"absolute",...Wt(O=>NC(this._editor).read(O)),overflow:"hidden",pointerEvents:"none"}},[j.div({style:{position:"absolute",...Wt(O=>u.read(O).lowerBackground.withMargin(Dt,2*Dt,Dt,0)),background:N,cursor:"pointer",pointerEvents:"auto"},onmousedown:O=>this._mouseDown(O)}),j.div({id:uI,style:{position:"absolute",...Wt(O=>u.read(O).modifiedLine.withMargin(Dt,2*Dt)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${Ft}px`,background:N,display:"flex",justifyContent:"left",outline:`2px solid ${N}`},onmousedown:O=>this._mouseDown(O)},[j.div({id:gI,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Wt(O=>u.read(O).codeLine.withMargin(Dt,2*Dt)).width,borderRadius:`${Ft}px`,border:E.map(O=>`${Dt}px solid ${O.borderColor}`),boxSizing:"border-box",padding:`${Dt}px`,opacity:E.map(O=>O.opacity),background:E.map(O=>O.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:O=>{this._primaryElement.set(O,void 0)}},[this._line]),R(this,O=>{const H=v.read(O);if(!H)return;const Z=document.createElement("div");return O.store.add(new Oc(Z,Mc,{...Qx,disableTitle:!0})).set(H.keybinding),j.div({id:hm,style:{position:"relative",borderRadius:`${Ft}px`,borderTop:`${Dt}px solid`,borderRight:`${Dt}px solid`,borderBottom:`${Dt}px solid`,borderLeft:`${Dt}px solid`,borderColor:M.map(ve=>ve.borderColor),opacity:M.map(ve=>ve.opacity),color:M.map(ve=>ve.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:M.map(ve=>ve.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:ve=>{this._secondaryElement.set(ve,void 0)},ref:ve=>{H.tooltip&&O.store.add(this._hoverService.setupDelayedHoverAtMouse(ve,{content:H.tooltip,appearance:{compact:!0}}))}},[Z,B("div.inline-edit-alternative-action-label-separator"),H.icon?xn(H.icon):void 0,H.label])})]),j.div({style:{position:"absolute",...Wt(O=>u.read(O).originalLine.withMargin(Dt)),boxSizing:"border-box",borderRadius:`${Ft}px`,border:`${Dt}px solid ${f}`,background:ye(w2),pointerEvents:"none"}},[]),j.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:u.map(O=>O.modifiedLine.left-16),top:u.map(O=>O.modifiedLine.top+Math.round((O.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:O=>this._mouseDown(O)},[j.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:ye(Fh)}),j.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:ye(Fh)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:_e(0),position:_e({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(e){const t=NV(e.target,new Set([uI,gI,hm,hI]));t&&(e.preventDefault(),this._onDidClick.fire(yo.create(e,t===hm)))}},qa.MAX_LENGTH=100,qa);Na=EV([td(3,ls),td(4,yt),td(5,Te),td(6,bi),td(7,Rf)],Na);function NV(o,e){let t=o;for(;t;){if(e.has(t.id))return t.id;t=t.parentElement}return null}class kV extends A{constructor(e,t,i){super(),this._originalEditor=e,this._state=t,this._modifiedTextModel=i,this._onDidClick=this._register(new Y),this.onDidClick=this._onDidClick.event,this.isHovered=We(this._originalEditor).isTargetHovered(s=>s.target.type===6&&s.target.detail.injectedText?.options.attachedData instanceof um&&s.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=OV(this._modifiedTextModel),this._decorations=R(this,s=>{const r=this._state.read(s);if(!r)return;const a=r.modifiedText,l=r.mode==="insertionInline",d=r.diff.length===1&&r.diff[0].innerChanges?.length===1,c=!0,h=[],g=[],u=te.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),f=te.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),p=te.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),_=te.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),v=te.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),S=te.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),y=te.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),x=r.mode!=="sideBySide"&&r.mode!=="deletion"&&r.mode!=="insertionInline"&&r.mode!=="lineReplacement",b=r.mode==="lineReplacement";for(const w of r.diff)if(x&&(w.original.isEmpty||h.push({range:w.original.toInclusiveRange(),options:f}),w.modified.isEmpty||g.push({range:w.modified.toInclusiveRange(),options:u})),w.modified.isEmpty||w.original.isEmpty)w.original.isEmpty||h.push({range:w.original.toInclusiveRange(),options:p}),w.modified.isEmpty||g.push({range:w.modified.toInclusiveRange(),options:_});else{const D=l&&TV(w);for(const N of w.innerChanges||[]){if(w.original.contains(N.originalRange.startLineNumber)&&!(b&&N.originalRange.isEmpty())){const E=this._originalEditor.getModel()?.getValueInRange(N.originalRange,1);h.push({range:N.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:zh("inlineCompletions-char-delete",N.originalRange.isSingleLine()&&r.mode==="insertionInline"&&"single-line-inline",N.originalRange.isEmpty()&&"empty",(N.originalRange.isEmpty()&&d||r.mode==="deletion"&&E===`
46
- `)&&c&&!D&&"diff-range-empty"),inlineClassName:D?zh("strike-through","inlineCompletions"):null,zIndex:1}})}if(w.modified.contains(N.modifiedRange.startLineNumber)&&g.push({range:N.modifiedRange,options:N.modifiedRange.isEmpty()&&c&&!D&&d?S:v}),D){const E=a.getValueOfRange(N.modifiedRange),M=E.length>3?[{text:E.slice(0,1),extraClasses:["start"],offsetRange:new Be(N.modifiedRange.startColumn-1,N.modifiedRange.startColumn)},{text:E.slice(1,-1),extraClasses:[],offsetRange:new Be(N.modifiedRange.startColumn,N.modifiedRange.endColumn-2)},{text:E.slice(-1),extraClasses:["end"],offsetRange:new Be(N.modifiedRange.endColumn-2,N.modifiedRange.endColumn-1)}]:[{text:E,extraClasses:["start","end"],offsetRange:new Be(N.modifiedRange.startColumn-1,N.modifiedRange.endColumn)}];this._tokenizationFinished.read(s);const O=this._modifiedTextModel.tokenization.getLineTokens(N.modifiedRange.startLineNumber);for(const{text:H,extraClasses:Z,offsetRange:se}of M)h.push({range:I.fromPositions(N.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:O.getTokensInRange(se),content:H,inlineClassName:zh("inlineCompletions-char-insert",N.modifiedRange.isSingleLine()&&r.mode==="insertionInline"&&"single-line-inline",...Z),cursorStops:Ao.None,attachedData:new um(this)},zIndex:2,showIfCollapsed:!0}})}}}if(r.editorType===rt.DiffEditor)for(const w of r.diff)w.original.isEmpty||h.push({range:w.original.toExclusiveRange(),options:y});return{originalDecorations:h,modifiedDecorations:g}}),this._register(We(this._originalEditor).setDecorations(this._decorations.map(s=>s?.originalDecorations??[])));const n=this._state.map(s=>s?.modifiedCodeEditor);this._register(Vc((s,r)=>{const a=n.read(s);a&&r.add(We(a).setDecorations(this._decorations.map(l=>l?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp(s=>{if(s.target.type!==6)return;const r=s.target.detail.injectedText?.options.attachedData;r instanceof um&&r.owner===this&&this._onDidClick.fire(new yo(s.event))}))}}class um{constructor(e){this.owner=e}}function TV(o){return o.innerChanges?o.innerChanges.every(e=>Cw(e.modifiedRange)&&Cw(e.originalRange)):!1}let PV=0;function OV(o){return xt(o.onDidChangeTokens,()=>PV++)}var MV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},AV=function(o,e){return function(t,i){e(t,i,o)}};let Uv=class extends A{constructor(e,t,i,n,s,r){super(),this._editor=e,this._model=t,this._simpleModel=i,this._inlineSuggestInfo=n,this._showCollapsed=s,this._instantiationService=r,this._tabAction=R(c=>this._model.read(c)?.tabAction.read(c)??qe.Inactive),this.displayRange=R(this,c=>{const h=this._uiState.read(c);if(h&&h.target.uri.toString()===this._editorObs.model.read(c)?.uri.toString()){if(h.state?.kind==="custom"){const g=h.state.displayLocation?.range;if(!g)throw new at("custom view should have a range");return new Qe(g.startLineNumber,g.endLineNumber)}return h.state?.kind==="insertionMultiLine"?this._insertion.originalLines.read(c):h.edit.displayRange}}),this._currentInlineEditCache=void 0,this._uiState=R(this,c=>{const h=this._model.read(c),g=this._editorObs.model.read(c);if(!h||!g||!this._constructorDone.read(c))return;const u=h.inlineEdit;let f,p,_;u.edit?(p=ZL.fromEdit(u.edit),_=new Mh(u.edit.apply(u.originalText)),f=ww(p,u.originalText,_)):(p=[],f=[],_=u.originalText);let v=this._determineRenderState(h,c,f,_);if(!v){we(new Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}const S=this._getLongDistanceHintState(h,c);if(S&&S.isVisible&&v.viewData.setLongDistanceViewData(S.lineNumber,u.lineEdit.lineRange.startLineNumber),v.kind===ne.SideBySide){const b=F2(_.getValue(),u.modifiedLineRange,g.getOptions().tabSize);_=new Mh(b.applyToString(_.getValue())),p=P2(p,b),f=ww(p,u.originalText,_)}this._previewTextModel.setLanguage(g.getLanguageId());const y=this._previewTextModel.getValue();if(y!==_.getValue()){this._previewTextModel.setEOL(g.getEndOfLineSequence());const w=es.replace(new Be(0,y.length),_.getValue()).removeCommonSuffixPrefix(y),D=dp(this._previewTextModel).getTextEdit(w);this._previewTextModel.edit(D)}this._showCollapsed.read(c)&&(v={kind:ne.Collapsed,viewData:v.viewData}),h.handleInlineEditShownNextFrame(v.kind,v.viewData);const x=u.action?.kind==="jumpTo"?u.action.position:null;return{state:v,diff:f,edit:u,newText:_.getValue(),newTextLineCount:u.modifiedLineRange.length,editorType:h.editorType,longDistanceHint:S,nextCursorPosition:x,target:u.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=R(this,c=>this._sideBySide.isHovered.read(c)||this._wordReplacementViews.read(c).some(h=>h.isHovered.read(c))||this._deletion.isHovered.read(c)||this._inlineDiffView.isHovered.read(c)||this._lineReplacementView.isHovered.read(c)||this._insertion.isHovered.read(c)||this._customView.isHovered.read(c)||this._longDistanceHint.map((h,g)=>h?.isHovered.read(g)??!1).read(c)),this.gutterIndicatorOffset=R(this,c=>this._uiState.read(c)?.state?.kind==="insertionMultiLine"?this._insertion.startLineOffset.read(c):0),this._editorObs=We(this._editor),this._constructorDone=Ne(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(eu,"",this._editor.getModel().getLanguageId(),{...eu.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(ig,this._editor,this._model.map(c=>c?.inlineEdit),this._previewTextModel,this._uiState.map(c=>c&&c.state?.kind===ne.SideBySide?{newTextLineCount:c.newTextLineCount,editorType:c.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(iV,this._editor,this._model.map(c=>c?.inlineEdit),this._uiState.map(c=>c&&c.state?.kind===ne.Deletion?{originalRange:c.state.originalRange,deletions:c.state.deletions,editorType:c.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(Fv,this._editor,this._uiState.map(c=>c&&c.state?.kind===ne.InsertionMultiLine?{lineNumber:c.state.lineNumber,startColumn:c.state.column,text:c.state.text,editorType:c.editorType}:void 0),this._tabAction)),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(Mv,this._editor,this._model.map((c,h)=>this._uiState.read(h)?.state?.kind===ne.Collapsed?c?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(Av,this._editor,this._model.map((c,h)=>this._uiState.read(h)?.state?.kind===ne.Custom?c?.displayLocation:void 0),this._tabAction,this._uiState.map(c=>c?.editorType??rt.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,c=>c.edits.showLongDistanceHint),this._longDistanceHint=R(this,c=>{if(this._showLongDistanceHint.read(c))return c.store.add(this._instantiationService.createInstance(Bv,this._editor,this._uiState.map((h,g)=>h?.longDistanceHint?{hint:h.longDistanceHint,newTextLineCount:h.newTextLineCount,edit:h.edit,diff:h.diff,editorType:h.editorType,model:this._simpleModel.read(g),inlineSuggestInfo:this._inlineSuggestInfo.read(g),nextCursorPosition:h.nextCursorPosition,target:h.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=R(this,c=>{const h=this._uiState.read(c);if(!(!h||!h.state)&&!(h.state.kind==="wordReplacements"||h.state.kind==="insertionMultiLine"||h.state.kind==="collapsed"||h.state.kind==="custom"||h.state.kind==="jumpTo"))return{modifiedText:new Mh(h.newText),diff:h.diff,mode:h.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:h.editorType}}),this._inlineDiffView=this._register(new kV(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(Hv,this._editorObs,{style:"label"},R(c=>{const h=this._uiState.read(c);if(h?.state?.kind===ne.JumpTo)return{jumpToPosition:h.state.position}})));const a=pn({equalsFn:yw.arrayC(yw.thisC())},c=>{const h=this._uiState.read(c);return h?.state?.kind===ne.WordReplacements?h.state.replacements.map(g=>new RV(g,h.editorType,h.state?.alternativeAction)):[]});this._wordReplacementViews=TS(this,a,(c,h)=>h.add(this._instantiationService.createInstance(Na,this._editorObs,c,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(Wv,this._editorObs,this._uiState.map(c=>c?.state?.kind===ne.LineReplacement?{originalRange:c.state.originalRange,modifiedRange:c.state.modifiedRange,modifiedLines:c.state.modifiedLines,replacements:c.state.replacements}:void 0),this._uiState.map(c=>c?.editorType??rt.TextEditor),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map(c=>c.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map(c=>c.edits.renderSideBySide),this._register(le(c=>{const h=this._model.read(c);h&&c.store.add(Ve.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(c).map(g=>g.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)(g=>{this._viewHasBeenShownLongerThan(350)&&(g.event.preventDefault(),h.accept(g.alternativeAction))}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);const l=R(this,c=>Math.max(...this._wordReplacementViews.read(c).map(h=>h.minEditorScrollHeight.read(c)),this._lineReplacementView.minEditorScrollHeight.read(c),this._customView.minEditorScrollHeight.read(c))).recomputeInitiallyAndOnChange(this._store);let d;this._register(le(c=>{const h=l.read(c),g=this._editorObs.model.read(c);g&&this._editor.changeViewZones(u=>{const f=this._editor.getScrollHeight(),p=h-f+1;p!==0&&d!==void 0&&(u.removeZone(d),d=void 0),!(p<=0)&&(d=u.addZone({afterLineNumber:g.getLineCount(),heightInPx:p,domNode:B("div.minScrollHeightViewZone")}))})})),this._constructorDone.set(!0,void 0)}_getLongDistanceHintState(e,t){if(!e.inlineEdit.inlineCompletion.identity.jumpedTo.read(t)&&e.inlineEdit.action!==void 0)return e.inlineEdit.originalText.uri.toString()!==this._editorObs.model.read(t)?.uri.toString()?{isVisible:!0,lineNumber:e.inlineEdit.cursorPosition.lineNumber}:(this._currentInlineEditCache?.inlineSuggestionIdentity!==e.inlineEdit.inlineCompletion.identity&&(this._currentInlineEditCache={inlineSuggestionIdentity:e.inlineEdit.inlineCompletion.identity,firstCursorLineNumber:e.inlineEdit.cursorPosition.lineNumber}),{lineNumber:this._currentInlineEditCache.firstCursorLineNumber,isVisible:!e.inViewPort.read(t)})}_getCacheId(e){return e.inlineEdit.inlineCompletion.identity.id}_determineView(e,t,i,n){const s=e.inlineEdit,r=this._previousView?.id===this._getCacheId(e)&&this._previousView?.uri.toString()===this._editorObs.model.get().uri.toString(),a=this._previousView?.editorWidth!==this._editorObs.layoutInfoWidth.read(t)&&(this._previousView?.view===ne.SideBySide||this._previousView?.view===ne.LineReplacement);if(r&&!a)return this._previousView.view;const l=e.inlineEdit.inlineCompletion.action;if(l?.kind==="edit"&&l.alternativeAction)return ne.WordReplacements;const d=e.inlineEdit.inlineCompletion.originalTextRef.uri,c=this._editorObs.model.read(t)?.uri;if(c&&d.toString()!==c.toString()||e.displayLocation&&!e.inlineEdit.inlineCompletion.identity.jumpedTo.read(t))return ne.Custom;const h=s.originalLineRange.length,g=s.modifiedLineRange.length,u=i.flatMap(p=>p.innerChanges??[]),f=u.length===1;if(e.editorType!==rt.DiffEditor){if(f&&this._useCodeShifting.read(t)!=="never"&&CE(i))return WV(i,s.cursorPosition)?ne.InsertionInline:ne.LineReplacement;if(pI(u,s,n))return ne.Deletion;if(fI(i)&&this._useCodeShifting.read(t)==="always")return ne.InsertionMultiLine;if(u.every(_=>In.ofRange(_.originalRange).columnCount<Na.MAX_LENGTH&&In.ofRange(_.modifiedRange).columnCount<Na.MAX_LENGTH)&&f&&h===1&&g===1){const _=u.map(S=>n.getValueOfRange(S.modifiedRange)),v=u.map(S=>e.inlineEdit.originalText.getValueOfRange(S.originalRange));if(!_.some(S=>S.includes(" "))&&!v.some(S=>S.includes(" "))&&(!u.some(S=>S.originalRange.isEmpty())||!mI(u.map(S=>new Ae(S.originalRange,"")),s.originalText).some(S=>S.range.isEmpty()&&In.ofRange(S.range).columnCount<Na.MAX_LENGTH)))return ne.WordReplacements}}if(h>0&&g>0)return h===1&&g===1&&e.editorType!==rt.DiffEditor?ne.LineReplacement:this._renderSideBySide.read(t)!=="never"&&ig.fitsInsideViewport(this._editor,this._previewTextModel,s,t)?ne.SideBySide:ne.LineReplacement;if(e.editorType===rt.DiffEditor){if(pI(u,s,n))return ne.Deletion;if(fI(i)&&this._useCodeShifting.read(t)==="always")return ne.InsertionMultiLine}return ne.SideBySide}_determineRenderState(e,t,i,n){if(e.inlineEdit.action?.kind==="jumpTo")return{kind:ne.JumpTo,position:e.inlineEdit.action.position,viewData:SE};const s=e.inlineEdit;let r=this._determineView(e,t,i,n);if(this._willRenderAboveCursor(t,s,r))switch(r){case ne.LineReplacement:case ne.WordReplacements:r=ne.SideBySide;break}this._previousView={id:this._getCacheId(e),view:r,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now(),uri:this._editorObs.model.get().uri};const a=i.flatMap(g=>g.innerChanges??[]),l=this._editor.getModel(),d=a.map(g=>({originalRange:g.originalRange,modifiedRange:g.modifiedRange,original:s.originalText.getValueOfRange(g.originalRange),modified:n.getValueOfRange(g.modifiedRange)})),c=FV(s,d,l);switch(r){case ne.InsertionInline:return{kind:ne.InsertionInline,viewData:c};case ne.SideBySide:return{kind:ne.SideBySide,viewData:c};case ne.Collapsed:return{kind:ne.Collapsed,viewData:c};case ne.Custom:return{kind:ne.Custom,displayLocation:e.displayLocation,viewData:c}}if(r===ne.Deletion)return{kind:ne.Deletion,originalRange:s.originalLineRange,deletions:a.map(g=>g.originalRange),viewData:c};if(r===ne.InsertionMultiLine){const g=a[0];return{kind:ne.InsertionMultiLine,lineNumber:g.originalRange.startLineNumber,column:g.originalRange.startColumn,text:n.getValueOfRange(g.modifiedRange),viewData:c}}const h=d.map(g=>new Ae(g.originalRange,g.modified));if(h.length!==0){if(r===ne.WordReplacements){let g=HV(h,s.originalText);return g.some(u=>u.range.isEmpty())&&(g=mI(h,s.originalText)),{kind:ne.WordReplacements,replacements:g,alternativeAction:e.inlineEdit.action?.alternativeAction,viewData:c}}if(r===ne.LineReplacement)return{kind:ne.LineReplacement,originalRange:s.originalLineRange,modifiedRange:s.modifiedLineRange,modifiedLines:s.modifiedLineRange.mapToLineArray(g=>n.getLineAt(g)),replacements:a.map(g=>({originalRange:g.originalRange,modifiedRange:g.modifiedRange})),viewData:c}}}_willRenderAboveCursor(e,t,i){if(this._useCodeShifting.read(e)==="always")return!1;for(const s of t.multiCursorPositions)if(i===ne.WordReplacements&&s.lineNumber===t.originalLineRange.startLineNumber+1||i===ne.LineReplacement&&s.lineNumber>=t.originalLineRange.endLineNumberExclusive&&s.lineNumber<t.modifiedLineRange.endLineNumberExclusive+t.modifiedLineRange.length)return!0;return!1}_viewHasBeenShownLongerThan(e){const t=this._previousView?.timestamp;if(!t)throw new at("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-t>=e}};Uv=MV([AV(5,ee)],Uv);const SE=new bC(-1,-1,-1,-1,-1,-1,-1,!0);function FV(o,e,t){if(!o.edit)return SE;const i=o.cursorPosition,n=e.length===0?!1:e[0].modified.startsWith(t.getEOL());return new bC(o.edit.replacements.length===0?0:o.edit.replacements[0].range.getStartPosition().column-i.column,o.lineEdit.lineRange.startLineNumber-i.lineNumber+(n&&o.lineEdit.lineRange.startLineNumber>=i.lineNumber?1:0),o.lineEdit.lineRange.length,o.lineEdit.newLines.length,e.reduce((r,a)=>r+a.original.length,0),e.reduce((r,a)=>r+a.modified.length,0),e.length,e.every(r=>r.original===e[0].original&&r.modified===e[0].modified))}function CE(o){return o.every(t=>t.innerChanges.every(i=>e(i)));function e(t){return!(!t.originalRange.isEmpty()||!(t.modifiedRange.startLineNumber===t.modifiedRange.endLineNumber))}}function WV(o,e){if(!e||!CE(o))return!1;const t=e;return o.every(n=>n.innerChanges.every(s=>i(s)));function i(n){const s=n.originalRange.getStartPosition();return!!(t.isBeforeOrEqual(s)||s.lineNumber<t.lineNumber)}}function fI(o){const e=o.flatMap(i=>i.innerChanges??[]);if(e.length!==1)return!1;const t=e[0];return!(!t.originalRange.isEmpty()||t.modifiedRange.startLineNumber===t.modifiedRange.endLineNumber)}function pI(o,e,t){return o.map(n=>({original:e.originalText.getValueOfRange(n.originalRange),modified:t.getValueOfRange(n.modifiedRange)})).every(({original:n,modified:s})=>s.trim()===""&&n.length>0&&(n.length>s.length||n.trim()!==""))}function HV(o,e){return wE(o,e,t=>/^[a-zA-Z]$/.test(t))}function mI(o,e){return wE(o,e,t=>!/^\s$/.test(t))}function wE(o,e,t){const i=[];o.sort((s,r)=>I.compareRangesUsingStarts(s.range,r.range));for(const s of o){let r=s.range.startColumn-1,a=s.range.endColumn-2,l="",d="";const c=e.getLineAt(s.range.startLineNumber),h=e.getLineAt(s.range.endLineNumber);if(n(c[r]))for(;n(c[r-1]);)l=c[r-1]+l,r--;if(n(h[a])||a<r)for(;n(h[a+1]);)d+=h[a+1],a++;let g=new Ae(new I(s.range.startLineNumber,r+1,s.range.endLineNumber,a+2),l+s.text+d);i.length>0&&I.areIntersectingOrTouching(i[i.length-1].range,g.range)&&(g=Ae.joinReplacements([i.pop(),g],e)),i.push(g)}function n(s){return s===void 0?!1:t(s)}return i}var VV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},BV=function(o,e){return function(t,i){e(t,i,o)}};let $v=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._model=t,this._showCollapsed=i,this._inlineEdit=R(this,s=>{const r=this._model.read(s);if(!r||!this._editor.getModel())return;const l=r.inlineEditState.read(s);if(!l)return;const d=l.inlineSuggestion.action;let c;if(d?.kind==="edit"){const h=d.stringEdit,g=l.inlineSuggestion.originalTextRef.getTransformer(),u=h.replacements.map(f=>{const p=I.fromPositions(g.getPosition(f.replaceRange.start),g.getPosition(f.replaceRange.endExclusive));return new Ae(p,f.newText)});c=new $n(u)}else c=void 0;return new K2(l.inlineSuggestion.originalTextRef,d,c,r.primaryPosition.read(void 0),r.allPositions.read(void 0),l.inlineSuggestion.source.inlineSuggestions.commands??[],l.inlineSuggestion)}),this._inlineEditModel=R(this,s=>{const r=this._model.read(s);if(!r)return;const a=this._inlineEdit.read(s);if(!a)return;const l=R(this,d=>{if(this._editorObs.isFocused.read(d)){if(r.tabShouldJumpToInlineEdit.read(d))return qe.Jump;if(r.tabShouldAcceptInlineEdit.read(d))return qe.Accept}return qe.Inactive});return new G2(r,a,l)}),this._editorObs=We(this._editor),this.view=this._register(n.createInstance(Uv,this._editor,this._inlineEditModel,this._model.map(s=>s?pp.fromInlineCompletionModel(s):void 0),this._inlineEdit.map(s=>s?fp.fromInlineSuggestion(s.inlineCompletion):void 0),this._showCollapsed))}};$v=VV([BV(3,ee)],$v);var UV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},$V=function(o,e){return function(t,i){e(t,i,o)}},Cr;let zv=(Cr=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._model=t,this._focusIsInMenu=i,this._instantiationService=n,this._ghostTexts=R(this,s=>this._model.read(s)?.ghostTexts.read(s)??[]),this._inlineEdit=R(this,s=>this._model.read(s)?.inlineEditState.read(s)?.inlineSuggestion),this._everHadInlineEdit=So(this,(s,r)=>r||!!this._inlineEdit.read(s)||!!this._model.read(s)?.inlineCompletionState.read(s)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=Ne(this,void 0),this._showInlineEditCollapsed=R(this,s=>(this._model.read(s)?.showCollapsed.read(s)??!1)&&!this._indicatorIsHoverVisible.read(s)?.read(s)),this._inlineEditWidget=MS(s=>{if(this._everHadInlineEdit.read(s))return this._instantiationService.createInstance($v,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=R(s=>{const r=this._model.read(s);if(!r)return;const a=r.state.read(s);if(a?.kind==="ghostText"&&a.inlineSuggestion?.showInlineEditMenu)return{displayRange:Qe.ofLength(a.primaryGhostText.lineNumber,1),tabAction:R(this,l=>this._editorObs.isFocused.read(l)?qe.Accept:qe.Inactive),gutterIndicatorOffset:_e(zV(a.inlineSuggestion,this._editor)),inlineSuggestion:a.inlineSuggestion,model:r};if(a?.kind==="inlineEdit"){const l=this._inlineEditWidget.read(s)?.view;if(!l)return;const d=l.displayRange.read(s);return d?{displayRange:d,tabAction:R(c=>{if(this._editorObs.isFocused.read(c)){if(r.tabShouldJumpToInlineEdit.read(c))return qe.Jump;if(r.tabShouldAcceptInlineEdit.read(c))return qe.Accept}return qe.Inactive}),gutterIndicatorOffset:l.gutterIndicatorOffset,inlineSuggestion:a.inlineSuggestion,model:r}:void 0}else return}),this._stablizedGhostTexts=RW(this._ghostTexts,this._store),this._editorObs=We(this._editor),this._ghostTextWidgets=TS(this,this._stablizedGhostTexts,(s,r)=>r.add(this._createGhostText(s))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map(s=>s.fontFamily),this._register(Sk(R(s=>`
47
- .monaco-editor .ghost-text-decoration,
48
- .monaco-editor .ghost-text-decoration-preview,
49
- .monaco-editor .ghost-text {
50
- font-family: ${this._fontFamily.read(s)};
51
- }`))),this._register(new r_(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(tg,this._editorObs,R(s=>{const r=this._gutterIndicatorState.read(s);if(r)return new bE(fp.fromInlineSuggestion(r.inlineSuggestion),r.displayRange,pp.fromInlineCompletionModel(r.model),r.inlineSuggestion.action?.kind==="edit"?r.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((s,r)=>s?.tabAction?.read(r)??qe.Inactive),this._gutterIndicatorState.map((s,r)=>s?.gutterIndicatorOffset?.read(r)??0),this._inlineEditWidget.map((s,r)=>s?.view.inlineEditsIsHovered.read(r)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),R(s=>{const r=this._inlineEditWidget.read(s);if(r)return s.store.add(this._instantiationService.createInstance(Pv,r._inlineEditModel,_e(this._indicator),r.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(e){return this._instantiationService.createInstance(mc,this._editor,R(t=>{const i=this._model.read(t),n=i?.inlineCompletionState.read(t)?.inlineSuggestion;return!i||!n?{ghostText:e.read(t),handleInlineCompletionShown:()=>{},warning:void 0}:{ghostText:e.read(t),handleInlineCompletionShown:s=>i.handleInlineSuggestionShown(n,ne.GhostText,s,Date.now()),warning:xC.from(i?.warning.read(t))}}),{useSyntaxHighlighting:this._editorObs.getOption(71).map(t=>t.syntaxHighlightingEnabled),highlightShortSuggestions:!0})}shouldShowHoverAtViewZone(e){return this._ghostTextWidgets.get()[0]?.ownsViewZone(e)??!1}},Cr.hot=gS(Cr),Cr);zv=UV([$V(3,ee)],zv);function zV(o,e){const t=o.getSingleTextEdit(),i=e.getModel();if(!i)return 0;const n=i.getEOL();if(t.range.isEmpty()&&t.text.startsWith(n)){const s=e.getLineHeightForPosition(t.range.getStartPosition());return jV(t.text,n)*s}return 0}function jV(o,e){if(!e.length)return 0;let t=0,i=0;for(;o.startsWith(e,i);)t++,i+=e.length;return t}var qV=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Mn=function(o,e){return function(t,i){e(t,i,o)}},cn;LH(o=>Ot.get(o));var Sn;let Ot=(Sn=class extends A{static getInFocusedEditorOrParent(e){const t=_D(e);return t?cn.get(t):null}static get(e){return vF(e.getContribution(cn.ID))}constructor(e,t,i,n,s,r,a,l,d,c){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=n,this._commandService=s,this._debounceService=r,this._languageFeaturesService=a,this._accessibilitySignalService=l,this._keybindingService=d,this._accessibilityService=c,this._enabled=R(this,p=>this._enabledInConfig.read(p)&&(!this._isScreenReaderEnabled.read(p)||!this._editorDictationInProgress.read(p))),this._focusIsInMenu=Ne(this,!1),this._focusIsInEditorOrMenu=R(this,p=>{const _=this._editorObs.isFocused.read(p),v=this._focusIsInMenu.read(p);return _||v}),this._cursorIsInIndentation=R(this,p=>{const _=this._editorObs.cursorPosition.read(p);if(_===null)return!1;const v=this._editorObs.model.read(p);if(!v)return!1;this._editorObs.versionId.read(p);const S=v.getLineIndentColumn(_.lineNumber);return _.column<=S}),this.model=MS(this,p=>{if(this._editorObs.isReadonly.read(p))return;const _=this._editorObs.model.read(p);return _?this._instantiationService.createInstance(fv,_,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabled,this.editor):void 0}),this._playAccessibilitySignal=xs(this),this._view=R(p=>p.store.add(this._instantiationService.createInstance(zv.hot.read(p),this.editor,this.model,this._focusIsInMenu))),this._editorObs=We(this.editor),this._positions=R(this,p=>this._editorObs.selections.read(p)?.map(_=>_.getEndPosition())??[new $(1,1)]),this._suggestWidgetAdapter=this._register(new r2(this._editorObs,p=>this.model.get()?.handleSuggestAccepted(p),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=xt(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._isScreenReaderEnabled=xt(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=xt(this,this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue("editorDictation.inProgress")===!0),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(p=>!0),this._view.recomputeInitiallyAndOnChange(this._store),cn._instances.add(this),this._register(ke(()=>cn._instances.delete(this))),this._register(le(p=>{const _=this.model.read(p);if(!_)return;const v=_.state.read(p);if(!v||!this._focusIsInEditorOrMenu.read(void 0))return;const S=v.kind==="inlineEdit"?v.nextEditUri:void 0;for(const y of cn._instances)y!==this&&(S&&ro(S,y.editor.getModel()?.uri)?y.model.read(void 0)?.trigger():y.reject())})),this._register(le(p=>{const _=this.model.read(p),v=this.editor.getModel()?.uri;!_||!v||p.store.add(_.onDidAccept(()=>{for(const S of cn._instances){if(S===this)continue;const y=S.model.read(void 0)?.state.read(void 0);y?.kind==="inlineEdit"&&ro(y.nextEditUri,v)&&S.model.read(void 0)?.stop("automatic")}}))})),this._register(Aa(this._editorObs.onDidType,(p,_)=>{this._enabled.get()&&this.model.get()?.trigger()})),this._register(Aa(this._editorObs.onDidPaste,(p,_)=>{this._enabled.get()&&this.model.get()?.trigger()}));const h=new Set([Oh.Tab.id,Oh.DeleteLeft.id,Oh.DeleteRight.id,ul,"acceptSelectedSuggestion",Mu.ID,Ou.ID,De.NextMatchFindAction,lc.ID,ku.ID,Tu.ID,Pu.ID,...Ck.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand(p=>{if(h.has(p.commandId)&&e.hasTextFocus()&&this._enabled.get()){let _=!1;p.commandId===ul&&(_=!0),this._editorObs.forceUpdate(v=>{this.model.get()?.trigger(v,{noDelay:_})})}})),this._register(Aa(this._editorObs.selections,(p,_,v)=>{if(v.some(S=>S.reason===3||S.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;const S=this.model.get();if(!S)return;S.state.get()?.kind==="ghostText"&&this.model.get()?.stop()}})),this._register(le(p=>{const _=this._focusIsInEditorOrMenu.read(p),v=this.model.read(void 0);if(_){const S=v?.state.read(void 0);(!S||S.kind!=="inlineEdit"||!S.nextEditUri)&&en(y=>{for(const x of cn._instances)x!==this&&x.model.read(void 0)?.stop("automatic",y)});return}this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(71).keepOnBlur||gl.dropDownVisible||v&&(v.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&v.inlineEditAvailable.read(void 0)||en(S=>{v.stop("automatic",S)}))})),this._register(le(p=>{const _=this.model.read(p)?.inlineCompletionState.read(p);_?.suggestItem?_.primaryGhostText.lineCount>=2&&this._suggestWidgetAdapter.forceRenderingAbove():this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(ke(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));const g=So(this,(p,_)=>{const S=this.model.read(p)?.state.read(p);return this._suggestWidgetAdapter.selectedItem.get()?_:S?.inlineSuggestion?.semanticId});this._register(wk(R(p=>(this._playAccessibilitySignal.read(p),g.read(p),{})),async(p,_,v,S)=>{let y=this.model.get(),x=y?.state.get();if(!x||!y||(await Ff(50,Iw(S)),await yk(this._suggestWidgetAdapter.selectedItem,ad,()=>!1,Iw(S)),y=this.model.get(),x=y?.state.get(),!x||!y))return;const b=x.kind==="ghostText"?y.textModel.getLineContent(x.primaryGhostText.lineNumber):"";this._accessibilitySignalService.playSignal(x.kind==="ghostText"?$d.inlineSuggestion:$d.nextEditSuggestion),this.editor.getOption(12)&&(x.kind==="ghostText"?this._provideScreenReaderUpdate(x.primaryGhostText.renderForScreenReader(b)):this._provideScreenReaderUpdate(""))})),this._register(this._configurationService.onDidChangeConfiguration(p=>{p.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")});const u=new NW(this._contextKeyService);this._register(u.bind(ge.cursorInIndentation,this._cursorIsInIndentation)),this._register(u.bind(ge.hasSelection,p=>!this._editorObs.cursorSelection.read(p)?.isEmpty())),this._register(u.bind(ge.cursorAtInlineEdit,this.model.map((p,_)=>p?.inlineEditState?.read(_)?.cursorAtInlineEdit.read(_)))),this._register(u.bind(ge.tabShouldAcceptInlineEdit,this.model.map((p,_)=>!!p?.tabShouldAcceptInlineEdit.read(_)))),this._register(u.bind(ge.tabShouldJumpToInlineEdit,this.model.map((p,_)=>!!p?.tabShouldJumpToInlineEdit.read(_)))),this._register(u.bind(ge.inlineEditVisible,p=>this.model.read(p)?.inlineEditState.read(p)!==void 0)),this._register(u.bind(ge.inlineSuggestionHasIndentation,p=>this.model.read(p)?.getIndentationInfo(p)?.startsWithIndentation)),this._register(u.bind(ge.inlineSuggestionHasIndentationLessThanTabSize,p=>this.model.read(p)?.getIndentationInfo(p)?.startsWithIndentationLessThanTabSize)),this._register(u.bind(ge.suppressSuggestions,p=>{const v=this.model.read(p)?.inlineCompletionState.read(p);return v?.primaryGhostText&&v?.inlineSuggestion?v.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(u.bind(ge.inlineSuggestionAlternativeActionVisible,p=>{const S=this.model.read(p)?.inlineEditState.read(p)?.inlineSuggestion.action;return S&&S.kind==="edit"&&S.alternativeAction!==void 0})),this._register(u.bind(ge.inlineSuggestionVisible,p=>{const v=this.model.read(p)?.inlineCompletionState.read(p);return!!v?.inlineSuggestion&&v?.primaryGhostText!==void 0&&!v?.primaryGhostText.isEmpty()}));const f=R(this,p=>{const S=this.model.read(p)?.inlineCompletionState.read(p)?.primaryGhostText;return!S||S.isEmpty()?void 0:new $(S.lineNumber,S.parts[0].column)});this._register(u.bind(ge.cursorBeforeGhostText,p=>{const _=f.read(p);if(!_)return!1;const v=this._editorObs.cursorPosition.read(p);return v?_.equals(v):!1})),this._register(this._instantiationService.createInstance(nv,this.editor))}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}_provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let n;!t&&i&&this.editor.getOption(169)&&(n=m(1247,"Inspect this in the accessible view ({0})",i.getAriaLabel())),mi(n?e+", "+n:e)}shouldShowHoverAt(e){const t=this.model.get()?.primaryGhostText.get();return t?t.parts.some(i=>e.containsPosition(new $(t.lineNumber,i.column))):!1}shouldShowHoverAtViewZone(e){return this._view.get().shouldShowHoverAtViewZone(e)}reject(){en(e=>{const t=this.model.get();if(t&&(t.stop("explicitCancel",e),this._focusIsInEditorOrMenu.get()))for(const i of cn._instances)i!==this&&!i._focusIsInEditorOrMenu.get()&&i.model.get()?.stop("automatic",e)})}jump(){const e=this.model.get();e&&e.jump()}},cn=Sn,Sn._instances=new Set,Sn.hot=gS(Sn),Sn.ID="editor.contrib.inlineCompletionsController",Sn);Ot=cn=qV([Mn(1,ee),Mn(2,pe),Mn(3,Ie),Mn(4,it),Mn(5,Hi),Mn(6,G),Mn(7,rS),Mn(8,Te),Mn(9,Co)],Ot);const Jg=class Jg extends F{constructor(){super({id:Jg.ID,label:L(1224,"Show Next Inline Suggestion"),precondition:T.and(C.writable,ge.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){Ot.get(t)?.model.get()?.next()}};Jg.ID=Y1;let jv=Jg;const Qg=class Qg extends F{constructor(){super({id:Qg.ID,label:L(1225,"Show Previous Inline Suggestion"),precondition:T.and(C.writable,ge.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){Ot.get(t)?.model.get()?.previous()}};Qg.ID=X1;let qv=Qg;const KV="vscode://schemas/inlineCompletionProviderIdArgs";function GV(o){const e=[];return o.providerId&&(e.push(o.providerId.toStringWithoutVersion()),e.push(o.providerId.extensionId+":*")),e}const _I=RF(DF({showNoResultNotification:bh(vy()),providerId:bh(kF(KV,CF())),explicit:bh(vy()),changeHintData:bh(IF())}),xF());class ZV extends F{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:L(1226,"Trigger Inline Suggestion"),precondition:C.writable,metadata:{description:m(1213,"Triggers an inline suggestion in the editor."),args:[{name:"args",description:m(1214,"Options for triggering inline suggestions."),isOptional:!0,schema:_I.getJSONSchema()}]}})}async run(e,t,i){const n=e.get(Lt),s=e.get(G),r=Ot.get(t),a=_I.validateOrThrow(i),l=a?.providerId?s.inlineCompletionsProvider.all(t.getModel()).find(d=>GV(d).some(c=>c===a.providerId)):void 0;await Ik(async d=>{await r?.model.get()?.trigger(d,{provider:l,explicit:a?.explicit??!0,changeHint:a?.changeHintData?{data:a.changeHintData}:void 0}),r?.playAccessibilitySignal(d)}),a?.showNoResultNotification&&(r?.model.get()?.state.get()||n.notify({severity:kf.Info,message:m(1215,"No inline suggestion is available.")}))}}class XV extends F{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:L(1227,"Accept Next Word Of Inline Suggestion"),precondition:T.and(C.writable,ge.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:T.and(C.writable,ge.inlineSuggestionVisible,ge.cursorBeforeGhostText,zc.negate())},menuOpts:[{menuId:q.InlineSuggestionToolbar,title:m(1216,"Accept Word"),group:"primary",order:2}]})}async run(e,t){await Ot.get(t)?.model.get()?.acceptNextWord()}}class YV extends F{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:L(1228,"Accept Next Line Of Inline Suggestion"),precondition:T.and(C.writable,ge.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:q.InlineSuggestionToolbar,title:m(1217,"Accept Line"),group:"secondary",order:2}]})}async run(e,t){await Ot.get(t)?.model.get()?.acceptNextLine()}}class JV extends F{constructor(){super({id:ul,label:L(1229,"Accept Inline Suggestion"),precondition:T.or(ge.inlineSuggestionVisible,ge.inlineEditVisible),menuOpts:[{menuId:q.InlineSuggestionToolbar,title:m(1218,"Accept"),group:"primary",order:2},{menuId:q.InlineEditsActions,title:m(1219,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:T.or(T.and(ge.inlineSuggestionVisible,C.tabMovesFocus.toNegated(),X.Visible.toNegated(),C.hoverFocused.toNegated(),ge.hasSelection.toNegated(),ge.inlineSuggestionHasIndentationLessThanTabSize),T.and(ge.inlineEditVisible,C.tabMovesFocus.toNegated(),X.Visible.toNegated(),C.hoverFocused.toNegated(),ge.tabShouldAcceptInlineEdit))}]})}async run(e,t){const i=Ot.getInFocusedEditorOrParent(e);i&&(i.model.get()?.accept(i.editor),i.editor.focus())}}di.registerKeybindingRule({id:ul,weight:202,primary:2,when:T.and(ge.inInlineEditsPreviewEditor)});class QV extends F{constructor(){super({id:Yf,label:L(1230,"Accept Inline Suggestion Alternative Action"),precondition:T.and(ge.inlineSuggestionAlternativeActionVisible,ge.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(e,t){const i=Ot.getInFocusedEditorOrParent(e);i&&(i.model.get()?.accept(i.editor,!0),i.editor.focus())}}di.registerKeybindingRule({id:Yf,weight:203,primary:1026,when:T.and(ge.inInlineEditsPreviewEditor)});class eB extends F{constructor(){super({id:J1,label:L(1231,"Jump to next inline edit"),precondition:ge.inlineEditVisible,menuOpts:[{menuId:q.InlineEditsActions,title:m(1220,"Jump"),group:"primary",order:1,when:ge.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:T.and(ge.inlineEditVisible,C.tabMovesFocus.toNegated(),X.Visible.toNegated(),C.hoverFocused.toNegated(),ge.tabShouldJumpToInlineEdit)}})}async run(e,t){const i=Ot.get(t);i&&i.jump()}}const ef=class ef extends F{constructor(){super({id:ef.ID,label:L(1232,"Hide Inline Suggestion"),precondition:T.or(ge.inlineSuggestionVisible,ge.inlineEditVisible),kbOpts:{kbExpr:C.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:q.InlineEditsActions,title:m(1221,"Reject"),group:"primary",order:3}]})}async run(e,t){const i=Ot.getInFocusedEditorOrParent(e);en(n=>{i?.model.get()?.stop("explicitCancel",n)}),i?.editor.focus()}};ef.ID=Q1;let ng=ef;const tf=class tf extends F{constructor(){super({id:tf.ID,label:L(1233,"Toggle Inline Suggestions Show Collapsed"),precondition:T.true()})}async run(e,t){const i=e.get(Ie),n=i.getValue("editor.inlineSuggest.edits.showCollapsed");i.updateValue("editor.inlineSuggest.edits.showCollapsed",!n)}};tf.ID=o_;let Kv=tf;di.registerKeybindingRule({id:ng.ID,weight:-1,primary:9,secondary:[1033],when:T.and(ge.inInlineEditsPreviewEditor)});const nf=class nf extends tt{constructor(){super({id:nf.ID,title:m(1222,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:q.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:T.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e){const t=e.get(Ie),n=t.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";t.updateValue("editor.inlineSuggest.showToolbar",n)}};nf.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";let Gv=nf;class tB extends F{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:m(1223,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:T.or(ge.inlineEditVisible,ge.inlineSuggestionVisible)})}async run(e,t){const i=e.get(li),s=Ot.get(t)?.model.get();if(!s)return;const r=s.extractReproSample(),l=Qn(JSON.stringify({inlineCompletion:r.inlineCompletion},null,4)).map(c=>"// "+c).join(`
52
- `),d=`${r.documentValue}
53
-
54
- // <json>
55
- ${l}
56
- // </json>
57
- `;return await i.writeText(d),{reproCase:d}}}var iB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Eh=function(o,e){return function(t,i){e(t,i,o)}};class nB{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let Zv=class{constructor(e,t,i,n,s){this._editor=e,this.accessibilityService=t,this._instantiationService=i,this._telemetryService=n,this._markdownRendererService=s,this.hoverOrdinal=4,this.hideCopyButton=!0}suggestHoverAnchor(e){const t=Ot.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const n=i.detail;if(t.shouldShowHoverAtViewZone(n.viewZoneId))return new ld(1e3,this,I.fromPositions(this._editor.getModel().validatePosition(n.positionBefore||n.position)),e.event.posx,e.event.posy,!1)}if(i.type===7&&t.shouldShowHoverAt(i.range))return new ld(1e3,this,i.range,e.event.posx,e.event.posy,!1);if(i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range))return new ld(1e3,this,i.range,e.event.posx,e.event.posy,!1);if(i.type===9&&i.element){const n=mc.getWarningWidgetContext(i.element);if(n&&t.shouldShowHoverAt(n.range))return new ld(1e3,this,n.range,e.event.posx,e.event.posy,!1)}return null}computeSync(e,t){if(this._editor.getOption(71).showToolbar!=="onHover")return[];const i=Ot.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new nB(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new W,n=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12)&&i.add(this.renderScreenReaderText(e,n));const s=n.controller.model.get(),r=document.createElement("div");e.fragment.appendChild(r),i.add(Vc((l,d)=>{const c=d.add(this._instantiationService.createInstance(gl.hot.read(l),this._editor,!1,_e(null),s.selectedInlineCompletionIndex,s.inlineCompletionsCount,s.activeCommands,s.warning,()=>{e.onContentsChanged()}));r.replaceChildren(c.getDomNode())})),s.triggerExplicitly();const a={hoverPart:n,hoverElement:r,dispose(){i.dispose()}};return new zr([a])}getAccessibleContent(e){return m(1248,"There are inline completions here")}renderScreenReaderText(e,t){const i=new W,n=B,s=n("div.hover-row.markdown-hover"),r=z(s,n("div.hover-contents",{"aria-live":"assertive"})),a=l=>{const d=m(1249,"Suggestion:"),c=i.add(this._markdownRendererService.render(new It().appendText(d).appendCodeblock("text",l),{context:this._editor,asyncRenderCallback:()=>{r.className="hover-contents code-hover-contents",e.onContentsChanged()}}));r.replaceChildren(c.element)};return i.add(le(l=>{const d=t.controller.model.read(l)?.primaryGhostText.read(l);if(d){const c=this._editor.getModel().getLineContent(d.lineNumber);a(d.renderForScreenReader(c))}else Qh(r)})),e.fragment.appendChild(s),i}};Zv=iB([Eh(1,Co),Eh(2,ee),Eh(3,vo),Eh(4,wo)],Zv);class sB{}ae(Ot.ID,bF(Ot.hot),3);P(ZV);P(jv);P(qv);P(XV);P(YV);P(JV);P(QV);P(Kv);P(ng);P(eB);he(Gv);P(tB);he(xk);he(Lk);ea.register(Zv);sp.register(new sB);var oB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},gm=function(o,e){return function(t,i){e(t,i,o)}},_d,Js;let Sc=(Js=class{constructor(e,t,i,n){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=n,this.toUnhook=new W,this.toUnhookForKeyboard=new W,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const s=new ep(e);this.toUnhook.add(s),this.toUnhook.add(s.onMouseMoveOrRelevantKeyDown(([r,a])=>{this.startFindDefinitionFromMouse(r,a??void 0)})),this.toUnhook.add(s.onExecute(r=>{this.isEnabled(r)&&this.gotoDefinition(r.target.position,r.hasSideBySideModifier).catch(a=>{we(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(s.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(_d.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const i=e.target.position;this.startFindDefinition(i)}async startFindDefinition(e){this.toUnhookForKeyboard.clear();const t=e?this.editor.getModel()?.getWordAtPosition(e):null;if(!t){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===t.startColumn&&this.currentWordAtPosition.endColumn===t.endColumn&&this.currentWordAtPosition.word===t.word)return;this.currentWordAtPosition=t;const i=new e1(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=dt(r=>this.findDefinition(e,r));let n;try{n=await this.previousPromise}catch(r){we(r);return}if(!n||!n.length||!i.validate(this.editor)){this.removeLinkDecorations();return}const s=n[0].originSelectionRange?I.lift(n[0].originSelectionRange):new I(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn);if(n.length>1){let r=s;for(const{originSelectionRange:a}of n)a&&(r=I.plusRange(r,a));this.addDecoration(r,new It().appendText(m(1120,"Click to show {0} definitions.",n.length)))}else{const r=n[0];return r.uri?this.textModelResolverService.createModelReference(r.uri).then(a=>{if(!a.object||!a.object.textEditorModel){a.dispose();return}const{object:{textEditorModel:l}}=a,{startLineNumber:d}=r.range;if(d<1||d>l.getLineCount()){a.dispose();return}const c=this.getPreviewValue(l,d,r),h=this.languageService.guessLanguageIdByFilepathOrFirstLine(l.uri);this.addDecoration(s,c?new It().appendCodeblock(h||"",c):void 0),a.dispose()}):void 0}}getPreviewValue(e,t,i){let n=i.range;return n.endLineNumber-n.startLineNumber>=_d.MAX_SOURCE_PREVIEW_LINES&&(n=this.getPreviewRangeBasedOnIndentation(e,t)),n=e.validateRange(n),this.stripIndentationFromPreviewRange(e,t,n)}stripIndentationFromPreviewRange(e,t,i){let s=e.getLineFirstNonWhitespaceColumn(t);for(let a=t+1;a<i.endLineNumber;a++){const l=e.getLineFirstNonWhitespaceColumn(a);s=Math.min(s,l)}return e.getValueInRange(i).replace(new RegExp(`^\\s{${s-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(e,t){const i=e.getLineFirstNonWhitespaceColumn(t),n=Math.min(e.getLineCount(),t+_d.MAX_SOURCE_PREVIEW_LINES);let s=t+1;for(;s<n;s++){const r=e.getLineFirstNonWhitespaceColumn(s);if(i===r)break}return new I(t,1,s+1,1)}addDecoration(e,t){const i={range:e,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations.set([i])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){return this.editor.hasModel()&&e.isLeftClick&&e.isNoneOrSingleMouseDown&&e.target.type===6&&!(e.target.detail.injectedText?.options instanceof CS)&&(e.hasTriggerModifier||(t?t.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?Xc(this.languageFeaturesService.definitionProvider,i,e,!1,t):Promise.resolve(null)}async gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(i=>{const n=!t&&this.editor.getOption(101)&&!this.isInPeekEditor(i);return new Jc({openToSide:t,openInPeek:n,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(pe);return Bt.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}},_d=Js,Js.ID="editor.contrib.gotodefinitionatposition",Js.MAX_SOURCE_PREVIEW_LINES=8,Js);Sc=_d=oB([gm(1,ci),gm(2,ls),gm(3,G)],Sc);ae(Sc.ID,Sc,2);var rB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},vI=function(o,e){return function(t,i){e(t,i,o)}},Ka;let sg=(Ka=class extends A{constructor(e,t,i){super(),this._editor=e,this._markerService=i,this._ctxHasDiagnostics=C.selectionHasDiagnostics.bindTo(t),this._store.add(this._editor.onDidChangeCursorSelection(()=>this._update())),this._store.add(this._editor.onDidChangeModel(()=>this._update())),this._store.add(this._markerService.onMarkerChanged(n=>{const s=this._editor.getModel();s&&n.some(r=>ro(r,s.uri))&&this._update()})),this._update()}dispose(){this._ctxHasDiagnostics.reset(),super.dispose()}_update(){const e=this._editor.getModel(),t=this._editor.getSelection();if(!e||!t){this._ctxHasDiagnostics.reset();return}const n=this._markerService.read({resource:e.uri,severities:_t.Error|_t.Warning|_t.Info}).some(s=>I.areIntersecting({startLineNumber:s.startLineNumber,startColumn:s.startColumn,endLineNumber:s.endLineNumber,endColumn:s.endColumn},t));this._ctxHasDiagnostics.set(n)}},Ka.ID="editor.contrib.markerSelectionStatus",Ka);sg=rB([vI(1,pe),vI(2,Df)],sg);ae(sg.ID,sg,1);class aB extends F{constructor(){super({id:"editor.action.debugEditorGpuRenderer",label:L(1144,"Developer: Debug Editor GPU Renderer"),precondition:T.true()})}async run(e,t){const i=e.get(ee),s=await e.get(Ai).pick([{label:m(1141,"Log Texture Atlas Stats"),id:"logTextureAtlasStats"},{label:m(1142,"Save Texture Atlas"),id:"saveTextureAtlas"},{label:m(1143,"Draw Glyph"),id:"drawGlyph"}],{canPickMany:!1});if(s)switch(s.id){case"logTextureAtlasStats":i.invokeFunction(r=>{const a=r.get(Pt),l=$l.atlas;if(!$l.atlas){a.error("No texture atlas found");return}const d=l.getStats();a.info(["Texture atlas stats",...d].join(`
58
-
59
- `))});break;case"saveTextureAtlas":i.invokeFunction(async r=>{const a=r.get(so),l=r.get(Zy),d=a.getWorkspace().folders;if(d.length>0){const c=$l.atlas,h=[];for(const[g,u]of c.pages.entries())h.push(l.writeFile(Le.joinPath(d[0].uri,`textureAtlasPage${g}_actual.png`),Wh.wrap(new Uint8Array(await(await u.source.convertToBlob()).arrayBuffer()))),l.writeFile(Le.joinPath(d[0].uri,`textureAtlasPage${g}_usage.png`),Wh.wrap(new Uint8Array(await(await u.getUsagePreview()).arrayBuffer()))));await Promise.all(h)}});break;case"drawGlyph":i.invokeFunction(async r=>{const a=r.get(Ie),l=r.get(Zy),d=r.get(Ai),h=r.get(so).getWorkspace().folders;if(h.length===0)return;const g=$l.atlas,u=a.getValue("editor.fontFamily"),f=a.getValue("editor.fontSize"),p=new Dk(f,u,Yh().devicePixelRatio,$l.decorationStyleCache);let _=await d.input({prompt:"Enter a character to draw (prefix with 0x for code point))"});if(!_)return;const v=_.match(/0x(?<codePoint>[0-9a-f]+)/i)?.groups?.codePoint;v!==void 0&&(_=String.fromCodePoint(parseInt(v,16)));const S=0,x=g.getGlyph(p,_,S,0,0);if(!x)return;const b=g.pages[x.pageIndex].source.getContext("2d")?.getImageData(x.x,x.y,x.w,x.h);if(!b)return;const w=new OffscreenCanvas(b.width,b.height);Ek(w.getContext("2d")).putImageData(b,0,0);const N=await w.convertToBlob({type:"image/png"}),E=Le.joinPath(h[0].uri,`glyph_${_}_${S}_${f}px_${u.replaceAll(/[,\\\/\.'\s]/g,"_")}.png`);await l.writeFile(E,Wh.wrap(new Uint8Array(await N.arrayBuffer())))});break}}}P(aB);var qi;(function(o){o.NoAutoFocus="noAutoFocus",o.FocusIfVisible="focusIfVisible",o.AutoFocusImmediately="autoFocusImmediately"})(qi||(qi={}));class lB extends F{constructor(){super({id:Z1,label:L(1150,"Show or Focus Hover"),metadata:{description:L(1151,"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:[qi.NoAutoFocus,qi.FocusIfVisible,qi.AutoFocusImmediately],enumDescriptions:[m(1147,"The hover will not automatically take focus."),m(1148,"The hover will take focus only if it is already visible."),m(1149,"The hover will automatically take focus when it appears.")],default:qi.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:Ge(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const n=wt.get(t);if(!n)return;const s=i?.focus;let r=qi.FocusIfVisible;Object.values(qi).includes(s)?r=s:typeof s=="boolean"&&s&&(r=qi.AutoFocusImmediately);const a=d=>{const c=t.getPosition(),h=new I(c.lineNumber,c.column,c.lineNumber,c.column);n.showContentHover(h,1,2,d)},l=t.getOption(2)===2;n.isHoverVisible?r!==qi.NoAutoFocus?n.focus():a(l):a(l||r===qi.AutoFocusImmediately)}}class dB extends F{constructor(){super({id:VP,label:L(1152,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:L(1153,"Show the definition preview hover in the editor.")}})}run(e,t){const i=wt.get(t);if(!i)return;const n=t.getPosition();if(!n)return;const s=new I(n.lineNumber,n.column,n.lineNumber,n.column),r=Sc.get(t);if(!r)return;r.startFindDefinitionFromCursor(n).then(()=>{i.showContentHover(s,1,2,!0)})}}class cB extends F{constructor(){super({id:BP,label:L(1154,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(e,t){wt.get(t)?.hideContentHover()}}class hB extends F{constructor(){super({id:UP,label:L(1155,"Scroll Up Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:16,weight:100},metadata:{description:L(1156,"Scroll up the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.scrollUp()}}class uB extends F{constructor(){super({id:$P,label:L(1157,"Scroll Down Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:18,weight:100},metadata:{description:L(1158,"Scroll down the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.scrollDown()}}class gB extends F{constructor(){super({id:zP,label:L(1159,"Scroll Left Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:15,weight:100},metadata:{description:L(1160,"Scroll left the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.scrollLeft()}}class fB extends F{constructor(){super({id:jP,label:L(1161,"Scroll Right Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:17,weight:100},metadata:{description:L(1162,"Scroll right the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.scrollRight()}}class pB extends F{constructor(){super({id:qP,label:L(1163,"Page Up Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:L(1164,"Page up the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.pageUp()}}class mB extends F{constructor(){super({id:KP,label:L(1165,"Page Down Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:L(1166,"Page down the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.pageDown()}}class _B extends F{constructor(){super({id:GP,label:L(1167,"Go To Top Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:L(1168,"Go to the top of the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.goToTop()}}class vB extends F{constructor(){super({id:ZP,label:L(1169,"Go To Bottom Hover"),precondition:C.hoverFocused,kbOpts:{kbExpr:C.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:L(1170,"Go to the bottom of the editor hover.")}})}run(e,t){const i=wt.get(t);i&&i.goToBottom()}}class bB extends F{constructor(){super({id:Zf,label:XP,alias:"Increase Hover Verbosity Level",precondition:C.hoverVisible})}run(e,t,i){const n=wt.get(t);if(!n)return;const s=i?.index!==void 0?i.index:n.focusedHoverPartIndex();n.updateHoverVerbosityLevel(gi.Increase,s,i?.focus)}}class SB extends F{constructor(){super({id:Xf,label:YP,alias:"Decrease Hover Verbosity Level",precondition:C.hoverVisible})}run(e,t,i){const n=wt.get(t);if(!n)return;const s=i?.index!==void 0?i.index:n.focusedHoverPartIndex();wt.get(t)?.updateHoverVerbosityLevel(gi.Decrease,s,i?.focus)}}var CB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},id=function(o,e){return function(t,i){e(t,i,o)}};const Ci=B;class wB{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const bI={type:1,filter:{include:Re.QuickFix},triggerAction:Zt.QuickFixHover};let Xv=class{constructor(e,t,i,n,s,r){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=n,this._menuService=s,this._contextKeyService=r,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),n=e.range;if(!i.isValidRange(e.range))return[];const s=n.startLineNumber,r=i.getLineMaxColumn(s),a=[];for(const l of t){const d=l.range.startLineNumber===s?l.range.startColumn:1,c=l.range.endLineNumber===s?l.range.endColumn:r,h=this._markerDecorationsService.getMarker(i.uri,l);if(!h)continue;const g=new I(e.range.startLineNumber,d,e.range.startLineNumber,c);a.push(new wB(this,g,h))}return a}renderHoverParts(e,t){if(!t.length)return new zr([]);const i=[];t.forEach(r=>{const a=this._renderMarkerHover(r);e.fragment.appendChild(a.hoverElement),i.push(a)});const n=t.length===1?t[0]:t.sort((r,a)=>_t.compare(r.marker.severity,a.marker.severity))[0],s=this._renderMarkerStatusbar(e,n);return new zr(i,s)}getAccessibleContent(e){return e.marker.message}_renderMarkerHover(e){const t=new W,i=Ci("div.hover-row"),n=z(i,Ci("div.marker.hover-contents")),{source:s,message:r,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(n);const d=z(n,Ci("span"));if(d.style.whiteSpace="pre-wrap",d.innerText=r,s||a)if(a&&typeof a!="string"){const h=Ci("span");if(s){const p=z(h,Ci("span"));p.innerText=s}const g=z(h,Ci("a.code-link"));g.setAttribute("href",a.target.toString(!0)),t.add(re(g,"click",p=>{this._openerService.open(a.target,{allowCommands:!0}),p.preventDefault(),p.stopPropagation()}));const u=z(g,Ci("span"));u.innerText=a.value;const f=z(n,h);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{const h=z(n,Ci("span"));h.style.opacity="0.6",h.style.paddingLeft="6px",h.innerText=s&&a?`${s}(${a})`:s||`(${a})`}if(ri(l))for(const{message:h,resource:g,startLineNumber:u,startColumn:f}of l){const p=z(n,Ci("div"));p.style.marginTop="8px";const _=z(p,Ci("a"));_.innerText=`${on(g)}(${u}, ${f}): `,_.style.cursor="pointer",t.add(re(_,"click",S=>{if(S.stopPropagation(),S.preventDefault(),this._openerService){const y={selection:{startLineNumber:u,startColumn:f}};this._openerService.open(g,{fromUserGesture:!0,editorOptions:y}).catch(we)}}));const v=z(p,Ci("span"));v.innerText=h,this._editor.applyFontInfo(v)}return{hoverPart:e,hoverElement:i,dispose:()=>t.dispose()}}_renderMarkerStatusbar(e,t){const i=new W;if(t.marker.severity===_t.Error||t.marker.severity===_t.Warning||t.marker.severity===_t.Info){const r=Kr.get(this._editor);r&&e.statusBar.addAction({label:m(1180,"View Problem"),commandId:lc.ID,run:()=>{e.hide(),r.showAtMarker(t.marker),this._editor.focus()}})}const n=[];for(const[,r]of this._menuService.getMenuActions(q.MarkerHoverStatusBar,this._contextKeyService))for(const a of r)a instanceof Or&&a.enabled&&n.push(a);const s=()=>{for(const r of n)e.statusBar.addAction({label:r.label,commandId:r.id,iconClass:r.class,run:()=>{e.hide(),this._editor.setSelection(I.lift(t.range)),r.run()}})};if(this._editor.getOption(104))s();else{const r=e.statusBar.append(Ci("div"));this.recentMarkerCodeActionsInfo&&(xw.makeKey(this.recentMarkerCodeActionsInfo.marker)===xw.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||n.length===0&&(r.textContent=m(1181,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?A.None:no(()=>r.textContent=m(1182,"Checking for quick fixes..."),200,i);r.textContent||(r.textContent=" ");const l=this.getCodeActions(t.marker);i.add(ke(()=>l.cancel())),l.then(d=>{if(a.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:d.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){d.dispose(),n.length===0?r.textContent=m(1183,"No quick fixes available"):r.style.display="none",s();return}r.style.display="none";let c=!1;i.add(ke(()=>{c||d.dispose()})),e.statusBar.addAction({label:m(1184,"Quick Fix..."),commandId:Gf,run:g=>{c=!0;const u=$r.get(this._editor),f=Tt(g);e.hide(),u?.showCodeActions(bI,d,{x:f.left,y:f.top,width:f.width,height:f.height})}});const h=d.validActions.find(g=>g.action.isAI);h?e.statusBar.addAction({label:h.action.title,commandId:h.action.command?.id??"",iconClass:ce.asClassName(U.sparkle),run:()=>{$r.get(this._editor)?.applyCodeAction(h,!1,!1,Ns.FromProblemsHover)}}):s(),e.onContentsChanged()},we)}return i}getCodeActions(e){return dt(t=>Da(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new I(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),bI,Un.None,t))}};Xv=CB([id(1,Rk),id(2,Xr),id(3,G),id(4,bo),id(5,pe)],Xv);class yB{constructor(e){this._editor=e}computeSync(e){const t=r=>({value:r}),i=this._editor.getLineDecorations(e.lineNumber),n=[],s=e.laneOrLine==="lineNo";if(!i)return n;for(const r of i){const a=r.options.glyphMargin?.position??ym.Center;if(!s&&a!==e.laneOrLine)continue;const l=s?r.options.lineNumberHoverMessage:r.options.glyphMarginHoverMessage;!l||Gd(l)||n.push(...dL(l).map(t))}return n}}var IB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},xB=function(o,e){return function(t,i){e(t,i,o)}},Yv;const SI=B;var wr;let Jv=(wr=class extends A{constructor(e,t){super(),this._markdownRendererService=t,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new W),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new tL(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new tD(this._editor,new yB(this._editor))),this._register(this._hoverOperation.onResult(i=>this._withResult(i))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(59)&&this._updateFont()})),this._register(co(this._hover.containerDomNode,"mouseleave",i=>{this._onMouseLeave(i)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Yv.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(t=>this._editor.applyFontInfo(t))}_onModelDecorationsChanged(){this._isVisible&&this._hoverComputerOptions&&(this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions))}showsOrWillShow(e){const t=e.target;return t.type===2&&t.detail.glyphMarginLane?(this._startShowingAt(t.position.lineNumber,t.detail.glyphMarginLane),!0):t.type===3?(this._startShowingAt(t.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(e,t){this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===e&&this._hoverComputerOptions.laneOrLine===t||(this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:e,laneOrLine:t},this._hoverOperation.start(0,this._hoverComputerOptions))}hide(){this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e.value,this._messages.length>0?this._renderMessages(e.options.lineNumber,e.options.laneOrLine,this._messages):this.hide()}_renderMessages(e,t,i){this._renderDisposeables.clear();const n=document.createDocumentFragment();for(const s of i){const r=SI("div.hover-row.markdown-hover"),a=z(r,SI("div.hover-contents")),l=this._renderDisposeables.add(this._markdownRendererService.render(s.value,{context:this._editor}));a.appendChild(l.element),n.appendChild(r)}this._updateContents(n),this._showAt(e,t)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e,t){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const i=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(e),s=this._editor.getScrollTop(),r=this._editor.getOption(75),a=this._hover.containerDomNode.clientHeight,l=n-s-(a-r)/2,d=i.glyphMarginLeft+i.glyphMarginWidth+(t==="lineNo"?i.lineNumbersWidth:0),h=i.height-a,g=Math.max(0,Math.min(Math.round(l),h));if(this._editor.getOption(51)){const f=this._editor.getDomNode();if(f){const p=Tt(f);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${p.left+d}px`,this._hover.containerDomNode.style.top=`${p.top+g}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${d}px`,this._hover.containerDomNode.style.top=`${g}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(e){const t=this._editor.getDomNode();(!t||!Jf(t,e.x,e.y))&&this.hide()}},Yv=wr,wr.ID="editor.contrib.modesGlyphHoverWidget",wr);Jv=Yv=IB([xB(1,wo)],Jv);var LB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},DB=function(o,e){return function(t,i){e(t,i,o)}},Ga;let og=(Ga=class extends A{constructor(e,t){super(),this._editor=e,this._instantiationService=t,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new W,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new et(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){const e=this._editor.getOption(69);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.hidingDelay},e.enabled!=="off"?(this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))):(this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this.hideGlyphHover()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._isMouseOnGlyphHoverWidget(e)&&this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(e){const t=this._glyphWidget?.getDomNode();return t?Jf(t,e.event.posx,e.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(e))||this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(e){const t=this._hoverSettings.sticky,i=this._isMouseOnGlyphHoverWidget(e);return t&&i}_onEditorMouseMove(e){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=e,this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){if(!e)return;if(!eD(this._hoverSettings.enabled,this._editor.getOption(86),e)){this.hideGlyphHover();return}this._tryShowHoverWidget(e)||this.hideGlyphHover()}_tryShowHoverWidget(e){return this._getOrCreateGlyphWidget().showsOrWillShow(e)}_onKeyDown(e){if(this._editor.hasModel()){if(this._hoverSettings.enabled==="onKeyboardModifier"&&XS(this._editor.getOption(86),e)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}CL(e.keyCode)||this.hideGlyphHover()}}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(Jv,this._editor)),this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}},Ga.ID="editor.contrib.marginHover",Ga);og=LB([DB(1,ee)],og);class EB{}class RB{}class NB{}ae(wt.ID,wt,2);ae(og.ID,og,2);P(lB);P(dB);P(cB);P(hB);P(uB);P(gB);P(fB);P(pB);P(mB);P(_B);P(vB);P(bB);P(SB);ea.register(ic);ea.register(Xv);Ee.registerCommand(s_,o=>{o.get(Ie).updateValue("editor.hover.showLongLineWarning",!1)});Tc((o,e)=>{const t=o.getColor(PS);t&&(e.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${t.transparent(.5)}; }`))});sp.register(new EB);sp.register(new RB);sp.register(new NB);function yE(o,e,t,i){if(o.getLineCount()===1&&o.getLineMaxColumn(1)===1)return[];const n=e.getLanguageConfiguration(o.getLanguageId()).indentRulesSupport;if(!n)return[];const s=new Nk(o,n,e);for(i=Math.min(i,o.getLineCount());t<=i&&s.shouldIgnore(t);)t++;if(t>i-1)return[];const{tabSize:r,indentSize:a,insertSpaces:l}=o.getOptions(),d=(p,_)=>(_=_||1,ll.shiftIndent(p,p.length+_,r,a,l)),c=(p,_)=>(_=_||1,ll.unshiftIndent(p,p.length+_,r,a,l)),h=[],g=o.getLineContent(t);let u=Ct(g),f=u;s.shouldIncrease(t)?(f=d(f),u=d(u)):s.shouldIndentNextLine(t)&&(f=d(f)),t++;for(let p=t;p<=i;p++){if(kB(o,p))continue;const _=o.getLineContent(p),v=Ct(_),S=f;s.shouldDecrease(p,S)&&(f=c(f),u=c(u)),v!==f&&h.push($e.replaceMove(new J(p,1,p,v.length+1),kk(f,a,l))),!s.shouldIgnore(p)&&(s.shouldIncrease(p,S)?(u=d(u),f=u):s.shouldIndentNextLine(p,S)?f=d(f):f=u)}return h}function kB(o,e){return o.tokenization.isCheapToTokenize(e)?o.tokenization.getLineTokens(e).getStandardTokenType(0)===2:!1}var TB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},PB=function(o,e){return function(t,i){e(t,i,o)}};const sf=class sf extends F{constructor(){super({id:sf.ID,label:L(1189,"Convert Indentation to Spaces"),precondition:C.writable,metadata:{description:L(1190,"Convert the tab indentation to spaces.")}})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),s=t.getSelection();if(!s)return;const r=new WB(s,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}};sf.ID="editor.action.indentationToSpaces";let Qv=sf;const of=class of extends F{constructor(){super({id:of.ID,label:L(1191,"Convert Indentation to Tabs"),precondition:C.writable,metadata:{description:L(1192,"Convert the spaces indentation to tabs.")}})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),s=t.getSelection();if(!s)return;const r=new HB(s,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}};of.ID="editor.action.indentationToTabs";let eb=of;class kC extends F{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(Ai),n=e.get(Yt),s=t.getModel();if(!s)return;const r=n.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget),a=s.getOptions(),l=[1,2,3,4,5,6,7,8].map(c=>({id:c.toString(),label:c.toString(),description:c===r.tabSize&&c===a.tabSize?m(1185,"Configured Tab Size"):c===r.tabSize?m(1186,"Default Tab Size"):c===a.tabSize?m(1187,"Current Tab Size"):void 0})),d=Math.min(s.getOptions().tabSize-1,7);setTimeout(()=>{i.pick(l,{placeHolder:m(1188,"Select Tab Size for Current File"),activeItem:l[d]}).then(c=>{if(c&&s&&!s.isDisposed()){const h=parseInt(c.label,10);this.displaySizeOnly?s.updateOptions({tabSize:h}):s.updateOptions({tabSize:h,indentSize:h,insertSpaces:this.insertSpaces})}})},50)}}const rf=class rf extends kC{constructor(){super(!1,!1,{id:rf.ID,label:L(1193,"Indent Using Tabs"),precondition:void 0,metadata:{description:L(1194,"Use indentation with tabs.")}})}};rf.ID="editor.action.indentUsingTabs";let tb=rf;const af=class af extends kC{constructor(){super(!0,!1,{id:af.ID,label:L(1195,"Indent Using Spaces"),precondition:void 0,metadata:{description:L(1196,"Use indentation with spaces.")}})}};af.ID="editor.action.indentUsingSpaces";let ib=af;const lf=class lf extends kC{constructor(){super(!0,!0,{id:lf.ID,label:L(1197,"Change Tab Display Size"),precondition:void 0,metadata:{description:L(1198,"Change the space size equivalent of the tab.")}})}};lf.ID="editor.action.changeTabDisplaySize";let nb=lf;const df=class df extends F{constructor(){super({id:df.ID,label:L(1199,"Detect Indentation from Content"),precondition:void 0,metadata:{description:L(1200,"Detect the indentation from content.")}})}run(e,t){const i=e.get(Yt),n=t.getModel();if(!n)return;const s=i.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget);n.detectIndentation(s.insertSpaces,s.tabSize)}};df.ID="editor.action.detectIndentation";let sb=df;class OB extends F{constructor(){super({id:"editor.action.reindentlines",label:L(1201,"Reindent Lines"),precondition:C.writable,metadata:{description:L(1202,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(e,t){const i=e.get(st),n=t.getModel();if(!n)return;const s=yE(n,i,1,n.getLineCount());s.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop())}}class MB extends F{constructor(){super({id:"editor.action.reindentselectedlines",label:L(1203,"Reindent Selected Lines"),precondition:C.writable,metadata:{description:L(1204,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(e,t){const i=e.get(st),n=t.getModel();if(!n)return;const s=t.getSelections();if(s===null)return;const r=[];for(const a of s){let l=a.startLineNumber,d=a.endLineNumber;if(l!==d&&a.endColumn===1&&d--,l===1){if(l===d)continue}else l--;const c=yE(n,i,l,d);r.push(...c)}r.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop())}}class AB{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&typeof i.text=="string"&&this._edits.push(i)}getEditOperations(e,t){for(const n of this._edits)t.addEditOperation(I.lift(n.range),n.text);let i=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}var Za;let rg=(Za=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new W,this.callOnModel=new W,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(!this.editor.getOption(17)||this.editor.getOption(16)<4)&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){const t=this.editor.getSelections();if(t===null||t.length>1)return;const i=this.editor.getModel();if(!i||this.rangeContainsOnlyWhitespaceCharacters(i,e)||!this.editor.getOption(18)&&FB(i,e)||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const s=this.editor.getOption(16),{tabSize:r,indentSize:a,insertSpaces:l}=i.getOptions(),d=[],c={shiftIndent:f=>ll.shiftIndent(f,f.length+1,r,a,l),unshiftIndent:f=>ll.unshiftIndent(f,f.length+1,r,a,l)};let h=e.startLineNumber,g=i.getLineContent(h);if(!/\S/.test(g.substring(0,e.startColumn-1))){const f=Cd(s,i,i.getLanguageId(),h,c,this._languageConfigurationService);if(f!==null){const p=Ct(g),_=jt(f,r),v=jt(p,r);if(_!==v){const S=Ld(_,r,l);d.push({range:new I(h,1,h,p.length+1),text:S}),g=S+g.substring(p.length)}else{const S=LL(i,h,this._languageConfigurationService);if(S===0||S===8)return}}}const u=h;for(;h<e.endLineNumber;){if(!/\S/.test(i.getLineContent(h+1))){h++;continue}break}if(h!==e.endLineNumber){const p=Cd(s,{tokenization:{getLineTokens:_=>i.tokenization.getLineTokens(_),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(_,v)=>i.getLanguageIdAtPosition(_,v)},getLineContent:_=>_===u?g:i.getLineContent(_)},i.getLanguageId(),h+1,c,this._languageConfigurationService);if(p!==null){const _=jt(p,r),v=jt(Ct(i.getLineContent(h+1)),r);if(_!==v){const S=_-v;for(let y=h+1;y<=e.endLineNumber;y++){const x=i.getLineContent(y),b=Ct(x),D=jt(b,r)+S,N=Ld(D,r,l);N!==b&&d.push({range:new I(y,1,y,b.length+1),text:N})}}}}if(d.length>0){this.editor.pushUndoStop();const f=new AB(d,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",f),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(e,t){const i=s=>s.trim().length===0;let n=!0;if(t.startLineNumber===t.endLineNumber){const r=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);n=i(r)}else for(let s=t.startLineNumber;s<=t.endLineNumber;s++){const r=e.getLineContent(s);if(s===t.startLineNumber){const a=r.substring(t.startColumn-1);n=i(a)}else if(s===t.endLineNumber){const a=r.substring(0,t.endColumn-1);n=i(a)}else n=e.getLineFirstNonWhitespaceColumn(s)===0;if(!n)break}return n}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}},Za.ID="editor.contrib.autoIndentOnPaste",Za);rg=TB([PB(1,st)],rg);function FB(o,e){const t=i=>Tk(o,i)===2;return t(e.getStartPosition())||t(e.getEndPosition())}function IE(o,e,t,i){if(o.getLineCount()===1&&o.getLineMaxColumn(1)===1)return;let n="";for(let r=0;r<t;r++)n+=" ";const s=new RegExp(n,"gi");for(let r=1,a=o.getLineCount();r<=a;r++){let l=o.getLineFirstNonWhitespaceColumn(r);if(l===0&&(l=o.getLineMaxColumn(r)),l===1)continue;const d=new I(r,1,r,l),c=o.getValueInRange(d),h=i?c.replace(/\t/ig,n):c.replace(s," ");e.addEditOperation(d,h)}}class WB{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),IE(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}class HB{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),IE(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}ae(rg.ID,rg,2);P(Qv);P(eb);P(tb);P(ib);P(nb);P(sb);P(OB);P(MB);ae(sc.ID,sc,1);ea.register(wu);class VB{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const n=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new J(n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn),n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn)):new J(n.endLineNumber,n.endColumn-this._text.length,n.endLineNumber,n.endColumn)}}var BB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},UB=function(o,e){return function(t,i){e(t,i,o)}},jh,Qs;let Sl=(Qs=class{static get(e){return e.getContribution(jh.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){this.currentRequest?.cancel();const i=this.editor.getSelection(),n=this.editor.getModel();if(!n||!i)return;let s=i;if(s.startLineNumber!==s.endLineNumber)return;const r=new e1(this.editor,5),a=n.uri;return this.editorWorkerService.canNavigateValueSet(a)?(this.currentRequest=dt(l=>this.editorWorkerService.navigateValueSet(a,s,t)),this.currentRequest.then(l=>{if(!l||!l.range||!l.value||!r.validate(this.editor))return;const d=I.lift(l.range);let c=l.range;const h=l.value.length-(s.endColumn-s.startColumn);c={startLineNumber:c.startLineNumber,startColumn:c.startColumn,endLineNumber:c.endLineNumber,endColumn:c.startColumn+l.value.length},h>1&&(s=new J(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+h-1));const g=new VB(d,s,l.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,g),this.editor.pushUndoStop(),this.decorations.set([{range:c,options:jh.DECORATION}]),this.decorationRemover?.cancel(),this.decorationRemover=Ff(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(we)}).catch(we)):Promise.resolve(void 0)}},jh=Qs,Qs.ID="editor.contrib.inPlaceReplaceController",Qs.DECORATION=te.register({description:"in-place-replace",className:"valueSetReplacement"}),Qs);Sl=jh=BB([UB(1,as)],Sl);class $B extends F{constructor(){super({id:"editor.action.inPlaceReplace.up",label:L(1286,"Replace with Previous Value"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=Sl.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class zB extends F{constructor(){super({id:"editor.action.inPlaceReplace.down",label:L(1287,"Replace with Next Value"),precondition:C.writable,kbOpts:{kbExpr:C.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=Sl.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}ae(Sl.ID,Sl,4);P($B);P(zB);class jB{constructor(e){this._selection=e,this._selectionId=null}getEditOperations(e,t){const i=qB(e);i&&t.addEditOperation(i.range,i.text),this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function qB(o){const e=o.getLineCount(),t=o.getLineContent(e),i=Sd(t)===-1;if(!(!e||i))return $e.insert(new $(e,o.getLineMaxColumn(e)),o.getEOL())}const cf=class cf extends F{constructor(){super({id:cf.ID,label:L(1288,"Insert Final New Line"),precondition:C.writable})}run(e,t,i){const n=t.getSelection();if(n===null)return;const s=new jB(n);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop()}};cf.ID="editor.action.insertFinalNewLine";let ob=cf;P(ob);class KB extends F{constructor(){super({id:"expandLineSelection",label:L(1289,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:C.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const n=t._getViewModel();n.model.pushStackElement(),n.setCursorStates(i.source,3,AS.expandLineSelection(n,n.getCursorStates())),n.revealAllCursors(i.source,!0)}}P(KB);var GB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Rh=function(o,e){return function(t,i){e(t,i,o)}},qh;const xE=new ie("LinkedEditingInputVisible",!1),ZB="linked-editing-decoration";var eo;let Cl=(eo=class extends A{static get(e){return e.getContribution(qh.ID)}constructor(e,t,i,n,s){super(),this.languageConfigurationService=n,this._syncRangesToken=0,this._localToDispose=this._register(new W),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=xE.bindTo(t),this._debounceInformation=s.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new W),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(r=>{(r.hasChanged(78)||r.hasChanged(106))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=t!==null&&(this._editor.getOption(78)||this._editor.getOption(106))&&this._providers.has(t);if(i===this._enabled&&!e||(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||t===null))return;this._localToDispose.add(Ve.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const n=new lo(this._debounceInformation.get(t)),s=()=>{this._rangeUpdateTriggerPromise=n.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(t))},r=new lo(0),a=l=>{this._rangeSyncTriggerPromise=r.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{s()})),this._localToDispose.add(this._editor.onDidChangeModelContent(l=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const d=this._currentDecorations.getRange(0);if(d&&l.changes.every(c=>d.intersectRanges(c.range))){a(this._syncRangesToken);return}}s()})),this._localToDispose.add({dispose:()=>{n.dispose(),r.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const n=t.getValueInRange(i);if(this._currentWordPattern){const r=n.match(this._currentWordPattern);if((r?r[0].length:0)!==n.length)return this.clearRanges()}const s=[];for(let r=1,a=this._currentDecorations.length;r<a;r++){const l=this._currentDecorations.getRange(r);if(l)if(l.startLineNumber!==l.endLineNumber)s.push({range:l,text:n});else{let d=t.getValueInRange(l),c=n,h=l.startColumn,g=l.endColumn;const u=El(d,c);h+=u,d=d.substr(u),c=c.substr(u);const f=LS(d,c);g-=f,d=d.substr(0,d.length-f),c=c.substr(0,c.length-f),(h!==g||c.length!==0)&&s.push({range:new I(l.startLineNumber,h,l.endLineNumber,g),text:c})}}if(s.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const r=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",s),this._editor._getViewModel().setPrevEditOperationType(r)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequestCts&&(this._currentRequestCts.cancel(),this._currentRequestCts=null,this._currentRequestPosition=null)}async updateRanges(e=!1){if(!this._editor.hasModel()){this.clearRanges();return}const t=this._editor.getPosition();if(!this._enabled&&!e||this._editor.getSelections().length>1){this.clearRanges();return}const i=this._editor.getModel(),n=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===n){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const r=this._currentDecorations.getRange(0);if(r&&r.containsPosition(t))return}}this._currentRequestPosition?.equals(t)||this._currentDecorations.getRange(0)?.containsPosition(t)||this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=n;const s=this._currentRequestCts=new Je;try{const r=new _i(!1),a=await LE(this._providers,i,t,s.token);if(this._debounceInformation.update(i,r.elapsed()),s!==this._currentRequestCts||(this._currentRequestCts=null,n!==i.getVersionId()))return;let l=[];a?.ranges&&(l=a.ranges),this._currentWordPattern=a?.wordPattern||this._languageWordPattern;let d=!1;for(let h=0,g=l.length;h<g;h++)if(I.containsPosition(l[h],t)){if(d=!0,h!==0){const u=l[h];l.splice(h,1),l.unshift(u)}break}if(!d){this.clearRanges();return}const c=l.map(h=>({range:h,options:qh.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(c),this._syncRangesToken++}catch(r){rs(r)||we(r),(this._currentRequestCts===s||!this._currentRequestCts)&&this.clearRanges()}}},qh=eo,eo.ID="editor.contrib.linkedEditing",eo.DECORATION=te.register({description:"linked-editing",stickiness:0,className:ZB}),eo);Cl=qh=GB([Rh(1,pe),Rh(2,G),Rh(3,st),Rh(4,Hi)],Cl);class XB extends F{constructor(){super({id:"editor.action.linkedEditing",label:L(1322,"Start Linked Editing"),precondition:T.and(C.writable,C.hasRenameProvider),kbOpts:{kbExpr:C.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(Ue),[n,s]=Array.isArray(t)&&t||[void 0,void 0];return Le.isUri(n)&&$.isIPosition(s)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then(r=>{r&&(r.setPosition(s),r.invokeWithinContext(a=>(this.reportTelemetry(a,r),this.run(a,r))))},we):super.runCommand(e,t)}run(e,t){const i=Cl.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const YB=Mt.bindToContribution(Cl.get);K(new YB({id:"cancelLinkedEditingInput",precondition:xE,handler:o=>o.clearRanges(),kbOpts:{kbExpr:C.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function LE(o,e,t,i){const n=o.ordered(e);return FS(n.map(s=>async()=>{try{return await s.provideLinkedEditingRanges(e,t,i)}catch(r){Ze(r);return}}),s=>!!s&&ri(s?.ranges))}V("editor.linkedEditingBackground",{dark:fe.fromHex("#f00").transparent(.3),light:fe.fromHex("#f00").transparent(.3),hcDark:fe.fromHex("#f00").transparent(.3),hcLight:fe.white},m(1321,"Background color when the editor auto renames on type."));$t("_executeLinkedEditingProvider",(o,e,t)=>{const{linkedEditingRangeProvider:i}=o.get(G);return LE(i,e,t,de.None)});ae(Cl.ID,Cl,1);P(XB);let JB=class{constructor(e,t){this._link=e,this._provider=t}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(e){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}};const Ud=class Ud{constructor(e){this._disposables=new W;let t=[];for(const[i,n]of e){const s=i.links.map(r=>new JB(r,n));t=Ud._union(t,s),cS(i)&&(this._disposables??=new W,this._disposables.add(i))}this.links=t}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(e,t){const i=[];let n,s,r,a;for(n=0,r=0,s=e.length,a=t.length;n<s&&r<a;){const l=e[n],d=t[r];if(I.areIntersectingOrTouching(l.range,d.range)){n++;continue}I.compareRangesUsingStarts(l.range,d.range)<0?(i.push(l),n++):(i.push(d),r++)}for(;n<s;n++)i.push(e[n]);for(;r<a;r++)i.push(t[r]);return i}};Ud.Empty=new Ud([]);let ag=Ud;async function DE(o,e,t){const i=[],n=o.ordered(e).reverse().map(async(r,a)=>{try{const l=await r.provideLinks(e,t);l&&(i[a]=[l,r])}catch(l){Ze(l)}});await Promise.all(n);let s=new ag(_o(i));return t.isCancellationRequested&&(s.dispose(),s=ag.Empty),s}Ee.registerCommand("_executeLinkProvider",async(o,...e)=>{let[t,i]=e;Ce(t instanceof Le),typeof i!="number"&&(i=0);const{linkProvider:n}=o.get(G),s=o.get(Yt).getModel(t);if(!s)return[];const r=await DE(n,s,de.None);if(!r)return[];for(let l=0;l<Math.min(i,r.links.length);l++)await r.links[l].resolve(de.None);const a=r.links.slice(0);return r.dispose(),a});var QB=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Nh=function(o,e){return function(t,i){e(t,i,o)}},rb,yr;let Cc=(yr=class extends A{static get(e){return e.getContribution(rb.ID)}constructor(e,t,i,n,s){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=n,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=s.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new et(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const r=this._register(new ep(e));this._register(r.onMouseMoveOrRelevantKeyDown(([a,l])=>{this._onEditorMouseMove(a,l)})),this._register(r.onExecute(a=>{this.onEditorMouseUp(a)})),this._register(r.onCancel(a=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(79)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(a=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(a=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(a=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(a=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=dt(t=>DE(this.providers,e,t));try{const t=new _i(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){we(t)}finally{this.computePromise=null}}}updateDecorations(e){const t=this.editor.getOption(86)==="altKey",i=[],n=Object.keys(this.currentOccurrences);for(const r of n){const a=this.currentOccurrences[r];i.push(a.decorationId)}const s=[];if(e)for(const r of e)s.push(Va.decoration(r,t));this.editor.changeDecorations(r=>{const a=r.deltaDecorations(i,s);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,d=a.length;l<d;l++){const c=new Va(e[l],a[l]);this.currentOccurrences[c.decorationId]=c}})}_onEditorMouseMove(e,t){const i=this.editor.getOption(86)==="altKey";if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const n=this.getLinkOccurrence(e.target.position);n&&this.editor.changeDecorations(s=>{n.activate(s,i),this.activeLinkDecorationId=n.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(i=>{t.deactivate(i,e)}),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:n}=e;n.resolve(de.None).then(s=>{if(typeof s=="string"&&this.editor.hasModel()){const r=this.editor.getModel().uri;if(r.scheme===mt.file&&s.startsWith(`${mt.file}:`)){const a=Le.parse(s);if(a.scheme===mt.file){const l=Pk(a);let d=null;l.startsWith("/./")||l.startsWith("\\.\\")?d=`.${l.substr(1)}`:(l.startsWith("//./")||l.startsWith("\\\\.\\"))&&(d=`.${l.substr(2)}`),d&&(s=Ok(r,d))}}}return this.openerService.open(s,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},s=>{const r=s instanceof Error?s.message:s;r==="invalid"?this.notificationService.warn(m(1323,"Failed to open this link because it is not well-formed: {0}",n.url.toString())):r==="missing"?this.notificationService.warn(m(1324,"Failed to open this link because its target is missing.")):we(s)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const n=this.currentOccurrences[i.id];if(n)return n}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey||e.isMiddleClick&&e.mouseMiddleClickAction==="openLink"))}stop(){this.computeLinks.cancel(),this.activeLinksList&&(this.activeLinksList?.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}},rb=yr,yr.ID="editor.linkDetector",yr);Cc=rb=QB([Nh(1,Xr),Nh(2,Lt),Nh(3,G),Nh(4,Hi)],Cc);const CI={general:te.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:te.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class Va{static decoration(e,t){return{range:e.range,options:Va._getOptions(e,t,!1)}}static _getOptions(e,t,i){const n={...i?CI.active:CI.general};return n.hoverMessage=e3(e,t),n}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,Va._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,Va._getOptions(this.link,t,!1))}}function e3(o,e){const t=o.url&&/^command:/i.test(o.url.toString()),i=o.tooltip?o.tooltip:t?m(1325,"Execute command"):m(1326,"Follow link"),n=e?Yn?m(1327,"cmd + click"):m(1328,"ctrl + click"):Yn?m(1329,"option + click"):m(1330,"alt + click");if(o.url){let s="";if(/^command:/i.test(o.url.toString())){const a=o.url.toString().match(/^command:([^?#]+)/);if(a){const l=a[1];s=m(1331,"Execute command {0}",l)}}return new It("",!0).appendLink(o.url.toString(!0).replace(/ /g,"%20"),i,s).appendMarkdown(` (${n})`)}else return new It().appendText(`${i} (${n})`)}class t3 extends F{constructor(){super({id:"editor.action.openLink",label:L(1332,"Open Link"),precondition:void 0})}run(e,t){const i=Cc.get(t);if(!i||!t.hasModel())return;const n=t.getSelections();for(const s of n){const r=i.getLinkOccurrence(s.getEndPosition());r&&i.openLinkOccurrence(r,!1)}}}ae(Cc.ID,Cc,1);P(t3);const $C=class $C extends A{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const i=this._editor.getOption(133);i>=0&&t.target.type===6&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};$C.ID="editor.contrib.longLinesHelper";let lg=$C;ae(lg.ID,lg,2);const zC=class zC extends A{constructor(e){super(),this._editor=e;const t=We(this._editor),i=t.getOption(171);this._register(le(n=>{if(!i.read(n))return;const s=t.domNode.read(n);if(!s)return;const r=n.store.add(Mk("scrollingSession",void 0));n.store.add(this._editor.onMouseDown(l=>{if(r.read(void 0)){r.set(void 0,void 0);return}if(!l.event.middleButton)return;l.event.stopPropagation(),l.event.preventDefault();const c=new W,h=new Pi(l.event.posx,l.event.posy),u=i3(Ht(s),h,c).map(_=>_.subtract(h).withThreshold(5)),f=s.getBoundingClientRect(),p=new Pi(h.x-f.left,h.y-f.top);r.set({mouseDeltaAfterThreshold:u,initialMousePosInEditor:p,didScroll:!1,dispose:()=>c.dispose()},void 0),c.add(this._editor.onMouseUp(_=>{const v=r.read(void 0);v&&v.didScroll&&r.set(void 0,void 0)})),c.add(this._editor.onKeyDown(_=>{r.set(void 0,void 0)}))})),n.store.add(le(l=>{const d=r.read(l);if(!d)return;let c=Date.now();l.store.add(le(g=>{hc.instance.invalidateOnNextAnimationFrame(g);const u=Date.now(),f=u-c;c=u;const p=d.mouseDeltaAfterThreshold.read(void 0),_=f/32,v=p.scale(_),S=new Pi(this._editor.getScrollLeft(),this._editor.getScrollTop());this._editor.setScrollPosition(n3(S.add(v))),v.isZero()||(d.didScroll=!0)}));const h=R(g=>{const u=d.mouseDeltaAfterThreshold.read(g);let f="";return f+=u.y<0?"n":u.y>0?"s":"",f+=u.x<0?"w":u.x>0?"e":"",f});l.store.add(le(g=>{s.setAttribute("data-scroll-direction",h.read(g))}))}));const a=n.store.add(j.div({class:["scroll-editor-on-middle-click-dot",r.map(l=>l?"":"hidden")],style:{left:r.map(l=>l?l.initialMousePosInEditor.x:0),top:r.map(l=>l?l.initialMousePosInEditor.y:0)}}).toDisposableLiveElement());n.store.add(Ak(s,a.element)),n.store.add(le(l=>{const d=r.read(l);s.classList.toggle("scroll-editor-on-middle-click-editor",!!d)}))}))}};zC.ID="editor.contrib.middleScroll";let dg=zC;function i3(o,e,t){const i=Ne("pos",e);return t.add(re(o,"mousemove",n=>{i.set(new Pi(n.pageX,n.pageY),void 0)})),i}function n3(o){return{scrollLeft:o.x,scrollTop:o.y}}ae(dg.ID,dg,2);const s3=V("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},m(1615,"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);V("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},m(1616,"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);V("editor.wordHighlightTextBackground",s3,m(1617,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const o3=V("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Fr,hcLight:Fr},m(1618,"Border color of a symbol during read-access, like reading a variable."));V("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Fr,hcLight:Fr},m(1619,"Border color of a symbol during write-access, like writing to a variable."));V("editor.wordHighlightTextBorder",o3,m(1620,"Border color of a textual occurrence for a symbol."));const r3=V("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",m(1621,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),a3=V("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",m(1622,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),l3=V("editorOverviewRuler.wordHighlightTextForeground",t1,m(1623,"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),d3=te.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:Xe(a3),position:wn.Center},minimap:{color:Xe(Uf),position:1}}),c3=te.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:Xe(l3),position:wn.Center},minimap:{color:Xe(Uf),position:1}}),h3=te.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:Xe(t1),position:wn.Center},minimap:{color:Xe(Uf),position:1}}),u3=te.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),g3=te.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:Xe(r3),position:wn.Center},minimap:{color:Xe(Uf),position:1}});function f3(o){return o===ru.Write?d3:o===ru.Text?c3:g3}function p3(o){return o?u3:h3}Tc((o,e)=>{const t=o.getColor(Fk);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var m3=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},_3=function(o,e){return function(t,i){e(t,i,o)}},ab;function Io(o,e){const t=e.filter(i=>!o.find(n=>n.equals(i)));if(t.length>=1){const i=t.map(s=>`line ${s.viewState.position.lineNumber} column ${s.viewState.position.column}`).join(", "),n=t.length===1?m(1334,"Cursor added: {0}",i):m(1335,"Cursors added: {0}",i);ao(n)}}class v3 extends F{constructor(){super({id:"editor.action.insertCursorAbove",label:L(1344,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"3_multi",title:m(1336,"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&i.logicalLine===!1&&(n=!1);const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const r=s.getCursorStates();s.setCursorStates(i.source,3,AS.addCursorUp(s,r,n)),s.revealTopMostCursor(i.source),Io(r,s.getCursorStates())}}class b3 extends F{constructor(){super({id:"editor.action.insertCursorBelow",label:L(1345,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"3_multi",title:m(1337,"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&i.logicalLine===!1&&(n=!1);const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const r=s.getCursorStates();s.setCursorStates(i.source,3,AS.addCursorDown(s,r,n)),s.revealBottomMostCursor(i.source),Io(r,s.getCursorStates())}}class S3 extends F{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:L(1346,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"3_multi",title:m(1338,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let n=e.startLineNumber;n<e.endLineNumber;n++){const s=t.getLineMaxColumn(n);i.push(new J(n,s,n,s))}e.endColumn>1&&i.push(new J(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=t.getSelections(),s=t._getViewModel(),r=s.getCursorStates(),a=[];n.forEach(l=>this.getCursorsForSelection(l,i,a)),a.length>0&&t.setSelections(a),Io(r,s.getCursorStates())}}class C3 extends F{constructor(){super({id:"editor.action.addCursorsToBottom",label:L(1347,"Add Cursors to Bottom"),precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=t.getModel().getLineCount(),s=[];for(let l=i[0].startLineNumber;l<=n;l++)s.push(new J(l,i[0].startColumn,l,i[0].endColumn));const r=t._getViewModel(),a=r.getCursorStates();s.length>0&&t.setSelections(s),Io(a,r.getCursorStates())}}class w3 extends F{constructor(){super({id:"editor.action.addCursorsToTop",label:L(1348,"Add Cursors to Top"),precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=[];for(let a=i[0].startLineNumber;a>=1;a--)n.push(new J(a,i[0].startColumn,a,i[0].endColumn));const s=t._getViewModel(),r=s.getCursorStates();n.length>0&&t.setSelections(n),Io(r,s.getCursorStates())}}class kh{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class wc{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new wc(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let n=!1,s,r;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(n=!0,s=!0,r=!0):(s=i.wholeWord,r=i.matchCase);const l=e.getSelection();let d,c=null;if(l.isEmpty()){const h=e.getConfiguredWordAtPosition(l.getStartPosition());if(!h)return null;d=h.word,c=new J(l.startLineNumber,h.startColumn,l.startLineNumber,h.endColumn)}else d=e.getModel().getValueInRange(l).replace(/\r\n/g,`
60
- `);return new wc(e,t,n,d,s,r,c)}constructor(e,t,i,n,s,r,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=n,this.wholeWord=s,this.matchCase=r,this.currentMatch=a}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new kh(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new kh(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const n=this.currentMatch;return this.currentMatch=null,n}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return i?new J(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new kh(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new kh(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const n=this.currentMatch;return this.currentMatch=null,n}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return i?new J(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}const hf=class hf extends A{static get(e){return e.getContribution(hf.ID)}constructor(e){super(),this._sessionDispose=this._register(new W),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=wc.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(n=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(n=>{(n.matchCase||n.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new J(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const n=e.getState().matchCase;if(!EE(this._editor.getModel(),t,n)){const r=this._editor.getModel(),a=[];for(let l=0,d=t.length;l<d;l++)a[l]=this._expandEmptyToWord(r,t[l]);this._editor.setSelections(a);return}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(e){if(!this._editor.hasModel())return;let t=null;const i=e.getState();if(i.isRevealed&&i.searchString.length>0&&i.isRegex){const n=this._editor.getModel();i.searchScope?t=n.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(148):null,!1,1073741824):t=n.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const n=this._editor.getSelection();for(let s=0,r=t.length;s<r;s++){const a=t[s];if(a.range.intersectRanges(n)){t[s]=t[0],t[0]=a;break}}this._setSelections(t.map(s=>new J(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn)))}}};hf.ID="editor.contrib.multiCursorController";let wl=hf;class Hl extends F{run(e,t){const i=wl.get(t);if(!i)return;const n=t._getViewModel();if(n){const s=n.getCursorStates(),r=Ut.get(t);if(r)this._run(i,r);else{const a=e.get(ee).createInstance(Ut,t);this._run(i,a),a.dispose()}Io(s,n.getCursorStates())}}}class y3 extends Hl{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:L(1349,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:2082,weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"3_multi",title:m(1339,"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class I3 extends Hl{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:L(1350,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:q.MenubarSelectionMenu,group:"3_multi",title:m(1340,"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class x3 extends Hl{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:L(1351,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:Ge(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}class L3 extends Hl{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:L(1352,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}class D3 extends Hl{constructor(){super({id:"editor.action.selectHighlights",label:L(1353,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:C.focus,primary:3114,weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"3_multi",title:m(1341,"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}class E3 extends Hl{constructor(){super({id:"editor.action.changeAll",label:L(1354,"Change All Occurrences"),precondition:T.and(C.writable,C.editorTextFocus),kbOpts:{kbExpr:C.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}class R3{constructor(e,t,i,n,s){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=n,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(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(I.compareRangesUsingStarts)),this._cachedFindMatches}}var Ir;let cg=(Ir=class extends A{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new et(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(n=>{this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123)})),this._register(e.onDidChangeCursorSelection(n=>{this._isEnabled&&(n.selection.isEmpty()?n.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(n=>{this._setState(null)})),this._register(e.onDidChangeModelContent(n=>{this._isEnabled&&this.updateSoon.schedule()}));const i=Ut.get(e);i&&this._register(i.getState().onFindReplaceStateChange(n=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(ab._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(e,t,i,n,s){if(!t||!s.hasModel())return null;if(!i){const h=s.getSelection();if(h.startLineNumber!==h.endLineNumber)return null}const r=wl.get(s);if(!r)return null;const a=Ut.get(s);if(!a)return null;let l=r.getSession(a);if(!l){const h=s.getSelections();if(h.length>1){const u=a.getState().matchCase;if(!EE(s.getModel(),h,u))return null}l=wc.create(s,a)}if(!l||l.currentMatch||/^[ \t]+$/.test(l.searchText)||n>0&&l.searchText.length>n)return null;const d=a.getState(),c=d.matchCase;if(d.isRevealed){let h=d.searchString;c||(h=h.toLowerCase());let g=l.searchText;if(c||(g=g.toLowerCase()),h===g&&l.matchCase===d.matchCase&&l.wholeWord===d.wholeWord&&!d.isRegex)return null}return new R3(s.getModel(),l.searchText,l.matchCase,l.wholeWord?s.getOption(148):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),n=this.editor.getSelections();n.sort(I.compareRangesUsingStarts);const s=[];for(let d=0,c=0,h=i.length,g=n.length;d<h;){const u=i[d];if(c>=g)s.push(u),d++;else{const f=I.compareRangesUsingStarts(u,n[c]);f<0?((n[c].isEmpty()||!I.areIntersecting(u,n[c]))&&s.push(u),d++):(f>0||d++,c++)}}const r=this.editor.getOption(90)!=="off",a=this._languageFeaturesService.documentHighlightProvider.has(t)&&r,l=s.map(d=>({range:d,options:p3(a)}));this._decorations.set(l)}dispose(){this._setState(null),super.dispose()}},ab=Ir,Ir.ID="editor.contrib.selectionHighlighter",Ir);cg=ab=m3([_3(1,G)],cg);function EE(o,e,t){const i=wI(o,e[0],!t);for(let n=1,s=e.length;n<s;n++){const r=e[n];if(r.isEmpty())return!1;const a=wI(o,r,!t);if(i!==a)return!1}return!0}function wI(o,e,t){const i=o.getValueInRange(e);return t?i.toLowerCase():i}class N3 extends F{constructor(){super({id:"editor.action.focusNextCursor",label:L(1355,"Focus Next Cursor"),metadata:{description:m(1342,"Focuses the next cursor"),args:[]},precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const s=Array.from(n.getCursorStates()),r=s.shift();r&&(s.push(r),n.setCursorStates(i.source,3,s),n.revealPrimaryCursor(i.source,!0),Io(s,n.getCursorStates()))}}class k3 extends F{constructor(){super({id:"editor.action.focusPreviousCursor",label:L(1356,"Focus Previous Cursor"),metadata:{description:m(1343,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const s=Array.from(n.getCursorStates()),r=s.pop();r&&(s.unshift(r),n.setCursorStates(i.source,3,s),n.revealPrimaryCursor(i.source,!0),Io(s,n.getCursorStates()))}}ae(wl.ID,wl,4);ae(cg.ID,cg,1);P(v3);P(b3);P(S3);P(y3);P(I3);P(x3);P(L3);P(D3);P(E3);P(C3);P(w3);P(N3);P(k3);const Gr={Visible:new ie("parameterHintsVisible",!1),MultipleSignatures:new ie("parameterHintsMultipleSignatures",!1)};async function RE(o,e,t,i,n){const s=o.ordered(e);for(const r of s)try{const a=await r.provideSignatureHelp(e,t,n,i);if(a)return a}catch(a){Ze(a)}}Ee.registerCommand("_executeSignatureHelpProvider",async(o,...e)=>{const[t,i,n]=e;Ce(Le.isUri(t)),Ce($.isIPosition(i)),Ce(typeof n=="string"||!n);const s=o.get(G),r=await o.get(ci).createModelReference(t);try{const a=await RE(s.signatureHelpProvider,r.object.textEditorModel,$.lift(i),{triggerKind:Ws.Invoke,isRetrigger:!1,triggerCharacter:n},de.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{r.dispose()}});var vs;(function(o){o.Default={type:0};class e{constructor(n,s){this.request=n,this.previouslyActiveHints=s,this.type=2}}o.Pending=e;class t{constructor(n){this.hints=n,this.type=1}}o.Active=t})(vs||(vs={}));const uf=class uf extends A{constructor(e,t,i=uf.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new Y),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=vs.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new Ke),this.triggerChars=new tu,this.retriggerChars=new tu,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=this._register(new lo(i)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(n=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(n=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(n=>this.onCursorChange(n))),this._register(this.editor.onDidChangeModelContent(n=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(n=>this.onDidType(n))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=vs.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const n=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(n),t).catch(we)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,n=this.editor.getOption(98).cycle;if((e<2||i)&&!n){this.cancel();return}this.updateActiveSignature(i&&n?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t===0,n=this.editor.getOption(98).cycle;if((e<2||i)&&!n){this.cancel();return}this.updateActiveSignature(i&&n?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new vs.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=this.state.type===1||this.state.type===2,i=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const n=this._pendingTriggers.reduce(T3);this._pendingTriggers=[];const s={triggerKind:n.triggerKind,triggerCharacter:n.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const r=this.editor.getModel(),a=this.editor.getPosition();this.state=new vs.Pending(dt(l=>RE(this.providers,r,a,s,l)),i);try{const l=await this.state.request;return e!==this.triggerId?(l?.dispose(),!1):!l||!l.value.signatures||l.value.signatures.length===0?(l?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new vs.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=vs.Default),we(l),!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();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const i of t.signatureHelpTriggerCharacters||[])if(i.length){const n=i.charCodeAt(0);this.triggerChars.add(n),this.retriggerChars.add(n)}for(const i of t.signatureHelpRetriggerCharacters||[])i.length&&this.retriggerChars.add(i.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:Ws.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:Ws.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:Ws.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(98).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};uf.DEFAULT_DELAY=120;let lb=uf;function T3(o,e){switch(e.triggerKind){case Ws.Invoke:return e;case Ws.ContentChange:return o;case Ws.TriggerCharacter:default:return e}}var P3=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},yI=function(o,e){return function(t,i){e(t,i,o)}},db;const Qt=B,O3=ze("parameter-hints-next",U.chevronDown,m(1358,"Icon for show next parameter hint.")),M3=ze("parameter-hints-previous",U.chevronUp,m(1359,"Icon for show previous parameter hint."));var xr;let cb=(xr=class extends A{constructor(e,t,i,n){super(),this.editor=e,this.model=t,this.markdownRendererService=n,this.renderDisposeables=this._register(new W),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=Gr.Visible.bindTo(i),this.keyMultipleSignatures=Gr.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=Qt(".editor-widget.parameter-hints-widget"),t=z(e,Qt(".phwrapper"));t.tabIndex=-1;const i=z(t,Qt(".controls")),n=z(i,Qt(".button"+ce.asCSSSelector(M3))),s=z(i,Qt(".overloads")),r=z(i,Qt(".button"+ce.asCSSSelector(O3)));this._register(re(n,"click",g=>{Vn.stop(g),this.previous()})),this._register(re(r,"click",g=>{Vn.stop(g),this.next()}));const a=Qt(".body"),l=new HL(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const d=z(a,Qt(".signature")),c=z(a,Qt(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:d,overloads:s,docs:c,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(g=>{this.visible&&this.editor.layoutContentWidget(this)}));const h=()=>{if(!this.domNodes)return;const g=this.editor.getOption(59),u=this.domNodes.element;u.style.fontSize=`${g.fontSize}px`,u.style.lineHeight=`${g.lineHeight/g.fontSize}`,u.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",g.fontFamily),u.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",uS.fontFamily)};h(),this._register(Ve.chain(this.editor.onDidChangeConfiguration.bind(this.editor),g=>g.filter(u=>u.hasChanged(59)))(h)),this._register(this.editor.onDidLayoutChange(g=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){if(this.renderDisposeables.clear(),!this.domNodes)return;const t=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",t),this.keyMultipleSignatures.set(t),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const i=e.signatures[e.activeSignature];if(!i)return;const n=z(this.domNodes.signature,Qt(".code")),s=i.parameters.length>0,r=i.activeParameter??e.activeParameter;if(s)this.renderParameters(n,i,r);else{const d=z(n,Qt("span"));d.textContent=i.label}const a=i.parameters[r];if(a?.documentation){const d=Qt("span.documentation");if(typeof a.documentation=="string")d.textContent=a.documentation;else{const c=this.renderMarkdownDocs(a.documentation);d.appendChild(c.element)}z(this.domNodes.docs,Qt("p",{},d))}if(i.documentation!==void 0)if(typeof i.documentation=="string")z(this.domNodes.docs,Qt("p",{},i.documentation));else{const d=this.renderMarkdownDocs(i.documentation);z(this.domNodes.docs,d.element)}const l=this.hasDocs(i,a);if(this.domNodes.signature.classList.toggle("has-docs",l),this.domNodes.docs.classList.toggle("empty",!l),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,a){let d="";const c=i.parameters[r];Array.isArray(c.label)?d=i.label.substring(c.label[0],c.label[1]):d=c.label,c.documentation&&(d+=typeof c.documentation=="string"?`, ${c.documentation}`:`, ${c.documentation.value}`),i.documentation&&(d+=typeof i.documentation=="string"?`, ${i.documentation}`:`, ${i.documentation.value}`),this.announcedLabel!==d&&(mi(m(1360,"{0}, hint",d)),this.announcedLabel=d)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRendererService.render(e,{context:this.editor,asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&typeof t.documentation=="string"&&xa(t.documentation).length>0||t&&typeof t.documentation=="object"&&xa(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&xa(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&xa(e.documentation.value).length>0)}renderParameters(e,t,i){const[n,s]=this.getParameterLabelOffsets(t,i),r=document.createElement("span");r.textContent=t.label.substring(0,n);const a=document.createElement("span");a.textContent=t.label.substring(n,s),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(s),z(e,r,a,l)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const n=new RegExp(`(\\W|^)${jd(i.label)}(?=\\W|$)`,"g");n.test(e.label);const s=n.lastIndex-i.label.length;return s>=0?[s,n.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return db.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}},db=xr,xr.ID="editor.widget.parameterHintsWidget",xr);cb=db=P3([yI(2,pe),yI(3,wo)],cb);V("editorHoverWidget.highlightForeground",BL,m(1361,"Foreground color of the active item in the parameter hint."));var A3=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},II=function(o,e){return function(t,i){e(t,i,o)}},hb,Lr;let yl=(Lr=class extends A{static get(e){return e.getContribution(hb.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new lb(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(n=>{n?(this.widget.value.show(),this.widget.value.render(n)):this.widget.rawValue?.hide()})),this.widget=new aS(()=>this._register(t.createInstance(cb,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(e){this.model.trigger(e,0)}},hb=Lr,Lr.ID="editor.controller.parameterHints",Lr);yl=hb=A3([II(1,ee),II(2,G)],yl);class F3 extends F{constructor(){super({id:"editor.action.triggerParameterHints",label:L(1357,"Trigger Parameter Hints"),precondition:C.hasSignatureHelpProvider,kbOpts:{kbExpr:C.editorTextFocus,primary:3082,weight:100}})}run(e,t){yl.get(t)?.trigger({triggerKind:Ws.Invoke})}}ae(yl.ID,yl,2);P(F3);const TC=175,PC=Mt.bindToContribution(yl.get);K(new PC({id:"closeParameterHints",precondition:Gr.Visible,handler:o=>o.cancel(),kbOpts:{weight:TC,kbExpr:C.focus,primary:9,secondary:[1033]}}));K(new PC({id:"showPrevParameterHint",precondition:T.and(Gr.Visible,Gr.MultipleSignatures),handler:o=>o.previous(),kbOpts:{weight:TC,kbExpr:C.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));K(new PC({id:"showNextParameterHint",precondition:T.and(Gr.Visible,Gr.MultipleSignatures),handler:o=>o.next(),kbOpts:{weight:TC,kbExpr:C.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));const jC=class jC extends A{constructor(e){super(),this._editor=e,this._editorObs=We(this._editor),this._placeholderText=this._editorObs.getOption(100),this._state=pn({owner:this,equalsFn:Wk},t=>{const i=this._placeholderText.read(t);if(i&&this._editorObs.valueIsEmpty.read(t))return{placeholder:i}}),this._shouldViewBeAlive=W3(this,t=>this._state.read(t)?.placeholder!==void 0),this._view=R(t=>{if(!this._shouldViewBeAlive.read(t))return;const i=qd("div.editorPlaceholder");t.store.add(le(n=>{const s=this._state.read(n),r=s?.placeholder!==void 0;i.root.style.display=r?"block":"none",i.root.innerText=s?.placeholder??""})),t.store.add(le(n=>{const s=this._editorObs.layoutInfo.read(n);i.root.style.left=`${s.contentLeft}px`,i.root.style.width=s.contentWidth-s.verticalScrollbarWidth+"px",i.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),t.store.add(le(n=>{i.root.style.fontFamily=this._editorObs.getOption(58).read(n),i.root.style.fontSize=this._editorObs.getOption(61).read(n)+"px",i.root.style.lineHeight=this._editorObs.getOption(75).read(n)+"px"})),t.store.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:_e(0),position:_e(null),domNode:i.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};jC.ID="editor.contrib.placeholderText";let hg=jC;function W3(o,e){return So(o,(t,i)=>i===!0?!0:e(t))}var H3=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},V3=function(o,e){return function(t,i){e(t,i,o)}};class B3{constructor(e){this.instantiationService=e}init(...e){}}function U3(o){return o()}let xI=class extends B3{constructor(e,t){super(t),this.init(e)}};xI=H3([V3(1,ee)],xI);ae(hg.ID,U3(()=>hg),0);V("editor.placeholder.foreground",Hk,m(1380,"Foreground color of the placeholder text in the editor."));var $3=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},LI=function(o,e){return function(t,i){e(t,i,o)}},Xa;let ug=(Xa=class extends A{constructor(e,t,i){super(),this.editor=e,this.languageConfigurationService=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(e.getOption(81)),this.computePromise=null,this.currentOccurrences={},this._register(e.onDidChangeModel(n=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(e.onDidChangeModelLanguage(n=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChange(n=>{const s=this.editor.getModel()?.getLanguageId();s&&n.affects(s)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(e.onDidChangeConfiguration(n=>{this.options&&!n.hasChanged(81)||(this.options=this.createOptions(e.getOption(81)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(n=>{this.computeSectionHeaders.schedule()})),this._register(e.onDidChangeModelTokens(n=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new et(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;const t=this.editor.getModel().getLanguageId();if(!t)return;const i=this.languageConfigurationService.getLanguageConfiguration(t).comments,n=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!i&&!n?.markers))return{foldingRules:n,markSectionHeaderRegex:e.markSectionHeaderRegex,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}}findSectionHeaders(){if(!this.editor.hasModel()||!this.options?.findMarkSectionHeaders&&!this.options?.findRegionSectionHeaders)return;const e=this.editor.getModel();if(e.isDisposed()||e.isTooLargeForSyncing())return;const t=e.getVersionId();this.editorWorkerService.findSectionHeaders(e.uri,this.options).then(i=>{e.isDisposed()||e.getVersionId()!==t||this.updateDecorations(i)})}updateDecorations(e){const t=this.editor.getModel();t&&(e=e.filter(s=>{if(!s.shouldBeInComments)return!0;const r=t.validateRange(s.range),a=t.tokenization.getLineTokens(r.startLineNumber),l=a.findTokenIndexAtOffset(r.startColumn-1),d=a.getStandardTokenType(l),c=t.getLanguageIdAtPosition(r.startLineNumber,r.startColumn);return a.getLanguageId(l)===c&&d===1}));const i=Object.values(this.currentOccurrences).map(s=>s.decorationId),n=e.map(s=>z3(s));this.editor.changeDecorations(s=>{const r=s.deltaDecorations(i,n);this.currentOccurrences={};for(let a=0,l=r.length;a<l;a++){const d={sectionHeader:e[a],decorationId:r[a]};this.currentOccurrences[d.decorationId]=d}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}},Xa.ID="editor.sectionHeaderDetector",Xa);ug=$3([LI(1,st),LI(2,as)],ug);function z3(o){return{range:o.range,options:te.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:o.hasSeparatorLine?2:1,sectionHeaderText:o.text}})}}ae(ug.ID,ug,1);function j3(o){for(let e=0,t=o.length;e<t;e+=4){const i=o[e+0],n=o[e+1],s=o[e+2],r=o[e+3];o[e+0]=r,o[e+1]=s,o[e+2]=n,o[e+3]=i}}function q3(o){const e=new Uint8Array(o.buffer,o.byteOffset,o.length*4);return Vk()||j3(e),Wh.wrap(e)}function NE(o){const e=new Uint32Array(K3(o));let t=0;if(e[t++]=o.id,o.type==="full")e[t++]=1,e[t++]=o.data.length,e.set(o.data,t),t+=o.data.length;else{e[t++]=2,e[t++]=o.deltas.length;for(const i of o.deltas)e[t++]=i.start,e[t++]=i.deleteCount,i.data?(e[t++]=i.data.length,e.set(i.data,t),t+=i.data.length):e[t++]=0}return q3(e)}function K3(o){let e=0;if(e+=2,o.type==="full")e+=1+o.data.length;else{e+=1,e+=3*o.deltas.length;for(const t of o.deltas)t.data&&(e+=t.data.length)}return e}function mp(o){return o&&!!o.data}function kE(o){return o&&Array.isArray(o.edits)}class G3{constructor(e,t,i){this.provider=e,this.tokens=t,this.error=i}}function TE(o,e){return o.has(e)}function Z3(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:[]}async function PE(o,e,t,i,n){const s=Z3(o,e),r=await Promise.all(s.map(async a=>{let l,d=null;try{l=await a.provideDocumentSemanticTokens(e,a===t?i:null,n)}catch(c){d=c,l=null}return(!l||!mp(l)&&!kE(l))&&(l=null),new G3(a,l,d)}));for(const a of r){if(a.error)throw a.error;if(a.tokens)return a}return r.length>0?r[0]:null}function X3(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:null}class Y3{constructor(e,t){this.provider=e,this.tokens=t}}function J3(o,e){return o.has(e)}function OE(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:[]}async function OC(o,e,t,i){const n=OE(o,e),s=await Promise.all(n.map(async r=>{let a;try{a=await r.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){Ze(l),a=null}return(!a||!mp(a))&&(a=null),new Y3(r,a)}));for(const r of s)if(r.tokens)return r;return s.length>0?s[0]:null}Ee.registerCommand("_provideDocumentSemanticTokensLegend",async(o,...e)=>{const[t]=e;Ce(t instanceof Le);const i=o.get(Yt).getModel(t);if(!i)return;const{documentSemanticTokensProvider:n}=o.get(G),s=X3(n,i);return s?s[0].getLegend():o.get(it).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)});Ee.registerCommand("_provideDocumentSemanticTokens",async(o,...e)=>{const[t]=e;Ce(t instanceof Le);const i=o.get(Yt).getModel(t);if(!i)return;const{documentSemanticTokensProvider:n}=o.get(G);if(!TE(n,i))return o.get(it).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const s=await PE(n,i,null,null,de.None);if(!s)return;const{provider:r,tokens:a}=s;if(!a||!mp(a))return;const l=NE({id:0,type:"full",data:a.data});return a.resultId&&r.releaseDocumentSemanticTokens(a.resultId),l});Ee.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(o,...e)=>{const[t,i]=e;Ce(t instanceof Le);const n=o.get(Yt).getModel(t);if(!n)return;const{documentRangeSemanticTokensProvider:s}=o.get(G),r=OE(s,n);if(r.length===0)return;if(r.length===1)return r[0].getLegend();if(!i||!I.isIRange(i))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),r[0].getLegend();const a=await OC(s,n,I.lift(i),de.None);if(a)return a.provider.getLegend()});Ee.registerCommand("_provideDocumentRangeSemanticTokens",async(o,...e)=>{const[t,i]=e;Ce(t instanceof Le),Ce(I.isIRange(i));const n=o.get(Yt).getModel(t);if(!n)return;const{documentRangeSemanticTokensProvider:s}=o.get(G),r=await OC(s,n,I.lift(i),de.None);if(!(!r||!r.tokens))return NE({id:0,type:"full",data:r.tokens.data})});const MC="editor.semanticHighlighting";function Kh(o,e,t){const i=t.getValue(MC,{overrideIdentifier:o.getLanguageId(),resource:o.uri})?.enabled;return typeof i=="boolean"?i:e.getColorTheme().semanticHighlighting}var ME=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},mn=function(o,e){return function(t,i){e(t,i,o)}},_s;let ub=class extends A{constructor(e,t,i,n,s,r){super(),this._watchers=new Jn,this._providerChangeListeners=this._register(new W);const a=r.documentSemanticTokensProvider,l=g=>{this._watchers.get(g.uri)?.dispose(),this._watchers.set(g.uri,new gb(g,e,i,s,r))},d=(g,u)=>{u.dispose(),this._watchers.delete(g.uri)},c=()=>{for(const g of t.getModels()){const u=this._watchers.get(g.uri);Kh(g,i,n)?u||l(g):u&&d(g,u)}},h=()=>{this._providerChangeListeners.clear();for(const g of a.allNoModel())typeof g.onDidChange=="function"&&this._providerChangeListeners.add(g.onDidChange(()=>{for(const u of this._watchers.values())u.handleProviderDidChange(g)}))};t.getModels().forEach(g=>{Kh(g,i,n)&&l(g)}),this._register(t.onModelAdded(g=>{Kh(g,i,n)&&l(g)})),this._register(t.onModelRemoved(g=>{const u=this._watchers.get(g.uri);u&&d(g,u)})),this._register(n.onDidChangeConfiguration(g=>{g.affectsConfiguration(MC)&&c()})),this._register(i.onDidColorThemeChange(c)),h(),this._register(a.onDidChange(()=>{h();for(const g of this._watchers.values())g.handleRegistryChange()}))}dispose(){kt(this._watchers.values()),this._watchers.clear(),super.dispose()}};ub=ME([mn(0,WS),mn(1,Yt),mn(2,yt),mn(3,Ie),mn(4,Hi),mn(5,G)],ub);var to;let gb=(to=class extends A{constructor(e,t,i,n,s){super(),this._semanticTokensStylingService=t,this._relevantProviders=new Set,this._isDisposed=!1,this._model=e,this._provider=s.documentSemanticTokensProvider,this._debounceInformation=n.for(this._provider,"DocumentSemanticTokens",{min:_s.REQUEST_MIN_DELAY,max:_s.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new et(()=>this._fetchDocumentSemanticTokensNow(),_s.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._providersChangedDuringRequest=!1,this._updateRelevantProviders(),this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._updateRelevantProviders(),this._fetchDocumentSemanticTokens.schedule(0)})),this._register(i.onDidColorThemeChange(r=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}handleRegistryChange(){this._updateRelevantProviders(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}handleProviderDidChange(e){if(this._relevantProviders.has(e)){if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}}_updateRelevantProviders(){this._relevantProviders=new Set(this._provider.all(this._model))}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!TE(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new Je,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,n=PE(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const s=[],r=this._model.onDidChangeContent(l=>{s.push(l)}),a=new _i(!1);n.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,s);else{const{provider:d,tokens:c}=l,h=this._semanticTokensStylingService.getStyling(d);this._setDocumentSemanticTokens(d,c||null,h,s)}},l=>{l&&(rs(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||we(l),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),(s.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,n,s){s=Math.min(s,i.length-n,e.length-t);for(let r=0;r<s;r++)i[n+r]=e[t+r]}_setDocumentSemanticTokens(e,t,i,n){const s=this._currentDocumentResponse,r=()=>{(n.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),r();return}if(kE(t)){if(!s){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:s.data};else{let a=0;for(const g of t.edits)a+=(g.data?g.data.length:0)-g.deleteCount;const l=s.data,d=new Uint32Array(l.length+a);let c=l.length,h=d.length;for(let g=t.edits.length-1;g>=0;g--){const u=t.edits[g];if(u.start>l.length){i.warnInvalidEditStart(s.resultId,t.resultId,g,u.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const f=c-(u.start+u.deleteCount);f>0&&(_s._copy(l,c-f,d,h-f,f),h-=f),u.data&&(_s._copy(u.data,0,d,h-u.data.length,u.data.length),h-=u.data.length),c=u.start}c>0&&_s._copy(l,0,d,0,c),t={resultId:t.resultId,data:d}}}if(mp(t)){this._currentDocumentResponse=new Q3(e,t.resultId,t.data);const a=i1(t,i,this._model.getLanguageId());if(n.length>0)for(const l of n)for(const d of a)for(const c of l.changes)d.applyEdit(c.range,c.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);r()}},_s=to,to.REQUEST_MIN_DELAY=300,to.REQUEST_MAX_DELAY=2e3,to);gb=_s=ME([mn(1,WS),mn(2,yt),mn(3,Hi),mn(4,G)],gb);class Q3{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}Rl(ub);var e4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},nd=function(o,e){return function(t,i){e(t,i,o)}},Ya;let gg=(Ya=class extends A{constructor(e,t,i,n,s,r){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=n,this._editor=e,this._provider=r.documentRangeSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new et(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[],this._rangeProvidersChangeListeners=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))},l=()=>{if(this._cleanupProviderListeners(),this._editor.hasModel()){const d=this._editor.getModel();for(const c of this._provider.all(d)){const h=c.onDidChange?.(()=>{this._cancelAll(),a()});h&&this._rangeProvidersChangeListeners.push(h)}}};this._register(this._editor.onDidScrollChange(()=>{a()})),this._register(this._editor.onDidChangeModel(()=>{l(),this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelLanguage(()=>{l(),this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelContent(d=>{this._cancelAll(),a()})),l(),this._register(this._provider.onDidChange(()=>{l(),this._cancelAll(),a()})),this._register(this._configurationService.onDidChangeConfiguration(d=>{d.affectsConfiguration(MC)&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}dispose(){this._cleanupProviderListeners(),super.dispose()}_cleanupProviderListeners(){kt(this._rangeProvidersChangeListeners),this._rangeProvidersChangeListeners=[]}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;t<i;t++)if(this._outstandingRequests[t]===e){this._outstandingRequests.splice(t,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!Kh(e,this._themeService,this._configurationService)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}if(!J3(this._provider,e)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}const t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map(i=>this._requestRange(e,i)))}_requestRange(e,t){const i=e.getVersionId(),n=dt(r=>Promise.resolve(OC(this._provider,e,t,r))),s=new _i(!1);return n.then(r=>{if(this._debounceInformation.update(e,s.elapsed()),!r||!r.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:a,tokens:l}=r,d=this._semanticTokensStylingService.getStyling(a);e.tokenization.setPartialSemanticTokens(t,i1(l,d,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(n),()=>this._removeOutstandingRequest(n)),n}},Ya.ID="editor.contrib.viewportSemanticTokens",Ya);gg=e4([nd(1,WS),nd(2,yt),nd(3,Ie),nd(4,Hi),nd(5,G)],gg);ae(gg.ID,gg,1);class t4{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const n of t){const s=[];i.push(s),this.selectSubwords&&this._addInWordRanges(s,e,n),this._addWordRanges(s,e,n),this._addWhitespaceLine(s,e,n),s.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const n=t.getWordAtPosition(i);if(!n)return;const{word:s,startColumn:r}=n,a=i.column-r;let l=a,d=a,c=0;for(;l>=0;l--){const h=s.charCodeAt(l);if(l!==a&&(h===95||h===45))break;if(Lw(h)&&Dw(c))break;c=h}for(l+=1;d<s.length;d++){const h=s.charCodeAt(d);if(Dw(h)&&Lw(c))break;if(h===95||h===45)break;c=h}l<d&&e.push({range:new I(i.lineNumber,r+l,i.lineNumber,r+d)})}_addWordRanges(e,t,i){const n=t.getWordAtPosition(i);n&&e.push({range:new I(i.lineNumber,n.startColumn,i.lineNumber,n.endColumn)})}_addWhitespaceLine(e,t,i){t.getLineLength(i.lineNumber)>0&&t.getLineFirstNonWhitespaceColumn(i.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(i.lineNumber)===0&&e.push({range:new I(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var i4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},n4=function(o,e){return function(t,i){e(t,i,o)}},fb;class AC{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new AC(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}var Dr;let yc=(Dr=class{static get(e){return e.getContribution(fb.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||await FE(this._languageFeaturesService.selectionRangeProvider,i,t.map(s=>s.getPosition()),this._editor.getOption(129),de.None).then(s=>{if(!(!ri(s)||s.length!==t.length)&&!(!this._editor.hasModel()||!sn(this._editor.getSelections(),t,(r,a)=>r.equalsSelection(a)))){for(let r=0;r<s.length;r++)s[r]=s[r].filter(a=>a.containsPosition(t[r].getStartPosition())&&a.containsPosition(t[r].getEndPosition())),s[r].unshift(t[r]);this._state=s.map(r=>new AC(0,r)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{this._ignoreSelection||(this._selectionListener?.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(s=>s.mov(e));const n=this._state.map(s=>J.fromPositions(s.ranges[s.index].getStartPosition(),s.ranges[s.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(n)}finally{this._ignoreSelection=!1}}},fb=Dr,Dr.ID="editor.contrib.smartSelectController",Dr);yc=fb=i4([n4(1,G)],yc);class AE extends F{constructor(e,t){super(t),this._forward=e}async run(e,t){const i=yc.get(t);i&&await i.run(this._forward)}}class s4 extends AE{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:L(1449,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"1_basic",title:m(1447,"&&Expand Selection"),order:2}})}}Ee.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class o4 extends AE{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:L(1450,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:q.MenubarSelectionMenu,group:"1_basic",title:m(1448,"&&Shrink Selection"),order:3}})}}ae(yc.ID,yc,4);P(s4);P(o4);async function FE(o,e,t,i,n){const s=o.all(e).concat(new t4(i.selectSubwords));s.length===1&&s.unshift(new Xu);const r=[],a=[];for(const l of s)r.push(Promise.resolve(l.provideSelectionRanges(e,t,n)).then(d=>{if(ri(d)&&d.length===t.length)for(let c=0;c<t.length;c++){a[c]||(a[c]=[]);for(const h of d[c])I.isIRange(h.range)&&I.containsPosition(h.range,t[c])&&a[c].push(I.lift(h.range))}},Ze));return await Promise.all(r),a.map(l=>{if(l.length===0)return[];l.sort((g,u)=>$.isBefore(g.getStartPosition(),u.getStartPosition())?1:$.isBefore(u.getStartPosition(),g.getStartPosition())||$.isBefore(g.getEndPosition(),u.getEndPosition())?-1:$.isBefore(u.getEndPosition(),g.getEndPosition())?1:0);const d=[];let c;for(const g of l)(!c||I.containsRange(g,c)&&!I.equalsRange(g,c))&&(d.push(g),c=g);if(!i.selectLeadingAndTrailingWhitespace)return d;const h=[d[0]];for(let g=1;g<d.length;g++){const u=d[g-1],f=d[g];if(f.startLineNumber!==u.startLineNumber||f.endLineNumber!==u.endLineNumber){const p=new I(u.startLineNumber,e.getLineFirstNonWhitespaceColumn(u.startLineNumber),u.endLineNumber,e.getLineLastNonWhitespaceColumn(u.endLineNumber));p.containsRange(u)&&!p.equalsRange(u)&&f.containsRange(p)&&!f.equalsRange(p)&&h.push(p);const _=new I(u.startLineNumber,1,u.endLineNumber,e.getLineMaxColumn(u.endLineNumber));_.containsRange(u)&&!_.equalsRange(p)&&f.containsRange(_)&&!f.equalsRange(_)&&h.push(_)}h.push(f)}return h})}Ee.registerCommand("_executeSelectionRangeProvider",async function(o,...e){const[t,i]=e;Ce(Le.isUri(t)),Ce(Bk(i,r=>$.isIPosition(r)));const n=o.get(G).selectionRangeProvider,s=await o.get(ci).createModelReference(t);try{return FE(n,s.object.textEditorModel,i.map($.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},de.None)}finally{s.dispose()}});const pb=Object.freeze({View:L(1692,"View"),Help:L(1693,"Help"),Test:L(1694,"Test"),File:L(1695,"File"),Preferences:L(1696,"Preferences"),Developer:L(1697,"Developer")});class r4 extends vi{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...L(1498,"Toggle Editor Sticky Scroll"),mnemonicTitle:m(1494,"&&Toggle Editor Sticky Scroll")},metadata:{description:L(1499,"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:pb.View,toggled:{condition:T.equals("config.editor.stickyScroll.enabled",!0),title:m(1495,"Sticky Scroll"),mnemonicTitle:m(1496,"&&Sticky Scroll")},menu:[{id:q.CommandPalette},{id:q.MenubarAppearanceMenu,group:"4_editor",order:3},{id:q.StickyScrollContext}]})}async runEditorCommand(e,t){const i=e.get(Ie),n=!i.getValue("editor.stickyScroll.enabled"),s=Fi.get(t)?.isFocused();i.updateValue("editor.stickyScroll.enabled",n),s&&t.focus()}}const _p=100;class a4 extends vi{constructor(){super({id:"editor.action.focusStickyScroll",title:{...L(1500,"Focus Editor Sticky Scroll"),mnemonicTitle:m(1497,"&&Focus Editor Sticky Scroll")},precondition:T.and(T.has("config.editor.stickyScroll.enabled"),C.stickyScrollVisible),menu:[{id:q.CommandPalette}]})}runEditorCommand(e,t){Fi.get(t)?.focus()}}class l4 extends vi{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:L(1501,"Select the next editor sticky scroll line"),precondition:C.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:_p,primary:18}})}runEditorCommand(e,t){Fi.get(t)?.focusNext()}}class d4 extends vi{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:L(1502,"Select the previous sticky scroll line"),precondition:C.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:_p,primary:16}})}runEditorCommand(e,t){Fi.get(t)?.focusPrevious()}}class c4 extends vi{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:L(1503,"Go to the focused sticky scroll line"),precondition:C.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:_p,primary:3}})}runEditorCommand(e,t){Fi.get(t)?.goToFocused()}}class h4 extends vi{constructor(){super({id:"editor.action.selectEditor",title:L(1504,"Select Editor"),precondition:C.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:_p,primary:9}})}runEditorCommand(e,t){Fi.get(t)?.selectEditor()}}ae(Fi.ID,Fi,1);he(r4);he(a4);he(d4);he(l4);he(c4);he(h4);var WE=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},vd=function(o,e){return function(t,i){e(t,i,o)}};class u4{constructor(e,t,i,n,s,r,a){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=n,this.command=s,this.gutterMenuLinkAction=r,this.completion=a,this.doNotLog=!0}}let mb=class extends Uk{constructor(e,t,i,n,s,r){super(s.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=n,this._suggestMemoryService=r}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn<i.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){const e=[],{items:t}=this.completionModel,i=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},t),n=Fs.slice(t,i),s=Fs.slice(t,0,i);let r=5;for(const a of Fs.concat(n,s)){if(a.score===Zd.Default)continue;const l=new I(a.editStart.lineNumber,a.editStart.column,a.editInsertEnd.lineNumber,a.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),d=a.completion.insertTextRules&&a.completion.insertTextRules&4?{snippet:a.completion.insertText}:a.completion.insertText;e.push(new u4(l,d,a.filterTextLow??a.labelLow,a.completion.additionalTextEdits,a.completion.command,a.completion.action,a)),r-->=0&&a.resolve(de.None)}return e}};mb=WE([vd(5,hp)],mb);let _b=class extends A{constructor(e,t,i,n){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=n,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,i,n){if(i.selectedSuggestionInfo)return;let s;for(const u of this._editorService.listCodeEditors())if(u.getModel()===e){s=u;break}if(!s)return;const r=s.getOption(102);if(Ra.isAllOff(r))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const a=e.tokenization.getLineTokens(t.lineNumber),l=a.getStandardTokenType(a.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(Ra.valueFor(r,l)!=="inline")return;let d=e.getWordAtPosition(t),c;if(d?.word||(c=this._getTriggerCharacterInfo(e,t)),!d?.word&&!c||(d||(d=e.getWordUntilPosition(t)),d.endColumn!==t.column))return;let h;const g=e.getValueInRange(new I(t.lineNumber,1,t.lineNumber,t.column));if(!c&&this._lastResult?.canBeReused(e,t.lineNumber,d)){const u=new Ky(g,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=u,this._lastResult.acquire(),h=this._lastResult}else{const u=await mC(this._languageFeatureService.completionProvider,e,t,new rc(void 0,Ju.createSuggestFilter(s).itemKind,c?.providers),c&&{triggerKind:1,triggerCharacter:c.ch},n);let f;u.needsClipboard&&(f=await this._clipboardService.readText());const p=new Ls(u.items,t.column,new Ky(g,0),Yu.None,s.getOption(134),s.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},f);h=new mb(e,t.lineNumber,d,p,u,this._suggestMemoryService)}return this._lastResult=h,h}handleItemDidShow(e,t){t.completion.resolve(de.None)}disposeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){const i=e.getValueInRange(I.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),n=new Set;for(const s of this._languageFeatureService.completionProvider.all(e))s.triggerCharacters?.includes(i)&&n.add(s);if(n.size!==0)return{providers:n,ch:i}}};_b=WE([vd(0,G),vd(1,li),vd(2,hp),vd(3,Ue)],_b);Rl(_b);class g4 extends F{constructor(){super({id:"editor.action.forceRetokenize",label:L(1584,"Developer: Force Retokenize"),precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const n=new _i;i.tokenization.forceTokenization(i.getLineCount()),n.stop(),console.log(`tokenization took ${n.elapsed()}`)}}P(g4);const gf=class gf extends tt{constructor(){super({id:gf.ID,title:L(1582,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:L(1583,"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(){const t=!Ew.getTabFocusMode();Ew.setTabFocusMode(t),t?mi(m(1580,"Pressing Tab will now move focus to the next focusable element")):mi(m(1581,"Pressing Tab will now insert the tab character"))}};gf.ID="editor.action.toggleTabFocusMode";let vb=gf;he(vb);var f4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},DI=function(o,e){return function(t,i){e(t,i,o)}};let bb=class extends A{get enabled(){return this._enabled}set enabled(e){e?(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):(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=e}constructor(e,t,i={},n,s){super(),this._link=t,this._hoverService=n,this._enabled=!0,this.el=z(e,B("a.monaco-link",{tabIndex:t.tabIndex??0,href:t.href},t.label)),this.hoverDelegate=i.hoverDelegate??iL("mouse"),this.setTooltip(t.title),this.el.setAttribute("role","button");const r=this._register(new Dp(this.el,"click")),a=this._register(new Dp(this.el,"keydown")),l=Ve.chain(a.event,h=>h.map(g=>new NS(g)).filter(g=>g.keyCode===3||g.keyCode===10)),d=this._register(new Dp(this.el,$k.Tap)).event;this._register(Xx.addTarget(this.el));const c=Ve.any(r.event,l,d);this._register(c(h=>{this.enabled&&(Vn.stop(h,!0),i?.opener?i.opener(this._link.href):s.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(e){!this.hover&&e?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};bb=f4([DI(3,bi),DI(4,Xr)],bb);var HE=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Sb=function(o,e){return function(t,i){e(t,i,o)}};const p4=26;let Cb=class extends A{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(wb))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{this.hide(),e.onClose?.()}}),this._editor.setBanner(this.banner.element,p4)}};Cb=HE([Sb(1,ee)],Cb);let wb=class extends A{constructor(e,t){super(),this.instantiationService=e,this.markdownRendererService=t,this.element=B("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message=="string")return e.message}getBannerMessage(e){if(typeof e=="string"){const t=B("span");return t.innerText=e,t}return this.markdownRendererService.render(e).element}clear(){pi(this.element)}show(e){pi(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=z(this.element,B("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild(B(`div${ce.asCSSSelector(e.icon)}`));const n=z(this.element,B("div.message-container"));if(n.setAttribute("aria-hidden","true"),n.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=z(this.element,B("div.message-actions-container")),e.actions)for(const r of e.actions)this._register(this.instantiationService.createInstance(bb,this.messageActionsContainer,{...r,tabIndex:-1},{}));const s=z(this.element,B("div.action-container"));this.actionBar=this._register(new oo(s)),this.actionBar.push(this._register(new rl("banner.close",m(1585,"Close Banner"),ce.asClassName(rL),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};wb=HE([Sb(0,ee),Sb(1,wo)],wb);var FC=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ad=function(o,e){return function(t,i){e(t,i,o)}};const m4=ze("extensions-warning-message",U.warning,m(1586,"Icon shown with a warning message in the extensions editor."));var Ja;let Ic=(Ja=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=s=>{if(s&&s.hasMore){if(this._bannerClosed)return;const r=Math.max(s.ambiguousCharacterCount,s.nonBasicAsciiCharacterCount,s.invisibleCharacterCount);let a;if(s.nonBasicAsciiCharacterCount>=r)a={message:m(1587,"This document contains many non-basic ASCII unicode characters"),command:new Lc};else if(s.ambiguousCharacterCount>=r)a={message:m(1588,"This document contains many ambiguous unicode characters"),command:new Zr};else if(s.invisibleCharacterCount>=r)a={message:m(1589,"This document contains many invisible unicode characters"),command:new xc};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:a.message,icon:m4,actions:[{label:a.command.shortLabel,href:`command:${a.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(n.createInstance(Cb,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(142),this._register(i.onDidChangeTrust(s=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(s=>{s.hasChanged(142)&&(this._options=e.getOption(142),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=_4(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every(i=>i===!1))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map(i=>i.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(i=>i==="_os"?DL.NumberFormat().value.resolvedOptions().locale:i==="_vscode"?zk:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new yb(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new v4(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}},Ja.ID="editor.contrib.unicodeHighlighter",Ja);Ic=FC([Ad(1,as),Ad(2,jk),Ad(3,ee)],Ic);function _4(o,e){return{nonBasicASCII:e.nonBasicASCII===Ep?!o:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments===Ep?!o:e.includeComments,includeStrings:e.includeStrings===Ep?!o:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}let yb=class extends A{constructor(e,t,i,n){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=n,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new et(()=>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}const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const n of t.ranges)i.push({range:n,options:fg.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!n1(t,e))return null;const i=t.getValueInRange(e.range);return{reason:BE(i,this._options),inComment:o1(t,e),inString:s1(t,e)}}};yb=FC([Ad(3,as)],yb);class v4 extends A{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new et(()=>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}const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const n of e){const s=r1.computeUnicodeHighlights(this._model,this._options,n);for(const r of s.ranges)i.ranges.push(r);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||s.hasMore}if(!i.hasMore)for(const n of i.ranges)t.push({range:n,options:fg.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return n1(t,e)?{reason:BE(i,this._options),inComment:o1(t,e),inString:s1(t,e)}:null}}const VE=m(1590,"Configure Unicode Highlight Options");let Ib=class{constructor(e,t){this._editor=e,this._markdownRendererService=t,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),n=this._editor.getContribution(Ic.ID);if(!n)return[];const s=[],r=new Set;let a=300;for(const l of t){const d=n.getDecorationInfo(l);if(!d)continue;const h=i.getValueInRange(l.range).codePointAt(0),g=fm(h);let u;switch(d.reason.kind){case 0:{qL(d.reason.confusableWith)?u=m(1591,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",g,fm(d.reason.confusableWith.codePointAt(0))):u=m(1592,"The character {0} could be confused with the character {1}, which is more common in source code.",g,fm(d.reason.confusableWith.codePointAt(0)));break}case 1:u=m(1593,"The character {0} is invisible.",g);break;case 2:u=m(1594,"The character {0} is not a basic ASCII character.",g);break}if(r.has(u))continue;r.add(u);const f={codePoint:h,reason:d.reason,inComment:d.inComment,inString:d.inString},p=m(1595,"Adjust settings"),_=hL(pg.ID,f),v=new It("",!0).appendMarkdown(u).appendText(" ").appendLink(_,p,VE);s.push(new Ti(this,l.range,[v],!1,a++))}return s}renderHoverParts(e,t){return KO(e,t,this._editor,this._markdownRendererService)}getAccessibleContent(e){return e.contents.map(t=>t.value).join(`
61
- `)}};Ib=FC([Ad(1,wo)],Ib);function xb(o){return`U+${o.toString(16).padStart(4,"0")}`}function fm(o){let e=`\`${xb(o)}\``;return a1.isInvisibleCharacter(o)||(e+=` "${`${b4(o)}`}"`),e}function b4(o){return o===96?"`` ` ``":"`"+String.fromCodePoint(o)+"`"}function BE(o,e){return r1.computeUnicodeHighlightReason(o,e)}const ff=class ff{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let n=this.map.get(i);return n||(n=te.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,n)),n}};ff.instance=new ff;let fg=ff;class S4 extends F{constructor(){super({id:Zr.ID,label:L(1604,"Disable highlighting of characters in comments"),precondition:void 0}),this.shortLabel=m(1596,"Disable Highlight In Comments")}async run(e,t){const i=e.get(Ie);i&&this.runAction(i)}async runAction(e){await e.updateValue(ts.includeComments,!1,2)}}class C4 extends F{constructor(){super({id:Zr.ID,label:L(1605,"Disable highlighting of characters in strings"),precondition:void 0}),this.shortLabel=m(1597,"Disable Highlight In Strings")}async run(e,t){const i=e.get(Ie);i&&this.runAction(i)}async runAction(e){await e.updateValue(ts.includeStrings,!1,2)}}const pf=class pf extends tt{constructor(){super({id:pf.ID,title:L(1606,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1}),this.shortLabel=m(1598,"Disable Ambiguous Highlight")}async run(e,t){const i=e.get(Ie);i&&this.runAction(i)}async runAction(e){await e.updateValue(ts.ambiguousCharacters,!1,2)}};pf.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";let Zr=pf;const mf=class mf extends tt{constructor(){super({id:mf.ID,title:L(1607,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1}),this.shortLabel=m(1599,"Disable Invisible Highlight")}async run(e,t){const i=e.get(Ie);i&&this.runAction(i)}async runAction(e){await e.updateValue(ts.invisibleCharacters,!1,2)}};mf.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";let xc=mf;const _f=class _f extends tt{constructor(){super({id:_f.ID,title:L(1608,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1}),this.shortLabel=m(1600,"Disable Non ASCII Highlight")}async run(e,t){const i=e.get(Ie);i&&this.runAction(i)}async runAction(e){await e.updateValue(ts.nonBasicASCII,!1,2)}};_f.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";let Lc=_f;const vf=class vf extends tt{constructor(){super({id:vf.ID,title:L(1609,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(e,t){const{codePoint:i,reason:n,inString:s,inComment:r}=t,a=String.fromCodePoint(i),l=e.get(Ai),d=e.get(Ie);function c(f){return a1.isInvisibleCharacter(f)?m(1601,"Exclude {0} (invisible character) from being highlighted",xb(f)):m(1602,"Exclude {0} from being highlighted",`${xb(f)} "${a}"`)}const h=[];if(n.kind===0)for(const f of n.notAmbiguousInLocales)h.push({label:m(1603,'Allow unicode characters that are more common in the language "{0}".',f),run:async()=>{y4(d,[f])}});if(h.push({label:c(i),run:()=>w4(d,[i])}),r){const f=new S4;h.push({label:f.label,run:async()=>f.runAction(d)})}else if(s){const f=new C4;h.push({label:f.label,run:async()=>f.runAction(d)})}function g(f){return typeof f.desc.title=="string"?f.desc.title:f.desc.title.value}if(n.kind===0){const f=new Zr;h.push({label:g(f),run:async()=>f.runAction(d)})}else if(n.kind===1){const f=new xc;h.push({label:g(f),run:async()=>f.runAction(d)})}else if(n.kind===2){const f=new Lc;h.push({label:g(f),run:async()=>f.runAction(d)})}else I4(n);const u=await l.pick(h,{title:VE});u&&await u.run()}};vf.ID="editor.action.unicodeHighlight.showExcludeOptions";let pg=vf;async function w4(o,e){const t=o.getValue(ts.allowedCharacters);let i;typeof t=="object"&&t?i=t:i={};for(const n of e)i[String.fromCodePoint(n)]=!0;await o.updateValue(ts.allowedCharacters,i,2)}async function y4(o,e){const t=o.inspect(ts.allowedLocales).user?.value;let i;typeof t=="object"&&t?i=Object.assign({},t):i={};for(const n of e)i[n]=!0;await o.updateValue(ts.allowedLocales,i,2)}function I4(o){throw new Error(`Unexpected value: ${o}`)}he(Zr);he(xc);he(Lc);he(pg);ae(Ic.ID,Ic,1);ea.register(Ib);var x4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},EI=function(o,e){return function(t,i){e(t,i,o)}};const UE="ignoreUnusualLineTerminators";function L4(o,e,t){o.setModelProperty(e.uri,UE,t)}function D4(o,e){return o.getModelProperty(e.uri,UE)}var Qa;let mg=(Qa=class extends A{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(143),this._register(this._editor.onDidChangeConfiguration(n=>{n.hasChanged(143)&&(this._config=this._editor.getOption(143),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(n=>{n.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||D4(this._codeEditorService,e)===!0||this._editor.getOption(104))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=await this._dialogService.confirm({title:m(1610,"Unusual Line Terminators"),message:m(1611,"Detected unusual line terminators"),detail:m(1612,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",on(e.uri)),primaryButton:m(1613,"&&Remove Unusual Line Terminators"),cancelButton:m(1614,"Ignore")})}finally{this._isPresentingDialog=!1}if(!i.confirmed){L4(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}},Qa.ID="editor.contrib.unusualLineTerminatorsDetector",Qa);mg=x4([EI(1,HS),EI(2,Ue)],mg);ae(mg.ID,mg,1);var E4=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},R4=function(o,e){return function(t,i){e(t,i,o)}};class RI{constructor(){this.selector={language:"*"}}provideDocumentHighlights(e,t,i){if(e.isDisposed())return;const n=[],s=e.getWordAtPosition({lineNumber:t.lineNumber,column:t.column});return s?e.findMatches(s.word,!0,!1,!0,Rw,!1).map(a=>({range:a.range,kind:ru.Text})):Promise.resolve(n)}provideMultiDocumentHighlights(e,t,i,n){if(e.isDisposed())return;const s=new Jn,r=e.getWordAtPosition({lineNumber:t.lineNumber,column:t.column});if(!r)return Promise.resolve(s);for(const a of[e,...i]){if(a.isDisposed())continue;const d=a.findMatches(r.word,!0,!1,!0,Rw,!1).map(c=>({range:c.range,kind:ru.Text}));d&&s.set(a.uri,d)}return s}}let Lb=class extends A{constructor(e){super(),this._register(e.documentHighlightProvider.register("*",new RI)),this._register(e.multiDocumentHighlightProvider.register("*",new RI))}};Lb=E4([R4(0,G)],Lb);var $E=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},_n=function(o,e){return function(t,i){e(t,i,o)}},Me,Db;const WC=new ie("hasWordHighlights",!1);function zE(o,e,t,i){const n=o.ordered(e);return FS(n.map(s=>()=>Promise.resolve(s.provideDocumentHighlights(e,t,i)).then(void 0,Ze)),s=>s!=null).then(s=>{if(s){const r=new Jn;return r.set(e.uri,s),r}return new Jn})}function N4(o,e,t,i,n){const s=o.ordered(e);return FS(s.map(r=>()=>{const a=n.filter(l=>Kk(l)).filter(l=>Gk(r.selector,l.uri,l.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(r.provideMultiDocumentHighlights(e,t,a,i)).then(void 0,Ze)}),r=>r!=null)}class jE{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=dt(e=>this._compute(this._model,this._selection,this._wordSeparators,e))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new I(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}cancel(){this.result.cancel()}}class k4 extends jE{constructor(e,t,i,n){super(e,t,i),this._providers=n}_compute(e,t,i,n){return zE(this._providers,e,t.getPosition(),n).then(s=>s||new Jn)}}class T4 extends jE{constructor(e,t,i,n,s){super(e,t,i),this._providers=n,this._otherModels=s}_compute(e,t,i,n){return N4(this._providers,e,t.getPosition(),n,this._otherModels).then(s=>s||new Jn)}}function P4(o,e,t,i){return new k4(e,t,i,o)}function O4(o,e,t,i,n){return new T4(e,t,i,o,n)}$t("_executeDocumentHighlights",async(o,e,t)=>{const i=o.get(G);return(await zE(i.documentHighlightProvider,e,t,de.None))?.get(e.uri)});var io;let Eb=(io=class{constructor(e,t,i,n,s,r,a,l){this.toUnhook=new W,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new Jn,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,this.runDelayer=this.toUnhook.add(new lo(50)),this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=r,this.textModelService=s,this.configurationService=a,this.logService=l,this._hasWordHighlights=WC.bindTo(n),this._ignorePositionChangeEvent=!1,this.occurrencesHighlightEnablement=this.editor.getOption(90),this.occurrencesHighlightDelay=this.configurationService.getValue("editor.occurrencesHighlightDelay"),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(d=>{this._ignorePositionChangeEvent||this.occurrencesHighlightEnablement!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(d)}).catch(we)})),this.toUnhook.add(e.onDidFocusEditorText(d=>{this.occurrencesHighlightEnablement!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}).catch(we))})),this.toUnhook.add(e.onDidChangeModelContent(d=>{qk(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(d=>{!d.newModelUrl&&d.oldModelUrl?this._stopSingular():Me.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(d=>{const c=this.editor.getOption(90);if(this.occurrencesHighlightEnablement!==c)switch(this.occurrencesHighlightEnablement=c,c){case"off":this._stopAll();break;case"singleFile":this._stopAll(Me.query?.modelInfo?.modelURI);break;case"multiFile":Me.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",c);break}})),this.toUnhook.add(this.configurationService.onDidChangeConfiguration(d=>{if(d.affectsConfiguration("editor.occurrencesHighlightDelay")){const c=a.getValue("editor.occurrencesHighlightDelay");this.occurrencesHighlightDelay!==c&&(this.occurrencesHighlightDelay=c)}})),this.toUnhook.add(e.onDidBlurEditorWidget(()=>{const d=this.codeEditorService.getFocusedCodeEditor();d?d.getModel()?.uri.scheme===mt.vscodeNotebookCell&&this.editor.getModel()?.uri.scheme!==mt.vscodeNotebookCell&&this._stopAll():this._stopAll()})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,Me.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(e){this.occurrencesHighlightEnablement!=="off"&&(this.runDelayer.cancel(),this.runDelayer.trigger(()=>{this._run(!1,e)}).catch(we))}stop(){this.occurrencesHighlightEnablement!=="off"&&this._stopAll()}_getSortedHighlights(){return this.decorations.getRanges().sort(I.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),i=(e.findIndex(s=>s.containsPosition(this.editor.getPosition()))+1)%e.length,n=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n);const s=this._getWord();if(s){const r=this.editor.getModel().getLineContent(n.startLineNumber);mi(`${r}, ${i+1} of ${e.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),i=(e.findIndex(s=>s.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,n=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n);const s=this._getWord();if(s){const r=this.editor.getModel().getLineContent(n.startLineNumber);mi(`${r}, ${i+1} of ${e.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Me.storedDecorationIDs.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Me.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(e){const t=this.codeEditorService.listCodeEditors(),i=[];for(const n of t){if(!n.hasModel()||ro(n.getModel().uri,e))continue;const s=Me.storedDecorationIDs.get(n.getModel().uri);if(!s)continue;n.removeDecorations(s),i.push(n.getModel().uri);const r=po.get(n);r?.wordHighlighter&&r.wordHighlighter.decorations.length>0&&(r.wordHighlighter.decorations.clear(),r.wordHighlighter.workerRequest=null,r.wordHighlighter._hasWordHighlights.set(!1))}for(const n of i)Me.storedDecorationIDs.delete(n)}_stopSingular(){this._removeSingleDecorations(),this.editor.hasTextFocus()&&(this.editor.getModel()?.uri.scheme!==mt.vscodeNotebookCell&&Me.query?.modelInfo?.modelURI.scheme!==mt.vscodeNotebookCell?(Me.query=null,this._run()):Me.query?.modelInfo&&(Me.query.modelInfo=null)),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(e){this._removeAllDecorations(e),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){if(this.occurrencesHighlightEnablement==="off"){this._stopAll();return}if(e.source!=="api"&&e.reason!==3){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:i})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===mt.vscodeNotebookCell){const s=[],r=this.codeEditorService.listCodeEditors();for(const a of r){const l=a.getModel();l&&l!==e&&l.uri.scheme===mt.vscodeNotebookCell&&s.push(l)}return s}const i=[],n=this.codeEditorService.listCodeEditors();for(const s of n){if(!l1(s))continue;const r=s.getModel();r&&e===r.modified&&i.push(r.modified)}if(i.length)return i;if(this.occurrencesHighlightEnablement==="singleFile")return[];for(const s of n){const r=s.getModel();r&&r!==e&&i.push(r)}return i}async _run(e,t){if(this.editor.hasTextFocus()){const n=this.editor.getSelection();if(!n||n.startLineNumber!==n.endLineNumber){Me.query=null,this._stopAll();return}const s=n.startColumn,r=n.endColumn,a=this._getWord();if(!a||a.startColumn>s||a.endColumn<r){Me.query=null,this._stopAll();return}Me.query={modelInfo:{modelURI:this.model.uri,selection:n}}}else if(!Me.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),ro(this.editor.getModel().uri,Me.query.modelInfo?.modelURI)){if(!e){const a=this.decorations.getRanges();for(const l of a)if(l.containsPosition(this.editor.getPosition()))return}this._stopAll(e?this.model.uri:void 0);const n=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const s=this.getOtherModelsToHighlight(this.editor.getModel());if(!Me.query||!Me.query.modelInfo)return;const r=await this.textModelService.createModelReference(Me.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(r.object.textEditorModel,Me.query.modelInfo.selection,s),this.workerRequest?.result.then(a=>{n===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=a||[],this._beginRenderDecorations(t??this.occurrencesHighlightDelay))},we)}catch(a){this.logService.error("Unexpected error during occurrence request. Log: ",a)}finally{r.dispose()}}else if(this.model.uri.scheme===mt.vscodeNotebookCell){const n=++this.workerRequestTokenId;if(this.workerRequestCompleted=!1,!Me.query||!Me.query.modelInfo)return;const s=await this.textModelService.createModelReference(Me.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(s.object.textEditorModel,Me.query.modelInfo.selection,[this.model]),this.workerRequest?.result.then(r=>{n===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=r||[],this._beginRenderDecorations(t??this.occurrencesHighlightDelay))},we)}catch(r){this.logService.error("Unexpected error during occurrence request. Log: ",r)}finally{s.dispose()}}}computeWithModel(e,t,i){return i.length?O4(this.multiDocumentProviders,e,t,this.editor.getOption(148),i):P4(this.providers,e,t,this.editor.getOption(148))}_beginRenderDecorations(e){const t=new Date().getTime(),i=this.lastCursorPositionChangeTime+e;t>=i?(this.renderDecorationsTimer=void 0,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},i-t)}renderDecorations(){this.renderDecorationsTimer=void 0;const e=this.codeEditorService.listCodeEditors();for(const t of e){const i=po.get(t);if(!i)continue;const n=[],s=t.getModel()?.uri;if(s&&this.workerRequestValue.has(s)){const r=Me.storedDecorationIDs.get(s),a=this.workerRequestValue.get(s);if(a)for(const d of a)d.range&&n.push({range:d.range,options:f3(d.kind)});let l=[];t.changeDecorations(d=>{l=d.deltaDecorations(r??[],n)}),Me.storedDecorationIDs=Me.storedDecorationIDs.set(s,l),n.length>0&&(i.wordHighlighter?.decorations.set(n),i.wordHighlighter?._hasWordHighlights.set(!0))}}this.workerRequest=null}dispose(){this._stopSingular(),this.toUnhook.dispose()}},Me=io,io.storedDecorationIDs=new Jn,io.query=null,io);Eb=Me=$E([_n(4,ci),_n(5,Ue),_n(6,Ie),_n(7,Pt)],Eb);var Er;let po=(Er=class extends A{static get(e){return e.getContribution(Db.ID)}constructor(e,t,i,n,s,r,a){super(),this._wordHighlighter=null;const l=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&e.getModel().uri.scheme!==mt.accessibleView&&(this._wordHighlighter=new Eb(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,s,n,r,a))};this._register(e.onDidChangeModel(d=>{this._wordHighlighter&&(!d.newModelUrl&&d.oldModelUrl?.scheme!==mt.vscodeNotebookCell&&this.wordHighlighter?.stop(),this._wordHighlighter.dispose(),this._wordHighlighter=null),l()})),l()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){this._wordHighlighter?.moveNext()}moveBack(){this._wordHighlighter?.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore(250)}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},Db=Er,Er.ID="editor.contrib.wordHighlighter",Er);po=Db=$E([_n(1,pe),_n(2,G),_n(3,Ue),_n(4,ci),_n(5,Ie),_n(6,Pt)],po);class qE extends F{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=po.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class M4 extends qE{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:L(1624,"Go to Next Symbol Highlight"),precondition:WC,kbOpts:{kbExpr:C.editorTextFocus,primary:65,weight:100}})}}class A4 extends qE{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:L(1625,"Go to Previous Symbol Highlight"),precondition:WC,kbOpts:{kbExpr:C.editorTextFocus,primary:1089,weight:100}})}}class F4 extends F{constructor(){super({id:"editor.action.wordHighlight.trigger",label:L(1626,"Trigger Symbol Highlight"),precondition:void 0,kbOpts:{kbExpr:C.editorTextFocus,primary:0,weight:100}})}run(e,t){const i=po.get(t);i&&i.restoreViewState(!0)}}ae(po.ID,po,0);P(M4);P(A4);P(F4);Rl(Lb);class vp extends Mt{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const n=Yr(t.getOption(148),t.getOption(147)),s=t.getModel(),r=t.getSelections(),a=r.length>1,l=r.map(d=>{const c=new $(d.positionLineNumber,d.positionColumn),h=this._move(n,s,c,this._wordNavigationType,a);return this._moveTo(d,h,this._inSelectionMode)});if(s.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,l.map(d=>Zk.fromModelSelection(d))),l.length===1){const d=new $(l[0].positionLineNumber,l[0].positionColumn);t.revealPosition(d,0)}}_moveTo(e,t,i){return i?new J(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new J(t.lineNumber,t.column,t.lineNumber,t.column)}}class xo extends vp{_move(e,t,i,n,s){return jc.moveWordLeft(e,t,i,n,s)}}class Lo extends vp{_move(e,t,i,n,s){return jc.moveWordRight(e,t,i,n)}}class W4 extends xo{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class H4 extends xo{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class V4 extends xo{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:T.and(C.textInputFocus,T.and(zc,$f)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class B4 extends xo{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class U4 extends xo{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class $4 extends xo{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:T.and(C.textInputFocus,T.and(zc,$f)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class z4 extends xo{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,n,s){return super._move(Yr(zf.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,n,s)}}class j4 extends xo{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,n,s){return super._move(Yr(zf.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,n,s)}}class q4 extends Lo{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class K4 extends Lo{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:T.and(C.textInputFocus,T.and(zc,$f)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class G4 extends Lo{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class Z4 extends Lo{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class X4 extends Lo{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:T.and(C.textInputFocus,T.and(zc,$f)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class Y4 extends Lo{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class J4 extends Lo{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,n,s){return super._move(Yr(zf.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,n,s)}}class Q4 extends Lo{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,n,s){return super._move(Yr(zf.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,n,s)}}class bp extends Mt{constructor(e){super({canTriggerInlineEdits:!0,...e}),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const n=e?.get(st);if(!t.hasModel()||!n)return;const s=Yr(t.getOption(148),t.getOption(147)),r=t.getModel(),a=t.getSelections(),l=t.getOption(10),d=t.getOption(15),c=n.getLanguageConfiguration(r.getLanguageId()).getAutoClosingPairs(),h=t._getViewModel(),g=a.map(u=>{const f=this._delete({wordSeparators:s,model:r,selection:u,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(13),autoClosingBrackets:l,autoClosingQuotes:d,autoClosingPairs:c,autoClosedCharacters:h.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Pc(f,"")});t.pushUndoStop(),t.executeCommands(this.id,g),t.pushUndoStop()}}class HC extends bp{_delete(e,t){const i=jc.deleteWordLeft(e,t);return i||new I(1,1,1,1)}}class VC extends bp{_delete(e,t){const i=jc.deleteWordRight(e,t);if(i)return i;const n=e.model.getLineCount(),s=e.model.getLineMaxColumn(n);return new I(n,s,n,s)}}class eU extends HC{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:C.writable})}}class tU extends HC{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:C.writable})}}class iU extends HC{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class nU extends VC{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:C.writable})}}class sU extends VC{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:C.writable})}}class oU extends VC{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class rU extends F{constructor(){super({id:"deleteInsideWord",precondition:C.writable,label:L(1628,"Delete Word"),metadata:{description:L(1629,"Delete the word at the cursor"),args:[{name:"args",schema:{type:"object",properties:{onlyWord:{type:"boolean",default:!1,description:m(1627,"Delete only the word and leave surrounding whitespace")}}}}]}})}run(e,t,i){if(!t.hasModel())return;const n=!!(i&&typeof i=="object"&&i.onlyWord),s=Yr(t.getOption(148),t.getOption(147)),r=t.getModel(),l=t.getSelections().map(d=>{const c=jc.deleteInsideWord(s,r,d,n);return new Pc(c,"")});t.pushUndoStop(),t.executeCommands(this.id,l),t.pushUndoStop()}}K(new W4);K(new H4);K(new V4);K(new B4);K(new U4);K(new $4);K(new q4);K(new K4);K(new G4);K(new Z4);K(new X4);K(new Y4);K(new z4);K(new j4);K(new J4);K(new Q4);K(new eU);K(new tU);K(new iU);K(new nU);K(new sU);K(new oU);P(rU);class aU extends bp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=jf.deleteWordPartLeft(e);return i||new I(1,1,1,1)}}class lU extends bp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:C.writable,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=jf.deleteWordPartRight(e);if(i)return i;const n=e.model.getLineCount(),s=e.model.getLineMaxColumn(n);return new I(n,s,n,s)}}class KE extends vp{_move(e,t,i,n,s){return jf.moveWordPartLeft(e,t,i,s)}}class dU extends KE{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}Ee.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class cU extends KE{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}Ee.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class GE extends vp{_move(e,t,i,n,s){return jf.moveWordPartRight(e,t,i)}}class hU extends GE{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class uU extends GE{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:C.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}K(new aU);K(new lU);K(new dU);K(new cU);K(new hU);K(new uU);const qC=class qC extends A{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const e=qt.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(105);t||(this.editor.isSimpleWidget?t=new It(m(1427,"Cannot edit in read-only input")):t=new It(m(1428,"Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}};qC.ID="editor.contrib.readOnlyMessageController";let _g=qC;ae(_g.ID,_g,2);var gU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},NI=function(o,e){return function(t,i){e(t,i,o)}};let Rb=class extends A{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=Ne(this,void 0);const n=ou("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),s=ou("_textModel.onDidChangeContent",Ve.debounce(r=>this._textModel.onDidChangeContent(r),()=>{},100));this._register(Vc(async(r,a)=>{n.read(r),s.read(r);const l=a.add(new Xk),d=await this._outlineModelService.getOrCreate(this._textModel,l.token);a.isDisposed||this._currentModel.set(d,void 0)}))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const n=i.asListOfDocumentSymbols().filter(s=>e.contains(s.range.startLineNumber)&&!e.contains(s.range.endLineNumber));return n.sort(Nw(Mr(s=>s.range.endLineNumber-s.range.startLineNumber,Ar))),n.map(s=>({name:s.name,kind:s.kind,startLineNumber:s.range.startLineNumber}))}getAt(e,t){const i=this._currentModel.read(t);if(!i)return[];const n=i.asListOfDocumentSymbols().filter(s=>new Qe(s.range.startLineNumber,s.range.endLineNumber).contains(e));return n.length===0?[]:(n.sort(Nw(Mr(s=>s.range.endLineNumber-s.range.startLineNumber,Ar))),n.map(s=>({name:s.name,kind:s.kind,startLineNumber:s.range.startLineNumber})))}};Rb=gU([NI(1,G),NI(2,Qc)],Rb);QL.setBreadcrumbsSourceFactory((o,e)=>e.createInstance(Rb,o));var ZE=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ba=function(o,e){return function(t,i){e(t,i,o)}},el;let vg=(el=class extends A{constructor(e,t,i,n){super();const s=this._register(We(e)),r=R(l=>s.model.read(l)?.uri),a=this._register(t.createInstance(Nb,q.EditorContent,e.contextKeyService,r));this._register(le(l=>{a.hasActions.read(l)&&l.store.add(s.createOverlayWidget({allowEditorOverflow:!1,domNode:a.element,minContentWidthInPx:_e(0),position:_e({preference:1})}))}))}},el.ID="editor.contrib.floatingToolbar",el);vg=ZE([Ba(1,ee),Ba(2,Te),Ba(3,bo)],vg);let Nb=class extends A{constructor(e,t,i,n,s,r){super();const a=this._register(r.createMenu(e,t)),l=xt(this,a.onDidChange,()=>a.getActions()),d=R(c=>{const h=l.read(c),{primary:g}=eL(h,()=>!0);return g.filter(u=>u.id!==Kd.ID)});this.hasActions=R(c=>d.read(c).length>0),this.element=qd("div.floating-menu-overlay-widget").root,this._register(ke(()=>this.element.remove())),this._register(le(c=>{const h=d.read(c),g=h.length>0,u=g?h[0].id:void 0,f=h.length===1;if(this.element.classList.toggle("single-button",f),this.element.style.height=f?"28px":"26px",!g)return;const p=n.createInstance(Yk,this.element,e,{actionViewItemProvider:(_,v)=>{if(_ instanceof Or)return n.createInstance(class extends fS{render(S){super.render(S),_.id===u&&this.element?.classList.add("primary")}updateLabel(){const S=s.lookupKeybinding(_.id),y=S?S.getLabel():void 0;this.options.label&&this.label&&(this.label.textContent=y?`${this._commandAction.label} (${y})`:this._commandAction.label)}},_,{...v,keybindingNotRenderedWithLabel:!0})},hiddenItemStrategy:0,menuOptions:{shouldForwardArgs:!0},telemetrySource:"editor.overlayToolbar",toolbarOptions:{primaryGroup:()=>!0,useSeparatorsInPrimaryActions:!0}});c.store.add(p),c.store.add(le(_=>{const v=i.read(_);p.context=v}))}))}};Nb=ZE([Ba(3,ee),Ba(4,Te),Ba(5,bo)],Nb);ae(vg.ID,vg,1);const KC=class KC extends A{constructor(e){super(),this.editor=e,this.widget=null,Em&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(104);!this.widget&&e?this.widget=new kb(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}};KC.ID="editor.contrib.iPadShowKeyboard";let bg=KC;const bf=class bf extends A{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(re(this._domNode,"touchstart",t=>{this.editor.focus()})),this._register(re(this._domNode,"focus",t=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return bf.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};bf.ID="editor.contrib.ShowKeyboardWidget";let kb=bf;ae(bg.ID,bg,3);var fU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},kI=function(o,e){return function(t,i){e(t,i,o)}},Tb,Rr;let Dc=(Rr=class extends A{static get(e){return e.getContribution(Tb.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel(n=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(n=>this.stop())),this._register(Tf.onDidChange(n=>this.stop())),this._register(this._editor.onKeyUp(n=>n.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new Pb(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}},Tb=Rr,Rr.ID="editor.contrib.inspectTokens",Rr);Dc=Tb=fU([kI(1,d1),kI(2,ls)],Dc);class pU extends F{constructor(){super({id:"editor.action.inspectTokens",label:tT.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){Dc.get(t)?.launch()}}function mU(o){let e="";for(let t=0,i=o.length;t<i;t++){const n=o.charCodeAt(t);switch(n){case 9:e+="→";break;case 32:e+="·";break;default:e+=String.fromCharCode(n)}}return e}function _U(o,e){const t=Tf.get(e);if(t)return t;const i=o.encodeLanguageId(e);return{getInitialState:()=>eT,tokenize:(n,s,r)=>Qk(e,r),tokenizeEncoded:(n,s,r)=>Jk(i,r)}}const Sf=class Sf extends A{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=_U(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(i=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return Sf._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let l=t.tokens1.length-1;l>=0;l--){const d=t.tokens1[l];if(e.column-1>=d.offset){i=l;break}}let n=0;for(let l=t.tokens2.length>>>1;l>=0;l--)if(e.column-1>=t.tokens2[l<<1]){n=l;break}const s=this._model.getLineContent(e.lineNumber);let r="";if(i<t.tokens1.length){const l=t.tokens1[i].offset,d=i+1<t.tokens1.length?t.tokens1[i+1].offset:s.length;r=s.substring(l,d)}Qh(this._domNode,B("h2.tm-token",void 0,mU(r),B("span.tm-token-length",void 0,`${r.length} ${r.length===1?"char":"chars"}`))),z(this._domNode,B("hr.tokens-inspect-separator",{style:"clear:both"}));const a=(n<<1)+1<t.tokens2.length?this._decodeMetadata(t.tokens2[(n<<1)+1]):null;z(this._domNode,B("table.tm-metadata-table",void 0,B("tbody",void 0,B("tr",void 0,B("td.tm-metadata-key",void 0,"language"),B("td.tm-metadata-value",void 0,`${a?a.languageId:"-?-"}`)),B("tr",void 0,B("td.tm-metadata-key",void 0,"token type"),B("td.tm-metadata-value",void 0,`${a?this._tokenTypeToString(a.tokenType):"-?-"}`)),B("tr",void 0,B("td.tm-metadata-key",void 0,"font style"),B("td.tm-metadata-value",void 0,`${a?this._fontStyleToString(a.fontStyle):"-?-"}`)),B("tr",void 0,B("td.tm-metadata-key",void 0,"foreground"),B("td.tm-metadata-value",void 0,`${a?fe.Format.CSS.formatHex(a.foreground):"-?-"}`)),B("tr",void 0,B("td.tm-metadata-key",void 0,"background"),B("td.tm-metadata-value",void 0,`${a?fe.Format.CSS.formatHex(a.background):"-?-"}`))))),z(this._domNode,B("hr.tokens-inspect-separator")),i<t.tokens1.length&&z(this._domNode,B("span.tm-token-type",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=Tf.getColorMap(),i=zl.getLanguageId(e),n=zl.getTokenType(e),s=zl.getFontStyle(e),r=zl.getForeground(e),a=zl.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:n,fontStyle:s,foreground:t[r],background:t[a]}}_tokenTypeToString(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(e){let t="";return e&1&&(t+="italic "),e&2&&(t+="bold "),e&4&&(t+="underline "),e&8&&(t+="strikethrough "),t.length===0&&(t="---"),t}_getTokensAtLine(e){const t=this._getStateBeforeLine(e),i=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),n=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:i.tokens,tokens2:n.tokens,endState:i.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let i=1;i<e;i++)t=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,t).endState;return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}};Sf._ID="editor.contrib.inspectTokensWidget";let Pb=Sf;ae(Dc.ID,Dc,4);P(pU);var vU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},pm=function(o,e){return function(t,i){e(t,i,o)}},bd,Nr;let Ob=(Nr=class{constructor(e,t,i){this.quickInputService=e,this.keybindingService=t,this.contextKeyService=i,this.registry=Nn.as(Tl.Quickaccess)}provide(e){const t=new W;return t.add(e.onDidAccept(()=>{const[i]=e.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(i=>{const n=this.registry.getQuickAccessProvider(i.substr(bd.PREFIX.length),this.contextKeyService);n?.prefix&&n.prefix!==bd.PREFIX&&this.quickInputService.quickAccess.show(n.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(i=>i.prefix!==bd.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders(this.contextKeyService).sort((t,i)=>t.prefix.localeCompare(i.prefix)).flatMap(t=>this.createPicks(t))}createPicks(e){return e.helpEntries.map(t=>{const i=t.prefix||e.prefix,n=i||"…";return{prefix:i,label:n,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:m(1811,"{0}, {1}",n,t.description),description:t.description}})}},bd=Nr,Nr.PREFIX="?",Nr);Ob=bd=vU([pm(0,Ai),pm(1,Te),pm(2,pe)],Ob);Nn.as(Tl.Quickaccess).registerQuickAccessProvider({ctor:Ob,prefix:"",helpEntries:[{description:iT.helpQuickAccessActionLabel}]});class XE{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t,i){const n=new W;e.canAcceptInBackground=!!this.options?.canAcceptInBackground,e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const s=n.add(new Ke);return s.value=this.doProvide(e,t,i),n.add(this.onDidActiveTextEditorControlChange(()=>{s.value=void 0,s.value=this.doProvide(e,t)})),n}doProvide(e,t,i){const n=new W,s=this.activeTextEditorControl;if(s&&this.canProvideWithTextEditor(s)){const r={editor:s},a=c1(s);if(a){let l=s.saveViewState()??void 0;n.add(a.onDidChangeCursorPosition(()=>{l=s.saveViewState()??void 0})),r.restoreViewState=()=>{l&&s===this.activeTextEditorControl&&s.restoreViewState(l)},n.add(h1(t.onCancellationRequested)(()=>r.restoreViewState?.()))}n.add(ke(()=>this.clearDecorations(s))),n.add(this.provideWithTextEditor(r,e,t,i))}else n.add(this.provideWithoutTextEditor(e,t));return n}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range,"code.jump"),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();const i=this.getModel(e);if(i){const n=i.getLineContent(t.range.startLineNumber);ao(m(1381,"Line {0}, column {1}: {2}",t.range.startLineNumber,t.range.startColumn,n))}}getModel(e){return l1(e)?e.getModel()?.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(i=>{const n=[];this.rangeHighlightDecorationId&&(n.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),n.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:Xe(wL),position:wn.Full}}}],[r,a]=i.deltaDecorations(n,s);this.rangeHighlightDecorationId={rangeHighlightId:r,overviewRulerDecorationId:a}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(i=>{i.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}const Is=class Is extends XE{constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(Is.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(e){this.storageService.store(Is.ZERO_BASED_OFFSET_STORAGE_KEY,e,-1,0)}provideWithoutTextEditor(e){const t=m(1382,"Open a text editor first to go to a line or an offset.");return e.items=[{label:t}],e.ariaLabel=t,A.None}provideWithTextEditor(e,t,i){const n=e.editor,s=new W;t.ariaLabel=m(1383,"Go to line. Type a line number, optionally followed by colon and column number."),s.add(t.onDidAccept(d=>{const[c]=t.selectedItems;if(c){if(!c.lineNumber)return;this.gotoLocation(e,{range:this.toRange(c.lineNumber,c.column),keyMods:t.keyMods,preserveFocus:d.inBackground}),d.inBackground||t.hide()}}));const r={iconClass:ce.asClassName(U.indexZero),tooltip:m(1384,"Toggle Zero-Based Offset"),location:nT.Input,toggle:{checked:this.useZeroBasedOffset}},a=()=>{const d=t.value.trim().substring(Is.GO_TO_LINE_PREFIX.length),{inOffsetMode:c,lineNumber:h,column:g,label:u}=this.parsePosition(n,d);if(t.buttons=c?[r]:[],t.items=[{lineNumber:h,column:g,label:u,ariaLabel:h?m(1385,"Go to line {0}, column {1}. Press Enter to navigate.",h,g||1):u}],!h){this.clearDecorations(n);return}const f=this.toRange(h,g);n.revealRangeInCenter(f,0),this.addDecorations(n,f)};s.add(t.onDidTriggerButton(d=>{d===r&&(this.useZeroBasedOffset=d.toggle?.checked??!this.useZeroBasedOffset,a())})),a(),s.add(t.onDidChangeValue(()=>a()));const l=c1(n);return l&&l.getOptions().get(76).renderType===2&&(l.updateOptions({lineNumbers:"on"}),s.add(ke(()=>l.updateOptions({lineNumbers:"relative"})))),s}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=this.getModel(e);if(!i)return{label:m(1386,"Open a text editor first to go to a line or an offset.")};if(t.startsWith(":")){let n=parseInt(t.substring(1),10);const s=i.getValueLength();if(isNaN(n))return{inOffsetMode:!0,label:this.useZeroBasedOffset?m(1387,"Type a character position to go to (from 0 to {0}).",s-1):m(1388,"Type a character position to go to (from 1 to {0}).",s)};{const r=n<0;this.useZeroBasedOffset||(n-=Math.sign(n)),r&&(n+=s);const a=i.getPositionAt(n),l=Ah.visibleColumnFromColumn(i.getLineContent(a.lineNumber),a.column,i.getOptions().tabSize)+1;return{...a,inOffsetMode:!0,label:m(1389,"Press 'Enter' to go to line {0} at column {1}.",a.lineNumber,l)}}}else{const n=t.split(/,|:|#/),s=i.getLineCount();let r=parseInt(n[0]?.trim(),10);if(n.length<1||isNaN(r))return{label:m(1390,"Type a line number to go to (from 1 to {0}).",s)};r=r>=0?r:s+1+r,r=Math.min(Math.max(1,r),s);const a=i.getOptions().tabSize,l=i.getLineContent(r),d=Ah.visibleColumnFromColumn(l,i.getLineMaxColumn(r),a)+1;let c=parseInt(n[1]?.trim(),10);if(n.length<2||isNaN(c))return{lineNumber:r,column:1,label:n.length<2?m(1391,"Press 'Enter' to go to line {0} or enter colon : to add a column number.",r):m(1392,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",r,d)};c=c>=0?c:d+c,c=Math.min(Math.max(1,c),d);const h=Ah.columnFromVisibleColumn(l,c-1,a);return{lineNumber:r,column:h,label:m(1393,"Press 'Enter' to go to line {0} at column {1}.",r,c)}}}};Is.GO_TO_LINE_PREFIX=":",Is.GO_TO_OFFSET_PREFIX="::",Is.ZERO_BASED_OFFSET_STORAGE_KEY="gotoLine.useZeroBasedOffset";let Mb=Is;var bU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},TI=function(o,e){return function(t,i){e(t,i,o)}};let mo=class extends Mb{constructor(e,t){super(),this.editorService=e,this.storageService=t,this.onDidActiveTextEditorControlChange=Ve.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};mo=bU([TI(0,Ue),TI(1,Wi)],mo);var kr;let YE=(kr=class extends F{constructor(){super({id:kr.ID,label:qf.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:C.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(Ai).quickAccess.show(mo.GO_TO_LINE_PREFIX)}},kr.ID="editor.action.gotoLine",kr);P(YE);Nn.as(Tl.Quickaccess).registerQuickAccessProvider({ctor:mo,prefix:mo.GO_TO_LINE_PREFIX,helpEntries:[{description:qf.gotoLineActionLabel,commandId:YE.ID}]});const Cf=class Cf extends F{constructor(){super({id:Cf.ID,label:qf.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(e){e.get(Ai).quickAccess.show(mo.GO_TO_OFFSET_PREFIX)}};Cf.ID="editor.action.gotoOffset";let Sg=Cf;P(Sg);Nn.as(Tl.Quickaccess).registerQuickAccessProvider({ctor:mo,prefix:mo.GO_TO_OFFSET_PREFIX,helpEntries:[{description:qf.gotoOffsetActionLabel,commandId:Sg.ID}]});const JE=[void 0,[]];function mm(o,e,t=0,i=0){const n=e;return n.values&&n.values.length>1?SU(o,n.values,t,i):QE(o,e,t,i)}function SU(o,e,t,i){let n=0;const s=[];for(const r of e){const[a,l]=QE(o,r,t,i);if(typeof a!="number")return JE;n+=a,s.push(...l)}return[n,CU(s)]}function QE(o,e,t,i){const n=WL(e.normalized,e.normalizedLowercase,t,o,o.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return n?[n[0],Nf(n)]:JE}function CU(o){const e=o.sort((n,s)=>n.start-s.start),t=[];let i;for(const n of e)!i||!wU(i,n)?(i=n,t.push(n)):(i.start=Math.min(i.start,n.start),i.end=Math.max(i.end,n.end));return t}function wU(o,e){return!(o.end<e.start||e.end<o.start)}function PI(o){return o.startsWith('"')&&o.endsWith('"')}const eR=" ";function Ab(o){typeof o!="string"&&(o="");const e=o.toLowerCase(),{pathNormalized:t,normalized:i,normalizedLowercase:n}=OI(o),s=t.indexOf(Pm)>=0,r=PI(o);let a;const l=o.split(eR);if(l.length>1)for(const d of l){const c=PI(d),{pathNormalized:h,normalized:g,normalizedLowercase:u}=OI(d);g&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:h,normalized:g,normalizedLowercase:u,expectContiguousMatch:c}))}return{original:o,originalLowercase:e,pathNormalized:t,normalized:i,normalizedLowercase:n,values:a,containsPathSeparator:s,expectContiguousMatch:r}}function OI(o){let e;IS?e=o.replace(/\//g,Pm):e=o.replace(/\\/g,Pm);const t=e.replace(/[\*\u2026\s"]/g,"").replace(new RegExp("(?<=.)#$"),"");return{pathNormalized:e,normalized:t,normalizedLowercase:t.toLowerCase()}}function MI(o){return Array.isArray(o)?Ab(o.map(e=>e.original).join(eR)):Ab(o.original)}var yU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},AI=function(o,e){return function(t,i){e(t,i,o)}},Gh,Ji;let qo=(Ji=class extends XE{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,m(1394,"To go to a symbol, first open a text editor with symbol information.")),A.None}provideWithTextEditor(e,t,i,n){const s=e.editor,r=this.getModel(s);return r?this._languageFeaturesService.documentSymbolProvider.has(r)?this.doProvideWithEditorSymbols(e,r,t,i,n):this.doProvideWithoutEditorSymbols(e,r,t,i):A.None}doProvideWithoutEditorSymbols(e,t,i,n){const s=new W;return this.provideLabelPick(i,m(1395,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(t,s)||n.isCancellationRequested||s.add(this.doProvideWithEditorSymbols(e,t,i,n)))(),s}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(e,t){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new sS,n=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(n.dispose(),i.complete(!0))}));return t.add(ke(()=>i.complete(!1))),i.p}doProvideWithEditorSymbols(e,t,i,n,s){const r=e.editor,a=new W;a.add(i.onDidAccept(h=>{const[g]=i.selectedItems;if(g&&g.range){if(i.keyMods.shift&&g.attach){g.attach(i.keyMods,h);return}this.gotoLocation(e,{range:g.range.selection,keyMods:i.keyMods,preserveFocus:h.inBackground}),s?.handleAccept?.(g,h.inBackground),h.inBackground||i.hide()}})),a.add(i.onDidTriggerItemButton(({item:h})=>{h&&h.range&&(this.gotoLocation(e,{range:h.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())}));const l=this.getDocumentSymbols(t,n),d=a.add(new Ke),c=async h=>{d?.value?.cancel(),i.busy=!1,d.value=new Je,i.busy=!0;try{const g=Ab(i.value.substr(Gh.PREFIX.length).trim()),u=await this.doGetSymbolPicks(l,g,void 0,d.value.token,t);if(n.isCancellationRequested)return;if(u.length>0){if(i.items=u,h&&g.original.length===0){const f=rT(u,p=>!!(p.type!=="separator"&&p.range&&I.containsPosition(p.range.decoration,h)));f&&(i.activeItems=[f])}}else g.original.length>0?this.provideLabelPick(i,m(1396,"No matching editor symbols")):this.provideLabelPick(i,m(1397,"No editor symbols"))}finally{n.isCancellationRequested||(i.busy=!1)}};return a.add(i.onDidChangeValue(()=>c(void 0))),c(r.getSelection()?.getPosition()),a.add(i.onDidChangeActive(()=>{const[h]=i.activeItems;h&&h.range&&(r.revealRangeInCenter(h.range.selection,0),this.addDecorations(r,h.range.decoration))})),a}async doGetSymbolPicks(e,t,i,n,s){const r=await e;if(n.isCancellationRequested)return[];const a=t.original.indexOf(Gh.SCOPE_PREFIX)===0,l=a?1:0;let d,c;t.values&&t.values.length>1?(d=MI(t.values[0]),c=MI(t.values.slice(1))):d=t;let h;const g=this.options?.openSideBySideDirection?.();g&&(h=[{iconClass:g==="right"?ce.asClassName(U.splitHorizontal):ce.asClassName(U.splitVertical),tooltip:g==="right"?m(1398,"Open to the Side"):m(1399,"Open to the Bottom")}]);const u=[];for(let _=0;_<r.length;_++){const v=r[_],S=sT(v.name),y=`$(${JL.toIcon(v.kind).id}) ${S}`,x=y.length-S.length;let b=v.containerName;i?.extraContainerLabel&&(b?b=`${i.extraContainerLabel} • ${b}`:b=i.extraContainerLabel);let w,D,N,E;if(t.original.length>l){let O=!1;if(d!==t&&([w,D]=mm(y,{...t,values:void 0},l,x),typeof w=="number"&&(O=!0)),typeof w!="number"&&([w,D]=mm(y,d,l,x),typeof w!="number"))continue;if(!O&&c){if(b&&c.original.length>0&&([N,E]=mm(b,c)),typeof N!="number")continue;typeof w=="number"&&(w+=N)}}const M=v.tags&&v.tags.indexOf(1)>=0;u.push({index:_,kind:v.kind,score:w,label:y,ariaLabel:oT(v.name,v.kind),description:b,highlights:M?void 0:{label:D,description:E},range:{selection:I.collapseToStart(v.selectionRange),decoration:v.range},uri:s.uri,symbolName:S,strikethrough:M,buttons:h})}const f=u.sort((_,v)=>a?this.compareByKindAndScore(_,v):this.compareByScore(_,v));let p=[];if(a){let y=function(){v&&typeof _=="number"&&S>0&&(v.label=pS(vm[_]||_m,S))},_,v,S=0;for(const x of f)_!==x.kind?(y(),_=x.kind,S=1,v={type:"separator"},p.push(v)):S++,p.push(x);y()}else f.length>0&&(p=[{label:m(1400,"symbols ({0})",u.length),type:"separator"},...f]);return p}compareByScore(e,t){if(typeof e.score!="number"&&typeof t.score=="number")return 1;if(typeof e.score=="number"&&typeof t.score!="number")return-1;if(typeof e.score=="number"&&typeof t.score=="number"){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}compareByKindAndScore(e,t){const i=vm[e.kind]||_m,n=vm[t.kind]||_m,s=i.localeCompare(n);return s===0?this.compareByScore(e,t):s}async getDocumentSymbols(e,t){const i=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}},Gh=Ji,Ji.PREFIX="@",Ji.SCOPE_PREFIX=":",Ji.PREFIX_BY_CATEGORY=`${Ji.PREFIX}${Ji.SCOPE_PREFIX}`,Ji);qo=Gh=yU([AI(0,G),AI(1,Qc)],qo);const _m=m(1401,"properties ({0})"),vm={5:m(1402,"methods ({0})"),11:m(1403,"functions ({0})"),8:m(1404,"constructors ({0})"),12:m(1405,"variables ({0})"),4:m(1406,"classes ({0})"),22:m(1407,"structs ({0})"),23:m(1408,"events ({0})"),24:m(1409,"operators ({0})"),10:m(1410,"interfaces ({0})"),2:m(1411,"namespaces ({0})"),3:m(1412,"packages ({0})"),25:m(1413,"type parameters ({0})"),1:m(1414,"modules ({0})"),6:m(1415,"properties ({0})"),9:m(1416,"enumerations ({0})"),21:m(1417,"enumeration members ({0})"),14:m(1418,"strings ({0})"),0:m(1419,"files ({0})"),17:m(1420,"arrays ({0})"),15:m(1421,"numbers ({0})"),16:m(1422,"booleans ({0})"),18:m(1423,"objects ({0})"),19:m(1424,"keys ({0})"),7:m(1425,"fields ({0})"),13:m(1426,"constants ({0})")};var IU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},bm=function(o,e){return function(t,i){e(t,i,o)}};let Fb=class extends qo{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=Ve.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Fb=IU([bm(0,Ue),bm(1,G),bm(2,Qc)],Fb);const wf=class wf extends F{constructor(){super({id:wf.ID,label:Om.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:C.hasDocumentSymbolProvider,kbOpts:{kbExpr:C.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(Ai).quickAccess.show(qo.PREFIX,{itemActivation:aT.NONE})}};wf.ID="editor.action.quickOutline";let Cg=wf;P(Cg);Nn.as(Tl.Quickaccess).registerQuickAccessProvider({ctor:Fb,prefix:qo.PREFIX,helpEntries:[{description:Om.quickOutlineActionLabel,prefix:qo.PREFIX,commandId:Cg.ID},{description:Om.quickOutlineByCategoryActionLabel,prefix:qo.PREFIX_BY_CATEGORY}]});function xU(o){const e=new Map;for(const t of o)e.set(t,(e.get(t)??0)+1);return e}class Fd{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),n=new Map,s=[];for(const[r,a]of this.documents){if(t.isCancellationRequested)return[];for(const l of a.chunks){const d=this.computeSimilarityScore(l,i,n);d>0&&s.push({key:r,score:d})}}return s}static termFrequencies(e){return xU(Fd.splitTerms(e))}static*splitTerms(e){const t=i=>i.toLowerCase();for(const[i]of e.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield t(i);const n=i.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(n.length>1)for(const s of n)s.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(s)&&(yield t(s))}}updateDocuments(e){for(const{key:t}of e)this.deleteDocument(t);for(const t of e){const i=[];for(const n of t.textChunks){const s=Fd.termFrequencies(n);for(const r of s.keys())this.chunkOccurrences.set(r,(this.chunkOccurrences.get(r)??0)+1);i.push({text:n,tf:s})}this.chunkCount+=i.length,this.documents.set(t.key,{chunks:i})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const i of t.chunks)for(const n of i.tf.keys()){const s=this.chunkOccurrences.get(n);if(typeof s=="number"){const r=s-1;r<=0?this.chunkOccurrences.delete(n):this.chunkOccurrences.set(n,r)}}}}computeSimilarityScore(e,t,i){let n=0;for(const[s,r]of Object.entries(t)){const a=e.tf.get(s);if(!a)continue;let l=i.get(s);typeof l!="number"&&(l=this.computeIdf(s),i.set(s,l));const d=a*l;n+=d*r}return n}computeEmbedding(e){const t=Fd.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){const t=this.chunkOccurrences.get(e)??0;return t>0?Math.log((this.chunkCount+1)/t):0}computeTfidf(e){const t=Object.create(null);for(const[i,n]of e){const s=this.computeIdf(i);s>0&&(t[i]=n*s)}return t}}function LU(o){const e=o.slice(0);e.sort((i,n)=>n.score-i.score);const t=e[0]?.score??0;if(t>0)for(const i of e)i.score/=t;return e}var Ms;(function(o){o[o.NO_ACTION=0]="NO_ACTION",o[o.CLOSE_PICKER=1]="CLOSE_PICKER",o[o.REFRESH_PICKER=2]="REFRESH_PICKER",o[o.REMOVE_ITEM=3]="REMOVE_ITEM"})(Ms||(Ms={}));function Sm(o){return Array.isArray(o.items)}function FI(o){const e=o;return!!e.picks&&e.additionalPicks instanceof Promise}class DU extends A{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,i){const n=new W;e.canAcceptInBackground=!!this.options?.canAcceptInBackground,e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let s;const r=n.add(new Ke),a=async()=>{s?.dispose(!0),e.busy=!1;const d=r.value=new W;s=d.add(new Je(t));const c=s.token;let h=e.value.substring(this.prefix.length);this.options?.shouldSkipTrimPickFilter||(h=h.trim());const g=this._getPicks(h,d,c,i),u=(p,_)=>{let v,S;if(Sm(p)?(v=p.items,S=p.active):v=p,v.length===0){if(_)return!1;(h.length>0||e.hideInput)&&this.options?.noResultsPick&&(dT(this.options.noResultsPick)?v=[this.options.noResultsPick(h)]:v=[this.options.noResultsPick])}return e.items=v,S&&(e.activeItems=[S]),!0},f=async p=>{let _=!1,v=!1;await Promise.all([(async()=>{typeof p.mergeDelay=="number"&&(await Ff(p.mergeDelay),c.isCancellationRequested)||v||(_=u(p.picks,!0))})(),(async()=>{e.busy=!0;try{const S=await p.additionalPicks;if(c.isCancellationRequested)return;let y,x;Sm(p.picks)?(y=p.picks.items,x=p.picks.active):y=p.picks;let b,w;if(Sm(S)?(b=S.items,w=S.active):b=S,b.length>0||!_){let D;if(!x&&!w){const N=e.activeItems[0];N&&y.indexOf(N)!==-1&&(D=N)}u({items:[...y,...b],active:x||w||D})}}finally{c.isCancellationRequested||(e.busy=!1),v=!0}})()])};if(g!==null)if(FI(g))await f(g);else if(!(g instanceof Promise))u(g);else{e.busy=!0;try{const p=await g;if(c.isCancellationRequested)return;FI(p)?await f(p):u(p)}finally{c.isCancellationRequested||(e.busy=!1)}}};n.add(e.onDidChangeValue(()=>a())),a(),n.add(e.onDidAccept(d=>{if(i?.handleAccept){d.inBackground||e.hide(),i.handleAccept?.(e.activeItems[0],d.inBackground);return}const[c]=e.selectedItems;if(typeof c?.accept=="function"){if(lT(e.keyMods)&&!!c.attach){c.attach(e.keyMods,d);return}d.inBackground||e.hide(),c.accept(e.keyMods,d)}}));const l=async(d,c)=>{if(typeof c.trigger!="function")return;const h=c.buttons?.indexOf(d)??-1;if(h>=0){const g=c.trigger(h,e.keyMods),u=typeof g=="number"?g:await g;if(t.isCancellationRequested)return;switch(u){case Ms.NO_ACTION:break;case Ms.CLOSE_PICKER:e.hide();break;case Ms.REFRESH_PICKER:a();break;case Ms.REMOVE_ITEM:{const f=e.items.indexOf(c);if(f!==-1){const p=e.items.slice(),_=p.splice(f,1),v=e.activeItems.filter(y=>y!==_[0]),S=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=p,v&&(e.activeItems=v),e.keepScrollPosition=S}break}}}};return n.add(e.onDidTriggerItemButton(({button:d,item:c})=>l(d,c))),n.add(e.onDidTriggerSeparatorButton(({button:d,separator:c})=>l(d,c))),n}}var tR=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},Ds=function(o,e){return function(t,i){e(t,i,o)}},Mo,He,Cn;let Wb=(Cn=class extends DU{constructor(e,t,i,n,s,r){super(Mo.PREFIX,e),this.keybindingService=i,this.commandService=n,this.telemetryService=s,this.dialogService=r,this.commandsHistory=this._register(t.createInstance(Hb)),this.options=e}async _getPicks(e,t,i,n){const s=await this.getCommandPicks(i);if(i.isCancellationRequested)return[];const r=h1(()=>{const u=new Fd;u.updateDocuments(s.map(p=>({key:p.commandId,textChunks:[this.getTfIdfChunk(p)]})));const f=u.calculateScores(e,i);return LU(f).filter(p=>p.score>Mo.TFIDF_THRESHOLD).slice(0,Mo.TFIDF_MAX_RESULTS)}),a=[];for(const u of s){const f=Mo.WORD_FILTER(e,u.label)??void 0;let p;if(u.commandAlias&&(p=Mo.WORD_FILTER(e,u.commandAlias)??void 0),f||p)u.highlights={label:f,detail:this.options.showAlias?p:void 0},a.push(u);else if(e===u.commandId)a.push(u);else if(e.length>=3){const _=r();if(i.isCancellationRequested)return[];const v=_.find(S=>S.key===u.commandId);v&&(u.tfIdfScore=v.score,a.push(u))}}const l=new Map;for(const u of a){const f=l.get(u.label);f?(u.description=u.commandId,f.description=f.commandId):l.set(u.label,u)}a.sort((u,f)=>{if(u.tfIdfScore&&f.tfIdfScore)return u.tfIdfScore===f.tfIdfScore?u.label.localeCompare(f.label):f.tfIdfScore-u.tfIdfScore;if(u.tfIdfScore)return 1;if(f.tfIdfScore)return-1;const p=this.commandsHistory.peek(u.commandId),_=this.commandsHistory.peek(f.commandId);if(p&&_)return p>_?-1:1;if(p)return-1;if(_)return 1;if(this.options.suggestedCommandIds){const y=this.options.suggestedCommandIds.has(u.commandId),x=this.options.suggestedCommandIds.has(f.commandId);if(y&&x)return 0;if(y)return-1;if(x)return 1}const v=u.commandCategory===pb.Developer.value,S=f.commandCategory===pb.Developer.value;return v&&!S?1:!v&&S?-1:u.label.localeCompare(f.label)});const d=[];let c=!1,h=!0,g=!!this.options.suggestedCommandIds;for(let u=0;u<a.length;u++){const f=a[u],p=!!this.commandsHistory.peek(f.commandId);u===0&&p&&(d.push({type:"separator",label:m(1803,"recently used")}),c=!0),h&&f.tfIdfScore!==void 0&&(d.push({type:"separator",label:m(1804,"similar commands")}),h=!1),g&&f.tfIdfScore===void 0&&!p&&this.options.suggestedCommandIds?.has(f.commandId)&&(d.push({type:"separator",label:m(1805,"commonly used")}),c=!0,g=!1),c&&f.tfIdfScore===void 0&&!p&&!this.options.suggestedCommandIds?.has(f.commandId)&&(d.push({type:"separator",label:m(1806,"other commands")}),c=!1),d.push(this.toCommandPick(f,n,p))}return this.hasAdditionalCommandPicks(e,i)?{picks:d,additionalPicks:(async()=>{const u=await this.getAdditionalCommandPicks(s,a,e,i);if(i.isCancellationRequested)return[];const f=u.map(p=>this.toCommandPick(p,n));return h&&f[0]?.type!=="separator"&&f.unshift({type:"separator",label:m(1807,"similar commands")}),f})()}:d}toCommandPick(e,t,i=!1){if(e.type==="separator")return e;const n=e.tooltip??e.commandDescription?.value,s=this.keybindingService.lookupKeybinding(e.commandId),r=s?m(1808,"{0}, {1}",e.label,s.getAriaLabel()):e.label,a=e.buttons||[],l=i?[...a,{iconClass:ce.asClassName(U.close),tooltip:m(1809,"Remove from Recently Used")}]:e.buttons;return{...e,tooltip:n,ariaLabel:r,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:s,buttons:l,accept:async()=>{this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.commandId,from:t?.from??"quick open"});try{e.args?.length?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(d){rs(d)||this.dialogService.error(m(1810,"Command '{0}' resulted in an error",e.label),cu(d))}},trigger:i?(d,c)=>{const h=a.length;return d===h?(this.commandsHistory.remove(e.commandId),Ms.REMOVE_ITEM):e.trigger?e.trigger(d,c):Ms.NO_ACTION}:e.trigger}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:i}){let n=e;return t&&t!==e&&(n+=` - ${t}`),i&&i.value!==e&&(n+=` - ${i.value===i.original?i.value:`${i.value} (${i.original})`}`),n}},Mo=Cn,Cn.PREFIX=">",Cn.TFIDF_THRESHOLD=.5,Cn.TFIDF_MAX_RESULTS=5,Cn.WORD_FILTER=cT(uT,hT),Cn);Wb=Mo=tR([Ds(1,ee),Ds(2,Te),Ds(3,it),Ds(4,vo),Ds(5,HS)],Wb);var Qi;let Hb=(Qi=class extends A{constructor(e,t,i){super(),this.storageService=e,this.configurationService=t,this.logService=i,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===hS.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=He.getConfiguredCommandHistoryLength(this.configurationService),He.cache&&He.cache.limit!==this.configuredCommandsHistoryLength&&(He.cache.limit=this.configuredCommandsHistoryLength,He.hasChanges=!0))}load(){const e=this.storageService.get(He.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(n){this.logService.error(`[CommandsHistory] invalid data: ${n}`)}const i=He.cache=new Wc(this.configuredCommandsHistoryLength,1);if(t){let n;t.usesLRU?n=t.entries:n=t.entries.sort((s,r)=>s.value-r.value),n.forEach(s=>i.set(s.key,s.value))}He.counter=this.storageService.getNumber(He.PREF_KEY_COUNTER,0,He.counter)}push(e){He.cache&&(He.cache.set(e,He.counter++),He.hasChanges=!0)}peek(e){return He.cache?.peek(e)}remove(e){He.cache&&(He.cache.delete(e),He.hasChanges=!0)}saveState(){if(!He.cache||!He.hasChanges)return;const e={usesLRU:!0,entries:[]};He.cache.forEach((t,i)=>e.entries.push({key:i,value:t})),this.storageService.store(He.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(He.PREF_KEY_COUNTER,He.counter,0,0),He.hasChanges=!1}static getConfiguredCommandHistoryLength(e){const i=e.getValue().workbench?.commandPalette?.history;return typeof i=="number"?i:He.DEFAULT_COMMANDS_HISTORY_LENGTH}},He=Qi,Qi.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Qi.PREF_KEY_CACHE="commandPalette.mru.cache",Qi.PREF_KEY_COUNTER="commandPalette.mru.counter",Qi.counter=1,Qi.hasChanges=!1,Qi);Hb=He=tR([Ds(0,Wi),Ds(1,Ie),Ds(2,Pt)],Hb);class EU extends Wb{constructor(e,t,i,n,s,r){super(e,t,i,n,s,r)}getCodeEditorCommandPicks(){const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const i of e.getSupportedActions()){let n;i.metadata?.description&&(gT(i.metadata.description)?n=i.metadata.description:n={original:i.metadata.description,value:i.metadata.description}),t.push({commandId:i.id,commandAlias:i.alias,commandDescription:n,label:fT(i.label)||i.id})}return t}}var RU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},ma=function(o,e){return function(t,i){e(t,i,o)}};let Ec=class extends EU{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(e,t,i,n,s,r){super({showAlias:!1},e,i,n,s,r),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};Ec=RU([ma(0,ee),ma(1,Ue),ma(2,Te),ma(3,it),ma(4,vo),ma(5,HS)],Ec);const yf=class yf extends F{constructor(){super({id:yf.ID,label:u1.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:C.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(Ai).quickAccess.show(Ec.PREFIX)}};yf.ID="editor.action.quickCommand";let wg=yf;P(wg);Nn.as(Tl.Quickaccess).registerQuickAccessProvider({ctor:Ec,prefix:Ec.PREFIX,helpEntries:[{description:u1.quickCommandHelp,commandId:wg.ID}]});var NU=function(o,e,t,i){var n=arguments.length,s=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(r=o[a])&&(s=(n<3?r(s):n>3?r(e,t,s):r(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s},_a=function(o,e){return function(t,i){e(t,i,o)}};let Vb=class extends jr{constructor(e,t,i,n,s,r,a){super(!0,e,t,i,n,s,r,a)}};Vb=NU([_a(1,pe),_a(2,Ue),_a(3,Lt),_a(4,ee),_a(5,Wi),_a(6,Ie)],Vb);ae(jr.ID,Vb,4);class kU extends F{constructor(){super({id:"editor.action.toggleHighContrast",label:pT.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(d1),n=i.getColorTheme();zd(n.type)?(i.setTheme(this._originalThemeName||(kw(n.type)?mT:_T)),this._originalThemeName=null):(i.setTheme(kw(n.type)?vT:bT),this._originalThemeName=n.themeName)}}P(kU);function TU(o,e){const t=globalThis.MonacoEnvironment;if(t?.createTrustedTypesPolicy)try{return t.createTrustedTypesPolicy(o,e)}catch(i){console.error(i);return}try{return globalThis.trustedTypes?.createPolicy(o,e)}catch(i){console.error(i);return}}let yg;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?yg=globalThis.workerttPolicy:yg=TU("defaultWorkerFactory",{createScriptURL:o=>o});function PU(o){const e=o.label,t=globalThis.MonacoEnvironment;if(t){if(typeof t.getWorker=="function")return t.getWorker("workerMain.js",e);if(typeof t.getWorkerUrl=="function"){const i=t.getWorkerUrl("workerMain.js",e);return new Worker(yg?yg.createScriptURL(i):i,{name:e,type:"module"})}}if(o.createWorker)return o.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function OU(o){const e=Promise.resolve(PU({label:o.label??"monaco-editor-worker",moduleId:o.moduleId,createWorker:o.createWorker})).then(t=>(t.postMessage("ignore"),t.postMessage(o.createData),t));return Ri.createWebWorker({worker:e,host:o.host,keepIdleModels:o.keepIdleModels})}const MU=120*1e3;class AU{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>MU&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=OU({moduleId:"vs/language/json/jsonWorker",createWorker:()=>new Worker(new URL("/assets/json.worker-C5PEkLU0.js",import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(i=>{t=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>t)}}var WI;(function(o){function e(t){return typeof t=="string"}o.is=e})(WI||(WI={}));var Bb;(function(o){function e(t){return typeof t=="string"}o.is=e})(Bb||(Bb={}));var HI;(function(o){o.MIN_VALUE=-2147483648,o.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&o.MIN_VALUE<=t&&t<=o.MAX_VALUE}o.is=e})(HI||(HI={}));var Ig;(function(o){o.MIN_VALUE=0,o.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&o.MIN_VALUE<=t&&t<=o.MAX_VALUE}o.is=e})(Ig||(Ig={}));var Zi;(function(o){function e(i,n){return i===Number.MAX_VALUE&&(i=Ig.MAX_VALUE),n===Number.MAX_VALUE&&(n=Ig.MAX_VALUE),{line:i,character:n}}o.create=e;function t(i){let n=i;return k.objectLiteral(n)&&k.uinteger(n.line)&&k.uinteger(n.character)}o.is=t})(Zi||(Zi={}));var ht;(function(o){function e(i,n,s,r){if(k.uinteger(i)&&k.uinteger(n)&&k.uinteger(s)&&k.uinteger(r))return{start:Zi.create(i,n),end:Zi.create(s,r)};if(Zi.is(i)&&Zi.is(n))return{start:i,end:n};throw new Error(`Range#create called with invalid arguments[${i}, ${n}, ${s}, ${r}]`)}o.create=e;function t(i){let n=i;return k.objectLiteral(n)&&Zi.is(n.start)&&Zi.is(n.end)}o.is=t})(ht||(ht={}));var xg;(function(o){function e(i,n){return{uri:i,range:n}}o.create=e;function t(i){let n=i;return k.objectLiteral(n)&&ht.is(n.range)&&(k.string(n.uri)||k.undefined(n.uri))}o.is=t})(xg||(xg={}));var VI;(function(o){function e(i,n,s,r){return{targetUri:i,targetRange:n,targetSelectionRange:s,originSelectionRange:r}}o.create=e;function t(i){let n=i;return k.objectLiteral(n)&&ht.is(n.targetRange)&&k.string(n.targetUri)&&ht.is(n.targetSelectionRange)&&(ht.is(n.originSelectionRange)||k.undefined(n.originSelectionRange))}o.is=t})(VI||(VI={}));var Ub;(function(o){function e(i,n,s,r){return{red:i,green:n,blue:s,alpha:r}}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&k.numberRange(n.red,0,1)&&k.numberRange(n.green,0,1)&&k.numberRange(n.blue,0,1)&&k.numberRange(n.alpha,0,1)}o.is=t})(Ub||(Ub={}));var BI;(function(o){function e(i,n){return{range:i,color:n}}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&ht.is(n.range)&&Ub.is(n.color)}o.is=t})(BI||(BI={}));var UI;(function(o){function e(i,n,s){return{label:i,textEdit:n,additionalTextEdits:s}}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&k.string(n.label)&&(k.undefined(n.textEdit)||xl.is(n))&&(k.undefined(n.additionalTextEdits)||k.typedArray(n.additionalTextEdits,xl.is))}o.is=t})(UI||(UI={}));var Wd;(function(o){o.Comment="comment",o.Imports="imports",o.Region="region"})(Wd||(Wd={}));var $I;(function(o){function e(i,n,s,r,a,l){const d={startLine:i,endLine:n};return k.defined(s)&&(d.startCharacter=s),k.defined(r)&&(d.endCharacter=r),k.defined(a)&&(d.kind=a),k.defined(l)&&(d.collapsedText=l),d}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&k.uinteger(n.startLine)&&k.uinteger(n.startLine)&&(k.undefined(n.startCharacter)||k.uinteger(n.startCharacter))&&(k.undefined(n.endCharacter)||k.uinteger(n.endCharacter))&&(k.undefined(n.kind)||k.string(n.kind))}o.is=t})($I||($I={}));var $b;(function(o){function e(i,n){return{location:i,message:n}}o.create=e;function t(i){let n=i;return k.defined(n)&&xg.is(n.location)&&k.string(n.message)}o.is=t})($b||($b={}));var ka;(function(o){o.Error=1,o.Warning=2,o.Information=3,o.Hint=4})(ka||(ka={}));var zI;(function(o){o.Unnecessary=1,o.Deprecated=2})(zI||(zI={}));var jI;(function(o){function e(t){const i=t;return k.objectLiteral(i)&&k.string(i.href)}o.is=e})(jI||(jI={}));var Lg;(function(o){function e(i,n,s,r,a,l){let d={range:i,message:n};return k.defined(s)&&(d.severity=s),k.defined(r)&&(d.code=r),k.defined(a)&&(d.source=a),k.defined(l)&&(d.relatedInformation=l),d}o.create=e;function t(i){var n;let s=i;return k.defined(s)&&ht.is(s.range)&&k.string(s.message)&&(k.number(s.severity)||k.undefined(s.severity))&&(k.integer(s.code)||k.string(s.code)||k.undefined(s.code))&&(k.undefined(s.codeDescription)||k.string((n=s.codeDescription)===null||n===void 0?void 0:n.href))&&(k.string(s.source)||k.undefined(s.source))&&(k.undefined(s.relatedInformation)||k.typedArray(s.relatedInformation,$b.is))}o.is=t})(Lg||(Lg={}));var Il;(function(o){function e(i,n,...s){let r={title:i,command:n};return k.defined(s)&&s.length>0&&(r.arguments=s),r}o.create=e;function t(i){let n=i;return k.defined(n)&&k.string(n.title)&&k.string(n.command)}o.is=t})(Il||(Il={}));var xl;(function(o){function e(s,r){return{range:s,newText:r}}o.replace=e;function t(s,r){return{range:{start:s,end:s},newText:r}}o.insert=t;function i(s){return{range:s,newText:""}}o.del=i;function n(s){const r=s;return k.objectLiteral(r)&&k.string(r.newText)&&ht.is(r.range)}o.is=n})(xl||(xl={}));var zb;(function(o){function e(i,n,s){const r={label:i};return n!==void 0&&(r.needsConfirmation=n),s!==void 0&&(r.description=s),r}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&k.string(n.label)&&(k.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(k.string(n.description)||n.description===void 0)}o.is=t})(zb||(zb={}));var Ll;(function(o){function e(t){const i=t;return k.string(i)}o.is=e})(Ll||(Ll={}));var qI;(function(o){function e(s,r,a){return{range:s,newText:r,annotationId:a}}o.replace=e;function t(s,r,a){return{range:{start:s,end:s},newText:r,annotationId:a}}o.insert=t;function i(s,r){return{range:s,newText:"",annotationId:r}}o.del=i;function n(s){const r=s;return xl.is(r)&&(zb.is(r.annotationId)||Ll.is(r.annotationId))}o.is=n})(qI||(qI={}));var jb;(function(o){function e(i,n){return{textDocument:i,edits:n}}o.create=e;function t(i){let n=i;return k.defined(n)&&Xb.is(n.textDocument)&&Array.isArray(n.edits)}o.is=t})(jb||(jb={}));var qb;(function(o){function e(i,n,s){let r={kind:"create",uri:i};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(r.options=n),s!==void 0&&(r.annotationId=s),r}o.create=e;function t(i){let n=i;return n&&n.kind==="create"&&k.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||k.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||k.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||Ll.is(n.annotationId))}o.is=t})(qb||(qb={}));var Kb;(function(o){function e(i,n,s,r){let a={kind:"rename",oldUri:i,newUri:n};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(a.options=s),r!==void 0&&(a.annotationId=r),a}o.create=e;function t(i){let n=i;return n&&n.kind==="rename"&&k.string(n.oldUri)&&k.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||k.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||k.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||Ll.is(n.annotationId))}o.is=t})(Kb||(Kb={}));var Gb;(function(o){function e(i,n,s){let r={kind:"delete",uri:i};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(r.options=n),s!==void 0&&(r.annotationId=s),r}o.create=e;function t(i){let n=i;return n&&n.kind==="delete"&&k.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||k.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||k.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||Ll.is(n.annotationId))}o.is=t})(Gb||(Gb={}));var Zb;(function(o){function e(t){let i=t;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(n=>k.string(n.kind)?qb.is(n)||Kb.is(n)||Gb.is(n):jb.is(n)))}o.is=e})(Zb||(Zb={}));var KI;(function(o){function e(i){return{uri:i}}o.create=e;function t(i){let n=i;return k.defined(n)&&k.string(n.uri)}o.is=t})(KI||(KI={}));var GI;(function(o){function e(i,n){return{uri:i,version:n}}o.create=e;function t(i){let n=i;return k.defined(n)&&k.string(n.uri)&&k.integer(n.version)}o.is=t})(GI||(GI={}));var Xb;(function(o){function e(i,n){return{uri:i,version:n}}o.create=e;function t(i){let n=i;return k.defined(n)&&k.string(n.uri)&&(n.version===null||k.integer(n.version))}o.is=t})(Xb||(Xb={}));var ZI;(function(o){function e(i,n,s,r){return{uri:i,languageId:n,version:s,text:r}}o.create=e;function t(i){let n=i;return k.defined(n)&&k.string(n.uri)&&k.string(n.languageId)&&k.integer(n.version)&&k.string(n.text)}o.is=t})(ZI||(ZI={}));var Yb;(function(o){o.PlainText="plaintext",o.Markdown="markdown";function e(t){const i=t;return i===o.PlainText||i===o.Markdown}o.is=e})(Yb||(Yb={}));var Rc;(function(o){function e(t){const i=t;return k.objectLiteral(t)&&Yb.is(i.kind)&&k.string(i.value)}o.is=e})(Rc||(Rc={}));var gt;(function(o){o.Text=1,o.Method=2,o.Function=3,o.Constructor=4,o.Field=5,o.Variable=6,o.Class=7,o.Interface=8,o.Module=9,o.Property=10,o.Unit=11,o.Value=12,o.Enum=13,o.Keyword=14,o.Snippet=15,o.Color=16,o.File=17,o.Reference=18,o.Folder=19,o.EnumMember=20,o.Constant=21,o.Struct=22,o.Event=23,o.Operator=24,o.TypeParameter=25})(gt||(gt={}));var Jb;(function(o){o.PlainText=1,o.Snippet=2})(Jb||(Jb={}));var XI;(function(o){o.Deprecated=1})(XI||(XI={}));var YI;(function(o){function e(i,n,s){return{newText:i,insert:n,replace:s}}o.create=e;function t(i){const n=i;return n&&k.string(n.newText)&&ht.is(n.insert)&&ht.is(n.replace)}o.is=t})(YI||(YI={}));var JI;(function(o){o.asIs=1,o.adjustIndentation=2})(JI||(JI={}));var QI;(function(o){function e(t){const i=t;return i&&(k.string(i.detail)||i.detail===void 0)&&(k.string(i.description)||i.description===void 0)}o.is=e})(QI||(QI={}));var ex;(function(o){function e(t){return{label:t}}o.create=e})(ex||(ex={}));var tx;(function(o){function e(t,i){return{items:t||[],isIncomplete:!!i}}o.create=e})(tx||(tx={}));var Dg;(function(o){function e(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o.fromPlainText=e;function t(i){const n=i;return k.string(n)||k.objectLiteral(n)&&k.string(n.language)&&k.string(n.value)}o.is=t})(Dg||(Dg={}));var ix;(function(o){function e(t){let i=t;return!!i&&k.objectLiteral(i)&&(Rc.is(i.contents)||Dg.is(i.contents)||k.typedArray(i.contents,Dg.is))&&(t.range===void 0||ht.is(t.range))}o.is=e})(ix||(ix={}));var nx;(function(o){function e(t,i){return i?{label:t,documentation:i}:{label:t}}o.create=e})(nx||(nx={}));var sx;(function(o){function e(t,i,...n){let s={label:t};return k.defined(i)&&(s.documentation=i),k.defined(n)?s.parameters=n:s.parameters=[],s}o.create=e})(sx||(sx={}));var Hd;(function(o){o.Text=1,o.Read=2,o.Write=3})(Hd||(Hd={}));var ox;(function(o){function e(t,i){let n={range:t};return k.number(i)&&(n.kind=i),n}o.create=e})(ox||(ox={}));var ft;(function(o){o.File=1,o.Module=2,o.Namespace=3,o.Package=4,o.Class=5,o.Method=6,o.Property=7,o.Field=8,o.Constructor=9,o.Enum=10,o.Interface=11,o.Function=12,o.Variable=13,o.Constant=14,o.String=15,o.Number=16,o.Boolean=17,o.Array=18,o.Object=19,o.Key=20,o.Null=21,o.EnumMember=22,o.Struct=23,o.Event=24,o.Operator=25,o.TypeParameter=26})(ft||(ft={}));var rx;(function(o){o.Deprecated=1})(rx||(rx={}));var ax;(function(o){function e(t,i,n,s,r){let a={name:t,kind:i,location:{uri:s,range:n}};return r&&(a.containerName=r),a}o.create=e})(ax||(ax={}));var lx;(function(o){function e(t,i,n,s){return s!==void 0?{name:t,kind:i,location:{uri:n,range:s}}:{name:t,kind:i,location:{uri:n}}}o.create=e})(lx||(lx={}));var dx;(function(o){function e(i,n,s,r,a,l){let d={name:i,detail:n,kind:s,range:r,selectionRange:a};return l!==void 0&&(d.children=l),d}o.create=e;function t(i){let n=i;return n&&k.string(n.name)&&k.number(n.kind)&&ht.is(n.range)&&ht.is(n.selectionRange)&&(n.detail===void 0||k.string(n.detail))&&(n.deprecated===void 0||k.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}o.is=t})(dx||(dx={}));var cx;(function(o){o.Empty="",o.QuickFix="quickfix",o.Refactor="refactor",o.RefactorExtract="refactor.extract",o.RefactorInline="refactor.inline",o.RefactorRewrite="refactor.rewrite",o.Source="source",o.SourceOrganizeImports="source.organizeImports",o.SourceFixAll="source.fixAll"})(cx||(cx={}));var Eg;(function(o){o.Invoked=1,o.Automatic=2})(Eg||(Eg={}));var hx;(function(o){function e(i,n,s){let r={diagnostics:i};return n!=null&&(r.only=n),s!=null&&(r.triggerKind=s),r}o.create=e;function t(i){let n=i;return k.defined(n)&&k.typedArray(n.diagnostics,Lg.is)&&(n.only===void 0||k.typedArray(n.only,k.string))&&(n.triggerKind===void 0||n.triggerKind===Eg.Invoked||n.triggerKind===Eg.Automatic)}o.is=t})(hx||(hx={}));var ux;(function(o){function e(i,n,s){let r={title:i},a=!0;return typeof n=="string"?(a=!1,r.kind=n):Il.is(n)?r.command=n:r.edit=n,a&&s!==void 0&&(r.kind=s),r}o.create=e;function t(i){let n=i;return n&&k.string(n.title)&&(n.diagnostics===void 0||k.typedArray(n.diagnostics,Lg.is))&&(n.kind===void 0||k.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||Il.is(n.command))&&(n.isPreferred===void 0||k.boolean(n.isPreferred))&&(n.edit===void 0||Zb.is(n.edit))}o.is=t})(ux||(ux={}));var gx;(function(o){function e(i,n){let s={range:i};return k.defined(n)&&(s.data=n),s}o.create=e;function t(i){let n=i;return k.defined(n)&&ht.is(n.range)&&(k.undefined(n.command)||Il.is(n.command))}o.is=t})(gx||(gx={}));var fx;(function(o){function e(i,n){return{tabSize:i,insertSpaces:n}}o.create=e;function t(i){let n=i;return k.defined(n)&&k.uinteger(n.tabSize)&&k.boolean(n.insertSpaces)}o.is=t})(fx||(fx={}));var px;(function(o){function e(i,n,s){return{range:i,target:n,data:s}}o.create=e;function t(i){let n=i;return k.defined(n)&&ht.is(n.range)&&(k.undefined(n.target)||k.string(n.target))}o.is=t})(px||(px={}));var mx;(function(o){function e(i,n){return{range:i,parent:n}}o.create=e;function t(i){let n=i;return k.objectLiteral(n)&&ht.is(n.range)&&(n.parent===void 0||o.is(n.parent))}o.is=t})(mx||(mx={}));var _x;(function(o){o.namespace="namespace",o.type="type",o.class="class",o.enum="enum",o.interface="interface",o.struct="struct",o.typeParameter="typeParameter",o.parameter="parameter",o.variable="variable",o.property="property",o.enumMember="enumMember",o.event="event",o.function="function",o.method="method",o.macro="macro",o.keyword="keyword",o.modifier="modifier",o.comment="comment",o.string="string",o.number="number",o.regexp="regexp",o.operator="operator",o.decorator="decorator"})(_x||(_x={}));var vx;(function(o){o.declaration="declaration",o.definition="definition",o.readonly="readonly",o.static="static",o.deprecated="deprecated",o.abstract="abstract",o.async="async",o.modification="modification",o.documentation="documentation",o.defaultLibrary="defaultLibrary"})(vx||(vx={}));var bx;(function(o){function e(t){const i=t;return k.objectLiteral(i)&&(i.resultId===void 0||typeof i.resultId=="string")&&Array.isArray(i.data)&&(i.data.length===0||typeof i.data[0]=="number")}o.is=e})(bx||(bx={}));var Sx;(function(o){function e(i,n){return{range:i,text:n}}o.create=e;function t(i){const n=i;return n!=null&&ht.is(n.range)&&k.string(n.text)}o.is=t})(Sx||(Sx={}));var Cx;(function(o){function e(i,n,s){return{range:i,variableName:n,caseSensitiveLookup:s}}o.create=e;function t(i){const n=i;return n!=null&&ht.is(n.range)&&k.boolean(n.caseSensitiveLookup)&&(k.string(n.variableName)||n.variableName===void 0)}o.is=t})(Cx||(Cx={}));var wx;(function(o){function e(i,n){return{range:i,expression:n}}o.create=e;function t(i){const n=i;return n!=null&&ht.is(n.range)&&(k.string(n.expression)||n.expression===void 0)}o.is=t})(wx||(wx={}));var yx;(function(o){function e(i,n){return{frameId:i,stoppedLocation:n}}o.create=e;function t(i){const n=i;return k.defined(n)&&ht.is(i.stoppedLocation)}o.is=t})(yx||(yx={}));var Qb;(function(o){o.Type=1,o.Parameter=2;function e(t){return t===1||t===2}o.is=e})(Qb||(Qb={}));var eS;(function(o){function e(i){return{value:i}}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&(n.tooltip===void 0||k.string(n.tooltip)||Rc.is(n.tooltip))&&(n.location===void 0||xg.is(n.location))&&(n.command===void 0||Il.is(n.command))}o.is=t})(eS||(eS={}));var Ix;(function(o){function e(i,n,s){const r={position:i,label:n};return s!==void 0&&(r.kind=s),r}o.create=e;function t(i){const n=i;return k.objectLiteral(n)&&Zi.is(n.position)&&(k.string(n.label)||k.typedArray(n.label,eS.is))&&(n.kind===void 0||Qb.is(n.kind))&&n.textEdits===void 0||k.typedArray(n.textEdits,xl.is)&&(n.tooltip===void 0||k.string(n.tooltip)||Rc.is(n.tooltip))&&(n.paddingLeft===void 0||k.boolean(n.paddingLeft))&&(n.paddingRight===void 0||k.boolean(n.paddingRight))}o.is=t})(Ix||(Ix={}));var xx;(function(o){function e(t){return{kind:"snippet",value:t}}o.createSnippet=e})(xx||(xx={}));var Lx;(function(o){function e(t,i,n,s){return{insertText:t,filterText:i,range:n,command:s}}o.create=e})(Lx||(Lx={}));var Dx;(function(o){function e(t){return{items:t}}o.create=e})(Dx||(Dx={}));var Ex;(function(o){o.Invoked=0,o.Automatic=1})(Ex||(Ex={}));var Rx;(function(o){function e(t,i){return{range:t,text:i}}o.create=e})(Rx||(Rx={}));var Nx;(function(o){function e(t,i){return{triggerKind:t,selectedCompletionInfo:i}}o.create=e})(Nx||(Nx={}));var kx;(function(o){function e(t){const i=t;return k.objectLiteral(i)&&Bb.is(i.uri)&&k.string(i.name)}o.is=e})(kx||(kx={}));var Tx;(function(o){function e(s,r,a,l){return new FU(s,r,a,l)}o.create=e;function t(s){let r=s;return!!(k.defined(r)&&k.string(r.uri)&&(k.undefined(r.languageId)||k.string(r.languageId))&&k.uinteger(r.lineCount)&&k.func(r.getText)&&k.func(r.positionAt)&&k.func(r.offsetAt))}o.is=t;function i(s,r){let a=s.getText(),l=n(r,(c,h)=>{let g=c.range.start.line-h.range.start.line;return g===0?c.range.start.character-h.range.start.character:g}),d=a.length;for(let c=l.length-1;c>=0;c--){let h=l[c],g=s.offsetAt(h.range.start),u=s.offsetAt(h.range.end);if(u<=d)a=a.substring(0,g)+h.newText+a.substring(u,a.length);else throw new Error("Overlapping edit");d=g}return a}o.applyEdits=i;function n(s,r){if(s.length<=1)return s;const a=s.length/2|0,l=s.slice(0,a),d=s.slice(a);n(l,r),n(d,r);let c=0,h=0,g=0;for(;c<l.length&&h<d.length;)r(l[c],d[h])<=0?s[g++]=l[c++]:s[g++]=d[h++];for(;c<l.length;)s[g++]=l[c++];for(;h<d.length;)s[g++]=d[h++];return s}})(Tx||(Tx={}));class FU{constructor(e,t,i,n){this._uri=e,this._languageId=t,this._version=i,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(t,i)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,i=!0;for(let n=0;n<t.length;n++){i&&(e.push(n),i=!1);let s=t.charAt(n);i=s==="\r"||s===`
62
- `,s==="\r"&&n+1<t.length&&t.charAt(n+1)===`
63
- `&&n++}i&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),i=0,n=t.length;if(n===0)return Zi.create(0,e);for(;i<n;){let r=Math.floor((i+n)/2);t[r]>e?n=r:i=r+1}let s=i-1;return Zi.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let i=t[e.line],n=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(i+e.character,n),i)}get lineCount(){return this.getLineOffsets().length}}var k;(function(o){const e=Object.prototype.toString;function t(u){return typeof u<"u"}o.defined=t;function i(u){return typeof u>"u"}o.undefined=i;function n(u){return u===!0||u===!1}o.boolean=n;function s(u){return e.call(u)==="[object String]"}o.string=s;function r(u){return e.call(u)==="[object Number]"}o.number=r;function a(u,f,p){return e.call(u)==="[object Number]"&&f<=u&&u<=p}o.numberRange=a;function l(u){return e.call(u)==="[object Number]"&&-2147483648<=u&&u<=2147483647}o.integer=l;function d(u){return e.call(u)==="[object Number]"&&0<=u&&u<=2147483647}o.uinteger=d;function c(u){return e.call(u)==="[object Function]"}o.func=c;function h(u){return u!==null&&typeof u=="object"}o.objectLiteral=h;function g(u,f){return Array.isArray(u)&&u.every(f)}o.typedArray=g})(k||(k={}));class WU{constructor(e,t,i){this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);const n=r=>{let a=r.getLanguageId();if(a!==this._languageId)return;let l;this._listener[r.uri.toString()]=r.onDidChangeContent(()=>{window.clearTimeout(l),l=window.setTimeout(()=>this._doValidate(r.uri,a),500)}),this._doValidate(r.uri,a)},s=r=>{Ri.setModelMarkers(r,this._languageId,[]);let a=r.uri.toString(),l=this._listener[a];l&&(l.dispose(),delete this._listener[a])};this._disposables.push(Ri.onDidCreateModel(n)),this._disposables.push(Ri.onWillDisposeModel(s)),this._disposables.push(Ri.onDidChangeModelLanguage(r=>{s(r.model),n(r.model)})),this._disposables.push(i(r=>{Ri.getModels().forEach(a=>{a.getLanguageId()===this._languageId&&(s(a),n(a))})})),this._disposables.push({dispose:()=>{Ri.getModels().forEach(s);for(let r in this._listener)this._listener[r].dispose()}}),Ri.getModels().forEach(n)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,t){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const n=i.map(r=>VU(e,r));let s=Ri.getModel(e);s&&s.getLanguageId()===t&&Ri.setModelMarkers(s,t,n)}).then(void 0,i=>{console.error(i)})}}function HU(o){switch(o){case ka.Error:return jl.Error;case ka.Warning:return jl.Warning;case ka.Information:return jl.Info;case ka.Hint:return jl.Hint;default:return jl.Info}}function VU(o,e){let t=typeof e.code=="number"?String(e.code):e.code;return{severity:HU(e.severity),startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message,code:t,source:e.source}}class BU{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,i,n){const s=e.uri;return this._worker(s).then(r=>r.doComplete(s.toString(),sa(t))).then(r=>{if(!r)return;const a=e.getWordUntilPosition(t),l=new g1(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn),d=r.items.map(c=>{const h={label:c.label,insertText:c.insertText||c.label,sortText:c.sortText,filterText:c.filterText,documentation:c.documentation,detail:c.detail,command:zU(c.command),range:l,kind:$U(c.kind)};return c.textEdit&&(UU(c.textEdit)?h.range={insert:Gt(c.textEdit.insert),replace:Gt(c.textEdit.replace)}:h.range=Gt(c.textEdit.range),h.insertText=c.textEdit.newText),c.additionalTextEdits&&(h.additionalTextEdits=c.additionalTextEdits.map(Nc)),c.insertTextFormat===Jb.Snippet&&(h.insertTextRules=pt.CompletionItemInsertTextRule.InsertAsSnippet),h});return{isIncomplete:r.isIncomplete,suggestions:d}})}}function sa(o){if(o)return{character:o.column-1,line:o.lineNumber-1}}function iR(o){if(o)return{start:{line:o.startLineNumber-1,character:o.startColumn-1},end:{line:o.endLineNumber-1,character:o.endColumn-1}}}function Gt(o){if(o)return new g1(o.start.line+1,o.start.character+1,o.end.line+1,o.end.character+1)}function UU(o){return typeof o.insert<"u"&&typeof o.replace<"u"}function $U(o){const e=pt.CompletionItemKind;switch(o){case gt.Text:return e.Text;case gt.Method:return e.Method;case gt.Function:return e.Function;case gt.Constructor:return e.Constructor;case gt.Field:return e.Field;case gt.Variable:return e.Variable;case gt.Class:return e.Class;case gt.Interface:return e.Interface;case gt.Module:return e.Module;case gt.Property:return e.Property;case gt.Unit:return e.Unit;case gt.Value:return e.Value;case gt.Enum:return e.Enum;case gt.Keyword:return e.Keyword;case gt.Snippet:return e.Snippet;case gt.Color:return e.Color;case gt.File:return e.File;case gt.Reference:return e.Reference}return e.Property}function Nc(o){if(o)return{range:Gt(o.range),text:o.newText}}function zU(o){return o&&o.command==="editor.action.triggerSuggest"?{id:o.command,title:o.title,arguments:o.arguments}:void 0}class jU{constructor(e){this._worker=e}provideHover(e,t,i){let n=e.uri;return this._worker(n).then(s=>s.doHover(n.toString(),sa(t))).then(s=>{if(s)return{range:Gt(s.range),contents:KU(s.contents)}})}}function qU(o){return o&&typeof o=="object"&&typeof o.kind=="string"}function Px(o){return typeof o=="string"?{value:o}:qU(o)?o.kind==="plaintext"?{value:o.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:o.value}:{value:"```"+o.language+`
64
- `+o.value+"\n```\n"}}function KU(o){if(o)return Array.isArray(o)?o.map(Px):[Px(o)]}class pz{constructor(e){this._worker=e}provideDocumentHighlights(e,t,i){const n=e.uri;return this._worker(n).then(s=>s.findDocumentHighlights(n.toString(),sa(t))).then(s=>{if(s)return s.map(r=>({range:Gt(r.range),kind:GU(r.kind)}))})}}function GU(o){switch(o){case Hd.Read:return pt.DocumentHighlightKind.Read;case Hd.Write:return pt.DocumentHighlightKind.Write;case Hd.Text:return pt.DocumentHighlightKind.Text}return pt.DocumentHighlightKind.Text}class mz{constructor(e){this._worker=e}provideDefinition(e,t,i){const n=e.uri;return this._worker(n).then(s=>s.findDefinition(n.toString(),sa(t))).then(s=>{if(s)return[nR(s)]})}}function nR(o){return{uri:f1.parse(o.uri),range:Gt(o.range)}}class _z{constructor(e){this._worker=e}provideReferences(e,t,i,n){const s=e.uri;return this._worker(s).then(r=>r.findReferences(s.toString(),sa(t))).then(r=>{if(r)return r.map(nR)})}}class vz{constructor(e){this._worker=e}provideRenameEdits(e,t,i,n){const s=e.uri;return this._worker(s).then(r=>r.doRename(s.toString(),sa(t),i)).then(r=>ZU(r))}}function ZU(o){if(!o||!o.changes)return;let e=[];for(let t in o.changes){const i=f1.parse(t);for(let n of o.changes[t])e.push({resource:i,versionId:void 0,textEdit:{range:Gt(n.range),text:n.newText}})}return{edits:e}}class XU{constructor(e){this._worker=e}provideDocumentSymbols(e,t){const i=e.uri;return this._worker(i).then(n=>n.findDocumentSymbols(i.toString())).then(n=>{if(n)return n.map(s=>YU(s)?sR(s):{name:s.name,detail:"",containerName:s.containerName,kind:oR(s.kind),range:Gt(s.location.range),selectionRange:Gt(s.location.range),tags:[]})})}}function YU(o){return"children"in o}function sR(o){return{name:o.name,detail:o.detail??"",kind:oR(o.kind),range:Gt(o.range),selectionRange:Gt(o.selectionRange),tags:o.tags??[],children:(o.children??[]).map(e=>sR(e))}}function oR(o){let e=pt.SymbolKind;switch(o){case ft.File:return e.File;case ft.Module:return e.Module;case ft.Namespace:return e.Namespace;case ft.Package:return e.Package;case ft.Class:return e.Class;case ft.Method:return e.Method;case ft.Property:return e.Property;case ft.Field:return e.Field;case ft.Constructor:return e.Constructor;case ft.Enum:return e.Enum;case ft.Interface:return e.Interface;case ft.Function:return e.Function;case ft.Variable:return e.Variable;case ft.Constant:return e.Constant;case ft.String:return e.String;case ft.Number:return e.Number;case ft.Boolean:return e.Boolean;case ft.Array:return e.Array}return e.Function}class bz{constructor(e){this._worker=e}provideLinks(e,t){const i=e.uri;return this._worker(i).then(n=>n.findDocumentLinks(i.toString())).then(n=>{if(n)return{links:n.map(s=>({range:Gt(s.range),url:s.target}))}})}}class JU{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,i){const n=e.uri;return this._worker(n).then(s=>s.format(n.toString(),null,rR(t)).then(r=>{if(!(!r||r.length===0))return r.map(Nc)}))}}class QU{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,i,n){const s=e.uri;return this._worker(s).then(r=>r.format(s.toString(),iR(t),rR(i)).then(a=>{if(!(!a||a.length===0))return a.map(Nc)}))}}function rR(o){return{tabSize:o.tabSize,insertSpaces:o.insertSpaces}}class e5{constructor(e){this._worker=e}provideDocumentColors(e,t){const i=e.uri;return this._worker(i).then(n=>n.findDocumentColors(i.toString())).then(n=>{if(n)return n.map(s=>({color:s.color,range:Gt(s.range)}))})}provideColorPresentations(e,t,i){const n=e.uri;return this._worker(n).then(s=>s.getColorPresentations(n.toString(),t.color,iR(t.range))).then(s=>{if(s)return s.map(r=>{let a={label:r.label};return r.textEdit&&(a.textEdit=Nc(r.textEdit)),r.additionalTextEdits&&(a.additionalTextEdits=r.additionalTextEdits.map(Nc)),a})})}}class t5{constructor(e){this._worker=e}provideFoldingRanges(e,t,i){const n=e.uri;return this._worker(n).then(s=>s.getFoldingRanges(n.toString(),t)).then(s=>{if(s)return s.map(r=>{const a={start:r.startLine+1,end:r.endLine+1};return typeof r.kind<"u"&&(a.kind=i5(r.kind)),a})})}}function i5(o){switch(o){case Wd.Comment:return pt.FoldingRangeKind.Comment;case Wd.Imports:return pt.FoldingRangeKind.Imports;case Wd.Region:return pt.FoldingRangeKind.Region}}class n5{constructor(e){this._worker=e}provideSelectionRanges(e,t,i){const n=e.uri;return this._worker(n).then(s=>s.getSelectionRanges(n.toString(),t.map(sa))).then(s=>{if(s)return s.map(r=>{const a=[];for(;r;)a.push({range:Gt(r.range)}),r=r.parent;return a})})}}function s5(o,e=!1){const t=o.length;let i=0,n="",s=0,r=16,a=0,l=0,d=0,c=0,h=0;function g(y,x){let b=0,w=0;for(;b<y;){let D=o.charCodeAt(i);if(D>=48&&D<=57)w=w*16+D-48;else if(D>=65&&D<=70)w=w*16+D-65+10;else if(D>=97&&D<=102)w=w*16+D-97+10;else break;i++,b++}return b<y&&(w=-1),w}function u(y){i=y,n="",s=0,r=16,h=0}function f(){let y=i;if(o.charCodeAt(i)===48)i++;else for(i++;i<o.length&&va(o.charCodeAt(i));)i++;if(i<o.length&&o.charCodeAt(i)===46)if(i++,i<o.length&&va(o.charCodeAt(i)))for(i++;i<o.length&&va(o.charCodeAt(i));)i++;else return h=3,o.substring(y,i);let x=i;if(i<o.length&&(o.charCodeAt(i)===69||o.charCodeAt(i)===101))if(i++,(i<o.length&&o.charCodeAt(i)===43||o.charCodeAt(i)===45)&&i++,i<o.length&&va(o.charCodeAt(i))){for(i++;i<o.length&&va(o.charCodeAt(i));)i++;x=i}else h=3;return o.substring(y,x)}function p(){let y="",x=i;for(;;){if(i>=t){y+=o.substring(x,i),h=2;break}const b=o.charCodeAt(i);if(b===34){y+=o.substring(x,i),i++;break}if(b===92){if(y+=o.substring(x,i),i++,i>=t){h=2;break}switch(o.charCodeAt(i++)){case 34:y+='"';break;case 92:y+="\\";break;case 47:y+="/";break;case 98:y+="\b";break;case 102:y+="\f";break;case 110:y+=`
65
- `;break;case 114:y+="\r";break;case 116:y+=" ";break;case 117:const D=g(4);D>=0?y+=String.fromCharCode(D):h=4;break;default:h=5}x=i;continue}if(b>=0&&b<=31)if(sd(b)){y+=o.substring(x,i),h=2;break}else h=6;i++}return y}function _(){if(n="",h=0,s=i,l=a,c=d,i>=t)return s=t,r=17;let y=o.charCodeAt(i);if(Cm(y)){do i++,n+=String.fromCharCode(y),y=o.charCodeAt(i);while(Cm(y));return r=15}if(sd(y))return i++,n+=String.fromCharCode(y),y===13&&o.charCodeAt(i)===10&&(i++,n+=`
66
- `),a++,d=i,r=14;switch(y){case 123:return i++,r=1;case 125:return i++,r=2;case 91:return i++,r=3;case 93:return i++,r=4;case 58:return i++,r=6;case 44:return i++,r=5;case 34:return i++,n=p(),r=10;case 47:const x=i-1;if(o.charCodeAt(i+1)===47){for(i+=2;i<t&&!sd(o.charCodeAt(i));)i++;return n=o.substring(x,i),r=12}if(o.charCodeAt(i+1)===42){i+=2;const b=t-1;let w=!1;for(;i<b;){const D=o.charCodeAt(i);if(D===42&&o.charCodeAt(i+1)===47){i+=2,w=!0;break}i++,sd(D)&&(D===13&&o.charCodeAt(i)===10&&i++,a++,d=i)}return w||(i++,h=1),n=o.substring(x,i),r=13}return n+=String.fromCharCode(y),i++,r=16;case 45:if(n+=String.fromCharCode(y),i++,i===t||!va(o.charCodeAt(i)))return r=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n+=f(),r=11;default:for(;i<t&&v(y);)i++,y=o.charCodeAt(i);if(s!==i){switch(n=o.substring(s,i),n){case"true":return r=8;case"false":return r=9;case"null":return r=7}return r=16}return n+=String.fromCharCode(y),i++,r=16}}function v(y){if(Cm(y)||sd(y))return!1;switch(y){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function S(){let y;do y=_();while(y>=12&&y<=15);return y}return{setPosition:u,getPosition:()=>i,scan:e?S:_,getToken:()=>r,getTokenValue:()=>n,getTokenOffset:()=>s,getTokenLength:()=>i-s,getTokenStartLine:()=>l,getTokenStartCharacter:()=>s-c,getTokenError:()=>h}}function Cm(o){return o===32||o===9}function sd(o){return o===10||o===13}function va(o){return o>=48&&o<=57}var Ox;(function(o){o[o.lineFeed=10]="lineFeed",o[o.carriageReturn=13]="carriageReturn",o[o.space=32]="space",o[o._0=48]="_0",o[o._1=49]="_1",o[o._2=50]="_2",o[o._3=51]="_3",o[o._4=52]="_4",o[o._5=53]="_5",o[o._6=54]="_6",o[o._7=55]="_7",o[o._8=56]="_8",o[o._9=57]="_9",o[o.a=97]="a",o[o.b=98]="b",o[o.c=99]="c",o[o.d=100]="d",o[o.e=101]="e",o[o.f=102]="f",o[o.g=103]="g",o[o.h=104]="h",o[o.i=105]="i",o[o.j=106]="j",o[o.k=107]="k",o[o.l=108]="l",o[o.m=109]="m",o[o.n=110]="n",o[o.o=111]="o",o[o.p=112]="p",o[o.q=113]="q",o[o.r=114]="r",o[o.s=115]="s",o[o.t=116]="t",o[o.u=117]="u",o[o.v=118]="v",o[o.w=119]="w",o[o.x=120]="x",o[o.y=121]="y",o[o.z=122]="z",o[o.A=65]="A",o[o.B=66]="B",o[o.C=67]="C",o[o.D=68]="D",o[o.E=69]="E",o[o.F=70]="F",o[o.G=71]="G",o[o.H=72]="H",o[o.I=73]="I",o[o.J=74]="J",o[o.K=75]="K",o[o.L=76]="L",o[o.M=77]="M",o[o.N=78]="N",o[o.O=79]="O",o[o.P=80]="P",o[o.Q=81]="Q",o[o.R=82]="R",o[o.S=83]="S",o[o.T=84]="T",o[o.U=85]="U",o[o.V=86]="V",o[o.W=87]="W",o[o.X=88]="X",o[o.Y=89]="Y",o[o.Z=90]="Z",o[o.asterisk=42]="asterisk",o[o.backslash=92]="backslash",o[o.closeBrace=125]="closeBrace",o[o.closeBracket=93]="closeBracket",o[o.colon=58]="colon",o[o.comma=44]="comma",o[o.dot=46]="dot",o[o.doubleQuote=34]="doubleQuote",o[o.minus=45]="minus",o[o.openBrace=123]="openBrace",o[o.openBracket=91]="openBracket",o[o.plus=43]="plus",o[o.slash=47]="slash",o[o.formFeed=12]="formFeed",o[o.tab=9]="tab"})(Ox||(Ox={}));new Array(20).fill(0).map((o,e)=>" ".repeat(e));const ba=200;new Array(ba).fill(0).map((o,e)=>`
67
- `+" ".repeat(e)),new Array(ba).fill(0).map((o,e)=>"\r"+" ".repeat(e)),new Array(ba).fill(0).map((o,e)=>`\r
68
- `+" ".repeat(e)),new Array(ba).fill(0).map((o,e)=>`
69
- `+" ".repeat(e)),new Array(ba).fill(0).map((o,e)=>"\r"+" ".repeat(e)),new Array(ba).fill(0).map((o,e)=>`\r
70
- `+" ".repeat(e));var Mx;(function(o){o.DEFAULT={allowTrailingComma:!1}})(Mx||(Mx={}));const o5=s5;var Ax;(function(o){o[o.None=0]="None",o[o.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",o[o.UnexpectedEndOfString=2]="UnexpectedEndOfString",o[o.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",o[o.InvalidUnicode=4]="InvalidUnicode",o[o.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",o[o.InvalidCharacter=6]="InvalidCharacter"})(Ax||(Ax={}));var Fx;(function(o){o[o.OpenBraceToken=1]="OpenBraceToken",o[o.CloseBraceToken=2]="CloseBraceToken",o[o.OpenBracketToken=3]="OpenBracketToken",o[o.CloseBracketToken=4]="CloseBracketToken",o[o.CommaToken=5]="CommaToken",o[o.ColonToken=6]="ColonToken",o[o.NullKeyword=7]="NullKeyword",o[o.TrueKeyword=8]="TrueKeyword",o[o.FalseKeyword=9]="FalseKeyword",o[o.StringLiteral=10]="StringLiteral",o[o.NumericLiteral=11]="NumericLiteral",o[o.LineCommentTrivia=12]="LineCommentTrivia",o[o.BlockCommentTrivia=13]="BlockCommentTrivia",o[o.LineBreakTrivia=14]="LineBreakTrivia",o[o.Trivia=15]="Trivia",o[o.Unknown=16]="Unknown",o[o.EOF=17]="EOF"})(Fx||(Fx={}));var Wx;(function(o){o[o.InvalidSymbol=1]="InvalidSymbol",o[o.InvalidNumberFormat=2]="InvalidNumberFormat",o[o.PropertyNameExpected=3]="PropertyNameExpected",o[o.ValueExpected=4]="ValueExpected",o[o.ColonExpected=5]="ColonExpected",o[o.CommaExpected=6]="CommaExpected",o[o.CloseBraceExpected=7]="CloseBraceExpected",o[o.CloseBracketExpected=8]="CloseBracketExpected",o[o.EndOfFileExpected=9]="EndOfFileExpected",o[o.InvalidCommentToken=10]="InvalidCommentToken",o[o.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",o[o.UnexpectedEndOfString=12]="UnexpectedEndOfString",o[o.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",o[o.InvalidUnicode=14]="InvalidUnicode",o[o.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",o[o.InvalidCharacter=16]="InvalidCharacter"})(Wx||(Wx={}));function r5(o){return{getInitialState:()=>new kc(null,null,!1,null),tokenize:(e,t)=>m5(o,e,t)}}const Hx="delimiter.bracket.json",Vx="delimiter.array.json",a5="delimiter.colon.json",l5="delimiter.comma.json",d5="keyword.json",c5="keyword.json",h5="string.value.json",u5="number.json",g5="string.key.json",f5="comment.block.json",p5="comment.line.json";class zo{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(e,t){return new zo(e,t)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}}class kc{constructor(e,t,i,n){this._state=e,this.scanError=t,this.lastWasColon=i,this.parents=n}clone(){return new kc(this._state,this.scanError,this.lastWasColon,this.parents)}equals(e){return e===this?!0:!e||!(e instanceof kc)?!1:this.scanError===e.scanError&&this.lastWasColon===e.lastWasColon&&zo.equals(this.parents,e.parents)}getStateData(){return this._state}setStateData(e){this._state=e}}function m5(o,e,t,i=0){let n=0,s=!1;switch(t.scanError){case 2:e='"'+e,n=1;break;case 1:e="/*"+e,n=2;break}const r=o5(e);let a=t.lastWasColon,l=t.parents;const d={tokens:[],endState:t.clone()};for(;;){let c=i+r.getPosition(),h="";const g=r.scan();if(g===17)break;if(c===i+r.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+e.substr(r.getPosition(),3));switch(s&&(c-=n),s=n>0,g){case 1:l=zo.push(l,0),h=Hx,a=!1;break;case 2:l=zo.pop(l),h=Hx,a=!1;break;case 3:l=zo.push(l,1),h=Vx,a=!1;break;case 4:l=zo.pop(l),h=Vx,a=!1;break;case 6:h=a5,a=!0;break;case 5:h=l5,a=!1;break;case 8:case 9:h=d5,a=!1;break;case 7:h=c5,a=!1;break;case 10:const f=(l?l.type:0)===1;h=a||f?h5:g5,a=!1;break;case 11:h=u5,a=!1;break}switch(g){case 12:h=p5;break;case 13:h=f5;break}d.endState=new kc(t.getStateData(),r.getTokenError(),a,l),d.tokens.push({startIndex:c,scopes:h})}return d}let Ii;function Sz(){return new Promise((o,e)=>{if(!Ii)return e("JSON not registered!");o(Ii)})}class _5 extends WU{constructor(e,t,i){super(e,t,i.onDidChange),this._disposables.push(Ri.onWillDisposeModel(n=>{this._resetSchema(n.uri)})),this._disposables.push(Ri.onDidChangeModelLanguage(n=>{this._resetSchema(n.model.uri)}))}_resetSchema(e){this._worker().then(t=>{t.resetSchema(e.toString())})}}function Cz(o){const e=[],t=[],i=new AU(o);e.push(i),Ii=(...r)=>i.getLanguageServiceWorker(...r);function n(){const{languageId:r,modeConfiguration:a}=o;aR(t),a.documentFormattingEdits&&t.push(pt.registerDocumentFormattingEditProvider(r,new JU(Ii))),a.documentRangeFormattingEdits&&t.push(pt.registerDocumentRangeFormattingEditProvider(r,new QU(Ii))),a.completionItems&&t.push(pt.registerCompletionItemProvider(r,new BU(Ii,[" ",":",'"']))),a.hovers&&t.push(pt.registerHoverProvider(r,new jU(Ii))),a.documentSymbols&&t.push(pt.registerDocumentSymbolProvider(r,new XU(Ii))),a.tokens&&t.push(pt.setTokensProvider(r,r5(!0))),a.colors&&t.push(pt.registerColorProvider(r,new e5(Ii))),a.foldingRanges&&t.push(pt.registerFoldingRangeProvider(r,new t5(Ii))),a.diagnostics&&t.push(new _5(r,Ii,o)),a.selectionRanges&&t.push(pt.registerSelectionRangeProvider(r,new n5(Ii)))}n(),e.push(pt.setLanguageConfiguration(o.languageId,v5));let s=o.modeConfiguration;return o.onDidChange(r=>{r.modeConfiguration!==s&&(s=r.modeConfiguration,n())}),e.push(Bx(t)),Bx(e)}function Bx(o){return{dispose:()=>aR(o)}}function aR(o){for(;o.length;)o.pop().dispose()}const v5={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]};export{BU as CompletionAdapter,mz as DefinitionAdapter,WU as DiagnosticsAdapter,e5 as DocumentColorAdapter,JU as DocumentFormattingEditProvider,pz as DocumentHighlightAdapter,bz as DocumentLinkAdapter,QU as DocumentRangeFormattingEditProvider,XU as DocumentSymbolAdapter,t5 as FoldingRangeAdapter,jU as HoverAdapter,_z as ReferenceAdapter,vz as RenameAdapter,n5 as SelectionRangeAdapter,AU as WorkerManager,sa as fromPosition,iR as fromRange,Sz as getWorker,Cz as setupMode,Gt as toRange,Nc as toTextEdit};