db-studio 2.1.0 → 2.2.1

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 (199) hide show
  1. package/dist/index.js +69 -69
  2. package/dist/index.js.map +1 -1
  3. package/dist/web-dist/assets/_pathlessLayout-1KXlcJn5.js +1 -0
  4. package/dist/web-dist/assets/_pathlessLayout-D4dS7_ZZ.js +2 -0
  5. package/dist/web-dist/assets/_queryId-DfjPCkx7.js +1 -0
  6. package/dist/web-dist/assets/_table-ChX0JQnV.js +1 -0
  7. package/dist/web-dist/assets/{_table-BUNHOVIK.js → _table-DQvTfc38.js} +1 -1
  8. package/dist/web-dist/assets/_table-M7xRcFSl.js +1 -0
  9. package/dist/web-dist/assets/{abap-B-HzHdT_.js → abap-DYZIj1QT.js} +1 -1
  10. package/dist/web-dist/assets/{apex-t5VcK3BF.js → apex-CaiB2cHW.js} +1 -1
  11. package/dist/web-dist/assets/{azcli-Ce3iuV2p.js → azcli-BSMSllBA.js} +1 -1
  12. package/dist/web-dist/assets/{badge-COF6gx-2.js → badge-DAJ-55CZ.js} +1 -1
  13. package/dist/web-dist/assets/{bat-bOBZcLbK.js → bat-DslF3aSP.js} +1 -1
  14. package/dist/web-dist/assets/{bicep-TSicgsnM.js → bicep-BaONjKcy.js} +1 -1
  15. package/dist/web-dist/assets/{browser-B-fV6CZb.js → browser-BXjW1U6_.js} +1 -1
  16. package/dist/web-dist/assets/bundle-mjs-DGKUXiQC.js +1 -0
  17. package/dist/web-dist/assets/{cameligo-D-9xpPXV.js → cameligo-B-VCpHXR.js} +1 -1
  18. package/dist/web-dist/assets/chat-sidebar-DhhMmf_h.js +161 -0
  19. package/dist/web-dist/assets/{clojure-9X3x3csE.js → clojure-CQdNGvuT.js} +1 -1
  20. package/dist/web-dist/assets/{code-editor-tPwHd3zF.js → code-editor-B9_5weuZ.js} +2 -2
  21. package/dist/web-dist/assets/{codicon-Brq4_Ui5.ttf → codicon-DF1abBS2.ttf} +0 -0
  22. package/dist/web-dist/assets/{coffee-anOch8Z-.js → coffee-GJxdv8v9.js} +1 -1
  23. package/dist/web-dist/assets/connect-CCHOGwiQ.js +1 -0
  24. package/dist/web-dist/assets/constants-CJqw7w68.js +20 -0
  25. package/dist/web-dist/assets/{cpp-oW293AoF.js → cpp-bdOuYgjm.js} +1 -1
  26. package/dist/web-dist/assets/{csharp-BOXMgm5k.js → csharp-DtT4S3qG.js} +1 -1
  27. package/dist/web-dist/assets/{csp-D67JhNKT.js → csp-DcT8MidV.js} +1 -1
  28. package/dist/web-dist/assets/{css-Bk6H7_K_.js → css-aK0ks7hY.js} +1 -1
  29. package/dist/web-dist/assets/{css.worker-B-fFSVTK.js → css.worker-bHD0dlJO.js} +1507 -1453
  30. package/dist/web-dist/assets/cssMode-5aGt4Xk4.js +1 -0
  31. package/dist/web-dist/assets/{cypher-DB0LBjic.js → cypher-gkqrqdhb.js} +1 -1
  32. package/dist/web-dist/assets/{dart-CS3MbwLP.js → dart-D55faCn9.js} +1 -1
  33. package/dist/web-dist/assets/database.store-BOgNcBMG.js +57 -0
  34. package/dist/web-dist/assets/dist-BA0_BdMR.js +1 -0
  35. package/dist/web-dist/assets/dist-DAuUtATJ.js +2 -0
  36. package/dist/web-dist/assets/{dockerfile-BGz3qsmk.js → dockerfile-CsHs8WRI.js} +1 -1
  37. package/dist/web-dist/assets/{ecl-lt3qcklx.js → ecl-CQKiIf56.js} +1 -1
  38. package/dist/web-dist/assets/editor-g1MJRkXV.css +1 -0
  39. package/dist/web-dist/assets/editor.api-BZk1XbZs.js +926 -0
  40. package/dist/web-dist/assets/{editor.worker-BYfbSb3U.js → editor.worker-ByY_fgkM.js} +1328 -1274
  41. package/dist/web-dist/assets/{elixir-cMyUafed.js → elixir-CfFxQLCK.js} +1 -1
  42. package/dist/web-dist/assets/esm-BhcGPxbM.js +1 -0
  43. package/dist/web-dist/assets/{esm-B-4Q6MuQ.js → esm-C1Qg-CCP.js} +1 -1
  44. package/dist/web-dist/assets/{flow9-BI9V6TuS.js → flow9-CLkaJU-U.js} +1 -1
  45. package/dist/web-dist/assets/format-cell-value-BcH_SExw.js +1 -0
  46. package/dist/web-dist/assets/{freemarker2-mnCFA3xV.js → freemarker2-Dbf5KAvd.js} +2 -2
  47. package/dist/web-dist/assets/{fsharp-I1kqnt0E.js → fsharp-4RCsDl1X.js} +1 -1
  48. package/dist/web-dist/assets/{go-Cg4qMFVj.js → go-BCuLk40y.js} +1 -1
  49. package/dist/web-dist/assets/{graphql-CvtHcP49.js → graphql-Cuc1fjZl.js} +1 -1
  50. package/dist/web-dist/assets/{handlebars-BUcE6Uyy.js → handlebars-Bc8nHcpq.js} +1 -1
  51. package/dist/web-dist/assets/{hcl-BkvCdKNu.js → hcl-BqquCvZs.js} +1 -1
  52. package/dist/web-dist/assets/highlighted-body-JLMTFACH-Q1Yc-gaw.js +1 -0
  53. package/dist/web-dist/assets/{html-BBqcfykD.js → html-ZcQmh2HM.js} +1 -1
  54. package/dist/web-dist/assets/{html.worker-CdalOg9p.js → html.worker-CHVREBCJ.js} +1527 -1473
  55. package/dist/web-dist/assets/{htmlMode-D8je66Rk.js → htmlMode-BkwHscgL.js} +1 -1
  56. package/dist/web-dist/assets/icons-IBpZgbE4.js +1 -0
  57. package/dist/web-dist/assets/index-DTVRtzpz.css +2 -0
  58. package/dist/web-dist/assets/index-DfnmlclA.js +34 -0
  59. package/dist/web-dist/assets/indexes-DUzB2YOr.js +1 -0
  60. package/dist/web-dist/assets/{ini-CPc8BCWu.js → ini-DK3PnweE.js} +1 -1
  61. package/dist/web-dist/assets/{java-C9Yie4SH.js → java-CCKilWzS.js} +1 -1
  62. package/dist/web-dist/assets/{javascript-CuGq5ydO.js → javascript-Cy_Mv9Jz.js} +1 -1
  63. package/dist/web-dist/assets/{json-editor-Dc1E8Fc-.js → json-editor-CE8bI5n-.js} +1 -1
  64. package/dist/web-dist/assets/{json.worker-DI02pyM8.js → json.worker-BKCy_srb.js} +2747 -2693
  65. package/dist/web-dist/assets/{jsonMode-BgdTmYik.js → jsonMode-wvGZQK-h.js} +4 -4
  66. package/dist/web-dist/assets/{julia--qJGRfN8.js → julia-yMXHdeoG.js} +1 -1
  67. package/dist/web-dist/assets/{keys-Bs0DRbCB.js → keys-B1bnQf8h.js} +1 -1
  68. package/dist/web-dist/assets/{kotlin-C3MSe-0N.js → kotlin-BbY6gpqm.js} +1 -1
  69. package/dist/web-dist/assets/{label-DzHJlGAx.js → label-B5lrF5vb.js} +1 -1
  70. package/dist/web-dist/assets/{less-DOBYgWSY.js → less-rp9k6ONg.js} +1 -1
  71. package/dist/web-dist/assets/{lexon-Djd2rGvJ.js → lexon-rRyNfudJ.js} +1 -1
  72. package/dist/web-dist/assets/{liquid-DXfHmR66.js → liquid-TDvflZF7.js} +1 -1
  73. package/dist/web-dist/assets/{logs-BortjBc-.js → logs-C2iyjCnP.js} +1 -1
  74. package/dist/web-dist/assets/{lspLanguageFeatures-C7-iyD6G.js → lspLanguageFeatures-DkWvqpF_.js} +1 -1
  75. package/dist/web-dist/assets/{lua-Ck8vNcPw.js → lua-DInTck7-.js} +1 -1
  76. package/dist/web-dist/assets/{m3-a6Kl4TV0.js → m3-D1zMDYBU.js} +1 -1
  77. package/dist/web-dist/assets/{markdown-DkcRBwO0.js → markdown-DTHzen51.js} +1 -1
  78. package/dist/web-dist/assets/{mdx-QI5o45qz.js → mdx-D9pd4Hjw.js} +1 -1
  79. package/dist/web-dist/assets/mermaid-WFAXDIZX-B2YMTdfH.js +1 -0
  80. package/dist/web-dist/assets/middleware-gB5jp1rF.js +1 -0
  81. package/dist/web-dist/assets/{mips-Cc1YVI2p.js → mips-7Slzy87X.js} +1 -1
  82. package/dist/web-dist/assets/module-BHjgyYxe.js +3 -0
  83. package/dist/web-dist/assets/monaco-theme-CFrVB-OG.js +68 -0
  84. package/dist/web-dist/assets/monaco-theme-DtsiNm_H.css +1 -0
  85. package/dist/web-dist/assets/{msdax-Bh41xUoQ.js → msdax-CVw_oFJe.js} +1 -1
  86. package/dist/web-dist/assets/{mysql-BZTZMxPa.js → mysql-92xfRPFN.js} +1 -1
  87. package/dist/web-dist/assets/{objective-c-CxZIMOHQ.js → objective-c-BXnCggXS.js} +1 -1
  88. package/dist/web-dist/assets/{overlay.store-DsUdwZjE.js → overlay.store-wgNV6JkK.js} +1 -1
  89. package/dist/web-dist/assets/{pascal-I-WmLkmD.js → pascal-3fByeJdZ.js} +1 -1
  90. package/dist/web-dist/assets/{pascaligo-DEZ-6bwf.js → pascaligo-BdC4YsoB.js} +1 -1
  91. package/dist/web-dist/assets/{perl-DfeHQJxJ.js → perl-ClTLOqGp.js} +1 -1
  92. package/dist/web-dist/assets/{personal-preferences.store-DXSnKmVN.js → personal-preferences.store-dG5rDcRw.js} +1 -1
  93. package/dist/web-dist/assets/{pgsql-OdOoQYPW.js → pgsql-DEzB6Ucu.js} +1 -1
  94. package/dist/web-dist/assets/{php-CF1bUutw.js → php-DVFKZpKp.js} +1 -1
  95. package/dist/web-dist/assets/{pla-BHZr0GrY.js → pla-0ER0Ntvs.js} +1 -1
  96. package/dist/web-dist/assets/{postiats-BSB6a63H.js → postiats-CEuE_fTP.js} +1 -1
  97. package/dist/web-dist/assets/{powerquery-Bu0p84Ye.js → powerquery-IX0j-GcX.js} +1 -1
  98. package/dist/web-dist/assets/{powershell-Dcq3YM6T.js → powershell-PrZfSRSf.js} +1 -1
  99. package/dist/web-dist/assets/preload-helper-Bpqt02Xx.js +1 -0
  100. package/dist/web-dist/assets/{protobuf-CsWrQxqX.js → protobuf-CCWom7A4.js} +1 -1
  101. package/dist/web-dist/assets/{pug-DLQiv3Bp.js → pug-B-mwU8C7.js} +1 -1
  102. package/dist/web-dist/assets/{python-BvKEpyP9.js → python-B-RGw6sh.js} +1 -1
  103. package/dist/web-dist/assets/{qsharp-D8nrRUNu.js → qsharp-zXtiGbGZ.js} +1 -1
  104. package/dist/web-dist/assets/{queries.store-BaeyNA64.js → queries.store-CL_QZ9kV.js} +1 -1
  105. package/dist/web-dist/assets/query-runner-__vttAd8.js +17 -0
  106. package/dist/web-dist/assets/{r-xhyKpGTk.js → r-ff7AzNUE.js} +1 -1
  107. package/dist/web-dist/assets/radix-ui-BLYTVDm9.js +41 -0
  108. package/dist/web-dist/assets/{razor-Ceb9S1Rz.js → razor-f0SZhWBH.js} +1 -1
  109. package/dist/web-dist/assets/react-Cuc8VqJk.js +1 -0
  110. package/dist/web-dist/assets/react-dom-Cx6AFOpM.js +9 -0
  111. package/dist/web-dist/assets/{redis-BnpkEvbr.js → redis-3WrJd2UX.js} +1 -1
  112. package/dist/web-dist/assets/{redis-value-DMk0-Zuc.js → redis-value-DvCMBdEM.js} +1 -1
  113. package/dist/web-dist/assets/{redshift-BpxVXjAI.js → redshift-BFFZqrqe.js} +1 -1
  114. package/dist/web-dist/assets/{restructuredtext-5afXtW7D.js → restructuredtext-BRpKlTYP.js} +1 -1
  115. package/dist/web-dist/assets/rolldown-runtime-v8MIZ6et.js +1 -0
  116. package/dist/web-dist/assets/{ruby-CHaoWUHT.js → ruby-Dik41UlM.js} +1 -1
  117. package/dist/web-dist/assets/runner-DIQss6Kz.js +1 -0
  118. package/dist/web-dist/assets/{rust-Bw0WVsLy.js → rust-DADSh0Pc.js} +1 -1
  119. package/dist/web-dist/assets/{sb-CEjXmIyG.js → sb-DuvpHrMN.js} +1 -1
  120. package/dist/web-dist/assets/{scala-BuaCSaU6.js → scala-CtuFqcla.js} +1 -1
  121. package/dist/web-dist/assets/schema-BqwkN_6u.js +1 -0
  122. package/dist/web-dist/assets/schema-qGsKd6zv.js +1 -0
  123. package/dist/web-dist/assets/{scheme-DIKzlmFG.js → scheme-hPwS1w0C.js} +1 -1
  124. package/dist/web-dist/assets/{scss-C2_UsWzg.js → scss-477oFtwU.js} +1 -1
  125. package/dist/web-dist/assets/{select-C-nrz7Tx.js → select-DDjmR6pO.js} +1 -1
  126. package/dist/web-dist/assets/{separator-DnB61XAO.js → separator-CGjaYtx-.js} +1 -1
  127. package/dist/web-dist/assets/{sheet-sidebar-BGxJGRbd.js → sheet-sidebar-Cde4bLIJ.js} +1 -1
  128. package/dist/web-dist/assets/{shell-2aEL2EVH.js → shell-n9PWT21s.js} +1 -1
  129. package/dist/web-dist/assets/{solidity-D-5XfYE1.js → solidity-BUjaJYHp.js} +1 -1
  130. package/dist/web-dist/assets/{sophia-s4MFSvUF.js → sophia-BCcvs9t1.js} +1 -1
  131. package/dist/web-dist/assets/{sparql-Dkv46wS5.js → sparql-BflQKwzI.js} +1 -1
  132. package/dist/web-dist/assets/spinner-ioIImnLq.js +1 -0
  133. package/dist/web-dist/assets/{sql-Dz9Xhs8s.js → sql-B-t7xHK1.js} +1 -1
  134. package/dist/web-dist/assets/{st-Cbo0XVmr.js → st-CSYG-jYM.js} +1 -1
  135. package/dist/web-dist/assets/{swift-B66X97nW.js → swift-CKmn3JdQ.js} +1 -1
  136. package/dist/web-dist/assets/{systemverilog-gGKga8Gf.js → systemverilog-rn_hwEIB.js} +1 -1
  137. package/dist/web-dist/assets/table-BWy367NZ.js +1 -0
  138. package/dist/web-dist/assets/tables-geLC-tRf.js +16 -0
  139. package/dist/web-dist/assets/tanstack-2cKzRGRb.js +5 -0
  140. package/dist/web-dist/assets/{tcl-BtbeJsUN.js → tcl-Fn2CV_28.js} +1 -1
  141. package/dist/web-dist/assets/{ts.worker-r_qbh1JO.js → ts.worker-BLC4EdqU.js} +18311 -18257
  142. package/dist/web-dist/assets/{tsMode-BgtcNcpl.js → tsMode-C-8HcC0f.js} +4 -4
  143. package/dist/web-dist/assets/{twig-0_nXiuYs.js → twig-CLjUHOwE.js} +1 -1
  144. package/dist/web-dist/assets/{typescript-Cy_CzC_-.js → typescript-BubYBQa0.js} +1 -1
  145. package/dist/web-dist/assets/{typespec-DBO6_WMJ.js → typespec-IO61FhU-.js} +1 -1
  146. package/dist/web-dist/assets/use-database-engine-C1fvJDyS.js +1 -0
  147. package/dist/web-dist/assets/{use-theme-DBhPknw6.js → use-theme-uud1RcFP.js} +1 -1
  148. package/dist/web-dist/assets/utils-D49oYrWW.js +1 -0
  149. package/dist/web-dist/assets/{vb-DFJjBsW2.js → vb-Lm9DdJMK.js} +1 -1
  150. package/dist/web-dist/assets/visualizer-Bd-PB2Fm.js +1 -0
  151. package/dist/web-dist/assets/{wgsl-U3RBM2M0.js → wgsl-CG8088eu.js} +1 -1
  152. package/dist/web-dist/assets/{workers-ClRH6A2w.js → workers-H_G6sPzI.js} +1 -1
  153. package/dist/web-dist/assets/{xml-D11j3J2_.js → xml-Da0DCKCb.js} +1 -1
  154. package/dist/web-dist/assets/{yaml-D7Z_4mnx.js → yaml-C-84Dbfu.js} +1 -1
  155. package/dist/web-dist/index.html +31 -31
  156. package/package.json +22 -22
  157. package/dist/web-dist/assets/_pathlessLayout-CUDS1e28.js +0 -1
  158. package/dist/web-dist/assets/_pathlessLayout-WZkezfN7.js +0 -2
  159. package/dist/web-dist/assets/_queryId-CEJb62Vl.js +0 -1
  160. package/dist/web-dist/assets/_table-6SZEx92j.js +0 -1
  161. package/dist/web-dist/assets/_table-CwyP_2EP.js +0 -1
  162. package/dist/web-dist/assets/bundle-mjs-CZwf2xtr.js +0 -1
  163. package/dist/web-dist/assets/chat-sidebar-DwzCElBd.js +0 -132
  164. package/dist/web-dist/assets/connect-l3LjAClZ.js +0 -1
  165. package/dist/web-dist/assets/constants-CKAehpPm.js +0 -12
  166. package/dist/web-dist/assets/cssMode-G6latsS7.js +0 -1
  167. package/dist/web-dist/assets/database.store-BuqVJMY6.js +0 -57
  168. package/dist/web-dist/assets/dist-Bz0qAN0x.js +0 -2
  169. package/dist/web-dist/assets/dist-Cf0L32Jd.js +0 -1
  170. package/dist/web-dist/assets/editor-1FQrmyyI.css +0 -1
  171. package/dist/web-dist/assets/editor.api-BTIrAcm5.js +0 -865
  172. package/dist/web-dist/assets/format-cell-value-CgUtYv8B.js +0 -1
  173. package/dist/web-dist/assets/highlighted-body-OFNGDK62-t8UIAZOZ.js +0 -1
  174. package/dist/web-dist/assets/icons-DxFtdMXW.js +0 -1
  175. package/dist/web-dist/assets/index-QVi4Lb9U.css +0 -2
  176. package/dist/web-dist/assets/index-WFVurGCI.js +0 -34
  177. package/dist/web-dist/assets/indexes-C3Qddb5L.js +0 -1
  178. package/dist/web-dist/assets/mermaid-GHXKKRXX-D35eppUc.js +0 -1
  179. package/dist/web-dist/assets/middleware-CXk7SlTF.js +0 -1
  180. package/dist/web-dist/assets/module-D_kjbMCc.js +0 -2
  181. package/dist/web-dist/assets/monaco-theme-BnSsSzUH.css +0 -1
  182. package/dist/web-dist/assets/monaco-theme-C2k_taVU.js +0 -64
  183. package/dist/web-dist/assets/preload-helper-DF7hIgef.js +0 -1
  184. package/dist/web-dist/assets/query-runner-f473QQSD.js +0 -17
  185. package/dist/web-dist/assets/radix-ui-CxCv--D1.js +0 -51
  186. package/dist/web-dist/assets/react-DEQ0BgTL.js +0 -1
  187. package/dist/web-dist/assets/react-dom-ITw3Lqwx.js +0 -9
  188. package/dist/web-dist/assets/rolldown-runtime-fzu9RN21.js +0 -1
  189. package/dist/web-dist/assets/runner-NsYjzIZs.js +0 -1
  190. package/dist/web-dist/assets/schema-CE1yGygf.js +0 -1
  191. package/dist/web-dist/assets/schema-rxLBue8Q.js +0 -1
  192. package/dist/web-dist/assets/spinner-CNnB5r0X.js +0 -1
  193. package/dist/web-dist/assets/table-C8WK3uAc.js +0 -1
  194. package/dist/web-dist/assets/tables-D98Kbmcb.js +0 -16
  195. package/dist/web-dist/assets/tanstack-RwHFfmqj.js +0 -8
  196. package/dist/web-dist/assets/use-database-engine-DZZj7-4J.js +0 -1
  197. package/dist/web-dist/assets/utils-EJLOIroS.js +0 -1
  198. package/dist/web-dist/assets/visualizer-CgYlDJ_-.js +0 -1
  199. package/dist/web-dist/assets/vscode-wuSgCuZI.js +0 -1
@@ -1,64 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tsMode-BgtcNcpl.js","assets/editor.api-BTIrAcm5.js","assets/preload-helper-DF7hIgef.js","assets/editor-1FQrmyyI.css","assets/workers-ClRH6A2w.js","assets/freemarker2-mnCFA3xV.js","assets/handlebars-BUcE6Uyy.js","assets/html-BBqcfykD.js","assets/javascript-CuGq5ydO.js","assets/typescript-Cy_CzC_-.js","assets/liquid-DXfHmR66.js","assets/mdx-QI5o45qz.js","assets/python-BvKEpyP9.js","assets/razor-Ceb9S1Rz.js","assets/xml-D11j3J2_.js","assets/yaml-D7Z_4mnx.js","assets/cssMode-G6latsS7.js","assets/lspLanguageFeatures-C7-iyD6G.js","assets/htmlMode-D8je66Rk.js","assets/jsonMode-BgdTmYik.js"])))=>i.map(i=>d[i]);
2
- import{t as U}from"./preload-helper-DF7hIgef.js";import{$ as BD,$a as An,$c as Jn,$d as UD,$i as Vc,$l as qu,$n as zD,$o as jD,$r as pS,$s as sr,$t as qD,$u as Ra,A as Bc,Aa as Ah,Ac as zo,Ad as jo,Ai as $D,Al as im,An as Ls,Ao as en,Ar as Oe,As as KD,At as GD,Au as Uc,B as ZD,Ba as ye,Bc as jd,Bd as XD,Bi as YD,Bl as JD,Bn as fS,Bo as QD,Br as mS,Bs as Li,Bt as _S,Bu as $u,C as e0,Ca as t0,Cc as zc,Cd as i0,Ci as K_,Cl as nm,Cn as Di,Co as vS,Cr as G_,Cs as Vi,Ct as sm,Cu as Yt,D as Z_,Da as n0,Dc as kt,Dd as s0,Di as bS,Dl as o0,Dn as om,Do as r0,Dr as a0,Ds as l0,Dt as CS,Du as d0,E as xi,Ea as c0,Ec as h0,Ed as L,Ei as Fh,El as _t,En as u0,Eo as He,Er as g0,Es as X_,Et as SS,Eu as wS,F as or,Fa as to,Fc as Qr,Fd as Y_,Fi as Ta,Fl as pt,Fn as tn,Fo as p0,Fr as Et,Fs as Ds,Ft as f0,Fu as y,G as yS,Ga as xS,Gc as m0,Gd as rm,Gi as IS,Gl as LS,Gn as DS,Go as mo,Gr as _0,Gs as ln,Gt as ES,Gu as J_,H as Ze,Ha as am,Hc as v0,Hd as lm,Hi as RS,Hl as dm,Hn as qd,Ho as Zs,Hr as TS,Hs as b0,Ht as cm,Hu as NS,I as C0,Ia as on,Ic as S0,Id as hm,Ii as kS,Il as gs,In as w0,Io as y0,Ir as jc,Is as lt,It as Q_,Iu as B,J as x0,Ja as ev,Jc as I0,Jd as we,Ji as L0,Jl as tv,Jn as PS,Jo as OS,Jr as al,Js as ve,Jt as iv,Ju as ea,K as MS,Ka as D0,Kc as ls,Kd as Ln,Ki as nv,Kl as Sr,Kn as E0,Ko as AS,Kr as FS,Ks as R0,Kt as T0,Ku as N0,L as sv,La as um,Lc as es,Ld as HS,Li as k0,Ll as gm,Ln as P0,Lo as O0,Lr as Nl,Ls as Es,Lt as qo,Lu as De,M as M0,Ma as A0,Mc as Ht,Md as F0,Mi as hd,Ml as at,Mn as _o,Mo as WS,Mr as Yo,Ms as H0,Mt as W0,Mu as V0,N as B0,Na as U0,Nc as Na,Nd as Dn,Ni as z0,Nl as ll,Nn as j0,No as q0,Nr as $0,Ns as dl,Nt as VS,Nu as V,O as qc,Oa as pm,Oc as K0,Od as G0,Oi as Z0,Ol as X0,On as Y0,Oo as ud,Or as $c,Os as ps,Ot as J0,Ou as ds,P as Q0,Pa as eE,Pc as Jt,Pd as tE,Pi as ov,Pl as iE,Pn as Kc,Po as nE,Pr as sE,Ps as Rn,Pt as rv,Pu as te,Q as Gc,Qa as oE,Qc as av,Qd as Ku,Qi as lv,Ql as ka,Qn as rE,Qo as Zc,Qr as aE,Qs as pe,Qt as BS,Qu as fm,R as mm,Ra as dt,Rc as lE,Rd as ta,Ri as US,Rl as rr,Rn as dE,Ro as je,Rr as cE,Rs as $,Rt as ar,Ru as Jo,S as _m,Sa as hE,Sc as uE,Sd as vm,Si as dv,Sl as gE,Sn as bm,So as zS,Sr as Ar,Ss as $d,St as vt,Su as pE,T as Be,Ta as fE,Tc as cl,Td as m,Ti as mE,Tl as gd,Tn as _E,To as wn,Tr as io,Ts as Cm,Tt as jS,Tu as Gu,U as qS,Ua as H,Uc as vE,Ud as $S,Ui as Sm,Ul as wm,Un as bE,Uo as nn,Ur as ym,Us as fe,Ut as CE,Uu as ue,Va as yn,Vc as cv,Vd as SE,Vi as KS,Vl as Xc,Vn as Pa,Vo as Zu,Vr as GS,Vs as wE,Vt as fs,Vu as et,W as hl,Wa as nt,Wc as wi,Wd as gt,Wi as ZS,Wl as XS,Wn as Oa,Wo as yE,Wr as xE,Ws as ni,Wt as IE,Wu as st,X as wr,Xa as Rs,Xc as xm,Xd as LE,Xi as DE,Xl as EE,Xn as RE,Xo as ct,Xr as pd,Xs as Re,Xt as TE,Xu as Tn,Y as NE,Ya as ul,Yc as Ts,Yd as tt,Yi as kE,Yl as PE,Yn as OE,Yo as hv,Yr as it,Ys as oe,Yt as YS,Z as JS,Za as uv,Zc as ME,Zd as QS,Zi as ew,Zl as AE,Zn as FE,Zo as HE,Zr as S,Zs as ht,Zt as gv,Zu as pv,_ as tw,_a as Xu,_c as de,_d as WE,_i as VE,_l as fv,_n as Yu,_o as fd,_r as BE,_s as UE,_t as lr,_u as Ju,a as mv,aa as zE,ac as $e,ad as O,af as Bi,ai as Im,al as Qu,an as jE,ao as yr,ar as gl,as as kl,at as Ge,au as qE,b as dr,ba as $E,bc as z,bd as xr,bi as iw,bl as KE,bn as GE,bo as Nn,br as ZE,bs as XE,bt as _v,bu as vv,c as bv,ca as YE,cc as nw,cd as JE,cf as Qt,ci as Hh,cl as QE,cn as eR,co as Fr,cr as tR,cs as Mt,ct as pl,cu as ba,d as iR,da as nR,dc as Le,dd as Lm,df as sR,di as oR,dl as Dm,dn as Em,do as rR,dr as sw,ds as k,dt as ms,du as Rm,ea as $o,ec as Ma,ed as Q,ef as aR,ei as Ca,el as Dt,en as eg,eo as ci,er as lR,es as Tt,et as ow,eu as Tm,f as dR,fa as fl,fc as Cn,fd as ke,ff as Cv,fi as cR,fl as Sv,fn as Nm,fo as hR,fr as km,fs as G,ft as uR,fu as gR,g as pR,ga as fR,gc as Wh,gd as tg,gi as mR,gl as Yc,gn as _R,go as me,gr as vR,gs as Jc,gt as bR,gu as Kd,h as no,ha as md,hc as Vh,hd as ml,hi as CR,hl as SR,hn as Ri,ho as wR,hr as wv,hs as Ut,ht as yR,hu as Qc,i as ts,ia as Gd,ic as Kt,id as rw,if as xR,ii as IR,il as LR,in as aw,io as cr,ir as DR,is as lw,it as Ir,iu as ER,j as Zd,ja as dw,jc as vi,jd as Se,ji as cw,jl as _s,jn as RR,jo as rt,jr as Hr,js as TR,jt as NR,ju as kR,k as eh,ka as hw,kc as PR,kd as Pm,ki as _l,kl as sn,kn as OR,ko as MR,kr as uw,ks as AR,kt as FR,ku as gw,l as K,la as pw,lc as HR,ld as fw,lf as WR,li as vl,ll as bl,ln as ti,lo as mw,lr as VR,ls as Om,lt as _w,lu as kn,m as vw,ma as Mm,mc as BR,md as bw,mi as Xd,ml as UR,mn as zR,mo as Z,mr as Yd,ms as jR,mt as yv,mu as Cw,na as Ys,nc as qR,nd as xv,nf as so,ni as hr,nl as $R,nn as Ce,no as Sw,nr as ww,ns as Fn,nt as ig,nu as yw,oa as KR,oc as ie,od as A,of as Iv,oi as Cl,ol as Fi,on as xw,oo as th,or as ih,os as M,ot as Am,ou as Lv,p as GR,pa as ng,pc as Ae,pd as cs,pf as Jd,pi as ZR,pl as Yi,pn as Iw,po as XR,pr as se,ps as ce,pt as YR,pu as _d,q as JR,qa as QR,qc as Dv,qd as Hn,qi as eT,ql as Fm,qn as nh,qo as Qd,qr as It,qs as N,qt as tT,qu as sh,ra as iT,rc as si,rd as hi,rf as nT,ri as Bh,rl as Ne,rn as sT,ro as Lw,rr as oT,rs as xe,rt as rT,ru as aT,sa as lT,sc as dn,sd as Je,sf as dT,si as oh,sl as he,sn as rh,so as cT,sr as ui,ss as gi,st as hT,su as Ev,t as Aa,ta as Pl,tc as ec,td as qe,tf as Ns,ti as Dw,tl as uT,tn as Hm,to as vs,tr as gT,ts as Wn,tt as pT,tu as yt,u as Ew,ua as fT,uc as W,ud as Nt,uf as oo,ui as Rw,ul as T,un as Fa,uo as mT,ur as Wm,us as ah,ut as _T,uu as vT,v as Tw,va as bT,vc as CT,vd as ST,vi as wT,vl as Rv,vn as yT,vo as ur,vr as xT,vs as Pt,vt as IT,vu as Lr,w as LT,wa as Tv,wc as tc,wd as DT,wi as Vm,wl as Nw,wn as ET,wo as Nv,wr as RT,ws as TT,wt as NT,wu as kT,x as kw,xa as PT,xc as di,xd as OT,xi as MT,xl as AT,xn as Ti,xo as ei,xr as FT,xs as HT,xt as lh,xu as is,y as Pw,ya as WT,yc as bs,yd as Pn,yi as Ow,yl as VT,yn as BT,yo as UT,yr as zT,ys as jT,yt as xn,yu as li,z as qT,za as $T,zc as q,zd as KT,zi as Mw,zl as GT,zn as Lt,zo as Aw,zr as ZT,zs as ro,zt as XT,zu as Uh}from"./editor.api-BTIrAcm5.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"db-studio@2.1.0"};var e=new n.Error().stack;e&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[e]="04143ed1-1f8b-430b-99de-35ffe1957bb3",n._sentryDebugIdIdentifier="sentry-dbid-04143ed1-1f8b-430b-99de-35ffe1957bb3")}catch{}})();var YT=class extends lt{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:L(101,"Toggle Collapse Unchanged Regions"),icon:V.map,toggled:N.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:N.has("isInDiffEditor"),menu:{when:N.has("isInDiffEditor"),id:$.EditorTitle,order:22,group:"navigation"}})}run(n,...e){const t=n.get(xe),i=!t.getValue("diffEditor.hideUnchangedRegions.enabled");t.updateValue("diffEditor.hideUnchangedRegions.enabled",i)}},Fw=class extends lt{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:L(102,"Toggle Show Moved Code Blocks"),precondition:N.has("isInDiffEditor")})}run(n,...e){const t=n.get(xe),i=!t.getValue("diffEditor.experimental.showMoves");t.updateValue("diffEditor.experimental.showMoves",i)}},Hw=class extends lt{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:L(103,"Toggle Use Inline View When Space Is Limited"),precondition:N.has("isInDiffEditor")})}run(n,...e){const t=n.get(xe),i=!t.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");t.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",i)}},Sl=L(104,"Diff Editor"),JT=class extends gi{constructor(){super({id:"diffEditor.switchSide",title:L(105,"Switch Side"),icon:V.arrowSwap,precondition:N.has("isInDiffEditor"),f1:!0,category:Sl})}runEditorCommand(n,e,t){const i=vo(n);if(i instanceof dr){if(t&&t.dryRun)return{destinationSelection:i.mapToOtherSide().destinationSelection};i.switchSide()}}},QT=class extends gi{constructor(){super({id:"diffEditor.exitCompareMove",title:L(106,"Exit Compare Move"),icon:V.close,precondition:S.comparingMovedCode,f1:!1,category:Sl,keybinding:{weight:1e4,primary:9}})}runEditorCommand(n,e,...t){const i=vo(n);i instanceof dr&&i.exitCompareMove()}},e1=class extends gi{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:L(107,"Collapse All Unchanged Regions"),icon:V.fold,precondition:N.has("isInDiffEditor"),f1:!0,category:Sl})}runEditorCommand(n,e,...t){const i=vo(n);i instanceof dr&&i.collapseAllUnchangedRegions()}},t1=class extends gi{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:L(108,"Show All Unchanged Regions"),icon:V.unfold,precondition:N.has("isInDiffEditor"),f1:!0,category:Sl})}runEditorCommand(n,e,...t){const i=vo(n);i instanceof dr&&i.showAllUnchangedRegions()}},sg=class extends lt{constructor(){super({id:"diffEditor.revert",title:L(109,"Revert"),f1:!0,category:Sl,precondition:N.has("isInDiffEditor")})}run(n,e){return e?this.runViaToolbarContext(n,e):this.runViaCursorOrSelection(n)}runViaCursorOrSelection(n){const e=vo(n);e instanceof dr&&e.revertFocusedRangeMappings()}runViaToolbarContext(n,e){const t=i1(n,e.originalUri,e.modifiedUri);t instanceof dr&&t.revertRangeMappings(e.mapping.innerChanges??[])}},Ww=L(110,"Accessible Diff Viewer"),Bm=class Vw extends lt{static{this.id="editor.action.accessibleDiffViewer.next"}constructor(){super({id:Vw.id,title:L(111,"Go to Next Difference"),category:Ww,precondition:N.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){vo(e)?.accessibleDiffViewerNext()}},Bw=class Uw extends lt{static{this.id="editor.action.accessibleDiffViewer.prev"}constructor(){super({id:Uw.id,title:L(112,"Go to Previous Difference"),category:Ww,precondition:N.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){vo(e)?.accessibleDiffViewerPrev()}};function i1(n,e,t){return n.get($e).listDiffEditors().find(i=>{const s=i.getModifiedEditor(),o=i.getOriginalEditor();return s&&s.getModel()?.uri.toString()===t.toString()&&o&&o.getModel()?.uri.toString()===e.toString()})||null}function vo(n){const e=n.get($e).listDiffEditors(),t=zc();if(t){for(const i of e)if(i.getContainerDomNode().contains(t))return i}return null}fe(YT);fe(Fw);fe(Hw);Li.appendMenuItem($.EditorTitle,{command:{id:new Hw().desc.id,title:m(135,"Use Inline View When Space Is Limited"),toggled:N.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:N.has("isInDiffEditor")},order:11,group:"1_diff",when:N.and(S.diffEditorRenderSideBySideInlineBreakpointReached,N.has("isInDiffEditor"))});Li.appendMenuItem($.EditorTitle,{command:{id:new Fw().desc.id,title:m(136,"Show Moved Code Blocks"),icon:V.move,toggled:R0.create("config.diffEditor.experimental.showMoves",!0),precondition:N.has("isInDiffEditor")},order:10,group:"1_diff",when:N.has("isInDiffEditor")});fe(sg);for(const n of[{icon:V.arrowRight,key:S.diffEditorInlineMode.toNegated()},{icon:V.discard,key:S.diffEditorInlineMode}])Li.appendMenuItem($.DiffEditorHunkToolbar,{command:{id:new sg().desc.id,title:m(137,"Revert Block"),icon:n.icon},when:N.and(S.diffEditorModifiedWritable,n.key),order:5,group:"primary"}),Li.appendMenuItem($.DiffEditorSelectionToolbar,{command:{id:new sg().desc.id,title:m(138,"Revert Selection"),icon:n.icon},when:N.and(S.diffEditorModifiedWritable,n.key),order:5,group:"primary"});fe(JT);fe(QT);fe(e1);fe(t1);Li.appendMenuItem($.EditorTitle,{command:{id:Bm.id,title:m(139,"Open Accessible Diff Viewer"),precondition:N.has("isInDiffEditor")},order:10,group:"2_diff",when:N.and(S.accessibleDiffViewerVisible.negate(),N.has("isInDiffEditor"))});Re.registerCommandAlias("editor.action.diffReview.next",Bm.id);fe(Bm);Re.registerCommandAlias("editor.action.diffReview.prev",Bw.id);fe(Bw);var n1=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},s1=function(n,e){return function(t,i){e(t,i,n)}},og,dh=new oe("selectionAnchorSet",!1),Cs=class{static{og=this}static{this.ID="editor.contrib.selectionAnchorController"}static get(e){return e.getContribution(og.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=dh.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(te.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new Lt().appendText(m(834,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),ci(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(te.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()}};Cs=og=n1([s1(1,ve)],Cs);var o1=class extends M{constructor(){super({id:"editor.action.setSelectionAnchor",label:L(836,"Set Selection Anchor"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2080),weight:100}})}async run(n,e){Cs.get(e)?.setSelectionAnchor()}},r1=class extends M{constructor(){super({id:"editor.action.goToSelectionAnchor",label:L(837,"Go to Selection Anchor"),precondition:dh})}async run(n,e){Cs.get(e)?.goToSelectionAnchor()}},a1=class extends M{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:L(838,"Select from Anchor to Cursor"),precondition:dh,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2089),weight:100}})}async run(n,e){Cs.get(e)?.selectFromAnchorToCursor()}},l1=class extends M{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:L(839,"Cancel Selection Anchor"),precondition:dh,kbOpts:{kbExpr:S.editorTextFocus,primary:9,weight:100}})}async run(n,e){Cs.get(e)?.cancelSelectionAnchor()}};ce(Cs.ID,Cs,4);k(o1);k(r1);k(a1);k(l1);var d1=H("editorOverviewRuler.bracketMatchForeground","#A0A0A0",m(840,"Overview ruler marker color for matching brackets.")),c1=class extends M{constructor(){super({id:"editor.action.jumpToBracket",label:L(842,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:3165,weight:100}})}run(n,e){Ha.get(e)?.jumpToBracket()}},h1=class extends M{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(n,e,t){let i=!0;t&&t.selectBrackets===!1&&(i=!1),Ha.get(e)?.selectToBracket(i)}},u1=class extends M{constructor(){super({id:"editor.action.removeBrackets",label:L(845,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(n,e){Ha.get(e)?.removeBrackets(this.id)}},g1=class{constructor(n,e,t){this.position=n,this.brackets=e,this.options=t}},Ha=class vd extends O{static{this.ID="editor.contrib.bracketMatchingController"}static get(e){return e.getContribution(vd.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new at(()=>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 s=i.getStartPosition(),o=e.bracketPairs.matchBracket(s);let r=null;if(o)o[0].containsPosition(s)&&!o[1].containsPosition(s)?r=o[1].getStartPosition():o[1].containsPosition(s)&&(r=o[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(s);if(a)r=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(s);l&&l.range&&(r=l.range.getStartPosition())}}return r?new te(r.lineNumber,r.column,r.lineNumber,r.column):new te(s.lineNumber,s.column,s.lineNumber,s.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(s=>{const o=s.getStartPosition();let r=t.bracketPairs.matchBracket(o);if(!r&&(r=t.bracketPairs.findEnclosingBrackets(o),!r)){const d=t.bracketPairs.findNextBracket(o);d&&d.range&&(r=t.bracketPairs.matchBracket(d.range.getStartPosition()))}let a=null,l=null;if(r){r.sort(y.compareRangesUsingStarts);const[d,c]=r;if(a=e?d.getStartPosition():d.getEndPosition(),l=e?c.getEndPosition():c.getStartPosition(),c.containsPosition(o)){const h=a;a=l,l=h}}a&&l&&i.push(new te(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 s=i.getPosition();let o=t.bracketPairs.matchBracket(s);o||(o=t.bracketPairs.findEnclosingBrackets(s)),o&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:o[0],text:""},{range:o[1],text:""}]),this._editor.pushUndoStop())})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=se.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:it(d1),position:nn.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=se.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const s=i.brackets;s&&(e[t++]={range:s[0],options:i.options},e[t++]={range:s[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 s=[];this._lastVersionId===i&&(s=this._lastBracketsData);const o=[];let r=0;for(let h=0,u=e.length;h<u;h++){const g=e[h];g.isEmpty()&&(o[r++]=g.getStartPosition())}o.length>1&&o.sort(B.compare);const a=[];let l=0,d=0;const c=s.length;for(let h=0,u=o.length;h<u;h++){const g=o[h];for(;d<c&&s[d].position.isBefore(g);)d++;if(d<c&&s[d].position.equals(g))a[l++]=s[d];else{let p=t.bracketPairs.matchBracket(g,20),f=vd._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!p&&this._matchBrackets==="always"&&(p=t.bracketPairs.findEnclosingBrackets(g,20),f=vd._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[l++]=new g1(g,p,f)}}this._lastBracketsData=a,this._lastVersionId=i}};ce(Ha.ID,Ha,1);k(h1);k(c1);k(u1);Li.appendMenuItem($.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:m(841,"Go to &&Bracket")},order:2});al((n,e)=>{const t=n.getColor(xE);t&&e.addRule(`.monaco-editor .bracket-match-inline { color: ${t} !important; }`)});var p1=class{constructor(n,e){this._selection=n,this._isMovingLeft=e}getEditOperations(n,e){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const t=this._selection.startLineNumber,i=this._selection.startColumn,s=this._selection.endColumn;if(!(this._isMovingLeft&&i===1)&&!(!this._isMovingLeft&&s===n.getLineMaxColumn(t)))if(this._isMovingLeft){const o=new y(t,i-1,t,i),r=n.getValueInRange(o);e.addEditOperation(o,null),e.addEditOperation(new y(t,s,t,s),r)}else{const o=new y(t,s,t,s+1),r=n.getValueInRange(o);e.addEditOperation(o,null),e.addEditOperation(new y(t,i,t,i),r)}}computeCursorState(n,e){return this._isMovingLeft?new te(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new te(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}},zw=class extends M{constructor(n,e){super(e),this.left=n}run(n,e){if(!e.hasModel())return;const t=[],i=e.getSelections();for(const s of i)t.push(new p1(s,this.left));e.pushUndoStop(),e.executeCommands(this.id,t),e.pushUndoStop()}},f1=class extends zw{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:L(846,"Move Selected Text Left"),precondition:S.writable})}},m1=class extends zw{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:L(847,"Move Selected Text Right"),precondition:S.writable})}};k(f1);k(m1);var _1=class extends M{constructor(){super({id:"editor.action.transposeLetters",label:L(848,"Transpose Letters"),precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(n,e){if(!e.hasModel())return;const t=e.getModel(),i=[],s=e.getSelections();for(const o of s){if(!o.isEmpty())continue;const r=o.startLineNumber,a=o.startColumn,l=t.getLineMaxColumn(r);if(r===1&&(a===1||a===2&&l===2))continue;const d=a===l?o.getPosition():Hh.rightPosition(t,o.getPosition().lineNumber,o.getPosition().column),c=Hh.leftPosition(t,d),h=Hh.leftPosition(t,c),u=t.getValueInRange(y.fromPositions(h,c)),g=t.getValueInRange(y.fromPositions(c,d)),p=y.fromPositions(h,d);i.push(new vl(p,g+u))}i.length>0&&(e.pushUndoStop(),e.executeCommands(this.id,i),e.pushUndoStop())}};k(_1);var Ve=class Fo{static{this.sep="."}static{this.None=new Fo("@@none@@")}static{this.Empty=new Fo("")}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+Fo.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Fo((this.value?[this.value,...e]:e).join(Fo.sep))}},v1=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},b1=function(n,e){return function(t,i){e(t,i,n)}},C1=se.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:" ",inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),S1=class jw extends O{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(e,t,i,s,o){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=o,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=W(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=W("span.icon");this.domNode.append(t),t.classList.add(...pe.asClassNameArray(V.loading),"codicon-modifier-spin");const i=()=>{const s=this.editor.getOption(75);this.domNode.style.height=`${s}px`,this.domNode.style.width=`${Math.ceil(.8*s)}px`};i(),this._register(this.editor.onDidChangeConfiguration(s=>{(s.hasChanged(61)||s.hasChanged(75))&&i()})),this._register(de(this.domNode,Ae.CLICK,s=>{this.delegate.cancel()}))}getId(){return jw.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)}},ic=class extends O{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Je),this._currentWidget=this._register(new Je),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,i,s,o){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=gs(()=>{const a=y.fromPositions(e);this._currentDecorations.set([{range:a,options:C1}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(S1,this.id,this._editor,a,t,s))},o??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()}};ic=v1([b1(2,ie)],ic);var w1=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},kv=function(n,e){return function(t,i){e(t,i,n)}},bd,qt=class{static{bd=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new oe("messageVisible",!1,m(1333,"Whether the editor is currently showing an inline message"))}static get(e){return e.getContribution(bd.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Je,this._messageListeners=new A,this._mouseOverMessage=!1,this._editor=e,this._visible=bd.MESSAGE_VISIBLE.bindTo(t)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){if(ci(qd(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),qd(e)){const s=this._messageListeners.add(Kc(e,{actionHandler:(o,r)=>{this.closeMessage(),RR(this._openerService,o,r.isTrusted)}}));this._messageWidget.value=new zh(this._editor,t,s.element)}else this._messageWidget.value=new zh(this._editor,t,e);this._messageListeners.add(qe.debounce(this._editor.onDidBlurEditorText,(s,o)=>o,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&S0(zc(),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(de(this._messageWidget.value.getDomNode(),Ae.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(de(this._messageWidget.value.getDomNode(),Ae.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(s=>{s.target.position&&(i?i.containsPosition(s.target.position)||this.closeMessage():i=new y(t.lineNumber-3,1,s.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(zh.fadeOut(this._messageWidget.value))}};qt=bd=w1([kv(1,ve),kv(2,_o)],qt);var y1=Mt.bindToContribution(qt.get);G(new y1({id:"leaveEditorMessage",precondition:qt.MESSAGE_VISIBLE,handler:n=>n.closeMessage(),kbOpts:{weight:130,primary:9}}));var zh=class{static fadeOut(n){const e=()=>{n.dispose(),clearTimeout(t),n.getDomNode().removeEventListener("animationend",e)},t=setTimeout(e,110);return n.getDomNode().addEventListener("animationend",e),n.getDomNode().classList.add("fadeOut"),{dispose:e}}constructor(n,{lineNumber:e,column:t},i){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=n,this._editor.revealLinesInCenterIfOutsideViewport(e,e,0),this._position={lineNumber:e,column:t},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 o=document.createElement("div");typeof i=="string"?(o.classList.add("message"),o.textContent=i):(i.classList.add("message"),o.appendChild(i)),this._domNode.appendChild(o);const r=document.createElement("div");r.classList.add("anchor","below"),this._domNode.appendChild(r),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(n){this._domNode.classList.toggle("below",n===2)}};ce(qt.ID,qt,4);var Um=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Wa=function(n,e){return function(t,i){e(t,i,n)}},zm=class{constructor(n){this.copyMimeTypes=[],this.kind=n,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(n,e,t,i,s){const o=await this.getEdit(t,s);if(o)return{edits:[{insertText:o.insertText,title:o.title,kind:o.kind,handledMimeType:o.handledMimeType,yieldTo:o.yieldTo}],dispose(){}}}async provideDocumentDropEdits(n,e,t,i){const s=await this.getEdit(t,i);if(s)return{edits:[{insertText:s.insertText,title:s.title,kind:s.kind,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}],dispose(){}}}},Va=class qw extends zm{static{this.id="text"}constructor(){super(Ve.Empty.append("text","plain")),this.id=qw.id,this.dropMimeTypes=[Tt.text],this.pasteMimeTypes=[Tt.text]}async getEdit(e,t){const i=e.get(Tt.text);if(!i||e.has(Tt.uriList))return;const s=await i.asString();return{handledMimeType:Tt.text,title:m(965,"Insert Plain Text"),insertText:s,kind:this.kind}}},$w=class extends zm{constructor(){super(Ve.Empty.append("uri","path","absolute")),this.dropMimeTypes=[Tt.uriList],this.pasteMimeTypes=[Tt.uriList]}async getEdit(n,e){const t=await Kw(n);if(!t.length||e.isCancellationRequested)return;let i=0;const s=t.map(({uri:r,originalText:a})=>r.scheme===_t.file?r.fsPath:(i++,a)).join(" ");let o;return i>0?o=t.length>1?m(966,"Insert Uris"):m(967,"Insert Uri"):o=t.length>1?m(968,"Insert Paths"):m(969,"Insert Path"),{handledMimeType:Tt.uriList,insertText:s,title:o,kind:this.kind}}},nc=class extends zm{constructor(e){super(Ve.Empty.append("uri","path","relative")),this._workspaceContextService=e,this.dropMimeTypes=[Tt.uriList],this.pasteMimeTypes=[Tt.uriList]}async getEdit(e,t){const i=await Kw(e);if(!i.length||t.isCancellationRequested)return;const s=Ns(i.map(({uri:o})=>{const r=this._workspaceContextService.getWorkspaceFolder(o);return r?TR(r.uri,o):void 0}));if(s.length)return{handledMimeType:Tt.uriList,insertText:s.join(" "),title:i.length>1?m(970,"Insert Relative Paths"):m(971,"Insert Relative Path"),kind:this.kind}}};nc=Um([Wa(0,ms)],nc);var x1=class{constructor(){this.kind=new Ve("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Tt.text}]}async provideDocumentPasteEdits(n,e,t,i,s){if(i.triggerKind!==Ju.PasteAs&&!i.only?.contains(this.kind))return;const o=await t.get("text/html")?.asString();if(!(!o||s.isCancellationRequested))return{dispose(){},edits:[{insertText:o,yieldTo:this._yieldTo,title:m(972,"Insert HTML"),kind:this.kind}]}}};async function Kw(n){const e=n.get(Tt.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const s of Ow.parse(t))try{i.push({uri:De.parse(s),originalText:s})}catch{}return i}var Js={scheme:"*",hasAccessToAllModels:!0},rg=class extends O{constructor(e,t){super(),this._register(e.documentDropEditProvider.register(Js,new Va)),this._register(e.documentDropEditProvider.register(Js,new $w)),this._register(e.documentDropEditProvider.register(Js,new nc(t)))}};rg=Um([Wa(0,Z),Wa(1,ms)],rg);var ag=class extends O{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register(Js,new Va)),this._register(e.documentPasteEditProvider.register(Js,new $w)),this._register(e.documentPasteEditProvider.register(Js,new nc(t))),this._register(e.documentPasteEditProvider.register(Js,new x1))}};ag=Um([Wa(0,Z),Wa(1,ms)],ag);var I1=class $i{constructor(){this.value="",this.pos=0}static{this._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13}}static isDigitCharacter(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),s;if(s=$i._table[i],typeof s=="number")return this.pos+=1,{type:s,pos:e,len:1};if($i.isDigitCharacter(i)){s=8;do t+=1,i=this.value.charCodeAt(e+t);while($i.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}if($i.isVariableCharacter(i)){s=9;do i=this.value.charCodeAt(e+ ++t);while($i.isVariableCharacter(i)||$i.isDigitCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}s=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof $i._table[i]>"u"&&!$i.isDigitCharacter(i)&&!$i.isVariableCharacter(i));return this.pos+=t,{type:s,pos:e,len:t}}},Dr=class{constructor(){this._children=[]}appendChild(n){return n instanceof jt&&this._children[this._children.length-1]instanceof jt?this._children[this._children.length-1].value+=n.value:(n.parent=this,this._children.push(n)),this}replace(n,e){const{parent:t}=n,i=t.children.indexOf(n),s=t.children.slice(0);s.splice(i,1,...e),t._children=s,(function o(r,a){for(const l of r)l.parent=a,o(l.children,l)})(e,t)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let n=this;for(;;){if(!n)return;if(n instanceof jm)return n;n=n.parent}}toString(){return this.children.reduce((n,e)=>n+e.toString(),"")}len(){return 0}},jt=class Gw extends Dr{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new Gw(this.value)}},Zw=class extends Dr{},Ai=class Xw extends Zw{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 ch?this._children[0]:void 0}clone(){const e=new Xw(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}},ch=class Yw extends Dr{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof jt&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Yw;return this.options.forEach(e.appendChild,e),e}},L1=class Jw extends Dr{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,s=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(o=>o instanceof vn&&!!o.elseValue)&&(s=this._replace([])),s}_replace(e){let t="";for(const i of this._children)if(i instanceof vn){let s=e[i.index]||"";s=i.resolve(s),t+=s}else t+=i.toString();return t}toString(){return""}clone(){const e=new Jw;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}},vn=class Qw extends Dr{constructor(e,t,i,s){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=s}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 t=e.trim().replace(/^_+|_+$/g,""),i=t.match(/\p{Lu}{2,}(?=\p{Lu}\p{Ll}+[0-9]*|[\s_-]|$)|\p{Lu}?\p{Ll}+[0-9]*|\p{Lu}(?=\p{Lu}\p{Ll})|\p{Lu}(?=[\s_-]|$)|[0-9]+/gu);return i?i.map(s=>s.toLowerCase()).join("-"):t.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,s)=>s===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toSnakeCase(e){return e.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new Qw(this.index,this.shorthandName,this.ifValue,this.elseValue)}},Ba=class ey extends Zw{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 jt(t)],!0):!1}clone(){const e=new ey(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}};function Pv(n,e){const t=[...n];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}var jm=class ty extends Dr{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof Ai&&(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(s=>s===e?(i=!0,!1):(t+=s.len(),!0)),i?t:-1}fullLen(e){let t=0;return Pv([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof Ai&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof Ba&&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 ty;return e._children=this.children.map(t=>t.clone()),e}walk(e){Pv(this.children,e)}},ao=class{constructor(){this._scanner=new I1,this._token={type:14,pos:0,len:0}}static escape(n){return n.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(n){return/\${?CLIPBOARD/.test(n)}parse(n,e,t){const i=new jm;return this.parseFragment(n,i),this.ensureFinalTabstop(i,t??!1,e??!1),i}parseFragment(n,e){const t=e.children.length;for(this._scanner.text(n),this._token=this._scanner.next();this._parse(e););const i=new Map,s=[];e.walk(a=>(a instanceof Ai&&(a.isFinalTabstop?i.set(0,void 0):!i.has(a.index)&&a.children.length>0?i.set(a.index,a.children):s.push(a)),!0));const o=(a,l)=>{const d=i.get(a.index);if(!d)return;const c=new Ai(a.index);c.transform=a.transform;for(const h of d){const u=h.clone();c.appendChild(u),u instanceof Ai&&i.has(u.index)&&!l.has(u.index)&&(l.add(u.index),o(u,l),l.delete(u.index))}e.replace(a,[c])},r=new Set;for(const a of s)o(a,r);return e.children.slice(t)}ensureFinalTabstop(n,e,t){(e||t&&n.placeholders.length>0)&&(n.placeholders.find(i=>i.index===0)||n.appendChild(new Ai(0)))}_accept(n,e){if(n===void 0||this._token.type===n){const t=e?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),t}return!1}_backTo(n){return this._scanner.pos=n.pos+n.len,this._token=n,!1}_until(n){const e=this._token;for(;this._token.type!==n;){if(this._token.type===14)return!1;if(this._token.type===5){const i=this._scanner.next();if(i.type!==0&&i.type!==4&&i.type!==5)return!1}this._token=this._scanner.next()}const t=this._scanner.value.substring(e.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),t}_parse(n){return this._parseEscaped(n)||this._parseTabstopOrVariableName(n)||this._parseComplexPlaceholder(n)||this._parseComplexVariable(n)||this._parseAnything(n)}_parseEscaped(n){let e;return(e=this._accept(5,!0))?(e=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||e,n.appendChild(new jt(e)),!0):!1}_parseTabstopOrVariableName(n){let e;const t=this._token;return this._accept(0)&&(e=this._accept(9,!0)||this._accept(8,!0))?(n.appendChild(/^\d+$/.test(e)?new Ai(Number(e)):new Ba(e)),!0):this._backTo(t)}_parseComplexPlaceholder(n){let e;const t=this._token;if(!(this._accept(0)&&this._accept(3)&&(e=this._accept(8,!0))))return this._backTo(t);const i=new Ai(Number(e));if(this._accept(1))for(;;){if(this._accept(4))return n.appendChild(i),!0;if(!this._parse(i))return n.appendChild(new jt("${"+e+":")),i.children.forEach(n.appendChild,n),!0}else if(i.index>0&&this._accept(7)){const s=new ch;for(;;){if(this._parseChoiceElement(s)){if(this._accept(2))continue;if(this._accept(7)&&(i.appendChild(s),this._accept(4)))return n.appendChild(i),!0}return this._backTo(t),!1}}else return this._accept(6)?this._parseTransform(i)?(n.appendChild(i),!0):(this._backTo(t),!1):this._accept(4)?(n.appendChild(i),!0):this._backTo(t)}_parseChoiceElement(n){const e=this._token,t=[];for(;!(this._token.type===2||this._token.type===7);){let i;if((i=this._accept(5,!0))?i=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||i:i=this._accept(void 0,!0),!i)return this._backTo(e),!1;t.push(i)}return t.length===0?(this._backTo(e),!1):(n.appendChild(new jt(t.join(""))),!0)}_parseComplexVariable(n){let e;const t=this._token;if(!(this._accept(0)&&this._accept(3)&&(e=this._accept(9,!0))))return this._backTo(t);const i=new Ba(e);if(this._accept(1))for(;;){if(this._accept(4))return n.appendChild(i),!0;if(!this._parse(i))return n.appendChild(new jt("${"+e+":")),i.children.forEach(n.appendChild,n),!0}else return this._accept(6)?this._parseTransform(i)?(n.appendChild(i),!0):(this._backTo(t),!1):this._accept(4)?(n.appendChild(i),!0):this._backTo(t)}_parseTransform(n){const e=new L1;let t="",i="";for(;!this._accept(6);){let s;if(s=this._accept(5,!0)){s=this._accept(6,!0)||s,t+=s;continue}if(this._token.type!==14){t+=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,e.appendChild(new jt(s));continue}if(!(this._parseFormatString(e)||this._parseAnything(e)))return!1}for(;!this._accept(4);){if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}try{e.regexp=new RegExp(t,i)}catch{return!1}return n.transform=e,!0}_parseFormatString(n){const e=this._token;if(!this._accept(0))return!1;let t=!1;this._accept(3)&&(t=!0);const i=this._accept(8,!0);if(i)if(t){if(this._accept(4))return n.appendChild(new vn(Number(i))),!0;if(!this._accept(1))return this._backTo(e),!1}else return n.appendChild(new vn(Number(i))),!0;else return this._backTo(e),!1;if(this._accept(6)){const s=this._accept(9,!0);return!s||!this._accept(4)?(this._backTo(e),!1):(n.appendChild(new vn(Number(i),s)),!0)}else if(this._accept(11)){const s=this._until(4);if(s)return n.appendChild(new vn(Number(i),void 0,s,void 0)),!0}else if(this._accept(12)){const s=this._until(4);if(s)return n.appendChild(new vn(Number(i),void 0,void 0,s)),!0}else if(this._accept(13)){const s=this._until(1);if(s){const o=this._until(4);if(o)return n.appendChild(new vn(Number(i),void 0,s,o)),!0}}else{const s=this._until(4);if(s)return n.appendChild(new vn(Number(i),void 0,void 0,s)),!0}return this._backTo(e),!1}_parseAnything(n){return this._token.type!==14?(n.appendChild(new jt(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}};function iy(n,e,t){return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:t.additionalEdit?.edits??[]}:{edits:[...e.map(i=>new _w(n,{range:i,text:typeof t.insertText=="string"?ao.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...t.additionalEdit?.edits??[]]}}function ny(n){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 n)for(const a of r.yieldTo??[])for(const l of n)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(n);const i=new Set,s=[];function o(r){if(!r.length)return[];const a=r[0];if(s.includes(a))return console.warn("Yield to cycle detected",a),r;if(i.has(a))return o(r.slice(1));let l=[];const d=t.get(a);return d&&(s.push(a),l=o(d),s.pop()),i.add(a),[...l,a,...o(r.slice(1))]}return o(Array.from(n))}function jh(n,e){return e&&(n.stack||n.stacktrace)?m(33,"{0}: {1}",Mv(n),Ov(n.stack)||Ov(n.stacktrace)):Mv(n)}function Ov(n){return Array.isArray(n)?n.join(`
3
- `):n}function Mv(n){return n.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${n.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof n.code=="string"&&typeof n.errno=="number"&&typeof n.syscall=="string"?m(34,"A system error occurred ({0})",n.message):n.message||m(35,"An unknown error occurred. Please consult the log for more details.")}function sc(n=null,e=!1){if(!n)return m(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(n)){const t=Ns(n),i=sc(t[0],e);return t.length>1?m(37,"{0} ({1} errors in total)",i,t.length):i}if(HS(n))return n;if(n.detail){const t=n.detail;if(t.error)return jh(t.error,e);if(t.exception)return jh(t.exception,e)}return n.stack?jh(n,e):n.message?n.message:m(38,"An unknown error occurred. Please consult the log for more details.")}var qm=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hs=function(n,e){return function(t,i){e(t,i,n)}},lg,sy="acceptSelectedCodeAction",oy="previewSelectedCodeAction",D1=class{get templateId(){return"header"}renderTemplate(n){n.classList.add("group-header");const e=document.createElement("span");return n.append(e),{container:n,text:e}}renderElement(n,e,t){t.text.textContent=n.group?.title??n.label??""}disposeTemplate(n){}},E1=class{get templateId(){return"separator"}renderTemplate(n){n.classList.add("separator");const e=document.createElement("span");return n.append(e),{container:n,text:e}}renderElement(n,e,t){t.text.textContent=n.label??""}disposeTemplate(n){}},dg=class{get templateId(){return"action"}constructor(e,t,i,s,o,r,a,l,d){this._supportsPreview=e,this._onRemoveItem=t,this._onShowSubmenu=i,this._hasAnySubmenuActions=s,this._groupTitleByIndex=o,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 s=document.createElement("span");s.className="action-item-badge",e.append(s);const o=document.createElement("span");o.className="description",e.append(o);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 hl(e,ml),d=document.createElement("div");d.className="action-list-item-toolbar",e.append(d);const c=document.createElement("div");return c.className="action-list-submenu-indicator",e.append(c),{container:e,icon:t,text:i,detail:a,badge:s,description:o,groupTitle:r,keybinding:l,toolbar:d,submenuIndicator:c,elementDisposables:new A}}renderElement(e,t,i){if(i.elementDisposables.clear(),e.group?.icon?(i.icon.className=pe.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=ye(e.group.icon.color.id))):(i.icon.className=pe.asClassName(V.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;if(vE(!e.hideIcon,i.icon),e.isSectionToggle){const l=e.group?.icon===V.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=Xi(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(di(i.description),typeof e.description=="string")i.description.textContent=Xi(e.description);else{const l=Kc(e.description,{actionHandler:d=>{const c=De.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 s=this._groupTitleByIndex.get(t);s?(i.groupTitle.textContent=s,i.groupTitle.style.display=""):(i.groupTitle.textContent="",i.groupTitle.style.display="none"),e.detail?(i.detail.textContent=Xi(e.detail),i.detail.style.display=""):(i.detail.textContent="",i.detail.style.display="none");const o=this._keybindingService.lookupKeybinding(sy)?.getLabel(),r=this._keybindingService.lookupKeybinding(oy)?.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="":o&&r?this._supportsPreview&&e.canPreview?i.container.title=m(1705,"{0} to Apply, {1} to Preview",o,r):i.container.title=m(1706,"{0} to Apply",o):i.container.title="",di(i.toolbar);const a=[...e.toolbarActions??[]];if(e.onRemove&&a.push(qR({id:"actionList.remove",label:m(1707,"Remove"),class:pe.asClassName(V.close),run:async()=>{await e.onRemove(),this._onRemoveItem?.(e)}})),i.container.classList.toggle("has-toolbar",a.length>0),a.length>0){const l=new fs(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 "+pe.asClassName(V.chevronRight),i.submenuIndicator.style.display="",i.submenuIndicator.style.visibility="",i.elementDisposables.add(de(i.submenuIndicator,Ae.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()}};dg=qm([hs(7,Oe),hs(8,_o)],dg);var R1=class extends UIEvent{constructor(){super("acceptSelectedAction")}},Av=class extends UIEvent{constructor(){super("previewSelectedAction")}};function T1(n){if(n.kind==="action")return n.label}var cg=lg=class extends O{constructor(e,t,i,s,o,r,a,l,d){if(super(),this._supportsPreview=t,this._delegate=s,this._options=r,this._keybindingService=a,this._openerService=l,this._instantiationService=d,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new st),this._submenuDisposables=this._register(new A),this._collapsedSections=new Set,this._filterText="",this._suppressHover=!1,this._hasLaidOut=!1,this._filterCts=this._register(new Je),this._groupTitleByIndex=new Map,this._onDidRequestLayout=this._register(new Q),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(g=>g.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(de(this._submenuContainer,"mouseenter",()=>{this._cancelSubmenuHide()})),this._register(de(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},h=(this._options?.reserveSubmenuSpace??!0)&&i.some(u=>!!u.submenuActions?.length&&!u.hover?.content);if(this._list=this._register(new Hm(e,this.domNode,c,[new dg(this._supportsPreview,u=>this._removeItem(u),u=>this._showSubmenuForItem(u),h,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._keybindingService,this._openerService),new D1,new E1],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:T1},accessibilityProvider:{getAriaLabel:u=>{if(u.kind==="action"){let g=u.label?Xi(u?.label):"";if(u.detail&&(g=g+", "+Xi(u.detail)),u.ariaDescription)g=g+", "+Xi(u.ariaDescription);else if(u.description){const p=typeof u.description=="string"?u.description:u.description.value;g=g+", "+Xi(p)}if(u.hover?.content&&!u.ariaDescription&&!u.description){const p=u.hover.content,f=typeof p=="string"?p:qd(p)?p.value:es(p)?p.textContent??void 0:void 0;f&&(!u.detail||Xi(u.detail)!==Xi(f))&&(g=g+", "+Xi(f))}return u.group?.title&&(g=g+", "+u.group.title),u.disabled&&(g=m(1708,"{0}, Disabled Reason: {1}",g,u.disabled)),u.submenuActions?.length&&(g=m(1709,"{0}, use right arrow to access options",g)),g}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",...o}})),this._list.style(TE),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,W(".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 g=this._options?.filterActions??[];if(g.length>0){const p=z(u,W(".action-list-filter-actions"));this._register(new fs(p)).push(g,{icon:!0,label:!1})}this._register(de(this._filterInput,"input",()=>{this._filterText=this._filterInput.value,this._applyOrUpdateFilter()}))}if(this._options?.secondaryHeading){const g=z(u,W(".action-list-filter-label"));g.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 g=z(this._headerContainer,W("span.action-list-header-icon"));g.classList.add(...pe.asClassNameArray(this._options.headerIcon)),g.setAttribute("aria-hidden","true")}const u=z(this._headerContainer,W("span.action-list-header-text"));u.textContent=this._options.headerText}this._applyFilter(),this._list.length&&this._focusCheckedOrFirst(),this._register(de(this.domNode,"keydown",u=>{if(u.key==="ArrowRight"){const g=this._list.getFocus();if(g.length>0){const p=this._list.element(g[0]);if(p?.submenuActions?.length){Cn.stop(u,!0);const f=this._getRowElement(g[0]);f&&(this._showSubmenuForElement(p,f),this._currentSubmenuWidget?.focus())}}}})),this._filterInput&&this._register(de(this.domNode,"keydown",u=>{this._filterInput&&!Qr(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 st;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(),s=!e&&i.length>0,o=[],r=this._list.getFocus();let a;if(r.length>0&&(a=this._list.element(r[0])),s){let g,p=[],f=!1;const _=()=>{g&&f&&o.push(g),o.push(...p),g=void 0,p=[],f=!1},v=C=>{const x=(C.label??"").toLowerCase(),I=typeof C.description=="string"?C.description:C.description?.value??"";return x.includes(i)||I.toLowerCase().includes(i)};for(const C of this._allMenuItems)if(C.kind!=="header"){if(C.kind==="separator"){_(),g=C.label?C:void 0;continue}if(C.showAlways){p.push(C);continue}C.isSectionToggle||v(C)&&(f=!0,p.push(C))}_()}else for(const g of this._allMenuItems){if(g.kind==="header"){o.push(g);continue}if(g.kind==="separator"){if(g.section&&this._collapsedSections.has(g.section))continue;o.push(g);continue}if(g.isSectionToggle&&g.section){const p=this._collapsedSections.has(g.section);o.push({...g,group:{...g.group,icon:p?V.chevronRight:V.chevronDown}});continue}g.section&&this._collapsedSections.has(g.section)||o.push(g)}const l=[];let d=!1;for(let g=0;g<o.length;g++)l[g]=d,o[g].kind==="action"&&(d=!0);const c=[];let h=!1;for(let g=o.length-1;g>=0;g--){if(o[g].kind==="action"){h=!0;continue}o[g].kind==="separator"&&(c[g]=h,h=!1)}for(let g=o.length-1;g>=0;g--){const p=o[g];if(p.kind!=="separator")continue;const f=c[g],_=!p.label&&!l[g];(!f||_)&&o.splice(g,1)}this._options?.showGroupTitleOnFirstItem&&this._recomputeGroupTitles(o);const u=this._filterInput&&Qr(this._filterInput);if(this._list.splice(0,this._list.length,o),t&&this._onDidRequestLayout.fire(),u)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut&&a){const g=a.item?.id;if(g){for(let p=0;p<this._list.length;p++)if(this._list.element(p).item?.id===g){this._list.setFocus([p]),this._list.reveal(p),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 s=this._list.element(i);t+=this._getItemHeight(s)}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),s=this._options?.maxWidth??Number.POSITIVE_INFINITY,o=Math.max(s,i),r=c=>Math.min(Math.max(c,i),o);let a=i;const l=this._allMenuItems.length;if(l>=50)return r(380);if(l>t){const c=[];for(let p=0;p<t;p++)c.push(this._list.element(p));const h=[...this._allMenuItems];this._list.splice(0,t,h);let u=0;for(const p of h)u+=this._getItemHeight(p);this._list.layout(u);const g=[];for(let p=0;p<h.length;p++){const f=this._getRowElement(p);if(f){f.style.width="auto";const _=f.getBoundingClientRect().width;f.style.width="",g.push(_+this._computeToolbarWidth(h[p]))}}return a=r(Math.max(...g)),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 u=h.getBoundingClientRect().width;h.style.width="",d.push(u+this._computeToolbarWidth(this._list.element(c)))}}return r(Math.max(...d))}focusPrevious(){if(this._filterInput&&Qr(this._filterInput)){this._list.domFocus();const i=this._list.getFocus();if(i.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);const s=this._list.getFocus();s.length>0&&s[0]>=i[0]?this._filterInput.focus():s.length>0&&this._list.reveal(s[0])}else{this._list.focusLast(void 0,this.focusCondition);const s=this._list.getFocus();s.length>0&&this._list.reveal(s[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&&Qr(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);const i=this._list.getFocus();i.length>0&&this._list.reveal(i[0])}else{this._list.focusFirst(void 0,this.focusCondition);const i=this._list.getFocus();i.length>0&&this._list.reveal(i[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],s=this._list.element(i);if(!this.focusCondition(s))return;const o=e?new Av:new R1;this._list.setSelection([i],o)}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(lE(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 Av;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 s=e[i];s.kind==="action"&&s.group?.title&&!t.has(s.group.title)&&(t.add(s.group.title),this._groupTitleByIndex.set(i,s.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,s=!!e.submenuActions?.length;if(i||s){const o=this._getRowElement(t);o&&this._showSubmenuForElement(e,o);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 s=e.hover?.content;if(s){if(es(s))i=s,e.hover?.disposable&&this._register(e.hover.disposable);else{const b=typeof s=="string"?new Lt(s):s,w=this._options?.linkHandler,E=Kc(b,{actionHandler:P=>{const R=De.parse(P);w?w(R,e):this._openerService.open(R,{allowCommands:!0})}});this._submenuDisposables.add(E),i=E.element}i.classList.add("action-list-submenu-hover-header"),e.submenuActions?.length&&i.classList.add("has-submenu"),this._submenuContainer.appendChild(i)}const o=!!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(o){const b=[],w=e.submenuActions.filter(R=>R instanceof ec).filter(R=>R.actions.length>0);for(let R=0;R<w.length;R++){const D=w[R];D.label&&b.push({kind:"header",group:{title:D.label},label:D.label});for(let F=0;F<D.actions.length;F++){const Y=D.actions[F],re=Y,Me=re.icon??pe.fromId(Y.checked?V.check.id:V.blank.id),_e=re.hoverContent;b.push({item:Y,kind:"action",label:Y.label,description:Y.tooltip||void 0,group:{title:"",icon:Me},hideIcon:!1,hover:_e?{content:_e}:{},onRemove:re.onRemove})}R<w.length-1&&b.push({kind:"separator",label:""})}for(const R of e.submenuActions)if(!(R instanceof ec)){const D=R;b.push({item:R,kind:"action",label:R.label,description:R.tooltip||void 0,group:{title:""},hideIcon:!1,hover:{},onRemove:D.onRemove})}const E=this._submenuDisposables.add(this._instantiationService.createInstance(lg,"submenu",!1,b,{onHide:()=>{},onSelect:R=>{R.run();const D=this._currentSubmenuElement?.item;this._hideSubmenu(),D&&this._delegate.onSelect(D),this.hide()}},void 0,void 0));this._submenuContainer.appendChild(E.domNode),this._currentSubmenuWidget=E,E.clearFocus(),d=E.computeListHeight(),E.layout(d);const P=E.computeMaxWidth(0);c=Math.max(c,P),E.layout(d,c),E.domNode.style.width=`${c}px`,this._submenuDisposables.add(de(E.domNode,"keydown",R=>{if(R.key==="ArrowLeft"||R.key==="Escape")Cn.stop(R,!0),this._hideSubmenu(),this._list.domFocus();else if(R.key==="Enter"){Cn.stop(R,!0);const D=E.getFocusedElement();if(D?.item){D.item.run();const F=this._currentSubmenuElement?.item;this._hideSubmenu(),F&&this._delegate.onSelect(F),this.hide()}}else R.key==="ArrowDown"?(Cn.stop(R,!0),E.focusNext()):R.key==="ArrowUp"&&(Cn.stop(R,!0),E.focusPrevious())}))}const h=l.innerWidth-r.right,u=a.left,g=c+10,p=4;h>=g||h>=u?this._submenuContainer.style.left=`${a.right-a.left+p}px`:this._submenuContainer.style.left=`${-g-p}px`;const f=i?i.offsetHeight:0,_=d+f,v=l.innerHeight,C=r.height;let x=r.top-a.top+(C-_)/2;const I=a.top+x+_;I>v&&(x-=I-v+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(zc())&&this._list.domFocus(),di(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 i=!!(t.submenuActions?.length||t.hover?.content);if(i&&(this._suppressHover=!0),this._list.setFocus(typeof e.index=="number"?[e.index]:[]),i&&(this._suppressHover=!1),i){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),o=s?s.canPreview:void 0;o!==t.canPreview&&(t.canPreview=o,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([])}};cg=lg=qm([hs(6,Oe),hs(7,_o),hs(8,ie)],cg);var hg=class extends O{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,s,o,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(cg,e,t,i,s,o,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=s=>Number.parseFloat(s)||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,s=this._widget.headerContainer?this._widget.headerContainer.offsetHeight||36:0,o=t+i+s,r=Ht(this.domNode);let a;if(this.hasDynamicHeight()){const h=r.innerHeight,u=OR(this._anchor),g=u.top-r.pageYOffset,p=h-g-u.height-30,f=g;if(this._showAbove===void 0){const _=o+this._widget.computeFullHeight();this._showAbove=_>p&&f>p}a=Math.max(0,(this._showAbove?f:p)-this.computeActionWidgetVerticalChromeHeight())}else{const u=this._layoutService.getContainer(r).clientHeight,g=this.domNode.getBoundingClientRect().top;a=g>0?u-g-10:u*.7}const l=Math.floor(r.innerHeight*.6),d=this._widget.lineHeight,c=Math.min(Math.max(a,d*3+o),l);return Math.min(e+o,c)-o}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}};hg=qm([hs(7,ih),hs(8,Y0),hs(9,ie)],hg);function Xi(n){return n.replace(/\r\n|\r|\n/g," ")}var N1=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qh=function(n,e){return function(t,i){e(t,i,n)}};H("actionBar.toggledBackground",Sm,m(1713,"Background color for toggled action items in action bar."));var Wt={Visible:new oe("codeActionMenuVisible",!1,m(1714,"Whether the action widget list is visible")),FilterFocused:new oe("codeActionMenuFilterFocused",!1,m(1715,"Whether the action widget filter input is focused"))},Ni=dn("actionWidgetService"),Ui=class extends O{get isVisible(){return Wt.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new Je)}show(e,t,i,s,o,r,a,l,d){const c=Wt.Visible.bindTo(this._contextKeyService),h=this._instantiationService.createInstance(hg,e,t,i,s,l,d,o);this._contextViewService.showContextView({getAnchor:()=>o,render:u=>(c.set(!0),this._renderWidget(u,h,a??[])),onHide:u=>{c.reset(),this._onWidgetClosed(u)},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 s=document.createElement("div");if(s.classList.add("action-widget"),e.appendChild(s),this._list.value=t,this._list.value)this._list.value.headerContainer&&s.appendChild(this._list.value.headerContainer),this._list.value.filterContainer&&s.appendChild(this._list.value.filterContainer),s.appendChild(this._list.value.domNode),this._list.value.footerContainer&&s.appendChild(this._list.value.footerContainer);else throw new Error("List has no value");const o=new A,r=this._list.value.headerContainer;r&&o.add(Wh(r,f=>f.preventDefault()));const a=document.createElement("div"),l=e.appendChild(a);l.classList.add("context-view-block"),o.add(Wh(l,f=>f.stopPropagation()));const d=document.createElement("div"),c=e.appendChild(d);c.classList.add("context-view-pointerBlock"),o.add(de(c,Ae.POINTER_MOVE,()=>c.remove())),o.add(Wh(c,()=>c.remove()));let h=0;if(i.length){const f=this._createActionBar(".action-widget-action-bar",i);f&&(s.appendChild(f.getContainer().parentElement),o.add(f),h=f.getContainer().offsetWidth)}const u=this._list.value?.layout(h);s.style.width=`${u}px`,this._list.value?.focus();const g=Wt.FilterFocused.bindTo(this._contextKeyService);if(o.add({dispose:()=>g.reset()}),this._list.value?.filterInput){const f=this._list.value.filterInput;o.add(de(f,"focus",()=>g.set(!0))),o.add(de(f,"blur",()=>g.set(!1)))}const p=o.add(ls(e));return o.add(p.onDidBlur(()=>{const f=zc();f?.closest(".action-widget-hover")||f?.closest(".action-list-submenu-panel")||this.hide(!0)})),o}_createActionBar(e,t){if(!t.length)return;const i=W(e),s=new fs(i);return s.push(t,{icon:!1,label:!0}),s}_onWidgetClosed(e){this._list.value?.hide(e)}};Ui=N1([qh(0,ih),qh(1,ve),qh(2,ie)],Ui);Wn(Ni,Ui,1);var ks=1100;fe(class extends lt{constructor(){super({id:"hideCodeActionWidget",title:L(1716,"Hide action widget"),precondition:Wt.Visible,keybinding:{weight:ks,primary:9,secondary:[1033]}})}run(n){n.get(Ni).hide(!0)}});fe(class extends lt{constructor(){super({id:"clearFilterCodeActionWidget",title:L(1717,"Clear action widget filter"),precondition:N.and(Wt.Visible,Wt.FilterFocused),keybinding:{weight:1101,primary:9}})}run(n){const e=n.get(Ni);e instanceof Ui&&(e.clearFilter()||e.hide(!0))}});fe(class extends lt{constructor(){super({id:"selectPrevCodeAction",title:L(1718,"Select previous action"),precondition:Wt.Visible,keybinding:{weight:ks,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(n){const e=n.get(Ni);e instanceof Ui&&e.focusPrevious()}});fe(class extends lt{constructor(){super({id:"selectNextCodeAction",title:L(1719,"Select next action"),precondition:Wt.Visible,keybinding:{weight:ks,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(n){const e=n.get(Ni);e instanceof Ui&&e.focusNext()}});fe(class extends lt{constructor(){super({id:"collapseSectionCodeAction",title:L(1720,"Collapse section"),precondition:N.and(Wt.Visible,Wt.FilterFocused.negate()),keybinding:{weight:ks,primary:15}})}run(n){const e=n.get(Ni);e instanceof Ui&&e.collapseSection()}});fe(class extends lt{constructor(){super({id:"expandSectionCodeAction",title:L(1721,"Expand section"),precondition:N.and(Wt.Visible,Wt.FilterFocused.negate()),keybinding:{weight:ks,primary:17}})}run(n){const e=n.get(Ni);e instanceof Ui&&e.expandSection()}});fe(class extends lt{constructor(){super({id:"toggleSectionCodeAction",title:L(1722,"Toggle section"),precondition:N.and(Wt.Visible,Wt.FilterFocused.negate()),keybinding:{weight:ks,primary:10}})}run(n){const e=n.get(Ni);e instanceof Ui&&(e.toggleSection()||e.acceptSelected())}});fe(class extends lt{constructor(){super({id:sy,title:L(1723,"Accept selected action"),precondition:Wt.Visible,keybinding:{weight:ks,primary:3,secondary:[2137]}})}run(n){const e=n.get(Ni);e instanceof Ui&&e.acceptSelected()}});fe(class extends lt{constructor(){super({id:oy,title:L(1724,"Preview selected action"),precondition:Wt.Visible,keybinding:{weight:ks,primary:2051}})}run(n){const e=n.get(Ni);e instanceof Ui&&e.acceptSelected(!0)}});var ry=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Qo=function(n,e){return function(t,i){e(t,i,n)}},ug,gg=class extends O{static{ug=this}static{this.baseId="editor.widget.postEditWidget"}constructor(e,t,i,s,o,r,a,l,d,c,h){super(),this.typeId=e,this.editor=t,this.showCommand=s,this.range=o,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(u=>{this.dispose()})),this._register(qe.runAndSubscribe(c.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=W(".post-edit-widget"),this.button=this._register(new NE(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(de(this.domNode,Ae.CLICK,()=>this.showSelector()))}getId(){return ug.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){const e=kt(this.button.element),t={x:e.left+e.width,y:e.top+e.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((i,s)=>({kind:"action",item:i,label:i.title,disabled:!1,canPreview:!1,group:{title:"",icon:pe.fromId(s===this.edits.activeEditIndex?V.check.id:V.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:i=>{this._actionWidgetService.hide(!1);const s=this.edits.allEdits.findIndex(o=>o===i);if(s!==this.edits.activeEditIndex)return this.onSelectNewEdit(s)}},t,this.editor.getDomNode()??void 0,this.additionalActions)}};gg=ug=ry([Qo(8,ve),Qo(9,Oe),Qo(10,Ni)],gg);var oc=class extends O{constructor(e,t,i,s,o,r,a,l){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=s,this._getAdditionalActions=o,this._instantiationService=r,this._bulkEditService=a,this._notificationService=l,this._currentWidget=this._register(new Je),this._register(qe.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,s,o){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 C=this._editor.getModel();C&&(await C.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:v,allEdits:t.allEdits},i,s,o))},d=(v,C)=>{Hn(v)||(this._notificationService.error(C),i&&this.show(e[0],t,l))},c=new no(this._editor,3,void 0,o);let h;try{h=await GT(s(a,c.token),c.token)}catch(v){return d(v,m(976,`Error resolving edit '{0}':
4
- {1}`,a.title,sc(v)))}finally{c.dispose()}if(o.isCancellationRequested)return;const u=iy(r.uri,e,h),g=e[0],p=r.deltaDecorations([],[{range:g,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let f,_;try{f=await this._bulkEditService.apply(u,{editor:this._editor,token:o}),_=r.getDecorationRange(p[0])}catch(v){return d(v,m(977,`Error applying edit '{0}':
5
- {1}`,a.title,sc(v)))}finally{r.deltaDecorations(p,[])}o.isCancellationRequested||i&&f.isApplied&&t.allEdits.length>1&&this.show(_??g,t,l)}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(gg,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i,this._getAdditionalActions()))}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};oc=ry([Qo(5,ie),Qo(6,pl),Qo(7,Et)],oc);var k1=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hn=function(n,e){return function(t,i){e(t,i,n)}},fi,ay="editor.changePasteType",P1="editor.pasteAs.preferences",$m=new oe("pasteWidgetVisible",!1,m(956,"Whether the paste widget is showing")),$h="application/vnd.code.copymetadata",On=class extends O{static{fi=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(e){return e.getContribution(fi.ID)}constructor(e,t,i,s,o,r,a,l,d,c){super(),this._logService=i,this._bulkEditService=s,this._clipboardService=o,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 ic("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(oc,"pasteIntoEditor",e,$m,{id:ay,label:m(957,"Show paste options...")},()=>fi._configureDefaultAction?[fi._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(),s=this._editor.getSelections();if(!t||!i||!s?.length)return;const o={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:o});return}const a=new iw,l=r.flatMap(h=>h.copyMimeTypes??[]),d=Vm();this.setCopyMetadata(e.clipboardData,{id:d,providerCopyMimeTypes:l,defaultPastePayload:o});const c=r.map(h=>({providerMimeTypes:h.copyMimeTypes,operation:pt(u=>h.prepareDocumentPaste(t,e.dataToCopy.sourceRanges,a,u).catch(g=>{console.error(g)}))}));fi._currentCopyOperation?.operations.forEach(h=>h.operation.cancel()),fi._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($h),qt.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;const i=this._editor.getModel(),s=this._editor.getSelections();if(!s?.length||!i||this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const o=this.fetchCopyMetadata(e);this._logService.trace("CopyPasteController#handlePaste with metadata : ",o?.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,...o?.providerCopyMimeTypes??[],Tt.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=>dv(h,a))});if(!l.length){this._pasteAsActionContext?.preferred&&(this.showPasteAsNoEditMessage(s,this._pasteAsActionContext.preferred),e.setHandled());return}e.setHandled(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,l,s,t,o):this.doPasteInline(l,s,t,o,e.browserEvent)}showPasteAsNoEditMessage(e,t){const i="only"in t?t.only.value:"preferences"in t?t.preferences.length?t.preferences.map(s=>s.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,s,o){this._logService.trace("CopyPasteController#doPasteInline");const r=this._editor;if(!r.hasModel())return;const a=new no(r,3,void 0),l=pt(async d=>{const c=this._editor;if(!c.hasModel())return;const h=c.getModel(),u=new A,g=u.add(new st(d));u.add(a.token.onCancellationRequested(()=>g.cancel()));const p=g.token;try{if(await this.mergeInDataFromCopy(e,i,s,p),p.isCancellationRequested)return;const f=e.filter(C=>this.isSupportedPasteProvider(C,i));if(!f.length||f.length===1&&f[0]instanceof Va)return this.applyDefaultPasteHandler(i,s,p,o);const _={triggerKind:Ju.Automatic},v=await this.getPasteEdits(f,i,h,t,_,p);if(u.add(v),p.isCancellationRequested)return;if(v.edits.length===1&&v.edits[0].provider instanceof Va)return this.applyDefaultPasteHandler(i,s,p,o);if(v.edits.length){const C=c.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:this.getInitialActiveEditIndex(h,v.edits),allEdits:v.edits},C,async(x,I)=>{if(!x.provider.resolveDocumentPasteEdit)return x;const b=x.provider.resolveDocumentPasteEdit(x,I),w=new im,E=await this._pasteProgressManager.showWhile(t[0].getEndPosition(),m(960,"Resolving paste edit for '{0}'. Click to cancel",x.title),rr(Promise.race([w.p,b]),I),{cancel:()=>w.cancel()},0);return E&&(x.insertText=E.insertText,x.additionalEdit=E.additionalEdit),x},p)}await this.applyDefaultPasteHandler(i,s,p,o)}finally{u.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,s,a.token,o)}}).finally(()=>{a.dispose()}),this._currentPasteOperation=l}showPasteAsPick(e,t,i,s,o){this._logService.trace("CopyPasteController#showPasteAsPick");const r=pt(async a=>{const l=this._editor;if(!l.hasModel())return;const d=l.getModel(),c=new A,h=c.add(new no(l,3,void 0,a));try{if(await this.mergeInDataFromCopy(t,s,o,h.token),h.token.isCancellationRequested)return;let u=t.filter(v=>this.isSupportedPasteProvider(v,s,e));e&&(u=u.filter(v=>this.providerMatchesPreference(v,e)));const g={triggerKind:Ju.PasteAs,only:e&&"only"in e?e.only:void 0};let p=c.add(await this.getPasteEdits(u,s,d,i,g,h.token));if(h.token.isCancellationRequested)return;if(e&&(p={edits:p.edits.filter(v=>"only"in e?e.only.contains(v.kind):"preferences"in e?e.preferences.some(C=>C.contains(v.kind)):e.providerId===v.provider.id),dispose:p.dispose}),!p.edits.length){e&&this.showPasteAsNoEditMessage(i,e);return}let f;if(e)f=p.edits.at(0);else{const v={id:"editor.pasteAs.default",label:m(962,"Configure default paste action"),edit:void 0},C=await this._quickInputService.pick([...p.edits.map(x=>({label:x.title,description:x.kind?.value,edit:x})),...fi._configureDefaultAction?[KT({type:"separator"}),{label:fi._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:m(963,"Select Paste Action")});if(C===v){fi._configureDefaultAction?.run();return}f=C?.edit}if(!f)return;const _=iy(d.uri,i,f);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($h,JSON.stringify(t))}fetchCopyMetadata(e){this._logService.trace("CopyPasteController#fetchCopyMetadata");const t=e.clipboardData.getData($h);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,s){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",i?.id),i?.id&&fi._currentCopyOperation?.handle===i.id){const o=fi._currentCopyOperation.operations.filter(a=>e.some(l=>l.pasteMimeTypes.some(d=>dv(d,a.providerMimeTypes)))).map(a=>a.operation),r=await Promise.all(o);if(s.isCancellationRequested)return;for(const a of r.reverse())if(a)for(const[l,d]of a)t.replace(l,d)}if(!t.has(Tt.uriList)){const o=await this._clipboardService.readResources();if(s.isCancellationRequested)return;o.length&&t.append(Tt.uriList,MT(Ow.create(o)))}}async getPasteEdits(e,t,i,s,o,r){const a=new A,l=await rr(Promise.all(e.map(async c=>{try{const h=await c.provideDocumentPasteEdits?.(i,s,t,o,r);return h&&a.add(h),h?.edits?.map(u=>({...u,provider:c}))}catch(h){Hn(h)||console.error(h);return}})),r),d=Ns(l??[]).flat().filter(c=>!o.only||o.only.contains(c.kind));return{edits:ny(d),dispose:()=>a.dispose()}}async applyDefaultPasteHandler(e,t,i,s){const o=await(e.get(Tt.text)??e.get("text"))?.asString()??"";if(i.isCancellationRequested)return;const r={clipboardEvent:s,text:o,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",r)}isSupportedPasteProvider(e,t,i){return e.pasteMimeTypes?.some(s=>t.matches(s))?!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(s=>s.contains(i))):e.id===t.providerId}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(P1,{resource:e.uri});for(const s of Array.isArray(i)?i:[]){const o=new Ve(s),r=t.findIndex(a=>o.contains(a.kind));if(r>=0)return r}return 0}};On=fi=k1([hn(1,ie),hn(2,Pt),hn(3,pl),hn(4,ti),hn(5,ht),hn(6,xe),hn(7,Z),hn(8,Di),hn(9,IT)],On);var lo="9_cutcopypaste",O1=xr||document.queryCommandSupported("cut"),ly=xr||document.queryCommandSupported("copy"),M1=typeof navigator.clipboard>"u"||XS?document.queryCommandSupported("paste"):!0;function Km(n){return n.register(),n}var A1=O1?Km(new Om({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:xr?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:$.MenubarEditMenu,group:"2_ccp",title:m(849,"Cu&&t"),order:1},{menuId:$.EditorContext,group:lo,title:m(850,"Cut"),when:S.writable,order:1},{menuId:$.CommandPalette,group:"",title:m(851,"Cut"),order:1},{menuId:$.SimpleEditorContext,group:lo,title:m(852,"Cut"),when:S.writable,order:1}]})):void 0,F1=ly?Km(new Om({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:xr?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:$.MenubarEditMenu,group:"2_ccp",title:m(853,"&&Copy"),order:2},{menuId:$.EditorContext,group:lo,title:m(854,"Copy"),order:2},{menuId:$.CommandPalette,group:"",title:m(855,"Copy"),order:1},{menuId:$.SimpleEditorContext,group:lo,title:m(856,"Copy"),order:2}]})):void 0;Li.appendMenuItem($.MenubarEditMenu,{submenu:$.MenubarCopy,title:L(861,"Copy As"),group:"2_ccp",order:3});Li.appendMenuItem($.EditorContext,{submenu:$.EditorContextCopy,title:L(862,"Copy As"),group:lo,order:3});Li.appendMenuItem($.EditorContext,{submenu:$.EditorContextShare,title:L(863,"Share"),group:"11_share",order:-1,when:N.and(N.notEquals("resourceScheme","output"),S.editorTextFocus)});Li.appendMenuItem($.ExplorerContext,{submenu:$.ExplorerContextShare,title:L(864,"Share"),group:"11_share",order:-1});var Kh=M1?Km(new Om({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:xr?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:$.MenubarEditMenu,group:"2_ccp",title:m(857,"&&Paste"),order:4},{menuId:$.EditorContext,group:lo,title:m(858,"Paste"),when:S.writable,order:4},{menuId:$.CommandPalette,group:"",title:m(859,"Paste"),order:1},{menuId:$.SimpleEditorContext,group:lo,title:m(860,"Paste"),when:S.writable,order:4}]})):void 0,H1=class extends M{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:L(865,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:0,weight:100}})}run(n,e){const t=n.get(Pt),i=n.get(ti);t.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),e.hasModel()&&(!e.getOption(45)&&e.getSelection().isEmpty()||(Xd.forceCopyWithSyntaxHighlighting=!0,e.focus(),t.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),pg(e,i),t.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),Xd.forceCopyWithSyntaxHighlighting=!1))}};function pg(n,e){if(Xd.electronBugWorkaroundCopyEventHasFired=!1,n.getContainerDomNode().ownerDocument.execCommand("copy"),xr&&Xd.electronBugWorkaroundCopyEventHasFired===!1){const{dataToCopy:t}=mR(n._getViewModel(),void 0,XS);e.writeText(t.text)}}function dy(n,e){n&&(n.addImplementation(1e4,"code-editor",(t,i)=>{const s=t.get(Pt),o=t.get(ti);s.trace("registerExecCommandImpl (addImplementation code-editor for : ",e,")");const r=t.get($e).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"?(Fv(r),s.trace("registerExecCommandImpl (before execCommand copy)"),pg(r,o),r.trigger(void 0,"cut",void 0),s.trace("registerExecCommandImpl (after execCommand copy)")):(Fv(r),s.trace("registerExecCommandImpl (before execCommand "+e+")"),e==="copy"?pg(r,o):r.getContainerDomNode().ownerDocument.execCommand(e),s.trace("registerExecCommandImpl (after execCommand "+e+")"))),!0}return!1}),n.addImplementation(0,"generic-dom",(t,i)=>{const s=t.get(Pt);return s.trace("registerExecCommandImpl (addImplementation generic-dom for : ",e,")"),s.trace("registerExecCommandImpl (before execCommand "+e+")"),uE().execCommand(e),s.trace("registerExecCommandImpl (after execCommand "+e+")"),!0}))}function Fv(n){if(n.getOption(170)){const e=uw.get(n.getId());e&&e.handleWillCopy()}}dy(A1,"cut");dy(F1,"copy");Kh&&(Kh.addImplementation(1e4,"code-editor",(n,e)=>{const t=n.get(Pt);t.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");const i=n.get($e),s=n.get(ti),o=i.getFocusedCodeEditor();if(o&&o.hasModel()&&o.hasTextFocus()){if(o.getOption(170)){const a=uw.get(o.getId());a&&a.handleWillPaste()}t.trace("registerExecCommandImpl (before triggerPaste)");const r=s.triggerPaste(tc().vscodeWindowId);return r?(t.trace("registerExecCommandImpl (triggerPaste defined)"),r.then(async()=>(t.trace("registerExecCommandImpl (after triggerPaste)"),On.get(o)?.finishedPaste()??Promise.resolve()))):(t.trace("registerExecCommandImpl (triggerPaste undefined)"),OT?(t.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{const a=await s.readText();if(a!==""){const l=CR.INSTANCE.get(a);let d=!1,c=null,h=null;l&&(d=o.getOption(45)&&!!l.isFromEmptySelection,c=typeof l.multicursorText<"u"?l.multicursorText:null,h=l.mode),t.trace("registerExecCommandImpl (clipboardText.length : ",a.length," id : ",l?.id,")"),o.trigger("keyboard","paste",{text:a,pasteOnNewLine:d,multicursorText:c,mode:h})}})()):!0)}return!1}),Kh.addImplementation(0,"generic-dom",(n,e)=>(n.get(Pt).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),n.get(ti).triggerPaste(tc().vscodeWindowId)??!1)));ly&&k(H1);var Te=new class{constructor(){this.QuickFix=new Ve("quickfix"),this.Refactor=new Ve("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 Ve("notebook"),this.Source=new Ve("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}},$t;(function(n){n.Refactor="refactor",n.RefactorPreview="refactor preview",n.Lightbulb="lightbulb",n.Default="other (default)",n.SourceAction="source action",n.QuickFix="quick fix action",n.FixAll="fix all",n.OrganizeImports="organize imports",n.AutoFix="auto fix",n.QuickFixHover="quick fix hover window",n.OnSave="save participants",n.ProblemsView="problems view"})($t||($t={}));function W1(n,e){return!(n.include&&!n.include.intersects(e)||n.excludes&&n.excludes.some(t=>cy(e,t,n.include))||!n.includeSourceActions&&Te.Source.contains(e))}function V1(n,e){const t=e.kind?new Ve(e.kind):void 0;return!(n.include&&(!t||!n.include.contains(t))||n.excludes&&t&&n.excludes.some(i=>cy(t,i,n.include))||!n.includeSourceActions&&t&&Te.Source.contains(t)||n.onlyIncludePreferredActions&&!e.isPreferred)}function cy(n,e,t){return!(!e.contains(n)||t&&e.contains(t))}var hh=class Ho{static fromUser(e,t){return!e||typeof e!="object"?new Ho(t.kind,t.apply,!1):new Ho(Ho.getKindFromUser(e,t.kind),Ho.getApplyFromUser(e,t.apply),Ho.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 Ve(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}},B1=class{constructor(n,e,t){this.action=n,this.provider=e,this.highlightRange=t}async resolve(n){if(this.provider?.resolveCodeAction&&!this.action.edit){let e;try{e=await this.provider.resolveCodeAction(this.action,n)}catch(t){tt(t)}e&&(this.action.edit=e.edit)}return this}},hy="editor.action.codeAction",uy="editor.action.quickFix",U1="editor.action.autoFix",gy="editor.action.refactor",py="editor.action.sourceAction",fy="editor.action.organizeImports",my="editor.action.fixAll",z1=1e3,j1=class Cd extends O{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:Qt(e.diagnostics)?Qt(t.diagnostics)?Cd.codeActionsPreferredComparator(e,t):-1:Qt(t.diagnostics)?1:Cd.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(Cd.codeActionsComparator),this.validActions=this.allActions.filter(({action:s})=>!s.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&Te.QuickFix.contains(new Ve(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}},Hv={actions:[],documentation:void 0};async function Ko(n,e,t,i,s,o){const r=i.filter||{},a={...r,excludes:[...r.excludes||[],Te.Notebook]},l={only:r.include?.value,trigger:i.type},d=new pR(e,o),c=q1(n,e,i.type===2?a:r),h=new A,u=c.map(async p=>{const f=setTimeout(()=>s.report(p),1250);try{const _=await p.provideCodeActions(e,t,l,d.token);if(d.token.isCancellationRequested)return _?.dispose(),Hv;_&&h.add(_);const v=(_?.actions||[]).filter(x=>x&&V1(r,x)),C=K1(p,v,r.include);return{actions:v.map(x=>new B1(x,p)),documentation:C}}catch(_){if(Hn(_))throw _;return tt(_),Hv}finally{clearTimeout(f)}}),g=n.onDidChange(()=>{const p=n.all(e);Bi(p,c)||d.cancel()});try{const p=await Promise.all(u),f=p.map(C=>C.actions).flat(),_=[...Ns(p.map(C=>C.documentation)),...$1(n,e,i,f)],v=new j1(f,_,h);return h.add(v),v}catch(p){throw h.dispose(),p}finally{g.dispose(),d.dispose()}}function q1(n,e,t){return n.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(s=>W1(t,new Ve(s))):!0)}function*$1(n,e,t,i){if(e&&i.length)for(const s of n.all(e))s._getAdditionalMenuItems&&(yield*s._getAdditionalMenuItems?.({trigger:t.type,only:t.filter?.include?.value},i.map(o=>o.action)))}function K1(n,e,t){if(!n.documentation)return;const i=n.documentation.map(s=>({kind:new Ve(s.kind),command:s.command}));if(t){let s;for(const o of i)o.kind.contains(t)&&(s?s.kind.contains(o.kind)&&(s=o):s=o);if(s)return s?.command}for(const s of e)if(s.kind){for(const o of i)if(o.kind.contains(new Ve(s.kind)))return o.command}}var ns;(function(n){n.OnSave="onSave",n.FromProblemsView="fromProblemsView",n.FromCodeActions="fromCodeActions",n.FromAILightbulb="fromAILightbulb",n.FromProblemsHover="fromProblemsHover"})(ns||(ns={}));async function G1(n,e,t,i,s=ue.None){const o=n.get(pl),r=n.get(ht),a=n.get(Ds),l=n.get(Et),d=n.get(Em);if(a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),d.playSignal(Fa.codeActionTriggered),await e.resolve(s),!s.isCancellationRequested&&!(e.action.edit?.edits.length&&!(await o.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:io.codeAction({kind:e.action.kind,providerId:wS.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=Z1(c);l.error(typeof h=="string"?h:m(866,"An unknown error occurred while applying the code action"))}setTimeout(()=>d.playSignal(Fa.codeActionApplied),z1)}}function Z1(n){return typeof n=="string"?n:n instanceof Error&&typeof n.message=="string"?n.message:void 0}Re.registerCommand("_executeCodeActionProvider",async function(n,e,t,i,s){if(!(e instanceof De))throw Ln();const{codeActionProvider:o}=n.get(Z),r=n.get(Kt).getModel(e);if(!r)throw Ln();const a=te.isISelection(t)?te.liftSelection(t):y.isIRange(t)?r.validateRange(t):void 0;if(!a)throw Ln();const l=typeof i=="string"?new Ve(i):void 0,d=await Ko(o,r,a,{type:1,triggerAction:$t.Default,filter:{includeSourceActions:!0,include:l}},xn.None,ue.None),c=[],h=Math.min(d.validActions.length,typeof s=="number"?s:0);for(let u=0;u<h;u++)c.push(d.validActions[u].resolve(ue.None));try{return await Promise.all(c),d.validActions.map(u=>u.action)}finally{setTimeout(()=>d.dispose(),100)}});var X1=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Y1=function(n,e){return function(t,i){e(t,i,n)}},fg,mg=class{static{fg=this}static{this.codeActionCommands=[gy,hy,py,fy,my]}constructor(e){this.keybindingService=e}getResolver(){const e=new Rm(()=>this.keybindingService.getKeybindings().filter(t=>fg.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command==="editor.action.organizeImports"?i={kind:Te.SourceOrganizeImports.value}:t.command==="editor.action.fixAll"&&(i={kind:Te.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...hh.fromUser(i,{kind:Ve.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 Ve(e.kind);return t.filter(s=>s.kind.contains(i)).filter(s=>s.preferred?e.isPreferred:!0).reduceRight((s,o)=>s?s.kind.contains(o.kind)?o:s:o,void 0)}};mg=fg=X1([Y1(0,Oe)],mg);H("symbolIcon.arrayForeground",dt,m(1547,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.booleanForeground",dt,m(1548,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("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."));H("symbolIcon.colorForeground",dt,m(1550,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.constantForeground",dt,m(1551,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("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."));H("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."));H("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."));H("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."));H("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."));H("symbolIcon.fileForeground",dt,m(1557,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.folderForeground",dt,m(1558,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("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."));H("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."));H("symbolIcon.keyForeground",dt,m(1561,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.keywordForeground",dt,m(1562,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("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."));H("symbolIcon.moduleForeground",dt,m(1564,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.namespaceForeground",dt,m(1565,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.nullForeground",dt,m(1566,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.numberForeground",dt,m(1567,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.objectForeground",dt,m(1568,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.operatorForeground",dt,m(1569,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.packageForeground",dt,m(1570,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.propertyForeground",dt,m(1571,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.referenceForeground",dt,m(1572,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.snippetForeground",dt,m(1573,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.stringForeground",dt,m(1574,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.structForeground",dt,m(1575,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.textForeground",dt,m(1576,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.typeParameterForeground",dt,m(1577,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("symbolIcon.unitForeground",dt,m(1578,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));H("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."));var _y=Object.freeze({kind:Ve.Empty,title:m(902,"More Actions...")}),J1=Object.freeze([{kind:Te.QuickFix,title:m(903,"Quick Fix")},{kind:Te.RefactorExtract,title:m(904,"Extract"),icon:V.wrench},{kind:Te.RefactorInline,title:m(905,"Inline"),icon:V.wrench},{kind:Te.RefactorRewrite,title:m(906,"Rewrite"),icon:V.wrench},{kind:Te.RefactorMove,title:m(907,"Move"),icon:V.wrench},{kind:Te.SurroundWith,title:m(908,"Surround With"),icon:V.surroundWith},{kind:Te.Source,title:m(909,"Source Action"),icon:V.symbolFile},_y]);function Q1(n,e,t){if(!e)return n.map(o=>({kind:"action",item:o,group:_y,disabled:!!o.action.disabled,label:o.action.disabled||o.action.title,canPreview:!!o.action.edit?.edits.length}));const i=J1.map(o=>({group:o,actions:[]}));for(const o of n){const r=o.action.kind?new Ve(o.action.kind):Ve.None;for(const a of i)if(a.group.kind.contains(r)){a.actions.push(o);break}}const s=[];for(const o of i)if(o.actions.length){s.push({kind:"header",group:o.group});for(const r of o.actions){const a=o.group;s.push({kind:"action",item:r,group:r.action.isAI?{title:a.title,kind:a.kind,icon:V.sparkle}:a,label:r.action.title,disabled:!!r.action.disabled,keybinding:t(r.action)})}}return s}var vy=new oe("supportedCodeAction","");var eN=class extends O{constructor(n,e,t,i=250){super(),this._editor=n,this._markerService=e,this._signalChange=t,this._delay=i,this._autoTriggerTimer=this._register(new ll),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged(s=>this._onMarkerChanges(s))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(n){const e=this._getRangeOfSelectionUnlessWhitespaceEnclosed(n);this._signalChange(e?{trigger:n,selection:e}:void 0)}_onMarkerChanges(n){const e=this._editor.getModel();e&&n.some(t=>ps(t,e.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:$t.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(n){if(!this._editor.hasModel())return;const e=this._editor.getSelection();if(n.type===1)return e;const t=this._editor.getOption(73).enabled;if(!(t===ea.Off&&!this.ignoreLightbulbOff)){{if(t===ea.Off||t===ea.On)return e;if(t===ea.OnCode){if(!e.isEmpty())return e;const i=this._editor.getModel(),{lineNumber:s,column:o}=e.getPosition(),r=i.getLineContent(s);if(r.length===0)return;if(o===1){if(/\s/.test(r[0]))return}else if(o===i.getLineMaxColumn(s)){if(/\s/.test(r[r.length-1]))return}else if(/\s/.test(r[o-2])&&/\s/.test(r[o-1]))return}}return e}}},Xs;(function(n){n.Empty={type:0};class e{constructor(i,s,o){this.trigger=i,this.position=s,this._cancellablePromise=o,this.type=1,this.actions=o.catch(r=>{if(Hn(r))return _g;throw r})}cancel(){this._cancellablePromise.cancel()}}n.Triggered=e})(Xs||(Xs={}));var _g=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1}),tN=class extends O{constructor(n,e,t,i,s,o){super(),this._editor=n,this._registry=e,this._markerService=t,this._progressService=s,this._configurationService=o,this._codeActionOracle=this._register(new Je),this._state=Xs.Empty,this._onDidChangeState=this._register(new Q),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new Je),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=vy.bindTo(i),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(r=>{r.hasChanged(73)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Xs.Empty,!0))}_settingEnabledNearbyQuickfixes(){const n=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:n?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Xs.Empty);const n=this._editor.getModel();if(n&&this._registry.has(n)&&!this._editor.getOption(104)){const e=this._registry.all(n).flatMap(i=>i.providedCodeActionKinds??[]);this._supportedCodeActions.set(e.join(" "));const t=new eN(this._editor,this._markerService,i=>{if(!i){this.setState(Xs.Empty);return}const s=i.selection.getStartPosition(),o=pt(async l=>{if(this._settingEnabledNearbyQuickfixes()&&i.trigger.type===1&&(i.trigger.triggerAction===$t.QuickFix||i.trigger.filter?.include?.contains(Te.QuickFix))){const c=await Ko(this._registry,n,i.selection,i.trigger,xn.None,l);this.codeActionsDisposable.value=c;const h=[...c.allActions];if(l.isCancellationRequested)return c.dispose(),_g;const u=c.validActions?.some(p=>p.action.kind&&Te.QuickFix.contains(new Ve(p.action.kind))&&!p.action.isAI),g=this._markerService.read({resource:n.uri});if(u){for(const p of c.validActions)p.action.command?.arguments?.some(f=>typeof f=="string"&&f.includes("_typescript.applyFixAllCodeAction"))&&(p.action.diagnostics=[...g.filter(f=>f.relatedInformation)]);return{validActions:c.validActions,allActions:h,documentation:c.documentation,hasAutoFix:c.hasAutoFix,hasAIFix:c.hasAIFix,allAIFixes:c.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=c}}}else if(!u&&g.length>0){const p=i.selection.getPosition();let f=p,_=Number.MAX_VALUE;const v=[...c.validActions];for(const x of g){const I=x.endColumn,b=x.endLineNumber,w=x.startLineNumber;if(b===p.lineNumber||w===p.lineNumber){f=new B(b,I);const E={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:i.trigger.filter?.include?i.trigger.filter?.include:Te.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:i.trigger.context?.notAvailableMessage||"",position:f}},P=new te(f.lineNumber,f.column,f.lineNumber,f.column),R=await Ko(this._registry,n,P,E,xn.None,l);if(l.isCancellationRequested)return R.dispose(),_g;if(R.validActions.length!==0){for(const D of R.validActions)D.action.command?.arguments?.some(F=>typeof F=="string"&&F.includes("_typescript.applyFixAllCodeAction"))&&(D.action.diagnostics=[...g.filter(F=>F.relatedInformation)]);c.allActions.length===0&&h.push(...R.allActions),Math.abs(p.column-I)<_?v.unshift(...R.validActions):v.push(...R.validActions)}_=Math.abs(p.column-I)}}const C=v.filter((x,I,b)=>b.findIndex(w=>w.action.title===x.action.title)===I);return C.sort((x,I)=>x.action.isPreferred&&!I.action.isPreferred?-1:!x.action.isPreferred&&I.action.isPreferred||x.action.isAI&&!I.action.isAI?1:!x.action.isAI&&I.action.isAI?-1:0),{validActions:C,allActions:h,documentation:c.documentation,hasAutoFix:c.hasAutoFix,hasAIFix:c.hasAIFix,allAIFixes:c.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=c}}}}if(i.trigger.type===1){const c=await Ko(this._registry,n,i.selection,i.trigger,xn.None,l);return this.codeActionsDisposable.value=c,c}const d=await Ko(this._registry,n,i.selection,i.trigger,xn.None,l);return this.codeActionsDisposable.value=d,d});i.trigger.type===1&&this._progressService?.showWhile(o,250);const r=new Xs.Triggered(i.trigger,s,o);let a=!1;this._state.type===1&&(a=this._state.trigger.type===1&&r.type===1&&r.trigger.type===2&&this._state.position!==r.position),a?setTimeout(()=>{this.setState(r)},500):this.setState(r)},void 0);t.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=t,this._codeActionOracle.value.trigger({type:2,triggerAction:$t.Default})}else this._supportedCodeActions.reset()}trigger(n){this._codeActionOracle.value?.trigger(n),this.codeActionsDisposable.dispose()}setState(n,e){n!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=n,!e&&!this._disposed&&this._onDidChangeState.fire(n))}},iN=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},nN=function(n,e){return function(t,i){e(t,i,n)}},qn,by=Ze("gutter-lightbulb",V.lightBulb,m(910,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),Cy=Ze("gutter-lightbulb-auto-fix",V.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.")),Sy=Ze("gutter-lightbulb-sparkle",V.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.")),wy=Ze("gutter-lightbulb-aifix-auto-fix",V.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.")),yy=Ze("gutter-lightbulb-sparkle-filled",V.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.")),Oi;(function(n){n.Hidden={type:0};class e{constructor(i,s,o,r){this.actions=i,this.trigger=s,this.editorPosition=o,this.widgetPosition=r,this.type=1}}n.Showing=e})(Oi||(Oi={}));function xy(n,e,t,i,s=!1){if(n.validActions.length<=0)return;let o,r=!1;n.allAIFixes?(o=s?yy:V.sparkleFilled,n.validActions.length===1&&(r=!0)):n.hasAutoFix?n.hasAIFix?o=s?wy:V.lightbulbSparkleAutofix:o=s?Cy:V.lightbulbAutofix:n.hasAIFix?o=s?Sy:V.lightbulbSparkle:o=s?by:V.lightBulb;let a;return r?a=m(915,"Run: {0}",n.validActions[0].action.title):n.hasAutoFix&&t?a=m(916,"Show Code Actions. Preferred Quick Fix Available ({0})",t):!n.hasAutoFix&&i?a=m(917,"Show Code Actions ({0})",i):a=m(918,"Show Code Actions"),{actions:n,trigger:e,icon:o,autoRun:r,title:a,isGutter:s}}var Ua=class extends O{static{qn=this}static{this.GUTTER_DECORATION=se.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:pe.asClassName(V.lightBulb),glyphMargin:{position:Zu.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}static _computeLightBulbInfo(e,t,i,s){if(e.type===1)return xy(e.actions,e.trigger,i,s,t)}constructor(e,t){super(),this._editor=e,this._keybindingService=t,this.onlyWithEmptySelection=!1,this._onClick=this._register(new Q),this.onClick=this._onClick.event,this._state=Ne(this,Oi.Hidden),this._gutterState=Ne(this,Oi.Hidden),this._combinedInfo=T(this,i=>{const s=this._gutterState.read(i);if(s.type===1)return qn._computeLightBulbInfo(s,!0,this._preferredKbLabel.read(i),this._quickFixKbLabel.read(i));const o=this._state.read(i);if(o.type===1)return qn._computeLightBulbInfo(o,!1,this._preferredKbLabel.read(i),this._quickFixKbLabel.read(i))}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+by.id,"codicon-"+wy.id,"codicon-"+Cy.id,"codicon-"+Sy.id,"codicon-"+yy.id],this._preferredKbLabel=Ne(this,void 0),this._quickFixKbLabel=Ne(this,void 0),this.gutterDecoration=qn.GUTTER_DECORATION,this._domNode=W("div.lightBulbWidget"),this._domNode.role="listbox",this._register(cw.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(i=>{const s=this._editor.getModel(),o=this._state.get();(o.type!==1||!s||o.editorPosition.lineNumber>=s.getLineCount())&&this.hide();const r=this._gutterState.get();(r.type!==1||!s||r.editorPosition.lineNumber>=s.getLineCount())&&this.gutterHide()})),this._register(CT(this._domNode,i=>{const s=this._state.get();if(s.type!==1)return;this._editor.focus(),i.preventDefault();const{top:o,height:r}=kt(this._domNode),a=this._editor.getOption(75);let l=Math.floor(a/3);s.widgetPosition.position!==null&&s.widgetPosition.position.lineNumber<s.editorPosition.lineNumber&&(l+=a),this._onClick.fire({x:i.posx,y:o+r+l,actions:s.actions,trigger:s.trigger})})),this._register(de(this._domNode,"mouseenter",i=>{(i.buttons&1)===1&&this.hide()})),this._register(qe.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding("editor.action.autoFix")?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding("editor.action.quickFix")?.getLabel()??void 0,void 0)})),this._register(he(i=>{const s=this._combinedInfo.read(i);this._updateLightBulbTitleAndIcon(s),this._updateGutterDecorationOptions(s)})),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 s=this._gutterState.get();if(s.type!==1)return;this._editor.focus();const{top:o,height:r}=kt(i.target.element),a=this._editor.getOption(75);let l=Math.floor(a/3);s.widgetPosition.position!==null&&s.widgetPosition.position.lineNumber<s.editorPosition.lineNumber&&(l+=a),this._onClick.fire({x:i.event.posx,y:o+r+l,actions:s.actions,trigger:s.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===ea.Off)return this.gutterHide(),this.hide();const s=this._editor.getModel();if(!s)return this.gutterHide(),this.hide();const{lineNumber:o,column:r}=s.validatePosition(i),a=s.getOptions().tabSize,l=this._editor.getOptions().get(59),d=s.getLineContent(o),c=ym(d,a),h=l.spaceWidth*c>22,u=x=>x>2&&this._editor.getTopForLineNumber(x)===this._editor.getTopForLineNumber(x-1),g=this._editor.getLineDecorations(o);let p=!1;if(g)for(const x of g){const I=x.options.glyphMarginClassName;if(I&&!this.lightbulbClasses.some(b=>I.includes(b))){p=!0;break}}let f=o,_=1;if(!h){const x=I=>{const b=s.getLineContent(I);return/^\s*$|^\s+/.test(b)||b.length<=_};if(o>1&&!u(o-1)){const I=o===s.getLineCount(),b=o>1&&x(o-1),w=!I&&x(o+1),E=x(o),P=!w&&!b;if(!w&&!b&&!p)return this._gutterState.set(new Oi.Showing(e,t,i,{position:{lineNumber:f,column:_},preference:qn._posPref}),void 0),this.renderGutterLightbub(),this.hide();b||I||b&&!E?f-=1:(w||P&&E)&&(f+=1)}else if(o===1&&(o===s.getLineCount()||!x(o+1)&&!x(o)))if(this._gutterState.set(new Oi.Showing(e,t,i,{position:{lineNumber:f,column:_},preference:qn._posPref}),void 0),p)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(o<s.getLineCount()&&!u(o+1))f+=1;else if(r*l.spaceWidth<22)return this.hide();_=/^\S\s*$/.test(s.getLineContent(f))?2:1}this._state.set(new Oi.Showing(e,t,i,{position:{lineNumber:f,column:_},preference:qn._posPref}),void 0),this._gutterDecorationID&&(this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide());const v=e.validActions,C=e.validActions[0].action.kind;if(v.length!==1||!C){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this._state.get()!==Oi.Hidden&&(this._state.set(Oi.Hidden,void 0),this._editor.layoutContentWidget(this))}gutterHide(){this._gutterState.get()!==Oi.Hidden&&(this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID),this._gutterState.set(Oi.Hidden,void 0))}_updateLightBulbTitleAndIcon(e){this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!(!e||e.isGutter)&&(this._domNode.title=e.title,this._iconClasses=pe.asClassNameArray(e.icon),this._domNode.classList.add(...this._iconClasses))}_updateGutterDecorationOptions(e){!e||!e.isGutter||(this.gutterDecoration=se.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:pe.asClassName(e.icon),glyphMargin:{position:Zu.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 y(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 y(t,0,t,0)),i.changeDecorationOptions(e,this.gutterDecoration)})}};Ua=qn=iN([nN(1,Oe)],Ua);var sN=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ki=function(n,e){return function(t,i){e(t,i,n)}},Wo,oN="quickfix-edit-highlight",co=class extends O{static{Wo=this}static{this.ID="editor.contrib.codeActionController"}static get(e){return e.getContribution(Wo.ID)}constructor(e,t,i,s,o,r,a,l,d,c,h,u){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=d,this._instantiationService=c,this._progressService=h,this._keybindingService=u,this._activeCodeActions=this._register(new Je),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 tN(this._editor,o.codeActionProvider,t,i,r,l)),this._register(this._model.onDidChangeState(g=>this.update(g))),this._register(qe.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding("editor.action.autoFix")?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding("editor.action.quickFix")?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new Rm(()=>{const g=this._editor.getContribution(Ua.ID);return g&&(this._register(g.onClick(p=>this.showCodeActionsFromLightbulb(p.actions,p))),g.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection),g}),this._resolver=s.createInstance(mg),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],s=i.action.command;s&&s.id==="inlineChat.start"&&s.arguments&&s.arguments.length>=1&&s.arguments[0]&&(s.arguments[0]={...s.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,s){if(!this._editor.hasModel())return;qt.get(this._editor)?.closeMessage();const o=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:s,context:{notAvailableMessage:e,position:o}})}_trigger(e){return this._model.trigger(e)}async applyCodeAction(e,t,i,s){const o=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(G1,e,s,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:$t.QuickFix,filter:{}}),o.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(i){we(i);return}if(!this._disposed&&this._editor.getSelection()?.startLineNumber===e.position.lineNumber)if(this._lightBulbWidget.value?.update(t,e.trigger,e.position),this._lightBulbInfoObs.set(xy(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 o=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,t);if(o&&o.action.disabled){qt.get(this._editor)?.showMessage(o.action.disabled,e.trigger.context.position),t.dispose();return}}}const i=!!e.trigger.filter?.include;if(e.trigger.context&&(!t.allActions.length||!i&&!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:i,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]}static{this.DECORATION=se.register({description:"quickfix-highlight",className:oN})}async showCodeActionList(e,t,i){const s=this._editor.createDecorationsCollection(),o=this._editor.getDomNode();if(!o)return;const r=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!r.length)return;const a=B.isIPosition(t)?this.toCoords(t):t;this._actionWidgetService.show("codeActionWidget",!0,Q1(r,this._shouldShowHeaders(),this._resolver.getResolver()),{onSelect:async(l,d)=>{this.applyCodeAction(l,!0,!!d,i.fromLightbulb?ns.FromAILightbulb:ns.FromCodeActions),this._actionWidgetService.hide(!1),s.clear()},onHide:l=>{this._editor?.focus(),s.clear()},onHover:async(l,d)=>{if(d.isCancellationRequested)return;let c=!1;const h=l.action.kind;if(h){const u=new Ve(h);c=[Te.RefactorExtract,Te.RefactorInline,Te.RefactorRewrite,Te.RefactorMove,Te.Source].some(g=>g.contains(u))}return{canPreview:c||!!l.action.edit?.edits.length}},onFocus:l=>{if(l&&l.action){const d=l.action.ranges,c=l.action.diagnostics;if(s.clear(),d&&d.length>0){const h=c&&c?.length>1?c.map(u=>({range:u,options:Wo.DECORATION})):d.map(u=>({range:u,options:Wo.DECORATION}));s.set(h)}else if(c&&c.length>0){const h=c.map(g=>({range:g,options:Wo.DECORATION}));s.set(h);const u=c[0];if(u.startLineNumber&&u.startColumn){const g=this._editor.getModel()?.getWordAtPosition({lineNumber:u.startLineNumber,column:u.startColumn})?.word;vs(m(899,"Context: {0} at line {1} and column {2}.",g,u.startLineNumber,u.startColumn))}}}else s.clear()}},a,o,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=kt(this._editor.getDomNode());return{x:i.left+t.left,y:i.top+t.top+t.height}}_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 s=e.documentation.map(o=>({id:o.id,label:o.title,tooltip:o.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(o.id,...o.arguments??[])}));return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&s.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))}),s}};co=Wo=sN([ki(1,lh),ki(2,ve),ki(3,ie),ki(4,Z),ki(5,lr),ki(6,ht),ki(7,xe),ki(8,Ni),ki(9,ie),ki(10,lr),ki(11,Oe)],co);al((n,e)=>{((s,o)=>{o&&e.addRule(`.monaco-editor ${s} { background-color: ${o}; }`)})(".quickfix-edit-highlight",n.getColor(YE));const i=n.getColor(pw);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Ta(n.type)?"dotted":"solid"} ${i}; box-sizing: border-box; }`)});function wl(n){return N.regex(vy.keys()[0],new RegExp("(\\s|^)"+ka(n.value)+"\\b"))}var Gm={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 bo(n,e,t,i,s=$t.Default){n.hasModel()&&co.get(n)?.manualTriggerAtCurrentPosition(e,s,t,i)}var rN=class extends gi{constructor(){super({id:uy,title:L(889,"Quick Fix..."),precondition:N.and(S.writable,S.hasCodeActionsProvider),icon:V.lightBulb,f1:!0,keybinding:{when:S.textInputFocus,primary:2137,weight:100},menu:{id:$.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:N.and(S.writable,S.hasCodeActionsProvider)}})}runEditorCommand(n,e){return bo(e,m(873,"No code actions available"),void 0,void 0,$t.QuickFix)}},aN=class extends Mt{constructor(){super({id:hy,precondition:N.and(S.writable,S.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:Gm}]}})}runEditorCommand(n,e,t){const i=hh.fromUser(t,{kind:Ve.Empty,apply:"ifSingle"});return bo(e,typeof t?.kind=="string"?i.preferred?m(874,"No preferred code actions for '{0}' available",t.kind):m(875,"No code actions for '{0}' available",t.kind):i.preferred?m(876,"No preferred code actions available"):m(877,"No code actions available"),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}},lN=class extends M{constructor(){super({id:gy,label:L(890,"Refactor..."),precondition:N.and(S.writable,S.hasCodeActionsProvider),kbOpts:{kbExpr:S.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:N.and(S.writable,wl(Te.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:Gm}]}})}run(n,e,t){const i=hh.fromUser(t,{kind:Te.Refactor,apply:"never"});return bo(e,typeof t?.kind=="string"?i.preferred?m(878,"No preferred refactorings for '{0}' available",t.kind):m(879,"No refactorings for '{0}' available",t.kind):i.preferred?m(880,"No preferred refactorings available"):m(881,"No refactorings available"),{include:Te.Refactor.contains(i.kind)?i.kind:Ve.None,onlyIncludePreferredActions:i.preferred},i.apply,$t.Refactor)}},dN=class extends M{constructor(){super({id:py,label:L(891,"Source Action..."),precondition:N.and(S.writable,S.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:N.and(S.writable,wl(Te.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:Gm}]}})}run(n,e,t){const i=hh.fromUser(t,{kind:Te.Source,apply:"never"});return bo(e,typeof t?.kind=="string"?i.preferred?m(882,"No preferred source actions for '{0}' available",t.kind):m(883,"No source actions for '{0}' available",t.kind):i.preferred?m(884,"No preferred source actions available"):m(885,"No source actions available"),{include:Te.Source.contains(i.kind)?i.kind:Ve.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply,$t.SourceAction)}},cN=class extends M{constructor(){super({id:fy,label:L(892,"Organize Imports"),precondition:N.and(S.writable,wl(Te.SourceOrganizeImports)),kbOpts:{kbExpr:S.textInputFocus,primary:1581,weight:100},metadata:{description:L(893,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(n,e){return bo(e,m(886,"No organize imports action available"),{include:Te.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",$t.OrganizeImports)}},hN=class extends M{constructor(){super({id:my,label:L(894,"Fix All"),precondition:N.and(S.writable,wl(Te.SourceFixAll))})}run(n,e){return bo(e,m(887,"No fix all action available"),{include:Te.SourceFixAll,includeSourceActions:!0},"ifSingle",$t.FixAll)}},uN=class extends M{constructor(){super({id:U1,label:L(895,"Auto Fix..."),precondition:N.and(S.writable,wl(Te.QuickFix)),kbOpts:{kbExpr:S.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(n,e){return bo(e,m(888,"No auto fixes available"),{include:Te.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",$t.AutoFix)}};ce(co.ID,co,3);ce(Ua.ID,Ua,4);fe(rN);k(lN);k(dN);k(cN);k(uN);k(hN);G(new aN);ln.as(Zc.Configuration).registerConfiguration({...Am,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:m(896,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});ln.as(Zc.Configuration).registerConfiguration({...Am,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}}});ln.as(Zc.Configuration).registerConfiguration({...Am,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}}});var rc=class Iy{constructor(){this.lenses=[]}static{this.Empty=new Iy}dispose(){this._store?.dispose()}get isDisposed(){return this._store?.isDisposed??!1}add(e,t){Lm(e)&&(this._store??=new A,this._store.add(e));for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}};async function Ly(n,e,t){const i=n.ordered(e),s=new Map,o=new rc,r=i.map(async(a,l)=>{s.set(a,l);try{const d=await Promise.resolve(a.provideCodeLenses(e,t));d&&o.add(d,a)}catch(d){tt(d)}});return await Promise.all(r),t.isCancellationRequested?(o.dispose(),rc.Empty):(o.lenses=o.lenses.sort((a,l)=>a.symbol.range.startLineNumber<l.symbol.range.startLineNumber?-1:a.symbol.range.startLineNumber>l.symbol.range.startLineNumber?1:s.get(a.provider)<s.get(l.provider)?-1:s.get(a.provider)>s.get(l.provider)?1:a.symbol.range.startColumn<l.symbol.range.startColumn?-1:a.symbol.range.startColumn>l.symbol.range.startColumn?1:0),o)}Re.registerCommand("_executeCodeLensProvider",function(n,...e){let[t,i]=e;Se(De.isUri(t)),Se(typeof i=="number"||!i);const{codeLensProvider:s}=n.get(Z),o=n.get(Kt).getModel(t);if(!o)throw Ln();const r=[],a=new A;return Ly(s,o,ue.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(o,c.symbol,ue.None)).then(h=>r.push(h||c.symbol)));return Promise.all(d)}).then(()=>r).finally(()=>{setTimeout(()=>a.dispose(),100)})});var gN=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},pN=function(n,e){return function(t,i){e(t,i,n)}},Dy=dn("ICodeLensCache"),Wv=class{constructor(n,e){this.lineCount=n,this.data=e}},vg=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new dl(20,.75);const t="codelens/cache";v0(_d,()=>e.remove(t,1));const i="codelens/cache2",s=e.get(i,1,"{}");this._deserialize(s);const o=qe.filter(e.onWillSaveState,r=>r.reason===bm.SHUTDOWN);qe.once(o)(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}})),s=new rc;s.add({lenses:i},this._fakeProvider);const o=new Wv(e.getLineCount(),s);this._cache.set(e.uri.toString(),o)}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 s=new Set;for(const o of i.data.lenses)s.add(o.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...s.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const i in t){const s=t[i],o=[];for(const a of s.lines)o.push({range:new y(a,1,a,11)});const r=new rc;r.add({lenses:o},this._fakeProvider),this._cache.set(i,new Wv(s.lineCount,r))}}catch{}}};vg=gN([pN(0,Ti)],vg);Wn(Dy,vg,1);var fN=class{constructor(n,e,t){this.afterColumn=1073741824,this.afterLineNumber=n,this.heightInPx=e,this._onHeight=t,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(n){this._lastHeight===void 0?this._lastHeight=n:this._lastHeight!==n&&(this._lastHeight=n,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}},mN=class bg{static{this._idPool=0}constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${bg._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let s=!1;for(let o=0;o<e.length;o++){const r=e[o];if(r&&(s=!0,r.command)){const a=w0(r.command.title.trim());if(r.command.id){const l=`c${bg._idPool++}`;i.push(W("a",{id:l,title:r.command.tooltip,role:"button"},...a)),this._commands.set(l,r.command)}else i.push(W("span",{title:r.command.tooltip},...a));o+1<e.length&&i.push(W("span",void 0," | "))}}s?(jd(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):jd(this._domNode,W("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}},Gh=class{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(n,e){this._addDecorations.push(n),this._addDecorationsCallbacks.push(e)}removeDecoration(n){this._removeDecorations.push(n)}commit(n){const e=n.deltaDecorations(this._removeDecorations,this._addDecorations);for(let t=0,i=e.length;t<i;t++)this._addDecorationsCallbacks[t](e[t])}},Vv=se.register({collapseOnReplaceEdit:!0,description:"codelens"}),Bv=class{constructor(n,e,t,i,s,o){this._isDisposed=!1,this._editor=e,this._data=n,this._decorationIds=[];let r;const a=[];this._data.forEach((l,d)=>{l.symbol.command&&a.push(l.symbol),t.addDecoration({range:l.symbol.range,options:Vv},c=>this._decorationIds[d]=c),r?r=y.plusRange(r,l.symbol.range):r=y.lift(l.symbol.range)}),this._viewZone=new fN(r.startLineNumber-1,s,o),this._viewZoneId=i.addZone(this._viewZone),a.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(a,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new mN(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(n,e){this._decorationIds.forEach(n.removeDecoration,n),this._decorationIds=[],e?.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((n,e)=>{const t=this._editor.getModel().getDecorationRange(n),i=this._data[e].symbol;return!!(t&&y.isEmpty(i.range)===t.isEmpty())})}updateCodeLensSymbols(n,e){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],this._data=n,this._data.forEach((t,i)=>{e.addDecoration({range:t.symbol.range,options:Vv},s=>this._decorationIds[i]=s)})}updateHeight(n,e){this._viewZone.heightInPx=n,e.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(n){if(!this._viewZone.isVisible())return null;for(let e=0;e<this._decorationIds.length;e++){const t=n.getDecorationRange(this._decorationIds[e]);t&&(this._data[e].symbol.range=t)}return this._data}updateCommands(n){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(n,!0);for(let e=0;e<this._data.length;e++){const t=n[e];if(t){const{symbol:i}=this._data[e];i.command=t.command||i.command}}}getCommand(n){return this._contentWidget?.getCommand(n)}getLineNumber(){const n=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return n?n.startLineNumber:-1}update(n){if(this.isValid()){const e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);e&&(this._viewZone.afterLineNumber=e.startLineNumber-1,n.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(e.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}},_N=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Wr=function(n,e){return function(t,i){e(t,i,n)}},za=class{static{this.ID="css.editor.codeLens"}constructor(e,t,i,s,o,r){this._editor=e,this._languageFeaturesService=t,this._commandService=s,this._notificationService=o,this._codeLensCache=r,this._disposables=new A,this._localToDispose=new A,this._lenses=[],this._oldCodeLensModels=new A,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new at(()=>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),s=this._editor.getOption(59),{style:o}=this._editor.getContainerDomNode();o.setProperty("--vscode-editorCodeLens-lineHeight",`${e}px`),o.setProperty("--vscode-editorCodeLens-fontSize",`${t}px`),o.setProperty("--vscode-editorCodeLens-fontFeatureSettings",s.fontFeatureSettings),i&&(o.setProperty("--vscode-editorCodeLens-fontFamily",i),o.setProperty("--vscode-editorCodeLens-fontFamilyDefault",fm.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&&gs(()=>{const s=this._codeLensCache.get(e);t===s&&(this._codeLensCache.delete(e),this._onModelChange())},3e4,this._localToDispose);return}for(const s of this._languageFeaturesService.codeLensProvider.all(e))if(typeof s.onDidChange=="function"){const o=s.onDidChange(()=>i.schedule());this._localToDispose.add(o)}const i=new at(()=>{const s=Date.now();this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=pt(o=>Ly(this._languageFeaturesService.codeLensProvider,e,o)),this._getCodeLensModelPromise.then(o=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=o,this._codeLensCache.put(e,o);const r=this._provideCodeLensDebounce.update(e,Date.now()-s);i.delay=r,this._renderCodeLensSymbols(o),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(s=>{this._editor.changeViewZones(o=>{const r=[];let a=-1;this._lenses.forEach(d=>{!d.isValid()||a===d.getLineNumber()?r.push(d):(d.update(o),a=d.getLineNumber())});const l=new Gh;r.forEach(d=>{d.dispose(l,o),this._lenses.splice(this._lenses.indexOf(d),1)}),l.commit(s)})}),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(s=>{s.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(ke(()=>{if(this._editor.getModel()){const s=or.capture(this._editor);this._editor.changeDecorations(o=>{this._editor.changeViewZones(r=>{this._disposeAllLenses(o,r)})}),s.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(s=>{if(s.target.type!==9)return;let o=s.target.element;if(o?.tagName==="SPAN"&&(o=o.parentElement),o?.tagName==="A")for(const r of this._lenses){const a=r.getCommand(o);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new Gh;for(const s of this._lenses)s.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 s;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(s&&s[s.length-1].symbol.range.startLineNumber===l?s.push(a):(s=[a],i.push(s)))}if(!i.length&&!this._lenses.length)return;const o=or.capture(this._editor),r=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const d=new Gh;let c=0,h=0;for(;h<i.length&&c<this._lenses.length;){const u=i[h][0].symbol.range.startLineNumber,g=this._lenses[c].getLineNumber();g<u?(this._lenses[c].dispose(d,l),this._lenses.splice(c,1)):g===u?(this._lenses[c].updateCodeLensSymbols(i[h],d),h++,c++):(this._lenses.splice(c,0,new Bv(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 Bv(i[h],this._editor,d,l,r.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),h++;d.commit(a)})}),o.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 s=Date.now(),o=pt(r=>{const a=t.map((l,d)=>{const c=new Array(l.length),h=l.map((u,g)=>!u.symbol.command&&typeof u.provider.resolveCodeLens=="function"?Promise.resolve(u.provider.resolveCodeLens(e,u.symbol,r)).then(p=>{c[g]=p},tt):(c[g]=u.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=o,this._resolveCodeLensesPromise.then(()=>{const r=this._resolveCodeLensesDebounce.update(e,Date.now()-s);this._resolveCodeLensesScheduler.delay=r,this._currentCodeLensModel&&this._codeLensCache.put(e,this._currentCodeLensModel),this._oldCodeLensModels.clear(),o===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},r=>{we(r),o===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,this._currentCodeLensModel?.isDisposed?void 0:this._currentCodeLensModel}};za=_N([Wr(1,Z),Wr(2,Ri),Wr(3,ht),Wr(4,Et),Wr(5,Dy)],za);ce(za.ID,za,1);k(class extends M{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:S.hasCodeLensProvider,label:L(920,"Show CodeLens Commands for Current Line")})}async run(e,t){if(!t.hasModel())return;const i=e.get(Di),s=e.get(ht),o=e.get(Et),r=t.getSelection().positionLineNumber,a=t.getContribution(za.ID);if(!a)return;const l=await a.getModel();if(!l)return;const d=[];for(const u of l.lenses)u.symbol.command&&u.symbol.range.startLineNumber===r&&d.push({label:u.symbol.command.title,command:u.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(g=>g.symbol.range.startLineNumber===r&&g.symbol.command?.title===h.title);if(!u||!u.symbol.command)return;h=u.symbol.command}try{await s.executeCommand(h.id,...h.arguments||[])}catch(u){o.error(u)}}});var Zh=class{constructor(n,e,t,i){this.priority=n,this.range=e,this.initialMousePosX=t,this.initialMousePosY=i,this.type=1}equals(n){return n.type===1&&this.range.equalsRange(n.range)}canAdoptVisibleHover(n,e){return n.type===1&&e.lineNumber===this.range.startLineNumber}},ia=class{constructor(n,e,t,i,s,o){this.priority=n,this.owner=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=s,this.supportsMarkerHover=o,this.type=2}equals(n){return n.type===2&&this.owner===n.owner}canAdoptVisibleHover(n,e){return n.type===2&&this.owner===n.owner}},ho=class{constructor(n,e){this.renderedHoverParts=n,this.disposables=e}dispose(){for(const n of this.renderedHoverParts)n.dispose();this.disposables?.dispose()}},Co=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}},Ey=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Cg=function(n,e){return function(t,i){e(t,i,n)}},ja=class{constructor(e){this._editorWorkerService=e}async provideDocumentColors(e,t){return this._editorWorkerService.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const s=t.range,o=t.color,r=new me(new ur(Math.round(255*o.red),Math.round(255*o.green),Math.round(255*o.blue),o.alpha)),a=me.Format.CSS.formatRGB(r),l=me.Format.CSS.formatHSL(r),d=me.Format.CSS.formatHexA(r,!0),c=[];return c.push({label:a,textEdit:{range:s,text:a}}),c.push({label:l,textEdit:{range:s,text:l}}),c.push({label:d,textEdit:{range:s,text:d}}),c}};ja=Ey([Cg(0,An)],ja);var Sg=class extends O{constructor(e,t){super(),this._register(e.colorProvider.register("*",new ja(t)))}};Sg=Ey([Cg(0,Z),Cg(1,An)],Sg);async function Ry(n,e,t,i="auto"){return Zm(new vN,n,e,t,i)}function Ty(n,e,t,i){return Promise.resolve(t.provideColorPresentations(n,e,i))}var vN=class{constructor(){}async compute(n,e,t,i){const s=await n.provideDocumentColors(e,t);if(Array.isArray(s))for(const o of s)i.push({colorInfo:o,provider:n});return Array.isArray(s)}},bN=class{constructor(){}async compute(n,e,t,i){const s=await n.provideDocumentColors(e,t);if(Array.isArray(s))for(const o of s)i.push({range:o.range,color:[o.color.red,o.color.green,o.color.blue,o.color.alpha]});return Array.isArray(s)}},CN=class{constructor(n){this.colorInfo=n}async compute(n,e,t,i){const s=await n.provideColorPresentations(e,this.colorInfo,ue.None);return Array.isArray(s)&&i.push(...s),Array.isArray(s)}};async function Zm(n,e,t,i,s){let o=!1,r;const a=[],l=e.ordered(t);for(let d=l.length-1;d>=0;d--){const c=l[d];if(s!=="always"&&c instanceof ja)r=c;else try{await n.compute(c,t,i,a)&&(o=!0)}catch(h){tt(h)}}return o?a:r&&s!=="never"?(await n.compute(r,t,i,a),a):[]}function Ny(n,e){const{colorProvider:t}=n.get(Z),i=n.get(Kt).getModel(e);if(!i)throw Ln();return{model:i,colorProviderRegistry:t,defaultColorDecoratorsEnablement:n.get(xe).getValue("editor.defaultColorDecorators",{resource:e})}}var SN=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xh=function(n,e){return function(t,i){e(t,i,n)}},wg,ky=Object.create({}),gr=class extends O{static{wg=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1e3}constructor(e,t,i,s){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new A),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new wN),this._colorDecorationClassRefs=this._register(new A),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new kS(this._editor)),this._debounceInformation=s.for(i.colorProvider,"Document Colors",{min:wg.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(o=>{const r=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167);const a=r!==this._isColorDecoratorsEnabled||o.hasChanged(27),l=o.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 s=i.colorDecorators;if(s&&s.enable!==void 0&&!s.enable)return s.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 ll,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}async beginCompute(){this._computePromise=pt(async e=>{const t=this._editor.getModel();if(!t)return[];const i=new hi(!1),s=await Ry(this._languageFeaturesService.colorProvider,t,e,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(t,i.elapsed()),s});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:se.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((s,o)=>this._colorDatas.set(s,e[o]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(27);for(let o=0;o<e.length&&t.length<i;o++){const{red:r,green:a,blue:l,alpha:d}=e[o].colorInfo.color,c=new ur(Math.round(r*255),Math.round(a*255),Math.round(l*255),d),h=`rgba(${c.r}, ${c.g}, ${c.b}, ${c.a})`,u=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:h}));t.push({range:{startLineNumber:e[o].colorInfo.range.startLineNumber,startColumn:e[o].colorInfo.range.startColumn,endLineNumber:e[o].colorInfo.range.endLineNumber,endColumn:e[o].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:" ",inlineClassName:`${u.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:ky}}})}const s=i<e.length?i:!1;this._decoratorLimitReporter.update(e.length,s),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(y.fromPositions(e,e)).filter(s=>this._colorDatas.has(s.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};gr=wg=SN([Xh(1,xe),Xh(2,Z),Xh(3,Ri)],gr);var wN=class extends O{constructor(){super(...arguments),this._onDidChange=this._register(new Q),this._computed=0,this._limited=!1}update(n,e){(n!==this._computed||e!==this._limited)&&(this._computed=n,this._limited=e,this._onDidChange.fire())}},yN="editor.action.showHover",xN="editor.action.showDefinitionPreviewHover",IN="editor.action.hideHover",LN="editor.action.scrollUpHover",DN="editor.action.scrollDownHover",EN="editor.action.scrollLeftHover",RN="editor.action.scrollRightHover",TN="editor.action.pageUpHover",NN="editor.action.pageDownHover",kN="editor.action.goToTopHover",PN="editor.action.goToBottomHover",Xm="editor.action.increaseHoverVerbosityLevel",ON=m(1145,"Increase Hover Verbosity Level"),Ym="editor.action.decreaseHoverVerbosityLevel",MN=m(1146,"Decrease Hover Verbosity Level"),yg="editor.action.hideLongLineWarningHover",yl="editor.action.inlineSuggest.commit",uh="editor.action.inlineSuggest.commitAlternativeAction",Py="editor.action.inlineSuggest.showPrevious",Oy="editor.action.inlineSuggest.showNext",My="editor.action.inlineSuggest.jump",Ay="editor.action.inlineSuggest.hide",xg="editor.action.inlineSuggest.toggleShowCollapsed",Uv="editor.action.inlineSuggest.renameSymbol",Jm=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bi=function(n,e){return function(t,i){e(t,i,n)}},Sd,Ig=class extends O{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=Dt(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=T(this,s=>{const o=this.model.read(s)?.primaryGhostText.read(s);if(!this.alwaysShowToolbar.read(s)||!o||o.parts.length===0)return this.sessionPosition=void 0,null;const r=o.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==o.lineNumber&&(this.sessionPosition=void 0);const a=new B(o.lineNumber,Math.min(r,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=a,a}),this._register(bl((s,o)=>{const r=this.model.read(s);if(!r||!this.alwaysShowToolbar.read(s))return;const a=T(d=>{const c=d.store.add(this.instantiationService.createInstance(pr.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(he(h=>{this.position.read(h)&&r.lastTriggerKind.read(h)!==Yt.Explicit&&r.triggerExplicitly()})),c}),l=Ts(this,(d,c)=>!!this.position.read(d)||!!c);o.add(he(d=>{l.read(d)&&a.read(d)}))}))}};Ig=Jm([bi(2,ie)],Ig);var AN=Ze("inline-suggestion-hints-next",V.chevronRight,m(1250,"Icon for show next parameter hint.")),FN=Ze("inline-suggestion-hints-previous",V.chevronLeft,m(1251,"Icon for show previous parameter hint.")),pr=class extends O{static{Sd=this}static{this.hot=mm(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(e,t,i){const s=new sr(e,t,i,!0,()=>this._commandService.executeCommand(e));return s.tooltip=this.keybindingService.appendKeybinding(t,e,this._contextKeyService),s}constructor(e,t,i,s,o,r,a,l,d,c,h,u,g){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=s,this._suggestionCount=o,this._extraCommands=r,this._warning=a,this._relayout=l,this._commandService=d,this.keybindingService=h,this._contextKeyService=u,this._menuService=g,this.id=`InlineSuggestionHintsContentWidget${Sd.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=T(p=>{const f=this._warning.read(p);if(f)return typeof f.message=="string"?f.message:p.store.add(Kc(f.message)).element}),this._warningMessageNode=q.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:T(p=>this._warning.read(p)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=Na("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,Na("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(Py,m(1252,"Previous"),pe.asClassName(FN))),this.availableSuggestionCountAction=this._register(new sr("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(Oy,m(1253,"Next"),pe.asClassName(AN))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu($.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new at(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new at(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(he(p=>{this._warningMessageContentNode.read(p),this._warningMessageNode.readEffect(p),this._relayout()})),this.toolBar=this._register(c.createInstance(Lg,this.nodes.toolBar,$.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:p=>p.startsWith("primary")},actionViewItemProvider:(p,f)=>{if(p instanceof ro)return c.createInstance(WN,p,void 0);if(p===this.availableSuggestionCountAction){const _=new HN(void 0,p,{label:!0,icon:!1});return _.setClass("availableSuggestionCount"),_}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(p=>{Sd._dropDownVisible=p})),this._register(he(p=>{this._position.read(p),this.editor.layoutContentWidget(this)})),this._register(he(p=>{const f=this._suggestionCount.read(p),_=this._currentSuggestionIdx.read(p);f!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${_+1}/${f}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),f!==void 0&&f>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(he(p=>{const f=this._extraCommands.read(p).map(_=>({class:void 0,id:_.command.id,enabled:!0,tooltip:_.command.tooltip||"",label:_.command.title,run:()=>this._commandService.executeCommand(_.command.id,..._.command.arguments??[])}));for(const[_,v]of this.inlineCompletionsActionsMenus.getActions())for(const C of v)C instanceof ro&&f.push(C);f.length>0&&f.unshift(new Ma),this.toolBar.setAdditionalSecondaryActions(f)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};pr=Sd=Jm([bi(8,ht),bi(9,ie),bi(10,Oe),bi(11,ve),bi(12,Es)],pr);var HN=class extends eg{constructor(){super(...arguments),this._className=void 0}setClass(n){this._className=n}render(n){super.render(n),this._className&&n.classList.add(this._className)}updateTooltip(){}},WN=class extends cm{updateLabel(){const n=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!n)return super.updateLabel();if(this.label){const e=Na("div.keybinding").root;this._register(new hl(e,ml,{disableTitle:!0,...yS})).set(n),this.label.textContent=this._action.label,this.label.appendChild(e),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}},Lg=class extends LT{constructor(e,t,i,s,o,r,a,l,d){super(e,{resetMenu:t,...i},s,o,r,a,l,d),this.menuId=t,this.options2=i,this.menuService=s,this.contextKeyService=o,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}=ES(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){Bi(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){Bi(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};Lg=Jm([bi(3,Es),bi(4,ve),bi(5,gl),bi(6,Oe),bi(7,ht),bi(8,Ds)],Lg);function gh(n,e,t){const i=kt(n);return!(e<i.left+3||e>i.left+i.width-3||t<i.top+3||t>i.top+i.height-3)}function Fy(n,e,t){return n==="on"?!0:n==="off"?!1:Qm(e,t.event)}function Qm(n,e){return n==="altKey"?e.ctrlKey||e.metaKey:e.altKey}var VN=class{constructor(n,e,t,i){this.value=n,this.isComplete=e,this.hasLoadingMessage=t,this.options=i}},Hy=class extends O{constructor(n,e){super(),this._editor=n,this._computer=e,this._onResult=this._register(new Q),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new Yh(t=>this._triggerAsyncComputation(t),0)),this._syncComputationScheduler=this._register(new Yh(t=>this._triggerSyncComputation(t),0)),this._loadingMessageScheduler=this._register(new Yh(t=>this._triggerLoadingMessage(t),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(n,e){this._options=e,this._state=n,this._fireResult(e)}_triggerAsyncComputation(n){this._setState(2,n),this._syncComputationScheduler.schedule(n,this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=iE(e=>this._computer.computeAsync(n,e)),(async()=>{try{for await(const e of this._asyncIterable)e&&(this._result.push(e),this._fireResult(n));this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0,n)}catch(e){we(e)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(n){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync(n))),this._setState(this._asyncIterableDone?0:3,n)}_triggerLoadingMessage(n){this._state===3&&this._setState(4,n)}_fireResult(n){if(this._state===1||this._state===2)return;const e=this._state===0,t=this._state===4;this._onResult.fire(new VN(this._result.slice(0),e,t,n))}start(n,e){if(n===0)this._state===0&&(this._setState(1,e),this._asyncComputationScheduler.schedule(e,this._firstWaitTime),this._loadingMessageScheduler.schedule(e,this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(e),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(e);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(e)}}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}},Yh=class extends O{constructor(n,e){super(),this._scheduler=this._register(new at(()=>n(this._options),e))}schedule(n,e){this._options=n,this._scheduler.schedule(e)}cancel(){this._scheduler.cancel()}},e_=class{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new Q,this._onDidResize=new Q,this._sashListener=new A,this._size=new Le(0,0),this._minSize=new Le(0,0),this._maxSize=new Le(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new qo(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new qo(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new qo(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:Q_.North}),this._southSash=new qo(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:Q_.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let n,e=0,t=0;this._sashListener.add(qe.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{n===void 0&&(this._onDidWillResize.fire(),n=this._size,e=0,t=0)})),this._sashListener.add(qe.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{n!==void 0&&(n=void 0,e=0,t=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(i=>{n&&(t=i.currentX-i.startX,this.layout(n.height+e,n.width+t),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(i=>{n&&(t=-(i.currentX-i.startX),this.layout(n.height+e,n.width+t),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(i=>{n&&(e=-(i.currentY-i.startY),this.layout(n.height+e,n.width+t),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(i=>{n&&(e=i.currentY-i.startY,this.layout(n.height+e,n.width+t),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(qe.any(this._eastSash.onDidReset,this._westSash.onDidReset)(i=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(qe.any(this._northSash.onDidReset,this._southSash.onDidReset)(i=>{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(n,e,t,i){this._northSash.state=n?3:0,this._eastSash.state=e?3:0,this._southSash.state=t?3:0,this._westSash.state=i?3:0}layout(n=this.size.height,e=this.size.width){const{height:t,width:i}=this._minSize,{height:s,width:o}=this._maxSize;n=Math.max(t,Math.min(s,n)),e=Math.max(i,Math.min(o,e));const r=new Le(e,n);Le.equals(r,this._size)||(this.domNode.style.height=n+"px",this.domNode.style.width=e+"px",this._size=r,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(n){this._maxSize=n}get maxSize(){return this._maxSize}set minSize(n){this._minSize=n}get minSize(){return this._minSize}set preferredSize(n){this._preferredSize=n}get preferredSize(){return this._preferredSize}},BN=30,UN=24,zN=class extends O{constructor(n,e=new Le(10,10)){super(),this._editor=n,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new e_),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=Le.lift(e),this._resizableNode.layout(e.height,e.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(t=>{this._resize(new Le(t.dimension.width,t.dimension.height)),t.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?B.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(n){const e=this._editor.getDomNode(),t=this._editor.getScrolledVisiblePosition(n);if(!(!e||!t))return kt(e).top+t.top-BN}_availableVerticalSpaceBelow(n){const e=this._editor.getDomNode(),t=this._editor.getScrolledVisiblePosition(n);if(!e||!t)return;const i=kt(e),s=cl(e.ownerDocument.body),o=i.top+t.top+t.height;return s.height-o-UN}_findPositionPreference(n,e){const t=Math.min(this._availableVerticalSpaceBelow(e)??1/0,n),i=Math.min(this._availableVerticalSpaceAbove(e)??1/0,n),s=Math.min(n,Math.min(Math.max(i,t),n));let o;return this._editor.getOption(69).above?o=s<=i?1:2:o=s<=t?2:1,o===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),o}_resize(n){this._resizableNode.layout(n.height,n.width)}},jN=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ol=function(n,e){return function(t,i){e(t,i,n)}},mi,zv=30,Dg=class extends zN{static{mi=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new Le(0,0)}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,s,o){const r=e.getOption(75)+8,a=new Le(150,r);super(e,a),this._configurationService=i,this._accessibilityService=s,this._keybindingService=o,this._hover=this._register(new ww(!0)),this._onDidResize=this._register(new Q),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new Q),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new Q),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=a,this._hoverVisibleKey=S.hoverVisible.bindTo(t),this._hoverFocusedKey=S.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(d=>{d.hasChanged(59)&&this._updateFont()}));const l=this._register(ls(this._resizableNode.domNode));this._register(l.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(l.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll(d=>{this._onDidScroll.fire(d)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return mi.ID}static _applyDimensions(e,t,i){const s=typeof t=="number"?`${t}px`:t,o=typeof i=="number"?`${i}px`:i;e.style.width=s,e.style.height=o}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return mi._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return mi._applyDimensions(i,e,t)}_setScrollableElementDimensions(e,t){const i=this._hover.scrollbar.getDomNode();return mi._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 s=typeof t=="number"?`${t}px`:t,o=typeof i=="number"?`${i}px`:i;e.style.maxWidth=s,e.style.maxHeight=o}_setHoverWidgetMaxDimensions(e,t){mi._applyMaxDimensions(this._hover.contentsDomNode,e,t),mi._applyMaxDimensions(this._hover.scrollbar.getDomNode(),e,t),mi._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 Le(e,t),this._setHoverWidgetMaxDimensions(e,t)}_resize(e){mi._lastDimensions=new Le(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 t=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach(i=>{t+=i.clientHeight}),Math.min(e,t)}_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?cl(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=kt(this.getDomNode());this._renderedHover.closestMouseDistance===void 0&&(this._renderedHover.closestMouseDistance=jv(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,i.left,i.top,i.width,i.height));const s=jv(e,t,i.left,i.top,i.width,i.height);return s>this._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,s),!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,mi._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,750,mi._lastDimensions.width);this._resizableNode.maxSize=new Le(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=zo(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&&DR(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 Le(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 Le(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 Le(e,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();const e=this._hover.contentsDomNode;let t=zo(e),i=vi(e)+2;if(this._resizableNode.layout(t,i),this._setHoverWidgetDimensions(i,t),t=zo(e),i=vi(e),this._contentWidth=i,this._updateMinimumWidth(),this._resizableNode.layout(t,i),this._renderedHover?.showAtPosition){const s=zo(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(s,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-zv})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+zv})}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})}};Dg=mi=jN([Ol(1,ve),Ol(2,xe),Ol(3,Rs),Ol(4,Oe)],Dg);function jv(n,e,t,i,s,o){const r=t+s/2,a=i+o/2,l=Math.max(Math.abs(n-r)-s/2,0),d=Math.max(Math.abs(e-a)-o/2,0);return Math.sqrt(l*l+d*d)}var qN=class Eg{constructor(e,t){this._editor=e,this._participants=t}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),s=t.range.startLineNumber;if(s>i.getLineCount())return[];const o=i.getLineMaxColumn(s);return e.getLineDecorations(s).filter(r=>{if(r.options.isWholeLine)return!0;const a=r.range.startLineNumber===s?r.range.startColumn:1,l=r.range.endLineNumber===s?r.range.endColumn:o;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 sn.EMPTY;const s=Eg._getLineDecorations(this._editor,i);return sn.merge(this._participants.map(o=>o.computeAsync?o.computeAsync(i,s,e.source,t):sn.EMPTY))}computeSync(e){if(!this._editor.hasModel())return[];const t=e.anchor,i=Eg._getLineDecorations(this._editor,t);let s=[];for(const o of this._participants)s=s.concat(o.computeSync(t,i,e.source));return Ns(s)}},Wy=class{constructor(n,e,t){this.hoverParts=n,this.isComplete=e,this.options=t}filter(n){const e=this.hoverParts.filter(t=>t.isValidForHoverAnchor(n));return e.length===this.hoverParts.length?this:new $N(this,e,this.isComplete,this.options)}},$N=class extends Wy{constructor(n,e,t,i){super(e,t,i),this.original=n}filter(n){return this.original.filter(n)}},KN=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qv=function(n,e){return function(t,i){e(t,i,n)}},$v=W,ac=class extends O{get hasContent(){return this._hasContent}constructor(e,t){super(),this._keybindingService=e,this._hoverService=t,this.actions=[],this._hasContent=!1,this.hoverElement=$v("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=z(this.hoverElement,$v("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;this._hasContent=!0;const s=this._register(gT.render(this.actionsElement,e,i));return this._register(this._hoverService.setupManagedHover(aw("element"),s.actionContainer,s.actionRenderedLabel)),this.actions.push(s),s}append(e){const t=z(this.actionsElement,e);return this._hasContent=!0,t}};ac=KN([qv(0,Oe),qv(1,ui)],ac);var GN=class _i{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 s=i.options;if(s===_i._FIND_MATCH_DECORATION||s===_i._FIND_MATCH_NO_OVERVIEW_DECORATION||s===_i._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let s=0,o=this._decorations.length;s<o;s++){const r=this._editor.getModel().getDecorationRange(this._decorations[s]);if(e.equalsRange(r)){t=this._decorations[s],i=s+1;break}}return(this._highlightedDecorationId!==null||t!==null)&&this._editor.changeDecorations(s=>{if(this._highlightedDecorationId!==null&&(s.changeDecorationOptions(this._highlightedDecorationId,_i._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,s.changeDecorationOptions(this._highlightedDecorationId,_i._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(s.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let o=this._editor.getModel().getDecorationRange(t);if(o.startLineNumber!==o.endLineNumber&&o.endColumn===1){const r=o.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(r);o=new y(o.startLineNumber,o.startColumn,r,a)}this._rangeHighlightDecorationId=s.addDecoration(o,_i._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let s=_i._FIND_MATCH_DECORATION;const o=[];if(e.length>1e3){s=_i._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),l=this._editor.getLayoutInfo().height/a,d=Math.max(2,Math.ceil(3/l));let c=e[0].range.startLineNumber,h=e[0].range.endLineNumber;for(let u=1,g=e.length;u<g;u++){const p=e[u].range;h+d>=p.startLineNumber?p.endLineNumber>h&&(h=p.endLineNumber):(o.push({range:new y(c,1,h,1),options:_i._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=p.startLineNumber,h=p.endLineNumber)}o.push({range:new y(c,1,h,1),options:_i._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:s};this._decorations=i.deltaDecorations(this._decorations,r),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,o),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,_i._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],s=this._editor.getModel().getDecorationRange(i);if(!(!s||s.endLineNumber>e.lineNumber)){if(s.endLineNumber<e.lineNumber)return s;if(!(s.endColumn>e.column))return s}}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 s=this._decorations[t],o=this._editor.getModel().getDecorationRange(s);if(!(!o||o.startLineNumber<e.lineNumber)){if(o.startLineNumber>e.lineNumber)return o;if(!(o.startColumn<e.column))return o}}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}static{this._CURRENT_FIND_MATCH_DECORATION=se.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:it(Ah),position:nn.Center},minimap:{color:it(lv),position:1}})}static{this._FIND_MATCH_DECORATION=se.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:it(Ah),position:nn.Center},minimap:{color:it(lv),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=se.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=se.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:it(Ah),position:nn.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=se.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=se.register({description:"find-scope",className:"findScope",isWholeLine:!0})}},ZN=class{constructor(n,e,t){this._editorSelection=n,this._ranges=e,this._replaceStrings=t,this._trackedEditorSelectionId=null}getEditOperations(n,e){if(this._ranges.length>0){const t=[];for(let o=0;o<this._ranges.length;o++)t.push({range:this._ranges[o],text:this._replaceStrings[o]});t.sort((o,r)=>y.compareRangesUsingStarts(o.range,r.range));const i=[];let s=t[0];for(let o=1;o<t.length;o++)s.range.endLineNumber===t[o].range.startLineNumber&&s.range.endColumn===t[o].range.startColumn?(s.range=s.range.plusRange(t[o].range),s.text=s.text+t[o].text):(i.push(s),s=t[o]);i.push(s);for(const o of i)e.addEditOperation(o.range,o.text)}this._trackedEditorSelectionId=e.trackSelection(this._editorSelection)}computeCursorState(n,e){return e.getTrackedSelection(this._trackedEditorSelectionId)}};function Vy(n,e){if(n&&n[0]!==""){const t=Kv(n,e,"-"),i=Kv(n,e,"_");return t&&!i?Gv(n,e,"-"):!t&&i?Gv(n,e,"_"):n[0].toUpperCase()===n[0]?e.toUpperCase():n[0].toLowerCase()===n[0]?e.toLowerCase():AE(n[0][0])&&e.length>0?e[0].toUpperCase()+e.substr(1):n[0][0].toUpperCase()!==n[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function Kv(n,e,t){return n[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&n[0].split(t).length===e.split(t).length}function Gv(n,e,t){const i=e.split(t),s=n[0].split(t);let o="";return i.forEach((r,a)=>{o+=Vy([s[a]],r)+t}),o.slice(0,-1)}var Zv=class{constructor(n){this.staticValue=n,this.kind=0}},XN=class{constructor(n){this.pieces=n,this.kind=1}},t_=class Rg{static fromStaticValue(e){return new Rg([wd.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new Zv(""):e.length===1&&e[0].staticValue!==null?this._state=new Zv(e[0].staticValue):this._state=new XN(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?Vy(e,this._state.staticValue):this._state.staticValue;let i="";for(let s=0,o=this._state.pieces.length;s<o;s++){const r=this._state.pieces[s];if(r.staticValue!==null){i+=r.staticValue;continue}let a=Rg._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,u=a.length;h<u;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}},wd=class Tg{static staticValue(e){return new Tg(e,-1,null)}static caseOps(e,t){return new Tg(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)}},YN=class{constructor(n){this._source=n,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(n){this._emitStatic(this._source.substring(this._lastCharIndex,n)),this._lastCharIndex=n}emitStatic(n,e){this._emitStatic(n),this._lastCharIndex=e}_emitStatic(n){n.length!==0&&(this._currentStaticPiece+=n)}emitMatchIndex(n,e,t){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=wd.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=wd.caseOps(n,t),this._lastCharIndex=e}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=wd.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new t_(this._result)}};function JN(n){if(!n||n.length===0)return new t_(null);const e=[],t=new YN(n);for(let i=0,s=n.length;i<s;i++){const o=n.charCodeAt(i);if(o===92){if(i++,i>=s)break;const r=n.charCodeAt(i);switch(r){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(`
6
- `,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))}continue}if(o===36){if(i++,i>=s)break;const r=n.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<s){const l=n.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()}var Vn=new oe("findWidgetVisible",!1);Vn.toNegated();var ph=new oe("findInputFocussed",!1),i_=new oe("replaceInputFocussed",!1),QN=new oe("findWidgetFocused",!1),Ml={primary:545,mac:{primary:2593}},Al={primary:565,mac:{primary:2613}},Fl={primary:560,mac:{primary:2608}},Hl={primary:554,mac:{primary:2602}},Wl={primary:558,mac:{primary:2606}},Ee={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"},By=19999,ek=240,tk=class yd{constructor(e,t){this._toDispose=new A,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new ll,this._decorations=new GN(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new at(()=>{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,Nt(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)},ek)):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 y(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const s=this._findMatches(i,!1,By);this._decorations.set(s,i);const o=this._editor.getSelection();let r=this._decorations.getCurrentMatchesPosition(o);if(r===0&&s.length>0){const a=WS(s.map(l=>l.range),l=>y.compareRangesUsingStarts(l,o)>=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:s}=e;const o=this._editor.getModel();return t||s===1?(i===1?i=o.getLineCount():i--,s=o.getLineMaxColumn(i)):s--,new B(i,s)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const c=this._decorations.matchAfterPosition(e);c&&this._setCurrentFindMatch(c);return}if(this._decorations.getCount()<19999){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(),s=yd._getSearchRange(this._editor.getModel(),i);s.getEndPosition().isBefore(e)&&(e=s.getEndPosition()),e.isBefore(s.getStartPosition())&&(e=s.getEndPosition());const{lineNumber:o,column:r}=e,a=this._editor.getModel();let l=new B(o,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&&!s.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:s}=e;const o=this._editor.getModel();return t||s===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,s=1):s++,new B(i,s)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()<19999){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,s=!1){if(this._cannotFind())return null;const o=this._decorations.getFindScope(),r=yd._getSearchRange(this._editor.getModel(),o);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 B(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?!s&&!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?JN(this._state.replaceString):t_.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 s=e.buildReplaceString(i.matches,this._state.preserveCase),o=new vl(t,s);this._executeEditorCommand("replace",o),this._decorations.setStartPosition(new B(t.startLineNumber,t.startColumn+s.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const s=(e||[null]).map(o=>yd._getSearchRange(this._editor.getModel(),o));return this._editor.getModel().findMatches(this._state.searchString,s,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>=19999?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const e=new QD(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!e)return;let t=e.regex;if(!t.multiline){let c="mu";t.ignoreCase&&(c+="i"),t.global&&(c+="g"),t=new RegExp(t.source,c)}const i=this._editor.getModel(),s=i.getValue(1),o=i.getFullModelRange(),r=this._getReplacePattern();let a;const l=this._state.preserveCase;r.hasReplacementPatterns||l?a=s.replace(t,function(){return r.buildReplaceString(arguments,l)}):a=s.replace(t,r.buildReplaceString(null,l));const d=new Rw(o,a,this._editor.getSelection());this._executeEditorCommand("replaceAll",d)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let r=0,a=i.length;r<a;r++)s[r]=t.buildReplaceString(i[r].matches,this._state.preserveCase);const o=new ZN(this._editor.getSelection(),i.map(r=>r.range),s);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let t=this._findMatches(e,!1,1073741824).map(s=>new te(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn));const i=this._editor.getSelection();for(let s=0,o=t.length;s<o;s++)if(t[s].equalsRange(i)){t=[i].concat(t.slice(0,s)).concat(t.slice(s+1));break}this._editor.setSelections(t)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}},ik=m(5,"input"),nk=m(6,"Preserve Case"),sk=class extends VS{constructor(n){super({icon:V.preserveCase,title:nk+n.appendTitle,isChecked:n.isChecked,hoverLifecycleOptions:n.hoverLifecycleOptions,inputActiveOptionBorder:n.inputActiveOptionBorder,inputActiveOptionForeground:n.inputActiveOptionForeground,inputActiveOptionBackground:n.inputActiveOptionBackground})}},ok=class extends _l{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(n,e,t,i){super(),this._showOptionButtons=t,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new Q),this._onKeyDown=this._register(new Q),this._onMouseDown=this._register(new Q),this._onInput=this._register(new Q),this._onKeyUp=this._register(new Q),this._onPreserveCaseKeyDown=this._register(new Q),this.contextViewProvider=e,this.placeholder=i.placeholder||"",this.validation=i.validation,this.label=i.label||ik;const s=i.appendPreserveCaseLabel||"",o=i.history||new Set([]),r=!!i.flexibleHeight,a=!!i.flexibleWidth,l=i.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new FR(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:o,showHistoryHint:i.showHistoryHint,flexibleHeight:r,flexibleWidth:a,flexibleMaxHeight:l,inputBoxStyles:i.inputBoxStyles})),this.preserveCase=this._register(new sk({appendTitle:s,isChecked:!1,hoverLifecycleOptions:i.hoverLifecycleOptions,...i.toggleStyles})),this._register(this.preserveCase.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(h=>{this._onPreserveCaseKeyDown.fire(h)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const d=[this.preserveCase.domNode];this.onkeydown(this.domNode,h=>{if(h.equals(15)||h.equals(17)||h.equals(9)){const u=d.indexOf(this.domNode.ownerDocument.activeElement);if(u>=0){let g=-1;h.equals(17)?g=(u+1)%d.length:h.equals(15)&&(u===0?g=d.length-1:g=u-1),h.equals(9)?(d[u].blur(),this.inputBox.focus()):g>=0&&d[g].focus(),Cn.stop(h,!0)}}});const c=document.createElement("div");c.className="controls",c.style.display=this._showOptionButtons?"block":"none",c.appendChild(this.preserveCase.domNode),this.domNode.appendChild(c),n?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}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(n){n?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(n){this.preserveCase.checked=n}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(n){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=n+"px"}},Uy=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zy=function(n,e){return function(t,i){e(t,i,n)}},n_=new oe("suggestWidgetVisible",!1,m(1760,"Whether suggestion are visible")),s_="historyNavigationWidgetFocus",jy="historyNavigationForwardsEnabled",qy="historyNavigationBackwardsEnabled",Sa=void 0,Vl=[];function $y(n,e){if(Vl.includes(e))throw new Error("Cannot register the same widget multiple times");Vl.push(e);const t=new A,i=new oe(s_,!1).bindTo(n),s=new oe(jy,!0).bindTo(n),o=new oe(qy,!0).bindTo(n),r=()=>{i.set(!0),Sa=e},a=()=>{i.set(!1),Sa===e&&(Sa=void 0)};return Qr(e.element)&&r(),t.add(e.onDidFocus(()=>r())),t.add(e.onDidBlur(()=>a())),t.add(ke(()=>{Vl.splice(Vl.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:s,historyNavigationBackwardsEnablement:o,dispose(){t.dispose()}}}var Ng=class extends J0{constructor(e,t,i,s){super(e,t,i);const o=this._register(s.createScoped(this.inputBox.element));this._register($y(o,this.inputBox))}};Ng=Uy([zy(3,ve)],Ng);var kg=class extends ok{constructor(e,t,i,s,o=!1){super(e,t,o,i);const r=this._register(s.createScoped(this.inputBox.element));this._register($y(r,this.inputBox))}};kg=Uy([zy(3,ve)],kg);ni.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:N.and(N.has(s_),N.equals(qy,!0),N.not("isComposing"),n_.isEqualTo(!1)),primary:16,secondary:[528],handler:n=>{Sa?.showPreviousValue()}});ni.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:N.and(N.has(s_),N.equals(jy,!0),N.not("isComposing"),n_.isEqualTo(!1)),primary:18,secondary:[530],handler:n=>{Sa?.showNextValue()}});function Xv(n){return n.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&n.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var Yv=Ze("find-collapsed",V.chevronRight,m(996,"Icon to indicate that the editor find widget is collapsed.")),Jv=Ze("find-expanded",V.chevronDown,m(997,"Icon to indicate that the editor find widget is expanded.")),rk=Ze("find-selection",V.selection,m(998,"Icon for 'Find in Selection' in the editor find widget.")),ak=Ze("find-replace",V.replace,m(999,"Icon for 'Replace' in the editor find widget.")),lk=Ze("find-replace-all",V.replaceAll,m(1e3,"Icon for 'Replace All' in the editor find widget.")),dk=Ze("find-previous-match",V.arrowUp,m(1001,"Icon for 'Find Previous' in the editor find widget.")),ck=Ze("find-next-match",V.arrowDown,m(1002,"Icon for 'Find Next' in the editor find widget.")),hk=m(1003,"Find / Replace"),Jh=m(1004,"Find"),uk=m(1005,"Find"),gk=m(1006,"Previous Match"),pk=m(1007,"Next Match"),fk=m(1008,"Find in Selection"),mk=m(1009,"Close"),Qh=m(1010,"Replace"),_k=m(1011,"Replace"),vk=m(1012,"Replace"),bk=m(1013,"Replace All"),Ck=m(1014,"Toggle Replace"),Sk=m(1015,"Only the first {0} results are highlighted, but all find operations work on the entire text.",By),wk=m(1016,"{0} of {1}"),Pg=m(1017,"No results"),As=419,yk=221,Vr=69,xk=33,Qv=Pn?256:2048,eu=class{constructor(n){this.afterLineNumber=n,this.heightInPx=xk,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}};function eb(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){n.stopPropagation();return}}function tb(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEnd<t.value.length){n.stopPropagation();return}}var Us=class Ky extends _l{static{this.ID="editor.contrib.findWidget"}constructor(e,t,i,s,o,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=s,this._keybindingService=o,this._contextKeyService=r,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new _s(500),this._register(ke(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(u=>this._onStateChanged(u))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(u=>{if(u.hasChanged(104)&&(this._codeEditor.getOption(104)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),u.hasChanged(165)&&this._tryUpdateWidgetWidth(),u.hasChanged(2)&&this.updateAccessibilitySupport(),u.hasChanged(50)){const g=this._codeEditor.getOption(50).loop;this._state.change({loop:g},!1);const p=this._codeEditor.getOption(50).addExtraSpaceOnTop;p&&!this._viewZone&&(this._viewZone=new eu(0),this._showViewZone()),!p&&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 u=await this._controller.getGlobalBufferTerm();u&&u!==this._state.searchString&&(this._state.change({searchString:u},!1),this._findInput.select())}})),this._findInputFocused=ph.bindTo(r),this._findFocusTracker=this._register(ls(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=i_.bindTo(r),this._replaceFocusTracker=this._register(ls(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=QN.bindTo(r),this._widgetFocusTracker=this._register(ls(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(de(this._domNode,"focusin",u=>{es(u.target)&&(this._lastFocusedElement=u.target)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop&&(this._viewZone=new eu(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(u=>{if(u.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return Ky.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=vi(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=Vr+"px",this._state.matchesCount>=19999?this._matchesCount.title=Sk:this._matchesCount.title="",this._matchesCount.firstChild?.remove();let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=19999&&(t+="+");let i=String(this._state.matchesPosition);i==="0"&&(i="?"),e=Tm(wk,i,t)}else e=Pg;this._matchesCount.appendChild(document.createTextNode(e)),ci(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),Vr=Math.max(Vr,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){let s;if(e===Pg)s=i===""?m(1018,"{0} found",e):m(1019,"{0} found for '{1}'",e,i);else if(t){const o=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?s=`${r.getLineContent(t.startLineNumber)}, ${o}`:s=o}else s=m(1021,"{0} found for '{1}'",e,i);return s}_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 s=kt(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),r=s.left+(o?o.left:0),a=o?o.top:0;if(this._viewZone&&a<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const l=PR(this._domNode).left;r>l&&(t=!1);const d=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());s.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 t=this._viewZone;this._viewZoneId!==void 0||!t||this._codeEditor.changeViewZones(i=>{t.heightInPx=this._getHeight(),this._viewZoneId=i.addZone(t),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+t.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new eu(0));const t=this._viewZone;this._codeEditor.changeViewZones(i=>{if(this._viewZoneId!==void 0){const s=this._getHeight();if(s===t.heightInPx)return;const o=s-t.heightInPx;t.heightInPx=s,i.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o);return}else{let s=this._getHeight();if(s-=this._codeEditor.getOption(96).top,s<=0)return;t.heightInPx=s,this._viewZoneId=i.addZone(t),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 t=e.width,i=e.minimap.minimapWidth;let s=!1,o=!1,r=!1;if(this._resized&&vi(this._domNode)>As){this._domNode.style.maxWidth=`${t-28-i-15}px`,this._replaceInput.width=vi(this._findInput.domNode);return}if(447+i>=t&&(o=!0),447+i-Vr>=t&&(r=!0),447+i-Vr>=t+50&&(s=!0),this._domNode.classList.toggle("collapsed-find-widget",s),this._domNode.classList.toggle("narrow-find-widget",r),this._domNode.classList.toggle("reduced-find-widget",o),!r&&!s&&(this._domNode.style.maxWidth=`${t-28-i-15}px`),this._findInput.layout({collapsedFindWidget:s,narrowFindWidget:r,reducedFindWidget:o}),this._resized){const a=this._findInput.inputBox.element.clientWidth;a>0&&(this._replaceInput.width=a)}else this._isReplaceVisible&&(this._replaceInput.width=vi(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&&!y.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(Qv|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
7
- `),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 eb(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return tb(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(Qv|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
8
- `),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 eb(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return tb(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,s=this._codeEditor.getOption(50).replaceHistory;this._findInput=this._register(new Ng(null,this._contextViewProvider,{width:yk,label:Jh,placeholder:uk,appendCaseSensitiveLabel:this._keybindingLabelFor(Ee.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(Ee.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(Ee.ToggleRegexCommand),validation:h=>{if(h.length===0||!this._findInput.getRegex())return null;try{return new RegExp(h,"gu"),null}catch(u){return{content:u.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Xv(this._keybindingService),inputBoxStyles:iv,toggleStyles:gv,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()})),WE&&this._register(this._findInput.onMouseDown(h=>this._onFindInputMouseDown(h))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const o={groupId:"find-widget"};this._prevBtn=this._register(new zs({label:gk+this._keybindingLabelFor(Ee.PreviousMatchFindAction),icon:dk,hoverLifecycleOptions:o,onTrigger:()=>{jo(this._codeEditor.getAction(Ee.PreviousMatchFindAction)).run().then(void 0,we)}},this._hoverService)),this._nextBtn=this._register(new zs({label:pk+this._keybindingLabelFor(Ee.NextMatchFindAction),icon:ck,hoverLifecycleOptions:o,onTrigger:()=>{jo(this._codeEditor.getAction(Ee.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 VS({icon:rk,title:fk+this._keybindingLabelFor(Ee.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:o,inputActiveOptionBackground:ye(Sm),inputActiveOptionBorder:ye(ZS),inputActiveOptionForeground:ye(IS)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let h=this._codeEditor.getSelections();h=h.map(u=>(u.endColumn===1&&u.endLineNumber>u.startLineNumber&&(u=u.setEndPosition(u.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(u.endLineNumber-1))),u.isEmpty()?null:u)).filter(u=>!!u),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 zs({label:mk+this._keybindingLabelFor(Ee.CloseFindWidgetCommand),icon:qS,hoverLifecycleOptions:o,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 kg(null,void 0,{label:Qh,placeholder:_k,appendPreserveCaseLabel:this._keybindingLabelFor(Ee.TogglePreserveCaseCommand),history:s==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>Xv(this._keybindingService),inputBoxStyles:iv,toggleStyles:gv,hoverLifecycleOptions:o},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 zs({label:vk+this._keybindingLabelFor(Ee.ReplaceOneAction),icon:ak,hoverLifecycleOptions:o,onTrigger:()=>{this._controller.replace()},onKeyDown:h=>{h.equals(1026)&&(this._closeBtn.focus(),h.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new zs({label:bk+this._keybindingLabelFor(Ee.ReplaceAllAction),icon:lk,hoverLifecycleOptions:o,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 zs({label:Ck,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=vi(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=hk,this._domNode.role="dialog",this._domNode.style.width=`${As}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 qo(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let c=As;this._register(this._resizeSash.onDidStart(()=>{c=vi(this._domNode)})),this._register(this._resizeSash.onDidChange(h=>{this._resized=!0;const u=c+h.startX-h.currentX;u<As||u>(parseFloat(h0(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${u}px`,this._isReplaceVisible&&(this._replaceInput.width=vi(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const h=vi(this._domNode);if(h<As)return;let u=As;if(!this._resized||h===As){const g=this._codeEditor.getLayoutInfo();u=g.width-28-g.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${u}px`,this._isReplaceVisible&&(this._replaceInput.width=vi(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let e=Jh,t=Qh;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){const i=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(i){const s=m(1022,"Press {0} for accessibility help",i);e=m(1023,"{0}, {1}",e,s),t=m(1024,"{0}, {1}",t,s)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=gs(()=>{this._isVisible&&(this._findInput.inputBox.setAriaLabel(Jh),this._replaceInput.inputBox.setAriaLabel(Qh))},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)}},zs=class extends _l{constructor(n,e){super(),this._opts=n;let t="button";this._opts.className&&(t=t+" "+this._opts.className),this._opts.icon&&(t=t+" "+pe.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=t,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(e.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},n.hoverLifecycleOptions)),this.onclick(this._domNode,i=>{this._opts.onTrigger(),i.preventDefault()}),this.onkeydown(this._domNode,i=>{if(i.equals(10)||i.equals(3)){this._opts.onTrigger(),i.preventDefault();return}this._opts.onKeyDown?.(i)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(n){this._domNode.classList.toggle("disabled",!n),this._domNode.setAttribute("aria-disabled",String(!n)),this._domNode.tabIndex=n?0:-1}setExpanded(n){this._domNode.setAttribute("aria-expanded",String(!!n)),n?(this._domNode.classList.remove(...pe.asClassNameArray(Yv)),this._domNode.classList.add(...pe.asClassNameArray(Jv))):(this._domNode.classList.remove(...pe.asClassNameArray(Jv)),this._domNode.classList.add(...pe.asClassNameArray(Yv)))}};al((n,e)=>{const t=n.getColor(pw);t&&e.addRule(`.monaco-editor .findMatch { border: 1px ${Ta(n.type)?"dotted":"solid"} ${t}; box-sizing: border-box; }`);const i=n.getColor(nR);i&&e.addRule(`.monaco-editor .findScope { border: 1px ${Ta(n.type)?"dashed":"solid"} ${i}; }`);const s=n.getColor(on);s&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${s}; }`);const o=n.getColor(lT);o&&e.addRule(`.monaco-editor .findMatchInline { color: ${o}; }`);const r=n.getColor(fT);r&&e.addRule(`.monaco-editor .currentFindMatchInline { color: ${r}; }`)});var Ik=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ib=function(n,e){return function(t,i){e(t,i,n)}},Og=class extends O{constructor(e,t,i,s){super(),this._container=e,this._getContent=t,this._clipboardService=i,this._hoverService=s,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new zs({label:m(1171,"Copy"),icon:V.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),vs(m(1172,"Copied to clipboard")))}};Og=Ik([ib(2,ti),ib(3,ui)],Og);var Lk=class{constructor(n,e,t){this.provider=n,this.hover=e,this.ordinal=t}};async function Dk(n,e,t,i,s){const o=await Promise.resolve(n.provideHover(t,i,s)).catch(tt);if(!(!o||!Ek(o)))return new Lk(n,o,e)}function o_(n,e,t,i,s=!1){const o=n.ordered(e,s).map((r,a)=>Dk(r,a,e,t,i));return sn.fromPromisesResolveOrder(o).coalesce()}async function Gy(n,e,t,i,s=!1){const o=[];for await(const r of o_(n,e,t,i,s))o.push(r.hover);return o}Ut("_executeHoverProvider",(n,e,t)=>Gy(n.get(Z).hoverProvider,e,t,ue.None));Ut("_executeHoverProvider_recursive",(n,e,t)=>Gy(n.get(Z).hoverProvider,e,t,ue.None,!0));function Ek(n){const e=typeof n.range<"u",t=typeof n.contents<"u"&&n.contents&&n.contents.length>0;return e&&t}var Rk=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Io=function(n,e){return function(t,i){e(t,i,n)}},Qs=W,Tk=Ze("hover-increase-verbosity",V.addSmall,m(1173,"Icon for increaseing hover verbosity.")),Nk=Ze("hover-decrease-verbosity",V.removeSmall,m(1174,"Icon for decreasing hover verbosity.")),yi=class{constructor(n,e,t,i,s,o=void 0){this.owner=n,this.range=e,this.contents=t,this.isBeforeContent=i,this.ordinal=s,this.source=o}isValidForHoverAnchor(n){return n.type===1&&this.range.startColumn<=n.range.startColumn&&this.range.endColumn>=n.range.endColumn}},Zy=class{constructor(n,e,t){this.hover=n,this.hoverProvider=e,this.hoverPosition=t}supportsVerbosityAction(n){switch(n){case li.Increase:return this.hover.canIncreaseVerbosity??!1;case li.Decrease:return this.hover.canDecreaseVerbosity??!1}}},qa=class{constructor(e,t,i,s,o,r,a){this._editor=e,this._markdownRendererService=t,this._configurationService=i,this._languageFeaturesService=s,this._keybindingService=o,this._hoverService=r,this._commandService=a,this.hoverOrdinal=3}createLoadingMessage(e){return new yi(this,e.range,[new Lt().appendText(m(1175,"Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),s=e.range.startLineNumber,o=i.getLineMaxColumn(s),r=[];let a=1e3;const l=i.getLineLength(s),d=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),c=this._editor.getOption(133),h=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:d}),u=this._editor.getOption(69).showLongLineWarning;let g=!1;c>=0&&l>c&&e.range.startColumn>=c&&(g=!0,u&&r.push(new yi(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})",yg),isTrusted:!0}],!1,a++))),!g&&typeof h=="number"&&l>=h&&u&&r.push(new yi(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})",yg),isTrusted:!0}],!1,a++));let p=!1;for(const f of t){const _=f.range.startLineNumber===s?f.range.startColumn:1,v=f.range.endLineNumber===s?f.range.endColumn:o,C=f.options.hoverMessage;if(!C||Pa(C))continue;f.options.beforeContentClassName&&(p=!0);const x=new y(e.range.startLineNumber,_,e.range.startLineNumber,v);r.push(new yi(this,x,QS(C),p,a++))}return r}computeAsync(e,t,i,s){if(!this._editor.hasModel()||e.type!==1)return sn.EMPTY;const o=this._editor.getModel(),r=this._languageFeaturesService.hoverProvider;return r.has(o)?this._getMarkdownHovers(r,o,e,s):sn.EMPTY}async*_getMarkdownHovers(e,t,i,s){const o=i.range.getStartPosition(),r=o_(e,t,o,s);for await(const a of r)if(!Pa(a.hover.contents)){const l=a.hover.range?y.lift(a.hover.range):i.range,d=new Zy(a.hover,a.provider,o);yield new yi(this,l,a.hover.contents,!1,a.ordinal,d)}}renderHoverParts(e,t){return this._renderedHoverParts=new kk(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))}};qa=Rk([Io(1,Ls),Io(2,xe),Io(3,Z),Io(4,Oe),Io(5,ui),Io(6,ht)],qa);var Bl=class{constructor(n,e,t,i){this.hoverPart=n,this.hoverElement=e,this.disposables=t,this.actionsContainer=i}dispose(){this.disposables.dispose()}},kk=class{constructor(n,e,t,i,s,o,r,a,l,d){this._hoverParticipant=t,this._editor=i,this._commandService=s,this._keybindingService=o,this._hoverService=r,this._configurationService=a,this._markdownRendererService=l,this._onFinishedRendering=d,this._ongoingHoverOperations=new Map,this._disposables=new A,this.renderedHoverParts=this._renderHoverParts(n,e,this._onFinishedRendering),this._disposables.add(ke(()=>{this.renderedHoverParts.forEach(c=>{c.dispose()}),this._ongoingHoverOperations.forEach(c=>{c.tokenSource.dispose(!0)})}))}_renderHoverParts(n,e,t){return n.sort(so(i=>i.ordinal,oo)),n.map(i=>{const s=this._renderHoverPart(i,t);return e.appendChild(s.hoverElement),s})}_renderHoverPart(n,e){const t=this._renderMarkdownHover(n,e),i=t.hoverElement,s=n.source,o=new A;if(o.add(t),!s)return new Bl(n,i,o);const r=s.supportsVerbosityAction(li.Increase),a=s.supportsVerbosityAction(li.Decrease);if(!r&&!a)return new Bl(n,i,o);const l=Qs("div.verbosity-actions");i.prepend(l);const d=Qs("div.verbosity-actions-inner");return l.append(d),o.add(this._renderHoverExpansionAction(d,li.Increase,r)),o.add(this._renderHoverExpansionAction(d,li.Decrease,a)),new Bl(n,i,o,d)}_renderMarkdownHover(n,e){return Xy(this._editor,n,this._markdownRendererService,e)}_renderHoverExpansionAction(n,e,t){const i=new A,s=e===li.Increase,o=z(n,Qs(pe.asCSSSelector(s?Tk:Nk)));o.tabIndex=0;const r=i.add(new tR("mouse",void 0,{target:n,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(i.add(this._hoverService.setupManagedHover(r,o,Ok(this._keybindingService,e))),!t)return o.classList.add("disabled"),i;o.classList.add("enabled");const a=()=>this._commandService.executeCommand(e===li.Increase?Xm:Ym,{focus:!0});return i.add(new lR(o,a)),i.add(new oT(o,a,[3,10])),i}handleScroll(n){this.renderedHoverParts.forEach(e=>{const t=e.actionsContainer;if(!t)return;const i=e.hoverElement,s=n.scrollTop+n.height,o=i.offsetTop,r=i.clientHeight,a=o+r,l=22;let d;a<=s||o>=s?d=r-l:d=s-o-l,t.style.top=`${d}px`})}async updateMarkdownHoverPartVerbosityLevel(n,e){const t=this._editor.getModel();if(!t)return;const i=this._getRenderedHoverPartAtIndex(e),s=i?.hoverPart.source;if(!i||!s?.supportsVerbosityAction(n))return;const o=await this._fetchHover(s,t,n);if(!o)return;const r=new Zy(o,s.hoverProvider,s.hoverPosition),a=i.hoverPart,l=new yi(this._hoverParticipant,a.range,o.contents,a.isBeforeContent,a.ordinal,r),d=this._updateRenderedHoverPart(e,l);if(d)return{hoverPart:l,hoverElement:d.hoverElement}}getAccessibleContent(n){const e=this.renderedHoverParts.findIndex(i=>i.hoverPart===n);if(e===-1)return;const t=this._getRenderedHoverPartAtIndex(e);if(t)return t.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(n,e,t){let i=t===li.Increase?1:-1;const s=n.hoverProvider,o=this._ongoingHoverOperations.get(s);o&&(o.tokenSource.cancel(),i+=o.verbosityDelta);const r=new st;this._ongoingHoverOperations.set(s,{verbosityDelta:i,tokenSource:r});const a={verbosityRequest:{verbosityDelta:i,previousHover:n.hover}};let l;try{l=await Promise.resolve(s.provideHover(e,n.hoverPosition,r.token,a))}catch(d){tt(d)}return r.dispose(),this._ongoingHoverOperations.delete(s),l}_updateRenderedHoverPart(n,e){if(n>=this.renderedHoverParts.length||n<0)return;const t=this._renderHoverPart(e,this._onFinishedRendering),i=this.renderedHoverParts[n],s=i.hoverElement,o=t.hoverElement,r=Array.from(o.children);s.replaceChildren(...r);const a=new Bl(e,s,t.disposables,t.actionsContainer);return i.dispose(),this.renderedHoverParts[n]=a,a}_getRenderedHoverPartAtIndex(n){return this.renderedHoverParts[n]}dispose(){this._disposables.dispose()}};function Pk(n,e,t,i){e.sort(so(o=>o.ordinal,oo));const s=[];for(const o of e){const r=Xy(t,o,i,n.onContentsChanged);n.fragment.appendChild(r.hoverElement),s.push(r)}return new ho(s)}function Xy(n,e,t,i){const s=new A,o=Qs("div.hover-row"),r=Qs("div.hover-row-contents");o.appendChild(r);const a=e.contents;for(const l of a){if(Pa(l))continue;const d=Qs("div.markdown-hover"),c=z(d,Qs("div.hover-contents")),h=s.add(t.render(l,{context:n,asyncRenderCallback:()=>{c.className="hover-contents code-hover-contents",i()}}));c.appendChild(h.element),r.appendChild(d)}return{hoverPart:e,hoverElement:o,dispose(){s.dispose()}}}function Ok(n,e){switch(e){case li.Increase:return n.appendKeybinding(m(1178,"Increase Hover Verbosity"),Xm);case li.Decrease:return n.appendKeybinding(m(1179,"Decrease Hover Verbosity"),Ym)}}var nb=W,Mk=class extends O{constructor(n,e,t){super(),this.model=e,this.pixelRatio=t,this._onDidChange=this._register(new Q),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new Q),this.onColorFlushed=this._onColorFlushed.event,this._domNode=nb(".saturation-wrap"),z(n,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",z(this._domNode,this._canvas),this.selection=nb(".saturation-selection"),z(this._domNode,this.selection),this.layout(),this._register(de(this._domNode,Ae.POINTER_DOWN,i=>this.onPointerDown(i))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(n){if(!n.target||!(n.target instanceof Element))return;this.monitor=this._register(new xS);const e=kt(this._domNode);n.target!==this.selection&&this.onDidChangePosition(n.offsetX,n.offsetY),this.monitor.startMonitoring(n.target,n.pointerId,n.buttons,i=>this.onDidChangePosition(i.pageX-e.left,i.pageY-e.top),()=>null);const t=de(n.target.ownerDocument,Ae.POINTER_UP,()=>{this._onColorFlushed.fire(),t.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(n,e){const t=Math.max(0,Math.min(1,n/this.width)),i=Math.max(0,Math.min(1,1-e/this.height));this.paintSelection(t,i),this._onDidChange.fire({s:t,v:i})}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 n=this.model.color.hsva;this.paintSelection(n.s,n.v)}paint(){const n=this.model.color.hsva,e=new me(new fd(n.h,1,1,1)),t=this._canvas.getContext("2d"),i=t.createLinearGradient(0,0,this._canvas.width,0);i.addColorStop(0,"rgba(255, 255, 255, 1)"),i.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),i.addColorStop(1,"rgba(255, 255, 255, 0)");const s=t.createLinearGradient(0,0,0,this._canvas.height);s.addColorStop(0,"rgba(0, 0, 0, 0)"),s.addColorStop(1,"rgba(0, 0, 0, 1)"),t.rect(0,0,this._canvas.width,this._canvas.height),t.fillStyle=me.Format.CSS.format(e),t.fill(),t.fillStyle=i,t.fill(),t.fillStyle=s,t.fill()}paintSelection(n,e){this.selection.style.left=`${n*this.width}px`,this.selection.style.top=`${this.height-e*this.height}px`}onDidChangeColor(n){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const e=n.hsva;this.paintSelection(e.s,e.v)}},Ak=class extends O{constructor(n){super(),this._onClicked=this._register(new Q),this.onClicked=this._onClicked.event,this._button=z(n,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(de(this._button,Ae.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}},Br=W,Yy=class extends O{constructor(n,e,t){super(),this.model=e,this._onDidChange=this._register(new Q),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new Q),this.onColorFlushed=this._onColorFlushed.event,t==="standalone"?(this.domNode=z(n,Br(".standalone-strip")),this.overlay=z(this.domNode,Br(".standalone-overlay"))):(this.domNode=z(n,Br(".strip")),this.overlay=z(this.domNode,Br(".overlay"))),this.slider=z(this.domNode,Br(".slider")),this.slider.style.top="0px",this._register(de(this.domNode,Ae.POINTER_DOWN,i=>this.onPointerDown(i))),this._register(e.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const n=this.getValue(this.model.color);this.updateSliderPosition(n)}onDidChangeColor(n){const e=this.getValue(n);this.updateSliderPosition(e)}onPointerDown(n){if(!n.target||!(n.target instanceof Element))return;const e=this._register(new xS),t=kt(this.domNode);this.domNode.classList.add("grabbing"),n.target!==this.slider&&this.onDidChangeTop(n.offsetY),e.startMonitoring(n.target,n.pointerId,n.buttons,s=>this.onDidChangeTop(s.pageY-t.top),()=>null);const i=de(n.target.ownerDocument,Ae.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),e.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(n){const e=Math.max(0,Math.min(1,1-n/this.height));this.updateSliderPosition(e),this._onDidChange.fire(e)}updateSliderPosition(n){this.slider.style.top=`${(1-n)*this.height}px`}},Fk=class extends Yy{constructor(n,e,t){super(n,e,t),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(n){super.onDidChangeColor(n);const{r:e,g:t,b:i}=n.rgba,s=new me(new ur(e,t,i,1)),o=new me(new ur(e,t,i,0));this.overlay.style.background=`linear-gradient(to bottom, ${s} 0%, ${o} 100%)`}getValue(n){return n.hsva.a}},Hk=class extends Yy{constructor(n,e,t){super(n,e,t),this.domNode.classList.add("hue-strip")}getValue(n){return 1-n.hsva.h/360}},Wk=W,Vk=class extends O{constructor(n,e,t,i){super(),this.model=e,this.pixelRatio=t,this._insertButton=null,this._domNode=Wk(".colorpicker-body"),z(n,this._domNode),this._saturationBox=new Mk(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 Fk(this._domNode,this.model,i),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new Hk(this._domNode,this.model,i),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),i==="standalone"&&(this._insertButton=this._register(new Ak(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:n,v:e}){const t=this.model.color.hsva;this.model.color=new me(new fd(t.h,n,e,t.a))}onDidOpacityChange(n){const e=this.model.color.hsva;this.model.color=new me(new fd(e.h,e.s,e.v,n))}onDidHueChange(n){const e=this.model.color.hsva,t=(1-n)*360;this.model.color=new me(new fd(t===360?0:t,e.s,e.v,e.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()}},Bk=W,Uk=class extends O{constructor(n){super(),this._onClicked=this._register(new Q),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),z(n,this._button);const e=document.createElement("div");e.classList.add("close-button-inner-div"),z(this._button,e),z(e,Bk(".button"+pe.asCSSSelector(Ze("color-picker-close",V.close,m(921,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(de(this._button,Ae.CLICK,()=>{this._onClicked.fire()}))}},Ul=W,zk=class extends O{constructor(n,e,t,i){super(),this.model=e,this.type=i,this._closeButton=null,this._domNode=Ul(".colorpicker-header"),z(n,this._domNode),this._pickedColorNode=z(this._domNode,Ul(".picked-color")),z(this._pickedColorNode,Ul("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,Ul(".original-color")),this._originalColorNode.style.backgroundColor=me.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=t.getColorTheme().getColor(ng)||me.white,this._register(t.onDidColorThemeChange(o=>{this.backgroundColor=o.getColor(ng)||me.white})),this._register(de(this._pickedColorNode,Ae.CLICK,()=>this.model.selectNextColorPresentation())),this._register(de(this._originalColorNode,Ae.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(e.onDidChangeColor(this.onDidChangeColor,this)),this._register(e.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=me.Format.CSS.format(e.color)||"",this._pickedColorNode.classList.toggle("light",e.color.rgba.a<.5?this.backgroundColor.isLighter():e.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone"&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new Uk(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(n){this._pickedColorNode.style.backgroundColor=me.Format.CSS.format(n)||"",this._pickedColorNode.classList.toggle("light",n.rgba.a<.5?this.backgroundColor.isLighter():n.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}},jk=W,Jy=class extends _l{constructor(n,e,t,i,s){super(),this.model=e,this.pixelRatio=t,this._register(HR.getInstance(Ht(n)).onDidChange(()=>this.layout())),this._domNode=jk(".colorpicker-widget"),n.appendChild(this._domNode),this.header=this._register(new zk(this._domNode,this.model,i,s)),this.body=this._register(new Vk(this._domNode,this.model,this.pixelRatio,s))}layout(){this.body.layout()}get domNode(){return this._domNode}},qk=class extends O{get color(){return this._color}set color(n){this._color.equals(n)||(this._color=n,this._onDidChangeColor.fire(n))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(n){this._colorPresentations=n,this.presentationIndex>n.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(n,e,t){super(),this.presentationIndex=t,this._onColorFlushed=this._register(new Q),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new Q),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new Q),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=n,this._color=n,this._colorPresentations=e}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(n,e){let t=-1;for(let i=0;i<this.colorPresentations.length;i++)if(e.toLowerCase()===this.colorPresentations[i].label){t=i;break}if(t===-1){const i=e.split("(")[0].toLowerCase();for(let s=0;s<this.colorPresentations.length;s++)if(this.colorPresentations[s].label.toLowerCase().startsWith(i)){t=s;break}}t!==-1&&t!==this.presentationIndex&&(this.presentationIndex=t,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}};async function Qy(n,e,t){const i=n.getValueInRange(e.range),{red:s,green:o,blue:r,alpha:a}=e.color,l=new ur(Math.round(s*255),Math.round(o*255),Math.round(r*255),a),d=new me(l),c=await Ty(n,e,t,ue.None),h=new qk(d,[],0);return h.colorPresentations=c||[],h.guessColorPresentation(d,i),{range:y.lift(e.range),model:h,provider:t}}function ex(n,e,t){const i=[],s=t.presentation.textEdit??{range:e,text:t.presentation.label,forceMoveMarkers:!1};i.push(s),t.presentation.additionalTextEdits&&i.push(...t.presentation.additionalTextEdits);const o=y.lift(s.range),r=n.getModel()._setTrackedRange(null,o,3);return n.executeEdits("colorpicker",i),n.pushUndoStop(),n.getModel()._getTrackedRange(r)??o}async function $a(n,e,t,i,s){e.colorPresentations=await Ty(n,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},s.provider,ue.None)||[]}var $k=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Kk=function(n,e){return function(t,i){e(t,i,n)}},sb=class tx{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s,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 tx(e,t.range,t.model,t.provider)}},lc=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t,i){return[]}computeAsync(e,t,i,s){return sn.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];if(!this._isValidRequest(i))return[];const s=gr.get(this._editor);if(!s)return[];for(const o of t){if(!s.isColorDecoration(o))continue;const r=s.getColorData(o.range.getStartPosition());if(r)return[sb.fromBaseColor(this,await Qy(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 ho([]);const s=i.getOption(75)+8;e.setMinimumDimensions(new Le(302,s));const o=new A,r=t[0],a=i.getModel(),l=r.model;this._colorPicker=o.add(new Jy(e.fragment,l,i.getOption(163),this._themeService,"hover"));let d=!1,c=new y(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);o.add(l.onColorFlushed(async u=>{await $a(a,l,u,c,r),d=!0,c=ex(i,c,l)})),o.add(l.onDidChangeColor(u=>{$a(a,l,u,c,r)})),o.add(i.onDidChangeModelContent(u=>{d?d=!1:(e.hide(),i.focus())}));const h={hoverPart:sb.fromBaseColor(this,r),hoverElement:this._colorPicker.domNode,dispose(){o.dispose()}};return new ho([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}};lc=$k([Kk(1,It)],lc);function Mg(n,e){return!!n[e]}var tu=class{constructor(n,e){this.target=n.target,this.isLeftClick=n.event.leftButton,this.isMiddleClick=n.event.middleButton,this.isRightClick=n.event.rightButton,this.mouseMiddleClickAction=e.mouseMiddleClickAction,this.hasTriggerModifier=Mg(n.event,e.triggerModifier),this.isMiddleClick&&e.mouseMiddleClickAction==="ctrlLeftClick"&&(this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0),this.hasSideBySideModifier=Mg(n.event,e.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=n.event.detail<=1}},ob=class{constructor(n,e){this.keyCodeIsTriggerKey=n.keyCode===e.triggerKey,this.keyCodeIsSideBySideKey=n.keyCode===e.triggerSideBySideKey,this.hasTriggerModifier=Mg(n,e.triggerModifier)}},zl=class{constructor(n,e,t,i,s){this.mouseMiddleClickAction=s,this.triggerKey=n,this.triggerModifier=e,this.triggerSideBySideKey=t,this.triggerSideBySideModifier=i}equals(n){return this.triggerKey===n.triggerKey&&this.triggerModifier===n.triggerModifier&&this.triggerSideBySideKey===n.triggerSideBySideKey&&this.triggerSideBySideModifier===n.triggerSideBySideModifier&&this.mouseMiddleClickAction===n.mouseMiddleClickAction}};function rb(n,e){return n==="altKey"?Pn?new zl(57,"metaKey",6,"altKey",e):new zl(5,"ctrlKey",6,"altKey",e):Pn?new zl(6,"altKey",57,"metaKey",e):new zl(6,"altKey",5,"ctrlKey",e)}var fh=class extends O{constructor(n,e){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new Q),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new Q),this.onExecute=this._onExecute.event,this._onCancel=this._register(new Q),this.onCancel=this._onCancel.event,this._editor=n,this._extractLineNumberFromMouseEvent=e?.extractLineNumberFromMouseEvent??(t=>t.target.position?t.target.position.lineNumber:0),this._opts=rb(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(t=>{if(t.hasChanged(86)||t.hasChanged(87)){const i=rb(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(i))return;this._opts=i,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(t=>this._onEditorMouseMove(new tu(t,this._opts)))),this._register(this._editor.onMouseDown(t=>this._onEditorMouseDown(new tu(t,this._opts)))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(new tu(t,this._opts)))),this._register(this._editor.onKeyDown(t=>this._onEditorKeyDown(new ob(t,this._opts)))),this._register(this._editor.onKeyUp(t=>this._onEditorKeyUp(new ob(t,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(t=>this._onDidChangeCursorSelection(t))),this._register(this._editor.onDidChangeModel(t=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(t=>{(t.scrollTopChanged||t.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(n){n.selection&&n.selection.startColumn!==n.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(n){this._lastMouseMoveEvent=n,this._onMouseMoveOrRelevantKeyDown.fire([n,null])}_onEditorMouseDown(n){this._hasTriggerKeyOnMouseDown=n.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(n)}_onEditorMouseUp(n){const e=this._extractLineNumberFromMouseEvent(n);this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===e&&(this._hasTriggerKeyOnMouseDown||n.isMiddleClick&&n.mouseMiddleClickAction==="openLink")&&this._onExecute.fire(n)}_onEditorKeyDown(n){this._lastMouseMoveEvent&&(n.keyCodeIsTriggerKey||n.keyCodeIsSideBySideKey&&n.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,n]):n.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(n){n.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}},ix=class{constructor(n,e){this.range=n,this.direction=e}},Gk=class nx{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new nx(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){tt(t),this._isResolved=!1}}},sx=class xd{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(e,t,i,s){const o=[],r=e.ordered(t).reverse().map(a=>i.map(async l=>{try{const d=await a.provideInlayHints(t,l,s);(d?.hints.length||a.onDidChangeInlayHints)&&o.push([d??xd._emptyInlayHintList,a])}catch(d){tt(d)}}));if(await Promise.all(r.flat()),s.isCancellationRequested||t.isDisposed())throw new rm;return new xd(i,o,t)}constructor(e,t,i){this._disposables=new A,this.ranges=e,this.provider=new Set;const s=[];for(const[o,r]of t){this._disposables.add(o),this.provider.add(r);for(const a of o.hints){const l=i.validatePosition(a.position);let d="before";const c=xd._getRangeAtPosition(i,l);let h;c.getStartPosition().isBefore(l)?(h=y.fromPositions(c.getStartPosition(),l),d="after"):(h=y.fromPositions(l,c.getEndPosition()),d="before"),s.push(new Gk(a,new ix(h,d),r))}}this.items=s.sort((o,r)=>B.compare(o.hint.position,r.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,s=e.getWordAtPosition(t);if(s)return new y(i,s.startColumn,i,s.endColumn);e.tokenization.tokenizeIfCheap(i);const o=e.tokenization.getLineTokens(i),r=t.column-1,a=o.findTokenIndexAtOffset(r);let l=o.getStartOffset(a),d=o.getEndOffset(a);return d-l===1&&(l===r&&a>1?(l=o.getStartOffset(a-1),d=o.getEndOffset(a-1)):d===r&&a<o.getCount()-1&&(l=o.getStartOffset(a+1),d=o.getEndOffset(a+1))),new y(i,l+1,i,d+1)}};function Zk(n){return fS(n.id,...n.arguments??[]).toString()}var Xk=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},qi=function(n,e){return function(t,i){e(t,i,n)}},rn=class extends Wm{constructor(e,t,i,s,o,r,a,l,d,c,h,u,g,p){super(e,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},i,o,r,a,l,d,c,h,u,g,p),this._parentEditor=s,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration(f=>this._onParentConfigurationChanged(f)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){Pm(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};rn=Xk([qi(4,ie),qi(5,$e),qi(6,ht),qi(7,ve),qi(8,It),qi(9,Et),qi(10,Rs),qi(11,ct),qi(12,Z),qi(13,$c)],rn);function ox(n){const e=n.get($e).getFocusedCodeEditor();return e instanceof rn?e.getParentEditor():e}var ab=new me(new ur(0,122,204)),Yk={showArrow:!0,showFrame:!0,className:"",frameColor:ab,arrowColor:ab,keepEditorSelection:!1},Jk="vs.editor.contrib.zoneWidget",Qk=class{constructor(n,e,t,i,s,o,r,a){this.id="",this.domNode=n,this.afterLineNumber=e,this.afterColumn=t,this.heightInLines=i,this.showInHiddenAreas=r,this.ordinal=a,this._onDomNodeTop=s,this._onComputedHeight=o}onDomNodeTop(n){this._onDomNodeTop(n)}onComputedHeight(n){this._onComputedHeight(n)}},eP=class{constructor(n,e){this._id=n,this._domNode=e}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}},tP=class rx{static{this._IdGenerator=new P0(".arrow-decoration-")}constructor(e){this._editor=e,this._ruleName=rx._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),ev(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(){ev(this._ruleName),D0(`.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:y.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}},iP=class{constructor(n,e={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new A,this.container=null,this._isShowing=!1,this.editor=n,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=G0(e),Pm(this.options,Yk,!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(t=>{const i=this._getWidth(t);this.domNode.style.width=i+"px",this.domNode.style.left=this._getLeft(t)+"px",this._onWidth(i)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(n=>{this._viewZone&&n.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 tP(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(n){n.frameColor&&(this.options.frameColor=n.frameColor),n.arrowColor&&(this.options.arrowColor=n.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const n=this.options.frameColor.toString();this.container.style.borderTopColor=n,this.container.style.borderBottomColor=n}if(this._arrow&&this.options.arrowColor){const n=this.options.arrowColor.toString();this._arrow.color=n}}_getWidth(n){return n.width-n.minimap.minimapWidth-n.verticalScrollbarWidth}_getLeft(n){return n.minimap.minimapWidth>0&&n.minimap.minimapLeft===0?n.minimap.minimapWidth:0}_onViewZoneTop(n){this.domNode.style.top=n+"px"}_onViewZoneHeight(n){if(this.domNode.style.height=`${n}px`,this.container){const e=n-this._decoratingElementsHeight();this.container.style.height=`${e}px`;const t=this.editor.getLayoutInfo();this._doLayout(e,this._getWidth(t))}this._resizeSash?.layout()}get position(){const n=this._positionMarkerId.getRange(0);if(n)return n.getStartPosition()}show(n,e){const t=y.isIRange(n)?y.lift(n):y.fromPositions(n);this._isShowing=!0,this._showImpl(t,e),this._isShowing=!1,this._positionMarkerId.set([{range:t,options:se.EMPTY}])}hide(){this._viewZone&&(this.editor.changeViewZones(n=>{this._viewZone&&n.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 n=this.editor.getOption(75);let e=0;if(this.options.showArrow){const t=Math.round(n/3);e+=2*t}if(this.options.showFrame){const t=this.options.frameWidth??Math.round(n/9);e+=2*t}return e}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*.8)}_showImpl(n,e){const t=n.getStartPosition(),i=this.editor.getLayoutInfo(),s=this._getWidth(i);this.domNode.style.width=`${s}px`,this.domNode.style.left=this._getLeft(i)+"px";const o=document.createElement("div");o.style.overflow="hidden";const r=this.editor.getOption(75),a=this._getMaximumHeightInLines();a!==void 0&&(e=Math.min(e,a));let l=0,d=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(r/3),this._arrow.height=l,this._arrow.show(t)),this.options.showFrame&&(d=Math.round(r/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 Qk(o,t.lineNumber,t.column,e,g=>this._onViewZoneTop(g),g=>this._onViewZoneHeight(g),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=u.addZone(this._viewZone),this._overlayWidget=new eP(Jk+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:d;this.container.style.borderTopWidth=u+"px",this.container.style.borderBottomWidth=u+"px"}const c=e*r-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=c+"px",this.container.style.overflow="hidden"),this._doLayout(c,s),this.options.keepEditorSelection||this.editor.setSelection(n);const h=this.editor.getModel();if(h){const u=h.validateRange(new y(n.startLineNumber,1,n.endLineNumber+1,1));this.revealRange(u,u.startLineNumber===h.getLineCount())}}revealRange(n,e){e?this.editor.revealLineNearTop(n.endLineNumber,0):this.editor.revealRange(n,0)}setCssClass(n,e){this.container&&(e&&this.container.classList.remove(e),this.container.classList.add(n))}_onWidth(n){}_doLayout(n,e){}_relayout(n,e){const t=this._getMaximumHeightInLines(),i=e&&t!==void 0?Math.min(t,n):n;this._viewZone&&this._viewZone.heightInLines!==i&&(this.editor.changeViewZones(s=>{this._viewZone&&(this._viewZone.heightInLines=i,s.layoutZone(this._viewZone.id))}),this._updateSashEnablement())}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new qo(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let n;this._disposables.add(this._resizeSash.onDidStart(e=>{this._viewZone&&(n={startY:e.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{n=void 0})),this._disposables.add(this._resizeSash.onDidChange(e=>{if(n){const t=(e.currentY-n.startY)/this.editor.getOption(75),i=t<0?Math.ceil(t):Math.floor(t),s=n.heightInLines+i;s>n.minLines&&s<n.maxLines&&(this._isSashResizeHeight=!0,this._relayout(s))}}))}_updateSashEnablement(){if(this._resizeSash){const{minLines:n,maxLines:e}=this._getResizeBounds();this._resizeSash.state=n===e?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 n=this.editor.getLayoutInfo();return n.width-n.minimap.minimapWidth}},ax=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},lx=function(n,e){return function(t,i){e(t,i,n)}},dx=dn("IPeekViewService");Wn(dx,class{constructor(){this._widgets=new Map}addExclusiveWidget(n,e){const t=this._widgets.get(n);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const s=this._widgets.get(n);s&&s.widget===e&&(s.listener.dispose(),this._widgets.delete(n))};this._widgets.set(n,{widget:e,listener:e.onDidClose(i)})}},1);var Vt;(function(n){n.inPeekEditor=new oe("inReferenceSearchEditor",!0,m(1362,"Whether the current code editor is embedded inside peek")),n.notInPeekEditor=n.inPeekEditor.toNegated()})(Vt||(Vt={}));var dc=class{static{this.ID="editor.contrib.referenceController"}constructor(e,t){e instanceof rn&&Vt.inPeekEditor.bindTo(t)}dispose(){}};dc=ax([lx(1,ve)],dc);ce(dc.ID,dc,0);var nP={headerBackgroundColor:me.white,primaryHeadingColor:me.fromHex("#333333"),secondaryHeadingColor:me.fromHex("#6c6c6cb3")},cc=class extends iP{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new Q,this.onDidClose=this._onDidClose.event,Pm(this.options,nP,!1);const s=Be(this.editor);s.openedPeekWidgets.set(s.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();const e=Be(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=W(".head"),this._bodyElement=W(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=W(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),bs(this._titleElement,"click",o=>this._onTitleClick(o))),z(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=W("span.filename"),this._secondaryHeading=W("span.dirname"),this._metaHeading=W("span.meta"),z(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=W(".peekview-actions");z(this._headElement,i);const s=this._getActionBarOptions();this._actionbarWidget=new fs(i,s),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(this._disposables.add(new sr("peekview.close",m(1363,"Close"),pe.asClassName(V.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:IE.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:di(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,wi(this._metaHeading)):Jt(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(75)*1.2),s=Math.round(e-(i+1));this._doLayoutHead(i,t),this._doLayoutBody(s,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`)}};cc=ax([lx(2,ie)],cc);var sP=H("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:me.black,hcLight:me.white},m(1364,"Background color of the peek view title area.")),cx=H("peekViewTitleLabel.foreground",{dark:me.white,light:me.black,hcDark:me.white,hcLight:fl},m(1365,"Color of the peek view title.")),hx=H("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},m(1366,"Color of the peek view title info.")),oP=H("peekView.border",{dark:Xu,light:Xu,hcDark:on,hcLight:on},m(1367,"Color of the peek view borders and arrow.")),rP=H("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:me.black,hcLight:me.white},m(1368,"Background color of the peek view result list."));H("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:me.white,hcLight:fl},m(1369,"Foreground color for line nodes in the peek view result list."));H("peekViewResult.fileForeground",{dark:me.white,light:"#1E1E1E",hcDark:me.white,hcLight:fl},m(1370,"Foreground color for file nodes in the peek view result list."));H("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},m(1371,"Background color of the selected entry in the peek view result list."));H("peekViewResult.selectionForeground",{dark:me.white,light:"#6C6C6C",hcDark:me.white,hcLight:fl},m(1372,"Foreground color of the selected entry in the peek view result list."));var r_=H("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:me.black,hcLight:me.white},m(1373,"Background color of the peek view editor."));H("peekViewEditorGutter.background",r_,m(1374,"Background color of the gutter in the peek view editor."));H("peekViewEditorStickyScroll.background",r_,m(1375,"Background color of sticky scroll in the peek view editor."));H("peekViewEditorStickyScrollGutter.background",r_,m(1376,"Background color of the gutter part of sticky scroll in the peek view editor."));H("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},m(1377,"Match highlight color in the peek view result list."));H("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},m(1378,"Match highlight color in the peek view editor."));H("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:to,hcLight:to},m(1379,"Match highlight border in the peek view editor."));var Mn=class{constructor(n,e,t,i){this.isProviderFirst=n,this.parent=e,this.link=t,this._rangeCallback=i,this.id=dE.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(n){this._range=n,this._rangeCallback(this)}get ariaMessage(){const n=this.parent.getPreview(this)?.preview(this.range);return n?m(1131,"{0} in {1} on line {2} at column {3}",n.value,Vi(this.uri),this.range.startLineNumber,this.range.startColumn):m(1130,"in {0} on line {1} at column {2}",Vi(this.uri),this.range.startLineNumber,this.range.startColumn)}},aP=class{constructor(n){this._modelReference=n}dispose(){this._modelReference.dispose()}preview(n,e=8){const t=this._modelReference.object.textEditorModel;if(!t)return;const{startLineNumber:i,startColumn:s,endLineNumber:o,endColumn:r}=n,a=t.getWordUntilPosition({lineNumber:i,column:s-e}),l=new y(i,a.startColumn,i,s),d=new y(o,r,o,1073741824),c=t.getValueInRange(l).replace(/^\s+/,""),h=t.getValueInRange(n),u=t.getValueInRange(d).replace(/\s+$/,"");return{value:c+h+u,highlight:{start:c.length,end:c.length+h.length}}}},fr=class{constructor(n,e){this.parent=n,this.uri=e,this.children=[],this._previews=new Rn}dispose(){Nt(this._previews.values()),this._previews.clear()}getPreview(n){return this._previews.get(n.uri)}get ariaMessage(){const n=this.children.length;return n===1?m(1132,"1 symbol in {0}, full path {1}",Vi(this.uri),this.uri.fsPath):m(1133,"{0} symbols in {1}, full path {2}",n,Vi(this.uri),this.uri.fsPath)}async resolve(n){if(this._previews.size!==0)return this;for(const e of this.children)if(!this._previews.has(e.uri))try{const t=await n.createModelReference(e.uri);this._previews.set(e.uri,new aP(t))}catch(t){we(t)}return this}},zi=class Id{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new Q,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(Id._compareReferences);let s;for(const o of e)if((!s||!X_.isEqual(s.uri,o.uri,!0))&&(s=new fr(this,o.uri),this.groups.push(s)),s.children.length===0||Id._compareReferences(o,s.children[s.children.length-1])!==0){const r=new Mn(i===o,s,o,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(r),s.children.push(r)}}dispose(){Nt(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Id(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 s=i.children.indexOf(e);const o=i.children.length,r=i.parent.groups.length;return r===1||t&&s+1<o||!t&&s>0?(t?s=(s+1)%o:s=(s+o-1)%o,i.children[s]):(s=i.parent.groups.indexOf(i),t?(s=(s+1)%r,i.parent.groups[s].children[0]):(s=(s+r-1)%r,i.parent.groups[s].children[i.parent.groups[s].children.length-1]))}nearestReference(e,t){const i=this.references.map((s,o)=>({idx:o,prefixLen:Sr(s.uri.toString(),e.toString()),offsetDist:Math.abs(s.range.startLineNumber-t.lineNumber)*100+Math.abs(s.range.startColumn-t.column)})).sort((s,o)=>s.prefixLen>o.prefixLen?-1:s.prefixLen<o.prefixLen?1:s.offsetDist<o.offsetDist?-1:s.offsetDist>o.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()&&y.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 X_.compare(e.uri,t.uri)||y.compareRangesUsingStarts(e.range,t.range)}},mh=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_h=function(n,e){return function(t,i){e(t,i,n)}},Ag,Fg=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof zi||e instanceof fr}getChildren(e){if(e instanceof zi)return e.groups;if(e instanceof fr)return e.resolve(this._resolverService).then(t=>t.children);throw new Error("bad tree")}};Fg=mh([_h(0,si)],Fg);var lP=class{getHeight(){return 23}getTemplateId(n){return n instanceof fr?hc.id:ux.id}},Hg=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){if(e instanceof Mn){const t=e.parent.getPreview(e)?.preview(e.range);if(t)return t.value}return Vi(e.uri)}};Hg=mh([_h(0,Oe)],Hg);var dP=class{getId(n){return n instanceof Mn?n.id:n.uri}},Wg=class extends O{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new MS(i,{supportHighlights:!0})),this.badge=this._register(new x0(z(i,W(".count")),{},tT)),e.appendChild(i)}set(e,t){const i=Cm(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 s=e.children.length;this.badge.setCount(s),s>1?this.badge.setTitleFormat(m(1124,"{0} references",s)):this.badge.setTitleFormat(m(1125,"{0} reference",s))}};Wg=mh([_h(1,ar)],Wg);var hc=class{static{Ag=this}static{this.id="FileReferencesRenderer"}constructor(e){this._instantiationService=e,this.templateId=Ag.id}renderTemplate(e){return this._instantiationService.createInstance(Wg,e)}renderElement(e,t,i){i.set(e.element,nh(e.filterData))}disposeTemplate(e){e.dispose()}};hc=Ag=mh([_h(0,ie)],hc);var cP=class extends O{constructor(n){super(),this.label=this._register(new JR(n))}set(n,e){const t=n.parent.getPreview(n)?.preview(n.range);if(!t||!t.value)this.label.set(`${Vi(n.uri)}:${n.range.startLineNumber+1}:${n.range.startColumn+1}`);else{const{value:i,highlight:s}=t;e&&!Oa.isDefault(e)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(i,nh(e))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(i,[s]))}}},ux=class gx{constructor(){this.templateId=gx.id}static{this.id="OneReferenceRenderer"}renderTemplate(e){return new cP(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}},hP=class{getWidgetAriaLabel(){return m(1126,"References")}getAriaLabel(n){return n.ariaMessage}},px=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},js=function(n,e){return function(t,i){e(t,i,n)}},uP=class fx{static{this.DecorationOptions=se.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new A,this._callOnModelChange=new A,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 s=0,o=e.children.length;s<o;s++){const r=e.children[s];this._decorationIgnoreSet.has(r.id)||r.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:r.range,options:fx.DecorationOptions}),i.push(s))}this._editor.changeDecorations(s=>{const o=s.deltaDecorations([],t);for(let r=0;r<o.length;r++)this._decorations.set(o[r],e.children[i[r]])})}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,s]of this._decorations){const o=t.getDecorationRange(i);if(!o)continue;let r=!1;y.equalsRange(o,s.range)||((y.spansMultipleLines(o)||s.range.endColumn-s.range.startColumn!==o.endColumn-o.startColumn)&&(r=!0),r?(this._decorationIgnoreSet.add(s.id),e.push(i)):s.range=o)}for(let i=0,s=e.length;i<s;i++)this._decorations.delete(e[i]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}},gP=class{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(n){let e,t;try{const i=JSON.parse(n);e=i.ratio,t=i.heightInLines}catch{}return{ratio:e||.7,heightInLines:t||18}}},pP=class extends NT{},Vg=class{constructor(e){this.labelService=e,this.disposables=new A}getDragURI(e){return e instanceof fr?e.uri.toString():e instanceof Mn?j0(e.uri,e.range).toString():null}getDragLabel(e){if(e.length!==0)return e.map(t=>this.labelService.getUriBasenameLabel(t.uri)).join(", ")}onDragStart(e,t){if(!t.dataTransfer)return;const i=e.elements.map(s=>this.getDragURI(s)).filter(Boolean);i.length&&(t.dataTransfer.setData(K_.RESOURCES,JSON.stringify(i)),t.dataTransfer.setData(K_.TEXT,i.join(`
9
- `)))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};Vg=px([js(0,ar)],Vg);var Bg=class extends cc{constructor(e,t,i,s,o,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=o,this._instantiationService=r,this._peekViewService=a,this._uriLabel=l,this._keybindingService=d,this._disposeOnNewModel=new A,this._callOnDispose=new A,this._onDidSelectReference=this._callOnDispose.add(new Q),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new Le(0,0),this._isClosing=!1,this._applyTheme(s.getColorTheme()),this._callOnDispose.add(s.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(),Nt(this._preview),Nt(this._previewNotAvailableMessage),Nt(this._tree),Nt(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor(oP)||me.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(sP)||me.transparent,primaryHeadingColor:e.getColor(cx),secondaryHeadingColor:e.getColor(hx)})}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,W("div.messages")),Jt(this._messageContainer),this._splitView=new f0(e,{orientation:1}),this._previewContainer=z(e,W("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(rn,this._previewContainer,t,{},this.editor),Jt(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(Yd,m(1127,"no preview available"),HE,Yd.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=z(e,W("div.ref-tree.inline"));const i={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new hP,keyboardNavigationLabelProvider:this._instantiationService.createInstance(Hg),identityProvider:new dP,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:rP},dnd:this._instantiationService.createInstance(Vg)};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(bs(this._treeContainer,"keydown",o=>{o.equals(9)&&(this._keybindingService.dispatchEvent(o,o.target),o.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(pP,"ReferencesWidget",this._treeContainer,new lP,[this._instantiationService.createInstance(hc),this._instantiationService.createInstance(ux)],this._instantiationService.createInstance(Fg),i),this._splitView.addView({onDidChange:qe.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:o=>{this._preview.layout({height:this._dim.height,width:o})}},rv.Distribute),this._splitView.addView({onDidChange:qe.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:o=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${o}px`,this._tree.layout(this._dim.height,o)}},rv.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const s=(o,r)=>{o instanceof Mn&&(r==="show"&&this._revealReference(o,!1),this._onDidSelectReference.fire({element:o,kind:r,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(o=>{o.sideBySide?s(o.element,"side"):o.editorOptions.pinned?s(o.element,"goto"):s(o.element,"show")})),Jt(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new Le(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"),wi(this._messageContainer),Promise.resolve(void 0)):(Jt(this._messageContainer),this._decorationsManager=new uP(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 s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),wi(this._treeContainer),wi(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 Mn)return e;if(e instanceof fr&&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!==_t.inMemory?this.setTitle(TT(e.uri),this._uriLabel.getUriLabel(Cm(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 s=await i;if(!this._model){s.dispose();return}Nt(this._previewModelReference);const o=s.object;if(o){const r=this._preview.getModel()===o.textEditorModel?0:1,a=y.lift(e.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(o.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,r)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};Bg=px([js(3,It),js(4,si),js(5,ie),js(6,dx),js(7,ar),js(8,Oe)],Bg);var fP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Lo=function(n,e){return function(t,i){e(t,i,n)}},Ld,So=new oe("referenceSearchVisible",!1,m(1121,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),uo=class{static{Ld=this}static{this.ID="editor.contrib.referencesController"}static get(e){return e.getContribution(Ld.ID)}constructor(e,t,i,s,o,r,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=s,this._notificationService=o,this._instantiationService=r,this._storageService=a,this._configurationService=l,this._disposables=new A,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=So.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 s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&e.containsPosition(s))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 o="peekViewLayout",r=gP.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(Bg,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(o,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)}}));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 B(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 s=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),r=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),o?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=y.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:i,selectionSource:"code.jump",pinned:t}},this._editor).then(s=>{if(this._ignoreModelChangeEvent=!1,!s||!this._widget){this.closeWidget();return}if(this._editor===s)this._widget.show(i),this._widget.focusOnReferenceTree();else{const o=Ld.get(s),r=this._model.clone();this.closeWidget(),s.focus(),o?.toggleWidget(i,pt(a=>Promise.resolve(r)),this._peekMode??!1)}},s=>{this._ignoreModelChangeEvent=!1,we(s)})}openReference(e,t,i){t||this.closeWidget();const{uri:s,range:o}=e;this._editorService.openCodeEditor({resource:s,options:{selection:o,selectionSource:"code.jump",pinned:i}},this._editor,t)}};uo=Ld=fP([Lo(2,ve),Lo(3,$e),Lo(4,Et),Lo(5,ie),Lo(6,Ti),Lo(7,xe)],uo);function wo(n,e){const t=ox(n);if(!t)return;const i=uo.get(t);i&&e(i)}ni.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:et(2089,60),when:N.or(So,Vt.inPeekEditor),handler(n){wo(n,e=>{e.changeFocusBetweenPreviewAndReferences()})}});ni.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:N.or(So,Vt.inPeekEditor),handler(n){wo(n,e=>{e.goToNextOrPreviousReference(!0)})}});ni.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:N.or(So,Vt.inPeekEditor),handler(n){wo(n,e=>{e.goToNextOrPreviousReference(!1)})}});Re.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");Re.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");Re.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");Re.registerCommand("closeReferenceSearch",n=>wo(n,e=>e.closeWidget()));ni.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:N.and(Vt.inPeekEditor,N.not("config.editor.stablePeek"))});ni.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:N.and(So,N.not("config.editor.stablePeek"),N.or(S.editorTextFocus,jE.negate()))});ni.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:N.and(So,jS,SS.negate(),CS.negate()),handler(n){const e=n.get(sm).lastFocusedList?.getFocus();Array.isArray(e)&&e[0]instanceof Mn&&wo(n,t=>t.revealReference(e[0]))}});ni.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:N.and(So,jS,SS.negate(),CS.negate()),handler(n){const e=n.get(sm).lastFocusedList?.getFocus();Array.isArray(e)&&e[0]instanceof Mn&&wo(n,t=>t.openReference(e[0],!0,!0))}});Re.registerCommand("openReference",n=>{const e=n.get(sm).lastFocusedList?.getFocus();Array.isArray(e)&&e[0]instanceof Mn&&wo(n,t=>t.openReference(e[0],!1,!0))});var mx=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},na=function(n,e){return function(t,i){e(t,i,n)}},a_=new oe("hasSymbols",!1,m(1138,"Whether there are symbol locations that can be navigated via keyboard-only.")),vh=dn("ISymbolNavigationService"),Ug=class{constructor(e,t,i,s){this._editorService=t,this._notificationService=i,this._keybindingService=s,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=a_.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 zg(this._editorService),s=i.onDidChange(o=>{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(ps(h.uri,a.uri))d=!0,c=c||y.containsPosition(h.range,l);else if(d)break;(!d||!c)&&this.reset()});this._currentState=fw(i,s)}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:y.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)}};Ug=mx([na(0,ve),na(1,$e),na(2,Et),na(3,Oe)],Ug);Wn(vh,Ug,1);G(new class extends Mt{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:a_,kbOpts:{weight:100,primary:70}})}runEditorCommand(n,e){return n.get(vh).revealNext(e)}});ni.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:a_,primary:9,handler(n){n.get(vh).reset()}});var zg=class{constructor(e){this._listener=new Map,this._disposables=new A,this._onDidChange=new Q,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(),Nt(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,fw(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)}};zg=mx([na(0,$e)],zg);function jg(n,e){return e.uri.scheme===n.uri.scheme?!0:!X0(e.uri,_t.walkThroughSnippet,_t.vscodeChatCodeBlock,_t.vscodeChatCodeCompareBlock)}async function xl(n,e,t,i,s){const o=t.ordered(n,i).map(a=>Promise.resolve(s(a,n,e)).then(void 0,l=>{tt(l)})),r=await Promise.all(o);return Ns(r.flat()).filter(a=>jg(n,a))}function Il(n,e,t,i,s){return xl(e,t,n,i,(o,r,a)=>o.provideDefinition(r,a,s))}function l_(n,e,t,i,s){return xl(e,t,n,i,(o,r,a)=>o.provideDeclaration(r,a,s))}function d_(n,e,t,i,s){return xl(e,t,n,i,(o,r,a)=>o.provideImplementation(r,a,s))}function c_(n,e,t,i,s){return xl(e,t,n,i,(o,r,a)=>o.provideTypeDefinition(r,a,s))}function Ll(n,e,t,i,s,o){return xl(e,t,n,s,async(r,a,l)=>{const d=(await r.provideReferences(a,l,{includeDeclaration:!0},o))?.filter(h=>jg(a,h));if(!i||!d||d.length!==2)return d;const c=(await r.provideReferences(a,l,{includeDeclaration:!1},o))?.filter(h=>jg(a,h));return c&&c.length===1?c:d})}async function cn(n){const e=await n(),t=new zi(e,""),i=t.references.map(s=>s.link);return t.dispose(),i}Ut("_executeDefinitionProvider",(n,e,t)=>{const i=Il(n.get(Z).definitionProvider,e,t,!1,ue.None);return cn(()=>i)});Ut("_executeDefinitionProvider_recursive",(n,e,t)=>{const i=Il(n.get(Z).definitionProvider,e,t,!0,ue.None);return cn(()=>i)});Ut("_executeTypeDefinitionProvider",(n,e,t)=>{const i=c_(n.get(Z).typeDefinitionProvider,e,t,!1,ue.None);return cn(()=>i)});Ut("_executeTypeDefinitionProvider_recursive",(n,e,t)=>{const i=c_(n.get(Z).typeDefinitionProvider,e,t,!0,ue.None);return cn(()=>i)});Ut("_executeDeclarationProvider",(n,e,t)=>{const i=l_(n.get(Z).declarationProvider,e,t,!1,ue.None);return cn(()=>i)});Ut("_executeDeclarationProvider_recursive",(n,e,t)=>{const i=l_(n.get(Z).declarationProvider,e,t,!0,ue.None);return cn(()=>i)});Ut("_executeReferenceProvider",(n,e,t)=>{const i=Ll(n.get(Z).referenceProvider,e,t,!1,!1,ue.None);return cn(()=>i)});Ut("_executeReferenceProvider_recursive",(n,e,t)=>{const i=Ll(n.get(Z).referenceProvider,e,t,!1,!0,ue.None);return cn(()=>i)});Ut("_executeImplementationProvider",(n,e,t)=>{const i=d_(n.get(Z).implementationProvider,e,t,!1,ue.None);return cn(()=>i)});Ut("_executeImplementationProvider_recursive",(n,e,t)=>{const i=d_(n.get(Z).implementationProvider,e,t,!0,ue.None);return cn(()=>i)});Li.appendMenuItem($.EditorContext,{submenu:$.EditorContextPeek,title:m(1081,"Peek"),group:"navigation",order:100});var uc=class _x{static is(e){return!e||typeof e!="object"?!1:!!(e instanceof _x||B.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}},yo=class mn extends gi{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return mn._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of cs.wrap(t.menu))(i.id===$.EditorContext||i.id===$.EditorContextPeek)&&(i.when=N.and(e.precondition,i.when));return t}constructor(e,t){super(mn._patchConfig(t)),this.configuration=e,mn._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,s){if(!t.hasModel())return Promise.resolve(void 0);const o=e.get(Et),r=e.get($e),a=e.get(lr),l=e.get(vh),d=e.get(Z),c=e.get(ie),h=t.getModel(),u=t.getPosition(),g=uc.is(i)?i:new uc(h,u),p=new no(t,5),f=rr(this._getLocationModel(d,g.model,g.position,p.token),p.token).then(async _=>{if(!_||p.token.isCancellationRequested)return;ci(_.ariaMessage);let v;if(_.referenceAt(h.uri,u)){const x=this._getAlternativeCommand(t);x!==void 0&&!mn._activeAlternativeCommands.has(x)&&mn._allSymbolNavigationCommands.has(x)&&(v=mn._allSymbolNavigationCommands.get(x))}const C=_.references.length;if(C===0){if(!this.configuration.muteMessage){const x=h.getWordAtPosition(u);qt.get(t)?.showMessage(this._getNoResultFoundMessage(x),u)}}else if(C===1&&v)mn._activeAlternativeCommands.add(this.desc.id),c.invokeFunction(x=>v.runEditorCommand(x,t,i,s).finally(()=>{mn._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(r,l,t,_,s)},_=>{o.error(_)}).finally(()=>{p.dispose()});return a.showWhile(f,250),f}async _onResult(e,t,i,s,o){const r=this._getGoToPreference(i);if(!(i instanceof rn)&&(this.configuration.openInPeek||r==="peek"&&s.references.length>1))this._openInPeek(i,s,o);else{const a=s.firstReference(),l=s.references.length>1&&r==="gotoAndPeek",d=await this._openReference(i,e,a,this.configuration.openToSide,!l);l&&d?this._openInPeek(d,s,o):s.dispose(),r==="goto"&&t.put(a)}}async _openReference(e,t,i,s,o){let r;if(V0(i)&&(r=i.targetSelectionRange),r||(r=i.range),!r)return;const a=await t.openCodeEditor({resource:i.uri,options:{selection:y.collapseToStart(r),selectionRevealType:3,selectionSource:"code.jump"}},e,s);if(a){if(o){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 s=uo.get(e);s&&e.hasModel()?s.toggleWidget(i??e.getSelection(),pt(o=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}},Dl=class extends yo{async _getLocationModel(n,e,t,i){return new zi(await Il(n.definitionProvider,e,t,!1,i),m(1082,"Definitions"))}_getNoResultFoundMessage(n){return n&&n.word?m(1083,"No definition found for '{0}'",n.word):m(1084,"No definition found")}_getAlternativeCommand(n){return n.getOption(67).alternativeDefinitionCommand}_getGoToPreference(n){return n.getOption(67).multipleDefinitions}};fe(class qg extends Dl{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:qg.id,title:{...L(1108,"Go to Definition"),mnemonicTitle:m(1085,"Go to &&Definition")},precondition:S.hasDefinitionProvider,keybinding:[{when:S.editorTextFocus,primary:70,weight:100},{when:N.and(S.editorTextFocus,xw),primary:2118,weight:100}],menu:[{id:$.EditorContext,group:"navigation",order:1.1},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),Re.registerCommandAlias("editor.action.goToDeclaration",qg.id)}});fe(class $g extends Dl{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:$g.id,title:L(1109,"Open Definition to the Side"),precondition:N.and(S.hasDefinitionProvider,S.isInEmbeddedEditor.toNegated()),keybinding:[{when:S.editorTextFocus,primary:et(2089,70),weight:100},{when:N.and(S.editorTextFocus,xw),primary:et(2089,2118),weight:100}]}),Re.registerCommandAlias("editor.action.openDeclarationToTheSide",$g.id)}});fe(class Kg extends Dl{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Kg.id,title:L(1110,"Peek Definition"),precondition:N.and(S.hasDefinitionProvider,Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated()),keybinding:{when:S.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:$.EditorContextPeek,group:"peek",order:2}}),Re.registerCommandAlias("editor.action.previewDeclaration",Kg.id)}});var vx=class extends yo{async _getLocationModel(n,e,t,i){return new zi(await l_(n.declarationProvider,e,t,!1,i),m(1086,"Declarations"))}_getNoResultFoundMessage(n){return n&&n.word?m(1087,"No declaration found for '{0}'",n.word):m(1088,"No declaration found")}_getAlternativeCommand(n){return n.getOption(67).alternativeDeclarationCommand}_getGoToPreference(n){return n.getOption(67).multipleDeclarations}};fe(class bx extends vx{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:bx.id,title:{...L(1111,"Go to Declaration"),mnemonicTitle:m(1089,"Go to &&Declaration")},precondition:N.and(S.hasDeclarationProvider,S.isInEmbeddedEditor.toNegated()),menu:[{id:$.EditorContext,group:"navigation",order:1.3},{id:$.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")}});fe(class extends vx{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:L(1112,"Peek Declaration"),precondition:N.and(S.hasDeclarationProvider,Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated()),menu:{id:$.EditorContextPeek,group:"peek",order:3}})}});var Cx=class extends yo{async _getLocationModel(n,e,t,i){return new zi(await c_(n.typeDefinitionProvider,e,t,!1,i),m(1092,"Type Definitions"))}_getNoResultFoundMessage(n){return n&&n.word?m(1093,"No type definition found for '{0}'",n.word):m(1094,"No type definition found")}_getAlternativeCommand(n){return n.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(n){return n.getOption(67).multipleTypeDefinitions}};fe(class Sx extends Cx{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Sx.ID,title:{...L(1113,"Go to Type Definition"),mnemonicTitle:m(1095,"Go to &&Type Definition")},precondition:S.hasTypeDefinitionProvider,keybinding:{when:S.editorTextFocus,primary:0,weight:100},menu:[{id:$.EditorContext,group:"navigation",order:1.4},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}});fe(class wx extends Cx{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:wx.ID,title:L(1114,"Peek Type Definition"),precondition:N.and(S.hasTypeDefinitionProvider,Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated()),menu:{id:$.EditorContextPeek,group:"peek",order:4}})}});var yx=class extends yo{async _getLocationModel(n,e,t,i){return new zi(await d_(n.implementationProvider,e,t,!1,i),m(1096,"Implementations"))}_getNoResultFoundMessage(n){return n&&n.word?m(1097,"No implementation found for '{0}'",n.word):m(1098,"No implementation found")}_getAlternativeCommand(n){return n.getOption(67).alternativeImplementationCommand}_getGoToPreference(n){return n.getOption(67).multipleImplementations}};fe(class xx extends yx{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:xx.ID,title:{...L(1115,"Go to Implementations"),mnemonicTitle:m(1099,"Go to &&Implementations")},precondition:S.hasImplementationProvider,keybinding:{when:S.editorTextFocus,primary:2118,weight:100},menu:[{id:$.EditorContext,group:"navigation",order:1.45},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}});fe(class Ix extends yx{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Ix.ID,title:L(1116,"Peek Implementations"),precondition:N.and(S.hasImplementationProvider,Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated()),keybinding:{when:S.editorTextFocus,primary:3142,weight:100},menu:{id:$.EditorContextPeek,group:"peek",order:5}})}});var Lx=class extends yo{_getNoResultFoundMessage(n){return n?m(1100,"No references found for '{0}'",n.word):m(1101,"No references found")}_getAlternativeCommand(n){return n.getOption(67).alternativeReferenceCommand}_getGoToPreference(n){return n.getOption(67).multipleReferences}};fe(class extends Lx{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:N.and(S.hasReferenceProvider,Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated()),keybinding:{when:S.editorTextFocus,primary:1094,weight:100},menu:[{id:$.EditorContext,group:"navigation",order:1.45},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(e,t,i,s){return new zi(await Ll(e.referenceProvider,t,i,!0,!1,s),m(1103,"References"))}});fe(class extends Lx{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:L(1118,"Peek References"),precondition:N.and(S.hasReferenceProvider,Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated()),menu:{id:$.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,i,s){return new zi(await Ll(e.referenceProvider,t,i,!1,!1,s),m(1104,"References"))}});var mP=class extends yo{constructor(n,e,t){super(n,{id:"editor.action.goToLocation",title:L(1119,"Go to Any Symbol"),precondition:N.and(Vt.notInPeekEditor,S.isInEmbeddedEditor.toNegated())}),this._references=e,this._gotoMultipleBehaviour=t}async _getLocationModel(n,e,t,i){return new zi(this._references,m(1105,"Locations"))}_getNoResultFoundMessage(n){return n&&m(1106,"No results for '{0}'",n.word)||""}_getGoToPreference(n){return this._gotoMultipleBehaviour??n.getOption(67).multipleReferences}_getAlternativeCommand(){}};Re.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:De},{name:"position",description:"The position at which to start",constraint:B.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(n,e,t,i,s,o,r)=>{Se(De.isUri(e)),Se(B.isIPosition(t)),Se(Array.isArray(i)),Se(typeof s>"u"||typeof s=="string"),Se(typeof r>"u"||typeof r=="boolean");const a=n.get($e),l=await a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(Tw(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(d=>{const c=new class extends mP{_getNoResultFoundMessage(h){return o||super._getNoResultFoundMessage(h)}}({muteMessage:!o,openInPeek:!!r,openToSide:!1},i,s);d.get(ie).invokeFunction(c.run.bind(c),l)})}});Re.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:De},{name:"position",description:"The position at which to start",constraint:B.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(n,e,t,i,s)=>{n.get(ht).executeCommand("editor.action.goToLocations",e,t,i,s,void 0,!0)}});Re.registerCommand({id:"editor.action.findReferences",handler:(n,e,t)=>{Se(De.isUri(e)),Se(B.isIPosition(t));const i=n.get(Z),s=n.get($e);return s.openCodeEditor({resource:e},s.getFocusedCodeEditor()).then(o=>{if(!Tw(o)||!o.hasModel())return;const r=uo.get(o);if(!r)return;const a=pt(d=>Ll(i.referenceProvider,o.getModel(),B.lift(t),!1,!1,d).then(c=>new zi(c,m(1107,"References")))),l=new y(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(r.toggleWidget(l,a,!1))})}});Re.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function _P(n,e,t,i){const s=n.get(si),o=n.get(gl),r=n.get(ht),a=n.get(ie),l=n.get(Et);if(await i.item.resolve(ue.None),!i.part.location)return;const d=i.part.location,c=[],h=new Set(Li.getMenuItems($.EditorContext).map(g=>b0(g)?g.command.id:Vm()));for(const g of yo.all())h.has(g.desc.id)&&c.push(new sr(g.desc.id,ro.label(g.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const p=await s.createModelReference(d.uri);try{const f=new uc(p.object.textEditorModel,y.getStartPosition(d.range)),_=i.item.anchor.range;await a.invokeFunction(g.runEditorCommand.bind(g),e,f,_)}finally{p.dispose()}}));if(i.part.command){const{command:g}=i.part;c.push(new Ma),c.push(new sr(g.id,g.title,void 0,!0,async()=>{try{await r.executeCommand(g.id,...g.arguments??[])}catch(p){l.notify({severity:jc.Error,source:i.item.provider.displayName,message:p})}}))}const u=e.getOption(144);o.showContextMenu({domForShadowRoot:u?e.getDomNode()??void 0:void 0,getAnchor:()=>{const g=kt(t);return{x:g.left,y:g.top+g.height+8}},getActions:()=>c,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function Dx(n,e,t,i){const s=await n.get(si).createModelReference(i.uri);await t.invokeWithinContext(async o=>{const r=e.hasSideBySideModifier,a=o.get(ve),l=Vt.inPeekEditor.getValue(a),d=!r&&t.getOption(101)&&!l;return new Dl({openToSide:r,openInPeek:d,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(o,new uc(s.object.textEditorModel,y.getStartPosition(i.range)),y.lift(i.range))}),s.dispose()}var vP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Do=function(n,e){return function(t,i){e(t,i,n)}},Vo,bP=class Gg{constructor(){this._entries=new dl(50)}get(e){const t=Gg._key(e);return this._entries.get(t)}set(e,t){const i=Gg._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}},Ex=dn("IInlayHintsCache");Wn(Ex,bP,1);var Zg=class{constructor(n,e){this.item=n,this.index=e}get part(){const n=this.item.hint.label;return typeof n=="string"?{label:n}:n[this.index]}},CP=class{constructor(n,e){this.part=n,this.hasTriggerModifier=e}},SP=class{constructor(){this._store=new Je,this._tokenSource=new st}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new st,this._store.value=new A,{store:this._store.value,token:this._tokenSource.token}}},Ka=class{static{Vo=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(e){return e.getContribution(Vo.ID)??void 0}constructor(e,t,i,s,o,r,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=s,this._commandService=o,this._notificationService=r,this._instaService=a,this._disposables=new A,this._sessionDisposables=new A,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new kS(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 l,d;e.enabled==="onUnlessPressed"?(l=0,d=1):(l=1,d=0),this._activeRenderMode=l,this._sessionDisposables.add(BR.getInstance().event(c=>{if(!this._editor.hasModel())return;const h=c.altKey&&c.ctrlKey&&!(c.shiftKey||c.metaKey)?d:l;if(h!==this._activeRenderMode){this._activeRenderMode=h;const u=this._editor.getModel(),g=this._copyInlayHintsWithCurrentAnchor(u);this._updateHintsDecorators([u.getFullModelRange()],g),r.schedule(0)}}))}const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(ke(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));const s=new Set;this._sessionDisposables.add(t.onWillDispose(()=>{}));const o=this._sessionDisposables.add(new SP),r=new at(async()=>{const l=Date.now(),{store:d,token:c}=o.reset();try{const h=await sx.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),c);if(r.delay=this._debounceInfo.update(t,Date.now()-l),c.isCancellationRequested){h.dispose();return}for(const u of h.provider)typeof u.onDidChangeInlayHints=="function"&&!s.has(u)&&(s.add(u),d.add(u.onDidChangeInlayHints(()=>{r.isScheduled()||r.schedule()})));d.add(h),d.add(ke(()=>s.clear())),this._updateHintsDecorators(h.ranges,h.items),this._cacheHintsForFastRestore(t)}catch(h){we(h)}},this._debounceInfo.get(t));this._sessionDisposables.add(r),r.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(l=>{(l.scrollTopChanged||!r.isScheduled())&&r.schedule()}));const a=this._sessionDisposables.add(new Je);this._sessionDisposables.add(this._editor.onDidChangeModelContent(l=>{const d=Math.max(r.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+d},a.value=gs(()=>r.schedule(0),d),r.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(159)&&r.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>r.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new A,t=e.add(new fh(this._editor)),i=new A;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(s=>{const[o]=s,r=this._getInlayHintLabelPart(o),a=this._editor.getModel();if(!r||!a){i.clear();return}const l=new st;i.add(ke(()=>l.dispose(!0))),r.item.resolve(l.token),this._activeInlayHintPart=r.part.command||r.part.location?new CP(r,o.hasTriggerModifier):void 0;const d=a.validatePosition(r.item.hint.position).lineNumber,c=new y(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 s=>{const o=this._getInlayHintLabelPart(s);if(o){const r=o.part;r.location?this._instaService.invokeFunction(Dx,s,this._editor,r.location):Cw.is(r.command)&&await this._invokeCommand(r.command,o.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(ue.None),Qt(i.item.hint.textEdits))){const s=i.item.hint.textEdits.map(o=>Ge.replace(y.lift(o.range),o.text));this._editor.executeEdits("inlayHint.default",s),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!es(e.event.target))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(_P,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){if(e.target.type!==6)return;const t=e.target.detail.injectedText?.options;if(t instanceof km&&t?.attachedData instanceof Zg)return t.attachedData}async _invokeCommand(e,t){try{await this._commandService.executeCommand(e.id,...e.arguments??[])}catch(i){this._notificationService.notify({severity:jc.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,s]of this._decorationsMetadata){if(t.has(s.item))continue;const o=e.getDecorationRange(i);if(o){const r=new ix(o,s.item.anchor.direction),a=s.item.with({anchor:r});t.set(s.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),s=[];for(const o of i.sort(y.compareRangesUsingStarts)){const r=t.validateRange(new y(o.startLineNumber-30,o.startColumn,o.endLineNumber+30,o.endColumn));s.length===0||!y.areIntersectingOrTouching(s[s.length-1],r)?s.push(r):s[s.length-1]=y.plusRange(s[s.length-1],r)}return s}_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 E=w?.decoration.options[w.item.anchor.direction];if(E&&E.attachedData!==Vo._whitespaceData){const P=v.get(w.item)??0;v.set(w.item,P+E.content.length)}}const C=t.filter(b=>b.anchor.range.startLineNumber===_.lineNumber&&b.anchor.range.endColumn<=_.column),x=Array.from(v.values());let I;for(;;){const b=C.shift(),w=x.shift();if(!w&&!b)break;if(b)i.set(b,w??0),I=b;else if(I&&w){let E=i.get(I);E+=w,E+=x.reduce((P,R)=>P+R,0),x.length=0;break}}}const s=[],o=(_,v,C,x,I)=>{const b={content:C,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:v.className,cursorStops:x,attachedData:I};s.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 C=this._ruleFactory.createClassNameRef({width:`${a/3|0}px`,display:"inline-block"});o(_,C," ",v?Zs.Right:Zs.None,Vo._whitespaceData)},{fontSize:a,fontFamily:l,padding:d,isUniform:c}=this._getLayoutInfo(),h=this._editor.getOption(159).maximumLength,u="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,l);let g={line:0,totalLen:0};for(let _=0;_<t.length;_++){const v=t[_];if(g.line!==v.anchor.range.startLineNumber&&(g={line:v.anchor.range.startLineNumber,totalLen:0}),h&&g.totalLen>h)continue;v.hint.paddingLeft&&r(v,!1);const C=typeof v.hint.label=="string"?[{label:v.hint.label}]:v.hint.label,x=i.get(v);let I=0;for(let b=0;b<C.length;b++){const w=C[b],E=b===0,P=b===C.length-1,R={fontSize:`${a}px`,fontFamily:`var(${u}), ${fm.fontFamily}`,verticalAlign:c?"baseline":"middle",unicodeBidi:"isolate"};Qt(v.hint.textEdits)&&(R.cursor="default"),this._fillInColors(R,v.hint),(w.command||w.location)&&this._activeInlayHintPart?.part.item===v&&this._activeInlayHintPart.part.index===b&&(R.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(R.color=it(iT),R.cursor="pointer"));let D=w.label;g.totalLen+=D.length;let F=!1;const Y=h!==0?g.totalLen-h:0;if(Y>0&&(D=D.slice(0,-Y)+"…",F=!0),I+=D.length,x!==void 0){const re=I-x;re>=0&&(I-=re,D=D.slice(0,-(1+re))+"…",F=!0)}if(d&&(E&&(P||F)?(R.padding=`1px ${Math.max(1,a/4)|0}px`,R.borderRadius=`${a/4|0}px`):E?(R.padding=`1px 0 1px ${Math.max(1,a/4)|0}px`,R.borderRadius=`${a/4|0}px 0 0 ${a/4|0}px`):P||F?(R.padding=`1px ${Math.max(1,a/4)|0}px 1px 0`,R.borderRadius=`0 ${a/4|0}px ${a/4|0}px 0`):R.padding="1px 0 1px 0"),o(v,this._ruleFactory.createClassNameRef(R),wP(D),P&&!v.hint.paddingRight?Zs.Right:Zs.None,new Zg(v,b)),F)break}if(x!==void 0&&I<x){const b=x-I;o(v,this._ruleFactory.createClassNameRef({})," ".repeat(b),Zs.None)}if(v.hint.paddingRight&&r(v,!0),s.length>Vo._MAX_DECORATORS)break}const p=[];for(const[_,v]of this._decorationsMetadata){const C=this._editor.getModel()?.getDecorationRange(_);C&&e.some(x=>x.containsRange(C))&&(p.push(_),v.classNameRef.dispose(),this._decorationsMetadata.delete(_))}const f=or.capture(this._editor);this._editor.changeDecorations(_=>{const v=_.deltaDecorations(p,s.map(C=>C.decoration));for(let C=0;C<v.length;C++){const x=s[C];this._decorationsMetadata.set(v[C],x)}}),f.restore(this._editor)}_fillInColors(e,t){t.kind===vv.Parameter?(e.backgroundColor=it($E),e.color=it(PT)):t.kind===vv.Type?(e.backgroundColor=it(hE),e.color=it(t0)):(e.backgroundColor=it(bT),e.color=it(WT))}_getLayoutInfo(){const e=this._editor.getOption(159),t=e.padding,i=this._editor.getOption(61),s=this._editor.getOption(58);let o=e.fontSize;(!o||o<5||o>i)&&(o=i);const r=e.fontFamily||s;return{fontSize:o,fontFamily:r,padding:t,isUniform:!t&&r===s&&o===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};Ka=Vo=vP([Do(1,Z),Do(2,Ri),Do(3,Ex),Do(4,ht),Do(5,Et),Do(6,ie)],Ka);function wP(n){return n.replace(/[ \t]/g," ")}Re.registerCommand("_executeInlayHintProvider",async(n,...e)=>{const[t,i]=e;Se(De.isUri(t)),Se(y.isIRange(i));const{inlayHintsProvider:s}=n.get(Z),o=await n.get(si).createModelReference(t);try{const r=await sx.create(s,o.object.textEditorModel,[y.lift(i)],ue.None),a=r.items.map(l=>l.hint);return setTimeout(()=>r.dispose(),0),a}finally{o.dispose()}});var yP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Fs=function(n,e){return function(t,i){e(t,i,n)}},lb=class extends ia{constructor(n,e,t,i){super(10,e,n.item.anchor.range,t,i,!0),this.part=n}},gc=class extends qa{constructor(e,t,i,s,o,r,a,l){super(e,t,o,a,i,s,l),this._resolverService=r,this.hoverOrdinal=6}suggestHoverAnchor(e){if(!Ka.get(this._editor)||e.target.type!==6)return null;const t=e.target.detail.injectedText?.options;return t instanceof km&&t.attachedData instanceof Zg?new lb(t.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i,s){return e instanceof lb?new sn(async o=>{const{part:r}=e;if(await r.item.resolve(s),s.isCancellationRequested)return;let a;typeof r.item.hint.tooltip=="string"?a=new Lt().appendText(r.item.hint.tooltip):r.item.hint.tooltip&&(a=r.item.hint.tooltip),a&&o.emitOne(new yi(this,e.range,[a],!1,0)),Qt(r.item.hint.textEdits)&&o.emitOne(new yi(this,e.range,[new Lt().appendText(m(1205,"Double-click to insert"))],!1,10001));let l;if(typeof r.part.tooltip=="string"?l=new Lt().appendText(r.part.tooltip):r.part.tooltip&&(l=r.part.tooltip),l&&o.emitOne(new yi(this,e.range,[l],!1,1)),r.part.location||r.part.command){let c;const h=this._editor.getOption(86)==="altKey"?Pn?m(1206,"cmd + click"):m(1207,"ctrl + click"):Pn?m(1208,"option + click"):m(1209,"alt + click");r.part.location&&r.part.command?c=new Lt().appendText(m(1210,"Go to Definition ({0}), right click for more",h)):r.part.location?c=new Lt().appendText(m(1211,"Go to Definition ({0})",h)):r.part.command&&(c=new Lt(`[${m(1212,"Execute Command")}](${Zk(r.part.command)} "${r.part.command.title}") (${h})`,{isTrusted:!0})),c&&o.emitOne(new yi(this,e.range,[c],!1,1e4))}const d=this._resolveInlayHintLabelPartHover(r,s);for await(const c of d)o.emitOne(c)}):sn.EMPTY}async*_resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return;const{uri:i,range:s}=e.part.location,o=await this._resolverService.createModelReference(i);try{const r=o.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(r))return;for await(const a of o_(this._languageFeaturesService.hoverProvider,r,new B(s.startLineNumber,s.startColumn),t))Pa(a.hover.contents)||(yield new yi(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal))}finally{o.dispose()}}};gc=yP([Fs(1,Ls),Fs(2,Oe),Fs(3,ui),Fs(4,xe),Fs(5,si),Fs(6,Z),Fs(7,ht)],gc);var Rx=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},er=function(n,e){return function(t,i){e(t,i,n)}},Xg,Yg,Jg=Xg=class extends O{constructor(e,t,i,s,o,r,a){super();const l=t.hoverParts;this._renderedHoverParts=this._register(new Qg(e,i,l,s,o,r,a));const d=t.options,c=d.anchor,{showAtPosition:h,showAtSecondaryPosition:u}=Xg.computeHoverPositions(e,c.range,l);this.shouldAppearBeforeContent=l.some(g=>g.isBeforeContent),this.showAtPosition=h,this.showAtSecondaryPosition=u,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 s=1;if(e.hasModel()){const c=e._getViewModel(),h=c.coordinatesConverter,u=h.convertModelRangeToViewRange(t),g=c.getLineMinColumn(u.startLineNumber),p=new B(u.startLineNumber,g);s=h.convertViewPositionToModelPosition(p).column}const o=t.startLineNumber;let r=t.startColumn,a;for(const c of i){const h=c.range,u=h.startLineNumber===o,g=h.endLineNumber===o;if(u&&g){const p=h.startColumn;r=Math.max(Math.min(r,p),s)}c.forceShowAtRange&&(a=h)}let l,d;if(a){const c=a.getStartPosition();l=c,d=c}else l=t.getStartPosition(),d=new B(o,r);return{showAtPosition:l,showAtSecondaryPosition:d}}};Jg=Xg=Rx([er(4,Oe),er(5,ui),er(6,ti)],Jg);var xP=class{constructor(n,e){this._statusBar=e,n.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}},Qg=class extends O{static{Yg=this}static{this._DECORATION_OPTIONS=se.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(e,t,i,s,o,r,a){super(),this._hoverService=r,this._clipboardService=a,this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=s,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(t,i,s,o,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(e,i)),this._updateMarkdownAndColorParticipantInfo(t)}_createEditorDecorations(e,t){if(t.length===0)return O.None;let i=t[0].range;for(const o of t){const r=o.range;i=y.plusRange(i,r)}const s=e.createDecorationsCollection();return s.set([{range:i,options:Yg._DECORATION_OPTIONS}]),ke(()=>{s.clear()})}_renderParts(e,t,i,s,o){const r=new ac(s,o),a={fragment:this._fragment,statusBar:r,...i},l=new A;l.add(r);for(const c of e){const h=this._renderHoverPartsForParticipant(t,c,a);l.add(h);for(const u of h.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:c,hoverPart:u.hoverPart,hoverElement:u.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 s=e.filter(o=>o.owner===t);return s.length>0?t.renderHoverParts(i,s):new ho([])}_renderStatusBar(e,t){if(t.hasContent)return new xP(e,t)}_registerListenersOnRenderedParts(){const e=new A;return this._renderedParts.forEach((t,i)=>{const s=t.hoverElement;s.tabIndex=0,e.add(de(s,Ae.FOCUS_IN,o=>{o.stopPropagation(),this._focusedHoverPartIndex=i})),e.add(de(s,Ae.FOCUS_OUT,o=>{o.stopPropagation(),this._focusedHoverPartIndex=-1})),t.type==="hoverPart"&&!t.participant.hideCopyButton&&e.add(new Og(s,()=>t.participant.getAccessibleContent(t.hoverPart),this._clipboardService,this._hoverService))}),e}_updateMarkdownAndColorParticipantInfo(e){const t=e.find(i=>i instanceof qa&&!(i instanceof gc));t&&(this._markdownHoverParticipant=t),this._colorHoverParticipant=e.find(i=>i instanceof lc)}focusHoverPartWithIndex(e){e<0||e>=this._renderedParts.length||this._renderedParts[e].hoverElement.focus()}async updateHoverVerbosityLevel(e,t,i){if(!this._markdownHoverParticipant)return;let s;t>=0?s={start:t,endExclusive:t+1}:s=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let o=s.start;o<s.endExclusive;o++){const r=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,o);if(r===void 0)continue;const a=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(e,r);a&&(this._renderedParts[o]={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(o=>o.type==="hoverPart"&&o.participant===e);if(s===-1)throw new gt;return t-s}_findRangeOfMarkdownHoverParts(e){const t=this._renderedParts.slice(),i=t.findIndex(o=>o.type==="hoverPart"&&o.participant===e),s=t.reverse().findIndex(o=>o.type==="hoverPart"&&o.participant===e);return{start:i,endExclusive:(s>=0?t.length-s:s)+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}};Qg=Yg=Rx([er(4,Oe),er(5,ui),er(6,ti)],Qg);var IP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jl=function(n,e){return function(t,i){e(t,i,n)}},ep=class extends O{constructor(e,t,i,s,o){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._hoverService=s,this._clipboardService=o,this._currentResult=null,this._renderedContentHover=this._register(new Je),this._onContentsChanged=this._register(new Q),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(Dg,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new Hy(this._editor,new qN(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){const e=[];for(const t of Co.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 Wy(i,t.isComplete,t.options))}));const e=this._contentHoverWidget.getDomNode();this._register(bs(e,"keydown",t=>{t.equals(9)&&this.hide()})),this._register(bs(e,"mouseleave",t=>{this._onMouseLeave(t)})),this._register(Uc.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(e,t,i,s,o){if(!(this._contentHoverWidget.position&&this._currentResult))return e?(this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):!1;const r=this._editor.getOption(69).sticky,a=o&&this._contentHoverWidget.isMouseGettingCloser(o.event.posx,o.event.posy);return r&&a?(e&&this._startHoverOperationIfNecessary(e,t,i,s,!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,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,s,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,s,o){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(e))return;this._hoverOperation.cancel();const r={anchor:e,source:i,shouldFocus:s,insistOnKeepingHoverVisible:o};this._hoverOperation.start(t,r)}_setCurrentResult(e){let t=e;this._currentResult!==t&&(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 t=e.hoverParts.length===0,i=e.options.insistOnKeepingHoverVisible;t&&i||this._setCurrentResult(e)}_showHover(e){const t=this._getHoverContext();this._renderedContentHover.value=new Jg(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:o=>{this._contentHoverWidget.setMinimumDimensions(o)},focus:()=>this.focus()}}showsOrWillShow(e){if(this._contentHoverWidget.isResizing)return!0;const t=this._findHoverAnchorCandidates(e);if(!(t.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,e);const i=t[0];return this._startShowingOrUpdateHover(i,0,0,!1,e)}_findHoverAnchorCandidates(e){const t=[];for(const s of this._participants){if(!s.suggestHoverAnchor)continue;const o=s.suggestHoverAnchor(e);o&&t.push(o)}const i=e.target;switch(i.type){case 6:t.push(new Zh(0,i.range,e.event.posx,e.event.posy));break;case 7:{const s=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText=="number"&&i.detail.horizontalDistanceToText<s))break;t.push(new Zh(0,i.range,e.event.posx,e.event.posy));break}}return t.sort((s,o)=>o.priority-s.priority),t}_onMouseLeave(e){const t=this._editor.getDomNode();(!t||!gh(t,e.x,e.y))&&this.hide()}startShowingAtRange(e,t,i,s){this._startShowingOrUpdateHover(new Zh(0,e,void 0,void 0),t,i,s,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}};ep=IP([jl(1,ie),jl(2,Oe),jl(3,ui),jl(4,ti)],ep);function Tx(n){const e=n.target;return!!e&&e.type===6&&e.detail.injectedText?.options.attachedData===ky}var LP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},iu=function(n,e){return function(t,i){e(t,i,n)}},tp,xt=class extends O{static{tp=this}static{this.ID="editor.contrib.contentHover"}constructor(e,t,i,s){super(),this._editor=e,this._instantiationService=i,this._keybindingService=s,this._onHoverContentsChanged=this._register(new Q),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new A,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new at(()=>{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(o=>{o.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(tp.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()||Tx(e)}_isMouseOnContentHoverWidget(e){return this._contentWidget?gh(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,s=(c,h)=>{const u=this._isMouseOnContentHoverWidget(c);return h&&u},o=c=>{const h=t.isColorPickerVisible,u=this._isMouseOnContentHoverWidget(c),g=h&&u,p=h&&this._isMouseDown;return g||p},r=(c,h)=>{const u=c.event.browserEvent.view;return u?h&&t.containsNode(u.document.activeElement)&&!u.getSelection()?.isCollapsed:!1},a=t.isFocused,l=t.isResizing,d=this._hoverSettings.sticky&&t.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||a||l||d||s(e,i)||o(e)||r(e,i)}_onEditorMouseMove(e){if(!this._ignoreMouseEvents){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){Fy(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"&&Qm(this._editor.getOption(86),e)&&this._mouseMoveEvent){this._contentWidget.isVisible||this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}const t=this._isPotentialKeyboardShortcut(e),i=NS(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,s=t.kind===2&&(t.commandId==="editor.action.showHover"||t.commandId==="editor.action.increaseHoverVerbosityLevel"||t.commandId==="editor.action.decreaseHoverVerbosityLevel")&&this._contentWidget.isVisible;return i||s}hideContentHover(){pr.dropDownVisible||this._contentWidget?.hide()}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(ep,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(e,t,i,s){this._getOrCreateContentWidget().startShowingAtRange(e,t,i,s)}_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()}};xt=tp=LP([iu(1,gl),iu(2,ie),iu(3,Oe)],xt);var db=class extends O{static{this.ID="editor.contrib.colorContribution"}constructor(n){super(),this._editor=n,this._register(n.onMouseDown(e=>this.onMouseDown(e)))}dispose(){super.dispose()}onMouseDown(n){const e=this._editor.getOption(168);if(e!=="click"&&e!=="clickAndHover"||!Tx(n))return;const t=this._editor.getContribution(xt.ID);if(!t||t.isColorPickerVisible)return;const i=n.target.range;if(!i)return;const s=new y(i.startLineNumber,i.startColumn+1,i.endLineNumber,i.endColumn+1);t.showContentHover(s,1,1,!1)}},DP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},EP=function(n,e){return function(t,i){e(t,i,n)}},RP=class Nx{constructor(e,t,i,s){this.owner=e,this.range=t,this.model=i,this.provider=s}static fromBaseColor(e,t){return new Nx(e,t.range,t.model,t.provider)}},TP=class extends O{constructor(n,e,t,i){super();const s=n.getModel(),o=t.model;this.color=t.model.color,this.colorPicker=this._register(new Jy(e.fragment,o,n.getOption(163),i,"standalone")),this._register(o.onColorFlushed(r=>{this.color=r})),this._register(o.onDidChangeColor(r=>{$a(s,o,r,t.range,t)})),this._register(n.onDidChangeModelContent(r=>{e.hide(),n.focus()})),$a(s,o,this.color,t.range,t)}},ip=class{constructor(e,t){this._editor=e,this._themeService=t}async createColorHover(e,t,i){if(!this._editor.hasModel()||!gr.get(this._editor))return null;const s=await Ry(i,this._editor.getModel(),ue.None);let o=null,r=null;for(const c of s){const h=c.colorInfo;y.containsRange(h.range,e.range)&&(o=h,r=c.provider)}const a=o??e,l=r??t,d=!!o;return{colorHover:RP.fromBaseColor(this,await Qy(this._editor.getModel(),a,l)),foundInEditor:d}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await $a(this._editor.getModel(),t,this._color,i,e),i=ex(this._editor,i,t))}renderHoverParts(e,t){if(!(t.length===0||!this._editor.hasModel()))return this._setMinimumDimensions(e),this._renderedParts=new TP(this._editor,e,t[0],this._themeService),this._renderedParts}_setMinimumDimensions(e){const t=this._editor.getOption(75)+8;e.setMinimumDimensions(new Le(302,t))}get _color(){return this._renderedParts?.color}};ip=DP([EP(1,It)],ip);var NP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ur=function(n,e){return function(t,i){e(t,i,n)}},np,kP=class{constructor(n,e){this.value=n,this.foundInEditor=e}},cb=8,PP=22,sp=class extends O{static{np=this}static{this.ID="editor.contrib.standaloneColorPickerWidget"}constructor(e,t,i,s,o,r,a,l){super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._keybindingService=o,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 Q),this.onResult=this._onResult.event,this._renderedHoverParts=this._register(new Je),this._renderedStatusBar=this._register(new Je),this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(ip,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(ls(this._body));this._register(h.onDidBlur(u=>{this.hide()})),this._register(h.onDidFocus(u=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(u=>{const g=u.target.element?.classList;g&&g.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(u=>{this._render(u.value,u.foundInEditor)})),this._start(c),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return np.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 kP(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 ja(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 ac(this._keybindingService,this._hoverService));const s={fragment:i,statusBar:this._renderedStatusBar.value,onContentsChanged:()=>{},setMinimumDimensions:()=>{},hide:()=>this.hide(),focus:()=>this.focus()};if(this._colorHover=e,this._renderedHoverParts.value=this._standaloneColorPickerParticipant.renderHoverParts(s,[e]),!this._renderedHoverParts.value){this._renderedStatusBar.clear(),this._renderedHoverParts.clear();return}const o=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),o.layout();const r=o.body,a=r.saturationBox.domNode.clientWidth,l=r.domNode.clientWidth-a-PP-cb,d=o.body.enterButton;d?.onClicked(()=>{this.updateEditor(),this.hide()});const c=o.header,h=c.pickedColorNode;h.style.width=a+cb+"px";const u=c.originalColorNode;u.style.width=l+"px",o.header.closeButton?.onClicked(()=>{this.hide()}),t&&(d&&(d.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};sp=np=NP([Ur(3,ie),Ur(4,Oe),Ur(5,Z),Ur(6,An),Ur(7,ui)],sp);var OP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hb=function(n,e){return function(t,i){e(t,i,n)}},op,go=class extends O{static{op=this}static{this.ID="editor.contrib.standaloneColorPickerController"}constructor(e,t,i){super(),this._editor=e,this._instantiationService=i,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=S.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=S.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||this._standaloneColorPickerWidget?.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(sp,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(op.ID)}};go=op=OP([hb(1,ve),hb(2,ie)],go);var MP=class extends gi{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:$.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(n,e){go.get(e)?.showOrFocus()}},AP=class extends M{constructor(){super({id:"editor.action.hideColorPicker",label:L(927,"Hide the Color Picker"),precondition:S.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:L(928,"Hide the standalone color picker.")}})}run(n,e){go.get(e)?.hide()}},FP=class extends M{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:L(929,"Insert Color with Standalone Color Picker"),precondition:S.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:L(930,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(n,e){go.get(e)?.insertColor()}};k(AP);k(FP);fe(MP);ce(db.ID,db,2);ce(go.ID,go,1);ce(gr.ID,gr,1);Ir(Sg);Co.register(lc);Re.registerCommand("_executeDocumentColorProvider",function(n,...e){const[t]=e;if(!(t instanceof De))throw Ln();const{model:i,colorProviderRegistry:s,defaultColorDecoratorsEnablement:o}=Ny(n,t);return Zm(new bN,s,i,ue.None,o)});Re.registerCommand("_executeColorPresentationProvider",function(n,...e){const[t,i]=e;if(!i)return;const{uri:s,range:o}=i;if(!(s instanceof De)||!Array.isArray(t)||t.length!==4||!y.isIRange(o))throw Ln();const{model:r,colorProviderRegistry:a,defaultColorDecoratorsEnablement:l}=Ny(n,s),[d,c,h,u]=t;return Zm(new CN({range:o,color:{red:d,green:c,blue:h,alpha:u}}),a,r,ue.None,l)});var sa=class rp{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 s=t.length,o=e.length;if(i+s>o)return!1;for(let r=0;r<s;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,s,o,r){const a=e.startLineNumber,l=e.startColumn,d=e.endLineNumber,c=e.endColumn,h=o.getLineContent(a),u=o.getLineContent(d);let g=h.lastIndexOf(t,l-1+t.length),p=u.indexOf(i,c-1-i.length);if(g!==-1&&p!==-1)if(a===d)h.substring(g+t.length,p).indexOf(i)>=0&&(g=-1,p=-1);else{const _=h.substring(g+t.length),v=u.substring(0,p);(_.indexOf(i)>=0||v.indexOf(i)>=0)&&(g=-1,p=-1)}let f;g!==-1&&p!==-1?(s&&g+t.length<h.length&&h.charCodeAt(g+t.length)===32&&(t=t+" "),s&&p>0&&u.charCodeAt(p-1)===32&&(i=" "+i,p-=1),f=rp._createRemoveBlockCommentOperations(new y(a,g+t.length+1,d,p+1),t,i)):(f=rp._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=f.length===1?i:null);for(const _ of f)r.addTrackedEditOperation(_.range,_.text)}static _createRemoveBlockCommentOperations(e,t,i){const s=[];return y.isEmpty(e)?s.push(Ge.delete(new y(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(s.push(Ge.delete(new y(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),s.push(Ge.delete(new y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),s}static _createAddBlockCommentOperations(e,t,i,s){const o=[];return y.isEmpty(e)?o.push(Ge.replace(new y(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(o.push(Ge.insert(new B(e.startLineNumber,e.startColumn),t+(s?" ":""))),o.push(Ge.insert(new B(e.endLineNumber,e.endColumn),(s?" ":"")+i))),o}getEditOperations(e,t){const i=this._selection.startLineNumber,s=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,s),r=this.languageConfigurationService.getLanguageConfiguration(o).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 s=i[0],o=i[1];return new te(s.range.endLineNumber,s.range.endColumn,o.range.startLineNumber,o.range.startColumn)}else{const s=i[0].range,o=this._usedEndToken?-this._usedEndToken.length-1:0;return new te(s.endLineNumber,s.endColumn+o,s.endLineNumber,s.endColumn+o)}}},HP=class $n{constructor(e,t,i,s,o,r,a){this.languageConfigurationService=e,this._selection=t,this._indentSize=i,this._type=s,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=r,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,s){e.tokenization.tokenizeIfCheap(t);const o=e.getLanguageIdAtPosition(t,1),r=s.getLanguageConfiguration(o).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,s,o,r,a,l,d){let c=!0;const h=l.getLanguageConfiguration(d).comments?.lineCommentNoIndent??!1;let u;e===0?u=!0:e===1?u=!1:u=!0;for(let g=0,p=s.length;g<p;g++){const f=s[g],_=o+g;if(_===o&&a){f.ignore=!0;continue}const v=i.getLineContent(_),C=qu(v);if(C===-1){f.ignore=r,f.commentStrOffset=h?0:v.length;continue}c=!1;const x=h?0:C;if(f.ignore=!1,f.commentStrOffset=x,u&&!sa._haystackHasNeedleAtOffset(v,f.commentStr,x)&&(e===0?u=!1:e===1||(f.ignore=!0)),u&&t){const I=C+f.commentStrLength;I<v.length&&v.charCodeAt(I)===32&&(f.commentStrLength+=1)}}if(e===0&&c){u=!1;for(let g=0,p=s.length;g<p;g++)s[g].ignore=!1}return{supported:!0,shouldRemoveComments:u,lines:s}}static _gatherPreflightData(e,t,i,s,o,r,a,l){const d=$n._gatherPreflightCommentStrings(i,s,o,l),c=i.getLanguageIdAtPosition(s,1);return d===null?{supported:!1}:$n._analyzeLines(e,t,i,d,s,r,a,l,c)}_executeLineComments(e,t,i,s){let o;i.shouldRemoveComments?o=$n._createRemoveLineCommentsOperations(i.lines,s.startLineNumber):($n._normalizeInsertionPoint(e,i.lines,s.startLineNumber,this._indentSize),o=this._createAddLineCommentsOperations(i.lines,s.startLineNumber));const r=new B(s.positionLineNumber,s.positionColumn);for(let a=0,l=o.length;a<l;a++)t.addEditOperation(o[a].range,o[a].text),y.isEmpty(o[a].range)&&y.getStartPosition(o[a].range).equals(r)&&e.getLineContent(r.lineNumber).length+1===r.column&&(this._deltaColumn=(o[a].text||"").length);this._selectionId=t.trackSelection(s)}_attemptRemoveBlockComment(e,t,i,s){let o=t.startLineNumber,r=t.endLineNumber;const a=s.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let l=e.getLineContent(o).lastIndexOf(i,a-1),d=e.getLineContent(r).indexOf(s,t.endColumn-1-i.length);return l!==-1&&d===-1&&(d=e.getLineContent(o).indexOf(s,l+i.length),r=o),l===-1&&d!==-1&&(l=e.getLineContent(r).lastIndexOf(i,d),o=r),t.isEmpty()&&(l===-1||d===-1)&&(l=e.getLineContent(o).indexOf(i),l!==-1&&(d=e.getLineContent(o).indexOf(s,l+i.length))),l!==-1&&e.getLineContent(o).charCodeAt(l+i.length)===32&&(i+=" "),d!==-1&&e.getLineContent(r).charCodeAt(d-1)===32&&(s=" "+s,d-=1),l!==-1&&d!==-1?sa._createRemoveBlockCommentOperations(new y(o,l+i.length+1,r,d+1),i,s):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const s=e.getLanguageIdAtPosition(i.startLineNumber,1),o=this.languageConfigurationService.getLanguageConfiguration(s).comments;if(!o||!o.blockCommentStartToken||!o.blockCommentEndToken)return;const r=o.blockCommentStartToken,a=o.blockCommentEndToken;let l=this._attemptRemoveBlockComment(e,i,r,a);if(!l){if(i.isEmpty()){const d=e.getLineContent(i.startLineNumber);let c=qu(d);c===-1&&(c=d.length),l=sa._createAddBlockCommentOperations(new y(i.startLineNumber,c+1,i.startLineNumber,d.length+1),r,a,this._insertSpace)}else l=sa._createAddBlockCommentOperations(new y(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 y(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?"":`
10
- `),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 s=$n._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return s.supported?this._executeLineComments(e,t,s,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 te(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let s=0,o=e.length;s<o;s++){const r=e[s];r.ignore||i.push(Ge.delete(new y(t+s,r.commentStrOffset+1,t+s,r.commentStrOffset+r.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],s=this._insertSpace?" ":"";for(let o=0,r=e.length;o<r;o++){const a=e[o];a.ignore||i.push(Ge.insert(new B(t+o,a.commentStrOffset+1),a.commentStr+s))}return i}static nextVisibleColumn(e,t,i,s){return i?e+(t-e%t):e+s}static _normalizeInsertionPoint(e,t,i,s){let o=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 u=0,g=t[l].commentStrOffset;h<o&&u<g;u++)h=$n.nextVisibleColumn(h,s,c.charCodeAt(u)===9,1);h<o&&(o=h)}o=Math.floor(o/s)*s;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<o&&r<a;r++)h=$n.nextVisibleColumn(h,s,c.charCodeAt(r)===9,1);h>o?t[l].commentStrOffset=r-1:t[l].commentStrOffset=r}}},h_=class extends M{constructor(n,e){super(e),this._type=n}run(n,e){const t=n.get(ct);if(!e.hasModel())return;const i=e.getModel(),s=[],o=i.getOptions(),r=e.getOption(29),a=e.getSelections().map((d,c)=>({selection:d,index:c,ignoreFirstLine:!1}));a.sort((d,c)=>y.compareRangesUsingStarts(d.selection,c.selection));let l=a[0];for(let d=1;d<a.length;d++){const c=a[d];l.selection.endLineNumber===c.selection.startLineNumber&&(l.index<c.index?c.ignoreFirstLine=!0:(l.ignoreFirstLine=!0,l=c))}for(const d of a)s.push(new HP(t,d.selection,o.indentSize,this._type,r.insertSpace,r.ignoreEmptyLines,d.ignoreFirstLine));e.pushUndoStop(),e.executeCommands(this.id,s),e.pushUndoStop()}},WP=class extends h_{constructor(){super(0,{id:"editor.action.commentLine",label:L(933,"Toggle Line Comment"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:$.MenubarEditMenu,group:"5_insert",title:m(931,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}},VP=class extends h_{constructor(){super(1,{id:"editor.action.addCommentLine",label:L(934,"Add Line Comment"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2081),weight:100},canTriggerInlineEdits:!0})}},BP=class extends h_{constructor(){super(2,{id:"editor.action.removeCommentLine",label:L(935,"Remove Line Comment"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2099),weight:100},canTriggerInlineEdits:!0})}},UP=class extends M{constructor(){super({id:"editor.action.blockComment",label:L(936,"Toggle Block Comment"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:$.MenubarEditMenu,group:"5_insert",title:m(932,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(n,e){const t=n.get(ct);if(!e.hasModel())return;const i=e.getOption(29),s=[],o=e.getSelections();for(const r of o)s.push(new sa(r,i.insertSpace,t));e.pushUndoStop(),e.executeCommands(this.id,s),e.pushUndoStop()}};k(WP);k(VP);k(BP);k(UP);var zP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Hs=function(n,e){return function(t,i){e(t,i,n)}},ap,Ga=class{static{ap=this}static{this.ID="editor.contrib.contextmenu"}static get(e){return e.getContribution(ap.ID)}constructor(e,t,i,s,o,r,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=s,this._keybindingService=o,this._menuService=r,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new A,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&&K0(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 s of this._editor.getSelections())if(s.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=[],s=this._menuService.getMenuActions(t,this._contextKeyService,{arg:e.uri});for(const o of s){const[,r]=o;let a=0;for(const l of r)if(l instanceof wE){const d=this._getMenuActions(e,l.item.submenu);d.length>0&&(i.push(new ec(l.id,l.label,d)),a++)}else i.push(l),a++;a&&i.push(new Ma)}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 o=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),r=kt(this._editor.getDomNode());i={x:r.left+o.left,y:r.top+o.top+o.height}}const s=this._editor.getOption(144)&&!tg;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:s?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>i,getActions:()=>e,getActionViewItem:o=>{const r=this._keybindingFor(o);if(r)return new eg(o,o,{label:!0,keybinding:r.getLabel(),isMenu:!0});const a=o;return typeof a.getActionViewItem=="function"?a.getActionViewItem():new eg(o,o,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:o=>this._keybindingFor(o),onHide:o=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||yR(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(81);let i=0;const s=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}),o=(d,c)=>new ec(`menu-action-${++i}`,d,c,void 0),r=(d,c,h,u,g)=>{if(!c)return s({label:d,enabled:c,run:()=>{}});const p=_=>()=>{this._configurationService.updateValue(h,_)},f=[];for(const _ of g)f.push(s({label:_.label,checked:u===_.value,run:p(_.value)}));return o(d,f)},a=[];a.push(s({label:m(937,"Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),a.push(new Ma),a.push(s({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)&&!tg;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()}};Ga=ap=zP([Hs(1,gl),Hs(2,ih),Hs(3,ve),Hs(4,Oe),Hs(5,Es),Hs(6,xe),Hs(7,ms)],Ga);var jP=class extends M{constructor(){super({id:"editor.action.showContextMenu",label:L(949,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:1092,weight:100}})}run(n,e){Ga.get(e)?.showContextMenu()}};ce(Ga.ID,Ga,2);k(jP);var nu=class{constructor(n){this.selections=n}equals(n){const e=this.selections.length;if(e!==n.selections.length)return!1;for(let t=0;t<e;t++)if(!this.selections[t].equalsSelection(n.selections[t]))return!1;return!0}},su=class{constructor(n,e,t){this.cursorState=n,this.scrollTop=e,this.scrollLeft=t}},pc=class kx extends O{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(e){return e.getContribution(kx.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 nu(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new su(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 su(new nu(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 su(new nu(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}},qP=class extends M{constructor(){super({id:"cursorUndo",label:L(950,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:2099,weight:100}})}run(n,e,t){pc.get(e)?.cursorUndo()}},$P=class extends M{constructor(){super({id:"cursorRedo",label:L(951,"Cursor Redo"),precondition:void 0})}run(n,e,t){pc.get(e)?.cursorRedo()}};ce(pc.ID,pc,0);k(qP);k($P);var KP=class{constructor(n,e,t){this.selection=n,this.targetPosition=e,this.copy=t,this.targetSelection=null}getEditOperations(n,e){const t=n.getValueInRange(this.selection);if(this.copy||e.addEditOperation(this.selection,null),e.addEditOperation(new y(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),t),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 te(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 te(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 te(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 te(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 te(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(n,e){return this.targetSelection}};function Eo(n){return Pn?n.altKey:n.ctrlKey}var ub=class Dd extends O{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=Pn?6:5}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)||(Eo(e)&&(this._modifierPressed=!0),this._mouseDown&&Eo(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(42)||this._editor.getOption(28)||(Eo(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===Dd.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 i=(this._editor.getSelections()||[]).filter(s=>t.position&&s.containsPosition(t.position));if(i.length===1)this._dragSelection=i[0];else return}Eo(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 B(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const s=this._editor.getSelection();if(s){const{selectionStartLineNumber:o,selectionStartColumn:r}=s;i=[new te(o,r,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(s=>s.containsPosition(t)?new te(t.lineNumber,t.column,t.lineNumber,t.column):s);this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(Eo(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(Dd.ID,new KP(this._dragSelection,t,Eo(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=se.register({description:"dnd-target",className:"dnd-target"})}showAt(e){this._dndDecorationIds.set([{range:new y(e.lineNumber,e.column,e.lineNumber,e.column),options:Dd._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()}};ce(ub.ID,ub,2);var GP="editor.action.pasteAs";ce(On.ID,On,0);Ir(ag);G(new class extends Mt{constructor(){super({id:ay,precondition:$m,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e){return On.get(e)?.changePasteType()}});G(new class extends Mt{constructor(){super({id:"editor.hidePasteWidget",precondition:$m,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e){On.get(e)?.clearWidgets()}});k(class Px extends M{static{this.argsSchema={oneOf:[{type:"object",required:["kind"],properties:{kind:{type:"string",description:m(952,`The kind of the paste edit to try pasting with.
11
- 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.
12
- The first edit matching the preferences will be applied.`),items:{type:"string"}}}}]}}constructor(){super({id:GP,label:L(954,"Paste As..."),precondition:S.writable,metadata:{description:"Paste as",args:[{name:"args",schema:Px.argsSchema}]},canTriggerInlineEdits:!0})}run(e,t,i){let s;return i&&("kind"in i?s={only:new Ve(i.kind)}:"preferences"in i&&(s={preferences:i.preferences.map(o=>new Ve(o))})),On.get(t)?.pasteAs(s)}});k(class extends M{constructor(){super({id:"editor.action.pasteAsText",label:L(955,"Paste as Text"),precondition:S.writable,canTriggerInlineEdits:!0})}run(n,e){return On.get(e)?.pasteAs({providerId:Va.id})}});var ZP=class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(n){if(n&&this._dragOperations.has(n)){const e=this._dragOperations.get(n);return this._dragOperations.delete(n),e}}},gb=class{constructor(n){this.identifier=n}},Ox=dn("treeViewsDndService");Wn(Ox,ZP,1);var XP=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ql=function(n,e){return function(t,i){e(t,i,n)}},_n,YP="editor.dropIntoEditor.preferences",Mx="editor.changeDropType",u_=new oe("dropWidgetVisible",!1,m(973,"Whether the drop widget is showing")),mr=class extends O{static{_n=this}static{this.ID="editor.contrib.dropIntoEditorController"}static get(e){return e.getContribution(_n.ID)}constructor(e,t,i,s,o){super(),this._configService=i,this._languageFeaturesService=s,this._treeViewsDragAndDropService=o,this.treeItemsTransfer=wT.getInstance(),this._dropProgressManager=this._register(t.createInstance(ic,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(oc,"dropIntoEditor",e,u_,{id:Mx,label:m(974,"Show drop options...")},()=>_n._configureDefaultAction?[_n._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;_n._currentDropOperation?.cancel(),e.focus(),e.setPosition(t);const s=pt(async o=>{const r=new A,a=r.add(new no(e,1,void 0,o));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(u=>u.dropMimeTypes?u.dropMimeTypes.some(g=>l.matches(g)):!0),h=r.add(await this.getDropEdits(c,d,t,l,a.token));if(a.token.isCancellationRequested)return;if(h.edits.length){const u=this.getInitialActiveEditIndex(d,h.edits),g=e.getOption(43).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([y.fromPositions(t)],{activeEditIndex:u,allEdits:h.edits},g,async p=>p,o)}}finally{r.dispose(),_n._currentDropOperation===s&&(_n._currentDropOperation=void 0)}});this._dropProgressManager.showWhile(t,m(975,"Running drop handlers. Click to cancel"),s,{cancel:()=>s.cancel()}),_n._currentDropOperation=s}async getDropEdits(e,t,i,s,o){const r=new A,a=await rr(Promise.all(e.map(async d=>{try{const c=await d.provideDocumentDropEdits(t,i,s,o);return c&&r.add(c),c?.edits.map(h=>({...h,providerId:d.id}))}catch(c){Hn(c)||console.error(c),console.error(c)}})),o),l=Ns(a??[]).flat();return{edits:ny(l),dispose:()=>r.dispose()}}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(YP,{resource:e.uri});for(const s of Array.isArray(i)?i:[]){const o=new Ve(s),r=t.findIndex(a=>a.kind&&o.contains(a.kind));if(r>=0)return r}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new iw;const t=VE(e.dataTransfer);if(this.treeItemsTransfer.hasData(gb.prototype)){const i=this.treeItemsTransfer.getData(gb.prototype);if(Array.isArray(i))for(const s of i){const o=await this._treeViewsDragAndDropService.removeDragOperationTransfer(s.identifier);if(o)for(const[r,a]of o)t.replace(r,a)}}return t}};mr=_n=XP([ql(1,ie),ql(2,xe),ql(3,Z),ql(4,Ox)],mr);ce(mr.ID,mr,2);Ir(rg);G(new class extends Mt{constructor(){super({id:Mx,precondition:u_,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e,t){mr.get(e)?.changeDropType()}});G(new class extends Mt{constructor(){super({id:"editor.hideDropWidget",precondition:u_,kbOpts:{weight:100,primary:9}})}runEditorCommand(n,e,t){mr.get(e)?.clearWidgets()}});var JP=class Ax extends _l{static{this.ID="editor.contrib.findOptionsWidget"}constructor(e,t,i){super(),this._hideSoon=this._register(new at(()=>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 s={inputActiveOptionBorder:ye(ZS),inputActiveOptionForeground:ye(IS),inputActiveOptionBackground:ye(Sm)},o={groupId:"find-options-widget"};this.caseSensitive=this._register(new GD({appendTitle:this._keybindingLabelFor(Ee.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:o,...s})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new W0({appendTitle:this._keybindingLabelFor(Ee.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:o,...s})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new NR({appendTitle:this._keybindingLabelFor(Ee.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:o,...s})),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(de(this._domNode,Ae.MOUSE_LEAVE,r=>this._onMouseLeave())),this._register(de(this._domNode,"mouseover",r=>this._onMouseOver()))}_keybindingLabelFor(e){return this._keybindingService.appendKeybinding("",e)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Ax.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")}};function $l(n,e){return n===1?!0:n===2?!1:e}var QP=class extends O{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return $l(this._isRegexOverride,this._isRegex)}get wholeWord(){return $l(this._wholeWordOverride,this._wholeWord)}get matchCase(){return $l(this._matchCaseOverride,this._matchCase)}get preserveCase(){return $l(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 Q),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(n,e,t){const i={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;e===0&&(n=0),n>e&&(n=e),this._matchesPosition!==n&&(this._matchesPosition=n,i.matchesPosition=!0,s=!0),this._matchesCount!==e&&(this._matchesCount=e,i.matchesCount=!0,s=!0),typeof t<"u"&&(y.equalsRange(this._currentMatch,t)||(this._currentMatch=t,i.currentMatch=!0,s=!0)),s&&this._onFindReplaceStateChange.fire(i)}change(n,e,t=!0){const i={moveCursor:e,updateHistory:t,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 o=this.isRegex,r=this.wholeWord,a=this.matchCase,l=this.preserveCase;typeof n.searchString<"u"&&this._searchString!==n.searchString&&(this._searchString=n.searchString,i.searchString=!0,s=!0),typeof n.replaceString<"u"&&this._replaceString!==n.replaceString&&(this._replaceString=n.replaceString,i.replaceString=!0,s=!0),typeof n.isRevealed<"u"&&this._isRevealed!==n.isRevealed&&(this._isRevealed=n.isRevealed,i.isRevealed=!0,s=!0),typeof n.isReplaceRevealed<"u"&&this._isReplaceRevealed!==n.isReplaceRevealed&&(this._isReplaceRevealed=n.isReplaceRevealed,i.isReplaceRevealed=!0,s=!0),typeof n.isRegex<"u"&&(this._isRegex=n.isRegex),typeof n.wholeWord<"u"&&(this._wholeWord=n.wholeWord),typeof n.matchCase<"u"&&(this._matchCase=n.matchCase),typeof n.preserveCase<"u"&&(this._preserveCase=n.preserveCase),typeof n.searchScope<"u"&&(n.searchScope?.every(d=>this._searchScope?.some(c=>!y.equalsRange(c,d)))||(this._searchScope=n.searchScope,i.searchScope=!0,s=!0)),typeof n.loop<"u"&&this._loop!==n.loop&&(this._loop=n.loop,i.loop=!0,s=!0),typeof n.isSearching<"u"&&this._isSearching!==n.isSearching&&(this._isSearching=n.isSearching,i.isSearching=!0,s=!0),typeof n.filters<"u"&&(this._filters?this._filters.update(n.filters):this._filters=n.filters,i.filters=!0,s=!0),this._isRegexOverride=typeof n.isRegexOverride<"u"?n.isRegexOverride:0,this._wholeWordOverride=typeof n.wholeWordOverride<"u"?n.wholeWordOverride:0,this._matchCaseOverride=typeof n.matchCaseOverride<"u"?n.matchCaseOverride:0,this._preserveCaseOverride=typeof n.preserveCaseOverride<"u"?n.preserveCaseOverride:0,o!==this.isRegex&&(s=!0,i.isRegex=!0),r!==this.wholeWord&&(s=!0,i.wholeWord=!0),a!==this.matchCase&&(s=!0,i.matchCase=!0),l!==this.preserveCase&&(s=!0,i.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(i)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=19999}},eO=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tO=function(n,e){return function(t,i){e(t,i,n)}},Kn,lp=class{static{Kn=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(e){return Kn._instance||(Kn._instance=new Kn(e)),Kn._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new Q,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(Kn.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(Kn.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}};lp=Kn=eO([tO(0,Ti)],lp);var iO=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},nO=function(n,e){return function(t,i){e(t,i,n)}},Gn,dp=class{static{Gn=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(e){return Gn._instance||(Gn._instance=new Gn(e)),Gn._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new Q,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(Gn.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(Gn.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}};dp=Gn=iO([nO(0,Ti)],dp);var Fx=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xt=function(n,e){return function(t,i){e(t,i,n)}},cp,sO=524288;function hp(n,e="single",t=!1){if(!n.hasModel())return null;const i=n.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const s=n.getConfiguredWordAtPosition(i.getStartPosition());if(s&&t===!1)return s.word}else if(n.getModel().getValueLengthInRange(i)<sO)return n.getModel().getValueInRange(i)}return null}var Bt=class extends O{static{cp=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(e){return e.getContribution(cp.ID)}constructor(e,t,i,s,o,r){super(),this._editor=e,this._findWidgetVisible=Vn.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=s,this._notificationService=o,this._hoverService=r,this._updateHistoryDelayer=this._register(new _s(500)),this._state=this._register(new QP),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!!ph.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=ka(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 s=hp(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);s&&(this._state.isRegex?i.searchString=ka(s):i.searchString=s)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const s=hp(this._editor,e.seedSearchStringFromSelection);s&&(i.searchString=s)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const s=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;s&&(i.searchString=s)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const s=this._editor.getSelections();s.some(o=>!o.isEmpty())&&(i.searchScope=s)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new tk(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)}};Bt=cp=Fx([Xt(1,ve),Xt(2,Ti),Xt(3,ti),Xt(4,Et),Xt(5,ui)],Bt);var up=class extends Bt{constructor(e,t,i,s,o,r,a,l,d,c){super(e,i,r,a,o,l),this._contextViewService=t,this._keybindingService=s,this._configurationService=d,this._accessibilityService=c,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=lp.getOrCreate(r),this._replaceWidgetHistory=dp.getOrCreate(r)}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let s=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":s=!0;break;case"never":s=!1;break;case"multiline":s=!!i&&i.startLineNumber!==i.endLineNumber}e.updateSearchScope=e.updateSearchScope||s,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 Us(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 JP(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(e){this._widget?.setViewState(e)}};up=Fx([Xt(1,ih),Xt(2,ve),Xt(3,Oe),Xt(4,Et),Xt(5,Ti),Xt(6,ti),Xt(7,ui),Xt(8,xe),Xt(9,Rs)],up);var oO=Jc(new ah({id:Ee.StartFindAction,label:L(987,"Find"),precondition:N.or(S.focus,N.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:$.MenubarEditMenu,group:"3_find",title:m(980,"&&Find"),order:1}}));oO.addImplementation(0,(n,e,t)=>{const i=Bt.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});var rO={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"}}}}]},aO=class extends M{constructor(){super({id:Ee.StartFindWithArgs,label:L(988,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:rO})}async run(n,e,t){const i=Bt.get(e);if(i){const s=t?{searchString:t.searchString,replaceString:t.replaceString,isReplaceRevealed:t.replaceString!==void 0,isRegex:t.isRegex,wholeWord:t.matchWholeWord,matchCase:t.isCaseSensitive,preserveCase:t.preserveCase}:{};await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&e.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:t?.findInSelection||!1,loop:e.getOption(50).loop},s),i.setGlobalBufferTerm(i.getState().searchString)}}},lO=class extends M{constructor(){super({id:Ee.StartFindWithSelection,label:L(989,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(n,e){const t=Bt.get(e);t&&(await t.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop}),t.setGlobalBufferTerm(t.getState().searchString))}};async function Hx(n,e){const t=Bt.get(n);if(!t)return;const i=n.getOption(50).closeOnResult,s=t.getState().isRevealed,o=()=>{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&&s&&t.isFindInputFocused()&&t.closeFindWidget(),!0):!1};if(!o()&&(await t.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getState().searchString.length===0&&n.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:n.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:n.getOption(50).loop}),!o())){const r=t.getState();s&&r.matchesCount===0&&r.searchString&&ci(m(981,"{0} found for '{1}'",Pg,r.searchString))}}var dO=Jc(new ah({id:Ee.NextMatchFindAction,label:L(990,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:S.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:N.and(S.focus,ph),primary:3,weight:100}]}));dO.addImplementation(0,async(n,e,t)=>Hx(e,!0));var cO=Jc(new ah({id:Ee.PreviousMatchFindAction,label:L(991,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:S.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:N.and(S.focus,ph),primary:1027,weight:100}]}));cO.addImplementation(0,async(n,e,t)=>Hx(e,!1));var hO=class extends M{constructor(){super({id:Ee.GoToMatchFindAction,label:L(992,"Go to Match..."),precondition:Vn}),this._highlightDecorations=[]}run(n,e){const t=Bt.get(e);if(!t)return;const i=t.getState().matchesCount;if(i<1){n.get(Et).notify({severity:jc.Warning,message:m(982,"No matches. Try searching for something else.")});return}const s=n.get(Di),o=new A,r=o.add(s.createInputBox());r.placeholder=m(983,"Type a number to go to a specific match (between 1 and {0})",i);const a=d=>{const c=parseInt(d);if(isNaN(c))return;const h=t.getState().matchesCount;if(c>0&&c<=h)return c-1;if(c<0&&c>=-h)return h+c},l=d=>{const c=a(d);if(typeof c=="number"){r.validationMessage=void 0,t.goToMatch(c);const h=t.getState().currentMatch;h&&this.addDecorations(e,h)}else r.validationMessage=m(984,"Please type a number between 1 and {0}",t.getState().matchesCount),this.clearDecorations(e)};o.add(r.onDidChangeValue(d=>{l(d)})),o.add(r.onDidAccept(()=>{const d=a(r.value);typeof d=="number"?(t.goToMatch(d),r.hide()):r.validationMessage=m(985,"Please type a number between 1 and {0}",t.getState().matchesCount)})),o.add(r.onDidHide(()=>{this.clearDecorations(e),o.dispose()})),r.show()}clearDecorations(n){n.changeDecorations(e=>{this._highlightDecorations=e.deltaDecorations(this._highlightDecorations,[])})}addDecorations(n,e){n.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[{range:e,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:e,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:it(FS),position:nn.Full}}}])})}},Wx=class extends M{async run(n,e){const t=Bt.get(e);if(!t)return;const i=hp(e,"single",!1);i&&t.setSearchString(i),this._run(t)||(await t.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop}),this._run(t))}},uO=class extends Wx{constructor(){super({id:Ee.NextSelectionMatchFindAction,label:L(993,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:2109,weight:100}})}_run(n){return n.moveToNextMatch()}},gO=class extends Wx{constructor(){super({id:Ee.PreviousSelectionMatchFindAction,label:L(994,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:3133,weight:100}})}_run(n){return n.moveToPrevMatch()}},pO=Jc(new ah({id:Ee.StartFindReplaceAction,label:L(995,"Replace"),precondition:N.or(S.focus,N.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:$.MenubarEditMenu,group:"3_find",title:m(986,"&&Replace"),order:2}}));pO.addImplementation(0,(n,e,t)=>{if(!e.hasModel()||e.getOption(104))return!1;const i=Bt.get(e);if(!i)return!1;const s=e.getSelection(),o=i.isFindInputFocused(),r=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&e.getOption(50).seedSearchStringFromSelection!=="never"&&!o,a=o||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})});ce(Bt.ID,up,0);k(aO);k(lO);k(hO);k(uO);k(gO);var ji=Mt.bindToContribution(Bt.get);G(new ji({id:Ee.CloseFindWidgetCommand,precondition:Vn,handler:n=>n.closeFindWidget(),kbOpts:{weight:105,kbExpr:N.and(S.focus,N.not("isComposing")),primary:9,secondary:[1033]}}));G(new ji({id:Ee.ToggleCaseSensitiveCommand,precondition:void 0,handler:n=>n.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:S.focus,primary:Ml.primary,mac:Ml.mac,win:Ml.win,linux:Ml.linux}}));G(new ji({id:Ee.ToggleWholeWordCommand,precondition:void 0,handler:n=>n.toggleWholeWords(),kbOpts:{weight:105,kbExpr:S.focus,primary:Al.primary,mac:Al.mac,win:Al.win,linux:Al.linux}}));G(new ji({id:Ee.ToggleRegexCommand,precondition:void 0,handler:n=>n.toggleRegex(),kbOpts:{weight:105,kbExpr:S.focus,primary:Fl.primary,mac:Fl.mac,win:Fl.win,linux:Fl.linux}}));G(new ji({id:Ee.ToggleSearchScopeCommand,precondition:void 0,handler:n=>n.toggleSearchScope(),kbOpts:{weight:105,kbExpr:S.focus,primary:Hl.primary,mac:Hl.mac,win:Hl.win,linux:Hl.linux}}));G(new ji({id:Ee.TogglePreserveCaseCommand,precondition:void 0,handler:n=>n.togglePreserveCase(),kbOpts:{weight:105,kbExpr:S.focus,primary:Wl.primary,mac:Wl.mac,win:Wl.win,linux:Wl.linux}}));G(new ji({id:Ee.ReplaceOneAction,precondition:Vn,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:S.focus,primary:3094}}));G(new ji({id:Ee.ReplaceOneAction,precondition:Vn,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:N.and(S.focus,i_,S.isComposing.negate()),primary:3}}));G(new ji({id:Ee.ReplaceAllAction,precondition:Vn,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:S.focus,primary:2563}}));G(new ji({id:Ee.ReplaceAllAction,precondition:Vn,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:N.and(S.focus,i_),primary:void 0,mac:{primary:2051}}}));G(new ji({id:Ee.SelectAllMatchesAction,precondition:Vn,handler:n=>n.selectAllMatches(),kbOpts:{weight:105,kbExpr:S.focus,primary:515}}));var fO={0:" ",1:"u",2:"r"};var Kl=16777215,pb=4278190080,ou=class{constructor(n){const e=Math.ceil(n/32);this._states=new Uint32Array(e)}get(n){const e=n/32|0,t=n%32;return(this._states[e]&1<<t)!==0}set(n,e){const t=n/32|0,i=n%32,s=this._states[t];e?this._states[t]=s|1<<i:this._states[t]=s&~(1<<i)}},Ci=class Vx{constructor(e,t,i){if(e.length!==t.length||e.length>65535)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new ou(e.length),this._userDefinedStates=new ou(e.length),this._recoveredStates=new ou(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,s)=>{const o=e[e.length-1];return this.getStartLineNumber(o)<=i&&this.getEndLineNumber(o)>=s};for(let i=0,s=this._startIndexes.length;i<s;i++){const o=this._startIndexes[i],r=this._endIndexes[i];if(o>16777215||r>16777215)throw new Error("startLineNumber or endLineNumber must not exceed 16777215");for(;e.length>0&&!t(o,r);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=o+((a&255)<<24),this._endIndexes[i]=r+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Kl}getEndLineNumber(e){return this._endIndexes[e]&Kl}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 s=0;s<this._types.length;s++)this._types[s]===e&&(this.setCollapsed(s,t),i=!0);return i}toRegion(e){return new mO(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&pb)>>>24)+((this._endIndexes[e]&pb)>>>16);return t===65535?-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 s=Math.floor((t+i)/2);e<this.getStartLineNumber(s)?i=s:t=s+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]=`[${fO[this.getSource(t)]}${this.isCollapsed(t)?"+":"-"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(", ")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&Kl,endLineNumber:this._endIndexes[e]&Kl,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),s=new Uint32Array(t);let o=[],r=!1;for(let l=0;l<t;l++){const d=e[l];i[l]=d.startLineNumber,s[l]=d.endLineNumber,o.push(d.type),d.type&&(r=!0)}r||(o=void 0);const a=new Vx(i,s,o);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,s){i=i??Number.MAX_VALUE;const o=(_,v)=>Array.isArray(_)?(C=>C<v?_[C]:void 0):(C=>C<v?_.toFoldRange(C):void 0),r=o(e,e.length),a=o(t,t.length);let l=0,d=0,c=r(0),h=a(0);const u=[];let g,p=0;const f=[];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||!s?.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,C=h;for(;;){if(!C||C.startLineNumber>c.endLineNumber){_=c;break}if(C.source===1&&C.endLineNumber>c.endLineNumber)break;C=a(++v)}c=r(++l)}if(_){for(;g&&g.endLineNumber<_.startLineNumber;)g=u.pop();_.endLineNumber>_.startLineNumber&&_.startLineNumber>p&&_.endLineNumber<=i&&(!g||g.endLineNumber>=_.endLineNumber)&&(f.push(_),p=_.startLineNumber,g&&u.push(g),g=_)}}return f}},mO=class{constructor(n,e){this.ranges=n,this.index=e}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(n){return n.startLineNumber<=this.startLineNumber&&n.endLineNumber>=this.endLineNumber}containsLine(n){return this.startLineNumber<=n&&n<=this.endLineNumber}},_O=class{get regions(){return this._regions}get textModel(){return this._textModel}constructor(n,e){this._updateEventEmitter=new Q,this.onDidChange=this._updateEventEmitter.event,this._textModel=n,this._decorationProvider=e,this._regions=new Ci(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(n){if(!n.length)return;n=n.sort((t,i)=>t.regionIndex-i.regionIndex);const e={};this._decorationProvider.changeDecorations(t=>{let i=0,s=-1,o=-1;const r=a=>{for(;i<a;){const l=this._regions.getEndLineNumber(i),d=this._regions.isCollapsed(i);if(l<=s){const c=this.regions.getSource(i)!==0;t.changeDecorationOptions(this._editorDecorationIds[i],this._decorationProvider.getDecorationOption(d,l<=o,c))}d&&l>o&&(o=l),i++}};for(const a of n){const l=a.regionIndex,d=this._editorDecorationIds[l];if(d&&!e[d]){e[d]=!0,r(l);const c=!this._regions.isCollapsed(l);this._regions.setCollapsed(l,c),s=Math.max(s,this._regions.getEndLineNumber(l))}}r(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:n})}removeManualRanges(n){const e=new Array,t=i=>{for(const s of n)if(!(s.startLineNumber>i.endLineNumber||i.startLineNumber>s.endLineNumber))return!0;return!1};for(let i=0;i<this._regions.length;i++){const s=this._regions.toFoldRange(i);(s.source===0||!t(s))&&e.push(s)}this.updatePost(Ci.fromFoldRanges(e))}update(n,e){const t=this._currentFoldedOrManualRanges(e),i=Ci.sanitizeAndMerge(n,t,this._textModel.getLineCount(),e);this.updatePost(Ci.fromFoldRanges(i))}updatePost(n){const e=[];let t=-1;for(let i=0,s=n.length;i<s;i++){const o=n.getStartLineNumber(i),r=n.getEndLineNumber(i),a=n.isCollapsed(i),l=n.getSource(i)!==0,d={startLineNumber:o,startColumn:this._textModel.getLineMaxColumn(o),endLineNumber:r,endColumn:this._textModel.getLineMaxColumn(r)+1};e.push({range:d,options:this._decorationProvider.getDecorationOption(a,r<=t,l)}),a&&r>t&&(t=r)}this._decorationProvider.changeDecorations(i=>this._editorDecorationIds=i.deltaDecorations(this._editorDecorationIds,e)),this._regions=n,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(n){const e=[];for(let t=0,i=this._regions.length;t<i;t++){let s=this.regions.isCollapsed(t);const o=this.regions.getSource(t);if(s||o!==0){const r=this._regions.toFoldRange(t),a=this._textModel.getDecorationRange(this._editorDecorationIds[t]);a&&(s&&n?.startsInside(a.startLineNumber+1,a.endLineNumber)&&(s=!1),e.push({startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,type:r.type,isCollapsed:s,source:o}))}}return e}getMemento(){const n=this._currentFoldedOrManualRanges(),e=[],t=this._textModel.getLineCount();for(let i=0,s=n.length;i<s;i++){const o=n[i];if(o.startLineNumber>=o.endLineNumber||o.startLineNumber<1||o.endLineNumber>t)continue;const r=this._getLinesChecksum(o.startLineNumber+1,o.endLineNumber);e.push({startLineNumber:o.startLineNumber,endLineNumber:o.endLineNumber,isCollapsed:o.isCollapsed,source:o.source,checksum:r})}return e.length>0?e:void 0}applyMemento(n){if(!Array.isArray(n))return;const e=[],t=this._textModel.getLineCount();for(const s of n){if(s.startLineNumber>=s.endLineNumber||s.startLineNumber<1||s.endLineNumber>t)continue;const o=this._getLinesChecksum(s.startLineNumber+1,s.endLineNumber);(!s.checksum||o===s.checksum)&&e.push({startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,type:void 0,isCollapsed:s.isCollapsed??!0,source:s.source??0})}const i=Ci.sanitizeAndMerge(this._regions,e,t);this.updatePost(Ci.fromFoldRanges(i))}_getLinesChecksum(n,e){return Nw(this._textModel.getLineContent(n)+this._textModel.getLineContent(e))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(n,e){const t=[];if(this._regions){let i=this._regions.findRange(n),s=1;for(;i>=0;){const o=this._regions.toRegion(i);(!e||e(o,s))&&t.push(o),s++,i=o.parentIndex}}return t}getRegionAtLine(n){if(this._regions){const e=this._regions.findRange(n);if(e>=0)return this._regions.toRegion(e)}return null}getRegionsInside(n,e){const t=[],i=n?n.regionIndex+1:0,s=n?n.endLineNumber:Number.MAX_VALUE;if(e&&e.length===2){const o=[];for(let r=i,a=this._regions.length;r<a;r++){const l=this._regions.toRegion(r);if(this._regions.getStartLineNumber(r)<s){for(;o.length>0&&!l.containedBy(o[o.length-1]);)o.pop();o.push(l),e(l,o.length)&&t.push(l)}else break}}else for(let o=i,r=this._regions.length;o<r;o++){const a=this._regions.toRegion(o);if(this._regions.getStartLineNumber(o)<s)(!e||e(a))&&t.push(a);else break}return t}};function g_(n,e,t){const i=[];for(const s of t){const o=n.getRegionAtLine(s);if(o){const r=!o.isCollapsed;if(i.push(o),e>1){const a=n.getRegionsInside(o,(l,d)=>l.isCollapsed!==r&&d<e);i.push(...a)}}}n.toggleCollapseState(i)}function Er(n,e,t=Number.MAX_VALUE,i){const s=[];if(i&&i.length>0)for(const o of i){const r=n.getRegionAtLine(o);if(r&&(r.isCollapsed!==e&&s.push(r),t>1)){const a=n.getRegionsInside(r,(l,d)=>l.isCollapsed!==e&&d<t);s.push(...a)}}else{const o=n.getRegionsInside(null,(r,a)=>r.isCollapsed!==e&&a<t);s.push(...o)}n.toggleCollapseState(s)}function Bx(n,e,t,i){const s=[];for(const o of i){const r=n.getAllRegionsAtLine(o,(a,l)=>a.isCollapsed!==e&&l<=t);s.push(...r)}n.toggleCollapseState(s)}function vO(n,e,t){const i=[];for(const s of t){const o=n.getAllRegionsAtLine(s,r=>r.isCollapsed!==e);o.length>0&&i.push(o[0])}n.toggleCollapseState(i)}function bO(n,e,t,i){const s=(r,a)=>a===e&&r.isCollapsed!==t&&!i.some(l=>r.containsLine(l)),o=n.getRegionsInside(null,s);n.toggleCollapseState(o)}function Ux(n,e,t){const i=[];for(const r of t){const a=n.getAllRegionsAtLine(r,void 0);a.length>0&&i.push(a[0])}const s=r=>i.every(a=>!a.containedBy(r)&&!r.containedBy(a))&&r.isCollapsed!==e,o=n.getRegionsInside(null,s);n.toggleCollapseState(o)}function p_(n,e,t){const i=n.textModel,s=n.regions,o=[];for(let r=s.length-1;r>=0;r--)if(t!==s.isCollapsed(r)){const a=s.getStartLineNumber(r);e.test(i.getLineContent(a))&&o.push(s.toRegion(r))}n.toggleCollapseState(o)}function f_(n,e,t){const i=n.regions,s=[];for(let o=i.length-1;o>=0;o--)t!==i.isCollapsed(o)&&e===i.getType(o)&&s.push(i.toRegion(o));n.toggleCollapseState(s)}function CO(n,e){let t=null;const i=e.getRegionAtLine(n);if(i!==null&&(t=i.startLineNumber,n===t)){const s=i.parentIndex;s!==-1?t=e.regions.getStartLineNumber(s):t=null}return t}function SO(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){if(n!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let s=0;for(i!==-1&&(s=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=s)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<n)return t.startLineNumber;t.regionIndex>0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function wO(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){const i=t.parentIndex;let s=0;if(i!==-1)s=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;s=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>=s)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>n)return t.startLineNumber;t.regionIndex<e.regions.length?t=e.regions.toRegion(t.regionIndex+1):t=null}return null}var yO=class{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(n){this._updateEventEmitter=new Q,this._hasLineChanges=!1,this._foldingModel=n,this._foldingModelListener=n.onDidChange(e=>this.updateHiddenRanges()),this._hiddenRanges=[],n.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(n){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=n.changes.some(e=>e.range.endLineNumber!==e.range.startLineNumber||g0(e.text)[0]!==0))}updateHiddenRanges(){let n=!1;const e=[];let t=0,i=0,s=Number.MAX_VALUE,o=-1;const r=this._foldingModel.regions;for(;t<r.length;t++){if(!r.isCollapsed(t))continue;const a=r.getStartLineNumber(t)+1,l=r.getEndLineNumber(t);s<=a&&l<=o||(!n&&i<this._hiddenRanges.length&&this._hiddenRanges[i].startLineNumber===a&&this._hiddenRanges[i].endLineNumber===l?(e.push(this._hiddenRanges[i]),i++):(n=!0,e.push(new y(a,1,l,1))),s=a,o=l)}(this._hasLineChanges||n||i<this._hiddenRanges.length)&&this.applyHiddenRanges(e)}applyHiddenRanges(n){this._hiddenRanges=n,this._hasLineChanges=!1,this._updateEventEmitter.fire(n)}hasRanges(){return this._hiddenRanges.length>0}isHidden(n){return fb(this._hiddenRanges,n)!==null}adjustSelections(n){let e=!1;const t=this._foldingModel.textModel;let i=null;const s=o=>((!i||!xO(o,i))&&(i=fb(this._hiddenRanges,o)),i?i.startLineNumber-1:null);for(let o=0,r=n.length;o<r;o++){let a=n[o];const l=s(a.startLineNumber);l&&(a=a.setStartPosition(l,t.getLineMaxColumn(l)),e=!0);const d=s(a.endLineNumber);d&&(a=a.setEndPosition(d,t.getLineMaxColumn(d)),e=!0),n[o]=a}return e}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null),this._updateEventEmitter.dispose()}};function xO(n,e){return n>=e.startLineNumber&&n<=e.endLineNumber}function fb(n,e){const t=WS(n,i=>e<i.startLineNumber)-1;return t>=0&&n[t].endLineNumber>=e?n[t]:null}var IO=5e3,LO="indent",m_=class{constructor(n,e,t){this.editorModel=n,this.languageConfigurationService=e,this.foldingRangesLimit=t,this.id=LO}dispose(){}compute(n){const e=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,t=e&&!!e.offSide,i=e&&e.markers;return Promise.resolve(RO(this.editorModel,t,i,this.foldingRangesLimit))}},DO=class{constructor(n){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=n}insertFirst(n,e,t){if(n>16777215||e>16777215)return;const i=this._length;this._startIndexes[i]=n,this._endIndexes[i]=e,this._length++,t<1e3&&(this._indentOccurrences[t]=(this._indentOccurrences[t]||0)+1)}toIndentRanges(n){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 s=this._length-1,o=0;s>=0;s--,o++)t[o]=this._startIndexes[s],i[o]=this._endIndexes[s];return new Ci(t,i)}else{this._foldingRangesLimit.update(this._length,e);let t=0,i=this._indentOccurrences.length;for(let a=0;a<this._indentOccurrences.length;a++){const l=this._indentOccurrences[a];if(l){if(l+t>e){i=a;break}t+=l}}const s=n.getOptions().tabSize,o=new Uint32Array(e),r=new Uint32Array(e);for(let a=this._length-1,l=0;a>=0;a--){const d=this._startIndexes[a],c=n.getLineContent(d),h=ym(c,s);(h<i||h===i&&t++<e)&&(o[l]=d,r[l]=this._endIndexes[a],l++)}return new Ci(o,r)}}},EO={limit:IO,update:()=>{}};function RO(n,e,t,i=EO){const s=n.getOptions().tabSize,o=new DO(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=n.getLineCount()+1;d.push({indent:-1,endAbove:c,line:c});for(let h=n.getLineCount();h>0;h--){const u=n.getLineContent(h),g=ym(u,s);let p=d[d.length-1];if(g===-1){e&&(p.endAbove=h);continue}let f=!1,_=!1,v;if(r?(r.lastIndex=0,(v=r.exec(u))&&(f=!!v[1],_=!f)):(a&&(a.lastIndex=0,f=a.test(u)),!f&&l&&(l.lastIndex=0,_=l.test(u))),f||_)if(f){let C=d.length-1;for(;C>0&&d[C].indent!==-2;)C--;if(C>0){d.length=C+1,p=d[C],o.insertFirst(h,p.line,g),p.line=h,p.indent=g,p.endAbove=h;continue}}else{d.push({indent:-2,endAbove:h,line:h});continue}if(p.indent>g){do d.pop(),p=d[d.length-1];while(p.indent>g);const C=p.endAbove-1;C-h>=1&&o.insertFirst(h,C,g)}p.indent===g?p.endAbove=h:d.push({indent:g,endAbove:h,line:h})}return o.toIndentRanges(n)}var TO=H("editor.foldBackground",{light:nt(Tv,.3),dark:nt(Tv,.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);H("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."));H("editorGutter.foldingControlForeground",$T,m(1047,"Color of the folding control in the editor gutter."));var fc=Ze("folding-expanded",V.chevronDown,m(1048,"Icon for expanded ranges in the editor glyph margin.")),mc=Ze("folding-collapsed",V.chevronRight,m(1049,"Icon for collapsed ranges in the editor glyph margin.")),mb=Ze("folding-manual-collapsed",mc,m(1050,"Icon for manually collapsed ranges in the editor glyph margin.")),_b=Ze("folding-manual-expanded",fc,m(1051,"Icon for manually expanded ranges in the editor glyph margin.")),ru={color:it(TO),position:1},Ro=m(1052,"Click to expand the range."),Gl=m(1053,"Click to collapse the range."),NO=class ai{static{this.COLLAPSED_VISUAL_DECORATION=se.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Ro,firstLineDecorationClassName:pe.asClassName(mc)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=se.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:ru,isWholeLine:!0,linesDecorationsTooltip:Ro,firstLineDecorationClassName:pe.asClassName(mc)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=se.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Ro,firstLineDecorationClassName:pe.asClassName(mb)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=se.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:ru,isWholeLine:!0,linesDecorationsTooltip:Ro,firstLineDecorationClassName:pe.asClassName(mb)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=se.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Ro})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=se.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:ru,isWholeLine:!0,linesDecorationsTooltip:Ro})}static{this.EXPANDED_VISUAL_DECORATION=se.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+pe.asClassName(fc),linesDecorationsTooltip:Gl})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=se.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:pe.asClassName(fc),linesDecorationsTooltip:Gl})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=se.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+pe.asClassName(_b),linesDecorationsTooltip:Gl})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=se.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:pe.asClassName(_b),linesDecorationsTooltip:Gl})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=se.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=se.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?ai.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?ai.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:ai.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:ai.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?ai.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:ai.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?ai.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:ai.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?i?ai.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:ai.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?ai.MANUALLY_EXPANDED_VISUAL_DECORATION:ai.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}},kO={},PO="syntax",__=class{constructor(n,e,t,i,s){this.editorModel=n,this.providers=e,this.handleFoldingRangesChange=t,this.foldingRangesLimit=i,this.fallbackRangeProvider=s,this.id=PO,this.disposables=new A,s&&this.disposables.add(s);for(const o of e)typeof o.onDidChange=="function"&&this.disposables.add(o.onDidChange(t))}compute(n){return OO(this.providers,this.editorModel,n).then(e=>this.editorModel.isDisposed()?null:e?AO(e,this.foldingRangesLimit):this.fallbackRangeProvider?.compute(n)??null)}dispose(){this.disposables.dispose()}};function OO(n,e,t){let i=null;const s=n.map((o,r)=>Promise.resolve(o.provideFoldingRanges(e,kO,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})}},tt));return Promise.all(s).then(o=>i)}var MO=class{constructor(n){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=n}add(n,e,t,i){if(n>16777215||e>16777215)return;const s=this._length;this._startIndexes[s]=n,this._endIndexes[s]=e,this._nestingLevels[s]=i,this._types[s]=t,this._length++,i<30&&(this._nestingLevelCounts[i]=(this._nestingLevelCounts[i]||0)+1)}toIndentRanges(){const n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=0;i<this._length;i++)e[i]=this._startIndexes[i],t[i]=this._endIndexes[i];return new Ci(e,t,this._types)}else{this._foldingRangesLimit.update(this._length,n);let e=0,t=this._nestingLevelCounts.length;for(let r=0;r<this._nestingLevelCounts.length;r++){const a=this._nestingLevelCounts[r];if(a){if(a+e>n){t=r;break}e+=a}}const i=new Uint32Array(n),s=new Uint32Array(n),o=[];for(let r=0,a=0;r<this._length;r++){const l=this._nestingLevels[r];(l<t||l===t&&e++<n)&&(i[a]=this._startIndexes[r],s[a]=this._endIndexes[r],o[a]=this._types[r],a++)}return new Ci(i,s,o)}}};function AO(n,e){const t=n.sort((r,a)=>{let l=r.start-a.start;return l===0&&(l=r.rank-a.rank),l}),i=new MO(e);let s;const o=[];for(const r of t)if(!s)s=r,i.add(r.start,r.end,r.kind&&r.kind.value,o.length);else if(r.start>s.start)if(r.end<=s.end)o.push(s),s=r,i.add(r.start,r.end,r.kind&&r.kind.value,o.length);else{if(r.start>s.end){do s=o.pop();while(s&&r.start>s.end);s&&o.push(s),s=r}i.add(r.start,r.end,r.kind&&r.kind.value,o.length)}return i.toIndentRanges()}var FO=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zr=function(n,e){return function(t,i){e(t,i,n)}},oa,mt=new oe("foldingEnabled",!1),Ss=class extends O{static{oa=this}static{this.ID="editor.contrib.folding"}static get(e){return e.getContribution(oa.ID)}static getFoldingRangeProviders(e,t){const i=e.foldingRangeProvider.ordered(t);return oa._foldingRangeSelector?.(i,t)??i}constructor(e,t,i,s,o,r){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=r,this.localToDispose=this._register(new A),this.editor=e,this._foldingLimitReporter=this._register(new zx(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=o.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 NO(e),this.foldingDecorationProvider.showFoldingControls=a.get(126),this.foldingDecorationProvider.showFoldingHighlights=a.get(54),this.foldingEnabled=mt.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 _O(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new yO(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new _s(this.updateDebounceInfo.get(e)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new at(()=>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 m_(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=oa.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new __(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 hi,i=this.getRangeProvider(e.textModel),s=this.foldingRegionPromise=pt(o=>i.compute(o));return s.then(o=>{if(o&&s===this.foldingRegionPromise){let r;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const d=o.setCollapsedAllOfType(Lr.Imports.value,!0);d&&(r=or.capture(this.editor),this._currentModelHasFoldedImports=d)}const a=this.editor.getSelections();e.update(o,HO(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 s=[];for(const o of i){const r=o.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(r)&&s.push(...t.getAllRegionsAtLine(r,a=>a.isCollapsed&&r>a.startLineNumber))}s.length&&(t.toggleCollapseState(s),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 s=e.target.detail,o=e.target.element.offsetLeft;if(s.offsetX-o<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 s=this.editor.getModel();if(s&&t.startColumn===s.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,s=this.mouseDownInfo.iconClicked,o=e.target.range;if(!o||o.startLineNumber!==i)return;if(s){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||o.startColumn!==a.getLineMaxColumn(i))return}const r=t.getRegionAtLine(i);if(r&&r.startLineNumber===i){const a=r.isCollapsed;if(s||a){const l=e.event.altKey;let d=[];if(l){const c=u=>!u.containedBy(r)&&!r.containedBy(u),h=t.getRegionsInside(null,c);for(const u of h)u.isCollapsed&&d.push(u);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)}};Ss=oa=FO([zr(1,ve),zr(2,ct),zr(3,Et),zr(4,Ri),zr(5,Z)],Ss);var zx=class extends O{constructor(n){super(),this.editor=n,this._onDidChange=this._register(new Q),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(n,e){(n!==this._computed||e!==this._limited)&&(this._computed=n,this._limited=e,this._onDidChange.fire())}},bt=class extends M{runEditorCommand(n,e,t){const i=n.get(ct),s=Ss.get(e);if(!s)return;const o=s.getFoldingModel();if(o)return this.reportTelemetry(n,e),o.then(r=>{if(r){this.invoke(s,r,e,t,i);const a=e.getSelection();a&&s.reveal(a.getStartPosition())}})}getSelectedLines(n){const e=n.getSelections();return e?e.map(t=>t.startLineNumber):[]}getLineNumbers(n,e){return n&&n.selectionLines?n.selectionLines.map(t=>t+1):this.getSelectedLines(e)}run(n,e){}};function HO(n){return!n||n.length===0?{startsInside:()=>!1}:{startsInside(e,t){for(const i of n){const s=i.startLineNumber;if(s>=e&&s<=t)return!0}return!1}}}function jx(n){if(!ta(n)){if(!hm(n))return!1;const e=n;if(!ta(e.levels)&&!Y_(e.levels)||!ta(e.direction)&&!HS(e.direction)||!ta(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(Y_)))return!1}return!0}var WO=class extends bt{constructor(){super({id:"editor.unfold",label:L(1025,"Unfold"),precondition:mt,kbOpts:{kbExpr:S.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:
13
- * 'levels': Number of levels to unfold. If not set, defaults to 1.
14
- * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
15
- * '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.
16
- `,constraint:jx,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(n,e,t,i){const s=i&&i.levels||1,o=this.getLineNumbers(i,t);i&&i.direction==="up"?Bx(e,!1,s,o):Er(e,!1,s,o)}},VO=class extends bt{constructor(){super({id:"editor.unfoldRecursively",label:L(1026,"Unfold Recursively"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2142),weight:100}})}invoke(n,e,t,i){Er(e,!1,Number.MAX_VALUE,this.getSelectedLines(t))}},BO=class extends bt{constructor(){super({id:"editor.fold",label:L(1027,"Fold"),precondition:mt,kbOpts:{kbExpr:S.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:
17
- * 'levels': Number of levels to fold.
18
- * 'direction': If 'up', folds given number of levels up otherwise folds down.
19
- * '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.
20
- If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
21
- `,constraint:jx,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(n,e,t,i){const s=this.getLineNumbers(i,t),o=i&&i.levels,r=i&&i.direction;typeof o!="number"&&typeof r!="string"?vO(e,!0,s):r==="up"?Bx(e,!0,o||1,s):Er(e,!0,o||1,s)}},UO=class extends bt{constructor(){super({id:"editor.toggleFold",label:L(1028,"Toggle Fold"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2090),weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);g_(e,1,i)}},zO=class extends bt{constructor(){super({id:"editor.foldRecursively",label:L(1029,"Fold Recursively"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2140),weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);Er(e,!0,Number.MAX_VALUE,i)}},jO=class extends bt{constructor(){super({id:"editor.toggleFoldRecursively",label:L(1030,"Toggle Fold Recursively"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,3114),weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);g_(e,Number.MAX_VALUE,i)}},qO=class extends bt{constructor(){super({id:"editor.foldAllBlockComments",label:L(1031,"Fold All Block Comments"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2138),weight:100}})}invoke(n,e,t,i,s){if(e.regions.hasTypes())f_(e,Lr.Comment.value,!0);else{const o=t.getModel();if(!o)return;const r=s.getLanguageConfiguration(o.getLanguageId()).comments;if(r&&r.blockCommentStartToken){const a=new RegExp("^\\s*"+ka(r.blockCommentStartToken));p_(e,a,!0)}}}},$O=class extends bt{constructor(){super({id:"editor.foldAllMarkerRegions",label:L(1032,"Fold All Regions"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2077),weight:100}})}invoke(n,e,t,i,s){if(e.regions.hasTypes())f_(e,Lr.Region.value,!0);else{const o=t.getModel();if(!o)return;const r=s.getLanguageConfiguration(o.getLanguageId()).foldingRules;if(r&&r.markers&&r.markers.start){const a=new RegExp(r.markers.start);p_(e,a,!0)}}}},KO=class extends bt{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:L(1033,"Unfold All Regions"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2078),weight:100}})}invoke(n,e,t,i,s){if(e.regions.hasTypes())f_(e,Lr.Region.value,!1);else{const o=t.getModel();if(!o)return;const r=s.getLanguageConfiguration(o.getLanguageId()).foldingRules;if(r&&r.markers&&r.markers.start){const a=new RegExp(r.markers.start);p_(e,a,!1)}}}},GO=class extends bt{constructor(){super({id:"editor.foldAllExcept",label:L(1034,"Fold All Except Selected"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2136),weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);Ux(e,!0,i)}},ZO=class extends bt{constructor(){super({id:"editor.unfoldAllExcept",label:L(1035,"Unfold All Except Selected"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2134),weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);Ux(e,!1,i)}},XO=class extends bt{constructor(){super({id:"editor.foldAll",label:L(1036,"Fold All"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2069),weight:100}})}invoke(n,e,t){Er(e,!0)}},YO=class extends bt{constructor(){super({id:"editor.unfoldAll",label:L(1037,"Unfold All"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2088),weight:100}})}invoke(n,e,t){Er(e,!1)}},vb=class gp extends bt{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=e=>gp.ID_PREFIX+e}getFoldingLevel(){return parseInt(this.id.substr(gp.ID_PREFIX.length))}invoke(e,t,i){bO(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}},JO=class extends bt{constructor(){super({id:"editor.gotoParentFold",label:L(1038,"Go to Parent Fold"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);if(i.length>0){const s=CO(i[0],e);s!==null&&t.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}},QO=class extends bt{constructor(){super({id:"editor.gotoPreviousFold",label:L(1039,"Go to Previous Folding Range"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);if(i.length>0){const s=SO(i[0],e);s!==null&&t.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}},eM=class extends bt{constructor(){super({id:"editor.gotoNextFold",label:L(1040,"Go to Next Folding Range"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,weight:100}})}invoke(n,e,t){const i=this.getSelectedLines(t);if(i.length>0){const s=wO(i[0],e);s!==null&&t.setSelection({startLineNumber:s,startColumn:1,endLineNumber:s,endColumn:1})}}},tM=class extends bt{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:L(1041,"Create Folding Range from Selection"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2135),weight:100}})}invoke(n,e,t){const i=[],s=t.getSelections();if(s){for(const o of s){let r=o.endLineNumber;o.endColumn===1&&--r,r>o.startLineNumber&&(i.push({startLineNumber:o.startLineNumber,endLineNumber:r,type:void 0,isCollapsed:!0,source:1}),t.setSelection({startLineNumber:o.startLineNumber,startColumn:1,endLineNumber:o.startLineNumber,endColumn:1}))}if(i.length>0){i.sort((r,a)=>r.startLineNumber-a.startLineNumber);const o=Ci.sanitizeAndMerge(e.regions,i,t.getModel()?.getLineCount());e.updatePost(Ci.fromFoldRanges(o))}}}},iM=class extends bt{constructor(){super({id:"editor.removeManualFoldingRanges",label:L(1042,"Remove Manual Folding Ranges"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2137),weight:100}})}invoke(n,e,t){const i=t.getSelections();if(i){const s=[];for(const o of i){const{startLineNumber:r,endLineNumber:a}=o;s.push(a>=r?{startLineNumber:r,endLineNumber:a}:{endLineNumber:a,startLineNumber:r})}e.removeManualRanges(s),n.triggerFoldingModelChanged()}}},nM=class extends bt{constructor(){super({id:"editor.toggleImportFold",label:L(1043,"Toggle Import Fold"),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,weight:100}})}async invoke(n,e){const t=[],i=e.regions;for(let s=i.length-1;s>=0;s--)i.getType(s)===Lr.Imports.value&&t.push(i.toRegion(s));e.toggleCollapseState(t),n.triggerFoldingModelChanged()}};ce(Ss.ID,Ss,0);k(WO);k(VO);k(BO);k(zO);k(jO);k(XO);k(YO);k(qO);k($O);k(KO);k(GO);k(ZO);k(UO);k(JO);k(QO);k(eM);k(tM);k(iM);k(nM);for(let n=1;n<=7;n++)jR(new vb({id:vb.ID(n),label:L(1044,"Fold Level {0}",n),precondition:mt,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2048|21+n),weight:100}}));Re.registerCommand("_executeFoldingRangeProvider",async function(n,...e){const[t]=e;if(!(t instanceof De))throw Ln();const i=n.get(Z),s=n.get(Kt).getModel(t);if(!s)throw Ln();const o=n.get(xe);if(!o.getValue("editor.folding",{resource:t}))return[];const r=n.get(ct),a=o.getValue("editor.foldingStrategy",{resource:t}),l={get limit(){return o.getValue("editor.foldingMaximumRegions",{resource:t})},update:(g,p)=>{}},d=new m_(s,r,l);let c=d;if(a!=="indentation"){const g=Ss.getFoldingRangeProviders(i,s);g.length&&(c=new __(s,g,()=>{},l,d))}const h=await c.compute(ue.None),u=[];try{if(h)for(let g=0;g<h.length;g++){const p=h.getType(g);u.push({start:h.getStartLineNumber(g),end:h.getEndLineNumber(g),kind:p?Lr.fromValue(p):void 0})}return u}finally{c.dispose()}});var sM=class extends M{constructor(){super({id:"editor.action.fontZoomIn",label:L(1054,"Increase Editor Font Size"),precondition:void 0})}run(n,e){Ra.setZoomLevel(Ra.getZoomLevel()+1)}},oM=class extends M{constructor(){super({id:"editor.action.fontZoomOut",label:L(1055,"Decrease Editor Font Size"),precondition:void 0})}run(n,e){Ra.setZoomLevel(Ra.getZoomLevel()-1)}},rM=class extends M{constructor(){super({id:"editor.action.fontZoomReset",label:L(1056,"Reset Editor Font Size"),precondition:void 0})}run(n,e){Ra.setZoomLevel(0)}};k(sM);k(oM);k(rM);var qx=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wa=function(n,e){return function(t,i){e(t,i,n)}},_c=class{static{this.ID="editor.contrib.autoFormat"}constructor(e,t,i,s){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=s,this._disposables=new A,this._sessionDisposables=new A,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(o=>{o.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 Qd;for(const s of t.autoFormatTriggerCharacters)i.add(s.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(s=>{const o=s.charCodeAt(s.length-1);i.has(o)&&this._trigger(String.fromCharCode(o))}))}_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(),s=new st,o=this._editor.onDidChangeModelContent(r=>{if(r.isFlush){s.cancel(),o.dispose();return}for(let a=0,l=r.changes.length;a<l;a++)if(r.changes[a].range.endLineNumber<=i.lineNumber){s.cancel(),o.dispose();return}});dR(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),s.token).then(r=>{s.token.isCancellationRequested||Qt(r)&&(this._accessibilitySignalService.playSignal(Fa.format,{userGesture:!1}),GR.execute(this._editor,r,!0))}).finally(()=>{o.dispose()})}};_c=qx([wa(1,Z),wa(2,An),wa(3,Em)],_c);var vc=class{static{this.ID="editor.contrib.formatOnPaste"}constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new A,this._callOnModel=new A,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(Ew,this.editor,e,2,xn.None,ue.None,!1).catch(we))}};vc=qx([wa(1,Z),wa(2,ie)],vc);var aM=class extends M{constructor(){super({id:"editor.action.formatDocument",label:L(1057,"Format Document"),precondition:N.and(S.notInCompositeEditor,S.writable,S.hasDocumentFormattingProvider),kbOpts:{kbExpr:S.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(n,e){if(e.hasModel()){const t=n.get(ie);await n.get(lr).showWhile(t.invokeFunction(iR,e,1,xn.None,ue.None,!0),250)}}},lM=class extends M{constructor(){super({id:"editor.action.formatSelection",label:L(1058,"Format Selection"),precondition:N.and(S.writable,S.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2084),weight:100},contextMenuOpts:{when:S.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(n,e){if(!e.hasModel())return;const t=n.get(ie),i=e.getModel(),s=e.getSelections().map(o=>o.isEmpty()?new y(o.startLineNumber,1,o.startLineNumber,i.getLineMaxColumn(o.startLineNumber)):o);await n.get(lr).showWhile(t.invokeFunction(Ew,e,s,1,xn.None,ue.None,!0),250)}};ce(_c.ID,_c,2);ce(vc.ID,vc,2);k(aM);k(lM);Re.registerCommand("editor.action.format",async n=>{const e=n.get($e).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=n.get(ht);e.getSelection().isEmpty()?await t.executeCommand("editor.action.formatDocument"):await t.executeCommand("editor.action.formatSelection")});var dM=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},au=function(n,e){return function(t,i){e(t,i,n)}},Go=class{remove(){this.parent?.children.delete(this.id)}static findId(n,e){let t;typeof n=="string"?t=`${e.id}/${n}`:(t=`${e.id}/${n.name}`,e.children.get(t)!==void 0&&(t=`${e.id}/${n.name}_${n.range.startLineNumber}_${n.range.startColumn}`));let i=t;for(let s=0;e.children.get(i)!==void 0;s++)i=`${t}_${s}`;return i}static empty(n){return n.children.size===0}},pp=class extends Go{constructor(n,e,t){super(),this.id=n,this.parent=e,this.symbol=t,this.children=new Map}},$x=class extends Go{constructor(n,e,t,i){super(),this.id=n,this.parent=e,this.label=t,this.order=i,this.children=new Map}},Kx=class qs extends Go{static create(e,t,i){const s=new st(i),o=new qs(t.uri),r=e.ordered(t),a=r.map((d,c)=>{const h=Go.findId(`provider_${c}`,o),u=new $x(h,o,d.displayName??"Unknown Outline Provider",c);return Promise.resolve(d.provideDocumentSymbols(t,s.token)).then(g=>{for(const p of g||[])qs._makeOutlineElement(p,u);return u},g=>(tt(g),u)).then(g=>{Go.empty(g)?g.remove():o._groups.set(h,g)})}),l=e.onDidChange(()=>{const d=e.ordered(t);Bi(d,r)||s.cancel()});return Promise.all(a).then(()=>s.token.isCancellationRequested&&!i.isCancellationRequested?qs.create(e,t,i):o._compact()).finally(()=>{s.dispose(),l.dispose(),s.dispose()})}static _makeOutlineElement(e,t){const i=Go.findId(e,t),s=new pp(i,t,e);if(e.children)for(const o of e.children)qs._makeOutlineElement(o,s);t.children.set(s.id,s)}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=cs.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 pp?e.push(t.symbol):e.push(...cs.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>y.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return qs._flattenDocumentSymbols(t,e,""),t.sort((i,s)=>B.compare(y.getStartPosition(i.range),y.getStartPosition(s.range))||B.compare(y.getEndPosition(s.range),y.getEndPosition(i.range)))}static _flattenDocumentSymbols(e,t,i){for(const s of t)e.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||i,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&qs._flattenDocumentSymbols(e,s.children,s.name)}},El=dn("IOutlineModelService"),fp=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new A,this._cache=new dl(15,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved(s=>{this._cache.delete(s.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,s=i.ordered(e);let o=this._cache.get(e.id);if(!o||o.versionId!==e.getVersionId()||!Bi(o.provider,s)){const a=new st;o={versionId:e.getVersionId(),provider:s,promiseCnt:0,source:a,promise:Kx.create(i,e,a.token),model:void 0},this._cache.set(e.id,o);const l=Date.now();o.promise.then(d=>{o.model=d,this._debounceInformation.update(e,Date.now()-l)}).catch(d=>{this._cache.delete(e.id)})}if(o.model)return o.model;o.promiseCnt+=1;const r=t.onCancellationRequested(()=>{--o.promiseCnt===0&&(o.source.cancel(),this._cache.delete(e.id))});try{return await o.promise}finally{r.dispose()}}};fp=dM([au(0,Z),au(1,Ri),au(2,Kt)],fp);Wn(El,fp,1);Re.registerCommand("_executeDocumentSymbolProvider",async function(n,...e){const[t]=e;Se(De.isUri(t));const i=n.get(El),s=await n.get(si).createModelReference(t);try{return(await i.getOrCreate(s.object.textEditorModel,ue.None)).getTopLevelSymbols()}finally{s.dispose()}});var bh=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}},cM=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hM=function(n,e){return function(t,i){e(t,i,n)}};function uM(n){return n instanceof Gx?n._instance:n}var Gx=class{constructor(n){this.instantiationService=n}init(...n){}};function gM(n){return n.get()}var bb=class extends Gx{constructor(e,t){super(t),this.init(e)}};bb=cM([hM(1,ie)],bb);var Rr=class{validateOrThrow(n){const e=this.validate(n);if(e.error)throw new Error(e.error.message);return e.content}},Ch=class extends Rr{constructor(n){super(),this.type=n}validate(n){return typeof n!==this.type?{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof n}`}}:{content:n,error:void 0}}getJSONSchema(){return{type:this.type}}},pM=new Ch("string");function fM(){return pM}new Ch("number");var mM=new Ch("boolean");function Cb(){return mM}new Ch("object");var _M=class extends Rr{validate(n){return{content:n,error:void 0}}getJSONSchema(){return{}}};function vM(){return new _M}var Zx=class extends Rr{validate(n){return n!==void 0?{content:void 0,error:{message:`Expected undefined, but got ${typeof n}`}}:{content:void 0,error:void 0}}getJSONSchema(){return{}}};function bM(){return new Zx}var mp=class{constructor(n){this.validator=n}};function Zl(n){return new mp(n)}var CM=class extends Rr{constructor(n){super(),this.properties=n}validate(n){if(typeof n!="object"||n===null)return{content:void 0,error:{message:"Expected object"}};const e={};for(const t in this.properties){const i=this.properties[t],s=n[t],o=i instanceof mp,r=o?i.validator:i;if(o&&s===void 0)continue;const{content:a,error:l}=r.validate(s);if(l)return{content:void 0,error:{message:`Error in property '${t}': ${l.message}`}};e[t]=a}return{content:e,error:void 0}}getJSONSchema(){const n=[],e={};for(const[t,i]of Object.entries(this.properties)){const s=i instanceof mp;e[t]=(s?i.validator:i).getJSONSchema(),s||n.push(t)}return{type:"object",properties:e,...n.length>0?{required:n}:{}}}};function SM(n){return new CM(n)}var wM=class extends Rr{constructor(n){super(),this.validators=n}validate(n){let e;for(const t of this.validators){const{content:i,error:s}=t.validate(n);if(!s)return{content:i,error:void 0};e=s}return{content:void 0,error:e}}getJSONSchema(){return{oneOf:WR(this.validators,n=>{if(!(n instanceof Zx))return n.getJSONSchema()})}}};function yM(...n){return new wM(n)}var xM=class extends Rr{constructor(n,e){super(),this._ref=n,this._validator=e}validate(n){return this._validator.validate(n)}getJSONSchema(){return{$ref:this._ref}}};function IM(n,e){return new xM(n,e)}var J={Visible:n_,HasFocusedSuggestion:new oe("suggestWidgetHasFocusedSuggestion",!1,m(1505,"Whether any suggestion is focused")),DetailsVisible:new oe("suggestWidgetDetailsVisible",!1,m(1506,"Whether suggestion details are visible")),DetailsFocused:new oe("suggestWidgetDetailsFocused",!1,m(1507,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new oe("suggestWidgetMultipleSuggestions",!1,m(1508,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new oe("suggestionMakesTextEdit",!0,m(1509,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new oe("acceptSuggestionOnEnter",!0,m(1510,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new oe("suggestionHasInsertAndReplaceRange",!1,m(1511,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new oe("suggestionInsertMode",void 0,{type:"string",description:m(1512,"Whether the default behaviour is to insert or replace")}),CanResolve:new oe("suggestionCanResolve",!1,m(1513,"Whether the current suggestion supports to resolve further details"))},En=new $("suggestWidgetStatusBar"),LM=class{constructor(n,e,t,i){this.position=n,this.completion=e,this.container=t,this.provider=i,this.isInvalid=!1,this.score=Oa.Default,this.distance=0,this.textLabel=typeof e.label=="string"?e.label:e.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=e.sortText&&e.sortText.toLowerCase(),this.filterTextLow=e.filterText&&e.filterText.toLowerCase(),this.extensionId=e.extensionId,y.isIRange(e.range)?(this.editStart=new B(e.range.startLineNumber,e.range.startColumn),this.editInsertEnd=new B(e.range.endLineNumber,e.range.endColumn),this.editReplaceEnd=new B(e.range.endLineNumber,e.range.endColumn),this.isInvalid=this.isInvalid||y.spansMultipleLines(e.range)||e.range.startLineNumber!==n.lineNumber):(this.editStart=new B(e.range.insert.startLineNumber,e.range.insert.startColumn),this.editInsertEnd=new B(e.range.insert.endLineNumber,e.range.insert.endColumn),this.editReplaceEnd=new B(e.range.replace.endLineNumber,e.range.replace.endColumn),this.isInvalid=this.isInvalid||y.spansMultipleLines(e.range.insert)||y.spansMultipleLines(e.range.replace)||e.range.insert.startLineNumber!==n.lineNumber||e.range.replace.startLineNumber!==n.lineNumber||e.range.insert.startColumn!==e.range.replace.startColumn),typeof i.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(n){if(!this._resolveCache){const e=n.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),t=new hi(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,n)).then(i=>{Object.assign(this.completion,i),this._resolveDuration=t.elapsed()},i=>{Hn(i)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{e.dispose()})}return this._resolveCache}},v_=class Xx{static{this.default=new Xx}constructor(e=2,t=new Set,i=new Set,s=new Map,o=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=s,this.showDeprecated=o}},DM=class{constructor(n,e,t,i){this.items=n,this.needsClipboard=e,this.durations=t,this.disposable=i}};async function b_(n,e,t,i=v_.default,s={triggerKind:0},o=ue.None){const r=new hi;t=t.clone();const a=e.getWordAtPosition(t),l=a?new y(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):y.fromPositions(t),d={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},c=[],h=new A,u=[];let g=!1;const p=(_,v,C)=>{let x=!1;if(!v)return x;for(const I of v.suggestions)if(!i.kindFilter.has(I.kind)){if(!i.showDeprecated&&I?.tags?.includes(1))continue;I.range||(I.range=d),I.sortText||(I.sortText=typeof I.label=="string"?I.label:I.label.label),!g&&I.insertTextRules&&I.insertTextRules&4&&(g=ao.guessNeedsClipboard(I.insertText)),c.push(new LM(t,I,v,_)),x=!0}return Lm(v)&&h.add(v),u.push({providerName:_._debugDisplayName??"unknown_provider",elapsedProvider:v.duration??-1,elapsedOverall:C.elapsed()}),x},f=(async()=>{})();for(const _ of n.orderedGroups(e)){let v=!1;if(await Promise.all(_.map(async C=>{if(i.providerItemsToReuse.has(C)){const x=i.providerItemsToReuse.get(C);x.forEach(I=>c.push(I)),v=v||x.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(C)))try{const x=new hi,I=await C.provideCompletionItems(e,t,s,o);v=p(C,I,x)||v}catch(x){tt(x)}})),v||o.isCancellationRequested)break}return await f,o.isCancellationRequested?(h.dispose(),Promise.reject(new rm)):new DM(c.sort(TM(i.snippetSortOrder)),g,{entries:u,elapsed:r.elapsed()},h)}function C_(n,e){if(n.sortTextLow&&e.sortTextLow){if(n.sortTextLow<e.sortTextLow)return-1;if(n.sortTextLow>e.sortTextLow)return 1}return n.textLabel<e.textLabel?-1:n.textLabel>e.textLabel?1:n.completion.kind-e.completion.kind}function EM(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===28)return-1;if(e.completion.kind===28)return 1}return C_(n,e)}function RM(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===28)return 1;if(e.completion.kind===28)return-1}return C_(n,e)}var Sh=new Map;Sh.set(0,EM);Sh.set(2,RM);Sh.set(1,C_);function TM(n){return Sh.get(n)}Re.registerCommand("_executeCompletionItemProvider",async(n,...e)=>{const[t,i,s,o]=e;Se(De.isUri(t)),Se(B.isIPosition(i)),Se(typeof s=="string"||!s),Se(typeof o=="number"||!o);const{completionProvider:r}=n.get(Z),a=await n.get(si).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},d=[],c=a.object.textEditorModel.validatePosition(i),h=await b_(r,a.object.textEditorModel,c,void 0,{triggerCharacter:s??void 0,triggerKind:s?1:0});for(const u of h.items)d.length<(o??0)&&d.push(u.resolve(ue.None)),l.incomplete=l.incomplete||u.container.incomplete,l.suggestions.push(u.completion);try{return await Promise.all(d),l}finally{setTimeout(()=>h.disposable.dispose(),100)}}finally{a.dispose()}});function NM(n,e){n.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(e),void 0,!0)}var Zo=class{static isAllOff(n){return n.other==="off"&&n.comments==="off"&&n.strings==="off"}static isAllOn(n){return n.other==="on"&&n.comments==="on"&&n.strings==="on"}static valueFor(n,e){switch(e){case 1:return n.comments;case 2:return n.strings;default:return n.other}}},be=class{static{this.inlineSuggestionVisible=new oe("inlineSuggestionVisible",!1,m(1234,"Whether an inline suggestion is visible"))}static{this.inlineSuggestionAlternativeActionVisible=new oe("inlineSuggestionAlternativeActionVisible",!1,m(1235,"Whether an alternative action for the inline suggestion is visible."))}static{this.inlineSuggestionHasIndentation=new oe("inlineSuggestionHasIndentation",!1,m(1236,"Whether the inline suggestion starts with whitespace"))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new oe("inlineSuggestionHasIndentationLessThanTabSize",!0,m(1237,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab"))}static{this.suppressSuggestions=new oe("inlineSuggestionSuppressSuggestions",void 0,m(1238,"Whether suggestions should be suppressed for the current suggestion"))}static{this.cursorBeforeGhostText=new oe("cursorBeforeGhostText",!1,m(1239,"Whether the cursor is at ghost text"))}static{this.cursorInIndentation=new oe("cursorInIndentation",!1,m(1240,"Whether the cursor is in indentation"))}static{this.hasSelection=new oe("editor.hasSelection",!1,m(1241,"Whether the editor has a selection"))}static{this.cursorAtInlineEdit=new oe("cursorAtInlineEdit",!1,m(1242,"Whether the cursor is at an inline edit"))}static{this.inlineEditVisible=new oe("inlineEditIsVisible",!1,m(1243,"Whether an inline edit is visible"))}static{this.tabShouldJumpToInlineEdit=new oe("tabShouldJumpToInlineEdit",!1,m(1244,"Whether tab should jump to an inline edit."))}static{this.tabShouldAcceptInlineEdit=new oe("tabShouldAcceptInlineEdit",!1,m(1245,"Whether tab should accept the inline edit."))}static{this.inInlineEditsPreviewEditor=new oe("inInlineEditsPreviewEditor",!0,m(1246,"Whether the current code editor is showing an inline edits preview"))}},Yx=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bc=function(n,e){return function(t,i){e(t,i,n)}},Sb=class{constructor(n,e,t){this.marker=n,this.index=e,this.total=t}},_p=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new Q,this.onDidChange=this._onDidChange.event,this._dispoables=new A,this._markers=[],this._nextIdx=-1,De.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const s=this._configService.getValue("problems.sortOrder"),o=(a,l)=>{let d=tv(a.resource.toString(),l.resource.toString());return d===0&&(s==="position"?d=y.compareRangesUsingStarts(a,l)||vt.compare(a.severity,l.severity):d=vt.compare(a.severity,l.severity)||y.compareRangesUsingStarts(a,l)),d},r=()=>{let a=this._markerService.read({resource:De.isUri(e)?e:void 0,severities:vt.Error|vt.Warning|vt.Info});return typeof e=="function"&&(a=a.filter(l=>this._resourceFilter(l.resource))),a.sort(o),Bi(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 Sb(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let s=this._markers.findIndex(o=>ps(o.resource,e.uri));if(s<0)s=UD(this._markers.length,o=>tv(this._markers[o].resource.toString(),e.uri.toString())),s<0&&(s=~s),i?this._nextIdx=s:this._nextIdx=(this._markers.length+s-1)%this._markers.length;else{let o=!1,r=!1;for(let a=s;a<this._markers.length;a++){let l=y.lift(this._markers[a]);if(l.isEmpty()){const d=e.getWordAtPosition(l.getStartPosition());d&&(l=new y(l.startLineNumber,d.startColumn,l.startLineNumber,d.endColumn))}if(t&&(l.containsPosition(t)||t.isBeforeOrEqual(l.getStartPosition()))){this._nextIdx=a,o=!0,r=!l.containsPosition(t);break}if(this._markers[a].resource.toString()!==e.uri.toString())break}o?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 s=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),s!==this._nextIdx}find(e,t){let i=this._markers.findIndex(s=>s.resource.toString()===e.toString());if(!(i<0)){for(;i<this._markers.length;i++)if(y.containsPosition(this._markers[i],t))return new Sb(this._markers[i],i+1,this._markers.length)}}};_p=Yx([bc(1,lh),bc(2,xe)],_p);var Jx=dn("IMarkerNavigationService"),vp=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new rw}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new _p(e,this._markerService,this._configService)}};vp=Yx([bc(0,lh),bc(1,xe)],vp);Wn(Jx,vp,1);var bp;(function(n){function e(t){switch(t){case Nl.Ignore:return"severity-ignore "+pe.asClassName(V.info);case Nl.Info:return pe.asClassName(V.info);case Nl.Warning:return pe.asClassName(V.warning);case Nl.Error:return pe.asClassName(V.error);default:return""}}n.className=e})(bp||(bp={}));var kM=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},To=function(n,e){return function(t,i){e(t,i,n)}},Cp,PM=class{constructor(n,e,t,i,s){this._openerService=i,this._labelService=s,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new A,this._editor=e;const o=document.createElement("div");o.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),o.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),o.appendChild(this._relatedBlock),this._disposables.add(bs(this._relatedBlock,"click",r=>{r.preventDefault();const a=this._relatedDiagnostics.get(r.target);a&&t(a)})),this._scrollable=new Z0(o,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),n.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(r=>{o.style.left=`-${r.scrollLeft}px`,o.style.top=`-${r.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){Nt(this._disposables)}update(n){const{source:e,message:t,relatedInformation:i,code:s}=n;let o=(e?.length||0)+2;s&&(typeof s=="string"?o+=s.length:o+=s.value.length);const r=kn(t);this._lines=r.length,this._longestLineLength=0;for(const h of r)this._longestLineLength=Math.max(h.length+o,this._longestLineLength);di(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(n)),vs(this.getAriaLabel(n)),this._editor.applyFontInfo(this._messageBlock);let a=this._messageBlock;for(const h of r)a=document.createElement("div"),a.innerText=h,h===""&&(a.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(a);if(e||s){const h=document.createElement("span");if(h.classList.add("details"),a.appendChild(h),e){const u=document.createElement("span");u.innerText=e,u.classList.add("source"),h.appendChild(u)}if(s)if(typeof s=="string"){const u=document.createElement("span");u.innerText=`(${s})`,u.classList.add("code"),h.appendChild(u)}else{this._codeLink=W("a.code-link"),this._codeLink.setAttribute("href",`${s.target.toString()}`),this._codeLink.onclick=g=>{this._openerService.open(s.target,{allowCommands:!0}),g.preventDefault(),g.stopPropagation()};const u=z(this._codeLink,W("span"));u.innerText=s.value,h.appendChild(this._codeLink)}}if(di(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Qt(i)){const h=this._relatedBlock.appendChild(document.createElement("div"));h.style.paddingTop=`${Math.floor(this._editor.getOption(75)*.66)}px`,this._lines+=1;for(const u of i){const g=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 f=document.createElement("span");f.innerText=u.message,g.appendChild(p),g.appendChild(f),this._lines+=1,h.appendChild(g)}}const l=this._editor.getOption(59),d=Math.ceil(l.typicalFullwidthCharacterWidth*this._longestLineLength*.75),c=l.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:d,scrollHeight:c})}layout(n,e){this._scrollable.getDomNode().style.height=`${n}px`,this._scrollable.getDomNode().style.width=`${e}px`,this._scrollable.setScrollDimensions({width:e,height:n})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(n){let e="";switch(n.severity){case vt.Error:e=m(1067,"Error");break;case vt.Warning:e=m(1068,"Warning");break;case vt.Info:e=m(1069,"Info");break;case vt.Hint:e=m(1070,"Hint")}let t=m(1071,"{0}: {1} at {2}. ",e,n.message,n.startLineNumber+":"+n.startColumn);const i=this._editor.getModel();return i&&n.startLineNumber<=i.getLineCount()&&n.startLineNumber>=1&&(t=`${i.getLineContent(n.startLineNumber)}, ${t}`),t}},Za=class extends cc{static{Cp=this}static{this.TitleMenu=new $("gotoErrorTitleMenu")}constructor(e,t,i,s,o,r,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},o),this._themeService=t,this._openerService=i,this._menuService=s,this._contextKeyService=r,this._labelService=a,this._callOnDispose=new A,this._onDidSelectRelatedInformation=new Q,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=vt.Warning,this._backgroundColor=me.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(FM);let t=Sp,i=OM;this._severity===vt.Warning?(t=Ed,i=MM):this._severity===vt.Info&&(t=wp,i=AM);const s=e.getColor(t),o=e.getColor(i);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:o,primaryHeadingColor:e.getColor(cx),secondaryHeadingColor:e.getColor(hx)})}_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(s=>this.editor.focus()));const t=this._menuService.getMenuActions(Cp.TitleMenu,this._contextKeyService),i=T0(t);this._actionbarWidget.push(i,{label:!1,icon:!0,index:0})}_fillTitleIcon(e){this._icon=z(e,W(""))}_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 PM(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 s=y.lift(e),o=this.editor.getPosition(),r=o&&s.containsPosition(o)?o:s.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(Vi(a.uri),l)}this._icon.className=`codicon ${bp.className(vt.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()}};Za=Cp=kM([To(1,It),To(2,_o),To(3,Es),To(4,ie),To(5,ve),To(6,ar)],Za);var wb=am(KR,zE),yb=am(n0,c0),xb=am(Xu,fR),Sp=H("editorMarkerNavigationError.background",{dark:wb,light:wb,hcDark:on,hcLight:on},m(1074,"Editor marker navigation widget error color.")),OM=H("editorMarkerNavigationError.headerBackground",{dark:nt(Sp,.1),light:nt(Sp,.1),hcDark:null,hcLight:null},m(1075,"Editor marker navigation widget error heading background.")),Ed=H("editorMarkerNavigationWarning.background",{dark:yb,light:yb,hcDark:on,hcLight:on},m(1076,"Editor marker navigation widget warning color.")),MM=H("editorMarkerNavigationWarning.headerBackground",{dark:nt(Ed,.1),light:nt(Ed,.1),hcDark:"#0C141F",hcLight:nt(Ed,.2)},m(1077,"Editor marker navigation widget warning heading background.")),wp=H("editorMarkerNavigationInfo.background",{dark:xb,light:xb,hcDark:on,hcLight:on},m(1078,"Editor marker navigation widget info color.")),AM=H("editorMarkerNavigationInfo.headerBackground",{dark:nt(wp,.1),light:nt(wp,.1),hcDark:null,hcLight:null},m(1079,"Editor marker navigation widget info heading background.")),FM=H("editorMarkerNavigation.background",Gd,m(1080,"Editor marker navigation widget background.")),HM=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xl=function(n,e){return function(t,i){e(t,i,n)}},ra,po=class{static{ra=this}static{this.ID="editor.contrib.markerController"}static get(e){return e.getContribution(ra.ID)}constructor(e,t,i,s,o){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=s,this._instantiationService=o,this._sessionDispoables=new A,this._editor=e,this._widgetVisible=sI.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(Za,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||!y.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:y.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 B(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(),s=this._getOrCreateModel(t?void 0:i.uri);if(s.move(e,i,this._editor.getPosition()),!!s.selected)if(s.selected.marker.resource.toString()!==i.uri.toString()){this._cleanUp();const o=await this._editorService.openCodeEditor({resource:s.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:s.selected.marker}},this._editor);o&&(ra.get(o)?.close(),ra.get(o)?.navigate(e,t))}else this._widget.showAtMarker(s.selected.marker,s.selected.index,s.selected.total)}};po=ra=HM([Xl(1,Jx),Xl(2,ve),Xl(3,$e),Xl(4,ie)],po);var wh=class extends M{constructor(n,e,t){super(t),this._next=n,this._multiFile=e}async run(n,e){e.hasModel()&&await po.get(e)?.navigate(this._next,this._multiFile)}},S_=class Rd extends wh{static{this.ID="editor.action.marker.next"}static{this.LABEL=L(1063,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:Rd.ID,label:Rd.LABEL,precondition:void 0,kbOpts:{kbExpr:S.focus,primary:578,weight:100},menuOpts:{menuId:Za.TitleMenu,title:Rd.LABEL.value,icon:Ze("marker-navigation-next",V.arrowDown,m(1059,"Icon for goto next marker.")),group:"navigation",order:1}})}},Qx=class Td extends wh{static{this.ID="editor.action.marker.prev"}static{this.LABEL=L(1064,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:Td.ID,label:Td.LABEL,precondition:void 0,kbOpts:{kbExpr:S.focus,primary:1602,weight:100},menuOpts:{menuId:Za.TitleMenu,title:Td.LABEL.value,icon:Ze("marker-navigation-previous",V.arrowUp,m(1060,"Icon for goto previous marker.")),group:"navigation",order:2}})}},eI=class tI extends wh{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:tI.ID,label:L(1065,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:66,weight:100},menuOpts:{menuId:$.MenubarGoMenu,title:m(1061,"Next &&Problem"),group:"6_problem_nav",order:1}})}},iI=class nI extends wh{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:nI.ID,label:L(1066,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:1090,weight:100},menuOpts:{menuId:$.MenubarGoMenu,title:m(1062,"Previous &&Problem"),group:"6_problem_nav",order:2}})}};ce(po.ID,po,4);k(S_);k(Qx);k(eI);k(iI);var sI=new oe("markersNavigationVisible",!1),WM=Mt.bindToContribution(po.get);G(new WM({id:"closeMarkersNavigation",precondition:sI,handler:n=>n.close(),kbOpts:{weight:150,kbExpr:S.focus,primary:9,secondary:[1033]}}));var VM=class{constructor(n,e,t){this._selection=n,this._cursors=e,this._selectionId=null,this._trimInRegexesAndStrings=t}getEditOperations(n,e){const t=BM(n,this._cursors,this._trimInRegexesAndStrings);for(let i=0,s=t.length;i<s;i++){const o=t[i];e.addEditOperation(o.range,o.text)}this._selectionId=e.trackSelection(this._selection)}computeCursorState(n,e){return e.getTrackedSelection(this._selectionId)}};function BM(n,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 s=0,o=0;const r=e.length;for(let a=1,l=n.getLineCount();a<=l;a++){const d=n.getLineContent(a),c=d.length+1;let h=0;if(o<r&&e[o].lineNumber===a&&(h=e[o].column,o++,h===c)||d.length===0)continue;const u=ba(d);let g=0;if(u===-1)g=1;else if(u!==d.length-1)g=u+2;else continue;if(!t){if(!n.tokenization.hasAccurateTokensForLine(a))continue;const p=n.tokenization.getLineTokens(a),f=p.getStandardTokenType(p.findTokenIndexAtOffset(g));if(f===2||f===3)continue}g=Math.max(h,g),i[s++]=Ge.delete(new y(a,g,a,c))}return i}var oI=class{constructor(n,e,t){this._selection=n,this._isCopyingDown=e,this._noop=t||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(n,e){let t=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,t.startLineNumber<t.endLineNumber&&t.endColumn===1&&(this._endLineNumberDelta=1,t=t.setEndPosition(t.endLineNumber-1,n.getLineMaxColumn(t.endLineNumber-1)));const i=[];for(let o=t.startLineNumber;o<=t.endLineNumber;o++)i.push(n.getLineContent(o));const s=i.join(`
22
- `);s===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?e.addEditOperation(new y(t.endLineNumber,n.getLineMaxColumn(t.endLineNumber),t.endLineNumber+1,1),t.endLineNumber===n.getLineCount()?"":`
23
- `):this._isCopyingDown?e.addEditOperation(new y(t.startLineNumber,1,t.startLineNumber,1),s+`
24
- `):e.addEditOperation(new y(t.endLineNumber,n.getLineMaxColumn(t.endLineNumber),t.endLineNumber,n.getLineMaxColumn(t.endLineNumber)),`
25
- `+s),this._selectionId=e.trackSelection(t),this._selectionDirection=this._selection.getDirection()}computeCursorState(n,e){let t=e.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let i=t.startLineNumber,s=t.startColumn,o=t.endLineNumber,r=t.endColumn;this._startLineNumberDelta!==0&&(i=i+this._startLineNumberDelta,s=1),this._endLineNumberDelta!==0&&(o=o+this._endLineNumberDelta,r=1),t=te.createWithDirection(i,s,o,r,this._selectionDirection)}return t}};function zt(n,e){let t=0;for(let i=0;i<n.length;i++)n.charAt(i)===" "?t+=e:t++;return t}function ya(n,e,t){n=n<0?0:n;let i="";if(!t){const s=Math.floor(n/e);n=n%e;for(let o=0;o<s;o++)i+=" "}for(let s=0;s<n;s++)i+=" ";return i}var UM=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zM=function(n,e){return function(t,i){e(t,i,n)}},yp=class{constructor(e,t,i,s){this._languageConfigurationService=s,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(e,t,i){return{tokenization:{getLineTokens:s=>e.tokenization.getLineTokens(t(s)),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(s,o)=>e.getLanguageIdAtPosition(s,o)},getLineContent:s=>{const o=i?.(s);return o!==void 0?o:e.getLineContent(t(s))}}}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 s=this._selection;s.startLineNumber<s.endLineNumber&&s.endColumn===1&&(this._moveEndPositionDown=!0,s=s.setEndPosition(s.endLineNumber-1,e.getLineMaxColumn(s.endLineNumber-1)));const{tabSize:o,indentSize:r,insertSpaces:a}=e.getOptions(),l=this.buildIndentConverter(o,r,a);if(s.startLineNumber===s.endLineNumber&&e.getLineMaxColumn(s.startLineNumber)===1){const d=s.startLineNumber,c=this._isMovingDown?d+1:d-1;e.getLineMaxColumn(c)===1?t.addEditOperation(new y(1,1,1,1),null):(t.addEditOperation(new y(d,1,d,1),e.getLineContent(c)),t.addEditOperation(new y(c,1,c,e.getLineMaxColumn(c)),null)),s=new te(c,1,c,1)}else{let d,c;if(this._isMovingDown){d=s.endLineNumber+1,c=e.getLineContent(d),t.addEditOperation(new y(d-1,e.getLineMaxColumn(d-1),d,e.getLineMaxColumn(d)),null);let h=c;if(this.shouldAutoIndent(e,s)){const u=this.matchEnterRule(e,l,o,d,s.startLineNumber-1);if(u!==null){const p=yt(e.getLineContent(d)),f=u+zt(p,o);h=ya(f,o,a)+this.trimStart(c)}else{const p=this.createVirtualModel(e,_=>_===s.startLineNumber?d:_),f=Ca(this._autoIndent,p,e.getLanguageIdAtPosition(d,1),s.startLineNumber,l,this._languageConfigurationService);if(f!==null){const _=yt(e.getLineContent(d)),v=zt(f,o);v!==zt(_,o)&&(h=ya(v,o,a)+this.trimStart(c))}}t.addEditOperation(new y(s.startLineNumber,1,s.startLineNumber,1),h+`
26
- `);const g=this.matchEnterRuleMovingDown(e,l,o,s.startLineNumber,d,h);if(g!==null)g!==0&&this.getIndentEditsOfMovingBlock(e,t,s,o,a,g);else{const p=this.createVirtualModel(e,_=>_===s.startLineNumber?d:_>=s.startLineNumber+1&&_<=s.endLineNumber+1?_-1:_,_=>_===s.startLineNumber?h:void 0),f=Ca(this._autoIndent,p,e.getLanguageIdAtPosition(d,1),s.startLineNumber+1,l,this._languageConfigurationService);if(f!==null){const _=yt(e.getLineContent(s.startLineNumber)),v=zt(f,o),C=zt(_,o);if(v!==C){const x=v-C;this.getIndentEditsOfMovingBlock(e,t,s,o,a,x)}}}}else t.addEditOperation(new y(s.startLineNumber,1,s.startLineNumber,1),h+`
27
- `)}else if(d=s.startLineNumber-1,c=e.getLineContent(d),t.addEditOperation(new y(d,1,d+1,1),null),t.addEditOperation(new y(s.endLineNumber,e.getLineMaxColumn(s.endLineNumber),s.endLineNumber,e.getLineMaxColumn(s.endLineNumber)),`
28
- `+c),this.shouldAutoIndent(e,s)){const h=this.createVirtualModel(e,g=>g===d?s.startLineNumber:g),u=this.matchEnterRule(e,l,o,s.startLineNumber,s.startLineNumber-2);if(u!==null)u!==0&&this.getIndentEditsOfMovingBlock(e,t,s,o,a,u);else{const g=Ca(this._autoIndent,h,e.getLanguageIdAtPosition(s.startLineNumber,1),d,l,this._languageConfigurationService);if(g!==null){const p=yt(e.getLineContent(s.startLineNumber)),f=zt(g,o),_=zt(p,o);if(f!==_){const v=f-_;this.getIndentEditsOfMovingBlock(e,t,s,o,a,v)}}}}}this._selectionId=t.trackSelection(s)}buildIndentConverter(e,t,i){return{shiftIndent:s=>hr.shiftIndent(s,s.length+1,e,t,i),unshiftIndent:s=>hr.unshiftIndent(s,s.length+1,e,t,i)}}parseEnterResult(e,t,i,s,o){if(o){let r=o.indentation;o.indentAction===kl.None||o.indentAction===kl.Indent?r=o.indentation+o.appendText:o.indentAction===kl.IndentOutdent?r=o.indentation:o.indentAction===kl.Outdent&&(r=t.unshiftIndent(o.indentation)+o.appendText);const a=e.getLineContent(s);if(this.trimStart(a).indexOf(this.trimStart(r))>=0){const l=yt(e.getLineContent(s));let d=yt(r);const c=Dw(e,s,this._languageConfigurationService);return c!==null&&c&2&&(d=t.unshiftIndent(d)),zt(d,i)-zt(l,i)}}return null}matchEnterRuleMovingDown(e,t,i,s,o,r){if(ba(r)>=0){const a=e.getLineMaxColumn(o),l=Bh(this._autoIndent,e,new y(o,a,o,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,l)}else{let a=s-1;for(;a>=1;){const c=e.getLineContent(a);if(ba(c)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),d=Bh(this._autoIndent,e,new y(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,d)}}matchEnterRule(e,t,i,s,o,r){let a=o;for(;a>=1;){let c;if(a===o&&r!==void 0?c=r:c=e.getLineContent(a),ba(c)>=0)break;a--}if(a<1||s>e.getLineCount())return null;const l=e.getLineMaxColumn(a),d=Bh(this._autoIndent,e,new y(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,s,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);return!(i!==e.getLanguageIdAtPosition(t.endLineNumber,1)||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,s,o,r){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),d=yt(l),c=zt(d,s)+r,h=ya(c,s,o);h!==d&&(t.addEditOperation(new y(a,1,a,d.length+1),h),a===i.endLineNumber&&i.endColumn<=d.length+1&&h===""&&(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}};yp=UM([zM(3,ct)],yp);var xp=class{static{this._COLLATOR=AS.Collator()}constructor(n,e){this.selection=n,this.descending=e,this.selectionId=null}getEditOperations(n,e){const t=jM(n,this.selection,this.descending);t&&e.addEditOperation(t.range,t.text),this.selectionId=e.trackSelection(this.selection)}computeCursorState(n,e){return e.getTrackedSelection(this.selectionId)}static canRun(n,e,t){if(n===null)return!1;const i=rI(n,e,t);if(!i)return!1;for(let s=0,o=i.before.length;s<o;s++)if(i.before[s]!==i.after[s])return!0;return!1}};function rI(n,e,t){const i=e.startLineNumber;let s=e.endLineNumber;if(e.endColumn===1&&s--,i>=s)return null;const o=[];for(let a=i;a<=s;a++)o.push(n.getLineContent(a));let r=o.slice(0);return r.sort(xp._COLLATOR.value.compare),t===!0&&(r=r.reverse()),{startLineNumber:i,endLineNumber:s,before:o,after:r}}function jM(n,e,t){const i=rI(n,e,t);return i?Ge.replace(new y(i.startLineNumber,1,i.endLineNumber,n.getLineMaxColumn(i.endLineNumber)),i.after.join(`
29
- `)):null}var aI=class extends M{constructor(n,e){super(e),this.down=n}run(n,e){if(!e.hasModel())return;const t=e.getSelections().map((o,r)=>({selection:o,index:r,ignore:!1}));t.sort((o,r)=>y.compareRangesUsingStarts(o.selection,r.selection));let i=t[0];for(let o=1;o<t.length;o++){const r=t[o];i.selection.endLineNumber===r.selection.startLineNumber&&(i.index<r.index?r.ignore=!0:(i.ignore=!0,i=r))}const s=[];for(const o of t)s.push(new oI(o.selection,this.down,o.ignore));e.pushUndoStop(),e.executeCommands(this.id,s),e.pushUndoStop()}},qM=class extends aI{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:L(1295,"Copy Line Up"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"2_line",title:m(1290,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}},$M=class extends aI{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:L(1296,"Copy Line Down"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"2_line",title:m(1291,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}},KM=class extends M{constructor(){super({id:"editor.action.duplicateSelection",label:L(1297,"Duplicate Selection"),precondition:S.writable,menuOpts:{menuId:$.MenubarSelectionMenu,group:"2_line",title:m(1292,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(n,e,t){if(!e.hasModel())return;const i=[],s=e.getSelections(),o=e.getModel();for(const r of s)if(r.isEmpty())i.push(new oI(r,!0));else{const a=new te(r.endLineNumber,r.endColumn,r.endLineNumber,r.endColumn);i.push(new oR(a,o.getValueInRange(r)))}e.pushUndoStop(),e.executeCommands(this.id,i),e.pushUndoStop()}},lI=class extends M{constructor(n,e){super(e),this.down=n}run(n,e){const t=n.get(ct),i=[],s=e.getSelections()||[],o=e.getOption(16);for(const r of s)i.push(new yp(r,this.down,o,t));e.pushUndoStop(),e.executeCommands(this.id,i),e.pushUndoStop()}},GM=class extends lI{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:L(1298,"Move Line Up"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"2_line",title:m(1293,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}},ZM=class extends lI{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:L(1299,"Move Line Down"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"2_line",title:m(1294,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}},dI=class extends M{constructor(n,e){super(e),this.descending=n}run(n,e){if(!e.hasModel())return;const t=e.getModel();let i=e.getSelections();i.length===1&&i[0].isSingleLine()&&(i=[new te(1,1,t.getLineCount(),t.getLineMaxColumn(t.getLineCount()))]);for(const o of i)if(!xp.canRun(e.getModel(),o,this.descending))return;const s=[];for(let o=0,r=i.length;o<r;o++)s[o]=new xp(i[o],this.descending);e.pushUndoStop(),e.executeCommands(this.id,s),e.pushUndoStop()}},XM=class extends dI{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:L(1300,"Sort Lines Ascending"),precondition:S.writable,canTriggerInlineEdits:!0})}},YM=class extends dI{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:L(1301,"Sort Lines Descending"),precondition:S.writable,canTriggerInlineEdits:!0})}},JM=class extends M{constructor(){super({id:"editor.action.removeDuplicateLines",label:L(1302,"Delete Duplicate Lines"),precondition:S.writable,canTriggerInlineEdits:!0})}run(n,e){if(!e.hasModel())return;const t=e.getModel();if(t.getLineCount()===1&&t.getLineMaxColumn(1)===1)return;const i=[],s=[];let o=0,r=!0,a=e.getSelections();a.length===1&&a[0].isSingleLine()&&(a=[new te(1,1,t.getLineCount(),t.getLineMaxColumn(t.getLineCount()))],r=!1);for(const l of a){const d=new Set,c=[];for(let p=l.startLineNumber;p<=l.endLineNumber;p++){const f=t.getLineContent(p);d.has(f)||(c.push(f),d.add(f))}const h=new te(l.startLineNumber,1,l.endLineNumber,t.getLineMaxColumn(l.endLineNumber)),u=l.startLineNumber-o,g=new te(u,1,u+c.length-1,c[c.length-1].length+1);i.push(Ge.replace(h,c.join(`
30
- `))),s.push(g),o+=l.endLineNumber-l.startLineNumber+1-c.length}e.pushUndoStop(),e.executeEdits(this.id,i,r?s:void 0),e.pushUndoStop()}},QM=class extends M{constructor(){super({id:"editor.action.reverseLines",label:L(1303,"Reverse lines"),precondition:S.writable,canTriggerInlineEdits:!0})}run(n,e){if(!e.hasModel())return;const t=e.getModel(),i=e.getSelections();let s=i;s.length===1&&s[0].isSingleLine()&&(s=[new te(1,1,t.getLineCount(),t.getLineMaxColumn(t.getLineCount()))]);const o=[],r=[];for(let a=0;a<s.length;a++){const l=s[a],d=i[a];let c=l.endLineNumber;l.startLineNumber<l.endLineNumber&&l.endColumn===1&&c--;let h=new y(l.startLineNumber,1,c,t.getLineMaxColumn(c));c===t.getLineCount()&&t.getLineContent(h.endLineNumber)===""&&(h=h.setEndPosition(h.endLineNumber-1,t.getLineMaxColumn(h.endLineNumber-1)));const u=[];for(let _=h.endLineNumber;_>=h.startLineNumber;_--)u.push(t.getLineContent(_));const g=Ge.replace(h,u.join(`
31
- `));o.push(g);const p=function(_){return _<=h.endLineNumber?h.endLineNumber-_+h.startLineNumber:_},f=function(_){if(_.isEmpty())return new te(p(_.positionLineNumber),_.positionColumn,p(_.positionLineNumber),_.positionColumn);{const v=p(_.selectionStartLineNumber),C=p(_.positionLineNumber),x=_.selectionStartColumn,I=_.positionColumn;return new te(v,x,C,I)}};r.push(f(d))}e.pushUndoStop(),e.executeEdits(this.id,o,r),e.pushUndoStop()}},eA=class cI extends M{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:cI.ID,label:L(1304,"Trim Trailing Whitespace"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2102),weight:100}})}run(e,t,i){let s=[];i.reason==="auto-save"&&(s=(t.getSelections()||[]).map(c=>new B(c.positionLineNumber,c.positionColumn)));const o=t.getSelection();if(o===null)return;const r=e.get(xe),a=t.getModel(),l=r.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:a?.getLanguageId(),resource:a?.uri}),d=new VM(o,s,l);t.pushUndoStop(),t.executeCommands(this.id,[d]),t.pushUndoStop()}},tA=class extends M{constructor(){super({id:"editor.action.deleteLines",label:L(1305,"Delete Line"),precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(n,e){if(!e.hasModel())return;const t=this._getLinesToRemove(e),i=e.getModel();if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return;let s=0;const o=[],r=[];for(let a=0,l=t.length;a<l;a++){const d=t[a];let c=d.startLineNumber,h=d.endLineNumber,u=1,g=i.getLineMaxColumn(h);h<i.getLineCount()?(h+=1,g=1):c>1&&(c-=1,u=i.getLineMaxColumn(c)),o.push(Ge.replace(new te(c,u,h,g),"")),r.push(new te(c-s,d.positionColumn,c-s,d.positionColumn)),s+=d.endLineNumber-d.startLineNumber+1}e.pushUndoStop(),e.executeEdits(this.id,o,r),e.revealAllCursors(!0),e.pushUndoStop()}_getLinesToRemove(n){const e=n.getSelections().map(s=>{let o=s.endLineNumber;return s.startLineNumber<s.endLineNumber&&s.endColumn===1&&(o-=1),{startLineNumber:s.startLineNumber,selectionStartColumn:s.selectionStartColumn,endLineNumber:o,positionColumn:s.positionColumn}});e.sort((s,o)=>s.startLineNumber===o.startLineNumber?s.endLineNumber-o.endLineNumber:s.startLineNumber-o.startLineNumber);const t=[];let i=e[0];for(let s=1;s<e.length;s++)i.endLineNumber+1>=e[s].startLineNumber?i.endLineNumber=e[s].endLineNumber:(t.push(i),i=e[s]);return t.push(i),t}},iA=class extends M{constructor(){super({id:"editor.action.indentLines",label:L(1306,"Indent Line"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(n,e){const t=e._getViewModel();t&&(e.pushUndoStop(),e.executeCommands(this.id,aE.indent(t.cursorConfig,e.getModel(),e.getSelections())),e.pushUndoStop())}},nA=class extends M{constructor(){super({id:"editor.action.outdentLines",label:L(1307,"Outdent Line"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(n,e){pd.Outdent.runEditorCommand(n,e,null)}},hI=class uI extends M{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:uI.ID,label:L(1308,"Insert Line Above"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,pS.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}},gI=class pI extends M{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:pI.ID,label:L(1309,"Insert Line Below"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,pS.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}},fI=class extends M{run(n,e){if(!e.hasModel())return;const t=e.getSelection(),i=this._getRangesToDelete(e),s=[];for(let a=0,l=i.length-1;a<l;a++){const d=i[a],c=i[a+1];y.intersectRanges(d,c)===null?s.push(d):i[a+1]=y.plusRange(d,c)}s.push(i[i.length-1]);const o=this._getEndCursorState(t,s),r=s.map(a=>Ge.replace(a,""));e.pushUndoStop(),e.executeEdits(this.id,r,o),e.pushUndoStop()}},sA=class extends fI{constructor(){super({id:"deleteAllLeft",label:L(1310,"Delete All Left"),precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(n,e){let t=null;const i=[];let s=0;return e.forEach(o=>{let r;if(o.endColumn===1&&s>0){const a=o.startLineNumber-s;r=new te(a,o.startColumn,a,o.startColumn)}else r=new te(o.startLineNumber,o.startColumn,o.startLineNumber,o.startColumn);s+=o.endLineNumber-o.startLineNumber,o.intersectRanges(n)?t=r:i.push(r)}),t&&i.unshift(t),i}_getRangesToDelete(n){const e=n.getSelections();if(e===null)return[];let t=e;const i=n.getModel();return i===null?[]:(t.sort(y.compareRangesUsingStarts),t=t.map(s=>{if(s.isEmpty())if(s.startColumn===1){const o=Math.max(1,s.startLineNumber-1),r=s.startLineNumber===1?1:i.getLineLength(o)+1;return new y(o,r,s.startLineNumber,1)}else return new y(s.startLineNumber,1,s.startLineNumber,s.startColumn);else return new y(s.startLineNumber,1,s.endLineNumber,s.endColumn)}),t)}},oA=class extends fI{constructor(){super({id:"deleteAllRight",label:L(1311,"Delete All Right"),precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(n,e){let t=null;const i=[];for(let s=0,o=e.length,r=0;s<o;s++){const a=e[s],l=new te(a.startLineNumber-r,a.startColumn,a.startLineNumber-r,a.startColumn);a.intersectRanges(n)?t=l:i.push(l)}return t&&i.unshift(t),i}_getRangesToDelete(n){const e=n.getModel();if(e===null)return[];const t=n.getSelections();if(t===null)return[];const i=t.map(s=>{if(s.isEmpty()){const o=e.getLineMaxColumn(s.startLineNumber);return s.startColumn===o?new y(s.startLineNumber,s.startColumn,s.startLineNumber+1,1):new y(s.startLineNumber,s.startColumn,s.startLineNumber,o)}return s});return i.sort(y.compareRangesUsingStarts),i}},rA=class extends M{constructor(){super({id:"editor.action.joinLines",label:L(1312,"Join Lines"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(n,e){const t=e.getSelections();if(t===null)return;let i=e.getSelection();if(i===null)return;t.sort(y.compareRangesUsingStarts);const s=[],o=t.reduce((h,u)=>h.isEmpty()?h.endLineNumber===u.startLineNumber?(i.equalsSelection(h)&&(i=u),u):u.startLineNumber>h.endLineNumber+1?(s.push(h),u):new te(h.startLineNumber,h.startColumn,u.endLineNumber,u.endColumn):u.startLineNumber>h.endLineNumber?(s.push(h),u):new te(h.startLineNumber,h.startColumn,u.endLineNumber,u.endColumn));s.push(o);const r=e.getModel();if(r===null)return;const a=[],l=[];let d=i,c=0;for(let h=0,u=s.length;h<u;h++){const g=s[h],p=g.startLineNumber,f=1;let _=0,v,C;const x=r.getLineLength(g.endLineNumber)-g.endColumn;if(g.isEmpty()||g.startLineNumber===g.endLineNumber){const w=g.getStartPosition();w.lineNumber<r.getLineCount()?(v=p+1,C=r.getLineMaxColumn(v)):(v=w.lineNumber,C=r.getLineMaxColumn(w.lineNumber))}else v=g.endLineNumber,C=r.getLineMaxColumn(v);let I=r.getLineContent(p);for(let w=p+1;w<=v;w++){const E=r.getLineContent(w),P=r.getLineFirstNonWhitespaceColumn(w);if(P>=1){let R=!0;I===""&&(R=!1),R&&(I.charAt(I.length-1)===" "||I.charAt(I.length-1)===" ")&&(R=!1,I=I.replace(/[\s\uFEFF\xA0]+$/g," "));const D=E.substr(P-1);I+=(R?" ":"")+D,R?_=D.length+1:_=D.length}else _=0}const b=new y(p,f,v,C);if(!b.isEmpty()){let w;g.isEmpty()?(a.push(Ge.replace(b,I)),w=new te(b.startLineNumber-c,I.length-_+1,p-c,I.length-_+1)):g.startLineNumber===g.endLineNumber?(a.push(Ge.replace(b,I)),w=new te(g.startLineNumber-c,g.startColumn,g.endLineNumber-c,g.endColumn)):(a.push(Ge.replace(b,I)),w=new te(g.startLineNumber-c,g.startColumn,g.startLineNumber-c,I.length-x)),y.intersectRanges(b,i)!==null?d=w:l.push(w)}c+=b.endLineNumber-b.startLineNumber}l.unshift(d),e.pushUndoStop(),e.executeEdits(this.id,a,l),e.pushUndoStop()}},aA=class extends M{constructor(){super({id:"editor.action.transpose",label:L(1313,"Transpose Characters around the Cursor"),precondition:S.writable,canTriggerInlineEdits:!0})}run(n,e){const t=e.getSelections();if(t===null)return;const i=e.getModel();if(i===null)return;const s=[];for(let o=0,r=t.length;o<r;o++){const a=t[o];if(!a.isEmpty())continue;const l=a.getStartPosition(),d=i.getLineMaxColumn(l.lineNumber);if(l.column>=d){if(l.lineNumber===i.getLineCount())continue;const c=new y(l.lineNumber,Math.max(1,l.column-1),l.lineNumber+1,1),h=i.getValueInRange(c).split("").reverse().join("");s.push(new vl(new te(l.lineNumber,Math.max(1,l.column-1),l.lineNumber+1,1),h))}else{const c=new y(l.lineNumber,Math.max(1,l.column-1),l.lineNumber,l.column+1),h=i.getValueInRange(c).split("").reverse().join("");s.push(new Rw(c,h,new te(l.lineNumber,l.column+1,l.lineNumber,l.column+1)))}}e.pushUndoStop(),e.executeCommands(this.id,s),e.pushUndoStop()}},xo=class extends M{run(n,e){const t=e.getSelections();if(t===null)return;const i=e.getModel();if(i===null)return;const s=e.getOption(148),o=[];for(const r of t)if(r.isEmpty()){const a=r.getStartPosition(),l=e.getConfiguredWordAtPosition(a);if(!l)continue;const d=new y(a.lineNumber,l.startColumn,a.lineNumber,l.endColumn),c=i.getValueInRange(d);o.push(Ge.replace(d,this._modifyText(c,s)))}else{const a=i.getValueInRange(r);o.push(Ge.replace(r,this._modifyText(a,s)))}e.pushUndoStop(),e.executeEdits(this.id,o),e.pushUndoStop()}},lA=class extends xo{constructor(){super({id:"editor.action.transformToUppercase",label:L(1314,"Transform to Uppercase"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(n,e){return n.toLocaleUpperCase()}},dA=class extends xo{constructor(){super({id:"editor.action.transformToLowercase",label:L(1315,"Transform to Lowercase"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(n,e){return n.toLocaleLowerCase()}},Ii=class{constructor(n,e){this._pattern=n,this._flags=e,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}},Ib=class mI extends xo{static{this.titleBoundary=new Ii("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:L(1316,"Transform to Title Case"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=mI.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,s=>s.toLocaleUpperCase()):e}},lu=class Ip extends xo{static{this.caseBoundary=new Ii("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Ii("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:L(1317,"Transform to Snake Case"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=Ip.caseBoundary.get(),s=Ip.singleLetters.get();return!i||!s?e:e.replace(i,"$1_$2").replace(s,"$1_$2$3").toLocaleLowerCase()}},du=class Nd extends xo{static{this.singleLineWordBoundary=new Ii("[_\\s-]+","gm")}static{this.multiLineWordBoundary=new Ii("[_-]+","gm")}static{this.validWordStart=new Ii("^(\\p{Lu}[^\\p{Lu}])","gmu")}constructor(){super({id:"editor.action.transformToCamelcase",label:L(1318,"Transform to Camel Case"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=/\r\n|\r|\n/.test(e)?Nd.multiLineWordBoundary.get():Nd.singleLineWordBoundary.get(),s=Nd.validWordStart.get();if(!i||!s)return e;const o=e.split(i);return o.shift()?.replace(s,r=>r.toLocaleLowerCase())+o.map(r=>r.substring(0,1).toLocaleUpperCase()+r.substring(1)).join("")}},Lb=class kd extends xo{static{this.wordBoundary=new Ii("[_ \\t-]","gm")}static{this.wordBoundaryToMaintain=new Ii("(?<=\\.)","gm")}static{this.upperCaseWordMatcher=new Ii("^\\p{Lu}+$","mu")}constructor(){super({id:"editor.action.transformToPascalcase",label:L(1319,"Transform to Pascal Case"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=kd.wordBoundary.get(),s=kd.wordBoundaryToMaintain.get(),o=kd.upperCaseWordMatcher.get();return!i||!s||!o?e:e.split(s).map(r=>r.split(i)).flat().map(r=>{const a=r.charAt(0).toLocaleUpperCase()+r.slice(1);return a.length>1&&o.test(a)?a.charAt(0)+a.slice(1).toLocaleLowerCase():a}).join("")}},Db=class Pd extends xo{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(e=>e.isSupported())}static{this.caseBoundary=new Ii("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Ii("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new Ii("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:L(1320,"Transform to Kebab Case"),precondition:S.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const i=Pd.caseBoundary.get(),s=Pd.singleLetters.get(),o=Pd.underscoreBoundary.get();return!i||!s||!o?e:e.replace(o,"$1-$3").replace(i,"$1-$2").replace(s,"$1-$2").toLocaleLowerCase()}};k(qM);k($M);k(KM);k(GM);k(ZM);k(XM);k(YM);k(JM);k(eA);k(tA);k(iA);k(nA);k(hI);k(gI);k(sA);k(oA);k(rA);k(aA);k(lA);k(dA);k(QM);lu.caseBoundary.isSupported()&&lu.singleLetters.isSupported()&&k(lu);du.singleLineWordBoundary.isSupported()&&du.multiLineWordBoundary.isSupported()&&k(du);Lb.wordBoundary.isSupported()&&k(Lb);Ib.titleBoundary.isSupported()&&k(Ib);Db.isSupported()&&k(Db);var cA=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Eb=function(n,e){return function(t,i){e(t,i,n)}};function hA(n){return n.sourceId+" @@ "+JSON.stringify({...n,modelUri:n.modelUri?.toString(),sourceId:void 0})}var Cc=class extends O{static cast(){return this}constructor(e,t,i){super(),this._key=e,this._contextKeyService=t,this._dataChannelService=i,this._isEnabledContextKeyValue=uA("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map(s=>s!==void 0)}log(e){return this._isEnabledContextKeyValue.get()?(this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(e),!0):!1}};Cc=cA([Eb(1,ve),Eb(2,_S)],Cc);function uA(n,e){return Dt(e.onDidChangeContext,()=>e.getContextKeyValue(n))}var gA=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Rb=function(n,e){return function(t,i){e(t,i,n)}},Lp=class extends O{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._loggerService=i,this._structuredLogger=this._register(this._instantiationService.createInstance(Cc.cast(),"editor.inlineSuggest.logChangeReason.commandId"));const s=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),o=Dt(this,s.onDidChangeLogLevel,()=>s.getLevel());this._register(he(r=>{HT(o.read(r),XE.Trace)&&r.store.add(this._editor.onDidChangeModelContent(a=>{this._editor.getModel()?.uri.scheme!=="output"&&s.trace("onDidChangeModelContent: "+a.detailedReasons.map(l=>l.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(he(r=>{this._editor instanceof Wm&&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)}))}))}};Lp=gA([Rb(1,ie),Rb(2,jT)],Lp);function Tb(n,e=vm){return H0(n,e)?n.charAt(0).toUpperCase()+n.slice(1):n}var pA=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},fA=function(n,e){return function(t,i){e(t,i,n)}},Nb=class{constructor(n){this._delegates=n}resolve(n){for(const e of this._delegates){const t=e.resolve(n);if(t!==void 0)return t}}},kb=class{constructor(n,e,t,i){this._model=n,this._selection=e,this._selectionIdx=t,this._overtypingCapturer=i}resolve(n){const{name:e}=n;if(e==="SELECTION"||e==="TM_SELECTED_TEXT"){let t=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!t&&this._overtypingCapturer){const s=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);s&&(t=s.value,i=s.multiline)}if(t&&i&&n.snippet){const s=this._model.getLineContent(this._selection.startLineNumber),o=yt(s,0,this._selection.startColumn-1);let r=o;n.snippet.walk(l=>l===n?!1:(l instanceof jt&&(r=yt(kn(l.value).pop())),!0));const a=Sr(r,o);t=t.replace(/(\r\n|\r|\n)(.*)/g,(l,d,c)=>`${d}${r.substr(a)}${c}`)}return t}else{if(e==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(e==="TM_CURRENT_WORD"){const t=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return t&&t.word||void 0}else{if(e==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(e==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(e==="CURSOR_INDEX")return String(this._selectionIdx);if(e==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}},Pb=class{constructor(n,e){this._labelService=n,this._model=e}resolve(n){const{name:e}=n;if(e==="TM_FILENAME")return Jo(this._model.uri.fsPath);if(e==="TM_FILENAME_BASE"){const t=Jo(this._model.uri.fsPath),i=t.lastIndexOf(".");return i<=0?t:t.slice(0,i)}else{if(e==="TM_DIRECTORY")return Uh(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(Cm(this._model.uri));if(e==="TM_DIRECTORY_BASE")return Uh(this._model.uri.fsPath)==="."?"":Jo(Uh(this._model.uri.fsPath));if(e==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(e==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}},Ob=class{constructor(n,e,t,i){this._readClipboardText=n,this._selectionIdx=e,this._selectionCount=t,this._spread=i}resolve(n){if(n.name!=="CLIPBOARD")return;const e=this._readClipboardText();if(e){if(this._spread){const t=e.split(/\r\n|\n|\r/).filter(i=>!aT(i));if(t.length===this._selectionCount)return t[this._selectionIdx]}return e}}},Sc=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),s=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(s){if(t==="LINE_COMMENT")return s.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return s.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return s.blockCommentEndToken||void 0}}};Sc=pA([fA(2,ct)],Sc);var Mb=class aa{constructor(){this._date=new Date}static{this.dayNames=[m(1456,"Sunday"),m(1457,"Monday"),m(1458,"Tuesday"),m(1459,"Wednesday"),m(1460,"Thursday"),m(1461,"Friday"),m(1462,"Saturday")]}static{this.dayNamesShort=[m(1463,"Sun"),m(1464,"Mon"),m(1465,"Tue"),m(1466,"Wed"),m(1467,"Thu"),m(1468,"Fri"),m(1469,"Sat")]}static{this.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")]}static{this.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")]}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 aa.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return aa.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return aa.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return aa.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(),s=i>0?"-":"+",o=Math.trunc(Math.abs(i/60)),r=o<10?"0"+o:o,a=Math.abs(i)-o*60,l=a<10?"0"+a:a;return s+r+":"+l}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}}},Ab=class{constructor(n){this._workspaceService=n}resolve(n){if(!this._workspaceService)return;const e=bR(this._workspaceService.getWorkspace());if(!YR(e)){if(n.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(e);if(n.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(e)}}_resolveWorkspaceName(n){if(yv(n))return Jo(n.uri.path);let e=Jo(n.configPath.path);return e.endsWith("code-workspace")&&(e=e.substr(0,e.length-uR.length-1)),e}_resoveWorkspacePath(n){if(yv(n))return Tb(n.uri.fsPath);const e=Jo(n.configPath.path);let t=n.configPath.fsPath;return t.endsWith(e)&&(t=t.substr(0,t.length-e.length-1)),t?Tb(t):"/"}},Fb=class{resolve(n){const{name:e}=n;if(e==="RANDOM")return Math.random().toString().slice(-6);if(e==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(e==="UUID")return Vm()}},mA=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_A=function(n,e){return function(t,i){e(t,i,n)}},Pi,Hb=class Ki{static{this._decor={active:se.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:se.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:se.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:se.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=Iv(t.placeholders,Ai.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 s=this._snippet.offset(i),o=this._snippet.fullLen(i),r=y.fromPositions(e.getPositionAt(this._offset+s),e.getPositionAt(this._offset+s+o)),a=i.isFinalTabstop?Ki._decor.inactiveFinal:Ki._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 o=[];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]);o.push(Ge.replace(l,c.join(t.getEOL())))}}o.length>0&&this._editor.executeEdits("snippet.placeholderTransform",o)}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 s=t.changeDecorations(o=>{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 te(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),o.changeDecorationOptions(d,l.isFinalTabstop?Ki._decor.activeFinal:Ki._decor.active),r.add(l);for(const h of this._snippet.enclosingPlaceholders(l)){const u=this._placeholderDecorations.get(h);u&&(o.changeDecorationOptions(u,h.isFinalTabstop?Ki._decor.activeFinal:Ki._decor.active),r.add(h))}}}for(const[l,d]of this._placeholderDecorations)r.has(l)||o.changeDecorationOptions(d,l.isFinalTabstop?Ki._decor.inactiveFinal:Ki._decor.inactive);return a});return i?this.move(e):s??[]}_hasPlaceholderBeenCollapsed(e){const t=this._editor.getModel();let i=e;for(;i;){if(i instanceof Ai){const s=this._placeholderDecorations.get(i),o=s?t.getDecorationRange(s):null;if((!o||o.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 s of t){if(s.isFinalTabstop)break;i||(i=[],e.set(s.index,i));const o=this._placeholderDecorations.get(s),r=this._editor.getModel().getDecorationRange(o);if(!r){e.delete(s.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 ch,!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 s of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift();console.assert(o._offset!==-1),console.assert(!o._placeholderDecorations);const r=o._snippet.placeholderInfo.last.index;for(const l of o._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=s.index+(r+1)/this._nestingLevel:l.index=s.index+l.index/this._nestingLevel;this._snippet.replace(s,o._snippet.children);const a=this._placeholderDecorations.get(s);i.removeDecoration(a),this._placeholderDecorations.delete(s);for(const l of o._snippet.placeholders){const d=o._snippet.offset(l),c=o._snippet.fullLen(l),h=y.fromPositions(t.getPositionAt(o._offset+d),t.getPositionAt(o._offset+d+c)),u=i.addDecoration(h,Ki._decor.inactive);this._placeholderDecorations.set(l,u)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=Iv(this._snippet.placeholders,Ai.compareByIndex)})}_renormalizePlaceholderIndices(){const e=this._snippet.placeholders,t=new Set;for(const o of e)o.isFinalTabstop||t.add(o.index);const i=[...t].sort((o,r)=>o-r),s=new Map;for(let o=0;o<i.length;o++)s.set(i[o],o+1);for(const o of e)o.isFinalTabstop||(o.index=s.get(o.index));this._nestingLevel=1}},Wb={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},wc=Pi=class{static adjustWhitespace(e,t,i,s,o){const r=e.getLineContent(t.lineNumber),a=yt(r,0,t.column-1);let l;return s.walk(d=>{if(!(d instanceof jt)||d.parent instanceof ch||o&&!o.has(d))return!0;const c=d.value.split(/\r\n|\r|\n/);if(i){const u=s.offset(d);if(u===0)c[0]=e.normalizeIndentation(c[0]);else{l=l??s.toString();const g=l.charCodeAt(u-1);(g===10||g===13)&&(c[0]=e.normalizeIndentation(a+c[0]))}for(let g=1;g<c.length;g++)c[g]=e.normalizeIndentation(a+c[g])}const h=c.join(e.getEOL());return h!==d.value&&(d.parent.replace(d,[new jt(h)]),l=void 0),!0}),a}static adjustSelection(e,t,i,s){if(i!==0||s!==0){const{positionLineNumber:o,positionColumn:r}=t,a=r-i,l=r+s,d=e.validateRange({startLineNumber:o,startColumn:a,endLineNumber:o,endColumn:l});t=te.createWithDirection(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,i,s,o,r,a,l,d){const c=[],h=[];if(!e.hasModel())return{edits:c,snippets:h};const u=e.getModel(),g=e.invokeWithinContext(I=>I.get(ms)),p=e.invokeWithinContext(I=>new Pb(I.get(ar),u)),f=()=>a,_=u.getValueInRange(Pi.adjustSelection(u,e.getSelection(),i,0)),v=u.getValueInRange(Pi.adjustSelection(u,e.getSelection(),0,s)),C=u.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),x=e.getSelections().map((I,b)=>({selection:I,idx:b})).sort((I,b)=>y.compareRangesUsingStarts(I.selection,b.selection));for(const{selection:I,idx:b}of x){let w=Pi.adjustSelection(u,I,i,0),E=Pi.adjustSelection(u,I,0,s);_!==u.getValueInRange(w)&&(w=I),v!==u.getValueInRange(E)&&(E=I);const P=I.setStartPosition(w.startLineNumber,w.startColumn).setEndPosition(E.endLineNumber,E.endColumn),R=new ao().parse(t,!0,o),D=P.getStartPosition(),F=Pi.adjustWhitespace(u,D,r||b>0&&C!==u.getLineFirstNonWhitespaceColumn(I.positionLineNumber),R);R.resolveVariables(new Nb([p,new Ob(f,b,x.length,e.getOption(88)==="spread"),new kb(u,I,b,l),new Sc(u,I,d),new Mb,new Ab(g),new Fb])),c[b]=Ge.replace(P,R.toString()),c[b].identifier={major:b,minor:0},c[b]._isTracked=!0,h[b]=new Hb(e,R,F)}return{edits:c,snippets:h}}static createEditsAndSnippetsFromEdits(e,t,i,s,o,r,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],d=e.getModel(),c=new ao,h=new jm,u=e.invokeWithinContext(I=>new Pb(I.get(ar),d)),g=new Mb,p=new Ab(e.invokeWithinContext(I=>I.get(ms))),f=new Fb,_=()=>o,v=e.getOption(88)==="spread",C=t.map((I,b)=>({edit:I,idx:b})).sort((I,b)=>y.compareRangesUsingStarts(I.edit.range,b.edit.range));let x=0;for(let I=0;I<C.length;I++){const{edit:{range:b,template:w,keepWhitespace:E},idx:P}=C[I];if(I>0){const X=C[I-1].edit.range,le=y.fromPositions(X.getEndPosition(),b.getStartPosition()),Pe=new jt(d.getValueInRange(le));h.appendChild(Pe),x+=Pe.value.length}const R=new Set;h.walk(X=>(X instanceof Ba&&R.add(X),!0));const D=c.parseFragment(w,h);Pi.adjustWhitespace(d,b.getStartPosition(),E!==void 0?!E:s,h,new Set(D));const F=te.fromRange(b,0),Y=new Nb([u,new Ob(_,P,C.length,v),new kb(d,F,P,r),new Sc(d,F,a),g,p,f]);h.walk(X=>(X instanceof Ba&&!R.has(X)&&X.resolve(Y),!0));const re=h.toString(),Me=re.slice(x);x=re.length;const _e=Ge.replace(b,Me);_e.identifier={major:I,minor:0},_e._isTracked=!0,l.push(_e)}return c.ensureFinalTabstop(h,i,!0),{edits:l,snippets:[new Hb(e,h,"")]}}constructor(e,t,i=Wb,s){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){Nt(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"?Pi.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Pi.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=i,this._editor.executeEdits(e??io.snippet(),t,s=>{const o=s.filter(r=>!!r.identifier);for(let r=0;r<i.length;r++)i[r].initialize(o[r].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):o.map(r=>te.fromPositions(r.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=Wb){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:s}=Pi.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,o=>{const r=o.filter(d=>!!d.identifier);for(let d=0;d<s.length;d++)s[d].initialize(r[d].textChange);const a=s[0].isTrivialSnippet,l=s.length===this._snippets.reduce((d,c)=>d+c.activePlaceholderCount,0);if(!a&&l){for(const d of this._snippets)d.merge(s);console.assert(s.length===0)}return this._snippets[0].hasPlaceholder&&!a&&l?this._move(void 0):r.map(d=>te.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 s=i.move(e);t.push(...s)}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 s=i.computePossibleSelections();if(t.size===0)for(const[o,r]of s){r.sort(y.compareRangesUsingStarts);for(const a of e)if(r[0].containsRange(a)){t.set(o,[]);break}}if(t.size===0)return!1;t.forEach((o,r)=>{o.push(...s.get(r))})}e.sort(y.compareRangesUsingStarts);for(const[i,s]of t){if(s.length!==e.length){t.delete(i);continue}s.sort(y.compareRangesUsingStarts);for(let o=0;o<s.length;o++)if(!s[o].containsRange(e[o])){t.delete(i);continue}}return t.size>0}};wc=Pi=mA([_A(3,ct)],wc);var vA=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Yl=function(n,e){return function(t,i){e(t,i,n)}},$s,Vb={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},ft=class{static{$s=this}static{this.ID="snippetController2"}static get(e){return e.getContribution($s.ID)}static{this.InSnippetMode=new oe("inSnippetMode",!1,m(1451,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new oe("hasNextTabstop",!1,m(1452,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new oe("hasPrevTabstop",!1,m(1453,"Whether there is a previous tab stop when in snippet mode"))}static{this.InSnippetChoice=new oe("inSnippetChoice",!1,m(1454,"Whether the current snippet tab stop is a choice"))}constructor(e,t,i,s,o){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=o,this._inSnippetObservable=Ne(this,!1),this._snippetListener=new A,this._modelVersionId=-1,this._inSnippet=$s.InSnippetMode.bindTo(s),this._hasNextTabstop=$s.HasNextTabstop.bindTo(s),this._hasPrevTabstop=$s.HasPrevTabstop.bindTo(s),this._inSnippetChoice=$s.InSnippetChoice.bindTo(s)}dispose(){this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>"u"?Vb:{...Vb,...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?(Se(typeof e=="string"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new wc(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()||!B.equals(this._editor.getPosition(),c))return;const{activeChoice:h}=this._session;if(!h||h.choice.options.length===0)return;const u=d.getValueInRange(h.range),g=!!h.choice.options.find(f=>f.value===u),p=[];for(let f=0;f<h.choice.options.length;f++){const _=h.choice.options[f];p.push({kind:13,label:_.value,insertText:_.value,sortText:"a".repeat(f+1),range:h.range,filterText:g?`${u}_${_.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:m(1455,"Go to next placeholder...")}})}return{suggestions:p}}},s=this._editor.getModel();let o,r=!1;const a=()=>{o?.dispose(),r=!1},l=()=>{r||(o=this._languageFeaturesService.completionProvider.register({language:s.getLanguageId(),pattern:s.uri.fsPath,scheme:s.uri.scheme,exclusive:!0},i),this._snippetListener.add(o),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(()=>{NM(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}};ft=$s=vA([Yl(1,Pt),Yl(2,Z),Yl(3,ve),Yl(4,ct)],ft);ce(ft.ID,ft,4);var yh=Mt.bindToContribution(ft.get);G(new yh({id:"jumpToNextSnippetPlaceholder",precondition:N.and(ft.InSnippetMode,ft.HasNextTabstop),handler:n=>n.next(),kbOpts:{weight:130,kbExpr:S.textInputFocus,primary:2}}));G(new yh({id:"jumpToPrevSnippetPlaceholder",precondition:N.and(ft.InSnippetMode,ft.HasPrevTabstop),handler:n=>n.prev(),kbOpts:{weight:130,kbExpr:S.textInputFocus,primary:1026}}));ni.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:N.and(ft.InSnippetMode,ft.HasPrevTabstop,ft.InSnippetChoice,S.textInputFocus),primary:1026});G(new yh({id:"leaveSnippet",precondition:ft.InSnippetMode,handler:n=>n.cancel(!0),kbOpts:{weight:130,kbExpr:S.textInputFocus,primary:9,secondary:[1033]}}));G(new yh({id:"acceptSnippet",precondition:ft.InSnippetMode,handler:n=>n.finish()}));function xh(n){return new bA(n)}var bA=class extends MR{constructor(n){super(),this._textModel=n}getOffset(n){return this._textModel.getOffsetAt(n)}getPosition(n){return this._textModel.getPositionAt(n)}},CA=[];function SA(){return CA}function Bb(n){return wA(n).map(e=>e.getEndPosition())}function wA(n){const e=LE.createSortPermutation(n,so(i=>i.range,y.compareRangesUsingStarts)),t=new wn(e.apply(n)).getNewRanges();return e.inverse().apply(t)}function yA(n,e){const t=xh(e),i=e.getValue();return n.map(s=>t.getStringReplacement(s)).map(s=>s.removeCommonSuffixPrefix(i)).map(s=>t.getTextReplacement(s))}function xA(n,e){const t=Ne("result",[]),i=[];return e.add(he(s=>{const o=n.read(s);Fi(r=>{if(o.length!==i.length){i.length=o.length;for(let a=0;a<i.length;a++)i[a]||(i[a]=Ne("item",o[a]));t.set([...i],r)}i.forEach((a,l)=>a.set(o[l],r))})})),t}var IA=class{constructor(n){this._contextKeyService=n}bind(n,e){return C0(n,this._contextKeyService,e instanceof Function?e:t=>e.read(t))}};function Ub(n,e){return new Promise(t=>{let i;const s=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(s),i&&i.dispose(),t()}))})}var _I=class Dp{static message(e){return new Dp(void 0,e)}constructor(e,t=void 0){this.error=e,this.message=t}static is(e){return e instanceof Dp}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)}},LA=class vI{static startNow(e,t,i,s=zb){return new vI(e,t,i,Date.now(),s)}constructor(e,t,i,s,o=zb){this.startValue=e,this.endValue=t,this.durationMs=i,this.startTimeMs=s,this._interpolationFunction=o,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 zb(n,e,t,i){return n===i?e+t:t*(-Math.pow(2,-10*n/i)+1)+e}function DA(n,e,t,i){return t*((n=n/i-1)*n*n+1)+e}var EA=class{constructor(n){this._value=n}getValue(n){const e=Date.now();return this._value.isFinished(e)||Ep.instance.invalidateOnNextAnimationFrame(n),this._value.getValue(e)}isFinished(n){const e=Date.now(),t=this._value.isFinished(e);return t||Ep.instance.invalidateOnNextAnimationFrame(n),t}},Ep=class bI{constructor(){this._counter=Jn(this),this._isScheduled=!1}static{this.instance=new bI}invalidateOnNextAnimationFrame(e){this._counter.read(e),this._isScheduled||(this._isScheduled=!0,tc().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()}))}_update(){this._counter.trigger(void 0)}},Xa=class{constructor(n,e){this.lineNumber=n,this.parts=e,SE(()=>$S(e,(t,i)=>t.column<=i.column))}equals(n){return this.lineNumber===n.lineNumber&&this.parts.length===n.parts.length&&this.parts.every((e,t)=>e.equals(n.parts[t]))}renderForScreenReader(n){if(this.parts.length===0)return"";const e=this.parts[this.parts.length-1],t=n.substr(0,e.column-1);return new wn([...this.parts.map(i=>new He(y.fromPositions(new B(1,i.column)),i.lines.map(s=>s.line).join(`
32
- `)))]).applyToString(t).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(n=>n.lines.length===0)}get lineCount(){return 1+this.parts.reduce((n,e)=>n+e.lines.length-1,0)}},yc=class{constructor(n,e,t,i=[]){this.column=n,this.text=e,this.preview=t,this._inlineDecorations=i,this.lines=kn(this.text).map((s,o)=>({line:s,lineDecorations:cr.filter(this._inlineDecorations,o+1,1,s.length+1)}))}equals(n){return this.column===n.column&&this.lines.length===n.lines.length&&this.lines.every((e,t)=>e.line===n.lines[t].line&&cr.equalsArr(e.lineDecorations,n.lines[t].lineDecorations))}},Rp=class{constructor(n,e,t,i=0){this.lineNumber=n,this.columnRange=e,this.text=t,this.additionalReservedLineCount=i,this.parts=[new yc(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=kn(this.text)}renderForScreenReader(n){return this.newLines.join(`
33
- `)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(n=>n.lines.length===0)}equals(n){return this.lineNumber===n.lineNumber&&this.columnRange.equals(n.columnRange)&&this.newLines.length===n.newLines.length&&this.newLines.every((e,t)=>e===n.newLines[t])&&this.additionalReservedLineCount===n.additionalReservedLineCount}};function jb(n,e){return Bi(n,e,CI)}function CI(n,e){return n===e?!0:!n||!e?!1:n instanceof Xa&&e instanceof Xa||n instanceof Rp&&e instanceof Rp?n.equals(e):!1}function us(n,e,t){const i=t?n.range.intersectRanges(t):n.range;if(!i)return n;const s=n.text.replaceAll(`\r
34
- `,`
35
- `),o=e.getValueInRange(i,1),r=Sr(o,s),a=en.ofText(o.substring(0,r)).addToPosition(n.range.getStartPosition()),l=s.substring(r),d=y.fromPositions(a,n.range.getEndPosition());return new He(d,l)}function SI(n,e){return n.text.startsWith(e.text)&&RA(n.range,e.range)}function RA(n,e){return e.getStartPosition().equals(n.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(n.getEndPosition())}function qb(n,e,t,i,s=0){let o=us(n,e);if(o.range.endLineNumber!==o.range.startLineNumber)return;const r=e.getLineContent(o.range.startLineNumber),a=yt(r).length;if(o.range.startColumn-1<=a){const g=yt(o.text).length,p=r.substring(o.range.startColumn-1,a),[f,_]=[o.range.getStartPosition(),o.range.getEndPosition()],v=f.column+p.length<=_.column?f.delta(0,p.length):_,C=y.fromPositions(v,_),x=o.text.startsWith(p)?o.text.substring(p.length):o.text.substring(g);o=new He(C,x)}const l=e.getValueInRange(o.range),d=TA(l,o.text);if(!d)return;const c=o.range.startLineNumber,h=new Array;if(t==="prefix"){const g=d.filter(p=>p.originalLength===0);if(g.length>1||g.length===1&&g[0].originalStart!==l.length)return}const u=o.text.length-s;for(const g of d){const p=o.range.startColumn+g.originalStart+g.originalLength;if(t==="subwordSmart"&&i&&i.lineNumber===o.range.startLineNumber&&p<i.column||g.originalLength>0)return;if(g.modifiedLength===0)continue;const f=g.modifiedStart+g.modifiedLength,_=Math.max(g.modifiedStart,Math.min(f,u)),v=o.text.substring(g.modifiedStart,_),C=o.text.substring(_,Math.max(g.modifiedStart,f));v.length>0&&h.push(new yc(p,v,!1)),C.length>0&&h.push(new yc(p,C,!0))}return new Xa(c,h)}var Jl=void 0;function TA(n,e){if(Jl?.originalValue===n&&Jl?.newValue===e)return Jl?.changes;{let t=Kb(n,e,!0);if(t){const i=$b(t);if(i>0){const s=Kb(n,e,!1);s&&$b(s)<i&&(t=s)}}return Jl={originalValue:n,newValue:e,changes:t},t}}function $b(n){let e=0;for(const t of n)e+=t.originalLength;return e}function Kb(n,e,t){if(n.length>5e3||e.length>5e3)return;function i(d){let c=0;for(let h=0,u=d.length;h<u;h++){const g=d.charCodeAt(h);g>c&&(c=g)}return c}const s=Math.max(i(n),i(e));function o(d){if(d<0)throw new Error("unexpected");return s+d+1}function r(d){let c=0,h=0;const u=new Int32Array(d.length);for(let g=0,p=d.length;g<p;g++)if(t&&d[g]==="("){const f=h*100+c;u[g]=o(2*f),c++}else if(t&&d[g]===")"){c=Math.max(c-1,0);const f=h*100+c;u[g]=o(2*f+1),c===0&&h++}else u[g]=d.charCodeAt(g);return u}const a=r(n),l=r(e);return new OS({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}function NA(n,e){let t,i=!1;const s=new UR(new SR(n,void 0,e.update),(o,r)=>{i||(t=e.initial instanceof Function?e.initial():e.initial,i=!0);const a=e.update(o,t,r);return t=a,a},e.changeTracker,()=>{i&&(e.disposeFinal?.(t),i=!1)},e.equalityComparer??AT,(o,r,a)=>{if(!i)throw new gt("Can only set when there is a listener! This is to prevent leaks.");Qu(r,l=>{t=o,s.setValue(o,l,a)})},Yc.ofCaller());return s}var kA=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Gb=function(n,e){return function(t,i){e(t,i,n)}},PA=class{constructor(n,e){this._baseService=n,this._intercept=e}publicLog2(n,e){this._intercept(n,e),this._baseService.publicLog2(n,e)}},Tp=class extends PA{constructor(e,t){super(e,(i,s)=>{let o=!0;s&&Np in s&&(o=!!s[Np]),o&&t.getDataChannel("editTelemetry").sendData({eventName:i,data:s??{}})})}};Tp=kA([Gb(0,Ds),Gb(1,_S)],Tp);var Np=Symbol("shouldForwardToChannel");function OA(n){return{[Np]:n}}function Zb(n){if(!n)return!1;const e=n.toLowerCase();return e==="github.copilot"||e==="github.copilot-chat"}function MA(n,e){n.publicLog2("inlineCompletion.endOfLife",e)}var AA=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function FA(n){return AA.has(n)}function HA(n){return/[a-zA-Z0-9_]/.test(n)}function WA(n){return n===" "||n===" "}function xc(n){const e=n.split(/\r\n|\r|\n/);if(e.length>1)return{kind:"multiLine",lineCount:e.length};const t=n.length===1;let i;t&&(FA(n)?i="syntactical":HA(n)?i="identifier":WA(n)&&(i="whitespace"));const s=n.match(/[ \t]+/g)||[],o=s.some(c=>c.length>1),r=s.some(c=>c.includes(" ")||c.includes(" ")),a=n.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:o,hasDuplicatedWhitespace:r}}var VA=class{constructor(n){this.edits=n}toString(){return JSON.stringify({edits:this.edits})}};function wI(n,e,t){if(n.replacements.length!==0)return new VA(n.replacements.map(i=>BA(i,e)))}function cu(n){return n.length===0?0:n.split(/\r\n|\r|\n/).length-1}function BA(n,e,t){const i=n.replaceRange,s=n.newText,o=i.length,r=s.length,a=cu(s);switch(i.isEmpty?"insert":s.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:UA(i.start,s,e),charactersInserted:r,charactersDeleted:0,linesInserted:a,linesDeleted:0};case"delete":{const l=e.getValue().substring(i.start,i.endExclusive);return{operation:"delete",properties:zA(i.start,i.endExclusive,e),charactersInserted:0,charactersDeleted:o,linesInserted:0,linesDeleted:cu(l)}}case"replace":{const l=e.getValue().substring(i.start,i.endExclusive);return{operation:"replace",properties:jA(l,s),charactersInserted:r,charactersDeleted:o,linesInserted:a,linesDeleted:cu(l)}}}}function UA(n,e,t,i){const s=xc(e),o=t.getPositionAt(n),r=t.getLineContent(o.lineNumber),a=r.length;let l;const d=r.trim().length===0,c=o.column>a,h=o.column===1;return d?l="emptyLine":c?l="endOfLine":h?l="startOfLine":l="middleOfLine",{textShape:s,locationShape:l,relativeToCursor:void 0}}function zA(n,e,t){const i=xc(t.getValue().substring(n,e)),s=t.getPositionAt(n),o=t.getPositionAt(e),r=t.getLineContent(o.lineNumber);return{textShape:i,isAtEndOfLine:o.column>r.length,deletesEntireLineContent:s.lineNumber===o.lineNumber&&s.column===1&&o.column>r.length}}function jA(n,e){const t=xc(n),i=xc(e),s=t.kind==="singleLine"&&t.isWord,o=i.kind==="singleLine"&&i.isWord;return{isWordToWordReplacement:s&&o,isAdditive:e.length>n.length,isSubtractive:e.length<n.length,isSingleLineToSingleLine:t.kind==="singleLine"&&i.kind==="singleLine",isSingleLineToMultiLine:t.kind==="singleLine"&&i.kind==="multiLine",isMultiLineToSingleLine:t.kind==="multiLine"&&i.kind==="singleLine"}}function yI(n,e,t,i){const s=us(n,t),o=n.range;if(!o||e&&!e.getStartPosition().equals(o.getStartPosition())||i.lineNumber!==s.range.startLineNumber||s.isEmpty)return!1;const r=t.getValueInRange(s.range,1),a=s.text,l=Math.max(0,i.column-s.range.startColumn);let d=a.substring(0,l),c=a.substring(l),h=r.substring(0,l),u=r.substring(l);const g=t.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=g&&(h=h.trimStart(),h.length===0&&(u=u.trimStart()),d=d.trimStart(),d.length===0&&(c=c.trimStart())),d.startsWith(h)&&!!FE(u,c)}var kp;(function(n){function e(t){return t?.command.id??void 0}n.toString=e})(kp||(kp={}));var Ih=class xI extends r0{static snapshot(e){return new xI(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 en(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}},Ic;(function(n){function e(t,i,s=!0){return!t.isInlineEdit&&!t.action?.uri&&t.action?.kind==="edit"?$A.create(t,i,t.action):KA.create(t,i,s)}n.create=e})(Ic||(Ic={}));function qA(n){const e=n?.kind==="edit"?{...n,alternativeAction:kp.toString(n.alternativeAction),target:n?.target.uri.toString()}:{...n,target:n?.target.uri.toString()};return JSON.stringify(e)}var II=class{constructor(n,e,t,i){this._data=n,this.identity=e,this.hint=t,this.originalTextRef=i}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===Yt.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 y.fromPositions(this.action.position);throw new gt("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 qA(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(n,e,t,i,s){const o=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(n,o,e,t,this.computeEditKind(i),s)}reportPartialAccept(n,e,t){this._data.reportPartialAccept(n,e,t)}reportEndOfLife(n){this._data.reportEndOfLife(n)}setEndOfLifeReason(n){this._data.setEndOfLifeReason(n)}setIsPreceeded(n){this._data.setIsPreceeded(n.partialAccepts)}setNotShownReasonIfNotSet(n){this._data.setNotShownReason(n)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(n){this._data.setRenameProcessingInfo(n)}withAction(n){return this._data.withAction(n)}addPerformanceMarker(n){this._data.addPerformanceMarker(n)}},LI=class DI{constructor(){this._onDispose=Jn(this),this.onDispose=this._onDispose,this._jumpedTo=Ne(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+DI.idCounter++}static{this.idCounter=0}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)}},EI=class Pp{static create(e){return new Pp(y.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 je(t.getOffset(this.range.getStartPosition()),t.getOffset(this.range.getEndPosition())),s=zS([i],e)[0];if(!s)return;const o=t.getRange(s);return new Pp(o,this.content,this.style)}},$A=class Od extends II{static create(e,t,i){const s=new LI,o=t.getTransformer(),r=i.insertText.replace(/\r\n|\r|\n/g,t.getEOL()),a=YA(new ei(o.getOffsetRange(i.range),r),t),l=a.removeCommonSuffixAndPrefix(t.getValue()),d=o.getTextReplacement(a),c=e.hint?EI.create(e.hint):void 0;return new Od(a,l,d,d.range,i.snippetInfo,e.additionalTextEdits,e,s,c,t)}constructor(e,t,i,s,o,r,a,l,d,c){super(a,l,d,c),this._edit=e,this._trimmedEdit=t,this._textEdit=i,this._originalRange=s,this.snippetInfo=o,this.additionalTextEdits=r,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new Nn([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(e){return new Od(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=zS([this._edit.replaceRange],e);if(i.length===0)return;const s=new ei(i[0],this._textEdit.text),o=xh(t),r=o.getTextReplacement(s);let a=this.hint;if(a&&(a=a.withEdit(e,o),!a))return;const l=s.removeCommonSuffixAndPrefix(t.getValue());return new Od(s,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)&&en.ofRange(i).isGreaterThanOrEqualTo(en.ofRange(this._originalRange))}isVisible(e,t){const i=this.getSingleTextEdit();return yI(i,this._originalRange,e,t)}computeEditKind(e){return wI(new Nn([this._edit]),e)}get editRange(){return this.getSingleTextEdit().range}},KA=class Md extends II{static create(e,t,i=!0){let s,o=[];if(e.action?.kind==="edit"){const l=i?GA(t,e.action.range,e.action.insertText):ZA(t,e.action.range,e.action.insertText),d=wn.fromStringEdit(l,t),c=l.isEmpty()?new He(new y(1,1,1,1),""):d.toReplacement(t);o=l.replacements.map(h=>{const u=y.fromPositions(t.getPositionAt(h.replaceRange.start),t.getTransformer().getPosition(h.replaceRange.endExclusive)),g=t.getValueInRange(u);return XA.create(h,g)}),s={kind:"edit",snippetInfo:e.action.snippetInfo,stringEdit:l,textReplacement:c,alternativeAction:e.action.alternativeAction,target:t}}else if(e.action?.kind==="jumpTo")s={kind:"jumpTo",position:e.action.position,offset:t.getTransformer().getOffset(e.action.position),target:t};else if(s=void 0,!e.hint)throw new gt("InlineEditItem: action is undefined and no hint is provided");const r=new LI,a=e.hint?EI.create(e.hint):void 0;return new Md(s,e,r,o,a,!1,t.getVersionId(),t)}constructor(e,t,i,s,o,r=!1,a,l){super(t,i,o,l),this._action=e,this._edits=s,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 Md(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 s=xh(i);let o=!1,r=this._inlineEditModelVersion,a;const l=Ih.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(o=t.some(u=>u.lastChangeUpdatedEdit),o&&(r=c??-1),c===null||r+20<c||(t=t.filter(u=>!u.edit.isEmpty),t.length===0))return;const h=new Nn(t.map(u=>u.edit));a={kind:"edit",textReplacement:s.getTextEdit(h).toReplacement(new _m(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:s.getPosition(h),offset:h,target:l}}else a=void 0;let d=this.hint;if(!(d&&(d=d.withEdit(e,s),!d)))return new Md(a,this._data,this.identity,t,d,o,r,l)}computeEditKind(e){const t=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(t)return wI(t,e)}};function GA(n,e,t){const i=n.getEOL(),s=n.getValueOfRange(e),o=t.replace(/\r\n|\r|\n/g,i),r=UT.getDefault().computeDiff(kn(s),kn(o),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap(d=>d.innerChanges??[]);function a(d,c){const h=en.fromPosition(c.getStartPosition());return en.ofRange(c).createRange(h.addToPosition(d))}const l=new ud(o);return new Nn(r.map(d=>{const c=a(e.getStartPosition(),d.originalRange),h=n.getTransformer().getOffsetRange(c),u=l.getValueOfRange(d.modifiedRange);return JA(new ei(h,u),n.getValueOfRange(c),r.length,n)}))}function ZA(n,e,t){return new Nn([new ei(n.getTransformer().getOffsetRange(e),t)])}var XA=class Op{static create(e,t){const i=Sr(e.newText,t),s=Fm(e.newText,t),o=e.newText.substring(i,e.newText.length-s);return new Op(e,o,i,s)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(e,t,i,s,o=!1){this._edit=e,this._trimmedNewText=t,this._prefixLength=i,this._suffixLength=s,this._lastChangeUpdatedEdit=o}applyTextModelChanges(e){const t=this._clone();return t._applyTextModelChanges(e),t}_clone(){return new Op(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(e){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new gt("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,s=e.replaceRange.endExclusive,o=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&&o.startsWith(d.newText)){i+=d.newText.length,o=o.substring(d.newText.length),s+=d.newText.length,r=!0;continue}if(c&&a&&d.replaceRange.start===i+this._prefixLength&&this._trimmedNewText.startsWith(d.newText)){s+=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<=s-this._suffixLength){s-=d.replaceRange.length,r=!0;continue}if(d.equals(e)){r=!0,i=d.replaceRange.endExclusive,o="";continue}if(!(d.replaceRange.start>s)){if(d.replaceRange.endExclusive<i){i+=d.newText.length-d.replaceRange.length,s+=d.newText.length-d.replaceRange.length;continue}return}}return this._trimmedNewText.length===0&&i+this._prefixLength===s-this._suffixLength?{edit:new ei(new je(i+this._prefixLength,i+this._prefixLength),""),editHasChanged:!0}:{edit:new ei(new je(i,s),o),editHasChanged:r}}};function YA(n,e){const t=e.getEOL();return n.replaceRange.isEmpty&&n.newText.includes(t)&&(n=RI(n,e)),n}function JA(n,e,t,i){const s=i.getEOL();if(n.newText.endsWith(s)&&e.endsWith(s)&&(n=new ei(n.replaceRange.deltaEnd(-s.length),n.newText.slice(0,-s.length))),t===1&&n.replaceRange.isEmpty&&n.newText.includes(s)){const o=i.getTransformer().getPosition(n.replaceRange.start);i.getLineLength(o.lineNumber)!==0&&(n=RI(n,i))}if(t===1){const o=Sr(e,n.newText),r=Fm(e.slice(o),n.newText.slice(o));if(o+r===e.length)return new ei(n.replaceRange.deltaStart(o).deltaEnd(-r),n.newText.substring(o,n.newText.length-r));if(o+r===n.newText.length)return new ei(n.replaceRange.deltaStart(o).deltaEnd(-r),"")}return n}function RI(n,e){if(!n.replaceRange.isEmpty)throw new gt("Unexpected original range");if(n.replaceRange.start===0)return n;const t=e.getEOL(),i=e.getTransformer().getPosition(n.replaceRange.start),s=i.column,o=i.lineNumber;return s===1&&o>1&&n.newText.endsWith(t)&&!n.newText.startsWith(t)?new ei(n.replaceRange.delta(-1),t+n.newText.slice(0,-t.length)):n}function QA(n,e){const t=new FT,i=new zT(t,d=>e.getLanguageConfiguration(d)),s=new ZE(new eF([n]),i),o=xT(s,[],void 0,!0);let r="";const a=n.getLineContent();function l(d,c){if(d.kind===2)if(l(d.openingBracket,c),c=Ar(c,d.openingBracket.length),d.child&&(l(d.child,c),c=Ar(c,d.child.length)),d.closingBracket)l(d.closingBracket,c),c=Ar(c,d.closingBracket.length);else{const h=i.getSingleLanguageBracketTokens(d.openingBracket.languageId).findClosingTokenText(d.openingBracket.bracketIds);r+=h}else if(d.kind!==3){if(d.kind===0||d.kind===1)r+=a.substring(G_(c),G_(Ar(c,d.length)));else if(d.kind===4)for(const h of d.children)l(h,c),c=Ar(c,h.length)}}return l(o,0),r}var eF=class{constructor(n){this.lines=n,this.tokenization={getLineTokens:e=>this.lines[e-1]}}getLineCount(){return this.lines.length}getLineLength(n){return this.lines[n-1].getLineContent().length}},Ye;(function(n){n.Jump="jump",n.Accept="accept",n.Inactive="inactive"})(Ye||(Ye={}));var Tr=class TI{static create(e,t=!1){return new TI(new dm(Ht(e),e),t)}constructor(e,t=!1){this.event=e,this.alternativeAction=t}},ae;(function(n){n.GhostText="ghostText",n.Custom="custom",n.SideBySide="sideBySide",n.Deletion="deletion",n.InsertionInline="insertionInline",n.InsertionMultiLine="insertionMultiLine",n.WordReplacements="wordReplacements",n.LineReplacement="lineReplacement",n.Collapsed="collapsed",n.JumpTo="jumpTo"})(ae||(ae={}));var w_=class{constructor(n,e,t,i,s,o,r,a){this.cursorColumnDistance=n,this.cursorLineDistance=e,this.lineCountOriginal=t,this.lineCountModified=i,this.characterCountOriginal=s,this.characterCountModified=o,this.disjointReplacements=r,this.sameShapeReplacements=a,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0}setLongDistanceViewData(n,e){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(e-n)}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}}},tF=class NI{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(e,t){const i=new NI;for(const s of e)i._nodes.add(s);for(const s of e){const o=t(s);if(o.length>0){const r=new Set;for(const a of o)r.add(a);i._outgoingEdges.set(s,r)}}return i}removeCycles(){const e=[],t=new Set,i=new Set,s=[],o=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),s.push({from:r,to:l})):o(l);i.delete(r)};for(const r of this._nodes)t.has(r)||o(r);for(const{from:r,to:a}of s){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 iF(n,e,t,i,s,o){const r=mE("icr"),a=new st;let l;const d={...i,requestUuid:r},c=aF(e,t),h=a0(n,_=>_.groupId),u=tF.from(n,_=>_.yieldsToGroupIds?.flatMap(v=>h.get(v)??[])??[]),{foundCycles:g}=u.removeCycles();g.length>0&&tt(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${g.map(_=>_.toString?_.toString():""+_).join(" -> ")}`));let p=0;const f=new gR(async _=>{try{if(p++,a.token.isCancellationRequested)return;const v=u.getOutgoing(_);for(const E of v){const P=await f.get(E);if(P)for(const R of P.inlineSuggestions.items){if(R.isInlineEdit||typeof R.insertText!="string"&&R.insertText!==void 0)return;if(R.insertText!==void 0){const D=new He(y.lift(R.range)??c,R.insertText);if(yI(D,void 0,t,e))return}}}let C;const x=Date.now();try{C=await _.provideInlineCompletions(t,e,d,a.token)}catch(E){tt(E);return}const I=Date.now();if(!C)return;const b=[],w=new rF(C,b,_);if(w.addRef(),kI(a.token,()=>w.removeRef(l)),a.token.isCancellationRequested)return;for(const E of C.items){const P=nF(E,w,c,t,o,d,s,{startTime:x,endTime:I});if(_I.is(P)){P.logError();continue}b.push(P)}return w}finally{p--}});return{contextWithUuid:d,get didAllProvidersReturn(){return p===0},lists:sn.fromPromisesResolveOrder(n.map(_=>f.get(_))).filter(Dn),cancelAndDispose:_=>{l===void 0&&(l=_,a.dispose(!0))}}}function kI(n,e){if(n.isCancellationRequested)return e(),O.None;{const t=n.onCancellationRequested(()=>{t.dispose(),e()});return{dispose:()=>t.dispose()}}}function nF(n,e,t,i,s,o,r,a){let l;const d=n.uri?De.revive(n.uri):void 0;if(n.jumpToPosition!==void 0)l={kind:"jumpTo",position:B.lift(n.jumpToPosition),uri:d};else if(n.insertText!==void 0){let c,h,u=n.range?y.lift(n.range):t;if(typeof n.insertText=="string"){if(c=n.insertText,s&&n.completeBracketPairs){c=Xb(c,u.getStartPosition(),i,s);const g=c.length-n.insertText.length;g!==0&&(u=new y(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn+g))}h=void 0}else if("snippet"in n.insertText){const g=n.insertText.snippet.length;if(s&&n.completeBracketPairs){n.insertText.snippet=Xb(n.insertText.snippet,u.getStartPosition(),i,s);const f=n.insertText.snippet.length-g;f!==0&&(u=new y(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn+f))}const p=new ao().parse(n.insertText.snippet);p.children.length===1&&p.children[0]instanceof jt?(c=p.children[0].value,h=void 0):(c=p.toString(),h={snippet:n.insertText.snippet,range:u})}else lm(n.insertText);l={kind:"edit",range:u,insertText:c,snippetInfo:h,uri:d,alternativeAction:void 0}}else if(l=void 0,!n.hint)return _I.message("Inline completion has no insertText, jumpToPosition nor hint.");return new sF(l,n.hint,n.additionalTextEdits||SA(),n,e,o,n.isInlineEdit??!1,n.supportsRename??!1,r,a,n.correlationId)}var sF=class{get action(){return this._action}constructor(n,e,t,i,s,o,r,a,l,d,c){this._action=n,this.hint=e,this.additionalTextEdits=t,this.sourceInlineCompletion=i,this.source=s,this.context=o,this.isInlineEdit=r,this.supportsRename=a,this._requestInfo=l,this._providerRequestInfo=d,this._correlationId=c,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 oF,this._viewData={editorType:l.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(n,e,t,i,s,o){if(this.updateShownDuration(t),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=s,this._viewData.viewKind=t,this._viewData.renderData=i,this._timeUntilShown=o-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;const r=new RT(i.lineCountModified,i.lineCountOriginal,i.characterCountModified,i.characterCountOriginal);this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,e,r),this.sourceInlineCompletion.shownCommand&&await n.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(n,e,t){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=t.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*t.ratio,1),this._partiallyAcceptedSinceOriginal.count+=t.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,n,e)}reportEndOfLife(n){if(!this._didReportEndOfLife&&(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),n||(n=this._lastSetEndOfLifeReason??{kind:is.Ignored,userTypingDisagreed:!1,supersededBy:void 0}),n.kind===is.Rejected&&!this._didShow&&(n={kind:is.Ignored,userTypingDisagreed:!1,supersededBy:void 0}),n.kind===is.Rejected&&this.source.provider.handleRejection&&this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion),this.source.provider.handleEndOfLifetime)){const e={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(t=>t.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,n,e)}}setIsPreceeded(n){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=n}setNotShownReason(n){this._notShownReason??=n}setEndOfLifeReason(n){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=n}updateShownDuration(n){const e=Date.now();this._showStartTime||(this._showStartTime=e);const t=n===ae.Collapsed;!t&&this._showUncollapsedStartTime===void 0&&(this._showUncollapsedStartTime=e),t&&this._showUncollapsedStartTime!==void 0&&(this._showUncollapsedDuration+=e-this._showUncollapsedStartTime)}reportInlineEditHidden(){if(this._showStartTime===void 0)return;const n=Date.now();this._shownDuration+=n-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime!==void 0&&(this._showUncollapsedDuration+=n-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0)}setRenameProcessingInfo(n){if(this._renameInfo)throw new gt("Rename info has already been set.");this._renameInfo=n}withAction(n){return this._action=n,this}addPerformanceMarker(n){this.performance.mark(n)}},oF=class{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(n){this.markers.push({name:n,timeStamp:Date.now()})}toString(){const n=[];for(let e=1;e<this.markers.length;e++){const t=this.markers[e].timeStamp-this.markers[e-1].timeStamp;n.push({[this.markers[e].name]:t})}return JSON.stringify(n)}},ut;(function(n){n.TextEditor="textEditor",n.DiffEditor="diffEditor",n.Notebook="notebook"})(ut||(ut={}));var rF=class{constructor(n,e,t){this.inlineSuggestions=n,this.inlineSuggestionsData=e,this.provider=t,this.refCount=0}addRef(){this.refCount++}removeRef(n={kind:"other"}){if(this.refCount--,this.refCount===0){for(const e of this.inlineSuggestionsData)e.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,n)}else this.refCount<0&&we(new gt(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}};function aF(n,e){const t=e.getWordAtPosition(n),i=e.getLineMaxColumn(n.lineNumber);return t?new y(n.lineNumber,t.startColumn,n.lineNumber,i):y.fromPositions(n,n.with(void 0,i))}function Xb(n,e,t,i){const s=t.getLineContent(e.lineNumber),o=ei.replace(new je(e.column-1,s.length),n),r=t.tokenization.tokenizeLinesAt(e.lineNumber,[o.replace(s)])?.[0].sliceZeroCopy(o.getRangeAfterReplace());return r?QA(r,i):n}var lF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ql=function(n,e){return function(t,i){e(t,i,n)}},Nr=new oe("renameInputVisible",!1,m(1440,"Whether the rename input widget is visible"));new oe("renameInputFocused",!1,m(1441,"Whether the rename input widget is focused"));var Mp=class{constructor(e,t,i,s,o,r){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=s,this._logService=r,this.allowEditorOverflow=!0,this._disposables=new A,this._visibleContextKey=Nr.bindTo(o),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new hi,this._inputWithButton=new cF,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 dF(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(U0),i=e.getColor(A0);this._domNode.style.backgroundColor=String(e.getColor(pm)??""),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(L0)??"");const s=e.getColor(eT);this._inputWithButton.domNode.style.backgroundColor=String(e.getColor(nv)??""),this._inputWithButton.input.style.backgroundColor=String(e.getColor(nv)??""),this._inputWithButton.domNode.style.borderWidth=s?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=s?"solid":"none",this._inputWithButton.domNode.style.borderColor=s?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;Se(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=cl(this.getDomNode().ownerDocument.body),t=kt(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const s=this._editor.getOption(75),{totalHeight:o}=Ap.getLayoutInfo({lineHeight:s}),r=this._nPxAvailableBelow>o*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;Se(this._renameCandidateListView),Se(this._nPxAvailableAbove!==void 0),Se(this._nPxAvailableBelow!==void 0);const t=zo(this._inputWithButton.domNode),i=zo(this._label);let s;e===2?s=this._nPxAvailableBelow:s=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:s-i-t,width:vi(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,s,o){const{start:r,end:a}=this._getSelection(e,t);this._renameCts=o;const l=new A;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,s===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=s,this._requestRenameCandidates(t,!1),l.add(de(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(t,!0))),l.add(de(this._inputWithButton.button,Ae.KEY_DOWN,c=>{const h=new wm(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 B(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,o.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 im;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"),Se(this._renameCandidateListView!==void 0);const h=this._renameCandidateListView.nCandidates;let u,g;const p=this._renameCandidateListView.focusedCandidate;if(p!==void 0?(this._trace("using new name from renameSuggestion"),u=p,g={k:"renameSuggestion"}):(this._trace("using new name from inputField"),u=this._inputWithButton.input.value,g=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),u===t||u.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:u,wantsPreview:i&&c,stats:{source:g,nRenameSuggestions:h,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},l.add(o.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),Se(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new st;const i=t?Gu.Invoke:Gu.Automatic,s=this._requestRenameCandidatesOnce(i,this._renameCandidateProvidersCts.token);if(s.length===0){this._inputWithButton.setSparkleButton();return}t||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(s,e,this._renameCts.token)}}_getSelection(e,t){Se(this._editor.hasModel());const i=this._editor.getSelection();let s=0,o=t.length;return!y.isEmpty(i)&&!y.spansMultipleLines(i)&&y.containsRange(e,i)&&(s=Math.max(0,i.startColumn-e.startColumn),o=Math.min(e.endColumn,i.endColumn)-e.startColumn),{start:s,end:o}}_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 s=(...d)=>this._trace("_updateRenameCandidates",...d);s("start");const o=await rr(Promise.allSettled(e),i);if(this._inputWithButton.setSparkleButton(),o===void 0){s("returning early - received updateRenameCandidates results - undefined");return}const r=o.flatMap(d=>d.status==="fulfilled"&&Dn(d.value)?d.value:[]);s(`received updateRenameCandidates results - total (unfiltered) ${r.length} candidates.`);const a=xR(r,d=>d.newSymbolName);s(`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(s(`valid distinct candidates - ${r.length} candidates.`),l.forEach(d=>this._candidates.add(d.newSymbolName)),l.length<1){s("returning early - no valid distinct candidates");return}s("setting candidates"),this._renameCandidateListView.setCandidates(l),s("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){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)}};Mp=lF([Ql(2,It),Ql(3,Oe),Ql(4,ve),Ql(5,Pt)],Mp);var dF=class PI{constructor(e,t){this._disposables=new A,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=PI._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(BS({listInactiveFocusForeground:Mw,listInactiveFocusBackground:US}))}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`,vs(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}=Ap.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(i=>i.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,i){const s=new class{getTemplateId(r){return"candidate"}getHeight(r){return t}},o=new class{constructor(){this.templateId="candidate"}renderTemplate(r){return new Ap(r,i)}renderElement(r,a,l){l.populate(r)}disposeTemplate(r){r.dispose()}};return new Hm("NewSymbolNameCandidates",e,s,[o],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}},cF=class{constructor(){this._buttonHoverContent="",this._disposables=new A,this._onDidInputChange=this._disposables.add(new Q),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(sT().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(de(this.input,Ae.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(de(this.input,Ae.KEY_DOWN,n=>{const e=new wm(n);(e.keyCode===15||e.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(de(this.input,Ae.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(de(this.input,Ae.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(de(this.input,Ae.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return Se(this._inputNode),this._inputNode}get button(){return Se(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=tn(V.sparkle),di(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??=tn(V.stopCircle),di(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()}},Ap=class Fp{static{this._PADDING=2}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=`${Fp._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=tn(V.sparkle),this._icon.style.display="none",i.appendChild(this._icon),this._label=document.createElement("div"),nw(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(kT.AIGenerated);this._icon.style.display=t?"inherit":"none"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+Fp._PADDING*2}}dispose(){}},hF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ws=function(n,e){return function(t,i){e(t,i,n)}},Hp,Lh=class{constructor(n,e,t){this.model=n,this.position=e,this._providerRenameIdx=0,this._providers=t.ordered(n)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(n){const e=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const i=this._providers[this._providerRenameIdx];if(!i.resolveRenameLocation)break;const s=await i.resolveRenameLocation(this.model,this.position,n);if(s){if(s.rejectReason){e.push(s.rejectReason);continue}return s}}this._providerRenameIdx=0;const t=this.model.getWordAtPosition(this.position);return t?{range:new y(this.position.lineNumber,t.startColumn,this.position.lineNumber,t.endColumn),text:t.word,rejectReason:e.length>0?e.join(`
36
- `):void 0}:{range:y.fromPositions(this.position),text:"",rejectReason:e.length>0?e.join(`
37
- `):void 0}}async provideRenameEdits(n,e){return this._provideRenameEdits(n,this._providerRenameIdx,[],e)}async _provideRenameEdits(n,e,t,i){const s=this._providers[e];if(!s)return{edits:[],rejectReason:t.join(`
38
- `)};const o=await s.provideRenameEdits(this.model,this.position,n,i);if(o){if(o.rejectReason)return this._provideRenameEdits(n,e+1,t.concat(o.rejectReason),i)}else return this._provideRenameEdits(n,e+1,t.concat(m(1429,"No result.")),i);return o}};function uF(n,e){return n.ordered(e).length>0}async function gF(n,e,t,i,s){return new Lh(e,t,n).provideRenameEdits(i,s??ue.None)}async function pF(n,e,t,i){const s=new Lh(e,t,n),o=await s.resolveRenameLocation(ue.None);return o?.rejectReason?{edits:[],rejectReason:o.rejectReason}:s.provideRenameEdits(i,ue.None)}var ws=class{static{Hp=this}static{this.ID="editor.contrib.renameController"}static get(e){return e.getContribution(Hp.ID)}constructor(e,t,i,s,o,r,a,l){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=s,this._progressService=o,this._logService=r,this._configService=a,this._languageFeaturesService=l,this._disposableStore=new A,this._cts=new st,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(Mp,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 st,!this.editor.hasModel()){e("editor has no model");return}const t=this.editor.getPosition(),i=new Lh(this.editor.getModel(),t,this._languageFeaturesService.renameProvider);if(!i.hasProvider()){e("skeleton has no provider");return}const s=new no(this.editor,5,void 0,this._cts.token);let o;try{e("resolving rename location");const p=i.resolveRenameLocation(s.token);this._progressService.showWhile(p,250),o=await p,e("resolved rename location")}catch(p){p instanceof rm?e("resolve rename location cancelled",JSON.stringify(p,null," ")):(e("resolve rename location failed",p instanceof Error?p:JSON.stringify(p,null," ")),(typeof p=="string"||qd(p))&&qt.get(this.editor)?.showMessage(p||m(1430,"An unknown error occurred while resolving rename location"),t));return}finally{s.dispose()}if(!o){e("returning early - no loc");return}if(o.rejectReason){e(`returning early - rejected with reason: ${o.rejectReason}`,o.rejectReason),qt.get(this.editor)?.showMessage(o.rejectReason,t);return}if(s.token.isCancellationRequested){e("returning early - cts1 cancelled");return}const r=new no(this.editor,5,o.range,this._cts.token),a=this.editor.getModel(),l=this._languageFeaturesService.newSymbolNamesProvider.all(a),d=await Promise.all(l.map(async p=>[p,await p.supportsAutomaticNewSymbolNamesTriggerKind??!1])),c=(p,f)=>{let _=d.slice();return p===Gu.Automatic&&(_=_.filter(([v,C])=>C)),_.map(([v])=>v.provideNewSymbolNames(a,o.range,p,f))};e("creating rename input field and awaiting its result");const h=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),u=await this._renameWidget.getInput(o.range,o.text,h,l.length>0?c:void 0,r);if(e("received response from rename input field"),typeof u=="boolean"){e(`returning early - rename input field response - ${u}`),u&&this.editor.focus(),r.dispose();return}this.editor.focus(),e("requesting rename edits");const g=rr(i.provideRenameEdits(u.newName,r.token),r.token).then(async p=>{if(!p){e("returning early - no rename edits result");return}if(!this.editor.hasModel()){e("returning early - no model after rename edits are provided");return}if(p.rejectReason){e(`returning early - rejected with reason: ${p.rejectReason}`),this._notificationService.info(p.rejectReason);return}this.editor.setSelection(y.fromPositions(this.editor.getSelection().getPosition())),e("applying edits"),this._bulkEditService.apply(p,{editor:this.editor,showPreview:u.wantsPreview,label:m(1431,"Renaming '{0}' to '{1}'",o?.text,u.newName),code:"undoredo.rename",quotableLabel:m(1432,"Renaming {0} to {1}",o?.text,u.newName),respectAutoSaveConfig:!0,reason:io.rename(o?.text,u.newName)}).then(f=>{e("edits applied"),f.ariaSummary&&ci(m(1433,"Successfully renamed '{0}' to '{1}'. Summary: {2}",o.text,u.newName,f.ariaSummary))}).catch(f=>{e(`error when applying edits ${JSON.stringify(f,null," ")}`),this._notificationService.error(m(1434,"Rename failed to apply edits")),this._logService.error(f)})},p=>{e("error when providing rename edits",JSON.stringify(p,null," ")),this._notificationService.error(m(1435,"Rename failed to compute edits")),this._logService.error(p)}).finally(()=>{r.dispose()});return e("returning rename operation"),this._progressService.showWhile(g,250),g}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}};ws=Hp=hF([Ws(1,ie),Ws(2,Et),Ws(3,pl),Ws(4,lr),Ws(5,Pt),Ws(6,wR),Ws(7,Z)],ws);var fF=class extends M{constructor(){super({id:"editor.action.rename",label:L(1437,"Rename Symbol"),precondition:N.and(S.writable,S.hasRenameProvider),kbOpts:{kbExpr:S.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(n,e){const t=n.get($e),[i,s]=Array.isArray(e)&&e||[void 0,void 0];return De.isUri(i)&&B.isIPosition(s)?t.openCodeEditor({resource:i},t.getActiveCodeEditor()).then(o=>{o&&(o.setPosition(s),o.invokeWithinContext(r=>(this.reportTelemetry(r,o),this.run(r,o))))},we):super.runCommand(n,e)}run(n,e){const t=n.get(Pt),i=ws.get(e);return i?(t.trace("[RenameAction] got controller, running..."),i.run()):(t.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}};ce(ws.ID,ws,4);k(fF);var y_=Mt.bindToContribution(ws.get);G(new y_({id:"acceptRenameInput",precondition:Nr,handler:n=>n.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:N.and(S.focus,N.not("isComposing")),primary:3}}));G(new y_({id:"acceptRenameInputWithPreview",precondition:N.and(Nr,N.has("config.editor.rename.enablePreview")),handler:n=>n.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:N.and(S.focus,N.not("isComposing")),primary:2051}}));G(new y_({id:"cancelRenameInput",precondition:Nr,handler:n=>n.cancelRenameInput(),kbOpts:{weight:199,kbExpr:S.focus,primary:9,secondary:[1033]}}));fe(class extends lt{constructor(){super({id:"focusNextRenameSuggestion",title:{...L(1438,"Focus Next Rename Suggestion")},precondition:Nr,keybinding:[{primary:18,weight:199}]})}run(e){const t=e.get($e).getFocusedCodeEditor();if(!t)return;const i=ws.get(t);i&&i.focusNextRenameSuggestion()}});fe(class extends lt{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...L(1439,"Focus Previous Rename Suggestion")},precondition:Nr,keybinding:[{primary:16,weight:199}]})}run(e){const t=e.get($e).getFocusedCodeEditor();if(!t)return;const i=ws.get(t);i&&i.focusPreviousRenameSuggestion()}});Ut("_executeDocumentRenameProvider",function(n,e,t,...i){const[s]=i;Se(typeof s=="string");const{renameProvider:o}=n.get(Z);return pF(o,e,t,s)});Ut("_executePrepareRename",async function(n,e,t){const{renameProvider:i}=n.get(Z),s=await new Lh(e,t,i).resolveRenameLocation(ue.None);if(s?.rejectReason)throw new Error(s.rejectReason);return s});ln.as(Zc.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 mF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},No=function(n,e){return function(t,i){e(t,i,n)}},Sn;(function(n){n.no="no",n.yes="yes",n.maybe="maybe"})(Sn||(Sn={}));(function(n){function e(t){switch(t){case"no":return n.no;case"yes":return n.yes;case"maybe":return n.maybe;default:return n.no}}n.fromString=e})(Sn||(Sn={}));var _F=class{constructor(){}inferRename(n,e,t,i){const s=new y(e.startLineNumber,1,e.endLineNumber,n.getLineMaxColumn(e.endLineNumber)),o=e.startColumn-s.startColumn,r=s.endColumn-e.endColumn,a=n.getValueInRange(s),l=n.getValueInRange(new y(s.startLineNumber,s.startColumn,s.startLineNumber,s.startColumn+o))+t+n.getValueInRange(new y(s.endLineNumber,s.endColumn-r,s.endLineNumber,s.endColumn)),d=[],c=[];let h,u,g;const p=n.getOffsetAt(s.getStartPosition()),{changes:f}=new OS(new hv(a),new hv(l)).ComputeDiff(!0);if(f.length===0)return;const _=[];for(const x of f){if(_.length===0){_.push(x);continue}const I=_[_.length-1],b=x.originalStart-(I.originalStart+I.originalLength);if(b>0){const w=p+I.originalStart+I.originalLength,E=n.getPositionAt(w),P=n.getWordAtPosition(E);if(P){const R=n.getOffsetAt(new B(E.lineNumber,P.startColumn)),D=n.getOffsetAt(new B(E.lineNumber,P.endColumn)),F=w+b;if(R<=w&&F<=D&&R<=F&&F<=D){I.originalLength=x.originalStart+x.originalLength-I.originalStart,I.modifiedLength=x.modifiedStart+x.modifiedLength-I.modifiedStart;continue}}}_.push(x)}let v=0;for(const x of _){const I=a.substring(x.originalStart,x.originalStart+x.originalLength),b=l.substring(x.modifiedStart,x.modifiedStart+x.modifiedLength),w=p+x.originalStart,E=n.getPositionAt(w),P=w+x.originalLength,R=n.getPositionAt(P),D=y.fromPositions(E,R),F=b.length-x.originalLength;if(/\s/.test(I)){d.push(new He(D,b)),v+=F;continue}if(I.length>0){i.lastIndex=0;const X=i.exec(I);if(X===null||X.index!==0||X[0].length!==I.length){d.push(new He(D,b)),v+=F;continue}}if(/\s/.test(b)){d.push(new He(D,b)),v+=F;continue}if(b.length>0){i.lastIndex=0;const X=i.exec(b);if(X===null||X.index!==0||X[0].length!==b.length){d.push(new He(D,b)),v+=F;continue}}const Y=n.getWordAtPosition(E);if(Y===null){d.push(new He(D,b)),v+=F;continue}const re=x.originalStart+1,Me=x.originalLength===0&&x.modifiedLength>0;let _e;if(Me&&re===Y.endColumn&&Y.endColumn>Y.startColumn?_e=this.getTokenAtPosition(n,new B(E.lineNumber,Y.startColumn)):_e=this.getTokenAtPosition(n,E),Y.startColumn!==_e.range.startColumn||Y.endColumn!==_e.range.endColumn){d.push(new He(D,b)),v+=F;continue}if(_e.type===0){let X=n.getValueInRange(_e.range);if(X.length===0){d.push(new He(D,b)),v+=F;continue}if(h===void 0)h=X;else if(h!==X){d.push(new He(D,b)),v+=F;continue}const le=n.getOffsetAt(_e.range.getStartPosition())-p+v,Pe=n.getOffsetAt(_e.range.getEndPosition())-p+v;if(X=l.substring(le,Pe+F),X.length===0){d.push(new He(D,b)),v+=F;continue}if(u===void 0)u=X;else if(u!==X){d.push(new He(D,b)),v+=F;continue}g===void 0&&(g=_e.range.getStartPosition()),h!==void 0&&u!==void 0&&h.length>0&&u.length>0&&h!==u?c.push(new He(_e.range,u)):c.push(new He(D,b)),v+=F}else d.push(new He(D,b)),v+=b.length-x.originalLength}if(h===void 0||u===void 0||g===void 0||h.length===0||u.length===0||h===u)return;i.lastIndex=0;let C=i.exec(h);if(!(C===null||C.index!==0||C[0].length!==h.length)&&(i.lastIndex=0,C=i.exec(u),!(C===null||C.index!==0||C[0].length!==u.length)))return{renames:{edits:c,position:g,oldName:h,newName:u},others:{edits:d}}}getTokenAtPosition(n,e){n.tokenization.tokenizeIfCheap(e.lineNumber);const t=n.tokenization.getLineTokens(e.lineNumber),i=t.findTokenIndexAtOffset(e.column-1);return{type:t.getStandardTokenType(i),range:new y(e.lineNumber,1+t.getStartOffset(i),e.lineNumber,1+t.getEndOffset(i))}}},Wp=class OI{static create(e,t){const i=e.getFocusedCodeEditor();if(i!==null&&i.getModel()===t)return new OI(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}},vF=class{constructor(n,e,t,i,s,o,r,a,l){if(this._result=void 0,this._commandService=e,this._textModel=i,this._state=s,this._requestUuid=t,this._cancellationTokenSource=new st,a===void 0||l===void 0){this._promise=gF(n.renameProvider,i,o,r,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(i,o,l,r,a)}get requestUuid(){return this._requestUuid}isValid(n){return this._state.equals(Wp.create(n,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;const n=await this.getResult();return n===void 0||this._cancellationTokenSource.token.isCancellationRequested?0:n.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(n,e,t,i,s){try{const o=await this._commandService.executeCommand("github.copilot.nes.postRename",n.uri,e,t,i,s);if(o===void 0)return{rejectReason:"Rename failed",edits:[]};const r=[];for(const a of o)for(const l of a.changes){const d=new y(l.range.start.line+1,l.range.start.character+1,l.range.end.line+1,l.range.end.character+1),c=new _w(a.file,new He(d,l.newText??i));r.push(c)}return{edits:r}}catch{return{rejectReason:"Rename failed",edits:[]}}}},Vp=class extends O{constructor(e,t,i,s,o,r){super(),this._commandService=e,this._languageFeaturesService=t,this._languageConfigurationService=i,this._renameSymbolTrackerService=o,this._codeEditorService=r,this._renameInferenceEngine=new _F,this._renameRunnable=void 0,this._register(Re.registerCommand(Uv,async(a,l,d)=>{if(!(d===void 0||!d.isValid(this._codeEditorService)))try{const c=await d.getWorkspaceEdit();if(c===void 0)return;s.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||!uF(this._languageFeaturesService.renameProvider,e))return t;const s=Wp.create(this._codeEditorService,e);if(s===void 0)return t;const o=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:u}=l.renames,g=this._renameSymbolTrackerService.trackedWord.get();let p;g!==void 0&&g.model===e&&g.originalWord===d&&g.currentWord===c&&(p=g.currentRange);let f=!1;const _=await JD(this.checkRenamePrecondition(t,e,h,d,c,p),100,()=>{f=!0}),v=this.isRenamePossible(t,_,s,e);if(t.setRenameProcessingInfo({createdRename:v,duration:Date.now()-o,timedOut:f,droppedOtherEdits:v?l.others.edits.length:void 0,droppedRenameEdits:v?u.length-1:void 0}),!v)return t;this._renameRunnable===void 0&&(this._renameRunnable=new vF(this._languageFeaturesService,this._commandService,t.requestUuid,e,s,h,c,p,p!==void 0?d:void 0));const C=io.inlineCompletionAccept({nes:t.isInlineEdit,requestUuid:t.requestUuid,providerId:t.source.provider.providerId,languageId:e.getLanguageId(),correlationId:t.getSourceCompletion().correlationId}),x={id:Uv,title:m(1254,"Rename"),arguments:[C,this._renameRunnable]},I={label:m(1255,"Rename"),icon:V.replaceAll,command:x,count:this._renameRunnable.getCount()},b={kind:"edit",range:u[0].range,insertText:u[0].text,snippetInfo:t.snippetInfo,alternativeAction:I,uri:e.uri},w=Ih.snapshot(e);return Ic.create(t.withAction(b),w,!1)}async checkRenamePrecondition(e,t,i,s,o,r){const a={canRename:Sn.no,timedOut:!1};try{const l=await this._commandService.executeCommand("github.copilot.nes.prepareRename",t.uri,i,s,o,e.requestUuid,r);if(l===void 0)return a;if(typeof l=="string"){const d=Sn.fromString(l);return d===Sn.yes||d===Sn.maybe?{canRename:d,oldName:s,onOldState:!1}:{canRename:d,timedOut:!1}}else return l}catch{return a}}isRenamePossible(e,t,i,s){return t===void 0||t.canRename===Sn.no||!i.equals(Wp.create(this._codeEditorService,s))?!1:this._renameRunnable===void 0?!0:this._renameRunnable.requestUuid===e.requestUuid?!1:(this._renameRunnable.cancel(),this._renameRunnable=void 0,!0)}};Vp=mF([No(0,ht),No(1,Z),No(2,ct),No(3,pl),No(4,hT),No(5,$e)],Vp);var bF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ko=function(n,e){return function(t,i){e(t,i,n)}},Bp,Up=class extends O{static{Bp=this}static{this._requestId=0}constructor(e,t,i,s,o,r,a,l,d,c){super(),this._textModel=e,this._versionId=t,this._debounceValue=i,this._cursorPosition=s,this._languageConfigurationService=o,this._logService=r,this._configurationService=a,this._instantiationService=l,this._contextKeyService=d,this._textModelService=c,this._updateOperation=this._register(new Je),this._state=NA(this,{initial:()=>({inlineCompletions:un.createEmpty(),suggestWidgetInlineCompletions:un.createEmpty()}),disposeFinal:u=>{u.inlineCompletions.dispose(),u.suggestWidgetInlineCompletions.dispose()},changeTracker:vR(()=>({versionId:this._versionId})),update:(u,g,p)=>{const f=Nn.compose(p.changes.map(_=>_.change?BE(_.change.changes):Nn.empty).filter(Dn));if(f.isEmpty())return g;try{return{inlineCompletions:g.inlineCompletions.createStateWithAppliedEdit(f,this._textModel),suggestWidgetInlineCompletions:g.suggestWidgetInlineCompletions.createStateWithAppliedEdit(f,this._textModel)}}finally{g.inlineCompletions.dispose(),g.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,u=>u.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,u=>u.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=T(this,u=>{this._versionId.read(u),this._updateOperation.clear()}),this._loadingCount=Ne(this,0),this.loading=this._loadingCount.map(this,u=>u>0),this._loggingEnabled=sv("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=sv("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(Cc.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(Vp)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store);const h=jD.defaultChatAgent?.completionsEnablementSetting??void 0;h&&(this._updateCompletionsEnablement(h),this._register(this._configurationService.onDidChangeConfiguration(u=>{u.affectsConfiguration(h)&&this._updateCompletionsEnablement(h)}))),this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(e){const t=this._configurationService.getValue(e);hm(t)?this._completionsEnabled=t:this._completionsEnabled=void 0}_log(e){this._loggingEnabled.get()&&this._logService.info(hA(e)),this._structuredFetchLogger.log(e)}fetch(e,t,i,s,o,r,a){const l=this._cursorPosition.get(),d=new CF(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 u=new st,g=(async()=>{const f=new A;this._loadingCount.set(this._loadingCount.get()+1,void 0);let _=!1;const v=()=>{_||(_=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0))};f.add(new at(()=>v(),1e4)).schedule();const C=e.filter(I=>I.providerId),x=new SF(i,a,C);try{const I=this._debounceValue.get(this._textModel),b=y0(e.map(X=>X.debounceDelayMs),nT(oo))??I;if((h||o&&i.triggerKind===Yt.Automatic)&&await Ub(b,u.token),u.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==d.versionId)return x.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;const w=Bp._requestId++;(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())&&this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:w,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,P=iF(e,this._cursorPosition.get(),this._textModel,i,a,this._languageConfigurationService);kI(u.token,()=>P.cancelAndDispose({kind:"tokenCancellation"}));let R=!1,D=!1;const F=[];for await(const X of P.lists)if(X){X.addRef(),f.add(ke(()=>X.removeRef(X.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(const le of X.inlineSuggestionsData){if(D=!0,!i.includeInlineEdits&&(le.isInlineEdit||le.showInlineEditMenu)){le.setNotShownReason("notInlineEditRequested");continue}if(!i.includeInlineCompletions&&!(le.isInlineEdit||le.showInlineEditMenu)){le.setNotShownReason("notInlineCompletionRequested");continue}le.addPerformanceMarker("providerReturned");const Pe=le.action?.uri;let Ke,Ie;if(Pe&&Pe.toString()!==this._textModel.uri.toString()){const We=await this._textModelService.createModelReference(Pe);Ke=We.object.textEditorModel,Ie=We}else Ke=this._textModel,Ie=void 0;const oi=Ih.snapshot(Ke),Ct=Ic.create(le,oi);if(Ie){const We=Yo(Ct.identity.onDispose,()=>{Ie?.dispose(),We.dispose()})}le.addPerformanceMarker("itemCreated"),F.push(Ct),!Ct.isInlineEdit&&!Ct.showInlineEditMenu&&i.triggerKind===Yt.Automatic&&Ct.isVisible(this._textModel,this._cursorPosition.get())&&(R=!0)}if(R)break}F.forEach(X=>X.addPerformanceMarker("providersResolved"));const Y=await Promise.all(F.map(async X=>this._renameProcessor.proposeRenameRefactoring(this._textModel,X,i)));if(Y.forEach(X=>X.addPerformanceMarker("renameProcessed")),P.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){const X=P.didAllProvidersReturn;let le;(u.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==d.versionId)&&(le="canceled");const Pe=Y.map(Ke=>{const Ie=Ke.getSourceCompletion();if(Ie.doNotLog)return;const oi={insertText:Ie.insertText,range:Ie.range,additionalTextEdits:Ie.additionalTextEdits,uri:Ie.uri,command:Ie.command,gutterMenuLinkAction:Ie.gutterMenuLinkAction,shownCommand:Ie.shownCommand,completeBracketPairs:Ie.completeBracketPairs,isInlineEdit:Ie.isInlineEdit,showInlineEditMenu:Ie.showInlineEditMenu,showRange:Ie.showRange,warning:Ie.warning,hint:Ie.hint,supportsRename:Ie.supportsRename,correlationId:Ie.correlationId,jumpToPosition:Ie.jumpToPosition};return{...s0(oi,Ct=>y.isIRange(Ct)?y.lift(Ct).toString():B.isIPosition(Ct)?B.lift(Ct).toString():Cw.is(Ct)?{$commandId:Ct.id}:Ct),$providerId:Ke.source.provider.providerId?.toString()}}).filter(Ke=>Ke!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:w,durationMs:Date.now()-E.getTime(),error:le,result:Pe,time:Date.now(),didAllProvidersReturn:X})}if(x.setRequestUuid(P.contextWithUuid.requestUuid),D)x.setHasProducedSuggestion(),Y.length>0&&u.token.isCancellationRequested&&Y.forEach(X=>X.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"));else if(u.token.isCancellationRequested)x.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{const X=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");x.setNoSuggestionReasonIfNotSet(X?"completionsQuotaExceeded":"noSuggestion")}const re=i.earliestShownDateTime-Date.now();if(re>0&&await Ub(re,u.token),Y.forEach(X=>X.addPerformanceMarker("minShowDelayPassed")),u.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==d.versionId||r.get()){const X=u.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==d.versionId?"canceled:documentChanged":r.get()?"canceled:userJumped":"unknown";return Y.forEach(le=>le.setNotShownReasonIfNotSet(X)),!1}const Me=new Date;this._debounceValue.update(this._textModel,Me.getTime()-E.getTime());const _e=this._cursorPosition.get();this._updateOperation.clear(),Fi(X=>{const le=this._state.get();i.selectedSuggestionInfo?this._state.set({inlineCompletions:un.createEmpty(),suggestWidgetInlineCompletions:le.suggestWidgetInlineCompletions.createStateWithAppliedResults(Y,d,this._textModel,_e,s)},X):this._state.set({inlineCompletions:le.inlineCompletions.createStateWithAppliedResults(Y,d,this._textModel,_e,s),suggestWidgetInlineCompletions:un.createEmpty()},X),le.inlineCompletions.dispose(),le.suggestWidgetInlineCompletions.dispose()})}finally{f.dispose(),v(),this._sendInlineCompletionsRequestTelemetry(x)}return!0})(),p=new yF(d,u,g);return this._updateOperation.value=p,g}clear(e){if(this._store.isDisposed)return;this._updateOperation.clear();const t=this._state.get();this._state.set({inlineCompletions:un.createEmpty(),suggestWidgetInlineCompletions:un.createEmpty()},e),t.inlineCompletions.dispose(),t.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){const e=this.inlineCompletions.get(),t=this.suggestWidgetInlineCompletions.get();t&&Fi(i=>{if(!e||(t.request?.versionId??-1)>(e.request?.versionId??-1)){e?.dispose();const s=this._state.get();this._state.set({inlineCompletions:t.clone(),suggestWidgetInlineCompletions:un.createEmpty()},i),s.inlineCompletions.dispose(),s.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(i)})}seedWithCompletion(e,t){const i=this._state.get();this._state.set({inlineCompletions:new un([e],void 0),suggestWidgetInlineCompletions:un.createEmpty()},t),i.inlineCompletions.dispose(),i.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(e){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment")||e.requestUuid===void 0||e.hasProducedSuggestion||!XR(this._completionsEnabled,this._textModel.getLanguageId())||!e.providers.some(s=>Zb(s.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(s=>s.providerId?.toString()).filter(Dn).join(","),...OA(e.providers.some(s=>Zb(s.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(Tp);MA(i,t)}clearSuggestWidgetInlineCompletions(e){this._updateOperation.value?.request.context.selectedSuggestionInfo&&this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};Up=Bp=bF([ko(4,ct),ko(5,Pt),ko(6,xe),ko(7,ie),ko(8,ve),ko(9,si)],Up);var CF=class{constructor(n,e,t,i){this.position=n,this.context=e,this.versionId=t,this.providers=i}satisfies(n){return this.position.equals(n.position)&&VT(this.context.selectedSuggestionInfo,n.context.selectedSuggestionInfo,nm())&&(n.context.triggerKind===Yt.Automatic||this.context.triggerKind===Yt.Explicit)&&this.versionId===n.versionId&&wF(n.providers,this.providers)}},SF=class{constructor(n,e,t){this.context=n,this.requestInfo=e,this.providers=t,this.hasProducedSuggestion=!1}setRequestUuid(n){this.requestUuid=n}setNoSuggestionReasonIfNotSet(n){this.noSuggestionReason??=n}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}};function wF(n,e){return[...n].every(t=>e.has(t))}var yF=class{constructor(n,e,t){this.request=n,this.cancellationTokenSource=e,this.promise=t}dispose(){this.cancellationTokenSource.cancel()}},un=class la extends O{static createEmpty(){return new la([],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(s=>s.withEdit(e,t)).filter(Dn);return new la(i,this.request)}createStateWithAppliedResults(e,t,i,s,o){let r;if(o){const d=this._findById(o);if(d&&d.canBeReused(i,t.position)){r=d;const c=e.find(h=>h.hash===d.hash);c?e=IF(c,e):e=[d,...e]}}const a=r?!r.isInlineEdit:e.some(d=>!d.isInlineEdit&&d.isVisible(i,s));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:is.Ignored,userTypingDisagreed:!1,supersededBy:d.getSourceCompletion()})):h=d,a!==h.isInlineEdit&&l.push(h)}return l.sort(so(d=>d.showInlineEditMenu,aR)),l=xF(l,d=>d.semanticId),new la(l,t)}clone(){return new la(this.inlineCompletions,this.request)}};function xF(n,e){const t=new Set;return n.filter(i=>{const s=e(i);return t.has(s)?!1:(t.add(s),!0)})}function IF(n,e){const t=e.indexOf(n);return t>-1?[n,...e.slice(0,t),...e.slice(t+1)]:e}var LF=class Ks extends O{static{this.MAX_SESSION_GAP_MS=3e3}static{this.MIN_SESSION_DURATION_MS=1e3}static{this.SESSION_HISTORY_LIMIT=50}static{this.TYPING_SPEED_WINDOW_MS=3e5}static{this.MIN_CHARS_FOR_RELIABLE_SPEED=20}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>Ks.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;if(e.metadata.source==="cursor"){const t=e.metadata.kind;return t==="type"||t==="compositionType"||t==="compositionEnd"}else return!1}_finalizeCurrentSession(){this._currentSession&&(this._currentSession.endTime-this._currentSession.startTime>=Ks.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0&&(this._typingSessions.push(this._currentSession),this._typingSessions.length>Ks.SESSION_HISTORY_LIMIT&&this._typingSessions.shift()),this._currentSession=null)}_calculateTypingInterval(){if(this._currentSession){const e={...this._currentSession};if(e.endTime-e.startTime>=Ks.MIN_SESSION_DURATION_MS&&e.characterCount>0){const t=[...this._typingSessions,e];return this._calculateSpeedFromSessions(t)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(e){if(e.length===0)return{averageInterval:0,characterCount:0};const t=[...e].sort((d,c)=>c.endTime-d.endTime),i=Date.now()-Ks.TYPING_SPEED_WINDOW_MS,s=t.filter(d=>d.endTime>i),o=t.splice(s.length);let r=Jd(s.map(d=>d.characterCount));for(let d=0;d<o.length&&r<Ks.MIN_CHARS_FOR_RELIABLE_SPEED;d++)s.push(o[d]),r+=o[d].characterCount;const a=Jd(s.map(d=>d.endTime-d.startTime));if(a===0||r<=1)return{averageInterval:0,characterCount:r};const l=a/Math.max(1,r-1);return{averageInterval:Math.round(l),characterCount:r}}dispose(){this._finalizeCurrentSession(),super.dispose()}},MI;function AI(n){return MI?.(n)??null}function DF(n){MI=n}var EF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Un=function(n,e){return function(t,i){e(t,i,n)}},zp=class extends O{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(e,t,i,s,o,r,a,l,d,c,h,u,g,p,f){super(),this.textModel=e,this._selectedSuggestItem=t,this._textModelVersionId=i,this._positions=s,this._debounceValue=o,this._enabled=r,this._editor=a,this._instantiationService=l,this._commandService=d,this._languageConfigurationService=c,this._accessibilityService=h,this._languageFeaturesService=u,this._codeEditorService=g,this._inlineCompletionsService=p,this._isActive=Ne(this,!1),this._onlyRequestInlineEditsSignal=Jn(this),this._forceUpdateExplicitlySignal=Jn(this),this._noDelaySignal=Jn(this),this._fetchSpecificProviderSignal=Jn(this),this._selectedInlineCompletionId=Ne(this,void 0),this.primaryPosition=T(this,b=>this._positions.read(b)[0]??new B(1,1)),this.allPositions=T(this,b=>this._positions.read(b)),this.sku=Ne(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=T(this,b=>{const w=this.state.read(b);return!w||!w.inlineSuggestion?!1:FI(this._editor,w.inlineSuggestion,b)}),this._onDidAccept=this._register(new Q),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=Sv({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(b,w)=>(w.didUndo=b.didChange(this._textModelVersionId)&&!!b.change?.isUndoing,!0)}},(b,w)=>{const E=this._textModelVersionId.read(b);return E!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===E-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&w.didUndo?(this._lastAcceptedInlineCompletionInfo=void 0,!0):!1}),this._preserveCurrentCompletionReasons=new Set([bn.Redo,bn.Undo,bn.AcceptWord]),this.dontRefetchSignal=Jn(this),this._fetchInlineCompletionsPromise=Sv({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Yt.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 E=b.change?.detailedReasons??[];w.changeReason=E.length>0?E[0].getType():"",w.textChange=!0}else b.didChange(this._forceUpdateExplicitlySignal)?(w.preserveCurrentCompletion=!0,w.inlineCompletionTriggerKind=Yt.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===Yt.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(b);const E=this._source.suggestWidgetInlineCompletions.read(void 0);let P=this._selectedSuggestItem.read(b);if(this._shouldShowOnSuggestConflict.read(void 0)&&(P=void 0),E&&!P&&this._source.seedInlineCompletionsWithSuggestWidget(),w.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(b)&&w.inlineCompletionTriggerKind!==Yt.Explicit){Fi(Pe=>{this._source.clear(Pe)});return}let R="";w.provider?R+="providerOnDidChange":w.inlineCompletionTriggerKind===Yt.Explicit&&(R+="explicit"),w.changeReason&&(R+=R.length>0?`:${w.changeReason}`:w.changeReason);const D=this._typing.getTypingInterval(),F={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:R,typingInterval:D.averageInterval,typingIntervalCharacterCount:D.characterCount,availableProviders:[],sku:this.sku.read(void 0)};let Y={triggerKind:w.inlineCompletionTriggerKind,selectedSuggestionInfo:P?.toSelectedSuggestionInfo(),includeInlineCompletions:!w.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(b),requestIssuedDateTime:F.startTime,earliestShownDateTime:F.startTime+(w.inlineCompletionTriggerKind===Yt.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:w.changeHint};Y.triggerKind===Yt.Automatic&&w.textChange&&this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId&&(Y={...Y,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit});const re=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,Me=w.preserveCurrentCompletion||re?.forwardStable?re:void 0,_e=this._jumpedToId.map(Pe=>!!Pe&&Pe===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),X=w.provider?{providers:[w.provider],label:"single:"+w.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},le=this.getAvailableProviders(X.providers);return F.availableProviders=le.map(Pe=>Pe.providerId).filter(Dn),this._source.fetch(le,X.label,Y,Me?.identity,w.shouldDebounce,_e,F)}),this._inlineSuggestionItems=Yi({owner:this},b=>{const w=this._source.inlineCompletions.read(b);if(!w)return;const E=this.primaryPosition.read(b);let P;const R=[];for(const D of w.inlineCompletions)D.isInlineEdit?P=D:D.isVisible(this.textModel,E)&&R.push(D);return R.length!==0&&(P=void 0),{inlineCompletions:R,inlineEdit:P}}),this._inlineCompletionItems=Yi({owner:this,equalsFn:fv()},b=>this._inlineSuggestionItems.read(b)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=T(this,b=>{const w=this._selectedInlineCompletionId.read(b),E=this._inlineCompletionItems.read(b),P=this._selectedInlineCompletionId===void 0?-1:E.findIndex(R=>R.semanticId===w);return P===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):P}),this.selectedInlineCompletion=T(this,b=>this._inlineCompletionItems.read(b)[this.selectedInlineCompletionIndex.read(b)]),this.activeCommands=Yi({owner:this,equalsFn:fv()},b=>this.selectedInlineCompletion.read(b)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=T(this,b=>{if(this.lastTriggerKind.read(b)===Yt.Explicit)return this._inlineCompletionItems.read(b).length}),this._hasVisiblePeekWidgets=T(this,b=>this._editorObs.openedPeekWidgets.read(b)>0),this._shouldShowOnSuggestConflict=T(this,b=>{const w=this._showOnSuggestConflict.read(b);if(w!=="never"&&this.selectedInlineCompletion.read(b)){const E=this._selectedSuggestItem.read(b);return E?w==="whenSuggestListIsIncomplete"?E.listIncomplete:!0:!1}return!1}),this.state=Yi({owner:this,equalsFn:(b,w)=>!b||!w?b===w:b.kind==="ghostText"&&w.kind==="ghostText"?jb(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 E=this._inlineSuggestionItems.read(b),P=E?.inlineEdit;if(P){if(this._hasVisiblePeekWidgets.read(b))return;const D=this.primaryPosition.map(Me=>rt.fromRangeInclusive(P.targetRange).addMargin(1,1).contains(Me.lineNumber)),F=P.action?.kind==="edit"?P.action.stringEdit:void 0,Y=F?wn.fromStringEdit(F,new _m(this.textModel)).replacements:[];let re=(E.inlineEdit?.command?.id==="vscode.open"||E.inlineEdit?.command?.id==="_workbench.open")&&E.inlineEdit?.command.arguments?.length?De.from(E.inlineEdit?.command.arguments[0]):void 0;return P.originalTextRef.targets(this.textModel)||(re=P.originalTextRef.uri),{kind:"inlineEdit",inlineSuggestion:P,edits:Y,cursorAtInlineEdit:D,nextEditUri:re}}const R=this._selectedSuggestItem.read(b);if(!this._shouldShowOnSuggestConflict.read(b)&&R){const D=us(R.getSingleTextEdit(),w),F=this._computeAugmentation(D,b);if(!this._suggestPreviewEnabled.read(b)&&!F)return;const Y=F?.edit??D,re=F?F.edit.text.length-D.text.length:0,Me=this._suggestPreviewMode.read(b),_e=this._positions.read(b),X=[Y,...hu(this.textModel,_e,Y)].map((Ke,Ie)=>({edit:Ke,ghostText:Ke?qb(Ke,w,Me,_e[Ie],re):void 0})).filter(({edit:Ke,ghostText:Ie})=>Ke!==void 0&&Ie!==void 0),le=X.map(({edit:Ke})=>Ke),Pe=X.map(({ghostText:Ke})=>Ke);return{kind:"ghostText",edits:le,primaryGhostText:Pe[0]??new Xa(Y.range.endLineNumber,[]),ghostTexts:Pe,inlineSuggestion:F?.completion,suggestItem:R}}else{if(!this._isActive.read(b))return;const D=this.selectedInlineCompletion.read(b);if(!D)return;const F=D.getSingleTextEdit(),Y=this._inlineSuggestMode.read(b),re=this._positions.read(b),Me=[F,...hu(this.textModel,re,F)].map((le,Pe)=>({edit:le,ghostText:le?qb(le,w,Y,re[Pe],0):void 0})).filter(({edit:le,ghostText:Pe})=>le!==void 0&&Pe!==void 0),_e=Me.map(({edit:le})=>le),X=Me.map(({ghostText:le})=>le);return X[0]?{kind:"ghostText",edits:_e,primaryGhostText:X[0],ghostTexts:X,inlineSuggestion:D,suggestItem:void 0}:void 0}}),this.status=T(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=T(this,b=>{const w=this.state.read(b);if(!(!w||w.kind!=="ghostText")&&!this._editorObs.inComposition.read(b))return w}),this.inlineEditState=T(this,b=>{const w=this.state.read(b);if(!(!w||w.kind!=="inlineEdit"))return w}),this.inlineEditAvailable=T(this,b=>!!this.inlineEditState.read(b)),this.warning=T(this,b=>this.inlineCompletionState.read(b)?.inlineSuggestion?.warning),this.ghostTexts=Yi({owner:this,equalsFn:jb},b=>{const w=this.inlineCompletionState.read(b);if(w)return w.ghostTexts}),this.primaryGhostText=Yi({owner:this,equalsFn:CI},b=>{const w=this.inlineCompletionState.read(b);if(w)return w?.primaryGhostText}),this.showCollapsed=T(this,b=>{const w=this.state.read(b);if(!w||w.kind!=="inlineEdit"||w.inlineSuggestion.hint||w.inlineSuggestion.action?.kind==="jumpTo")return!1;const E=w.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(b);return(this._inlineEditsShowCollapsedEnabled.read(b)||!E)&&this._jumpedToId.read(b)!==w.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(b)}),this._tabShouldIndent=T(this,b=>{if(this._inAcceptFlow.read(b))return!1;function w(P){return P.startLineNumber!==P.endLineNumber}function E(P,R){const D=P.getLineIndentColumn(R),F=P.getLineLastNonWhitespaceColumn(R);return new y(R,D,R,Math.max(F,D))}return this._editorObs.selections.read(b)?.some(P=>P.isEmpty()?this.textModel.getLineLength(P.startLineNumber)===0:w(P)||P.containsRange(E(this.textModel,P.startLineNumber)))}),this.tabShouldJumpToInlineEdit=T(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=T(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(Up,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition)),this.lastTriggerKind=this._source.inlineCompletions.map(this,b=>b?.request?.context.triggerKind),this._editorObs=Be(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 C=ft.get(this._editor);this._isInSnippetMode=C?.isInSnippetObservable??Ce(!1),f.getDefaultAccount().then(NF(b=>this.sku.set(Yb(b),void 0),this._store)),this._register(f.onDidChangeDefaultAccount(b=>this.sku.set(Yb(b),void 0))),this._typing=this._register(new LF(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing(b=>{b&&this.stop()}));{const b=this.textModel.uri.scheme===_t.vscodeNotebookCell,[w]=this._codeEditorService.listDiffEditors().filter(E=>E.getOriginalEditor().getId()===this._editor.getId()||E.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!w,this.editorType=b?ut.Notebook:this.isInDiffEditor?ut.DiffEditor:ut.TextEditor}this._register(av(this.state,b=>{b&&b.inlineSuggestion&&this._inlineCompletionsService.reportNewCompletion(b.inlineSuggestion.requestUuid)})),this._register(av(this._fetchInlineCompletionsPromise)),this._register(he(b=>{this._editorObs.versionId.read(b),this._inAcceptFlow.set(!1,void 0)})),this._register(he(b=>{this.state.map((w,E)=>!w||w.kind==="inlineEdit"&&!w.cursorAtInlineEdit.read(E)).read(b)&&this._jumpedToId.set(void 0,void 0)})),this._register(he(b=>{const w=this.state.map(E=>E?.inlineSuggestion).read(b);w&&w.addPerformanceMarker("activeSuggestion")}));const x=this.inlineEditState.map(b=>b?.inlineSuggestion.semanticId);this._register(he(b=>{x.read(b)&&(this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion})}));const I=Dt(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(e));xm(this,I,(b,w)=>{b.onDidChangeInlineCompletions&&w.add(b.onDidChangeInlineCompletions(E=>{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 P=this.state.get();P&&(P.inlineSuggestion||P.edits)&&P.inlineSuggestion?.source.provider!==b||Fi(R=>{this._fetchSpecificProviderSignal.trigger(R,{provider:b,changeHint:E??void 0}),this.trigger(R)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(e){let t=!1,i=!0;const s=this?.primaryGhostText.read(e);if(this?._selectedSuggestItem&&s&&s.parts.length>0){const{column:o,lines:r}=s.parts[0],a=r[0].line;if(o<=this.textModel.getLineIndentColumn(s.lineNumber)){let l=qu(a);l===-1&&(l=a.length-1),t=l>0;const d=this.textModel.getOptions().tabSize;i=hd.visibleColumnFromColumn(a,l+1,d)<d}}return{startsWithIndentation:t,startsWithIndentationLessThanTabSize:i}}_getReason(e){return e?.isUndoing?bn.Undo:e?.isRedoing?bn.Redo:this.isAcceptingPartially?bn.AcceptWord:bn.Other}getAvailableProviders(e){const t=this._suppressedInlineCompletionGroupIds.get(),i=e.filter(r=>!(r.groupId&&t.has(r.groupId))),s=new Set;for(const r of i)r.excludesGroupIds?.forEach(a=>s.add(a));const o=[];for(const r of i)r.groupId&&s.has(r.groupId)||o.push(r);return o}async trigger(e,t={}){Qu(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){Qu(t,i=>{if(e==="explicitCancel"){const s=this.state.get()?.inlineSuggestion;s&&s.reportEndOfLife({kind:is.Rejected})}this._isActive.set(!1,i),this._source.clear(i)})}_computeAugmentation(e,t){const i=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(t),o=s?s.inlineCompletions.filter(r=>!r.isInlineEdit):[this.selectedInlineCompletion.read(t)].filter(Dn);return O0(o,r=>{let a=r.getSingleTextEdit();return a=us(a,i,y.fromPositions(a.range.getStartPosition(),e.range.getEndPosition())),SI(a,e)?{completion:r,edit:a}: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?io.inlineCompletionPartialAccept({nes:e.isInlineEdit,requestUuid:e.requestUuid,providerId:e.source.provider.providerId,languageId:t,type:i,correlationId:e.getSourceCompletion().correlationId}):io.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 gt;let i,s=!1;const o=this.state.get();if(o?.kind==="ghostText"){if(!o||o.primaryGhostText.isEmpty()||!o.inlineSuggestion)return;i=o.inlineSuggestion}else if(o?.kind==="inlineEdit")i=o.inlineSuggestion,s=!!o.nextEditUri;else return;i.addRef();try{let r=!1;if(e.pushUndoStop(),i.originalTextRef.targets(this.textModel)){if(!s){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,tt)}else if(a.snippetInfo){const l=He.delete(a.textReplacement.range),d=i.additionalTextEdits.map(h=>new He(y.lift(h.range),h.text??"")),c=wn.fromParallelReplacementsUnsorted([l,...d]);e.edit(c,this._getMetadata(i,this.textModel.getLanguageId())),e.setPosition(a.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),ft.get(e)?.insert(a.snippetInfo.snippet,{undoStopBefore:!1})}else{const l=o.edits;let d=l;o.kind==="ghostText"&&(d=yA(l,this.textModel));const c=Bb(d).map(g=>te.fromPositions(g)),h=i.additionalTextEdits.map(g=>new He(y.lift(g.range),g.text??"")),u=wn.fromParallelReplacementsUnsorted([...l,...h]);if(e.edit(u,this._getMetadata(i,this.textModel.getLanguageId())),i.hint===void 0&&e.setSelections(o.kind==="inlineEdit"?c.slice(-1):c,"inlineCompletionAccept"),o.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){const g=u.getNewRanges(),p=this._store.add(new RF(e,g,()=>{this._store.delete(p)}))}}}}}else{const a=await this._codeEditorService.openCodeEditor({resource:i.originalTextRef.uri},this._editor);if(a){const l=AI(a)?.model.get();a.focus(),l?.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,tt),r&&this.trigger(void 0),i.reportEndOfLife({kind:is.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),s=this._languageConfigurationService.getLanguageConfiguration(i),o=new RegExp(s.wordDefinition.source,s.wordDefinition.flags.replace("g","")),r=t.match(o);let a=0;r&&r.index!==void 0?r.index===0?a=r[0].length:a=r.index:a=t.length;const l=/\s+/g.exec(t);return l&&l.index!==void 0&&l.index+l[0].length<a&&(a=l.index+l[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,s){if(e.getModel()!==this.textModel)throw new gt;const o=this.inlineCompletionState.get();if(!o||o.primaryGhostText.isEmpty()||!o.inlineSuggestion)return;const r=o.primaryGhostText,a=o.inlineSuggestion;if(a.snippetInfo){await this.accept(e);return}const l=r.parts[0],d=new B(r.lineNumber,l.column),c=l.text,h=i(d,c);if(h===c.length&&r.parts.length===1){this.accept(e);return}const u=c.substring(0,h),g=this._positions.get(),p=g[0];a.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const v=y.fromPositions(p,d),C=e.getModel().getValueInRange(v)+u,x=new He(v,C),I=[x,...hu(this.textModel,g,x)].filter(Dn),b=Bb(I).map(w=>te.fromPositions(w));e.edit(wn.fromParallelReplacementsUnsorted(I),this._getMetadata(a,t)),e.setSelections(b,"inlineCompletionPartialAccept"),e.revealPositionInCenterIfOutsideViewport(e.getPosition(),0)}finally{this._isAcceptingPartially=!1}const f=y.fromPositions(a.editRange.getStartPosition(),en.ofText(u).addToPosition(d)),_=e.getModel().getValueInRange(f,1).length;a.reportPartialAccept(_,{kind:s,acceptedLength:_},{characters:h,ratio:h/c.length,count:1})}finally{a.removeRef()}}handleSuggestAccepted(e){const t=us(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(){return{documentValue:this.textModel.getValue(),inlineCompletion:this.state.get()?.inlineSuggestion?.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{Fi(i=>{t.action?.kind==="jumpTo"&&(this.stop(void 0,i),t.reportEndOfLife({kind:is.Accepted,alternativeAction:!1})),this._jumpedToId.set(e.inlineSuggestion.semanticId,i),this.dontRefetchSignal.trigger(i);const s=e.inlineSuggestion.targetRange,o=s.getStartPosition();if(this._editor.setPosition(o,"inlineCompletions.jump"),s.isSingleLine()&&(e.inlineSuggestion.hint||e.inlineSuggestion.action?.kind==="edit"&&!e.inlineSuggestion.action.textReplacement.text.includes(`
39
- `))||e.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(o,0);else{const r=new y(s.startLineNumber-1,1,s.endLineNumber+1,1);this._editor.revealRange(r,0)}e.inlineSuggestion.identity.setJumpTo(i),this._editor.focus()})}finally{t.removeRef()}}async handleInlineSuggestionShown(e,t,i,s){await e.reportInlineEditShown(this._commandService,t,i,this.textModel,s)}transplantCompletion(e){Fi(t=>{this._source.seedWithCompletion(e,t),this._isActive.set(!0,t),this._inAcceptFlow.set(!0,t),this.dontRefetchSignal.trigger(t)})}};zp=EF([Un(7,ie),Un(8,ht),Un(9,ct),Un(10,Rs),Un(11,Z),Un(12,$e),Un(13,BT),Un(14,XT)],zp);var bn;(function(n){n[n.Undo=0]="Undo",n[n.Redo=1]="Redo",n[n.AcceptWord=2]="AcceptWord",n[n.Other=3]="Other"})(bn||(bn={}));function hu(n,e,t){if(e.length===1)return[];const i=new _m(n),s=i.getTransformer(),o=s.getOffset(e[0]),r=e.slice(1).map(h=>s.getOffset(h));t=t.removeCommonPrefixAndSuffix(i);const a=s.getStringReplacement(t),l=a.replaceRange.start-o,d=a.replaceRange.join(je.emptyAt(o)),c=i.getValueOfOffsetRange(d);return r.map(h=>{const u=h+l,g=u+a.replaceRange.length,p=new je(u,g),f=p.join(je.emptyAt(h));if(i.getValueOfOffsetRange(f)!==c)return;const _=new ei(p,a.newText);return s.getTextReplacement(_)}).filter(Dn)}var RF=class extends O{constructor(n,e,t){super(),t&&this._register({dispose:()=>t()}),this._register(Be(n).setDecorations(Ce(e.map(s=>({range:s,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));const i=new EA(LA.startNow(1,0,1e3,DA));this._register(he(s=>{const o=i.getValue(s);n.getContainerDomNode().style.setProperty("--animation-opacity",o.toString()),i.isFinished(s)&&this.dispose()}))}};function FI(n,e,t=void 0){const i=e.targetRange;Be(n).scrollTop.read(t);const s=n.getVisibleRanges();return s.length<1?!1:new y(s[0].startLineNumber,s[0].startColumn,s[s.length-1].endLineNumber,s[s.length-1].endColumn).containsRange(i)}function Yb(n){if(n?.entitlementsData?.access_type_sku&&n?.entitlementsData?.copilot_plan)return{type:n.entitlementsData.access_type_sku,plan:n.entitlementsData.copilot_plan}}var TF=class{constructor(n){this.handler=e=>this._cb?.(e),this._cb=n}dispose(){this._cb=void 0}};function NF(n,e){const t=new TF(n);return e.add(t),t.handler}var kF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Jb=function(n,e){return function(t,i){e(t,i,n)}},da,x_=class{constructor(n){this.name=n}select(n,e,t){if(t.length===0)return 0;const i=t[0].score[0];for(let s=0;s<t.length;s++){const{score:o,completion:r}=t[s];if(o[0]!==i)break;if(r.preselect)return s}return 0}},Qb=class extends x_{constructor(){super("first")}memorize(n,e,t){}toJSON(){}fromJSON(){}},PF=class extends x_{constructor(){super("recentlyUsed"),this._cache=new dl(300,.66),this._seq=0}memorize(n,e,t){const i=`${n.getLanguageId()}/${t.textLabel}`;this._cache.set(i,{touch:this._seq++,type:t.completion.kind,insertText:t.completion.insertText})}select(n,e,t){if(t.length===0)return 0;const i=n.getLineContent(e.lineNumber).substr(e.column-10,e.column-1);if(/\s$/.test(i))return super.select(n,e,t);const s=t[0].score[0];let o=-1,r=-1,a=-1;for(let l=0;l<t.length&&t[l].score[0]===s;l++){const d=`${n.getLanguageId()}/${t[l].textLabel}`,c=this._cache.peek(d);if(c&&c.touch>a&&c.type===t[l].completion.kind&&c.insertText===t[l].completion.insertText&&(a=c.touch,r=l),t[l].completion.preselect&&o===-1)return o=l}return r!==-1?r:o!==-1?o:0}toJSON(){return this._cache.toJSON()}fromJSON(n){this._cache.clear();const e=0;for(const[t,i]of n)i.touch=e,i.type=typeof i.type=="number"?i.type:Qc.fromString(i.type),this._cache.set(t,i);this._seq=this._cache.size}},OF=class extends x_{constructor(){super("recentlyUsedByPrefix"),this._trie=eR.forStrings(),this._seq=0}memorize(n,e,t){const{word:i}=n.getWordUntilPosition(e),s=`${n.getLanguageId()}/${i}`;this._trie.set(s,{type:t.completion.kind,insertText:t.completion.insertText,touch:this._seq++})}select(n,e,t){const{word:i}=n.getWordUntilPosition(e);if(!i)return super.select(n,e,t);const s=`${n.getLanguageId()}/${i}`;let o=this._trie.get(s);if(o||(o=this._trie.findSubstr(s)),o)for(let r=0;r<t.length;r++){const{kind:a,insertText:l}=t[r].completion;if(a===o.type&&l===o.insertText)return r}return super.select(n,e,t)}toJSON(){const n=[];return this._trie.forEach((e,t)=>n.push([t,e])),n.sort((e,t)=>-(e[1].touch-t[1].touch)).forEach((e,t)=>e[1].touch=t),n.slice(0,200)}fromJSON(n){if(this._trie.clear(),n.length>0){this._seq=n[0][1].touch+1;for(const[e,t]of n)t.type=typeof t.type=="number"?t.type:Qc.fromString(t.type),this._trie.set(e,t)}}},jp=class{static{da=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",OF],["recentlyUsed",PF],["first",Qb]])}static{this._storagePrefix="suggest/memories"}constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new A,this._persistSoon=new at(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===bm.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 s=da._strategyCtors.get(i)||Qb;this._strategy=new s;try{const o=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,r=this._storageService.get(`${da._storagePrefix}/${i}`,o);r&&this._strategy.fromJSON(JSON.parse(r))}catch{}}return this._strategy}_saveState(){if(this._strategy){const e=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,t=JSON.stringify(this._strategy);this._storageService.store(`${da._storagePrefix}/${this._strategy.name}`,t,e,1)}}};jp=da=kF([Jb(0,Ti),Jb(1,xe)],jp);var Dh=dn("ISuggestMemories");Wn(Dh,jp,1);var MF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},AF=function(n,e){return function(t,i){e(t,i,n)}},qp,Lc=class{static{qp=this}static{this.AtEnd=new oe("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")})}constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=qp.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(),s=this._editor.getSelection(),o=i.getWordAtPosition(s.getStartPosition());if(!o){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(o.endColumn===s.getStartPosition().column&&s.getStartPosition().lineNumber===s.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};Lc=qp=MF([AF(1,ve)],Lc);var FF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},HF=function(n,e){return function(t,i){e(t,i,n)}},ca,_r=class{static{ca=this}static{this.OtherSuggestions=new oe("hasOtherSuggestions",!1)}constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=ca.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(ca._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 s=i;for(let o=t.items.length;o>0&&(s=(s+t.items.length+(e?1:-1))%t.items.length,!(s===i||!t.items[s].completion.additionalTextEdits));o--);return s}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=ca._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};_r=ca=FF([HF(1,ve)],_r);var WF=class{constructor(n,e,t,i){this._disposables=new A,this._disposables.add(t.onDidSuggest(s=>{s.completionModel.items.length===0&&this.reset()})),this._disposables.add(t.onDidCancel(s=>{this.reset()})),this._disposables.add(e.onDidShow(()=>this._onItem(e.getFocusedItem()))),this._disposables.add(e.onDidFocus(this._onItem,this)),this._disposables.add(e.onDidHide(this.reset,this)),this._disposables.add(n.onWillType(s=>{if(this._active&&!e.isFrozen()&&t.state!==0){const o=s.charCodeAt(s.length-1);this._active.acceptCharacters.has(o)&&n.getOption(0)&&i(this._active.item)}}))}_onItem(n){if(!n||!Qt(n.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===n.item)return;const e=new Qd;for(const t of n.item.completion.commitCharacters)t.length>0&&e.add(t.charCodeAt(0));this._active={acceptCharacters:e,item:n}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}},eC=class{constructor(n,e){this.leadingLineContent=n,this.characterCountDelta=e}},HI=class Bo{constructor(e,t,i,s,o,r,a=DS.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=Bo._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=s,this._options=o,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,r==="top"?this._snippetCompareFn=Bo._compareCompletionItemsSnippetsUp:r==="bottom"&&(this._snippetCompareFn=Bo._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 s="",o="";const r=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||r.length>2e3?PS:OE;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 u=c.position.column-c.editStart.column,g=u+i-(c.position.column-this._column);if(s.length!==g&&(s=g===0?"":t.slice(-g),o=s.toLowerCase()),c.word=s,g===0)c.score=Oa.Default;else{let p=0;for(;p<u;){const f=s.charCodeAt(p);if(f===32||f===9)p+=1;else break}if(p>=g)c.score=Oa.Default;else if(typeof c.completion.filterText=="string"){const f=l(s,o,p,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!f)continue;PE(c.completion.filterText,c.textLabel)===0?c.score=f:(c.score=E0(s,o,p,c.textLabel,c.labelLow,0),c.score[0]=f[0])}else{const f=l(s,o,p,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!f)continue;c.score=f}}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?sR(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 Bo._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 Bo._compareCompletionItems(e,t)}},WI=class Gi{async provideSelectionRanges(e,t){const i=[];for(const s of t){const o=[];i.push(o);const r=new Map;await new Promise(a=>Gi._bracketsRightYield(a,0,e,s,r)),await new Promise(a=>Gi._bracketsLeftYield(a,0,e,s,r,o))}return i}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(e,t,i,s,o){const r=new Map,a=Date.now();for(;;){if(t>=Gi._maxRounds){e();break}if(!s){e();break}const l=i.bracketPairs.findNextBracket(s);if(!l){e();break}if(Date.now()-a>Gi._maxDuration){setTimeout(()=>Gi._bracketsRightYield(e,t+1,i,s,o));break}if(l.bracketInfo.isOpeningBracket){const d=l.bracketInfo.bracketText,c=r.has(d)?r.get(d):0;r.set(d,c+1)}else{const d=l.bracketInfo.getOpeningBrackets()[0].bracketText;let c=r.has(d)?r.get(d):0;if(c-=1,r.set(d,Math.max(0,c)),c<0){let h=o.get(d);h||(h=new rw,o.set(d,h)),h.push(l.range)}}s=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,s,o,r){const a=new Map,l=Date.now();for(;;){if(t>=Gi._maxRounds&&o.size===0){e();break}if(!s){e();break}const d=i.bracketPairs.findPrevBracket(s);if(!d){e();break}if(Date.now()-l>Gi._maxDuration){setTimeout(()=>Gi._bracketsLeftYield(e,t+1,i,s,o,r));break}if(d.bracketInfo.isOpeningBracket){const c=d.bracketInfo.bracketText;let h=a.has(c)?a.get(c):0;if(h-=1,a.set(c,Math.max(0,h)),h<0){const u=o.get(c);if(u){const g=u.shift();u.size===0&&o.delete(c);const p=y.fromPositions(d.range.getEndPosition(),g.getStartPosition()),f=y.fromPositions(d.range.getStartPosition(),g.getEndPosition());r.push({range:p}),r.push({range:f}),Gi._addBracketLeading(i,f,r)}}}else{const c=d.bracketInfo.getOpeningBrackets()[0].bracketText,h=a.has(c)?a.get(c):0;a.set(c,h+1)}s=d.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const s=t.startLineNumber,o=e.getLineFirstNonWhitespaceColumn(s);o!==0&&o!==t.startColumn&&(i.push({range:y.fromPositions(new B(s,o),t.getEndPosition())}),i.push({range:y.fromPositions(new B(s,1),t.getEndPosition())}));const r=s-1;if(r>0){const a=e.getLineFirstNonWhitespaceColumn(r);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(r)&&(i.push({range:y.fromPositions(new B(r,a),t.getEndPosition())}),i.push({range:y.fromPositions(new B(r,1),t.getEndPosition())}))}}},VI=class Zn{static{this.None=new class extends Zn{distance(){return 0}}}static async create(e,t){if(!t.getOption(134).localityBonus||!t.hasModel())return Zn.None;const i=t.getModel(),s=t.getPosition();if(!e.canComputeWordRanges(i.uri))return Zn.None;const[o]=await new WI().provideSelectionRanges(i,[s]);if(o.length===0)return Zn.None;const r=await e.computeWordRanges(i.uri,o[0].range);if(!r)return Zn.None;const a=i.getWordUntilPosition(s);return delete r[a.word],new class extends Zn{distance(l,d){if(!s.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(dT(h))return 2<<20;const u=Ku(h,y.fromPositions(l),y.compareRangesUsingStarts),g=u>=0?h[u]:h[Math.max(0,~u-1)];let p=o.length;for(const f of o){if(!y.containsRange(f.range,g))break;p-=1}return p}}}},VF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zn=function(n,e){return function(t,i){e(t,i,n)}},$p,Vs=class{static shouldAutoTrigger(n){if(!n.hasModel())return!1;const e=n.getModel(),t=n.getPosition();e.tokenization.tokenizeIfCheap(t.lineNumber);const i=e.getWordAtPosition(t);return!(!i||i.endColumn!==t.column&&i.startColumn+1!==t.column||!isNaN(Number(i.word)))}constructor(n,e,t){this.leadingLineContent=n.getLineContent(e.lineNumber).substr(0,e.column-1),this.leadingWord=n.getWordUntilPosition(e),this.lineNumber=e.lineNumber,this.column=e.column,this.triggerOptions=t}};function BF(n,e,t){if(!e.getContextKeyValue(be.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(be.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(71).suppressSuggestions}function UF(n,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const i=e.getContextKeyValue(be.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(71).suppressSuggestions}var Dc=$p=class{constructor(e,t,i,s,o,r,a,l,d){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=s,this._logService=o,this._contextKeyService=r,this._configurationService=a,this._languageFeaturesService=l,this._envService=d,this._toDispose=new A,this._triggerCharacterListener=new A,this._triggerQuickSuggest=new ll,this._triggerState=void 0,this._completionDisposables=new A,this._onDidCancel=new Q,this._onDidTrigger=new Q,this._onDidSuggest=new Q,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new te(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(){Nt(this._triggerCharacterListener),Nt([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 s of i.triggerCharacters||[]){let o=e.get(s);o||(o=new Set,e.set(s,o)),o.add(i)}const t=i=>{if(!UF(this._editor,this._contextKeyService,this._configurationService)||Vs.shouldAutoTrigger(this._editor))return;if(!i){const r=this._editor.getPosition();i=this._editor.getModel().getLineContent(r.lineNumber).substr(0,r.column-1)}let s="";qE(i.charCodeAt(i.length-1))?ER(i.charCodeAt(i.length-2))&&(s=i.substr(i.length-2)):s=i.charAt(i.length-1);const o=e.get(s);if(o){const r=new Map;if(this._completionModel)for(const[a,l]of this._completionModel.getItemsByProvider())o.has(a)||r.set(a,l);this.trigger({auto:!0,triggerKind:1,triggerCharacter:s,retrigger:!!this._completionModel,clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:o,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(){Zo.isAllOff(this._editor.getOption(102))||this._editor.getOption(134).snippetsPreventQuickSuggestions&&ft.get(this._editor)?.isInSnippet()||(this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!Vs.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(Zo.isAllOff(i))return;let s=!1;if(!Zo.isAllOn(i)){e.tokenization.tokenizeIfCheap(t.lineNumber);const o=e.tokenization.getLineTokens(t.lineNumber),r=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(t.column-1-1,0))),a=Zo.valueFor(i,r);if(a==="off"||a==="inline")return;a==="offWhenInlineCompletions"&&(s=this._languageFeaturesService.inlineCompletionsProvider.has(e)&&this._editor.getOption(71).enabled)}BF(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&(s?this._waitForInlineCompletionsAndTrigger(e,t):this.trigger({auto:!0}))},this._editor.getOption(103)))}_waitForInlineCompletionsAndTrigger(e,t){const i=e.getVersionId(),s=AI(this._editor),o=s?.model.get();if(!s||!o){this.trigger({auto:!0});return}if(o.state.get()?.inlineSuggestion)return;const r=new A;this._waitForInlineCompletions=r;const a=l=>{if(r.dispose(),this._waitForInlineCompletions===r&&(this._waitForInlineCompletions=void 0),this._triggerState!==void 0||!l)return;const d=this._editor.getModel(),c=this._editor.getPosition();d===e&&d.getVersionId()===i&&c?.equals(t)&&this._editor.hasWidgetFocus()&&this.trigger({auto:!0})};gs(()=>{a(!0),o.stop("automatic")},750,r),r.add(he(l=>{if(s.model.read(l)!==o){a(!1);return}const d=o.status.read(l),c=o.state.read(l);!c&&d==="loading"||a(!c)}))}_refilterCompletionItems(){Se(this._editor.hasModel()),Se(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Vs(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=new Vs(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 s={triggerKind:e.triggerKind??0};e.triggerCharacter&&(s={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new st;const o=this._editor.getOption(128);let r=1;switch(o){case"top":r=0;break;case"bottom":r=2}const{itemKind:a,showDeprecated:l}=$p.createSuggestFilter(this._editor),d=new v_(r,e.completionOptions?.kindFilter??a,e.completionOptions?.providerFilter,e.completionOptions?.providerItemsToReuse,l),c=VI.create(this._editorWorkerService,this._editor),h=b_(this._languageFeaturesService.completionProvider,t,this._editor.getPosition(),d,s,this._requestToken.token);Promise.all([h,c]).then(async([u,g])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){u.disposable.dispose();return}let p=e?.clipboardText;if(!p&&u.needsClipboard&&(p=await this._clipboardService.readText()),this._triggerState===void 0){u.disposable.dispose();return}const f=this._editor.getModel(),_=new Vs(f,this._editor.getPosition(),e),v={...DS.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new HI(u.items,this._context.column,{leadingLineContent:_.leadingLineContent,characterCountDelta:_.column-this._context.column},g,this._editor.getOption(134),this._editor.getOption(128),v,p),this._completionDisposables.add(u.disposable),this._onNewContext(_),this._reportDurationsTelemetry(u.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const C of u.items)C.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${C.provider._debugDisplayName}`,C.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 i=e.getOption(134);return i.showMethods||t.add(0),i.showFunctions||t.add(1),i.showConstructors||t.add(2),i.showFields||t.add(3),i.showVariables||t.add(4),i.showClasses||t.add(5),i.showStructs||t.add(6),i.showInterfaces||t.add(7),i.showModules||t.add(8),i.showProperties||t.add(9),i.showEvents||t.add(10),i.showOperators||t.add(11),i.showUnits||t.add(12),i.showValues||t.add(13),i.showConstants||t.add(14),i.showEnums||t.add(15),i.showEnumMembers||t.add(16),i.showKeywords||t.add(17),i.showWords||t.add(18),i.showColors||t.add(19),i.showFiles||t.add(20),i.showReferences||t.add(21),i.showColors||t.add(22),i.showFolders||t.add(23),i.showTypeParameters||t.add(24),i.showSnippets||t.add(28),i.showUsers||t.add(25),i.showIssues||t.add(26),{itemKind:t,showDeprecated:i.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(yt(e.leadingLineContent)!==yt(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(Vs.shouldAutoTrigger(this._editor)&&this._context){const t=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:t}})}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[s,o]of this._completionModel.getItemsByProvider())o.length>0&&o[0].container.incomplete?i.add(s):t.set(s,o);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 s=Vs.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(s&&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})}}}}};Dc=$p=VF([zn(1,An),zn(2,ti),zn(3,Ds),zn(4,Pt),zn(5,ve),zn(6,xe),zn(7,Z),zn(8,_R)],Dc);var zF=class BI{static{this._maxSelectionLength=51200}constructor(e,t){this._disposables=new A,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),s=i.length;let o=!1;for(let a=0;a<s;a++)if(!i[a].isEmpty()){o=!0;break}if(!o){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const r=e.getModel();for(let a=0;a<s;a++){const l=i[a];if(r.getValueLengthInRange(l)>BI._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()}},jF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},uu=function(n,e){return function(t,i){e(t,i,n)}},Kp=class{constructor(e,t,i,s,o,r){this._menuId=t,this._menuService=o,this._contextKeyService=r,this._menuDisposables=new A,this.element=z(e,W(".suggest-status-bar"));const a=(l=>i?.showIconsNoKeybindings?l instanceof ro?s.createInstance(cm,l,void 0):void 0:l instanceof ro?s.createInstance(CE,l,{useComma:!1}):void 0);this._leftActions=new fs(this.element,{actionViewItemProvider:a}),this._rightActions=new fs(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=[],s=[];for(const[o,r]of e.getActions())o==="left"?i.push(...r):s.push(...r);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(s)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};Kp=jF([uu(3,ie),uu(4,Es),uu(5,ve)],Kp);var qF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tC=function(n,e){return function(t,i){e(t,i,n)}};function I_(n){return!!n&&!!(n.completion.documentation||n.completion.detail&&n.completion.detail!==n.completion.label)}var Gp=class{constructor(e,t,i){this._editor=e,this._themeService=t,this._markdownRendererService=i,this._onDidClose=new Q,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new Q,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new A,this._renderDisposeable=new A,this._size=new Le(330,0),this.domNode=W(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=W(".body"),this._scrollbar=new bS(this._body,{alwaysConsumeMouseWheel:!0}),z(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=z(this._body,W(".header")),this._close=z(this._header,W("span"+pe.asCSSSelector(V.close))),this._close.title=m(1542,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=z(this._header,W("p.type")),this._docs=z(this._body,W("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(s=>{s.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(),s=e.get(135)||t.fontSize,o=e.get(136)||t.lineHeight,r=t.fontWeight,a=`${s}px`,l=`${o}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${o/s}`,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=Ta(this._themeService.getColorTheme().type)?2:1;return{lineHeight:e,borderWidth:t,borderHeight:t*2,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:s}=e.completion;if(t){let o="";o+=`score: ${e.score[0]}
40
- `,o+=`prefix: ${e.word??"(no prefix)"}
41
- `,o+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel}
42
- `,o+=`distance: ${e.distance} (localityBonus-setting)
43
- `,o+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"}
44
- `,o+=`commit_chars: ${e.completion.commitCharacters?.join("")}
45
- `,s=new Lt().appendCodeblock("empty",o),i=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!I_(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),i){const o=i.length>1e5?`${i.substr(0,1e5)}…`:i;this._type.textContent=o,this._type.title=o,wi(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(o))}else di(this._type),this._type.title="",Jt(this._type),this.domNode.classList.add("no-type");if(di(this._docs),typeof s=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),di(this._docs);const o=this._markdownRendererService.render(s,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(o.element),this._renderDisposeable.add(o)}this.domNode.classList.toggle("detail-and-doc",!!i&&!!s),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=o=>{o.preventDefault(),o.stopPropagation()},this._close.onclick=o=>{o.preventDefault(),o.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 Le(e,t);Le.equals(i,this._size)||(this._size=i,m0(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()}};Gp=qF([tC(1,It),tC(2,Ls)],Gp);var $F=class{constructor(n,e){this.widget=n,this._editor=e,this.allowEditorOverflow=!0,this._disposables=new A,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new e_,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(n.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let t,i,s=0,o=0;this._disposables.add(this._resizable.onDidWillResize(()=>{t=this._topLeft,i=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(r=>{if(t&&i){this.widget.layout(r.dimension.width,r.dimension.height);let a=!1;r.west&&(o=i.width-r.dimension.width,a=!0),r.north&&(s=i.height-r.dimension.height,a=!0),a&&this._applyTopLeft({top:t.top+s,left:t.left+o})}r.done&&(t=void 0,i=void 0,s=0,o=0,this._userSize=r.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(n=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),n&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(n,e){const t=n.getBoundingClientRect();this._anchorBox=t,this._preferAlignAtTop=e,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,e)}_placeAtAnchor(n,e,t){const i=cl(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),o=new Le(220,2*s.lineHeight),r=n.top,a=(function(){const b=i.width-(n.left+n.width+s.borderWidth+s.horizontalPadding),w=-s.borderWidth+n.left+n.width,E=new Le(b,i.height-n.top-s.borderHeight-s.verticalPadding),P=E.with(void 0,n.top+n.height-s.borderHeight-s.verticalPadding);return{top:r,left:w,fit:b-e.width,maxSizeTop:E,maxSizeBottom:P,minSize:o.with(Math.min(b,o.width))}})(),l=(function(){const b=n.left-s.borderWidth-s.horizontalPadding,w=Math.max(s.horizontalPadding,n.left-e.width-s.borderWidth),E=new Le(b,i.height-n.top-s.borderHeight-s.verticalPadding),P=E.with(void 0,n.top+n.height-s.borderHeight-s.verticalPadding);return{top:r,left:w,fit:b-e.width,maxSizeTop:E,maxSizeBottom:P,minSize:o.with(Math.min(b,o.width))}})(),d=(function(){const b=n.left,w=-s.borderWidth+n.top+n.height,E=new Le(n.width-s.borderHeight,i.height-n.top-n.height-s.verticalPadding);return{top:w,left:b,fit:E.height-e.height,maxSizeBottom:E,maxSizeTop:E,minSize:o.with(E.width)}})(),c=(function(){const b=n.left,w=new Le(n.width-s.borderHeight,n.top-s.verticalPadding);return{top:Math.max(s.verticalPadding,n.top-e.height),left:b,fit:w.height-e.height,maxSizeTop:w,maxSizeBottom:w,minSize:o.with(w.width)}})(),h=[a,l,t?d:c],u=h.find(b=>b.fit>=0)??h.sort((b,w)=>w.fit-b.fit)[0],g=n.top+n.height-s.borderHeight;let p,f=e.height;const _=Math.max(u.maxSizeTop.height,u.maxSizeBottom.height);f>_&&(f=_);let v;t?f<=u.maxSizeTop.height?(p=!0,v=u.maxSizeTop):(p=!1,v=u.maxSizeBottom):f<=u.maxSizeBottom.height?(p=!1,v=u.maxSizeBottom):(p=!0,v=u.maxSizeTop);let{top:C,left:x}=u;u===c?C=n.top-f+s.borderWidth:!p&&f>n.height&&(C=g-f);const I=this._editor.getDomNode();if(I){const b=I.getBoundingClientRect();C-=b.top,x-=b.left}this._applyTopLeft({left:x,top:C}),u===c?this._resizable.enableSashes(!0,!1,!1,!0):this._resizable.enableSashes(!p,u===a,p,u!==a),this._resizable.minSize=u.minSize,this._resizable.maxSize=v,this._resizable.layout(f,Math.min(v.width,e.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(n){this._topLeft=n,this._editor.layoutOverlayWidget(this)}},iC=dn("fileService"),Hi;(function(n){n[n.FILE=0]="FILE",n[n.FOLDER=1]="FOLDER",n[n.ROOT_FOLDER=2]="ROOT_FOLDER"})(Hi||(Hi={}));var KF=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function ha(n,e,t,i,s){if(pe.isThemeIcon(s))return[`codicon-${s.id}`,"predefined-file-icon"];if(De.isUri(s))return[];const o=i===Hi.ROOT_FOLDER?["rootfolder-icon"]:i===Hi.FOLDER?["folder-icon"]:["file-icon"];if(t){let r;if(t.scheme===_t.data)r=$d.parseMetaData(t).get($d.META_DATA_LABEL);else{const a=t.path.match(KF);a?(r=ed(a[2].toLowerCase()),a[1]&&o.push(`${ed(a[1].toLowerCase())}-name-dir-icon`)):r=ed(t.authority.toLowerCase())}if(i===Hi.ROOT_FOLDER)o.push(`${r}-root-name-folder-icon`);else if(i===Hi.FOLDER)o.push(`${r}-name-folder-icon`);else{if(r){if(o.push(`${r}-name-file-icon`),o.push("name-file-icon"),r.length<=255){const l=r.split(".");for(let d=1;d<l.length;d++)o.push(`${l.slice(d).join(".")}-ext-file-icon`)}o.push("ext-file-icon")}const a=GF(n,e,t);a&&o.push(`${ed(a)}-lang-file-icon`)}}return o}function GF(n,e,t){if(!t)return null;let i=null;if(t.scheme===_t.data){const s=$d.parseMetaData(t).get($d.META_DATA_MIME);s&&(i=e.getLanguageIdByMimeType(s))}else{const s=n.getModel(t);s&&(i=s.getLanguageId())}return i&&i!=="plaintext"?i:e.guessLanguageIdByFilepathOrFirstLine(t)}function ed(n){return n.replace(/[\s]/g,"/")}var ZF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},gu=function(n,e){return function(t,i){e(t,i,n)}},XF=Ze("suggest-more-info",V.chevronRight,m(1544,"Icon for more information in the suggest widget.")),YF=new class ua{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=new RegExp(`^${ua._regexRelaxed.source}$`,"i")}extract(e,t){if(e.textLabel.match(ua._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(ua._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,s=ua._regexRelaxed.exec(i);if(s&&(s.index===0||s.index+s[0].length===i.length))return t[0]=s[0],!0}return!1}},Zp=class{constructor(e,t,i,s){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=s,this._onDidToggleDetails=new Q,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new A,i=e;i.classList.add("show-file-icons");const s=z(e,W(".icon")),o=z(s,W("span.colorspan")),r=z(e,W(".contents")),a=z(r,W(".main")),l=z(a,W(".icon-label.codicon")),d=z(a,W("span.left")),c=z(a,W("span.right")),h=new MS(d,{supportHighlights:!0,supportIcons:!0});t.add(h);const u=z(d,W("span.signature-label")),g=z(d,W("span.qualifier-label")),p=z(c,W("span.details-label")),f=z(c,W("span.readMore"+pe.asCSSSelector(XF)));return f.title=m(1545,"Read More"),{root:i,left:d,right:c,icon:s,colorspan:o,iconLabel:h,iconContainer:l,parametersLabel:u,qualifierLabel:g,detailsLabel:p,readMore:f,disposables:t,configureFont:()=>{const v=this._editor.getOptions(),C=v.get(59),x=C.getMassagedFontFamily(),I=C.fontFeatureSettings,b=C.fontVariationSettings,w=v.get(135)||C.fontSize,E=v.get(136)||C.lineHeight,P=C.fontWeight,R=C.letterSpacing,D=`${w}px`,F=`${E}px`,Y=`${R}px`;i.style.fontSize=D,i.style.fontWeight=P,i.style.letterSpacing=Y,a.style.fontFamily=x,a.style.fontFeatureSettings=I,a.style.fontVariationSettings=b,a.style.lineHeight=F,s.style.height=F,s.style.width=F,f.style.height=F,f.style.width=F}}}renderElement(e,t,i){i.configureFont();const{completion:s}=e;i.colorspan.style.backgroundColor="";const o={labelEscapeNewLines:!0,matches:nh(e.score)},r=[];if(s.kind===19&&YF.extract(e,r))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=r[0];else if(s.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const a=ha(this._modelService,this._languageService,De.from({scheme:"fake",path:e.textLabel}),Hi.FILE),l=ha(this._modelService,this._languageService,De.from({scheme:"fake",path:s.detail}),Hi.FILE);o.extraClasses=a.length>l.length?a:l}else s.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",o.extraClasses=[ha(this._modelService,this._languageService,De.from({scheme:"fake",path:e.textLabel}),Hi.FOLDER),ha(this._modelService,this._languageService,De.from({scheme:"fake",path:s.detail}),Hi.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...pe.asClassNameArray(Qc.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(o.extraClasses=(o.extraClasses||[]).concat(["deprecated"]),o.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,o),typeof s.label=="string"?(i.parametersLabel.textContent="",i.detailsLabel.textContent=pu(s.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=pu(s.label.detail||""),i.detailsLabel.textContent=pu(s.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(134).showInlineDetails?wi(i.detailsLabel):Jt(i.detailsLabel),I_(e)?(i.right.classList.add("can-expand-details"),wi(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"),Jt(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};Zp=ZF([gu(1,Kt),gu(2,Fn),gu(3,It)],Zp);function pu(n){return n.replace(/\r\n|\r|\n/g,"")}var JF=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},td=function(n,e){return function(t,i){e(t,i,n)}},Uo;H("editorSuggestWidget.background",pm,m(1525,"Background color of the suggest widget."));H("editorSuggestWidget.border",hw,m(1526,"Border color of the suggest widget."));var QF=H("editorSuggestWidget.foreground",fl,m(1527,"Foreground color of the suggest widget."));H("editorSuggestWidget.selectedForeground",Mw,m(1528,"Foreground color of the selected entry in the suggest widget."));H("editorSuggestWidget.selectedIconForeground",YD,m(1529,"Icon foreground color of the selected entry in the suggest widget."));var eH=H("editorSuggestWidget.selectedBackground",US,m(1530,"Background color of the selected entry in the suggest widget."));H("editorSuggestWidget.highlightForeground",ew,m(1531,"Color of the match highlights in the suggest widget."));H("editorSuggestWidget.focusHighlightForeground",DE,m(1532,"Color of the match highlights in the suggest widget when an item is focused."));H("editorSuggestWidgetStatus.foreground",nt(QF,.5),m(1533,"Foreground color of the suggest widget status."));var tH=class{constructor(n,e){this._service=n,this._key=`suggestWidget.size/${e.getEditorType()}/${e instanceof rn}`}restore(){const n=this._service.get(this._key,0)??"";try{const e=JSON.parse(n);if(Le.is(e))return Le.lift(e)}catch{}}store(n){this._service.store(this._key,JSON.stringify(n),0,1)}reset(){this._service.remove(this._key,0)}},Xp=class{static{Uo=this}static{this.LOADING_MESSAGE=m(1534,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=m(1535,"No suggestions.")}constructor(e,t,i,s,o){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._loadingTimeout=new Je,this._pendingLayout=new Je,this._pendingShowDetails=new Je,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new ll,this._disposables=new A,this._onDidSelect=new xv,this._onDidFocus=new xv,this._onDidHide=new Q,this._onDidShow=new Q,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new Q,this.element=new e_,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new iH(this,e),this._persistedSize=new tH(t,e);class r{constructor(p,f,_=!1,v=!1){this.persistedSize=p,this.currentSize=f,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(g=>{if(this._resize(g.dimension.width,g.dimension.height),a&&(a.persistHeight=a.persistHeight||!!g.north||!!g.south,a.persistWidth=a.persistWidth||!!g.east||!!g.west),!!g.done){if(a){const{itemHeight:p,defaultSize:f}=this.getLayoutInfo(),_=Math.round(p/2);let{width:v,height:C}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-C)<=_)&&(C=a.persistedSize?.height??f.height),(!a.persistWidth||Math.abs(a.currentSize.width-v)<=_)&&(v=a.persistedSize?.width??f.width),this._persistedSize.store(new Le(v,C))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=z(this.element.domNode,W(".message")),this._listElement=z(this.element.domNode,W(".tree"));const l=this._disposables.add(o.createInstance(Gp,this.editor));l.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new $F(l,this.editor);const d=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);d();const c=o.createInstance(Zp,this.editor);this._disposables.add(c),this._disposables.add(c.onDidToggleDetails(()=>this.toggleDetails())),this._list=new Hm("SuggestWidget",this._listElement,{getHeight:g=>this.getLayoutInfo().itemHeight,getTemplateId:g=>"suggestion"},[c],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>vm?"listitem":"option",getWidgetAriaLabel:()=>m(1536,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:g=>{let p=g.textLabel;const f=Qc.toLabel(g.completion.kind);if(typeof g.completion.label!="string"){const{detail:x,description:I}=g.completion.label;x&&I?p=m(1537,"{0} {1}, {2}, {3}",p,x,I,f):x?p=m(1538,"{0} {1}, {2}",p,x,f):I&&(p=m(1539,"{0}, {1}, {2}",p,I,f))}else p=m(1540,"{0}, {1}",p,f);if(!g.isResolved||!this._isDetailsVisible())return p;const{documentation:_,detail:v}=g.completion,C=Tm("{0}{1}",v||"",_?typeof _=="string"?_:_.value:"");return m(1541,"{0}, docs: {1}",p,C)}}}),this._list.style(BS({listInactiveFocusBackground:eH,listInactiveFocusOutline:to})),this._status=o.createInstance(Kp,this.element.domNode,En,void 0);const h=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);h(),this._disposables.add(this._list.onMouseDown(g=>this._onListMouseDownOrTap(g))),this._disposables.add(this._list.onTap(g=>this._onListMouseDownOrTap(g))),this._disposables.add(this._list.onDidChangeSelection(g=>this._onListSelection(g))),this._disposables.add(this._list.onDidChangeFocus(g=>this._onListFocus(g))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(g=>{g.hasChanged(134)&&(h(),d()),this._completionModel&&(g.hasChanged(59)||g.hasChanged(135)||g.hasChanged(136))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=J.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=J.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=J.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=J.HasFocusedSuggestion.bindTo(i),this._ctxSuggestWidgetDetailsFocused=J.DetailsFocused.bindTo(i);const u=ls(this._details.widget.domNode);this._disposables.add(u),this._disposables.add(u.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(u.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(bs(this._details.widget.domNode,"keydown",g=>{this._onDetailsKeydown.fire(g)})),this._disposables.add(this.editor.onMouseDown(g=>this._onEditorMouseDown(g)))}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=pt(async s=>{const o=gs(()=>{this._isDetailsVisible()&&this._showDetails(!0,!1)},250),r=s.onCancellationRequested(()=>o.dispose());try{return await t.resolve(s)}finally{o.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:Jt(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=Uo.LOADING_MESSAGE,Jt(this._listElement,this._status.element),wi(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,vs(Uo.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=Uo.NO_SUGGESTIONS_MESSAGE,Jt(this._listElement,this._status.element),wi(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,vs(Uo.NO_SUGGESTIONS_MESSAGE);break;case 3:Jt(this._messageElement),wi(this._listElement,this._status.element),this._show();break;case 4:Jt(this._messageElement),wi(this._listElement,this._status.element),this._show();break;case 5:Jt(this._messageElement),wi(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus()}}_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=gs(()=>this._setState(1),t)))}showSuggestions(e,t,i,s,o){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(s?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0,t===0?0:this.getLayoutInfo().itemHeight*.33),this._list.setFocus(o?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=cv(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")):(I_(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=cv(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=cl(this.element.domNode.ownerDocument.body),i=this.getLayoutInfo();e||(e=i.defaultSize);let s=e.height,o=e.width;if(this._status.element.style.height=`${i.itemHeight}px`,this._state===2||this._state===1)s=i.itemHeight+i.borderHeight,o=i.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new Le(o,s),this._contentWidget.setPreference(2);else{const r=t.width-i.borderHeight-2*i.horizontalPadding;o>r&&(o=r);const a=this._completionModel?this._completionModel.stats.pLabelLen*i.typicalHalfwidthCharacterWidth:o,l=i.statusBarHeight+this._list.contentHeight+i.borderHeight,d=i.itemHeight+i.statusBarHeight,c=kt(this.editor.getDomNode()),h=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),u=c.top+h.top+h.height,g=Math.min(t.height-u-i.verticalPadding,l),p=c.top+h.top-i.verticalPadding,f=Math.min(p,l);let _=Math.min(Math.max(f,g)+i.borderHeight,l);s===this._cappedHeight?.capped&&(s=this._cappedHeight.wanted),s<d&&(s=d),s>_&&(s=_),s>g&&f>g||this._forceRenderingAbove&&p>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),_=f):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),_=g),this.element.preferredSize=new Le(a,i.defaultSize.height),this.element.maxSize=new Le(r,_),this.element.minSize=new Le(220,d),this._cappedHeight=s===l?{wanted:this._cappedHeight?.wanted??e.height,capped:s}:void 0}this._resize(o,s)}_resize(e,t){const{width:i,height:s}=this.element.maxSize;e=Math.min(i,e),t=Math.min(s,t);const{statusBarHeight:o}=this.getLayoutInfo();this._list.layout(t-o,e),this._listElement.style.height=`${t-o}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=Yu(this.editor.getOption(136)||e.lineHeight,8,1e3),i=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:t,s=this._details.widget.getLayoutInfo().borderWidth;return{itemHeight:t,statusBarHeight:i,borderWidth:s,borderHeight:2*s,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new Le(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}};Xp=Uo=JF([td(1,Ti),td(2,ve),td(3,It),td(4,ie)],Xp);var iH=class{constructor(n,e){this._widget=n,this._editor=e,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:n,width:e}=this._widget.element.size,{borderWidth:t,horizontalPadding:i}=this._widget.getLayoutInfo();return new Le(e+2*t+i,n+2*t)}afterRender(n){this._widget._afterRender(n)}setPreference(n){this._preferenceLocked||(this._preference=n)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(n){this._position=n}},nH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Po=function(n,e){return function(t,i){e(t,i,n)}},Yp,sH=class{constructor(n,e){if(this._model=n,this._position=e,this._decorationOptions=se.register({description:"suggest-line-suffix",stickiness:1}),n.getLineMaxColumn(e.lineNumber)!==e.column){const t=n.getOffsetAt(e),i=n.getPositionAt(t+1);n.changeDecorations(s=>{this._marker&&s.removeDecoration(this._marker),this._marker=s.addDecoration(y.fromPositions(e,i),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(n=>{n.removeDecoration(this._marker),this._marker=void 0})}delta(n){if(this._model.isDisposed()||this._position.lineNumber!==n.lineNumber)return 0;if(this._marker){const e=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(e.getStartPosition())-this._model.getOffsetAt(n)}else return this._model.getLineMaxColumn(n.lineNumber)-n.column}},Wi=class{static{Yp=this}static{this.ID="editor.contrib.suggestController"}static get(e){return e.getContribution(Yp.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(e,t,i,s,o,r,a){this._memoryService=t,this._commandService=i,this._contextKeyService=s,this._instantiationService=o,this._logService=r,this._telemetryService=a,this._lineSuffix=new Je,this._toDispose=new A,this._selectors=new oH(h=>h.priority),this._onWillInsertSuggestItem=new Q,this._wantsForceRenderingAbove=!1,this.editor=e,this.model=o.createInstance(Dc,this.editor),this._selectors.register({priority:0,select:(h,u,g)=>this._memoryService.select(h,u,g)});const l=J.InsertMode.bindTo(s);l.set(e.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(134).insertMode))),this.widget=this._toDispose.add(new Vh(Ht(e.getDomNode()),()=>{const h=this._instantiationService.createInstance(Xp,this.editor);this._toDispose.add(h),this._toDispose.add(h.onDidSelect(_=>this._insertSuggestion(_,0),this));const u=new WF(this.editor,h,this.model,_=>this._insertSuggestion(_,2));this._toDispose.add(u);const g=J.MakesTextEdit.bindTo(this._contextKeyService),p=J.HasInsertAndReplaceRange.bindTo(this._contextKeyService),f=J.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(ke(()=>{g.reset(),p.reset(),f.reset()})),this._toDispose.add(h.onDidFocus(({item:_})=>{const v=this.editor.getPosition(),C=_.editStart.column,x=v.column;let I=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!_.completion.additionalTextEdits&&!(_.completion.insertTextRules&4)&&x-C===_.completion.insertText.length&&(I=this.editor.getModel().getValueInRange({startLineNumber:v.lineNumber,startColumn:C,endLineNumber:v.lineNumber,endColumn:x})!==_.completion.insertText),g.set(I),p.set(!B.equals(_.editInsertEnd,_.editReplaceEnd)),f.set(!!_.provider.resolveCompletionItem||!!_.completion.documentation||_.completion.detail!==_.completion.label)})),this._wantsForceRenderingAbove&&h.forceRenderingAbove(),h})),this._overtypingCapturer=this._toDispose.add(new Vh(Ht(e.getDomNode()),()=>this._toDispose.add(new zF(this.editor,this.model)))),this._alternatives=this._toDispose.add(new Vh(Ht(e.getDomNode()),()=>this._toDispose.add(new _r(this.editor,this._contextKeyService)))),this._toDispose.add(o.createInstance(Lc,e)),this._toDispose.add(this.model.onDidTrigger(h=>{this.widget.value.showTriggered(h.auto,h.shy?250:50),this._lineSuffix.value=new sH(this.editor.getModel(),h.position)})),this._toDispose.add(this.model.onDidSuggest(h=>{if(h.triggerOptions.shy)return;let u=-1;for(const p of this._selectors.itemsOrderedByPriorityDesc)if(u=p.select(this.editor.getModel(),this.editor.getPosition(),h.completionModel.items),u!==-1)break;if(u===-1&&(u=0),this.model.state===0)return;let g=!1;if(h.triggerOptions.auto){const p=this.editor.getOption(134);p.selectionMode==="never"||p.selectionMode==="always"?g=p.selectionMode==="never":p.selectionMode==="whenTriggerCharacter"?g=h.triggerOptions.triggerKind!==1:p.selectionMode==="whenQuickSuggestion"&&(g=h.triggerOptions.triggerKind===1&&!h.triggerOptions.refilter)}this.widget.value.showSuggestions(h.completionModel,u,h.isFrozen,h.triggerOptions.auto,g)})),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=J.AcceptSuggestionsOnEnter.bindTo(s),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=ft.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const s=this.editor.getModel(),o=s.getAlternativeVersionId(),{item:r}=e,a=[],l=new st;t&1||this.editor.pushUndoStop();const d=this.getOverwriteInfo(r,!!(t&8));this._memoryService.memorize(s,this.editor.getPosition(),r);const c=r.isResolved;let h=-1,u=-1;if(Array.isArray(r.completion.additionalTextEdits)){this.model.cancel();const p=or.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",r.completion.additionalTextEdits.map(f=>{let _=y.lift(f.range);if(_.startLineNumber===r.position.lineNumber&&_.startColumn>r.position.column){const v=this.editor.getPosition().column-r.position.column,C=v,x=y.spansMultipleLines(_)?0:v;_=new y(_.startLineNumber,_.startColumn+C,_.endLineNumber,_.endColumn+x)}return Ge.replaceMove(_,f.text)})),p.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!c){const p=new hi;let f;const _=s.onDidChangeContent(I=>{if(I.isFlush){l.cancel(),_.dispose();return}for(const b of I.changes){const w=y.getEndPosition(b.range);(!f||B.isBefore(w,f))&&(f=w)}}),v=t;t|=2;let C=!1;const x=this.editor.onWillType(()=>{x.dispose(),C=!0,v&2||this.editor.pushUndoStop()});a.push(r.resolve(l.token).then(()=>{if(!r.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(f&&r.completion.additionalTextEdits.some(b=>B.isBefore(f,y.getStartPosition(b.range))))return!1;C&&this.editor.pushUndoStop();const I=or.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",r.completion.additionalTextEdits.map(b=>Ge.replaceMove(y.lift(b.range),b.text))),I.restoreRelativeVerticalPositionOfCursor(this.editor),(C||!(v&2))&&this.editor.pushUndoStop(),!0}).then(I=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",p.elapsed(),I),u=I===!0?1:I===!1?0:-2}).finally(()=>{_.dispose(),x.dispose()}))}let{insertText:g}=r.completion;if(r.completion.insertTextRules&4||(g=ao.escape(g)),this.model.cancel(),i.insert(g,{overwriteBefore:d.overwriteBefore,overwriteAfter:d.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(r.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:io.suggest({providerId:wS.fromExtensionId(r.extensionId?.value)})}),t&2||this.editor.pushUndoStop(),r.completion.command)if(r.completion.command.id===UI.id)this.model.trigger({auto:!0,retrigger:!0});else{const p=new hi;a.push(this._commandService.executeCommand(r.completion.command.id,...r.completion.command.arguments?[...r.completion.command.arguments]:[]).catch(f=>{r.completion.extensionId?tt(f):we(f)}).finally(()=>{h=p.elapsed()}))}t&4&&this._alternatives.value.set(e,p=>{for(l.cancel();s.canUndo();){o!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(p,3|(t&8?8:0));break}}),this._alertCompletionItem(r),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(r,s,c,h,u,e.index,e.model.items),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,s,o,r,a){if(Math.random()>1e-4)return;const l=new Map;for(let h=0;h<Math.min(30,a.length);h++){const u=a[h].textLabel;l.has(u)?l.get(u).push(h):l.set(u,[h])}const d=l.get(e.textLabel),c=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:Nw(Vi(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:l0(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:s,additionalEditsAsync:o,index:r,firstIndex:c})}getOverwriteInfo(e,t){Se(this.editor.hasModel());let i=this.editor.getOption(134).insertMode==="replace";t&&(i=!i);const s=e.position.column-e.editStart.column,o=(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:s+r,overwriteAfter:o+a}}_alertCompletionItem(e){if(Qt(e.completion.additionalTextEdits)){const t=m(1514,"Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);ci(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)},s=o=>{if(o.completion.insertTextRules&4||o.completion.additionalTextEdits)return!0;const r=this.editor.getPosition(),a=o.editStart.column,l=r.column;return l-a!==o.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:r.lineNumber,startColumn:a,endLineNumber:r.lineNumber,endColumn:l})!==o.completion.insertText};qe.once(this.model.onDidTrigger)(o=>{const r=[];qe.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{Nt(r),i()},void 0,r),this.model.onDidSuggest(({completionModel:a})=>{if(Nt(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(!s(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 s=0;e&&(s|=4),t&&(s|=8),this._insertSuggestion(i,s)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){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)}};Wi=Yp=nH([Po(1,Dh),Po(2,ht),Po(3,ve),Po(4,ie),Po(5,Pt),Po(6,Ds)],Wi);var oH=class{constructor(n){this.prioritySelector=n,this._items=new Array}register(n){if(this._items.indexOf(n)!==-1)throw new Error("Value is already registered");return this._items.push(n),this._items.sort((e,t)=>this.prioritySelector(t)-this.prioritySelector(e)),{dispose:()=>{const e=this._items.indexOf(n);e>=0&&this._items.splice(e,1)}}}get itemsOrderedByPriorityDesc(){return this._items}},UI=class zI extends M{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:zI.id,label:L(1523,"Trigger Suggest"),precondition:N.and(S.writable,S.hasCompletionItemProvider,J.Visible.toNegated()),kbOpts:{kbExpr:S.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const s=Wi.get(t);if(!s)return;let o;i&&typeof i=="object"&&i.auto===!0&&(o=!0),s.triggerSuggest(void 0,o,void 0)}};ce(Wi.ID,Wi,2);k(UI);var ii=190,At=Mt.bindToContribution(Wi.get);G(new At({id:"acceptSelectedSuggestion",precondition:N.and(J.Visible,J.HasFocusedSuggestion),handler(n){n.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:N.and(J.Visible,S.textInputFocus),weight:ii},{primary:3,kbExpr:N.and(J.Visible,S.textInputFocus,J.AcceptSuggestionsOnEnter,J.MakesTextEdit),weight:ii}],menuOpts:[{menuId:En,title:m(1515,"Insert"),group:"left",order:1,when:N.and(J.HasFocusedSuggestion,J.HasInsertAndReplaceRange.toNegated())},{menuId:En,title:m(1516,"Insert"),group:"left",order:1,when:N.and(J.HasFocusedSuggestion,J.HasInsertAndReplaceRange,J.InsertMode.isEqualTo("insert"))},{menuId:En,title:m(1517,"Replace"),group:"left",order:1,when:N.and(J.HasFocusedSuggestion,J.HasInsertAndReplaceRange,J.InsertMode.isEqualTo("replace"))}]}));G(new At({id:"acceptAlternativeSelectedSuggestion",precondition:N.and(J.Visible,S.textInputFocus,J.HasFocusedSuggestion),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:1027,secondary:[1026]},handler(n){n.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:En,group:"left",order:2,when:N.and(J.HasFocusedSuggestion,J.HasInsertAndReplaceRange,J.InsertMode.isEqualTo("insert")),title:m(1518,"Replace")},{menuId:En,group:"left",order:2,when:N.and(J.HasFocusedSuggestion,J.HasInsertAndReplaceRange,J.InsertMode.isEqualTo("replace")),title:m(1519,"Insert")}]}));Re.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");G(new At({id:"hideSuggestWidget",precondition:J.Visible,handler:n=>n.cancelSuggestWidget(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:9,secondary:[1033]}}));G(new At({id:"selectNextSuggestion",precondition:N.and(J.Visible,N.or(J.MultipleSuggestions,J.HasFocusedSuggestion.negate())),handler:n=>n.selectNextSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:En,group:"left",order:0,when:J.HasFocusedSuggestion.toNegated(),title:m(1520,"Select")}}));G(new At({id:"selectNextPageSuggestion",precondition:N.and(J.Visible,N.or(J.MultipleSuggestions,J.HasFocusedSuggestion.negate())),handler:n=>n.selectNextPageSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:12,secondary:[2060]}}));G(new At({id:"selectLastSuggestion",precondition:N.and(J.Visible,N.or(J.MultipleSuggestions,J.HasFocusedSuggestion.negate())),handler:n=>n.selectLastSuggestion()}));G(new At({id:"selectPrevSuggestion",precondition:N.and(J.Visible,N.or(J.MultipleSuggestions,J.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));G(new At({id:"selectPrevPageSuggestion",precondition:N.and(J.Visible,N.or(J.MultipleSuggestions,J.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevPageSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:11,secondary:[2059]}}));G(new At({id:"selectFirstSuggestion",precondition:N.and(J.Visible,N.or(J.MultipleSuggestions,J.HasFocusedSuggestion.negate())),handler:n=>n.selectFirstSuggestion()}));G(new At({id:"focusSuggestion",precondition:N.and(J.Visible,J.HasFocusedSuggestion.negate()),handler:n=>n.focusSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));G(new At({id:"focusAndAcceptSuggestion",precondition:N.and(J.Visible,J.HasFocusedSuggestion.negate()),handler:n=>{n.focusSuggestion(),n.acceptSelectedSuggestion(!0,!1)}}));G(new At({id:"toggleSuggestionDetails",precondition:N.and(J.Visible,J.HasFocusedSuggestion),handler:n=>n.toggleSuggestionDetails(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:En,group:"right",order:1,when:N.and(J.DetailsVisible,J.CanResolve),title:m(1521,"Show Less")},{menuId:En,group:"right",order:1,when:N.and(J.DetailsVisible.toNegated(),J.CanResolve),title:m(1522,"Show More")}]}));G(new At({id:"toggleExplainMode",precondition:J.Visible,handler:n=>n.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));G(new At({id:"toggleSuggestionFocus",precondition:J.Visible,handler:n=>n.toggleSuggestionFocus(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:2570,mac:{primary:778}}}));G(new At({id:"insertBestCompletion",precondition:N.and(S.textInputFocus,N.equals("config.editor.tabCompletion","on"),Lc.AtEnd,J.Visible.toNegated(),_r.OtherSuggestions.toNegated(),ft.InSnippetMode.toNegated()),handler:(n,e)=>{n.triggerSuggestAndAcceptBest(hm(e)?{fallback:"tab",...e}:{fallback:"tab"})},kbOpts:{weight:ii,primary:2}}));G(new At({id:"insertNextSuggestion",precondition:N.and(S.textInputFocus,N.equals("config.editor.tabCompletion","on"),_r.OtherSuggestions,J.Visible.toNegated(),ft.InSnippetMode.toNegated()),handler:n=>n.acceptNextSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:2}}));G(new At({id:"insertPrevSuggestion",precondition:N.and(S.textInputFocus,N.equals("config.editor.tabCompletion","on"),_r.OtherSuggestions,J.Visible.toNegated(),ft.InSnippetMode.toNegated()),handler:n=>n.acceptPrevSuggestion(),kbOpts:{weight:ii,kbExpr:S.textInputFocus,primary:1026}}));G(new class extends Mt{constructor(){super({id:"suggestWidgetCopy",precondition:J.DetailsFocused,kbOpts:{weight:200,kbExpr:J.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(n,e){Ht(e.getDomNode()).document.execCommand("copy")}});k(class extends M{constructor(){super({id:"editor.action.resetSuggestSize",label:L(1524,"Reset Suggest Widget Size"),precondition:void 0})}run(n,e){Wi.get(e)?.resetWidgetSize()}});var rH=class extends O{get selectedItem(){return this._currentSuggestItemInfo}constructor(n,e,t){super(),this.editor=n,this.suggestControllerPreselector=e,this.onWillAccept=t,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new Q),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(n.onKeyDown(s=>{s.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(n.onKeyUp(s=>{s.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const i=Wi.get(this.editor);if(i){this._register(i.registerSelector({priority:100,select:(r,a,l)=>{const d=this.editor.getModel();if(!d)return-1;const c=this.suggestControllerPreselector(),h=c?us(c,d):void 0;if(!h)return-1;const u=B.lift(a),g=l.map((f,_)=>{const v=fu.fromSuggestion(i,d,u,f,this.isShiftKeyPressed),C=us(v.getSingleTextEdit(),d);return{index:_,valid:SI(h,C),prefixLength:C.text.length,suggestItem:f}}).filter(f=>f&&f.valid&&f.prefixLength>0),p=q0(g,so(f=>f.prefixLength,oo));return p?p.index:-1}}));let s=!1;const o=()=>{s||(s=!0,this._register(i.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(i.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(i.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(qe.once(i.model.onDidTrigger)(r=>{o()})),this._register(i.onWillInsertSuggestItem(r=>{const a=this.editor.getPosition(),l=this.editor.getModel();if(!a||!l)return;const d=fu.fromSuggestion(i,l,a,r.item,this.isShiftKeyPressed);this.onWillAccept(d)}))}this.update(this._isActive)}update(n){const e=this.getSuggestItemInfo();(this._isActive!==n||!aH(this._currentSuggestItemInfo,e))&&(this._isActive=n,this._currentSuggestItemInfo=e,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const n=Wi.get(this.editor);if(!n||!this.isSuggestWidgetVisible)return;const e=n.widget.value.getFocusedItem(),t=this.editor.getPosition(),i=this.editor.getModel();if(!(!e||!t||!i))return fu.fromSuggestion(n,i,t,e.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){Wi.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){Wi.get(this.editor)?.forceRenderingAbove()}},fu=class jI{static fromSuggestion(e,t,i,s,o){let{insertText:r}=s.completion,a=!1;if(s.completion.insertTextRules&4){const d=new ao().parse(r);d.children.length<100&&wc.adjustWhitespace(t,i,!0,d),r=d.toString(),a=!0}const l=e.getOverwriteInfo(s,o);return new jI(y.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),r,s.completion.kind,a,s.container.incomplete??!1)}constructor(e,t,i,s,o){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=s,this.listIncomplete=o}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new d0(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new He(this.range,this.insertText)}};function aH(n,e){return n===e?!0:!n||!e?!1:n.equals(e)}var lH=class extends O{constructor(n,e,t){super(),this._editorObs=n,this._handleSuggestAccepted=e,this._suggestControllerPreselector=t,this._suggestWidgetAdaptor=this._register(new rH(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),i=>this._editorObs.forceUpdate(s=>{this._handleSuggestAccepted(i)}))),this.selectedItem=Dt(this,i=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(s=>i(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}},dH=class{constructor(n,e){this.lineNumber=n,this.columnRange=e}},nC=class{constructor(n,e){if(this.startColumn=n,this.endColumnExclusive=e,n>e)throw new gt(`startColumn ${n} cannot be after endColumnExclusive ${e}`)}toRange(n){return new y(n,this.startColumn,n,this.endColumnExclusive)}equals(n){return this.startColumn===n.startColumn&&this.endColumnExclusive===n.endColumnExclusive}toZeroBasedOffsetRange(){return new je(this.startColumn-1,this.endColumnExclusive-1)}},sC=class ga{static fromLineTokens(e){const t=[];for(let i=0;i<e.getCount();i++)t.push(new oC(e.getTokenText(i),e.getMetadata(i)));return ga.create(t)}static create(e){return new ga(e)}constructor(e){this._tokenInfo=e}toLineTokens(e){return yr.createFromTextAndMetadata(this.map((t,i)=>({text:i.text,metadata:i.metadata})),e)}map(e){const t=[];let i=0;for(const s of this._tokenInfo){const o=new je(i,i+s.text.length);t.push(e(o,s)),i+=s.text.length}return t}slice(e){const t=[];let i=0;for(const s of this._tokenInfo){const o=i,r=o+s.text.length;if(r>e.start){if(o>=e.endExclusive)break;const a=Math.max(0,e.start-o),l=Math.max(0,r-e.endExclusive);t.push(new oC(s.text.slice(a,s.text.length-l),s.metadata))}i+=s.text.length}return ga.create(t)}append(e){const t=this._tokenInfo.concat(e._tokenInfo);return ga.create(t)}},oC=class{constructor(n,e){this.text=n,this.metadata=e}},cH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},hH=function(n,e){return function(t,i){e(t,i,n)}},uH=class qI{static from(e){if(e)return new qI(e.icon)}constructor(e=V.warning){this.icon=e}},$I="ghost-text",Ya=class extends O{constructor(e,t,i,s){super(),this._editor=e,this._data=t,this._languageService=s,this._isDisposed=Ne(this,!1),this._warningState=T(o=>{const r=this._data.read(o),a=r?.warning;if(!r||!a)return;const l=r.ghostText;return{lineNumber:l.lineNumber,position:new B(l.lineNumber,l.parts[0].column),icon:a.icon}}),this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=T(this,o=>{const r=this._data.read(o);if(r)return r.ghostText.parts.map(a=>a.lines.map(l=>l.line).join("")).join("").replace(/\s/g,"").length}),this._extraClassNames=T(this,o=>{const r=this._extraClasses.slice();this._warningState.read(o)&&r.push("warning");const a=this._nonWhitespaceCount.read(o);return this._highlightShortText&&a&&a<3?r.push("short-text"):this._useSyntaxHighlighting.read(o)&&r.push("syntax-highlighted"),r.map(l=>` ${l}`).join("")}),this._state=T(this,o=>{if(this._isDisposed.read(o))return;const r=this._data.read(o);if(!r)return;const a=this._editorObs.model.read(o);if(!a)return;const l=r.ghostText,d=l instanceof Rp?l.columnRange:void 0,c=this._useSyntaxHighlighting.read(o),h=this._extraClassNames.read(o),{inlineTexts:u,additionalLines:g,hiddenRange:p,additionalLinesOriginalSuffix:f}=gH(l,a,$I+h),_=a.getLineContent(l.lineNumber),v=new Nn(u.map(D=>ei.insert(D.column-1,D.text))),C=c?a.tokenization.tokenizeLinesAt(l.lineNumber,[v.apply(_),...g.map(D=>D.content)]):void 0,x=v.getNewRanges(),I=u.map((D,F)=>({...D,tokens:C?.[0]?.getTokensInRange(x[F])})),b=g.map((D,F)=>{let Y=C?.[F+1]??yr.createEmpty(D.content,this._languageService.languageIdCodec);if(F===g.length-1&&f){const re=sC.fromLineTokens(a.tokenization.getLineTokens(f.lineNumber)).slice(f.columnRange.toZeroBasedOffsetRange());Y=sC.fromLineTokens(Y).append(re).toLineTokens(Y.languageIdCodec)}return new mH(Y,D.decorations)}),w=this._editor.getSelection()?.getStartPosition().column,E=I.filter(D=>D.text!==""),P=E.length!==0,R=new w_((P?E[0].column:1)-w,P?0:g.findIndex(D=>D.content!=="")+1,P?1:0,g.length+(P?1:0),0,Jd(E.map(D=>D.text.length))+Jd(b.map(D=>D.content.getTextLength())),E.length+(g.length>0?1:0),E.length>1&&b.length===0?E.every(D=>D.text===E[0].text):void 0);return{replacedRange:d,inlineTexts:I,additionalLines:b,hiddenRange:p,lineNumber:l.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(o),targetTextModel:a,syntaxHighlightingEnabled:c,telemetryViewData:R,handleInlineCompletionShown:r.handleInlineCompletionShown}}),this._decorations=T(this,o=>{const r=this._state.read(o);if(!r)return[];const a=[],l=this._extraClassNames.read(o);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:y.fromPositions(new B(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:Zs.Left,attachedData:new mu(this)},showIfCollapsed:!0}})}return a}),this.isHovered=T(this,o=>this._isDisposed.read(o)?!1:this._isInlineTextHovered.read(o)||this._additionalLinesWidget.isHovered.read(o)),this.height=T(this,o=>this._editorObs.getOption(75).read(o)+(this._additionalLinesWidget.viewZoneHeight.read(o)??0)),this._extraClasses=i.extraClasses??[],this._isClickable=i.isClickable??!1,this._shouldKeepCursorStable=i.shouldKeepCursorStable??!1,this._minReservedLineCount=i.minReservedLineCount??Ce(0),this._useSyntaxHighlighting=i.useSyntaxHighlighting??Ce(!0),this._highlightShortText=i.highlightShortSuggestions??!1,this._editorObs=Be(this._editor),this._additionalLinesWidget=this._register(new fH(this._editor,Yi({owner:this,equalsFn:KE(nm())},o=>{const r=this._state.read(o);return r?new pH(r.lineNumber,r.additionalLines,r.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered(o=>o.target.type===6&&o.target.detail.injectedText?.options.attachedData instanceof mu&&o.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(o=>this._onDidClick.fire(o))),this._register(this._editor.onMouseUp(o=>{if(o.target.type!==6)return;const r=o.target.detail.injectedText?.options.attachedData;r instanceof mu&&r.owner===this&&this._onDidClick.fire(o.event)}))),this._register(he(o=>{const r=this._state.read(o);r?.handleInlineCompletionShown(r.telemetryViewData)})),this._register(bl((o,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}};Ya=cH([hH(3,Fn)],Ya);var mu=class{constructor(n){this.owner=n}};function gH(n,e,t){const i=[],s=[];function o(c,h){if(s.length>0){const u=s[s.length-1];h&&u.decorations.push(new cr(u.content.length+1,u.content.length+1+c[0].line.length,h,0)),u.content+=c[0].line,c=c.slice(1)}for(const u of c)s.push({content:u.line,decorations:h?[new cr(1,u.line.length+1,h,0),...u.lineDecorations]:[...u.lineDecorations]})}const r=e.getLineContent(n.lineNumber);let a,l=0;for(const c of n.parts){let h=c.lines;a===void 0?(i.push({column:c.column,text:h[0].line,preview:c.preview,lineDecorations:h[0].lineDecorations}),h=h.slice(1)):o([{line:r.substring(l,c.column-1),lineDecorations:[]}],void 0),h.length>0&&(o(h,t),a===void 0&&c.column<=r.length&&(a=c.column)),l=c.column-1}let d;return a!==void 0&&(d=new dH(n.lineNumber,new nC(l+1,r.length+1))),{inlineTexts:i,additionalLines:s,hiddenRange:a!==void 0?new nC(a,r.length+1):void 0,additionalLinesOriginalSuffix:d}}var pH=class{constructor(n,e,t){this.lineNumber=n,this.additionalLines=e,this.minReservedLineCount=t}equals(n){return this.lineNumber!==n.lineNumber||this.minReservedLineCount!==n.minReservedLineCount?!1:Bi(this.additionalLines,n.additionalLines,nm())}},fH=class extends O{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}get viewZoneHeight(){return this._viewZoneHeight}constructor(n,e,t,i){super(),this._editor=n,this._lines=e,this._shouldKeepCursorStable=t,this._isClickable=i,this._viewZoneHeight=Ne("viewZoneHeight",void 0),this.editorOptionsChanged=Zd("editorOptionChanged",qe.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 Q),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new Je),this.isHovered=Be(this._editor).isTargetHovered(s=>rC(s.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof Wm&&this._shouldKeepCursorStable&&this._register(this._editor.onBeforeExecuteEdit(s=>this.hasBeenAccepted=s.source==="inlineSuggestion.accept")),this._register(he(s=>{const o=this._lines.read(s);this.editorOptionsChanged.read(s),o?(this.hasBeenAccepted=!1,this.updateLines(o.lineNumber,o.additionalLines,o.minReservedLineCount)):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones(n=>{this.removeActiveViewZone(n)})}updateLines(n,e,t){const i=this._editor.getModel();if(!i)return;const{tabSize:s}=i.getOptions();Be(this._editor).transaction(o=>{this._editor.changeViewZones(r=>{const a=new A;this.removeActiveViewZone(r);const l=Math.max(e.length,t);if(l>0){const d=document.createElement("div");_H(d,s,e,this._editor.getOptions(),this._isClickable),this._isClickable&&(a.add(de(d,"mousedown",c=>{c.preventDefault()})),a.add(de(d,"click",c=>{rC(c.target)&&this._onDidClick.fire(new dm(Ht(c),c))}))),this.addViewZone(r,n,l,d)}this._viewZoneListener.value=a})})}addViewZone(n,e,t,i){const s=n.addZone({afterLineNumber:e,heightInLines:t,domNode:i,afterColumnAffinity:1,onComputedHeight:o=>{this._viewZoneHeight.set(o,void 0)}});this.keepCursorStable(e,t),this._viewZoneInfo={viewZoneId:s,heightInLines:t,lineNumber:e}}removeActiveViewZone(n){this._viewZoneInfo&&(n.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(n,e){if(!this._shouldKeepCursorStable)return;const t=this._editor.getSelection()?.getStartPosition()?.lineNumber;t!==void 0&&n<t&&this._editor.setScrollTop(this._editor.getScrollTop()+e*this._editor.getOption(75))}};function rC(n){return es(n)&&n.classList.contains($I)}var mH=class{constructor(n,e){this.content=n,this.decorations=e}equals(n){return this.content.equals(n.content)?cr.equalsArr(this.decorations,n.decorations):!1}};function _H(n,e,t,i,s){const o=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 u="suggest-preview-text";s&&(u+=" clickable");const g=new lw(1e4);g.appendString(`<div class="${u}">`);for(let f=0,_=t.length;f<_;f++){const v=t[f],C=v.content;g.appendString('<div class="view-line'),g.appendString('" style="top:'),g.appendString(String(f*h)),g.appendString('px;width:1000000px;">');const x=C.getLineContent(),I=yw(x),b=EE(x);Lw(new Sw(c.isMonospace&&!o,c.canUseHalfwidthRightwardsArrow,x,!1,I,b,0,C,v.decorations.slice(),e,0,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,r,a,l,d!==N0.OFF,null,null,0),g),g.appendString("</div>")}g.appendString("</div>"),nw(n,c);const p=g.build();n.innerHTML=aC?aC.createHTML(p):p}var aC=mw("editorGhostText",{createHTML:n=>n}),L_=class KI{constructor(e,t){this.width=e,this.height=t}toString(){return`(${this.width},${this.height})`}transpose(){return new KI(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}},ot=class wt{static fromPoints(e,t){return new wt(e.x,e.y,t.x,t.y)}static fromPointSize(e,t){return new wt(e.x,e.y,e.x+t.x,e.y+t.y)}static fromLeftTopRightBottom(e,t,i,s){return new wt(e,t,i,s)}static fromLeftTopWidthHeight(e,t,i,s){return new wt(e,t,e+i,t+s)}static fromRanges(e,t){return new wt(e.start,t.start,e.endExclusive,t.endExclusive)}static hull(e){let t=Number.MAX_SAFE_INTEGER,i=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER;for(const r of e)t=Math.min(t,r.left),i=Math.min(i,r.top),s=Math.max(s,r.right),o=Math.max(o,r.bottom);return new wt(t,i,s,o)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(e,t,i,s){if(this.left=e,this.top=t,this.right=i,this.bottom=s,e>i)throw new gt("Invalid arguments: Horizontally offset by "+(e-i));if(t>s)throw new gt("Invalid arguments: Vertically offset by "+(t-s))}withMargin(e,t,i,s){let o,r,a,l;return t===void 0&&i===void 0&&s===void 0?o=r=a=l=e:i===void 0&&s===void 0?(o=r=t,a=l=e):(o=s,r=t,a=e,l=i),new wt(this.left-o,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 wt(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 wt(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),s=Math.max(this.top,e.top),o=Math.min(this.bottom,e.bottom);if(!(t>i||s>o))return new wt(t,s,i,o)}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 s=this.left,o=this.top;return s<e.left?s=e.left:s+t>e.right&&(s=e.right-t),o<e.top?o=e.top:o+i>e.bottom&&(o=e.bottom-i),new wt(s,o,s+t,o+i)}withWidth(e){return new wt(this.left,this.top,this.left+e,this.bottom)}withHeight(e){return new wt(this.left,this.top,this.right,this.top+e)}withTop(e){return new wt(this.left,e,this.right,this.bottom)}withLeft(e){return new wt(e,this.top,this.right,this.bottom)}translateX(e){return new wt(this.left+e,this.top,this.right+e,this.bottom)}translateY(e){return new wt(this.left,this.top+e,this.right,this.bottom+e)}getLeftBottom(){return new xi(this.left,this.bottom)}getRightBottom(){return new xi(this.right,this.bottom)}getRightTop(){return new xi(this.right,this.top)}toStyles(){return{position:"absolute",left:`${this.left}px`,top:`${this.top}px`,width:`${this.width}px`,height:`${this.height}px`}}withHorizontalRange(e){return new wt(e.start,this.top,e.endExclusive,this.bottom)}getSize(){return new L_(this.width,this.height)}},_u=class GI{constructor(e,t,i,s=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=i,this.showEndForLine=s}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&Bi(this.startLineNumbers,e.startLineNumbers)&&Bi(this.endLineNumbers,e.endLineNumbers)}static get Empty(){return new GI([],[],0)}},lC=mw("stickyScrollViewLayer",{createHTML:n=>n}),Jp="data-sticky-line-index",ZI="data-sticky-is-line",vH="data-sticky-is-line-number",XI="data-sticky-is-folding-icon",bH=class extends O{get height(){return this._height}constructor(n){super(),this._foldingIconStore=this._register(new A),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 Q),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=n,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",n instanceof rn),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);const e=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(t=>{t.hasChanged(131)&&e()})),this._register(this._editor.onDidScrollChange(t=>{t.scrollLeftChanged&&e(),t.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{e(),this._updateWidgetWidth()})),e(),this._register(this._editor.onDidLayoutChange(t=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(n){return this._renderedStickyLines.find(e=>e.lineNumber===n)}getCurrentLines(){return this._lineNumbers}setState(n,e,t){const i=!this._state&&!n,s=this._state&&this._state.equals(n);if(t===void 0&&(i||s))return;const o=this._findRenderingData(n),r=this._lineNumbers;this._lineNumbers=o.lineNumbers,this._lastLineRelativePosition=o.lastLineRelativePosition;const a=this._findIndexToRebuildFrom(r,this._lineNumbers,t);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,e,a),this._state=n}_findRenderingData(n){if(!n)return{lineNumbers:[],lastLineRelativePosition:0};const e=[...n.startLineNumbers];n.showEndForLine!==null&&(e[n.showEndForLine]=n.endLineNumbers[n.showEndForLine]);let t=0;for(let i=0;i<e.length;i++)t+=this._editor.getLineHeightForPosition(new B(e[i],1));return t===0?{lineNumbers:[],lastLineRelativePosition:0}:{lineNumbers:e,lastLineRelativePosition:n.lastLineRelativePosition}}_findIndexToRebuildFrom(n,e,t){if(e.length===0)return 0;if(t!==void 0)return t;const i=e.findIndex(s=>!n.includes(s));return i===-1?0:i}_updateWidgetWidth(){const n=this._editor.getLayoutInfo(),e=n.contentLeft;this._lineNumbersDomNode.style.width=`${e}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-n.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${n.width-n.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(n){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${n?.5:0}s`)}_setFoldingIconsVisibility(n){for(const e of this._renderedStickyLines){const t=e.foldingIcon;t&&t.setVisible(n?!0:t.isCollapsed)}}async _renderRootNode(n,e,t,i){const s=this._editor._getViewModel();if(!s){this._clearWidget();return}if(n.length===0){this._clearWidget();return}const o=[],r=n[n.length-1];let a=0;for(let d=0;d<this._renderedStickyLines.length;d++)if(d<i){const c=this._renderedStickyLines[d];o.push(this._updatePosition(c,a,c.lineNumber===r)),a+=c.height}else{const c=this._renderedStickyLines[d];c.lineNumberDomNode.remove(),c.lineDomNode.remove()}const l=this._editor.getLayoutInfo();for(let d=i;d<n.length;d++){const c=this._renderChildNode(s,d,n[d],a,r===n[d],t,l);a+=c.height,this._linesDomNode.appendChild(c.lineDomNode),this._lineNumbersDomNode.appendChild(c.lineNumberDomNode),o.push(c)}t&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin)),this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(d=>d.scrollWidth))+l.verticalScrollbarWidth,this._renderedStickyLines=o,this._setHeight(a+e),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let n=0;n<this._renderedStickyLines.length;n++){const e=this._renderedStickyLines[n];e.lineNumberDomNode.remove(),e.lineDomNode.remove()}this._setHeight(0)}_setHeight(n){this._height!==n&&(this._height=n,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(de(this._lineNumbersDomNode,Ae.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(de(this._lineNumbersDomNode,Ae.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(n,e,t,i,s,o,r){const a=new CH(this._editor,n,r,o,this._isOnGlyphMargin,e,t);return this._updatePosition(a,i,s)}_updatePosition(n,e,t){const i=n.lineDomNode,s=n.lineNumberDomNode;if(t){i.style.zIndex="0",s.style.zIndex="0";const r=`${e+this._lastLineRelativePosition+(n.foldingIcon?.isCollapsed?1:0)}px`;i.style.top=r,s.style.top=r}else i.style.zIndex="1",s.style.zIndex="1",i.style.top=`${e}px`,s.style.top=`${e}px`;return n}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(n){0<=n&&n<this._renderedStickyLines.length&&this._renderedStickyLines[n].lineDomNode.focus()}getEditorPositionFromNode(n){if(!n||n.children.length>0)return null;const e=this._getRenderedStickyLineFromChildDomNode(n);if(!e)return null;const t=z0(e.characterMapping,n,0);return new B(e.lineNumber,t)}getLineNumberFromChildDomNode(n){return this._getRenderedStickyLineFromChildDomNode(n)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(n){const e=this.getLineIndexFromChildDomNode(n);return e===null||e<0||e>=this._renderedStickyLines.length?null:this._renderedStickyLines[e]}getLineIndexFromChildDomNode(n){const e=this._getAttributeValue(n,Jp);return e?parseInt(e,10):null}isInStickyLine(n){return this._getAttributeValue(n,ZI)!==void 0}isInFoldingIconDomNode(n){return this._getAttributeValue(n,XI)!==void 0}_getAttributeValue(n,e){for(;n&&n!==this._rootDomNode;){const t=n.getAttribute(e);if(t!==null)return t;n=n.parentElement}}},CH=class{constructor(n,e,t,i,s,o,r){this.index=o,this.lineNumber=r;const a=e.coordinatesConverter.convertModelPositionToViewPosition(new B(r,1)).lineNumber,l=e.getViewLineRenderingData(a),d=n.getOption(76),c=n.getOption(117).verticalScrollbarSize;let h;try{h=cr.filter(l.inlineDecorations,a,l.minColumn,l.maxColumn)}catch{h=[]}const u=n.getLineHeightForPosition(new B(r,1)),g=e.getTextDirection(r),p=new Sw(!0,!0,l.content,l.continuesWithWrappedLine,l.isBasicASCII,l.containsRTL,0,l.tokens,h,l.tabSize,l.startVisibleColumn,1,1,1,500,"none",!0,!0,null,g,c),f=new lw(2e3),_=Lw(p,f);this.characterMapping=_.characterMapping;let v;lC?v=lC.createHTML(f.build()):v=f.build();const C=document.createElement("span");C.setAttribute(Jp,String(o)),C.setAttribute(ZI,""),C.setAttribute("role","listitem"),C.tabIndex=0,C.className="sticky-line-content",C.classList.add(`stickyLine${r}`),C.style.lineHeight=`${u}px`,C.innerHTML=v;const x=document.createElement("span");x.setAttribute(Jp,String(o)),x.setAttribute(vH,""),x.className="sticky-line-number",x.style.lineHeight=`${u}px`;const I=t.contentLeft;x.style.width=`${I}px`;const b=document.createElement("span");d.renderType===1||d.renderType===3&&r%10===0?b.innerText=r.toString():d.renderType===2&&(b.innerText=Math.abs(r-n.getPosition().lineNumber).toString()),b.className="sticky-line-number-inner",b.style.width=`${t.lineNumbersWidth}px`,b.style.paddingLeft=`${t.lineNumbersLeft}px`,x.appendChild(b),this.foldingIcon=this._renderFoldingIconForLine(n,i,r,u,s),this.foldingIcon&&(x.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${t.lineNumbersWidth+t.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${u}px`),n.applyFontInfo(C),n.applyFontInfo(x),x.style.lineHeight=`${u}px`,C.style.lineHeight=`${u}px`,x.style.height=`${u}px`,C.style.height=`${u}px`,this.scrollWidth=C.scrollWidth,this.lineDomNode=C,this.lineNumberDomNode=x,this.height=u}_renderFoldingIconForLine(n,e,t,i,s){const o=n.getOption(126);if(!e||o==="never")return;const r=e.regions,a=r.findRange(t),l=r.getStartLineNumber(a);if(t!==l)return;const d=r.isCollapsed(a),c=new SH(d,l,r.getEndLineNumber(a),i);return c.setVisible(s?!0:d||o==="always"),c.domNode.setAttribute(XI,""),c}},SH=class{constructor(n,e,t,i){this.isCollapsed=n,this.foldingStartLine=e,this.foldingEndLine=t,this.dimension=i,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${i}px`,this.domNode.style.lineHeight=`${i}px`,this.domNode.className=pe.asClassName(n?mc:fc)}setVisible(n){this.domNode.style.cursor=n?"pointer":"default",this.domNode.style.opacity=n?"1":"0"}},xa=class{constructor(n,e){this.startLineNumber=n,this.endLineNumber=e}},Ec=class{constructor(n,e,t){this.range=n,this.children=e,this.parent=t}},YI=class{constructor(n,e,t,i){this.uri=n,this.version=e,this.element=t,this.outlineProviderId=i}},Eh=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ja=function(n,e){return function(t,i){e(t,i,n)}},Ia;(function(n){n.OUTLINE_MODEL="outlineModel",n.FOLDING_PROVIDER_MODEL="foldingProviderModel",n.INDENTATION_MODEL="indentationModel"})(Ia||(Ia={}));var ss;(function(n){n[n.VALID=0]="VALID",n[n.INVALID=1]="INVALID",n[n.CANCELED=2]="CANCELED"})(ss||(ss={}));var Qp=class extends O{constructor(e,t,i,s){switch(super(),this._editor=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new _s(300)),this._updateOperation=this._register(new A),this._editor.getOption(131).defaultModel){case Ia.OUTLINE_MODEL:this._modelProviders.push(new ef(this._editor,s));case Ia.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new nf(this._editor,t,s));case Ia.INDENTATION_MODEL:this._modelProviders.push(new tf(this._editor,i))}}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:s}=t.computeStickyModel(e);this._modelPromise=s;const o=await i;if(this._modelPromise!==s)return null;switch(o){case ss.CANCELED:return this._updateOperation.clear(),null;case ss.VALID:return t.stickyModel}}return null}).catch(t=>(we(t),null))}};Qp=Eh([Ja(2,ie),Ja(3,Z)],Qp);var JI=class extends O{constructor(n){super(),this._editor=n,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,ss.INVALID}computeStickyModel(n){if(n.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const e=pt(t=>this.createModelFromProvider(t));return{statusPromise:e.then(t=>this.isModelValid(t)?n.isCancellationRequested?ss.CANCELED:(this._stickyModel=this.createStickyModel(n,t),ss.VALID):this._invalid()).then(void 0,t=>(we(t),ss.CANCELED)),modelPromise:e}}isModelValid(n){return!0}isProviderValid(){return!0}},ef=class extends JI{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Kx.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){const{stickyOutlineElement:i,providerID:s}=this._stickyModelFromOutlineModel(t,this._stickyModel?.outlineProviderId),o=this._editor.getModel();return new YI(o.uri,o.getVersionId(),i,s)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(cs.first(e.children.values())instanceof $x){const r=cs.find(e.children.values(),a=>a.id===t);if(r)i=r.children;else{let a="",l=-1,d;for(const[c,h]of e.children.entries()){const u=this._findSumOfRangesOfGroup(h);u>l&&(d=h,l=u,a=h.id)}t=a,i=d.children}}else i=e.children;const s=[],o=Array.from(i.values()).sort((r,a)=>{const l=new xa(r.symbol.range.startLineNumber,r.symbol.range.endLineNumber),d=new xa(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber);return this._comparator(l,d)});for(const r of o)s.push(this._stickyModelFromOutlineElement(r,r.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new Ec(void 0,s,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const o of e.children.values())if(o.symbol.selectionRange.startLineNumber!==o.symbol.range.endLineNumber)if(o.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(o,o.symbol.selectionRange.startLineNumber));else for(const r of o.children.values())i.push(this._stickyModelFromOutlineElement(r,o.symbol.selectionRange.startLineNumber));i.sort((o,r)=>this._comparator(o.range,r.range));const s=new xa(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new Ec(s,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 pp?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};ef=Eh([Ja(1,Z)],ef);var QI=class extends JI{constructor(n){super(n),this._foldingLimitReporter=this._register(new zx(n))}createStickyModel(n,e){const t=this._fromFoldingRegions(e),i=this._editor.getModel();return new YI(i.uri,i.getVersionId(),t,void 0)}isModelValid(n){return n!==null}_fromFoldingRegions(n){const e=n.length,t=[],i=new Ec(void 0,[],void 0);for(let s=0;s<e;s++){const o=n.getParentIndex(s);let r;o!==-1?r=t[o]:r=i;const a=new Ec(new xa(n.getStartLineNumber(s),n.getEndLineNumber(s)+1),[],r);r.children.push(a),t.push(a)}return i}},tf=class extends QI{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new m_(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};tf=Eh([Ja(1,ct)],tf);var nf=class extends QI{constructor(e,t,i){super(e),this._languageFeaturesService=i,this.provider=this._register(new Je),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(e,t)})),this._updateProvider(e,t)}_updateProvider(e,t){const i=Ss.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());i.length!==0&&(this.provider.value=new __(e.getModel(),i,t,this._foldingLimitReporter,void 0))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){return this.provider.value?.compute(e)??null}};nf=Eh([Ja(2,Z)],nf);var wH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},dC=function(n,e){return function(t,i){e(t,i,n)}},yH=class{constructor(n,e,t,i){this.startLineNumber=n,this.endLineNumber=e,this.top=t,this.height=i}},sf=class extends O{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new Q),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new A),this._updateSoon=this._register(new at(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(s=>{s.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 Qp(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){this._cts?.dispose(!0),this._cts=new st,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,s,o,r){const a=this._editor.getModel();if(!a||t.children.length===0)return;let l=r;const d=[];for(let u=0;u<t.children.length;u++){const g=t.children[u];g.range&&d.push(g.range.startLineNumber)}const c=this.updateIndex(Ku(d,e.startLineNumber,(u,g)=>u-g)),h=this.updateIndex(Ku(d,e.endLineNumber,(u,g)=>u-g));for(let u=c;u<=h;u++){const g=t.children[u];if(!g||!g.range)continue;const{startLineNumber:p,endLineNumber:f}=g.range;if(f>p+1&&e.startLineNumber<=f+1&&p-1<=e.endLineNumber&&p!==l&&a.isValidRange(new y(p,1,f,1))){l=p;const _=this._editor.getLineHeightForPosition(new B(p,1));i.push(new yH(p,f-1,o,_)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,g,i,s+1,o+_,p)}}}filterHiddenRanges(e){const t=this._editor._getViewModel()?.getHiddenAreas();return t?e.filter(i=>!t.some(s=>i.startLineNumber>=s.startLineNumber&&i.endLineNumber<=s.endLineNumber+1)):e}updateIndex(e){return e===-1?0:e<0?-e-2:e}};sf=wH([dC(1,Z),dC(2,ct)],sf);var xH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Oo=function(n,e){return function(t,i){e(t,i,n)}},of,Ei=class extends O{static{of=this}static{this.ID="store.contrib.stickyScrollController"}constructor(e,t,i,s,o,r,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=s,this._contextKeyService=a,this._sessionStore=new A,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 Q),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new bH(this._editor),this._stickyLineCandidateProvider=new sf(this._editor,i,o),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=_u.Empty;const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight(c=>{c.changes.forEach(h=>{const u=h.lineNumber;this._widgetState.startLineNumbers.includes(u)&&this._renderStickyScroll(u)})})),this._register(this._editor.onDidChangeFont(c=>{c.changes.forEach(h=>{const u=h.lineNumber;this._widgetState.startLineNumbers.includes(u)&&this._renderStickyScroll(u)})})),this._register(this._editor.onDidChangeConfiguration(c=>{this._readConfigurationChange(c)})),this._register(de(l,Ae.CONTEXT_MENU,async c=>{this._onContextMenu(Ht(l),c)})),this._stickyScrollFocusedContextKey=S.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=S.stickyScrollVisible.bindTo(this._contextKeyService);const d=this._register(ls(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(de(l,Ae.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(of.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 A,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(y.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new A),t=this._register(new fh(this._editor,{extractLineNumberFromMouseEvent:o=>{const r=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);return r?r.lineNumber:0}})),i=o=>{if(!this._editor.hasModel()||o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return null;const r=o.target.element;if(!r||r.innerText!==r.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(r);return a?{range:new y(a.lineNumber,a.column,a.lineNumber,a.column+r.innerText.length),textElement:r}:null},s=this._stickyScrollWidget.getDomNode();this._register(bs(s,Ae.CLICK,o=>{if(o.ctrlKey||o.altKey||o.metaKey||!o.leftButton)return;if(o.shiftKey){const a=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(a===null)return;const l=new B(this._endLineNumbers[a],1);this._revealLineInCenterIfOutsideViewport(l);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(o.target)){const a=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);this._toggleFoldingRegionForLine(a);return}if(!this._stickyScrollWidget.isInStickyLine(o.target))return;let r=this._stickyScrollWidget.getEditorPositionFromNode(o.target);if(!r){const a=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);if(a===null)return;r=new B(a,1)}this._revealPosition(r)})),this._register(de(_d,Ae.MOUSE_MOVE,o=>{this._mouseTarget=o.target,this._onMouseMoveOrKeyDown(o)})),this._register(de(_d,Ae.KEY_DOWN,o=>{this._onMouseMoveOrKeyDown(o)})),this._register(de(_d,Ae.KEY_UP,()=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([o,r])=>{const a=i(o);if(!a||!o.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 st;e.add(ke(()=>c.dispose(!0)));let h;Il(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new B(l.startLineNumber,l.startColumn+1),!1,c.token).then((u=>{if(!c.token.isCancellationRequested)if(u.length!==0){this._candidateDefinitionsLength=u.length;const g=d;h!==g?(e.clear(),h=g,h.style.textDecoration="underline",e.add(ke(()=>{h.style.textDecoration="none"}))):h||(h=g,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 o=>{if(o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return;const r=this._stickyScrollWidget.getEditorPositionFromNode(o.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(Dx,o,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const i=new dm(e,t);this._contextMenuService.showContextMenu({menuId:$.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;g_(this._foldingModel,1,[e]),i.isCollapsed=!i.isCollapsed;const s=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(75)*t.index+1;this._editor.setScrollTop(s),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(t=>{t.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(t=>this._onTokensChange(t))),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(t=>{this._positionLineNumber!==t.position.lineNumber&&(this._positionLineNumber=t.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 s of e.ranges)if(i>=s.fromLineNumber&&i<=s.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const e=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(e*.25),this._renderStickyScroll(0)}async _renderStickyScroll(e){const t=this._editor.getModel();if(!t||t.isTooLargeForTokenization()){this._resetState();return}const i=this._updateAndGetMinRebuildFromLine(e),s=this._stickyLineCandidateProvider.getVersionId();if(s===void 0||s===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 o=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(i),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(o)||(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 Ss.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=_u.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 s=[],o=[],r=this._editor.getVisibleRanges();if(r.length!==0){const a=new xa(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,u=d.top,g=u+d.height,p=this._editor.getTopForLineNumber(c)-t,f=this._editor.getBottomForLineNumber(h)-t;if(u>p&&u<=f&&(s.push(c),o.push(h+1),g>f&&(i=f-g)),s.length===e)break}}return this._endLineNumbers=o,new _u(s,o,i,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Ei=of=xH([Oo(1,gl),Oo(2,Z),Oo(3,ie),Oo(4,ct),Oo(5,Ri),Oo(6,ve)],Ei);var La=H("inlineEdit.originalBackground",nt(Ys,.2),m(1266,"Background color for the original text in inline edits."),!0),eL=H("inlineEdit.modifiedBackground",nt($o,.3),m(1267,"Background color for the modified text in inline edits."),!0);H("inlineEdit.originalChangedLineBackground",nt(Ys,.8),m(1268,"Background color for the changed lines in the original text of inline edits."),!0);var IH=H("inlineEdit.originalChangedTextBackground",nt(Ys,.8),m(1269,"Overlay color for the changed text in the original text of inline edits."),!0),LH=H("inlineEdit.modifiedChangedLineBackground",{light:nt(Pl,.7),dark:nt(Pl,.7),hcDark:Pl,hcLight:Pl},m(1270,"Background color for the changed lines in the modified text of inline edits."),!0),DH=H("inlineEdit.modifiedChangedTextBackground",nt($o,.7),m(1271,"Overlay color for the changed text in the modified text of inline edits."),!0),Qa=H("inlineEdit.gutterIndicator.primaryForeground",RS,m(1272,"Foreground color for the primary inline edit gutter indicator.")),os=H("inlineEdit.gutterIndicator.primaryBorder",KS,m(1273,"Border color for the primary inline edit gutter indicator.")),Rl=H("inlineEdit.gutterIndicator.primaryBackground",{light:nt(os,.5),dark:nt(os,.4),hcDark:nt(os,.4),hcLight:nt(os,.5)},m(1274,"Background color for the primary inline edit gutter indicator.")),EH=H("inlineEdit.gutterIndicator.secondaryForeground",md,m(1275,"Foreground color for the secondary inline edit gutter indicator.")),RH=H("inlineEdit.gutterIndicator.secondaryBorder",Mm,m(1276,"Border color for the secondary inline edit gutter indicator.")),D_=H("inlineEdit.gutterIndicator.secondaryBackground",ng,m(1277,"Background color for the secondary inline edit gutter indicator.")),TH=H("inlineEdit.gutterIndicator.successfulForeground",RS,m(1278,"Foreground color for the successful inline edit gutter indicator.")),tL=H("inlineEdit.gutterIndicator.successfulBorder",KS,m(1279,"Border color for the successful inline edit gutter indicator.")),E_=H("inlineEdit.gutterIndicator.successfulBackground",tL,m(1280,"Background color for the successful inline edit gutter indicator.")),NH=H("inlineEdit.gutterIndicator.background",{hcDark:nt("tab.inactiveBackground",.5),hcLight:nt("tab.inactiveBackground",.5),dark:nt("tab.inactiveBackground",.5),light:"#5f5f5f18"},m(1281,"Background color for the inline edit gutter indicator.")),pa=H("inlineEdit.originalBorder",{light:Ys,dark:Ys,hcDark:Ys,hcLight:Ys},m(1282,"Border color for the original text in inline edits.")),fa=H("inlineEdit.modifiedBorder",{light:yn($o,.6),dark:$o,hcDark:$o,hcLight:$o},m(1283,"Border color for the modified text in inline edits.")),kH=H("inlineEdit.tabWillAcceptModifiedBorder",{light:yn(fa,0),dark:yn(fa,0),hcDark:yn(fa,0),hcLight:yn(fa,0)},m(1284,"Modified border color for the inline edits widget when tab will accept it.")),PH=H("inlineEdit.tabWillAcceptOriginalBorder",{light:yn(pa,0),dark:yn(pa,0),hcDark:yn(pa,0),hcLight:yn(pa,0)},m(1285,"Original border color for the inline edits widget over the original text when tab will accept it."));function el(n){return n.map(e=>e===Ye.Accept?kH:fa)}function Rh(n){return n.map(e=>e===Ye.Accept?PH:pa)}function Rt(n,e){let t;typeof n=="string"?t=tr(n,e):t=n.map((s,o)=>tr(s,e).read(o));const i=tr(Gd,e);return t.map((s,o)=>s.makeOpaque(i.read(o)))}function ys(n){let e;switch(n){case ut.TextEditor:e=Gd;break;case ut.DiffEditor:e=Gd;break;case ut.Notebook:e="notebook.cellEditorBackground";break;default:lm(n,"Not supported editor type yet")}return ye(e)}function tr(n,e){return uT({owner:{observeColor:n},equalsFn:(t,i)=>t.equals(i),debugName:()=>`observeColor(${n})`},e.onDidColorThemeChange,()=>{const t=e.getColorTheme().getColor(n);if(!t)throw new gt(`Missing color: ${n}`);return t})}function In(n,e,t){const i=n.model.read(t);if(!i)return 0;let s=0;for(let r=e.startLineNumber;r<e.endLineNumberExclusive;r++){const a=n.getWidthOfLine(r,t);s=Math.max(s,a)}const o=e.mapToLineArray(r=>i.getLineContent(r));return s<5&&o.some(r=>r.length>0)&&i.uri.scheme!=="file"&&console.log("unexpected width"),s}function OH(n,e,t){Zd(n,n.editor.onDidChangeLineHeight).read(t);const i=n.model.read(t);if(!i)throw new gt("Model is required");const s=[];for(let o=e.startLineNumber;o<e.endLineNumberExclusive;o++){let r=n.getWidthOfLine(o,t);r===-1&&(r=i.getLineMaxColumn(o)*n.editor.getOption(59).typicalHalfwidthCharacterWidth);const a=n.editor.getLineHeightForPosition(new B(o,1));s.push(new L_(r,a))}return s}function MH(n,e,t){return n.layoutInfo.read(t),n.value.read(t),n.model.read(t)?(n.scrollTop.read(t),n.editor.getOffsetForColumn(e.lineNumber,e.column)):0}function R_(n,e,t,i,s=void 0){const o=i.getModel();if(!o)return{prefixTrim:0,prefixLeftOffset:0};const r=n.map(h=>h.isSingleLine()?h.startColumn-1:0),a=e.mapToLineArray(h=>wv(o.getLineContent(h))),l=t.filter(h=>h!=="").map(h=>wv(h)),d=Math.min(...r,...a,...l);let c;if(o.getLineIndentColumn(e.startLineNumber)>=d+1)Be(i).scrollTop.read(s),c=i.getOffsetForColumn(e.startLineNumber,d+1);else if(t.length>0)c=T_(t[0].slice(0,d),i,o);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:d,prefixLeftOffset:c}}function T_(n,e,t){const i=e.getOption(59).typicalHalfwidthCharacterWidth,s=t.getOptions().tabSize*i,o=n.split(" ").length-1;return(n.length-o)*i+o*s}function N_(n){const e=n.layoutInfoContentLeft,t=T({name:"editor.validOverlay.width"},s=>{const o=n.layoutInfoMinimap.read(s).minimapLeft!==0,r=Math.max(0,n.layoutInfoWidth.read(s)-e.read(s));if(o){const a=n.layoutInfoMinimap.read(s).minimapWidth+n.layoutInfoVerticalScrollbarWidth.read(s);return Math.max(0,r-a)}return r}),i=T({name:"editor.validOverlay.height"},s=>n.layoutInfoHeight.read(s)+n.contentHeight.read(s));return T({name:"editor.validOverlay"},s=>ot.fromLeftTopWidthHeight(e.read(s),0,t.read(s),i.read(s)))}function AH(n,e){const t=[];for(const i of n){const s=e.mapRange(i.modifiedRange);t.push(new vS(i.originalRange,s))}return t}function Ad(...n){return n.filter(e=>typeof e=="string").join(" ")}function FH(n,e){return new y(e.lineNumber,e.column+n.start,e.lineNumber,e.column+n.endExclusive)}function HH(n,e){let t=0;e:for(let i=0,s=n.length;i<s;i++)switch(n.charCodeAt(i)){case 9:t+=e;break;case 32:t++;break;default:break e}return t-t%e}function WH(n,e,t){let i=e-e%t,s=0;for(;s<n.length&&i!==0;s++)switch(n.charCodeAt(s)){case 9:i-=t;break;case 32:i--;break;default:throw new gt("Unexpected character found while calculating indent length")}return s}function VH(n,e,t){const i=kn(n),s=[],o=nE(e.mapToLineArray(r=>HH(i[r-1],t)),oo);return e.forEach(r=>{const a=WH(i[r-1],o,t);s.push(new He(FH(new je(0,a),new B(r,1)),""))}),new wn(s)}var rf=class{constructor(){this._data=""}moveTo(n){return this._data+=`M ${n.x} ${n.y} `,this}lineTo(n){return this._data+=`L ${n.x} ${n.y} `,this}build(){return this._data}};function an(n){const e=Ts(void 0,(t,i)=>n.read(t)||i);return Yi({debugName:()=>`${n.debugName}.mapOutFalsy`},t=>{if(e.read(t),!!n.read(t))return e})}function Ft(n,e=Yc.ofCaller()){return{left:T({name:"editor.validOverlay.left"},t=>n(t)?.left,e),top:T({name:"editor.validOverlay.top"},t=>n(t)?.top,e),width:T({name:"editor.validOverlay.width"},t=>{const i=n(t);if(i)return i.width},e),height:T({name:"editor.validOverlay.height"},t=>{const i=n(t);if(i)return i.height},e)}}function BH(n,e){const t=n.getContainerDomNode(),i=Ne("domRect",t.getBoundingClientRect());return e.add(n.onDidLayoutChange(s=>{i.set(t.getBoundingClientRect(),void 0)})),i}var UH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},vu=function(n,e){return function(t,i){e(t,i,n)}},af=class{constructor(e,t,i,s,o,r){this._editorObs=e,this._data=t,this._close=i,this._contextKeyService=s,this._keybindingService=o,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=f=>({title:f.title,icon:f.icon,keybinding:typeof f.commandId=="string"?this._getKeybinding(f.commandArgs?void 0:f.commandId):T(this,_=>typeof f.commandId=="string"?void 0:this._getKeybinding(f.commandArgs?void 0:f.commandId.read(_)).read(_)),isActive:e.map(_=>_===f.id),onHoverChange:_=>e.set(_?f.id:void 0,void 0),onAction:()=>{const _=typeof f.commandId=="string"?f.commandId:f.commandId.get();return this._close(!0,_),this._commandService.executeCommand(_,...f.commandArgs??[])}}),i=this._data.extensionCommands.map(f=>f.map((_,v)=>jn(t({id:_.command.id+"_"+v,title:_.command.title,icon:_.icon??V.symbolEvent,commandId:_.command.id,commandArgs:_.command.arguments})))),s=[];for(const f of i)f.length>0&&(s.push(bu()),s.push(...f));if(this._data.extensionCommandsOnly)return cC(s.slice(1));const o=zH(this._data.displayName),r=jn(t({id:"gotoAndAccept",title:m(1256,"Go To / Accept"),icon:V.check,commandId:yl})),a=jn(t({id:"reject",title:m(1257,"Reject"),icon:V.close,commandId:Ay})),l=this._data.alternativeAction?jn(t({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:uh})):void 0,d=[],c=this._inlineEditsShowCollapsed.map(f=>jn(t(f?{id:"showExpanded",title:m(1258,"Show Expanded"),icon:V.expandAll,commandId:xg}:{id:"showCollapsed",title:m(1259,"Show Collapsed"),icon:V.collapseAll,commandId:xg}))),h=jn(t({id:"snooze",title:m(1260,"Snooze"),icon:V.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),u=jn(t({id:"settings",title:m(1261,"Settings"),icon:V.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),g=this._data.action?[this._data.action]:[],p=g.length>0?jH(g.map(f=>({id:f.id,label:f.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(f.id,...f.arguments??[]),class:void 0,tooltip:f.tooltip??f.title})),{hoverDelegate:VR}):void 0;return cC([o,r,l,a,c,d.length?bu():void 0,...d,h,u,...s,p?bu():void 0,p])}_getKeybinding(e){return e?Dt(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(e)):Ce(void 0)}};af=UH([vu(3,ve),vu(4,Oe),vu(5,ht)],af);function cC(n){return q.div({class:"content",style:{margin:4,minWidth:180}},n)}function zH(n){return q.div({class:"header",style:{color:ye(um),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[n])}function jn(n){return T({name:"inlineEdits.option"},e=>q.div({class:["monaco-menu-option",n.isActive?.map(t=>t&&"active")],onmouseenter:()=>n.onHoverChange?.(!0),onmouseleave:()=>n.onHoverChange?.(!1),onclick:n.onAction,onkeydown:t=>{t.key==="Enter"&&n.onAction?.()},tabIndex:0,style:{borderRadius:3}},[q.elem("span",{style:{fontSize:16,display:"flex"}},[pe.isThemeIcon(n.icon)?tn(n.icon):n.icon.map(t=>tn(t))]),q.elem("span",{},[n.title]),q.div({style:{marginLeft:"auto"},ref:t=>{const i=e.store.add(new hl(t,ml,{disableTitle:!0,...YS,keybindingLabelShadow:void 0,keybindingLabelForeground:ye(um),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));e.store.add(he(s=>{i.set(n.keybinding.read(s))}))}})]))}function jH(n,e){return T({name:"inlineEdits.actionBar"},t=>q.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[q.div({ref:i=>{t.store.add(new fs(i,e)).push(n,{icon:!1,label:!0})}})]))}function bu(){return q.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:ye(kE),padding:"2px 0"}},q.div({style:{borderBottom:`1px solid ${ye(Mm)}`}}))}var qH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jr=function(n,e){return function(t,i){e(t,i,n)}},iL=class{constructor(n,e,t,i,s){this.gutterMenuData=n,this.originalRange=e,this.model=t,this.altAction=i,this.customization=s}},nL=class sL{static fromInlineSuggestion(e){const t=e.action?.kind==="edit"?e.action.alternativeAction:void 0,i=e.source.inlineSuggestions.commands??[];return new sL(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,s,o,r,a=!1){this.action=e,this.displayName=t,this.extensionCommands=i,this.alternativeAction=s,this.modelInfo=o,this.setModelId=r,this.extensionCommandsOnly=a}},oL=class rL{static fromInlineCompletionModel(e){return new rL(()=>e.accept(),()=>e.jump())}constructor(e,t){this.accept=e,this.jump=t}},hC=16,$H=2,Rc=class extends O{constructor(e,t,i,s,o,r,a,l,d,c,h){super(),this._editorObs=e,this._data=t,this._tabAction=i,this._verticalOffset=s,this._isHoveringOverInlineEdit=o,this._focusIsInMenu=r,this._hoverService=a,this._instantiationService=l,this._accessibilityService=d,this._themeService=c,this._userInteractionService=h,this._onDidCloseWithCommand=this._register(new Q),this._modifierPressed=T(this,g=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),g).shiftKey),this._gutterIndicatorStyles=T(this,g=>{let p=this._tabAction.read(g);const f=this._data.read(g)?.altAction,_=this._modifierPressed.read(g);switch(f&&_&&(p=Ye.Inactive),p){case Ye.Inactive:return{background:Rt(D_,this._themeService).read(g).toString(),foreground:Rt(EH,this._themeService).read(g).toString(),border:Rt(RH,this._themeService).read(g).toString()};case Ye.Jump:return{background:Rt(Rl,this._themeService).read(g).toString(),foreground:Rt(Qa,this._themeService).read(g).toString(),border:Rt(os,this._themeService).read(g).toString()};case Ye.Accept:return{background:Rt(E_,this._themeService).read(g).toString(),foreground:Rt(TH,this._themeService).read(g).toString(),border:Rt(tL,this._themeService).read(g).toString()};default:lm()}}),this._state=T(this,g=>{const p=this._originalRangeObs.read(g);if(p)return{range:p,lineOffsetRange:this._editorObs.observeLineOffsetRange(p,g.store)}}),this._lineNumberToRender=T(this,g=>{if(this._verticalOffset.read(g)!==0)return"";const p=this._data.read(g)?.originalRange.startLineNumber,f=this._editorObs.getOption(76).read(g);if(p===void 0||f.renderType===0)return"";if(f.renderType===3){const _=this._editorObs.cursorPosition.read(g);return p%10===0||_&&_.lineNumber===p?p.toString():""}if(f.renderType===2){const _=this._editorObs.cursorPosition.read(g);if(!_)return"";const v=Math.abs(p-_.lineNumber);return v===0?p.toString():v.toString()}return f.renderType===4?f.renderFn?f.renderFn(p):"":p.toString()}),this._availableWidthForIcon=T(this,g=>{const p=this._editorObs.editor.getModel(),f=this._editorObs.editor,_=this._editorObs.layoutInfo.read(g),v=_.decorationsLeft+_.decorationsWidth-_.glyphMarginLeft;if(!p||v<=0)return()=>0;if(_.lineNumbersLeft===0)return()=>v;const C=this._editorObs.getOption(76).read(g);if(C.renderType===2||C.renderType===0)return()=>v;const x=f.getOption(59).typicalHalfwidthCharacterWidth,I=_.lineNumbersLeft+_.lineNumbersWidth,b=(p.getLineCount()+1).toString().length,w=[];for(let E=1;E<=b;E++){const P=10**(E-1),R=f.getTopForLineNumber(P),D=E*x,F=Math.min(v,Math.max(0,I-D-_.glyphMarginLeft));w.push({firstLineNumberWithDigitCount:P,topOfLineNumber:R,usableWidthLeftOfLineNumber:F})}return E=>{for(let P=w.length-1;P>=0;P--)if(E>=w[P].topOfLineNumber)return w[P].usableWidthLeftOfLineNumber;throw new gt("Could not find avilable width for icon")}}),this._layout=T(this,g=>{const p=this._state.read(g);if(!p)return;const f=this._editorObs.layoutInfo.read(g),_=this._editorObs.observeLineHeightForLine(p.range.map(We=>We.startLineNumber)).read(g),v=1,C=2,x=f.decorationsLeft+f.decorationsWidth-f.glyphMarginLeft-2,I=f.height-4,b=ot.fromLeftTopWidthHeight(v,C,x,I),w=b.withTop(this._stickyScrollHeight.read(g)),E=b.withTop(w.top+C),P=p.lineOffsetRange.read(g),R=ot.fromRanges(je.fromTo(E.left,E.right),P),D=_,F=this._verticalOffset.read(g),Y=R.withHeight(D).translateY(F),re=w.containsRect(Y),Me=this._data.read(g)?.customization?.icon,_e=Me?Ce(Me):this._tabAction.map(We=>We===Ye.Accept?V.keyboardTab:V.arrowRight),X=Me?Ce(Me):T(this,We=>this._isHoveredOverIconDebounced.read(We)||this._isHoveredOverInlineEditDebounced.read(We)?V.check:this._tabAction.read(We)===Ye.Accept?V.keyboardTab:(this._editorObs.cursorLineNumber.read(We)??0)<=p.range.read(We).startLineNumber?V.keyboardTabAbove:V.keyboardTabBelow),le=22,Pe=We=>{const St=this._availableWidthForIcon.read(void 0)(We.bottom+this._editorObs.editor.getScrollTop())-v;return Math.max(Math.min(St,le),hC)};if(re){const We=Y;let St;f.lineNumbersWidth===0?St=Math.max(0,Math.min(Math.max(f.lineNumbersLeft-b.left,0),We.width-le)):St=Math.max(f.lineNumbersLeft+f.lineNumbersWidth-b.left,0);const Bn=We.withWidth(St),Pr=18,Or=Math.min(We.width-St,le);return{gutterEditArea:R,icon:X,iconDirection:"right",iconRect:We.withWidth(Math.max(Or,Pr)).translateX(St),iconVisible:Or>=Pr,pillRect:We,lineNumberRect:Bn}}const Ke=b.intersect(R);if(Ke&&Ke.height>=D){const We=Y.moveToBeContainedIn(E).moveToBeContainedIn(Ke),St=We.withWidth(Pe(We));return{gutterEditArea:R,icon:X,iconDirection:"right",iconRect:St,pillRect:St,iconVisible:!0}}const Ie=Y.moveToBeContainedIn(b),oi=Ie.withWidth(Pe(Ie)),Ct=oi;return{gutterEditArea:R,icon:_e,iconDirection:oi.top<Y.top?"top":"bottom",iconRect:Ct,pillRect:oi,iconVisible:!0}}),this._iconRef=q.ref(),this.isVisible=this._layout.map(g=>!!g),this._hoverVisible=Ne(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=Ne(this,!1),this._isHoveredOverIconDebounced=Dv(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=q.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},an(this._layout).map(g=>g?[q.div({style:{position:"absolute",background:ye(NH),borderRadius:"3px",...Ft(p=>g.read(p).gutterEditArea)}}),q.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{const p=this._layout.get()?.icon.get()===V.check,f=this._data.get();if(!f)throw new gt("Gutter indicator data not available");this._editorObs.editor.focus(),p?f.model.accept():f.model.jump()},onmouseenter:()=>{this._showHover()},style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map(p=>p.background),"--vscodeIconForeground":this._gutterIndicatorStyles.map(p=>p.foreground),border:this._gutterIndicatorStyles.map(p=>`1px solid ${p.border}`),boxSizing:"border-box",borderRadius:"3px",display:"flex",justifyContent:g.map(p=>p.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map(p=>p?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Ft(p=>g.read(p).pillRect)}},[q.div({className:"line-number",style:{lineHeight:g.map(p=>p.lineNumberRect?p.lineNumberRect.height:0),display:g.map(p=>p.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:g.map(p=>p.lineNumberRect?p.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map(p=>p.foreground)}},this._lineNumberToRender),q.div({style:{transform:g.map(p=>`rotate(${KH(p.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:g.map(p=>p.iconVisible?"1":"0"),marginRight:g.map(p=>p.pillRect.width-p.iconRect.width-(p.lineNumberRect?.width??0)),width:g.map(p=>p.iconRect.width),position:"relative",right:g.map(p=>p.iconDirection==="top"?"1px":"0"),color:this._data.map(p=>p?.customization?.icon?.color?ye(p.customization.icon.color.id):void 0)}},[g.map((p,f)=>GH(tn(p.icon.read(f)),{fontSize:ZH(Math.min(p.iconRect.width-$H,hC))}))])])]:[])),this._originalRangeObs=an(this._data.map(g=>g?.originalRange)),this._stickyScrollController=Ei.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Dt(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Ce(0),this._isHoveredOverInlineEditDebounced=Dv(this._isHoveringOverInlineEdit,100);const u=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:u.element,position:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:Ce(0)})),this._register(this._editorObs.editor.onMouseMove(g=>{if(this._state.get()===void 0)return;const p=this._iconRef.element.getBoundingClientRect(),f=ot.fromLeftTopWidthHeight(p.left,p.top,p.width,p.height),_=new xi(g.event.posx,g.event.posy);this._isHoveredOverIcon.set(f.containsPoint(_),void 0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(Yo(this._isHoveredOverInlineEditDebounced,g=>{g&&this.triggerAnimation()})),this._register(he(g=>{u.readEffect(g),u.element&&this._editorObs.editor.applyFontInfo(u.element)}))}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map(e=>e.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 gt("Gutter indicator data not available");const t=new A,i=t.add(this._instantiationService.createInstance(af,this._editorObs,e.gutterMenuData,(r,a)=>{r&&this._editorObs.editor.focus(),a&&this._onDidCloseWithCommand.fire(a),o?.dispose()}).toDisposableLiveElement()),s=this._userInteractionService.createFocusTracker(i.element,t);t.add(he(r=>{this._focusIsInMenu.set(s.read(r),void 0)})),t.add(ke(()=>this._focusIsInMenu.set(!1,void 0)));const o=this._hoverService.showInstantHover({target:this._iconRef.element,content:i.element});o?(this._hoverVisible.set(!0,void 0),t.add(this._editorObs.editor.onDidScrollChange(()=>o.dispose())),t.add(o.onDispose(()=>{this._hoverVisible.set(!1,void 0),t.dispose()}))):t.dispose()}};Rc=qH([jr(6,ui),jr(7,ie),jr(8,Rs),jr(9,It),jr(10,$c)],Rc);function KH(n){switch(n){case"top":return 90;case"bottom":return-90;case"right":return 0}}function GH(n,e){for(const t in e)n.style[t]=e[t];return n}function ZH(n){return`${n}px`}var XH=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},uC=function(n,e){return function(t,i){e(t,i,n)}},Zt;(function(n){n.FirstTime="firstTime",n.SecondTime="secondTime",n.Active="active"})(Zt||(Zt={}));var lf=class extends O{constructor(e,t,i,s,o){super(),this._model=e,this._indicator=t,this._collapsedView=i,this._storageService=s,this._configurationService=o,this._disposables=this._register(new Je),this._setupDone=Ne({name:"setupDone"},!1),this._activeCompletionId=T(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()===Zt.Active)return;const e=new A;let t=!1,i=!1,s=0,o=0;return e.add($0(this._activeCompletionId,async(r,a,l,d)=>{if(r===void 0)return;let c=this.getNewUserType();switch(c){case Zt.FirstTime:(s++>=5||t)&&(c=Zt.SecondTime,this.setNewUserType(c));break;case Zt.SecondTime:o++>=3&&i&&(c=Zt.Active,this.setNewUserType(c))}switch(c){case Zt.FirstTime:for(let h=0;h<3&&!d.isCancellationRequested;h++)await this._indicator.get()?.triggerAnimation(),await Xc(500);break;case Zt.SecondTime:this._indicator.get()?.triggerAnimation()}})),e.add(he(r=>{this._collapsedView.isVisible.read(r)&&this.getNewUserType()!==Zt.Active&&this._collapsedView.triggerAnimation()})),e.add(he(r=>{const a=this._indicator.read(r);a&&r.store.add(Yo(a.isHoveredOverIcon,async l=>{l&&(t=!0)}))})),e.add(he(r=>{const a=this._model.read(r);a&&r.store.add(a.onDidAccept(()=>{i=!0}))})),e}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,Zt.FirstTime)}setNewUserType(e){switch(e){case Zt.FirstTime:throw new gt("UserKind should not be set to first time");case Zt.SecondTime:break;case Zt.Active:this._disposables.clear()}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(t=>{t.affectsConfiguration(e)&&this._configurationService.getValue(e)&&(this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience())})}};lf=XH([uC(3,Ti),uC(4,xe)],lf);var YH=class aL{static{this.empty=new aL([])}constructor(e){this.replacements=e,XD($S(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(rt.ofLength(i.lineRange.startLineNumber+t,i.newLines.length)),t+=i.newLines.length-i.lineRange.length;return e}},Cu=class lL{static fromSingleTextEdit(e,t){const i=kn(e.text);let s=e.range.startLineNumber;const o=t.getValueOfRange(y.fromPositions(new B(e.range.startLineNumber,1),e.range.getStartPosition()));i[0]=o+i[0];let r=e.range.endLineNumber+1;const a=t.getTransformer().getLineLength(e.range.endLineNumber)+1,l=t.getValueOfRange(y.fromPositions(e.range.getEndPosition(),new B(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===o.length&&(s++,i.shift()),i.length>0&&s<r&&c&&i[i.length-1].length===l.length&&(r--,i.pop()),new lL(new rt(s,r),i)}constructor(e,t){this.lineRange=e,this.newLines=t}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new YH([this])}},JH=class{get lineEdit(){return this.action?.kind==="jumpTo"?new Cu(rt.ofLength(this.action.position.lineNumber,0),[]):this.action?.kind==="edit"?Cu.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText):new Cu(new rt(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(rt.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(n,e,t,i,s,o,r){this.originalText=n,this.action=e,this.edit=t,this.cursorPosition=i,this.multiCursorPositions=s,this.commands=o,this.inlineCompletion=r}},QH=class{constructor(n,e,t){this._model=n,this.inlineEdit=e,this.tabAction=t,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=T(this,i=>FI(this._model.editor,this.inlineEdit.inlineCompletion,i)),this.onDidAccept=this._model.onDidAccept}accept(n){this._model.accept(void 0,n)}handleInlineEditShownNextFrame(n,e){const t=this.inlineEdit.inlineCompletion,i=Date.now();t.addRef(),DT(()=>{this._model.handleInlineSuggestionShown(t,n,e,i),t.removeRef()})}},eW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},tW=function(n,e){return function(t,i){e(t,i,n)}},df=class extends O{constructor(e,t,i){super(),this._editor=e,this._edit=t,this._accessibilityService=i,this.onDidClick=qe.None,this._iconRef=q.ref(),this.isHovered=Ce(!1),this._editorObs=Be(this._editor);const s=this._edit.map(l=>l?.edit?.replacements[0]??null).map(l=>l?us(l,this._editor.getModel()).range.getStartPosition():null),o=this._editorObs.observePosition(s,this._store),r=T(l=>{const d=o.read(l);if(!d)return null;const c=this._editorObs.layoutInfoContentLeft.read(l),h=this._editorObs.scrollLeft.read(l);return new xi(c+d.x-h,d.y)}),a=q.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(r)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:a,position:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:Ce(0)})),this.isVisible=this._edit.map((l,d)=>!!l&&r.read(d)!==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((o,r)=>o?o.deltaX(-t.read(r)):null),s=this.createIconPath(i);return q.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Ft(o=>N_(this._editorObs).read(o)),overflow:"hidden",pointerEvents:"none"}},[q.svgElem("path",{class:"collapsedViewPath",d:s,fill:ye(os)})])}createIconPath(e){return e.map(o=>{if(!o)return new rf().build();const r=o.deltaX(-3).deltaY(-1),a=r.deltaX(6),l=r.deltaY(1),d=a.deltaY(1),c=l.deltaX(6/2).deltaY(3);return new rf().moveTo(r).lineTo(a).lineTo(d).lineTo(c).lineTo(l).lineTo(r).build()})}};df=eW([tW(2,Rs)],df);var iW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},gC=function(n,e){return function(t,i){e(t,i,n)}},pC=14,nW=0,qr=4,fC=4,cf=class extends O{constructor(e,t,i,s,o,r){super(),this._editor=e,this._languageService=r,this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this._isHovered=Ne(this,!1),this.isHovered=this._isHovered,this._viewRef=q.ref(),this._editorObs=Be(this._editor);const a=i.map((h,u)=>{let g;switch(h){case Ye.Inactive:g=D_;break;case Ye.Jump:g=Rl;break;case Ye.Accept:g=E_}return{border:Rt(g,o).read(u).toString(),background:ys(s.read(u))}}),l=t.map(h=>h?this.getState(h):void 0),d=l.map(h=>h?this.getRendering(h,a):void 0);this.minEditorScrollHeight=T(this,h=>{const u=l.read(h);return u?u.rect.read(h).bottom+this._editor.getScrollTop():0});const c=q.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:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:Ts(this,(h,u)=>{const g=l.read(h);if(!g)return u??0;const p=g.rect.map(f=>f.right).read(h)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(h)+qr-this._editorObs.layoutInfoContentLeft.read(h);return Math.max(u??0,p)}).recomputeInitiallyAndOnChange(this._store)})),this._register(he(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 s=this._editorObs.layoutInfoWidth.read(i),o=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;return In(this._editorObs,e,void 0)+T_(t,this._editor,this._editor.getModel())+18<s-o-r-a}getState(e){const t=T(this,r=>{const a=e.range.startLineNumber,l=e.range.endLineNumber,d=e.range.startColumn,c=e.range.endColumn,h=this._editor.getModel()?.getLineCount()??0;return{lineWidth:In(this._editorObs,new rt(a,a+1),r),lineWidthBelow:a+1<=h?In(this._editorObs,new rt(a+1,a+2),r):void 0,lineWidthAbove:a-1>=1?In(this._editorObs,new rt(a-1,a),r):void 0,startContentLeftOffset:this._editor.getOffsetForColumn(a,d),endContentLeftOffset:this._editor.getOffsetForColumn(l,c)}}),i=e.range.startLineNumber,s=e.range.endLineNumber,o=this.fitsInsideViewport(new rt(i,s+1),e.content,void 0);return{rect:T(this,r=>{const a=this._editorObs.getOption(59).read(r).typicalHalfwidthCharacterWidth,{lineWidth:l,lineWidthBelow:d,lineWidthAbove:c,startContentLeftOffset:h,endContentLeftOffset:u}=t.read(r),g=this._editorObs.layoutInfoContentLeft.read(r),p=this._editorObs.observeLineHeightForLine(i).recomputeInitiallyAndOnChange(r.store).read(r),f=this._editorObs.scrollTop.read(r),_=this._editorObs.scrollLeft.read(r);let v;i===s&&u+5*a>=l&&o?v="end":d!==void 0&&d+pC-fC-qr<h?v="below":c!==void 0&&c+pC-fC-qr<h?v="above":v="end";let C,x,I=0,b=0;switch(v){case"end":C=this._editorObs.editor.getTopForLineNumber(i),x=l,I=18;break;case"below":C=this._editorObs.editor.getTopForLineNumber(i+1),x=h,I=8,b=2;break;case"above":C=this._editorObs.editor.getTopForLineNumber(i-1),x=h,I=8,b=2}return ot.fromLeftTopWidthHeight(g+x-_,C-f,a*e.content.length,p).withMargin(nW,qr).translateX(I).translateY(b)}),label:e.content,kind:e.style}}getRendering(e,t){const i=document.createElement("div"),s=this._editor.getModel().tokenization.tokenizeLinesAt(1,[e.label])?.[0];let o;s&&e.kind===pE.Code?o=th.fromLineTokens(s).toLineTokens(e.label,this._languageService.languageIdCodec):o=yr.createEmpty(e.label,this._languageService.languageIdCodec);const r=Bc(new qc([o]),eh.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],i,!0);i.style.width=`${r.minWidthInPx}px`;const a=e.rect.map(l=>l.withMargin(0,qr));return q.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Ft(l=>a.read(l)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:t.map(l=>`1px solid ${l.border}`),borderRadius:"3px",backgroundColor:t.map(l=>l.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:l=>{l.preventDefault()},onclick:l=>{this._onDidClick.fire(Tr.create(l))}},[i])}};cf=iW([gC(4,It),gC(5,Fn)],cf);var sW=0,oW=0,Su=1,rW=1,aW=3,wu=3,lW=class extends O{constructor(n,e,t,i){super(),this._editor=n,this._edit=e,this._uiState=t,this._tabAction=i,this.onDidClick=qe.None,this._display=T(this,r=>this._uiState.read(r)?"block":"none"),this._editorMaxContentWidthInRange=T(this,r=>{const a=this._originalDisplayRange.read(r);return a?(this._editorObs.versionId.read(r),Ts(this,(l,d)=>{const c=In(this._editorObs,a,l);return Math.max(c,d??0)})):Ce(0)}).map((r,a)=>r.read(a)),this._maxPrefixTrim=T(this,r=>{const a=this._uiState.read(r);return a?R_(a.deletions,a.originalRange,[],this._editor):{prefixTrim:0,prefixLeftOffset:0}}),this._editorLayoutInfo=T(this,r=>{const a=this._edit.read(r);if(!a||!this._uiState.read(r))return null;const l=this._editorObs.layoutInfo.read(r),d=this._editorObs.scrollLeft.read(r),c=this._editorObs.getOption(59).map(_=>_.typicalHalfwidthCharacterWidth).read(r),h=l.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(r),c)-d,u=a.originalLineRange,g=this._originalVerticalStartPosition.read(r)??this._editor.getTopForLineNumber(u.startLineNumber)-this._editorObs.scrollTop.read(r),p=this._originalVerticalEndPosition.read(r)??this._editor.getTopForLineNumber(u.endLineNumberExclusive)-this._editorObs.scrollTop.read(r),f=l.contentLeft+this._maxPrefixTrim.read(r).prefixLeftOffset-d;return h<=f?null:{codeRect:ot.fromLeftTopRightBottom(f,g,h,p).withMargin(oW,sW),contentLeft:l.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=q.div({style:{pointerEvents:"none"}},T(this,r=>{const a=an(this._editorLayoutInfo).read(r);if(!a)return;const l=a.map(g=>ot.fromLeftTopRightBottom(g.contentLeft-wu-Su,g.codeRect.top,g.contentLeft,g.codeRect.bottom)),d=T(this,g=>{const p=a.read(g).codeRect,f=l.read(g);return p.intersectHorizontal(new je(f.left,Number.MAX_SAFE_INTEGER))}),c=this._uiState.map(g=>g?.editorType===ut.DiffEditor?aW:rW).read(r),h=d.map(g=>g.withMargin(c,c)),u=ys(this._uiState.map(g=>g?.editorType??ut.TextEditor).read(r));return[q.div({class:"originalSeparatorDeletion",style:{...h.read(r).toStyles(),borderRadius:`${wu}px`,border:`${Su+c}px solid ${u}`,boxSizing:"border-box"}}),q.div({class:"originalOverlayDeletion",style:{...d.read(r).toStyles(),borderRadius:`${wu}px`,border:Rh(this._tabAction).map(g=>`${Su}px solid ${ye(g)}`),boxSizing:"border-box",backgroundColor:ye(La)}}),q.div({class:"originalOverlayHiderDeletion",style:{...l.read(r).toStyles(),backgroundColor:u}})]})).keepUpdated(this._store),this._nonOverflowView=q.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=Ce(!1),this._editorObs=Be(this._editor);const s=T(this,r=>{const a=this._edit.read(r);return a?new B(a.originalLineRange.startLineNumber,1):null}),o=T(this,r=>{const a=this._edit.read(r);return a?new B(a.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map(r=>r?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(s,this._store).map(r=>r?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(o,this._store).map(r=>r?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:T(this,r=>{const a=this._editorLayoutInfo.read(r);return a===null?0:a.codeRect.width})}))}},dW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},mC=function(n,e){return function(t,i){e(t,i,n)}},$r=1,cW=1,hW=3,yu=3,hf=class extends O{constructor(e,t,i,s,o){super(),this._editor=e,this._input=t,this._tabAction=i,this._languageService=o,this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this._state=T(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=T(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 B(a.lineNumber,1)),c=this._editor.getModel().getEOL();let h=0,u=0,g=0;for(;g<l.length&&l.startsWith(c,g);g+=c.length)h+=1;for(let p=l.length;p>g&&l.endsWith(c,p);p-=c.length)u+=1;return{topOffset:h*d,bottomOffset:u*d,linesTop:h,linesBottom:u}}),this._maxPrefixTrim=T(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),u=h.slice(c.linesTop,h.length-c.linesBottom);c.linesTop===0&&(u[0]=l.getLineContent(a.lineNumber)+u[0]);const g=new rt(a.lineNumber,a.lineNumber+(c.linesTop>0?0:1));return R_([],g,u,this._editor)}),this._ghostText=T(r=>{const a=this._state.read(r),l=this._maxPrefixTrim.read(r);if(!a)return;const d=this._editor.getModel().getEOL(),c=a.text.split(d).map((h,u)=>new sw(new y(u+1,u===0?1:l.prefixTrim+1,u+1,h.length+1),"modified-background",0));return new Xa(a.lineNumber,[new yc(a.column,a.text,!1,c)])}),this._display=T(this,r=>this._state.read(r)?"block":"none"),this._editorMaxContentWidthInRange=T(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 y(a.lineNumber,1,a.lineNumber,a.column)),h=l.getValueInRange(new y(a.lineNumber,a.column,a.lineNumber,l.getLineLength(a.lineNumber)+1)),u=(c+a.text+h).split(d),g=eh.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),p=u.map(f=>{const _=l.tokenization.tokenizeLinesAt(a.lineNumber,[f])?.[0];let v;return _?v=th.fromLineTokens(_).toLineTokens(f,this._languageService.languageIdCodec):v=yr.createEmpty(f,this._languageService.languageIdCodec),Bc(new qc([v]),g,[],W("div"),!0).minWidthInPx});return Math.max(...p)}),this.startLineOffset=this._trimVertically.map(r=>r.topOffset),this.originalLines=this._state.map(r=>r?new rt(r.lineNumber,Math.min(r.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=T(this,r=>{this._ghostText.read(r);const a=this._state.read(r);if(!a)return null;this._editorObs.observePosition(Ne(this,new B(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,u=this._maxPrefixTrim.read(r).prefixLeftOffset??0,g=l.contentLeft+u-d;if(h<=g)return null;const{topOffset:p,bottomOffset:f}=this._trimVertically.read(r),_=this._editorObs.scrollTop.read(r),v=this._ghostTextView.height.read(r)-p-f,C=this._editor.getTopForLineNumber(a.lineNumber)-_+p,x=C+v,I=new ot(g,C,h,x);return{overlay:I,startsAtContentLeft:u===0,contentLeft:l.contentLeft,minContentWidthRequired:u+I.width+c}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=q.div({style:{pointerEvents:"none"}},T(this,r=>{const a=an(this._overlayLayout).read(r);if(!a)return;const l=a.map(g=>ot.fromLeftTopRightBottom(g.contentLeft-yu-$r,g.overlay.top,g.contentLeft,g.overlay.bottom)).read(r),d=this._input.map(g=>g?.editorType===ut.DiffEditor?hW:cW).read(r),c=a.map(g=>g.overlay.withMargin(0,$r,0,g.startsAtContentLeft?0:$r).intersectHorizontal(new je(l.left,Number.MAX_SAFE_INTEGER))),h=c.map(g=>g.withMargin(d,d)),u=ys(this._input.read(void 0)?.editorType??ut.TextEditor);return[q.div({class:"originalUnderlayInsertion",style:{...h.read(r).toStyles(),borderRadius:yu,border:`${$r+d}px solid ${u}`,boxSizing:"border-box"}}),q.div({class:"originalOverlayInsertion",style:{...c.read(r).toStyles(),borderRadius:yu,border:el(this._tabAction).map(g=>`${$r}px solid ${ye(g)}`),boxSizing:"border-box",backgroundColor:ye(eL)}}),q.div({class:"originalOverlayHiderInsertion",style:{...l.toStyles(),backgroundColor:u}})]})).keepUpdated(this._store),this._view=q.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=Be(this._editor),this._ghostTextView=this._register(s.createInstance(Ya,this._editor,T(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 Tr(r))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:T(this,r=>{const a=this._overlayLayout.read(r);return a===null?0:a.minContentWidthRequired})}))}};hf=dW([mC(3,ie),mC(4,Fn)],hf);var uW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_C=function(n,e){return function(t,i){e(t,i,n)}},uf=class extends O{constructor(e,t,i,s,o,r){super(),this._editor=e,this._edit=t,this._editorType=i,this._tabAction=s,this._languageService=o,this._themeService=r,this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((a,l)=>a?R_(a.replacements.flatMap(d=>[d.originalRange,d.modifiedRange]),a.originalRange,a.modifiedLines,this._editor.editor,l):void 0),this._modifiedLineElements=T(this,a=>{const l=[];let d=0;const c=this._maxPrefixTrim.read(a),h=this._edit.read(a);if(!h||!c)return;const u=c.prefixTrim,g=gW(h.replacements.map(_=>_.modifiedRange)).map(_=>new y(_.startLineNumber,_.startColumn-u,_.endLineNumber,_.endColumn-u)),p=this._editor.model.get(),f=h.modifiedRange.startLineNumber;for(let _=0;_<h.modifiedRange.length;_++){const v=document.createElement("div"),C=f+_,x=h.modifiedLines[_].slice(u),I=p.tokenization.tokenizeLinesAt(C,[x])?.[0];let b;I?b=th.fromLineTokens(I).toLineTokens(x,this._languageService.languageIdCodec):b=yr.createEmpty(x,this._languageService.languageIdCodec);const w=[];for(const P of g.filter(R=>R.startLineNumber===C)){const R=Math.min(P.endColumn,x.length+1);w.push(new sw(new y(1,P.startColumn,1,R),"inlineCompletions-modified-bubble",0))}const E=Bc(new qc([b]),eh.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),w,v,!0);this._editor.getOption(59).read(a),d=Math.max(d,E.minWidthInPx),l.push(v)}return{lines:l,requiredWidth:d}}),this._layout=T(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:u}=l,g=this._editor.observeLineHeightsForLineRange(c.originalRange).read(a),p=(()=>{const _e=g.slice(0,c.modifiedRange.length);for(;_e.length<c.modifiedRange.length;)_e.push(g[g.length-1]);return _e})(),f=this._editor.layoutInfoContentLeft.read(a),_=this._editor.layoutInfoVerticalScrollbarWidth.read(a),v=this._editor.scrollLeft.read(a),C=this._editor.scrollTop.read(a),x=f-v,I=this._editor.editor.getModel(),b=c.originalRange.mapToLineArray(_e=>this._editor.editor.getOffsetForColumn(_e,I.getLineMaxColumn(_e))-h),w=Math.max(...b,u),E=c.originalRange.startLineNumber,P=c.originalRange.endLineNumberExclusive-1,R=this._editor.editor.getTopForLineNumber(E)-C,D=this._editor.editor.getBottomForLineNumber(P)-C,F=ot.fromLeftTopWidthHeight(x+h,R,w,D-R),Y=ot.fromLeftTopWidthHeight(F.left,F.bottom,F.width,p.reduce((_e,X)=>_e+X,0)),re=ot.hull([F,Y]),Me=re.intersectVertical(new je(F.bottom,Number.MAX_SAFE_INTEGER));return{originalLinesOverlay:F,modifiedLinesOverlay:Y,background:re,lowerBackground:Me,lowerText:new ot(Me.left,Me.top,Me.right,Me.bottom),modifiedLineHeights:p,minContentWidthRequired:h+w+_}}),this._viewZoneInfo=T(a=>{if(!this._editor.getOption(71).map(c=>c.edits.allowCodeShifting==="always").read(a))return;const l=this._layout.read(a),d=this._edit.read(a);if(!(!l||!d))return{height:l.lowerBackground.height,lineNumber:d.originalRange.endLineNumberExclusive}}),this.minEditorScrollHeight=T(this,a=>{const l=an(this._layout).read(a);return!l||this._viewZoneInfo.read(a)!==void 0?0:l.read(a).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=q.div({class:"line-replacement"},[T(this,a=>{const l=an(this._layout).read(a),d=this._modifiedLineElements.read(a);if(!l||!d)return[];const c=l.read(a),h=this._editor.layoutInfoContentLeft.read(a),u=this._editorType.read(a)===ut.DiffEditor?3:1;d.lines.forEach((_,v)=>{_.style.width=`${c.lowerText.width}px`,_.style.height=`${c.modifiedLineHeights[v]}px`,_.style.position="relative"});const g=el(this._tabAction).read(a),p=Rh(this._tabAction).read(a),f=ys(this._editorType.read(a));return[q.div({style:{position:"absolute",...Ft(_=>N_(this._editor).read(_)),overflow:"hidden",pointerEvents:"none"}},[q.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Ft(_=>l.read(_).background.translateX(-h).withMargin(u)),borderRadius:"3px",border:`${u+1}px solid ${f}`,boxSizing:"border-box",pointerEvents:"none"}}),q.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Ft(_=>l.read(_).background.translateX(-h)),borderRadius:"3px",border:Rt(p,this._themeService).map(_=>`1px solid ${_.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:ye(La)}}),q.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Ft(_=>l.read(_).lowerBackground.translateX(-h)),borderRadius:"0 0 3px 3px",background:f,boxShadow:`${ye(eE)} 0 6px 6px -6px`,border:`1px solid ${ye(g)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:_=>{_.preventDefault()},onclick:_=>this._onDidClick.fire(Tr.create(_))},[q.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:ye(LH)}})]),q.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Ft(_=>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 3px 3px",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(QE(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:T(this,a=>this._layout.read(a)?.minContentWidthRequired??0),position:Ce({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(e){const t=this._layout.get();return!t||!(e.event instanceof k0)?!1:t.lowerBackground.containsPoint(new xi(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:W("div")});this._previousViewZoneInfo={height:e.height,lineNumber:e.lineNumber,id:i};const s=this._editor.cursorLineNumber.get();s!==null&&s>=e.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()+e.height)}};uf=uW([_C(4,Fn),_C(5,It)],uf);function gW(n){const e=[];for(;n.length;){let t=n.shift();t.startLineNumber!==t.endLineNumber&&(n.push(new y(t.startLineNumber+1,1,t.endLineNumber,t.endColumn)),t=new y(t.startLineNumber,t.startColumn,t.startLineNumber,Number.MAX_SAFE_INTEGER)),e.push(t)}return e}function pW(n,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 s=0;for(const[r,a]of Object.entries(t))i[r]=a.min,s+=a.min;if(s>n)return null;let o=n-s;for(;o>0;){const r=[];for(const[u,g]of Object.entries(t))for(let p=0;p<g.rules.length;p++){const f=g.rules[p];i[u]<(f.max??1/0)&&r.push({partKey:u,ruleIndex:p,rule:f,priority:f.priority??0,share:f.share??1})}if(r.length===0)break;const a=Math.max(...r.map(u=>u.priority)),l=r.filter(u=>u.priority===a),d=l.reduce((u,g)=>u+g.share,0);let c=0;const h=[];for(const u of l){const g=u.rule,p=i[u.partKey],f=(g.max??1/0)-p,_=o*u.share/d,v=Math.min(_,f);h.push({partKey:u.partKey,ruleIndex:u.ruleIndex,amount:v}),c+=v}if(c===0)break;for(const u of h)i[u.partKey]+=u.amount;if(o-=c,o<1e-4)break}return i}var fW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},xu=function(n,e){return function(t,i){e(t,i,n)}},gf=class extends O{constructor(e,t,i,s,o,r){super(),this._editor=e,this._data=i,this._themeService=s,this._keybindingService=o,this._contextKeyService=r,this._styles=T(this,l=>({background:Rt(Rl,this._themeService).read(l).toString(),foreground:Rt(Qa,this._themeService).read(l).toString(),border:Rt(os,this._themeService).read(l).toString()})),this._pos=T(this,l=>this._editor.observePosition(T(d=>this._data.read(d)?.jumpToPosition||null),l.store)).flatten(),this._layout=T(this,l=>{const d=this._data.read(l);if(!d)return;const c=d.jumpToPosition,h=this._editor.observeLineHeightForLine(Ce(c.lineNumber)).read(l),u=this._editor.scrollLeft.read(l),g=this._pos.read(l);if(!g)return;const p=this._editor.layoutInfo.read(l);return{widgetRect:ot.fromLeftTopWidthHeight(g.x+p.contentLeft+2-u,g.y,100,h)}}),this._blink=mW([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=q.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map(l=>l?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Ft(l=>this._layout.read(l)?.widgetRect)}},T(l=>this._data.read(l)===void 0?[]:q.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"?q.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map(d=>d?"0":"1")}}):[T(()=>q.elem("div",{},_W(this._keybinding))),q.elem("div",{style:{lineHeight:this._layout.map(d=>d?.widgetRect.height),marginTop:"-2px"}},["to jump"])]]))),this._style=t.style,this._keybinding=this._getKeybinding(yl);const a=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:a.element,position:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:Ce(0)})),this._register(this._editor.setDecorations(T(l=>{const d=this._data.read(l);return d?[{range:y.fromPositions(d.jumpToPosition,d.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]:[]})))}_getKeybinding(e,t=Yc.ofCaller()){return e?Dt(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(e),t):Ce(void 0)}};gf=fW([xu(3,It),xu(4,Oe),xu(5,ve)],gf);function mW(n,e=Yc.ofCaller()){let t=0;return Dt(void 0,i=>{t=0;const s=new at(()=>{t=(t+1)%n.length,i(null),s.schedule(n[t].durationMs)},0);return s.schedule(0),s},()=>n[t].value,e)}function _W(n){return T(e=>q.div({style:{},ref:t=>{const i=e.store.add(new hl(t,ml,{disableTitle:!0,...YS,keybindingLabelShadow:void 0,keybindingLabelForeground:ye(Qa),keybindingLabelBackground:"transparent",keybindingLabelBorder:ye(Qa),keybindingLabelBottomBorder:void 0}));e.store.add(he(s=>{i.set(n.read(s))}))}}))}var vW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},bW=function(n,e){return function(t,i){e(t,i,n)}},pf=class extends O{constructor(e,t,i,s,o){super(),this._previewTextModel=e,this._properties=t,this._parentEditor=i,this._tabAction=s,this._instantiationService=o,this._previewRef=q.ref(),this.element=q.div({class:"preview",style:{},ref:this._previewRef}),this._state=T(this,r=>{const a=this._properties.read(r);if(!a)return;let l,d;a.nextCursorPosition!==null?(l="original",d=rt.ofLength(a.nextCursorPosition.lineNumber,1)):a.diff[0].innerChanges?.every(h=>h.modifiedRange.isEmpty())?(l="original",d=rt.ofLength(a.diff[0].original.startLineNumber,1)):(l="modified",d=rt.ofLength(a.diff[0].modified.startLineNumber,1));const c=l==="modified"?Ih.snapshot(this._previewTextModel):a.target;return{mode:l,visibleLineRange:d,textModel:c,diff:a.diff}}),this.updatePreviewEditorEffect=T(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 y(1,1,a.startLineNumber-1,1)),a.endLineNumberExclusive<this._previewTextModel.getLineCount()+1&&l.push(new y(a.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1)),this.previewEditor.setHiddenAreas(l,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=T(this,r=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,r)),this.contentHeight=T(this,r=>{const a=this._state.read(r);return a?this._previewEditorObs.observeLineHeightForLine(a.visibleLineRange.startLineNumber):Ce(null)}).flatten(),this._editorDecorations=T(this,r=>{const a=this._state.read(r);if(!a)return;const l={diff:a.diff},d=[],c=[],h=se.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),u=se.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),g=se.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(const p of l.diff)if(p.modified.isEmpty||p.original.isEmpty)p.original.isEmpty||d.push({range:p.original.toInclusiveRange(),options:h}),p.modified.isEmpty||c.push({range:p.modified.toInclusiveRange(),options:u});else for(const f of p.innerChanges||[])p.original.contains(f.originalRange.startLineNumber)&&!f.originalRange.isEmpty()&&d.push({range:f.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Ad("inlineCompletions-char-delete",f.originalRange.isEmpty()&&"empty"),zIndex:1}}),p.modified.contains(f.modifiedRange.startLineNumber)&&c.push({range:f.modifiedRange,options:g});return{originalDecorations:d,modifiedDecorations:c}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=Be(this._parentEditor),this._register(he(r=>{const a=this._state.read(r)?.textModel||null;a&&this.previewEditor.setModel(a.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=Be(this.previewEditor),this._register(this._previewEditorObs.setDecorations(T(r=>{const a=this._state.read(r),l=this._editorDecorations.read(r);return(a?.mode==="original"?l?.originalDecorations:l?.modifiedDecorations)??[]}))),this._register(he(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(he(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(Rc,this._previewEditorObs,T(r=>{const a=this._state.read(r);if(!a)return;const l=this._properties.read(r);if(l)return new iL(l.inlineSuggestInfo,rt.ofLength(a.visibleLineRange.startLineNumber,1),l.model,void 0)}),this._tabAction,Ce(0),Ce(!1),Ne(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(rn,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:{[be.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(e,t){const i=this._state.read(t);if(!i)return;const s=i.diff,o=this._properties.read(t)?.nextCursorPosition,r=i.visibleLineRange,a=this._previewEditorObs.layoutInfo.read(t),l=In(this._previewEditorObs,r,t);let d;if(o)d=y.fromPositions(o);else if(s[0].innerChanges)d=i.mode==="modified"?s[0].innerChanges[0].modifiedRange:s[0].innerChanges[0].originalRange;else return;const c=CW(e.getModel(),d,5),h=this._previewEditorObs.getLeftOfPosition(c.getStartPosition(),t),u=this._previewEditorObs.getLeftOfPosition(c.getEndPosition(),t),g=Yu(h,0,l),p=Yu(u,g,l),f=e.getModel().getLineFirstNonWhitespaceColumn(c.startLineNumber);return{indentationEnd:this._previewEditorObs.getLeftOfPosition(new B(c.startLineNumber,f),t),preferredRangeToReveal:new je(g,p),maxEditorWidth:l+a.contentLeft,contentWidth:l,nonContentWidth:a.contentLeft}}layout(e,t){this.previewEditor.layout(e),this._previewEditorObs.editor.setScrollLeft(t)}};pf=vW([bW(4,ie)],pf);function CW(n,e,t){const i=e.getStartPosition(),s=e.getEndPosition(),o=n.getLineContent(i.lineNumber);function r(c){const h=o.charAt(c-1);return/[a-zA-Z0-9_]/.test(h)}function a(c){const h=o.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=s.column-1;for(;d<=o.length&&r(d)&&!a(d+1)&&d-s.column<t;)d++;return new y(i.lineNumber,i.column,s.lineNumber,d+1)}function SW(n,e){const t=n.start,i=n.endExclusive;let s=Number.MAX_VALUE,o=0;for(const r of e){const a=o+r.width;Math.max(t,o)<Math.min(i,a)&&(s=Math.min(s,r.height)),o=a}return i>o||s===Number.MAX_VALUE?0:s}var vC=class{constructor(n,e,t){this._lineRangeInfo=n,this.availableSpaceSizes=n.sizes.map((i,s)=>{const o=t(n.lineRange.startLineNumber+s);return new L_(Math.max(0,e-i.width-o),i.height)}),this.availableSpaceHeightPrefixSums=xW(this.availableSpaceSizes,i=>i.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map(i=>i.transpose())}getWidgetVerticalOutline(n,e,t){const i=n-this._lineRangeInfo.lineRange.startLineNumber,s=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[i],o=je.ofStartAndLength(s,e),{previewEditorMargin:r,widgetPadding:a,widgetBorder:l,lowerBarHeight:d}=t;return o.withMargin(r+a+l).withMargin(0,d)}tryFindWidgetOutline(n,e,t,i){if(!(this._lineRangeInfo.lineRange.length<3))return yW(this._lineRangeInfo.lineRange.addMargin(-1,-1),n,s=>{const o=this.getWidgetVerticalOutline(s,e,i),r=SW(o.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(!(r<i.minWidgetWidth))return{horizontalWidgetRange:je.ofStartAndLength(t-r,r),verticalWidgetRange:o}})}};function wW(n,e,t,i,s){const o=[];let r=n.startLineNumber,a=t,l=[];for(let d=0;d<e.length;d++){const c=n.startLineNumber+d,h=a+l.reduce((g,p)=>g+p.height,0),u=i.editor.getTopForLineNumber(c);d>0&&u!==h&&(o.push({lineRange:rt.ofLength(r,c-r),top:a,sizes:l}),r=c,a=u,l=[]),l.push(e[d])}return o.push({lineRange:rt.ofLength(r,n.endLineNumberExclusive-r),top:a,sizes:l}),T({owner:"splitIntoContinuousLineRanges"},d=>i.observeTopForLineNumber(n.endLineNumberExclusive-1).read(d)).read(s),o}function yW(n,e,t){for(let i=0;;i++){const s=e+i;if(s<=n.endLineNumberExclusive){const r=t(s);if(r!==void 0)return r}const o=e-i;if(o>=n.startLineNumber){const r=t(o);if(r!==void 0)return r}if(o<n.startLineNumber&&s>n.endLineNumberExclusive)return}}function xW(n,e){const t=[0];let i=0;for(const s of n)i+=e(s),t.push(i);return t}var IW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Kr=function(n,e){return function(t,i){e(t,i,n)}},LW=6,Iu={EMPTY_SPACE:425,OVERLAY:375},DW={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:250},ff=class extends O{constructor(e,t,i,s,o,r,a,l,d){super(),this._editor=e,this._viewState=t,this._previewTextModel=i,this._tabAction=s,this._instantiationService=o,this._themeService=r,this._keybindingService=a,this._modelService=l,this._languageService=d,this.onDidClick=qe.None,this._viewWithElement=void 0,this._hintTextPosition=T(this,c=>{const h=this._viewState.read(c);return h?new B(h.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=T(this,c=>{const h=this._viewState.read(c),u=this._hintTextPosition.read(c);if(!h||!u)return[];const g=this._editorObs.model.read(c);if(!g)return[];const p=rt.ofLength(u.lineNumber,1).addMargin(5,5).intersect(rt.ofLength(1,g.getLineCount()));if(!p)return[];const f=OH(this._editorObs,p,c),_=this._editorObs.observeTopForLineNumber(p.startLineNumber).read(c);return wW(p,f,_,this._editorObs,c)}),this._isVisibleDelayed=I0(T(this,c=>this._viewState.read(c)?.hint.isVisible),(c,h)=>c===!0&&h===!1?200:0),this._previewEditorLayoutInfo=T(this,c=>{const h=this._viewState.read(c);if(!h||!this._isVisibleDelayed.read(c))return;const u=this._lineSizesAroundHintPosition.read(c);if(u.length===0)return;const g=this._editorObs.scrollTop.read(c),p=this._editorObs.scrollLeft.read(c),f=this._editorObs.layoutInfo.read(c),_=this._previewEditor.contentHeight.read(c),v=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(c);if(!_||!v)return;const C=f.contentWidth-f.verticalScrollbarWidth,x=f.contentLeft+C;if(!this._editorObs.cursorLineNumber.read(c))return;const I=DW,b=_+2;let w,E;const P=St=>St===h.hint.lineNumber?40:20;for(const St of u){const Bn=new vC(St,C,P);if(E=Bn,w=Bn.tryFindWidgetOutline(h.hint.lineNumber,b,x,I),w)break}let R="empty-space";if(!w){R="overlay";const St=Math.min(f.width-f.contentLeft,Iu.OVERLAY),Bn=E??new vC(u[0],C,P);w={horizontalWidgetRange:je.ofStartAndLength(x-St,St),verticalWidgetRange:Bn.getWidgetVerticalOutline(h.hint.lineNumber+2,b,I).delta(10)}}if(!w)return;const D=ot.fromRanges(w.horizontalWidgetRange,w.verticalWidgetRange).translateX(-p).translateY(-g),{previewEditorMargin:F,widgetPadding:Y,widgetBorder:re,lowerBarHeight:Me}=I,_e=Math.min(R==="overlay"?Iu.OVERLAY:Iu.EMPTY_SPACE,v.maxEditorWidth+F+Y),X=pW(D.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:_e,priority:1}]},spaceAfter:{min:10}});if(!X)return null;const le=EW([X.spaceBefore,X.content,X.spaceAfter],D.left);D.withHorizontalRange(le[0]);const Pe=D.withHorizontalRange(le[1]);D.withHorizontalRange(le[2]);const Ke=Pe.withMargin(-Y-re-F).withMargin(0,0,-Me,0),Ie=Ke.width-v.nonContentWidth,oi=Ie*.8,Ct=v.preferredRangeToReveal.intersect(je.ofStartAndLength(v.preferredRangeToReveal.start,oi))??v.preferredRangeToReveal,We=RW(v.indentationEnd,Ie,Ct);return{codeEditorSize:Ke.getSize(),codeScrollLeft:p,contentLeft:f.contentLeft,widgetRect:Pe,previewEditorMargin:F,widgetPadding:Y,widgetBorder:re,lowerBarHeight:Me,desiredPreviewEditorScrollLeft:We.newScrollPosition}}),this._view=q.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:T(this,c=>this._previewEditorLayoutInfo.read(c)?"block":"none")}},[T(this,c=>[this._widgetContent])]),this._widgetContent=T(this,c=>q.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:ye(pm),padding:this._previewEditorLayoutInfo.map(h=>h?.widgetPadding),boxSizing:"border-box",borderRadius:LW,border:T(h=>`${this._previewEditorLayoutInfo.read(h)?.widgetBorder}px solid ${this._styles.read(h).border}`),display:"flex",flexDirection:"column",opacity:T(h=>this._viewState.read(h)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Ft(h=>this._previewEditorLayoutInfo.read(h)?.widgetRect)},onmousedown:h=>{h.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[q.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map(h=>h?.previewEditorMargin),background:this._styles.map(h=>h.background),pointerEvents:"none"}},[T(this,h=>this._previewEditor.element)]),q.div({class:"bar",style:{color:ye(um),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map(h=>h?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[T(this,h=>{const u=[],g=this._viewState.read(h);if(!g)return u;const p=this._editorObs.model.read(h)?.uri,f=g.target.uri,_=f&&(!p||f.toString()!==p.toString());if(_){const b=Vi(f),w=ha(this._modelService,this._languageService,f,Hi.FILE);u.push(q.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[q.elem("span",{class:w,style:{flexShrink:"0",marginRight:"4px"}}),b]))}else{const b=this._originalOutlineSource.read(h),w=this._originalTargetLineNumber.read(h),E=b?.getAt(w,h).slice(0,1)??[],P=[];if(E.length>0)for(let R=0;R<E.length;R++){const D=E[R],F=gw.toIcon(D.kind);P.push(q.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[tn(F)," ",D.name,...R===E.length-1?[]:[tn(V.chevronRight)]]))}u.push(q.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},P))}const v=this._originalTargetLineNumber.read(h),C=_?V.arrowRight:g.hint.lineNumber<v?V.arrowDown:V.arrowUp,x=this._keybindingService.lookupKeybinding(My);let I=_?"Go to file":"Go to suggestion";return x&&x.getLabel()==="Tab"&&(I=_?"Tab to open":"Tab to jump"),u.push(q.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[I," ",tn(C)])),u})])])),this._originalTargetLineNumber=T(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=Dm(this,c=>{const h=this._editorObs.model.read(c),u=kw._breadcrumbsSourceFactory.read(c);return!h||!u?void 0:u(h,this._instantiationService)}),this._styles=T(c=>{const h=this._tabAction.read(c),u=tr(hw,this._themeService).read(c),g=Dt(this._themeService.onDidColorThemeChange,()=>{const f=this._themeService.getColorTheme();return f.type==="hcDark"||f.type==="hcLight"}).read(c);let p;if(g)p=u;else{let f;switch(h){case Ye.Inactive:f=D_;break;case Ye.Jump:f=Rl;break;case Ye.Accept:f=E_}p=Rt(f,this._themeService).read(c)}return{border:p.toString(),background:ys(this._viewState.map(f=>f?.editorType??ut.TextEditor).read(c))}}),this._editorObs=Be(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(pf,this._previewTextModel,T(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:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:Ce(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(he(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}};ff=IW([Kr(4,ie),Kr(5,It),Kr(6,Oe),Kr(7,Kt),Kr(8,Fn)],ff);function EW(n,e=0){const t=[];let i=e;for(const s of n)t.push(new je(i,i+s)),i+=s;return t}function RW(n,e,t){const i=new je(n,n+e);return i.containsRange(t)?{newScrollPosition:n}:t.length>e?{newScrollPosition:t.start}:t.endExclusive>i.endExclusive?{newScrollPosition:t.endExclusive-e}:t.start<i.start?{newScrollPosition:t.start}:{newScrollPosition:n}}var TW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Lu=function(n,e){return function(t,i){e(t,i,n)}},id=0,nd=0,Bs=1,NW=1,kW=3,gn=3,Du=20,PW=12,Tc=class extends O{static fitsInsideViewport(e,t,i,s){const o=Be(e),r=o.layoutInfoWidth.read(s),a=o.layoutInfoContentLeft.read(s),l=e.getLayoutInfo().verticalScrollbarWidth,d=o.layoutInfoMinimap.read(s).minimapLeft!==0?o.layoutInfoMinimap.read(s).minimapWidth:0,c=In(o,i.displayRange,void 0),h=i.lineEdit.newLines.reduce((g,p)=>Math.max(g,T_(p,e,t)),0),u=Du;return c+h+u+14<r-a-l-d}constructor(e,t,i,s,o,r,a,l){super(),this._editor=e,this._edit=t,this._previewTextModel=i,this._uiState=s,this._tabAction=o,this._instantiationService=r,this._themeService=a,this._userInteractionService=l,this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this._editorObs=Be(this._editor),this._display=T(this,h=>this._uiState.read(h)?"block":"none"),this.previewRef=q.ref();const d=this._uiState.map(h=>h?.editorType===ut.DiffEditor?kW:NW);this._editorContainer=q.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:h=>{h.preventDefault()},onclick:h=>{this._onDidClick.fire(Tr.create(h))}},[q.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(rn,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:{[be.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=Be(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=T(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 u=this._uiState.read(h),g=this._edit.read(h);if(!u||!g)return;const p=g.originalLineRange,f=[];p.startLineNumber>1&&f.push(new y(1,1,p.startLineNumber-1,1)),p.startLineNumber+u.newTextLineCount<this._previewTextModel.getLineCount()+1&&f.push(new y(p.startLineNumber+u.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1)),this.previewEditor.setHiddenAreas(f,void 0,!0);const _=[...this._activeViewZones];this._activeViewZones=[];const v=p.endLineNumberExclusive-p.startLineNumber-u.newTextLineCount;this.previewEditor.changeViewZones(C=>{_.forEach(x=>C.removeZone(x)),v>0&&this._activeViewZones.push(C.addZone({afterLineNumber:p.startLineNumber+u.newTextLineCount-1,heightInLines:v,showInHiddenAreas:!0,domNode:W("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=T(this,h=>{const u=this._edit.read(h);return u?(this._updatePreviewEditor.read(h),In(this._previewEditorObs,u.modifiedLineRange,h)):0}),this._cursorPosIfTouchesEdit=T(this,h=>{const u=this._editorObs.cursorPosition.read(h),g=this._edit.read(h);if(!(!g||!u))return g.modifiedLineRange.contains(u.lineNumber)?u:void 0}),this._originalStartPosition=T(this,h=>{const u=this._edit.read(h);return u?new B(u.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=T(this,h=>{const u=this._edit.read(h);return u?new B(u.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=T(this,h=>{const u=this._originalDisplayRange.read(h);return u?(this._editorObs.versionId.read(h),Ts(this,(g,p)=>{const f=In(this._editorObs,u,g);return Math.max(f,p??0)})):Ce(0)}).map((h,u)=>h.read(u));const c=BH(this._editor,this._store);this._previewEditorLayoutInfo=T(this,h=>{const u=this._edit.read(h);if(!u||!this._uiState.read(h))return null;const g=u.originalLineRange,p=this._editorObs.scrollLeft.read(h),f=this._editorMaxContentWidthInRange.read(h),_=this._editorObs.layoutInfo.read(h),v=this._previewEditorWidth.read(h),C=_.contentWidth-_.verticalScrollbarWidth,x=c.read(h),I=_.contentLeft+_.contentWidth+x.left,b=Ht(this._editor.getContainerDomNode()).innerWidth-I,w=Ht(this._editor.getContainerDomNode()).innerWidth-x.right,E=Math.min(_.contentWidth*.3,v,100),P=0,R=P+b,D=this._cursorPosIfTouchesEdit.read(h),F=Math.max(C+p-P-Math.max(0,E-R),Math.min(D?MH(this._editorObs,D,h)+50:0,C+p)),Y=Math.min(f+Du,F),re=f+Du+v+70,Me=F-Y;let _e,X;Y>p?(_e=0,X=_.contentLeft+Y-p):(_e=p-Y,X=_.contentLeft);const le=this._originalVerticalStartPosition.read(h)??this._editor.getTopForLineNumber(g.startLineNumber)-this._editorObs.scrollTop.read(h),Pe=this._originalVerticalEndPosition.read(h)??this._editor.getBottomForLineNumber(g.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(h),Ke=_.contentLeft-p;let Ie=ot.fromLeftTopRightBottom(Ke,le,X,Pe);const oi=Ie.height===0;oi||(Ie=Ie.withMargin(nd,id));const Ct=this._previewEditorObs.observeLineHeightsForLineRange(u.modifiedLineRange).read(h).reduce((WD,VD)=>WD+VD,0),We=Pe-le,St=Math.max(We,Ct),Bn=Me===0,Pr=0,Or=Math.min(v+PW,w+_.width-_.contentLeft-Pr);let Mr=ot.fromLeftTopWidthHeight(Ie.right+Pr,le,Or,St);return oi?Mr=Mr.withMargin(nd,id).translateY(nd):Mr=Mr.withMargin(nd,id).translateX(1),{codeRect:Ie,editRect:Mr,codeScrollLeft:p,contentLeft:_.contentLeft,isInsertion:oi,maxContentWidth:re,shouldShowShadow:Bn,desiredPreviewEditorScrollLeft:_e,previewEditorWidth:Or}}),this._stickyScrollController=Ei.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Dt(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Ce(0),this._shouldOverflow=T(this,h=>!1),this._originalBackgroundColor=Dt(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(La)??me.transparent),this._editorBackgroundColor=this._uiState.map(h=>ys(h?.editorType??ut.TextEditor)),this._backgroundSvg=q.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[q.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:T(this,h=>{const u=this._previewEditorLayoutInfo.read(h);if(u&&!this._originalBackgroundColor.read(h).isTransparent())return new rf().moveTo(u.codeRect.getRightTop()).lineTo(u.codeRect.getRightTop().deltaX(1e3)).lineTo(u.codeRect.getRightBottom().deltaX(1e3)).lineTo(u.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=q.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map(h=>h?.isInsertion?"none":"block")}},T(this,h=>{const u=an(this._previewEditorLayoutInfo).read(h);if(!u)return;const g=this._editorBackgroundColor.read(h),p=d.read(h),f=Rh(this._tabAction).map(R=>`${Bs}px solid ${ye(R)}`),_=`${Bs+p}px solid ${g}`,v=u.read(h).codeScrollLeft!==0,C=u.map(R=>R.codeRect.bottom<R.editRect.bottom),x=gn*2+2,I=u.map(R=>ot.fromLeftTopRightBottom(R.contentLeft-gn-Bs,R.codeRect.top,R.contentLeft,R.codeRect.bottom+x)).read(h),b=new je(I.left,Number.MAX_SAFE_INTEGER),w=u.map(R=>R.codeRect.intersectHorizontal(b)),E=w.map(R=>R.withMargin(p,0,p,p).intersectHorizontal(b)),P=w.map(R=>ot.fromLeftTopWidthHeight(R.right-x+Bs,R.bottom-Bs,x,x).intersectHorizontal(b));return[q.div({class:"originalSeparatorSideBySide",style:{...E.read(h).toStyles(),boxSizing:"border-box",borderRadius:`${gn}px 0 0 ${gn}px`,borderTop:_,borderBottom:_,borderLeft:v?"none":_}}),q.div({class:"originalOverlaySideBySide",style:{...w.read(h).toStyles(),boxSizing:"border-box",borderRadius:`${gn}px 0 0 ${gn}px`,borderTop:f,borderBottom:f,borderLeft:v?"none":f,backgroundColor:ye(La)}}),q.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:C.map(R=>R?"block":"none"),...P.read(h).toStyles()}},[q.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:Rt(La,this._themeService).map(R=>R.toString())}}),q.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:f,borderRight:f,borderRadius:"0 100% 0 0",backgroundColor:g}})]),q.div({class:"originalOverlaySideBySideHider",style:{...I.toStyles(),backgroundColor:g}})]})).keepUpdated(this._store),this._modifiedOverlay=q.div({style:{pointerEvents:"none"}},T(this,h=>{const u=an(this._previewEditorLayoutInfo).read(h);if(!u)return;const g=u.map(w=>w.codeRect.bottom<w.editRect.bottom),p=this._editorBackgroundColor.read(h),f=d.read(h),_=g.map(w=>`0 ${gn}px ${gn}px ${w?gn:0}px`),v=Rt(el(this._tabAction),this._themeService).map(w=>`1px solid ${w.toString()}`),C=`${Bs+f}px solid ${p}`,x=u.map(w=>w.editRect.withMargin(0,Bs)),I=x.map(w=>w.withMargin(f,f,f,0)),b=T(this,w=>{const E=x.read(w),P=u.read(w);return!P.isInsertion||P.contentLeft>=E.left?ot.fromLeftTopWidthHeight(E.left,E.top,0,0):new ot(P.contentLeft,E.top,E.left,E.top+2)});return[q.div({class:"modifiedInsertionSideBySide",style:{...b.read(h).toStyles(),backgroundColor:el(this._tabAction).map(w=>ye(w))}}),q.div({class:"modifiedSeparatorSideBySide",style:{...I.read(h).toStyles(),borderRadius:_,borderTop:C,borderBottom:C,borderRight:C,boxSizing:"border-box"}}),q.div({class:"modifiedOverlaySideBySide",style:{...x.read(h).toStyles(),borderRadius:_,border:v,boxSizing:"border-box",backgroundColor:ye(eL)}})]})).keepUpdated(this._store),this._nonOverflowView=q.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,T(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:Ce(null),allowEditorOverflow:!1,minContentWidthInPx:T(this,h=>{const u=this._previewEditorLayoutInfo.read(h)?.maxContentWidth;return u===void 0?0:u})})),this.previewEditor.setModel(this._previewTextModel),this._register(he(h=>{const u=this._previewEditorLayoutInfo.read(h);if(!u)return;const g=u.editRect.withMargin(-0,-0);this.previewEditor.layout({height:g.height,width:u.previewEditorWidth+15}),this._editorContainer.element.style.top=`${g.top}px`,this._editorContainer.element.style.left=`${g.left}px`,this._editorContainer.element.style.width=`${u.previewEditorWidth+id}px`})),this._register(he(h=>{const u=this._previewEditorLayoutInfo.read(h);u&&this._previewEditorObs.editor.setScrollLeft(u.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};Tc=TW([Lu(5,ie),Lu(6,It),Lu(7,$c)],Tc);var OW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Gr=function(n,e){return function(t,i){e(t,i,n)}},MW=class{constructor(n,e,t){this.edit=n,this.editorType=e,this.alternativeAction=t}equals(n){return this.edit.equals(n.edit)&&this.alternativeAction===n.alternativeAction}},ri=1,bC="word-replacement-view-overlay",CC="word-replacement-view-widget",SC="word-replacement-view-replacement",Eu="word-replacement-view-rename",Xo=class extends O{static{this.MAX_LENGTH=100}constructor(e,t,i,s,o,r,a,l){super(),this._editor=e,this._viewData=t,this._tabAction=i,this._languageService=s,this._themeService=o,this._keybindingService=r,this._hoverService=a,this._userInteractionService=l,this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(Ce(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(Ce(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=Ne(this,null),this._secondaryElement=Ne(this,null),this.isHovered=T(this,u=>{const g=this._primaryElement.read(u);return g?this._userInteractionService.createHoverTracker(g.element,u.store).read(u):!1}),this._renderTextEffect=T(this,u=>{const g=this._editor.model.read(void 0);if(!g)return;const p=g.getLineContent(this._viewData.edit.range.startLineNumber),f=ei.replace(new je(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),_=f.replace(p),v=g.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[_])?.[0];let C;v?C=th.fromLineTokens(v).slice(f.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec):C=yr.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);const x=Bc(new qc([C]),eh.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${x.minWidthInPx}px`});const d=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),c=ME(this._viewData.alternativeAction?.count??new Promise(u=>u(void 0))).map(u=>u.value),h=T(this,u=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),u).shiftKey);this._layout=T(this,u=>{this._renderTextEffect.read(u);const g=this._start.read(u),p=this._end.read(u);if(!g||!p||g.x>p.x||g.y>p.y)return;const f=d.read(u);if(f<=0)return;const _=this._editor.scrollLeft.read(u),v=this._editor.getOption(59).read(u).typicalHalfwidthCharacterWidth,C=3*v,x=new xi(C,4);let I;if(this._viewData.alternativeAction){const R=this._viewData.alternativeAction.label,D=c.read(u),F=h.read(u),Y=D!==void 0?D===1?m(1263,"{0} 1 occurrence",R):m(1264,"{0} {1} occurrences",R,D):R,re=m(1265,"{0} show occurrences","[shift]");I={label:D!==void 0&&F?Y:R,tooltip:Y?`${Y}
46
- ${re}`:void 0,icon:void 0,count:D,keybinding:this._keybindingService.lookupKeybinding(uh),active:h}}const b=ot.fromPoints(g,p).withHeight(f).translateX(-_),w=ot.fromPointSize(b.getLeftBottom().add(x),new xi(this._viewData.edit.text.length*v,b.height)),E=w.withWidth(w.width+(I?I.label.length*v+8+4+12:0)),P=E.withLeft(b.left);return{alternativeAction:I,originalLine:b,codeLine:w,modifiedLine:E,lowerBackground:P,lineHeight:f}}),this.minEditorScrollHeight=T(this,u=>{const g=an(this._layout).read(u);return g?g.read(u).modifiedLine.bottom+ri+this._editor.editor.getScrollTop():0}),this._root=q.div({class:"word-replacement"},[T(this,u=>{const g=an(this._layout).read(u);if(!g)return[];const p=Rh(this._tabAction).map(D=>ye(D)).read(u),f=el(this._tabAction).map(D=>ye(D)).read(u);this._line.style.lineHeight=`${g.read(u).modifiedLine.height+2}px`;const _=Ce(!1),v=g.map(D=>D.alternativeAction),C=T(D=>(v.read(D)?.active.read(D)??!1)||_.read(D)),x=Dt(this._themeService.onDidColorThemeChange,()=>{const D=this._themeService.getColorTheme();return D.type==="hcDark"||D.type==="hcLight"}).read(u)?tr(on,this._themeService).read(u):null,I={borderColor:x?x.toString():f,backgroundColor:ye(DH),color:"",opacity:"1"},b={borderColor:x?x.toString():ye(os),backgroundColor:ye(Rl),color:ye(Qa),opacity:"1"},w={borderColor:x?x.toString():tr(md,this._themeService).map(D=>D.transparent(.2).toString()).read(u),backgroundColor:ys(this._viewData.editorType),color:"",opacity:"0.7"},E=ys(this._viewData.editorType),P=T(this,D=>(C.read(D),I)),R=T(this,D=>C.read(D)?b:w);return[q.div({id:bC,style:{position:"absolute",...Ft(D=>N_(this._editor).read(D)),overflow:"hidden",pointerEvents:"none"}},[q.div({style:{position:"absolute",...Ft(D=>g.read(D).lowerBackground.withMargin(ri,2,ri,0)),background:E,cursor:"pointer",pointerEvents:"auto"},onmousedown:D=>this._mouseDown(D)}),q.div({id:CC,style:{position:"absolute",...Ft(D=>g.read(D).modifiedLine.withMargin(ri,2)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:"3px",background:E,display:"flex",justifyContent:"left",outline:`2px solid ${E}`},onmousedown:D=>this._mouseDown(D)},[q.div({id:SC,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Ft(D=>g.read(D).codeLine.withMargin(ri,2)).width,borderRadius:"3px",border:P.map(D=>`${ri}px solid ${D.borderColor}`),boxSizing:"border-box",padding:`${ri}px`,opacity:P.map(D=>D.opacity),background:P.map(D=>D.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:D=>{this._primaryElement.set(D,void 0)}},[this._line]),T(this,D=>{const F=v.read(D);if(!F)return;const Y=document.createElement("div");return D.store.add(new hl(Y,ml,{...yS,disableTitle:!0})).set(F.keybinding),q.div({id:Eu,style:{position:"relative",borderRadius:"3px",borderTop:`${ri}px solid`,borderRight:`${ri}px solid`,borderBottom:`${ri}px solid`,borderLeft:`${ri}px solid`,borderColor:R.map(re=>re.borderColor),opacity:R.map(re=>re.opacity),color:R.map(re=>re.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:R.map(re=>re.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:re=>{this._secondaryElement.set(re,void 0)},ref:re=>{F.tooltip&&D.store.add(this._hoverService.setupDelayedHoverAtMouse(re,{content:F.tooltip,appearance:{compact:!0}}))}},[Y,W("div.inline-edit-alternative-action-label-separator"),F.icon?tn(F.icon):void 0,F.label])})]),q.div({style:{position:"absolute",...Ft(D=>g.read(D).originalLine.withMargin(ri)),boxSizing:"border-box",borderRadius:"3px",border:`${ri}px solid ${p}`,background:ye(IH),pointerEvents:"none"}},[]),q.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:g.map(D=>D.modifiedLine.left-16),top:g.map(D=>D.modifiedLine.top+Math.round((D.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:D=>this._mouseDown(D)},[q.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(md)}),q.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:ye(md)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:Ce(0),position:Ce({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(e){const t=AW(e.target,new Set([CC,SC,Eu,bC]));t&&(e.preventDefault(),this._onDidClick.fire(Tr.create(e,t===Eu)))}};Xo=OW([Gr(3,Fn),Gr(4,It),Gr(5,Oe),Gr(6,ui),Gr(7,$c)],Xo);function AW(n,e){let t=n;for(;t;){if(e.has(t.id))return t.id;t=t.parentElement}return null}var FW=class extends O{constructor(n,e,t){super(),this._originalEditor=n,this._state=e,this._modifiedTextModel=t,this._onDidClick=this._register(new Q),this.onDidClick=this._onDidClick.event,this.isHovered=Be(this._originalEditor).isTargetHovered(s=>s.target.type===6&&s.target.detail.injectedText?.options.attachedData instanceof Ru&&s.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=VW(this._modifiedTextModel),this._decorations=T(this,s=>{const o=this._state.read(s);if(!o)return;const r=o.modifiedText,a=o.mode==="insertionInline",l=o.diff.length===1&&o.diff[0].innerChanges?.length===1,d=[],c=[],h=se.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),u=se.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),g=se.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),p=se.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),f=se.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),_=se.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),v=se.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),C=o.mode!=="sideBySide"&&o.mode!=="deletion"&&o.mode!=="insertionInline"&&o.mode!=="lineReplacement",x=o.mode==="lineReplacement";for(const I of o.diff)if(C&&(I.original.isEmpty||d.push({range:I.original.toInclusiveRange(),options:u}),I.modified.isEmpty||c.push({range:I.modified.toInclusiveRange(),options:h})),I.modified.isEmpty||I.original.isEmpty)I.original.isEmpty||d.push({range:I.original.toInclusiveRange(),options:g}),I.modified.isEmpty||c.push({range:I.modified.toInclusiveRange(),options:p});else{const b=a&&HW(I);for(const w of I.innerChanges||[]){if(I.original.contains(w.originalRange.startLineNumber)&&!(x&&w.originalRange.isEmpty())){const E=this._originalEditor.getModel()?.getValueInRange(w.originalRange,1);d.push({range:w.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Ad("inlineCompletions-char-delete",w.originalRange.isSingleLine()&&o.mode==="insertionInline"&&"single-line-inline",w.originalRange.isEmpty()&&"empty",(w.originalRange.isEmpty()&&l||o.mode==="deletion"&&E===`
47
- `)&&!b&&"diff-range-empty"),inlineClassName:b?Ad("strike-through","inlineCompletions"):null,zIndex:1}})}if(I.modified.contains(w.modifiedRange.startLineNumber)&&c.push({range:w.modifiedRange,options:w.modifiedRange.isEmpty()&&!b&&l?_:f}),b){const E=r.getValueOfRange(w.modifiedRange),P=E.length>3?[{text:E.slice(0,1),extraClasses:["start"],offsetRange:new je(w.modifiedRange.startColumn-1,w.modifiedRange.startColumn)},{text:E.slice(1,-1),extraClasses:[],offsetRange:new je(w.modifiedRange.startColumn,w.modifiedRange.endColumn-2)},{text:E.slice(-1),extraClasses:["end"],offsetRange:new je(w.modifiedRange.endColumn-2,w.modifiedRange.endColumn-1)}]:[{text:E,extraClasses:["start","end"],offsetRange:new je(w.modifiedRange.startColumn-1,w.modifiedRange.endColumn)}];this._tokenizationFinished.read(s);const R=this._modifiedTextModel.tokenization.getLineTokens(w.modifiedRange.startLineNumber);for(const{text:D,extraClasses:F,offsetRange:Y}of P)d.push({range:y.fromPositions(w.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:R.getTokensInRange(Y),content:D,inlineClassName:Ad("inlineCompletions-char-insert",w.modifiedRange.isSingleLine()&&o.mode==="insertionInline"&&"single-line-inline",...F),cursorStops:Zs.None,attachedData:new Ru(this)},zIndex:2,showIfCollapsed:!0}})}}}if(o.editorType===ut.DiffEditor)for(const I of o.diff)I.original.isEmpty||d.push({range:I.original.toExclusiveRange(),options:v});return{originalDecorations:d,modifiedDecorations:c}}),this._register(Be(this._originalEditor).setDecorations(this._decorations.map(s=>s?.originalDecorations??[])));const i=this._state.map(s=>s?.modifiedCodeEditor);this._register(bl((s,o)=>{const r=i.read(s);r&&o.add(Be(r).setDecorations(this._decorations.map(a=>a?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp(s=>{if(s.target.type!==6)return;const o=s.target.detail.injectedText?.options.attachedData;o instanceof Ru&&o.owner===this&&this._onDidClick.fire(new Tr(s.event))}))}},Ru=class{constructor(n){this.owner=n}};function HW(n){return n.innerChanges?n.innerChanges.every(e=>Z_(e.modifiedRange)&&Z_(e.originalRange)):!1}var WW=0;function VW(n){return Dt(n.onDidChangeTokens,()=>WW++)}var BW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},UW=function(n,e){return function(t,i){e(t,i,n)}},mf=class extends O{constructor(e,t,i,s,o,r){super(),this._editor=e,this._model=t,this._simpleModel=i,this._inlineSuggestInfo=s,this._showCollapsed=o,this._instantiationService=r,this._tabAction=T(c=>this._model.read(c)?.tabAction.read(c)??Ye.Inactive),this.displayRange=T(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 u=h.state.displayLocation?.range;if(!u)throw new gt("custom view should have a range");return new rt(u.startLineNumber,u.endLineNumber)}return h.state?.kind==="insertionMultiLine"?this._insertion.originalLines.read(c):h.edit.displayRange}}),this._currentInlineEditCache=void 0,this._uiState=T(this,c=>{const h=this._model.read(c),u=this._editorObs.model.read(c);if(!h||!u||!this._constructorDone.read(c))return;const g=h.inlineEdit;let p,f,_;g.edit?(f=vS.fromEdit(g.edit),_=new ud(g.edit.apply(g.originalText)),p=Nv(f,g.originalText,_)):(f=[],p=[],_=g.originalText);let v=this._determineRenderState(h,c,p,_);if(!v){we(new Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}const C=this._getLongDistanceHintState(h,c);if(C&&C.isVisible&&v.viewData.setLongDistanceViewData(C.lineNumber,g.lineEdit.lineRange.startLineNumber),v.kind===ae.SideBySide){const b=VH(_.getValue(),g.modifiedLineRange,u.getOptions().tabSize);_=new ud(b.applyToString(_.getValue())),f=AH(f,b),p=Nv(f,g.originalText,_)}this._previewTextModel.setLanguage(u.getLanguageId());const x=this._previewTextModel.getValue();if(x!==_.getValue()){this._previewTextModel.setEOL(u.getEndOfLineSequence());const b=Nn.replace(new je(0,x.length),_.getValue()).removeCommonSuffixPrefix(x),w=xh(this._previewTextModel).getTextEdit(b);this._previewTextModel.edit(w)}this._showCollapsed.read(c)&&(v={kind:ae.Collapsed,viewData:v.viewData}),h.handleInlineEditShownNextFrame(v.kind,v.viewData);const I=g.action?.kind==="jumpTo"?g.action.position:null;return{state:v,diff:p,edit:g,newText:_.getValue(),newTextLineCount:g.modifiedLineRange.length,editorType:h.editorType,longDistanceHint:C,nextCursorPosition:I,target:g.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=T(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,u)=>h?.isHovered.read(u)??!1).read(c)),this.gutterIndicatorOffset=T(this,c=>this._uiState.read(c)?.state?.kind==="insertionMultiLine"?this._insertion.startLineOffset.read(c):0),this._editorObs=Be(this._editor),this._constructorDone=Ne(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(Yd,"",this._editor.getModel().getLanguageId(),{...Yd.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(Tc,this._editor,this._model.map(c=>c?.inlineEdit),this._previewTextModel,this._uiState.map(c=>c&&c.state?.kind===ae.SideBySide?{newTextLineCount:c.newTextLineCount,editorType:c.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(lW,this._editor,this._model.map(c=>c?.inlineEdit),this._uiState.map(c=>c&&c.state?.kind===ae.Deletion?{originalRange:c.state.originalRange,deletions:c.state.deletions,editorType:c.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(hf,this._editor,this._uiState.map(c=>c&&c.state?.kind===ae.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(df,this._editor,this._model.map((c,h)=>this._uiState.read(h)?.state?.kind===ae.Collapsed?c?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(cf,this._editor,this._model.map((c,h)=>this._uiState.read(h)?.state?.kind===ae.Custom?c?.displayLocation:void 0),this._tabAction,this._uiState.map(c=>c?.editorType??ut.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,c=>c.edits.showLongDistanceHint),this._longDistanceHint=T(this,c=>{if(this._showLongDistanceHint.read(c))return c.store.add(this._instantiationService.createInstance(ff,this._editor,this._uiState.map((h,u)=>h?.longDistanceHint?{hint:h.longDistanceHint,newTextLineCount:h.newTextLineCount,edit:h.edit,diff:h.diff,editorType:h.editorType,model:this._simpleModel.read(u),inlineSuggestInfo:this._inlineSuggestInfo.read(u),nextCursorPosition:h.nextCursorPosition,target:h.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=T(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 ud(h.newText),diff:h.diff,mode:h.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:h.editorType}}),this._inlineDiffView=this._register(new FW(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(gf,this._editorObs,{style:"label"},T(c=>{const h=this._uiState.read(c);if(h?.state?.kind===ae.JumpTo)return{jumpToPosition:h.state.position}})));const a=Yi({equalsFn:Rv.arrayC(Rv.thisC())},c=>{const h=this._uiState.read(c);return h?.state?.kind===ae.WordReplacements?h.state.replacements.map(u=>new MW(u,h.editorType,h.state?.alternativeAction)):[]});this._wordReplacementViews=xm(this,a,(c,h)=>h.add(this._instantiationService.createInstance(Xo,this._editorObs,c,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(uf,this._editorObs,this._uiState.map(c=>c?.state?.kind===ae.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??ut.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(he(c=>{const h=this._model.read(c);h&&c.store.add(qe.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(c).map(u=>u.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)(u=>{this._viewHasBeenShownLongerThan(350)&&(u.event.preventDefault(),h.accept(u.alternativeAction))}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);const l=T(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(he(c=>{const h=l.read(c),u=this._editorObs.model.read(c);u&&this._editor.changeViewZones(g=>{const p=this._editor.getScrollHeight(),f=h-p+1;f!==0&&d!==void 0&&(g.removeZone(d),d=void 0),!(f<=0)&&(d=g.addZone({afterLineNumber:u.getLineCount(),heightInPx:f,domNode:W("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,s){const o=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===ae.SideBySide||this._previousView?.view===ae.LineReplacement);if(r&&!a)return this._previousView.view;const l=e.inlineEdit.inlineCompletion.action;if(l?.kind==="edit"&&l.alternativeAction)return ae.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 ae.Custom;const h=o.originalLineRange.length,u=o.modifiedLineRange.length,g=i.flatMap(f=>f.innerChanges??[]),p=g.length===1;if(e.editorType!==ut.DiffEditor){if(p&&this._useCodeShifting.read(t)!=="never"&&cL(i))return jW(i,o.cursorPosition)?ae.InsertionInline:ae.LineReplacement;if(yC(g,o,s))return ae.Deletion;if(wC(i)&&this._useCodeShifting.read(t)==="always")return ae.InsertionMultiLine;if(g.every(f=>en.ofRange(f.originalRange).columnCount<Xo.MAX_LENGTH&&en.ofRange(f.modifiedRange).columnCount<Xo.MAX_LENGTH)&&p&&h===1&&u===1){const f=g.map(v=>s.getValueOfRange(v.modifiedRange)),_=g.map(v=>e.inlineEdit.originalText.getValueOfRange(v.originalRange));if(!f.some(v=>v.includes(" "))&&!_.some(v=>v.includes(" "))&&(!g.some(v=>v.originalRange.isEmpty())||!xC(g.map(v=>new He(v.originalRange,"")),o.originalText).some(v=>v.range.isEmpty()&&en.ofRange(v.range).columnCount<Xo.MAX_LENGTH)))return ae.WordReplacements}}if(h>0&&u>0)return h===1&&u===1&&e.editorType!==ut.DiffEditor?ae.LineReplacement:this._renderSideBySide.read(t)!=="never"&&Tc.fitsInsideViewport(this._editor,this._previewTextModel,o,t)?ae.SideBySide:ae.LineReplacement;if(e.editorType===ut.DiffEditor){if(yC(g,o,s))return ae.Deletion;if(wC(i)&&this._useCodeShifting.read(t)==="always")return ae.InsertionMultiLine}return ae.SideBySide}_determineRenderState(e,t,i,s){if(e.inlineEdit.action?.kind==="jumpTo")return{kind:ae.JumpTo,position:e.inlineEdit.action.position,viewData:dL};const o=e.inlineEdit;let r=this._determineView(e,t,i,s);if(this._willRenderAboveCursor(t,o,r))switch(r){case ae.LineReplacement:case ae.WordReplacements:r=ae.SideBySide}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(u=>u.innerChanges??[]),l=this._editor.getModel(),d=a.map(u=>({originalRange:u.originalRange,modifiedRange:u.modifiedRange,original:o.originalText.getValueOfRange(u.originalRange),modified:s.getValueOfRange(u.modifiedRange)})),c=zW(o,d,l);switch(r){case ae.InsertionInline:return{kind:ae.InsertionInline,viewData:c};case ae.SideBySide:return{kind:ae.SideBySide,viewData:c};case ae.Collapsed:return{kind:ae.Collapsed,viewData:c};case ae.Custom:return{kind:ae.Custom,displayLocation:e.displayLocation,viewData:c}}if(r===ae.Deletion)return{kind:ae.Deletion,originalRange:o.originalLineRange,deletions:a.map(u=>u.originalRange),viewData:c};if(r===ae.InsertionMultiLine){const u=a[0];return{kind:ae.InsertionMultiLine,lineNumber:u.originalRange.startLineNumber,column:u.originalRange.startColumn,text:s.getValueOfRange(u.modifiedRange),viewData:c}}const h=d.map(u=>new He(u.originalRange,u.modified));if(h.length!==0){if(r===ae.WordReplacements){let u=qW(h,o.originalText);return u.some(g=>g.range.isEmpty())&&(u=xC(h,o.originalText)),{kind:ae.WordReplacements,replacements:u,alternativeAction:e.inlineEdit.action?.alternativeAction,viewData:c}}if(r===ae.LineReplacement)return{kind:ae.LineReplacement,originalRange:o.originalLineRange,modifiedRange:o.modifiedLineRange,modifiedLines:o.modifiedLineRange.mapToLineArray(u=>s.getLineAt(u)),replacements:a.map(u=>({originalRange:u.originalRange,modifiedRange:u.modifiedRange})),viewData:c}}}_willRenderAboveCursor(e,t,i){if(this._useCodeShifting.read(e)==="always")return!1;for(const s of t.multiCursorPositions)if(i===ae.WordReplacements&&s.lineNumber===t.originalLineRange.startLineNumber+1||i===ae.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 gt("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-t>=e}};mf=BW([UW(5,ie)],mf);var dL=new w_(-1,-1,-1,-1,-1,-1,-1,!0);function zW(n,e,t){if(!n.edit)return dL;const i=n.cursorPosition,s=e.length===0?!1:e[0].modified.startsWith(t.getEOL());return new w_(n.edit.replacements.length===0?0:n.edit.replacements[0].range.getStartPosition().column-i.column,n.lineEdit.lineRange.startLineNumber-i.lineNumber+(s&&n.lineEdit.lineRange.startLineNumber>=i.lineNumber?1:0),n.lineEdit.lineRange.length,n.lineEdit.newLines.length,e.reduce((o,r)=>o+r.original.length,0),e.reduce((o,r)=>o+r.modified.length,0),e.length,e.every(o=>o.original===e[0].original&&o.modified===e[0].modified))}function cL(n){return n.every(t=>t.innerChanges.every(i=>e(i)));function e(t){return!(!t.originalRange.isEmpty()||t.modifiedRange.startLineNumber!==t.modifiedRange.endLineNumber)}}function jW(n,e){if(!e||!cL(n))return!1;const t=e;return n.every(s=>s.innerChanges.every(o=>i(o)));function i(s){const o=s.originalRange.getStartPosition();return!!(t.isBeforeOrEqual(o)||o.lineNumber<t.lineNumber)}}function wC(n){const e=n.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 yC(n,e,t){return n.map(i=>({original:e.originalText.getValueOfRange(i.originalRange),modified:t.getValueOfRange(i.modifiedRange)})).every(({original:i,modified:s})=>s.trim()===""&&i.length>0&&(i.length>s.length||i.trim()!==""))}function qW(n,e){return hL(n,e,t=>/^[a-zA-Z]$/.test(t))}function xC(n,e){return hL(n,e,t=>!/^\s$/.test(t))}function hL(n,e,t){const i=[];n.sort((o,r)=>y.compareRangesUsingStarts(o.range,r.range));for(const o of n){let r=o.range.startColumn-1,a=o.range.endColumn-2,l="",d="";const c=e.getLineAt(o.range.startLineNumber),h=e.getLineAt(o.range.endLineNumber);if(s(c[r]))for(;s(c[r-1]);)l=c[r-1]+l,r--;if(s(h[a])||a<r)for(;s(h[a+1]);)d+=h[a+1],a++;let u=new He(new y(o.range.startLineNumber,r+1,o.range.endLineNumber,a+2),l+o.text+d);i.length>0&&y.areIntersectingOrTouching(i[i.length-1].range,u.range)&&(u=He.joinReplacements([i.pop(),u],e)),i.push(u)}function s(o){return o===void 0?!1:t(o)}return i}var $W=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},KW=function(n,e){return function(t,i){e(t,i,n)}},_f=class extends O{constructor(e,t,i,s){super(),this._editor=e,this._model=t,this._showCollapsed=i,this._inlineEdit=T(this,o=>{const r=this._model.read(o);if(!r||!this._editor.getModel())return;const a=r.inlineEditState.read(o);if(!a)return;const l=a.inlineSuggestion.action;let d;if(l?.kind==="edit"){const c=l.stringEdit,h=a.inlineSuggestion.originalTextRef.getTransformer(),u=c.replacements.map(g=>{const p=y.fromPositions(h.getPosition(g.replaceRange.start),h.getPosition(g.replaceRange.endExclusive));return new He(p,g.newText)});d=new wn(u)}else d=void 0;return new JH(a.inlineSuggestion.originalTextRef,l,d,r.primaryPosition.read(void 0),r.allPositions.read(void 0),a.inlineSuggestion.source.inlineSuggestions.commands??[],a.inlineSuggestion)}),this._inlineEditModel=T(this,o=>{const r=this._model.read(o);if(!r)return;const a=this._inlineEdit.read(o);if(!a)return;const l=T(this,d=>{if(this._editorObs.isFocused.read(d)){if(r.tabShouldJumpToInlineEdit.read(d))return Ye.Jump;if(r.tabShouldAcceptInlineEdit.read(d))return Ye.Accept}return Ye.Inactive});return new QH(r,a,l)}),this._editorObs=Be(this._editor),this.view=this._register(s.createInstance(mf,this._editor,this._inlineEditModel,this._model.map(o=>o?oL.fromInlineCompletionModel(o):void 0),this._inlineEdit.map(o=>o?nL.fromInlineSuggestion(o.inlineCompletion):void 0),this._showCollapsed))}};_f=$W([KW(3,ie)],_f);var GW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ZW=function(n,e){return function(t,i){e(t,i,n)}},vf=class extends O{static{this.hot=mm(this)}constructor(e,t,i,s){super(),this._editor=e,this._model=t,this._focusIsInMenu=i,this._instantiationService=s,this._ghostTexts=T(this,o=>this._model.read(o)?.ghostTexts.read(o)??[]),this._inlineEdit=T(this,o=>this._model.read(o)?.inlineEditState.read(o)?.inlineSuggestion),this._everHadInlineEdit=Ts(this,(o,r)=>r||!!this._inlineEdit.read(o)||!!this._model.read(o)?.inlineCompletionState.read(o)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=Ne(this,void 0),this._showInlineEditCollapsed=T(this,o=>(this._model.read(o)?.showCollapsed.read(o)??!1)&&!this._indicatorIsHoverVisible.read(o)?.read(o)),this._inlineEditWidget=Dm(o=>{if(this._everHadInlineEdit.read(o))return this._instantiationService.createInstance(_f,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=T(o=>{const r=this._model.read(o);if(!r)return;const a=r.state.read(o);if(a?.kind==="ghostText"&&a.inlineSuggestion?.showInlineEditMenu)return{displayRange:rt.ofLength(a.primaryGhostText.lineNumber,1),tabAction:T(this,l=>this._editorObs.isFocused.read(l)?Ye.Accept:Ye.Inactive),gutterIndicatorOffset:Ce(XW(a.inlineSuggestion,this._editor)),inlineSuggestion:a.inlineSuggestion,model:r};if(a?.kind==="inlineEdit"){const l=this._inlineEditWidget.read(o)?.view;if(!l)return;const d=l.displayRange.read(o);return d?{displayRange:d,tabAction:T(c=>{if(this._editorObs.isFocused.read(c)){if(r.tabShouldJumpToInlineEdit.read(c))return Ye.Jump;if(r.tabShouldAcceptInlineEdit.read(c))return Ye.Accept}return Ye.Inactive}),gutterIndicatorOffset:l.gutterIndicatorOffset,inlineSuggestion:a.inlineSuggestion,model:r}:void 0}else return}),this._stablizedGhostTexts=xA(this._ghostTexts,this._store),this._editorObs=Be(this._editor),this._ghostTextWidgets=xm(this,this._stablizedGhostTexts,(o,r)=>r.add(this._createGhostText(o))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map(o=>o.fontFamily),this._register(QR(T(o=>`
48
- .monaco-editor .ghost-text-decoration,
49
- .monaco-editor .ghost-text-decoration-preview,
50
- .monaco-editor .ghost-text {
51
- font-family: ${this._fontFamily.read(o)};
52
- }`))),this._register(new Ig(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(Rc,this._editorObs,T(o=>{const r=this._gutterIndicatorState.read(o);if(r)return new iL(nL.fromInlineSuggestion(r.inlineSuggestion),r.displayRange,oL.fromInlineCompletionModel(r.model),r.inlineSuggestion.action?.kind==="edit"?r.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((o,r)=>o?.tabAction?.read(r)??Ye.Inactive),this._gutterIndicatorState.map((o,r)=>o?.gutterIndicatorOffset?.read(r)??0),this._inlineEditWidget.map((o,r)=>o?.view.inlineEditsIsHovered.read(r)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),T(o=>{const r=this._inlineEditWidget.read(o);if(r)return o.store.add(this._instantiationService.createInstance(lf,r._inlineEditModel,Ce(this._indicator),r.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(e){return this._instantiationService.createInstance(Ya,this._editor,T(t=>{const i=this._model.read(t),s=i?.inlineCompletionState.read(t)?.inlineSuggestion;return!i||!s?{ghostText:e.read(t),handleInlineCompletionShown:()=>{},warning:void 0}:{ghostText:e.read(t),handleInlineCompletionShown:o=>i.handleInlineSuggestionShown(s,ae.GhostText,o,Date.now()),warning:uH.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}};vf=GW([ZW(3,ie)],vf);function XW(n,e){const t=n.getSingleTextEdit(),i=e.getModel();if(!i)return 0;const s=i.getEOL();if(t.range.isEmpty()&&t.text.startsWith(s)){const o=e.getLineHeightForPosition(t.range.getStartPosition());return YW(t.text,s)*o}return 0}function YW(n,e){if(!e.length)return 0;let t=0,i=0;for(;n.startsWith(e,i);)t++,i+=e.length;return t}var JW=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},pn=function(n,e){return function(t,i){e(t,i,n)}},Zi;DF(n=>Ot.get(n));var Ot=class extends O{static{Zi=this}static{this._instances=new Set}static{this.hot=mm(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(e){const t=ox(e);return t?Zi.get(t):null}static get(e){return uM(e.getContribution(Zi.ID))}constructor(e,t,i,s,o,r,a,l,d,c){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=s,this._commandService=o,this._debounceService=r,this._languageFeaturesService=a,this._accessibilitySignalService=l,this._keybindingService=d,this._accessibilityService=c,this._enabled=T(this,f=>this._enabledInConfig.read(f)&&(!this._isScreenReaderEnabled.read(f)||!this._editorDictationInProgress.read(f))),this._focusIsInMenu=Ne(this,!1),this._focusIsInEditorOrMenu=T(this,f=>{const _=this._editorObs.isFocused.read(f),v=this._focusIsInMenu.read(f);return _||v}),this._cursorIsInIndentation=T(this,f=>{const _=this._editorObs.cursorPosition.read(f);if(_===null)return!1;const v=this._editorObs.model.read(f);if(!v)return!1;this._editorObs.versionId.read(f);const C=v.getLineIndentColumn(_.lineNumber);return _.column<=C}),this.model=Dm(this,f=>{if(this._editorObs.isReadonly.read(f))return;const _=this._editorObs.model.read(f);if(_)return this._instantiationService.createInstance(zp,_,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabled,this.editor)}),this._playAccessibilitySignal=Jn(this),this._view=T(f=>f.store.add(this._instantiationService.createInstance(vf.hot.read(f),this.editor,this.model,this._focusIsInMenu))),this._editorObs=Be(this.editor),this._positions=T(this,f=>this._editorObs.selections.read(f)?.map(_=>_.getEndPosition())??[new B(1,1)]),this._suggestWidgetAdapter=this._register(new lH(this._editorObs,f=>this.model.get()?.handleSuggestAccepted(f),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=Dt(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._isScreenReaderEnabled=Dt(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=Dt(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(f=>!0),this._view.recomputeInitiallyAndOnChange(this._store),Zi._instances.add(this),this._register(ke(()=>Zi._instances.delete(this))),this._register(he(f=>{const _=this.model.read(f);if(!_)return;const v=_.state.read(f);if(!v||!this._focusIsInEditorOrMenu.read(void 0))return;const C=v.kind==="inlineEdit"?v.nextEditUri:void 0;for(const x of Zi._instances)x!==this&&(C&&ps(C,x.editor.getModel()?.uri)?x.model.read(void 0)?.trigger():x.reject())})),this._register(he(f=>{const _=this.model.read(f),v=this.editor.getModel()?.uri;!_||!v||f.store.add(_.onDidAccept(()=>{for(const C of Zi._instances){if(C===this)continue;const x=C.model.read(void 0)?.state.read(void 0);x?.kind==="inlineEdit"&&ps(x.nextEditUri,v)&&C.model.read(void 0)?.stop("automatic")}}))})),this._register(Yo(this._editorObs.onDidType,(f,_)=>{this._enabled.get()&&this.model.get()?.trigger()})),this._register(Yo(this._editorObs.onDidPaste,(f,_)=>{this._enabled.get()&&this.model.get()?.trigger()}));const h=new Set([pd.Tab.id,pd.DeleteLeft.id,pd.DeleteRight.id,yl,"acceptSelectedSuggestion",gI.ID,hI.ID,Ee.NextMatchFindAction,S_.ID,Qx.ID,eI.ID,iI.ID,...UE.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand(f=>{if(h.has(f.commandId)&&e.hasTextFocus()&&this._enabled.get()){let _=!1;f.commandId==="editor.action.inlineSuggest.commit"&&(_=!0),this._editorObs.forceUpdate(v=>{this.model.get()?.trigger(v,{noDelay:_})})}})),this._register(Yo(this._editorObs.selections,(f,_,v)=>{if(v.some(C=>C.reason===3||C.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;const C=this.model.get();if(!C)return;C.state.get()?.kind==="ghostText"&&this.model.get()?.stop()}})),this._register(he(f=>{const _=this._focusIsInEditorOrMenu.read(f),v=this.model.read(void 0);if(_){const C=v?.state.read(void 0);(!C||C.kind!=="inlineEdit"||!C.nextEditUri)&&Fi(x=>{for(const I of Zi._instances)I!==this&&I.model.read(void 0)?.stop("automatic",x)});return}this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(71).keepOnBlur||pr.dropDownVisible||v&&(v.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&v.inlineEditAvailable.read(void 0)||Fi(C=>{v.stop("automatic",C)}))})),this._register(he(f=>{const _=this.model.read(f)?.inlineCompletionState.read(f);_?.suggestItem?_.primaryGhostText.lineCount>=2&&this._suggestWidgetAdapter.forceRenderingAbove():this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(ke(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));const u=Ts(this,(f,_)=>{const v=this.model.read(f)?.state.read(f);return this._suggestWidgetAdapter.selectedItem.get()?_:v?.inlineSuggestion?.semanticId});this._register(sE(T(f=>(this._playAccessibilitySignal.read(f),u.read(f),{})),async(f,_,v,C)=>{let x=this.model.get(),I=x?.state.get();if(!I||!x||(await Xc(50,J_(C)),await M0(this._suggestWidgetAdapter.selectedItem,ta,()=>!1,J_(C)),x=this.model.get(),I=x?.state.get(),!I||!x))return;const b=I.kind==="ghostText"?x.textModel.getLineContent(I.primaryGhostText.lineNumber):"";this._accessibilitySignalService.playSignal(I.kind==="ghostText"?Fa.inlineSuggestion:Fa.nextEditSuggestion),this.editor.getOption(12)&&(I.kind==="ghostText"?this._provideScreenReaderUpdate(I.primaryGhostText.renderForScreenReader(b)):this._provideScreenReaderUpdate(""))})),this._register(this._configurationService.onDidChangeConfiguration(f=>{f.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 g=new IA(this._contextKeyService);this._register(g.bind(be.cursorInIndentation,this._cursorIsInIndentation)),this._register(g.bind(be.hasSelection,f=>!this._editorObs.cursorSelection.read(f)?.isEmpty())),this._register(g.bind(be.cursorAtInlineEdit,this.model.map((f,_)=>f?.inlineEditState?.read(_)?.cursorAtInlineEdit.read(_)))),this._register(g.bind(be.tabShouldAcceptInlineEdit,this.model.map((f,_)=>!!f?.tabShouldAcceptInlineEdit.read(_)))),this._register(g.bind(be.tabShouldJumpToInlineEdit,this.model.map((f,_)=>!!f?.tabShouldJumpToInlineEdit.read(_)))),this._register(g.bind(be.inlineEditVisible,f=>this.model.read(f)?.inlineEditState.read(f)!==void 0)),this._register(g.bind(be.inlineSuggestionHasIndentation,f=>this.model.read(f)?.getIndentationInfo(f)?.startsWithIndentation)),this._register(g.bind(be.inlineSuggestionHasIndentationLessThanTabSize,f=>this.model.read(f)?.getIndentationInfo(f)?.startsWithIndentationLessThanTabSize)),this._register(g.bind(be.suppressSuggestions,f=>{const _=this.model.read(f)?.inlineCompletionState.read(f);return _?.primaryGhostText&&_?.inlineSuggestion?_.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(g.bind(be.inlineSuggestionAlternativeActionVisible,f=>{const _=this.model.read(f)?.inlineEditState.read(f)?.inlineSuggestion.action;return _&&_.kind==="edit"&&_.alternativeAction!==void 0})),this._register(g.bind(be.inlineSuggestionVisible,f=>{const _=this.model.read(f)?.inlineCompletionState.read(f);return!!_?.inlineSuggestion&&_?.primaryGhostText!==void 0&&!_?.primaryGhostText.isEmpty()}));const p=T(this,f=>{const _=this.model.read(f)?.inlineCompletionState.read(f)?.primaryGhostText;if(!(!_||_.isEmpty()))return new B(_.lineNumber,_.parts[0].column)});this._register(g.bind(be.cursorBeforeGhostText,f=>{const _=p.read(f);if(!_)return!1;const v=this._editorObs.cursorPosition.read(f);return v?_.equals(v):!1})),this._register(this._instantiationService.createInstance(Lp,this.editor))}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}_provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let s;!t&&i&&this.editor.getOption(169)&&(s=m(1247,"Inspect this in the accessible view ({0})",i.getAriaLabel())),ci(s?e+", "+s:e)}shouldShowHoverAt(e){const t=this.model.get()?.primaryGhostText.get();return t?t.parts.some(i=>e.containsPosition(new B(t.lineNumber,i.column))):!1}shouldShowHoverAtViewZone(e){return this._view.get().shouldShowHoverAtViewZone(e)}reject(){Fi(e=>{const t=this.model.get();if(t&&(t.stop("explicitCancel",e),this._focusIsInEditorOrMenu.get()))for(const i of Zi._instances)i!==this&&!i._focusIsInEditorOrMenu.get()&&i.model.get()?.stop("automatic",e)})}jump(){const e=this.model.get();e&&e.jump()}};Ot=Zi=JW([pn(1,ie),pn(2,ve),pn(3,xe),pn(4,ht),pn(5,Ri),pn(6,Z),pn(7,Em),pn(8,Oe),pn(9,Rs)],Ot);var QW=class uL extends M{static{this.ID=Oy}constructor(){super({id:uL.ID,label:L(1224,"Show Next Inline Suggestion"),precondition:N.and(S.writable,be.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){Ot.get(t)?.model.get()?.next()}},eV=class gL extends M{static{this.ID=Py}constructor(){super({id:gL.ID,label:L(1225,"Show Previous Inline Suggestion"),precondition:N.and(S.writable,be.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){Ot.get(t)?.model.get()?.previous()}},tV="vscode://schemas/inlineCompletionProviderIdArgs";function iV(n){const e=[];return n.providerId&&(e.push(n.providerId.toStringWithoutVersion()),e.push(n.providerId.extensionId+":*")),e}var IC=yM(SM({showNoResultNotification:Zl(Cb()),providerId:Zl(IM(tV,fM())),explicit:Zl(Cb()),changeHintData:Zl(vM())}),bM()),nV=class extends M{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:L(1226,"Trigger Inline Suggestion"),precondition:S.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:IC.getJSONSchema()}]}})}async run(n,e,t){const i=n.get(Et),s=n.get(Z),o=Ot.get(e),r=IC.validateOrThrow(t),a=r?.providerId?s.inlineCompletionsProvider.all(e.getModel()).find(l=>iV(l).some(d=>d===r.providerId)):void 0;await LR(async l=>{await o?.model.get()?.trigger(l,{provider:a,explicit:r?.explicit??!0,changeHint:r?.changeHintData?{data:r.changeHintData}:void 0}),o?.playAccessibilitySignal(l)}),r?.showNoResultNotification&&(o?.model.get()?.state.get()||i.notify({severity:jc.Info,message:m(1215,"No inline suggestion is available.")}))}},sV=class extends M{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:L(1227,"Accept Next Word Of Inline Suggestion"),precondition:N.and(S.writable,be.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:N.and(S.writable,be.inlineSuggestionVisible,be.cursorBeforeGhostText,ul.negate())},menuOpts:[{menuId:$.InlineSuggestionToolbar,title:m(1216,"Accept Word"),group:"primary",order:2}]})}async run(n,e){await Ot.get(e)?.model.get()?.acceptNextWord()}},oV=class extends M{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:L(1228,"Accept Next Line Of Inline Suggestion"),precondition:N.and(S.writable,be.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:$.InlineSuggestionToolbar,title:m(1217,"Accept Line"),group:"secondary",order:2}]})}async run(n,e){await Ot.get(e)?.model.get()?.acceptNextLine()}},rV=class extends M{constructor(){super({id:yl,label:L(1229,"Accept Inline Suggestion"),precondition:N.or(be.inlineSuggestionVisible,be.inlineEditVisible),menuOpts:[{menuId:$.InlineSuggestionToolbar,title:m(1218,"Accept"),group:"primary",order:2},{menuId:$.InlineEditsActions,title:m(1219,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:N.or(N.and(be.inlineSuggestionVisible,S.tabMovesFocus.toNegated(),J.Visible.toNegated(),S.hoverFocused.toNegated(),be.hasSelection.toNegated(),be.inlineSuggestionHasIndentationLessThanTabSize),N.and(be.inlineEditVisible,S.tabMovesFocus.toNegated(),J.Visible.toNegated(),S.hoverFocused.toNegated(),be.tabShouldAcceptInlineEdit))}]})}async run(n,e){const t=Ot.getInFocusedEditorOrParent(n);t&&(t.model.get()?.accept(t.editor),t.editor.focus())}};ni.registerKeybindingRule({id:yl,weight:202,primary:2,when:N.and(be.inInlineEditsPreviewEditor)});var aV=class extends M{constructor(){super({id:uh,label:L(1230,"Accept Inline Suggestion Alternative Action"),precondition:N.and(be.inlineSuggestionAlternativeActionVisible,be.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(n,e){const t=Ot.getInFocusedEditorOrParent(n);t&&(t.model.get()?.accept(t.editor,!0),t.editor.focus())}};ni.registerKeybindingRule({id:uh,weight:203,primary:1026,when:N.and(be.inInlineEditsPreviewEditor)});var lV=class extends M{constructor(){super({id:My,label:L(1231,"Jump to next inline edit"),precondition:be.inlineEditVisible,menuOpts:[{menuId:$.InlineEditsActions,title:m(1220,"Jump"),group:"primary",order:1,when:be.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:N.and(be.inlineEditVisible,S.tabMovesFocus.toNegated(),J.Visible.toNegated(),S.hoverFocused.toNegated(),be.tabShouldJumpToInlineEdit)}})}async run(n,e){const t=Ot.get(e);t&&t.jump()}},pL=class fL extends M{static{this.ID=Ay}constructor(){super({id:fL.ID,label:L(1232,"Hide Inline Suggestion"),precondition:N.or(be.inlineSuggestionVisible,be.inlineEditVisible),kbOpts:{kbExpr:S.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:$.InlineEditsActions,title:m(1221,"Reject"),group:"primary",order:3}]})}async run(e,t){const i=Ot.getInFocusedEditorOrParent(e);Fi(s=>{i?.model.get()?.stop("explicitCancel",s)}),i?.editor.focus()}},dV=class mL extends M{static{this.ID=xg}constructor(){super({id:mL.ID,label:L(1233,"Toggle Inline Suggestions Show Collapsed"),precondition:N.true()})}async run(e,t){const i=e.get(xe),s=i.getValue("editor.inlineSuggest.edits.showCollapsed");i.updateValue("editor.inlineSuggest.edits.showCollapsed",!s)}};ni.registerKeybindingRule({id:pL.ID,weight:-1,primary:9,secondary:[1033],when:N.and(be.inInlineEditsPreviewEditor)});var cV=class _L extends lt{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:_L.ID,title:m(1222,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:$.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:N.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e){const t=e.get(xe),i=t.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";t.updateValue("editor.inlineSuggest.showToolbar",i)}},hV=class extends M{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:m(1223,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:N.or(be.inlineEditVisible,be.inlineSuggestionVisible)})}async run(n,e){const t=n.get(ti),i=Ot.get(e)?.model.get();if(!i)return;const s=i.extractReproSample(),o=kn(JSON.stringify({inlineCompletion:s.inlineCompletion},null,4)).map(a=>"// "+a).join(`
53
- `),r=`${s.documentValue}
54
-
55
- // <json>
56
- ${o}
57
- // </json>
58
- `;return await t.writeText(r),{reproCase:r}}},uV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},sd=function(n,e){return function(t,i){e(t,i,n)}},gV=class{constructor(n,e,t){this.owner=n,this.range=e,this.controller=t}isValidForHoverAnchor(n){return n.type===1&&this.range.startColumn<=n.range.startColumn&&this.range.endColumn>=n.range.endColumn}},bf=class{constructor(e,t,i,s,o){this._editor=e,this.accessibilityService=t,this._instantiationService=i,this._telemetryService=s,this._markdownRendererService=o,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 s=i.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId))return new ia(1e3,this,y.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),e.event.posx,e.event.posy,!1)}if(i.type===7&&t.shouldShowHoverAt(i.range))return new ia(1e3,this,i.range,e.event.posx,e.event.posy,!1);if(i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range))return new ia(1e3,this,i.range,e.event.posx,e.event.posy,!1);if(i.type===9&&i.element){const s=Ya.getWarningWidgetContext(i.element);if(s&&t.shouldShowHoverAt(s.range))return new ia(1e3,this,s.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 gV(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new A,s=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12)&&i.add(this.renderScreenReaderText(e,s));const o=s.controller.model.get(),r=document.createElement("div");return e.fragment.appendChild(r),i.add(bl((a,l)=>{const d=l.add(this._instantiationService.createInstance(pr.hot.read(a),this._editor,!1,Ce(null),o.selectedInlineCompletionIndex,o.inlineCompletionsCount,o.activeCommands,o.warning,()=>{e.onContentsChanged()}));r.replaceChildren(d.getDomNode())})),o.triggerExplicitly(),new ho([{hoverPart:s,hoverElement:r,dispose(){i.dispose()}}])}getAccessibleContent(e){return m(1248,"There are inline completions here")}renderScreenReaderText(e,t){const i=new A,s=W,o=s("div.hover-row.markdown-hover"),r=z(o,s("div.hover-contents",{"aria-live":"assertive"})),a=l=>{const d=m(1249,"Suggestion:"),c=i.add(this._markdownRendererService.render(new Lt().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(he(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 jd(r)})),e.fragment.appendChild(o),i}};bf=uV([sd(1,Rs),sd(2,ie),sd(3,Ds),sd(4,Ls)],bf);var pV=class{};ce(Ot.ID,gM(Ot.hot),3);k(nV);k(QW);k(eV);k(sV);k(oV);k(rV);k(aV);k(dV);k(pL);k(lV);fe(cV);k(hV);fe(GE);fe(yT);Co.register(bf);bh.register(new pV);var fV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Tu=function(n,e){return function(t,i){e(t,i,n)}},ma,tl=class{static{ma=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(e,t,i,s){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=s,this.toUnhook=new A,this.toUnhookForKeyboard=new A,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const o=new fh(e);this.toUnhook.add(o),this.toUnhook.add(o.onMouseMoveOrRelevantKeyDown(([r,a])=>{this.startFindDefinitionFromMouse(r,a??void 0)})),this.toUnhook.add(o.onExecute(r=>{this.isEnabled(r)&&this.gotoDefinition(r.target.position,r.hasSideBySideModifier).catch(a=>{we(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(o.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(ma.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 vw(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=pt(r=>this.findDefinition(e,r));let s;try{s=await this.previousPromise}catch(r){we(r);return}if(!s||!s.length||!i.validate(this.editor)){this.removeLinkDecorations();return}const o=s[0].originSelectionRange?y.lift(s[0].originSelectionRange):new y(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn);if(s.length>1){let r=o;for(const{originSelectionRange:a}of s)a&&(r=y.plusRange(r,a));this.addDecoration(r,new Lt().appendText(m(1120,"Click to show {0} definitions.",s.length)))}else{const r=s[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(o,c?new Lt().appendCodeblock(h||"",c):void 0),a.dispose()}):void 0}}getPreviewValue(e,t,i){let s=i.range;return s.endLineNumber-s.startLineNumber>=ma.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(e,t)),s=e.validateRange(s),this.stripIndentationFromPreviewRange(e,t,s)}stripIndentationFromPreviewRange(e,t,i){let s=e.getLineFirstNonWhitespaceColumn(t);for(let o=t+1;o<i.endLineNumber;o++){const r=e.getLineFirstNonWhitespaceColumn(o);s=Math.min(s,r)}return e.getValueInRange(i).replace(new RegExp(`^\\s{${s-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(e,t){const i=e.getLineFirstNonWhitespaceColumn(t),s=Math.min(e.getLineCount(),t+ma.MAX_SOURCE_PREVIEW_LINES);let o=t+1;for(;o<s&&i!==e.getLineFirstNonWhitespaceColumn(o);o++);return new y(t,1,o+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 km)&&(e.hasTriggerModifier||(t?t.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?Il(this.languageFeaturesService.definitionProvider,i,e,!1,t):Promise.resolve(null)}async gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(i=>{const s=!t&&this.editor.getOption(101)&&!this.isInPeekEditor(i);return new Dl({openToSide:t,openInPeek:s,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(ve);return Vt.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};tl=ma=fV([Tu(1,si),Tu(2,Fn),Tu(3,Z)],tl);ce(tl.ID,tl,2);var mV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},LC=function(n,e){return function(t,i){e(t,i,n)}},Nc=class extends O{static{this.ID="editor.contrib.markerSelectionStatus"}constructor(e,t,i){super(),this._editor=e,this._markerService=i,this._ctxHasDiagnostics=S.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(s=>{const o=this._editor.getModel();o&&s.some(r=>ps(r,o.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 i=this._markerService.read({resource:e.uri,severities:vt.Error|vt.Warning|vt.Info}).some(s=>y.areIntersecting({startLineNumber:s.startLineNumber,startColumn:s.startColumn,endLineNumber:s.endLineNumber,endColumn:s.endColumn},t));this._ctxHasDiagnostics.set(i)}};Nc=mV([LC(1,ve),LC(2,lh)],Nc);ce(Nc.ID,Nc,1);var _V=class extends M{constructor(){super({id:"editor.action.debugEditorGpuRenderer",label:L(1144,"Developer: Debug Editor GPU Renderer"),precondition:N.true()})}async run(n,e){const t=n.get(ie),i=await n.get(Di).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(i)switch(i.id){case"logTextureAtlasStats":t.invokeFunction(s=>{const o=s.get(Pt),r=Hr.atlas;if(!Hr.atlas){o.error("No texture atlas found");return}const a=r.getStats();o.info(["Texture atlas stats",...a].join(`
59
-
60
- `))});break;case"saveTextureAtlas":t.invokeFunction(async s=>{const o=s.get(ms),r=s.get(iC),a=o.getWorkspace().folders;if(a.length>0){const l=Hr.atlas,d=[];for(const[c,h]of l.pages.entries())d.push(r.writeFile(De.joinPath(a[0].uri,`textureAtlasPage${c}_actual.png`),gd.wrap(new Uint8Array(await(await h.source.convertToBlob()).arrayBuffer()))),r.writeFile(De.joinPath(a[0].uri,`textureAtlasPage${c}_usage.png`),gd.wrap(new Uint8Array(await(await h.getUsagePreview()).arrayBuffer()))));await Promise.all(d)}});break;case"drawGlyph":t.invokeFunction(async s=>{const o=s.get(xe),r=s.get(iC),a=s.get(Di),l=s.get(ms).getWorkspace().folders;if(l.length===0)return;const d=Hr.atlas,c=o.getValue("editor.fontFamily"),h=o.getValue("editor.fontSize"),u=new cE(h,c,tc().devicePixelRatio,Hr.decorationStyleCache);let g=await a.input({prompt:"Enter a character to draw (prefix with 0x for code point))"});if(!g)return;const p=g.match(/0x(?<codePoint>[0-9a-f]+)/i)?.groups?.codePoint;p!==void 0&&(g=String.fromCodePoint(parseInt(p,16)));const f=0,_=d.getGlyph(u,g,f,0,0);if(!_)return;const v=d.pages[_.pageIndex].source.getContext("2d")?.getImageData(_.x,_.y,_.w,_.h);if(!v)return;const C=new OffscreenCanvas(v.width,v.height);ZT(C.getContext("2d")).putImageData(v,0,0);const x=await C.convertToBlob({type:"image/png"}),I=De.joinPath(l[0].uri,`glyph_${g}_${f}_${h}px_${c.replaceAll(/[,\\\/\.'\s]/g,"_")}.png`);await r.writeFile(I,gd.wrap(new Uint8Array(await x.arrayBuffer())))})}}};k(_V);var Mi;(function(n){n.NoAutoFocus="noAutoFocus",n.FocusIfVisible="focusIfVisible",n.AutoFocusImmediately="autoFocusImmediately"})(Mi||(Mi={}));var vV=class extends M{constructor(){super({id:yN,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:[Mi.NoAutoFocus,Mi.FocusIfVisible,Mi.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:Mi.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:et(2089,2087),weight:100}})}run(n,e,t){if(!e.hasModel())return;const i=xt.get(e);if(!i)return;const s=t?.focus;let o=Mi.FocusIfVisible;Object.values(Mi).includes(s)?o=s:typeof s=="boolean"&&s&&(o=Mi.AutoFocusImmediately);const r=l=>{const d=e.getPosition(),c=new y(d.lineNumber,d.column,d.lineNumber,d.column);i.showContentHover(c,1,2,l)},a=e.getOption(2)===2;i.isHoverVisible?o!==Mi.NoAutoFocus?i.focus():r(a):r(a||o===Mi.AutoFocusImmediately)}},bV=class extends M{constructor(){super({id:xN,label:L(1152,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:L(1153,"Show the definition preview hover in the editor.")}})}run(n,e){const t=xt.get(e);if(!t)return;const i=e.getPosition();if(!i)return;const s=new y(i.lineNumber,i.column,i.lineNumber,i.column),o=tl.get(e);o&&o.startFindDefinitionFromCursor(i).then(()=>{t.showContentHover(s,1,2,!0)})}},CV=class extends M{constructor(){super({id:IN,label:L(1154,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(n,e){xt.get(e)?.hideContentHover()}},SV=class extends M{constructor(){super({id:LN,label:L(1155,"Scroll Up Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:16,weight:100},metadata:{description:L(1156,"Scroll up the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.scrollUp()}},wV=class extends M{constructor(){super({id:DN,label:L(1157,"Scroll Down Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:18,weight:100},metadata:{description:L(1158,"Scroll down the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.scrollDown()}},yV=class extends M{constructor(){super({id:EN,label:L(1159,"Scroll Left Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:15,weight:100},metadata:{description:L(1160,"Scroll left the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.scrollLeft()}},xV=class extends M{constructor(){super({id:RN,label:L(1161,"Scroll Right Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:17,weight:100},metadata:{description:L(1162,"Scroll right the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.scrollRight()}},IV=class extends M{constructor(){super({id:TN,label:L(1163,"Page Up Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:L(1164,"Page up the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.pageUp()}},LV=class extends M{constructor(){super({id:NN,label:L(1165,"Page Down Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:L(1166,"Page down the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.pageDown()}},DV=class extends M{constructor(){super({id:kN,label:L(1167,"Go To Top Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:L(1168,"Go to the top of the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.goToTop()}},EV=class extends M{constructor(){super({id:PN,label:L(1169,"Go To Bottom Hover"),precondition:S.hoverFocused,kbOpts:{kbExpr:S.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:L(1170,"Go to the bottom of the editor hover.")}})}run(n,e){const t=xt.get(e);t&&t.goToBottom()}},RV=class extends M{constructor(){super({id:Xm,label:ON,alias:"Increase Hover Verbosity Level",precondition:S.hoverVisible})}run(n,e,t){const i=xt.get(e);if(!i)return;const s=t?.index!==void 0?t.index:i.focusedHoverPartIndex();i.updateHoverVerbosityLevel(li.Increase,s,t?.focus)}},TV=class extends M{constructor(){super({id:Ym,label:MN,alias:"Decrease Hover Verbosity Level",precondition:S.hoverVisible})}run(n,e,t){const i=xt.get(e);if(!i)return;const s=t?.index!==void 0?t.index:i.focusedHoverPartIndex();xt.get(e)?.updateHoverVerbosityLevel(li.Decrease,s,t?.focus)}},NV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Zr=function(n,e){return function(t,i){e(t,i,n)}},pi=W,kV=class{constructor(n,e,t){this.owner=n,this.range=e,this.marker=t}isValidForHoverAnchor(n){return n.type===1&&this.range.startColumn<=n.range.startColumn&&this.range.endColumn>=n.range.endColumn}},DC={type:1,filter:{include:Te.QuickFix},triggerAction:$t.QuickFixHover},Cf=class{constructor(e,t,i,s,o,r){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=s,this._menuService=o,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(),s=e.range;if(!i.isValidRange(e.range))return[];const o=s.startLineNumber,r=i.getLineMaxColumn(o),a=[];for(const l of t){const d=l.range.startLineNumber===o?l.range.startColumn:1,c=l.range.endLineNumber===o?l.range.endColumn:r,h=this._markerDecorationsService.getMarker(i.uri,l);if(!h)continue;const u=new y(e.range.startLineNumber,d,e.range.startLineNumber,c);a.push(new kV(this,u,h))}return a}renderHoverParts(e,t){if(!t.length)return new ho([]);const i=[];t.forEach(r=>{const a=this._renderMarkerHover(r);e.fragment.appendChild(a.hoverElement),i.push(a)});const s=t.length===1?t[0]:t.sort((r,a)=>vt.compare(r.marker.severity,a.marker.severity))[0],o=this._renderMarkerStatusbar(e,s);return new ho(i,o)}getAccessibleContent(e){return e.marker.message}_renderMarkerHover(e){const t=new A,i=pi("div.hover-row"),s=z(i,pi("div.marker.hover-contents")),{source:o,message:r,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(s);const d=z(s,pi("span"));if(d.style.whiteSpace="pre-wrap",d.innerText=r,o||a)if(a&&typeof a!="string"){const c=pi("span");if(o){const p=z(c,pi("span"));p.innerText=o}const h=z(c,pi("a.code-link"));h.setAttribute("href",a.target.toString(!0)),t.add(de(h,"click",p=>{this._openerService.open(a.target,{allowCommands:!0}),p.preventDefault(),p.stopPropagation()}));const u=z(h,pi("span"));u.innerText=a.value;const g=z(s,c);g.style.opacity="0.6",g.style.paddingLeft="6px"}else{const c=z(s,pi("span"));c.style.opacity="0.6",c.style.paddingLeft="6px",c.innerText=o&&a?`${o}(${a})`:o||`(${a})`}if(Qt(l))for(const{message:c,resource:h,startLineNumber:u,startColumn:g}of l){const p=z(s,pi("div"));p.style.marginTop="8px";const f=z(p,pi("a"));f.innerText=`${Vi(h)}(${u}, ${g}): `,f.style.cursor="pointer",t.add(de(f,"click",v=>{if(v.stopPropagation(),v.preventDefault(),this._openerService){const C={selection:{startLineNumber:u,startColumn:g}};this._openerService.open(h,{fromUserGesture:!0,editorOptions:C}).catch(we)}}));const _=z(p,pi("span"));_.innerText=c,this._editor.applyFontInfo(_)}return{hoverPart:e,hoverElement:i,dispose:()=>t.dispose()}}_renderMarkerStatusbar(e,t){const i=new A;if(t.marker.severity===vt.Error||t.marker.severity===vt.Warning||t.marker.severity===vt.Info){const r=po.get(this._editor);r&&e.statusBar.addAction({label:m(1180,"View Problem"),commandId:S_.ID,run:()=>{e.hide(),r.showAtMarker(t.marker),this._editor.focus()}})}const s=[];for(const[,r]of this._menuService.getMenuActions($.MarkerHoverStatusBar,this._contextKeyService))for(const a of r)a instanceof ro&&a.enabled&&s.push(a);const o=()=>{for(const r of s)e.statusBar.addAction({label:r.label,commandId:r.id,iconClass:r.class,run:()=>{e.hide(),this._editor.setSelection(y.lift(t.range)),r.run()}})};if(this._editor.getOption(104))o();else{const r=e.statusBar.append(pi("div"));this.recentMarkerCodeActionsInfo&&(_v.makeKey(this.recentMarkerCodeActionsInfo.marker)===_v.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||s.length===0&&(r.textContent=m(1181,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?O.None:gs(()=>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(),s.length===0?r.textContent=m(1183,"No quick fixes available"):r.style.display="none",o();return}r.style.display="none";let c=!1;i.add(ke(()=>{c||d.dispose()})),e.statusBar.addAction({label:m(1184,"Quick Fix..."),commandId:uy,run:u=>{c=!0;const g=co.get(this._editor),p=kt(u);e.hide(),g?.showCodeActions(DC,d,{x:p.left,y:p.top,width:p.width,height:p.height})}});const h=d.validActions.find(u=>u.action.isAI);h?e.statusBar.addAction({label:h.action.title,commandId:h.action.command?.id??"",iconClass:pe.asClassName(V.sparkle),run:()=>{co.get(this._editor)?.applyCodeAction(h,!1,!1,ns.FromProblemsHover)}}):o(),e.onContentsChanged()},we)}return i}getCodeActions(e){return pt(t=>Ko(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new y(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),DC,xn.None,t))}};Cf=NV([Zr(1,oE),Zr(2,_o),Zr(3,Z),Zr(4,Es),Zr(5,ve)],Cf);var PV=class{constructor(n){this._editor=n}computeSync(n){const e=o=>({value:o}),t=this._editor.getLineDecorations(n.lineNumber),i=[],s=n.laneOrLine==="lineNo";if(!t)return i;for(const o of t){const r=o.options.glyphMargin?.position??Zu.Center;if(!s&&r!==n.laneOrLine)continue;const a=s?o.options.lineNumberHoverMessage:o.options.glyphMarginHoverMessage;!a||Pa(a)||i.push(...QS(a).map(e))}return i}},OV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},MV=function(n,e){return function(t,i){e(t,i,n)}},Sf,EC=W,wf=class extends O{static{Sf=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(e,t){super(),this._markdownRendererService=t,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new A),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new ww(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new Hy(this._editor,new PV(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(bs(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 Sf.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(e=>this._editor.applyFontInfo(e))}_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 s=document.createDocumentFragment();for(const o of i){const r=EC("div.hover-row.markdown-hover"),a=z(r,EC("div.hover-contents")),l=this._renderDisposeables.add(this._markdownRendererService.render(o.value,{context:this._editor}));a.appendChild(l.element),s.appendChild(r)}this._updateContents(s),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(),s=this._editor.getTopForLineNumber(e),o=this._editor.getScrollTop(),r=this._editor.getOption(75),a=this._hover.containerDomNode.clientHeight,l=s-o-(a-r)/2,d=i.glyphMarginLeft+i.glyphMarginWidth+(t==="lineNo"?i.lineNumbersWidth:0),c=i.height-a,h=Math.max(0,Math.min(Math.round(l),c));if(this._editor.getOption(51)){const u=this._editor.getDomNode();if(u){const g=kt(u);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${g.left+d}px`,this._hover.containerDomNode.style.top=`${g.top+h}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${d}px`,this._hover.containerDomNode.style.top=`${h}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(e){const t=this._editor.getDomNode();(!t||!gh(t,e.x,e.y))&&this.hide()}};wf=Sf=OV([MV(1,Ls)],wf);var AV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},FV=function(n,e){return function(t,i){e(t,i,n)}},kc=class extends O{static{this.ID="editor.contrib.marginHover"}constructor(e,t){super(),this._editor=e,this._instantiationService=t,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new A,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new at(()=>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?gh(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){if(this._mouseMoveEvent=e,this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(e)}}_reactToEditorMouseMove(e){if(e){if(!Fy(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"&&Qm(this._editor.getOption(86),e)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}NS(e.keyCode)||this.hideGlyphHover()}}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(wf,this._editor)),this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};kc=AV([FV(1,ie)],kc);var HV=class{},WV=class{},VV=class{};ce(xt.ID,xt,2);ce(kc.ID,kc,2);k(vV);k(bV);k(CV);k(SV);k(wV);k(yV);k(xV);k(IV);k(LV);k(DV);k(EV);k(RV);k(TV);Co.register(qa);Co.register(Cf);Re.registerCommand(yg,n=>{n.get(xe).updateValue("editor.hover.showLongLineWarning",!1)});al((n,e)=>{const t=n.getColor(Mm);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)}; }`))});bh.register(new HV);bh.register(new WV);bh.register(new VV);function vL(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return[];const s=e.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;if(!s)return[];const o=new IR(n,s,e);for(i=Math.min(i,n.getLineCount());t<=i&&o.shouldIgnore(t);)t++;if(t>i-1)return[];const{tabSize:r,indentSize:a,insertSpaces:l}=n.getOptions(),d=(f,_)=>(_=_||1,hr.shiftIndent(f,f.length+_,r,a,l)),c=(f,_)=>(_=_||1,hr.unshiftIndent(f,f.length+_,r,a,l)),h=[],u=n.getLineContent(t);let g=yt(u),p=g;o.shouldIncrease(t)?(p=d(p),g=d(g)):o.shouldIndentNextLine(t)&&(p=d(p)),t++;for(let f=t;f<=i;f++){if(BV(n,f))continue;const _=n.getLineContent(f),v=yt(_),C=p;o.shouldDecrease(f,C)&&(p=c(p),g=c(g)),v!==p&&h.push(Ge.replaceMove(new te(f,1,f,v.length+1),ZR(p,a,l))),!o.shouldIgnore(f)&&(o.shouldIncrease(f,C)?(g=d(g),p=g):o.shouldIndentNextLine(f,C)?p=d(p):p=g)}return h}function BV(n,e){return n.tokenization.isCheapToTokenize(e)?n.tokenization.getLineTokens(e).getStandardTokenType(0)===2:!1}var UV=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},zV=function(n,e){return function(t,i){e(t,i,n)}},jV=class bL extends M{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:bL.ID,label:L(1189,"Convert Indentation to Spaces"),precondition:S.writable,metadata:{description:L(1190,"Convert the tab indentation to spaces.")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),o=t.getSelection();if(!o)return;const r=new e3(o,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}},qV=class CL extends M{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:CL.ID,label:L(1191,"Convert Indentation to Tabs"),precondition:S.writable,metadata:{description:L(1192,"Convert the spaces indentation to tabs.")}})}run(e,t){const i=t.getModel();if(!i)return;const s=i.getOptions(),o=t.getSelection();if(!o)return;const r=new t3(o,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[r]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}},k_=class extends M{constructor(n,e,t){super(t),this.insertSpaces=n,this.displaySizeOnly=e}run(n,e){const t=n.get(Di),i=n.get(Kt),s=e.getModel();if(!s)return;const o=i.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget),r=s.getOptions(),a=[1,2,3,4,5,6,7,8].map(d=>({id:d.toString(),label:d.toString(),description:d===o.tabSize&&d===r.tabSize?m(1185,"Configured Tab Size"):d===o.tabSize?m(1186,"Default Tab Size"):d===r.tabSize?m(1187,"Current Tab Size"):void 0})),l=Math.min(s.getOptions().tabSize-1,7);setTimeout(()=>{t.pick(a,{placeHolder:m(1188,"Select Tab Size for Current File"),activeItem:a[l]}).then(d=>{if(d&&s&&!s.isDisposed()){const c=parseInt(d.label,10);this.displaySizeOnly?s.updateOptions({tabSize:c}):s.updateOptions({tabSize:c,indentSize:c,insertSpaces:this.insertSpaces})}})},50)}},$V=class SL extends k_{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:SL.ID,label:L(1193,"Indent Using Tabs"),precondition:void 0,metadata:{description:L(1194,"Use indentation with tabs.")}})}},KV=class wL extends k_{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:wL.ID,label:L(1195,"Indent Using Spaces"),precondition:void 0,metadata:{description:L(1196,"Use indentation with spaces.")}})}},GV=class yL extends k_{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:yL.ID,label:L(1197,"Change Tab Display Size"),precondition:void 0,metadata:{description:L(1198,"Change the space size equivalent of the tab.")}})}},ZV=class xL extends M{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:xL.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(Kt),s=t.getModel();if(!s)return;const o=i.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(o.insertSpaces,o.tabSize)}},XV=class extends M{constructor(){super({id:"editor.action.reindentlines",label:L(1201,"Reindent Lines"),precondition:S.writable,metadata:{description:L(1202,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(n,e){const t=n.get(ct),i=e.getModel();if(!i)return;const s=vL(i,t,1,i.getLineCount());s.length>0&&(e.pushUndoStop(),e.executeEdits(this.id,s),e.pushUndoStop())}},YV=class extends M{constructor(){super({id:"editor.action.reindentselectedlines",label:L(1203,"Reindent Selected Lines"),precondition:S.writable,metadata:{description:L(1204,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(n,e){const t=n.get(ct),i=e.getModel();if(!i)return;const s=e.getSelections();if(s===null)return;const o=[];for(const r of s){let a=r.startLineNumber,l=r.endLineNumber;if(a!==l&&r.endColumn===1&&l--,a===1){if(a===l)continue}else a--;const d=vL(i,t,a,l);o.push(...d)}o.length>0&&(e.pushUndoStop(),e.executeEdits(this.id,o),e.pushUndoStop())}},JV=class{constructor(n,e){this._initialSelection=e,this._edits=[],this._selectionId=null;for(const t of n)t.range&&typeof t.text=="string"&&this._edits.push(t)}getEditOperations(n,e){for(const i of this._edits)e.addEditOperation(y.lift(i.range),i.text);let t=!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?(t=!0,this._selectionId=e.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(t=!0,this._selectionId=e.trackSelection(this._initialSelection,!1))),t||(this._selectionId=e.trackSelection(this._initialSelection))}computeCursorState(n,e){return e.getTrackedSelection(this._selectionId)}},Pc=class{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new A,this.callOnModel=new A,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)&&QV(i,e)||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const s=this.editor.getOption(16),{tabSize:o,indentSize:r,insertSpaces:a}=i.getOptions(),l=[],d={shiftIndent:g=>hr.shiftIndent(g,g.length+1,o,r,a),unshiftIndent:g=>hr.unshiftIndent(g,g.length+1,o,r,a)};let c=e.startLineNumber,h=i.getLineContent(c);if(!/\S/.test(h.substring(0,e.startColumn-1))){const g=Ca(s,i,i.getLanguageId(),c,d,this._languageConfigurationService);if(g!==null){const p=yt(h),f=zt(g,o);if(f!==zt(p,o)){const _=ya(f,o,a);l.push({range:new y(c,1,c,p.length+1),text:_}),h=_+h.substring(p.length)}else{const _=Dw(i,c,this._languageConfigurationService);if(_===0||_===8)return}}}const u=c;for(;c<e.endLineNumber;){if(!/\S/.test(i.getLineContent(c+1))){c++;continue}break}if(c!==e.endLineNumber){const g=Ca(s,{tokenization:{getLineTokens:p=>i.tokenization.getLineTokens(p),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(p,f)=>i.getLanguageIdAtPosition(p,f)},getLineContent:p=>p===u?h:i.getLineContent(p)},i.getLanguageId(),c+1,d,this._languageConfigurationService);if(g!==null){const p=zt(g,o),f=zt(yt(i.getLineContent(c+1)),o);if(p!==f){const _=p-f;for(let v=c+1;v<=e.endLineNumber;v++){const C=i.getLineContent(v),x=yt(C),I=zt(x,o)+_,b=ya(I,o,a);b!==x&&l.push({range:new y(v,1,v,x.length+1),text:b})}}}}if(l.length>0){this.editor.pushUndoStop();const g=new JV(l,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",g),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(e,t){const i=o=>o.trim().length===0;let s=!0;if(t.startLineNumber===t.endLineNumber)s=i(e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1));else for(let o=t.startLineNumber;o<=t.endLineNumber;o++){const r=e.getLineContent(o);if(o===t.startLineNumber?s=i(r.substring(t.startColumn-1)):o===t.endLineNumber?s=i(r.substring(0,t.endColumn-1)):s=e.getLineFirstNonWhitespaceColumn(o)===0,!s)break}return s}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};Pc=UV([zV(1,ct)],Pc);function QV(n,e){const t=i=>cT(n,i)===2;return t(e.getStartPosition())||t(e.getEndPosition())}function IL(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let s="";for(let r=0;r<t;r++)s+=" ";const o=new RegExp(s,"gi");for(let r=1,a=n.getLineCount();r<=a;r++){let l=n.getLineFirstNonWhitespaceColumn(r);if(l===0&&(l=n.getLineMaxColumn(r)),l===1)continue;const d=new y(r,1,r,l),c=n.getValueInRange(d),h=i?c.replace(/\t/gi,s):c.replace(o," ");e.addEditOperation(d,h)}}var e3=class{constructor(n,e){this.selection=n,this.tabSize=e,this.selectionId=null}getEditOperations(n,e){this.selectionId=e.trackSelection(this.selection),IL(n,e,this.tabSize,!0)}computeCursorState(n,e){return e.getTrackedSelection(this.selectionId)}},t3=class{constructor(n,e){this.selection=n,this.tabSize=e,this.selectionId=null}getEditOperations(n,e){this.selectionId=e.trackSelection(this.selection),IL(n,e,this.tabSize,!1)}computeCursorState(n,e){return e.getTrackedSelection(this.selectionId)}};ce(Pc.ID,Pc,2);k(jV);k(qV);k($V);k(KV);k(GV);k(ZV);k(XV);k(YV);ce(Ka.ID,Ka,1);Co.register(gc);var i3=class{constructor(n,e,t){this._editRange=n,this._originalSelection=e,this._text=t}getEditOperations(n,e){e.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(n,e){const t=e.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new te(t.endLineNumber,Math.min(this._originalSelection.positionColumn,t.endColumn),t.endLineNumber,Math.min(this._originalSelection.positionColumn,t.endColumn)):new te(t.endLineNumber,t.endColumn-this._text.length,t.endLineNumber,t.endColumn)}},n3=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},s3=function(n,e){return function(t,i){e(t,i,n)}},Fd,vr=class{static{Fd=this}static{this.ID="editor.contrib.inPlaceReplaceController"}static get(e){return e.getContribution(Fd.ID)}static{this.DECORATION=se.register({description:"in-place-replace",className:"valueSetReplacement"})}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(),s=this.editor.getModel();if(!s||!i)return;let o=i;if(o.startLineNumber!==o.endLineNumber)return;const r=new vw(this.editor,5),a=s.uri;return this.editorWorkerService.canNavigateValueSet(a)?(this.currentRequest=pt(l=>this.editorWorkerService.navigateValueSet(a,o,t)),this.currentRequest.then(l=>{if(!l||!l.range||!l.value||!r.validate(this.editor))return;const d=y.lift(l.range);let c=l.range;const h=l.value.length-(o.endColumn-o.startColumn);c={startLineNumber:c.startLineNumber,startColumn:c.startColumn,endLineNumber:c.endLineNumber,endColumn:c.startColumn+l.value.length},h>1&&(o=new te(o.startLineNumber,o.startColumn,o.endLineNumber,o.endColumn+h-1));const u=new i3(d,o,l.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,u),this.editor.pushUndoStop(),this.decorations.set([{range:c,options:Fd.DECORATION}]),this.decorationRemover?.cancel(),this.decorationRemover=Xc(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(we)}).catch(we)):Promise.resolve(void 0)}};vr=Fd=n3([s3(1,An)],vr);var o3=class extends M{constructor(){super({id:"editor.action.inPlaceReplace.up",label:L(1286,"Replace with Previous Value"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:3159,weight:100}})}run(n,e){const t=vr.get(e);return t?t.run(this.id,!1):Promise.resolve(void 0)}},r3=class extends M{constructor(){super({id:"editor.action.inPlaceReplace.down",label:L(1287,"Replace with Next Value"),precondition:S.writable,kbOpts:{kbExpr:S.editorTextFocus,primary:3161,weight:100}})}run(n,e){const t=vr.get(e);return t?t.run(this.id,!0):Promise.resolve(void 0)}};ce(vr.ID,vr,4);k(o3);k(r3);var a3=class{constructor(n){this._selection=n,this._selectionId=null}getEditOperations(n,e){const t=l3(n);t&&e.addEditOperation(t.range,t.text),this._selectionId=e.trackSelection(this._selection)}computeCursorState(n,e){return e.getTrackedSelection(this._selectionId)}};function l3(n){const e=n.getLineCount(),t=n.getLineContent(e),i=ba(t)===-1;if(!(!e||i))return Ge.insert(new B(e,n.getLineMaxColumn(e)),n.getEOL())}var d3=class LL extends M{static{this.ID="editor.action.insertFinalNewLine"}constructor(){super({id:LL.ID,label:L(1288,"Insert Final New Line"),precondition:S.writable})}run(e,t,i){const s=t.getSelection();if(s===null)return;const o=new a3(s);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop()}};k(d3);var c3=class extends M{constructor(){super({id:"expandLineSelection",label:L(1289,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:S.textInputFocus,primary:2090}})}run(n,e,t){if(t=t||{},!e.hasModel())return;const i=e._getViewModel();i.model.pushStackElement(),i.setCursorStates(t.source,3,Im.expandLineSelection(i,i.getCursorStates())),i.revealAllCursors(t.source,!0)}};k(c3);var h3=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},od=function(n,e){return function(t,i){e(t,i,n)}},Hd,DL=new oe("LinkedEditingInputVisible",!1),u3="linked-editing-decoration",br=class extends O{static{Hd=this}static{this.ID="editor.contrib.linkedEditing"}static{this.DECORATION=se.register({description:"linked-editing",stickiness:0,className:u3})}static get(e){return e.getContribution(Hd.ID)}constructor(e,t,i,s,o){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new A),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=DL.bindTo(t),this._debounceInformation=o.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 A),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(qe.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const s=new _s(this._debounceInformation.get(t)),o=()=>{this._rangeUpdateTriggerPromise=s.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(t))},r=new _s(0),a=l=>{this._rangeSyncTriggerPromise=r.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{o()})),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}}o()})),this._localToDispose.add({dispose:()=>{s.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 s=t.getValueInRange(i);if(this._currentWordPattern){const r=s.match(this._currentWordPattern);if((r?r[0].length:0)!==s.length)return this.clearRanges()}const o=[];for(let r=1,a=this._currentDecorations.length;r<a;r++){const l=this._currentDecorations.getRange(r);if(l)if(l.startLineNumber!==l.endLineNumber)o.push({range:l,text:s});else{let d=t.getValueInRange(l),c=s,h=l.startColumn,u=l.endColumn;const g=Sr(d,c);h+=g,d=d.substr(g),c=c.substr(g);const p=Fm(d,c);u-=p,d=d.substr(0,d.length-p),c=c.substr(0,c.length-p),(h!==u||c.length!==0)&&o.push({range:new y(l.startLineNumber,h,l.endLineNumber,u),text:c})}}if(o.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const r=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",o),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(),s=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){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=s;const o=this._currentRequestCts=new st;try{const r=new hi(!1),a=await EL(this._providers,i,t,o.token);if(this._debounceInformation.update(i,r.elapsed()),o!==this._currentRequestCts||(this._currentRequestCts=null,s!==i.getVersionId()))return;let l=[];a?.ranges&&(l=a.ranges),this._currentWordPattern=a?.wordPattern||this._languageWordPattern;let d=!1;for(let h=0,u=l.length;h<u;h++)if(y.containsPosition(l[h],t)){if(d=!0,h!==0){const g=l[h];l.splice(h,1),l.unshift(g)}break}if(!d){this.clearRanges();return}const c=l.map(h=>({range:h,options:Hd.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(c),this._syncRangesToken++}catch(r){Hn(r)||we(r),(this._currentRequestCts===o||!this._currentRequestCts)&&this.clearRanges()}}};br=Hd=h3([od(1,ve),od(2,Z),od(3,ct),od(4,Ri)],br);var g3=class extends M{constructor(){super({id:"editor.action.linkedEditing",label:L(1322,"Start Linked Editing"),precondition:N.and(S.writable,S.hasRenameProvider),kbOpts:{kbExpr:S.editorTextFocus,primary:3132,weight:100}})}runCommand(n,e){const t=n.get($e),[i,s]=Array.isArray(e)&&e||[void 0,void 0];return De.isUri(i)&&B.isIPosition(s)?t.openCodeEditor({resource:i},t.getActiveCodeEditor()).then(o=>{o&&(o.setPosition(s),o.invokeWithinContext(r=>(this.reportTelemetry(r,o),this.run(r,o))))},we):super.runCommand(n,e)}run(n,e){const t=br.get(e);return t?Promise.resolve(t.updateRanges(!0)):Promise.resolve()}},p3=Mt.bindToContribution(br.get);G(new p3({id:"cancelLinkedEditingInput",precondition:DL,handler:n=>n.clearRanges(),kbOpts:{kbExpr:S.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function EL(n,e,t,i){const s=n.ordered(e);return gm(s.map(o=>async()=>{try{return await o.provideLinkedEditingRanges(e,t,i)}catch(r){tt(r);return}}),o=>!!o&&Qt(o?.ranges))}H("editor.linkedEditingBackground",{dark:me.fromHex("#f00").transparent(.3),light:me.fromHex("#f00").transparent(.3),hcDark:me.fromHex("#f00").transparent(.3),hcLight:me.white},m(1321,"Background color when the editor auto renames on type."));Ut("_executeLinkedEditingProvider",(n,e,t)=>{const{linkedEditingRangeProvider:i}=n.get(Z);return EL(i,e,t,ue.None)});ce(br.ID,br,1);k(g3);var f3=class{constructor(n,e){this._link=n,this._provider=e}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(n){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,n)).then(e=>(this._link=e||this._link,this._link.url?this.resolve(n):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}},RC=class yf{static{this.Empty=new yf([])}constructor(e){this._disposables=new A;let t=[];for(const[i,s]of e){const o=i.links.map(r=>new f3(r,s));t=yf._union(t,o),Lm(i)&&(this._disposables??=new A,this._disposables.add(i))}this.links=t}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(e,t){const i=[];let s,o,r,a;for(s=0,r=0,o=e.length,a=t.length;s<o&&r<a;){const l=e[s],d=t[r];if(y.areIntersectingOrTouching(l.range,d.range)){s++;continue}y.compareRangesUsingStarts(l.range,d.range)<0?(i.push(l),s++):(i.push(d),r++)}for(;s<o;s++)i.push(e[s]);for(;r<a;r++)i.push(t[r]);return i}};async function RL(n,e,t){const i=[],s=n.ordered(e).reverse().map(async(r,a)=>{try{const l=await r.provideLinks(e,t);l&&(i[a]=[l,r])}catch(l){tt(l)}});await Promise.all(s);let o=new RC(Ns(i));return t.isCancellationRequested&&(o.dispose(),o=RC.Empty),o}Re.registerCommand("_executeLinkProvider",async(n,...e)=>{let[t,i]=e;Se(t instanceof De),typeof i!="number"&&(i=0);const{linkProvider:s}=n.get(Z),o=n.get(Kt).getModel(t);if(!o)return[];const r=await RL(s,o,ue.None);if(!r)return[];for(let l=0;l<Math.min(i,r.links.length);l++)await r.links[l].resolve(ue.None);const a=r.links.slice(0);return r.dispose(),a});var m3=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},rd=function(n,e){return function(t,i){e(t,i,n)}},xf,il=class extends O{static{xf=this}static{this.ID="editor.linkDetector"}static get(e){return e.getContribution(xf.ID)}constructor(e,t,i,s,o){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=s,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=o.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new at(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const r=this._register(new fh(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=pt(t=>RL(this.providers,e,t));try{const t=new hi(!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=[],s=Object.keys(this.currentOccurrences);for(const r of s){const a=this.currentOccurrences[r];i.push(a.decorationId)}const o=[];if(e)for(const r of e)o.push(NC.decoration(r,t));this.editor.changeDecorations(r=>{const a=r.deltaDecorations(i,o);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,d=a.length;l<d;l++){const c=new NC(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 s=this.getLinkOccurrence(e.target.position);s&&this.editor.changeDecorations(o=>{s.activate(o,i),this.activeLinkDecorationId=s.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:s}=e;s.resolve(ue.None).then(o=>{if(typeof o=="string"&&this.editor.hasModel()){const r=this.editor.getModel().uri;if(r.scheme===_t.file&&o.startsWith(`${_t.file}:`)){const a=De.parse(o);if(a.scheme===_t.file){const l=KD(a);let d=null;l.startsWith("/./")||l.startsWith("\\.\\")?d=`.${l.substr(1)}`:(l.startsWith("//./")||l.startsWith("\\\\.\\"))&&(d=`.${l.substr(2)}`),d&&(o=AR(r,d))}}}return this.openerService.open(o,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},o=>{const r=o instanceof Error?o.message:o;r==="invalid"?this.notificationService.warn(m(1323,"Failed to open this link because it is not well-formed: {0}",s.url.toString())):r==="missing"?this.notificationService.warn(m(1324,"Failed to open this link because its target is missing.")):we(o)})}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 s=this.currentOccurrences[i.id];if(s)return s}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()}};il=xf=m3([rd(1,_o),rd(2,Et),rd(3,Z),rd(4,Ri)],il);var TC={general:se.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:se.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})},NC=class Wd{static decoration(e,t){return{range:e.range,options:Wd._getOptions(e,t,!1)}}static _getOptions(e,t,i){const s={...i?TC.active:TC.general};return s.hoverMessage=_3(e,t),s}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,Wd._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,Wd._getOptions(this.link,t,!1))}};function _3(n,e){const t=n.url&&/^command:/i.test(n.url.toString()),i=n.tooltip?n.tooltip:t?m(1325,"Execute command"):m(1326,"Follow link"),s=e?Pn?m(1327,"cmd + click"):m(1328,"ctrl + click"):Pn?m(1329,"option + click"):m(1330,"alt + click");if(n.url){let o="";if(/^command:/i.test(n.url.toString())){const r=n.url.toString().match(/^command:([^?#]+)/);if(r){const a=r[1];o=m(1331,"Execute command {0}",a)}}return new Lt("",!0).appendLink(n.url.toString(!0).replace(/ /g,"%20"),i,o).appendMarkdown(` (${s})`)}else return new Lt().appendText(`${i} (${s})`)}var v3=class extends M{constructor(){super({id:"editor.action.openLink",label:L(1332,"Open Link"),precondition:void 0})}run(n,e){const t=il.get(e);if(!t||!e.hasModel())return;const i=e.getSelections();for(const s of i){const o=t.getLinkOccurrence(s.getEndPosition());o&&t.openLinkOccurrence(o,!1)}}};ce(il.ID,il,1);k(v3);var kC=class extends O{static{this.ID="editor.contrib.longLinesHelper"}constructor(n){super(),this._editor=n,this._register(this._editor.onMouseDown(e=>{const t=this._editor.getOption(133);t>=0&&e.target.type===6&&e.target.position.column>=t&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};ce(kC.ID,kC,2);var PC=class extends O{static{this.ID="editor.contrib.middleScroll"}constructor(n){super(),this._editor=n;const e=Be(this._editor),t=e.getOption(171);this._register(he(i=>{if(!t.read(i))return;const s=e.domNode.read(i);if(!s)return;const o=i.store.add($R("scrollingSession",void 0));i.store.add(this._editor.onMouseDown(a=>{if(o.read(void 0)){o.set(void 0,void 0);return}if(!a.event.middleButton)return;a.event.stopPropagation(),a.event.preventDefault();const l=new A,d=new xi(a.event.posx,a.event.posy),c=b3(Ht(s),d,l).map(g=>g.subtract(d).withThreshold(5)),h=s.getBoundingClientRect(),u=new xi(d.x-h.left,d.y-h.top);o.set({mouseDeltaAfterThreshold:c,initialMousePosInEditor:u,didScroll:!1,dispose:()=>l.dispose()},void 0),l.add(this._editor.onMouseUp(g=>{const p=o.read(void 0);p&&p.didScroll&&o.set(void 0,void 0)})),l.add(this._editor.onKeyDown(g=>{o.set(void 0,void 0)}))})),i.store.add(he(a=>{const l=o.read(a);if(!l)return;let d=Date.now();a.store.add(he(h=>{Ep.instance.invalidateOnNextAnimationFrame(h);const u=Date.now(),g=u-d;d=u;const p=l.mouseDeltaAfterThreshold.read(void 0),f=g/32,_=p.scale(f),v=new xi(this._editor.getScrollLeft(),this._editor.getScrollTop());this._editor.setScrollPosition(C3(v.add(_))),_.isZero()||(l.didScroll=!0)}));const c=T(h=>{const u=l.mouseDeltaAfterThreshold.read(h);let g="";return g+=u.y<0?"n":u.y>0?"s":"",g+=u.x<0?"w":u.x>0?"e":"",g});a.store.add(he(h=>{s.setAttribute("data-scroll-direction",c.read(h))}))}));const r=i.store.add(q.div({class:["scroll-editor-on-middle-click-dot",o.map(a=>a?"":"hidden")],style:{left:o.map(a=>a?a.initialMousePosInEditor.x:0),top:o.map(a=>a?a.initialMousePosInEditor.y:0)}}).toDisposableLiveElement());i.store.add(Q0(s,r.element)),i.store.add(he(a=>{const l=o.read(a);s.classList.toggle("scroll-editor-on-middle-click-editor",!!l)}))}))}};function b3(n,e,t){const i=Ne("pos",e);return t.add(de(n,"mousemove",s=>{i.set(new xi(s.pageX,s.pageY),void 0)})),i}function C3(n){return{scrollLeft:n.x,scrollTop:n.y}}ce(PC.ID,PC,2);var S3=H("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);H("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);H("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);var w3=H("editor.wordHighlightBorder",{light:null,dark:null,hcDark:to,hcLight:to},m(1618,"Border color of a symbol during read-access, like reading a variable."));H("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:to,hcLight:to},m(1619,"Border color of a symbol during write-access, like writing to a variable."));H("editor.wordHighlightTextBorder",w3,m(1620,"Border color of a textual occurrence for a symbol."));var y3=H("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),x3=H("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),I3=H("editorOverviewRuler.wordHighlightTextForeground",dw,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),L3=se.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:it(x3),position:nn.Center},minimap:{color:it(Vc),position:1}}),D3=se.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:it(I3),position:nn.Center},minimap:{color:it(Vc),position:1}}),E3=se.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:it(dw),position:nn.Center},minimap:{color:it(Vc),position:1}}),R3=se.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),T3=se.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:it(y3),position:nn.Center},minimap:{color:it(Vc),position:1}});function N3(n){return n===Kd.Write?L3:n===Kd.Text?D3:T3}function k3(n){return n?R3:E3}al((n,e)=>{const t=n.getColor(fE);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var P3=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},O3=function(n,e){return function(t,i){e(t,i,n)}},If;function Ps(n,e){const t=e.filter(i=>!n.find(s=>s.equals(i)));if(t.length>=1){const i=t.map(o=>`line ${o.viewState.position.lineNumber} column ${o.viewState.position.column}`).join(", "),s=t.length===1?m(1334,"Cursor added: {0}",i):m(1335,"Cursors added: {0}",i);vs(s)}}var M3=class extends M{constructor(){super({id:"editor.action.insertCursorAbove",label:L(1344,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:m(1336,"&&Add Cursor Above"),order:2}})}run(n,e,t){if(!e.hasModel())return;let i=!0;t&&t.logicalLine===!1&&(i=!1);const s=e._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const o=s.getCursorStates();s.setCursorStates(t.source,3,Im.addCursorUp(s,o,i)),s.revealTopMostCursor(t.source),Ps(o,s.getCursorStates())}},A3=class extends M{constructor(){super({id:"editor.action.insertCursorBelow",label:L(1345,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:m(1337,"A&&dd Cursor Below"),order:3}})}run(n,e,t){if(!e.hasModel())return;let i=!0;t&&t.logicalLine===!1&&(i=!1);const s=e._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const o=s.getCursorStates();s.setCursorStates(t.source,3,Im.addCursorDown(s,o,i)),s.revealBottomMostCursor(t.source),Ps(o,s.getCursorStates())}},F3=class extends M{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:L(1346,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:m(1338,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(n,e,t){if(!n.isEmpty()){for(let i=n.startLineNumber;i<n.endLineNumber;i++){const s=e.getLineMaxColumn(i);t.push(new te(i,s,i,s))}n.endColumn>1&&t.push(new te(n.endLineNumber,n.endColumn,n.endLineNumber,n.endColumn))}}run(n,e){if(!e.hasModel())return;const t=e.getModel(),i=e.getSelections(),s=e._getViewModel(),o=s.getCursorStates(),r=[];i.forEach(a=>this.getCursorsForSelection(a,t,r)),r.length>0&&e.setSelections(r),Ps(o,s.getCursorStates())}},H3=class extends M{constructor(){super({id:"editor.action.addCursorsToBottom",label:L(1347,"Add Cursors to Bottom"),precondition:void 0})}run(n,e){if(!e.hasModel())return;const t=e.getSelections(),i=e.getModel().getLineCount(),s=[];for(let a=t[0].startLineNumber;a<=i;a++)s.push(new te(a,t[0].startColumn,a,t[0].endColumn));const o=e._getViewModel(),r=o.getCursorStates();s.length>0&&e.setSelections(s),Ps(r,o.getCursorStates())}},W3=class extends M{constructor(){super({id:"editor.action.addCursorsToTop",label:L(1348,"Add Cursors to Top"),precondition:void 0})}run(n,e){if(!e.hasModel())return;const t=e.getSelections(),i=[];for(let r=t[0].startLineNumber;r>=1;r--)i.push(new te(r,t[0].startColumn,r,t[0].endColumn));const s=e._getViewModel(),o=s.getCursorStates();i.length>0&&e.setSelections(i),Ps(o,s.getCursorStates())}},ad=class{constructor(n,e,t){this.selections=n,this.revealRange=e,this.revealScrollType=t}},TL=class Lf{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new Lf(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let s=!1,o,r;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(s=!0,o=!0,r=!0):(o=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 te(l.startLineNumber,h.startColumn,l.startLineNumber,h.endColumn)}else d=e.getModel().getValueInRange(l).replace(/\r\n/g,`
61
- `);return new Lf(e,t,s,d,o,r,c)}constructor(e,t,i,s,o,r,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=s,this.wholeWord=o,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 ad(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 ad(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}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 te(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 ad(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 ad(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const s=this.currentMatch;return this.currentMatch=null,s}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 te(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)}},Oc=class NL extends O{static{this.ID="editor.contrib.multiCursorController"}static get(e){return e.getContribution(NL.ID)}constructor(e){super(),this._sessionDispose=this._register(new A),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=TL.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(s=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(s=>{(s.matchCase||s.wholeWord)&&this._endSession()}))}}_endSession(){this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController&&this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!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 te(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 i=e.getState().matchCase;if(!kL(this._editor.getModel(),t,i)){const s=this._editor.getModel(),o=[];for(let r=0,a=t.length;r<a;r++)o[r]=this._expandEmptyToWord(s,t[r]);this._editor.setSelections(o);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 s=this._editor.getModel();i.searchScope?t=s.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(148):null,!1,1073741824):t=s.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 s=this._editor.getSelection();for(let o=0,r=t.length;o<r;o++){const a=t[o];if(a.range.intersectRanges(s)){t[o]=t[0],t[0]=a;break}}this._setSelections(t.map(o=>new te(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn)))}}},kr=class extends M{run(n,e){const t=Oc.get(e);if(!t)return;const i=e._getViewModel();if(i){const s=i.getCursorStates(),o=Bt.get(e);if(o)this._run(t,o);else{const r=n.get(ie).createInstance(Bt,e);this._run(t,r),r.dispose()}Ps(s,i.getCursorStates())}}},V3=class extends kr{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:L(1349,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:2082,weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:m(1339,"Add &&Next Occurrence"),order:5}})}_run(n,e){n.addSelectionToNextFindMatch(e)}},B3=class extends kr{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:L(1350,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:m(1340,"Add P&&revious Occurrence"),order:6}})}_run(n,e){n.addSelectionToPreviousFindMatch(e)}},U3=class extends kr{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:L(1351,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:et(2089,2082),weight:100}})}_run(n,e){n.moveSelectionToNextFindMatch(e)}},z3=class extends kr{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:L(1352,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(n,e){n.moveSelectionToPreviousFindMatch(e)}},j3=class extends kr{constructor(){super({id:"editor.action.selectHighlights",label:L(1353,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:S.focus,primary:3114,weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:m(1341,"Select All &&Occurrences"),order:7}})}_run(n,e){n.selectAll(e)}},q3=class extends kr{constructor(){super({id:"editor.action.changeAll",label:L(1354,"Change All Occurrences"),precondition:N.and(S.writable,S.editorTextFocus),kbOpts:{kbExpr:S.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(n,e){n.selectAll(e)}},$3=class{constructor(n,e,t,i,s){this._model=n,this._searchText=e,this._matchCase=t,this._wordSeparators=i,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(n=>n.range),this._cachedFindMatches.sort(y.compareRangesUsingStarts)),this._cachedFindMatches}},Mc=class extends O{static{If=this}static{this.ID="editor.contrib.selectionHighlighter"}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 at(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(s=>{this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123)})),this._register(e.onDidChangeCursorSelection(s=>{this._isEnabled&&(s.selection.isEmpty()?s.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(s=>{this._setState(null)})),this._register(e.onDidChangeModelContent(s=>{this._isEnabled&&this.updateSoon.schedule()}));const i=Bt.get(e);i&&this._register(i.getState().onFindReplaceStateChange(s=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(If._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(e,t,i,s,o){if(!t||!o.hasModel())return null;if(!i){const h=o.getSelection();if(h.startLineNumber!==h.endLineNumber)return null}const r=Oc.get(o);if(!r)return null;const a=Bt.get(o);if(!a)return null;let l=r.getSession(a);if(!l){const h=o.getSelections();if(h.length>1){const u=a.getState().matchCase;if(!kL(o.getModel(),h,u))return null}l=TL.create(o,a)}if(!l||l.currentMatch||/^[ \t]+$/.test(l.searchText)||s>0&&l.searchText.length>s)return null;const d=a.getState(),c=d.matchCase;if(d.isRevealed){let h=d.searchString;c||(h=h.toLowerCase());let u=l.searchText;if(c||(u=u.toLowerCase()),h===u&&l.matchCase===d.matchCase&&l.wholeWord===d.wholeWord&&!d.isRegex)return null}return new $3(o.getModel(),l.searchText,l.matchCase,l.wholeWord?o.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(),s=this.editor.getSelections();s.sort(y.compareRangesUsingStarts);const o=[];for(let d=0,c=0,h=i.length,u=s.length;d<h;){const g=i[d];if(c>=u)o.push(g),d++;else{const p=y.compareRangesUsingStarts(g,s[c]);p<0?((s[c].isEmpty()||!y.areIntersecting(g,s[c]))&&o.push(g),d++):(p>0||d++,c++)}}const r=this.editor.getOption(90)!=="off",a=this._languageFeaturesService.documentHighlightProvider.has(t)&&r,l=o.map(d=>({range:d,options:k3(a)}));this._decorations.set(l)}dispose(){this._setState(null),super.dispose()}};Mc=If=P3([O3(1,Z)],Mc);function kL(n,e,t){const i=OC(n,e[0],!t);for(let s=1,o=e.length;s<o;s++){const r=e[s];if(r.isEmpty()||i!==OC(n,r,!t))return!1}return!0}function OC(n,e,t){const i=n.getValueInRange(e);return t?i.toLowerCase():i}var K3=class extends M{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(n,e,t){if(!e.hasModel())return;const i=e._getViewModel();if(i.cursorConfig.readOnly)return;i.model.pushStackElement();const s=Array.from(i.getCursorStates()),o=s.shift();o&&(s.push(o),i.setCursorStates(t.source,3,s),i.revealPrimaryCursor(t.source,!0),Ps(s,i.getCursorStates()))}},G3=class extends M{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(n,e,t){if(!e.hasModel())return;const i=e._getViewModel();if(i.cursorConfig.readOnly)return;i.model.pushStackElement();const s=Array.from(i.getCursorStates()),o=s.pop();o&&(s.unshift(o),i.setCursorStates(t.source,3,s),i.revealPrimaryCursor(t.source,!0),Ps(s,i.getCursorStates()))}};ce(Oc.ID,Oc,4);ce(Mc.ID,Mc,1);k(M3);k(A3);k(F3);k(V3);k(B3);k(U3);k(z3);k(j3);k(q3);k(H3);k(W3);k(K3);k(G3);var fo={Visible:new oe("parameterHintsVisible",!1),MultipleSignatures:new oe("parameterHintsMultipleSignatures",!1)};async function PL(n,e,t,i,s){const o=n.ordered(e);for(const r of o)try{const a=await r.provideSignatureHelp(e,t,s,i);if(a)return a}catch(a){tt(a)}}Re.registerCommand("_executeSignatureHelpProvider",async(n,...e)=>{const[t,i,s]=e;Se(De.isUri(t)),Se(B.isIPosition(i)),Se(typeof s=="string"||!s);const o=n.get(Z),r=await n.get(si).createModelReference(t);try{const a=await PL(o.signatureHelpProvider,r.object.textEditorModel,B.lift(i),{triggerKind:ds.Invoke,isRetrigger:!1,triggerCharacter:s},ue.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{r.dispose()}});var Yn;(function(n){n.Default={type:0};class e{constructor(s,o){this.request=s,this.previouslyActiveHints=o,this.type=2}}n.Pending=e;class t{constructor(s){this.hints=s,this.type=1}}n.Active=t})(Yn||(Yn={}));var Z3=class OL extends O{static{this.DEFAULT_DELAY=120}constructor(e,t,i=OL.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new Q),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Yn.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new Je),this.triggerChars=new Qd,this.retriggerChars=new Qd,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=this._register(new _s(i)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(s=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(s=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(s=>this.onCursorChange(s))),this._register(this.editor.onDidChangeModelContent(s=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(s=>this.onDidType(s))),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=Yn.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 s=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(s),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,s=this.editor.getOption(98).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?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,s=this.editor.getOption(98).cycle;if((e<2||i)&&!s){this.cancel();return}this.updateActiveSignature(i&&s?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new Yn.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 s=this._pendingTriggers.reduce(X3);this._pendingTriggers=[];const o={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const r=this.editor.getModel(),a=this.editor.getPosition();this.state=new Yn.Pending(pt(l=>PL(this.providers,r,a,o,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 Yn.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=Yn.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 s=i.charCodeAt(0);this.triggerChars.add(s),this.retriggerChars.add(s)}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:ds.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:ds.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:ds.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(98).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};function X3(n,e){switch(e.triggerKind){case ds.Invoke:return e;case ds.ContentChange:return n;case ds.TriggerCharacter:default:return e}}var Y3=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},MC=function(n,e){return function(t,i){e(t,i,n)}},Df,Gt=W,J3=Ze("parameter-hints-next",V.chevronDown,m(1358,"Icon for show next parameter hint.")),Q3=Ze("parameter-hints-previous",V.chevronUp,m(1359,"Icon for show previous parameter hint.")),Ef=class extends O{static{Df=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(e,t,i,s){super(),this.editor=e,this.model=t,this.markdownRendererService=s,this.renderDisposeables=this._register(new A),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=fo.Visible.bindTo(i),this.keyMultipleSignatures=fo.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=Gt(".editor-widget.parameter-hints-widget"),t=z(e,Gt(".phwrapper"));t.tabIndex=-1;const i=z(t,Gt(".controls")),s=z(i,Gt(".button"+pe.asCSSSelector(Q3))),o=z(i,Gt(".overloads")),r=z(i,Gt(".button"+pe.asCSSSelector(J3)));this._register(de(s,"click",u=>{Cn.stop(u),this.previous()})),this._register(de(r,"click",u=>{Cn.stop(u),this.next()}));const a=Gt(".body"),l=new bS(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const d=z(a,Gt(".signature")),c=z(a,Gt(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:d,overloads:o,docs:c,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(u=>{this.visible&&this.editor.layoutContentWidget(this)}));const h=()=>{if(!this.domNodes)return;const u=this.editor.getOption(59),g=this.domNodes.element;g.style.fontSize=`${u.fontSize}px`,g.style.lineHeight=`${u.lineHeight/u.fontSize}`,g.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",u.fontFamily),g.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",fm.fontFamily)};h(),this._register(qe.chain(this.editor.onDidChangeConfiguration.bind(this.editor),u=>u.filter(g=>g.hasChanged(59)))(h)),this._register(this.editor.onDidLayoutChange(u=>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 s=z(this.domNodes.signature,Gt(".code")),o=i.parameters.length>0,r=i.activeParameter??e.activeParameter;if(o)this.renderParameters(s,i,r);else{const d=z(s,Gt("span"));d.textContent=i.label}const a=i.parameters[r];if(a?.documentation){const d=Gt("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,Gt("p",{},d))}if(i.documentation!==void 0)if(typeof i.documentation=="string")z(this.domNodes.docs,Gt("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&&(ci(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"&&jo(t.documentation).length>0||t&&typeof t.documentation=="object"&&jo(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&jo(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&jo(e.documentation.value).length>0)}renderParameters(e,t,i){const[s,o]=this.getParameterLabelOffsets(t,i),r=document.createElement("span");r.textContent=t.label.substring(0,s);const a=document.createElement("span");a.textContent=t.label.substring(s,o),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(o),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 s=new RegExp(`(\\W|^)${ka(i.label)}(?=\\W|$)`,"g");s.test(e.label);const o=s.lastIndex-i.label.length;return o>=0?[o,s.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 Df.ID}updateMaxHeight(){if(!this.domNodes)return;const e=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=e;const t=this.domNodes.element.getElementsByClassName("phwrapper");t.length&&(t[0].style.maxHeight=e)}};Ef=Df=Y3([MC(2,ve),MC(3,Ls)],Ef);H("editorHoverWidget.highlightForeground",ew,m(1361,"Foreground color of the active item in the parameter hint."));var eB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},AC=function(n,e){return function(t,i){e(t,i,n)}},Rf,Cr=class extends O{static{Rf=this}static{this.ID="editor.controller.parameterHints"}static get(e){return e.getContribution(Rf.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new Z3(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(s=>{s?(this.widget.value.show(),this.widget.value.render(s)):this.widget.rawValue?.hide()})),this.widget=new Rm(()=>this._register(t.createInstance(Ef,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)}};Cr=Rf=eB([AC(1,ie),AC(2,Z)],Cr);var tB=class extends M{constructor(){super({id:"editor.action.triggerParameterHints",label:L(1357,"Trigger Parameter Hints"),precondition:S.hasSignatureHelpProvider,kbOpts:{kbExpr:S.editorTextFocus,primary:3082,weight:100}})}run(n,e){Cr.get(e)?.trigger({triggerKind:ds.Invoke})}};ce(Cr.ID,Cr,2);k(tB);var P_=175,O_=Mt.bindToContribution(Cr.get);G(new O_({id:"closeParameterHints",precondition:fo.Visible,handler:n=>n.cancel(),kbOpts:{weight:P_,kbExpr:S.focus,primary:9,secondary:[1033]}}));G(new O_({id:"showPrevParameterHint",precondition:N.and(fo.Visible,fo.MultipleSignatures),handler:n=>n.previous(),kbOpts:{weight:P_,kbExpr:S.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));G(new O_({id:"showNextParameterHint",precondition:N.and(fo.Visible,fo.MultipleSignatures),handler:n=>n.next(),kbOpts:{weight:P_,kbExpr:S.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var FC=class extends O{static{this.ID="editor.contrib.placeholderText"}constructor(n){super(),this._editor=n,this._editorObs=Be(this._editor),this._placeholderText=this._editorObs.getOption(100),this._state=Yi({owner:this,equalsFn:gE},e=>{const t=this._placeholderText.read(e);if(t&&this._editorObs.valueIsEmpty.read(e))return{placeholder:t}}),this._shouldViewBeAlive=iB(this,e=>this._state.read(e)?.placeholder!==void 0),this._view=T(e=>{if(!this._shouldViewBeAlive.read(e))return;const t=Na("div.editorPlaceholder");e.store.add(he(i=>{const s=this._state.read(i),o=s?.placeholder!==void 0;t.root.style.display=o?"block":"none",t.root.innerText=s?.placeholder??""})),e.store.add(he(i=>{const s=this._editorObs.layoutInfo.read(i);t.root.style.left=`${s.contentLeft}px`,t.root.style.width=s.contentWidth-s.verticalScrollbarWidth+"px",t.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),e.store.add(he(i=>{t.root.style.fontFamily=this._editorObs.getOption(58).read(i),t.root.style.fontSize=this._editorObs.getOption(61).read(i)+"px",t.root.style.lineHeight=this._editorObs.getOption(75).read(i)+"px"})),e.store.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:Ce(0),position:Ce(null),domNode:t.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};function iB(n,e){return Ts(n,(t,i)=>i===!0?!0:e(t))}var nB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},sB=function(n,e){return function(t,i){e(t,i,n)}},oB=class{constructor(n){this.instantiationService=n}init(...n){}};function rB(n){return n()}var HC=class extends oB{constructor(e,t){super(t),this.init(e)}};HC=nB([sB(1,ie)],HC);ce(FC.ID,rB(()=>FC),0);H("editor.placeholder.foreground",_0,m(1380,"Foreground color of the placeholder text in the editor."));var aB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},WC=function(n,e){return function(t,i){e(t,i,n)}},Ac=class extends O{static{this.ID="editor.sectionHeaderDetector"}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(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(e.onDidChangeModelLanguage(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChange(s=>{const o=this.editor.getModel()?.getLanguageId();o&&s.affects(o)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(e.onDidChangeConfiguration(s=>{this.options&&!s.hasChanged(81)||(this.options=this.createOptions(e.getOption(81)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(s=>{this.computeSectionHeaders.schedule()})),this._register(e.onDidChangeModelTokens(s=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new at(()=>{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,s=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!i&&!s?.markers))return{foldingRules:s,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(o=>{if(!o.shouldBeInComments)return!0;const r=t.validateRange(o.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(o=>o.decorationId),s=e.map(o=>lB(o));this.editor.changeDecorations(o=>{const r=o.deltaDecorations(i,s);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()}};Ac=aB([WC(1,ct),WC(2,An)],Ac);function lB(n){return{range:n.range,options:se.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:n.hasSeparatorLine?2:1,sectionHeaderText:n.text}})}}ce(Ac.ID,Ac,1);function dB(n){for(let e=0,t=n.length;e<t;e+=4){const i=n[e+0],s=n[e+1],o=n[e+2],r=n[e+3];n[e+0]=r,n[e+1]=o,n[e+2]=s,n[e+3]=i}}function cB(n){const e=new Uint8Array(n.buffer,n.byteOffset,n.length*4);return ST()||dB(e),gd.wrap(e)}function ML(n){const e=new Uint32Array(hB(n));let t=0;if(e[t++]=n.id,n.type==="full")e[t++]=1,e[t++]=n.data.length,e.set(n.data,t),t+=n.data.length;else{e[t++]=2,e[t++]=n.deltas.length;for(const i of n.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 cB(e)}function hB(n){let e=0;if(e+=2,n.type==="full")e+=1+n.data.length;else{e+=1,e+=3*n.deltas.length;for(const t of n.deltas)t.data&&(e+=t.data.length)}return e}function Th(n){return n&&!!n.data}function AL(n){return n&&Array.isArray(n.edits)}var uB=class{constructor(n,e,t){this.provider=n,this.tokens=e,this.error=t}};function FL(n,e){return n.has(e)}function gB(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function HL(n,e,t,i,s){const o=gB(n,e),r=await Promise.all(o.map(async a=>{let l,d=null;try{l=await a.provideDocumentSemanticTokens(e,a===t?i:null,s)}catch(c){d=c,l=null}return(!l||!Th(l)&&!AL(l))&&(l=null),new uB(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 pB(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:null}var fB=class{constructor(n,e){this.provider=n,this.tokens=e}};function mB(n,e){return n.has(e)}function WL(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function M_(n,e,t,i){const s=WL(n,e),o=await Promise.all(s.map(async r=>{let a;try{a=await r.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){tt(l),a=null}return(!a||!Th(a))&&(a=null),new fB(r,a)}));for(const r of o)if(r.tokens)return r;return o.length>0?o[0]:null}Re.registerCommand("_provideDocumentSemanticTokensLegend",async(n,...e)=>{const[t]=e;Se(t instanceof De);const i=n.get(Kt).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Z),o=pB(s,i);return o?o[0].getLegend():n.get(ht).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)});Re.registerCommand("_provideDocumentSemanticTokens",async(n,...e)=>{const[t]=e;Se(t instanceof De);const i=n.get(Kt).getModel(t);if(!i)return;const{documentSemanticTokensProvider:s}=n.get(Z);if(!FL(s,i))return n.get(ht).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const o=await HL(s,i,null,null,ue.None);if(!o)return;const{provider:r,tokens:a}=o;if(!a||!Th(a))return;const l=ML({id:0,type:"full",data:a.data});return a.resultId&&r.releaseDocumentSemanticTokens(a.resultId),l});Re.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(n,...e)=>{const[t,i]=e;Se(t instanceof De);const s=n.get(Kt).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:o}=n.get(Z),r=WL(o,s);if(r.length===0)return;if(r.length===1)return r[0].getLegend();if(!i||!y.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 M_(o,s,y.lift(i),ue.None);if(a)return a.provider.getLegend()});Re.registerCommand("_provideDocumentRangeSemanticTokens",async(n,...e)=>{const[t,i]=e;Se(t instanceof De),Se(y.isIRange(i));const s=n.get(Kt).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:o}=n.get(Z),r=await M_(o,s,y.lift(i),ue.None);if(!(!r||!r.tokens))return ML({id:0,type:"full",data:r.tokens.data})});var _B="editor.semanticHighlighting";function Vd(n,e,t){const i=t.getValue(_B,{overrideIdentifier:n.getLanguageId(),resource:n.uri})?.enabled;return typeof i=="boolean"?i:e.getColorTheme().semanticHighlighting}var VL=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ji=function(n,e){return function(t,i){e(t,i,n)}},Xn,Tf=class extends O{constructor(e,t,i,s,o,r){super(),this._watchers=new Rn,this._providerChangeListeners=this._register(new A);const a=r.documentSemanticTokensProvider,l=u=>{this._watchers.get(u.uri)?.dispose(),this._watchers.set(u.uri,new Nf(u,e,i,o,r))},d=(u,g)=>{g.dispose(),this._watchers.delete(u.uri)},c=()=>{for(const u of t.getModels()){const g=this._watchers.get(u.uri);Vd(u,i,s)?g||l(u):g&&d(u,g)}},h=()=>{this._providerChangeListeners.clear();for(const u of a.allNoModel())typeof u.onDidChange=="function"&&this._providerChangeListeners.add(u.onDidChange(()=>{for(const g of this._watchers.values())g.handleProviderDidChange(u)}))};t.getModels().forEach(u=>{Vd(u,i,s)&&l(u)}),this._register(t.onModelAdded(u=>{Vd(u,i,s)&&l(u)})),this._register(t.onModelRemoved(u=>{const g=this._watchers.get(u.uri);g&&d(u,g)})),this._register(s.onDidChangeConfiguration(u=>{u.affectsConfiguration("editor.semanticHighlighting")&&c()})),this._register(i.onDidColorThemeChange(c)),h(),this._register(a.onDidChange(()=>{h();for(const u of this._watchers.values())u.handleRegistryChange()}))}dispose(){Nt(this._watchers.values()),this._watchers.clear(),super.dispose()}};Tf=VL([Ji(0,Nm),Ji(1,Kt),Ji(2,It),Ji(3,xe),Ji(4,Ri),Ji(5,Z)],Tf);var Nf=class extends O{static{Xn=this}static{this.REQUEST_MIN_DELAY=300}static{this.REQUEST_MAX_DELAY=2e3}constructor(e,t,i,s,o){super(),this._semanticTokensStylingService=t,this._relevantProviders=new Set,this._isDisposed=!1,this._model=e,this._provider=o.documentSemanticTokensProvider,this._debounceInformation=s.for(this._provider,"DocumentSemanticTokens",{min:Xn.REQUEST_MIN_DELAY,max:Xn.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new at(()=>this._fetchDocumentSemanticTokensNow(),Xn.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(!FL(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new st,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,s=HL(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const o=[],r=this._model.onDidChangeContent(l=>{o.push(l)}),a=new hi(!1);s.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,o);else{const{provider:d,tokens:c}=l,h=this._semanticTokensStylingService.getStyling(d);this._setDocumentSemanticTokens(d,c||null,h,o)}},l=>{l&&(Hn(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||we(l),this._currentDocumentRequestCancellationTokenSource=null,r.dispose(),(o.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,s,o){o=Math.min(o,i.length-s,e.length-t);for(let r=0;r<o;r++)i[s+r]=e[t+r]}_setDocumentSemanticTokens(e,t,i,s){const o=this._currentDocumentResponse,r=()=>{(s.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(AL(t)){if(!o){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:o.data};else{let a=0;for(const u of t.edits)a+=(u.data?u.data.length:0)-u.deleteCount;const l=o.data,d=new Uint32Array(l.length+a);let c=l.length,h=d.length;for(let u=t.edits.length-1;u>=0;u--){const g=t.edits[u];if(g.start>l.length){i.warnInvalidEditStart(o.resultId,t.resultId,u,g.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const p=c-(g.start+g.deleteCount);p>0&&(Xn._copy(l,c-p,d,h-p,p),h-=p),g.data&&(Xn._copy(g.data,0,d,h-g.data.length,g.data.length),h-=g.data.length),c=g.start}c>0&&Xn._copy(l,0,d,0,c),t={resultId:t.resultId,data:d}}}if(Th(t)){this._currentDocumentResponse=new vB(e,t.resultId,t.data);const a=Iw(t,i,this._model.getLanguageId());if(s.length>0)for(const l of s)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()}};Nf=Xn=VL([Ji(1,Nm),Ji(2,It),Ji(3,Ri),Ji(4,Z)],Nf);var vB=class{constructor(n,e,t){this.provider=n,this.resultId=e,this.data=t}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}};Ir(Tf);var bB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Xr=function(n,e){return function(t,i){e(t,i,n)}},Fc=class extends O{static{this.ID="editor.contrib.viewportSemanticTokens"}constructor(e,t,i,s,o,r){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=s,this._editor=e,this._provider=r.documentRangeSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new at(()=>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("editor.semanticHighlighting")&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}dispose(){this._cleanupProviderListeners(),super.dispose()}_cleanupProviderListeners(){Nt(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(!Vd(e,this._themeService,this._configurationService)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}if(!mB(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(),s=pt(r=>Promise.resolve(M_(this._provider,e,t,r))),o=new hi(!1);return s.then(r=>{if(this._debounceInformation.update(e,o.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,Iw(l,d,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(s),()=>this._removeOutstandingRequest(s)),s}};Fc=bB([Xr(1,Nm),Xr(2,It),Xr(3,xe),Xr(4,Ri),Xr(5,Z)],Fc);ce(Fc.ID,Fc,1);var CB=class{constructor(n=!0){this.selectSubwords=n}provideSelectionRanges(n,e){const t=[];for(const i of e){const s=[];t.push(s),this.selectSubwords&&this._addInWordRanges(s,n,i),this._addWordRanges(s,n,i),this._addWhitespaceLine(s,n,i),s.push({range:n.getFullModelRange()})}return t}_addInWordRanges(n,e,t){const i=e.getWordAtPosition(t);if(!i)return;const{word:s,startColumn:o}=i,r=t.column-o;let a=r,l=r,d=0;for(;a>=0;a--){const c=s.charCodeAt(a);if(a!==r&&(c===95||c===45))break;if(Lv(c)&&Ev(d))break;d=c}for(a+=1;l<s.length;l++){const c=s.charCodeAt(l);if(Ev(c)&&Lv(d))break;if(c===95||c===45)break;d=c}a<l&&n.push({range:new y(t.lineNumber,o+a,t.lineNumber,o+l)})}_addWordRanges(n,e,t){const i=e.getWordAtPosition(t);i&&n.push({range:new y(t.lineNumber,i.startColumn,t.lineNumber,i.endColumn)})}_addWhitespaceLine(n,e,t){e.getLineLength(t.lineNumber)>0&&e.getLineFirstNonWhitespaceColumn(t.lineNumber)===0&&e.getLineLastNonWhitespaceColumn(t.lineNumber)===0&&n.push({range:new y(t.lineNumber,1,t.lineNumber,e.getLineMaxColumn(t.lineNumber))})}},SB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},wB=function(n,e){return function(t,i){e(t,i,n)}},kf,yB=class BL{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 BL(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}},nl=class{static{kf=this}static{this.ID="editor.contrib.smartSelectController"}static get(e){return e.getContribution(kf.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 zL(this._languageFeaturesService.selectionRangeProvider,i,t.map(o=>o.getPosition()),this._editor.getOption(129),ue.None).then(o=>{if(!(!Qt(o)||o.length!==t.length)&&!(!this._editor.hasModel()||!Bi(this._editor.getSelections(),t,(r,a)=>r.equalsSelection(a)))){for(let r=0;r<o.length;r++)o[r]=o[r].filter(a=>a.containsPosition(t[r].getStartPosition())&&a.containsPosition(t[r].getEndPosition())),o[r].unshift(t[r]);this._state=o.map(r=>new yB(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(o=>o.mov(e));const s=this._state.map(o=>te.fromPositions(o.ranges[o.index].getStartPosition(),o.ranges[o.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}};nl=kf=SB([wB(1,Z)],nl);var UL=class extends M{constructor(n,e){super(e),this._forward=n}async run(n,e){const t=nl.get(e);t&&await t.run(this._forward)}},xB=class extends UL{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:L(1449,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"1_basic",title:m(1447,"&&Expand Selection"),order:2}})}};Re.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");var IB=class extends UL{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:L(1450,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"1_basic",title:m(1448,"&&Shrink Selection"),order:3}})}};ce(nl.ID,nl,4);k(xB);k(IB);async function zL(n,e,t,i,s){const o=n.all(e).concat(new CB(i.selectSubwords));o.length===1&&o.unshift(new WI);const r=[],a=[];for(const l of o)r.push(Promise.resolve(l.provideSelectionRanges(e,t,s)).then(d=>{if(Qt(d)&&d.length===t.length)for(let c=0;c<t.length;c++){a[c]||(a[c]=[]);for(const h of d[c])y.isIRange(h.range)&&y.containsPosition(h.range,t[c])&&a[c].push(y.lift(h.range))}},tt));return await Promise.all(r),a.map(l=>{if(l.length===0)return[];l.sort((u,g)=>B.isBefore(u.getStartPosition(),g.getStartPosition())?1:B.isBefore(g.getStartPosition(),u.getStartPosition())||B.isBefore(u.getEndPosition(),g.getEndPosition())?-1:B.isBefore(g.getEndPosition(),u.getEndPosition())?1:0);const d=[];let c;for(const u of l)(!c||y.containsRange(u,c)&&!y.equalsRange(u,c))&&(d.push(u),c=u);if(!i.selectLeadingAndTrailingWhitespace)return d;const h=[d[0]];for(let u=1;u<d.length;u++){const g=d[u-1],p=d[u];if(p.startLineNumber!==g.startLineNumber||p.endLineNumber!==g.endLineNumber){const f=new y(g.startLineNumber,e.getLineFirstNonWhitespaceColumn(g.startLineNumber),g.endLineNumber,e.getLineLastNonWhitespaceColumn(g.endLineNumber));f.containsRange(g)&&!f.equalsRange(g)&&p.containsRange(f)&&!p.equalsRange(f)&&h.push(f);const _=new y(g.startLineNumber,1,g.endLineNumber,e.getLineMaxColumn(g.endLineNumber));_.containsRange(g)&&!_.equalsRange(f)&&p.containsRange(_)&&!p.equalsRange(_)&&h.push(_)}h.push(p)}return h})}Re.registerCommand("_executeSelectionRangeProvider",async function(n,...e){const[t,i]=e;Se(De.isUri(t)),Se(F0(i,r=>B.isIPosition(r)));const s=n.get(Z).selectionRangeProvider,o=await n.get(si).createModelReference(t);try{return zL(s,o.object.textEditorModel,i.map(B.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},ue.None)}finally{o.dispose()}});var Pf=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")}),LB=class extends gi{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:Pf.View,toggled:{condition:N.equals("config.editor.stickyScroll.enabled",!0),title:m(1495,"Sticky Scroll"),mnemonicTitle:m(1496,"&&Sticky Scroll")},menu:[{id:$.CommandPalette},{id:$.MenubarAppearanceMenu,group:"4_editor",order:3},{id:$.StickyScrollContext}]})}async runEditorCommand(n,e){const t=n.get(xe),i=!t.getValue("editor.stickyScroll.enabled"),s=Ei.get(e)?.isFocused();t.updateValue("editor.stickyScroll.enabled",i),s&&e.focus()}},Nh=100,DB=class extends gi{constructor(){super({id:"editor.action.focusStickyScroll",title:{...L(1500,"Focus Editor Sticky Scroll"),mnemonicTitle:m(1497,"&&Focus Editor Sticky Scroll")},precondition:N.and(N.has("config.editor.stickyScroll.enabled"),S.stickyScrollVisible),menu:[{id:$.CommandPalette}]})}runEditorCommand(n,e){Ei.get(e)?.focus()}},EB=class extends gi{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:L(1501,"Select the next editor sticky scroll line"),precondition:S.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:Nh,primary:18}})}runEditorCommand(n,e){Ei.get(e)?.focusNext()}},RB=class extends gi{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:L(1502,"Select the previous sticky scroll line"),precondition:S.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:Nh,primary:16}})}runEditorCommand(n,e){Ei.get(e)?.focusPrevious()}},TB=class extends gi{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:L(1503,"Go to the focused sticky scroll line"),precondition:S.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:Nh,primary:3}})}runEditorCommand(n,e){Ei.get(e)?.goToFocused()}},NB=class extends gi{constructor(){super({id:"editor.action.selectEditor",title:L(1504,"Select Editor"),precondition:S.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:Nh,primary:9}})}runEditorCommand(n,e){Ei.get(e)?.selectEditor()}};ce(Ei.ID,Ei,1);fe(LB);fe(DB);fe(RB);fe(EB);fe(TB);fe(NB);var jL=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},_a=function(n,e){return function(t,i){e(t,i,n)}},kB=class{constructor(n,e,t,i,s,o,r){this.range=n,this.insertText=e,this.filterText=t,this.additionalTextEdits=i,this.command=s,this.gutterMenuLinkAction=o,this.completion=r,this.doNotLog=!0}},Of=class extends JE{constructor(e,t,i,s,o,r){super(o.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=s,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),s=cs.slice(t,i),o=cs.slice(t,0,i);let r=5;for(const a of cs.concat(s,o)){if(a.score===Oa.Default)continue;const l=new y(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 kB(l,d,a.filterTextLow??a.labelLow,a.completion.additionalTextEdits,a.completion.command,a.completion.action,a)),r-->=0&&a.resolve(ue.None)}return e}};Of=jL([_a(5,Dh)],Of);var Mf=class extends O{constructor(e,t,i,s){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=s,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,i,s){if(i.selectedSuggestionInfo)return;let o;for(const g of this._editorService.listCodeEditors())if(g.getModel()===e){o=g;break}if(!o)return;const r=o.getOption(102);if(Zo.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(Zo.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 u=e.getValueInRange(new y(t.lineNumber,1,t.lineNumber,t.column));if(!c&&this._lastResult?.canBeReused(e,t.lineNumber,d)){const g=new eC(u,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=g,this._lastResult.acquire(),h=this._lastResult}else{const g=await b_(this._languageFeatureService.completionProvider,e,t,new v_(void 0,Dc.createSuggestFilter(o).itemKind,c?.providers),c&&{triggerKind:1,triggerCharacter:c.ch},s);let p;g.needsClipboard&&(p=await this._clipboardService.readText());const f=new HI(g.items,t.column,new eC(u,0),VI.None,o.getOption(134),o.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},p);h=new Of(e,t.lineNumber,d,f,g,this._suggestMemoryService)}return this._lastResult=h,h}handleItemDidShow(e,t){t.completion.resolve(ue.None)}disposeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){const i=e.getValueInRange(y.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),s=new Set;for(const o of this._languageFeatureService.completionProvider.all(e))o.triggerCharacters?.includes(i)&&s.add(o);if(s.size!==0)return{providers:s,ch:i}}};Mf=jL([_a(0,Z),_a(1,ti),_a(2,Dh),_a(3,$e)],Mf);Ir(Mf);var PB=class extends M{constructor(){super({id:"editor.action.forceRetokenize",label:L(1584,"Developer: Force Retokenize"),precondition:void 0})}run(n,e){if(!e.hasModel())return;const t=e.getModel();t.tokenization.resetTokenization();const i=new hi;t.tokenization.forceTokenization(t.getLineCount()),i.stop(),console.log(`tokenization took ${i.elapsed()}`)}};k(PB);var OB=class qL extends lt{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:qL.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 e=!uv.getTabFocusMode();uv.setTabFocusMode(e),e?ci(m(1580,"Pressing Tab will now move focus to the next focusable element")):ci(m(1581,"Pressing Tab will now insert the tab character"))}};fe(OB);var MB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},VC=function(n,e){return function(t,i){e(t,i,n)}},Af=class extends O{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={},s,o){super(),this._link=t,this._hoverService=s,this._enabled=!0,this.el=z(e,W("a.monaco-link",{tabIndex:t.tabIndex??0,href:t.href},t.label)),this.hoverDelegate=i.hoverDelegate??aw("mouse"),this.setTooltip(t.title),this.el.setAttribute("role","button");const r=this._register(new Fh(this.el,"click")),a=this._register(new Fh(this.el,"keydown")),l=qe.chain(a.event,h=>h.map(u=>new wm(u)).filter(u=>u.keyCode===3||u.keyCode===10)),d=this._register(new Fh(this.el,$D.Tap)).event;this._register(cw.addTarget(this.el));const c=qe.any(r.event,l,d);this._register(c(h=>{this.enabled&&(Cn.stop(h,!0),i?.opener?i.opener(this._link.href):o.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)}};Af=MB([VC(3,ui),VC(4,_o)],Af);var $L=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ff=function(n,e){return function(t,i){e(t,i,n)}},AB=26,Hf=class extends O{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(Wf))}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,AB)}};Hf=$L([Ff(1,ie)],Hf);var Wf=class extends O{constructor(e,t){super(),this.instantiationService=e,this.markdownRendererService=t,this.element=W("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=W("span");return t.innerText=e,t}return this.markdownRendererService.render(e).element}clear(){di(this.element)}show(e){di(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=z(this.element,W("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild(W(`div${pe.asCSSSelector(e.icon)}`));const s=z(this.element,W("div.message-container"));if(s.setAttribute("aria-hidden","true"),s.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=z(this.element,W("div.message-actions-container")),e.actions)for(const r of e.actions)this._register(this.instantiationService.createInstance(Af,this.messageActionsContainer,{...r,tabIndex:-1},{}));const o=z(this.element,W("div.action-container"));this.actionBar=this._register(new fs(o)),this.actionBar.push(this._register(new sr("banner.close",m(1585,"Close Banner"),pe.asClassName(qS),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};Wf=$L([Ff(0,ie),Ff(1,Ls)],Wf);var A_=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Da=function(n,e){return function(t,i){e(t,i,n)}},FB=Ze("extensions-warning-message",V.warning,m(1586,"Icon shown with a warning message in the extensions editor.")),sl=class extends O{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(e,t,i,s){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=o=>{if(o&&o.hasMore){if(this._bannerClosed)return;const r=Math.max(o.ambiguousCharacterCount,o.nonBasicAsciiCharacterCount,o.invisibleCharacterCount);let a;if(o.nonBasicAsciiCharacterCount>=r)a={message:m(1587,"This document contains many non-basic ASCII unicode characters"),command:new H_};else if(o.ambiguousCharacterCount>=r)a={message:m(1588,"This document contains many ambiguous unicode characters"),command:new Tl};else if(o.invisibleCharacterCount>=r)a={message:m(1589,"This document contains many invisible unicode characters"),command:new F_};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:a.message,icon:FB,actions:[{label:a.command.shortLabel,href:`command:${a.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(Hf,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(142),this._register(i.onDidChangeTrust(o=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(o=>{o.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=HB(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"?AS.NumberFormat().value.resolvedOptions().locale:i==="_vscode"?i0:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new Vf(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new WB(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};sl=A_([Da(1,An),Da(2,_T),Da(3,ie)],sl);function HB(n,e){return{nonBasicASCII:e.nonBasicASCII==="inUntrustedWorkspace"?!n:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments==="inUntrustedWorkspace"?!n:e.includeComments,includeStrings:e.includeStrings==="inUntrustedWorkspace"?!n:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}var Vf=class extends O{constructor(e,t,i,s){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=s,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new at(()=>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 s of t.ranges)i.push({range:s,options:ZL.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();return TS(t,e)?{reason:GL(t.getValueInRange(e.range),this._options),inComment:mS(t,e),inString:GS(t,e)}:null}};Vf=A_([Da(3,An)],Vf);var WB=class extends O{constructor(n,e,t){super(),this._editor=n,this._options=e,this._updateState=t,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new at(()=>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 n=this._editor.getVisibleRanges(),e=[],t={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const i of n){const s=Aw.computeUnicodeHighlights(this._model,this._options,i);for(const o of s.ranges)t.ranges.push(o);t.ambiguousCharacterCount+=t.ambiguousCharacterCount,t.invisibleCharacterCount+=t.invisibleCharacterCount,t.nonBasicAsciiCharacterCount+=t.nonBasicAsciiCharacterCount,t.hasMore=t.hasMore||s.hasMore}if(!t.hasMore)for(const i of t.ranges)e.push({range:i,options:ZL.instance.getDecorationFromOptions(this._options)});this._updateState(t),this._decorations.set(e)}getDecorationInfo(n){if(!this._decorations.has(n))return null;const e=this._editor.getModel(),t=e.getValueInRange(n.range);return TS(e,n)?{reason:GL(t,this._options),inComment:mS(e,n),inString:GS(e,n)}:null}},KL=m(1590,"Configure Unicode Highlight Options"),Bf=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(),s=this._editor.getContribution(sl.ID);if(!s)return[];const o=[],r=new Set;let a=300;for(const l of t){const d=s.getDecorationInfo(l);if(!d)continue;const c=i.getValueInRange(l.range).codePointAt(0),h=Nu(c);let u;switch(d.reason.kind){case 0:yw(d.reason.confusableWith)?u=m(1591,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",h,Nu(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.",h,Nu(d.reason.confusableWith.codePointAt(0)));break;case 1:u=m(1593,"The character {0} is invisible.",h);break;case 2:u=m(1594,"The character {0} is not a basic ASCII character.",h)}if(r.has(u))continue;r.add(u);const g={codePoint:c,reason:d.reason,inComment:d.inComment,inString:d.inString},p=m(1595,"Adjust settings"),f=fS(eD.ID,g),_=new Lt("",!0).appendMarkdown(u).appendText(" ").appendLink(f,p,KL);o.push(new yi(this,l.range,[_],!1,a++))}return o}renderHoverParts(e,t){return Pk(e,t,this._editor,this._markdownRendererService)}getAccessibleContent(e){return e.contents.map(t=>t.value).join(`
62
- `)}};Bf=A_([Da(1,Ls)],Bf);function Uf(n){return`U+${n.toString(16).padStart(4,"0")}`}function Nu(n){let e=`\`${Uf(n)}\``;return LS.isInvisibleCharacter(n)||(e+=` "${`${VB(n)}`}"`),e}function VB(n){return n===96?"`` ` ``":"`"+String.fromCodePoint(n)+"`"}function GL(n,e){return Aw.computeUnicodeHighlightReason(n,e)}var ZL=class XL{constructor(){this.map=new Map}static{this.instance=new XL}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let s=this.map.get(i);return s||(s=se.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,s)),s}},BB=class extends M{constructor(){super({id:Tl.ID,label:L(1604,"Disable highlighting of characters in comments"),precondition:void 0}),this.shortLabel=m(1596,"Disable Highlight In Comments")}async run(n,e){const t=n.get(xe);t&&this.runAction(t)}async runAction(n){await n.updateValue(Tn.includeComments,!1,2)}},UB=class extends M{constructor(){super({id:Tl.ID,label:L(1605,"Disable highlighting of characters in strings"),precondition:void 0}),this.shortLabel=m(1597,"Disable Highlight In Strings")}async run(n,e){const t=n.get(xe);t&&this.runAction(t)}async runAction(n){await n.updateValue(Tn.includeStrings,!1,2)}},Tl=class YL extends lt{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:YL.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(xe);i&&this.runAction(i)}async runAction(e){await e.updateValue(Tn.ambiguousCharacters,!1,2)}},F_=class JL extends lt{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:JL.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(xe);i&&this.runAction(i)}async runAction(e){await e.updateValue(Tn.invisibleCharacters,!1,2)}},H_=class QL extends lt{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:QL.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(xe);i&&this.runAction(i)}async runAction(e){await e.updateValue(Tn.nonBasicASCII,!1,2)}},eD=class tD extends lt{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:tD.ID,title:L(1609,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(e,t){const{codePoint:i,reason:s,inString:o,inComment:r}=t,a=String.fromCodePoint(i),l=e.get(Di),d=e.get(xe);function c(p){return LS.isInvisibleCharacter(p)?m(1601,"Exclude {0} (invisible character) from being highlighted",Uf(p)):m(1602,"Exclude {0} from being highlighted",`${Uf(p)} "${a}"`)}const h=[];if(s.kind===0)for(const p of s.notAmbiguousInLocales)h.push({label:m(1603,'Allow unicode characters that are more common in the language "{0}".',p),run:async()=>{jB(d,[p])}});if(h.push({label:c(i),run:()=>zB(d,[i])}),r){const p=new BB;h.push({label:p.label,run:async()=>p.runAction(d)})}else if(o){const p=new UB;h.push({label:p.label,run:async()=>p.runAction(d)})}function u(p){return typeof p.desc.title=="string"?p.desc.title:p.desc.title.value}if(s.kind===0){const p=new Tl;h.push({label:u(p),run:async()=>p.runAction(d)})}else if(s.kind===1){const p=new F_;h.push({label:u(p),run:async()=>p.runAction(d)})}else if(s.kind===2){const p=new H_;h.push({label:u(p),run:async()=>p.runAction(d)})}else qB(s);const g=await l.pick(h,{title:KL});g&&await g.run()}};async function zB(n,e){const t=n.getValue(Tn.allowedCharacters);let i;typeof t=="object"&&t?i=t:i={};for(const s of e)i[String.fromCodePoint(s)]=!0;await n.updateValue(Tn.allowedCharacters,i,2)}async function jB(n,e){const t=n.inspect(Tn.allowedLocales).user?.value;let i;typeof t=="object"&&t?i=Object.assign({},t):i={};for(const s of e)i[s]=!0;await n.updateValue(Tn.allowedLocales,i,2)}function qB(n){throw new Error(`Unexpected value: ${n}`)}fe(Tl);fe(F_);fe(H_);fe(eD);ce(sl.ID,sl,1);Co.register(Bf);var $B=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},BC=function(n,e){return function(t,i){e(t,i,n)}},iD="ignoreUnusualLineTerminators";function KB(n,e,t){n.setModelProperty(e.uri,iD,t)}function GB(n,e){return n.getModelProperty(e.uri,iD)}var Hc=class extends O{static{this.ID="editor.contrib.unusualLineTerminatorsDetector"}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(s=>{s.hasChanged(143)&&(this._config=this._editor.getOption(143),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(s=>{s.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||GB(this._codeEditorService,e)===!0||this._editor.getOption(104))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let t;try{this._isPresentingDialog=!0,t=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`.",Vi(e.uri)),primaryButton:m(1613,"&&Remove Unusual Line Terminators"),cancelButton:m(1614,"Ignore")})}finally{this._isPresentingDialog=!1}if(!t.confirmed){KB(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}};Hc=$B([BC(1,om),BC(2,$e)],Hc);ce(Hc.ID,Hc,1);var ZB=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},XB=function(n,e){return function(t,i){e(t,i,n)}},UC=class{constructor(){this.selector={language:"*"}}provideDocumentHighlights(n,e,t){if(n.isDisposed())return;const i=[],s=n.getWordAtPosition({lineNumber:e.lineNumber,column:e.column});return s?n.findMatches(s.word,!0,!1,!0,pv,!1).map(o=>({range:o.range,kind:Kd.Text})):Promise.resolve(i)}provideMultiDocumentHighlights(n,e,t,i){if(n.isDisposed())return;const s=new Rn,o=n.getWordAtPosition({lineNumber:e.lineNumber,column:e.column});if(!o)return Promise.resolve(s);for(const r of[n,...t]){if(r.isDisposed())continue;const a=r.findMatches(o.word,!0,!1,!0,pv,!1).map(l=>({range:l.range,kind:Kd.Text}));a&&s.set(r.uri,a)}return s}},zf=class extends O{constructor(e){super(),this._register(e.documentHighlightProvider.register("*",new UC)),this._register(e.multiDocumentHighlightProvider.register("*",new UC))}};zf=ZB([XB(0,Z)],zf);var nD=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Qi=function(n,e){return function(t,i){e(t,i,n)}},Fe,jf,W_=new oe("hasWordHighlights",!1);function sD(n,e,t,i){const s=n.ordered(e);return gm(s.map(o=>()=>Promise.resolve(o.provideDocumentHighlights(e,t,i)).then(void 0,tt)),o=>o!=null).then(o=>{if(o){const r=new Rn;return r.set(e.uri,o),r}return new Rn})}function YB(n,e,t,i,s){const o=n.ordered(e);return gm(o.map(r=>()=>{const a=s.filter(l=>yE(l)).filter(l=>zR(r.selector,l.uri,l.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(r.provideMultiDocumentHighlights(e,t,a,i)).then(void 0,tt)}),r=>r!=null)}var oD=class{constructor(n,e,t){this._model=n,this._selection=e,this._wordSeparators=t,this._wordRange=this._getCurrentWordRange(n,e),this._result=null}get result(){return this._result||(this._result=pt(n=>this._compute(this._model,this._selection,this._wordSeparators,n))),this._result}_getCurrentWordRange(n,e){const t=n.getWordAtPosition(e.getPosition());return t?new y(e.startLineNumber,t.startColumn,e.startLineNumber,t.endColumn):null}cancel(){this.result.cancel()}},JB=class extends oD{constructor(n,e,t,i){super(n,e,t),this._providers=i}_compute(n,e,t,i){return sD(this._providers,n,e.getPosition(),i).then(s=>s||new Rn)}},QB=class extends oD{constructor(n,e,t,i,s){super(n,e,t),this._providers=i,this._otherModels=s}_compute(n,e,t,i){return YB(this._providers,n,e.getPosition(),i,this._otherModels).then(s=>s||new Rn)}};function e2(n,e,t,i){return new JB(e,t,i,n)}function t2(n,e,t,i,s){return new QB(e,t,i,n,s)}Ut("_executeDocumentHighlights",async(n,e,t)=>(await sD(n.get(Z).documentHighlightProvider,e,t,ue.None))?.get(e.uri));var qf=class{static{Fe=this}static{this.storedDecorationIDs=new Rn}static{this.query=null}constructor(e,t,i,s,o,r,a,l){this.toUnhook=new A,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new Rn,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,this.runDelayer=this.toUnhook.add(new _s(50)),this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=r,this.textModelService=o,this.configurationService=a,this.logService=l,this._hasWordHighlights=W_.bindTo(s),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=>{o0(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(d=>{!d.newModelUrl&&d.oldModelUrl?this._stopSingular():Fe.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(Fe.query?.modelInfo?.modelURI);break;case"multiFile":Fe.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",c)}})),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===_t.vscodeNotebookCell&&this.editor.getModel()?.uri.scheme!==_t.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,Fe.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(y.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),t=(e.findIndex(s=>s.containsPosition(this.editor.getPosition()))+1)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const s=this._getWord();if(s){const o=this.editor.getModel().getLineContent(i.startLineNumber);ci(`${o}, ${t+1} of ${e.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),t=(e.findIndex(s=>s.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const s=this._getWord();if(s){const o=this.editor.getModel().getLineContent(i.startLineNumber);ci(`${o}, ${t+1} of ${e.length} for '${s.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Fe.storedDecorationIDs.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Fe.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 s of t){if(!s.hasModel()||ps(s.getModel().uri,e))continue;const o=Fe.storedDecorationIDs.get(s.getModel().uri);if(!o)continue;s.removeDecorations(o),i.push(s.getModel().uri);const r=xs.get(s);r?.wordHighlighter&&r.wordHighlighter.decorations.length>0&&(r.wordHighlighter.decorations.clear(),r.wordHighlighter.workerRequest=null,r.wordHighlighter._hasWordHighlights.set(!1))}for(const s of i)Fe.storedDecorationIDs.delete(s)}_stopSingular(){this._removeSingleDecorations(),this.editor.hasTextFocus()&&(this.editor.getModel()?.uri.scheme!==_t.vscodeNotebookCell&&Fe.query?.modelInfo?.modelURI.scheme!==_t.vscodeNotebookCell?(Fe.query=null,this._run()):Fe.query?.modelInfo&&(Fe.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===_t.vscodeNotebookCell){const s=[],o=this.codeEditorService.listCodeEditors();for(const r of o){const a=r.getModel();a&&a!==e&&a.uri.scheme===_t.vscodeNotebookCell&&s.push(a)}return s}const t=[],i=this.codeEditorService.listCodeEditors();for(const s of i){if(!Pw(s))continue;const o=s.getModel();o&&e===o.modified&&t.push(o.modified)}if(t.length)return t;if(this.occurrencesHighlightEnablement==="singleFile")return[];for(const s of i){const o=s.getModel();o&&o!==e&&t.push(o)}return t}async _run(e,t){if(this.editor.hasTextFocus()){const i=this.editor.getSelection();if(!i||i.startLineNumber!==i.endLineNumber){Fe.query=null,this._stopAll();return}const s=i.startColumn,o=i.endColumn,r=this._getWord();if(!r||r.startColumn>s||r.endColumn<o){Fe.query=null,this._stopAll();return}Fe.query={modelInfo:{modelURI:this.model.uri,selection:i}}}else if(!Fe.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),ps(this.editor.getModel().uri,Fe.query.modelInfo?.modelURI)){if(!e){const r=this.decorations.getRanges();for(const a of r)if(a.containsPosition(this.editor.getPosition()))return}this._stopAll(e?this.model.uri:void 0);const i=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const s=this.getOtherModelsToHighlight(this.editor.getModel());if(!Fe.query||!Fe.query.modelInfo)return;const o=await this.textModelService.createModelReference(Fe.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(o.object.textEditorModel,Fe.query.modelInfo.selection,s),this.workerRequest?.result.then(r=>{i===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{o.dispose()}}else if(this.model.uri.scheme===_t.vscodeNotebookCell){const i=++this.workerRequestTokenId;if(this.workerRequestCompleted=!1,!Fe.query||!Fe.query.modelInfo)return;const s=await this.textModelService.createModelReference(Fe.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(s.object.textEditorModel,Fe.query.modelInfo.selection,[this.model]),this.workerRequest?.result.then(o=>{i===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=o||[],this._beginRenderDecorations(t??this.occurrencesHighlightDelay))},we)}catch(o){this.logService.error("Unexpected error during occurrence request. Log: ",o)}finally{s.dispose()}}}computeWithModel(e,t,i){return i.length?t2(this.multiDocumentProviders,e,t,this.editor.getOption(148),i):e2(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=xs.get(t);if(!i)continue;const s=[],o=t.getModel()?.uri;if(o&&this.workerRequestValue.has(o)){const r=Fe.storedDecorationIDs.get(o),a=this.workerRequestValue.get(o);if(a)for(const d of a)d.range&&s.push({range:d.range,options:N3(d.kind)});let l=[];t.changeDecorations(d=>{l=d.deltaDecorations(r??[],s)}),Fe.storedDecorationIDs=Fe.storedDecorationIDs.set(o,l),s.length>0&&(i.wordHighlighter?.decorations.set(s),i.wordHighlighter?._hasWordHighlights.set(!0))}}this.workerRequest=null}dispose(){this._stopSingular(),this.toUnhook.dispose()}};qf=Fe=nD([Qi(4,si),Qi(5,$e),Qi(6,xe),Qi(7,Pt)],qf);var xs=class extends O{static{jf=this}static{this.ID="editor.contrib.wordHighlighter"}static get(e){return e.getContribution(jf.ID)}constructor(e,t,i,s,o,r,a){super(),this._wordHighlighter=null;const l=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&e.getModel().uri.scheme!==_t.accessibleView&&(this._wordHighlighter=new qf(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,o,s,r,a))};this._register(e.onDidChangeModel(d=>{this._wordHighlighter&&(!d.newModelUrl&&d.oldModelUrl?.scheme!==_t.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()}};xs=jf=nD([Qi(1,ve),Qi(2,Z),Qi(3,$e),Qi(4,si),Qi(5,xe),Qi(6,Pt)],xs);var rD=class extends M{constructor(n,e){super(e),this._isNext=n}run(n,e){const t=xs.get(e);t&&(this._isNext?t.moveNext():t.moveBack())}},i2=class extends rD{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:L(1624,"Go to Next Symbol Highlight"),precondition:W_,kbOpts:{kbExpr:S.editorTextFocus,primary:65,weight:100}})}},n2=class extends rD{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:L(1625,"Go to Previous Symbol Highlight"),precondition:W_,kbOpts:{kbExpr:S.editorTextFocus,primary:1089,weight:100}})}},s2=class extends M{constructor(){super({id:"editor.action.wordHighlight.trigger",label:L(1626,"Trigger Symbol Highlight"),precondition:void 0,kbOpts:{kbExpr:S.editorTextFocus,primary:0,weight:100}})}run(n,e){const t=xs.get(e);t&&t.restoreViewState(!0)}};ce(xs.ID,xs,0);k(i2);k(n2);k(s2);Ir(zf);var kh=class extends Mt{constructor(n){super(n),this._inSelectionMode=n.inSelectionMode,this._wordNavigationType=n.wordNavigationType}runEditorCommand(n,e,t){if(!e.hasModel())return;const i=mo(e.getOption(148),e.getOption(147)),s=e.getModel(),o=e.getSelections(),r=o.length>1,a=o.map(l=>{const d=new B(l.positionLineNumber,l.positionColumn),c=this._move(i,s,d,this._wordNavigationType,r);return this._moveTo(l,c,this._inSelectionMode)});if(s.pushStackElement(),e._getViewModel().setCursorStates("moveWordCommand",3,a.map(l=>cR.fromModelSelection(l))),a.length===1){const l=new B(a[0].positionLineNumber,a[0].positionColumn);e.revealPosition(l,0)}}_moveTo(n,e,t){return t?new te(n.selectionStartLineNumber,n.selectionStartColumn,e.lineNumber,e.column):new te(e.lineNumber,e.column,e.lineNumber,e.column)}},Os=class extends kh{_move(n,e,t,i,s){return Cl.moveWordLeft(n,e,t,i,s)}},Ms=class extends kh{_move(n,e,t,i,s){return Cl.moveWordRight(n,e,t,i)}},o2=class extends Os{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}},r2=class extends Os{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}},a2=class extends Os{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:N.and(S.textInputFocus,N.and(ul,rh)?.negate()),primary:2063,mac:{primary:527},weight:100}})}},l2=class extends Os{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}},d2=class extends Os{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}},c2=class extends Os{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:N.and(S.textInputFocus,N.and(ul,rh)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}},h2=class extends Os{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(n,e,t,i,s){return super._move(mo(sh.wordSeparators.defaultValue,n.intlSegmenterLocales),e,t,i,s)}},u2=class extends Os{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(n,e,t,i,s){return super._move(mo(sh.wordSeparators.defaultValue,n.intlSegmenterLocales),e,t,i,s)}},g2=class extends Ms{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}},p2=class extends Ms{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:N.and(S.textInputFocus,N.and(ul,rh)?.negate()),primary:2065,mac:{primary:529},weight:100}})}},f2=class extends Ms{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}},m2=class extends Ms{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}},_2=class extends Ms{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:N.and(S.textInputFocus,N.and(ul,rh)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}},v2=class extends Ms{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}},b2=class extends Ms{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(n,e,t,i,s){return super._move(mo(sh.wordSeparators.defaultValue,n.intlSegmenterLocales),e,t,i,s)}},C2=class extends Ms{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(n,e,t,i,s){return super._move(mo(sh.wordSeparators.defaultValue,n.intlSegmenterLocales),e,t,i,s)}},Ph=class extends Mt{constructor(n){super({canTriggerInlineEdits:!0,...n}),this._whitespaceHeuristics=n.whitespaceHeuristics,this._wordNavigationType=n.wordNavigationType}runEditorCommand(n,e,t){const i=n?.get(ct);if(!e.hasModel()||!i)return;const s=mo(e.getOption(148),e.getOption(147)),o=e.getModel(),r=e.getSelections(),a=e.getOption(10),l=e.getOption(15),d=i.getLanguageConfiguration(o.getLanguageId()).getAutoClosingPairs(),c=e._getViewModel(),h=r.map(u=>{const g=this._delete({wordSeparators:s,model:o,selection:u,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:e.getOption(13),autoClosingBrackets:a,autoClosingQuotes:l,autoClosingPairs:d,autoClosedCharacters:c.getCursorAutoClosedCharacters()},this._wordNavigationType);return new vl(g,"")});e.pushUndoStop(),e.executeCommands(this.id,h),e.pushUndoStop()}},V_=class extends Ph{_delete(n,e){const t=Cl.deleteWordLeft(n,e);return t||new y(1,1,1,1)}},B_=class extends Ph{_delete(n,e){const t=Cl.deleteWordRight(n,e);if(t)return t;const i=n.model.getLineCount(),s=n.model.getLineMaxColumn(i);return new y(i,s,i,s)}},S2=class extends V_{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:S.writable})}},w2=class extends V_{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:S.writable})}},y2=class extends V_{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}},x2=class extends B_{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:S.writable})}},I2=class extends B_{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:S.writable})}},L2=class extends B_{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}},D2=class extends M{constructor(){super({id:"deleteInsideWord",precondition:S.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(n,e,t){if(!e.hasModel())return;const i=!!(t&&typeof t=="object"&&t.onlyWord),s=mo(e.getOption(148),e.getOption(147)),o=e.getModel(),r=e.getSelections().map(a=>{const l=Cl.deleteInsideWord(s,o,a,i);return new vl(l,"")});e.pushUndoStop(),e.executeCommands(this.id,r),e.pushUndoStop()}};G(new o2);G(new r2);G(new a2);G(new l2);G(new d2);G(new c2);G(new g2);G(new p2);G(new f2);G(new m2);G(new _2);G(new v2);G(new h2);G(new u2);G(new b2);G(new C2);G(new S2);G(new w2);G(new y2);G(new x2);G(new I2);G(new L2);k(D2);var E2=class extends Ph{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(n,e){const t=oh.deleteWordPartLeft(n);return t||new y(1,1,1,1)}},R2=class extends Ph{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:S.writable,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(n,e){const t=oh.deleteWordPartRight(n);if(t)return t;const i=n.model.getLineCount(),s=n.model.getLineMaxColumn(i);return new y(i,s,i,s)}},aD=class extends kh{_move(n,e,t,i,s){return oh.moveWordPartLeft(n,e,t,s)}},T2=class extends aD{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:783},weight:100}})}};Re.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");var N2=class extends aD{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}};Re.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");var lD=class extends kh{_move(n,e,t,i,s){return oh.moveWordPartRight(n,e,t)}},k2=class extends lD{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:785},weight:100}})}},P2=class extends lD{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:S.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}};G(new E2);G(new R2);G(new T2);G(new N2);G(new k2);G(new P2);var zC=class extends O{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(n){super(),this.editor=n,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const n=qt.get(this.editor);if(n&&this.editor.hasModel()){let e=this.editor.getOptions().get(105);e||(this.editor.isSimpleWidget?e=new Lt(m(1427,"Cannot edit in read-only input")):e=new Lt(m(1428,"Cannot edit in read-only editor"))),n.showMessage(e,this.editor.getPosition())}}};ce(zC.ID,zC,2);var O2=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},jC=function(n,e){return function(t,i){e(t,i,n)}},$f=class extends O{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=Ne(this,void 0);const s=Zd("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),o=Zd("_textModel.onDidChangeContent",qe.debounce(r=>this._textModel.onDidChangeContent(r),()=>{},100));this._register(bl(async(r,a)=>{s.read(r),o.read(r);const l=a.add(new B0),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 s=i.asListOfDocumentSymbols().filter(o=>e.contains(o.range.startLineNumber)&&!e.contains(o.range.endLineNumber));return s.sort(Cv(so(o=>o.range.endLineNumber-o.range.startLineNumber,oo))),s.map(o=>({name:o.name,kind:o.kind,startLineNumber:o.range.startLineNumber}))}getAt(e,t){const i=this._currentModel.read(t);if(!i)return[];const s=i.asListOfDocumentSymbols().filter(o=>new rt(o.range.startLineNumber,o.range.endLineNumber).contains(e));return s.length===0?[]:(s.sort(Cv(so(o=>o.range.endLineNumber-o.range.startLineNumber,oo))),s.map(o=>({name:o.name,kind:o.kind,startLineNumber:o.range.startLineNumber})))}};$f=O2([jC(1,Z),jC(2,El)],$f);kw.setBreadcrumbsSourceFactory((n,e)=>e.createInstance($f,n));var dD=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ir=function(n,e){return function(t,i){e(t,i,n)}},Wc=class extends O{static{this.ID="editor.contrib.floatingToolbar"}constructor(e,t,i,s){super();const o=this._register(Be(e)),r=T(l=>o.model.read(l)?.uri),a=this._register(t.createInstance(Kf,$.EditorContent,e.contextKeyService,r));this._register(he(l=>{a.hasActions.read(l)&&l.store.add(o.createOverlayWidget({allowEditorOverflow:!1,domNode:a.element,minContentWidthInPx:Ce(0),position:Ce({preference:1})}))}))}};Wc=dD([ir(1,ie),ir(2,Oe),ir(3,Es)],Wc);var Kf=class extends O{constructor(e,t,i,s,o,r){super();const a=this._register(r.createMenu(e,t)),l=Dt(this,a.onDidChange,()=>a.getActions()),d=T(c=>{const h=l.read(c),{primary:u}=ES(h,()=>!0);return u.filter(g=>g.id!==Ma.ID)});this.hasActions=T(c=>d.read(c).length>0),this.element=Na("div.floating-menu-overlay-widget").root,this._register(ke(()=>this.element.remove())),this._register(he(c=>{const h=d.read(c),u=h.length>0,g=u?h[0].id:void 0,p=h.length===1;if(this.element.classList.toggle("single-button",p),this.element.style.height=p?"28px":"26px",!u)return;const f=s.createInstance(e0,this.element,e,{actionViewItemProvider:(_,v)=>{if(_ instanceof ro)return s.createInstance(class extends cm{render(C){super.render(C),_.id===g&&this.element?.classList.add("primary")}updateLabel(){const C=o.lookupKeybinding(_.id),x=C?C.getLabel():void 0;this.options.label&&this.label&&(this.label.textContent=x?`${this._commandAction.label} (${x})`:this._commandAction.label)}},_,{...v,keybindingNotRenderedWithLabel:!0})},hiddenItemStrategy:0,menuOptions:{shouldForwardArgs:!0},telemetrySource:"editor.overlayToolbar",toolbarOptions:{primaryGroup:()=>!0,useSeparatorsInPrimaryActions:!0}});c.store.add(f),c.store.add(he(_=>{const v=i.read(_);f.context=v}))}))}};Kf=dD([ir(3,ie),ir(4,Oe),ir(5,Es)],Kf);ce(Wc.ID,Wc,1);var qC=class extends O{static{this.ID="editor.contrib.iPadShowKeyboard"}constructor(n){super(),this.editor=n,this.widget=null,tg&&(this._register(n.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const n=!this.editor.getOption(104);!this.widget&&n?this.widget=new M2(this.editor):this.widget&&!n&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}},M2=class cD extends O{static{this.ID="editor.contrib.ShowKeyboardWidget"}constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(de(this._domNode,"touchstart",t=>{this.editor.focus()})),this._register(de(this._domNode,"focus",t=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return cD.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};ce(qC.ID,qC,3);var A2=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},$C=function(n,e){return function(t,i){e(t,i,n)}},Gf,ol=class extends O{static{Gf=this}static{this.ID="editor.contrib.inspectTokens"}static get(e){return e.getContribution(Gf.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel(s=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(s=>this.stop())),this._register(Uc.onDidChange(s=>this.stop())),this._register(this._editor.onKeyUp(s=>s.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new V2(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};ol=Gf=A2([$C(1,JS),$C(2,Fn)],ol);var F2=class extends M{constructor(){super({id:"editor.action.inspectTokens",label:BD.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(n,e){ol.get(e)?.launch()}};function H2(n){let e="";for(let t=0,i=n.length;t<i;t++){const s=n.charCodeAt(t);switch(s){case 9:e+="→";break;case 32:e+="·";break;default:e+=String.fromCharCode(s)}}return e}function W2(n,e){const t=Uc.get(e);if(t)return t;const i=n.encodeLanguageId(e);return{getInitialState:()=>mT,tokenize:(s,o,r)=>rR(e,r),tokenizeEncoded:(s,o,r)=>hR(i,r)}}var V2=class hD extends O{static{this._ID="editor.contrib.inspectTokensWidget"}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=W2(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 hD._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 s=0;for(let l=t.tokens2.length>>>1;l>=0;l--)if(e.column-1>=t.tokens2[l<<1]){s=l;break}const o=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:o.length;r=o.substring(l,d)}jd(this._domNode,W("h2.tm-token",void 0,H2(r),W("span.tm-token-length",void 0,`${r.length} ${r.length===1?"char":"chars"}`))),z(this._domNode,W("hr.tokens-inspect-separator",{style:"clear:both"}));const a=(s<<1)+1<t.tokens2.length?this._decodeMetadata(t.tokens2[(s<<1)+1]):null;z(this._domNode,W("table.tm-metadata-table",void 0,W("tbody",void 0,W("tr",void 0,W("td.tm-metadata-key",void 0,"language"),W("td.tm-metadata-value",void 0,`${a?a.languageId:"-?-"}`)),W("tr",void 0,W("td.tm-metadata-key",void 0,"token type"),W("td.tm-metadata-value",void 0,`${a?this._tokenTypeToString(a.tokenType):"-?-"}`)),W("tr",void 0,W("td.tm-metadata-key",void 0,"font style"),W("td.tm-metadata-value",void 0,`${a?this._fontStyleToString(a.fontStyle):"-?-"}`)),W("tr",void 0,W("td.tm-metadata-key",void 0,"foreground"),W("td.tm-metadata-value",void 0,`${a?me.Format.CSS.formatHex(a.foreground):"-?-"}`)),W("tr",void 0,W("td.tm-metadata-key",void 0,"background"),W("td.tm-metadata-value",void 0,`${a?me.Format.CSS.formatHex(a.background):"-?-"}`))))),z(this._domNode,W("hr.tokens-inspect-separator")),i<t.tokens1.length&&z(this._domNode,W("span.tm-token-type",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=Uc.getColorMap(),i=Fr.getLanguageId(e),s=Fr.getTokenType(e),o=Fr.getFontStyle(e),r=Fr.getForeground(e),a=Fr.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:s,fontStyle:o,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),s=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:i.tokens,tokens2:s.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]}}};ce(ol.ID,ol,4);k(F2);var B2=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},ku=function(n,e){return function(t,i){e(t,i,n)}},va,Zf=class{static{va=this}static{this.PREFIX="?"}constructor(e,t,i){this.quickInputService=e,this.keybindingService=t,this.contextKeyService=i,this.registry=ln.as(wr.Quickaccess)}provide(e){const t=new A;return t.add(e.onDidAccept(()=>{const[i]=e.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(i=>{const s=this.registry.getQuickAccessProvider(i.substr(va.PREFIX.length),this.contextKeyService);s?.prefix&&s.prefix!==va.PREFIX&&this.quickInputService.quickAccess.show(s.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(i=>i.prefix!==va.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders(this.contextKeyService).sort((e,t)=>e.prefix.localeCompare(t.prefix)).flatMap(e=>this.createPicks(e))}createPicks(e){return e.helpEntries.map(t=>{const i=t.prefix||e.prefix,s=i||"…";return{prefix:i,label:s,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:m(1811,"{0}, {1}",s,t.description),description:t.description}})}};Zf=va=B2([ku(0,Di),ku(1,Oe),ku(2,ve)],Zf);ln.as(wr.Quickaccess).registerQuickAccessProvider({ctor:Zf,prefix:"",helpEntries:[{description:pT.helpQuickAccessActionLabel}]});var uD=class{constructor(n){this.options=n,this.rangeHighlightDecorationId=void 0}provide(n,e,t){const i=new A;n.canAcceptInBackground=!!this.options?.canAcceptInBackground,n.matchOnLabel=n.matchOnDescription=n.matchOnDetail=n.sortByLabel=!1;const s=i.add(new Je);return s.value=this.doProvide(n,e,t),i.add(this.onDidActiveTextEditorControlChange(()=>{s.value=void 0,s.value=this.doProvide(n,e)})),i}doProvide(n,e,t){const i=new A,s=this.activeTextEditorControl;if(s&&this.canProvideWithTextEditor(s)){const o={editor:s},r=tw(s);if(r){let a=s.saveViewState()??void 0;i.add(r.onDidChangeCursorPosition(()=>{a=s.saveViewState()??void 0})),o.restoreViewState=()=>{a&&s===this.activeTextEditorControl&&s.restoreViewState(a)},i.add(bw(e.onCancellationRequested)(()=>o.restoreViewState?.()))}i.add(ke(()=>this.clearDecorations(s))),i.add(this.provideWithTextEditor(o,n,e,t))}else i.add(this.provideWithoutTextEditor(n,e));return i}canProvideWithTextEditor(n){return!0}gotoLocation({editor:n},e){n.setSelection(e.range,"code.jump"),n.revealRangeInCenter(e.range,0),e.preserveFocus||n.focus();const t=this.getModel(n);if(t){const i=t.getLineContent(e.range.startLineNumber);vs(m(1381,"Line {0}, column {1}: {2}",e.range.startLineNumber,e.range.startColumn,i))}}getModel(n){return Pw(n)?n.getModel()?.modified:n.getModel()}addDecorations(n,e){n.changeDecorations(t=>{const i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:e,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:e,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:it(FS),position:nn.Full}}}],[o,r]=t.deltaDecorations(i,s);this.rangeHighlightDecorationId={rangeHighlightId:o,overviewRulerDecorationId:r}})}clearDecorations(n){const e=this.rangeHighlightDecorationId;e&&(n.changeDecorations(t=>{t.deltaDecorations([e.overviewRulerDecorationId,e.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}},U2=class Bd extends uD{static{this.GO_TO_LINE_PREFIX=":"}static{this.GO_TO_OFFSET_PREFIX="::"}static{this.ZERO_BASED_OFFSET_STORAGE_KEY="gotoLine.useZeroBasedOffset"}constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(Bd.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(e){this.storageService.store(Bd.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,O.None}provideWithTextEditor(e,t,i){const s=e.editor,o=new A;t.ariaLabel=m(1383,"Go to line. Type a line number, optionally followed by colon and column number."),o.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:pe.asClassName(V.indexZero),tooltip:m(1384,"Toggle Zero-Based Offset"),location:_E.Input,toggle:{checked:this.useZeroBasedOffset}},a=()=>{const d=t.value.trim().substring(Bd.GO_TO_LINE_PREFIX.length),{inOffsetMode:c,lineNumber:h,column:u,label:g}=this.parsePosition(s,d);if(t.buttons=c?[r]:[],t.items=[{lineNumber:h,column:u,label:g,ariaLabel:h?m(1385,"Go to line {0}, column {1}. Press Enter to navigate.",h,u||1):g}],!h){this.clearDecorations(s);return}const p=this.toRange(h,u);s.revealRangeInCenter(p,0),this.addDecorations(s,p)};o.add(t.onDidTriggerButton(d=>{d===r&&(this.useZeroBasedOffset=d.toggle?.checked??!this.useZeroBasedOffset,a())})),a(),o.add(t.onDidChangeValue(()=>a()));const l=tw(s);return l&&l.getOptions().get(76).renderType===2&&(l.updateOptions({lineNumbers:"on"}),o.add(ke(()=>l.updateOptions({lineNumbers:"relative"})))),o}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 s=parseInt(t.substring(1),10);const o=i.getValueLength();if(isNaN(s))return{inOffsetMode:!0,label:this.useZeroBasedOffset?m(1387,"Type a character position to go to (from 0 to {0}).",o-1):m(1388,"Type a character position to go to (from 1 to {0}).",o)};{const r=s<0;this.useZeroBasedOffset||(s-=Math.sign(s)),r&&(s+=o);const a=i.getPositionAt(s),l=hd.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 s=t.split(/,|:|#/),o=i.getLineCount();let r=parseInt(s[0]?.trim(),10);if(s.length<1||isNaN(r))return{label:m(1390,"Type a line number to go to (from 1 to {0}).",o)};r=r>=0?r:o+1+r,r=Math.min(Math.max(1,r),o);const a=i.getOptions().tabSize,l=i.getLineContent(r),d=hd.visibleColumnFromColumn(l,i.getLineMaxColumn(r),a)+1;let c=parseInt(s[1]?.trim(),10);if(s.length<2||isNaN(c))return{lineNumber:r,column:1,label:s.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=hd.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)}}}},z2=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},KC=function(n,e){return function(t,i){e(t,i,n)}},Is=class extends U2{constructor(e,t){super(),this.editorService=e,this.storageService=t,this.onDidActiveTextEditorControlChange=qe.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Is=z2([KC(0,$e),KC(1,Ti)],Is);var gD=class pD extends M{static{this.ID="editor.action.gotoLine"}constructor(){super({id:pD.ID,label:Gc.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:S.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(Di).quickAccess.show(Is.GO_TO_LINE_PREFIX)}};k(gD);ln.as(wr.Quickaccess).registerQuickAccessProvider({ctor:Is,prefix:Is.GO_TO_LINE_PREFIX,helpEntries:[{description:Gc.gotoLineActionLabel,commandId:gD.ID}]});var fD=class mD extends M{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:mD.ID,label:Gc.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(e){e.get(Di).quickAccess.show(Is.GO_TO_OFFSET_PREFIX)}};k(fD);ln.as(wr.Quickaccess).registerQuickAccessProvider({ctor:Is,prefix:Is.GO_TO_OFFSET_PREFIX,helpEntries:[{description:Gc.gotoOffsetActionLabel,commandId:fD.ID}]});var _D=[void 0,[]];function Pu(n,e,t=0,i=0){const s=e;return s.values&&s.values.length>1?j2(n,s.values,t,i):vD(n,e,t,i)}function j2(n,e,t,i){let s=0;const o=[];for(const r of e){const[a,l]=vD(n,r,t,i);if(typeof a!="number")return _D;s+=a,o.push(...l)}return[s,q2(o)]}function vD(n,e,t,i){const s=PS(e.normalized,e.normalizedLowercase,t,n,n.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return s?[s[0],nh(s)]:_D}function q2(n){const e=n.sort((s,o)=>s.start-o.start),t=[];let i;for(const s of e)!i||!$2(i,s)?(i=s,t.push(s)):(i.start=Math.min(i.start,s.start),i.end=Math.max(i.end,s.end));return t}function $2(n,e){return!(n.end<e.start||e.end<n.start)}function GC(n){return n.startsWith('"')&&n.endsWith('"')}var bD=" ";function Xf(n){typeof n!="string"&&(n="");const e=n.toLowerCase(),{pathNormalized:t,normalized:i,normalizedLowercase:s}=ZC(n),o=t.indexOf($u)>=0,r=GC(n);let a;const l=n.split(bD);if(l.length>1)for(const d of l){const c=GC(d),{pathNormalized:h,normalized:u,normalizedLowercase:g}=ZC(d);u&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:h,normalized:u,normalizedLowercase:g,expectContiguousMatch:c}))}return{original:n,originalLowercase:e,pathNormalized:t,normalized:i,normalizedLowercase:s,values:a,containsPathSeparator:o,expectContiguousMatch:r}}function ZC(n){let e;vm?e=n.replace(/\//g,$u):e=n.replace(/\\/g,$u);const t=e.replace(/[\*\u2026\s"]/g,"").replace(/(?<=.)#$/,"");return{pathNormalized:e,normalized:t,normalizedLowercase:t.toLowerCase()}}function XC(n){return Array.isArray(n)?Xf(n.map(e=>e.original).join(bD)):Xf(n.original)}var K2=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},YC=function(n,e){return function(t,i){e(t,i,n)}},Ud,eo=class extends uD{static{Ud=this}static{this.PREFIX="@"}static{this.SCOPE_PREFIX=":"}static{this.PREFIX_BY_CATEGORY=`${this.PREFIX}${this.SCOPE_PREFIX}`}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.")),O.None}provideWithTextEditor(e,t,i,s){const o=e.editor,r=this.getModel(o);return r?this._languageFeaturesService.documentSymbolProvider.has(r)?this.doProvideWithEditorSymbols(e,r,t,i,s):this.doProvideWithoutEditorSymbols(e,r,t,i):O.None}doProvideWithoutEditorSymbols(e,t,i,s){const o=new A;return this.provideLabelPick(i,m(1395,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(t,o)||s.isCancellationRequested||o.add(this.doProvideWithEditorSymbols(e,t,i,s)))(),o}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 im,s=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(s.dispose(),i.complete(!0))}));return t.add(ke(()=>i.complete(!1))),i.p}doProvideWithEditorSymbols(e,t,i,s,o){const r=e.editor,a=new A;a.add(i.onDidAccept(h=>{const[u]=i.selectedItems;if(u&&u.range){if(i.keyMods.shift&&u.attach){u.attach(i.keyMods,h);return}this.gotoLocation(e,{range:u.range.selection,keyMods:i.keyMods,preserveFocus:h.inBackground}),o?.handleAccept?.(u,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,s),d=a.add(new Je),c=async h=>{d?.value?.cancel(),i.busy=!1,d.value=new st,i.busy=!0;try{const u=Xf(i.value.substr(Ud.PREFIX.length).trim()),g=await this.doGetSymbolPicks(l,u,void 0,d.value.token,t);if(s.isCancellationRequested)return;if(g.length>0){if(i.items=g,h&&u.original.length===0){const p=p0(g,f=>!!(f.type!=="separator"&&f.range&&y.containsPosition(f.range.decoration,h)));p&&(i.activeItems=[p])}}else u.original.length>0?this.provideLabelPick(i,m(1396,"No matching editor symbols")):this.provideLabelPick(i,m(1397,"No editor symbols"))}finally{s.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,s,o){const r=await e;if(s.isCancellationRequested)return[];const a=t.original.indexOf(Ud.SCOPE_PREFIX)===0,l=a?1:0;let d,c;t.values&&t.values.length>1?(d=XC(t.values[0]),c=XC(t.values.slice(1))):d=t;let h;const u=this.options?.openSideBySideDirection?.();u&&(h=[{iconClass:u==="right"?pe.asClassName(V.splitHorizontal):pe.asClassName(V.splitVertical),tooltip:u==="right"?m(1398,"Open to the Side"):m(1399,"Open to the Bottom")}]);const g=[];for(let _=0;_<r.length;_++){const v=r[_],C=vT(v.name),x=`$(${gw.toIcon(v.kind).id}) ${C}`,I=x.length-C.length;let b=v.containerName;i?.extraContainerLabel&&(b?b=`${i.extraContainerLabel} • ${b}`:b=i.extraContainerLabel);let w,E,P,R;if(t.original.length>l){let F=!1;if(d!==t&&([w,E]=Pu(x,{...t,values:void 0},l,I),typeof w=="number"&&(F=!0)),typeof w!="number"&&([w,E]=Pu(x,d,l,I),typeof w!="number"))continue;if(!F&&c){if(b&&c.original.length>0&&([P,R]=Pu(b,c)),typeof P!="number")continue;typeof w=="number"&&(w+=P)}}const D=v.tags&&v.tags.indexOf(1)>=0;g.push({index:_,kind:v.kind,score:w,label:x,ariaLabel:kR(v.name,v.kind),description:b,highlights:D?void 0:{label:E,description:R},range:{selection:y.collapseToStart(v.selectionRange),decoration:v.range},uri:o.uri,symbolName:C,strikethrough:D,buttons:h})}const p=g.sort((_,v)=>a?this.compareByKindAndScore(_,v):this.compareByScore(_,v));let f=[];if(a){let x=function(){v&&typeof _=="number"&&C>0&&(v.label=Tm(Mu[_]||Ou,C))},_,v,C=0;for(const I of p)_!==I.kind?(x(),_=I.kind,C=1,v={type:"separator"},f.push(v)):C++,f.push(I);x()}else p.length>0&&(f=[{label:m(1400,"symbols ({0})",g.length),type:"separator"},...p]);return f}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=Mu[e.kind]||Ou,s=Mu[t.kind]||Ou,o=i.localeCompare(s);return o===0?this.compareByScore(e,t):o}async getDocumentSymbols(e,t){const i=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}};eo=Ud=K2([YC(0,Z),YC(1,El)],eo);var Ou=m(1401,"properties ({0})"),Mu={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})")},G2=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Au=function(n,e){return function(t,i){e(t,i,n)}},Yf=class extends eo{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=qe.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Yf=G2([Au(0,$e),Au(1,Z),Au(2,El)],Yf);var CD=class SD extends M{static{this.ID="editor.action.quickOutline"}constructor(){super({id:SD.ID,label:ig.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:S.hasDocumentSymbolProvider,kbOpts:{kbExpr:S.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(Di).quickAccess.show(eo.PREFIX,{itemActivation:ET.NONE})}};k(CD);ln.as(wr.Quickaccess).registerQuickAccessProvider({ctor:Yf,prefix:eo.PREFIX,helpEntries:[{description:ig.quickOutlineActionLabel,prefix:eo.PREFIX,commandId:CD.ID},{description:ig.quickOutlineByCategoryActionLabel,prefix:eo.PREFIX_BY_CATEGORY}]});function Z2(n){const e=new Map;for(const t of n)e.set(t,(e.get(t)??0)+1);return e}var X2=class zd{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),s=new Map,o=[];for(const[r,a]of this.documents){if(t.isCancellationRequested)return[];for(const l of a.chunks){const d=this.computeSimilarityScore(l,i,s);d>0&&o.push({key:r,score:d})}}return o}static termFrequencies(e){return Z2(zd.splitTerms(e))}static*splitTerms(e){const t=i=>i.toLowerCase();for(const[i]of e.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield t(i);const s=i.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(s.length>1)for(const o of s)o.length>2&&/\p{Letter}{3,}/gu.test(o)&&(yield t(o))}}updateDocuments(e){for(const{key:t}of e)this.deleteDocument(t);for(const t of e){const i=[];for(const s of t.textChunks){const o=zd.termFrequencies(s);for(const r of o.keys())this.chunkOccurrences.set(r,(this.chunkOccurrences.get(r)??0)+1);i.push({text:s,tf:o})}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 s of i.tf.keys()){const o=this.chunkOccurrences.get(s);if(typeof o=="number"){const r=o-1;r<=0?this.chunkOccurrences.delete(s):this.chunkOccurrences.set(s,r)}}}}computeSimilarityScore(e,t,i){let s=0;for(const[o,r]of Object.entries(t)){const a=e.tf.get(o);if(!a)continue;let l=i.get(o);typeof l!="number"&&(l=this.computeIdf(o),i.set(o,l));const d=a*l;s+=d*r}return s}computeEmbedding(e){const t=zd.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,s]of e){const o=this.computeIdf(i);o>0&&(t[i]=s*o)}return t}};function Y2(n){const e=n.slice(0);e.sort((i,s)=>s.score-i.score);const t=e[0]?.score??0;if(t>0)for(const i of e)i.score/=t;return e}var rs;(function(n){n[n.NO_ACTION=0]="NO_ACTION",n[n.CLOSE_PICKER=1]="CLOSE_PICKER",n[n.REFRESH_PICKER=2]="REFRESH_PICKER",n[n.REMOVE_ITEM=3]="REMOVE_ITEM"})(rs||(rs={}));function Fu(n){return Array.isArray(n.items)}function JC(n){const e=n;return!!e.picks&&e.additionalPicks instanceof Promise}var J2=class extends O{constructor(n,e){super(),this.prefix=n,this.options=e}provide(n,e,t){const i=new A;n.canAcceptInBackground=!!this.options?.canAcceptInBackground,n.matchOnLabel=n.matchOnDescription=n.matchOnDetail=n.sortByLabel=!1;let s;const o=i.add(new Je),r=async()=>{s?.dispose(!0),n.busy=!1;const l=o.value=new A;s=l.add(new st(e));const d=s.token;let c=n.value.substring(this.prefix.length);this.options?.shouldSkipTrimPickFilter||(c=c.trim());const h=this._getPicks(c,l,d,t),u=(p,f)=>{let _,v;if(Fu(p)?(_=p.items,v=p.active):_=p,_.length===0){if(f)return!1;(c.length>0||n.hideInput)&&this.options?.noResultsPick&&(tE(this.options.noResultsPick)?_=[this.options.noResultsPick(c)]:_=[this.options.noResultsPick])}return n.items=_,v&&(n.activeItems=[v]),!0},g=async p=>{let f=!1,_=!1;await Promise.all([(async()=>{typeof p.mergeDelay=="number"&&(await Xc(p.mergeDelay),d.isCancellationRequested)||_||(f=u(p.picks,!0))})(),(async()=>{n.busy=!0;try{const v=await p.additionalPicks;if(d.isCancellationRequested)return;let C,x;Fu(p.picks)?(C=p.picks.items,x=p.picks.active):C=p.picks;let I,b;if(Fu(v)?(I=v.items,b=v.active):I=v,I.length>0||!f){let w;if(!x&&!b){const E=n.activeItems[0];E&&C.indexOf(E)!==-1&&(w=E)}u({items:[...C,...I],active:x||b||w})}}finally{d.isCancellationRequested||(n.busy=!1),_=!0}})()])};if(h!==null)if(JC(h))await g(h);else if(!(h instanceof Promise))u(h);else{n.busy=!0;try{const p=await h;if(d.isCancellationRequested)return;JC(p)?await g(p):u(p)}finally{d.isCancellationRequested||(n.busy=!1)}}};i.add(n.onDidChangeValue(()=>r())),r(),i.add(n.onDidAccept(l=>{if(t?.handleAccept){l.inBackground||n.hide(),t.handleAccept?.(n.activeItems[0],l.inBackground);return}const[d]=n.selectedItems;if(typeof d?.accept=="function"){if(u0(n.keyMods)&&d.attach){d.attach(n.keyMods,l);return}l.inBackground||n.hide(),d.accept(n.keyMods,l)}}));const a=async(l,d)=>{if(typeof d.trigger!="function")return;const c=d.buttons?.indexOf(l)??-1;if(c>=0){const h=d.trigger(c,n.keyMods),u=typeof h=="number"?h:await h;if(e.isCancellationRequested)return;switch(u){case rs.NO_ACTION:break;case rs.CLOSE_PICKER:n.hide();break;case rs.REFRESH_PICKER:r();break;case rs.REMOVE_ITEM:{const g=n.items.indexOf(d);if(g!==-1){const p=n.items.slice(),f=p.splice(g,1),_=n.activeItems.filter(C=>C!==f[0]),v=n.keepScrollPosition;n.keepScrollPosition=!0,n.items=p,_&&(n.activeItems=_),n.keepScrollPosition=v}break}}}};return i.add(n.onDidTriggerItemButton(({button:l,item:d})=>a(l,d))),i.add(n.onDidTriggerSeparatorButton(({button:l,separator:d})=>a(l,d))),i}},wD=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Qn=function(n,e){return function(t,i){e(t,i,n)}},Gs,ze,Jf=class extends J2{static{Gs=this}static{this.PREFIX=">"}static{this.TFIDF_THRESHOLD=.5}static{this.TFIDF_MAX_RESULTS=5}static{this.WORD_FILTER=zD(RE,rE)}constructor(e,t,i,s,o,r){super(Gs.PREFIX,e),this.keybindingService=i,this.commandService=s,this.telemetryService=o,this.dialogService=r,this.commandsHistory=this._register(t.createInstance(Qf)),this.options=e}async _getPicks(e,t,i,s){const o=await this.getCommandPicks(i);if(i.isCancellationRequested)return[];const r=bw(()=>{const g=new X2;g.updateDocuments(o.map(f=>({key:f.commandId,textChunks:[this.getTfIdfChunk(f)]})));const p=g.calculateScores(e,i);return Y2(p).filter(f=>f.score>Gs.TFIDF_THRESHOLD).slice(0,Gs.TFIDF_MAX_RESULTS)}),a=[];for(const g of o){const p=Gs.WORD_FILTER(e,g.label)??void 0;let f;if(g.commandAlias&&(f=Gs.WORD_FILTER(e,g.commandAlias)??void 0),p||f)g.highlights={label:p,detail:this.options.showAlias?f:void 0},a.push(g);else if(e===g.commandId)a.push(g);else if(e.length>=3){const _=r();if(i.isCancellationRequested)return[];const v=_.find(C=>C.key===g.commandId);v&&(g.tfIdfScore=v.score,a.push(g))}}const l=new Map;for(const g of a){const p=l.get(g.label);p?(g.description=g.commandId,p.description=p.commandId):l.set(g.label,g)}a.sort((g,p)=>{if(g.tfIdfScore&&p.tfIdfScore)return g.tfIdfScore===p.tfIdfScore?g.label.localeCompare(p.label):p.tfIdfScore-g.tfIdfScore;if(g.tfIdfScore)return 1;if(p.tfIdfScore)return-1;const f=this.commandsHistory.peek(g.commandId),_=this.commandsHistory.peek(p.commandId);if(f&&_)return f>_?-1:1;if(f)return-1;if(_)return 1;if(this.options.suggestedCommandIds){const x=this.options.suggestedCommandIds.has(g.commandId),I=this.options.suggestedCommandIds.has(p.commandId);if(x&&I)return 0;if(x)return-1;if(I)return 1}const v=g.commandCategory===Pf.Developer.value,C=p.commandCategory===Pf.Developer.value;return v&&!C?1:!v&&C?-1:g.label.localeCompare(p.label)});const d=[];let c=!1,h=!0,u=!!this.options.suggestedCommandIds;for(let g=0;g<a.length;g++){const p=a[g],f=!!this.commandsHistory.peek(p.commandId);g===0&&f&&(d.push({type:"separator",label:m(1803,"recently used")}),c=!0),h&&p.tfIdfScore!==void 0&&(d.push({type:"separator",label:m(1804,"similar commands")}),h=!1),u&&p.tfIdfScore===void 0&&!f&&this.options.suggestedCommandIds?.has(p.commandId)&&(d.push({type:"separator",label:m(1805,"commonly used")}),c=!0,u=!1),c&&p.tfIdfScore===void 0&&!f&&!this.options.suggestedCommandIds?.has(p.commandId)&&(d.push({type:"separator",label:m(1806,"other commands")}),c=!1),d.push(this.toCommandPick(p,s,f))}return this.hasAdditionalCommandPicks(e,i)?{picks:d,additionalPicks:(async()=>{const g=await this.getAdditionalCommandPicks(o,a,e,i);if(i.isCancellationRequested)return[];const p=g.map(f=>this.toCommandPick(f,s));return h&&p[0]?.type!=="separator"&&p.unshift({type:"separator",label:m(1807,"similar commands")}),p})()}:d}toCommandPick(e,t,i=!1){if(e.type==="separator")return e;const s=e.tooltip??e.commandDescription?.value,o=this.keybindingService.lookupKeybinding(e.commandId),r=o?m(1808,"{0}, {1}",e.label,o.getAriaLabel()):e.label,a=e.buttons||[],l=i?[...a,{iconClass:pe.asClassName(V.close),tooltip:m(1809,"Remove from Recently Used")}]:e.buttons;return{...e,tooltip:s,ariaLabel:r,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:o,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){Hn(d)||this.dialogService.error(m(1810,"Command '{0}' resulted in an error",e.label),sc(d))}},trigger:i?(d,c)=>d===a.length?(this.commandsHistory.remove(e.commandId),rs.REMOVE_ITEM):e.trigger?e.trigger(d,c):rs.NO_ACTION:e.trigger}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:i}){let s=e;return t&&t!==e&&(s+=` - ${t}`),i&&i.value!==e&&(s+=` - ${i.value===i.original?i.value:`${i.value} (${i.original})`}`),s}};Jf=Gs=wD([Qn(1,ie),Qn(2,Oe),Qn(3,ht),Qn(4,Ds),Qn(5,om)],Jf);var Qf=class extends O{static{ze=this}static{this.DEFAULT_COMMANDS_HISTORY_LENGTH=50}static{this.PREF_KEY_CACHE="commandPalette.mru.cache"}static{this.PREF_KEY_COUNTER="commandPalette.mru.counter"}static{this.counter=1}static{this.hasChanges=!1}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===bm.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=ze.getConfiguredCommandHistoryLength(this.configurationService),ze.cache&&ze.cache.limit!==this.configuredCommandsHistoryLength&&(ze.cache.limit=this.configuredCommandsHistoryLength,ze.hasChanges=!0))}load(){const e=this.storageService.get(ze.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(s){this.logService.error(`[CommandsHistory] invalid data: ${s}`)}const i=ze.cache=new dl(this.configuredCommandsHistoryLength,1);if(t){let s;t.usesLRU?s=t.entries:s=t.entries.sort((o,r)=>o.value-r.value),s.forEach(o=>i.set(o.key,o.value))}ze.counter=this.storageService.getNumber(ze.PREF_KEY_COUNTER,0,ze.counter)}push(e){ze.cache&&(ze.cache.set(e,ze.counter++),ze.hasChanges=!0)}peek(e){return ze.cache?.peek(e)}remove(e){ze.cache&&(ze.cache.delete(e),ze.hasChanges=!0)}saveState(){if(!ze.cache||!ze.hasChanges)return;const e={usesLRU:!0,entries:[]};ze.cache.forEach((t,i)=>e.entries.push({key:i,value:t})),this.storageService.store(ze.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(ze.PREF_KEY_COUNTER,ze.counter,0,0),ze.hasChanges=!1}static getConfiguredCommandHistoryLength(e){const t=e.getValue().workbench?.commandPalette?.history;return typeof t=="number"?t:ze.DEFAULT_COMMANDS_HISTORY_LENGTH}};Qf=ze=wD([Qn(0,Ti),Qn(1,xe),Qn(2,Pt)],Qf);var Q2=class extends Jf{constructor(n,e,t,i,s,o){super(n,e,t,i,s,o)}getCodeEditorCommandPicks(){const n=this.activeTextEditorControl;if(!n)return[];const e=[];for(const t of n.getSupportedActions()){let i;t.metadata?.description&&(qD(t.metadata.description)?i=t.metadata.description:i={original:t.metadata.description,value:t.metadata.description}),e.push({commandId:t.id,commandAlias:t.alias,commandDescription:i,label:bE(t.label)||t.id})}return e}},e5=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Mo=function(n,e){return function(t,i){e(t,i,n)}},rl=class extends Q2{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(e,t,i,s,o,r){super({showAlias:!1},e,i,s,o,r),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};rl=e5([Mo(0,ie),Mo(1,$e),Mo(2,Oe),Mo(3,ht),Mo(4,Ds),Mo(5,om)],rl);var yD=class xD extends M{static{this.ID="editor.action.quickCommand"}constructor(){super({id:xD.ID,label:ow.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:S.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(Di).quickAccess.show(rl.PREFIX)}};k(yD);ln.as(wr.Quickaccess).registerQuickAccessProvider({ctor:rl,prefix:rl.PREFIX,helpEntries:[{description:ow.quickCommandHelp,commandId:yD.ID}]});var t5=function(n,e,t,i){var s=arguments.length,o=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(s<3?r(o):s>3?r(e,t,o):r(e,t))||o);return s>3&&o&&Object.defineProperty(e,t,o),o},Ao=function(n,e){return function(t,i){e(t,i,n)}},em=class extends uo{constructor(e,t,i,s,o,r,a){super(!0,e,t,i,s,o,r,a)}};em=t5([Ao(1,ve),Ao(2,$e),Ao(3,Et),Ao(4,ie),Ao(5,Ti),Ao(6,xe)],em);ce(uo.ID,em,4);var i5=class extends M{constructor(){super({id:"editor.action.toggleHighContrast",label:rT.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(n,e){const t=n.get(JS),i=t.getColorTheme();Ta(i.type)?(t.setTheme(this._originalThemeName||(ov(i.type)?"vs-dark":"vs")),this._originalThemeName=null):(t.setTheme(ov(i.type)?qT:ZD),this._originalThemeName=i.themeName)}};k(i5);var ID=class{constructor(n,e,t,i,s){this._onDidChange=new Aa,this._onDidExtraLibsChange=new Aa,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(n),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(s),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(n,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===n)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:n,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let s=this._extraLibs[t];s&&s.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(n){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),n&&n.length>0)for(const e of n){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let s=1;this._removedExtraLibs[t]&&(s=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:s}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(n){this._compilerOptions=n||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(n){this._workerOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(n){this._inlayHintsOptions=n||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(n){}setEagerModelSync(n){this._eagerModelSync=n}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(void 0)}},LD={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},n5=new ID({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},LD),s5=new ID({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},LD);function DD(){return U(()=>import("./tsMode-BgtcNcpl.js"),__vite__mapDeps([0,1,2,3,4]))}K.onLanguage("typescript",()=>DD().then(n=>n.setupTypeScript(n5)));K.onLanguage("javascript",()=>DD().then(n=>n.setupJavaScript(s5)));var o5=Object.defineProperty,r5=(n,e,t)=>e in n?o5(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ne=(n,e,t)=>r5(n,typeof e!="symbol"?e+"":e,t),ld,QC,dd,Hu,cd;function a5(n){return n.method!==void 0}var eS;(function(n){function e(t){return t}n.create=e})(eS||(eS={}));var Si;(function(n){n.parseError=-32700,n.invalidRequest=-32600,n.methodNotFound=-32601,n.invalidParams=-32602,n.internalError=-32603;function e(o){return-32099<=o&&o<=-32e3}n.isServerError=e;function t(o){if(!e(o))throw new Error("Invalid range for a server error.");return o}n.serverError=t,n.unexpectedServerError=-32e3;function i(o){return!0}n.isApplicationError=i;function s(o){return o}n.applicationError=s,n.genericApplicationError=-320100})(Si||(Si={}));var ED=class{constructor(){ne(this,"listeners",new Set),ne(this,"event",n=>(this.listeners.add(n),{dispose:()=>{this.listeners.delete(n)}}))}fire(n){this.listeners.forEach(e=>e(n))}},l5=class{constructor(n){ne(this,"_value"),ne(this,"eventEmitter"),this._value=n,this.eventEmitter=new ED}get value(){return this._value}set value(n){this._value!==n&&(this._value=n,this.eventEmitter.fire(n))}get onChange(){return this.eventEmitter.event}};function d5(n,e){const t=setTimeout(e,n);return{dispose:()=>clearTimeout(t)}}function Wu(n,e,t){return n instanceof Set?(n.add(e),{dispose:()=>n.delete(e)}):(n.set(e,t),{dispose:()=>n.delete(e)})}var c5=class{constructor(){ne(this,"_state","none"),ne(this,"promise"),ne(this,"resolve",()=>{}),ne(this,"reject",()=>{}),this.promise=new Promise((n,e)=>{this.resolve=n,this.reject=e})}get state(){return this._state}},$j=(ld=class{constructor(){ne(this,"_unprocessedMessages",[]),ne(this,"_messageListener"),ne(this,"id",ld.id++),ne(this,"_state",new l5({state:"open"})),ne(this,"state",this._state)}setListener(n){if(this._messageListener=n,!!n)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(n){return this._sendImpl(n)}_dispatchReceivedMessage(n){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(n):this._unprocessedMessages.push(n)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(n){return new h5(this,n??new u5)}},ne(ld,"id",0),ld),h5=class{constructor(n,e){ne(this,"baseStream"),ne(this,"logger"),this.baseStream=n,this.logger=e}get state(){return this.baseStream.state}setListener(n){if(n===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),n(e)})}send(n){return this.logger.log(this.baseStream,"outgoing",n),this.baseStream.send(n)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},u5=class{log(n,e,t){console.log(`${e==="incoming"?"<-":"->"} [${n.toString()}] ${JSON.stringify(t)}`)}},g5=class RD{constructor(e){ne(this,"connect"),this.connect=e}mapContext(e){return new RD(t=>this.connect(t?p5(t,e):void 0))}};function p5(n,e){return{handleNotification:(t,i)=>n.handleNotification(t,e(i)),handleRequest:(t,i,s)=>n.handleRequest(t,i,e(s))}}var f5=class TD{constructor(e,t,i){ne(this,"_stream"),ne(this,"_listener"),ne(this,"_logger"),ne(this,"_unprocessedResponses",new Map),ne(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(s=>{a5(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let i=!1;return new g5(s=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new TD(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:Si.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:Si.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(s.id),new Promise((o,r)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?o({result:l.result}):(l.error||r(new Error("Response had neither 'result' nor 'error' field set.")),o({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),r(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},nr;(function(n){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}n.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}n.sEmptyObject=t;function i(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}n.sVoidFromNull=i})(nr||(nr={}));var ND=Symbol("OptionalMethodNotFound"),kD=class{contextualize(n){return new m5(this,n)}},m5=class extends kD{constructor(n,e){super(),ne(this,"underylingTypedChannel"),ne(this,"converters"),this.underylingTypedChannel=n,this.converters=e}async request(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(n,e,i)}async notify(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(n,e,i)}registerNotificationHandler(n,e){return this.underylingTypedChannel.registerNotificationHandler(n,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(n,e){return this.underylingTypedChannel.registerRequestHandler(n,async(t,i,s)=>await e(t,i,await this.converters.getNewContext(s)))}},tS=class PD extends kD{constructor(e,t={}){super(),ne(this,"channelCtor"),ne(this,"_requestSender"),ne(this,"_handler",new Map),ne(this,"_unknownNotificationHandler",new Set),ne(this,"_timeout"),ne(this,"sendExceptionDetails",!1),ne(this,"_logger"),ne(this,"listeningDeferred",new c5),ne(this,"onListening",this.listeningDeferred.promise),ne(this,"_requestDidErrorEventEmitter",new ED),ne(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=d5(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new PD(f5.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:Si.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const r=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e}}),{error:{code:Si.invalidRequest,message:r,data:{method:e.method}}}}const o=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(o.hasErrors){const r=`Got invalid params: ${o.errorMessage}`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e,errorMessage:o.errorMessage}}),{error:{code:Si.invalidParams,message:r,data:{errors:o.errorMessage}}}}else{const r=o.value;let a;try{const l=await s.handler(r,t,i);if("error"in l||"errorMessage"in l){const d=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||Si.genericApplicationError,message:l.errorMessage||"An error was returned",data:d}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof nS?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:Si.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const r of this._unknownNotificationHandler)r(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const o=s.value;for(const r of i.handlers)try{r(o,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return Wu(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return Wu(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return Wu(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);iS(s);const o=await this._requestSender.sendRequest({method:e.method,params:s},i);if("error"in o){if(e.isOptional&&o.error.code===Si.methodNotFound)return ND;let r;if(o.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(o.error.data);if(l.hasErrors)throw new Error(l.errorMessage);r=l.value}else r=void 0;const a=new nS(o.error.message,r,o.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const r=e.resultSerializer.deserializeFromJson(o.result);if(r.hasErrors)throw new Error("Could not deserialize response: "+r.errorMessage+`
63
-
64
- ${JSON.stringify(o,null,2)}`);return r.value}}async notify(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error;const s=e.paramsSerializer.serializeToJson(t);iS(s),this._requestSender.sendNotification({method:e.method,params:s},i)}};function iS(n){if(n!==null&&Array.isArray(n)&&typeof n!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var nS=class OD extends Error{constructor(e,t,i=Si.genericApplicationError){super(e),ne(this,"data"),ne(this,"code"),this.data=t,this.code=i,Object.setPrototypeOf(this,OD.prototype)}},_5=class tm{constructor(e,t,i,s,o=!1){ne(this,"method"),ne(this,"paramsSerializer"),ne(this,"resultSerializer"),ne(this,"errorSerializer"),ne(this,"isOptional"),ne(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=i,this.errorSerializer=s,this.isOptional=o}withMethod(e){return new tm(e,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new tm(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},v5=class MD{constructor(e,t){ne(this,"method"),ne(this,"paramsSerializer"),ne(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(e){return new MD(e,this.paramsSerializer)}};function ee(n){return new _5((n||{}).method,nr.sAny(),nr.sAny(),nr.sAny())}function Ue(n){return new v5((n||{}).method,nr.sAny())}var sS=(QC=Symbol(),dd=class{constructor(n){ne(this,"error"),ne(this,QC),this.error=n}},ne(dd,"factory",n=>new dd(n)),dd);function b5(n){const e=oS(n.server),t=oS(n.client);return new C5(n.tags||[],e,t)}function oS(n){const e={};for(const[t,i]of Object.entries(n)){const s=i.method?i.method:t;e[t]=i.withMethod(s)}return e}var C5=class AD{constructor(e=[],t,i){ne(this,"tags"),ne(this,"server"),ne(this,"client"),this.tags=e,this.server=t,this.client=i}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,i,s){const o=this.buildCounterpart(e,i),r=this.registerHandlers(e,t,s,o);return{counterpart:o,dispose:()=>r.dispose()}}buildCounterpart(e,t){const i={};for(const[s,o]of Object.entries(t)){let r;o.kind==="request"?o.isOptional?r=async(a,l)=>{a===void 0&&(a={});try{return await e.request(o,a,l)}catch(d){if(d&&d.code===Si.methodNotFound)return ND;throw d}}:r=(a,l)=>(a===void 0&&(a={}),e.request(o,a,l)):r=(a,l)=>(a===void 0&&(a={}),e.notify(o,a,l)),i[s]=r}return i}registerHandlers(e,t,i,s){const o=[];for(const[r,a]of Object.entries(t))if(a.kind==="request"){let l=i[r];if(!l)continue;const d=this.createRequestHandler(s,l);o.push(e.registerRequestHandler(a,d))}else{const l=i[r];l&&o.push(e.registerNotificationHandler(a,(d,c)=>{l(d,{context:c,counterpart:s})}))}return{dispose:()=>o.forEach(r=>r.dispose())}}createRequestHandler(e,t){return async(i,s,o)=>{const r=await t(i,{context:o,counterpart:e,newErr:sS.factory,requestId:s});return r instanceof sS?r.error:{ok:r}}}static getServerFromStream(e,t,i,s){const o=tS.fromTransport(t,i),{server:r}=e.getServer(o,s);return o.startListen(),{channel:o,server:r}}static registerServerToStream(e,t,i,s){const o=tS.fromTransport(t,i),{client:r}=e.registerServer(o,s);return o.startListen(),{channel:o,client:r}}getServer(e,t){const{counterpart:i,dispose:s}=this.getInterface(e,this.client,this.server,t);return{server:i,dispose:s}}registerServer(e,t){const{counterpart:i,dispose:s}=this.getInterface(e,this.server,this.client,t);return{client:i,dispose:s}}withContext(){return new AD(this.tags,this.server,this.client)}},Vu=(function(n){return n.Comment="comment",n.Imports="imports",n.Region="region",n})({}),Xe=(function(n){return n[n.File=1]="File",n[n.Module=2]="Module",n[n.Namespace=3]="Namespace",n[n.Package=4]="Package",n[n.Class=5]="Class",n[n.Method=6]="Method",n[n.Property=7]="Property",n[n.Field=8]="Field",n[n.Constructor=9]="Constructor",n[n.Enum=10]="Enum",n[n.Interface=11]="Interface",n[n.Function=12]="Function",n[n.Variable=13]="Variable",n[n.Constant=14]="Constant",n[n.String=15]="String",n[n.Number=16]="Number",n[n.Boolean=17]="Boolean",n[n.Array=18]="Array",n[n.Object=19]="Object",n[n.Key=20]="Key",n[n.Null=21]="Null",n[n.EnumMember=22]="EnumMember",n[n.Struct=23]="Struct",n[n.Event=24]="Event",n[n.Operator=25]="Operator",n[n.TypeParameter=26]="TypeParameter",n})({}),S5=(function(n){return n[n.Deprecated=1]="Deprecated",n})({}),rS=(function(n){return n[n.Type=1]="Type",n[n.Parameter=2]="Parameter",n})({}),Qe=(function(n){return n[n.Text=1]="Text",n[n.Method=2]="Method",n[n.Function=3]="Function",n[n.Constructor=4]="Constructor",n[n.Field=5]="Field",n[n.Variable=6]="Variable",n[n.Class=7]="Class",n[n.Interface=8]="Interface",n[n.Module=9]="Module",n[n.Property=10]="Property",n[n.Unit=11]="Unit",n[n.Value=12]="Value",n[n.Enum=13]="Enum",n[n.Keyword=14]="Keyword",n[n.Snippet=15]="Snippet",n[n.Color=16]="Color",n[n.File=17]="File",n[n.Reference=18]="Reference",n[n.Folder=19]="Folder",n[n.EnumMember=20]="EnumMember",n[n.Constant=21]="Constant",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter",n})({}),w5=(function(n){return n[n.Deprecated=1]="Deprecated",n})({}),y5=(function(n){return n[n.PlainText=1]="PlainText",n[n.Snippet=2]="Snippet",n})({}),Bu=(function(n){return n[n.Text=1]="Text",n[n.Read=2]="Read",n[n.Write=3]="Write",n})({}),fn=(function(n){return n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll",n})({}),as=(function(n){return n[n.Error=1]="Error",n[n.Warning=2]="Warning",n[n.Information=3]="Information",n[n.Hint=4]="Hint",n})({}),aS=(function(n){return n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated",n})({}),Uu=(function(n){return n[n.Invoked=1]="Invoked",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",n})({}),zu=(function(n){return n[n.Invoked=1]="Invoked",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange",n})({}),lS=(function(n){return n[n.Invoked=1]="Invoked",n[n.Automatic=2]="Automatic",n})({}),ge=class{constructor(n){this.method=n}},x5={textDocumentImplementation:new ge("textDocument/implementation"),textDocumentTypeDefinition:new ge("textDocument/typeDefinition"),textDocumentDocumentColor:new ge("textDocument/documentColor"),textDocumentColorPresentation:new ge("textDocument/colorPresentation"),textDocumentFoldingRange:new ge("textDocument/foldingRange"),textDocumentDeclaration:new ge("textDocument/declaration"),textDocumentSelectionRange:new ge("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new ge("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new ge("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new ge("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new ge("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new ge("workspace/willCreateFiles"),workspaceWillRenameFiles:new ge("workspace/willRenameFiles"),workspaceWillDeleteFiles:new ge("workspace/willDeleteFiles"),textDocumentMoniker:new ge("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new ge("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new ge("textDocument/inlineValue"),textDocumentInlayHint:new ge("textDocument/inlayHint"),textDocumentDiagnostic:new ge("textDocument/diagnostic"),textDocumentInlineCompletion:new ge("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new ge("textDocument/willSaveWaitUntil"),textDocumentCompletion:new ge("textDocument/completion"),textDocumentHover:new ge("textDocument/hover"),textDocumentSignatureHelp:new ge("textDocument/signatureHelp"),textDocumentDefinition:new ge("textDocument/definition"),textDocumentReferences:new ge("textDocument/references"),textDocumentDocumentHighlight:new ge("textDocument/documentHighlight"),textDocumentDocumentSymbol:new ge("textDocument/documentSymbol"),textDocumentCodeAction:new ge("textDocument/codeAction"),workspaceSymbol:new ge("workspace/symbol"),textDocumentCodeLens:new ge("textDocument/codeLens"),textDocumentDocumentLink:new ge("textDocument/documentLink"),textDocumentFormatting:new ge("textDocument/formatting"),textDocumentRangeFormatting:new ge("textDocument/rangeFormatting"),textDocumentRangesFormatting:new ge("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new ge("textDocument/onTypeFormatting"),textDocumentRename:new ge("textDocument/rename"),workspaceExecuteCommand:new ge("workspace/executeCommand"),workspaceDidCreateFiles:new ge("workspace/didCreateFiles"),workspaceDidRenameFiles:new ge("workspace/didRenameFiles"),workspaceDidDeleteFiles:new ge("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new ge("workspace/didChangeConfiguration"),textDocumentDidOpen:new ge("textDocument/didOpen"),textDocumentDidChange:new ge("textDocument/didChange"),textDocumentDidClose:new ge("textDocument/didClose"),textDocumentDidSave:new ge("textDocument/didSave"),textDocumentWillSave:new ge("textDocument/willSave"),workspaceDidChangeWatchedFiles:new ge("workspace/didChangeWatchedFiles")},Kj=b5({server:{textDocumentImplementation:ee({method:"textDocument/implementation"}),textDocumentTypeDefinition:ee({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:ee({method:"textDocument/documentColor"}),textDocumentColorPresentation:ee({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:ee({method:"textDocument/foldingRange"}),textDocumentDeclaration:ee({method:"textDocument/declaration"}),textDocumentSelectionRange:ee({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:ee({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:ee({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:ee({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:ee({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:ee({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:ee({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:ee({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:ee({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:ee({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:ee({method:"workspace/willDeleteFiles"}),textDocumentMoniker:ee({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:ee({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:ee({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:ee({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:ee({method:"textDocument/inlineValue"}),textDocumentInlayHint:ee({method:"textDocument/inlayHint"}),inlayHintResolve:ee({method:"inlayHint/resolve"}),textDocumentDiagnostic:ee({method:"textDocument/diagnostic"}),workspaceDiagnostic:ee({method:"workspace/diagnostic"}),textDocumentInlineCompletion:ee({method:"textDocument/inlineCompletion"}),initialize:ee({method:"initialize"}),shutdown:ee({method:"shutdown"}),textDocumentWillSaveWaitUntil:ee({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:ee({method:"textDocument/completion"}),completionItemResolve:ee({method:"completionItem/resolve"}),textDocumentHover:ee({method:"textDocument/hover"}),textDocumentSignatureHelp:ee({method:"textDocument/signatureHelp"}),textDocumentDefinition:ee({method:"textDocument/definition"}),textDocumentReferences:ee({method:"textDocument/references"}),textDocumentDocumentHighlight:ee({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:ee({method:"textDocument/documentSymbol"}),textDocumentCodeAction:ee({method:"textDocument/codeAction"}),codeActionResolve:ee({method:"codeAction/resolve"}),workspaceSymbol:ee({method:"workspace/symbol"}),workspaceSymbolResolve:ee({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:ee({method:"textDocument/codeLens"}),codeLensResolve:ee({method:"codeLens/resolve"}),textDocumentDocumentLink:ee({method:"textDocument/documentLink"}),documentLinkResolve:ee({method:"documentLink/resolve"}),textDocumentFormatting:ee({method:"textDocument/formatting"}),textDocumentRangeFormatting:ee({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:ee({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:ee({method:"textDocument/onTypeFormatting"}),textDocumentRename:ee({method:"textDocument/rename"}),textDocumentPrepareRename:ee({method:"textDocument/prepareRename"}),workspaceExecuteCommand:ee({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:Ue({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:Ue({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:Ue({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:Ue({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:Ue({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:Ue({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:Ue({method:"notebookDocument/didChange"}),notebookDocumentDidSave:Ue({method:"notebookDocument/didSave"}),notebookDocumentDidClose:Ue({method:"notebookDocument/didClose"}),initialized:Ue({method:"initialized"}),exit:Ue({method:"exit"}),workspaceDidChangeConfiguration:Ue({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:Ue({method:"textDocument/didOpen"}),textDocumentDidChange:Ue({method:"textDocument/didChange"}),textDocumentDidClose:Ue({method:"textDocument/didClose"}),textDocumentDidSave:Ue({method:"textDocument/didSave"}),textDocumentWillSave:Ue({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:Ue({method:"workspace/didChangeWatchedFiles"}),setTrace:Ue({method:"$/setTrace"}),cancelRequest:Ue({method:"$/cancelRequest"}),progress:Ue({method:"$/progress"})},client:{workspaceWorkspaceFolders:ee({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:ee({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:ee({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:ee({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:ee({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:ee({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:ee({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:ee({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:ee({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:ee({method:"client/registerCapability"}).optional(),clientUnregisterCapability:ee({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:ee({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:ee({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:ee({method:"workspace/applyEdit"}).optional(),windowShowMessage:Ue({method:"window/showMessage"}),windowLogMessage:Ue({method:"window/logMessage"}),telemetryEvent:Ue({method:"telemetry/event"}),textDocumentPublishDiagnostics:Ue({method:"textDocument/publishDiagnostics"}),logTrace:Ue({method:"$/logTrace"}),cancelRequest:Ue({method:"$/cancelRequest"}),progress:Ue({method:"$/progress"})}}),Gj=(Hu=class{constructor(){ne(this,"_store",new I5)}dispose(){this._store.dispose()}_register(n){if(n===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(n)}},ne(Hu,"None",Object.freeze({dispose(){}})),Hu),I5=(cd=class{constructor(){ne(this,"_toDispose",new Set),ne(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const n of this._toDispose)n.dispose()}finally{this._toDispose.clear()}}add(n){if(!n)return n;if(n===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?cd.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(n),n}},ne(cd,"DISABLE_DISPOSED_WARNING",!1),cd),Zj=new Map([[fn.Empty,""],[fn.QuickFix,"quickfix"],[fn.Refactor,"refactor"],[fn.RefactorExtract,"refactor.extract"],[fn.RefactorInline,"refactor.inline"],[fn.RefactorRewrite,"refactor.rewrite"],[fn.Source,"source"],[fn.SourceOrganizeImports,"source.organizeImports"],[fn.SourceFixAll,"source.fixAll"]]),Xj=new Map([[K.CodeActionTriggerType.Invoke,lS.Invoked],[K.CodeActionTriggerType.Auto,lS.Automatic]]),Yj=new Map([[Qe.Text,K.CompletionItemKind.Text],[Qe.Method,K.CompletionItemKind.Method],[Qe.Function,K.CompletionItemKind.Function],[Qe.Constructor,K.CompletionItemKind.Constructor],[Qe.Field,K.CompletionItemKind.Field],[Qe.Variable,K.CompletionItemKind.Variable],[Qe.Class,K.CompletionItemKind.Class],[Qe.Interface,K.CompletionItemKind.Interface],[Qe.Module,K.CompletionItemKind.Module],[Qe.Property,K.CompletionItemKind.Property],[Qe.Unit,K.CompletionItemKind.Unit],[Qe.Value,K.CompletionItemKind.Value],[Qe.Enum,K.CompletionItemKind.Enum],[Qe.Keyword,K.CompletionItemKind.Keyword],[Qe.Snippet,K.CompletionItemKind.Snippet],[Qe.Color,K.CompletionItemKind.Color],[Qe.File,K.CompletionItemKind.File],[Qe.Reference,K.CompletionItemKind.Reference],[Qe.Folder,K.CompletionItemKind.Folder],[Qe.EnumMember,K.CompletionItemKind.EnumMember],[Qe.Constant,K.CompletionItemKind.Constant],[Qe.Struct,K.CompletionItemKind.Struct],[Qe.Event,K.CompletionItemKind.Event],[Qe.Operator,K.CompletionItemKind.Operator],[Qe.TypeParameter,K.CompletionItemKind.TypeParameter]]),Jj=new Map([[w5.Deprecated,K.CompletionItemTag.Deprecated]]),Qj=new Map([[K.CompletionTriggerKind.Invoke,Uu.Invoked],[K.CompletionTriggerKind.TriggerCharacter,Uu.TriggerCharacter],[K.CompletionTriggerKind.TriggerForIncompleteCompletions,Uu.TriggerForIncompleteCompletions]]),e4=new Map([[y5.Snippet,K.CompletionItemInsertTextRule.InsertAsSnippet]]),t4=new Map([[Xe.File,K.SymbolKind.File],[Xe.Module,K.SymbolKind.Module],[Xe.Namespace,K.SymbolKind.Namespace],[Xe.Package,K.SymbolKind.Package],[Xe.Class,K.SymbolKind.Class],[Xe.Method,K.SymbolKind.Method],[Xe.Property,K.SymbolKind.Property],[Xe.Field,K.SymbolKind.Field],[Xe.Constructor,K.SymbolKind.Constructor],[Xe.Enum,K.SymbolKind.Enum],[Xe.Interface,K.SymbolKind.Interface],[Xe.Function,K.SymbolKind.Function],[Xe.Variable,K.SymbolKind.Variable],[Xe.Constant,K.SymbolKind.Constant],[Xe.String,K.SymbolKind.String],[Xe.Number,K.SymbolKind.Number],[Xe.Boolean,K.SymbolKind.Boolean],[Xe.Array,K.SymbolKind.Array],[Xe.Object,K.SymbolKind.Object],[Xe.Key,K.SymbolKind.Key],[Xe.Null,K.SymbolKind.Null],[Xe.EnumMember,K.SymbolKind.EnumMember],[Xe.Struct,K.SymbolKind.Struct],[Xe.Event,K.SymbolKind.Event],[Xe.Operator,K.SymbolKind.Operator],[Xe.TypeParameter,K.SymbolKind.TypeParameter]]),i4=new Map([[S5.Deprecated,K.SymbolTag.Deprecated]]),n4=new Map([[Bu.Text,K.DocumentHighlightKind.Text],[Bu.Read,K.DocumentHighlightKind.Read],[Bu.Write,K.DocumentHighlightKind.Write]]),s4=new Map([[Vu.Comment,K.FoldingRangeKind.Comment],[Vu.Imports,K.FoldingRangeKind.Imports],[Vu.Region,K.FoldingRangeKind.Region]]),o4=new Map([[ts.Error,as.Error],[ts.Warning,as.Warning],[ts.Info,as.Information],[ts.Hint,as.Hint]]),r4=new Map([[as.Error,ts.Error],[as.Warning,ts.Warning],[as.Information,ts.Info],[as.Hint,ts.Hint]]),a4=new Map([[aS.Unnecessary,mv.Unnecessary],[aS.Deprecated,mv.Deprecated]]),l4=new Map([[K.SignatureHelpTriggerKind.Invoke,zu.Invoked],[K.SignatureHelpTriggerKind.TriggerCharacter,zu.TriggerCharacter],[K.SignatureHelpTriggerKind.ContentChange,zu.ContentChange]]),d4=new Map([[rS.Type,K.InlayHintKind.Type],[rS.Parameter,K.InlayHintKind.Parameter]]),c4=new Map([...Object.values(x5)].map(n=>[n.method,n])),Yr=null;typeof WebSocket<"u"?Yr=WebSocket:typeof MozWebSocket<"u"?Yr=MozWebSocket:typeof global<"u"?Yr=global.WebSocket||global.MozWebSocket:typeof window<"u"?Yr=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(Yr=self.WebSocket||self.MozWebSocket);var FD={},ju={},L5=class HD{static getOrCreate(e){return ju[e]||(ju[e]=new HD(e)),ju[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,FD[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function j(n){const e=n.id;FD[e]=n,K.register(n);const t=L5.getOrCreate(e);K.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),K.onLanguageEncountered(e,async()=>{const i=await t.load();K.setLanguageConfiguration(e,i.conf)})}j({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>U(()=>import("./abap-B-HzHdT_.js"),[])});j({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>U(()=>import("./apex-t5VcK3BF.js"),[])});j({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>U(()=>import("./azcli-Ce3iuV2p.js"),[])});j({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>U(()=>import("./bat-bOBZcLbK.js"),[])});j({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>U(()=>import("./bicep-TSicgsnM.js"),[])});j({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>U(()=>import("./cameligo-D-9xpPXV.js"),[])});j({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>U(()=>import("./clojure-9X3x3csE.js"),[])});j({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>U(()=>import("./coffee-anOch8Z-.js"),[])});j({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>U(()=>import("./cpp-oW293AoF.js"),[])});j({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>U(()=>import("./cpp-oW293AoF.js"),[])});j({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>U(()=>import("./csharp-BOXMgm5k.js"),[])});j({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>U(()=>import("./csp-D67JhNKT.js"),[])});j({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>U(()=>import("./css-Bk6H7_K_.js"),[])});j({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>U(()=>import("./cypher-DB0LBjic.js"),[])});j({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>U(()=>import("./dart-CS3MbwLP.js"),[])});j({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>U(()=>import("./dockerfile-BGz3qsmk.js"),[])});j({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>U(()=>import("./ecl-lt3qcklx.js"),[])});j({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>U(()=>import("./elixir-cMyUafed.js"),[])});j({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>U(()=>import("./flow9-BI9V6TuS.js"),[])});j({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>U(()=>import("./fsharp-I1kqnt0E.js"),[])});j({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagAutoInterpolationDollar),__vite__mapDeps([5,1,2,3]))});j({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagAngleInterpolationDollar),__vite__mapDeps([5,1,2,3]))});j({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagBracketInterpolationDollar),__vite__mapDeps([5,1,2,3]))});j({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagAngleInterpolationBracket),__vite__mapDeps([5,1,2,3]))});j({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagBracketInterpolationBracket),__vite__mapDeps([5,1,2,3]))});j({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagAutoInterpolationDollar),__vite__mapDeps([5,1,2,3]))});j({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>U(()=>import("./freemarker2-mnCFA3xV.js").then(n=>n.TagAutoInterpolationBracket),__vite__mapDeps([5,1,2,3]))});j({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>U(()=>import("./go-Cg4qMFVj.js"),[])});j({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>U(()=>import("./graphql-CvtHcP49.js"),[])});j({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>U(()=>import("./handlebars-BUcE6Uyy.js"),__vite__mapDeps([6,1,2,3]))});j({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>U(()=>import("./hcl-BkvCdKNu.js"),[])});j({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>U(()=>import("./html-BBqcfykD.js"),__vite__mapDeps([7,1,2,3]))});j({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>U(()=>import("./ini-CPc8BCWu.js"),[])});j({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>U(()=>import("./java-C9Yie4SH.js"),[])});j({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>U(()=>import("./javascript-CuGq5ydO.js"),__vite__mapDeps([8,9,1,2,3]))});j({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>U(()=>import("./julia--qJGRfN8.js"),[])});j({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>U(()=>import("./kotlin-C3MSe-0N.js"),[])});j({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>U(()=>import("./less-DOBYgWSY.js"),[])});j({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>U(()=>import("./lexon-Djd2rGvJ.js"),[])});j({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>U(()=>import("./lua-Ck8vNcPw.js"),[])});j({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>U(()=>import("./liquid-DXfHmR66.js"),__vite__mapDeps([10,1,2,3]))});j({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>U(()=>import("./m3-a6Kl4TV0.js"),[])});j({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>U(()=>import("./markdown-DkcRBwO0.js"),[])});j({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>U(()=>import("./mdx-QI5o45qz.js"),__vite__mapDeps([11,1,2,3]))});j({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>U(()=>import("./mips-Cc1YVI2p.js"),[])});j({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>U(()=>import("./msdax-Bh41xUoQ.js"),[])});j({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>U(()=>import("./mysql-BZTZMxPa.js"),[])});j({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>U(()=>import("./objective-c-CxZIMOHQ.js"),[])});j({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>U(()=>import("./pascal-I-WmLkmD.js"),[])});j({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>U(()=>import("./pascaligo-DEZ-6bwf.js"),[])});j({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>U(()=>import("./perl-DfeHQJxJ.js"),[])});j({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>U(()=>import("./pgsql-OdOoQYPW.js"),[])});j({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>U(()=>import("./php-CF1bUutw.js"),[])});j({id:"pla",extensions:[".pla"],loader:()=>U(()=>import("./pla-BHZr0GrY.js"),[])});j({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>U(()=>import("./postiats-BSB6a63H.js"),[])});j({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>U(()=>import("./powerquery-Bu0p84Ye.js"),[])});j({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>U(()=>import("./powershell-Dcq3YM6T.js"),[])});j({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>U(()=>import("./protobuf-CsWrQxqX.js"),[])});j({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>U(()=>import("./pug-DLQiv3Bp.js"),[])});j({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>U(()=>import("./python-BvKEpyP9.js"),__vite__mapDeps([12,1,2,3]))});j({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>U(()=>import("./qsharp-D8nrRUNu.js"),[])});j({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>U(()=>import("./r-xhyKpGTk.js"),[])});j({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>U(()=>import("./razor-Ceb9S1Rz.js"),__vite__mapDeps([13,1,2,3]))});j({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>U(()=>import("./redis-BnpkEvbr.js"),[])});j({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>U(()=>import("./redshift-BpxVXjAI.js"),[])});j({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>U(()=>import("./restructuredtext-5afXtW7D.js"),[])});j({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>U(()=>import("./ruby-CHaoWUHT.js"),[])});j({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>U(()=>import("./rust-Bw0WVsLy.js"),[])});j({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>U(()=>import("./sb-CEjXmIyG.js"),[])});j({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>U(()=>import("./scala-BuaCSaU6.js"),[])});j({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>U(()=>import("./scheme-DIKzlmFG.js"),[])});j({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>U(()=>import("./scss-C2_UsWzg.js"),[])});j({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>U(()=>import("./shell-2aEL2EVH.js"),[])});j({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>U(()=>import("./solidity-D-5XfYE1.js"),[])});j({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>U(()=>import("./sophia-s4MFSvUF.js"),[])});j({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>U(()=>import("./sparql-Dkv46wS5.js"),[])});j({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>U(()=>import("./sql-Dz9Xhs8s.js"),[])});j({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>U(()=>import("./st-Cbo0XVmr.js"),[])});j({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>U(()=>import("./swift-B66X97nW.js"),[])});j({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>U(()=>import("./systemverilog-gGKga8Gf.js"),[])});j({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>U(()=>import("./systemverilog-gGKga8Gf.js"),[])});j({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>U(()=>import("./tcl-BtbeJsUN.js"),[])});j({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>U(()=>import("./twig-0_nXiuYs.js"),[])});j({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>U(()=>import("./typescript-Cy_CzC_-.js"),__vite__mapDeps([9,1,2,3]))});j({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>U(()=>import("./typespec-DBO6_WMJ.js"),[])});j({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>U(()=>import("./vb-DFJjBsW2.js"),[])});j({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>U(()=>import("./wgsl-U3RBM2M0.js"),[])});j({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>U(()=>import("./xml-D11j3J2_.js"),__vite__mapDeps([14,1,2,3]))});j({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>U(()=>import("./yaml-D7Z_4mnx.js"),__vite__mapDeps([15,1,2,3]))});var U_=class{constructor(n,e,t){this._onDidChange=new Aa,this._languageId=n,this.setOptions(e),this.setModeConfiguration(t)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(n){this.setOptions(n)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},z_={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},j_={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},D5=new U_("css",z_,j_),E5=new U_("scss",z_,j_),R5=new U_("less",z_,j_);function q_(){return U(()=>import("./cssMode-G6latsS7.js"),__vite__mapDeps([16,1,2,3,4,17]))}K.onLanguage("less",()=>{q_().then(n=>n.setupMode(R5))});K.onLanguage("scss",()=>{q_().then(n=>n.setupMode(E5))});K.onLanguage("css",()=>{q_().then(n=>n.setupMode(D5))});var T5=class{constructor(n,e,t){this._onDidChange=new Aa,this._languageId=n,this.setOptions(e),this.setModeConfiguration(t)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},Oh={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},suggest:{},data:{useDefaultDataProvider:!0}};function Mh(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===Ea,documentFormattingEdits:n===Ea,documentRangeFormattingEdits:n===Ea}}var Ea="html",dS="handlebars",cS="razor",N5=$_(Ea,Oh,Mh(Ea)),h4=N5.defaults,k5=$_(dS,Oh,Mh(dS)),u4=k5.defaults,P5=$_(cS,Oh,Mh(cS)),g4=P5.defaults;function O5(){return U(()=>import("./htmlMode-D8je66Rk.js"),__vite__mapDeps([18,1,2,3,4,17]))}function $_(n,e=Oh,t=Mh(n)){const i=new T5(n,e,t);let s;const o=K.onLanguage(n,async()=>{s=(await O5()).setupMode(i)});return{defaults:i,dispose(){o.dispose(),s?.dispose(),s=void 0}}}var M5=class{constructor(n,e,t){this._onDidChange=new Aa,this._languageId=n,this.setDiagnosticsOptions(e),this.setModeConfiguration(t)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},A5=new M5("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});function F5(){return U(()=>import("./jsonMode-BgdTmYik.js"),__vite__mapDeps([19,1,2,3,4,17]))}K.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});K.onLanguage("json",()=>{F5().then(n=>n.setupMode(A5))});var hS="__monacoFindWidgetTabIndexPatchApplied",Jr="__monacoFindWidgetOriginalTabIndex";function uS(n,e){const t=n?._domNode;if(!t)return;const i=t.querySelectorAll('input, textarea, [tabindex], [role="button"], [role="checkbox"]');for(const s of i)if(s instanceof HTMLElement)if(e){if(!(Jr in s.dataset))continue;const o=s.dataset[Jr];o===""?s.removeAttribute("tabindex"):s.tabIndex=Number(o),delete s.dataset[Jr]}else Jr in s.dataset||(s.dataset[Jr]=s.getAttribute("tabindex")??""),s.tabIndex=-1}if(!Us[hS]){const n=Us.prototype._reveal,e=Us.prototype._hide;Us.prototype._reveal=function(...t){n.apply(this,t),uS(this,!0)},Us.prototype._hide=function(...t){e.apply(this,t),uS(this,!1)},Us[hS]=!0}function H5(n){return new Worker("/assets/editor.worker-BYfbSb3U.js",{name:n?.name})}function W5(n){return new Worker("/assets/json.worker-DI02pyM8.js",{name:n?.name})}self.MonacoEnvironment={getWorker:(n,e)=>e==="json"?new W5:new H5};var V5="db-studio-dark",B5="db-studio-light",gS=!1,p4=()=>{if(gS)return;gS=!0;const n={"editor.background":"#00000000","editorGutter.background":"#00000000","editor.lineHighlightBackground":"#00000000","editorOverviewRuler.background":"#00000000"};bv.defineTheme(V5,{base:"vs-dark",inherit:!0,rules:[],colors:n}),bv.defineTheme(B5,{base:"vs",inherit:!0,rules:[],colors:n})};export{n5 as i,B5 as n,p4 as r,V5 as t};