@jxsuite/studio 6.1.2 → 8.0.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 (522) hide show
  1. package/README.md +5 -5
  2. package/dist/chunks/2020-5wtzce5g.js +4 -0
  3. package/dist/chunks/adapter-5tphg7xe.js +4 -0
  4. package/dist/chunks/add-new-flow-psym14sn.js +4 -0
  5. package/dist/chunks/cf-account-picker-haqazq5r.js +4 -0
  6. package/dist/chunks/cf-settings-h2wrh6hq.js +4 -0
  7. package/dist/chunks/{color-area-0fj8a4ga.js → color-area-6rbra5dy.js} +2 -2
  8. package/dist/chunks/{color-field-xch8kx2g.js → color-field-gy56c94g.js} +3 -3
  9. package/dist/chunks/color-m7r1vk54.js +4 -0
  10. package/dist/chunks/{color-slider-jxd8v350.js → color-slider-sqqdyf6c.js} +2 -2
  11. package/dist/chunks/{combobox-p0efwjke.js → combobox-72h32ejk.js} +3 -3
  12. package/dist/chunks/components-r22xca09.js +4 -0
  13. package/dist/chunks/content-source-mmppmcyg.js +4 -0
  14. package/dist/chunks/convert-to-repeater-he70fc2b.js +4 -0
  15. package/dist/chunks/editor-ccd9jwsa.js +4 -0
  16. package/dist/chunks/entry-commands-6qxz9e8p.js +4 -0
  17. package/dist/chunks/extension-sections-0egb88dm.js +4 -0
  18. package/dist/chunks/file-ops-qnab36ek.js +4 -0
  19. package/dist/chunks/files-rcn56qvm.js +4 -0
  20. package/dist/chunks/format-host-yxz0kjjs.js +4 -0
  21. package/dist/chunks/fs-events-d1qxq4z4.js +4 -0
  22. package/dist/chunks/grid-open-4z1g062t.js +4 -0
  23. package/dist/chunks/{grid-view-d2wq9ezg.js → grid-view-qg1b5eqx.js} +25 -25
  24. package/dist/chunks/{icons-pnfz478q.js → icons-63bjtbs7.js} +2 -2
  25. package/dist/chunks/{iframe-entry-jdcktez8.js → iframe-entry-2zggzajv.js} +4 -4
  26. package/dist/chunks/{iframe-entry-zap785cw.js → iframe-entry-76j8vwwx.js} +4 -4
  27. package/dist/chunks/iframe-entry-99nr5zfb.js +5 -0
  28. package/dist/chunks/{iframe-entry-x0ygf2yr.js → iframe-entry-pkgmcgp0.js} +4 -4
  29. package/dist/chunks/iframe-host-ssv7kyj0.js +4 -0
  30. package/dist/chunks/{index-zpjmzqfk.js → index-32eqzv1k.js} +3 -3
  31. package/dist/chunks/index-f0jn7nnp.js +4 -0
  32. package/dist/chunks/{javascript-m54mnwp6.js → javascript-pjp734q4.js} +3 -3
  33. package/dist/chunks/jsonMode-njkvsa02.js +13 -0
  34. package/dist/chunks/jx-validate-ttasrbh7.js +4 -0
  35. package/dist/chunks/layers-bgyr11tr.js +4 -0
  36. package/dist/chunks/layers-panel-7ez66zeq.js +4 -0
  37. package/dist/chunks/{listbox-e74qjyq6.js → listbox-c421cf8c.js} +2 -2
  38. package/dist/chunks/lit-html-v9gh687x.js +4 -0
  39. package/dist/chunks/media-library-sq468wts.js +4 -0
  40. package/dist/chunks/media-picker-shfe59pt.js +4 -0
  41. package/dist/chunks/{menu-n6yzswmy.js → menu-bdpzbfvs.js} +2 -2
  42. package/dist/chunks/{monaco-binding-7gx83x3r.js → monaco-binding-vq1hgnn0.js} +3 -3
  43. package/dist/chunks/monaco-buffer-3afgwvbp.js +4 -0
  44. package/dist/chunks/monaco-setup-xrd2cbkp.js +4 -0
  45. package/dist/chunks/notify-kzrjr3fv.js +4 -0
  46. package/dist/chunks/parse-v77xtwv7.js +4 -0
  47. package/dist/chunks/platform-7v4rtd7m.js +4 -0
  48. package/dist/chunks/popover-b89sfej7.js +4 -0
  49. package/dist/chunks/publish-panel-2z9gw8ee.js +4 -0
  50. package/dist/chunks/publish-quick-qx2455cj.js +4 -0
  51. package/dist/chunks/publish-workspace-wrc1dgwx.js +4 -0
  52. package/dist/chunks/quick-search-n0t0eqxb.js +4 -0
  53. package/dist/chunks/references-9547rg5s.js +4 -0
  54. package/dist/chunks/right-panel-wsgnr9pn.js +4 -0
  55. package/dist/chunks/source-control-kwktr9y6.js +4 -0
  56. package/dist/chunks/{split-n2gfpm5m.js → split-c9zfdgxf.js} +2 -2
  57. package/dist/chunks/studio-03ct6yfv.js +9 -0
  58. package/dist/chunks/studio-07rcfje3.js +5 -0
  59. package/dist/chunks/studio-3e54qh39.js +7 -0
  60. package/dist/chunks/studio-3exxhz5g.js +5 -0
  61. package/dist/chunks/studio-3q40e3rj.js +5 -0
  62. package/dist/chunks/studio-3qeh9t0h.js +6 -0
  63. package/dist/chunks/studio-3qqjeep5.js +6 -0
  64. package/dist/chunks/studio-43sd2mam.js +4 -0
  65. package/dist/chunks/studio-4hp8pkyt.js +5 -0
  66. package/dist/chunks/studio-58xg6j2q.js +9 -0
  67. package/dist/chunks/studio-5g0rprdt.js +7 -0
  68. package/dist/chunks/{studio-2j1cb95x.js → studio-6m380wp7.js} +4 -4
  69. package/dist/chunks/studio-80jyh1xh.js +4 -0
  70. package/dist/chunks/studio-83mk4bgg.js +9 -0
  71. package/dist/chunks/{studio-v0jzqdjm.js → studio-881z1xrx.js} +4 -4
  72. package/dist/chunks/studio-8m0y2qe7.js +5 -0
  73. package/dist/chunks/{studio-d81xfh1g.js → studio-8tr6cfrc.js} +4 -4
  74. package/dist/chunks/studio-8vcvfs7r.js +6 -0
  75. package/dist/chunks/studio-9tmebf0s.js +5 -0
  76. package/dist/chunks/studio-a2bvaptz.js +5 -0
  77. package/dist/chunks/studio-b7y5mr30.js +5 -0
  78. package/dist/chunks/studio-bavb31r0.js +5 -0
  79. package/dist/chunks/{studio-dgz8d0c1.js → studio-bbe4c90a.js} +4 -4
  80. package/dist/chunks/studio-c05wdnt3.js +5 -0
  81. package/dist/chunks/studio-ccv2svc6.js +5 -0
  82. package/dist/chunks/studio-d5grtb9e.js +16 -0
  83. package/dist/chunks/studio-df0baea9.js +5 -0
  84. package/dist/chunks/studio-dgk4dqtx.js +7 -0
  85. package/dist/chunks/studio-e1g64q43.js +5 -0
  86. package/dist/chunks/studio-ed1hp6zf.js +6 -0
  87. package/dist/chunks/studio-ed3xx40h.js +7 -0
  88. package/dist/chunks/studio-f14e1zdj.js +5 -0
  89. package/dist/chunks/studio-fbhxxc5f.js +5 -0
  90. package/dist/chunks/studio-fyh0jc96.js +5 -0
  91. package/dist/chunks/studio-gcxk20n7.js +5 -0
  92. package/dist/chunks/studio-jaaz8ce9.js +5 -0
  93. package/dist/chunks/{studio-90pq9km1.js → studio-jcnsdaep.js} +4 -4
  94. package/dist/chunks/studio-jsgf2q5k.js +7 -0
  95. package/dist/chunks/{studio-0q988f9w.js → studio-k3xxbagr.js} +3 -3
  96. package/dist/chunks/{studio-5ve6bbep.js → studio-k7evxqh4.js} +4 -4
  97. package/dist/chunks/studio-kt3pjkwd.js +5 -0
  98. package/dist/chunks/studio-m8g16bgz.js +5 -0
  99. package/dist/chunks/studio-mn0476ag.js +5 -0
  100. package/dist/chunks/studio-mx1smyq0.js +5 -0
  101. package/dist/chunks/studio-n0c5h6mf.js +5 -0
  102. package/dist/chunks/{studio-485046te.js → studio-nh6d342n.js} +7 -7
  103. package/dist/chunks/studio-nqxqf8p2.js +4 -0
  104. package/dist/chunks/studio-p4nrkvqr.js +5 -0
  105. package/dist/chunks/{studio-1fxkaaea.js → studio-pbxa5fpc.js} +4 -4
  106. package/dist/chunks/studio-pgmvdv7z.js +7 -0
  107. package/dist/chunks/studio-ph84avkf.js +5 -0
  108. package/dist/chunks/{studio-tq0rtfwj.js → studio-q0mvbaq6.js} +4 -4
  109. package/dist/chunks/studio-q0tccd43.js +5 -0
  110. package/dist/chunks/studio-q7rtx6zq.js +14 -0
  111. package/dist/chunks/{studio-a3g98wjr.js → studio-qgh13jtz.js} +4 -4
  112. package/dist/chunks/studio-qmn1xc24.js +5 -0
  113. package/dist/chunks/studio-qwdqwkj0.js +5 -0
  114. package/dist/chunks/studio-r5qy30vx.js +5 -0
  115. package/dist/chunks/studio-rj9eamf8.js +5 -0
  116. package/dist/chunks/studio-rptgsk96.js +5 -0
  117. package/dist/chunks/studio-rthyg42z.js +928 -0
  118. package/dist/chunks/studio-s19tp1xr.js +5 -0
  119. package/dist/chunks/studio-s32578pn.js +5 -0
  120. package/dist/chunks/studio-svb7yyve.js +5 -0
  121. package/dist/chunks/studio-syreb644.js +5 -0
  122. package/dist/chunks/studio-tf9jryb1.js +10 -0
  123. package/dist/chunks/studio-tfkznv39.js +5 -0
  124. package/dist/chunks/studio-tft6r105.js +5 -0
  125. package/dist/chunks/studio-txf2kysx.js +5 -0
  126. package/dist/chunks/studio-v8867ddv.js +12 -0
  127. package/dist/chunks/studio-vxq7fcvv.js +5 -0
  128. package/dist/chunks/studio-w4rz9hdk.js +5 -0
  129. package/dist/chunks/studio-wbcjbhy1.js +9 -0
  130. package/dist/chunks/studio-wc649wss.js +5 -0
  131. package/dist/chunks/studio-wys23mxz.js +5 -0
  132. package/dist/chunks/studio-x1x167jh.js +5 -0
  133. package/dist/chunks/studio-x9hsze61.js +5 -0
  134. package/dist/chunks/studio-y0n7yxea.js +9 -0
  135. package/dist/chunks/studio-y3ahhdpx.js +5 -0
  136. package/dist/chunks/studio-z97c48fk.js +5 -0
  137. package/dist/chunks/studio-zat62m0c.js +5 -0
  138. package/dist/chunks/studio-zcd2e7yz.js +5 -0
  139. package/dist/chunks/studio-zz9qe3rw.js +64 -0
  140. package/dist/chunks/toast-1gv0h53h.js +4 -0
  141. package/dist/chunks/{toast-host-ke5z4ng7.js → toast-host-1yg5ar8d.js} +3 -3
  142. package/dist/chunks/{tooltip-5v8ngwj2.js → tooltip-yypz28gq.js} +3 -3
  143. package/dist/chunks/{tree-mdq3v5cw.js → tree-9xa4hm7n.js} +2 -2
  144. package/dist/chunks/tsMode-epyfz1hv.js +14 -0
  145. package/dist/chunks/workspace-dz7nxfhv.js +4 -0
  146. package/dist/chunks/workspace-home-xsd7hkjw.js +4 -0
  147. package/dist/chunks/{ws-client-nze0k6mv.js → ws-client-bv552sfx.js} +3 -3
  148. package/dist/iframe-entry.js +20 -16
  149. package/dist/manifest.json +77 -63
  150. package/dist/studio.js +103 -104
  151. package/dist/workers/ts.worker.js +3 -3
  152. package/package.json +12 -11
  153. package/src/browse/component-examples.ts +272 -0
  154. package/src/browse/library-commands.ts +64 -104
  155. package/src/browse/library-layouts.ts +263 -49
  156. package/src/browse/library-model.ts +181 -133
  157. package/src/browse/library-pane.ts +738 -446
  158. package/src/browse/library-preview.ts +149 -19
  159. package/src/browse/library-source.ts +308 -41
  160. package/src/browse/preview-root.ts +78 -0
  161. package/src/browse/preview-style.ts +155 -0
  162. package/src/canvas/asset-refs.ts +16 -1
  163. package/src/canvas/canvas-live-render.ts +222 -30
  164. package/src/canvas/canvas-origin.ts +37 -12
  165. package/src/canvas/canvas-page-context.ts +112 -0
  166. package/src/canvas/canvas-render.ts +113 -107
  167. package/src/canvas/canvas-utils.ts +57 -12
  168. package/src/canvas/iframe-drop.ts +107 -0
  169. package/src/canvas/iframe-entry.ts +24 -12
  170. package/src/canvas/iframe-host.ts +134 -62
  171. package/src/canvas/iframe-keys.ts +11 -0
  172. package/src/canvas/iframe-patch.ts +8 -7
  173. package/src/canvas/iframe-protocol.ts +24 -5
  174. package/src/canvas/iframe-render.ts +48 -1
  175. package/src/canvas/iframe-subtree.ts +5 -2
  176. package/src/canvas/npm-modules.ts +22 -0
  177. package/src/canvas/preview-navigate.ts +16 -0
  178. package/src/canvas/repeater-sources.ts +200 -0
  179. package/src/canvas/stage-scrollbar.ts +5 -1
  180. package/src/canvas/surface-registry.ts +6 -0
  181. package/src/commands/app-commands.ts +16 -6
  182. package/src/commands/budget.ts +10 -8
  183. package/src/commands/context.ts +35 -10
  184. package/src/commands/defaults.ts +69 -45
  185. package/src/commands/keymap.ts +9 -0
  186. package/src/commands/levels.ts +11 -5
  187. package/src/commands/live-context.ts +2 -0
  188. package/src/commands/registry.ts +10 -1
  189. package/src/content/collection-match.ts +6 -5
  190. package/src/content/collection-pages.ts +412 -0
  191. package/src/content/content-collections.ts +270 -0
  192. package/src/content/entry-commands.ts +51 -60
  193. package/src/content/entry-editor.ts +111 -18
  194. package/src/content/entry-fields.ts +13 -1
  195. package/src/content/entry-inspector.ts +225 -0
  196. package/src/content/entry-model.ts +17 -3
  197. package/src/content/entry-open.ts +80 -0
  198. package/src/content/entry-summaries.ts +440 -0
  199. package/src/content/file-record-ids.ts +80 -0
  200. package/src/content/file-records.ts +125 -0
  201. package/src/content/page-summaries.ts +129 -0
  202. package/src/content/record-entry.ts +201 -0
  203. package/src/content/writing-banner.ts +177 -0
  204. package/src/create/add-new-commands.ts +185 -0
  205. package/src/create/add-new-flow.ts +1116 -0
  206. package/src/create/add-new.ts +1014 -0
  207. package/src/create/element-name.ts +121 -0
  208. package/src/editor/convert-to-component.ts +67 -43
  209. package/src/editor/file-drop-action.ts +9 -1
  210. package/src/editor/inline-edit-apply.ts +44 -0
  211. package/src/editor/inline-edit.ts +10 -0
  212. package/src/editor/insert-component.ts +91 -0
  213. package/src/editor/insert-zone-action.ts +13 -4
  214. package/src/editor/shortcuts.ts +44 -22
  215. package/src/editor/slash-menu.ts +51 -8
  216. package/src/files/components.ts +74 -10
  217. package/src/files/file-ops.ts +15 -5
  218. package/src/files/files.ts +164 -150
  219. package/src/files/fs-events.ts +18 -7
  220. package/src/files/media-meta.ts +95 -1
  221. package/src/files/media-types.ts +55 -0
  222. package/src/files/media-upload.ts +209 -52
  223. package/src/files/new-file-name.ts +156 -0
  224. package/src/files/serialize-document.ts +13 -3
  225. package/src/format/format-host.ts +15 -0
  226. package/src/github/github-auth.ts +2 -2
  227. package/src/github/github-publish.ts +4 -3
  228. package/src/grid/grid-controller.ts +5 -1
  229. package/src/grid/grid-open.ts +0 -27
  230. package/src/grid/grid-panel.ts +54 -2
  231. package/src/grid/grid-reveal.ts +34 -0
  232. package/src/grid/grid-source.ts +3 -25
  233. package/src/grid/grid-view.ts +31 -6
  234. package/src/grid/sources/content-source.ts +75 -7
  235. package/src/grid/tabulator-tables.d.ts +6 -0
  236. package/src/hosting/document.ts +2 -2
  237. package/src/i18n/i18n-commands.ts +2 -1
  238. package/src/media/media-commands.ts +181 -0
  239. package/src/media/media-library-model.ts +232 -0
  240. package/src/media/media-library.ts +1283 -0
  241. package/src/media/media-pane.ts +47 -19
  242. package/src/packages/pull-package-sync.ts +1 -1
  243. package/src/panels/activity-panel.ts +21 -5
  244. package/src/panels/ai-chat/chat-markdown.ts +8 -8
  245. package/src/panels/block-action-bar.ts +11 -11
  246. package/src/panels/canvas-dnd-bridge.ts +5 -2
  247. package/src/panels/chat-panel.ts +6 -6
  248. package/src/panels/collections-panel.ts +306 -0
  249. package/src/panels/component-preview.ts +35 -13
  250. package/src/panels/data-explorer.ts +1 -1
  251. package/src/panels/data-grid.ts +4 -0
  252. package/src/panels/dnd.ts +17 -30
  253. package/src/panels/elements-panel.ts +9 -2
  254. package/src/panels/empty-state.ts +2 -2
  255. package/src/panels/formula-workspace.ts +2 -3
  256. package/src/panels/frontmatter-fields.ts +9 -9
  257. package/src/panels/git-diff-open.ts +9 -5
  258. package/src/panels/head-panel.ts +369 -103
  259. package/src/panels/i18n-panel.ts +11 -10
  260. package/src/panels/imports-panel.ts +2 -0
  261. package/src/panels/jump-bar.ts +27 -2
  262. package/src/panels/layers-panel.ts +36 -30
  263. package/src/panels/left-panel.ts +22 -8
  264. package/src/panels/navigator-panels.ts +23 -11
  265. package/src/panels/pane-context.ts +111 -29
  266. package/src/panels/pane-grid.ts +6 -6
  267. package/src/panels/panel-registry.ts +14 -9
  268. package/src/panels/properties-panel.ts +7 -3
  269. package/src/panels/right-panel.ts +199 -43
  270. package/src/panels/seo-modal.ts +41 -108
  271. package/src/panels/settings-menu.ts +52 -50
  272. package/src/panels/settings-pane.ts +268 -162
  273. package/src/panels/signals-panel.ts +3 -4
  274. package/src/panels/site-model.ts +367 -0
  275. package/src/panels/site-panel.ts +638 -0
  276. package/src/panels/style-panel.ts +37 -3
  277. package/src/panels/stylebook-doc.ts +142 -10
  278. package/src/panels/stylebook-layers-panel.ts +39 -80
  279. package/src/panels/stylebook-panel.ts +47 -10
  280. package/src/panels/styles-panel.ts +327 -0
  281. package/src/panels/tab-strip.ts +109 -25
  282. package/src/platform.ts +1 -1
  283. package/src/platforms/cloud.ts +28 -1
  284. package/src/platforms/default-platform.ts +4 -4
  285. package/src/platforms/devserver.ts +51 -25
  286. package/src/publish/deploy-checklist.ts +12 -7
  287. package/src/publish/pages-service.ts +38 -14
  288. package/src/publish/publish-changes.ts +491 -0
  289. package/src/publish/publish-commands.ts +83 -18
  290. package/src/publish/publish-ids.ts +49 -0
  291. package/src/publish/publish-quick.ts +148 -0
  292. package/src/publish/publish-workspace.ts +926 -0
  293. package/src/publish/source-control.ts +907 -0
  294. package/src/services/automation.ts +16 -20
  295. package/src/services/cf-settings.ts +4 -4
  296. package/src/services/connection.ts +2 -2
  297. package/src/services/directory-picker.ts +2 -2
  298. package/src/services/references.ts +0 -0
  299. package/src/services/render-critic.ts +21 -2
  300. package/src/services/settings/definitions.ts +25 -14
  301. package/src/settings/contributed-section.ts +49 -10
  302. package/src/settings/css-vars-editor.ts +93 -27
  303. package/src/settings/developer-panels.ts +43 -0
  304. package/src/settings/extension-sections.ts +20 -2
  305. package/src/settings/general-settings.ts +91 -21
  306. package/src/settings/preferences-dialog.ts +8 -1
  307. package/src/settings/project-sections.ts +27 -10
  308. package/src/settings/schema-field-ui.ts +3 -1
  309. package/src/settings/section-registry.ts +116 -11
  310. package/src/settings/settings-dialog.ts +192 -0
  311. package/src/settings/settings-document.ts +182 -162
  312. package/src/shell.ts +467 -431
  313. package/src/site-context.ts +64 -10
  314. package/src/state.ts +28 -9
  315. package/src/studio.ts +194 -41
  316. package/src/style/project-styles.ts +34 -0
  317. package/src/style/stylebook-specimens.ts +89 -0
  318. package/src/style/stylebook-target.ts +26 -0
  319. package/src/style/tag-inheritance.ts +105 -0
  320. package/src/style/variables-focus.ts +61 -0
  321. package/src/style/variables-view.ts +235 -0
  322. package/src/surfaces/add-new.json +1482 -0
  323. package/src/surfaces/add-new.ts +325 -0
  324. package/src/surfaces/ai-chat.ts +2 -2
  325. package/src/surfaces/boot-failure.json +4 -3
  326. package/src/surfaces/bottom-dock.json +1 -1
  327. package/src/surfaces/canvas-stage.json +30 -19
  328. package/src/surfaces/canvas-stage.ts +5 -5
  329. package/src/surfaces/collections-panel.json +615 -0
  330. package/src/surfaces/collections-panel.ts +168 -0
  331. package/src/surfaces/commandbar.json +241 -96
  332. package/src/surfaces/commandbar.ts +134 -99
  333. package/src/surfaces/empty-state.json +1 -1
  334. package/src/surfaces/entry-editor.json +136 -0
  335. package/src/surfaces/entry-editor.ts +21 -0
  336. package/src/surfaces/entry-inspector.json +371 -0
  337. package/src/surfaces/entry-inspector.ts +143 -0
  338. package/src/surfaces/inspector-dock.json +162 -14
  339. package/src/surfaces/inspector-dock.ts +46 -19
  340. package/src/surfaces/library-pane.json +670 -437
  341. package/src/surfaces/library-pane.ts +94 -59
  342. package/src/surfaces/media-browser.json +62 -6
  343. package/src/surfaces/media-browser.ts +15 -1
  344. package/src/surfaces/media-field.json +1 -1
  345. package/src/surfaces/media-library.json +1586 -0
  346. package/src/surfaces/media-library.ts +282 -0
  347. package/src/surfaces/media-pick-dialog.json +71 -0
  348. package/src/surfaces/media-pick-dialog.ts +132 -0
  349. package/src/surfaces/menu.ts +18 -0
  350. package/src/surfaces/pane-context.json +144 -77
  351. package/src/surfaces/pane-context.ts +24 -0
  352. package/src/surfaces/panel-deploy-checklist.json +12 -6
  353. package/src/surfaces/panel-deploy-checklist.ts +3 -1
  354. package/src/surfaces/panel-page.json +72 -2
  355. package/src/surfaces/panel-page.ts +38 -7
  356. package/src/surfaces/panel-signals.json +1 -1
  357. package/src/surfaces/panel-signals.ts +5 -5
  358. package/src/surfaces/panel-stylebook-layers.json +71 -204
  359. package/src/surfaces/panel-stylebook-layers.ts +0 -21
  360. package/src/surfaces/preferences.json +120 -48
  361. package/src/surfaces/preferences.ts +8 -0
  362. package/src/surfaces/publish-quick.json +428 -0
  363. package/src/surfaces/publish-quick.ts +165 -0
  364. package/src/surfaces/publish-workspace.json +2892 -0
  365. package/src/surfaces/publish-workspace.ts +391 -0
  366. package/src/surfaces/rail.json +1 -159
  367. package/src/surfaces/rail.ts +18 -75
  368. package/src/surfaces/schema-form.json +10 -2
  369. package/src/surfaces/schema-form.ts +2 -0
  370. package/src/surfaces/seo.json +1 -1
  371. package/src/surfaces/settings-contributed.json +5 -5
  372. package/src/surfaces/settings-contributed.ts +18 -2
  373. package/src/surfaces/settings-css-vars.json +44 -36
  374. package/src/surfaces/settings-css-vars.ts +77 -4
  375. package/src/surfaces/settings-deploy.json +2 -15
  376. package/src/surfaces/settings-deploy.ts +1 -1
  377. package/src/surfaces/settings-dialog.json +51 -0
  378. package/src/surfaces/settings-dialog.ts +169 -0
  379. package/src/surfaces/settings-overview.json +3 -3
  380. package/src/surfaces/settings-overview.ts +9 -2
  381. package/src/surfaces/settings-pane.json +269 -46
  382. package/src/surfaces/settings-pane.ts +85 -24
  383. package/src/surfaces/shell.json +2 -1
  384. package/src/surfaces/site-panel.json +1029 -0
  385. package/src/surfaces/site-panel.ts +233 -0
  386. package/src/surfaces/slash-menu.json +63 -21
  387. package/src/surfaces/slash-menu.ts +23 -0
  388. package/src/surfaces/statusbar.ts +39 -15
  389. package/src/surfaces/styles-panel.json +735 -0
  390. package/src/surfaces/styles-panel.ts +195 -0
  391. package/src/surfaces/styles-variables.json +149 -0
  392. package/src/surfaces/styles-variables.ts +145 -0
  393. package/src/surfaces/tab-strip.json +4 -4
  394. package/src/surfaces/welcome.ts +1 -1
  395. package/src/surfaces/writing-banner.json +94 -0
  396. package/src/surfaces/writing-banner.ts +80 -0
  397. package/src/tabs/bare-repeaters.ts +101 -0
  398. package/src/tabs/tab.ts +47 -7
  399. package/src/types.ts +21 -26
  400. package/src/ui/form-controls.ts +47 -8
  401. package/src/ui/layers.ts +13 -0
  402. package/src/ui/media-picker.ts +284 -40
  403. package/src/ui/regions.ts +7 -6
  404. package/src/ui/schema-form.ts +259 -27
  405. package/src/ui/virtual-window.ts +26 -1
  406. package/src/utils/base64.ts +3 -3
  407. package/src/utils/edit-display.ts +322 -67
  408. package/src/utils/local-day.ts +18 -0
  409. package/src/workspace/pane-derive.ts +4 -4
  410. package/src/workspace/session.ts +28 -7
  411. package/src/workspace/tab-workspace.ts +137 -0
  412. package/src/workspace/workspace-back.ts +189 -0
  413. package/src/workspace/workspace-home.ts +133 -0
  414. package/src/workspace/workspace-ids.ts +129 -0
  415. package/src/workspace/workspace-switch.ts +372 -0
  416. package/src/workspace/workspace.ts +125 -11
  417. package/styles/shell-frame.css +30 -7
  418. package/styles/shell-frame.json +15 -3
  419. package/dist/chunks/2020-f2gkpy8d.js +0 -4
  420. package/dist/chunks/adapter-4912g339.js +0 -4
  421. package/dist/chunks/cf-account-picker-wccaenh6.js +0 -4
  422. package/dist/chunks/cf-settings-br6105tr.js +0 -4
  423. package/dist/chunks/color-28ksk2qm.js +0 -4
  424. package/dist/chunks/components-db68vsn7.js +0 -4
  425. package/dist/chunks/content-source-1449qesq.js +0 -4
  426. package/dist/chunks/convert-to-repeater-5h457egj.js +0 -4
  427. package/dist/chunks/editor-x9jn86a7.js +0 -4
  428. package/dist/chunks/entry-commands-may24cpt.js +0 -4
  429. package/dist/chunks/extension-sections-pvr14vxr.js +0 -4
  430. package/dist/chunks/file-ops-x9v54pcj.js +0 -4
  431. package/dist/chunks/files-j3knqf0s.js +0 -4
  432. package/dist/chunks/format-host-tyre2trb.js +0 -4
  433. package/dist/chunks/fs-events-64ma9htc.js +0 -4
  434. package/dist/chunks/git-panel-84ps5dex.js +0 -4
  435. package/dist/chunks/iframe-entry-fvbk89gm.js +0 -5
  436. package/dist/chunks/iframe-host-ck6vejt5.js +0 -4
  437. package/dist/chunks/index-b8xw3vy9.js +0 -4
  438. package/dist/chunks/jsonMode-w15cmrcm.js +0 -13
  439. package/dist/chunks/jx-validate-at3zn8wa.js +0 -4
  440. package/dist/chunks/layers-h4xp1pss.js +0 -4
  441. package/dist/chunks/layers-panel-m5hw1d7g.js +0 -4
  442. package/dist/chunks/lit-html-8t8t3dnr.js +0 -4
  443. package/dist/chunks/media-picker-2cweexc5.js +0 -4
  444. package/dist/chunks/menu-ynw13y0s.js +0 -4
  445. package/dist/chunks/monaco-buffer-qzxn567r.js +0 -4
  446. package/dist/chunks/monaco-setup-gxf6656g.js +0 -4
  447. package/dist/chunks/notify-cj5zbrs2.js +0 -4
  448. package/dist/chunks/parse-b7ddhr8m.js +0 -4
  449. package/dist/chunks/platform-3dfws9js.js +0 -4
  450. package/dist/chunks/popover-jt2gxmzs.js +0 -4
  451. package/dist/chunks/publish-panel-1gvxbj21.js +0 -4
  452. package/dist/chunks/quick-search-0dajrwqg.js +0 -4
  453. package/dist/chunks/references-49qgt404.js +0 -4
  454. package/dist/chunks/right-panel-jm1bwe53.js +0 -4
  455. package/dist/chunks/section-registry-6kwc4fky.js +0 -4
  456. package/dist/chunks/studio-0rt52vpq.js +0 -5
  457. package/dist/chunks/studio-18vgbhs5.js +0 -5
  458. package/dist/chunks/studio-24mccdrj.js +0 -5
  459. package/dist/chunks/studio-2eh507zk.js +0 -9
  460. package/dist/chunks/studio-2hcbccfv.js +0 -5
  461. package/dist/chunks/studio-2jbs3rxv.js +0 -5
  462. package/dist/chunks/studio-4h8k4dw9.js +0 -5
  463. package/dist/chunks/studio-5f6n18kx.js +0 -5
  464. package/dist/chunks/studio-5gthpky6.js +0 -5
  465. package/dist/chunks/studio-6ep3js6b.js +0 -9
  466. package/dist/chunks/studio-6wkmf3wz.js +0 -9
  467. package/dist/chunks/studio-841rf3cg.js +0 -5
  468. package/dist/chunks/studio-8gmwgheg.js +0 -5
  469. package/dist/chunks/studio-8qm0ep50.js +0 -5
  470. package/dist/chunks/studio-924p1tm1.js +0 -6
  471. package/dist/chunks/studio-a3shpz9y.js +0 -5
  472. package/dist/chunks/studio-amsbaaar.js +0 -6
  473. package/dist/chunks/studio-at5spjbc.js +0 -7
  474. package/dist/chunks/studio-b2xv945e.js +0 -5
  475. package/dist/chunks/studio-bn5nkafw.js +0 -5
  476. package/dist/chunks/studio-bw6q5xjf.js +0 -9
  477. package/dist/chunks/studio-c7q0t9x1.js +0 -5
  478. package/dist/chunks/studio-camnhc96.js +0 -6
  479. package/dist/chunks/studio-cffqvnzd.js +0 -5
  480. package/dist/chunks/studio-efvfrsf8.js +0 -5
  481. package/dist/chunks/studio-er30bpcx.js +0 -5
  482. package/dist/chunks/studio-ezscgr64.js +0 -5
  483. package/dist/chunks/studio-ffrrncvz.js +0 -5
  484. package/dist/chunks/studio-fpphgn8y.js +0 -10
  485. package/dist/chunks/studio-j1kvhdjk.js +0 -4
  486. package/dist/chunks/studio-j430n16g.js +0 -7
  487. package/dist/chunks/studio-jjkg84nj.js +0 -5
  488. package/dist/chunks/studio-m0q32ars.js +0 -4
  489. package/dist/chunks/studio-m6bdst11.js +0 -5
  490. package/dist/chunks/studio-nv2cptd4.js +0 -64
  491. package/dist/chunks/studio-nwfrc98n.js +0 -5
  492. package/dist/chunks/studio-p1wgvp7r.js +0 -5
  493. package/dist/chunks/studio-pag2wncm.js +0 -5
  494. package/dist/chunks/studio-qvanvzfd.js +0 -5
  495. package/dist/chunks/studio-qwa64kt7.js +0 -5
  496. package/dist/chunks/studio-rk1zc4x3.js +0 -928
  497. package/dist/chunks/studio-se2r3ptc.js +0 -5
  498. package/dist/chunks/studio-sg2a0dh0.js +0 -5
  499. package/dist/chunks/studio-tjzjhe68.js +0 -5
  500. package/dist/chunks/studio-v2w7q8r1.js +0 -7
  501. package/dist/chunks/studio-v5vjq1h0.js +0 -4
  502. package/dist/chunks/studio-v8aga3vp.js +0 -14
  503. package/dist/chunks/studio-vfcdrfmv.js +0 -5
  504. package/dist/chunks/studio-vmfkgdjf.js +0 -5
  505. package/dist/chunks/studio-wt1816jj.js +0 -5
  506. package/dist/chunks/studio-wz73q5kq.js +0 -4
  507. package/dist/chunks/studio-y04qtxvp.js +0 -7
  508. package/dist/chunks/studio-y21g8zzg.js +0 -5
  509. package/dist/chunks/studio-y64hrt8p.js +0 -12
  510. package/dist/chunks/studio-ynn90f58.js +0 -16
  511. package/dist/chunks/studio-yxz682sx.js +0 -5
  512. package/dist/chunks/studio-zp7snvkq.js +0 -5
  513. package/dist/chunks/studio-zq4z6tm6.js +0 -5
  514. package/dist/chunks/toast-c9fn075p.js +0 -4
  515. package/dist/chunks/tsMode-sf49ee9x.js +0 -14
  516. package/dist/chunks/workspace-jtfahpee.js +0 -4
  517. package/src/panels/frontmatter-panel.ts +0 -711
  518. package/src/panels/git-panel.ts +0 -1108
  519. package/src/surfaces/doc-header.json +0 -776
  520. package/src/surfaces/doc-header.ts +0 -222
  521. package/src/surfaces/git-panel.json +0 -1880
  522. package/src/surfaces/git-panel.ts +0 -264
@@ -1,64 +0,0 @@
1
- import{et,vf,Ih,A_,Ck,ar,P_,On,hs,wR,Ig,$n,$i,M_,xR,Ev,Dg,Z,gt,ei,ho,lr,H,xl,fu,As,Yc,vn,_R,Qt,ps,zi,Bn,Ae,_l,SR,ua,Ng,wf,e,p,Jt,ge,Kn,Io,fs,gr,CR,ha,vi,ms,$e,Ps,Fe,po,R,d,n,le,kk,Rn,en,k,r,Cl,br,fo,gs,Ms,Jo,Qi,be,Ve,Tv,tn,mu,Ag,Fa,q,s,t,F,y,Yo,gu,Gr,Lv,j_,Pg,ja,xf,Ha,bu,kR,yu,Zo,H_,_f,Mg,$v,Ft,ze,Fg,Vn,B_,pa,Ri,li,An,$t,Jr,Dh,Rv,Zc,Ba,yr,bs,wn,kl,Va,Xc,LR,V_,pc,Gn,Ge,Jn,Wt,El,$R,RR,Ii,mo,ti,Yn,_e,js,IR,Wn,se,Cf,Qc,Di,Nr,vu,Oh,Ek,ed,Dv,jt,ni,Nv,u,xn,W_,Yr,W,zn,DR,NR,Ue,OR,fc,j,Ne,ys,Ui,Tk,U_,Lk,wu,Zr,mc,B,on,c,wt,AR,td,Ov,Av,Hg,ci,Pv,Hs,nt,q_,PR,xt,Bg,vr,Wa,Ut,za,Nt,vs,nd,Ah,We,Ee,Ph,S,Se,ii,_,sn,g,MR,wr,er,fa,Mv,Le,No,$k,de,Mh,pn,D,Q,Ce,_t,_n,cr,ot,Xo,Ll,J,Be,ke,C,P,K,lt,Sn,Fh,l,wi,Pn,$l,Ni,fn,it,In,qt,Oi,FR,gc,Cn,Qo,jR,xi,HR,jh,K_,BR,id,Ke,G_,qi,Rk,Tf,Hh,Kt,U,Vg,Xr,xr,G,N,Fv,VR,pe,Un,es,ie,yt,ve,mn,Bh,go,Ki,st,Wg,Bs,Vh,Rl,Oo,Or,Ao,ts,rd,zg,z,Wh,jv,Y_,Z_,WR,X,Ht,Hv,Lf,Ua,_r,ft,Ai,zh,dr,Zn,Ik,$f,L,Il,m,Ug,V,Dk,Sr,St,zR,qa,Mi,ns,bc,Dn,Cr,_i,Kg,_u,Yt,Su,Gg,X_,UR,Ka,M,a,bo,me,Rf,De,Bv,If,Pe,zt,Df,Ar,ma,kr,qh,Nf,qR,ga,Kh,ws,Gh,KR,yc,Of,GR,Vs,JR,Dl,YR,Af,Jg,Jh,Q_,e0,ZR,XR,QR,eI,Cu,sd,Vv,ad,Yg,t0,Nk,Wv,zv,Yh,Uv,tI,qv,n0,i0,Pf,ku,Mf,Zg,Eu,vc,Ff,wc,Ga,Xg,Qr,Tu,Ct,kt,Ot,di,Kv,Ja,ht,Ya,r0,xc,Gv,Zh,Ok,jf,nI,Xh,ld,Qg,Je,ui,Ak,Hf,It,eb,Si,tb,Lu,Po,Bf,s0,Qh,Nl,o,ep,je,an,hi,iI,a0,Vf,Yv,l0,c0,nn,Al,bt,yo,Pk,oI,fe,Zv,vo,sI,zs,Mn,Wf,tr,nb,ln,Xv,Qv,ew,tw,d0,aI,cd,u0,_c,ce,Sc,Pl,kn,dd,lI,is,Fn,zf,tp,h0,p0,f0,Mk,uI,Ru,Mo,ib,Cc,hI,En,Iu,wo,g0,rb,nw,ur,Za,Pr,pI,Er,Fk,iw,xo,Uf,gn,Tn,Ml,rw,b0,y0,ob,Ji,rs,Xe,ri,ip,ow,jk,Gf,eo,pi,Re,hr,Fl,sb,ab,lb,w0,rp,kc,Jf,gI,Xa,x0,cb,Fi,db,_0,jl,sw,nr,aw,lw,Hl,S0,cw,dw,uw,hw,pw,qs,Hk,C0,k0,E0,Zt,fw,_o,T0,ya,xs,Ks,L0,bI,yI,$0,vI,R0,Bl,Vl,I0,mw,Vt,Qa,Yf,Gs,Du,hb,hd,pd,A0,va,At,P0,pb,Bk,os,Fo,M0,fi,md,Ec,wa,bw,oi,rt,yw,Ou,Au,xa,fb,F0,lp,ss,mb,cp,Wk,wI,zk,dp,ye}from"./studio-rk1zc4x3.js";import{we}from"./studio-a3g98wjr.js";class Sy extends U{constructor(){super({id:"editor.action.forceRetokenize",label:p(1606,"Developer: Force Retokenize"),precondition:void 0})}run(f,i){if(!i.hasModel())return;let h=i.getModel();h.tokenization.resetTokenization();let b=new en;h.tokenization.forceTokenization(h.getLineCount()),b.stop(),console.log(`tokenization took ${b.elapsed()}`)}}N(Sy);class Pt{static{this.sep="."}static{this.None=new Pt("@@none@@")}static{this.Empty=new Pt("")}constructor(f){this.value=f}equals(f){return this.value===f.value}contains(f){return this.equals(f)||this.value===""||f.value.startsWith(this.value+Pt.sep)}intersects(f){return this.contains(f)||f.contains(this)}append(...f){return new Pt((this.value?[this.value,...f]:f).join(Pt.sep))}}var a2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},d2=function(f,i){return function(h,b){i(h,b,f)}},l2=ce.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:V_,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0,widthInEm:1}});class __ extends n{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(f,i,h,b,v){super();this.typeId=f,this.editor=i,this.range=h,this.delegate=v,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(b),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(f){this.domNode=g(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=f;let i=g("span.icon");this.domNode.append(i),i.classList.add(...J.asClassNameArray(y.loading),"codicon-modifier-spin");let h=()=>{let b=this.editor.getOption(75);this.domNode.style.height=`${b}px`,this.domNode.style.width=`${Math.ceil(0.8*b)}px`};h(),this._register(this.editor.onDidChangeConfiguration((b)=>{if(b.hasChanged(61)||b.hasChanged(75))h()})),this._register(c(this.domNode,S.CLICK,(b)=>{this.delegate.cancel()}))}getId(){return __.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}var Cg=class f extends n{constructor(i,h,b){super();this.id=i,this._editor=h,this._instantiationService=b,this._showDelay=500,this._showPromise=this._register(new le),this._currentWidget=this._register(new le),this._operationIdPool=0,this._currentDecorations=h.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(i,h,b,v,w){let x=this._operationIdPool++;this._currentOperation=x,this.clear(),this._showPromise.value=ti(()=>{let I=t.fromPositions(i);if(this._currentDecorations.set([{range:I,options:l2}]).length>0)this._currentWidget.value=this._instantiationService.createInstance(__,this.id,this._editor,I,h,v)},w??this._showDelay);try{return await b}finally{if(this._currentOperation===x)this.clear(),this._currentOperation=void 0}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};Cg=a2([d2(2,D)],Cg);var c2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},wy=function(f,i){return function(h,b){i(h,b,f)}},hg,Ei=class f{static{hg=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new P("messageVisible",!1,e(1353,"Whether the editor is currently showing an inline message"))}static get(i){return i.getContribution(hg.ID)}constructor(i,h,b){this._openerService=b,this._messageWidget=new le,this._messageListeners=new d,this._mouseOverMessage=!1,this._editor=i,this._visible=hg.MESSAGE_VISIBLE.bindTo(h)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(i,h){if(Dn(wo(i)?i.value:i),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),wo(i)){let v=this._messageListeners.add(Za(i,{actionHandler:(w,x)=>{this.closeMessage(),Fk(this._openerService,w,x.isTrusted)}}));this._messageWidget.value=new ug(this._editor,h,v.element)}else this._messageWidget.value=new ug(this._editor,h,i);this._messageListeners.add(k.debounce(this._editor.onDidBlurEditorText,(v,w)=>w,0)(()=>{if(this._mouseOverMessage)return;if(this._messageWidget.value&&Ut(Nt(),this._messageWidget.value.getDomNode()))return;this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(c(this._messageWidget.value.getDomNode(),S.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(c(this._messageWidget.value.getDomNode(),S.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let b;this._messageListeners.add(this._editor.onMouseMove((v)=>{if(!v.target.position)return;if(!b)b=new t(h.lineNumber-3,1,v.target.position.lineNumber+3,1);else if(!b.containsPosition(v.target.position))this.closeMessage()}))}closeMessage(){if(this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value)this._messageListeners.add(ug.fadeOut(this._messageWidget.value))}};Ei=hg=c2([wy(1,K),wy(2,Pr)],Ei);var h2=Kt.bindToContribution(Ei.get);G(new h2({id:"leaveEditorMessage",precondition:Ei.MESSAGE_VISIBLE,handler:(f)=>f.closeMessage(),kbOpts:{weight:130,primary:9}}));class ug{static fadeOut(f){let i=()=>{f.dispose(),clearTimeout(h),f.getDomNode().removeEventListener("animationend",i)},h=setTimeout(i,110);return f.getDomNode().addEventListener("animationend",i),f.getDomNode().classList.add("fadeOut"),{dispose:i}}constructor(f,{lineNumber:i,column:h},b){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=f,this._editor.revealLinesInCenterIfOutsideViewport(i,i,0),this._position={lineNumber:i,column:h},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";let v=document.createElement("div");v.classList.add("anchor","top"),this._domNode.appendChild(v);let w=document.createElement("div");if(typeof b==="string")w.classList.add("message"),w.textContent=b;else b.classList.add("message"),w.appendChild(b);this._domNode.appendChild(w);let x=document.createElement("div");x.classList.add("anchor","below"),this._domNode.appendChild(x),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(f){this._domNode.classList.toggle("below",f===2)}}pe(Ei.ID,Ei,4);var b_=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Wc=function(f,i){return function(h,b){i(h,b,f)}};class pg{constructor(f){this.copyMimeTypes=[],this.kind=f,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(f,i,h,b,v){let w=await this.getEdit(h,v);if(!w)return;return{edits:[{insertText:w.insertText,title:w.title,kind:w.kind,handledMimeType:w.handledMimeType,yieldTo:w.yieldTo}],dispose(){}}}async provideDocumentDropEdits(f,i,h,b){let v=await this.getEdit(h,b);if(!v)return;return{edits:[{insertText:v.insertText,title:v.title,kind:v.kind,handledMimeType:v.handledMimeType,yieldTo:v.yieldTo}],dispose(){}}}}class du extends pg{static{this.id="text"}constructor(){super(Pt.Empty.append("text","plain"));this.id=du.id,this.dropMimeTypes=[mn.text],this.pasteMimeTypes=[mn.text]}async getEdit(f,i){let h=f.get(mn.text);if(!h)return;if(f.has(mn.uriList))return;let b=await h.asString();return{handledMimeType:mn.text,title:e(980,"Insert Plain Text"),insertText:b,kind:this.kind}}}class v_ extends pg{constructor(){super(Pt.Empty.append("uri","path","absolute"));this.dropMimeTypes=[mn.uriList],this.pasteMimeTypes=[mn.uriList]}async getEdit(f,i){let h=await yy(f);if(!h.length||i.isCancellationRequested)return;let b=0,v=h.map(({uri:x,originalText:I})=>{if(x.scheme===se.file)return x.fsPath;else return b++,I}).join(" "),w;if(b>0)w=h.length>1?e(981,"Insert Uris"):e(982,"Insert Uri");else w=h.length>1?e(983,"Insert Paths"):e(984,"Insert Path");return{handledMimeType:mn.uriList,insertText:v,title:w,kind:this.kind}}}var gg=class f extends pg{constructor(i){super(Pt.Empty.append("uri","path","relative"));this._workspaceContextService=i,this.dropMimeTypes=[mn.uriList],this.pasteMimeTypes=[mn.uriList]}async getEdit(i,h){let b=await yy(i);if(!b.length||h.isCancellationRequested)return;let v=ar(b.map(({uri:w})=>{let x=this._workspaceContextService.getWorkspaceFolder(w);return x?BR(x.uri,w):void 0}));if(!v.length)return;return{handledMimeType:mn.uriList,insertText:v.join(" "),title:b.length>1?e(985,"Insert Relative Paths"):e(986,"Insert Relative Path"),kind:this.kind}}};gg=b_([Wc(0,Ks)],gg);class Cy{constructor(){this.kind=new Pt("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:mn.text}]}async provideDocumentPasteEdits(f,i,h,b,v){if(b.triggerKind!==xf.PasteAs&&!b.only?.contains(this.kind))return;let x=await h.get("text/html")?.asString();if(!x||v.isCancellationRequested)return;return{dispose(){},edits:[{insertText:x,yieldTo:this._yieldTo,title:e(987,"Insert HTML"),kind:this.kind}]}}}async function yy(f){let i=f.get(mn.uriList);if(!i)return[];let h=await i.asString(),b=[];for(let v of jf.parse(h))try{b.push({uri:q.parse(v),originalText:v})}catch{}return b}var Pa={scheme:"*",hasAccessToAllModels:!0},k_=class f extends n{constructor(i,h){super();this._register(i.documentDropEditProvider.register(Pa,new du)),this._register(i.documentDropEditProvider.register(Pa,new v_)),this._register(i.documentDropEditProvider.register(Pa,new gg(h)))}};k_=b_([Wc(0,V),Wc(1,Ks)],k_);var E_=class f extends n{constructor(i,h){super();this._register(i.documentPasteEditProvider.register(Pa,new du)),this._register(i.documentPasteEditProvider.register(Pa,new v_)),this._register(i.documentPasteEditProvider.register(Pa,new gg(h))),this._register(i.documentPasteEditProvider.register(Pa,new Cy))}};E_=b_([Wc(0,V),Wc(1,Ks)],E_);class bn{constructor(){this.value="",this.pos=0}static{this._table={[36]:0,[58]:1,[44]:2,[123]:3,[125]:4,[92]:5,[47]:6,[124]:7,[43]:11,[45]:12,[63]:13}}static isDigitCharacter(f){return f>=48&&f<=57}static isVariableCharacter(f){return f===95||f>=97&&f<=122||f>=65&&f<=90}text(f){this.value=f,this.pos=0}tokenText(f){return this.value.substr(f.pos,f.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let f=this.pos,i=0,h=this.value.charCodeAt(f),b;if(b=bn._table[h],typeof b==="number")return this.pos+=1,{type:b,pos:f,len:1};if(bn.isDigitCharacter(h)){b=8;do i+=1,h=this.value.charCodeAt(f+i);while(bn.isDigitCharacter(h));return this.pos+=i,{type:b,pos:f,len:i}}if(bn.isVariableCharacter(h)){b=9;do h=this.value.charCodeAt(f+ ++i);while(bn.isVariableCharacter(h)||bn.isDigitCharacter(h));return this.pos+=i,{type:b,pos:f,len:i}}b=10;do i+=1,h=this.value.charCodeAt(f+i);while(!isNaN(h)&&typeof bn._table[h]>"u"&&!bn.isDigitCharacter(h)&&!bn.isVariableCharacter(h));return this.pos+=i,{type:b,pos:f,len:i}}}class Aa{constructor(){this._children=[]}appendChild(f){if(f instanceof ki&&this._children[this._children.length-1]instanceof ki)this._children[this._children.length-1].value+=f.value;else f.parent=this,this._children.push(f);return this}replace(f,i){let{parent:h}=f,b=h.children.indexOf(f),v=h.children.slice(0);v.splice(b,1,...i),h._children=v,function w(x,I){for(let E of x)E.parent=I,w(E.children,E)}(i,h)}get children(){return this._children}get rightMostDescendant(){if(this._children.length>0)return this._children[this._children.length-1].rightMostDescendant;return this}get snippet(){let f=this;while(!0){if(!f)return;if(f instanceof Zd)return f;f=f.parent}}toString(){return this.children.reduce((f,i)=>f+i.toString(),"")}len(){return 0}}class ki extends Aa{constructor(f){super();this.value=f}toString(){return this.value}len(){return this.value.length}clone(){return new ki(this.value)}}class S_ extends Aa{}class lo extends S_{static compareByIndex(f,i){if(f.index===i.index)return 0;else if(f.isFinalTabstop)return 1;else if(i.isFinalTabstop)return-1;else if(f.index<i.index)return-1;else if(f.index>i.index)return 1;else return 0}constructor(f){super();this.index=f}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof $a?this._children[0]:void 0}clone(){let f=new lo(this.index);if(this.transform)f.transform=this.transform.clone();return f._children=this.children.map((i)=>i.clone()),f}}class $a extends Aa{constructor(){super(...arguments);this.options=[]}appendChild(f){if(f instanceof ki)f.parent=this,this.options.push(f);return this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let f=new $a;return this.options.forEach(f.appendChild,f),f}}class w_ extends Aa{constructor(){super(...arguments);this.regexp=new RegExp("")}resolve(f){let i=this,h=!1,b=f.replace(this.regexp,function(){return h=!0,i._replace(Array.prototype.slice.call(arguments,0,-2))});if(!h&&this._children.some((v)=>v instanceof yn&&Boolean(v.elseValue)))b=this._replace([]);return b}_replace(f){let i="";for(let h of this._children)if(h instanceof yn){let b=f[h.index]||"";b=h.resolve(b),i+=b}else i+=h.toString();return i}toString(){return""}clone(){let f=new w_;return f.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),f._children=this.children.map((i)=>i.clone()),f}}class yn extends Aa{constructor(f,i,h,b){super();this.index=f,this.shorthandName=i,this.ifValue=h,this.elseValue=b}resolve(f){if(this.shorthandName==="upcase")return!f?"":f.toLocaleUpperCase();else if(this.shorthandName==="downcase")return!f?"":f.toLocaleLowerCase();else if(this.shorthandName==="capitalize")return!f?"":f[0].toLocaleUpperCase()+f.substr(1);else if(this.shorthandName==="pascalcase")return!f?"":this._toPascalCase(f);else if(this.shorthandName==="camelcase")return!f?"":this._toCamelCase(f);else if(this.shorthandName==="kebabcase")return!f?"":this._toKebabCase(f);else if(this.shorthandName==="snakecase")return!f?"":this._toSnakeCase(f);else if(Boolean(f)&&typeof this.ifValue==="string")return this.ifValue;else if(!Boolean(f)&&typeof this.elseValue==="string")return this.elseValue;else return f||""}_toKebabCase(f){if(!f.match(/[\p{L}0-9]+/gu))return f;if(!f.match(/[\p{L}0-9]/u))return f.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");let h=f.trim().replace(/^_+|_+$/g,""),b=h.match(/\p{Lu}{2,}(?=\p{Lu}\p{Ll}+[0-9]*|[\s_-]|$)|\p{Lu}?\p{Ll}+[0-9]*|\p{Lu}(?=\p{Lu}\p{Ll})|\p{Lu}(?=[\s_-]|$)|[0-9]+/gu);if(!b)return h.split(/[\s_-]+/).filter((v)=>v.length>0).map((v)=>v.toLowerCase()).join("-");return b.map((v)=>v.toLowerCase()).join("-")}_toPascalCase(f){let i=f.match(/[\p{L}0-9]+/gu);if(!i)return f;return i.map((h)=>h.charAt(0).toUpperCase()+h.substr(1)).join("")}_toCamelCase(f){let i=f.match(/[\p{L}0-9]+/gu);if(!i)return f;return i.map((h,b)=>{if(b===0)return h.charAt(0).toLowerCase()+h.substr(1);return h.charAt(0).toUpperCase()+h.substr(1)}).join("")}_toSnakeCase(f){return f.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new yn(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Os extends S_{constructor(f){super();this.name=f}resolve(f){let i=f.resolve(this);if(this.transform)i=this.transform.resolve(i||"");if(i!==void 0)return this._children=[new ki(i)],!0;return!1}clone(){let f=new Os(this.name);if(this.transform)f.transform=this.transform.clone();return f._children=this.children.map((i)=>i.clone()),f}}function xy(f,i){let h=[...f];while(h.length>0){let b=h.shift();if(!i(b))break;h.unshift(...b.children)}}class Zd extends Aa{get placeholderInfo(){if(!this._placeholders){let f=[],i;this.walk(function(h){if(h instanceof lo)f.push(h),i=!i||i.index<h.index?h:i;return!0}),this._placeholders={all:f,last:i}}return this._placeholders}get placeholders(){let{all:f}=this.placeholderInfo;return f}offset(f){let i=0,h=!1;if(this.walk((b)=>{if(b===f)return h=!0,!1;return i+=b.len(),!0}),!h)return-1;return i}fullLen(f){let i=0;return xy([f],(h)=>(i+=h.len(),!0)),i}enclosingPlaceholders(f){let i=[],{parent:h}=f;while(h){if(h instanceof lo)i.push(h);h=h.parent}return i}resolveVariables(f){return this.walk((i)=>{if(i instanceof Os){if(i.resolve(f))this._placeholders=void 0}return!0}),this}appendChild(f){return this._placeholders=void 0,super.appendChild(f)}replace(f,i){return this._placeholders=void 0,super.replace(f,i)}clone(){let f=new Zd;return f._children=this.children.map((i)=>i.clone()),f}walk(f){xy(this.children,f)}}class co{constructor(){this._scanner=new bn,this._token={type:14,pos:0,len:0}}static escape(f){return f.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(f){return/\${?CLIPBOARD/.test(f)}parse(f,i,h){let b=new Zd;return this.parseFragment(f,b),this.ensureFinalTabstop(b,h??!1,i??!1),b}parseFragment(f,i){let h=i.children.length;this._scanner.text(f),this._token=this._scanner.next();while(this._parse(i));let b=new Map,v=[];i.walk((I)=>{if(I instanceof lo)if(I.isFinalTabstop)b.set(0,void 0);else if(!b.has(I.index)&&I.children.length>0)b.set(I.index,I.children);else v.push(I);return!0});let w=(I,E)=>{let T=b.get(I.index);if(!T)return;let O=new lo(I.index);O.transform=I.transform;for(let A of T){let Y=A.clone();if(O.appendChild(Y),Y instanceof lo&&b.has(Y.index)&&!E.has(Y.index))E.add(Y.index),w(Y,E),E.delete(Y.index)}i.replace(I,[O])},x=new Set;for(let I of v)w(I,x);return i.children.slice(h)}ensureFinalTabstop(f,i,h){if(i||h&&f.placeholders.length>0){if(!f.placeholders.find((v)=>v.index===0))f.appendChild(new lo(0))}}_accept(f,i){if(f===void 0||this._token.type===f){let h=!i?!0:this._scanner.tokenText(this._token);return this._token=this._scanner.next(),h}return!1}_backTo(f){return this._scanner.pos=f.pos+f.len,this._token=f,!1}_until(f){let i=this._token;while(this._token.type!==f){if(this._token.type===14)return!1;else if(this._token.type===5){let b=this._scanner.next();if(b.type!==0&&b.type!==4&&b.type!==5)return!1}this._token=this._scanner.next()}let h=this._scanner.value.substring(i.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),h}_parse(f){return this._parseEscaped(f)||this._parseTabstopOrVariableName(f)||this._parseComplexPlaceholder(f)||this._parseComplexVariable(f)||this._parseAnything(f)}_parseEscaped(f){let i;if(i=this._accept(5,!0))return i=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||i,f.appendChild(new ki(i)),!0;return!1}_parseTabstopOrVariableName(f){let i,h=this._token;if(!(this._accept(0)&&(i=this._accept(9,!0)||this._accept(8,!0))))return this._backTo(h);return f.appendChild(/^\d+$/.test(i)?new lo(Number(i)):new Os(i)),!0}_parseComplexPlaceholder(f){let i,h=this._token;if(!(this._accept(0)&&this._accept(3)&&(i=this._accept(8,!0))))return this._backTo(h);let v=new lo(Number(i));if(this._accept(1))while(!0){if(this._accept(4))return f.appendChild(v),!0;if(this._parse(v))continue;return f.appendChild(new ki("${"+i+":")),v.children.forEach(f.appendChild,f),!0}else if(v.index>0&&this._accept(7)){let w=new $a;while(!0){if(this._parseChoiceElement(w)){if(this._accept(2))continue;if(this._accept(7)){if(v.appendChild(w),this._accept(4))return f.appendChild(v),!0}}return this._backTo(h),!1}}else if(this._accept(6)){if(this._parseTransform(v))return f.appendChild(v),!0;return this._backTo(h),!1}else if(this._accept(4))return f.appendChild(v),!0;else return this._backTo(h)}_parseChoiceElement(f){let i=this._token,h=[];while(!0){if(this._token.type===2||this._token.type===7)break;let b;if(b=this._accept(5,!0))b=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||b;else b=this._accept(void 0,!0);if(!b)return this._backTo(i),!1;h.push(b)}if(h.length===0)return this._backTo(i),!1;return f.appendChild(new ki(h.join(""))),!0}_parseComplexVariable(f){let i,h=this._token;if(!(this._accept(0)&&this._accept(3)&&(i=this._accept(9,!0))))return this._backTo(h);let v=new Os(i);if(this._accept(1))while(!0){if(this._accept(4))return f.appendChild(v),!0;if(this._parse(v))continue;return f.appendChild(new ki("${"+i+":")),v.children.forEach(f.appendChild,f),!0}else if(this._accept(6)){if(this._parseTransform(v))return f.appendChild(v),!0;return this._backTo(h),!1}else if(this._accept(4))return f.appendChild(v),!0;else return this._backTo(h)}_parseTransform(f){let i=new w_,h="",b="";while(!0){if(this._accept(6))break;let v;if(v=this._accept(5,!0)){v=this._accept(6,!0)||v,h+=v;continue}if(this._token.type!==14){h+=this._accept(void 0,!0);continue}return!1}while(!0){if(this._accept(6))break;let v;if(v=this._accept(5,!0)){v=this._accept(5,!0)||this._accept(6,!0)||v,i.appendChild(new ki(v));continue}if(this._parseFormatString(i)||this._parseAnything(i))continue;return!1}while(!0){if(this._accept(4))break;if(this._token.type!==14){b+=this._accept(void 0,!0);continue}return!1}try{i.regexp=new RegExp(h,b)}catch(v){return!1}return f.transform=i,!0}_parseFormatString(f){let i=this._token;if(!this._accept(0))return!1;let h=!1;if(this._accept(3))h=!0;let b=this._accept(8,!0);if(!b)return this._backTo(i),!1;else if(!h)return f.appendChild(new yn(Number(b))),!0;else if(this._accept(4))return f.appendChild(new yn(Number(b))),!0;else if(!this._accept(1))return this._backTo(i),!1;if(this._accept(6)){let v=this._accept(9,!0);if(!v||!this._accept(4))return this._backTo(i),!1;else return f.appendChild(new yn(Number(b),v)),!0}else if(this._accept(11)){let v=this._until(4);if(v)return f.appendChild(new yn(Number(b),void 0,v,void 0)),!0}else if(this._accept(12)){let v=this._until(4);if(v)return f.appendChild(new yn(Number(b),void 0,void 0,v)),!0}else if(this._accept(13)){let v=this._until(1);if(v){let w=this._until(4);if(w)return f.appendChild(new yn(Number(b),void 0,v,w)),!0}}else{let v=this._until(4);if(v)return f.appendChild(new yn(Number(b),void 0,void 0,v)),!0}return this._backTo(i),!1}_parseAnything(f){if(this._token.type!==14)return f.appendChild(new ki(this._scanner.tokenText(this._token))),this._accept(void 0),!0;return!1}}function mg(f,i,h){if(typeof h.insertText==="string"?h.insertText==="":h.insertText.snippet==="")return{edits:h.additionalEdit?.edits??[]};return{edits:[...i.map((b)=>new Vl(f,{range:b,text:typeof h.insertText==="string"?co.escape(h.insertText)+"$0":h.insertText.snippet,insertAsSnippet:!0})),...h.additionalEdit?.edits??[]]}}function T_(f){function i(x,I){if("mimeType"in x)return x.mimeType===I.handledMimeType;return!!I.kind&&x.kind.contains(I.kind)}let h=new Map;for(let x of f)for(let I of x.yieldTo??[])for(let E of f){if(E===x)continue;if(i(I,E)){let T=h.get(x);if(!T)T=[],h.set(x,T);T.push(E)}}if(!h.size)return Array.from(f);let b=new Set,v=[];function w(x){if(!x.length)return[];let I=x[0];if(v.includes(I))return console.warn("Yield to cycle detected",I),x;if(b.has(I))return w(x.slice(1));let E=[],T=h.get(I);if(T)v.push(I),E=w(T),v.pop();return b.add(I),[...E,I,...w(x.slice(1))]}return w(Array.from(f))}function C_(f,i){if(i&&(f.stack||f.stacktrace))return e(33,"{0}: {1}",Ly(f),Iy(f.stack)||Iy(f.stacktrace));return Ly(f)}function Iy(f){if(Array.isArray(f))return f.join(`
2
- `);return f}function Ly(f){if(f.code==="ERR_UNC_HOST_NOT_ALLOWED")return`${f.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;if(typeof f.code==="string"&&typeof f.errno==="number"&&typeof f.syscall==="string")return e(34,"A system error occurred ({0})",f.message);return f.message||e(35,"An unknown error occurred. Please consult the log for more details.")}function kg(f=null,i=!1){if(!f)return e(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(f)){let h=ar(f),b=kg(h[0],i);if(h.length>1)return e(37,"{0} ({1} errors in total)",b,h.length);return b}if(vn(f))return f;if(f.detail){let h=f.detail;if(h.error)return C_(h.error,i);if(h.exception)return C_(h.exception,i)}if(f.stack)return C_(f,i);if(f.message)return f.message;return e(38,"An unknown error occurred. Please consult the log for more details.")}class y_ extends n{constructor(f){super();this._onChange=this._register(new r),this.onChange=this._onChange.event,this._checked=!!f.checked,this._title=f.title??f.ariaLabel,this.domNode=g("button.monaco-switch"),this.domNode.type="button",this.domNode.setAttribute("role","switch"),_(this.domNode,g(".monaco-switch-thumb")),this._register(pi().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}))),this.setAriaLabel(f.ariaLabel,f.title),this.disabled=!!f.disabled,this._applyState(),this._register(c(this.domNode,S.CLICK,(i)=>{if(Se.stop(i,!0),this.domNode.disabled)return;this._checked=!this._checked,this._applyState(),this._onChange.fire(this._checked)}))}get checked(){return this._checked}set checked(f){if(this._checked!==f)this._checked=f,this._applyState()}get disabled(){return this.domNode.disabled}set disabled(f){this.domNode.disabled=f}setAriaLabel(f,i=f){this.domNode.setAttribute("aria-label",f),this._title=i}_applyState(){this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked)}}var u2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ey=function(f,i){return function(h,b){i(h,b,f)}},Xd=class f extends n{get enabled(){return this._enabled}set enabled(i){if(i)this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1;else this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0;this._enabled=i}constructor(i,h,b={},v,w){super();this._link=h,this._hoverService=v,this._enabled=!0,this.el=_(i,g("a.monaco-link",{tabIndex:h.tabIndex??0,href:h.href},h.label)),this.hoverDelegate=b.hoverDelegate??eo("mouse"),this.setTooltip(h.title),this.el.setAttribute("role","button");let x=this._register(new ht(this.el,"click")),I=this._register(new ht(this.el,"keydown")),E=k.chain(I.event,(A)=>A.map((Y)=>new Ge(Y)).filter((Y)=>Y.keyCode===3||Y.keyCode===10)),T=this._register(new ht(this.el,kt.Tap)).event;this._register(Ot.addTarget(this.el));let O=k.any(x.event,E,T);this._register(O((A)=>{if(!this.enabled)return;if(Se.stop(A,!0),b?.opener)b.opener(this._link.href);else w.open(this._link.href,{allowCommands:!0})})),this.enabled=!0}setTooltip(i){if(!this.hover&&i)this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,i));else if(this.hover)this.hover.update(i)}};Xd=u2([Ey(3,kn),Ey(4,Pr)],Xd);var gb=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Fs=function(f,i){return function(h,b){i(h,b,f)}},x_,_g="acceptSelectedCodeAction",bg="previewSelectedCodeAction",g2=new Set([_g,bg,"toggleSectionCodeAction"]),p2="actionList.remove";class Dy{get templateId(){return"header"}renderTemplate(f){f.classList.add("group-header");let i=document.createElement("span");return f.append(i),{container:f,text:i}}renderElement(f,i,h){h.text.textContent=f.group?.title??f.label??""}disposeTemplate(f){}}class Ry{get templateId(){return"separator"}renderTemplate(f){f.classList.add("separator");let i=document.createElement("span");return f.append(i),{container:f,text:i}}renderElement(f,i,h){h.container.classList.toggle("has-label",!!f.label),h.text.textContent=f.label??""}disposeTemplate(f){}}function ky(f){return!!f.submenuActions?.length&&!f.hover?.content||!!f.hover?.expandable}function Ty(f){return ky(f)&&f.hover?.showIndicator!==!1}var F_=class f{get templateId(){return"action"}constructor(i,h,b,v,w,x,I,E,T,O,A,Y){this._supportsPreview=i,this._onRemoveItem=h,this._onShowSubmenu=b,this._reservesSubmenuSpace=v,this._groupTitleByIndex=w,this._linkHandler=x,this._hideDefaultKeybindingTooltip=I,this._stopToolbarPointerPropagation=E,this._registerStandaloneToggle=T,this._registerToolbar=O,this._keybindingService=A,this._openerService=Y}renderTemplate(i){i.classList.add(this.templateId);let h=document.createElement("div");h.className="icon",i.append(h);let b=document.createElement("span");b.className="title",i.append(b);let v=document.createElement("span");v.className="action-item-badge",v.ariaHidden="true",i.append(v);let w=document.createElement("span");w.className="description",i.append(w);let x=document.createElement("span");x.className="group-title",i.append(x);let I=document.createElement("span");I.className="detail",i.append(I);let E=new va(i,vi),T=document.createElement("div");T.className="action-list-item-toolbar",i.append(T);let O=document.createElement("div");O.className="action-list-submenu-indicator",i.append(O);let A=document.createElement("div");A.className="action-list-item-inline-toggle",i.append(A);let Y=new d;return{container:i,icon:h,text:b,detail:I,badge:v,description:w,groupTitle:x,keybinding:E,toolbar:T,submenuIndicator:O,inlineToggleContainer:A,elementDisposables:Y}}renderElement(i,h,b){if(b.elementDisposables.clear(),i.iconClasses?.length)b.icon.className=["icon",...i.iconClasses].join(" "),b.icon.style.color="";else if(i.group?.icon)b.icon.className=J.asClassName(i.group.icon),b.icon.style.color=i.group.icon.color?M(i.group.icon.color.id):"";else b.icon.className=J.asClassName(y.lightBulb),b.icon.style.color="var(--vscode-editorLightBulb-foreground)";if(!i.item&&!i.standaloneToggle||!i.label)return;if(MR(!i.hideIcon,b.icon),i.isSectionToggle){let O=i.group?.icon===y.chevronDown;b.container.setAttribute("aria-expanded",String(O))}else b.container.removeAttribute("aria-expanded");if(b.previousClassNames?.length)b.container.classList.remove(...b.previousClassNames);let v=i.className?.split(/\s+/).filter((O)=>O.length>0)??[];if(b.container.classList.toggle("action-list-custom",v.length>0),v.length)b.container.classList.add(...v);if(b.previousClassNames=v,b.text.textContent=Uo(i.label),i.badge)b.badge.textContent=i.badge,b.badge.style.display="";else b.badge.textContent="",b.badge.style.display="none";if(i.keybinding)b.description.textContent=i.keybinding.getLabel(),b.description.style.display="inline",b.description.style.letterSpacing="0.5px";else if(i.description){if(on(b.description),typeof i.description==="string")b.description.textContent=Uo(i.description);else{let O=Za(i.description,{actionHandler:(A)=>{let Y=q.parse(A);if(this._linkHandler)this._linkHandler(Y,i);else this._openerService.open(Y,{allowCommands:!0})}});b.elementDisposables.add(O),b.description.appendChild(O.element)}b.description.style.display="inline"}else b.description.textContent="",b.description.style.display="none";let w=this._groupTitleByIndex.get(h);if(w)b.groupTitle.textContent=w,b.groupTitle.style.display="";else b.groupTitle.textContent="",b.groupTitle.style.display="none";if(i.detail)b.detail.textContent=Uo(i.detail),b.detail.style.display="";else b.detail.textContent="",b.detail.style.display="none";b.container.classList.toggle("has-detail",!!i.detail),on(b.inlineToggleContainer);let x=i.standaloneToggle??i.inlineToggle;if(x){let O=document.createElement("span");if(O.className="action-list-item-inline-toggle-label",O.textContent=Uo(x.label),!i.standaloneToggle)b.inlineToggleContainer.append(O);b.inlineToggleContainer.style.display="",b.container.classList.toggle("has-inline-toggle",!!i.inlineToggle),b.container.classList.toggle("has-standalone-toggle",!!i.standaloneToggle);let A=b.elementDisposables.add(new y_({ariaLabel:x.title??x.label,checked:x.checked,disabled:x.disabled}));if(b.inlineToggleContainer.append(A.domNode),i.standaloneToggle)b.elementDisposables.add(this._registerStandaloneToggle(i,A));b.elementDisposables.add(A.onChange(()=>x.onChange(A.checked))),b.elementDisposables.add(c(b.inlineToggleContainer,S.CLICK,(Y)=>Y.stopPropagation()))}else b.inlineToggleContainer.style.display="none",b.container.classList.remove("has-inline-toggle"),b.container.classList.remove("has-standalone-toggle");let I=this._keybindingService.lookupKeybinding(_g)?.getLabel(),E=this._keybindingService.lookupKeybinding(bg)?.getLabel();if(b.container.classList.toggle("option-disabled",!!i.disabled),i.hover!==void 0)b.container.title="";else if(i.tooltip)b.container.title=i.tooltip;else if(i.disabled)b.container.title=i.label;else if(i.standaloneToggle)b.container.title="";else if(this._hideDefaultKeybindingTooltip)b.container.title="";else if(I&&E)if(this._supportsPreview&&i.canPreview)b.container.title=e(1731,"{0} to Apply, {1} to Preview",I,E);else b.container.title=e(1732,"{0} to Apply",I);else b.container.title="";on(b.toolbar);let T=[...i.toolbarActions??[]];if(i.onRemove)T.push(Ll({id:p2,label:e(1733,"Remove"),class:J.asClassName(y.close),run:async()=>{await i.onRemove(),this._onRemoveItem?.(i)}}));if(b.container.classList.toggle("has-toolbar",T.length>0),T.length>0){let O=new Fi(b.toolbar);if(b.elementDisposables.add(O),this._stopToolbarPointerPropagation)b.elementDisposables.add(td(b.toolbar,(A)=>{A.preventDefault(),A.stopPropagation()})),b.elementDisposables.add(c(b.toolbar,S.CLICK,(A)=>A.stopPropagation())),b.elementDisposables.add(c(b.toolbar,kt.Tap,(A)=>A.stopPropagation()));else b.elementDisposables.add(td(b.toolbar,(A)=>A.preventDefault()));O.push(T,{icon:!0,label:!1}),b.elementDisposables.add(this._registerToolbar(i,O))}if(Ty(i))b.submenuIndicator.className="action-list-submenu-indicator has-submenu "+J.asClassName(y.chevronRight),b.submenuIndicator.style.display="",b.submenuIndicator.style.visibility="",b.elementDisposables.add(c(b.submenuIndicator,S.CLICK,(O)=>{O.stopPropagation(),this._onShowSubmenu?.(i)}));else if(this._reservesSubmenuSpace())b.submenuIndicator.className="action-list-submenu-indicator",b.submenuIndicator.style.display="",b.submenuIndicator.style.visibility="hidden";else b.submenuIndicator.className="action-list-submenu-indicator",b.submenuIndicator.style.display="none";if(ky(i))b.container.setAttribute("aria-haspopup",i.hover?.expandable?"dialog":"menu"),b.container.setAttribute("aria-expanded","false");else if(b.container.removeAttribute("aria-haspopup"),!i.isSectionToggle)b.container.removeAttribute("aria-expanded")}disposeTemplate(i){i.keybinding.dispose(),i.elementDisposables.dispose()}};F_=gb([Fs(10,fe),Fs(11,Pr)],F_);class z_ extends UIEvent{constructor(){super("acceptSelectedAction")}}class J_ extends UIEvent{constructor(){super("previewSelectedAction")}}function m2(f){if(f.kind==="action")return f.label;return}var ub=x_=class f extends n{constructor(i,h,b,v,w,x,I,E,T){super();if(this._supportsPreview=h,this._delegate=v,this._options=x,this._keybindingService=I,this._openerService=E,this._instantiationService=T,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new Ve),this._submenuDisposables=this._register(new d),this._submenuHoverActionElements=[],this._itemMoveAnimation=this._register(new le),this._collapsedSections=new Set,this._filterText="",this._imeSessionInProgress=!1,this._isMeasuringWidth=!1,this._suppressHover=!1,this._hoverEnabled=!0,this._ignoreInitialHover=!0,this._hasLaidOut=!1,this._filterCts=this._register(new le),this._groupTitleByIndex=new Map,this._standaloneToggles=new Map,this._itemToolbars=new Map,this._onDidRequestLayout=this._register(new r),this.onDidRequestLayout=this._onDidRequestLayout.event,this._visibleMenuItems=b,this._initialFocusItemId=this._options?.initialFocusItemId,this._filterText=this._options?.showFilter?this._options.initialFilterValue??"":"",this.domNode=document.createElement("div"),this.domNode.classList.add("actionList"),this._options?.inlineDescription)this.domNode.classList.add("inline-description");if(this._options?.className){let ee=this._options.className.split(/\s+/).filter((te)=>te.length>0);if(ee.length>0)this.domNode.classList.add(...ee)}if(this._actionLineHeight=24,this._submenuContainer=document.createElement("div"),this._submenuContainer.className="action-list-submenu-panel action-widget",this._submenuContainer.style.display="none",this._options?.persistentHover)this._submenuContainer.style.boxSizing="border-box";if(this._submenuContainer.tabIndex=-1,this.domNode.append(this._submenuContainer),this._register(c(this._submenuContainer,"keydown",(ee)=>{if((ee.key==="Enter"||ee.key===" ")&&this._currentSubmenuElement?.hover?.tabThroughPanel){let oe=Ee(ee.target)?ee.target:void 0;if(oe&&this._currentSubmenuElement.hover.getTabbableElements?.().includes(oe)){ee.stopPropagation();return}}if(ee.key!=="ArrowLeft"&&ee.key!=="Escape")return;Se.stop(ee,!0);let te=ee.key==="Escape"&&this._currentSubmenuWidget!==void 0;if(this._hideSubmenu(),te){this.hide();return}this._setKeyboardNavigation(!0),this._list.domFocus()})),this._register(c(this._submenuContainer,"mouseenter",()=>{if(this._cancelSubmenuHide(),this._usesSubmenuPointerIntent())this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._register(c(this._submenuContainer,"mouseleave",()=>{this._scheduleSubmenuHide()})),this._register(c(this.domNode,S.MOUSE_LEAVE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._usesSubmenuPointerIntent())this._register(c(this.domNode,S.MOUSE_MOVE,(ee)=>{if(Ee(ee.target)&&this._expandedTrigger?.contains(ee.target))this._updateSubmenuPointer(ee)}));if(this._register(R(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(let ee of this._options.collapsedByDefault)this._collapsedSections.add(ee);let O={getHeight:(ee)=>this._getItemHeight(ee),getTemplateId:(ee)=>ee.kind},A=()=>{let ee=this._options?.reserveSubmenuSpace??!0;return ee==="always"||ee&&this._allMenuItems.some(Ty)};this._list=this._register(new hr(i,this.domNode,O,[new F_(this._supportsPreview,(ee)=>this._removeItem(ee),(ee)=>this._showSubmenuForItem(ee),A,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._options?.stopToolbarPointerPropagation??!1,(ee,te)=>(this._standaloneToggles.set(ee,te),R(()=>{if(this._standaloneToggles.get(ee)===te)this._standaloneToggles.delete(ee)})),(ee,te)=>(this._itemToolbars.set(ee,te),this._updateToolbarFocusability(),R(()=>{if(this._itemToolbars.get(ee)===te)this._itemToolbars.delete(ee)})),this._keybindingService,this._openerService),new Dy,new Ry],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter&&!this._options?.onType,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:m2},accessibilityProvider:{getAriaLabel:(ee)=>{if(ee.kind==="action"){let te=ee.label?Uo(ee?.label):"";if(ee.badge)te=te+", "+Uo(ee.badge);if(ee.detail)te=te+", "+Uo(ee.detail);if(ee.ariaDescription)te=te+", "+Uo(ee.ariaDescription);else if(ee.description){let ne=typeof ee.description==="string"?ee.description:ee.description.value;te=te+", "+Uo(ne)}if(ee.hover?.content&&!ee.ariaDescription&&!ee.description){let ne=ee.hover.content,re=typeof ne==="string"?ne:wo(ne)?ne.value:Ee(ne)?ne.textContent??void 0:void 0;if(re&&(!ee.detail||Uo(ee.detail)!==Uo(re)))te=te+", "+Uo(re)}if(ee.group?.title)te=te+", "+ee.group.title;let oe=ee.standaloneToggle??ee.inlineToggle;if(oe)te=ee.standaloneToggle?oe.checked?e(1734,"{0}, on",oe.label):e(1735,"{0}, off",oe.label):te+", "+(oe.checked?e(1736,"{0}, on",oe.label):e(1737,"{0}, off",oe.label));if(ee.disabled)te=e(1738,"{0}, Disabled Reason: {1}",te,ee.disabled);if(ee.submenuActions?.length)te=e(1739,"{0}, use right arrow to access options",te);return te}return null},getWidgetAriaLabel:()=>e(1740,"Action Widget"),getSetSize:()=>this._visibleMenuItems.filter((ee)=>ee.kind==="action").length,getPosInSet:(ee,te)=>Math.max(this._visibleMenuItems.slice(0,te+1).filter((oe)=>oe.kind==="action").length,1),getRole:(ee)=>{switch(ee.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...w}})),this._list.style(rp),this._register(this._list.onKeyDown(()=>this._setKeyboardNavigation(!0))),this._register(c(this._list.getHTMLElement(),S.MOUSE_MOVE,(ee)=>{if(ee.movementX!==0||ee.movementY!==0)this._setKeyboardNavigation(!1)})),this._register(this._list.onMouseClick((ee)=>this.onListClick(ee))),this._register(this._list.onMouseOver((ee)=>{if(!this._ignoreInitialHover)this.onListHover(ee)}));let Y=this._register(new le);if(Y.value=this._list.onMouseMove((ee)=>{if(ee.browserEvent.movementX!==0||ee.browserEvent.movementY!==0)Y.clear(),this._ignoreInitialHover=!1,this.onListHover(ee)}),this._register(this._list.onMouseDown(()=>{Y.clear(),this._ignoreInitialHover=!1,this._setKeyboardNavigation(!1)})),this._register(this._list.onDidChangeFocus(()=>{this._updateToolbarFocusability(),this.onFocus()})),this._register(this._list.onDidChangeSelection((ee)=>this.onListSelection(ee))),this._register(this._list.onDidScroll(()=>{if(!this._isMeasuringWidth)this._layoutSubmenu?.()})),this._allMenuItems=[...b],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement("div"),this._filterContainer.className="action-list-filter";let ee=_(this._filterContainer,g(".action-list-filter-row"));if(this._options?.showFilter){if(this._filterInput=document.createElement("input"),this._filterInput.type="text",this._filterInput.className="action-list-filter-input",this._filterInput.placeholder=this._options?.filterPlaceholder??e(1741,"Search..."),this._filterInput.value=this._filterText,this._filterInput.setAttribute("aria-label",e(1742,"Filter items")),ee.appendChild(this._filterInput),this._register(c(this._filterInput,S.KEY_DOWN,(ne)=>{if(this._setKeyboardNavigation(!0),ne.isComposing||!this._filterInput?.closest(".action-list-submenu-panel"))return;let re=this._keybindingService.softDispatch(new Ge(ne),this._filterInput);if(re.kind===2&&re.commandId!==null&&g2.has(re.commandId)||ne.key.length===1&&!ne.ctrlKey&&!ne.metaKey&&!ne.altKey)ne.stopPropagation()})),this._register(c(this._filterInput,S.MOUSE_DOWN,()=>this._setKeyboardNavigation(!1))),this._options.tabThroughItemActions)this._register(c(this._filterInput,"keydown",(ne)=>this._handleTabThroughPanelKeyDown(ne),!0));if(this._options.filterAsCombobox){let ne=this._list.getHTMLElement();ne.id=this._list.domId,this._filterInput.setAttribute("role","combobox"),this._filterInput.setAttribute("aria-label",this._filterInput.placeholder),this._filterInput.setAttribute("aria-autocomplete","list"),this._filterInput.setAttribute("aria-expanded","true"),this._filterInput.setAttribute("aria-controls",ne.id),this._register(this._list.onDidChangeFocus(()=>this._updateFilterActiveDescendant())),this._register(c(this._filterInput,"focus",()=>this._updateFilterActiveDescendant())),this._register(c(this._filterInput,"blur",()=>this._updateFilterActiveDescendant())),this._register(wt(this._filterInput,"keydown",(re)=>{if(this._imeSessionInProgress||re.browserEvent.isComposing||re.keyCode===114||re.keyCode===15||re.keyCode===17||re.keyCode===14||re.keyCode===13){re.stopPropagation();return}let ue=re.keyCode===16||re.keyCode===18;if(!ue&&re.keyCode!==3)return;if(re.ctrlKey||re.metaKey||re.altKey||re.shiftKey){if(ue)re.stopPropagation();return}if(Se.stop(re,!0),re.keyCode===16)this.focusPrevious();else if(re.keyCode===18)this.focusNext();else this.acceptSelected()}))}let te=this._options?.filterActions??[];if(te.length>0){let ne=_(ee,g(".action-list-filter-actions"));this._register(new Fi(ne)).push(te,{icon:!0,label:!1})}let oe=()=>{let ne=this._filterInput.value;if(this._imeSessionInProgress||ne===this._filterText&&!this._filterCts.value?.token.isCancellationRequested)return;this._filterText=ne,this._applyOrUpdateFilter()};this._register(c(this._filterInput,"compositionstart",()=>{this._imeSessionInProgress=!0,this._filterCts.value?.cancel()})),this._register(c(this._filterInput,"compositionend",()=>{this._imeSessionInProgress=!1,oe()})),this._register(c(this._filterInput,"input",oe))}if(this._options?.secondaryHeading){let te=_(ee,g(".action-list-filter-label"));te.textContent=this._options.secondaryHeading}}if(this._options?.footerText)this._footerContainer=document.createElement("div"),this._footerContainer.className="action-list-footer",this._footerContainer.textContent=this._options.footerText;if(this._options?.headerText){if(this._headerContainer=document.createElement("div"),this._headerContainer.className="action-list-header",this._options.headerIcon){let te=_(this._headerContainer,g("span.action-list-header-icon"));te.classList.add(...J.asClassNameArray(this._options.headerIcon)),te.setAttribute("aria-hidden","true")}let ee=_(this._headerContainer,g("span.action-list-header-text"));if(ee.textContent=this._options.headerText,this._register(c(this._headerContainer,S.MOUSE_ENTER,()=>{if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer();else this._hideSubmenu()})),this._options.headerLink){let{label:te,uri:oe}=this._options.headerLink;ee.textContent+=" ",this._register(this._instantiationService.createInstance(Xd,ee,{label:te,href:oe.toString(!0)},{}))}if(this._options.headerDismiss){let te=this._options.headerDismiss,oe=_(this._headerContainer,g("span.action-list-header-dismiss"));oe.appendChild(g(J.asCSSSelector(y.close))),oe.tabIndex=0,oe.setAttribute("role","button"),oe.setAttribute("aria-label",e(1743,"Dismiss"));let ne=()=>{te(),this.focus(),this._headerContainer?.remove(),this._headerContainer=void 0,this._onDidRequestLayout.fire()};this._register(Ov(oe,()=>ne())),this._register(c(oe,S.KEY_DOWN,(re)=>{if(re.key==="Enter"||re.key===" ")re.preventDefault(),ne()}))}}if(this._applyFilter(),this._list.length)this._focusCheckedOrFirst();if(this._register(c(this.domNode,"keydown",(ee)=>{if(ee.key==="ArrowRight"&&!ee.isComposing){let te=this._list.getFocus();if(te.length>0){let oe=this._list.element(te[0]);if(oe?.submenuActions?.length||oe?.hover?.expandable){Se.stop(ee,!0);let ne=this._getRowElement(te[0]);if(ne)if(this._showSubmenuForElement(oe,ne),oe.hover?.tabThroughPanel)this._focusFirstTabThroughPanelControl(oe,ne);else if(this._currentSubmenuWidget)this._currentSubmenuWidget.focus();else this._submenuContainer.focus()}}}})),this._register(c(this.domNode,"keydown",(ee)=>this._handleTabThroughPanelKeyDown(ee),!0)),this._filterInput||this._options?.onType)this._register(c(this.domNode,"keydown",(ee)=>{let te=ee.target;if((this._options?.onType||this._options?.filterAsCombobox)&&Ee(te)&&(No(te)||te.closest('button, a, [contenteditable="true"], .action-list-submenu-panel')))return;if((!this._filterInput||!vs(this._filterInput))&&!ee.isComposing&&ee.key.length===1&&ee.key!==" "&&!ee.ctrlKey&&!ee.metaKey&&!ee.altKey)if(ee.preventDefault(),ee.stopPropagation(),this._filterInput)this._filterInput.focus(),this._filterInput.value=ee.key,this._filterText=ee.key,this._applyOrUpdateFilter();else this._options?.onType?.(ee.key)}))}_toggleSection(i){let h=this._collapsedSections.has(i);if(h)this._collapsedSections.delete(i);else{this._collapsedSections.add(i);let b=this.getFocusedElement();if(b?.section===i&&!b.isSectionToggle){let v=this._visibleMenuItems.findIndex((w)=>w.section===i&&w.isSectionToggle);if(v>=0)this._list.setFocus([v])}}if(this._options?.onDidToggleSection?.(i,this._collapsedSections.has(i)),this._applyFilter(),h)this._revealFirstItemOfSection(i)}_revealFirstItemOfSection(i){for(let h=0;h<this._list.length;h++){let b=this._list.element(h);if(b.section===i&&!b.isSectionToggle){this._list.reveal(h);return}}}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}let i=this._filterText;this._filterCts.value?.cancel();let h=new Ve;this._filterCts.value=h,this._delegate.onFilter(i,h.token).then((b)=>{if(h.token.isCancellationRequested)return;this._allMenuItems=[...b],this._applyFilter(!0)}).catch(()=>{}).finally(()=>{if(this._filterCts.value===h&&!h.token.isCancellationRequested)this._filterCts.clear()})}_applyFilter(i=!1,h=!0,b){this._itemMoveAnimation.clear();let v=i?"":this._filterText.toLowerCase(),w=!i&&v.length>0,x=[],I=this._list.getFocus(),E;if(I.length>0)E=this._list.element(I[0]);if(w){let oe,ne=[],re=!1,he=()=>{if(oe&&re)x.push(oe);x.push(...ne),oe=void 0,ne=[],re=!1},ue=(Ie)=>{let Te=(Ie.label??"").toLowerCase(),ae=typeof Ie.description==="string"?Ie.description:Ie.description?.value??"";return Te.includes(v)||ae.toLowerCase().includes(v)};for(let Ie of this._allMenuItems){if(Ie.kind==="header")continue;if(Ie.kind==="separator"){he(),oe=Ie.label?Ie:void 0;continue}if(Ie.showAlways){ne.push(Ie);continue}if(Ie.isSectionToggle)continue;if(Ie.filterItems){let Te=ue(Ie)?Ie.filterItems:Ie.filterItems.filter(ue);if(Te.length>0)re=!0,ne.push(...Te);continue}if(ue(Ie))re=!0,ne.push(Ie)}he()}else for(let oe of this._allMenuItems){if(oe.kind==="header"){x.push(oe);continue}if(oe.kind==="separator"){if(oe.section&&this._collapsedSections.has(oe.section))continue;x.push(oe);continue}if(oe.isSectionToggle&&oe.section){let ne=this._collapsedSections.has(oe.section);x.push({...oe,group:{...oe.group,icon:ne?y.chevronRight:y.chevronDown}});continue}if(oe.section&&this._collapsedSections.has(oe.section))continue;x.push(oe)}let T=[],O=!1;for(let oe=0;oe<x.length;oe++)if(T[oe]=O,x[oe].kind==="action")O=!0;let A=[],Y=!1;for(let oe=x.length-1;oe>=0;oe--){if(x[oe].kind==="action"){Y=!0;continue}if(x[oe].kind!=="separator")continue;A[oe]=Y,Y=!1}for(let oe=x.length-1;oe>=0;oe--){let ne=x[oe];if(ne.kind!=="separator")continue;let re=A[oe],he=!ne.label&&!T[oe];if(!re||he)x.splice(oe,1)}if(this._options?.showGroupTitleOnFirstItem)this._recomputeGroupTitles(x);let ee=this._filterInput&&vs(this._filterInput),te=nd(this._list.getHTMLElement());if(this._visibleMenuItems=x,this._list.splice(0,this._list.length,x),h)this._onDidRequestLayout.fire();if(ee)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut){if(E||b){let oe=b??E?.item?.id;if(oe){for(let ne=0;ne<this._list.length;ne++)if(this._list.element(ne).item?.id===oe){this._list.setFocus([ne]),this._list.reveal(ne);break}if(te)this._focusCheckedOrFirst(),this._list.domFocus()}}}}get filterContainer(){return this._filterContainer}get footerContainer(){return this._footerContainer}get headerContainer(){return this._headerContainer}get filterInput(){return this._filterInput}get closeAnimation(){return this._options?.closeAnimation}focusCondition(i){return!i.disabled&&i.kind==="action"}_setKeyboardNavigation(i){if(this._keyboardNavigation===i)return;this._keyboardNavigation=i;let h=this._list.getHTMLElement();h.classList.toggle("keyboard-navigation",i===!0),h.classList.toggle("mouse-navigation",i===!1)}_updateFilterActiveDescendant(){if(!this._filterInput)return;let[i]=this._list.getFocus();if(vs(this._filterInput)&&i!==void 0)this._filterInput.setAttribute("aria-activedescendant",this._list.getElementID(i));else this._filterInput.removeAttribute("aria-activedescendant")}focus(){if(this._setKeyboardNavigation(void 0),this._filterInput&&this._options?.focusFilterOnOpen){this._filterInput.focus(),this._focusCheckedOrFirst();return}this._list.domFocus(),this._focusCheckedOrFirst(),this._showTabThroughPanelForFocusedItem()}clearFocus(){this._list.setFocus([])}getFocusedElement(){let i=this._list.getFocus();if(i.length>0)return this._list.element(i[0]);return}_updateToolbarFocusability(){if(!this._options?.tabThroughItemActions)return;let[i]=this._list.getFocus(),h=i!==void 0&&i<this._list.length?this._list.element(i):void 0;for(let[b,v]of this._itemToolbars)v.setFocusable(b===h)}_focusCheckedOrFirst(){let i=this._suppressHover;this._suppressHover=!0;try{let h=this._initialFocusItemId;if(this._initialFocusItemId=void 0,h)for(let w=0;w<this._list.length;w++){let x=this._list.element(w);if(this.focusCondition(x)&&x.item?.id===h){this._list.setFocus([w]),this._list.reveal(w);return}}let[b]=this._list.getFocus();if(b!==void 0){let w=this._list.element(b);if(w&&this.focusCondition(w)){this._list.reveal(b);return}}for(let w=0;w<this._list.length;w++){let x=this._list.element(w);if(this.focusCondition(x)&&x.item?.checked){this._list.setFocus([w]),this._list.reveal(w);return}}this._list.focusFirst(void 0,this.focusCondition);let v=this._list.getFocus();if(v.length>0)this._list.reveal(v[0])}finally{if(this._suppressHover=i,this._options?.filterAsCombobox)this._updateFilterActiveDescendant()}}hide(i){this._delegate.onHide(i),this.cts.cancel(),this._filterCts.value?.cancel(),this._filterCts.clear(),this._hideSubmenu()}clearFilter(){if(this._filterInput&&this._filterText)return this._filterInput.value="",this._filterText="",this._applyOrUpdateFilter(),!0;return!1}get hasDynamicHeight(){if(this._options?.showFilter)return!0;return this._allMenuItems.some((i)=>i.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(i){return this._itemHeightWith(i,this._options)}_itemHeightWith(i,h){switch(i.kind){case"header":return this._headerLineHeight;case"separator":return i.label?this._actionLineHeight:this._separatorLineHeight;default:if(i.inlineToggle)return h?.inlineToggleItemHeight??70;return i.detail?h?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){return this.computeHeightForItems(this._allMenuItems,void 0,this._options)}computeHeightForItems(i,h,b){let v=0;for(let w of i){if(h&&w.section&&!w.isSectionToggle&&h.has(w.section))continue;v+=this._itemHeightWith(w,b)}return v}computeListHeight(){let i=this._list.length,h=0;for(let b=0;b<i;b++){let v=this._list.element(b);h+=this._getItemHeight(v)}return h}layout(i,h){this._hasLaidOut=!0,this._list.layout(i,h),this.domNode.style.height=`${i}px`;let b=this.domNode.parentElement;if(b&&this._filterContainer?.parentElement===b)b.insertBefore(this._filterContainer,this.domNode);this._layoutSubmenu?.()}computeMaxWidth(i){let h=this._list.length,b=Math.max(i,this._options?.minWidth??0),v=this._options?.maxWidth??Number.POSITIVE_INFINITY,w=Math.max(v,b),x=(O)=>Math.min(Math.max(O,b),w),I=this._allMenuItems.length;if(I>=50)return x(380);if(I>h){let O=[];for(let oe=0;oe<h;oe++)O.push(this._list.element(oe));let A=this._list.renderHeight,Y=this._list.scrollTop,ee=this._list.getFocus(),te=this._isMeasuringWidth;this._isMeasuringWidth=!0;try{let oe=[...this._allMenuItems];this._list.splice(0,h,oe);let ne=0;for(let he of oe)ne+=this._getItemHeight(he);this._list.layout(ne);let re=this._measureItemWidths(oe);return x(Math.max(...re))}finally{try{this._list.splice(0,this._list.length,O),this._list.layout(A),this._list.scrollTop=Y;let oe=this._suppressHover;this._suppressHover=!0;try{this._list.setFocus(ee)}finally{this._suppressHover=oe}}finally{this._isMeasuringWidth=te}}}let E=[];for(let O=0;O<h;O++)E.push(this._list.element(O));let T=this._measureItemWidths(E);return x(Math.max(...T))}focusPrevious(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("previous"))return;if(this._filterInput&&vs(this._filterInput)){this._list.domFocus();let b=this._list.getFocus();if(b.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);let v=this._list.getFocus();if(v.length>0&&v[0]>=b[0])this._filterInput.focus();else if(v.length>0)this._list.reveal(v[0])}else{this._list.focusLast(void 0,this.focusCondition);let v=this._list.getFocus();if(v.length>0)this._list.reveal(v[0])}return}let i=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);let h=this._list.getFocus();if(h.length>0){if(this._filterInput&&i.length>0&&h[0]>i[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(h[0])}}focusNext(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("next"))return;if(this._filterInput&&vs(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);let v=this._list.getFocus();if(v.length>0)this._list.reveal(v[0])}else{this._list.focusFirst(void 0,this.focusCondition);let v=this._list.getFocus();if(v.length>0)this._list.reveal(v[0])}return}let i=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);let h=this._list.getFocus();if(h.length>0){if(this._filterInput&&i.length>0&&h[0]<i[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(h[0])}}_focusFilterResult(i){if(!this._options?.filterAsCombobox||!this._filterInput||!vs(this._filterInput))return!1;if(i==="previous")this._list.focusPrevious(1,!0,void 0,this.focusCondition);else this._list.focusNext(1,!0,void 0,this.focusCondition);let[h]=this._list.getFocus();if(h!==void 0)this._list.reveal(h);return!0}collapseFocusedSection(){let i=this._getFocusedSection();if(i&&!this._collapsedSections.has(i))this._toggleSection(i)}expandFocusedSection(){let i=this._getFocusedSection();if(i&&this._collapsedSections.has(i))this._toggleSection(i)}toggleFocusedSection(){let i=this._list.getFocus();if(i.length===0)return!1;let h=this._list.element(i[0]);if(h.isSectionToggle&&h.section)return this._toggleSection(h.section),!0;return!1}_getFocusedSection(){let i=this._list.getFocus();if(i.length===0)return;let h=this._list.element(i[0]);if(h.isSectionToggle&&h.section)return h.section;return h.section}acceptSelected(i){let h=this._list.getFocus();if(h.length===0)return;let b=h[0],v=this._list.element(b);if(!this.focusCondition(v))return;let w=i?new J_:new z_;this._list.setSelection([b],w)}onListSelection(i){if(!i.elements.length)return;let h=i.elements[0];if(h.standaloneToggle){this._list.setSelection([]);let v=this._standaloneToggles.get(h);if(v&&!v.disabled)v.checked=!v.checked,h.standaloneToggle.onChange(v.checked);return}if(h.isSectionToggle&&h.section){this._list.setSelection([]);let v=h.section;queueMicrotask(()=>{this._toggleSection(v)});return}let b=Ph(i.browserEvent)||i.browserEvent?.type===kt.Tap;if(b){let v=i.browserEvent.target;if(Ee(v)&&(v.closest(".action-list-item-toolbar")||v.closest(".action-list-submenu-indicator")||v.closest(".action-list-item-inline-toggle"))){this._list.setSelection([]);return}}if(h.openSubmenuOnClick&&h.submenuActions?.length&&(b||i.browserEvent instanceof z_)){if(this._list.setSelection([]),this._showSubmenuForItem(h),!b)this._currentSubmenuWidget?.focus();return}if(h.item&&this.focusCondition(h)){let v=i.browserEvent instanceof J_;this._delegate.onSelect(h.item,v&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){let i=this._list.getFocus();if(i.length===0)return;let h=i[0],b=this._list.element(h);if(this._delegate.onFocus?.(b.item),!this._suppressHover){if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer(),this._list.reveal(h);this._showHoverForElement(b,h)}}_removeItem(i){let h=this._allMenuItems.indexOf(i);if(h>=0)this._allMenuItems.splice(h,1),this._applyFilter()}_recomputeGroupTitles(i){this._groupTitleByIndex.clear();let h=new Set;for(let b=0;b<i.length;b++){let v=i[b];if(v.kind==="action"&&v.group?.title&&!h.has(v.group.title))h.add(v.group.title),this._groupTitleByIndex.set(b,v.group.title)}}_measureItemWidths(i){let h=[];for(let b=0;b<i.length;b++){let v=this._getRowElement(b);if(v)v.style.width="auto",h.push({element:v,item:i[b]})}try{return h.map(({element:b,item:v})=>b.getBoundingClientRect().width+(v.detail?0:this._computeToolbarWidth(v)))}finally{for(let{element:b}of h)b.style.width=""}}_computeToolbarWidth(i){let h=i.toolbarActions?.length??0;if(i.onRemove)h++;if(h===0)return 0;return h*22+6+10}_getRowElement(i){if(i<0)return null;return this.domNode.ownerDocument.getElementById(this._list.getElementID(i))}_showTabThroughPanelForFocusedItem(){let i=this._list.getFocus();if(i.length===0)return;let h=i[0],b=this._list.element(h);if(!b.hover?.tabThroughPanel)return;let v=this._getRowElement(h);if(v)this._showSubmenuForElement(b,v)}_getTabThroughPanelControls(i,h){if(i.hover?.tabThroughPanel&&this._currentSubmenuElement!==i)this._showSubmenuForElement(i,h);return{toolbar:this._itemToolbars.get(i),panelControls:[...i.hover?.getTabbableElements?.()??[],...this._submenuHoverActionElements]}}_focusFirstTabThroughPanelControl(i,h){let b=this._getTabThroughPanelControls(i,h);if(b.toolbar?.length())b.toolbar.focus(0);else(b.panelControls[0]??this._list.getHTMLElement()).focus()}_handleTabThroughPanelKeyDown(i){if(i.isComposing)return;let h=this._list.getFocus();if(h.length===0)return;let b=h[0],v=this._list.element(b);if(!v.hover?.tabThroughPanel&&!this._options?.tabThroughItemActions)return;let w=this._getRowElement(b),x=Nt();if(!w||!Ee(x))return;let I=this._getTabThroughPanelControls(v,w),E=I.toolbar?.isFocused()??!1,T=this._submenuContainer.contains(x);if((i.key==="ArrowUp"||i.key==="ArrowDown")&&(E||T)){if(Se.stop(i,!0),this._list.domFocus(),i.key==="ArrowUp")this.focusPrevious();else this.focusNext();return}if(i.key!=="Tab"||i.ctrlKey||i.metaKey||i.altKey)return;let O;if(i.shiftKey){if(T){let A=I.panelControls.indexOf(x);if(A>0)O=I.panelControls[A-1];else if(I.toolbar?.length()){Se.stop(i,!0),I.toolbar.focus(I.toolbar.length()-1);return}else O=this._list.getHTMLElement()}else if(I.toolbar?.isFocused()){let A=I.toolbar.viewItems.findIndex((Y,ee)=>I.toolbar?.isFocused(ee));if(A>0){Se.stop(i,!0),I.toolbar.focus(A-1);return}O=this._options?.filterAsCombobox?this._filterInput:this._list.getHTMLElement()}}else if(x===this._list.getHTMLElement()||x===this._filterInput){if(I.toolbar?.length()){Se.stop(i,!0),I.toolbar.focus(0);return}O=I.panelControls[0]}else if(I.toolbar?.isFocused()){let A=I.toolbar.viewItems.findIndex((Y,ee)=>I.toolbar?.isFocused(ee));if(A+1<I.toolbar.length()){Se.stop(i,!0),I.toolbar.focus(A+1);return}O=I.panelControls[0]}else{let A=I.panelControls.indexOf(x);if(A>=0)O=I.panelControls[A+1]??this._list.getHTMLElement()}if(O)Se.stop(i,!0),O.focus()}_showHoverForElement(i,h){if(this._currentSubmenuElement===i)return;let b=!!i.hover?.content,v=!!i.submenuActions?.length;if(b||v){let w=this._getRowElement(h);if(w)this._showSubmenuForElement(i,w);return}if(!this._options?.persistentHover)this._hideSubmenu()}_showSubmenuForItem(i){let h=this._list.indexOf(i);if(h>=0){let b=this._getRowElement(h);if(b)this._showSubmenuForElement(i,b)}}_showSubmenuForElement(i,h){if(!this._hoverEnabled||this._currentSubmenuElement===i)return;if(this._currentSubmenuElement=i,this._clearSubmenuContainer(),h.setAttribute("aria-expanded","true"),this._expandedTrigger=h,this._submenuPanelClassName=i.hover?.panelClassName,this._submenuPanelClassName)this._submenuContainer.classList.add(this._submenuPanelClassName);let b=i.hover?.preserveVerticalPosition,v=!!i.submenuActions?.length,w=b?g(".action-list-submenu-content"):this._submenuContainer,x=b?g(".action-list-submenu-viewport",void 0,w):void 0,I=x&&!v?this._submenuDisposables.add(new Ja(x,{horizontal:2,vertical:1,consumeMouseWheelIfScrollbarIsNeeded:!0,useShadows:!1})):void 0;if(I&&x)this._submenuContainer.appendChild(I.getDomNode()),this._submenuDisposables.add(c(x,S.SCROLL,()=>I.scanDomNode())),this._submenuDisposables.add(c(this._submenuContainer,S.KEY_DOWN,(re)=>{let he=new Ge(re);if(he.equals(12)||he.equals(11))Se.stop(re,!0),I.setScrollPosition({scrollTop:I.getScrollPosition().scrollTop+(he.equals(12)?1:-1)*x.clientHeight})}));else if(x)this._submenuContainer.appendChild(x);let E,T=typeof i.hover?.content==="function"?i.hover.content():i.hover?.content;if(T){if(Ee(T)){if(E=T,i.hover?.disposable)this._register(i.hover.disposable)}else{let re=typeof T==="string"?new En(T):T,he=this._options?.linkHandler,ue=Za(re,{actionHandler:(Ie)=>{let Te=q.parse(Ie);if(he)he(Te,i);else this._openerService.open(Te,{allowCommands:!0})}});this._submenuDisposables.add(ue),E=ue.element}if(E.classList.add("action-list-submenu-hover-header"),E.classList.toggle("content-owns-padding",i.hover?.contentOwnsPadding===!0),i.submenuActions?.length)E.classList.add("has-submenu");w.appendChild(E)}if(i.hover?.actions?.length){let re=g(".hover-row.status-bar"),he=_(re,g(".actions"));for(let ue of i.hover.actions){let Ie=this._keybindingService.lookupKeybinding(ue.commandId),Te=this._submenuDisposables.add(tp.render(he,{label:ue.label,commandId:ue.commandId,run:(ae)=>ue.run(ae),iconClass:ue.iconClass},Ie?.getLabel()??null));this._submenuHoverActionElements.push(Te.actionContainer)}this._submenuContainer.appendChild(re)}if(this._submenuContainer.style.display="",this._submenuContainer.style.position="absolute",i.hover?.expandable){if(this._submenuContainer.setAttribute("role","dialog"),i.label)this._submenuContainer.setAttribute("aria-label",i.label)}else this._submenuContainer.removeAttribute("role");let O=B(this.domNode),A=0,Y=E?E.offsetWidth:0,ee;if(v){let re=this._createSubmenuItems(i.submenuActions),he={onHide:()=>{},onSelect:(Te)=>{Te.run();let ae=this._currentSubmenuElement?.item;if(this._hideSubmenu(),ae)this._delegate.onSelect(ae);this.hide()}},ue=this._submenuDisposables.add(this._instantiationService.createInstance(x_,"submenu",!1,re,he,void 0,i.submenuOptions));if(ee=ue,ue.headerContainer)w.appendChild(ue.headerContainer);if(ue.filterContainer)w.appendChild(ue.filterContainer);if(w.appendChild(ue.domNode),ue.footerContainer)w.appendChild(ue.footerContainer);this._currentSubmenuWidget=ue,ue.clearFocus(),A=ue.computeListHeight(),ue.layout(A);let Ie=ue.computeMaxWidth(0);if(Y=Math.max(Y,Ie,ue.footerContainer?.offsetWidth??0),ue.layout(A,Y),ue.domNode.style.width=`${Y}px`,i.submenuOptions)this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${Y+10}px`;this._submenuDisposables.add(ue.onDidRequestLayout(()=>{A=ue.computeListHeight(),ue.layout(A,Y),this._layoutSubmenu?.()})),this._submenuDisposables.add(c(w,"keydown",(Te)=>{if(Te.key==="Escape")Se.stop(Te,!0),this._hideSubmenu(),this.hide();else if(Te.key==="ArrowLeft")Se.stop(Te,!0),this._hideSubmenu(),this._setKeyboardNavigation(!0),this._list.domFocus();else if(Te.key==="Enter"||Te.key===" ")Se.stop(Te,!0),ue.acceptSelected();else if(Te.key==="ArrowDown")Se.stop(Te,!0),ue.focusNext();else if(Te.key==="ArrowUp")Se.stop(Te,!0),ue.focusPrevious()}))}let te,oe,ne=()=>{let re=this._currentSubmenuElement;if(!re||this._layoutSubmenu!==ne)return;let he=this._list.indexOf(re),ue=he>=0?this._getRowElement(he):null,Ie=this._options?.persistentHover;if(!ue&&(!Ie||!this._allMenuItems.includes(re))){this._hideSubmenu();return}if(this._expandedTrigger!==ue){if(this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=ue??void 0}ue?.setAttribute("aria-expanded","true");let Te=this.domNode.getBoundingClientRect(),ae=Ie||re.hover?.alignToParent,xe=ae?this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect()??Te:Te,Me=ue?.getBoundingClientRect()??xe,He=ae||b?Bg(this.domNode):1;if(Ie)this._submenuContainer.style.width=`${xe.width/He}px`;let qe=this._submenuContainer.getBoundingClientRect(),Oe=ae?qe.width:Y+10,Ze=O.innerWidth-(ae?xe.right:Me.right),dt=xe.left,Qe=ae?0:4,ut=4;if(!ae){let ai=O.innerWidth-2*ut;if(Oe>ai)Oe=Math.max(ai,0);this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${Oe}px`}let tt=Ze>=Oe||Ze>=dt;if(Ie&&this._submenuSide&&(this._submenuSide==="right"?Ze:dt)>=Oe)tt=this._submenuSide==="right";if(Ie)this._submenuSide=tt?"right":"left";let Gt=tt?xe.right-Te.left+Qe:xe.left-Te.left-Oe-Qe,ct=Te.left+Gt;if(ct<ut)Gt+=ut-ct;else if(ct+Oe>O.innerWidth-ut)Gt-=ct+Oe-(O.innerWidth-ut);this._submenuContainer.style.left=`${Gt/He}px`;let vt=qe.height;if(b)te??=vt/He;let si=te!==void 0?te*He:vt,Rt=oe!==void 0?oe*He:ue&&re.hover?.alignToAnchorTop?Me.top-Te.top:ue?Me.top-Te.top+(Me.height-si)/2:qe.top-Te.top;if(b&&re.hover?.alignToAnchorTop&&x&&ee){let ai=qe.height-x.getBoundingClientRect().height,Xt=(ee.headerContainer?.offsetHeight??0)+(ee.filterContainer?.offsetHeight??0)+(ee.footerContainer?.offsetHeight??0),Tt=ai+(Xt+A)*He;Rt=Math.min(Rt,O.innerHeight-Te.top-Tt-8)}let Dt=Te.top+Rt+si;if(Dt>O.innerHeight&&!(b&&re.hover?.alignToAnchorTop))Rt-=Dt-O.innerHeight+8;if(Te.top+Rt<0)Rt=-Te.top;if(b)oe??=Rt/He;if(x&&I){let ai=(qe.height-I.getDomNode().getBoundingClientRect().height)/He,Xt=Math.max(0,(O.innerHeight-Te.top-Rt-8)/He-ai);x.style.height=`${Math.min(w.getBoundingClientRect().height/He,Xt)}px`,I.scanDomNode()}else if(x&&ee){let ai=(qe.height-x.getBoundingClientRect().height)/He,Xt=Math.max(0,(O.innerHeight-Te.top-Rt-8)/He-ai),Tt=(ee.headerContainer?.offsetHeight??0)+(ee.filterContainer?.offsetHeight??0)+(ee.footerContainer?.offsetHeight??0),Wi=A===0?0:Math.max(this._actionLineHeight,Math.min(A,Xt-Tt));ee.layout(Wi,Y),x.style.height=`${Tt+Wi}px`}this._submenuContainer.style.top=`${Rt/He}px`};if(this._layoutSubmenu=ne,ne(),(this._options?.persistentHover||i.hover?.alignToParent||i.hover?.tabThroughPanel||b)&&this._currentSubmenuElement===i){if(!ee){let re=this._submenuDisposables.add(new le),he=this._submenuDisposables.add(new Mv("ActionListWidget.hoverPanel",()=>{if(!re.value)re.value=ci(O,()=>{re.clear(),ne()})},O));this._submenuDisposables.add(he.observe(b?w:this._submenuContainer,{box:"border-box"}))}if(this._options?.persistentHover||b)this._submenuDisposables.add(c(O,S.RESIZE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer(),ne()}))}}_createSubmenuItems(i){let h=[],v=i.filter((w)=>w instanceof Xo).filter((w)=>w.actions.length>0);for(let w=0;w<v.length;w++){let x=v[w];if(x.label)h.push({kind:"header",group:{title:x.label},label:x.label});for(let I of x.actions){let E=I,T=E.icon??J.fromId(I.checked?y.check.id:y.blank.id),O=E.hoverContent,A=O?new En().appendText(`${I.label}
3
- `).appendMarkdown(O):void 0;h.push({item:I,kind:"action",label:I.label,description:I.tooltip&&I.tooltip!==I.label?I.tooltip:void 0,group:{title:"",icon:T},hideIcon:!1,hover:A?{content:A}:void 0,tooltip:I.tooltip||I.label,onRemove:E.onRemove,submenuActions:I instanceof Xo?[new Xo(I.id,"",I.actions)]:void 0})}if(w<v.length-1)h.push({kind:"separator",label:""})}for(let w of i)if(!(w instanceof Xo)){let x=w,I=x.icon??J.fromId(w.checked?y.check.id:y.blank.id),E=x.hoverContent,T=E?new En().appendText(`${w.label}
4
- `).appendMarkdown(E):void 0;h.push({item:w,kind:"action",label:w.label,description:w.tooltip&&w.tooltip!==w.label?w.tooltip:void 0,group:{title:"",icon:I},hideIcon:!1,hover:T?{content:T}:void 0,tooltip:w.tooltip||w.label,onRemove:x.onRemove})}return h}_hideSubmenu(){this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._currentSubmenuElement=void 0,this._submenuSide=void 0,this._clearSubmenuContainer(),this._submenuContainer.style.display="none"}_clearSubmenuContainer(){if(this._layoutSubmenu=void 0,this._resetSubmenuPointer(),this._submenuContainer.contains(Nt()))this._list.domFocus();if(this._submenuDisposables.clear(),this._currentSubmenuWidget=void 0,this._submenuHoverActionElements=[],this._submenuPanelClassName)this._submenuContainer.classList.remove(this._submenuPanelClassName),this._submenuPanelClassName=void 0;if(this._submenuContainer.removeAttribute("role"),this._submenuContainer.removeAttribute("aria-label"),this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=void 0,on(this._submenuContainer),this._submenuContainer.style.width="",this._submenuContainer.style.boxSizing=this._options?.persistentHover?"border-box":""}_scheduleSubmenuHide(){if(this._cancelSubmenuHide(),this._options?.persistentHover)return;this._submenuHideTimeout=setTimeout(()=>{this._hideSubmenu()},300)}_cancelSubmenuHide(){if(this._submenuHideTimeout!==void 0)clearTimeout(this._submenuHideTimeout),this._submenuHideTimeout=void 0}_scheduleSubmenuShow(i,h){this._cancelSubmenuShow();let b=this._options?.submenuHoverDelay??500;if(this._usesSubmenuPointerIntent()){b=0;let w=this._submenuPointerOrigin;if(w&&h.clientX!==w.x&&this._currentSubmenuElement&&new $k(w.x,w.y,this._submenuContainer).contains(h.clientX,h.clientY)){let x=Date.now();this._submenuPointerGraceDeadline??=x+200,b=Math.max(0,this._submenuPointerGraceDeadline-x)}}let v=()=>{this._submenuShowTimeout=void 0;let w=this._list.indexOf(i),x=w>=0?this._getRowElement(w):null;if(x){if(this._showSubmenuForElement(i,x),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(h)}};if(b===0)v();else this._submenuShowTimeout=setTimeout(v,b)}_updateSubmenuPointer(i){this._submenuPointerOrigin={x:i.clientX,y:i.clientY},this._submenuPointerGraceDeadline=void 0}_resetSubmenuPointer(){this._submenuPointerOrigin=void 0,this._submenuPointerGraceDeadline=void 0}_usesSubmenuPointerIntent(){return this._options?.persistentHover===!0||this._options?.submenuPointerIntent===!0}_cancelSubmenuShow(){if(this._submenuShowTimeout!==void 0)clearTimeout(this._submenuShowTimeout),this._submenuShowTimeout=void 0}async onListHover(i){this._setKeyboardNavigation(!1);let h=i.element;if(h&&h.item&&this.focusCondition(h)){let b=typeof i.index==="number"?[i.index]:[],v=Nt();if(this._options?.tabThroughItemActions&&this._list.getFocus()[0]!==i.index&&Ee(v)&&this.domNode.contains(v)&&v.closest(".action-list-item-toolbar"))this._list.domFocus();if(Ee(i.browserEvent.target)&&i.browserEvent.target.closest(".action-list-item-toolbar")!==null){if(!h.submenuActions?.length)this._cancelSubmenuShow();this._list.setFocus(this._options?.tabThroughItemActions?b:[]);return}let x=!!(h.submenuActions?.length||h.hover?.content),I=this._suppressHover;if(x||this._usesSubmenuPointerIntent())this._suppressHover=!0;try{this._list.setFocus(b)}finally{this._suppressHover=I}if(x){if(this._currentSubmenuElement===h){if(this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(i.browserEvent)}else{if(!this._usesSubmenuPointerIntent())this._hideSubmenu();this._scheduleSubmenuShow(h,i.browserEvent)}return}if(this._currentSubmenuElement===h)this._cancelSubmenuHide();else if(this._cancelSubmenuShow(),this._options?.submenuPointerIntent)this._scheduleSubmenuHide();else if(!this._options?.persistentHover)this._hideSubmenu();if(this._delegate.onHover&&!h.disabled&&h.kind==="action"&&this._currentSubmenuElement!==h){let E=await this._delegate.onHover(h.item,this.cts.token),T=E?E.canPreview:void 0;if(T!==h.canPreview){if(h.canPreview=T,typeof i.index==="number")this._list.splice(i.index,1,[h]),this._list.setFocus([i.index])}}}else if(h&&h.hover?.content&&typeof i.index==="number")if(this._currentSubmenuElement===h)this._cancelSubmenuHide(),this._cancelSubmenuShow();else{if(!this._options?.persistentHover)this._hideSubmenu();this._scheduleSubmenuShow(h,i.browserEvent)}}onListClick(i){if(i.element&&this.focusCondition(i.element))this._list.setFocus([])}};ub=x_=gb([Fs(6,fe),Fs(7,Pr),Fs(8,D)],ub);var fg=class f extends n{get domNode(){return this._widget.domNode}get filterContainer(){return this._widget.filterContainer}get footerContainer(){return this._widget.footerContainer}get headerContainer(){return this._widget.headerContainer}get filterInput(){return this._widget.filterInput}get closeAnimation(){return this._widget.closeAnimation}get widgetClassName(){return this._widgetClassName}get anchorPosition(){if(this._preferredAnchorPosition!==void 0)return this._preferredAnchorPosition;if(this._showAbove===void 0)return;return this._showAbove?1:0}constructor(i,h,b,v,w,x,I,E,T,O){super();this._contextViewService=E,this._layoutService=T,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=I,this._preferredAnchorPosition=x?.anchorPosition,this._useFullHeight=x?.useFullHeight??!1,this._widgetClassName=x?.widgetClassName,this._widget=this._register(O.createInstance(ub,i,h,b,v,w,x)),this._register(this._widget.onDidRequestLayout(()=>{if(this._hasLaidOut)this.layout(this._lastMinWidth),this._contextViewService.layout()}))}focus(){this._widget.focus()}hide(i,h=!0){if(this._widget.hide(i),h)this._contextViewService.hideContextView()}clearFilter(){return this._widget.clearFilter()}focusPrevious(){this._widget.focusPrevious()}focusNext(){this._widget.focusNext()}collapseFocusedSection(){this._widget.collapseFocusedSection()}expandFocusedSection(){this._widget.expandFocusedSection()}toggleFocusedSection(){return this._widget.toggleFocusedSection()}acceptSelected(i){this._widget.acceptSelected(i)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){let i=this.domNode.parentElement?.closest(".action-widget");if(!i)return 0;let h=B(i).getComputedStyle(i),b=(v)=>Number.parseFloat(v)||0;return b(h.paddingTop)+b(h.paddingBottom)+b(h.borderTopWidth)+b(h.borderBottomWidth)}computeHeight(){let i=this._fixedContentHeight??this._widget.computeListHeight(),h=this._widget.filterContainer?36:0,b=this._widget.footerContainer?32:0,v=this._widget.headerContainer&&!this._widget.headerContainer.hidden?this._widget.headerContainer.offsetHeight||36:0,w=h+b+v,x=B(this.domNode),I;if(this.hasDynamicHeight()||this._preferredAnchorPosition!==void 0){let Y=x.innerHeight,ee=iw(this._anchor),te=ee.top-x.pageYOffset,oe=30,ne=Y-te-ee.height-30,re=te;if(this._showAbove===void 0){let he=this._fixedContentHeight??this._widget.computeFullHeight();this._showAbove=this._preferredAnchorPosition!==void 0?this._preferredAnchorPosition===1:w+he>ne&&re>ne}I=Math.max(0,(this._showAbove?re:ne)-this.computeActionWidgetVerticalChromeHeight())}else{let ee=this._layoutService.getContainer(x).clientHeight,te=this.domNode.getBoundingClientRect().top;I=te>0?ee-te-10:ee*0.7}let E=this._useFullHeight?x.innerHeight:Math.floor(x.innerHeight*0.6),T=this._widget.lineHeight;if(this._preferredAnchorPosition!==void 0){let Y=Math.min(I,E),ee=Math.min(i+w,Math.max(0,Y));return Math.max(0,ee-w)}let O=Math.min(Math.max(I,T*3+w),E);return Math.min(i+w,O)-w}layout(i,h){if(this._hasLaidOut=!0,this._lastMinWidth=i,h!==void 0)this._fixedContentHeight=h;let b=this.computeHeight();this._widget.layout(b);let v=this._widget.computeMaxWidth(i);return this._cachedMaxWidth=v,this._widget.layout(b,this._cachedMaxWidth),this._cachedMaxWidth}};fg=gb([Fs(7,is),Fs(8,xo),Fs(9,D)],fg);function Uo(f){return f.replace(/\r\n|\r|\n/g," ")}var f2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},_b=function(f,i){return function(h,b){i(h,b,f)}};a("actionBar.toggledBackground",ku,e(1744,"Background color for toggled action items in action bar."));var Ny="--action-widget-close-start-opacity",Oy="--action-widget-close-start-transform",io={Visible:new P("codeActionMenuVisible",!1,e(1745,"Whether the action widget list is visible")),FilterFocused:new P("codeActionMenuFilterFocused",!1,e(1746,"Whether the action widget filter input is focused"))},uo=Q("actionWidgetService"),Ln=class f extends n{get isVisible(){return io.Visible.getValue(this._contextKeyService)||!1}constructor(i,h,b){super();this._contextViewService=i,this._contextKeyService=h,this._instantiationService=b,this._list=this._register(new le),this._closeAnimation=this._register(new le)}show(i,h,b,v,w,x,I,E,T){let O=io.Visible.bindTo(this._contextKeyService),A=this._instantiationService.createInstance(fg,i,h,b,v,E,T,w);this._contextViewService.showContextView({getAnchor:()=>w,render:(Y)=>(O.set(!0),this._renderWidget(Y,A,I??[],T)),onHide:(Y)=>{O.reset(),this._onWidgetClosed(Y)},get anchorPosition(){return A.anchorPosition},focus:()=>A.focus()},x,!1)}acceptSelected(i){this._list.value?.acceptSelected(i)}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(i){let h=this._list.value,b=this._widgetElement;if(!h||this._closingList===h)return;let v=h.closeAnimation;if(!b||!v||v.duration<=0||!this._hasRequiredAncestorClasses(b,v.requiredAncestorClasses)){this._closingList=h,h.hide(i);return}this._closingList=h;let w=B(b).getComputedStyle(b);b.style.setProperty(Ny,w.opacity),b.style.setProperty(Oy,w.transform),b.classList.add(v.className),h.hide(i,!1),this._closeAnimation.value=ti(()=>{if(this._list.value===h)this._contextViewService.hideContextView(i)},v.duration)}clear(){this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement?.style.removeProperty(Ny),this._widgetElement?.style.removeProperty(Oy),this._widgetElement=void 0,this._list.clear()}_renderWidget(i,h,b,v){let w=document.createElement("div");w.classList.add("action-widget");let x=h.widgetClassName?.split(/\s+/).filter(Boolean);if(x?.length)w.classList.add(...x);if(i.appendChild(w),this._widgetElement=w,this._list.value=h,this._list.value){if(this._list.value.headerContainer)w.appendChild(this._list.value.headerContainer);if(this._list.value.filterContainer)w.appendChild(this._list.value.filterContainer);if(w.appendChild(this._list.value.domNode),this._list.value.footerContainer)w.appendChild(this._list.value.footerContainer)}else throw Error("List has no value");let I=new d;if(v?.filterAsCombobox)I.add(wt(w,"keydown",(re)=>{if(re.keyCode===9&&!re.browserEvent.isComposing)Se.stop(re,!0),this.hide(!0)}));let E=this._list.value.headerContainer;if(E)I.add(td(E,(re)=>re.preventDefault()));let T=0;I.add(td(w,()=>{T=Date.now()+1000}));let O=document.createElement("div"),A=i.appendChild(O);A.classList.add("context-view-block"),I.add(td(A,(re)=>re.stopPropagation()));let Y=0;if(b.length){let re=this._createActionBar(".action-widget-action-bar",b);if(re)w.appendChild(re.getContainer().parentElement),I.add(re),Y=re.getContainer().offsetWidth}let ee=this._list.value?.layout(Y);w.style.width=`${ee}px`;let te=io.FilterFocused.bindTo(this._contextKeyService);if(I.add({dispose:()=>te.reset()}),this._list.value?.filterInput){let re=this._list.value.filterInput;I.add(c(re,"focus",()=>te.set(!0))),I.add(c(re,"blur",()=>te.set(!1)))}let oe=I.add(ii(i)),ne=I.add(new le);return I.add(oe.onDidFocus(()=>ne.clear())),I.add(oe.onDidBlur(()=>{let re=()=>{let he=T-Date.now();if(he>0){ne.value=ti(re,he);return}let ue=Nt();if(ue&&(i.contains(ue)||ue.closest(".action-widget-hover")||ue.closest(".action-list-submenu-panel")))return;this.hide(!0)};ne.value=ti(re,75)})),I}_createActionBar(i,h){if(!h.length)return;let b=g(i),v=new Fi(b);return v.push(h,{icon:!1,label:!0}),v}_hasRequiredAncestorClasses(i,h){if(!h?.length)return!0;for(let b=i;b;b=b.parentElement)if(h.every((v)=>b.classList.contains(v)))return!0;return!1}_onWidgetClosed(i){if(this._closingList===this._list.value){this.clear();return}this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement=void 0,this._list.value?.hide(i)}};Ln=f2([_b(0,is),_b(1,K),_b(2,D)],Ln);ve(uo,Ln,1);var zr=1100;it(class extends fn{constructor(){super({id:"hideCodeActionWidget",title:p(1747,"Hide action widget"),precondition:io.Visible,keybinding:{weight:zr,primary:9,secondary:[1033]}})}run(f){f.get(uo).hide(!0)}});it(class extends fn{constructor(){super({id:"clearFilterCodeActionWidget",title:p(1748,"Clear action widget filter"),precondition:C.and(io.Visible,io.FilterFocused),keybinding:{weight:zr+1,primary:9}})}run(f){let i=f.get(uo);if(i instanceof Ln){if(!i.clearFilter())i.hide(!0)}}});it(class extends fn{constructor(){super({id:"selectPrevCodeAction",title:p(1749,"Select previous action"),precondition:io.Visible,keybinding:{weight:zr,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(f){let i=f.get(uo);if(i instanceof Ln)i.focusPrevious()}});it(class extends fn{constructor(){super({id:"selectNextCodeAction",title:p(1750,"Select next action"),precondition:io.Visible,keybinding:{weight:zr,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(f){let i=f.get(uo);if(i instanceof Ln)i.focusNext()}});it(class extends fn{constructor(){super({id:"collapseSectionCodeAction",title:p(1751,"Collapse section"),precondition:C.and(io.Visible,io.FilterFocused.negate()),keybinding:{weight:zr,primary:15}})}run(f){let i=f.get(uo);if(i instanceof Ln)i.collapseSection()}});it(class extends fn{constructor(){super({id:"expandSectionCodeAction",title:p(1752,"Expand section"),precondition:C.and(io.Visible,io.FilterFocused.negate()),keybinding:{weight:zr,primary:17}})}run(f){let i=f.get(uo);if(i instanceof Ln)i.expandSection()}});it(class extends fn{constructor(){super({id:"toggleSectionCodeAction",title:p(1753,"Toggle section"),precondition:C.and(io.Visible,io.FilterFocused.negate()),keybinding:{weight:zr,primary:10}})}run(f){let i=f.get(uo);if(i instanceof Ln){if(!i.toggleSection())i.acceptSelected()}}});it(class extends fn{constructor(){super({id:_g,title:p(1754,"Accept selected action"),precondition:io.Visible,keybinding:{weight:zr,primary:3,secondary:[2137]}})}run(f){let i=f.get(uo);if(i instanceof Ln)i.acceptSelected()}});it(class extends fn{constructor(){super({id:bg,title:p(1755,"Preview selected action"),precondition:io.Visible,keybinding:{weight:zr,primary:2051}})}run(f){let i=f.get(uo);if(i instanceof Ln)i.acceptSelected(!0)}});var My=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Yd=function(f,i){return function(h,b){i(h,b,f)}},bb,vb=class f extends n{static{bb=this}static{this.baseId="editor.widget.postEditWidget"}constructor(i,h,b,v,w,x,I,E,T,O,A){super();this.typeId=i,this.editor=h,this.showCommand=v,this.range=w,this.edits=x,this.onSelectNewEdit=I,this.additionalActions=E,this._keybindingService=O,this._actionWidgetService=A,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=b.bindTo(T),this.visibleContext.set(!0),this._register(R(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(R(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition((Y)=>{this.dispose()})),this._register(k.runAndSubscribe(O.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=g(".post-edit-widget"),this.button=this._register(new Du(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(c(this.domNode,S.CLICK,()=>this.showSelector()))}getId(){return bb.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){let i=xt(this.button.element),h={x:i.left+i.width,y:i.top+i.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((b,v)=>({kind:"action",item:b,label:b.title,disabled:!1,canPreview:!1,group:{title:"",icon:J.fromId(v===this.edits.activeEditIndex?y.check.id:y.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:(b)=>{this._actionWidgetService.hide(!1);let v=this.edits.allEdits.findIndex((w)=>w===b);if(v!==this.edits.activeEditIndex)return this.onSelectNewEdit(v)}},h,this.editor.getDomNode()??void 0,this.additionalActions)}};vb=bb=My([Yd(8,K),Yd(9,fe),Yd(10,uo)],vb);var Eg=class f extends n{constructor(i,h,b,v,w,x,I,E){super();this._id=i,this._editor=h,this._visibleContext=b,this._showCommand=v,this._getAdditionalActions=w,this._instantiationService=x,this._bulkEditService=I,this._notificationService=E,this._currentWidget=this._register(new le),this._register(k.any(h.onDidChangeModel,h.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(i,h,b,v,w){if(!i.length||!this._editor.hasModel())return;let x=this._editor.getModel(),I=h.allEdits.at(h.activeEditIndex);if(!I)return;let E=async(re)=>{let he=this._editor.getModel();if(!he)return;await he.undo(),this.applyEditAndShowIfNeeded(i,{activeEditIndex:re,allEdits:h.allEdits},b,v,w)},T=(re,he)=>{if(ei(re))return;if(this._notificationService.error(he),b)this.show(i[0],h,E)},O=new ss(this._editor,3,void 0,w),A;try{A=await $R(v(I,O.token),O.token)}catch(re){return T(re,e(991,`Error resolving edit '{0}':
5
- {1}`,I.title,kg(re)))}finally{O.dispose()}if(w.isCancellationRequested)return;let Y=mg(x.uri,i,A),ee=i[0],te=x.deltaDecorations([],[{range:ee,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let oe,ne;try{oe=await this._bulkEditService.apply(Y,{editor:this._editor,token:w}),ne=x.getDecorationRange(te[0])}catch(re){return T(re,e(992,`Error applying edit '{0}':
6
- {1}`,I.title,kg(re)))}finally{x.deltaDecorations(te,[])}if(w.isCancellationRequested)return;if(b&&oe.isApplied&&h.allEdits.length>1)this.show(ne??ee,h,E)}show(i,h,b){if(this.clear(),this._editor.hasModel())this._currentWidget.value=this._instantiationService.createInstance(vb,this._id,this._editor,this._visibleContext,this._showCommand,i,h,b,this._getAdditionalActions())}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Eg=My([Yd(5,D),Yd(6,Bl),Yd(7,bt)],Eg);var _2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ur=function(f,i){return function(h,b){i(h,b,f)}},$o,yk="editor.changePasteType",b2="editor.pasteAs.preferences",L_=new P("pasteWidgetVisible",!1,e(971,"Whether the paste widget is showing")),Sb="application/vnd.code.copymetadata",uc=class f extends n{static{$o=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(i){return i.getContribution($o.ID)}constructor(i,h,b,v,w,x,I,E,T,O){super();this._logService=b,this._bulkEditService=v,this._clipboardService=w,this._commandService=x,this._configService=I,this._languageFeaturesService=E,this._quickInputService=T,this._progressService=O,this._editor=i,this._register(i.onWillCopy((A)=>this.handleCopy(A))),this._register(i.onWillCut((A)=>this.handleCopy(A))),this._register(i.onWillPaste((A)=>this.handlePaste(A))),this._pasteProgressManager=this._register(new Cg("pasteIntoEditor",i,h)),this._postPasteWidgetManager=this._register(h.createInstance(Eg,"pasteIntoEditor",i,L_,{id:yk,label:e(972,"Show paste options...")},()=>$o._configureDefaultAction?[$o._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(i){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:i},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(i){if(this._logService.trace("CopyPasteController#handleCopy"),!this._editor.hasTextFocus())return;if(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled())return;let h=this._editor.getModel(),b=this._editor._getViewModel(),v=this._editor.getSelections();if(!h||!b||!v?.length)return;let w={multicursorText:i.dataToCopy.multicursorText??null,pasteOnNewLine:i.dataToCopy.isFromEmptySelection,mode:null},x=this._languageFeaturesService.documentPasteEditProvider.ordered(h).filter((A)=>!!A.prepareDocumentPaste);if(!x.length){this.setCopyMetadata(i.clipboardData,{defaultPastePayload:w});return}let I=new Zh,E=x.flatMap((A)=>A.copyMimeTypes??[]),T=Ya();this.setCopyMetadata(i.clipboardData,{id:T,providerCopyMimeTypes:E,defaultPastePayload:w});let O=x.map((A)=>({providerMimeTypes:A.copyMimeTypes,operation:Wt((Y)=>A.prepareDocumentPaste(h,i.dataToCopy.sourceRanges,I,Y).catch((ee)=>{console.error(ee);return}))}));$o._currentCopyOperation?.operations.forEach((A)=>A.operation.cancel()),$o._currentCopyOperation={handle:T,operations:O}}async handlePaste(i){if(this._logService.trace("CopyPasteController#handlePaste for id : ",i.metadata?.id),!this._editor.hasTextFocus())return;let h=i.toExternalVSDataTransfer();if(!h)return;h.delete(Sb),Ei.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let b=this._editor.getModel(),v=this._editor.getSelections();if(!v?.length||!b)return;if(this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let w=this.fetchCopyMetadata(i);this._logService.trace("CopyPasteController#handlePaste with metadata : ",w?.id," and text.length : ",i.clipboardData.getData("text/plain").length);let x=Array.from(i.clipboardData.files).map((T)=>T.type),I=[...i.clipboardData.types,...x,...w?.providerCopyMimeTypes??[],mn.uriList],E=this._languageFeaturesService.documentPasteEditProvider.ordered(b).filter((T)=>{let O=this._pasteAsActionContext?.preferred;if(O){if(!this.providerMatchesPreference(T,O))return!1}return T.pasteMimeTypes?.some((A)=>Ok(A,I))});if(!E.length){if(this._pasteAsActionContext?.preferred)this.showPasteAsNoEditMessage(v,this._pasteAsActionContext.preferred),i.setHandled();return}if(i.setHandled(),this._pasteAsActionContext)this.showPasteAsPick(this._pasteAsActionContext.preferred,E,v,h,w);else this.doPasteInline(E,v,h,w,i.browserEvent)}showPasteAsNoEditMessage(i,h){let b="only"in h?h.only.value:("preferences"in h)?h.preferences.length?h.preferences.map((v)=>v.value).join(", "):e(973,"empty"):h.providerId;Ei.get(this._editor)?.showMessage(e(974,"No paste edits for '{0}' found",b),i[0].getStartPosition())}doPasteInline(i,h,b,v,w){this._logService.trace("CopyPasteController#doPasteInline");let x=this._editor;if(!x.hasModel())return;let I=new ss(x,3,void 0),E=Wt(async(T)=>{let O=this._editor;if(!O.hasModel())return;let A=O.getModel(),Y=new d,ee=Y.add(new Ve(T));Y.add(I.token.onCancellationRequested(()=>ee.cancel()));let te=ee.token;try{if(await this.mergeInDataFromCopy(i,b,v,te),te.isCancellationRequested)return;let oe=i.filter((he)=>this.isSupportedPasteProvider(he,b));if(!oe.length||oe.length===1&&oe[0]instanceof du)return this.applyDefaultPasteHandler(b,v,te,w);let ne={triggerKind:xf.Automatic},re=await this.getPasteEdits(oe,b,A,h,ne,te);if(Y.add(re),te.isCancellationRequested)return;if(re.edits.length===1&&re.edits[0].provider instanceof du)return this.applyDefaultPasteHandler(b,v,te,w);if(re.edits.length){let he=O.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(h,{activeEditIndex:this.getInitialActiveEditIndex(A,re.edits),allEdits:re.edits},he,async(ue,Ie)=>{if(!ue.provider.resolveDocumentPasteEdit)return ue;let Te=ue.provider.resolveDocumentPasteEdit(ue,Ie),ae=new js,xe=await this._pasteProgressManager.showWhile(h[0].getEndPosition(),e(975,"Resolving paste edit for '{0}'. Click to cancel",ue.title),El(Promise.race([ae.p,Te]),Ie),{cancel:()=>ae.cancel()},0);if(xe)ue.insertText=xe.insertText,ue.additionalEdit=xe.additionalEdit;return ue},te)}await this.applyDefaultPasteHandler(b,v,te,w)}finally{if(Y.dispose(),this._currentPasteOperation===E)this._currentPasteOperation=void 0}});this._pasteProgressManager.showWhile(h[0].getEndPosition(),e(976,"Running paste handlers. Click to cancel and do basic paste"),E,{cancel:async()=>{if(E.cancel(),I.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(b,v,I.token,w)}}).finally(()=>{I.dispose()}),this._currentPasteOperation=E}showPasteAsPick(i,h,b,v,w){this._logService.trace("CopyPasteController#showPasteAsPick");let x=Wt(async(I)=>{let E=this._editor;if(!E.hasModel())return;let T=E.getModel(),O=new d,A=O.add(new ss(E,3,void 0,I));try{if(await this.mergeInDataFromCopy(h,v,w,A.token),A.token.isCancellationRequested)return;let Y=h.filter((re)=>this.isSupportedPasteProvider(re,v,i));if(i)Y=Y.filter((re)=>this.providerMatchesPreference(re,i));let ee={triggerKind:xf.PasteAs,only:i&&"only"in i?i.only:void 0},te=O.add(await this.getPasteEdits(Y,v,T,b,ee,A.token));if(A.token.isCancellationRequested)return;if(i)te={edits:te.edits.filter((re)=>{if("only"in i)return i.only.contains(re.kind);else if("preferences"in i)return i.preferences.some((he)=>he.contains(re.kind));else return i.providerId===re.provider.id}),dispose:te.dispose};if(!te.edits.length){if(i)this.showPasteAsNoEditMessage(b,i);return}let oe;if(i)oe=te.edits.at(0);else{let re={id:"editor.pasteAs.default",label:e(977,"Configure default paste action"),edit:void 0},he=await this._quickInputService.pick([...te.edits.map((ue)=>({label:ue.title,description:ue.kind?.value,edit:ue})),...$o._configureDefaultAction?[SR({type:"separator"}),{label:$o._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:e(978,"Select Paste Action")});if(he===re){$o._configureDefaultAction?.run();return}oe=he?.edit}if(!oe)return;let ne=mg(T.uri,b,oe);await this._bulkEditService.apply(ne,{editor:this._editor})}finally{if(O.dispose(),this._currentPasteOperation===x)this._currentPasteOperation=void 0}});this._progressService.withProgress({location:10,title:e(979,"Running paste handlers")},()=>x)}setCopyMetadata(i,h){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",h.id),i.setData(Sb,JSON.stringify(h))}fetchCopyMetadata(i){this._logService.trace("CopyPasteController#fetchCopyMetadata");let h=i.clipboardData.getData(Sb);if(h)try{return JSON.parse(h)}catch{return}if(i.metadata)return{defaultPastePayload:{mode:i.metadata.mode,multicursorText:i.metadata.multicursorText??null,pasteOnNewLine:!!i.metadata.isFromEmptySelection}};return}async mergeInDataFromCopy(i,h,b,v){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",b?.id),b?.id&&$o._currentCopyOperation?.handle===b.id){let w=$o._currentCopyOperation.operations.filter((I)=>i.some((E)=>E.pasteMimeTypes.some((T)=>Ok(T,I.providerMimeTypes)))).map((I)=>I.operation),x=await Promise.all(w);if(v.isCancellationRequested)return;for(let I of x.reverse())if(I)for(let[E,T]of I)h.replace(E,T)}if(!h.has(mn.uriList)){let w=await this._clipboardService.readResources();if(v.isCancellationRequested)return;if(w.length)h.append(mn.uriList,Gv(jf.create(w)))}}async getPasteEdits(i,h,b,v,w,x){let I=new d,E=await El(Promise.all(i.map(async(O)=>{try{let A=await O.provideDocumentPasteEdits?.(b,v,h,w,x);if(A)I.add(A);return A?.edits?.map((Y)=>({...Y,provider:O}))}catch(A){if(!ei(A))console.error(A);return}})),x),T=ar(E??[]).flat().filter((O)=>!w.only||w.only.contains(O.kind));return{edits:T_(T),dispose:()=>I.dispose()}}async applyDefaultPasteHandler(i,h,b,v){let x=await(i.get(mn.text)??i.get("text"))?.asString()??"";if(b.isCancellationRequested)return;let I={clipboardEvent:v,text:x,pasteOnNewLine:h?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:h?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",h?.id),this._editor.trigger("keyboard","paste",I)}isSupportedPasteProvider(i,h,b){if(!i.pasteMimeTypes?.some((v)=>h.matches(v)))return!1;return!b||this.providerMatchesPreference(i,b)}providerMatchesPreference(i,h){if("only"in h)return i.providedPasteEditKinds.some((b)=>h.only.contains(b));else if("preferences"in h)return i.providedPasteEditKinds.some((b)=>h.preferences.some((v)=>v.contains(b)));else return i.id===h.providerId}getInitialActiveEditIndex(i,h){let b=this._configService.getValue(b2,{resource:i.uri});for(let v of Array.isArray(b)?b:[]){let w=new Pt(v),x=h.findIndex((I)=>w.contains(I.kind));if(x>=0)return x}return 0}};uc=$o=_2([Ur(1,D),Ur(2,Ke),Ur(3,Bl),Ur(4,ri),Ur(5,Be),Ur(6,ie),Ur(7,V),Ur(8,gn),Ur(9,T0)],uc);var od="9_cutcopypaste",v2=Io||document.queryCommandSupported&&document.queryCommandSupported("cut"),Ay=Io||document.queryCommandSupported&&document.queryCommandSupported("copy"),S2=typeof navigator.clipboard>"u"||Gn?document.queryCommandSupported&&document.queryCommandSupported("paste"):!0;function yb(f){return f.register(),f}var w2=v2?yb(new Hh({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:Io?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(864,"Cu&&t"),order:1},{menuId:l.EditorContext,group:od,title:e(865,"Cut"),when:o.writable,order:1},{menuId:l.CommandPalette,group:"",title:e(866,"Cut"),order:1},{menuId:l.SimpleEditorContext,group:od,title:e(867,"Cut"),when:o.writable,order:1}]})):void 0,C2=Ay?yb(new Hh({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:Io?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(868,"&&Copy"),order:2},{menuId:l.EditorContext,group:od,title:e(869,"Copy"),order:2},{menuId:l.CommandPalette,group:"",title:e(870,"Copy"),order:1},{menuId:l.SimpleEditorContext,group:od,title:e(871,"Copy"),order:2}]})):void 0;Pn.appendMenuItem(l.MenubarEditMenu,{submenu:l.MenubarCopy,title:p(876,"Copy As"),group:"2_ccp",order:3});Pn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextCopy,title:p(877,"Copy As"),group:od,order:3});Pn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextShare,title:p(878,"Share"),group:"11_share",order:-1,when:C.and(C.notEquals("resourceScheme","output"),o.editorTextFocus)});Pn.appendMenuItem(l.ExplorerContext,{submenu:l.ExplorerContextShare,title:p(879,"Share"),group:"11_share",order:-1});var wb=S2?yb(new Hh({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:Io?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:l.MenubarEditMenu,group:"2_ccp",title:e(872,"&&Paste"),order:4},{menuId:l.EditorContext,group:od,title:e(873,"Paste"),when:o.writable,order:4},{menuId:l.CommandPalette,group:"",title:e(874,"Paste"),order:1},{menuId:l.SimpleEditorContext,group:od,title:e(875,"Paste"),when:o.writable,order:4}]})):void 0;class Fy extends U{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:p(880,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,weight:100}})}run(f,i){let h=f.get(Ke),b=f.get(ri);if(h.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!i.hasModel())return;if(!i.getOption(45)&&i.getSelection().isEmpty())return;ld.forceCopyWithSyntaxHighlighting=!0,i.focus(),h.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),Cb(i,b),h.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),ld.forceCopyWithSyntaxHighlighting=!1}}function Cb(f,i){if(ld.electronBugWorkaroundCopyEventHasFired=!1,f.getContainerDomNode().ownerDocument.execCommand("copy"),Io&&ld.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:h}=nI(f._getViewModel(),void 0,Gn);i.writeText(h.text)}}function Hy(f,i){if(!f)return;f.addImplementation(1e4,"code-editor",(h,b)=>{let v=h.get(Ke),w=h.get(ri);v.trace("registerExecCommandImpl (addImplementation code-editor for : ",i,")");let x=h.get(Ce).getFocusedCodeEditor();if(x&&x.hasTextFocus()&&x.hasModel()){let I=x.getOption(45),E=x.getSelection();if(E&&E.isEmpty()&&!I)return!0;if(x.getOption(171)&&i==="cut")Py(x),v.trace("registerExecCommandImpl (before execCommand copy)"),Cb(x,w),x.trigger(void 0,"cut",void 0),v.trace("registerExecCommandImpl (after execCommand copy)");else{if(Py(x),v.trace("registerExecCommandImpl (before execCommand "+i+")"),i==="copy")Cb(x,w);else x.getContainerDomNode().ownerDocument.execCommand(i);v.trace("registerExecCommandImpl (after execCommand "+i+")")}return!0}return!1}),f.addImplementation(0,"generic-dom",(h,b)=>{let v=h.get(Ke);return v.trace("registerExecCommandImpl (addImplementation generic-dom for : ",i,")"),v.trace("registerExecCommandImpl (before execCommand "+i+")"),Ah().execCommand(i),v.trace("registerExecCommandImpl (after execCommand "+i+")"),!0})}function Py(f){if(f.getOption(171)){let h=Zv.get(f.getId());if(h)h.handleWillCopy()}}Hy(w2,"cut");Hy(C2,"copy");if(wb)wb.addImplementation(1e4,"code-editor",(f,i)=>{let h=f.get(Ke);h.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");let b=f.get(Ce),v=f.get(ri),w=b.getFocusedCodeEditor();if(w&&w.hasModel()&&w.hasTextFocus()){if(w.getOption(171)){let E=Zv.get(w.getId());if(E)E.handleWillPaste()}h.trace("registerExecCommandImpl (before triggerPaste)");let I=v.triggerPaste(We().vscodeWindowId);if(I)return h.trace("registerExecCommandImpl (triggerPaste defined)"),I.then(async()=>(h.trace("registerExecCommandImpl (after triggerPaste)"),uc.get(w)?.finishedPaste()??Promise.resolve()));else h.trace("registerExecCommandImpl (triggerPaste undefined)");if(fs)return h.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{let E=await v.readText();if(E!==""){let T=Xh.INSTANCE.get(E),O=!1,A=null,Y=null;if(T)O=w.getOption(45)&&!!T.isFromEmptySelection,A=typeof T.multicursorText<"u"?T.multicursorText:null,Y=T.mode;h.trace("registerExecCommandImpl (clipboardText.length : ",E.length," id : ",T?.id,")"),w.trigger("keyboard","paste",{text:E,pasteOnNewLine:O,multicursorText:A,mode:Y})}})();return!0}return!1}),wb.addImplementation(0,"generic-dom",(f,i)=>(f.get(Ke).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),f.get(ri).triggerPaste(We().vscodeWindowId)??!1));if(Ay)N(Fy);class sr{constructor(f,i,h){this.languageConfigurationService=h,this._selection=f,this._insertSpace=i,this._usedEndToken=null}static _haystackHasNeedleAtOffset(f,i,h){if(h<0)return!1;let b=i.length,v=f.length;if(h+b>v)return!1;for(let w=0;w<b;w++){let x=f.charCodeAt(h+w),I=i.charCodeAt(w);if(x===I)continue;if(x>=65&&x<=90&&x+32===I)continue;if(I>=65&&I<=90&&I+32===x)continue;return!1}return!0}_createOperationsForBlockComment(f,i,h,b,v,w){let{startLineNumber:x,startColumn:I,endLineNumber:E,endColumn:T}=f,O=v.getLineContent(x),A=v.getLineContent(E),Y=O.lastIndexOf(i,I-1+i.length),ee=A.indexOf(h,T-1-h.length);if(Y!==-1&&ee!==-1)if(x===E){if(O.substring(Y+i.length,ee).indexOf(h)>=0)Y=-1,ee=-1}else{let oe=O.substring(Y+i.length),ne=A.substring(0,ee);if(oe.indexOf(h)>=0||ne.indexOf(h)>=0)Y=-1,ee=-1}let te;if(Y!==-1&&ee!==-1){if(b&&Y+i.length<O.length&&O.charCodeAt(Y+i.length)===32)i=i+" ";if(b&&ee>0&&A.charCodeAt(ee-1)===32)h=" "+h,ee-=1;te=sr._createRemoveBlockCommentOperations(new t(x,Y+i.length+1,E,ee+1),i,h)}else te=sr._createAddBlockCommentOperations(f,i,h,this._insertSpace),this._usedEndToken=te.length===1?h:null;for(let oe of te)w.addTrackedEditOperation(oe.range,oe.text)}static _createRemoveBlockCommentOperations(f,i,h){let b=[];if(!t.isEmpty(f))b.push(Vt.delete(new t(f.startLineNumber,f.startColumn-i.length,f.startLineNumber,f.startColumn))),b.push(Vt.delete(new t(f.endLineNumber,f.endColumn,f.endLineNumber,f.endColumn+h.length)));else b.push(Vt.delete(new t(f.startLineNumber,f.startColumn-i.length,f.endLineNumber,f.endColumn+h.length)));return b}static _createAddBlockCommentOperations(f,i,h,b){let v=[];if(!t.isEmpty(f))v.push(Vt.insert(new s(f.startLineNumber,f.startColumn),i+(b?" ":""))),v.push(Vt.insert(new s(f.endLineNumber,f.endColumn),(b?" ":"")+h));else v.push(Vt.replace(new t(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn),i+" "+h));return v}getEditOperations(f,i){let h=this._selection.startLineNumber,b=this._selection.startColumn;f.tokenization.tokenizeIfCheap(h);let v=f.getLanguageIdAtPosition(h,b),w=this.languageConfigurationService.getLanguageConfiguration(v).comments;if(!w||!w.blockCommentStartToken||!w.blockCommentEndToken)return;this._createOperationsForBlockComment(this._selection,w.blockCommentStartToken,w.blockCommentEndToken,this._insertSpace,f,i)}computeCursorState(f,i){let h=i.getInverseEditOperations();if(h.length===2){let b=h[0],v=h[1];return new F(b.range.endLineNumber,b.range.endColumn,v.range.startLineNumber,v.range.startColumn)}else{let b=h[0].range,v=this._usedEndToken?-this._usedEndToken.length-1:0;return new F(b.endLineNumber,b.endColumn+v,b.endLineNumber,b.endColumn+v)}}}class pr{constructor(f,i,h,b,v,w,x){this.languageConfigurationService=f,this._selection=i,this._indentSize=h,this._type=b,this._insertSpace=v,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=w,this._ignoreFirstLine=x||!1}static _gatherPreflightCommentStrings(f,i,h,b){f.tokenization.tokenizeIfCheap(i);let v=f.getLanguageIdAtPosition(i,1),w=b.getLanguageConfiguration(v).comments,x=w?w.lineCommentToken:null;if(!x)return null;let I=[];for(let E=0,T=h-i+1;E<T;E++)I[E]={ignore:!1,commentStr:x,commentStrOffset:0,commentStrLength:x.length};return I}static _analyzeLines(f,i,h,b,v,w,x,I,E){let T=!0,A=I.getLanguageConfiguration(E).comments?.lineCommentNoIndent??!1,Y;if(f===0)Y=!0;else if(f===1)Y=!1;else Y=!0;for(let ee=0,te=b.length;ee<te;ee++){let oe=b[ee],ne=v+ee;if(ne===v&&x){oe.ignore=!0;continue}let re=h.getLineContent(ne),he=An(re);if(he===-1){oe.ignore=w,oe.commentStrOffset=A?0:re.length;continue}T=!1;let ue=A?0:he;if(oe.ignore=!1,oe.commentStrOffset=ue,Y&&!sr._haystackHasNeedleAtOffset(re,oe.commentStr,ue))if(f===0)Y=!1;else if(f===1);else oe.ignore=!0;if(Y&&i){let Ie=he+oe.commentStrLength;if(Ie<re.length&&re.charCodeAt(Ie)===32)oe.commentStrLength+=1}}if(f===0&&T){Y=!1;for(let ee=0,te=b.length;ee<te;ee++)b[ee].ignore=!1}return{supported:!0,shouldRemoveComments:Y,lines:b}}static _gatherPreflightData(f,i,h,b,v,w,x,I){let E=pr._gatherPreflightCommentStrings(h,b,v,I),T=h.getLanguageIdAtPosition(b,1);if(E===null)return{supported:!1};return pr._analyzeLines(f,i,h,E,b,w,x,I,T)}_executeLineComments(f,i,h,b){let v;if(h.shouldRemoveComments)v=pr._createRemoveLineCommentsOperations(h.lines,b.startLineNumber);else pr._normalizeInsertionPoint(f,h.lines,b.startLineNumber,this._indentSize),v=this._createAddLineCommentsOperations(h.lines,b.startLineNumber);let w=new s(b.positionLineNumber,b.positionColumn);for(let x=0,I=v.length;x<I;x++)if(i.addEditOperation(v[x].range,v[x].text),t.isEmpty(v[x].range)&&t.getStartPosition(v[x].range).equals(w)){if(f.getLineContent(w.lineNumber).length+1===w.column)this._deltaColumn=(v[x].text||"").length}this._selectionId=i.trackSelection(b)}_attemptRemoveBlockComment(f,i,h,b){let{startLineNumber:v,endLineNumber:w}=i,x=b.length+Math.max(f.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.startColumn),I=f.getLineContent(v).lastIndexOf(h,x-1),E=f.getLineContent(w).indexOf(b,i.endColumn-1-h.length);if(I!==-1&&E===-1)E=f.getLineContent(v).indexOf(b,I+h.length),w=v;if(I===-1&&E!==-1)I=f.getLineContent(w).lastIndexOf(h,E),v=w;if(i.isEmpty()&&(I===-1||E===-1)){if(I=f.getLineContent(v).indexOf(h),I!==-1)E=f.getLineContent(v).indexOf(b,I+h.length)}if(I!==-1&&f.getLineContent(v).charCodeAt(I+h.length)===32)h+=" ";if(E!==-1&&f.getLineContent(w).charCodeAt(E-1)===32)b=" "+b,E-=1;if(I!==-1&&E!==-1)return sr._createRemoveBlockCommentOperations(new t(v,I+h.length+1,w,E+1),h,b);return null}_executeBlockComment(f,i,h){f.tokenization.tokenizeIfCheap(h.startLineNumber);let b=f.getLanguageIdAtPosition(h.startLineNumber,1),v=this.languageConfigurationService.getLanguageConfiguration(b).comments;if(!v||!v.blockCommentStartToken||!v.blockCommentEndToken)return;let{blockCommentStartToken:w,blockCommentEndToken:x}=v,I=this._attemptRemoveBlockComment(f,h,w,x);if(!I){if(h.isEmpty()){let E=f.getLineContent(h.startLineNumber),T=An(E);if(T===-1)T=E.length;I=sr._createAddBlockCommentOperations(new t(h.startLineNumber,T+1,h.startLineNumber,E.length+1),w,x,this._insertSpace)}else I=sr._createAddBlockCommentOperations(new t(h.startLineNumber,f.getLineFirstNonWhitespaceColumn(h.startLineNumber),h.endLineNumber,f.getLineMaxColumn(h.endLineNumber)),w,x,this._insertSpace);if(I.length===1)this._deltaColumn=w.length+1}this._selectionId=i.trackSelection(h);for(let E of I)i.addEditOperation(E.range,E.text)}getEditOperations(f,i){let h=this._selection;if(this._moveEndPositionDown=!1,h.startLineNumber===h.endLineNumber&&this._ignoreFirstLine){i.addEditOperation(new t(h.startLineNumber,f.getLineMaxColumn(h.startLineNumber),h.startLineNumber+1,1),h.startLineNumber===f.getLineCount()?"":`
7
- `),this._selectionId=i.trackSelection(h);return}if(h.startLineNumber<h.endLineNumber&&h.endColumn===1)this._moveEndPositionDown=!0,h=h.setEndPosition(h.endLineNumber-1,f.getLineMaxColumn(h.endLineNumber-1));let b=pr._gatherPreflightData(this._type,this._insertSpace,f,h.startLineNumber,h.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);if(b.supported)return this._executeLineComments(f,i,b,h);return this._executeBlockComment(f,i,h)}computeCursorState(f,i){let h=i.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)h=h.setEndPosition(h.endLineNumber+1,1);return new F(h.selectionStartLineNumber,h.selectionStartColumn+this._deltaColumn,h.positionLineNumber,h.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(f,i){let h=[];for(let b=0,v=f.length;b<v;b++){let w=f[b];if(w.ignore)continue;h.push(Vt.delete(new t(i+b,w.commentStrOffset+1,i+b,w.commentStrOffset+w.commentStrLength+1)))}return h}_createAddLineCommentsOperations(f,i){let h=[],b=this._insertSpace?" ":"";for(let v=0,w=f.length;v<w;v++){let x=f[v];if(x.ignore)continue;h.push(Vt.insert(new s(i+v,x.commentStrOffset+1),x.commentStr+b))}return h}static nextVisibleColumn(f,i,h,b){if(h)return f+(i-f%i);return f+b}static _normalizeInsertionPoint(f,i,h,b){let v=1073741824,w,x;for(let I=0,E=i.length;I<E;I++){if(i[I].ignore)continue;let T=f.getLineContent(h+I),O=0;for(let A=0,Y=i[I].commentStrOffset;O<v&&A<Y;A++)O=pr.nextVisibleColumn(O,b,T.charCodeAt(A)===9,1);if(O<v)v=O}v=Math.floor(v/b)*b;for(let I=0,E=i.length;I<E;I++){if(i[I].ignore)continue;let T=f.getLineContent(h+I),O=0;for(w=0,x=i[I].commentStrOffset;O<v&&w<x;w++)O=pr.nextVisibleColumn(O,b,T.charCodeAt(w)===9,1);if(O>v)i[I].commentStrOffset=w-1;else i[I].commentStrOffset=w}}}class vg extends U{constructor(f,i){super(i);this._type=f}run(f,i){let h=f.get(st);if(!i.hasModel())return;let b=i.getModel(),v=[],w=b.getOptions(),x=i.getOption(29),I=i.getSelections().map((T,O)=>({selection:T,index:O,ignoreFirstLine:!1}));I.sort((T,O)=>t.compareRangesUsingStarts(T.selection,O.selection));let E=I[0];for(let T=1;T<I.length;T++){let O=I[T];if(E.selection.endLineNumber===O.selection.startLineNumber)if(E.index<O.index)O.ignoreFirstLine=!0;else E.ignoreFirstLine=!0,E=O}for(let T of I)v.push(new pr(h,T.selection,w.indentSize,this._type,x.insertSpace,x.ignoreEmptyLines,T.ignoreFirstLine));i.pushUndoStop(),i.executeCommands(this.id,v),i.pushUndoStop()}}class Wy extends vg{constructor(){super(0,{id:"editor.action.commentLine",label:p(948,"Toggle Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"5_insert",title:e(946,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class By extends vg{constructor(){super(1,{id:"editor.action.addCommentLine",label:p(949,"Add Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class Vy extends vg{constructor(){super(2,{id:"editor.action.removeCommentLine",label:p(950,"Remove Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class Ky extends U{constructor(){super({id:"editor.action.blockComment",label:p(951,"Toggle Block Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"5_insert",title:e(947,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(f,i){let h=f.get(st);if(!i.hasModel())return;let b=i.getOption(29),v=[],w=i.getSelections();for(let x of w)v.push(new sr(x,b.insertSpace,h));i.pushUndoStop(),i.executeCommands(this.id,v),i.pushUndoStop()}}N(Wy);N(By);N(Vy);N(Ky);class Sg{constructor(f){this.selections=f}equals(f){let i=this.selections.length,h=f.selections.length;if(i!==h)return!1;for(let b=0;b<i;b++)if(!this.selections[b].equalsSelection(f.selections[b]))return!1;return!0}}class wg{constructor(f,i,h){this.cursorState=f,this.scrollTop=i,this.scrollLeft=h}}class Jd extends n{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(f){return f.getContribution(Jd.ID)}constructor(f){super();this._editor=f,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(f.onDidChangeModel((i)=>{this._undoStack=[],this._redoStack=[]})),this._register(f.onDidChangeModelContent((i)=>{this._undoStack=[],this._redoStack=[]})),this._register(f.onDidChangeCursorSelection((i)=>{if(this._isCursorUndoRedo)return;if(!i.oldSelections)return;if(i.oldModelVersionId!==i.modelVersionId)return;let h=new Sg(i.oldSelections);if(!(this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(h))){if(this._undoStack.push(new wg(h,f.getScrollTop(),f.getScrollLeft())),this._redoStack=[],this._undoStack.length>50)this._undoStack.shift()}}))}cursorUndo(){if(!this._editor.hasModel()||this._undoStack.length===0)return;this._redoStack.push(new wg(new Sg(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop())}cursorRedo(){if(!this._editor.hasModel()||this._redoStack.length===0)return;this._undoStack.push(new wg(new Sg(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop())}_applyState(f){this._isCursorUndoRedo=!0,this._editor.setSelections(f.cursorState.selections),this._editor.setScrollPosition({scrollTop:f.scrollTop,scrollLeft:f.scrollLeft}),this._isCursorUndoRedo=!1}}class zy extends U{constructor(){super({id:"cursorUndo",label:p(965,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:2099,weight:100}})}run(f,i,h){Jd.get(i)?.cursorUndo()}}class Uy extends U{constructor(){super({id:"cursorRedo",label:p(966,"Cursor Redo"),precondition:void 0})}run(f,i,h){Jd.get(i)?.cursorRedo()}}pe(Jd.ID,Jd,0);N(zy);N(Uy);class xb{constructor(f,i,h){this.selection=f,this.targetPosition=i,this.copy=h,this.targetSelection=null}getEditOperations(f,i){let h=f.getValueInRange(this.selection);if(!this.copy)i.addEditOperation(this.selection,null);if(i.addEditOperation(new t(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),h),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new F(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new F(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.selection.endColumn<=this.targetPosition.column)this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column-this.selection.endColumn+this.selection.startColumn:this.targetPosition.column-this.selection.endColumn+this.selection.startColumn,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn);else this.targetSelection=new F(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(f,i){return this.targetSelection}}function Qd(f){if(ge)return f.altKey;else return f.ctrlKey}class el extends n{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=ge?6:5}constructor(f){super();this._editor=f,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((i)=>this._onEditorMouseDown(i))),this._register(this._editor.onMouseUp((i)=>this._onEditorMouseUp(i))),this._register(this._editor.onMouseDrag((i)=>this._onEditorMouseDrag(i))),this._register(this._editor.onMouseDrop((i)=>this._onEditorMouseDrop(i))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown((i)=>this.onEditorKeyDown(i))),this._register(this._editor.onKeyUp((i)=>this.onEditorKeyUp(i))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(f){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Qd(f))this._modifierPressed=!0;if(this._mouseDown&&Qd(f))this._editor.updateOptions({mouseStyle:"copy"})}onEditorKeyUp(f){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Qd(f))this._modifierPressed=!1;if(this._mouseDown&&f.keyCode===el.TRIGGER_KEY_VALUE)this._editor.updateOptions({mouseStyle:"default"})}_onEditorMouseDown(f){this._mouseDown=!0}_onEditorMouseUp(f){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(f){let i=f.target;if(this._dragSelection===null){let b=(this._editor.getSelections()||[]).filter((v)=>i.position&&v.containsPosition(i.position));if(b.length===1)this._dragSelection=b[0];else return}if(Qd(f.event))this._editor.updateOptions({mouseStyle:"copy"});else this._editor.updateOptions({mouseStyle:"default"});if(i.position)if(this._dragSelection.containsPosition(i.position))this._removeDecoration();else this.showAt(i.position)}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(f){if(f.target&&(this._hitContent(f.target)||this._hitMargin(f.target))&&f.target.position){let i=new s(f.target.position.lineNumber,f.target.position.column);if(this._dragSelection===null){let h=null;if(f.event.shiftKey){let b=this._editor.getSelection();if(b){let{selectionStartLineNumber:v,selectionStartColumn:w}=b;h=[new F(v,w,i.lineNumber,i.column)]}}else h=(this._editor.getSelections()||[]).map((b)=>{if(b.containsPosition(i))return new F(i.lineNumber,i.column,i.lineNumber,i.column);else return b});this._editor.setSelections(h||[],"mouse",3)}else if(!this._dragSelection.containsPosition(i)||(Qd(f.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(i)||this._dragSelection.getStartPosition().equals(i)))this._editor.pushUndoStop(),this._editor.executeCommand(el.ID,new xb(this._dragSelection,i,Qd(f.event)||this._modifierPressed)),this._editor.pushUndoStop()}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=ce.register({description:"dnd-target",className:"dnd-target"})}showAt(f){this._dndDecorationIds.set([{range:new t(f.lineNumber,f.column,f.lineNumber,f.column),options:el._DECORATION_OPTIONS}]),this._editor.revealPosition(f,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(f){return f.type===6||f.type===7}_hitMargin(f){return f.type===2||f.type===3||f.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}pe(el.ID,el,2);function Ib(f,i,h,b){if(f.getLineCount()===1&&f.getLineMaxColumn(1)===1)return[];let v=i.getLanguageConfiguration(f.getLanguageId()).indentRulesSupport;if(!v)return[];let w=new tb(f,v,i);b=Math.min(b,f.getLineCount());while(h<=b){if(!w.shouldIgnore(h))break;h++}if(h>b-1)return[];let{tabSize:x,indentSize:I,insertSpaces:E}=f.getOptions(),T=(oe,ne)=>(ne=ne||1,Po.shiftIndent(oe,oe.length+ne,x,I,E)),O=(oe,ne)=>(ne=ne||1,Po.unshiftIndent(oe,oe.length+ne,x,I,E)),A=[],Y=f.getLineContent(h),ee=$t(Y),te=ee;if(w.shouldIncrease(h))te=T(te),ee=T(ee);else if(w.shouldIndentNextLine(h))te=T(te);h++;for(let oe=h;oe<=b;oe++){if(y2(f,oe))continue;let ne=f.getLineContent(oe),re=$t(ne),he=te;if(w.shouldDecrease(oe,he))te=O(te),ee=O(ee);if(re!==te)A.push(Vt.replaceMove(new F(oe,1,oe,re.length+1),Qg(te,I,E)));if(w.shouldIgnore(oe))continue;else if(w.shouldIncrease(oe,he))ee=T(ee),te=ee;else if(w.shouldIndentNextLine(oe,he))te=T(te);else te=ee}return A}function y2(f,i){if(!f.tokenization.isCheapToTokenize(i))return!1;return f.tokenization.getLineTokens(i).getStandardTokenType(0)===2}function ji(f,i){let h=0;for(let b=0;b<f.length;b++)if(f.charAt(b)==="\t")h+=i;else h++;return h}function ud(f,i,h){f=f<0?0:f;let b="";if(!h){let v=Math.floor(f/i);f=f%i;for(let w=0;w<v;w++)b+="\t"}for(let v=0;v<f;v++)b+=" ";return b}var x2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},I2=function(f,i){return function(h,b){i(h,b,f)}};class Lb extends U{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:Lb.ID,label:p(1204,"Convert Indentation to Spaces"),precondition:o.writable,metadata:{description:p(1205,"Convert the tab indentation to spaces.")}})}run(f,i){let h=i.getModel();if(!h)return;let b=h.getOptions(),v=i.getSelection();if(!v)return;let w=new Zy(v,b.tabSize);i.pushUndoStop(),i.executeCommands(this.id,[w]),i.pushUndoStop(),h.updateOptions({insertSpaces:!0})}}class Eb extends U{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:Eb.ID,label:p(1206,"Convert Indentation to Tabs"),precondition:o.writable,metadata:{description:p(1207,"Convert the spaces indentation to tabs.")}})}run(f,i){let h=i.getModel();if(!h)return;let b=h.getOptions(),v=i.getSelection();if(!v)return;let w=new Xy(v,b.tabSize);i.pushUndoStop(),i.executeCommands(this.id,[w]),i.pushUndoStop(),h.updateOptions({insertSpaces:!1})}}class xg extends U{constructor(f,i,h){super(h);this.insertSpaces=f,this.displaySizeOnly=i}run(f,i){let h=f.get(gn),b=f.get(_t),v=i.getModel();if(!v)return;let w=b.getCreationOptions(v.getLanguageId(),v.uri,v.isForSimpleWidget),x=v.getOptions(),I=[1,2,3,4,5,6,7,8].map((T)=>({id:T.toString(),label:T.toString(),description:T===w.tabSize&&T===x.tabSize?e(1200,"Configured Tab Size"):T===w.tabSize?e(1201,"Default Tab Size"):T===x.tabSize?e(1202,"Current Tab Size"):void 0})),E=Math.min(v.getOptions().tabSize-1,7);setTimeout(()=>{h.pick(I,{placeHolder:e(1203,"Select Tab Size for Current File"),activeItem:I[E]}).then((T)=>{if(T){if(v&&!v.isDisposed()){let O=parseInt(T.label,10);if(this.displaySizeOnly)v.updateOptions({tabSize:O});else v.updateOptions({tabSize:O,indentSize:O,insertSpaces:this.insertSpaces})}}})},50)}}class Db extends xg{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:Db.ID,label:p(1208,"Indent Using Tabs"),precondition:void 0,metadata:{description:p(1209,"Use indentation with tabs.")}})}}class Rb extends xg{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:Rb.ID,label:p(1210,"Indent Using Spaces"),precondition:void 0,metadata:{description:p(1211,"Use indentation with spaces.")}})}}class kb extends xg{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:kb.ID,label:p(1212,"Change Tab Display Size"),precondition:void 0,metadata:{description:p(1213,"Change the space size equivalent of the tab.")}})}}class Tb extends U{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:Tb.ID,label:p(1214,"Detect Indentation from Content"),precondition:void 0,metadata:{description:p(1215,"Detect the indentation from content.")}})}run(f,i){let h=f.get(_t),b=i.getModel();if(!b)return;let v=h.getCreationOptions(b.getLanguageId(),b.uri,b.isForSimpleWidget);b.detectIndentation(v.insertSpaces,v.tabSize)}}class $y extends U{constructor(){super({id:"editor.action.reindentlines",label:p(1216,"Reindent Lines"),precondition:o.writable,metadata:{description:p(1217,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(f,i){let h=f.get(st),b=i.getModel();if(!b)return;let v=Ib(b,h,1,b.getLineCount());if(v.length>0)i.pushUndoStop(),i.executeEdits(this.id,v),i.pushUndoStop()}}class jy extends U{constructor(){super({id:"editor.action.reindentselectedlines",label:p(1218,"Reindent Selected Lines"),precondition:o.writable,metadata:{description:p(1219,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(f,i){let h=f.get(st),b=i.getModel();if(!b)return;let v=i.getSelections();if(v===null)return;let w=[];for(let x of v){let{startLineNumber:I,endLineNumber:E}=x;if(I!==E&&x.endColumn===1)E--;if(I===1){if(I===E)continue}else I--;let T=Ib(b,h,I,E);w.push(...T)}if(w.length>0)i.pushUndoStop(),i.executeEdits(this.id,w),i.pushUndoStop()}}class Gy{constructor(f,i){this._initialSelection=i,this._edits=[],this._selectionId=null;for(let h of f)if(h.range&&typeof h.text==="string")this._edits.push(h)}getEditOperations(f,i){for(let b of this._edits)i.addEditOperation(t.lift(b.range),b.text);let h=!1;if(Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()){if(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber)h=!0,this._selectionId=i.trackSelection(this._initialSelection,!0);else if(this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber)h=!0,this._selectionId=i.trackSelection(this._initialSelection,!1)}if(!h)this._selectionId=i.trackSelection(this._initialSelection)}computeCursorState(f,i){return i.getTrackedSelection(this._selectionId)}}var yg=class f{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(i,h){this.editor=i,this._languageConfigurationService=h,this.callOnDispose=new d,this.callOnModel=new d,this.callOnDispose.add(i.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(i.onDidChangeModel(()=>this.update())),this.callOnDispose.add(i.onDidChangeModelLanguage(()=>this.update()))}update(){if(this.callOnModel.clear(),!this.editor.getOption(17)||this.editor.getOption(16)<4)return;if(!this.editor.hasModel())return;this.callOnModel.add(this.editor.onDidPaste(({range:i})=>{this.trigger(i)}))}trigger(i){let h=this.editor.getSelections();if(h===null||h.length>1)return;let b=this.editor.getModel();if(!b)return;if(this.rangeContainsOnlyWhitespaceCharacters(b,i))return;if(!this.editor.getOption(18)&&L2(b,i))return;if(!b.tokenization.isCheapToTokenize(i.getStartPosition().lineNumber))return;let w=this.editor.getOption(16),{tabSize:x,indentSize:I,insertSpaces:E}=b.getOptions(),T=[],O={shiftIndent:(te)=>Po.shiftIndent(te,te.length+1,x,I,E),unshiftIndent:(te)=>Po.unshiftIndent(te,te.length+1,x,I,E)},A=i.startLineNumber,Y=b.getLineContent(A);if(!/\S/.test(Y.substring(0,i.startColumn-1))){let te=Bf(w,b,b.getLanguageId(),A,O,this._languageConfigurationService);if(te!==null){let oe=$t(Y),ne=ji(te,x),re=ji(oe,x);if(ne!==re){let he=ud(ne,x,E);T.push({range:new t(A,1,A,oe.length+1),text:he}),Y=he+Y.substring(oe.length)}else{let he=s0(b,A,this._languageConfigurationService);if(he===0||he===8)return}}}let ee=A;while(A<i.endLineNumber){if(!/\S/.test(b.getLineContent(A+1))){A++;continue}break}if(A!==i.endLineNumber){let oe=Bf(w,{tokenization:{getLineTokens:(ne)=>b.tokenization.getLineTokens(ne),getLanguageId:()=>b.getLanguageId(),getLanguageIdAtPosition:(ne,re)=>b.getLanguageIdAtPosition(ne,re)},getLineContent:(ne)=>{if(ne===ee)return Y;else return b.getLineContent(ne)}},b.getLanguageId(),A+1,O,this._languageConfigurationService);if(oe!==null){let ne=ji(oe,x),re=ji($t(b.getLineContent(A+1)),x);if(ne!==re){let he=ne-re;for(let ue=A+1;ue<=i.endLineNumber;ue++){let Ie=b.getLineContent(ue),Te=$t(Ie),xe=ji(Te,x)+he,Me=ud(xe,x,E);if(Me!==Te)T.push({range:new t(ue,1,ue,Te.length+1),text:Me})}}}}if(T.length>0){this.editor.pushUndoStop();let te=new Gy(T,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",te),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(i,h){let b=(w)=>w.trim().length===0,v=!0;if(h.startLineNumber===h.endLineNumber){let x=i.getLineContent(h.startLineNumber).substring(h.startColumn-1,h.endColumn-1);v=b(x)}else for(let w=h.startLineNumber;w<=h.endLineNumber;w++){let x=i.getLineContent(w);if(w===h.startLineNumber){let I=x.substring(h.startColumn-1);v=b(I)}else if(w===h.endLineNumber){let I=x.substring(0,h.endColumn-1);v=b(I)}else v=i.getLineFirstNonWhitespaceColumn(w)===0;if(!v)break}return v}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};yg=x2([I2(1,st)],yg);function L2(f,i){let h=(b)=>zR(f,b)===2;return h(i.getStartPosition())||h(i.getEndPosition())}function qy(f,i,h,b){if(f.getLineCount()===1&&f.getLineMaxColumn(1)===1)return;let v="";for(let x=0;x<h;x++)v+=" ";let w=new RegExp(v,"gi");for(let x=1,I=f.getLineCount();x<=I;x++){let E=f.getLineFirstNonWhitespaceColumn(x);if(E===0)E=f.getLineMaxColumn(x);if(E===1)continue;let T=new t(x,1,x,E),O=f.getValueInRange(T),A=b?O.replace(/\t/ig,v):O.replace(w,"\t");i.addEditOperation(T,A)}}class Zy{constructor(f,i){this.selection=f,this.tabSize=i,this.selectionId=null}getEditOperations(f,i){this.selectionId=i.trackSelection(this.selection),qy(f,i,this.tabSize,!0)}computeCursorState(f,i){return i.getTrackedSelection(this.selectionId)}}class Xy{constructor(f,i){this.selection=f,this.tabSize=i,this.selectionId=null}getEditOperations(f,i){this.selectionId=i.trackSelection(this.selection),qy(f,i,this.tabSize,!1)}computeCursorState(f,i){return i.getTrackedSelection(this.selectionId)}}pe(yg.ID,yg,2);N(Lb);N(Eb);N(Db);N(Rb);N(kb);N(Tb);N($y);N(jy);class Yy extends U{constructor(){super({id:"expandLineSelection",label:p(1309,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:o.textInputFocus,primary:2090}})}run(f,i,h){if(h=h||{},!i.hasModel())return;let b=i._getViewModel();b.model.pushStackElement(),b.setCursorStates(h.source,3,Si.expandLineSelection(b,b.getCursorStates())),b.revealAllCursors(h.source,!0)}}N(Yy);class Nb{constructor(f,i,h){this._selection=f,this._cursors=i,this._selectionId=null,this._trimInRegexesAndStrings=h}getEditOperations(f,i){let h=E2(f,this._cursors,this._trimInRegexesAndStrings);for(let b=0,v=h.length;b<v;b++){let w=h[b];i.addEditOperation(w.range,w.text)}this._selectionId=i.trackSelection(this._selection)}computeCursorState(f,i){return i.getTrackedSelection(this._selectionId)}}function E2(f,i,h){i.sort((I,E)=>{if(I.lineNumber===E.lineNumber)return I.column-E.column;return I.lineNumber-E.lineNumber});for(let I=i.length-2;I>=0;I--)if(i[I].lineNumber===i[I+1].lineNumber)i.splice(I,1);let b=[],v=0,w=0,x=i.length;for(let I=1,E=f.getLineCount();I<=E;I++){let T=f.getLineContent(I),O=T.length+1,A=0;if(w<x&&i[w].lineNumber===I){if(A=i[w].column,w++,A===O)continue}if(T.length===0)continue;let Y=Jr(T),ee=0;if(Y===-1)ee=1;else if(Y!==T.length-1)ee=Y+2;else continue;if(!h){if(!f.tokenization.hasAccurateTokensForLine(I))continue;let te=f.tokenization.getLineTokens(I),oe=te.getStandardTokenType(te.findTokenIndexAtOffset(ee));if(oe===2||oe===3)continue}ee=Math.max(A,ee),b[v++]=Vt.delete(new t(I,ee,I,O))}return b}class Og{constructor(f,i,h){this._selection=f,this._isCopyingDown=i,this._noop=h||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(f,i){let h=this._selection;if(this._startLineNumberDelta=0,this._endLineNumberDelta=0,h.startLineNumber<h.endLineNumber&&h.endColumn===1)this._endLineNumberDelta=1,h=h.setEndPosition(h.endLineNumber-1,f.getLineMaxColumn(h.endLineNumber-1));let b=[];for(let w=h.startLineNumber;w<=h.endLineNumber;w++)b.push(f.getLineContent(w));let v=b.join(`
8
- `);if(v===""){if(this._isCopyingDown)this._startLineNumberDelta++,this._endLineNumberDelta++}if(this._noop)i.addEditOperation(new t(h.endLineNumber,f.getLineMaxColumn(h.endLineNumber),h.endLineNumber+1,1),h.endLineNumber===f.getLineCount()?"":`
9
- `);else if(!this._isCopyingDown)i.addEditOperation(new t(h.endLineNumber,f.getLineMaxColumn(h.endLineNumber),h.endLineNumber,f.getLineMaxColumn(h.endLineNumber)),`
10
- `+v);else i.addEditOperation(new t(h.startLineNumber,1,h.startLineNumber,1),v+`
11
- `);this._selectionId=i.trackSelection(h),this._selectionDirection=this._selection.getDirection()}computeCursorState(f,i){let h=i.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let b=h.startLineNumber,v=h.startColumn,w=h.endLineNumber,x=h.endColumn;if(this._startLineNumberDelta!==0)b=b+this._startLineNumberDelta,v=1;if(this._endLineNumberDelta!==0)w=w+this._endLineNumberDelta,x=1;h=F.createWithDirection(b,v,w,x,this._selectionDirection)}return h}}var D2=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},R2=function(f,i){return function(h,b){i(h,b,f)}},jg=class f{constructor(i,h,b,v){this._languageConfigurationService=v,this._selection=i,this._isMovingDown=h,this._autoIndent=b,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(i,h,b){return{tokenization:{getLineTokens:(v)=>i.tokenization.getLineTokens(h(v)),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(v,w)=>i.getLanguageIdAtPosition(v,w)},getLineContent:(v)=>{let w=b?.(v);if(w!==void 0)return w;return i.getLineContent(h(v))}}}getEditOperations(i,h){let b=i.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===b){this._selectionId=h.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=h.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let v=this._selection;if(v.startLineNumber<v.endLineNumber&&v.endColumn===1)this._moveEndPositionDown=!0,v=v.setEndPosition(v.endLineNumber-1,i.getLineMaxColumn(v.endLineNumber-1));let{tabSize:w,indentSize:x,insertSpaces:I}=i.getOptions(),E=this.buildIndentConverter(w,x,I);if(v.startLineNumber===v.endLineNumber&&i.getLineMaxColumn(v.startLineNumber)===1){let T=v.startLineNumber,O=this._isMovingDown?T+1:T-1;if(i.getLineMaxColumn(O)===1)h.addEditOperation(new t(1,1,1,1),null);else h.addEditOperation(new t(T,1,T,1),i.getLineContent(O)),h.addEditOperation(new t(O,1,O,i.getLineMaxColumn(O)),null);v=new F(O,1,O,1)}else{let T,O;if(this._isMovingDown){T=v.endLineNumber+1,O=i.getLineContent(T),h.addEditOperation(new t(T-1,i.getLineMaxColumn(T-1),T,i.getLineMaxColumn(T)),null);let A=O;if(this.shouldAutoIndent(i,v)){let Y=this.matchEnterRule(i,E,w,T,v.startLineNumber-1);if(Y!==null){let te=$t(i.getLineContent(T)),oe=Y+ji(te,w);A=ud(oe,w,I)+this.trimStart(O)}else{let te=this.createVirtualModel(i,(ne)=>ne===v.startLineNumber?T:ne),oe=Bf(this._autoIndent,te,i.getLanguageIdAtPosition(T,1),v.startLineNumber,E,this._languageConfigurationService);if(oe!==null){let ne=$t(i.getLineContent(T)),re=ji(oe,w),he=ji(ne,w);if(re!==he)A=ud(re,w,I)+this.trimStart(O)}}h.addEditOperation(new t(v.startLineNumber,1,v.startLineNumber,1),A+`
12
- `);let ee=this.matchEnterRuleMovingDown(i,E,w,v.startLineNumber,T,A);if(ee!==null){if(ee!==0)this.getIndentEditsOfMovingBlock(i,h,v,w,I,ee)}else{let te=this.createVirtualModel(i,(ne)=>{if(ne===v.startLineNumber)return T;else if(ne>=v.startLineNumber+1&&ne<=v.endLineNumber+1)return ne-1;else return ne},(ne)=>ne===v.startLineNumber?A:void 0),oe=Bf(this._autoIndent,te,i.getLanguageIdAtPosition(T,1),v.startLineNumber+1,E,this._languageConfigurationService);if(oe!==null){let ne=$t(i.getLineContent(v.startLineNumber)),re=ji(oe,w),he=ji(ne,w);if(re!==he){let ue=re-he;this.getIndentEditsOfMovingBlock(i,h,v,w,I,ue)}}}}else h.addEditOperation(new t(v.startLineNumber,1,v.startLineNumber,1),A+`
13
- `)}else if(T=v.startLineNumber-1,O=i.getLineContent(T),h.addEditOperation(new t(T,1,T+1,1),null),h.addEditOperation(new t(v.endLineNumber,i.getLineMaxColumn(v.endLineNumber),v.endLineNumber,i.getLineMaxColumn(v.endLineNumber)),`
14
- `+O),this.shouldAutoIndent(i,v)){let A=this.createVirtualModel(i,(ee)=>ee===T?v.startLineNumber:ee),Y=this.matchEnterRule(i,E,w,v.startLineNumber,v.startLineNumber-2);if(Y!==null){if(Y!==0)this.getIndentEditsOfMovingBlock(i,h,v,w,I,Y)}else{let ee=Bf(this._autoIndent,A,i.getLanguageIdAtPosition(v.startLineNumber,1),T,E,this._languageConfigurationService);if(ee!==null){let te=$t(i.getLineContent(v.startLineNumber)),oe=ji(ee,w),ne=ji(te,w);if(oe!==ne){let re=oe-ne;this.getIndentEditsOfMovingBlock(i,h,v,w,I,re)}}}}}this._selectionId=h.trackSelection(v)}buildIndentConverter(i,h,b){return{shiftIndent:(v)=>Po.shiftIndent(v,v.length+1,i,h,b),unshiftIndent:(v)=>Po.unshiftIndent(v,v.length+1,i,h,b)}}parseEnterResult(i,h,b,v,w){if(w){let x=w.indentation;if(w.indentAction===Un.None)x=w.indentation+w.appendText;else if(w.indentAction===Un.Indent)x=w.indentation+w.appendText;else if(w.indentAction===Un.IndentOutdent)x=w.indentation;else if(w.indentAction===Un.Outdent)x=h.unshiftIndent(w.indentation)+w.appendText;let I=i.getLineContent(v);if(this.trimStart(I).indexOf(this.trimStart(x))>=0){let E=$t(i.getLineContent(v)),T=$t(x),O=s0(i,v,this._languageConfigurationService);if(O!==null&&O&2)T=h.unshiftIndent(T);let A=ji(T,b),Y=ji(E,b);return A-Y}}return null}matchEnterRuleMovingDown(i,h,b,v,w,x){if(Jr(x)>=0){let I=i.getLineMaxColumn(w),E=Lu(this._autoIndent,i,new t(w,I,w,I),this._languageConfigurationService);return this.parseEnterResult(i,h,b,v,E)}else{let I=v-1;while(I>=1){let O=i.getLineContent(I);if(Jr(O)>=0)break;I--}if(I<1||v>i.getLineCount())return null;let E=i.getLineMaxColumn(I),T=Lu(this._autoIndent,i,new t(I,E,I,E),this._languageConfigurationService);return this.parseEnterResult(i,h,b,v,T)}}matchEnterRule(i,h,b,v,w,x){let I=w;while(I>=1){let O;if(I===w&&x!==void 0)O=x;else O=i.getLineContent(I);if(Jr(O)>=0)break;I--}if(I<1||v>i.getLineCount())return null;let E=i.getLineMaxColumn(I),T=Lu(this._autoIndent,i,new t(I,E,I,E),this._languageConfigurationService);return this.parseEnterResult(i,h,b,v,T)}trimStart(i){return i.replace(/^\s+/,"")}shouldAutoIndent(i,h){if(this._autoIndent<4)return!1;if(!i.tokenization.isCheapToTokenize(h.startLineNumber))return!1;let b=i.getLanguageIdAtPosition(h.startLineNumber,1),v=i.getLanguageIdAtPosition(h.endLineNumber,1);if(b!==v)return!1;if(this._languageConfigurationService.getLanguageConfiguration(b).indentRulesSupport===null)return!1;return!0}getIndentEditsOfMovingBlock(i,h,b,v,w,x){for(let I=b.startLineNumber;I<=b.endLineNumber;I++){let E=i.getLineContent(I),T=$t(E),A=ji(T,v)+x,Y=ud(A,v,w);if(Y!==T){if(h.addEditOperation(new t(I,1,I,T.length+1),Y),I===b.endLineNumber&&b.endColumn<=T.length+1&&Y==="")this._moveEndLineSelectionShrink=!0}}}computeCursorState(i,h){let b=h.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)b=b.setEndPosition(b.endLineNumber+1,1);if(this._moveEndLineSelectionShrink&&b.startLineNumber<b.endLineNumber)b=b.setEndPosition(b.endLineNumber,2);return b}};jg=D2([R2(3,st)],jg);class Bc{static{this._COLLATOR=Rl.Collator()}constructor(f,i){this.selection=f,this.descending=i,this.selectionId=null}getEditOperations(f,i){let h=k2(f,this.selection,this.descending);if(h)i.addEditOperation(h.range,h.text);this.selectionId=i.trackSelection(this.selection)}computeCursorState(f,i){return i.getTrackedSelection(this.selectionId)}static canRun(f,i,h){if(f===null)return!1;let b=Jy(f,i,h);if(!b)return!1;for(let v=0,w=b.before.length;v<w;v++)if(b.before[v]!==b.after[v])return!0;return!1}}function Jy(f,i,h){let{startLineNumber:b,endLineNumber:v}=i;if(i.endColumn===1)v--;if(b>=v)return null;let w=[];for(let I=b;I<=v;I++)w.push(f.getLineContent(I));let x=w.slice(0);if(x.sort(Bc._COLLATOR.value.compare),h===!0)x=x.reverse();return{startLineNumber:b,endLineNumber:v,before:w,after:x}}function k2(f,i,h){let b=Jy(f,i,h);if(!b)return null;return Vt.replace(new t(b.startLineNumber,1,b.endLineNumber,f.getLineMaxColumn(b.endLineNumber)),b.after.join(`
15
- `))}class Ob extends U{constructor(f,i){super(i);this.down=f}run(f,i){if(!i.hasModel())return;let h=i.getSelections().map((w,x)=>({selection:w,index:x,ignore:!1}));h.sort((w,x)=>t.compareRangesUsingStarts(w.selection,x.selection));let b=h[0];for(let w=1;w<h.length;w++){let x=h[w];if(b.selection.endLineNumber===x.selection.startLineNumber)if(b.index<x.index)x.ignore=!0;else b.ignore=!0,b=x}let v=[];for(let w of h)v.push(new Og(w.selection,this.down,w.ignore));i.pushUndoStop(),i.executeCommands(this.id,v),i.pushUndoStop()}}class Qy extends Ob{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:p(1315,"Copy Line Up"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1310,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class ex extends Ob{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:p(1316,"Copy Line Down"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1311,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class tx extends U{constructor(){super({id:"editor.action.duplicateSelection",label:p(1317,"Duplicate Selection"),precondition:o.writable,menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1312,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(f,i,h){if(!i.hasModel())return;let b=[],v=i.getSelections(),w=i.getModel();for(let x of v)if(x.isEmpty())b.push(new Og(x,!0));else{let I=new F(x.endLineNumber,x.endColumn,x.endLineNumber,x.endColumn);b.push(new Ak(I,w.getValueInRange(x)))}i.pushUndoStop(),i.executeCommands(this.id,b),i.pushUndoStop()}}class Mb extends U{constructor(f,i){super(i);this.down=f}run(f,i){let h=f.get(st),b=[],v=i.getSelections()||[],w=i.getOption(16);for(let x of v)b.push(new jg(x,this.down,w,h));i.pushUndoStop(),i.executeCommands(this.id,b),i.pushUndoStop()}}class ix extends Mb{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:p(1318,"Move Line Up"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1313,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class ox extends Mb{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:p(1319,"Move Line Down"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"2_line",title:e(1314,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class Pb extends U{constructor(f,i){super(i);this.descending=f}run(f,i){if(!i.hasModel())return;let h=i.getModel(),b=i.getSelections();if(b.length===1&&b[0].isSingleLine())b=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))];for(let w of b)if(!Bc.canRun(i.getModel(),w,this.descending))return;let v=[];for(let w=0,x=b.length;w<x;w++)v[w]=new Bc(b[w],this.descending);i.pushUndoStop(),i.executeCommands(this.id,v),i.pushUndoStop()}}class nx extends Pb{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:p(1320,"Sort Lines Ascending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class rx extends Pb{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:p(1321,"Sort Lines Descending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class sx extends U{constructor(){super({id:"editor.action.removeDuplicateLines",label:p(1322,"Delete Duplicate Lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(f,i){if(!i.hasModel())return;let h=i.getModel();if(h.getLineCount()===1&&h.getLineMaxColumn(1)===1)return;let b=[],v=[],w=0,x=!0,I=i.getSelections();if(I.length===1&&I[0].isSingleLine())I=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))],x=!1;for(let E of I){let T=new Set,O=[];for(let te=E.startLineNumber;te<=E.endLineNumber;te++){let oe=h.getLineContent(te);if(T.has(oe))continue;O.push(oe),T.add(oe)}let A=new F(E.startLineNumber,1,E.endLineNumber,h.getLineMaxColumn(E.endLineNumber)),Y=E.startLineNumber-w,ee=new F(Y,1,Y+O.length-1,O[O.length-1].length+1);b.push(Vt.replace(A,O.join(`
16
- `))),v.push(ee),w+=E.endLineNumber-E.startLineNumber+1-O.length}i.pushUndoStop(),i.executeEdits(this.id,b,x?v:void 0),i.pushUndoStop()}}class ax extends U{constructor(){super({id:"editor.action.reverseLines",label:p(1323,"Reverse lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(f,i){if(!i.hasModel())return;let h=i.getModel(),b=i.getSelections(),v=b;if(v.length===1&&v[0].isSingleLine())v=[new F(1,1,h.getLineCount(),h.getLineMaxColumn(h.getLineCount()))];let w=[],x=[];for(let I=0;I<v.length;I++){let E=v[I],T=b[I],O=E.endLineNumber;if(E.startLineNumber<E.endLineNumber&&E.endColumn===1)O--;let A=new t(E.startLineNumber,1,O,h.getLineMaxColumn(O));if(O===h.getLineCount()&&h.getLineContent(A.endLineNumber)==="")A=A.setEndPosition(A.endLineNumber-1,h.getLineMaxColumn(A.endLineNumber-1));let Y=[];for(let ne=A.endLineNumber;ne>=A.startLineNumber;ne--)Y.push(h.getLineContent(ne));let ee=Vt.replace(A,Y.join(`
17
- `));w.push(ee);let te=function(ne){return ne<=A.endLineNumber?A.endLineNumber-ne+A.startLineNumber:ne},oe=function(ne){if(ne.isEmpty())return new F(te(ne.positionLineNumber),ne.positionColumn,te(ne.positionLineNumber),ne.positionColumn);else{let re=te(ne.selectionStartLineNumber),he=te(ne.positionLineNumber),{selectionStartColumn:ue,positionColumn:Ie}=ne;return new F(re,ue,he,Ie)}};x.push(oe(T))}i.pushUndoStop(),i.executeEdits(this.id,w,x),i.pushUndoStop()}}class Ab extends U{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:Ab.ID,label:p(1324,"Trim Trailing Whitespace"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2102),weight:100}})}run(f,i,h){let b=[];if(h.reason==="auto-save")b=(i.getSelections()||[]).map((T)=>new s(T.positionLineNumber,T.positionColumn));let v=i.getSelection();if(v===null)return;let w=f.get(ie),x=i.getModel(),I=w.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:x?.getLanguageId(),resource:x?.uri}),E=new Nb(v,b,I);i.pushUndoStop(),i.executeCommands(this.id,[E]),i.pushUndoStop()}}class dx extends U{constructor(){super({id:"editor.action.deleteLines",label:p(1325,"Delete Line"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(f,i){if(!i.hasModel())return;let h=this._getLinesToRemove(i),b=i.getModel();if(b.getLineCount()===1&&b.getLineMaxColumn(1)===1)return;let v=0,w=[],x=[];for(let I=0,E=h.length;I<E;I++){let T=h[I],{startLineNumber:O,endLineNumber:A}=T,Y=1,ee=b.getLineMaxColumn(A);if(A<b.getLineCount())A+=1,ee=1;else if(O>1)O-=1,Y=b.getLineMaxColumn(O);w.push(Vt.replace(new F(O,Y,A,ee),"")),x.push(new F(O-v,T.positionColumn,O-v,T.positionColumn)),v+=T.endLineNumber-T.startLineNumber+1}i.pushUndoStop(),i.executeEdits(this.id,w,x),i.revealAllCursors(!0),i.pushUndoStop()}_getLinesToRemove(f){let i=f.getSelections().map((v)=>{let w=v.endLineNumber;if(v.startLineNumber<v.endLineNumber&&v.endColumn===1)w-=1;return{startLineNumber:v.startLineNumber,selectionStartColumn:v.selectionStartColumn,endLineNumber:w,positionColumn:v.positionColumn}});i.sort((v,w)=>{if(v.startLineNumber===w.startLineNumber)return v.endLineNumber-w.endLineNumber;return v.startLineNumber-w.startLineNumber});let h=[],b=i[0];for(let v=1;v<i.length;v++)if(b.endLineNumber+1>=i[v].startLineNumber)b.endLineNumber=i[v].endLineNumber;else h.push(b),b=i[v];return h.push(b),h}}class lx extends U{constructor(){super({id:"editor.action.indentLines",label:p(1326,"Indent Line"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(f,i){let h=i._getViewModel();if(!h)return;i.pushUndoStop(),i.executeCommands(this.id,Nl.indent(h.cursorConfig,i.getModel(),i.getSelections())),i.pushUndoStop()}}class cx extends U{constructor(){super({id:"editor.action.outdentLines",label:p(1327,"Outdent Line"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(f,i){ep.Outdent.runEditorCommand(f,i,null)}}class Vc extends U{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:Vc.ID,label:p(1328,"Insert Line Above"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(f,i){let h=i._getViewModel();if(!h)return;i.pushUndoStop(),i.executeCommands(this.id,Qh.lineInsertBefore(h.cursorConfig,i.getModel(),i.getSelections()))}}class Kc extends U{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:Kc.ID,label:p(1329,"Insert Line Below"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(f,i){let h=i._getViewModel();if(!h)return;i.pushUndoStop(),i.executeCommands(this.id,Qh.lineInsertAfter(h.cursorConfig,i.getModel(),i.getSelections()))}}class Fb extends U{run(f,i){if(!i.hasModel())return;let h=i.getSelection(),b=this._getRangesToDelete(i),v=[];for(let I=0,E=b.length-1;I<E;I++){let T=b[I],O=b[I+1];if(t.intersectRanges(T,O)===null)v.push(T);else b[I+1]=t.plusRange(T,O)}v.push(b[b.length-1]);let w=this._getEndCursorState(h,v),x=v.map((I)=>Vt.replace(I,""));i.pushUndoStop(),i.executeEdits(this.id,x,w),i.pushUndoStop()}}class hx extends Fb{constructor(){super({id:"deleteAllLeft",label:p(1330,"Delete All Left"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(f,i){let h=null,b=[],v=0;if(i.forEach((w)=>{let x;if(w.endColumn===1&&v>0){let I=w.startLineNumber-v;x=new F(I,w.startColumn,I,w.startColumn)}else x=new F(w.startLineNumber,w.startColumn,w.startLineNumber,w.startColumn);if(v+=w.endLineNumber-w.startLineNumber,w.intersectRanges(f))h=x;else b.push(x)}),h)b.unshift(h);return b}_getRangesToDelete(f){let i=f.getSelections();if(i===null)return[];let h=i,b=f.getModel();if(b===null)return[];return h.sort(t.compareRangesUsingStarts),h=h.map((v)=>{if(v.isEmpty())if(v.startColumn===1){let w=Math.max(1,v.startLineNumber-1),x=v.startLineNumber===1?1:b.getLineLength(w)+1;return new t(w,x,v.startLineNumber,1)}else return new t(v.startLineNumber,1,v.startLineNumber,v.startColumn);else return new t(v.startLineNumber,1,v.endLineNumber,v.endColumn)}),h}}class ux extends Fb{constructor(){super({id:"deleteAllRight",label:p(1331,"Delete All Right"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(f,i){let h=null,b=[];for(let v=0,w=i.length,x=0;v<w;v++){let I=i[v],E=new F(I.startLineNumber-x,I.startColumn,I.startLineNumber-x,I.startColumn);if(I.intersectRanges(f))h=E;else b.push(E)}if(h)b.unshift(h);return b}_getRangesToDelete(f){let i=f.getModel();if(i===null)return[];let h=f.getSelections();if(h===null)return[];let b=h.map((v)=>{if(v.isEmpty()){let w=i.getLineMaxColumn(v.startLineNumber);if(v.startColumn===w)return new t(v.startLineNumber,v.startColumn,v.startLineNumber+1,1);else return new t(v.startLineNumber,v.startColumn,v.startLineNumber,w)}return v});return b.sort(t.compareRangesUsingStarts),b}}class gx extends U{constructor(){super({id:"editor.action.joinLines",label:p(1332,"Join Lines"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(f,i){let h=i.getSelections();if(h===null)return;let b=i.getSelection();if(b===null)return;h.sort(t.compareRangesUsingStarts);let v=[],w=h.reduce((A,Y)=>{if(A.isEmpty()){if(A.endLineNumber===Y.startLineNumber){if(b.equalsSelection(A))b=Y;return Y}if(Y.startLineNumber>A.endLineNumber+1)return v.push(A),Y;else return new F(A.startLineNumber,A.startColumn,Y.endLineNumber,Y.endColumn)}else if(Y.startLineNumber>A.endLineNumber)return v.push(A),Y;else return new F(A.startLineNumber,A.startColumn,Y.endLineNumber,Y.endColumn)});v.push(w);let x=i.getModel();if(x===null)return;let I=[],E=[],T=b,O=0;for(let A=0,Y=v.length;A<Y;A++){let ee=v[A],te=ee.startLineNumber,oe=1,ne=0,re,he,ue=x.getLineLength(ee.endLineNumber)-ee.endColumn;if(ee.isEmpty()||ee.startLineNumber===ee.endLineNumber){let ae=ee.getStartPosition();if(ae.lineNumber<x.getLineCount())re=te+1,he=x.getLineMaxColumn(re);else re=ae.lineNumber,he=x.getLineMaxColumn(ae.lineNumber)}else re=ee.endLineNumber,he=x.getLineMaxColumn(re);let Ie=x.getLineContent(te);for(let ae=te+1;ae<=re;ae++){let xe=x.getLineContent(ae),Me=x.getLineFirstNonWhitespaceColumn(ae);if(Me>=1){let He=!0;if(Ie==="")He=!1;if(He&&(Ie.charAt(Ie.length-1)===" "||Ie.charAt(Ie.length-1)==="\t"))He=!1,Ie=Ie.replace(/[\s\uFEFF\xA0]+$/g," ");let qe=xe.substr(Me-1);if(Ie+=(He?" ":"")+qe,He)ne=qe.length+1;else ne=qe.length}else ne=0}let Te=new t(te,1,re,he);if(!Te.isEmpty()){let ae;if(ee.isEmpty())I.push(Vt.replace(Te,Ie)),ae=new F(Te.startLineNumber-O,Ie.length-ne+1,te-O,Ie.length-ne+1);else if(ee.startLineNumber===ee.endLineNumber)I.push(Vt.replace(Te,Ie)),ae=new F(ee.startLineNumber-O,ee.startColumn,ee.endLineNumber-O,ee.endColumn);else I.push(Vt.replace(Te,Ie)),ae=new F(ee.startLineNumber-O,ee.startColumn,ee.startLineNumber-O,Ie.length-ue);if(t.intersectRanges(Te,b)!==null)T=ae;else E.push(ae)}O+=Te.endLineNumber-Te.startLineNumber}E.unshift(T),i.pushUndoStop(),i.executeEdits(this.id,I,E),i.pushUndoStop()}}class px extends U{constructor(){super({id:"editor.action.transpose",label:p(1333,"Transpose Characters around the Cursor"),precondition:o.writable,canTriggerInlineEdits:!0})}run(f,i){let h=i.getSelections();if(h===null)return;let b=i.getModel();if(b===null)return;let v=[];for(let w=0,x=h.length;w<x;w++){let I=h[w];if(!I.isEmpty())continue;let E=I.getStartPosition(),T=b.getLineMaxColumn(E.lineNumber);if(E.column>=T){if(E.lineNumber===b.getLineCount())continue;let O=new t(E.lineNumber,Math.max(1,E.column-1),E.lineNumber+1,1),A=b.getValueInRange(O).split("").reverse().join("");v.push(new ui(new F(E.lineNumber,Math.max(1,E.column-1),E.lineNumber+1,1),A))}else{let O=new t(E.lineNumber,Math.max(1,E.column-1),E.lineNumber,E.column+1),A=b.getValueInRange(O).split("").reverse().join("");v.push(new Hf(O,A,new F(E.lineNumber,E.column+1,E.lineNumber,E.column+1)))}}i.pushUndoStop(),i.executeCommands(this.id,v),i.pushUndoStop()}}class Ws extends U{run(f,i){let h=i.getSelections();if(h===null)return;let b=i.getModel();if(b===null)return;let v=i.getOption(148),w=[];for(let x of h)if(x.isEmpty()){let I=x.getStartPosition(),E=i.getConfiguredWordAtPosition(I);if(!E)continue;let T=new t(I.lineNumber,E.startColumn,I.lineNumber,E.endColumn),O=b.getValueInRange(T);w.push(Vt.replace(T,this._modifyText(O,v)))}else{let I=b.getValueInRange(x);w.push(Vt.replace(x,this._modifyText(I,v)))}i.pushUndoStop(),i.executeEdits(this.id,w),i.pushUndoStop()}}class mx extends Ws{constructor(){super({id:"editor.action.transformToUppercase",label:p(1334,"Transform to Uppercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){return f.toLocaleUpperCase()}}class fx extends Ws{constructor(){super({id:"editor.action.transformToLowercase",label:p(1335,"Transform to Lowercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){return f.toLocaleLowerCase()}}class Ho{constructor(f,i){this._pattern=f,this._flags=i,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(f){}}return this._actual}isSupported(){return this.get()!==null}}class qg extends Ws{static{this.titleBoundary=new Ho("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:p(1336,"Transform to Title Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){let h=qg.titleBoundary.get();if(!h)return f;return f.toLocaleLowerCase().replace(h,(b)=>b.toLocaleUpperCase())}}class tl extends Ws{static{this.caseBoundary=new Ho("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Ho("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:p(1337,"Transform to Snake Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){let h=tl.caseBoundary.get(),b=tl.singleLetters.get();if(!h||!b)return f;return f.replace(h,"$1_$2").replace(b,"$1_$2$3").toLocaleLowerCase()}}class gd extends Ws{static{this.singleLineWordBoundary=new Ho("[_\\s-]+","gm")}static{this.multiLineWordBoundary=new Ho("[_-]+","gm")}static{this.validWordStart=new Ho("^(\\p{Lu}[^\\p{Lu}])","gmu")}constructor(){super({id:"editor.action.transformToCamelcase",label:p(1338,"Transform to Camel Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){let h=/\r\n|\r|\n/.test(f)?gd.multiLineWordBoundary.get():gd.singleLineWordBoundary.get(),b=gd.validWordStart.get();if(!h||!b)return f;let v=f.split(h);return v.shift()?.replace(b,(x)=>x.toLocaleLowerCase())+v.map((x)=>x.substring(0,1).toLocaleUpperCase()+x.substring(1)).join("")}}class il extends Ws{static{this.wordBoundary=new Ho("[_ \\t-]","gm")}static{this.wordBoundaryToMaintain=new Ho("(?<=\\.)","gm")}static{this.upperCaseWordMatcher=new Ho("^\\p{Lu}+$","mu")}constructor(){super({id:"editor.action.transformToPascalcase",label:p(1339,"Transform to Pascal Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){let h=il.wordBoundary.get(),b=il.wordBoundaryToMaintain.get(),v=il.upperCaseWordMatcher.get();if(!h||!b||!v)return f;return f.split(b).map((I)=>I.split(h)).flat().map((I)=>{let E=I.charAt(0).toLocaleUpperCase()+I.slice(1);if(E.length>1&&v.test(E))return E.charAt(0)+E.slice(1).toLocaleLowerCase();return E}).join("")}}class ol extends Ws{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((i)=>i.isSupported())}static{this.caseBoundary=new Ho("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Ho("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new Ho("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:p(1340,"Transform to Kebab Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(f,i){let h=ol.caseBoundary.get(),b=ol.singleLetters.get(),v=ol.underscoreBoundary.get();if(!h||!b||!v)return f;return f.replace(v,"$1-$3").replace(h,"$1-$2").replace(b,"$1-$2").toLocaleLowerCase()}}N(Qy);N(ex);N(tx);N(ix);N(ox);N(nx);N(rx);N(sx);N(Ab);N(dx);N(lx);N(cx);N(Vc);N(Kc);N(hx);N(ux);N(gx);N(px);N(mx);N(fx);N(ax);if(tl.caseBoundary.isSupported()&&tl.singleLetters.isSupported())N(tl);if(gd.singleLineWordBoundary.isSupported()&&gd.multiLineWordBoundary.isSupported())N(gd);if(il.wordBoundary.isSupported())N(il);if(qg.titleBoundary.isSupported())N(qg);if(ol.isSupported())N(ol);class So{constructor(f){this._editor=f,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){if(this._findScopeDecorationIds[0])return this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]);return null}getFindScopes(){if(this._findScopeDecorationIds.length){let f=this._findScopeDecorationIds.map((i)=>this._editor.getModel().getDecorationRange(i)).filter((i)=>!!i);if(f.length)return f}return null}getStartPosition(){return this._startPosition}setStartPosition(f){this._startPosition=f,this.setCurrentFindMatch(null)}_getDecorationIndex(f){let i=this._decorations.indexOf(f);if(i>=0)return i+1;return 1}getDecorationRangeAt(f){let i=f<this._decorations.length?this._decorations[f]:null;if(i)return this._editor.getModel().getDecorationRange(i);return null}getCurrentMatchesPosition(f){let i=this._editor.getModel().getDecorationsInRange(f);for(let h of i){let b=h.options;if(b===So._FIND_MATCH_DECORATION||b===So._FIND_MATCH_NO_OVERVIEW_DECORATION||b===So._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(h.id)}return 0}setCurrentFindMatch(f){let i=null,h=0;if(f)for(let b=0,v=this._decorations.length;b<v;b++){let w=this._editor.getModel().getDecorationRange(this._decorations[b]);if(f.equalsRange(w)){i=this._decorations[b],h=b+1;break}}if(this._highlightedDecorationId!==null||i!==null)this._editor.changeDecorations((b)=>{if(this._highlightedDecorationId!==null)b.changeDecorationOptions(this._highlightedDecorationId,So._FIND_MATCH_DECORATION),this._highlightedDecorationId=null;if(i!==null)this._highlightedDecorationId=i,b.changeDecorationOptions(this._highlightedDecorationId,So._CURRENT_FIND_MATCH_DECORATION);if(this._rangeHighlightDecorationId!==null)b.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(i!==null){let v=this._editor.getModel().getDecorationRange(i);if(v.startLineNumber!==v.endLineNumber&&v.endColumn===1){let w=v.endLineNumber-1,x=this._editor.getModel().getLineMaxColumn(w);v=new t(v.startLineNumber,v.startColumn,w,x)}this._rangeHighlightDecorationId=b.addDecoration(v,So._RANGE_HIGHLIGHT_DECORATION)}});return h}set(f,i){this._editor.changeDecorations((h)=>{let b=So._FIND_MATCH_DECORATION,v=[];if(f.length>1000){b=So._FIND_MATCH_NO_OVERVIEW_DECORATION;let x=this._editor.getModel().getLineCount(),E=this._editor.getLayoutInfo().height/x,T=Math.max(2,Math.ceil(3/E)),O=f[0].range.startLineNumber,A=f[0].range.endLineNumber;for(let Y=1,ee=f.length;Y<ee;Y++){let te=f[Y].range;if(A+T>=te.startLineNumber){if(te.endLineNumber>A)A=te.endLineNumber}else v.push({range:new t(O,1,A,1),options:So._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),O=te.startLineNumber,A=te.endLineNumber}v.push({range:new t(O,1,A,1),options:So._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let w=Array(f.length);for(let x=0,I=f.length;x<I;x++)w[x]={range:f[x].range,options:b};if(this._decorations=h.deltaDecorations(this._decorations,w),this._overviewRulerApproximateDecorations=h.deltaDecorations(this._overviewRulerApproximateDecorations,v),this._rangeHighlightDecorationId)h.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(this._findScopeDecorationIds.length)this._findScopeDecorationIds.forEach((x)=>h.removeDecoration(x)),this._findScopeDecorationIds=[];if(i?.length)this._findScopeDecorationIds=i.map((x)=>h.addDecoration(x,So._FIND_SCOPE_DECORATION))})}matchBeforePosition(f){if(this._decorations.length===0)return null;for(let i=this._decorations.length-1;i>=0;i--){let h=this._decorations[i],b=this._editor.getModel().getDecorationRange(h);if(!b||b.endLineNumber>f.lineNumber)continue;if(b.endLineNumber<f.lineNumber)return b;if(b.endColumn>f.column)continue;return b}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(f){if(this._decorations.length===0)return null;for(let i=0,h=this._decorations.length;i<h;i++){let b=this._decorations[i],v=this._editor.getModel().getDecorationRange(b);if(!v||v.startLineNumber<f.lineNumber)continue;if(v.startLineNumber>f.lineNumber)return v;if(v.startColumn<f.column)continue;return v}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let f=[];if(f=f.concat(this._decorations),f=f.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)f.push(...this._findScopeDecorationIds);if(this._rangeHighlightDecorationId)f.push(this._rangeHighlightDecorationId);return f}static{this._CURRENT_FIND_MATCH_DECORATION=ce.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:an(t0),position:Or.Center},minimap:{color:an(Wv),position:1}})}static{this._FIND_MATCH_DECORATION=ce.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:an(t0),position:Or.Center},minimap:{color:an(Wv),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=ce.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=ce.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:an(t0),position:Or.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=ce.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=ce.register({description:"find-scope",className:"findScope",isWholeLine:!0})}}class Hb{constructor(f,i,h){this._editorSelection=f,this._ranges=i,this._replaceStrings=h,this._trackedEditorSelectionId=null}getEditOperations(f,i){if(this._ranges.length>0){let h=[];for(let w=0;w<this._ranges.length;w++)h.push({range:this._ranges[w],text:this._replaceStrings[w]});h.sort((w,x)=>t.compareRangesUsingStarts(w.range,x.range));let b=[],v=h[0];for(let w=1;w<h.length;w++)if(v.range.endLineNumber===h[w].range.startLineNumber&&v.range.endColumn===h[w].range.startColumn)v.range=v.range.plusRange(h[w].range),v.text=v.text+h[w].text;else b.push(v),v=h[w];b.push(v);for(let w of b)i.addEditOperation(w.range,w.text)}this._trackedEditorSelectionId=i.trackSelection(this._editorSelection)}computeCursorState(f,i){return i.getTrackedSelection(this._trackedEditorSelectionId)}}function Wb(f,i){if(f&&f[0]!==""){let h=_x(f,i,"-"),b=_x(f,i,"_");if(h&&!b)return bx(f,i,"-");else if(!h&&b)return bx(f,i,"_");if(f[0].toUpperCase()===f[0])return i.toUpperCase();else if(f[0].toLowerCase()===f[0])return i.toLowerCase();else if(LR(f[0][0])&&i.length>0)return i[0].toUpperCase()+i.substr(1);else if(f[0][0].toUpperCase()!==f[0][0]&&i.length>0)return i[0].toLowerCase()+i.substr(1);else return i}else return i}function _x(f,i,h){return f[0].indexOf(h)!==-1&&i.indexOf(h)!==-1&&f[0].split(h).length===i.split(h).length}function bx(f,i,h){let b=i.split(h),v=f[0].split(h),w="";return b.forEach((x,I)=>{w+=Wb([v[I]],x)+h}),w.slice(0,-1)}class Bb{constructor(f){this.staticValue=f,this.kind=0}}class vx{constructor(f){this.pieces=f,this.kind=1}}class _d{static fromStaticValue(f){return new _d([fd.staticValue(f)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(f){if(!f||f.length===0)this._state=new Bb("");else if(f.length===1&&f[0].staticValue!==null)this._state=new Bb(f[0].staticValue);else this._state=new vx(f)}buildReplaceString(f,i){if(this._state.kind===0)if(i)return Wb(f,this._state.staticValue);else return this._state.staticValue;let h="";for(let b=0,v=this._state.pieces.length;b<v;b++){let w=this._state.pieces[b];if(w.staticValue!==null){h+=w.staticValue;continue}let x=_d._substitute(w.matchIndex,f);if(w.caseOps!==null&&w.caseOps.length>0){let I=[],E=w.caseOps.length,T=0;for(let O=0,A=x.length;O<A;O++){if(T>=E){I.push(x.slice(O));break}switch(w.caseOps[T]){case"U":I.push(x[O].toUpperCase());break;case"u":I.push(x[O].toUpperCase()),T++;break;case"L":I.push(x[O].toLowerCase());break;case"l":I.push(x[O].toLowerCase()),T++;break;default:I.push(x[O])}}x=I.join("")}h+=x}return h}static _substitute(f,i){if(i===null)return"";if(f===0)return i[0];let h="";while(f>0){if(f<i.length)return(i[f]||"")+h;h=String(f%10)+h,f=Math.floor(f/10)}return"$"+h}}class fd{static staticValue(f){return new fd(f,-1,null)}static caseOps(f,i){return new fd(null,f,i)}constructor(f,i,h){if(this.staticValue=f,this.matchIndex=i,!h||h.length===0)this.caseOps=null;else this.caseOps=h.slice(0)}}class Sx{constructor(f){this._source=f,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(f){this._emitStatic(this._source.substring(this._lastCharIndex,f)),this._lastCharIndex=f}emitStatic(f,i){this._emitStatic(f),this._lastCharIndex=i}_emitStatic(f){if(f.length===0)return;this._currentStaticPiece+=f}emitMatchIndex(f,i,h){if(this._currentStaticPiece.length!==0)this._result[this._resultLen++]=fd.staticValue(this._currentStaticPiece),this._currentStaticPiece="";this._result[this._resultLen++]=fd.caseOps(f,h),this._lastCharIndex=i}finalize(){if(this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0)this._result[this._resultLen++]=fd.staticValue(this._currentStaticPiece),this._currentStaticPiece="";return new _d(this._result)}}function wx(f){if(!f||f.length===0)return new _d(null);let i=[],h=new Sx(f);for(let b=0,v=f.length;b<v;b++){let w=f.charCodeAt(b);if(w===92){if(b++,b>=v)break;let x=f.charCodeAt(b);switch(x){case 92:h.emitUnchanged(b-1),h.emitStatic("\\",b+1);break;case 110:h.emitUnchanged(b-1),h.emitStatic(`
18
- `,b+1);break;case 116:h.emitUnchanged(b-1),h.emitStatic("\t",b+1);break;case 117:case 85:case 108:case 76:h.emitUnchanged(b-1),h.emitStatic("",b+1),i.push(String.fromCharCode(x));break}continue}if(w===36){if(b++,b>=v)break;let x=f.charCodeAt(b);if(x===36){h.emitUnchanged(b-1),h.emitStatic("$",b+1);continue}if(x===48||x===38){h.emitUnchanged(b-1),h.emitMatchIndex(0,b+1,i),i.length=0;continue}if(49<=x&&x<=57){let I=x-48;if(b+1<v){let E=f.charCodeAt(b+1);if(48<=E&&E<=57){b++,I=I*10+(E-48),h.emitUnchanged(b-2),h.emitMatchIndex(I,b+1,i),i.length=0;continue}}h.emitUnchanged(b-1),h.emitMatchIndex(I,b+1,i),i.length=0;continue}}}return h.finalize()}var Ir=new P("findWidgetVisible",!1);Ir.toNegated();var rl=new P("findInputFocussed",!1),zc=new P("replaceInputFocussed",!1),Cx=new P("findWidgetFocused",!1),Uc={primary:545,mac:{primary:2593}},$c={primary:565,mac:{primary:2613}},jc={primary:560,mac:{primary:2608}},Gc={primary:554,mac:{primary:2602}},qc={primary:558,mac:{primary:2606}},Et={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"},fr=19999,T2=240;class nl{constructor(f,i){this._toDispose=new d,this._editor=f,this._state=i,this._isDisposed=!1,this._startSearchingTimer=new Yn,this._decorations=new So(f),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new _e(()=>{if(!this._editor.hasModel())return;return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((h)=>{if(h.reason===3||h.reason===5||h.reason===6)this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((h)=>{if(this._ignoreModelContentChanged)return;if(h.isFlush)this._decorations.reset();this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule()})),this._toDispose.add(this._state.onFindReplaceStateChange((h)=>this._onStateChanged(h))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,Fe(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(f){if(this._isDisposed)return;if(!this._editor.hasModel())return;if(f.searchString||f.isReplaceRevealed||f.isRegex||f.wholeWord||f.matchCase||f.searchScope)if(this._editor.getModel().isTooLargeForSyncing())this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{if(f.searchScope)this.research(f.moveCursor,this._state.searchScope);else this.research(f.moveCursor)},T2);else if(f.searchScope)this.research(f.moveCursor,this._state.searchScope);else this.research(f.moveCursor)}static _getSearchRange(f,i){if(i)return i;return f.getFullModelRange()}research(f,i){let h=null;if(typeof i<"u"){if(i!==null)if(!Array.isArray(i))h=[i];else h=i}else h=this._decorations.getFindScopes();if(h!==null)h=h.map((x)=>{if(x.startLineNumber!==x.endLineNumber){let I=x.endLineNumber;if(x.endColumn===1)I=I-1;return new t(x.startLineNumber,1,I,this._editor.getModel().getLineMaxColumn(I))}return x});let b=this._findMatches(h,!1,fr);this._decorations.set(b,h);let v=this._editor.getSelection(),w=this._decorations.getCurrentMatchesPosition(v);if(w===0&&b.length>0){let x=Wh(b.map((I)=>I.range),(I)=>t.compareRangesUsingStarts(I,v)>=0);w=x>0?x-1+1:w}if(this._state.changeMatchInfo(w,this._decorations.getCount(),void 0),f&&this._editor.getOption(50).cursorMoveOnType)this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let f=this._decorations.getFindScope();if(f)this._editor.revealRangeInCenterIfOutsideViewport(f,0);return!0}return!1}_setCurrentFindMatch(f){let i=this._decorations.setCurrentFindMatch(f);this._state.changeMatchInfo(i,this._decorations.getCount(),f),this._editor.setSelection(f),this._editor.revealRangeInCenterIfOutsideViewport(f,0)}_prevSearchPosition(f){let i=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:h,column:b}=f,v=this._editor.getModel();if(i||b===1){if(h===1)h=v.getLineCount();else h--;b=v.getLineMaxColumn(h)}else b--;return new s(h,b)}_moveToPrevMatch(f,i=!1){if(!this._state.canNavigateBack()){let T=this._decorations.matchAfterPosition(f);if(T)this._setCurrentFindMatch(T);return}if(this._decorations.getCount()<fr){let T=this._decorations.matchBeforePosition(f);if(T&&T.isEmpty()&&T.getStartPosition().equals(f))f=this._prevSearchPosition(f),T=this._decorations.matchBeforePosition(f);if(T)this._setCurrentFindMatch(T);return}if(this._cannotFind())return;let h=this._decorations.getFindScope(),b=nl._getSearchRange(this._editor.getModel(),h);if(b.getEndPosition().isBefore(f))f=b.getEndPosition();if(f.isBefore(b.getStartPosition()))f=b.getEndPosition();let{lineNumber:v,column:w}=f,x=this._editor.getModel(),I=new s(v,w),E=x.findPreviousMatch(this._state.searchString,I,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(E&&E.range.isEmpty()&&E.range.getStartPosition().equals(I))I=this._prevSearchPosition(I),E=x.findPreviousMatch(this._state.searchString,I,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(!E)return;if(!i&&!b.containsRange(E.range))return this._moveToPrevMatch(E.range.getStartPosition(),!0);this._setCurrentFindMatch(E.range)}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(f){let i=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:h,column:b}=f,v=this._editor.getModel();if(i||b===v.getLineMaxColumn(h)){if(h===v.getLineCount())h=1;else h++;b=1}else b++;return new s(h,b)}_moveToNextMatch(f){if(!this._state.canNavigateForward()){let h=this._decorations.matchBeforePosition(f);if(h)this._setCurrentFindMatch(h);return}if(this._decorations.getCount()<fr){let h=this._decorations.matchAfterPosition(f);if(h&&h.isEmpty()&&h.getStartPosition().equals(f))f=this._nextSearchPosition(f),h=this._decorations.matchAfterPosition(f);if(h)this._setCurrentFindMatch(h);return}let i=this._getNextMatch(f,!1,!0);if(i)this._setCurrentFindMatch(i.range)}_getNextMatch(f,i,h,b=!1){if(this._cannotFind())return null;let v=this._decorations.getFindScope(),w=nl._getSearchRange(this._editor.getModel(),v);if(w.getEndPosition().isBefore(f))f=w.getStartPosition();if(f.isBefore(w.getStartPosition()))f=w.getStartPosition();let{lineNumber:x,column:I}=f,E=this._editor.getModel(),T=new s(x,I),O=E.findNextMatch(this._state.searchString,T,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,i);if(h&&O&&O.range.isEmpty()&&O.range.getStartPosition().equals(T))T=this._nextSearchPosition(T),O=E.findNextMatch(this._state.searchString,T,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,i);if(!O)return null;if(!b&&!w.containsRange(O.range))return this._getNextMatch(O.range.getEndPosition(),i,h,!0);return O}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(f){let i=this._decorations.getDecorationRangeAt(f);if(i)this._setCurrentFindMatch(i)}moveToMatch(f){this._moveToMatch(f)}_getReplacePattern(){if(this._state.isRegex)return wx(this._state.replaceString);return _d.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let f=this._getReplacePattern(),i=this._editor.getSelection(),h=this._getNextMatch(i.getStartPosition(),!0,!1);if(h)if(i.equalsRange(h.range)){let b=f.buildReplaceString(h.matches,this._state.preserveCase),v=new ui(i,b);this._executeEditorCommand("replace",v),this._decorations.setStartPosition(new s(i.startLineNumber,i.startColumn+b.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(h.range)}_findMatches(f,i,h){let b=(f||[null]).map((v)=>nl._getSearchRange(this._editor.getModel(),v));return this._editor.getModel().findMatches(this._state.searchString,b,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,i,h)}replaceAll(){if(!this._hasMatches())return;let f=this._decorations.getFindScopes();if(f===null&&this._state.matchesCount>=fr)this._largeReplaceAll();else this._regularReplaceAll(f);this.research(!1)}_largeReplaceAll(){let i=new rd(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!i)return;let h=i.regex;if(!h.multiline){let O="mu";if(h.ignoreCase)O+="i";if(h.global)O+="g";h=new RegExp(h.source,O)}let b=this._editor.getModel(),v=b.getValue(1),w=b.getFullModelRange(),x=this._getReplacePattern(),I,E=this._state.preserveCase;if(x.hasReplacementPatterns||E)I=v.replace(h,function(){return x.buildReplaceString(arguments,E)});else I=v.replace(h,x.buildReplaceString(null,E));let T=new Hf(w,I,this._editor.getSelection());this._executeEditorCommand("replaceAll",T)}_regularReplaceAll(f){let i=this._getReplacePattern(),h=this._findMatches(f,i.hasReplacementPatterns||this._state.preserveCase,1073741824),b=[];for(let w=0,x=h.length;w<x;w++)b[w]=i.buildReplaceString(h[w].matches,this._state.preserveCase);let v=new Hb(this._editor.getSelection(),h.map((w)=>w.range),b);this._executeEditorCommand("replaceAll",v)}selectAllMatches(){if(!this._hasMatches())return;let f=this._decorations.getFindScopes(),h=this._findMatches(f,!1,1073741824).map((v)=>new F(v.range.startLineNumber,v.range.startColumn,v.range.endLineNumber,v.range.endColumn)),b=this._editor.getSelection();for(let v=0,w=h.length;v<w;v++)if(h[v].equalsRange(b)){h=[b].concat(h.slice(0,v)).concat(h.slice(v+1));break}this._editor.setSelections(h)}_executeEditorCommand(f,i){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(f,i),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}class op extends di{static{this.ID="editor.contrib.findOptionsWidget"}constructor(f,i,h){super();this._hideSoon=this._register(new _e(()=>this._hide(),2000)),this._isVisible=!1,this._editor=f,this._state=i,this._keybindingService=h,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");let b={inputActiveOptionBorder:M(Pf),inputActiveOptionForeground:M(Mf),inputActiveOptionBackground:M(ku)},v={groupId:"find-options-widget"};this.caseSensitive=this._register(new cw({appendTitle:this._keybindingLabelFor(Et.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:v,...b})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new dw({appendTitle:this._keybindingLabelFor(Et.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:v,...b})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new uw({appendTitle:this._keybindingLabelFor(Et.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:v,...b})),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((w)=>{let x=!1;if(w.isRegex)this.regex.checked=this._state.isRegex,x=!0;if(w.wholeWord)this.wholeWords.checked=this._state.wholeWord,x=!0;if(w.matchCase)this.caseSensitive.checked=this._state.matchCase,x=!0;if(!this._state.isRevealed&&x)this._revealTemporarily()})),this._register(c(this._domNode,S.MOUSE_LEAVE,(w)=>this._onMouseLeave())),this._register(c(this._domNode,"mouseover",(w)=>this._onMouseOver()))}_keybindingLabelFor(f){return this._keybindingService.appendKeybinding("",f)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return op.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){if(this._isVisible)return;this._isVisible=!0,this._domNode.style.display="block"}_hide(){if(!this._isVisible)return;this._isVisible=!1,this._domNode.style.display="none"}}function np(f,i){if(f===1)return!0;if(f===2)return!1;return i}class Vb extends n{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return np(this._isRegexOverride,this._isRegex)}get wholeWord(){return np(this._wholeWordOverride,this._wholeWord)}get matchCase(){return np(this._matchCaseOverride,this._matchCase)}get preserveCase(){return np(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 r),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(f,i,h){let b={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},v=!1;if(i===0)f=0;if(f>i)f=i;if(this._matchesPosition!==f)this._matchesPosition=f,b.matchesPosition=!0,v=!0;if(this._matchesCount!==i)this._matchesCount=i,b.matchesCount=!0,v=!0;if(typeof h<"u"){if(!t.equalsRange(this._currentMatch,h))this._currentMatch=h,b.currentMatch=!0,v=!0}if(v)this._onFindReplaceStateChange.fire(b)}change(f,i,h=!0){let b={moveCursor:i,updateHistory:h,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},v=!1,w=this.isRegex,x=this.wholeWord,I=this.matchCase,E=this.preserveCase;if(typeof f.searchString<"u"){if(this._searchString!==f.searchString)this._searchString=f.searchString,b.searchString=!0,v=!0}if(typeof f.replaceString<"u"){if(this._replaceString!==f.replaceString)this._replaceString=f.replaceString,b.replaceString=!0,v=!0}if(typeof f.isRevealed<"u"){if(this._isRevealed!==f.isRevealed)this._isRevealed=f.isRevealed,b.isRevealed=!0,v=!0}if(typeof f.isReplaceRevealed<"u"){if(this._isReplaceRevealed!==f.isReplaceRevealed)this._isReplaceRevealed=f.isReplaceRevealed,b.isReplaceRevealed=!0,v=!0}if(typeof f.isRegex<"u")this._isRegex=f.isRegex;if(typeof f.wholeWord<"u")this._wholeWord=f.wholeWord;if(typeof f.matchCase<"u")this._matchCase=f.matchCase;if(typeof f.preserveCase<"u")this._preserveCase=f.preserveCase;if(typeof f.searchScope<"u"){if(!f.searchScope?.every((T)=>this._searchScope?.some((O)=>!t.equalsRange(O,T))))this._searchScope=f.searchScope,b.searchScope=!0,v=!0}if(typeof f.loop<"u"){if(this._loop!==f.loop)this._loop=f.loop,b.loop=!0,v=!0}if(typeof f.isSearching<"u"){if(this._isSearching!==f.isSearching)this._isSearching=f.isSearching,b.isSearching=!0,v=!0}if(typeof f.filters<"u"){if(this._filters)this._filters.update(f.filters);else this._filters=f.filters;b.filters=!0,v=!0}if(this._isRegexOverride=typeof f.isRegexOverride<"u"?f.isRegexOverride:0,this._wholeWordOverride=typeof f.wholeWordOverride<"u"?f.wholeWordOverride:0,this._matchCaseOverride=typeof f.matchCaseOverride<"u"?f.matchCaseOverride:0,this._preserveCaseOverride=typeof f.preserveCaseOverride<"u"?f.preserveCaseOverride:0,w!==this.isRegex)v=!0,b.isRegex=!0;if(x!==this.wholeWord)v=!0,b.wholeWord=!0;if(I!==this.matchCase)v=!0,b.matchCase=!0;if(E!==this.preserveCase)v=!0,b.preserveCase=!0;if(v)this._onFindReplaceStateChange.fire(b)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=fr}}var N2=e(5,"input"),O2=e(6,"Preserve Case");class yx extends Hl{constructor(f){super({icon:y.preserveCase,title:O2+f.appendTitle,isChecked:f.isChecked,hoverLifecycleOptions:f.hoverLifecycleOptions,inputActiveOptionBorder:f.inputActiveOptionBorder,inputActiveOptionForeground:f.inputActiveOptionForeground,inputActiveOptionBackground:f.inputActiveOptionBackground})}}class Kb extends di{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(f,i,h,b){super();this._showOptionButtons=h,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new r),this._onKeyDown=this._register(new r),this._onMouseDown=this._register(new r),this._onInput=this._register(new r),this._onKeyUp=this._register(new r),this._onPreserveCaseKeyDown=this._register(new r),this.contextViewProvider=i,this.placeholder=b.placeholder||"",this.validation=b.validation,this.label=b.label||N2;let v=b.appendPreserveCaseLabel||"",w=b.history||new Set([]),x=!!b.flexibleHeight,I=!!b.flexibleWidth,E=b.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new hw(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:w,showHistoryHint:b.showHistoryHint,flexibleHeight:x,flexibleWidth:I,flexibleMaxHeight:E,inputBoxStyles:b.inputBoxStyles})),this.preserveCase=this._register(new yx({appendTitle:v,isChecked:!1,hoverLifecycleOptions:b.hoverLifecycleOptions,...b.toggleStyles})),this._register(this.preserveCase.onChange((A)=>{if(this._onDidOptionChange.fire(A),!A&&this.fixFocusOnOptionClickEnabled)this.inputBox.focus();this.validate()})),this._register(this.preserveCase.onKeyDown((A)=>{this._onPreserveCaseKeyDown.fire(A)})),this._showOptionButtons)this.cachedOptionsWidth=this.preserveCase.width();else this.cachedOptionsWidth=0;let T=[this.preserveCase.domNode];this.onkeydown(this.domNode,(A)=>{S0(A,this.domNode,()=>T,()=>this.inputBox.focus())});let O=document.createElement("div");O.className="controls",O.style.display=this._showOptionButtons?"block":"none",O.appendChild(this.preserveCase.domNode),this.domNode.appendChild(O),f?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(A)=>this._onKeyDown.fire(A)),this.onkeyup(this.inputBox.inputElement,(A)=>this._onKeyUp.fire(A)),this.oninput(this.inputBox.inputElement,(A)=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,(A)=>this._onMouseDown.fire(A))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(f){if(f)this.enable();else this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(f){this.preserveCase.checked=f}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(f){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=f+"px"}}var xx=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ix=function(f,i){return function(h,b){i(h,b,f)}},up=new P("suggestWidgetVisible",!1,e(1793,"Whether suggestion are visible")),zb="historyNavigationWidgetFocus",Lx="historyNavigationForwardsEnabled",Ex="historyNavigationBackwardsEnabled",Jc=void 0,sp=[];function Dx(f,i){if(sp.includes(i))throw Error("Cannot register the same widget multiple times");sp.push(i);let h=new d,b=new P(zb,!1).bindTo(f),v=new P(Lx,!0).bindTo(f),w=new P(Ex,!0).bindTo(f),x=()=>{b.set(!0),Jc=i},I=()=>{if(b.set(!1),Jc===i)Jc=void 0};if(vs(i.element))x();return h.add(i.onDidFocus(()=>x())),h.add(i.onDidBlur(()=>I())),h.add(R(()=>{sp.splice(sp.indexOf(i),1),I()})),{historyNavigationForwardsEnablement:v,historyNavigationBackwardsEnablement:w,dispose(){h.dispose()}}}var ap=class f extends pw{constructor(i,h,b,v){super(i,h,b);let w=this._register(v.createScoped(this.inputBox.element));this._register(Dx(w,this.inputBox))}};ap=xx([Ix(3,K)],ap);var hp=class f extends Kb{constructor(i,h,b,v,w=!1){super(i,h,w,b);let x=this._register(v.createScoped(this.inputBox.element));this._register(Dx(x,this.inputBox))}};hp=xx([Ix(3,K)],hp);Sn.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:C.and(C.has(zb),C.equals(Ex,!0),up.isEqualTo(!1)),primary:16,secondary:[528],handler:(f)=>{Jc?.showPreviousValue()}});Sn.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:C.and(C.has(zb),C.equals(Lx,!0),up.isEqualTo(!1)),primary:18,secondary:[530],handler:(f)=>{Jc?.showNextValue()}});function Ub(f){return f.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&f.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var Rx=At("find-collapsed",y.chevronRight,e(1011,"Icon to indicate that the editor find widget is collapsed.")),kx=At("find-expanded",y.chevronDown,e(1012,"Icon to indicate that the editor find widget is expanded.")),M2=At("find-selection",y.selection,e(1013,"Icon for 'Find in Selection' in the editor find widget.")),P2=At("find-replace",y.replace,e(1014,"Icon for 'Replace' in the editor find widget.")),A2=At("find-replace-all",y.replaceAll,e(1015,"Icon for 'Replace All' in the editor find widget.")),F2=At("find-previous-match",y.arrowUp,e(1016,"Icon for 'Find Previous' in the editor find widget.")),H2=At("find-next-match",y.arrowDown,e(1017,"Icon for 'Find Next' in the editor find widget.")),W2=e(1018,"Find / Replace"),$b=e(1019,"Find"),B2=e(1020,"Find"),V2=e(1021,"Previous Match"),K2=e(1022,"Next Match"),z2=e(1023,"Find in Selection"),U2=e(1024,"Close"),jb=e(1025,"Replace"),$2=e(1026,"Replace"),j2=e(1027,"Replace"),G2=e(1028,"Replace All"),q2=e(1029,"Toggle Replace"),Z2=e(1030,"Only the first {0} results are highlighted, but all find operations work on the entire text.",fr),X2=e(1031,"{0} of {1}"),pp=e(1032,"No results"),Lr=419,Y2=275,J2=Y2-54,eh=69,Q2=33,Tx=ge?256:2048;class gp{constructor(f){this.afterLineNumber=f,this.heightInPx=Q2,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function Nx(f,i,h){let b=!!i.match(/\n/);if(h&&b&&h.selectionStart>0){f.stopPropagation();return}}function Ox(f,i,h){let b=!!i.match(/\n/);if(h&&b&&h.selectionEnd<h.value.length){f.stopPropagation();return}}class hc extends di{static{this.ID="editor.contrib.findWidget"}constructor(f,i,h,b,v,w,x,I,E,T,O){super();if(this._hoverService=x,this._findWidgetSearchHistory=I,this._replaceWidgetHistory=E,this._configurationService=T,this._accessibilityService=O,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=f,this._controller=i,this._state=h,this._contextViewProvider=b,this._keybindingService=v,this._contextKeyService=w,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new Ii(500),this._register(R(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange((A)=>this._onStateChanged(A))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((A)=>{if(A.hasChanged(104)){if(this._codeEditor.getOption(104))this._state.change({isReplaceRevealed:!1},!1);this._updateButtons()}if(A.hasChanged(166))this._tryUpdateWidgetWidth();if(A.hasChanged(2))this.updateAccessibilitySupport();if(A.hasChanged(50)){let Y=this._codeEditor.getOption(50).loop;this._state.change({loop:Y},!1);let ee=this._codeEditor.getOption(50).addExtraSpaceOnTop;if(ee&&!this._viewZone)this._viewZone=new gp(0),this._showViewZone();if(!ee&&this._viewZone)this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{if(this._isVisible)this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){let A=await this._controller.getGlobalBufferTerm();if(A&&A!==this._state.searchString)this._state.change({searchString:A},!1),this._findInput.select()}})),this._findInputFocused=rl.bindTo(w),this._findFocusTracker=this._register(ii(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=zc.bindTo(w),this._replaceFocusTracker=this._register(ii(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=Cx.bindTo(w),this._widgetFocusTracker=this._register(ii(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(c(this._domNode,"focusin",(A)=>{if(Ee(A.target))this._lastFocusedElement=A.target})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop)this._viewZone=new gp(0);this._register(this._codeEditor.onDidChangeModel(()=>{if(!this._isVisible)return;this._viewZoneId=void 0})),this._register(this._codeEditor.onDidScrollChange((A)=>{if(A.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return hc.ID}getDomNode(){return this._domNode}getPosition(){if(this._isVisible)return{preference:0};return null}_onStateChanged(f){if(f.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(f.replaceString)this._replaceInput.inputBox.value=this._state.replaceString;if(f.isRevealed)if(this._state.isRevealed)this._reveal();else this._hide(!0);if(f.isReplaceRevealed){if(this._state.isReplaceRevealed){if(!this._codeEditor.getOption(104)&&!this._isReplaceVisible)this._isReplaceVisible=!0,this._replaceInput.width=vr(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()}else if(this._isReplaceVisible)this._isReplaceVisible=!1,this._updateButtons()}if((f.isRevealed||f.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)){if(this._tryUpdateHeight())this._showViewZone()}if(f.isRegex)this._findInput.setRegex(this._state.isRegex);if(f.wholeWord)this._findInput.setWholeWords(this._state.wholeWord);if(f.matchCase)this._findInput.setCaseSensitive(this._state.matchCase);if(f.preserveCase)this._replaceInput.setPreserveCase(this._state.preserveCase);if(f.searchScope){if(this._state.searchScope)this._toggleSelectionFind.checked=!0;else this._toggleSelectionFind.checked=!1;this._updateToggleSelectionFindButton()}if(f.searchString||f.matchesCount||f.matchesPosition){let i=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",i),this._updateMatchesCount(),this._updateButtons()}if(f.searchString||f.currentMatch)this._layoutViewZone();if(f.updateHistory)this._delayedUpdateHistory();if(f.loop)this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Z)}_updateHistory(){if(this._state.searchString)this._findInput.inputBox.addToHistory();if(this._state.replaceString)this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){if(this._matchesCount.style.minWidth=eh+"px",this._state.matchesCount>=fr)this._matchesCount.title=Z2;else this._matchesCount.title="";this._matchesCount.firstChild?.remove();let f;if(this._state.matchesCount>0){let i=String(this._state.matchesCount);if(this._state.matchesCount>=fr)i+="+";let h=String(this._state.matchesPosition);if(h==="0")h="?";f=pa(X2,h,i)}else f=pp;this._matchesCount.appendChild(document.createTextNode(f)),Dn(this._getAriaLabel(f,this._state.currentMatch,this._state.searchString)),eh=Math.max(eh,this._matchesCount.clientWidth)}_getAriaLabel(f,i,h){let b;if(f===pp)b=h===""?e(1033,"{0} found",f):e(1034,"{0} found for '{1}'",f,h);else if(i){let v=e(1035,"{0} found for '{1}', at {2}",f,h,i.startLineNumber+":"+i.startColumn),w=this._codeEditor.getModel();if(w&&i.startLineNumber<=w.getLineCount()&&i.startLineNumber>=1)b=`${w.getLineContent(i.startLineNumber)}, ${v}`;else b=v}else b=e(1036,"{0} found for '{1}'",f,h);return b}_updateToggleSelectionFindButton(){let f=this._codeEditor.getSelection(),i=f?f.startLineNumber!==f.endLineNumber||f.startColumn!==f.endColumn:!1,h=this._toggleSelectionFind.checked;if(this._isVisible&&(h||i))this._toggleSelectionFind.enable();else this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);let f=this._state.searchString.length>0,i=this._state.matchesCount?!0:!1;this._prevBtn.setEnabled(this._isVisible&&f&&i&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&f&&i&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&f),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&f),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let h=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&h)}_reveal(){if(this._revealTimeouts.forEach((f)=>{clearTimeout(f)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let f=this._codeEditor.getSelection();switch(this._codeEditor.getOption(50).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{let h=!!f&&f.startLineNumber!==f.endLineNumber;this._toggleSelectionFind.checked=h;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false"),this._updateFindInputAriaLabel()},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let i=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&f){let h=this._codeEditor.getDomNode();if(h){let b=xt(h),v=this._codeEditor.getScrolledVisiblePosition(f.getStartPosition()),w=b.left+(v?v.left:0),x=v?v.top:0;if(this._viewZone&&x<this._viewZone.heightInPx){if(f.endLineNumber>f.startLineNumber)i=!1;let I=q_(this._domNode).left;if(w>I)i=!1;let E=this._codeEditor.getScrolledVisiblePosition(f.getEndPosition());if(b.left+(E?E.left:0)>I)i=!1}}}this._showViewZone(i)}}_hide(f){if(this._revealTimeouts.forEach((i)=>{clearTimeout(i)}),this._revealTimeouts=[],this._isVisible){if(this._isVisible=!1,this._accessibilityHelpHintAnnounced=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),f)this._codeEditor.focus();this._codeEditor.layoutOverlayWidget(this),this._removeViewZone()}}_layoutViewZone(f){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let h=this._viewZone;if(this._viewZoneId!==void 0||!h)return;this._codeEditor.changeViewZones((b)=>{h.heightInPx=this._getHeight(),this._viewZoneId=b.addZone(h),this._codeEditor.setScrollTop(f||this._codeEditor.getScrollTop()+h.heightInPx)})}_showViewZone(f=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;if(this._viewZone===void 0)this._viewZone=new gp(0);let h=this._viewZone;this._codeEditor.changeViewZones((b)=>{if(this._viewZoneId!==void 0){let v=this._getHeight();if(v===h.heightInPx)return;let w=v-h.heightInPx;if(h.heightInPx=v,b.layoutZone(this._viewZoneId),f)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+w);return}else{let v=this._getHeight();if(v-=this._codeEditor.getOption(96).top,v<=0)return;if(h.heightInPx=v,this._viewZoneId=b.addZone(h),f)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+v)}})}_removeViewZone(){this._codeEditor.changeViewZones((f)=>{if(this._viewZoneId!==void 0){if(f.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0}})}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!this._domNode.isConnected)return;let f=this._codeEditor.getLayoutInfo();if(f.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else if(this._domNode.classList.contains("hiddenEditor"))this._domNode.classList.remove("hiddenEditor");let h=f.width,b=f.minimap.minimapWidth,v=!1,w=!1,x=!1;if(this._resized){if(vr(this._domNode)>Lr){this._domNode.style.maxWidth=`${h-28-b-15}px`,this._replaceInput.width=vr(this._findInput.domNode);return}}if(Lr+28+b>=h)w=!0;if(Lr+28+b-eh>=h)x=!0;if(Lr+28+b-eh>=h+50)v=!0;if(this._domNode.classList.toggle("collapsed-find-widget",v),this._domNode.classList.toggle("narrow-find-widget",x),this._domNode.classList.toggle("reduced-find-widget",w),!x&&!v)this._domNode.style.maxWidth=`${h-28-b-15}px`;if(this._findInput.layout({collapsedFindWidget:v,narrowFindWidget:x,reducedFindWidget:w}),this._resized){let I=this._findInput.inputBox.element.clientWidth;if(I>0)this._replaceInput.width=I}else if(this._isReplaceVisible)this._replaceInput.width=vr(this._findInput.domNode)}_getHeight(){let f=0;if(f+=4,f+=this._findInput.inputBox.height+2,this._isReplaceVisible)f+=4,f+=this._replaceInput.inputBox.height+2;return f+=4,f}_tryUpdateHeight(){let f=this._getHeight();if(this._cachedHeight!==null&&this._cachedHeight===f)return!1;return this._cachedHeight=f,this._domNode.style.height=`${f}px`,!0}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(!this._codeEditor.hasModel())return;if(this._toggleSelectionFind.checked){let f=this._codeEditor.getSelections();if(f.map((i)=>{if(i.endColumn===1&&i.endLineNumber>i.startLineNumber)i=i.setEndPosition(i.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(i.endLineNumber-1));let h=this._state.currentMatch;if(i.startLineNumber!==i.endLineNumber){if(!t.equalsRange(i,h))return i}return null}).filter((i)=>!!i),f.length)this._state.change({searchScope:f},!0)}}_onFindInputMouseDown(f){if(f.middleButton)f.stopPropagation()}_onFindInputKeyDown(f){if(f.equals(Tx|3))if(this._keybindingService.dispatchEvent(f,f.target)){f.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
19
- `),f.preventDefault();return}if(f.equals(2)){if(this._isReplaceVisible)this._replaceInput.focus();else this._findInput.focusOnCaseSensitive();f.preventDefault();return}if(f.equals(2066)){this._codeEditor.focus(),f.preventDefault();return}if(f.equals(16))return Nx(f,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(f.equals(18))return Ox(f,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(f){if(f.equals(Tx|3))if(this._keybindingService.dispatchEvent(f,f.target)){f.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
20
- `),f.preventDefault();return}if(f.equals(2)){this._findInput.focusOnCaseSensitive(),f.preventDefault();return}if(f.equals(1026)){this._findInput.focus(),f.preventDefault();return}if(f.equals(2066)){this._codeEditor.focus(),f.preventDefault();return}if(f.equals(16))return Nx(f,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(f.equals(18))return Ox(f,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(f){return 0}_keybindingLabelFor(f){return this._keybindingService.appendKeybinding("",f)}_buildDomNode(){let h=this._codeEditor.getOption(50).history,b=this._codeEditor.getOption(50).replaceHistory;if(this._findInput=this._register(new ap(null,this._contextViewProvider,{width:J2,label:$b,placeholder:B2,appendCaseSensitiveLabel:this._keybindingLabelFor(Et.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(Et.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(Et.ToggleRegexCommand),validation:(O)=>{if(O.length===0||!this._findInput.getRegex())return null;try{return new RegExp(O,"gu"),null}catch(A){return{content:A.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Ub(this._keybindingService),inputBoxStyles:lb,toggleStyles:ab,history:h==="workspace"?this._findWidgetSearchHistory:new Set([])},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((O)=>{if(O.equals(3)&&!this._codeEditor.getOption(50).findOnType)this._state.change({searchString:this._findInput.getValue()},!0);this._onFindInputKeyDown(O)})),this._register(this._findInput.inputBox.onDidChange(()=>{if(this._ignoreChangeEvent||!this._codeEditor.getOption(50).findOnType)return;this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown((O)=>{if(O.equals(1026)){if(this._isReplaceVisible)this._replaceInput.focus(),O.preventDefault()}})),this._register(this._findInput.onRegexKeyDown((O)=>{if(O.equals(2)){if(this._isReplaceVisible)this._replaceInput.focusOnPreserve(),O.preventDefault()}})),this._register(this._findInput.inputBox.onDidHeightChange((O)=>{if(this._tryUpdateHeight())this._showViewZone()})),Kn)this._register(this._findInput.onMouseDown((O)=>this._onFindInputMouseDown(O)));this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();let v={groupId:"find-widget"};this._prevBtn=this._register(new $r({label:V2+this._keybindingLabelFor(Et.PreviousMatchFindAction),icon:F2,hoverLifecycleOptions:v,onTrigger:()=>{_l(this._codeEditor.getAction(Et.PreviousMatchFindAction)).run().then(void 0,Z)}},this._hoverService)),this._nextBtn=this._register(new $r({label:K2+this._keybindingLabelFor(Et.NextMatchFindAction),icon:H2,hoverLifecycleOptions:v,onTrigger:()=>{_l(this._codeEditor.getAction(Et.NextMatchFindAction)).run().then(void 0,Z)}},this._hoverService));let w=document.createElement("div");w.className="find-part",w.appendChild(this._findInput.domNode);let x=document.createElement("div");x.className="find-actions",w.appendChild(x),x.appendChild(this._matchesCount),x.appendChild(this._prevBtn.domNode),x.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Hl({icon:M2,title:z2+this._keybindingLabelFor(Et.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:v,inputActiveOptionBackground:M(ku),inputActiveOptionBorder:M(Pf),inputActiveOptionForeground:M(Mf)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let O=this._codeEditor.getSelections();if(O=O.map((A)=>{if(A.endColumn===1&&A.endLineNumber>A.startLineNumber)A=A.setEndPosition(A.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(A.endLineNumber-1));if(!A.isEmpty())return A;return null}).filter((A)=>!!A),O.length)this._state.change({searchScope:O},!0)}}else this._state.change({searchScope:null},!0)})),x.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new $r({label:U2+this._keybindingLabelFor(Et.CloseFindWidgetCommand),icon:P0,hoverLifecycleOptions:v,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:(O)=>{if(O.equals(2)){if(this._isReplaceVisible){if(this._replaceBtn.isEnabled())this._replaceBtn.focus();else this._codeEditor.focus();O.preventDefault()}}}},this._hoverService)),this._replaceInput=this._register(new hp(null,void 0,{label:jb,placeholder:$2,appendPreserveCaseLabel:this._keybindingLabelFor(Et.TogglePreserveCaseCommand),history:b==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>Ub(this._keybindingService),inputBoxStyles:lb,toggleStyles:ab,hoverLifecycleOptions:v},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((O)=>this._onReplaceInputKeyDown(O))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange((O)=>{if(this._isReplaceVisible&&this._tryUpdateHeight())this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown((O)=>{if(O.equals(2)){if(this._prevBtn.isEnabled())this._prevBtn.focus();else if(this._nextBtn.isEnabled())this._nextBtn.focus();else if(this._toggleSelectionFind.enabled)this._toggleSelectionFind.focus();else if(this._closeBtn.isEnabled())this._closeBtn.focus();O.preventDefault()}})),this._replaceBtn=this._register(new $r({label:j2+this._keybindingLabelFor(Et.ReplaceOneAction),icon:P2,hoverLifecycleOptions:v,onTrigger:()=>{this._controller.replace()},onKeyDown:(O)=>{if(O.equals(1026))this._closeBtn.focus(),O.preventDefault()}},this._hoverService)),this._replaceAllBtn=this._register(new $r({label:G2+this._keybindingLabelFor(Et.ReplaceAllAction),icon:A2,hoverLifecycleOptions:v,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let I=document.createElement("div");I.className="replace-part",I.appendChild(this._replaceInput.domNode);let E=document.createElement("div");E.className="replace-actions",I.appendChild(E),E.appendChild(this._replaceBtn.domNode),E.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new $r({label:q2,className:"codicon toggle left",onTrigger:()=>{if(this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible)this._replaceInput.width=vr(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=W2,this._domNode.role="dialog",this._domNode.style.width=`${Lr}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(w),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(I),this._resizeSash=this._register(new nr(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let T=Lr;this._register(this._resizeSash.onDidStart(()=>{T=vr(this._domNode)})),this._register(this._resizeSash.onDidChange((O)=>{this._resized=!0;let A=T+O.startX-O.currentX;if(A<Lr)return;let Y=parseFloat(Pv(this._domNode).maxWidth)||0;if(A>Y)return;if(this._domNode.style.width=`${A}px`,this._isReplaceVisible)this._replaceInput.width=vr(this._findInput.domNode);this._findInput.inputBox.layout(),this._tryUpdateHeight()})),this._register(this._resizeSash.onDidReset(()=>{let O=vr(this._domNode);if(O<Lr)return;let A=Lr;if(!this._resized||O===Lr){let Y=this._codeEditor.getLayoutInfo();A=Y.width-28-Y.minimap.minimapWidth-15,this._resized=!0}if(this._domNode.style.width=`${A}px`,this._isReplaceVisible)this._replaceInput.width=vr(this._findInput.domNode);this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let f=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(f!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let f=$b,i=jb;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){let h=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(h){let b=e(1037,"Press {0} for accessibility help",h);f=e(1038,"{0}, {1}",f,b),i=e(1039,"{0}, {1}",i,b)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=ti(()=>{if(this._isVisible)this._findInput.inputBox.setAriaLabel($b),this._replaceInput.inputBox.setAriaLabel(jb)},1000)}this._findInput.inputBox.setAriaLabel(f),this._replaceInput.inputBox.setAriaLabel(i)}getViewState(){let f=!1;if(this._viewZone&&this._viewZoneId)f=this._viewZone.heightInPx>this._codeEditor.getScrollTop();return{widgetViewZoneVisible:f,scrollTop:this._codeEditor.getScrollTop()}}setViewState(f){if(!f)return;if(f.widgetViewZoneVisible)this._layoutViewZone(f.scrollTop)}}class $r extends di{constructor(f,i){super();this._opts=f;let h="button";if(this._opts.className)h=h+" "+this._opts.className;if(this._opts.icon)h=h+" "+J.asClassName(this._opts.icon);this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=h,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(i.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},f.hoverLifecycleOptions)),this.onclick(this._domNode,(b)=>{this._opts.onTrigger(),b.preventDefault()}),this.onkeydown(this._domNode,(b)=>{if(b.equals(10)||b.equals(3)){this._opts.onTrigger(),b.preventDefault();return}this._opts.onKeyDown?.(b)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(f){this._domNode.classList.toggle("disabled",!f),this._domNode.setAttribute("aria-disabled",String(!f)),this._domNode.tabIndex=f?0:-1}setExpanded(f){if(this._domNode.setAttribute("aria-expanded",String(!!f)),f)this._domNode.classList.remove(...J.asClassNameArray(Rx)),this._domNode.classList.add(...J.asClassNameArray(kx));else this._domNode.classList.remove(...J.asClassNameArray(kx)),this._domNode.classList.add(...J.asClassNameArray(Rx))}}hi((f,i)=>{let h=f.getColor(Dl);if(h)i.addRule(`.monaco-editor .findMatch { border: 1px ${Qr(f.type)?"dotted":"solid"} ${h}; box-sizing: border-box; }`);let b=f.getColor(YR);if(b)i.addRule(`.monaco-editor .findScope { border: 1px ${Qr(f.type)?"dashed":"solid"} ${b}; }`);let v=f.getColor(Pe);if(v)i.addRule(`.monaco-editor .find-widget { border: 1px solid ${v}; }`);let w=f.getColor(GR);if(w)i.addRule(`.monaco-editor .findMatchInline { color: ${w}; }`);let x=f.getColor(JR);if(x)i.addRule(`.monaco-editor .currentFindMatchInline { color: ${x}; }`)});var eR=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},tR=function(f,i){return function(h,b){i(h,b,f)}},Us,mp=class f{static{Us=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(i){if(!Us._instance)Us._instance=new Us(i);return Us._instance}constructor(i){this.storageService=i,this.inMemoryValues=new Set,this._onDidChangeEmitter=new r,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(i){let h=this.inMemoryValues.delete(i);return this.save(),h}add(i){return this.inMemoryValues.add(i),this.save(),this}has(i){return this.inMemoryValues.has(i)}forEach(i,h){return this.load(),this.inMemoryValues.forEach(i)}replace(i){this.inMemoryValues=new Set(i),this.save()}load(){let i,h=this.storageService.get(Us.FIND_HISTORY_KEY,1);if(h)try{i=JSON.parse(h)}catch(b){}this.inMemoryValues=new Set(i||[])}save(){let i=[];return this.inMemoryValues.forEach((h)=>i.push(h)),new Promise((h)=>{this.storageService.store(Us.FIND_HISTORY_KEY,JSON.stringify(i),1,0),this._onDidChangeEmitter.fire(i),h()})}};mp=Us=eR([tR(0,Tn)],mp);var iR=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},oR=function(f,i){return function(h,b){i(h,b,f)}},$s,fp=class f{static{$s=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(i){if(!$s._instance)$s._instance=new $s(i);return $s._instance}constructor(i){this.storageService=i,this.inMemoryValues=new Set,this._onDidChangeEmitter=new r,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(i){let h=this.inMemoryValues.delete(i);return this.save(),h}add(i){return this.inMemoryValues.add(i),this.save(),this}has(i){return this.inMemoryValues.has(i)}forEach(i,h){return this.load(),this.inMemoryValues.forEach(i)}replace(i){this.inMemoryValues=new Set(i),this.save()}load(){let i,h=this.storageService.get($s.FIND_HISTORY_KEY,1);if(h)try{i=JSON.parse(h)}catch(b){}this.inMemoryValues=new Set(i||[])}save(){let i=[];return this.inMemoryValues.forEach((h)=>i.push(h)),new Promise((h)=>{this.storageService.store($s.FIND_HISTORY_KEY,JSON.stringify(i),1,0),this._onDidChangeEmitter.fire(i),h()})}};fp=$s=iR([oR(0,Tn)],fp);var Mx=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Co=function(f,i){return function(h,b){i(h,b,f)}},Gb,nR=524288;function qb(f,i="single",h=!1){if(!f.hasModel())return null;let b=f.getSelection();if(i==="single"&&b.startLineNumber===b.endLineNumber||i==="multiple"){if(b.isEmpty()){let v=f.getConfiguredWordAtPosition(b.getStartPosition());if(v&&h===!1)return v.word}else if(f.getModel().getValueLengthInRange(b)<nR)return f.getModel().getValueInRange(b)}return null}var Gi=class f extends n{static{Gb=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(i){return i.getContribution(Gb.ID)}constructor(i,h,b,v,w,x){super();this._editor=i,this._findWidgetVisible=Ir.bindTo(h),this._contextKeyService=h,this._storageService=b,this._clipboardService=v,this._notificationService=w,this._hoverService=x,this._updateHistoryDelayer=this._register(new Ii(500)),this._state=this._register(new Vb),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((I)=>this._onStateChanged(I))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let I=this._editor.getModel()&&this._state.isRevealed;if(this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),I)this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(50).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){if(this._model)this._model.dispose(),this._model=null}_onStateChanged(i){if(this.saveQueryState(i),i.isRevealed)if(this._state.isRevealed)this._findWidgetVisible.set(!0);else this._findWidgetVisible.reset(),this.disposeModel();if(i.searchString)this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(i){if(i.isRegex)this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1);if(i.wholeWord)this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1);if(i.matchCase)this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1);if(i.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!!rl.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){if(this._state.change({matchCase:!this._state.matchCase},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleWholeWords(){if(this._state.change({wholeWord:!this._state.wholeWord},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleRegex(){if(this._state.change({isRegex:!this._state.isRegex},!1),!this._state.isRevealed)this.highlightFindOptions()}togglePreserveCase(){if(this._state.change({preserveCase:!this._state.preserveCase},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let i=this._editor.getSelections();if(i=i.map((h)=>{if(h.endColumn===1&&h.endLineNumber>h.startLineNumber)h=h.setEndPosition(h.endLineNumber-1,this._editor.getModel().getLineMaxColumn(h.endLineNumber-1));if(!h.isEmpty())return h;return null}).filter((h)=>!!h),i.length)this._state.change({searchScope:i},!0)}}setSearchString(i){if(this._state.isRegex)i=Ri(i);this._state.change({searchString:i},!1)}highlightFindOptions(i=!1){}async _start(i,h){if(this.disposeModel(),!this._editor.hasModel())return;let b={...h,isRevealed:!0};if(i.seedSearchStringFromSelection==="single"){let v=qb(this._editor,i.seedSearchStringFromSelection,i.seedSearchStringFromNonEmptySelection);if(v)if(this._state.isRegex)b.searchString=Ri(v);else b.searchString=v}else if(i.seedSearchStringFromSelection==="multiple"&&!i.updateSearchScope){let v=qb(this._editor,i.seedSearchStringFromSelection);if(v)b.searchString=v}if(!b.searchString&&i.seedSearchStringFromGlobalClipboard){let v=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;if(v)b.searchString=v}if(i.forceRevealReplace||b.isReplaceRevealed)b.isReplaceRevealed=!0;else if(!this._findWidgetVisible.get())b.isReplaceRevealed=!1;if(i.updateSearchScope){let v=this._editor.getSelections();if(v.some((w)=>!w.isEmpty()))b.searchScope=v}if(b.loop=i.loop,this._state.change(b,!1),!this._model)this._model=new nl(this._editor,this._state)}start(i,h){return this._start(i,h)}moveToNextMatch(){if(this._model)return this._model.moveToNextMatch(),!0;return!1}moveToPrevMatch(){if(this._model)return this._model.moveToPrevMatch(),!0;return!1}goToMatch(i){if(this._model)return this._model.moveToMatch(i),!0;return!1}replace(){if(this._model)return this._model.replace(),!0;return!1}replaceAll(){if(this._model){if(this._editor.getModel()?.isTooLargeForHeapOperation())return this._notificationService.warn(e(994,"The file is too large to perform a replace all operation.")),!1;return this._model.replaceAll(),!0}return!1}selectAllMatches(){if(this._model)return this._model.selectAllMatches(),this._editor.focus(),!0;return!1}async getGlobalBufferTerm(){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())return this._clipboardService.readFindText();return""}setGlobalBufferTerm(i){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())this._clipboardService.writeFindText(i)}};Gi=Gb=Mx([Co(1,K),Co(2,Tn),Co(3,ri),Co(4,bt),Co(5,kn)],Gi);var Zb=class f extends Gi{constructor(i,h,b,v,w,x,I,E,T,O){super(i,b,x,I,w,E);this._contextViewService=h,this._keybindingService=v,this._configurationService=T,this._accessibilityService=O,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=mp.getOrCreate(x),this._replaceWidgetHistory=fp.getOrCreate(x)}async _start(i,h){if(!this._widget)this._createFindWidget();let b=this._editor.getSelection(),v=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":v=!0;break;case"never":v=!1;break;case"multiline":{v=!!b&&b.startLineNumber!==b.endLineNumber;break}}if(i.updateSearchScope=i.updateSearchScope||v,await super._start(i,h),this._widget){if(i.shouldFocus===2)this._widget.focusReplaceInput();else if(i.shouldFocus===1)this._widget.focusFindInput()}}highlightFindOptions(i=!1){if(!this._widget)this._createFindWidget();if(this._state.isRevealed&&!i)this._widget.highlightFindOptions();else this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new hc(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 op(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(i){this._widget?.setViewState(i)}};Zb=Mx([Co(1,is),Co(2,K),Co(3,fe),Co(4,bt),Co(5,Tn),Co(6,ri),Co(7,kn),Co(8,ie),Co(9,Yt)],Zb);var rR=Fv(new Vg({id:Et.StartFindAction,label:p(1002,"Find"),precondition:C.or(o.focus,C.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"3_find",title:e(995,"&&Find"),order:1}}));rR.addImplementation(0,(f,i,h)=>{let b=Gi.get(i);if(!b)return!1;return b.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:i.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:i.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(50).loop})});var sR={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class Px extends U{constructor(){super({id:Et.StartFindWithArgs,label:p(1003,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:sR})}async run(f,i,h){let b=Gi.get(i);if(b){let v=h?{searchString:h.searchString,replaceString:h.replaceString,isReplaceRevealed:h.replaceString!==void 0,isRegex:h.isRegex,wholeWord:h.matchWholeWord,matchCase:h.isCaseSensitive,preserveCase:h.preserveCase}:{};await b.start({forceRevealReplace:!1,seedSearchStringFromSelection:b.getState().searchString.length===0&&i.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:i.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:h?.findInSelection||!1,loop:i.getOption(50).loop},v),b.setGlobalBufferTerm(b.getState().searchString)}}}class Ax extends U{constructor(){super({id:Et.StartFindWithSelection,label:p(1004,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(f,i){let h=Gi.get(i);if(h)await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(50).loop}),h.setGlobalBufferTerm(h.getState().searchString)}}async function Fx(f,i){let h=Gi.get(f);if(!h)return;let b=f.getOption(50).closeOnResult,v=h.getState().isRevealed,w=()=>{let x=h.editor.getSelection(),I=i?h.moveToNextMatch():h.moveToPrevMatch(),E=!1;if(I){let T=h.editor.getSelection();if(!x&&T)E=!0;else if(x&&T&&!x.equalsSelection(T))E=!0}if(E){if(h.editor.pushUndoStop(),b&&v&&h.isFindInputFocused())h.closeFindWidget();return!0}return!1};if(!w()){if(await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:h.getState().searchString.length===0&&f.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:f.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:f.getOption(50).loop}),!w()){let x=h.getState();if(v&&x.matchesCount===0&&x.searchString)Dn(e(996,"{0} found for '{1}'",pp,x.searchString))}}}var aR=Fv(new Vg({id:Et.NextMatchFindAction,label:p(1005,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:o.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:C.and(o.focus,rl),primary:3,weight:100}]}));aR.addImplementation(0,async(f,i,h)=>Fx(i,!0));var dR=Fv(new Vg({id:Et.PreviousMatchFindAction,label:p(1006,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:o.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:C.and(o.focus,rl),primary:1027,weight:100}]}));dR.addImplementation(0,async(f,i,h)=>Fx(i,!1));class Hx extends U{constructor(){super({id:Et.GoToMatchFindAction,label:p(1007,"Go to Match..."),precondition:Ir});this._highlightDecorations=[]}run(f,i){let h=Gi.get(i);if(!h)return;let b=h.getState().matchesCount;if(b<1){f.get(bt).notify({severity:Al.Warning,message:e(997,"No matches. Try searching for something else.")});return}let v=f.get(gn),w=new d,x=w.add(v.createInputBox());x.placeholder=e(998,"Type a number to go to a specific match (between 1 and {0})",b);let I=(T)=>{let O=parseInt(T);if(isNaN(O))return;let A=h.getState().matchesCount;if(O>0&&O<=A)return O-1;else if(O<0&&O>=-A)return A+O;return},E=(T)=>{let O=I(T);if(typeof O==="number"){x.validationMessage=void 0,h.goToMatch(O);let A=h.getState().currentMatch;if(A)this.addDecorations(i,A)}else x.validationMessage=e(999,"Please type a number between 1 and {0}",h.getState().matchesCount),this.clearDecorations(i)};w.add(x.onDidChangeValue((T)=>{E(T)})),w.add(x.onDidAccept(()=>{let T=I(x.value);if(typeof T==="number")h.goToMatch(T),x.hide();else x.validationMessage=e(1000,"Please type a number between 1 and {0}",h.getState().matchesCount)})),w.add(x.onDidHide(()=>{this.clearDecorations(i),w.dispose()})),x.show()}clearDecorations(f){f.changeDecorations((i)=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[])})}addDecorations(f,i){f.changeDecorations((h)=>{this._highlightDecorations=h.deltaDecorations(this._highlightDecorations,[{range:i,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:i,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:an(a0),position:Or.Full}}}])})}}class Xb extends U{async run(f,i){let h=Gi.get(i);if(!h)return;let b=qb(i,"single",!1);if(b)h.setSearchString(b);if(!this._run(h))await h.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(50).loop}),this._run(h)}}class Wx extends Xb{constructor(){super({id:Et.NextSelectionMatchFindAction,label:p(1008,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2109,weight:100}})}_run(f){return f.moveToNextMatch()}}class Bx extends Xb{constructor(){super({id:Et.PreviousSelectionMatchFindAction,label:p(1009,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3133,weight:100}})}_run(f){return f.moveToPrevMatch()}}var lR=Fv(new Vg({id:Et.StartFindReplaceAction,label:p(1010,"Replace"),precondition:C.or(o.focus,C.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:l.MenubarEditMenu,group:"3_find",title:e(1001,"&&Replace"),order:2}}));lR.addImplementation(0,(f,i,h)=>{if(!i.hasModel()||i.getOption(104))return!1;let b=Gi.get(i);if(!b)return!1;let v=i.getSelection(),w=b.isFindInputFocused(),x=!v.isEmpty()&&v.startLineNumber===v.endLineNumber&&i.getOption(50).seedSearchStringFromSelection!=="never"&&!w,I=w||x?2:1;return b.start({forceRevealReplace:!0,seedSearchStringFromSelection:x?"single":"none",seedSearchStringFromNonEmptySelection:i.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:i.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:I,shouldAnimate:!0,updateSearchScope:!1,loop:i.getOption(50).loop})});pe(Gi.ID,Zb,0);N(Px);N(Ax);N(Hx);N(Wx);N(Bx);var Nn=Kt.bindToContribution(Gi.get);G(new Nn({id:Et.CloseFindWidgetCommand,precondition:Ir,handler:(f)=>f.closeFindWidget(),kbOpts:{weight:105,kbExpr:o.focus,primary:9,secondary:[1033]}}));G(new Nn({id:Et.ToggleCaseSensitiveCommand,precondition:void 0,handler:(f)=>f.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:o.focus,primary:Uc.primary,mac:Uc.mac,win:Uc.win,linux:Uc.linux}}));G(new Nn({id:Et.ToggleWholeWordCommand,precondition:void 0,handler:(f)=>f.toggleWholeWords(),kbOpts:{weight:105,kbExpr:o.focus,primary:$c.primary,mac:$c.mac,win:$c.win,linux:$c.linux}}));G(new Nn({id:Et.ToggleRegexCommand,precondition:void 0,handler:(f)=>f.toggleRegex(),kbOpts:{weight:105,kbExpr:o.focus,primary:jc.primary,mac:jc.mac,win:jc.win,linux:jc.linux}}));G(new Nn({id:Et.ToggleSearchScopeCommand,precondition:void 0,handler:(f)=>f.toggleSearchScope(),kbOpts:{weight:105,kbExpr:o.focus,primary:Gc.primary,mac:Gc.mac,win:Gc.win,linux:Gc.linux}}));G(new Nn({id:Et.TogglePreserveCaseCommand,precondition:void 0,handler:(f)=>f.togglePreserveCase(),kbOpts:{weight:105,kbExpr:o.focus,primary:qc.primary,mac:qc.mac,win:qc.win,linux:qc.linux}}));G(new Nn({id:Et.ReplaceOneAction,precondition:Ir,handler:(f)=>f.replace(),kbOpts:{weight:105,kbExpr:o.focus,primary:3094}}));G(new Nn({id:Et.ReplaceOneAction,precondition:Ir,handler:(f)=>f.replace(),kbOpts:{weight:105,kbExpr:C.and(o.focus,zc),primary:3}}));G(new Nn({id:Et.ReplaceAllAction,precondition:Ir,handler:(f)=>f.replaceAll(),kbOpts:{weight:105,kbExpr:o.focus,primary:2563}}));G(new Nn({id:Et.ReplaceAllAction,precondition:Ir,handler:(f)=>f.replaceAll(),kbOpts:{weight:105,kbExpr:C.and(o.focus,zc),primary:void 0,mac:{primary:2051}}}));G(new Nn({id:Et.SelectAllMatchesAction,precondition:Ir,handler:(f)=>f.selectAllMatches(),kbOpts:{weight:105,kbExpr:o.focus,primary:515}}));var cR=a("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},e(1637,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},e(1638,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.wordHighlightTextBackground",cR,e(1639,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);var hR=a("editor.wordHighlightBorder",{light:null,dark:null,hcDark:zt,hcLight:zt},e(1640,"Border color of a symbol during read-access, like reading a variable."));a("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:zt,hcLight:zt},e(1641,"Border color of a symbol during write-access, like writing to a variable."));a("editor.wordHighlightTextBorder",hR,e(1642,"Border color of a textual occurrence for a symbol."));var uR=a("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",e(1643,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),gR=a("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",e(1644,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),pR=a("editorOverviewRuler.wordHighlightTextForeground",Nk,e(1645,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),mR=ce.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:an(gR),position:Or.Center},minimap:{color:an(zv),position:1}}),fR=ce.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:an(pR),position:Or.Center},minimap:{color:an(zv),position:1}}),bR=ce.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:an(Nk),position:Or.Center},minimap:{color:an(zv),position:1}}),yR=ce.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),ER=ce.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:an(uR),position:Or.Center},minimap:{color:an(zv),position:1}});function vR(f){if(f===bu.Write)return mR;else if(f===bu.Text)return fR;else return ER}function Vx(f){return f?yR:bR}hi((f,i)=>{let h=f.getColor(Of);if(h)i.addRule(`.monaco-editor .selectionHighlight { background-color: ${h.transparent(0.5)}; }`)});var TR=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ek=function(f,i){return function(h,b){i(h,b,f)}},Yb;function Zs(f,i){let h=i.filter((b)=>!f.find((v)=>v.equals(b)));if(h.length>=1){let b=h.map((w)=>`line ${w.viewState.position.lineNumber} column ${w.viewState.position.column}`).join(", "),v=h.length===1?e(1354,"Cursor added: {0}",b):e(1355,"Cursors added: {0}",b);Cr(v)}}class zx extends U{constructor(){super({id:"editor.action.insertCursorAbove",label:p(1364,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1356,"&&Add Cursor Above"),order:2}})}run(f,i,h){if(!i.hasModel())return;let b=!0;if(h&&h.logicalLine===!1)b=!1;let v=i._getViewModel();if(v.cursorConfig.readOnly)return;v.model.pushStackElement();let w=v.getCursorStates();v.setCursorStates(h.source,3,Si.addCursorUp(v,w,b)),v.revealTopMostCursor(h.source),Zs(w,v.getCursorStates())}}class Ux extends U{constructor(){super({id:"editor.action.insertCursorBelow",label:p(1365,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1357,"A&&dd Cursor Below"),order:3}})}run(f,i,h){if(!i.hasModel())return;let b=!0;if(h&&h.logicalLine===!1)b=!1;let v=i._getViewModel();if(v.cursorConfig.readOnly)return;v.model.pushStackElement();let w=v.getCursorStates();v.setCursorStates(h.source,3,Si.addCursorDown(v,w,b)),v.revealBottomMostCursor(h.source),Zs(w,v.getCursorStates())}}class $x extends U{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:p(1366,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1358,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(f,i,h){if(f.isEmpty())return;for(let b=f.startLineNumber;b<f.endLineNumber;b++){let v=i.getLineMaxColumn(b);h.push(new F(b,v,b,v))}if(f.endColumn>1)h.push(new F(f.endLineNumber,f.endColumn,f.endLineNumber,f.endColumn))}run(f,i){if(!i.hasModel())return;let h=i.getModel(),b=i.getSelections(),v=i._getViewModel(),w=v.getCursorStates(),x=[];if(b.forEach((I)=>this.getCursorsForSelection(I,h,x)),x.length>0)i.setSelections(x);Zs(w,v.getCursorStates())}}class jx extends U{constructor(){super({id:"editor.action.addCursorsToBottom",label:p(1367,"Add Cursors to Bottom"),precondition:void 0})}run(f,i){if(!i.hasModel())return;let h=i.getSelections(),b=i.getModel().getLineCount(),v=[];for(let I=h[0].startLineNumber;I<=b;I++)v.push(new F(I,h[0].startColumn,I,h[0].endColumn));let w=i._getViewModel(),x=w.getCursorStates();if(v.length>0)i.setSelections(v);Zs(x,w.getCursorStates())}}class Gx extends U{constructor(){super({id:"editor.action.addCursorsToTop",label:p(1368,"Add Cursors to Top"),precondition:void 0})}run(f,i){if(!i.hasModel())return;let h=i.getSelections(),b=[];for(let x=h[0].startLineNumber;x>=1;x--)b.push(new F(x,h[0].startColumn,x,h[0].endColumn));let v=i._getViewModel(),w=v.getCursorStates();if(b.length>0)i.setSelections(b);Zs(w,v.getCursorStates())}}class th{constructor(f,i,h){this.selections=f,this.revealRange=i,this.revealScrollType=h}}class ih{static create(f,i){if(!f.hasModel())return null;let h=i.getState();if(!f.hasTextFocus()&&h.isRevealed&&h.searchString.length>0)return new ih(f,i,!1,h.searchString,h.wholeWord,h.matchCase,null);let b=!1,v,w,x=f.getSelections();if(x.length===1&&x[0].isEmpty())b=!0,v=!0,w=!0;else v=h.wholeWord,w=h.matchCase;let I=f.getSelection(),E,T=null;if(I.isEmpty()){let O=f.getConfiguredWordAtPosition(I.getStartPosition());if(!O)return null;E=O.word,T=new F(I.startLineNumber,O.startColumn,I.startLineNumber,O.endColumn)}else E=f.getModel().getValueInRange(I).replace(/\r\n/g,`
21
- `);return new ih(f,i,b,E,v,w,T)}constructor(f,i,h,b,v,w,x){this._editor=f,this.findController=i,this.isDisconnectedFromFindController=h,this.searchText=b,this.wholeWord=v,this.matchCase=w,this.currentMatch=x}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let f=this._getNextMatch();if(!f)return null;let i=this._editor.getSelections();return new th(i.concat(f),f,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let f=this._getNextMatch();if(!f)return null;let i=this._editor.getSelections();return new th(i.slice(0,i.length-1).concat(f),f,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let b=this.currentMatch;return this.currentMatch=null,b}this.findController.highlightFindOptions();let f=this._editor.getSelections(),i=f[f.length-1],h=this._editor.getModel().findNextMatch(this.searchText,i.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!h)return null;return new F(h.range.startLineNumber,h.range.startColumn,h.range.endLineNumber,h.range.endColumn)}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let f=this._getPreviousMatch();if(!f)return null;let i=this._editor.getSelections();return new th(i.concat(f),f,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let f=this._getPreviousMatch();if(!f)return null;let i=this._editor.getSelections();return new th(i.slice(0,i.length-1).concat(f),f,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let b=this.currentMatch;return this.currentMatch=null,b}this.findController.highlightFindOptions();let f=this._editor.getSelections(),i=f[f.length-1],h=this._editor.getModel().findPreviousMatch(this.searchText,i.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!h)return null;return new F(h.range.startLineNumber,h.range.startColumn,h.range.endLineNumber,h.range.endColumn)}selectAll(f){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let i=this._editor.getModel();if(f)return i.findMatches(this.searchText,f,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824);return i.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}class sl extends n{static{this.ID="editor.contrib.multiCursorController"}static get(f){return f.getContribution(sl.ID)}constructor(f){super();this._sessionDispose=this._register(new d),this._editor=f,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(f){if(!this._session){let i=ih.create(this._editor,f);if(!i)return;this._session=i;let h={searchString:this._session.searchText};if(this._session.isDisconnectedFromFindController)h.wholeWordOverride=1,h.matchCaseOverride=1,h.isRegexOverride=2;f.getState().change(h,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((b)=>{if(this._ignoreSelectionChange)return;this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(f.getState().onFindReplaceStateChange((b)=>{if(b.matchCase||b.wholeWord)this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){let f={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(f,!1)}this._session=null}_setSelections(f){this._ignoreSelectionChange=!0,this._editor.setSelections(f),this._ignoreSelectionChange=!1}_expandEmptyToWord(f,i){if(!i.isEmpty())return i;let h=this._editor.getConfiguredWordAtPosition(i.getStartPosition());if(!h)return i;return new F(i.startLineNumber,h.startColumn,i.startLineNumber,h.endColumn)}_applySessionResult(f){if(!f)return;if(this._setSelections(f.selections),f.revealRange)this._editor.revealRangeInCenterIfOutsideViewport(f.revealRange,f.revealScrollType)}getSession(f){return this._session}addSelectionToNextFindMatch(f){if(!this._editor.hasModel())return;if(!this._session){let i=this._editor.getSelections();if(i.length>1){let b=f.getState().matchCase;if(!dI(this._editor.getModel(),i,b)){let w=this._editor.getModel(),x=[];for(let I=0,E=i.length;I<E;I++)x[I]=this._expandEmptyToWord(w,i[I]);this._editor.setSelections(x);return}}}if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.addSelectionToNextFindMatch())}addSelectionToPreviousFindMatch(f){if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(f){if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(f){if(this._beginSessionIfNeeded(f),this._session)this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(f){if(!this._editor.hasModel())return;let i=null,h=f.getState();if(h.isRevealed&&h.searchString.length>0&&h.isRegex){let b=this._editor.getModel();if(h.searchScope)i=b.findMatches(h.searchString,h.searchScope,h.isRegex,h.matchCase,h.wholeWord?this._editor.getOption(148):null,!1,1073741824);else i=b.findMatches(h.searchString,!0,h.isRegex,h.matchCase,h.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(f),!this._session)return;i=this._session.selectAll(h.searchScope)}if(i.length>0){let b=this._editor.getSelection();for(let v=0,w=i.length;v<w;v++){let x=i[v];if(x.range.intersectRanges(b)){i[v]=i[0],i[0]=x;break}}this._setSelections(i.map((v)=>new F(v.range.startLineNumber,v.range.startColumn,v.range.endLineNumber,v.range.endColumn)))}}}class bd extends U{run(f,i){let h=sl.get(i);if(!h)return;let b=i._getViewModel();if(b){let v=b.getCursorStates(),w=Gi.get(i);if(w)this._run(h,w);else{let x=f.get(D).createInstance(Gi,i);this._run(h,x),x.dispose()}Zs(v,b.getCursorStates())}}}class qx extends bd{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:p(1369,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2082,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1359,"Add &&Next Occurrence"),order:5}})}_run(f,i){f.addSelectionToNextFindMatch(i)}}class Zx extends bd{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:p(1370,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1360,"Add P&&revious Occurrence"),order:6}})}_run(f,i){f.addSelectionToPreviousFindMatch(i)}}class Xx extends bd{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:p(1371,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:tn(2089,2082),weight:100}})}_run(f,i){f.moveSelectionToNextFindMatch(i)}}class Yx extends bd{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:p(1372,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(f,i){f.moveSelectionToPreviousFindMatch(i)}}class Jx extends bd{constructor(){super({id:"editor.action.selectHighlights",label:p(1373,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3114,weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"3_multi",title:e(1361,"Select All &&Occurrences"),order:7}})}_run(f,i){f.selectAll(i)}}class Qx extends bd{constructor(){super({id:"editor.action.changeAll",label:p(1374,"Change All Occurrences"),precondition:C.and(o.writable,o.editorTextFocus),kbOpts:{kbExpr:o.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(f,i){f.selectAll(i)}}class rI{constructor(f,i,h,b,v){if(this._model=f,this._searchText=i,this._matchCase=h,this._wordSeparators=b,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),v&&this._model===v._model&&this._searchText===v._searchText&&this._matchCase===v._matchCase&&this._wordSeparators===v._wordSeparators&&this._modelVersionId===v._modelVersionId)this._cachedFindMatches=v._cachedFindMatches}findMatches(){if(this._cachedFindMatches===null)this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((f)=>f.range),this._cachedFindMatches.sort(t.compareRangesUsingStarts);return this._cachedFindMatches}}var _p=class f extends n{static{Yb=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(i,h){super();this._languageFeaturesService=h,this.editor=i,this._isEnabled=i.getOption(122),this._isEnabledMultiline=i.getOption(124),this._maxLength=i.getOption(123),this._decorations=i.createDecorationsCollection(),this.updateSoon=this._register(new _e(()=>this._update(),300)),this.state=null,this._register(i.onDidChangeConfiguration((v)=>{this._isEnabled=i.getOption(122),this._isEnabledMultiline=i.getOption(124),this._maxLength=i.getOption(123)})),this._register(i.onDidChangeCursorSelection((v)=>{if(!this._isEnabled)return;if(v.selection.isEmpty())if(v.reason===3){if(this.state)this._setState(null);this.updateSoon.schedule()}else this._setState(null);else this._update()})),this._register(i.onDidChangeModel((v)=>{this._setState(null)})),this._register(i.onDidChangeModelContent((v)=>{if(this._isEnabled)this.updateSoon.schedule()}));let b=Gi.get(i);if(b)this._register(b.getState().onFindReplaceStateChange((v)=>{this._update()}));this.updateSoon.schedule()}_update(){this._setState(Yb._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(i,h,b,v,w){if(!h)return null;if(!w.hasModel())return null;if(!b){let A=w.getSelection();if(A.startLineNumber!==A.endLineNumber)return null}let x=sl.get(w);if(!x)return null;let I=Gi.get(w);if(!I)return null;let E=x.getSession(I);if(!E){let A=w.getSelections();if(A.length>1){let ee=I.getState().matchCase;if(!dI(w.getModel(),A,ee))return null}E=ih.create(w,I)}if(!E)return null;if(E.currentMatch)return null;if(/^[ \t]+$/.test(E.searchText))return null;if(v>0&&E.searchText.length>v)return null;let T=I.getState(),O=T.matchCase;if(T.isRevealed){let A=T.searchString;if(!O)A=A.toLowerCase();let Y=E.searchText;if(!O)Y=Y.toLowerCase();if(A===Y&&E.matchCase===T.matchCase&&E.wholeWord===T.wholeWord&&!T.isRegex)return null}return new rI(w.getModel(),E.searchText,E.matchCase,E.wholeWord?w.getOption(148):null,i)}_setState(i){if(this.state=i,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let h=this.editor.getModel();if(h.isTooLargeForTokenization())return;let b=this.state.findMatches(),v=this.editor.getSelections();v.sort(t.compareRangesUsingStarts);let w=[];for(let T=0,O=0,A=b.length,Y=v.length;T<A;){let ee=b[T];if(O>=Y)w.push(ee),T++;else{let te=t.compareRangesUsingStarts(ee,v[O]);if(te<0){if(v[O].isEmpty()||!t.areIntersecting(ee,v[O]))w.push(ee);T++}else if(te>0)O++;else T++,O++}}let x=this.editor.getOption(90)!=="off",I=this._languageFeaturesService.documentHighlightProvider.has(h)&&x,E=w.map((T)=>({range:T,options:Vx(I)}));this._decorations.set(E)}dispose(){this._setState(null),super.dispose()}};_p=Yb=TR([ek(1,V)],_p);function dI(f,i,h){let b=Kx(f,i[0],!h);for(let v=1,w=i.length;v<w;v++){let x=i[v];if(x.isEmpty())return!1;let I=Kx(f,x,!h);if(b!==I)return!1}return!0}function Kx(f,i,h){let b=f.getValueInRange(i);return h?b.toLowerCase():b}class cI extends U{constructor(){super({id:"editor.action.focusNextCursor",label:p(1375,"Focus Next Cursor"),metadata:{description:e(1362,"Focuses the next cursor"),args:[]},precondition:void 0})}run(f,i,h){if(!i.hasModel())return;let b=i._getViewModel();if(b.cursorConfig.readOnly)return;b.model.pushStackElement();let v=Array.from(b.getCursorStates()),w=v.shift();if(!w)return;v.push(w),b.setCursorStates(h.source,3,v),b.revealPrimaryCursor(h.source,!0),Zs(v,b.getCursorStates())}}class mI extends U{constructor(){super({id:"editor.action.focusPreviousCursor",label:p(1376,"Focus Previous Cursor"),metadata:{description:e(1363,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(f,i,h){if(!i.hasModel())return;let b=i._getViewModel();if(b.cursorConfig.readOnly)return;b.model.pushStackElement();let v=Array.from(b.getCursorStates()),w=v.pop();if(!w)return;v.unshift(w),b.setCursorStates(h.source,3,v),b.revealPrimaryCursor(h.source,!0),Zs(v,b.getCursorStates())}}pe(sl.ID,sl,4);pe(_p.ID,_p,1);N(zx);N(Ux);N($x);N(qx);N(Zx);N(Xx);N(Yx);N(Jx);N(Qx);N(jx);N(Gx);N(cI);N(mI);class Lo{async provideSelectionRanges(f,i){let h=[];for(let b of i){let v=[];h.push(v);let w=new Map;await new Promise((x)=>Lo._bracketsRightYield(x,0,f,b,w)),await new Promise((x)=>Lo._bracketsLeftYield(x,0,f,b,w,v))}return h}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(f,i,h,b,v){let w=new Map,x=Date.now();while(!0){if(i>=Lo._maxRounds){f();break}if(!b){f();break}let I=h.bracketPairs.findNextBracket(b);if(!I){f();break}if(Date.now()-x>Lo._maxDuration){setTimeout(()=>Lo._bracketsRightYield(f,i+1,h,b,v));break}if(I.bracketInfo.isOpeningBracket){let T=I.bracketInfo.bracketText,O=w.has(T)?w.get(T):0;w.set(T,O+1)}else{let T=I.bracketInfo.getOpeningBrackets()[0].bracketText,O=w.has(T)?w.get(T):0;if(O-=1,w.set(T,Math.max(0,O)),O<0){let A=v.get(T);if(!A)A=new Rn,v.set(T,A);A.push(I.range)}}b=I.range.getEndPosition()}}static _bracketsLeftYield(f,i,h,b,v,w){let x=new Map,I=Date.now();while(!0){if(i>=Lo._maxRounds&&v.size===0){f();break}if(!b){f();break}let E=h.bracketPairs.findPrevBracket(b);if(!E){f();break}if(Date.now()-I>Lo._maxDuration){setTimeout(()=>Lo._bracketsLeftYield(f,i+1,h,b,v,w));break}if(!E.bracketInfo.isOpeningBracket){let O=E.bracketInfo.getOpeningBrackets()[0].bracketText,A=x.has(O)?x.get(O):0;x.set(O,A+1)}else{let O=E.bracketInfo.bracketText,A=x.has(O)?x.get(O):0;if(A-=1,x.set(O,Math.max(0,A)),A<0){let Y=v.get(O);if(Y){let ee=Y.shift();if(Y.size===0)v.delete(O);let te=t.fromPositions(E.range.getEndPosition(),ee.getStartPosition()),oe=t.fromPositions(E.range.getStartPosition(),ee.getEndPosition());w.push({range:te}),w.push({range:oe}),Lo._addBracketLeading(h,oe,w)}}}b=E.range.getStartPosition()}}static _addBracketLeading(f,i,h){if(i.startLineNumber===i.endLineNumber)return;let b=i.startLineNumber,v=f.getLineFirstNonWhitespaceColumn(b);if(v!==0&&v!==i.startColumn)h.push({range:t.fromPositions(new s(b,v),i.getEndPosition())}),h.push({range:t.fromPositions(new s(b,1),i.getEndPosition())});let w=b-1;if(w>0){let x=f.getLineFirstNonWhitespaceColumn(w);if(x===i.startColumn&&x!==f.getLineLastNonWhitespaceColumn(w))h.push({range:t.fromPositions(new s(w,x),i.getEndPosition())}),h.push({range:t.fromPositions(new s(w,1),i.getEndPosition())})}}}class Jb{constructor(f=!0){this.selectSubwords=f}provideSelectionRanges(f,i){let h=[];for(let b of i){let v=[];if(h.push(v),this.selectSubwords)this._addInWordRanges(v,f,b);this._addWordRanges(v,f,b),this._addWhitespaceLine(v,f,b),v.push({range:f.getFullModelRange()})}return h}_addInWordRanges(f,i,h){let b=i.getWordAtPosition(h);if(!b)return;let{word:v,startColumn:w}=b,x=h.column-w,I=x,E=x,T=0;for(;I>=0;I--){let O=v.charCodeAt(I);if(I!==x&&(O===95||O===45))break;else if(Zc(O)&&Ba(T))break;T=O}I+=1;for(;E<v.length;E++){let O=v.charCodeAt(E);if(Ba(O)&&Zc(T))break;else if(O===95||O===45)break;T=O}if(I<E)f.push({range:new t(h.lineNumber,w+I,h.lineNumber,w+E)})}_addWordRanges(f,i,h){let b=i.getWordAtPosition(h);if(b)f.push({range:new t(h.lineNumber,b.startColumn,h.lineNumber,b.endColumn)})}_addWhitespaceLine(f,i,h){if(i.getLineLength(h.lineNumber)>0&&i.getLineFirstNonWhitespaceColumn(h.lineNumber)===0&&i.getLineLastNonWhitespaceColumn(h.lineNumber)===0)f.push({range:new t(h.lineNumber,1,h.lineNumber,i.getLineMaxColumn(h.lineNumber))})}}var tk=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ik=function(f,i){return function(h,b){i(h,b,f)}},Qb;class ev{constructor(f,i){this.index=f,this.ranges=i}mov(f){let i=this.index+(f?1:-1);if(i<0||i>=this.ranges.length)return this;let h=new ev(i,this.ranges);if(h.ranges[i].equalsRange(this.ranges[this.index]))return h.mov(f);return h}}var oh=class f{static{Qb=this}static{this.ID="editor.contrib.smartSelectController"}static get(i){return i.getContribution(Qb.ID)}constructor(i,h){this._editor=i,this._languageFeaturesService=h,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(i){if(!this._editor.hasModel())return;let h=this._editor.getSelections(),b=this._editor.getModel();if(!this._state)await SI(this._languageFeaturesService.selectionRangeProvider,b,h.map((w)=>w.getPosition()),this._editor.getOption(129),be.None).then((w)=>{if(!On(w)||w.length!==h.length)return;if(!this._editor.hasModel()||!et(this._editor.getSelections(),h,(x,I)=>x.equalsSelection(I)))return;for(let x=0;x<w.length;x++)w[x]=w[x].filter((I)=>I.containsPosition(h[x].getStartPosition())&&I.containsPosition(h[x].getEndPosition())),w[x].unshift(h[x]);this._state=w.map((x)=>new ev(0,x)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignoreSelection)this._selectionListener?.dispose(),this._state=void 0})});if(!this._state)return;this._state=this._state.map((w)=>w.mov(i));let v=this._state.map((w)=>F.fromPositions(w.ranges[w.index].getStartPosition(),w.ranges[w.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(v)}finally{this._ignoreSelection=!1}}};oh=Qb=tk([ik(1,V)],oh);class tv extends U{constructor(f,i){super(i);this._forward=f}async run(f,i){let h=oh.get(i);if(h)await h.run(this._forward)}}class fI extends tv{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:p(1469,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"1_basic",title:e(1467,"&&Expand Selection"),order:2}})}}ke.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class _I extends tv{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:p(1470,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:l.MenubarSelectionMenu,group:"1_basic",title:e(1468,"&&Shrink Selection"),order:3}})}}pe(oh.ID,oh,4);N(fI);N(_I);async function SI(f,i,h,b,v){let w=f.all(i).concat(new Jb(b.selectSubwords));if(w.length===1)w.unshift(new Lo);let x=[],I=[];for(let E of w)x.push(Promise.resolve(E.provideSelectionRanges(i,h,v)).then((T)=>{if(On(T)&&T.length===h.length)for(let O=0;O<h.length;O++){if(!I[O])I[O]=[];for(let A of T[O])if(t.isIRange(A.range)&&t.containsPosition(A.range,h[O]))I[O].push(t.lift(A.range))}},gt));return await Promise.all(x),I.map((E)=>{if(E.length===0)return[];E.sort((Y,ee)=>{if(s.isBefore(Y.getStartPosition(),ee.getStartPosition()))return 1;else if(s.isBefore(ee.getStartPosition(),Y.getStartPosition()))return-1;else if(s.isBefore(Y.getEndPosition(),ee.getEndPosition()))return-1;else if(s.isBefore(ee.getEndPosition(),Y.getEndPosition()))return 1;else return 0});let T=[],O;for(let Y of E)if(!O||t.containsRange(Y,O)&&!t.equalsRange(Y,O))T.push(Y),O=Y;if(!b.selectLeadingAndTrailingWhitespace)return T;let A=[T[0]];for(let Y=1;Y<T.length;Y++){let ee=T[Y-1],te=T[Y];if(te.startLineNumber!==ee.startLineNumber||te.endLineNumber!==ee.endLineNumber){let oe=new t(ee.startLineNumber,i.getLineFirstNonWhitespaceColumn(ee.startLineNumber),ee.endLineNumber,i.getLineLastNonWhitespaceColumn(ee.endLineNumber));if(oe.containsRange(ee)&&!oe.equalsRange(ee)&&te.containsRange(oe)&&!te.equalsRange(oe))A.push(oe);let ne=new t(ee.startLineNumber,1,ee.endLineNumber,i.getLineMaxColumn(ee.endLineNumber));if(ne.containsRange(ee)&&!ne.equalsRange(oe)&&te.containsRange(ne)&&!te.equalsRange(ne))A.push(ne)}A.push(te)}return A})}ke.registerCommand("_executeSelectionRangeProvider",async function(f,...i){let[h,b]=i;Ae(q.isUri(h)),Ae(_R(b,(x)=>s.isIPosition(x)));let v=f.get(V).selectionRangeProvider,w=await f.get(_n).createModelReference(h);try{return SI(v,w.object.textEditorModel,b.map(s.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},be.None)}finally{w.dispose()}});class al extends Kt{constructor(f){super(f);this._inSelectionMode=f.inSelectionMode,this._wordNavigationType=f.wordNavigationType}runEditorCommand(f,i,h){if(!i.hasModel())return;let b=Oo(i.getOption(148),i.getOption(147)),v=i.getModel(),w=i.getSelections(),x=w.length>1,I=w.map((E)=>{let T=new s(E.positionLineNumber,E.positionColumn),O=this._move(b,v,T,this._wordNavigationType,x);return this._moveTo(E,O,this._inSelectionMode)});if(v.pushStackElement(),i._getViewModel().setCursorStates("moveWordCommand",3,I.map((E)=>Je.fromModelSelection(E))),I.length===1){let E=new s(I[0].positionLineNumber,I[0].positionColumn);i.revealPosition(E,0)}}_moveTo(f,i,h){if(h)return new F(f.selectionStartLineNumber,f.selectionStartColumn,i.lineNumber,i.column);else return new F(i.lineNumber,i.column,i.lineNumber,i.column)}}class jr extends al{_move(f,i,h,b,v){return It.moveWordLeft(f,i,h,b,v)}}class qr extends al{_move(f,i,h,b,v){return It.moveWordRight(f,i,h,b)}}class CI extends jr{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class xI extends jr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class II extends jr{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:C.and(o.textInputFocus,C.and(Su,ow)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class LI extends jr{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class EI extends jr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class DI extends jr{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:C.and(o.textInputFocus,C.and(Su,ow)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class RI extends jr{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(f,i,h,b,v){return super._move(Oo(Qi.wordSeparators.defaultValue,f.intlSegmenterLocales),i,h,b,v)}}class kI extends jr{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(f,i,h,b,v){return super._move(Oo(Qi.wordSeparators.defaultValue,f.intlSegmenterLocales),i,h,b,v)}}class TI extends qr{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class NI extends qr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:C.and(o.textInputFocus,C.and(Su,ow)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class OI extends qr{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class MI extends qr{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class PI extends qr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:C.and(o.textInputFocus,C.and(Su,ow)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class AI extends qr{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class FI extends qr{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(f,i,h,b,v){return super._move(Oo(Qi.wordSeparators.defaultValue,f.intlSegmenterLocales),i,h,b,v)}}class HI extends qr{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(f,i,h,b,v){return super._move(Oo(Qi.wordSeparators.defaultValue,f.intlSegmenterLocales),i,h,b,v)}}class dl extends Kt{constructor(f){super({canTriggerInlineEdits:!0,...f});this._whitespaceHeuristics=f.whitespaceHeuristics,this._wordNavigationType=f.wordNavigationType}runEditorCommand(f,i,h){let b=f?.get(st);if(!i.hasModel()||!b)return;let v=Oo(i.getOption(148),i.getOption(147)),w=i.getModel(),x=i.getSelections(),I=i.getOption(10),E=i.getOption(15),T=b.getLanguageConfiguration(w.getLanguageId()).getAutoClosingPairs(),O=i._getViewModel(),A=x.map((Y)=>{let ee=this._delete({wordSeparators:v,model:w,selection:Y,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:i.getOption(13),autoClosingBrackets:I,autoClosingQuotes:E,autoClosingPairs:T,autoClosedCharacters:O.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ui(ee,"")});i.pushUndoStop(),i.executeCommands(this.id,A),i.pushUndoStop()}}class bp extends dl{_delete(f,i){let h=It.deleteWordLeft(f,i);if(h)return h;return new t(1,1,1,1)}}class vp extends dl{_delete(f,i){let h=It.deleteWordRight(f,i);if(h)return h;let b=f.model.getLineCount(),v=f.model.getLineMaxColumn(b);return new t(b,v,b,v)}}class WI extends bp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:o.writable})}}class BI extends bp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:o.writable})}}class VI extends bp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class KI extends vp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:o.writable})}}class zI extends vp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:o.writable})}}class UI extends vp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class $I extends U{constructor(){super({id:"deleteInsideWord",precondition:o.writable,label:p(1650,"Delete Word"),metadata:{description:p(1651,"Delete the word at the cursor"),args:[{name:"args",schema:{type:"object",properties:{onlyWord:{type:"boolean",default:!1,description:e(1649,"Delete only the word and leave surrounding whitespace")}}}}]}})}run(f,i,h){if(!i.hasModel())return;let b=!!(h&&typeof h==="object"&&h.onlyWord),v=Oo(i.getOption(148),i.getOption(147)),w=i.getModel(),I=i.getSelections().map((E)=>{let T=It.deleteInsideWord(v,w,E,b);return new ui(T,"")});i.pushUndoStop(),i.executeCommands(this.id,I),i.pushUndoStop()}}G(new CI);G(new xI);G(new II);G(new LI);G(new EI);G(new DI);G(new TI);G(new NI);G(new OI);G(new MI);G(new PI);G(new AI);G(new RI);G(new kI);G(new FI);G(new HI);G(new WI);G(new BI);G(new VI);G(new KI);G(new zI);G(new UI);N($I);class jI extends dl{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(f,i){let h=eb.deleteWordPartLeft(f);if(h)return h;return new t(1,1,1,1)}}class GI extends dl{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(f,i){let h=eb.deleteWordPartRight(f);if(h)return h;let b=f.model.getLineCount(),v=f.model.getLineMaxColumn(b);return new t(b,v,b,v)}}class iv extends al{_move(f,i,h,b,v){return eb.moveWordPartLeft(f,i,h,v)}}class qI extends iv{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}ke.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class ZI extends iv{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}ke.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class ov extends al{_move(f,i,h,b,v){return eb.moveWordPartRight(f,i,h)}}class XI extends ov{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class YI extends ov{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}G(new jI);G(new GI);G(new qI);G(new ZI);G(new XI);G(new YI);var ok={[0]:" ",[1]:"u",[2]:"r"};var ll=16777215;class Sp{constructor(f){let i=Math.ceil(f/32);this._states=new Uint32Array(i)}get(f){let i=f/32|0,h=f%32;return(this._states[i]&1<<h)!==0}set(f,i){let h=f/32|0,b=f%32,v=this._states[h];if(i)this._states[h]=v|1<<b;else this._states[h]=v&~(1<<b)}}class Bi{constructor(f,i,h){if(f.length!==i.length||f.length>65535)throw Error("invalid startIndexes or endIndexes size");this._startIndexes=f,this._endIndexes=i,this._collapseStates=new Sp(f.length),this._userDefinedStates=new Sp(f.length),this._recoveredStates=new Sp(f.length),this._types=h,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let f=[],i=(h,b)=>{let v=f[f.length-1];return this.getStartLineNumber(v)<=h&&this.getEndLineNumber(v)>=b};for(let h=0,b=this._startIndexes.length;h<b;h++){let v=this._startIndexes[h],w=this._endIndexes[h];if(v>16777215||w>16777215)throw Error("startLineNumber or endLineNumber must not exceed 16777215");while(f.length>0&&!i(v,w))f.pop();let x=f.length>0?f[f.length-1]:-1;f.push(h),this._startIndexes[h]=v+((x&255)<<24),this._endIndexes[h]=w+((x&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(f){return this._startIndexes[f]&16777215}getEndLineNumber(f){return this._endIndexes[f]&16777215}getType(f){return this._types?this._types[f]:void 0}hasTypes(){return!!this._types}isCollapsed(f){return this._collapseStates.get(f)}setCollapsed(f,i){this._collapseStates.set(f,i)}isUserDefined(f){return this._userDefinedStates.get(f)}setUserDefined(f,i){return this._userDefinedStates.set(f,i)}isRecovered(f){return this._recoveredStates.get(f)}setRecovered(f,i){return this._recoveredStates.set(f,i)}getSource(f){if(this.isUserDefined(f))return 1;else if(this.isRecovered(f))return 2;return 0}setSource(f,i){if(i===1)this.setUserDefined(f,!0),this.setRecovered(f,!1);else if(i===2)this.setUserDefined(f,!1),this.setRecovered(f,!0);else this.setUserDefined(f,!1),this.setRecovered(f,!1)}setCollapsedAllOfType(f,i){let h=!1;if(this._types){for(let b=0;b<this._types.length;b++)if(this._types[b]===f)this.setCollapsed(b,i),h=!0}return h}toRegion(f){return new JI(this,f)}getParentIndex(f){this.ensureParentIndices();let i=((this._startIndexes[f]&4278190080)>>>24)+((this._endIndexes[f]&4278190080)>>>16);if(i===65535)return-1;return i}contains(f,i){return this.getStartLineNumber(f)<=i&&this.getEndLineNumber(f)>=i}findIndex(f){let i=0,h=this._startIndexes.length;if(h===0)return-1;while(i<h){let b=Math.floor((i+h)/2);if(f<this.getStartLineNumber(b))h=b;else i=b+1}return i-1}findRange(f){let i=this.findIndex(f);if(i>=0){if(this.getEndLineNumber(i)>=f)return i;i=this.getParentIndex(i);while(i!==-1){if(this.contains(i,f))return i;i=this.getParentIndex(i)}}return-1}toString(){let f=[];for(let i=0;i<this.length;i++)f[i]=`[${ok[this.getSource(i)]}${this.isCollapsed(i)?"+":"-"}] ${this.getStartLineNumber(i)}/${this.getEndLineNumber(i)}`;return f.join(", ")}toFoldRange(f){return{startLineNumber:this._startIndexes[f]&16777215,endLineNumber:this._endIndexes[f]&16777215,type:this._types?this._types[f]:void 0,isCollapsed:this.isCollapsed(f),source:this.getSource(f)}}static fromFoldRanges(f){let i=f.length,h=new Uint32Array(i),b=new Uint32Array(i),v=[],w=!1;for(let I=0;I<i;I++){let E=f[I];if(h[I]=E.startLineNumber,b[I]=E.endLineNumber,v.push(E.type),E.type)w=!0}if(!w)v=void 0;let x=new Bi(h,b,v);for(let I=0;I<i;I++){if(f[I].isCollapsed)x.setCollapsed(I,!0);x.setSource(I,f[I].source)}return x}static sanitizeAndMerge(f,i,h,b){h=h??Number.MAX_VALUE;let v=(oe,ne)=>Array.isArray(oe)?(re)=>re<ne?oe[re]:void 0:(re)=>re<ne?oe.toFoldRange(re):void 0,w=v(f,f.length),x=v(i,i.length),I=0,E=0,T=w(0),O=x(0),A=[],Y,ee=0,te=[];while(T||O){let oe=void 0;if(O&&(!T||T.startLineNumber>=O.startLineNumber)){if(T&&T.startLineNumber===O.startLineNumber){if(O.source===1)oe=O;else oe=T,oe.isCollapsed=O.isCollapsed&&(T.endLineNumber===O.endLineNumber||!b?.startsInside(T.startLineNumber+1,T.endLineNumber+1)),oe.source=0;T=w(++I)}else if(oe=O,O.isCollapsed&&O.source===0)oe.source=2;O=x(++E)}else{let ne=E,re=O;while(!0){if(!re||re.startLineNumber>T.endLineNumber){oe=T;break}if(re.source===1&&re.endLineNumber>T.endLineNumber)break;re=x(++ne)}T=w(++I)}if(oe){while(Y&&Y.endLineNumber<oe.startLineNumber)Y=A.pop();if(oe.endLineNumber>oe.startLineNumber&&oe.startLineNumber>ee&&oe.endLineNumber<=h&&(!Y||Y.endLineNumber>=oe.endLineNumber)){if(te.push(oe),ee=oe.startLineNumber,Y)A.push(Y);Y=oe}}}return te}}class JI{constructor(f,i){this.ranges=f,this.index=i}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(f){return f.startLineNumber<=this.startLineNumber&&f.endLineNumber>=this.endLineNumber}containsLine(f){return this.startLineNumber<=f&&f<=this.endLineNumber}}class nv{get regions(){return this._regions}get textModel(){return this._textModel}constructor(f,i){this._updateEventEmitter=new r,this.onDidChange=this._updateEventEmitter.event,this._textModel=f,this._decorationProvider=i,this._regions=new Bi(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(f){if(!f.length)return;f=f.sort((h,b)=>h.regionIndex-b.regionIndex);let i={};this._decorationProvider.changeDecorations((h)=>{let b=0,v=-1,w=-1,x=(I)=>{while(b<I){let E=this._regions.getEndLineNumber(b),T=this._regions.isCollapsed(b);if(E<=v){let O=this.regions.getSource(b)!==0;h.changeDecorationOptions(this._editorDecorationIds[b],this._decorationProvider.getDecorationOption(T,E<=w,O))}if(T&&E>w)w=E;b++}};for(let I of f){let E=I.regionIndex,T=this._editorDecorationIds[E];if(T&&!i[T]){i[T]=!0,x(E);let O=!this._regions.isCollapsed(E);this._regions.setCollapsed(E,O),v=Math.max(v,this._regions.getEndLineNumber(E))}}x(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:f})}removeManualRanges(f){let i=new Set,h=!1;for(let w of f)if(t.isEmpty(w)){let x=this._regions.findRange(w.startLineNumber);while(x!==-1&&this._regions.getSource(x)===0)x=this._regions.getParentIndex(x);if(x===-1)h=!0;else i.add(x)}let b=[],v=(w)=>{for(let x of f)if(!t.isEmpty(x)&&!(x.startLineNumber>w.endLineNumber||w.startLineNumber>x.endLineNumber))return!0;return!1};for(let w=0;w<this._regions.length;w++){let x=this._regions.toFoldRange(w);if(x.source===0||!h&&!i.has(w)&&!v(x))b.push(x)}this.updatePost(Bi.fromFoldRanges(b))}update(f,i){let h=this._currentFoldedOrManualRanges(i),b=Bi.sanitizeAndMerge(f,h,this._textModel.getLineCount(),i);this.updatePost(Bi.fromFoldRanges(b))}updatePost(f){let i=[],h=-1;for(let b=0,v=f.length;b<v;b++){let w=f.getStartLineNumber(b),x=f.getEndLineNumber(b),I=f.isCollapsed(b),E=f.getSource(b)!==0,T={startLineNumber:w,startColumn:this._textModel.getLineMaxColumn(w),endLineNumber:x,endColumn:this._textModel.getLineMaxColumn(x)+1};if(i.push({range:T,options:this._decorationProvider.getDecorationOption(I,x<=h,E)}),I&&x>h)h=x}this._decorationProvider.changeDecorations((b)=>this._editorDecorationIds=b.deltaDecorations(this._editorDecorationIds,i)),this._regions=f,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(f){let i=[];for(let h=0,b=this._regions.length;h<b;h++){let v=this.regions.isCollapsed(h),w=this.regions.getSource(h);if(v||w!==0){let x=this._regions.toFoldRange(h),I=this._textModel.getDecorationRange(this._editorDecorationIds[h]);if(I){if(v&&f?.startsInside(I.startLineNumber+1,I.endLineNumber))v=!1;i.push({startLineNumber:I.startLineNumber,endLineNumber:I.endLineNumber,type:x.type,isCollapsed:v,source:w})}}}return i}getMemento(){let f=this._currentFoldedOrManualRanges(),i=[],h=this._textModel.getLineCount();for(let b=0,v=f.length;b<v;b++){let w=f[b];if(w.startLineNumber>=w.endLineNumber||w.startLineNumber<1||w.endLineNumber>h)continue;let x=this._getLinesChecksum(w.startLineNumber+1,w.endLineNumber);i.push({startLineNumber:w.startLineNumber,endLineNumber:w.endLineNumber,isCollapsed:w.isCollapsed,source:w.source,checksum:x})}return i.length>0?i:void 0}applyMemento(f){if(!Array.isArray(f))return;let i=[],h=this._textModel.getLineCount();for(let v of f){if(v.startLineNumber>=v.endLineNumber||v.startLineNumber<1||v.endLineNumber>h)continue;let w=this._getLinesChecksum(v.startLineNumber+1,v.endLineNumber);if(!v.checksum||w===v.checksum)i.push({startLineNumber:v.startLineNumber,endLineNumber:v.endLineNumber,type:void 0,isCollapsed:v.isCollapsed??!0,source:v.source??0})}let b=Bi.sanitizeAndMerge(this._regions,i,h);this.updatePost(Bi.fromFoldRanges(b))}_getLinesChecksum(f,i){return Qc(this._textModel.getLineContent(f)+this._textModel.getLineContent(i))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(f,i){let h=[];if(this._regions){let b=this._regions.findRange(f),v=1;while(b>=0){let w=this._regions.toRegion(b);if(!i||i(w,v))h.push(w);v++,b=w.parentIndex}}return h}getRegionAtLine(f){if(this._regions){let i=this._regions.findRange(f);if(i>=0)return this._regions.toRegion(i)}return null}getRegionsInside(f,i){let h=[],b=f?f.regionIndex+1:0,v=f?f.endLineNumber:Number.MAX_VALUE;if(i&&i.length===2){let w=[];for(let x=b,I=this._regions.length;x<I;x++){let E=this._regions.toRegion(x);if(this._regions.getStartLineNumber(x)<v){while(w.length>0&&!E.containedBy(w[w.length-1]))w.pop();if(w.push(E),i(E,w.length))h.push(E)}else break}}else for(let w=b,x=this._regions.length;w<x;w++){let I=this._regions.toRegion(w);if(this._regions.getStartLineNumber(w)<v){if(!i||i(I))h.push(I)}else break}return h}}function nh(f,i,h){let b=[];for(let v of h){let w=f.getRegionAtLine(v);if(w){let x=!w.isCollapsed;if(b.push(w),i>1){let I=f.getRegionsInside(w,(E,T)=>E.isCollapsed!==x&&T<i);b.push(...I)}}}f.toggleCollapseState(b)}function vd(f,i,h=Number.MAX_VALUE,b){let v=[];if(b&&b.length>0)for(let w of b){let x=f.getRegionAtLine(w);if(x){if(x.isCollapsed!==i)v.push(x);if(h>1){let I=f.getRegionsInside(x,(E,T)=>E.isCollapsed!==i&&T<h);v.push(...I)}}}else{let w=f.getRegionsInside(null,(x,I)=>x.isCollapsed!==i&&I<h);v.push(...w)}f.toggleCollapseState(v)}function rv(f,i,h,b){let v=[];for(let w of b){let x=f.getAllRegionsAtLine(w,(I,E)=>I.isCollapsed!==i&&E<=h);v.push(...x)}f.toggleCollapseState(v)}function QI(f,i,h){let b=[];for(let v of h){let w=f.getAllRegionsAtLine(v,(x)=>x.isCollapsed!==i);if(w.length>0)b.push(w[0])}f.toggleCollapseState(b)}function eL(f,i,h,b){let v=(x,I)=>I===i&&x.isCollapsed!==h&&!b.some((E)=>x.containsLine(E)),w=f.getRegionsInside(null,v);f.toggleCollapseState(w)}function sv(f,i,h){let b=[];for(let x of h){let I=f.getAllRegionsAtLine(x,void 0);if(I.length>0)b.push(I[0])}let v=(x)=>b.every((I)=>!I.containedBy(x)&&!x.containedBy(I))&&x.isCollapsed!==i,w=f.getRegionsInside(null,v);f.toggleCollapseState(w)}function wp(f,i,h){let{textModel:b,regions:v}=f,w=[];for(let x=v.length-1;x>=0;x--)if(h!==v.isCollapsed(x)){let I=v.getStartLineNumber(x);if(i.test(b.getLineContent(I)))w.push(v.toRegion(x))}f.toggleCollapseState(w)}function Cp(f,i,h){let b=f.regions,v=[];for(let w=b.length-1;w>=0;w--)if(h!==b.isCollapsed(w)&&i===b.getType(w))v.push(b.toRegion(w));f.toggleCollapseState(v)}function tL(f,i){let h=null,b=i.getRegionAtLine(f);if(b!==null){if(h=b.startLineNumber,f===h){let v=b.parentIndex;if(v!==-1)h=i.regions.getStartLineNumber(v);else h=null}}return h}function iL(f,i){let h=i.getRegionAtLine(f);if(h!==null&&h.startLineNumber===f)if(f!==h.startLineNumber)return h.startLineNumber;else{let b=h.parentIndex,v=0;if(b!==-1)v=i.regions.getStartLineNumber(h.parentIndex);while(h!==null)if(h.regionIndex>0){if(h=i.regions.toRegion(h.regionIndex-1),h.startLineNumber<=v)return null;else if(h.parentIndex===b)return h.startLineNumber}else return null}else if(i.regions.length>0){h=i.regions.toRegion(i.regions.length-1);while(h!==null){if(h.startLineNumber<f)return h.startLineNumber;if(h.regionIndex>0)h=i.regions.toRegion(h.regionIndex-1);else h=null}}return null}function oL(f,i){let h=i.getRegionAtLine(f);if(h!==null&&h.startLineNumber===f){let b=h.parentIndex,v=0;if(b!==-1)v=i.regions.getEndLineNumber(h.parentIndex);else if(i.regions.length===0)return null;else v=i.regions.getEndLineNumber(i.regions.length-1);while(h!==null)if(h.regionIndex<i.regions.length){if(h=i.regions.toRegion(h.regionIndex+1),h.startLineNumber>=v)return null;else if(h.parentIndex===b)return h.startLineNumber}else return null}else if(i.regions.length>0){h=i.regions.toRegion(0);while(h!==null){if(h.startLineNumber>f)return h.startLineNumber;if(h.regionIndex<i.regions.length)h=i.regions.toRegion(h.regionIndex+1);else h=null}}return null}class av{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(f){if(this._updateEventEmitter=new r,this._hasLineChanges=!1,this._foldingModel=f,this._foldingModelListener=f.onDidChange((i)=>this.updateHiddenRanges()),this._hiddenRanges=[],f.regions.length)this.updateHiddenRanges()}notifyChangeModelContent(f){if(this._hiddenRanges.length&&!this._hasLineChanges)this._hasLineChanges=f.changes.some((i)=>i.range.endLineNumber!==i.range.startLineNumber||zs(i.text)[0]!==0)}updateHiddenRanges(){let f=!1,i=[],h=0,b=0,v=Number.MAX_VALUE,w=-1,x=this._foldingModel.regions;for(;h<x.length;h++){if(!x.isCollapsed(h))continue;let I=x.getStartLineNumber(h)+1,E=x.getEndLineNumber(h);if(v<=I&&E<=w)continue;if(!f&&b<this._hiddenRanges.length&&this._hiddenRanges[b].startLineNumber===I&&this._hiddenRanges[b].endLineNumber===E)i.push(this._hiddenRanges[b]),b++;else f=!0,i.push(new t(I,1,E,1));v=I,w=E}if(this._hasLineChanges||f||b<this._hiddenRanges.length)this.applyHiddenRanges(i)}applyHiddenRanges(f){this._hiddenRanges=f,this._hasLineChanges=!1,this._updateEventEmitter.fire(f)}hasRanges(){return this._hiddenRanges.length>0}isHidden(f){return nL(this._hiddenRanges,f)!==null}adjustSelections(f){let i=!1,h=this._foldingModel.textModel,b=null,v=(w)=>{if(!b||!nk(w,b))b=nL(this._hiddenRanges,w);if(b)return b.startLineNumber-1;return null};for(let w=0,x=f.length;w<x;w++){let I=f[w],E=v(I.startLineNumber);if(E)I=I.setStartPosition(E,h.getLineMaxColumn(E)),i=!0;let T=v(I.endLineNumber);if(T)I=I.setEndPosition(T,h.getLineMaxColumn(T)),i=!0;f[w]=I}return i}dispose(){if(this.hiddenRanges.length>0)this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges);if(this._foldingModelListener)this._foldingModelListener.dispose(),this._foldingModelListener=null;this._updateEventEmitter.dispose()}}function nk(f,i){return f>=i.startLineNumber&&f<=i.endLineNumber}function nL(f,i){let h=Wh(f,(b)=>i<b.startLineNumber)-1;if(h>=0&&f[h].endLineNumber>=i)return f[h];return null}var rk=5000,sk="indent";class cl{constructor(f,i,h){this.editorModel=f,this.languageConfigurationService=i,this.foldingRangesLimit=h,this.id=sk}dispose(){}compute(f){let i=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,h=i&&!!i.offSide,b=i&&i.markers;return Promise.resolve(dk(this.editorModel,h,b,this.foldingRangesLimit))}}class rL{constructor(f){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=f}insertFirst(f,i,h){if(f>ll||i>ll)return;let b=this._length;if(this._startIndexes[b]=f,this._endIndexes[b]=i,this._length++,h<1000)this._indentOccurrences[h]=(this._indentOccurrences[h]||0)+1}toIndentRanges(f){let i=this._foldingRangesLimit.limit;if(this._length<=i){this._foldingRangesLimit.update(this._length,!1);let h=new Uint32Array(this._length),b=new Uint32Array(this._length);for(let v=this._length-1,w=0;v>=0;v--,w++)h[w]=this._startIndexes[v],b[w]=this._endIndexes[v];return new Bi(h,b)}else{this._foldingRangesLimit.update(this._length,i);let h=0,b=this._indentOccurrences.length;for(let I=0;I<this._indentOccurrences.length;I++){let E=this._indentOccurrences[I];if(E){if(E+h>i){b=I;break}h+=E}}let v=f.getOptions().tabSize,w=new Uint32Array(i),x=new Uint32Array(i);for(let I=this._length-1,E=0;I>=0;I--){let T=this._startIndexes[I],O=f.getLineContent(T),A=Vf(O,v);if(A<b||A===b&&h++<i)w[E]=T,x[E]=this._endIndexes[I],E++}return new Bi(w,x)}}}var ak={limit:rk,update:()=>{}};function dk(f,i,h,b=ak){let v=f.getOptions().tabSize,w=new rL(b),x=void 0,I=void 0,E=void 0;if(h)if(h.start.flags===h.end.flags)x=new RegExp(`(${h.start.source})|(?:${h.end.source})`,h.start.flags);else I=h.start,E=h.end;let T=[],O=f.getLineCount()+1;T.push({indent:-1,endAbove:O,line:O});for(let A=f.getLineCount();A>0;A--){let Y=f.getLineContent(A),ee=Vf(Y,v),te=T[T.length-1];if(ee===-1){if(i)te.endAbove=A;continue}let oe=!1,ne=!1,re;if(x){if(x.lastIndex=0,re=x.exec(Y))oe=!!re[1],ne=!oe}else{if(I)I.lastIndex=0,oe=I.test(Y);if(!oe&&E)E.lastIndex=0,ne=E.test(Y)}if(oe||ne)if(oe){let he=T.length-1;while(he>0&&T[he].indent!==-2)he--;if(he>0){T.length=he+1,te=T[he],w.insertFirst(A,te.line,ee),te.line=A,te.indent=ee,te.endAbove=A;continue}}else{T.push({indent:-2,endAbove:A,line:A});continue}if(te.indent>ee){do T.pop(),te=T[T.length-1];while(te.indent>ee);let he=te.endAbove-1;if(he-A>=1)w.insertFirst(A,he,ee)}if(te.indent===ee)te.endAbove=A;else T.push({indent:ee,endAbove:A,line:A})}return w.toIndentRanges(f)}var lk=a("editor.foldBackground",{light:me(yc,0.3),dark:me(yc,0.3),hcDark:null,hcLight:null},e(1060,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);a("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},e(1061,"Color of the collapsed text after the first line of a folded range."));a("editorGutter.foldingControlForeground",If,e(1062,"Color of the folding control in the editor gutter."));var rh=At("folding-expanded",y.chevronDown,e(1063,"Icon for expanded ranges in the editor glyph margin.")),sh=At("folding-collapsed",y.chevronRight,e(1064,"Icon for collapsed ranges in the editor glyph margin.")),sL=At("folding-manual-collapsed",sh,e(1065,"Icon for manually collapsed ranges in the editor glyph margin.")),aL=At("folding-manual-expanded",rh,e(1066,"Icon for manually expanded ranges in the editor glyph margin.")),dv={color:an(lk),position:1},hl=e(1067,"Click to expand the range."),yp=e(1068,"Click to collapse the range.");class no{static{this.COLLAPSED_VISUAL_DECORATION=ce.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:hl,firstLineDecorationClassName:J.asClassName(sh)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ce.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:dv,isWholeLine:!0,linesDecorationsTooltip:hl,firstLineDecorationClassName:J.asClassName(sh)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=ce.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:hl,firstLineDecorationClassName:J.asClassName(sL)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ce.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:dv,isWholeLine:!0,linesDecorationsTooltip:hl,firstLineDecorationClassName:J.asClassName(sL)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=ce.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:hl})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=ce.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:dv,isWholeLine:!0,linesDecorationsTooltip:hl})}static{this.EXPANDED_VISUAL_DECORATION=ce.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+J.asClassName(rh),linesDecorationsTooltip:yp})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ce.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:J.asClassName(rh),linesDecorationsTooltip:yp})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=ce.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+J.asClassName(aL),linesDecorationsTooltip:yp})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ce.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:J.asClassName(aL),linesDecorationsTooltip:yp})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=ce.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=ce.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(f){this.editor=f,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(f,i,h){if(i)return no.HIDDEN_RANGE_DECORATION;if(this.showFoldingControls==="never"){if(f)return this.showFoldingHighlights?no.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:no.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;return no.NO_CONTROLS_EXPANDED_RANGE_DECORATION}if(f)return h?this.showFoldingHighlights?no.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:no.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?no.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:no.COLLAPSED_VISUAL_DECORATION;else if(this.showFoldingControls==="mouseover")return h?no.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:no.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;else return h?no.MANUALLY_EXPANDED_VISUAL_DECORATION:no.EXPANDED_VISUAL_DECORATION}changeDecorations(f){return this.editor.changeDecorations(f)}removeDecorations(f){this.editor.removeDecorations(f)}}var ck={},hk="syntax";class ul{constructor(f,i,h,b,v){if(this.editorModel=f,this.providers=i,this.handleFoldingRangesChange=h,this.foldingRangesLimit=b,this.fallbackRangeProvider=v,this.id=hk,this.disposables=new d,v)this.disposables.add(v);for(let w of i)if(typeof w.onDidChange==="function")this.disposables.add(w.onDidChange(h))}compute(f){return uk(this.providers,this.editorModel,f).then((i)=>{if(this.editorModel.isDisposed())return null;if(i)return gk(i,this.foldingRangesLimit);return this.fallbackRangeProvider?.compute(f)??null})}dispose(){this.disposables.dispose()}}function uk(f,i,h){let b=null,v=f.map((w,x)=>Promise.resolve(w.provideFoldingRanges(i,ck,h)).then((I)=>{if(h.isCancellationRequested)return;if(Array.isArray(I)){if(!Array.isArray(b))b=[];let E=i.getLineCount();for(let T of I)if(T.start>0&&T.end>T.start&&T.end<=E)b.push({start:T.start,end:T.end,rank:x,kind:T.kind})}},gt));return Promise.all(v).then((w)=>b)}class dL{constructor(f){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=f}add(f,i,h,b){if(f>ll||i>ll)return;let v=this._length;if(this._startIndexes[v]=f,this._endIndexes[v]=i,this._nestingLevels[v]=b,this._types[v]=h,this._length++,b<30)this._nestingLevelCounts[b]=(this._nestingLevelCounts[b]||0)+1}toIndentRanges(){let f=this._foldingRangesLimit.limit;if(this._length<=f){this._foldingRangesLimit.update(this._length,!1);let i=new Uint32Array(this._length),h=new Uint32Array(this._length);for(let b=0;b<this._length;b++)i[b]=this._startIndexes[b],h[b]=this._endIndexes[b];return new Bi(i,h,this._types)}else{this._foldingRangesLimit.update(this._length,f);let i=0,h=this._nestingLevelCounts.length;for(let x=0;x<this._nestingLevelCounts.length;x++){let I=this._nestingLevelCounts[x];if(I){if(I+i>f){h=x;break}i+=I}}let b=new Uint32Array(f),v=new Uint32Array(f),w=[];for(let x=0,I=0;x<this._length;x++){let E=this._nestingLevels[x];if(E<h||E===h&&i++<f)b[I]=this._startIndexes[x],v[I]=this._endIndexes[x],w[I]=this._types[x],I++}return new Bi(b,v,w)}}}function gk(f,i){let h=f.sort((x,I)=>{let E=x.start-I.start;if(E===0)E=x.rank-I.rank;return E}),b=new dL(i),v=void 0,w=[];for(let x of h)if(!v)v=x,b.add(x.start,x.end,x.kind&&x.kind.value,w.length);else if(x.start>v.start)if(x.end<=v.end)w.push(v),v=x,b.add(x.start,x.end,x.kind&&x.kind.value,w.length);else{if(x.start>v.end){do v=w.pop();while(v&&x.start>v.end);if(v)w.push(v);v=x}b.add(x.start,x.end,x.kind&&x.kind.value,w.length)}return b.toIndentRanges()}var pk=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ah=function(f,i){return function(h,b){i(h,b,f)}},dh,yi=new P("foldingEnabled",!1),Dr=class f extends n{static{dh=this}static{this.ID="editor.contrib.folding"}static get(i){return i.getContribution(dh.ID)}static getFoldingRangeProviders(i,h){let b=i.foldingRangeProvider.ordered(h);return dh._foldingRangeSelector?.(b,h)??b}constructor(i,h,b,v,w,x){super();this.contextKeyService=h,this.languageConfigurationService=b,this.languageFeaturesService=x,this.localToDispose=this._register(new d),this.editor=i,this._foldingLimitReporter=this._register(new xp(i));let I=this.editor.getOptions();this._isEnabled=I.get(52),this._useFoldingProviders=I.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=I.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=I.get(55),this.updateDebounceInfo=w.for(x.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(i),this.foldingDecorationProvider.showFoldingControls=I.get(126),this.foldingDecorationProvider.showFoldingHighlights=I.get(54),this.foldingEnabled=yi.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration((E)=>{if(E.hasChanged(52))this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged();if(E.hasChanged(56))this.onModelChanged();if(E.hasChanged(126)||E.hasChanged(54)){let T=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=T.get(126),this.foldingDecorationProvider.showFoldingHighlights=T.get(54),this.triggerFoldingModelChanged()}if(E.hasChanged(53))this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged();if(E.hasChanged(57))this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57);if(E.hasChanged(55))this._foldingImportsByDefault=this.editor.getOptions().get(55)})),this.onModelChanged()}saveViewState(){let i=this.editor.getModel();if(!i||!this._isEnabled||i.isTooLargeForTokenization())return{};if(this.foldingModel){let h=this.foldingModel.getMemento(),b=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:h,lineCount:i.getLineCount(),provider:b,foldedImports:this._currentModelHasFoldedImports}}return}restoreViewState(i){let h=this.editor.getModel();if(!h||!this._isEnabled||h.isTooLargeForTokenization()||!this.hiddenRangeModel)return;if(!i)return;if(this._currentModelHasFoldedImports=!!i.foldedImports,i.collapsedRegions&&i.collapsedRegions.length>0&&this.foldingModel){this._restoringViewState=!0;try{this.foldingModel.applyMemento(i.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let i=this.editor.getModel();if(!this._isEnabled||!i||i.isTooLargeForTokenization())return;this._currentModelHasFoldedImports=!1,this.foldingModel=new nv(i,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new av(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((h)=>this.onHiddenRangesChanges(h))),this.updateScheduler=new Ii(this.updateDebounceInfo.get(i)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new _e(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent((h)=>this.onDidChangeModelContent(h))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown((h)=>this.onEditorMouseDown(h))),this.localToDispose.add(this.editor.onMouseUp((h)=>this.onEditorMouseUp(h))),this.localToDispose.add({dispose:()=>{if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged()}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(i){if(this.rangeProvider)return this.rangeProvider;let h=new cl(i,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=h,this._useFoldingProviders&&this.foldingModel){let b=dh.getFoldingRangeProviders(this.languageFeaturesService,i);if(b.length>0)this.rangeProvider=new ul(i,b,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,h)}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(i){this.hiddenRangeModel?.notifyChangeModelContent(i),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){if(this.updateScheduler){if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.foldingModelPromise=this.updateScheduler.trigger(()=>{let i=this.foldingModel;if(!i)return null;let h=new en,b=this.getRangeProvider(i.textModel),v=this.foldingRegionPromise=Wt((w)=>b.compute(w));return v.then((w)=>{if(w&&v===this.foldingRegionPromise){let x;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let T=w.setCollapsedAllOfType(Zo.Imports.value,!0);if(T)x=Fo.capture(this.editor),this._currentModelHasFoldedImports=T}let I=this.editor.getSelections();i.update(w,mk(I)),x?.restore(this.editor);let E=this.updateDebounceInfo.update(i.textModel,h.elapsed());if(this.updateScheduler)this.updateScheduler.defaultDelay=E}return i})}).then(void 0,(i)=>(Z(i),null))}}onHiddenRangesChanges(i){if(this.hiddenRangeModel&&i.length&&!this._restoringViewState){let h=this.editor.getSelections();if(h){if(this.hiddenRangeModel.adjustSelections(h))this.editor.setSelections(h)}}this.editor.setHiddenAreas(i,this)}onCursorPositionChanged(){if(this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges())this.cursorChangedScheduler.schedule()}revealCursor(){let i=this.getFoldingModel();if(!i)return;i.then((h)=>{if(h){let b=this.editor.getSelections();if(b&&b.length>0){let v=[];for(let w of b){let x=w.selectionStartLineNumber;if(this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(x))v.push(...h.getAllRegionsAtLine(x,(I)=>I.isCollapsed&&x>I.startLineNumber))}if(v.length)h.toggleCollapseState(v),this.reveal(b[0].getPosition())}}}).then(void 0,Z)}onEditorMouseDown(i){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!i.target||!i.target.range)return;if(!i.event.leftButton&&!i.event.middleButton)return;let h=i.target.range,b=!1;switch(i.target.type){case 4:{let v=i.target.detail,w=i.target.element.offsetLeft;if(v.offsetX-w<4)return;b=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!i.target.detail.isAfterLines)break}return}case 6:{if(this.hiddenRangeModel.hasRanges()){let v=this.editor.getModel();if(v&&h.startColumn===v.getLineMaxColumn(h.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:h.startLineNumber,iconClicked:b}}onEditorMouseUp(i){let h=this.foldingModel;if(!h||!this.mouseDownInfo||!i.target)return;let b=this.mouseDownInfo.lineNumber,v=this.mouseDownInfo.iconClicked,w=i.target.range;if(!w||w.startLineNumber!==b)return;if(v){if(i.target.type!==4)return}else{let I=this.editor.getModel();if(!I||w.startColumn!==I.getLineMaxColumn(b))return}let x=h.getRegionAtLine(b);if(x&&x.startLineNumber===b){let I=x.isCollapsed;if(v||I){let E=i.event.altKey,T=[];if(E){let O=(Y)=>!Y.containedBy(x)&&!x.containedBy(Y),A=h.getRegionsInside(null,O);for(let Y of A)if(Y.isCollapsed)T.push(Y);if(T.length===0)T=A}else{let O=i.event.middleButton||i.event.shiftKey;if(O){for(let A of h.getRegionsInside(x))if(A.isCollapsed===I)T.push(A)}if(I||!O||T.length===0)T.push(x)}h.toggleCollapseState(T),this.reveal({lineNumber:b,column:1})}}}reveal(i){this.editor.revealPositionInCenterIfOutsideViewport(i,0)}};Dr=dh=pk([ah(1,K),ah(2,st),ah(3,bt),ah(4,Ji),ah(5,V)],Dr);class xp extends n{constructor(f){super();this.editor=f,this._onDidChange=this._register(new r),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(f,i){if(f!==this._computed||i!==this._limited)this._computed=f,this._limited=i,this._onDidChange.fire()}}class Li extends U{runEditorCommand(f,i,h){let b=f.get(st),v=Dr.get(i);if(!v)return;let w=v.getFoldingModel();if(w)return this.reportTelemetry(f,i),w.then((x)=>{if(x){this.invoke(v,x,i,h,b);let I=i.getSelection();if(I)v.reveal(I.getStartPosition())}})}getSelectedLines(f){let i=f.getSelections();return i?i.map((h)=>h.startLineNumber):[]}getLineNumbers(f,i){if(f&&f.selectionLines)return f.selectionLines.map((h)=>h+1);return this.getSelectedLines(i)}run(f,i){}}function mk(f){if(!f||f.length===0)return{startsInside:()=>!1};return{startsInside(i,h){for(let b of f){let v=b.startLineNumber;if(v>=i&&v<=h)return!0}return!1}}}function lL(f){if(!zi(f)){if(!Qt(f))return!1;let i=f;if(!zi(i.levels)&&!ps(i.levels))return!1;if(!zi(i.direction)&&!vn(i.direction))return!1;if(!zi(i.selectionLines)&&(!Array.isArray(i.selectionLines)||!i.selectionLines.every(ps)))return!1}return!0}class cL extends Li{constructor(){super({id:"editor.unfold",label:p(1040,"Unfold"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument:
22
- * 'levels': Number of levels to unfold. If not set, defaults to 1.
23
- * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
24
- * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.
25
- `,constraint:lL,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(f,i,h,b){let v=b&&b.levels||1,w=this.getLineNumbers(b,h);if(b&&b.direction==="up")rv(i,!1,v,w);else vd(i,!1,v,w)}}class hL extends Li{constructor(){super({id:"editor.unfoldRecursively",label:p(1041,"Unfold Recursively"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2142),weight:100}})}invoke(f,i,h,b){vd(i,!1,Number.MAX_VALUE,this.getSelectedLines(h))}}class uL extends Li{constructor(){super({id:"editor.fold",label:p(1042,"Fold"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument:
26
- * 'levels': Number of levels to fold.
27
- * 'direction': If 'up', folds given number of levels up otherwise folds down.
28
- * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.
29
- If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
30
- `,constraint:lL,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(f,i,h,b){let v=this.getLineNumbers(b,h),w=b&&b.levels,x=b&&b.direction;if(typeof w!=="number"&&typeof x!=="string")QI(i,!0,v);else if(x==="up")rv(i,!0,w||1,v);else vd(i,!0,w||1,v)}}class gL extends Li{constructor(){super({id:"editor.toggleFold",label:p(1043,"Toggle Fold"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2090),weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);nh(i,1,b)}}class pL extends Li{constructor(){super({id:"editor.foldRecursively",label:p(1044,"Fold Recursively"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2140),weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);vd(i,!0,Number.MAX_VALUE,b)}}class mL extends Li{constructor(){super({id:"editor.toggleFoldRecursively",label:p(1045,"Toggle Fold Recursively"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,3114),weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);nh(i,Number.MAX_VALUE,b)}}class fL extends Li{constructor(){super({id:"editor.foldAllBlockComments",label:p(1046,"Fold All Block Comments"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2138),weight:100}})}invoke(f,i,h,b,v){if(i.regions.hasTypes())Cp(i,Zo.Comment.value,!0);else{let w=h.getModel();if(!w)return;let x=v.getLanguageConfiguration(w.getLanguageId()).comments;if(x&&x.blockCommentStartToken){let I=new RegExp("^\\s*"+Ri(x.blockCommentStartToken));wp(i,I,!0)}}}}class _L extends Li{constructor(){super({id:"editor.foldAllMarkerRegions",label:p(1047,"Fold All Regions"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2077),weight:100}})}invoke(f,i,h,b,v){if(i.regions.hasTypes())Cp(i,Zo.Region.value,!0);else{let w=h.getModel();if(!w)return;let x=v.getLanguageConfiguration(w.getLanguageId()).foldingRules;if(x&&x.markers&&x.markers.start){let I=new RegExp(x.markers.start);wp(i,I,!0)}}}}class bL extends Li{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:p(1048,"Unfold All Regions"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2078),weight:100}})}invoke(f,i,h,b,v){if(i.regions.hasTypes())Cp(i,Zo.Region.value,!1);else{let w=h.getModel();if(!w)return;let x=v.getLanguageConfiguration(w.getLanguageId()).foldingRules;if(x&&x.markers&&x.markers.start){let I=new RegExp(x.markers.start);wp(i,I,!1)}}}}class vL extends Li{constructor(){super({id:"editor.foldAllExcept",label:p(1049,"Fold All Except Selected"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2136),weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);sv(i,!0,b)}}class SL extends Li{constructor(){super({id:"editor.unfoldAllExcept",label:p(1050,"Unfold All Except Selected"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2134),weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);sv(i,!1,b)}}class wL extends Li{constructor(){super({id:"editor.foldAll",label:p(1051,"Fold All"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2069),weight:100}})}invoke(f,i,h){vd(i,!0)}}class CL extends Li{constructor(){super({id:"editor.unfoldAll",label:p(1052,"Unfold All"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2088),weight:100}})}invoke(f,i,h){vd(i,!1)}}class lh extends Li{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=(f)=>lh.ID_PREFIX+f}getFoldingLevel(){return parseInt(this.id.substr(lh.ID_PREFIX.length))}invoke(f,i,h){eL(i,this.getFoldingLevel(),!0,this.getSelectedLines(h))}}class yL extends Li{constructor(){super({id:"editor.gotoParentFold",label:p(1053,"Go to Parent Fold"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);if(b.length>0){let v=tL(b[0],i);if(v!==null)h.setSelection({startLineNumber:v,startColumn:1,endLineNumber:v,endColumn:1})}}}class xL extends Li{constructor(){super({id:"editor.gotoPreviousFold",label:p(1054,"Go to Previous Folding Range"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);if(b.length>0){let v=iL(b[0],i);if(v!==null)h.setSelection({startLineNumber:v,startColumn:1,endLineNumber:v,endColumn:1})}}}class IL extends Li{constructor(){super({id:"editor.gotoNextFold",label:p(1055,"Go to Next Folding Range"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(f,i,h){let b=this.getSelectedLines(h);if(b.length>0){let v=oL(b[0],i);if(v!==null)h.setSelection({startLineNumber:v,startColumn:1,endLineNumber:v,endColumn:1})}}}class LL extends Li{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:p(1056,"Create Folding Range from Selection"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2135),weight:100}})}invoke(f,i,h){let b=[],v=h.getSelections();if(v){for(let w of v){let x=w.endLineNumber;if(w.endColumn===1)--x;if(x>w.startLineNumber)b.push({startLineNumber:w.startLineNumber,endLineNumber:x,type:void 0,isCollapsed:!0,source:1}),h.setSelection({startLineNumber:w.startLineNumber,startColumn:1,endLineNumber:w.startLineNumber,endColumn:1})}if(b.length>0){b.sort((x,I)=>x.startLineNumber-I.startLineNumber);let w=Bi.sanitizeAndMerge(i.regions,b,h.getModel()?.getLineCount());i.updatePost(Bi.fromFoldRanges(w))}}}}class EL extends Li{constructor(){super({id:"editor.removeManualFoldingRanges",label:p(1057,"Remove Manual Folding Ranges"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2137),weight:100}})}invoke(f,i,h){let b=h.getSelections();if(b)i.removeManualRanges(b),f.triggerFoldingModelChanged()}}class DL extends Li{constructor(){super({id:"editor.toggleImportFold",label:p(1058,"Toggle Import Fold"),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}async invoke(f,i){let h=[],b=i.regions;for(let v=b.length-1;v>=0;v--)if(b.getType(v)===Zo.Imports.value)h.push(b.toRegion(v));i.toggleCollapseState(h),f.triggerFoldingModelChanged()}}pe(Dr.ID,Dr,0);N(cL);N(hL);N(uL);N(pL);N(mL);N(wL);N(CL);N(fL);N(_L);N(bL);N(vL);N(SL);N(gL);N(yL);N(xL);N(IL);N(LL);N(EL);N(DL);for(let f=1;f<=7;f++)VR(new lh({id:lh.ID(f),label:p(1059,"Fold Level {0}",f),precondition:yi,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2048|21+f),weight:100}}));ke.registerCommand("_executeFoldingRangeProvider",async function(f,...i){let[h]=i;if(!(h instanceof q))throw lr();let b=f.get(V),v=f.get(_t).getModel(h);if(!v)throw lr();let w=f.get(ie);if(!w.getValue("editor.folding",{resource:h}))return[];let x=f.get(st),I=w.getValue("editor.foldingStrategy",{resource:h}),E={get limit(){return w.getValue("editor.foldingMaximumRegions",{resource:h})},update:(ee,te)=>{}},T=new cl(v,x,E),O=T;if(I!=="indentation"){let ee=Dr.getFoldingRangeProviders(b,v);if(ee.length)O=new ul(v,ee,()=>{},E,T)}let A=await O.compute(be.None),Y=[];try{if(A)for(let ee=0;ee<A.length;ee++){let te=A.getType(ee);Y.push({start:A.getStartLineNumber(ee),end:A.getEndLineNumber(ee),kind:te?Zo.fromValue(te):void 0})}return Y}finally{O.dispose()}});var RL=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ip=function(f,i){return function(h,b){i(h,b,f)}};class lv{constructor(f,i,h){this.marker=f,this.index=i,this.total=h}}var cv=class f{constructor(i,h,b){if(this._markerService=h,this._configService=b,this._onDidChange=new r,this.onDidChange=this._onDidChange.event,this._dispoables=new d,this._markers=[],this._nextIdx=-1,q.isUri(i))this._resourceFilter=(I)=>I.toString()===i.toString();else if(i)this._resourceFilter=i;let v=this._configService.getValue("problems.sortOrder"),w=(I,E)=>{let T=Dh(I.resource.toString(),E.resource.toString());if(T===0)if(v==="position")T=t.compareRangesUsingStarts(I,E)||Zt.compare(I.severity,E.severity);else T=Zt.compare(I.severity,E.severity)||t.compareRangesUsingStarts(I,E);return T},x=()=>{let I=this._markerService.read({resource:q.isUri(i)?i:void 0,severities:Zt.Error|Zt.Warning|Zt.Info});if(typeof i==="function")I=I.filter((E)=>this._resourceFilter(E.resource));if(I.sort(w),et(I,this._markers,(E,T)=>E.resource.toString()===T.resource.toString()&&E.startLineNumber===T.startLineNumber&&E.startColumn===T.startColumn&&E.endLineNumber===T.endLineNumber&&E.endColumn===T.endColumn&&E.severity===T.severity&&E.message===T.message))return!1;return this._markers=I,!0};x(),this._dispoables.add(h.onMarkerChanged((I)=>{if(!this._resourceFilter||I.some((E)=>this._resourceFilter(E))){if(x())this._nextIdx=-1,this._onDidChange.fire()}}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(i){if(!this._resourceFilter&&!i)return!0;if(!this._resourceFilter||!i)return!1;return this._resourceFilter(i)}get selected(){let i=this._markers[this._nextIdx];return i&&new lv(i,this._nextIdx+1,this._markers.length)}_initIdx(i,h,b){let v=this._markers.findIndex((w)=>Qo(w.resource,i.uri));if(v<0){if(v=Ih(this._markers.length,(w)=>Dh(this._markers[w].resource.toString(),i.uri.toString())),v<0)v=~v;if(b)this._nextIdx=v;else this._nextIdx=(this._markers.length+v-1)%this._markers.length}else{let w=!1,x=!1;for(let I=v;I<this._markers.length;I++){let E=t.lift(this._markers[I]);if(E.isEmpty()){let T=i.getWordAtPosition(E.getStartPosition());if(T)E=new t(E.startLineNumber,T.startColumn,E.startLineNumber,T.endColumn)}if(h&&(E.containsPosition(h)||h.isBeforeOrEqual(E.getStartPosition()))){this._nextIdx=I,w=!0,x=!E.containsPosition(h);break}if(this._markers[I].resource.toString()!==i.uri.toString())break}if(!w)this._nextIdx=b?0:this._markers.length-1;else if(x&&!b)this._nextIdx-=1}if(this._nextIdx<0)this._nextIdx=this._markers.length-1}resetIndex(){this._nextIdx=-1}move(i,h,b){if(this._markers.length===0)return!1;let v=this._nextIdx;if(this._nextIdx===-1)this._initIdx(h,b,i);else if(i)this._nextIdx=(this._nextIdx+1)%this._markers.length;else if(!i)this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length;if(v!==this._nextIdx)return!0;return!1}find(i,h){let b=this._markers.findIndex((v)=>v.resource.toString()===i.toString());if(b<0)return;for(;b<this._markers.length;b++)if(t.containsPosition(this._markers[b],h))return new lv(this._markers[b],b+1,this._markers.length);return}};cv=RL([Ip(1,_o),Ip(2,ie)],cv);var uv=Q("IMarkerNavigationService"),hv=class f{constructor(i,h){this._markerService=i,this._configService=h,this._provider=new Rn}getMarkerList(i){for(let h of this._provider){let b=h.getMarkerList(i);if(b)return b}return new cv(i,this._markerService,this._configService)}};hv=RL([Ip(0,_o),Ip(1,ie)],hv);ve(uv,hv,1);var fk=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Rr=function(f,i){return function(h,b){i(h,b,f)}},Zi=class f extends Pl{constructor(i,h,b,v,w,x,I,E,T,O,A,Y,ee,te){super(i,{...v.getRawOptions(),overflowWidgetsDomNode:v.getOverflowWidgetsDomNode()},b,w,x,I,E,T,O,A,Y,ee,te);this._parentEditor=v,this._overwriteOptions=h,super.updateOptions(this._overwriteOptions),this._register(v.onDidChangeConfiguration((oe)=>this._onParentConfigurationChanged(oe)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(i){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(i){wf(this._overwriteOptions,i,!0),super.updateOptions(this._overwriteOptions)}};Zi=fk([Rr(4,D),Rr(5,Ce),Rr(6,Be),Rr(7,K),Rr(8,je),Rr(9,bt),Rr(10,Yt),Rr(11,st),Rr(12,V),Rr(13,vo)],Zi);function Lp(f){let i=f.get(Ce).getFocusedCodeEditor();if(i instanceof Zi)return i.getParentEditor();return i}var kL=new m(new L(0,122,204)),bk={showArrow:!0,showFrame:!0,className:"",frameColor:kL,arrowColor:kL,keepEditorSelection:!1},Vk="vs.editor.contrib.zoneWidget";class TL{constructor(f,i,h,b,v,w,x,I){this.id="",this.domNode=f,this.afterLineNumber=i,this.afterColumn=h,this.heightInLines=b,this.showInHiddenAreas=x,this.ordinal=I,this._onDomNodeTop=v,this._onComputedHeight=w}onDomNodeTop(f){this._onDomNodeTop(f)}onComputedHeight(f){this._onComputedHeight(f)}}class NL{constructor(f,i){this._id=f,this._domNode=i}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class gv{static{this._IdGenerator=new rb(".arrow-decoration-")}constructor(f){this._editor=f,this._ruleName=gv._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),X_(this._ruleName)}set color(f){if(this._color!==f)this._color=f,this._updateStyle()}set height(f){if(this._height!==f)this._height=f,this._updateStyle()}_updateStyle(){X_(this._ruleName),Gg(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(f){if(f.column===1)f={lineNumber:f.lineNumber,column:2};this._decorations.set([{range:t.fromPositions(f),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class pv{constructor(f,i={}){if(this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new d,this.container=null,this._isShowing=!1,this.editor=f,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=ua(i),wf(this.options,bk,!1),this.domNode=document.createElement("div"),!this.options.isAccessible)this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation");this._disposables.add(this.editor.onDidLayoutChange((h)=>{let b=this._getWidth(h);this.domNode.style.width=b+"px",this.domNode.style.left=this._getLeft(h)+"px",this._onWidth(b)}))}dispose(){if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;if(this._viewZone)this.editor.changeViewZones((f)=>{if(this._viewZone)f.removeZone(this._viewZone.id);this._viewZone=null});this._positionMarkerId.clear(),this._disposables.dispose()}create(){if(this.domNode.classList.add("zone-widget"),this.options.className)this.domNode.classList.add(this.options.className);if(this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow)this._arrow=new gv(this.editor),this._disposables.add(this._arrow);this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(f){if(f.frameColor)this.options.frameColor=f.frameColor;if(f.arrowColor)this.options.arrowColor=f.arrowColor;this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let f=this.options.frameColor.toString();this.container.style.borderTopColor=f,this.container.style.borderBottomColor=f}if(this._arrow&&this.options.arrowColor){let f=this.options.arrowColor.toString();this._arrow.color=f}}_getWidth(f){return f.width-f.minimap.minimapWidth-f.verticalScrollbarWidth}_getLeft(f){if(f.minimap.minimapWidth>0&&f.minimap.minimapLeft===0)return f.minimap.minimapWidth;return 0}_onViewZoneTop(f){this.domNode.style.top=f+"px"}_onViewZoneHeight(f){if(this.domNode.style.height=`${f}px`,this.container){let i=f-this._decoratingElementsHeight();this.container.style.height=`${i}px`;let h=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(h))}this._resizeSash?.layout()}get position(){let f=this._positionMarkerId.getRange(0);if(!f)return;return f.getStartPosition()}show(f,i){let h=t.isIRange(f)?t.lift(f):t.fromPositions(f);this._isShowing=!0,this._showImpl(h,i),this._isShowing=!1,this._positionMarkerId.set([{range:h,options:ce.EMPTY}])}hide(){if(this._viewZone)this.editor.changeViewZones((f)=>{if(this._viewZone)f.removeZone(this._viewZone.id)}),this._viewZone=null;if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this._arrow?.hide(),this._positionMarkerId.clear(),this._isSashResizeHeight=!1}_decoratingElementsHeight(){let f=this.editor.getOption(75),i=0;if(this.options.showArrow){let h=Math.round(f/3);i+=2*h}if(this.options.showFrame){let h=this.options.frameWidth??Math.round(f/9);i+=2*h}return i}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*0.8)}_showImpl(f,i){let h=f.getStartPosition(),b=this.editor.getLayoutInfo(),v=this._getWidth(b);this.domNode.style.width=`${v}px`,this.domNode.style.left=this._getLeft(b)+"px";let w=document.createElement("div");w.style.overflow="hidden";let x=this.editor.getOption(75),I=this._getMaximumHeightInLines();if(I!==void 0)i=Math.min(i,I);let E=0,T=0;if(this._arrow&&this.options.showArrow)E=Math.round(x/3),this._arrow.height=E,this._arrow.show(h);if(this.options.showFrame)T=Math.round(x/9);if(this.editor.changeViewZones((Y)=>{if(this._viewZone)Y.removeZone(this._viewZone.id);if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this.domNode.style.top="-1000px",this._viewZone=new TL(w,h.lineNumber,h.column,i,(ee)=>this._onViewZoneTop(ee),(ee)=>this._onViewZoneHeight(ee),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=Y.addZone(this._viewZone),this._overlayWidget=new NL(Vk+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){let Y=this.options.frameWidth?this.options.frameWidth:T;this.container.style.borderTopWidth=Y+"px",this.container.style.borderBottomWidth=Y+"px"}let O=i*x-this._decoratingElementsHeight();if(this.container)this.container.style.top=E+"px",this.container.style.height=O+"px",this.container.style.overflow="hidden";if(this._doLayout(O,v),!this.options.keepEditorSelection)this.editor.setSelection(f);let A=this.editor.getModel();if(A){let Y=A.validateRange(new t(f.startLineNumber,1,f.endLineNumber+1,1));this.revealRange(Y,Y.startLineNumber===A.getLineCount())}}revealRange(f,i){if(i)this.editor.revealLineNearTop(f.endLineNumber,0);else this.editor.revealRange(f,0)}setCssClass(f,i){if(!this.container)return;if(i)this.container.classList.remove(i);this.container.classList.add(f)}_onWidth(f){}_doLayout(f,i){}_relayout(f,i){let h=this._getMaximumHeightInLines(),b=i&&h!==void 0?Math.min(h,f):f;if(this._viewZone&&this._viewZone.heightInLines!==b)this.editor.changeViewZones((v)=>{if(this._viewZone)this._viewZone.heightInLines=b,v.layoutZone(this._viewZone.id)}),this._updateSashEnablement()}_initSash(){if(this._resizeSash)return;if(this._resizeSash=this._disposables.add(new nr(this.domNode,this,{orientation:1})),!this.options.isResizeable)this._resizeSash.state=0;let f;this._disposables.add(this._resizeSash.onDidStart((i)=>{if(this._viewZone)f={startY:i.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()}})),this._disposables.add(this._resizeSash.onDidEnd(()=>{f=void 0})),this._disposables.add(this._resizeSash.onDidChange((i)=>{if(f){let h=(i.currentY-f.startY)/this.editor.getOption(75),b=h<0?Math.ceil(h):Math.floor(h),v=f.heightInLines+b;if(v>f.minLines&&v<f.maxLines)this._isSashResizeHeight=!0,this._relayout(v)}}))}_updateSashEnablement(){if(this._resizeSash){let{minLines:f,maxLines:i}=this._getResizeBounds();this._resizeSash.state=f===i?0:3}}_getResizeBounds(){return{minLines:5,maxLines:35}}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){let f=this.editor.getLayoutInfo();return f.width-f.minimap.minimapWidth}}var OL=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ML=function(f,i){return function(h,b){i(h,b,f)}},mv=Q("IPeekViewService");ve(mv,class{constructor(){this._widgets=new Map}addExclusiveWidget(f,i){let h=this._widgets.get(f);if(h)h.listener.dispose(),h.widget.dispose();let b=()=>{let v=this._widgets.get(f);if(v&&v.widget===i)v.listener.dispose(),this._widgets.delete(f)};this._widgets.set(f,{widget:i,listener:i.onDidClose(b)})}},1);var Ti;(function(f){f.inPeekEditor=new P("inReferenceSearchEditor",!0,e(1382,"Whether the current code editor is embedded inside peek")),f.notInPeekEditor=f.inPeekEditor.toNegated()})(Ti||(Ti={}));var Ep=class f{static{this.ID="editor.contrib.referenceController"}constructor(i,h){if(i instanceof Zi)Ti.inPeekEditor.bindTo(h)}dispose(){}};Ep=OL([ML(1,K)],Ep);pe(Ep.ID,Ep,0);var Kk={headerBackgroundColor:m.white,primaryHeadingColor:m.fromHex("#333333"),secondaryHeadingColor:m.fromHex("#6c6c6cb3")},gl=class f extends pv{constructor(i,h,b){super(i,h);this.instantiationService=b,this._onDidClose=new r,this.onDidClose=this._onDidClose.event,wf(this.options,Kk,!1);let v=rt(this.editor);v.openedPeekWidgets.set(v.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();let i=rt(this.editor);i.openedPeekWidgets.set(i.openedPeekWidgets.get()-1,void 0)}}style(i){let h=this.options;if(i.headerBackgroundColor)h.headerBackgroundColor=i.headerBackgroundColor;if(i.primaryHeadingColor)h.primaryHeadingColor=i.primaryHeadingColor;if(i.secondaryHeadingColor)h.secondaryHeadingColor=i.secondaryHeadingColor;super.style(i)}_applyStyles(){super._applyStyles();let i=this.options;if(this._headElement&&i.headerBackgroundColor)this._headElement.style.backgroundColor=i.headerBackgroundColor.toString();if(this._primaryHeading&&i.primaryHeadingColor)this._primaryHeading.style.color=i.primaryHeadingColor.toString();if(this._secondaryHeading&&i.secondaryHeadingColor)this._secondaryHeading.style.color=i.secondaryHeadingColor.toString();if(this._bodyElement&&i.frameColor)this._bodyElement.style.borderColor=i.frameColor.toString()}_fillContainer(i){this.setCssClass("peekview-widget"),this._headElement=g(".head"),this._bodyElement=g(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),i.appendChild(this._headElement),i.appendChild(this._bodyElement)}_fillHead(i,h){if(this._titleElement=g(".peekview-title"),this.options.supportOnTitleClick)this._titleElement.classList.add("clickable"),wt(this._titleElement,"click",(w)=>this._onTitleClick(w));_(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=g("span.filename"),this._secondaryHeading=g("span.dirname"),this._metaHeading=g("span.meta"),_(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);let b=g(".peekview-actions");_(this._headElement,b);let v=this._getActionBarOptions();if(this._actionbarWidget=new Fi(b,v),this._disposables.add(this._actionbarWidget),!h)this._actionbarWidget.push(this._disposables.add(new cr("peekview.close",e(1383,"Close"),J.asClassName(y.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(i){}_getActionBarOptions(){return{actionViewItemProvider:cb.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(i){}setTitle(i,h){if(this._primaryHeading&&this._secondaryHeading)if(this._primaryHeading.innerText=i,this._primaryHeading.setAttribute("title",i),h)this._secondaryHeading.innerText=h;else on(this._secondaryHeading)}setMetaTitle(i){if(this._metaHeading)if(i)this._metaHeading.innerText=i,wr(this._metaHeading);else er(this._metaHeading)}_doLayout(i,h){if(!this._isShowing&&i<0){this.dispose();return}let b=Math.ceil(this.editor.getOption(75)*1.2),v=Math.round(i-(b+1));this._doLayoutHead(b,h),this._doLayoutBody(v,h)}_doLayoutHead(i,h){if(this._headElement)this._headElement.style.height=`${i}px`,this._headElement.style.lineHeight=this._headElement.style.height}_doLayoutBody(i,h){if(this._bodyElement)this._bodyElement.style.height=`${i}px`}};gl=OL([ML(2,D)],gl);var PL=a("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:m.black,hcLight:m.white},e(1384,"Background color of the peek view title area.")),Dp=a("peekViewTitleLabel.foreground",{dark:m.white,light:m.black,hcDark:m.white,hcLight:ma},e(1385,"Color of the peek view title.")),Rp=a("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},e(1386,"Color of the peek view title info.")),AL=a("peekView.border",{dark:ws,light:ws,hcDark:Pe,hcLight:Pe},e(1387,"Color of the peek view borders and arrow.")),FL=a("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:m.black,hcLight:m.white},e(1388,"Background color of the peek view result list."));a("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:m.white,hcLight:ma},e(1389,"Foreground color for line nodes in the peek view result list."));a("peekViewResult.fileForeground",{dark:m.white,light:"#1E1E1E",hcDark:m.white,hcLight:ma},e(1390,"Foreground color for file nodes in the peek view result list."));a("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},e(1391,"Background color of the selected entry in the peek view result list."));a("peekViewResult.selectionForeground",{dark:m.white,light:"#6C6C6C",hcDark:m.white,hcLight:ma},e(1392,"Foreground color of the selected entry in the peek view result list."));var fv=a("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:m.black,hcLight:m.white},e(1393,"Background color of the peek view editor."));a("peekViewEditorGutter.background",fv,e(1394,"Background color of the gutter in the peek view editor."));a("peekViewEditorStickyScroll.background",fv,e(1395,"Background color of sticky scroll in the peek view editor."));a("peekViewEditorStickyScrollGutter.background",fv,e(1396,"Background color of the gutter part of sticky scroll in the peek view editor."));a("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},e(1397,"Match highlight color in the peek view result list."));a("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},e(1398,"Match highlight color in the peek view editor."));a("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:zt,hcLight:zt},e(1399,"Match highlight border in the peek view editor."));var kp;(function(f){function i(h){switch(h){case nn.Ignore:return"severity-ignore "+J.asClassName(y.info);case nn.Info:return J.asClassName(y.info);case nn.Warning:return J.asClassName(y.warning);case nn.Error:return J.asClassName(y.error);default:return""}}f.className=i})(kp||(kp={}));var Uk=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},pl=function(f,i){return function(h,b){i(h,b,f)}},_v;class VL{constructor(f,i,h,b,v){this._openerService=b,this._labelService=v,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new d,this._editor=i;let w=document.createElement("div");w.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),w.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),w.appendChild(this._relatedBlock),this._disposables.add(wt(this._relatedBlock,"click",(x)=>{x.preventDefault();let I=this._relatedDiagnostics.get(x.target);if(I)h(I)})),this._scrollable=new Kv(w,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),f.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((x)=>{w.style.left=`-${x.scrollLeft}px`,w.style.top=`-${x.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){Fe(this._disposables)}update(f){let{source:i,message:h,relatedInformation:b,code:v}=f,w=(i?.length||0)+2;if(v)if(typeof v==="string")w+=v.length;else w+=v.value.length;let x=li(h);this._lines=x.length,this._longestLineLength=0;for(let A of x)this._longestLineLength=Math.max(A.length+w,this._longestLineLength);on(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(f)),Cr(this.getAriaLabel(f)),this._editor.applyFontInfo(this._messageBlock);let I=this._messageBlock;for(let A of x){if(I=document.createElement("div"),I.innerText=A,A==="")I.style.height=this._messageBlock.style.lineHeight;this._messageBlock.appendChild(I)}if(i||v){let A=document.createElement("span");if(A.classList.add("details"),I.appendChild(A),i){let Y=document.createElement("span");Y.innerText=i,Y.classList.add("source"),A.appendChild(Y)}if(v)if(typeof v==="string"){let Y=document.createElement("span");Y.innerText=`(${v})`,Y.classList.add("code"),A.appendChild(Y)}else{this._codeLink=g("a.code-link"),this._codeLink.setAttribute("href",`${v.target.toString()}`),this._codeLink.onclick=(ee)=>{this._openerService.open(v.target),ee.preventDefault(),ee.stopPropagation()};let Y=_(this._codeLink,g("span"));Y.innerText=v.value,A.appendChild(this._codeLink)}}if(on(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),On(b)){let A=this._relatedBlock.appendChild(document.createElement("div"));A.style.paddingTop=`${Math.floor(this._editor.getOption(75)*0.66)}px`,this._lines+=1;for(let Y of b){let ee=document.createElement("div"),te=document.createElement("a");te.classList.add("filename"),te.innerText=`${this._labelService.getUriBasenameLabel(Y.resource)}(${Y.startLineNumber}, ${Y.startColumn}): `,te.title=this._labelService.getUriLabel(Y.resource),this._relatedDiagnostics.set(te,Y);let oe=document.createElement("span");oe.innerText=Y.message,ee.appendChild(te),ee.appendChild(oe),this._lines+=1,A.appendChild(ee)}}let E=this._editor.getOption(59),T=Math.ceil(E.typicalFullwidthCharacterWidth*this._longestLineLength*0.75),O=E.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:T,scrollHeight:O})}layout(f,i){this._scrollable.getDomNode().style.height=`${f}px`,this._scrollable.getDomNode().style.width=`${i}px`,this._scrollable.setScrollDimensions({width:i,height:f})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(f){let i="";switch(f.severity){case Zt.Error:i=e(1082,"Error");break;case Zt.Warning:i=e(1083,"Warning");break;case Zt.Info:i=e(1084,"Info");break;case Zt.Hint:i=e(1085,"Hint");break}let h=e(1086,"{0}: {1} at {2}. ",i,f.message,f.startLineNumber+":"+f.startColumn),b=this._editor.getModel();if(b&&f.startLineNumber<=b.getLineCount()&&f.startLineNumber>=1)h=`${b.getLineContent(f.startLineNumber)}, ${h}`;return h}}var ml=class f extends gl{static{_v=this}static{this.TitleMenu=new l("gotoErrorTitleMenu")}constructor(i,h,b,v,w,x,I){super(i,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},w);this._themeService=h,this._openerService=b,this._menuService=v,this._contextKeyService=x,this._labelService=I,this._callOnDispose=new d,this._onDidSelectRelatedInformation=new r,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Zt.Warning,this._backgroundColor=m.white,this._applyTheme(h.getColorTheme()),this._callOnDispose.add(h.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(i){this._backgroundColor=i.getColor(Xk);let h=bv,b=Gk;if(this._severity===Zt.Warning)h=Tp,b=qk;else if(this._severity===Zt.Info)h=vv,b=Zk;let v=i.getColor(h),w=i.getColor(b);this.style({arrowColor:v,frameColor:v,headerBackgroundColor:w,primaryHeadingColor:i.getColor(Dp),secondaryHeadingColor:i.getColor(Rp)})}_applyStyles(){if(this._parentContainer)this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():"";super._applyStyles()}dispose(){this._callOnDispose.dispose(),this._onDidSelectRelatedInformation.dispose(),super.dispose()}_fillHead(i){super._fillHead(i),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((v)=>this.editor.focus()));let h=this._menuService.getMenuActions(_v.TitleMenu,this._contextKeyService),b=gI(h);this._actionbarWidget.push(b,{label:!1,icon:!0,index:0})}_fillTitleIcon(i){this._icon=_(i,g(""))}_fillBody(i){this._parentContainer=i,i.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),i.appendChild(this._container),this._message=new VL(this._container,this.editor,(h)=>this._onDidSelectRelatedInformation.fire(h),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw Error("call showAtMarker")}showAtMarker(i,h,b){this._container.classList.remove("stale"),this._message.update(i),this._severity=i.severity,this._applyTheme(this._themeService.getColorTheme());let v=t.lift(i),w=this.editor.getPosition(),x=w&&v.containsPosition(w)?w:v.getStartPosition();super.show(x,this.computeRequiredHeight());let I=this.editor.getModel();if(I){let E=b>1?e(1087,"{0} of {1} problems",h,b):e(1088,"{0} of {1} problem",h,b);this.setTitle(xi(I.uri),E)}this._icon.className=`codicon ${kp.className(Zt.toSeverity(this._severity))}`,this.editor.revealPositionInCenterIfOutsideViewport(x,0),this.editor.focus()}updateMarker(i){this._container.classList.remove("stale"),this._message.update(i)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(i,h){super._doLayoutBody(i,h),this._heightInPixel=i,this._message.layout(i,h),this._container.style.height=`${i}px`}_onWidth(i){this._message.layout(this._heightInPixel,i)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};ml=_v=Uk([pl(1,je),pl(2,Pr),pl(3,wi),pl(4,D),pl(5,K),pl(6,jl)],ml);var HL=Rf(Nf,qR),WL=Rf(ga,Kh),BL=Rf(ws,Gh),bv=a("editorMarkerNavigationError.background",{dark:HL,light:HL,hcDark:Pe,hcLight:Pe},e(1089,"Editor marker navigation widget error color.")),Gk=a("editorMarkerNavigationError.headerBackground",{dark:me(bv,0.1),light:me(bv,0.1),hcDark:null,hcLight:null},e(1090,"Editor marker navigation widget error heading background.")),Tp=a("editorMarkerNavigationWarning.background",{dark:WL,light:WL,hcDark:Pe,hcLight:Pe},e(1091,"Editor marker navigation widget warning color.")),qk=a("editorMarkerNavigationWarning.headerBackground",{dark:me(Tp,0.1),light:me(Tp,0.1),hcDark:"#0C141F",hcLight:me(Tp,0.2)},e(1092,"Editor marker navigation widget warning heading background.")),vv=a("editorMarkerNavigationInfo.background",{dark:BL,light:BL,hcDark:Pe,hcLight:Pe},e(1093,"Editor marker navigation widget info color.")),Zk=a("editorMarkerNavigationInfo.headerBackground",{dark:me(vv,0.1),light:me(vv,0.1),hcDark:null,hcLight:null},e(1094,"Editor marker navigation widget info heading background.")),Xk=a("editorMarkerNavigation.background",Ar,e(1095,"Editor marker navigation widget background."));var Yk=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Np=function(f,i){return function(h,b){i(h,b,f)}},ch,Xs=class f{static{ch=this}static{this.ID="editor.contrib.markerController"}static get(i){return i.getContribution(ch.ID)}constructor(i,h,b,v,w){this._markerNavigationService=h,this._contextKeyService=b,this._editorService=v,this._instantiationService=w,this._sessionDispoables=new d,this._editor=i,this._widgetVisible=KL.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(i){if(this._model&&this._model.matches(i))return this._model;let h=!1;if(this._model)h=!0,this._cleanUp();if(this._model=this._markerNavigationService.getMarkerList(i),h)this._model.move(!0,this._editor.getModel(),this._editor.getPosition());return this._widget=this._instantiationService.createInstance(ml,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((b)=>{if(!this._model?.selected||!t.containsPosition(this._model?.selected.marker,b.position))this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;let b=this._model.find(this._editor.getModel().uri,this._widget.position);if(b)this._widget.updateMarker(b.marker);else this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((b)=>{this._editorService.openCodeEditor({resource:b.resource,options:{pinned:!0,revealIfOpened:!0,selection:t.lift(b).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(i=!0){if(this._cleanUp(),i)this._editor.focus()}showAtMarker(i){if(!this._editor.hasModel())return;let h=this._editor.getModel(),b=this._getOrCreateModel(h.uri);if(b.resetIndex(),b.move(!0,h,new s(i.startLineNumber,i.startColumn)),b.selected)this._widget.showAtMarker(b.selected.marker,b.selected.index,b.selected.total)}async navigate(i,h){if(!this._editor.hasModel())return;let b=this._editor.getModel(),v=this._getOrCreateModel(h?void 0:b.uri);if(v.move(i,b,this._editor.getPosition()),!v.selected)return;if(v.selected.marker.resource.toString()!==b.uri.toString()){this._cleanUp();let w=await this._editorService.openCodeEditor({resource:v.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:v.selected.marker}},this._editor);if(w)ch.get(w)?.close(),ch.get(w)?.navigate(i,h)}else this._widget.showAtMarker(v.selected.marker,v.selected.index,v.selected.total)}};Xs=ch=Yk([Np(1,uv),Np(2,K),Np(3,Ce),Np(4,D)],Xs);class hh extends U{constructor(f,i,h){super(h);this._next=f,this._multiFile=i}async run(f,i){if(i.hasModel())await Xs.get(i)?.navigate(this._next,this._multiFile)}}class as extends hh{static{this.ID="editor.action.marker.next"}static{this.LABEL=p(1078,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:as.ID,label:as.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:578,weight:100},menuOpts:{menuId:ml.TitleMenu,title:as.LABEL.value,icon:At("marker-navigation-next",y.arrowDown,e(1074,"Icon for goto next marker.")),group:"navigation",order:1}})}}class Sd extends hh{static{this.ID="editor.action.marker.prev"}static{this.LABEL=p(1079,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:Sd.ID,label:Sd.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1602,weight:100},menuOpts:{menuId:ml.TitleMenu,title:Sd.LABEL.value,icon:At("marker-navigation-previous",y.arrowUp,e(1075,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class uh extends hh{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:uh.ID,label:p(1080,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:66,weight:100},menuOpts:{menuId:l.MenubarGoMenu,title:e(1076,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class gh extends hh{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:gh.ID,label:p(1081,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1090,weight:100},menuOpts:{menuId:l.MenubarGoMenu,title:e(1077,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}pe(Xs.ID,Xs,4);N(as);N(Sd);N(uh);N(gh);var KL=new P("markersNavigationVisible",!1),Jk=Kt.bindToContribution(Xs.get);G(new Jk({id:"closeMarkersNavigation",precondition:KL,handler:(f)=>f.close(),kbOpts:{weight:150,kbExpr:o.focus,primary:9,secondary:[1033]}}));class Sv{constructor(f){this.options=f,this.rangeHighlightDecorationId=void 0}provide(f,i,h){let b=new d;f.canAcceptInBackground=!!this.options?.canAcceptInBackground,f.matchOnLabel=f.matchOnDescription=f.matchOnDetail=f.sortByLabel=!1;let v=b.add(new le);return v.value=this.doProvide(f,i,h),b.add(this.onDidActiveTextEditorControlChange(()=>{v.value=void 0,v.value=this.doProvide(f,i)})),b}doProvide(f,i,h){let b=new d,v=this.activeTextEditorControl;if(v&&this.canProvideWithTextEditor(v)){let w={editor:v},x=F0(v);if(x){let I=v.saveViewState()??void 0;b.add(x.onDidChangeCursorPosition(()=>{I=v.saveViewState()??void 0})),w.restoreViewState=()=>{if(I&&v===this.activeTextEditorControl)v.restoreViewState(I)},b.add(ms(i.onCancellationRequested)(()=>w.restoreViewState?.()))}b.add(R(()=>this.clearDecorations(v))),b.add(this.provideWithTextEditor(w,f,i,h))}else b.add(this.provideWithoutTextEditor(f,i));return b}canProvideWithTextEditor(f){return!0}gotoLocation({editor:f},i){if(f.setSelection(i.range,"code.jump"),f.revealRangeInCenter(i.range,0),!i.preserveFocus)f.focus();let h=this.getModel(f);if(h){let b=h.getLineContent(i.range.startLineNumber);Cr(e(1401,"Line {0}, column {1}: {2}",i.range.startLineNumber,i.range.startColumn,b))}}getModel(f){return fb(f)?f.getModel()?.modified:f.getModel()}addDecorations(f,i){f.changeDecorations((h)=>{let b=[];if(this.rangeHighlightDecorationId)b.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),b.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0;let v=[{range:i,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:i,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:an(a0),position:Or.Full}}}],[w,x]=h.deltaDecorations(b,v);this.rangeHighlightDecorationId={rangeHighlightId:w,overviewRulerDecorationId:x}})}clearDecorations(f){let i=this.rangeHighlightDecorationId;if(i)f.changeDecorations((h)=>{h.deltaDecorations([i.overviewRulerDecorationId,i.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0}}class fl extends Sv{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(fl.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(f){this.storageService.store(fl.ZERO_BASED_OFFSET_STORAGE_KEY,f,-1,0)}provideWithoutTextEditor(f){let i=e(1402,"Open a text editor first to go to a line or an offset.");return f.items=[{label:i}],f.ariaLabel=i,n.None}provideWithTextEditor(f,i,h){let b=f.editor,v=new d;i.ariaLabel=e(1403,"Go to line. Type a line number, optionally followed by colon and column number."),v.add(i.onDidAccept((E)=>{let[T]=i.selectedItems;if(T){if(!T.lineNumber)return;if(this.gotoLocation(f,{range:this.toRange(T.lineNumber,T.column),keyMods:i.keyMods,preserveFocus:E.inBackground}),!E.inBackground)i.hide()}}));let w={iconClass:J.asClassName(y.indexZero),tooltip:e(1404,"Toggle Zero-Based Offset"),location:Uf.Input,toggle:{checked:this.useZeroBasedOffset}},x=()=>{let E=i.value.trim().substring(fl.GO_TO_LINE_PREFIX.length),{inOffsetMode:T,lineNumber:O,column:A,label:Y}=this.parsePosition(b,E);if(i.buttons=T?[w]:[],i.items=[{lineNumber:O,column:A,label:Y,ariaLabel:O?e(1405,"Go to line {0}, column {1}. Press Enter to navigate.",O,A||1):Y}],!O){this.clearDecorations(b);return}let ee=this.toRange(O,A);b.revealRangeInCenter(ee,0),this.addDecorations(b,ee)};v.add(i.onDidTriggerButton((E)=>{if(E===w)this.useZeroBasedOffset=E.toggle?.checked??!this.useZeroBasedOffset,x()})),x(),v.add(i.onDidChangeValue(()=>x()));let I=F0(b);if(I){if(I.getOptions().get(76).renderType===2)I.updateOptions({lineNumbers:"on"}),v.add(R(()=>I.updateOptions({lineNumbers:"relative"})))}return v}toRange(f=1,i=1){return{startLineNumber:f,startColumn:i,endLineNumber:f,endColumn:i}}parsePosition(f,i){let h=this.getModel(f);if(!h)return{label:e(1406,"Open a text editor first to go to a line or an offset.")};if(i.startsWith(":")){let b=parseInt(i.substring(1),10),v=h.getValueLength();if(isNaN(b))return{inOffsetMode:!0,label:this.useZeroBasedOffset?e(1407,"Type a character position to go to (from 0 to {0}).",v-1):e(1408,"Type a character position to go to (from 1 to {0}).",v)};else{let w=b<0;if(!this.useZeroBasedOffset)b-=Math.sign(b);if(w)b+=v;let x=h.getPositionAt(b),I=Ct.visibleColumnFromColumn(h.getLineContent(x.lineNumber),x.column,h.getOptions().tabSize)+1;return{...x,inOffsetMode:!0,label:e(1409,"Press 'Enter' to go to line {0} at column {1}.",x.lineNumber,I)}}}else{let b=i.split(/,|:|#/),v=h.getLineCount(),w=parseInt(b[0]?.trim(),10);if(b.length<1||isNaN(w))return{label:e(1410,"Type a line number to go to (from 1 to {0}).",v)};w=w>=0?w:v+1+w,w=Math.min(Math.max(1,w),v);let x=h.getOptions().tabSize,I=h.getLineContent(w),E=Ct.visibleColumnFromColumn(I,h.getLineMaxColumn(w),x)+1,T=parseInt(b[1]?.trim(),10);if(b.length<2||isNaN(T))return{lineNumber:w,column:1,label:b.length<2?e(1411,"Press 'Enter' to go to line {0} or enter colon : to add a column number.",w):e(1412,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",w,E)};T=T>=0?T:E+T,T=Math.min(Math.max(1,T),E);let O=Ct.columnFromVisibleColumn(I,T-1,x);return{lineNumber:w,column:O,label:e(1413,"Press 'Enter' to go to line {0} at column {1}.",w,T)}}}}var Qk=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},zL=function(f,i){return function(h,b){i(h,b,f)}},Ys=class f extends fl{constructor(i,h){super();this.editorService=i,this.storageService=h,this.onDidActiveTextEditorControlChange=k.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};Ys=Qk([zL(0,Ce),zL(1,Tn)],Ys);class Op extends U{static{this.ID="editor.action.gotoLine"}constructor(){super({id:Op.ID,label:Yf.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2085,mac:{primary:293},weight:100}})}run(f){f.get(gn).quickAccess.show(Ys.GO_TO_LINE_PREFIX)}}N(Op);lt.as(Gs.Quickaccess).registerQuickAccessProvider({ctor:Ys,prefix:Ys.GO_TO_LINE_PREFIX,helpEntries:[{description:Yf.gotoLineActionLabel,commandId:Op.ID}]});class Mp extends U{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:Mp.ID,label:Yf.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(f){f.get(gn).quickAccess.show(Ys.GO_TO_OFFSET_PREFIX)}}N(Mp);lt.as(Gs.Quickaccess).registerQuickAccessProvider({ctor:Ys,prefix:Ys.GO_TO_OFFSET_PREFIX,helpEntries:[{description:Yf.gotoOffsetActionLabel,commandId:Mp.ID}]});var eT=a("editorOverviewRuler.bracketMatchForeground","#A0A0A0",e(855,"Overview ruler marker color for matching brackets."));class UL extends U{constructor(){super({id:"editor.action.jumpToBracket",label:p(857,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:3165,weight:100}})}run(f,i){ds.get(i)?.jumpToBracket()}}class $L extends U{constructor(){super({id:"editor.action.selectToBracket",label:p(858,"Select to Bracket"),precondition:void 0,metadata:{description:p(859,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(f,i,h){let b=!0;if(h&&h.selectBrackets===!1)b=!1;ds.get(i)?.selectToBracket(b)}}class jL extends U{constructor(){super({id:"editor.action.removeBrackets",label:p(860,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(f,i){ds.get(i)?.removeBrackets(this.id)}}class GL{constructor(f,i,h){this.position=f,this.brackets=i,this.options=h}}class ds extends n{static{this.ID="editor.contrib.bracketMatchingController"}static get(f){return f.getContribution(ds.ID)}constructor(f){super();this._editor=f,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new _e(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(f.onDidChangeCursorPosition((i)=>{if(this._matchBrackets==="never")return;this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeModelContent((i)=>{this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeModel((i)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeModelLanguageConfiguration((i)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(f.onDidChangeConfiguration((i)=>{if(i.hasChanged(80))this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule()})),this._register(f.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(f.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let f=this._editor.getModel(),i=this._editor.getSelections().map((h)=>{let b=h.getStartPosition(),v=f.bracketPairs.matchBracket(b),w=null;if(v){if(v[0].containsPosition(b)&&!v[1].containsPosition(b))w=v[1].getStartPosition();else if(v[1].containsPosition(b))w=v[0].getStartPosition()}else{let x=f.bracketPairs.findEnclosingBrackets(b);if(x)w=x[1].getStartPosition();else{let I=f.bracketPairs.findNextBracket(b);if(I&&I.range)w=I.range.getStartPosition()}}if(w)return new F(w.lineNumber,w.column,w.lineNumber,w.column);return new F(b.lineNumber,b.column,b.lineNumber,b.column)});this._editor.setSelections(i),this._editor.revealRange(i[0])}selectToBracket(f){if(!this._editor.hasModel())return;let i=this._editor.getModel(),h=[];if(this._editor.getSelections().forEach((b)=>{let v=b.getStartPosition(),w=i.bracketPairs.matchBracket(v);if(!w){if(w=i.bracketPairs.findEnclosingBrackets(v),!w){let E=i.bracketPairs.findNextBracket(v);if(E&&E.range)w=i.bracketPairs.matchBracket(E.range.getStartPosition())}}let x=null,I=null;if(w){w.sort(t.compareRangesUsingStarts);let[E,T]=w;if(x=f?E.getStartPosition():E.getEndPosition(),I=f?T.getEndPosition():T.getStartPosition(),T.containsPosition(v)){let O=x;x=I,I=O}}if(x&&I)h.push(new F(x.lineNumber,x.column,I.lineNumber,I.column))}),h.length>0)this._editor.setSelections(h),this._editor.revealRange(h[0])}removeBrackets(f){if(!this._editor.hasModel())return;let i=this._editor.getModel();this._editor.getSelections().forEach((h)=>{let b=h.getPosition(),v=i.bracketPairs.matchBracket(b);if(!v)v=i.bracketPairs.findEnclosingBrackets(b);if(v)this._editor.pushUndoStop(),this._editor.executeEdits(f,[{range:v[0],text:""},{range:v[1],text:""}]),this._editor.pushUndoStop()})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=ce.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:an(eT),position:Or.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=ce.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();let f=[],i=0;for(let h of this._lastBracketsData){let b=h.brackets;if(b)f[i++]={range:b[0],options:h.options},f[i++]={range:b[1],options:h.options}}this._decorations.set(f)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let f=this._editor.getSelections();if(f.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let i=this._editor.getModel(),h=i.getVersionId(),b=[];if(this._lastVersionId===h)b=this._lastBracketsData;let v=[],w=0;for(let O=0,A=f.length;O<A;O++){let Y=f[O];if(Y.isEmpty())v[w++]=Y.getStartPosition()}if(v.length>1)v.sort(s.compare);let x=[],I=0,E=0,T=b.length;for(let O=0,A=v.length;O<A;O++){let Y=v[O];while(E<T&&b[E].position.isBefore(Y))E++;if(E<T&&b[E].position.equals(Y))x[I++]=b[E];else{let ee=i.bracketPairs.matchBracket(Y,20),te=ds._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;if(!ee&&this._matchBrackets==="always")ee=i.bracketPairs.findEnclosingBrackets(Y,20),te=ds._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;x[I++]=new GL(Y,ee,te)}}this._lastBracketsData=x,this._lastVersionId=h}}pe(ds.ID,ds,1);N($L);N(UL);N(jL);Pn.appendMenuItem(l.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:e(856,"Go to &&Bracket")},order:2});hi((f,i)=>{let h=f.getColor(iI);if(h)i.addRule(`.monaco-editor .bracket-match-inline { color: ${h} !important; }`)});var Lt=new class{constructor(){this.QuickFix=new Pt("quickfix"),this.Refactor=new Pt("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 Pt("notebook"),this.Source=new Pt("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}},Pi;(function(f){f.Refactor="refactor",f.RefactorPreview="refactor preview",f.Lightbulb="lightbulb",f.Default="other (default)",f.SourceAction="source action",f.QuickFix="quick fix action",f.FixAll="fix all",f.OrganizeImports="organize imports",f.AutoFix="auto fix",f.QuickFixHover="quick fix hover window",f.OnSave="save participants",f.ProblemsView="problems view"})(Pi||(Pi={}));function qL(f,i){if(f.include&&!f.include.intersects(i))return!1;if(f.excludes){if(f.excludes.some((h)=>XL(i,h,f.include)))return!1}if(!f.includeSourceActions&&Lt.Source.contains(i))return!1;return!0}function ZL(f,i){let h=i.kind?new Pt(i.kind):void 0;if(f.include){if(!h||!f.include.contains(h))return!1}if(f.excludes){if(h&&f.excludes.some((b)=>XL(h,b,f.include)))return!1}if(!f.includeSourceActions){if(h&&Lt.Source.contains(h))return!1}if(f.onlyIncludePreferredActions){if(!i.isPreferred)return!1}return!0}function XL(f,i,h){if(!i.contains(f))return!1;if(h&&i.contains(h))return!1;return!0}class jo{static fromUser(f,i){if(!f||typeof f!=="object")return new jo(i.kind,i.apply,!1);return new jo(jo.getKindFromUser(f,i.kind),jo.getApplyFromUser(f,i.apply),jo.getPreferredUser(f))}static getApplyFromUser(f,i){switch(typeof f.apply==="string"?f.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return i}}static getKindFromUser(f,i){return typeof f.kind==="string"?new Pt(f.kind):i}static getPreferredUser(f){return typeof f.preferred==="boolean"?f.preferred:!1}constructor(f,i,h){this.kind=f,this.apply=i,this.preferred=h}}class wv{constructor(f,i,h){this.action=f,this.provider=i,this.highlightRange=h}async resolve(f){if(this.provider?.resolveCodeAction&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,f)}catch(h){gt(h)}if(i)this.action.edit=i.edit}return this}}var Pp="editor.action.codeAction",Js="editor.action.quickFix",bl="editor.action.autoFix",Ap="editor.action.refactor",Fp="editor.action.sourceAction",mh="editor.action.organizeImports",fh="editor.action.fixAll",tT=1000;class ph extends n{static codeActionsPreferredComparator(f,i){if(f.isPreferred&&!i.isPreferred)return-1;else if(!f.isPreferred&&i.isPreferred)return 1;else return 0}static codeActionsComparator({action:f},{action:i}){if(f.isAI&&!i.isAI)return 1;else if(!f.isAI&&i.isAI)return-1;if(On(f.diagnostics))return On(i.diagnostics)?ph.codeActionsPreferredComparator(f,i):-1;else if(On(i.diagnostics))return 1;else return ph.codeActionsPreferredComparator(f,i)}constructor(f,i,h){super();this.documentation=i,this._register(h),this.allActions=[...f].sort(ph.codeActionsComparator),this.validActions=this.allActions.filter(({action:b})=>!b.disabled)}get hasAutoFix(){return this.validActions.some(({action:f})=>!!f.kind&&Lt.QuickFix.contains(new Pt(f.kind))&&!!f.isPreferred)}get hasAIFix(){return this.validActions.some(({action:f})=>!!f.isAI)}get allAIFixes(){return this.validActions.every(({action:f})=>!!f.isAI)}}var YL={actions:[],documentation:void 0};async function Qs(f,i,h,b,v,w){let x=b.filter||{},I={...x,excludes:[...x.excludes||[],Lt.Notebook]},E={only:x.include?.value,trigger:b.type},T=new mb(i,w),O=b.type===2,A=iT(f,i,O?I:x),Y=new d,ee=A.map(async(oe)=>{let ne=setTimeout(()=>v.report(oe),1250);try{let re=await oe.provideCodeActions(i,h,E,T.token);if(T.token.isCancellationRequested)return re?.dispose(),YL;if(re)Y.add(re);let he=(re?.actions||[]).filter((Ie)=>Ie&&ZL(x,Ie)),ue=nT(oe,he,x.include);return{actions:he.map((Ie)=>new wv(Ie,oe)),documentation:ue}}catch(re){if(ei(re))throw re;return gt(re),YL}finally{clearTimeout(ne)}}),te=f.onDidChange(()=>{let oe=f.all(i);if(!et(oe,A))T.cancel()});try{let oe=await Promise.all(ee),ne=oe.map((ue)=>ue.actions).flat(),re=[...ar(oe.map((ue)=>ue.documentation)),...oT(f,i,b,ne)],he=new ph(ne,re,Y);return Y.add(he),he}catch(oe){throw Y.dispose(),oe}finally{te.dispose(),T.dispose()}}function iT(f,i,h){return f.all(i).filter((b)=>{if(!b.providedCodeActionKinds)return!0;return b.providedCodeActionKinds.some((v)=>qL(h,new Pt(v)))})}function*oT(f,i,h,b){if(i&&b.length){for(let v of f.all(i))if(v._getAdditionalMenuItems)yield*v._getAdditionalMenuItems?.({trigger:h.type,only:h.filter?.include?.value},b.map((w)=>w.action))}}function nT(f,i,h){if(!f.documentation)return;let b=f.documentation.map((v)=>({kind:new Pt(v.kind),command:v.command}));if(h){let v;for(let w of b)if(w.kind.contains(h)){if(!v)v=w;else if(v.kind.contains(w.kind))v=w}if(v)return v?.command}for(let v of i){if(!v.kind)continue;for(let w of b)if(w.kind.contains(new Pt(v.kind)))return w.command}return}var Tr;(function(f){f.OnSave="onSave",f.FromProblemsView="fromProblemsView",f.FromCodeActions="fromCodeActions",f.FromAILightbulb="fromAILightbulb",f.FromProblemsHover="fromProblemsHover"})(Tr||(Tr={}));async function JL(f,i,h,b,v=be.None){let w=f.get(Bl),x=f.get(Be),I=f.get(In),E=f.get(bt),T=f.get(rs);if(I.publicLog2("codeAction.applyCodeAction",{codeActionTitle:i.action.title,codeActionKind:i.action.kind,codeActionIsPreferred:!!i.action.isPreferred,reason:h}),T.playSignal(Xe.codeActionTriggered),await i.resolve(v),v.isCancellationRequested)return;if(i.action.edit?.edits.length){if(!(await w.apply(i.action.edit,{editor:b?.editor,label:i.action.title,quotableLabel:i.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:h!==Tr.OnSave,showPreview:b?.preview,reason:Mn.codeAction({kind:i.action.kind,providerId:Pg.fromExtensionId(i.provider?.extensionId)})})).isApplied)return}if(i.action.command)try{await x.executeCommand(i.action.command.id,...i.action.command.arguments||[])}catch(O){let A=rT(O);E.error(typeof A==="string"?A:e(881,"An unknown error occurred while applying the code action"))}setTimeout(()=>T.playSignal(Xe.codeActionApplied),tT)}function rT(f){if(typeof f==="string")return f;else if(f instanceof Error&&typeof f.message==="string")return f.message;else return}ke.registerCommand("_executeCodeActionProvider",async function(f,i,h,b,v){if(!(i instanceof q))throw lr();let{codeActionProvider:w}=f.get(V),x=f.get(_t).getModel(i);if(!x)throw lr();let I=F.isISelection(h)?F.liftSelection(h):t.isIRange(h)?x.validateRange(h):void 0;if(!I)throw lr();let E=typeof b==="string"?new Pt(b):void 0,T=await Qs(w,x,I,{type:1,triggerAction:Pi.Default,filter:{includeSourceActions:!0,include:E}},ya.None,be.None),O=[],A=Math.min(T.validActions.length,typeof v==="number"?v:0);for(let Y=0;Y<A;Y++)O.push(T.validActions[Y].resolve(be.None));try{return await Promise.all(O),T.validActions.map((Y)=>Y.action)}finally{setTimeout(()=>T.dispose(),100)}});var sT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},aT=function(f,i){return function(h,b){i(h,b,f)}},yv,Hp=class f{static{yv=this}static{this.codeActionCommands=[Ap,Pp,Fp,mh,fh]}constructor(i){this.keybindingService=i}getResolver(){let i=new Vn(()=>this.keybindingService.getKeybindings().filter((h)=>yv.codeActionCommands.indexOf(h.command)>=0).filter((h)=>h.resolvedKeybinding).map((h)=>{let b=h.commandArgs;if(h.command===mh)b={kind:Lt.SourceOrganizeImports.value};else if(h.command===fh)b={kind:Lt.SourceFixAll.value};return{resolvedKeybinding:h.resolvedKeybinding,...jo.fromUser(b,{kind:Pt.None,apply:"never"})}}));return(h)=>{if(h.kind)return this.bestKeybindingForCodeAction(h,i.value)?.resolvedKeybinding;return}}bestKeybindingForCodeAction(i,h){if(!i.kind)return;let b=new Pt(i.kind);return h.filter((v)=>v.kind.contains(b)).filter((v)=>{if(v.preferred)return i.isPreferred;return!0}).reduceRight((v,w)=>{if(!v)return w;return v.kind.contains(w.kind)?w:v},void 0)}};Hp=yv=sT([aT(0,fe)],Hp);a("symbolIcon.arrayForeground",De,e(1569,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.booleanForeground",De,e(1570,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1571,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.colorForeground",De,e(1572,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.constantForeground",De,e(1573,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1574,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1575,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1576,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1577,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1578,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.fileForeground",De,e(1579,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.folderForeground",De,e(1580,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1581,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1582,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.keyForeground",De,e(1583,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.keywordForeground",De,e(1584,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1585,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.moduleForeground",De,e(1586,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.namespaceForeground",De,e(1587,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.nullForeground",De,e(1588,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.numberForeground",De,e(1589,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.objectForeground",De,e(1590,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.operatorForeground",De,e(1591,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.packageForeground",De,e(1592,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.propertyForeground",De,e(1593,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.referenceForeground",De,e(1594,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.snippetForeground",De,e(1595,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.stringForeground",De,e(1596,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.structForeground",De,e(1597,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.textForeground",De,e(1598,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.typeParameterForeground",De,e(1599,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.unitForeground",De,e(1600,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));a("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1601,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));var QL=Object.freeze({kind:Pt.Empty,title:e(917,"More Actions...")}),dT=Object.freeze([{kind:Lt.QuickFix,title:e(918,"Quick Fix")},{kind:Lt.RefactorExtract,title:e(919,"Extract"),icon:y.wrench},{kind:Lt.RefactorInline,title:e(920,"Inline"),icon:y.wrench},{kind:Lt.RefactorRewrite,title:e(921,"Rewrite"),icon:y.wrench},{kind:Lt.RefactorMove,title:e(922,"Move"),icon:y.wrench},{kind:Lt.SurroundWith,title:e(923,"Surround With"),icon:y.surroundWith},{kind:Lt.Source,title:e(924,"Source Action"),icon:y.symbolFile},QL]);function eE(f,i,h){if(!i)return f.map((w)=>({kind:"action",item:w,group:QL,disabled:!!w.action.disabled,label:w.action.disabled||w.action.title,canPreview:!!w.action.edit?.edits.length}));let b=dT.map((w)=>({group:w,actions:[]}));for(let w of f){let x=w.action.kind?new Pt(w.action.kind):Pt.None;for(let I of b)if(I.group.kind.contains(x)){I.actions.push(w);break}}let v=[];for(let w of b)if(w.actions.length){v.push({kind:"header",group:w.group});for(let x of w.actions){let I=w.group;v.push({kind:"action",item:x,group:x.action.isAI?{title:I.title,kind:I.kind,icon:y.sparkle}:I,label:x.action.title,disabled:!!x.action.disabled,keybinding:h(x.action)})}}return v}var xv=new P("supportedCodeAction",""),tE="_typescript.applyFixAllCodeAction";class iE extends n{constructor(f,i,h,b=250){super();this._editor=f,this._markerService=i,this._signalChange=h,this._delay=b,this._autoTriggerTimer=this._register(new Yn),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged((v)=>this._onMarkerChanges(v))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(f){let i=this._getRangeOfSelectionUnlessWhitespaceEnclosed(f);this._signalChange(i?{trigger:f,selection:i}:void 0)}_onMarkerChanges(f){let i=this._editor.getModel();if(i&&f.some((h)=>Qo(h,i.uri)))this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:Pi.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(f){if(!this._editor.hasModel())return;let i=this._editor.getSelection();if(f.type===1)return i;let h=this._editor.getOption(73).enabled;if(h===gs.Off&&!this.ignoreLightbulbOff)return;else if(h===gs.Off||h===gs.On)return i;else if(h===gs.OnCode){if(!i.isEmpty())return i;let v=this._editor.getModel(),{lineNumber:w,column:x}=i.getPosition(),I=v.getLineContent(w);if(I.length===0)return;else if(x===1){if(/\s/.test(I[0]))return}else if(x===v.getLineMaxColumn(w)){if(/\s/.test(I[I.length-1]))return}else if(/\s/.test(I[x-2])&&/\s/.test(I[x-1]))return}return i}}var wd;(function(f){f.Empty={type:0};class i{constructor(h,b,v){this.trigger=h,this.position=b,this._cancellablePromise=v,this.type=1,this.actions=v.catch((w)=>{if(ei(w))return _h;throw w})}cancel(){this._cancellablePromise.cancel()}}f.Triggered=i})(wd||(wd={}));var _h=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class Iv extends n{constructor(f,i,h,b,v,w){super();this._editor=f,this._registry=i,this._markerService=h,this._progressService=v,this._configurationService=w,this._codeActionOracle=this._register(new le),this._state=wd.Empty,this._onDidChangeState=this._register(new r),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new le),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=xv.bindTo(b),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((x)=>{if(x.hasChanged(73))this._update()})),this._update()}dispose(){if(this._disposed)return;this._disposed=!0,super.dispose(),this.setState(wd.Empty,!0)}_settingEnabledNearbyQuickfixes(){let f=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:f?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(wd.Empty),this.codeActionsDisposable.clear();let f=this._editor.getModel();if(f&&this._registry.has(f)&&!this._editor.getOption(104)){let i=this._registry.all(f).flatMap((b)=>b.providedCodeActionKinds??[]);this._supportedCodeActions.set(i.join(" "));let h=new iE(this._editor,this._markerService,(b)=>{if(!b){this.setState(wd.Empty);return}let v=b.selection.getStartPosition(),w=Wt(async(E)=>{if(this._settingEnabledNearbyQuickfixes()&&b.trigger.type===1&&(b.trigger.triggerAction===Pi.QuickFix||b.trigger.filter?.include?.contains(Lt.QuickFix))){let O=new d,A=!1;try{let Y=O.add(await Qs(this._registry,f,b.selection,b.trigger,ya.None,E)),ee=[...Y.allActions];if(E.isCancellationRequested)return _h;let te=Y.validActions?.some((ne)=>ne.action.kind&&Lt.QuickFix.contains(new Pt(ne.action.kind))&&!ne.action.isAI),oe=this._markerService.read({resource:f.uri});if(te){for(let re of Y.validActions)if(re.action.command?.arguments?.some((he)=>typeof he==="string"&&he.includes(tE)))re.action.diagnostics=[...oe.filter((he)=>he.relatedInformation)];let ne=this._setCodeActions({validActions:Y.validActions,allActions:ee,documentation:Y.documentation,hasAutoFix:Y.hasAutoFix,hasAIFix:Y.hasAIFix,allAIFixes:Y.allAIFixes,dispose:()=>O.dispose()});return A=!0,ne}else if(!te){if(oe.length>0){let ne=b.selection.getPosition(),re=ne,he=Number.MAX_VALUE,ue=[...Y.validActions];for(let ae of oe){let{endColumn:xe,endLineNumber:Me,startLineNumber:He}=ae;if(Me===ne.lineNumber||He===ne.lineNumber){re=new s(Me,xe);let qe={type:b.trigger.type,triggerAction:b.trigger.triggerAction,filter:{include:b.trigger.filter?.include?b.trigger.filter?.include:Lt.QuickFix},autoApply:b.trigger.autoApply,context:{notAvailableMessage:b.trigger.context?.notAvailableMessage||"",position:re}},Oe=new F(re.lineNumber,re.column,re.lineNumber,re.column),Ze=O.add(await Qs(this._registry,f,Oe,qe,ya.None,E));if(E.isCancellationRequested)return _h;if(Ze.validActions.length!==0){for(let dt of Ze.validActions)if(dt.action.command?.arguments?.some((Qe)=>typeof Qe==="string"&&Qe.includes(tE)))dt.action.diagnostics=[...oe.filter((Qe)=>Qe.relatedInformation)];if(Y.allActions.length===0)ee.push(...Ze.allActions);if(Math.abs(ne.column-xe)<he)ue.unshift(...Ze.validActions);else ue.push(...Ze.validActions)}he=Math.abs(ne.column-xe)}}let Ie=ue.filter((ae,xe,Me)=>Me.findIndex((He)=>He.action.title===ae.action.title)===xe);Ie.sort((ae,xe)=>{if(ae.action.isPreferred&&!xe.action.isPreferred)return-1;else if(!ae.action.isPreferred&&xe.action.isPreferred)return 1;else if(ae.action.isAI&&!xe.action.isAI)return 1;else if(!ae.action.isAI&&xe.action.isAI)return-1;else return 0});let Te=this._setCodeActions({validActions:Ie,allActions:ee,documentation:Y.documentation,hasAutoFix:Y.hasAutoFix,hasAIFix:Y.hasAIFix,allAIFixes:Y.allAIFixes,dispose:()=>O.dispose()});return A=!0,Te}}}finally{if(!A)O.dispose()}}if(b.trigger.type===1){let O=await Qs(this._registry,f,b.selection,b.trigger,ya.None,E);if(E.isCancellationRequested)return O.dispose(),_h;return this._setCodeActions(O)}let T=await Qs(this._registry,f,b.selection,b.trigger,ya.None,E);if(E.isCancellationRequested)return T.dispose(),_h;return this._setCodeActions(T)});if(b.trigger.type===1)this._progressService?.showWhile(w,250);let x=new wd.Triggered(b.trigger,v,w),I=!1;if(this._state.type===1)I=this._state.trigger.type===1&&x.type===1&&x.trigger.type===2&&this._state.position!==x.position;if(!I)this.setState(x);else setTimeout(()=>{this.setState(x)},500)},void 0);h.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=h,this._codeActionOracle.value.trigger({type:2,triggerAction:Pi.Default})}else this._supportedCodeActions.reset()}_setCodeActions(f){return this.codeActionsDisposable.value=f,f}takeCodeActions(f){if(this.codeActionsDisposable.value!==f)return;return this.codeActionsDisposable.clearAndLeak(),f}trigger(f){this._codeActionOracle.value?.trigger(f),this.codeActionsDisposable.clear()}setState(f,i){if(f===this._state)return;if(this._state.type===1)this._state.cancel();if(this._state=f,!i&&!this._disposed)this._onDidChangeState.fire(f)}}var lT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},cT=function(f,i){return function(h,b){i(h,b,f)}},ea,oE=At("gutter-lightbulb",y.lightBulb,e(925,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),nE=At("gutter-lightbulb-auto-fix",y.lightbulbAutofix,e(926,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),rE=At("gutter-lightbulb-sparkle",y.lightbulbSparkle,e(927,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),sE=At("gutter-lightbulb-aifix-auto-fix",y.lightbulbSparkleAutofix,e(928,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),aE=At("gutter-lightbulb-sparkle-filled",y.sparkleFilled,e(929,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),Hn;(function(f){f.Hidden={type:0};class i{constructor(h,b,v,w){this.actions=h,this.trigger=b,this.editorPosition=v,this.widgetPosition=w,this.type=1}}f.Showing=i})(Hn||(Hn={}));function kv(f,i,h,b,v=!1){if(f.validActions.length<=0)return;let w,x=!1;if(f.allAIFixes){if(w=v?aE:y.sparkleFilled,f.validActions.length===1)x=!0}else if(f.hasAutoFix)if(f.hasAIFix)w=v?sE:y.lightbulbSparkleAutofix;else w=v?nE:y.lightbulbAutofix;else if(f.hasAIFix)w=v?rE:y.lightbulbSparkle;else w=v?oE:y.lightBulb;let I;if(x)I=e(930,"Run: {0}",f.validActions[0].action.title);else if(f.hasAutoFix&&h)I=e(931,"Show Code Actions. Preferred Quick Fix Available ({0})",h);else if(!f.hasAutoFix&&b)I=e(932,"Show Code Actions ({0})",b);else I=e(933,"Show Code Actions");return{actions:f,trigger:i,icon:w,autoRun:x,title:I,isGutter:v}}var Cd=class f extends n{static{ea=this}static{this.GUTTER_DECORATION=ce.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:J.asClassName(y.lightBulb),glyphMargin:{position:Ao.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}static _computeLightBulbInfo(i,h,b,v){if(i.type!==1)return;return kv(i.actions,i.trigger,b,v,h)}constructor(i,h){super();this._editor=i,this._keybindingService=h,this.onlyWithEmptySelection=!1,this._onClick=this._register(new r),this.onClick=this._onClick.event,this._state=j(this,Hn.Hidden),this._gutterState=j(this,Hn.Hidden),this._combinedInfo=u(this,(b)=>{let v=this._gutterState.read(b);if(v.type===1)return ea._computeLightBulbInfo(v,!0,this._preferredKbLabel.read(b),this._quickFixKbLabel.read(b));let w=this._state.read(b);if(w.type===1)return ea._computeLightBulbInfo(w,!1,this._preferredKbLabel.read(b),this._quickFixKbLabel.read(b));return}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+oE.id,"codicon-"+sE.id,"codicon-"+nE.id,"codicon-"+rE.id,"codicon-"+aE.id],this._preferredKbLabel=j(this,void 0),this._quickFixKbLabel=j(this,void 0),this.gutterDecoration=ea.GUTTER_DECORATION,this._domNode=g("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Ot.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((b)=>{let v=this._editor.getModel(),w=this._state.get();if(w.type!==1||!v||w.editorPosition.lineNumber>=v.getLineCount())this.hide();let x=this._gutterState.get();if(x.type!==1||!v||x.editorPosition.lineNumber>=v.getLineCount())this.gutterHide()})),this._register(AR(this._domNode,(b)=>{let v=this._state.get();if(v.type!==1)return;this._editor.focus(),b.preventDefault();let{top:w,height:x}=xt(this._domNode),I=this._editor.getOption(75),E=Math.floor(I/3);if(v.widgetPosition.position!==null&&v.widgetPosition.position.lineNumber<v.editorPosition.lineNumber)E+=I;this._onClick.fire({x:b.posx,y:w+x+E,actions:v.actions,trigger:v.trigger})})),this._register(c(this._domNode,"mouseenter",(b)=>{if((b.buttons&1)!==1)return;this.hide()})),this._register(k.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(bl)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Js)?.getLabel()??void 0,void 0)})),this._register(W((b)=>{let v=this._combinedInfo.read(b);this._updateLightBulbTitleAndIcon(v),this._updateGutterDecorationOptions(v)})),this._register(this._editor.onMouseDown(async(b)=>{if(!b.target.element||!this.lightbulbClasses.some((T)=>b.target.element&&b.target.element.classList.contains(T)))return;let v=this._gutterState.get();if(v.type!==1)return;this._editor.focus();let{top:w,height:x}=xt(b.target.element),I=this._editor.getOption(75),E=Math.floor(I/3);if(v.widgetPosition.position!==null&&v.widgetPosition.position.lineNumber<v.editorPosition.lineNumber)E+=I;this._onClick.fire({x:b.event.posx,y:w+x+E,actions:v.actions,trigger:v.trigger})}))}dispose(){if(super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){let i=this._state.get();return i.type===1?i.widgetPosition:null}update(i,h,b){if(i.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===gs.Off)return this.gutterHide(),this.hide();let x=this._editor.getModel();if(!x)return this.gutterHide(),this.hide();let{lineNumber:I,column:E}=x.validatePosition(b),T=x.getOptions().tabSize,O=this._editor.getOptions().get(59),A=x.getLineContent(I),Y=Vf(A,T),ee=O.spaceWidth*Y>22,te=(Te)=>Te>2&&this._editor.getTopForLineNumber(Te)===this._editor.getTopForLineNumber(Te-1),oe=this._editor.getLineDecorations(I),ne=!1;if(oe)for(let Te of oe){let ae=Te.options.glyphMarginClassName;if(ae&&!this.lightbulbClasses.some((xe)=>ae.includes(xe))){ne=!0;break}}let re=I,he=1;if(!ee){let Te=(ae)=>{let xe=x.getLineContent(ae);return/^\s*$|^\s+/.test(xe)||xe.length<=he};if(I>1&&!te(I-1)){let ae=x.getLineCount(),xe=I===ae,Me=I>1&&Te(I-1),He=!xe&&Te(I+1),qe=Te(I),Oe=!He&&!Me;if(!He&&!Me&&!ne)return this._gutterState.set(new Hn.Showing(i,h,b,{position:{lineNumber:re,column:he},preference:ea._posPref}),void 0),this.renderGutterLightbub(),this.hide();else if(Me||xe||Me&&!qe)re-=1;else if(He||Oe&&qe)re+=1}else if(I===1&&(I===x.getLineCount()||!Te(I+1)&&!Te(I)))if(this._gutterState.set(new Hn.Showing(i,h,b,{position:{lineNumber:re,column:he},preference:ea._posPref}),void 0),ne)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(I<x.getLineCount()&&!te(I+1))re+=1;else if(E*O.spaceWidth<22)return this.hide();he=/^\S\s*$/.test(x.getLineContent(re))?2:1}if(this._state.set(new Hn.Showing(i,h,b,{position:{lineNumber:re,column:he},preference:ea._posPref}),void 0),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide();let ue=i.validActions,Ie=i.validActions[0].action.kind;if(ue.length!==1||!Ie){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){if(this._state.get()===Hn.Hidden)return;this._state.set(Hn.Hidden,void 0),this._editor.layoutContentWidget(this)}gutterHide(){if(this._gutterState.get()===Hn.Hidden)return;if(this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID);this._gutterState.set(Hn.Hidden,void 0)}_updateLightBulbTitleAndIcon(i){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!i||i.isGutter)return;this._domNode.title=i.title,this._iconClasses=J.asClassNameArray(i.icon),this._domNode.classList.add(...this._iconClasses)}_updateGutterDecorationOptions(i){if(!i||!i.isGutter)return;this.gutterDecoration=ce.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:J.asClassName(i.icon),glyphMargin:{position:Ao.Left},stickiness:1})}renderGutterLightbub(){let i=this._editor.getSelection();if(!i)return;if(this._gutterDecorationID===void 0)this._addGutterDecoration(i.startLineNumber);else this._updateGutterDecoration(this._gutterDecorationID,i.startLineNumber)}_addGutterDecoration(i){this._editor.changeDecorations((h)=>{this._gutterDecorationID=h.addDecoration(new t(i,0,i,0),this.gutterDecoration)})}_removeGutterDecoration(i){this._editor.changeDecorations((h)=>{h.removeDecoration(i),this._gutterDecorationID=void 0})}_updateGutterDecoration(i,h){this._editor.changeDecorations((b)=>{b.changeDecoration(i,new t(h,0,h,0)),b.changeDecorationOptions(i,this.gutterDecoration)})}};Cd=ea=lT([cT(1,fe)],Cd);var hT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},jn=function(f,i){return function(h,b){i(h,b,f)}},vl,uT="quickfix-edit-highlight",Mr=class f extends n{static{vl=this}static{this.ID="editor.contrib.codeActionController"}static get(i){return i.getContribution(vl.ID)}constructor(i,h,b,v,w,x,I,E,T,O,A,Y){super();this._commandService=I,this._configurationService=E,this._actionWidgetService=T,this._instantiationService=O,this._progressService=A,this._keybindingService=Y,this._activeCodeActions=this._register(new le),this._showDisabled=!1,this._disposed=!1,this._onlyLightBulbWithEmptySelection=!1,this._lightBulbInfoObs=j(this,void 0),this._preferredKbLabel=j(this,void 0),this._quickFixKbLabel=j(this,void 0),this._editor=i,this._model=this._register(new Iv(this._editor,w.codeActionProvider,h,b,x,E)),this._register(this._model.onDidChangeState((ee)=>this.update(ee))),this._register(k.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(bl)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(Js)?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new Vn(()=>{let ee=this._editor.getContribution(Cd.ID);if(ee)this._register(ee.onClick((te)=>this.showCodeActionsFromLightbulb(te.actions,te))),ee.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection;return ee}),this._resolver=v.createInstance(Hp),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(i,h){if(i.allAIFixes&&i.validActions.length===1){let b=i.validActions[0],v=b.action.command;if(v&&v.id==="inlineChat.start"){if(v.arguments&&v.arguments.length>=1&&v.arguments[0])v.arguments[0]={...v.arguments[0],autoSend:!1}}await this.applyCodeAction(b,!1,!1,Tr.FromAILightbulb);return}await this.showCodeActionList(i,h,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(i,h,b){return this.showCodeActionList(h,b,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(i,h,b,v){if(!this._editor.hasModel())return;Ei.get(this._editor)?.closeMessage();let w=this._editor.getPosition();this._trigger({type:1,triggerAction:h,filter:b,autoApply:v,context:{notAvailableMessage:i,position:w}})}_trigger(i){return this._model.trigger(i)}async applyCodeAction(i,h,b,v){let w=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(JL,i,v,{preview:b,editor:this._editor})}finally{if(h)this._trigger({type:2,triggerAction:Pi.QuickFix,filter:{}});w.done()}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(i){if(i.type!==1){this.hideLightBulbWidget(),this._lightBulbInfoObs.set(void 0,void 0);return}let h;try{h=this._model.takeCodeActions(await i.actions)}catch(v){Z(v);return}if(!h)return;if(this._disposed){h.dispose();return}if(this._editor.getSelection()?.startLineNumber!==i.position.lineNumber){h.dispose();return}if(this._lightBulbWidget.value?.update(h,i.trigger,i.position),this._lightBulbInfoObs.set(kv(h,i.trigger,this._preferredKbLabel.get(),this._quickFixKbLabel.get()),void 0),i.trigger.type===1){if(i.trigger.filter?.include){let w=this.tryGetValidActionToApply(i.trigger,h);if(w){try{this.hideLightBulbWidget(),await this.applyCodeAction(w,!1,!1,Tr.FromCodeActions)}finally{h.dispose()}return}if(i.trigger.context){let x=this.getInvalidActionThatWouldHaveBeenApplied(i.trigger,h);if(x&&x.action.disabled){Ei.get(this._editor)?.showMessage(x.action.disabled,i.trigger.context.position),h.dispose();return}}}let v=!!i.trigger.filter?.include;if(i.trigger.context){if(!h.allActions.length||!v&&!h.validActions.length){Ei.get(this._editor)?.showMessage(i.trigger.context.notAvailableMessage,i.trigger.context.position),this._activeCodeActions.value=h,h.dispose();return}}this._activeCodeActions.value=h,this.showCodeActionList(h,this.toCoords(i.position),{includeDisabledActions:v,fromLightbulb:!1})}else if(this._actionWidgetService.isVisible)h.dispose();else this._activeCodeActions.value=h}getInvalidActionThatWouldHaveBeenApplied(i,h){if(!h.allActions.length)return;if(i.autoApply==="first"&&h.validActions.length===0||i.autoApply==="ifSingle"&&h.allActions.length===1)return h.allActions.find(({action:b})=>b.disabled);return}tryGetValidActionToApply(i,h){if(!h.validActions.length)return;if(i.autoApply==="first"&&h.validActions.length>0||i.autoApply==="ifSingle"&&h.validActions.length===1)return h.validActions[0];return}static{this.DECORATION=ce.register({description:"quickfix-highlight",className:uT})}async showCodeActionList(i,h,b){let v=this._editor.createDecorationsCollection(),w=this._editor.getDomNode();if(!w)return;let x=b.includeDisabledActions&&(this._showDisabled||i.validActions.length===0)?i.allActions:i.validActions;if(!x.length)return;let I=s.isIPosition(h)?this.toCoords(h):h,E={onSelect:async(T,O)=>{this.applyCodeAction(T,!0,!!O,b.fromLightbulb?Tr.FromAILightbulb:Tr.FromCodeActions),this._actionWidgetService.hide(!1),v.clear()},onHide:(T)=>{this._editor?.focus(),v.clear()},onHover:async(T,O)=>{if(O.isCancellationRequested)return;let A=!1,Y=T.action.kind;if(Y){let ee=new Pt(Y);A=[Lt.RefactorExtract,Lt.RefactorInline,Lt.RefactorRewrite,Lt.RefactorMove,Lt.Source].some((oe)=>oe.contains(ee))}return{canPreview:A||!!T.action.edit?.edits.length}},onFocus:(T)=>{if(T&&T.action){let O=T.action.ranges,A=T.action.diagnostics;if(v.clear(),O&&O.length>0){let Y=A&&A?.length>1?A.map((ee)=>({range:ee,options:vl.DECORATION})):O.map((ee)=>({range:ee,options:vl.DECORATION}));v.set(Y)}else if(A&&A.length>0){let Y=A.map((te)=>({range:te,options:vl.DECORATION}));v.set(Y);let ee=A[0];if(ee.startLineNumber&&ee.startColumn){let te=this._editor.getModel()?.getWordAtPosition({lineNumber:ee.startLineNumber,column:ee.startColumn})?.word;Cr(e(914,"Context: {0} at line {1} and column {2}.",te,ee.startLineNumber,ee.startColumn))}}}else v.clear()}};this._actionWidgetService.show("codeActionWidget",!0,eE(x,this._shouldShowHeaders(),this._resolver.getResolver()),E,I,w,this._getActionBarActions(i,h,b))}toCoords(i){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(i,1),this._editor.render();let h=this._editor.getScrolledVisiblePosition(i),b=xt(this._editor.getDomNode()),v=b.left+h.left,w=b.top+h.top+h.height;return{x:v,y:w}}_shouldShowHeaders(){let i=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:i?.uri})}_getActionBarActions(i,h,b){if(b.fromLightbulb)return[];let v=i.documentation.map((w)=>({id:w.id,label:w.title,tooltip:w.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(w.id,...w.arguments??[])}));if(b.includeDisabledActions&&i.validActions.length>0&&i.allActions.length!==i.validActions.length)v.push(this._showDisabled?{id:"hideMoreActions",label:e(915,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(i,h,b))}:{id:"showMoreActions",label:e(916,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(i,h,b))});return v}};Mr=vl=hT([jn(1,_o),jn(2,K),jn(3,D),jn(4,V),jn(5,xs),jn(6,Be),jn(7,ie),jn(8,uo),jn(9,D),jn(10,xs),jn(11,fe)],Mr);hi((f,i)=>{((v,w)=>{if(w)i.addRule(`.monaco-editor ${v} { background-color: ${w}; }`)})(".quickfix-edit-highlight",f.getColor(Vs));let b=f.getColor(Dl);if(b)i.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Qr(f.type)?"dotted":"solid"} ${b}; box-sizing: border-box; }`)});function bh(f){return C.regex(xv.keys()[0],new RegExp("(\\s|^)"+Ri(f.value)+"\\b"))}var Jv={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:e(882,"Kind of the code action to run.")},apply:{type:"string",description:e(883,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[e(884,"Always apply the first returned code action."),e(885,"Apply the first returned code action if it is the only one."),e(886,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:e(887,"Controls if only preferred code actions should be returned.")}}};function yd(f,i,h,b,v=Pi.Default){if(f.hasModel())Mr.get(f)?.manualTriggerAtCurrentPosition(i,v,h,b)}class eS extends Xr{constructor(){super({id:Js,title:p(904,"Quick Fix..."),precondition:C.and(o.writable,o.hasCodeActionsProvider),icon:y.lightBulb,f1:!0,keybinding:{when:o.textInputFocus,primary:2137,weight:100},menu:{id:l.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:C.and(o.writable,o.hasCodeActionsProvider)}})}runEditorCommand(f,i){return yd(i,e(888,"No code actions available"),void 0,void 0,Pi.QuickFix)}}class tS extends Kt{constructor(){super({id:Pp,precondition:C.and(o.writable,o.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:Jv}]}})}runEditorCommand(f,i,h){let b=jo.fromUser(h,{kind:Pt.Empty,apply:"ifSingle"});return yd(i,typeof h?.kind==="string"?b.preferred?e(889,"No preferred code actions for '{0}' available",h.kind):e(890,"No code actions for '{0}' available",h.kind):b.preferred?e(891,"No preferred code actions available"):e(892,"No code actions available"),{include:b.kind,includeSourceActions:!0,onlyIncludePreferredActions:b.preferred},b.apply)}}class iS extends U{constructor(){super({id:Ap,label:p(905,"Refactor..."),precondition:C.and(o.writable,o.hasCodeActionsProvider),kbOpts:{kbExpr:o.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:C.and(o.writable,bh(Lt.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:Jv}]}})}run(f,i,h){let b=jo.fromUser(h,{kind:Lt.Refactor,apply:"never"});return yd(i,typeof h?.kind==="string"?b.preferred?e(893,"No preferred refactorings for '{0}' available",h.kind):e(894,"No refactorings for '{0}' available",h.kind):b.preferred?e(895,"No preferred refactorings available"):e(896,"No refactorings available"),{include:Lt.Refactor.contains(b.kind)?b.kind:Pt.None,onlyIncludePreferredActions:b.preferred},b.apply,Pi.Refactor)}}class oS extends U{constructor(){super({id:Fp,label:p(906,"Source Action..."),precondition:C.and(o.writable,o.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:C.and(o.writable,bh(Lt.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:Jv}]}})}run(f,i,h){let b=jo.fromUser(h,{kind:Lt.Source,apply:"never"});return yd(i,typeof h?.kind==="string"?b.preferred?e(897,"No preferred source actions for '{0}' available",h.kind):e(898,"No source actions for '{0}' available",h.kind):b.preferred?e(899,"No preferred source actions available"):e(900,"No source actions available"),{include:Lt.Source.contains(b.kind)?b.kind:Pt.None,includeSourceActions:!0,onlyIncludePreferredActions:b.preferred},b.apply,Pi.SourceAction)}}class nS extends U{constructor(){super({id:mh,label:p(907,"Organize Imports"),precondition:C.and(o.writable,bh(Lt.SourceOrganizeImports)),kbOpts:{kbExpr:o.textInputFocus,primary:1581,weight:100},metadata:{description:p(908,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(f,i){return yd(i,e(901,"No organize imports action available"),{include:Lt.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",Pi.OrganizeImports)}}class rS extends U{constructor(){super({id:fh,label:p(909,"Fix All"),precondition:C.and(o.writable,bh(Lt.SourceFixAll))})}run(f,i){return yd(i,e(902,"No fix all action available"),{include:Lt.SourceFixAll,includeSourceActions:!0},"ifSingle",Pi.FixAll)}}class sS extends U{constructor(){super({id:bl,label:p(910,"Auto Fix..."),precondition:C.and(o.writable,bh(Lt.QuickFix)),kbOpts:{kbExpr:o.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(f,i){return yd(i,e(903,"No auto fixes available"),{include:Lt.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",Pi.AutoFix)}}pe(Mr.ID,Mr,3);pe(Cd.ID,Cd,4);it(eS);N(iS);N(oS);N(nS);N(sS);N(rS);G(new tS);lt.as(go.Configuration).registerConfiguration({...mw,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:e(911,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});lt.as(go.Configuration).registerConfiguration({...mw,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:e(912,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});lt.as(go.Configuration).registerConfiguration({...mw,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:6,markdownDescription:e(913,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});var dE=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},vh=function(f,i){return function(h,b){i(h,b,f)}},Wp=class f{static{this.ID="editor.contrib.autoFormat"}constructor(i,h,b,v){this._editor=i,this._languageFeaturesService=h,this._workerService=b,this._accessibilitySignalService=v,this._disposables=new d,this._sessionDisposables=new d,this._disposables.add(h.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(i.onDidChangeModel(()=>this._update())),this._disposables.add(i.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(i.onDidChangeConfiguration((w)=>{if(w.hasChanged(65))this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65))return;if(!this._editor.hasModel())return;let i=this._editor.getModel(),[h]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(i);if(!h||!h.autoFormatTriggerCharacters)return;let b=new Vh;for(let v of h.autoFormatTriggerCharacters)b.add(v.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((v)=>{let w=v.charCodeAt(v.length-1);if(b.has(w))this._trigger(String.fromCharCode(w))}))}_trigger(i){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let h=this._editor.getModel(),b=this._editor.getPosition(),v=new Ve,w=this._editor.onDidChangeModelContent((x)=>{if(x.isFlush){v.cancel(),w.dispose();return}for(let I=0,E=x.changes.length;I<E;I++)if(x.changes[I].range.endLineNumber<=b.lineNumber){v.cancel(),w.dispose();return}});zk(this._workerService,this._languageFeaturesService,h,b,i,h.getFormattingOptions(),v.token).then((x)=>{if(v.token.isCancellationRequested)return;if(On(x))this._accessibilitySignalService.playSignal(Xe.format,{userGesture:!1}),cp.execute(this._editor,x,!0)}).finally(()=>{w.dispose()})}};Wp=dE([vh(1,V),vh(2,_i),vh(3,rs)],Wp);var Bp=class f{static{this.ID="editor.contrib.formatOnPaste"}constructor(i,h,b){this.editor=i,this._languageFeaturesService=h,this._instantiationService=b,this._callOnDispose=new d,this._callOnModel=new d,this._callOnDispose.add(i.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(i.onDidChangeModel(()=>this._update())),this._callOnDispose.add(i.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(h.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){if(this._callOnModel.clear(),!this.editor.getOption(64))return;if(!this.editor.hasModel())return;if(!this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel()))return;this._callOnModel.add(this.editor.onDidPaste(({range:i})=>this._trigger(i)))}_trigger(i){if(!this.editor.hasModel())return;if(this.editor.getSelections().length>1)return;this._instantiationService.invokeFunction(Wk,this.editor,i,2,ya.None,be.None,!1).catch(Z)}};Bp=dE([vh(1,V),vh(2,D)],Bp);class lE extends U{constructor(){super({id:"editor.action.formatDocument",label:p(1072,"Format Document"),precondition:C.and(o.notInCompositeEditor,o.writable,o.hasDocumentFormattingProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(f,i){if(i.hasModel()){let h=f.get(D);await f.get(xs).showWhile(h.invokeFunction(wI,i,1,ya.None,be.None,!0),250)}}}class cE extends U{constructor(){super({id:"editor.action.formatSelection",label:p(1073,"Format Selection"),precondition:C.and(o.writable,o.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2084),weight:100},contextMenuOpts:{when:o.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(f,i){if(!i.hasModel())return;let h=f.get(D),b=i.getModel(),v=i.getSelections().map((x)=>x.isEmpty()?new t(x.startLineNumber,1,x.startLineNumber,b.getLineMaxColumn(x.startLineNumber)):x);await f.get(xs).showWhile(h.invokeFunction(Wk,i,v,1,ya.None,be.None,!0),250)}}pe(Wp.ID,Wp,2);pe(Bp.ID,Bp,2);N(lE);N(cE);ke.registerCommand("editor.action.format",async(f)=>{let i=f.get(Ce).getFocusedCodeEditor();if(!i||!i.hasModel())return;let h=f.get(Be);if(i.getSelection().isEmpty())await h.executeCommand("editor.action.formatDocument");else await h.executeCommand("editor.action.formatSelection")});var Vp="editor.action.showHover",hE="editor.action.showDefinitionPreviewHover",uE="editor.action.hideHover",gE="editor.action.scrollUpHover",pE="editor.action.scrollDownHover",mE="editor.action.scrollLeftHover",fE="editor.action.scrollRightHover",_E="editor.action.pageUpHover",bE="editor.action.pageDownHover",vE="editor.action.goToTopHover",SE="editor.action.goToBottomHover",xd="editor.action.increaseHoverVerbosityLevel",wE=e(1160,"Increase Hover Verbosity Level"),Id="editor.action.decreaseHoverVerbosityLevel",CE=e(1161,"Decrease Hover Verbosity Level"),Sh="editor.action.hideLongLineWarningHover";function aS(f,i){return!!f[i]}class Kp{constructor(f,i){if(this.target=f.target,this.isLeftClick=f.event.leftButton,this.isMiddleClick=f.event.middleButton,this.isRightClick=f.event.rightButton,this.mouseMiddleClickAction=i.mouseMiddleClickAction,this.hasTriggerModifier=aS(f.event,i.triggerModifier),this.isMiddleClick&&i.mouseMiddleClickAction==="ctrlLeftClick")this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0;this.hasSideBySideModifier=aS(f.event,i.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=f.event.detail<=1}}class dS{constructor(f,i){this.keyCodeIsTriggerKey=f.keyCode===i.triggerKey,this.keyCodeIsSideBySideKey=f.keyCode===i.triggerSideBySideKey,this.hasTriggerModifier=aS(f,i.triggerModifier)}}class wh{constructor(f,i,h,b,v){this.mouseMiddleClickAction=v,this.triggerKey=f,this.triggerModifier=i,this.triggerSideBySideKey=h,this.triggerSideBySideModifier=b}equals(f){return this.triggerKey===f.triggerKey&&this.triggerModifier===f.triggerModifier&&this.triggerSideBySideKey===f.triggerSideBySideKey&&this.triggerSideBySideModifier===f.triggerSideBySideModifier&&this.mouseMiddleClickAction===f.mouseMiddleClickAction}}function yE(f,i){if(f==="altKey"){if(ge)return new wh(57,"metaKey",6,"altKey",i);return new wh(5,"ctrlKey",6,"altKey",i)}if(ge)return new wh(6,"altKey",57,"metaKey",i);return new wh(6,"altKey",5,"ctrlKey",i)}class ls extends n{constructor(f,i){super();this._onMouseMoveOrRelevantKeyDown=this._register(new r),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new r),this.onExecute=this._onExecute.event,this._onCancel=this._register(new r),this.onCancel=this._onCancel.event,this._editor=f,this._extractLineNumberFromMouseEvent=i?.extractLineNumberFromMouseEvent??((h)=>h.target.position?h.target.position.lineNumber:0),this._opts=yE(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((h)=>{if(h.hasChanged(86)||h.hasChanged(87)){let b=yE(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(b))return;this._opts=b,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove((h)=>this._onEditorMouseMove(new Kp(h,this._opts)))),this._register(this._editor.onMouseDown((h)=>this._onEditorMouseDown(new Kp(h,this._opts)))),this._register(this._editor.onMouseUp((h)=>this._onEditorMouseUp(new Kp(h,this._opts)))),this._register(this._editor.onKeyDown((h)=>this._onEditorKeyDown(new dS(h,this._opts)))),this._register(this._editor.onKeyUp((h)=>this._onEditorKeyUp(new dS(h,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection((h)=>this._onDidChangeCursorSelection(h))),this._register(this._editor.onDidChangeModel((h)=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange((h)=>{if(h.scrollTopChanged||h.scrollLeftChanged)this._resetHandler()}))}_onDidChangeCursorSelection(f){if(f.selection&&f.selection.startColumn!==f.selection.endColumn)this._resetHandler()}_onEditorMouseMove(f){this._lastMouseMoveEvent=f,this._onMouseMoveOrRelevantKeyDown.fire([f,null])}_onEditorMouseDown(f){this._hasTriggerKeyOnMouseDown=f.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(f)}_onEditorMouseUp(f){let i=this._extractLineNumberFromMouseEvent(f);if(!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===i&&(this._hasTriggerKeyOnMouseDown||f.isMiddleClick&&f.mouseMiddleClickAction==="openLink"))this._onExecute.fire(f)}_onEditorKeyDown(f){if(this._lastMouseMoveEvent&&(f.keyCodeIsTriggerKey||f.keyCodeIsSideBySideKey&&f.hasTriggerModifier))this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,f]);else if(f.hasTriggerModifier)this._onCancel.fire()}_onEditorKeyUp(f){if(f.keyCodeIsTriggerKey)this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Wo{constructor(f,i,h,b){this.isProviderFirst=f,this.parent=i,this.link=h,this._rangeCallback=b,this.id=nw.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(f){this._range=f,this._rangeCallback(this)}get ariaMessage(){let f=this.parent.getPreview(this)?.preview(this.range);if(!f)return e(1145,"in {0} on line {1} at column {2}",xi(this.uri),this.range.startLineNumber,this.range.startColumn);else return e(1146,"{0} in {1} on line {2} at column {3}",f.value,xi(this.uri),this.range.startLineNumber,this.range.startColumn)}}class xE{constructor(f){this._modelReference=f}dispose(){this._modelReference.dispose()}preview(f,i=8){let h=this._modelReference.object.textEditorModel;if(!h)return;let{startLineNumber:b,startColumn:v,endLineNumber:w,endColumn:x}=f,I=h.getWordUntilPosition({lineNumber:b,column:v-i}),E=new t(b,I.startColumn,b,v),T=new t(w,x,w,1073741824),O=h.getValueInRange(E).replace(/^\s+/,""),A=h.getValueInRange(f),Y=h.getValueInRange(T).replace(/\s+$/,"");return{value:O+A+Y,highlight:{start:O.length,end:O.length+A.length}}}}class cs{constructor(f,i){this.parent=f,this.uri=i,this.children=[],this._previews=new qt}dispose(){Fe(this._previews.values()),this._previews.clear()}getPreview(f){return this._previews.get(f.uri)}get ariaMessage(){let f=this.children.length;if(f===1)return e(1147,"1 symbol in {0}, full path {1}",xi(this.uri),this.uri.fsPath);else return e(1148,"{0} symbols in {1}, full path {2}",f,xi(this.uri),this.uri.fsPath)}async resolve(f){if(this._previews.size!==0)return this;for(let i of this.children){if(this._previews.has(i.uri))continue;try{let h=await f.createModelReference(i.uri);this._previews.set(i.uri,new xE(h))}catch(h){Z(h)}}return this}}class Vi{constructor(f,i){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new r,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=f,this._title=i;let[h]=f;f.sort(Vi._compareReferences);let b;for(let v of f){if(!b||!Cn.isEqual(b.uri,v.uri,!0))b=new cs(this,v.uri),this.groups.push(b);if(b.children.length===0||Vi._compareReferences(v,b.children[b.children.length-1])!==0){let w=new Wo(h===v,b,v,(x)=>this._onDidChangeReferenceRange.fire(x));this.references.push(w),b.children.push(w)}}}dispose(){Fe(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Vi(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){if(this.isEmpty)return e(1149,"No results found");else if(this.references.length===1)return e(1150,"Found 1 symbol in {0}",this.references[0].uri.fsPath);else if(this.groups.length===1)return e(1151,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath);else return e(1152,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(f,i){let{parent:h}=f,b=h.children.indexOf(f),v=h.children.length,w=h.parent.groups.length;if(w===1||i&&b+1<v||!i&&b>0){if(i)b=(b+1)%v;else b=(b+v-1)%v;return h.children[b]}if(b=h.parent.groups.indexOf(h),i)return b=(b+1)%w,h.parent.groups[b].children[0];else return b=(b+w-1)%w,h.parent.groups[b].children[h.parent.groups[b].children.length-1]}nearestReference(f,i){let h=this.references.map((b,v)=>({idx:v,prefixLen:yr(b.uri.toString(),f.toString()),offsetDist:Math.abs(b.range.startLineNumber-i.lineNumber)*100+Math.abs(b.range.startColumn-i.column)})).sort((b,v)=>{if(b.prefixLen>v.prefixLen)return-1;else if(b.prefixLen<v.prefixLen)return 1;else if(b.offsetDist<v.offsetDist)return-1;else if(b.offsetDist>v.offsetDist)return 1;else return 0})[0];if(h)return this.references[h.idx];return}referenceAt(f,i){for(let h of this.references)if(h.uri.toString()===f.toString()){if(t.containsPosition(h.range,i))return h}return}firstReference(){for(let f of this.references)if(f.isProviderFirst)return f;return this.references[0]}static _compareReferences(f,i){return Cn.compare(f.uri,i.uri)||t.compareRangesUsingStarts(f.range,i.range)}}var $p=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},jp=function(f,i){return function(h,b){i(h,b,f)}},lS,zp=class f{constructor(i){this._resolverService=i}hasChildren(i){if(i instanceof Vi)return!0;if(i instanceof cs)return!0;return!1}getChildren(i){if(i instanceof Vi)return i.groups;if(i instanceof cs)return i.resolve(this._resolverService).then((h)=>h.children);throw Error("bad tree")}};zp=$p([jp(0,_n)],zp);class hS{getHeight(){return 23}getTemplateId(f){if(f instanceof cs)return Ch.id;else return yh.id}}var Up=class f{constructor(i){this._keybindingService=i}getKeyboardNavigationLabel(i){if(i instanceof Wo){let h=i.parent.getPreview(i)?.preview(i.range);if(h)return h.value}return xi(i.uri)}};Up=$p([jp(0,fe)],Up);class uS{getId(f){return f instanceof Wo?f.id:f.uri}}var cS=class f extends n{constructor(i,h){super();this._labelService=h;let b=document.createElement("div");b.classList.add("reference-file"),this.file=this._register(new pd(b,{supportHighlights:!0})),this.badge=this._register(new hb(_(b,g(".count")),{},w0)),i.appendChild(b)}set(i,h){let b=jh(i.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(i.uri),this._labelService.getUriLabel(b,{relative:!0}),{title:this._labelService.getUriLabel(i.uri),matches:h});let v=i.children.length;if(this.badge.setCount(v),v>1)this.badge.setTitleFormat(e(1139,"{0} references",v));else this.badge.setTitleFormat(e(1140,"{0} reference",v))}};cS=$p([jp(1,jl)],cS);var Ch=class f{static{lS=this}static{this.id="FileReferencesRenderer"}constructor(i){this._instantiationService=i,this.templateId=lS.id}renderTemplate(i){return this._instantiationService.createInstance(cS,i)}renderElement(i,h,b){b.set(i.element,Ru(i.filterData))}disposeTemplate(i){i.dispose()}};Ch=lS=$p([jp(0,D)],Ch);class IE extends n{constructor(f){super();this.label=this._register(new hd(f))}set(f,i){let h=f.parent.getPreview(f)?.preview(f.range);if(!h||!h.value)this.label.set(`${xi(f.uri)}:${f.range.startLineNumber+1}:${f.range.startColumn+1}`);else{let{value:b,highlight:v}=h;if(i&&!Mo.isDefault(i))this.label.element.classList.toggle("referenceMatch",!1),this.label.set(b,Ru(i));else this.label.element.classList.toggle("referenceMatch",!0),this.label.set(b,[v])}}}class yh{constructor(){this.templateId=yh.id}static{this.id="OneReferenceRenderer"}renderTemplate(f){return new IE(f)}renderElement(f,i,h){h.set(f.element,f.filterData)}disposeTemplate(f){f.dispose()}}class gS{getWidgetAriaLabel(){return e(1141,"References")}getAriaLabel(f){return f.ariaMessage}}var LE=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ld=function(f,i){return function(h,b){i(h,b,f)}};class mS{static{this.DecorationOptions=ce.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(f,i){this._editor=f,this._model=i,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new d,this._callOnModelChange=new d,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();let f=this._editor.getModel();if(!f)return;for(let i of this._model.references)if(i.uri.toString()===f.uri.toString()){this._addDecorations(i.parent);return}}_addDecorations(f){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let i=[],h=[];for(let b=0,v=f.children.length;b<v;b++){let w=f.children[b];if(this._decorationIgnoreSet.has(w.id))continue;if(w.uri.toString()!==this._editor.getModel().uri.toString())continue;i.push({range:w.range,options:mS.DecorationOptions}),h.push(b)}this._editor.changeDecorations((b)=>{let v=b.deltaDecorations([],i);for(let w=0;w<v.length;w++)this._decorations.set(v[w],f.children[h[w]])})}_onDecorationChanged(){let f=[],i=this._editor.getModel();if(!i)return;for(let[h,b]of this._decorations){let v=i.getDecorationRange(h);if(!v)continue;let w=!1;if(t.equalsRange(v,b.range))continue;if(t.spansMultipleLines(v))w=!0;else{let x=b.range.endColumn-b.range.startColumn,I=v.endColumn-v.startColumn;if(x!==I)w=!0}if(w)this._decorationIgnoreSet.add(b.id),f.push(h);else b.range=v}for(let h=0,b=f.length;h<b;h++)this._decorations.delete(f[h]);this._editor.removeDecorations(f)}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}class fS{constructor(){this.ratio=0.7,this.heightInLines=18}static fromJSON(f){let i,h;try{let b=JSON.parse(f);i=b.ratio,h=b.heightInLines}catch{}return{ratio:i||0.7,heightInLines:h||18}}}class EE extends E0{}var pS=class f{constructor(i){this.labelService=i,this.disposables=new d}getDragURI(i){if(i instanceof cs)return i.uri.toString();else if(i instanceof Wo)return pI(i.uri,i.range).toString();return null}getDragLabel(i){if(i.length===0)return;return i.map((b)=>this.labelService.getUriBasenameLabel(b.uri)).join(", ")}onDragStart(i,h){if(!h.dataTransfer)return;let v=i.elements.map((w)=>this.getDragURI(w)).filter(Boolean);if(v.length)h.dataTransfer.setData(xc.RESOURCES,JSON.stringify(v)),h.dataTransfer.setData(xc.TEXT,v.join(`
31
- `))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};pS=LE([Ld(0,jl)],pS);var Gp=class f extends gl{constructor(i,h,b,v,w,x,I,E,T){super(i,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},x);this._defaultTreeKeyboardSupport=h,this.layoutData=b,this._textModelResolverService=w,this._instantiationService=x,this._peekViewService=I,this._uriLabel=E,this._keybindingService=T,this._disposeOnNewModel=new d,this._callOnDispose=new d,this._onDidSelectReference=this._callOnDispose.add(new r),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new nt(0,0),this._isClosing=!1,this._applyTheme(v.getColorTheme()),this._callOnDispose.add(v.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(i,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),Fe(this._preview),Fe(this._previewNotAvailableMessage),Fe(this._tree),Fe(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(i){let h=i.getColor(AL)||m.transparent;this.style({arrowColor:h,frameColor:h,headerBackgroundColor:i.getColor(PL)||m.transparent,primaryHeadingColor:i.getColor(Dp),secondaryHeadingColor:i.getColor(Rp)})}show(i){super.show(i,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(i){if(this._preview&&this._preview.getModel())this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:i.ctrlKey||i.metaKey||i.altKey?"side":"open",source:"title"})}_fillBody(i){this.setCssClass("reference-zone-widget"),this._messageContainer=_(i,g("div.messages")),er(this._messageContainer),this._splitView=new lw(i,{orientation:1}),this._previewContainer=_(i,g("div.preview.inline"));let h={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(Zi,this._previewContainer,h,{},this.editor),er(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(cd,e(1142,"no preview available"),Ki,cd.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=_(i,g("div.ref-tree.inline"));let b={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new gS,keyboardNavigationLabelProvider:this._instantiationService.createInstance(Up),identityProvider:new uS,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:FL},dnd:this._instantiationService.createInstance(pS)};if(this._defaultTreeKeyboardSupport)this._callOnDispose.add(wt(this._treeContainer,"keydown",(w)=>{if(w.equals(9))this._keybindingService.dispatchEvent(w,w.target),w.stopPropagation()},!0));this._tree=this._instantiationService.createInstance(EE,"ReferencesWidget",this._treeContainer,new hS,[this._instantiationService.createInstance(Ch),this._instantiationService.createInstance(yh)],this._instantiationService.createInstance(zp),b),this._splitView.addView({onDidChange:k.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:(w)=>{this._preview.layout({height:this._dim.height,width:w})}},aw.Distribute),this._splitView.addView({onDidChange:k.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:(w)=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${w}px`,this._tree.layout(this._dim.height,w)}},aw.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{if(this._dim.width)this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width},void 0));let v=(w,x)=>{if(w instanceof Wo){if(x==="show")this._revealReference(w,!1);this._onDidSelectReference.fire({element:w,kind:x,source:"tree"})}};this._disposables.add(this._tree.onDidOpen((w)=>{if(w.sideBySide)v(w.element,"side");else if(w.editorOptions.pinned)v(w.element,"goto");else v(w.element,"show")})),er(this._treeContainer)}_onWidth(i){if(this._dim)this._doLayoutBody(this._dim.height,i)}_doLayoutBody(i,h){super._doLayoutBody(i,h),this._dim=new nt(h,i),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(h),this._splitView.resizeView(0,h*this.layoutData.ratio)}setSelection(i){return this._revealReference(i,!0).then(()=>{if(!this._model)return;this._tree.setSelection([i]),this._tree.setFocus([i])})}setModel(i){if(this._disposeOnNewModel.clear(),this._model=i,this._model)return this._onNewModel();return Promise.resolve()}_onNewModel(){if(!this._model)return Promise.resolve(void 0);if(this._model.isEmpty)return this.setTitle(""),this._messageContainer.innerText=e(1143,"No results"),wr(this._messageContainer),Promise.resolve(void 0);return er(this._messageContainer),this._decorationsManager=new mS(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((i)=>this._tree.rerender(i))),this._disposeOnNewModel.add(this._preview.onMouseDown((i)=>{let{event:h,target:b}=i;if(h.detail!==2)return;let v=this._getFocusedReference();if(!v)return;this._onDidSelectReference.fire({element:{uri:v.uri,range:b.range},kind:h.ctrlKey||h.metaKey||h.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),wr(this._treeContainer),wr(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)}_getFocusedReference(){let[i]=this._tree.getFocus();if(i instanceof Wo)return i;else if(i instanceof cs){if(i.children.length>0)return i.children[0]}return}async revealReference(i){await this._revealReference(i,!1),this._onDidSelectReference.fire({element:i,kind:"goto",source:"tree"})}async _revealReference(i,h){if(this._revealedReference===i)return;if(this._revealedReference=i,i.uri.scheme!==se.inMemory)this.setTitle(jR(i.uri),this._uriLabel.getUriLabel(jh(i.uri)));else this.setTitle(e(1144,"References"));let b=this._textModelResolverService.createModelReference(i.uri);if(this._tree.getInput()===i.parent)this._tree.reveal(i);else{if(h)this._tree.reveal(i.parent);await this._tree.expand(i.parent),this._tree.reveal(i)}let v=await b;if(!this._model){v.dispose();return}Fe(this._previewModelReference);let w=v.object;if(w){let x=this._preview.getModel()===w.textEditorModel?0:1,I=t.lift(i.range).collapseToStart();this._previewModelReference=v,this._preview.setModel(w.textEditorModel),this._preview.setSelection(I),this._preview.revealRangeInCenter(I,x)}else this._preview.setModel(this._previewNotAvailableMessage),v.dispose()}};Gp=LE([Ld(3,je),Ld(4,_n),Ld(5,D),Ld(6,mv),Ld(7,jl),Ld(8,fe)],Gp);var gT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Sl=function(f,i){return function(h,b){i(h,b,f)}},qp,Ed=new P("referenceSearchVisible",!1,e(1136,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),uu=class f{static{qp=this}static{this.ID="editor.contrib.referencesController"}static get(i){return i.getContribution(qp.ID)}constructor(i,h,b,v,w,x,I,E){this._defaultTreeKeyboardSupport=i,this._editor=h,this._editorService=v,this._notificationService=w,this._instantiationService=x,this._storageService=I,this._configurationService=E,this._disposables=new d,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=Ed.bindTo(b)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(i,h,b){let v;if(this._widget)v=this._widget.position;if(this.closeWidget(),!!v&&i.containsPosition(v))return;this._peekMode=b,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{if(!this._ignoreModelChangeEvent)this.closeWidget()}));let w="peekViewLayout",x=fS.fromJSON(this._storageService.get(w,0,"{}"));this._widget=this._instantiationService.createInstance(Gp,this._editor,this._defaultTreeKeyboardSupport,x),this._widget.setTitle(e(1137,"Loading...")),this._widget.show(i),this._disposables.add(this._widget.onDidClose(()=>{if(h.cancel(),this._widget){if(this._storageService.store(w,JSON.stringify(this._widget.layoutData),0,1),!this._widget.isClosing)this.closeWidget();this._widget=void 0}else this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference((E)=>{let{element:T,kind:O}=E;if(!T)return;switch(O){case"open":if(E.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))this.openReference(T,!1,!1);break;case"side":this.openReference(T,!0,!1);break;case"goto":if(b)this._gotoReference(T,!0);else this.openReference(T,!1,!0);break}}));let I=++this._requestIdPool;h.then((E)=>{if(I!==this._requestIdPool||!this._widget){E.dispose();return}return this._model?.dispose(),this._model=E,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){if(!this._model.isEmpty)this._widget.setMetaTitle(e(1138,"{0} ({1})",this._model.title,this._model.references.length));else this._widget.setMetaTitle("");let T=this._editor.getModel().uri,O=new s(i.startLineNumber,i.startColumn),A=this._model.nearestReference(T,O);if(A)return this._widget.setSelection(A).then(()=>{if(this._widget&&this._editor.getOption(99)==="editor")this._widget.focusOnPreviewEditor()})}return})},(E)=>{this._notificationService.error(E)})}changeFocusBetweenPreviewAndReferences(){if(!this._widget)return;if(this._widget.isPreviewEditorFocused())this._widget.focusOnReferenceTree();else this._widget.focusOnPreviewEditor()}async goToNextOrPreviousReference(i){if(!this._editor.hasModel()||!this._model||!this._widget)return;let h=this._widget.position;if(!h)return;let b=this._model.nearestReference(this._editor.getModel().uri,h);if(!b)return;let v=this._model.nextOrPreviousReference(b,i),w=this._editor.hasTextFocus(),x=this._widget.isPreviewEditorFocused();if(await this._widget.setSelection(v),await this._gotoReference(v,!1),w)this._editor.focus();else if(this._widget&&x)this._widget.focusOnPreviewEditor()}async revealReference(i){if(!this._editor.hasModel()||!this._model||!this._widget)return;await this._widget.revealReference(i)}closeWidget(i=!0){if(this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,i)this._editor.focus();this._requestIdPool+=1}_gotoReference(i,h){this._widget?.hide(),this._ignoreModelChangeEvent=!0;let b=t.lift(i.range).collapseToStart();return this._editorService.openCodeEditor({resource:i.uri,options:{selection:b,selectionSource:"code.jump",pinned:h}},this._editor).then((v)=>{if(this._ignoreModelChangeEvent=!1,!v||!this._widget){this.closeWidget();return}if(this._editor===v)this._widget.show(b),this._widget.focusOnReferenceTree();else{let w=qp.get(v),x=this._model.clone();this.closeWidget(),v.focus(),w?.toggleWidget(b,Wt((I)=>Promise.resolve(x)),this._peekMode??!1)}},(v)=>{this._ignoreModelChangeEvent=!1,Z(v)})}openReference(i,h,b){if(!h)this.closeWidget();let{uri:v,range:w}=i;this._editorService.openCodeEditor({resource:v,options:{selection:w,selectionSource:"code.jump",pinned:b}},this._editor,h)}};uu=qp=gT([Sl(2,K),Sl(3,Ce),Sl(4,bt),Sl(5,D),Sl(6,Tn),Sl(7,ie)],uu);function Dd(f,i){let h=Lp(f);if(!h)return;let b=uu.get(h);if(b)i(b)}Sn.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:tn(2089,60),when:C.or(Ed,Ti.inPeekEditor),handler(f){Dd(f,(i)=>{i.changeFocusBetweenPreviewAndReferences()})}});Sn.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:C.or(Ed,Ti.inPeekEditor),handler(f){Dd(f,(i)=>{i.goToNextOrPreviousReference(!0)})}});Sn.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:C.or(Ed,Ti.inPeekEditor),handler(f){Dd(f,(i)=>{i.goToNextOrPreviousReference(!1)})}});ke.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");ke.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");ke.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");ke.registerCommand("closeReferenceSearch",(f)=>Dd(f,(i)=>i.closeWidget()));Sn.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:C.and(Ti.inPeekEditor,C.not("config.editor.stablePeek"))});Sn.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:C.and(Ed,C.not("config.editor.stablePeek"),C.or(o.editorTextFocus,Gf.negate()))});Sn.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:C.and(Ed,Hk,C0.negate(),k0.negate()),handler(f){let h=f.get(qs).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof Wo)Dd(f,(b)=>b.revealReference(h[0]))}});Sn.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:C.and(Ed,Hk,C0.negate(),k0.negate()),handler(f){let h=f.get(qs).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof Wo)Dd(f,(b)=>b.openReference(h[0],!0,!0))}});ke.registerCommand("openReference",(f)=>{let h=f.get(qs).lastFocusedList?.getFocus();if(Array.isArray(h)&&h[0]instanceof Wo)Dd(f,(b)=>b.openReference(h[0],!1,!0))});var DE=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},xh=function(f,i){return function(h,b){i(h,b,f)}},vS=new P("hasSymbols",!1,e(1153,"Whether there are symbol locations that can be navigated via keyboard-only.")),Lh=Q("ISymbolNavigationService"),_S=class f{constructor(i,h,b,v){this._editorService=h,this._notificationService=b,this._keybindingService=v,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=vS.bindTo(i)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.close(),this._currentModel=void 0,this._currentIdx=-1}put(i){let h=i.parent.parent;if(h.references.length<=1){this.reset();return}this._currentModel=h,this._currentIdx=h.references.indexOf(i),this._ctxHasSymbols.set(!0),this._showMessage();let b=new bS(this._editorService),v=b.onDidChange((w)=>{if(this._ignoreEditorChange)return;let x=this._editorService.getActiveCodeEditor();if(!x)return;let I=x.getModel(),E=x.getPosition();if(!I||!E)return;let T=!1,O=!1;for(let A of h.references)if(Qo(A.uri,I.uri))T=!0,O=O||t.containsPosition(A.range,E);else if(T)break;if(!T||!O)this.reset()});this._currentState=po(b,v)}revealNext(i){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;let h=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:h.uri,options:{selection:t.collapseToStart(h.range),selectionRevealType:3}},i).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.close();let i=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),h=i?e(1154,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,i.getLabel()):e(1155,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(h)}};_S=DE([xh(0,K),xh(1,Ce),xh(2,bt),xh(3,fe)],_S);ve(Lh,_S,1);G(new class extends Kt{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:vS,kbOpts:{weight:100,primary:70}})}runEditorCommand(f,i){return f.get(Lh).revealNext(i)}});Sn.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:vS,primary:9,handler(f){f.get(Lh).reset()}});var bS=class f{constructor(i){this._listener=new Map,this._disposables=new d,this._onDidChange=new r,this.onDidChange=this._onDidChange.event,this._disposables.add(i.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(i.onCodeEditorAdd(this._onDidAddEditor,this)),i.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),Fe(this._listener.values())}_onDidAddEditor(i){this._listener.set(i,po(i.onDidChangeCursorPosition((h)=>this._onDidChange.fire({editor:i})),i.onDidChangeModelContent((h)=>this._onDidChange.fire({editor:i}))))}_onDidRemoveEditor(i){this._listener.get(i)?.dispose(),this._listener.delete(i)}};bS=DE([xh(0,Ce)],bS);function SS(f,i){if(i.uri.scheme===f.uri.scheme)return!0;if(Cf(i.uri,se.walkThroughSnippet,se.vscodeChatCodeBlock,se.vscodeChatCodeCompareBlock))return!1;return!0}async function Eh(f,i,h,b,v){let x=h.ordered(f,b).map((E)=>Promise.resolve(v(E,f,i)).then(void 0,(T)=>{gt(T);return})),I=await Promise.all(x);return ar(I.flat()).filter((E)=>SS(f,E))}function ta(f,i,h,b,v){return Eh(i,h,f,b,(w,x,I)=>w.provideDefinition(x,I,v))}function Zp(f,i,h,b,v){return Eh(i,h,f,b,(w,x,I)=>w.provideDeclaration(x,I,v))}function Xp(f,i,h,b,v){return Eh(i,h,f,b,(w,x,I)=>w.provideImplementation(x,I,v))}function Yp(f,i,h,b,v){return Eh(i,h,f,b,(w,x,I)=>w.provideTypeDefinition(x,I,v))}function wl(f,i,h,b,v,w){return Eh(i,h,f,v,async(x,I,E)=>{let T=(await x.provideReferences(I,E,{includeDeclaration:!0},w))?.filter((A)=>SS(I,A));if(!b||!T||T.length!==2)return T;let O=(await x.provideReferences(I,E,{includeDeclaration:!1},w))?.filter((A)=>SS(I,A));if(O&&O.length===1)return O;return T})}async function Fr(f){let i=await f(),h=new Vi(i,""),b=h.references.map((v)=>v.link);return h.dispose(),b}xr("_executeDefinitionProvider",(f,i,h)=>{let b=f.get(V),v=ta(b.definitionProvider,i,h,!1,be.None);return Fr(()=>v)});xr("_executeDefinitionProvider_recursive",(f,i,h)=>{let b=f.get(V),v=ta(b.definitionProvider,i,h,!0,be.None);return Fr(()=>v)});xr("_executeTypeDefinitionProvider",(f,i,h)=>{let b=f.get(V),v=Yp(b.typeDefinitionProvider,i,h,!1,be.None);return Fr(()=>v)});xr("_executeTypeDefinitionProvider_recursive",(f,i,h)=>{let b=f.get(V),v=Yp(b.typeDefinitionProvider,i,h,!0,be.None);return Fr(()=>v)});xr("_executeDeclarationProvider",(f,i,h)=>{let b=f.get(V),v=Zp(b.declarationProvider,i,h,!1,be.None);return Fr(()=>v)});xr("_executeDeclarationProvider_recursive",(f,i,h)=>{let b=f.get(V),v=Zp(b.declarationProvider,i,h,!0,be.None);return Fr(()=>v)});xr("_executeReferenceProvider",(f,i,h)=>{let b=f.get(V),v=wl(b.referenceProvider,i,h,!1,!1,be.None);return Fr(()=>v)});xr("_executeReferenceProvider_recursive",(f,i,h)=>{let b=f.get(V),v=wl(b.referenceProvider,i,h,!1,!0,be.None);return Fr(()=>v)});xr("_executeImplementationProvider",(f,i,h)=>{let b=f.get(V),v=Xp(b.implementationProvider,i,h,!1,be.None);return Fr(()=>v)});xr("_executeImplementationProvider_recursive",(f,i,h)=>{let b=f.get(V),v=Xp(b.implementationProvider,i,h,!0,be.None);return Fr(()=>v)});Pn.appendMenuItem(l.EditorContext,{submenu:l.EditorContextPeek,title:e(1096,"Peek"),group:"navigation",order:100});class Rd{static is(f){if(!f||typeof f!=="object")return!1;if(f instanceof Rd)return!0;if(s.isIPosition(f.position)&&f.model)return!0;return!1}constructor(f,i){this.model=f,this.position=i}}class Xi extends Xr{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return Xi._allSymbolNavigationCommands.values()}static _patchConfig(f){let i={...f,f1:!0};if(i.menu){for(let h of $e.wrap(i.menu))if(h.id===l.EditorContext||h.id===l.EditorContextPeek)h.when=C.and(f.precondition,h.when)}return i}constructor(f,i){super(Xi._patchConfig(i));this.configuration=f,Xi._allSymbolNavigationCommands.set(i.id,this)}runEditorCommand(f,i,h,b){if(!i.hasModel())return Promise.resolve(void 0);let v=f.get(bt),w=f.get(Ce),x=f.get(xs),I=f.get(Lh),E=f.get(V),T=f.get(D),O=i.getModel(),A=i.getPosition(),Y=Rd.is(h)?h:new Rd(O,A),ee=new ss(i,5),te=El(this._getLocationModel(E,Y.model,Y.position,ee.token),ee.token).then(async(oe)=>{if(!oe||ee.token.isCancellationRequested)return;Dn(oe.ariaMessage);let ne;if(oe.referenceAt(O.uri,A)){let he=this._getAlternativeCommand(i);if(he!==void 0&&!Xi._activeAlternativeCommands.has(he)&&Xi._allSymbolNavigationCommands.has(he))ne=Xi._allSymbolNavigationCommands.get(he)}let re=oe.references.length;if(re===0){if(!this.configuration.muteMessage){let he=O.getWordAtPosition(A);Ei.get(i)?.showMessage(this._getNoResultFoundMessage(he),A)}}else if(re===1&&ne)Xi._activeAlternativeCommands.add(this.desc.id),T.invokeFunction((he)=>ne.runEditorCommand(he,i,h,b).finally(()=>{Xi._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(w,I,i,oe,b)},(oe)=>{v.error(oe)}).finally(()=>{ee.dispose()});return x.showWhile(te,250),te}async _onResult(f,i,h,b,v){let w=this._getGoToPreference(h);if(!(h instanceof Zi)&&(this.configuration.openInPeek||w==="peek"&&b.references.length>1))this._openInPeek(h,b,v);else{let x=b.firstReference(),I=b.references.length>1&&w==="gotoAndPeek",E=await this._openReference(h,f,x,this.configuration.openToSide,!I);if(I&&E)this._openInPeek(E,b,v);else b.dispose();if(w==="goto")i.put(x)}}async _openReference(f,i,h,b,v){let w=void 0;if(kR(h))w=h.targetSelectionRange;if(!w)w=h.range;if(!w)return;let x=await i.openCodeEditor({resource:h.uri,options:{selection:t.collapseToStart(w),selectionRevealType:3,selectionSource:"code.jump"}},f,b);if(!x)return;if(v){let I=x.getModel(),E=x.createDecorationsCollection([{range:w,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{if(x.getModel()===I)E.clear()},350)}return x}_openInPeek(f,i,h){let b=uu.get(f);if(b&&f.hasModel())b.toggleWidget(h??f.getSelection(),Wt((v)=>Promise.resolve(i)),this.configuration.openInPeek);else i.dispose()}}class ia extends Xi{async _getLocationModel(f,i,h,b){return new Vi(await ta(f.definitionProvider,i,h,!1,b),e(1097,"Definitions"))}_getNoResultFoundMessage(f){return f&&f.word?e(1098,"No definition found for '{0}'",f.word):e(1099,"No definition found")}_getAlternativeCommand(f){return f.getOption(67).alternativeDefinitionCommand}_getGoToPreference(f){return f.getOption(67).multipleDefinitions}}it(class f extends ia{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.id,title:{...p(1123,"Go to Definition"),mnemonicTitle:e(1100,"Go to &&Definition")},precondition:o.hasDefinitionProvider,keybinding:[{when:o.editorTextFocus,primary:70,weight:100},{when:C.and(o.editorTextFocus,jk),primary:2118,weight:100}],menu:[{id:l.EditorContext,group:"navigation",order:1.1},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]});ke.registerCommandAlias("editor.action.goToDeclaration",f.id)}});it(class f extends ia{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:f.id,title:p(1124,"Open Definition to the Side"),precondition:C.and(o.hasDefinitionProvider,o.isInEmbeddedEditor.toNegated()),keybinding:[{when:o.editorTextFocus,primary:tn(2089,70),weight:100},{when:C.and(o.editorTextFocus,jk),primary:tn(2089,2118),weight:100}]});ke.registerCommandAlias("editor.action.openDeclarationToTheSide",f.id)}});it(class f extends ia{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:f.id,title:p(1125,"Peek Definition"),precondition:C.and(o.hasDefinitionProvider,Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:l.EditorContextPeek,group:"peek",order:2}});ke.registerCommandAlias("editor.action.previewDeclaration",f.id)}});class wS extends Xi{async _getLocationModel(f,i,h,b){return new Vi(await Zp(f.declarationProvider,i,h,!1,b),e(1101,"Declarations"))}_getNoResultFoundMessage(f){return f&&f.word?e(1102,"No declaration found for '{0}'",f.word):e(1103,"No declaration found")}_getAlternativeCommand(f){return f.getOption(67).alternativeDeclarationCommand}_getGoToPreference(f){return f.getOption(67).multipleDeclarations}}it(class f extends wS{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.id,title:{...p(1126,"Go to Declaration"),mnemonicTitle:e(1104,"Go to &&Declaration")},precondition:C.and(o.hasDeclarationProvider,o.isInEmbeddedEditor.toNegated()),menu:[{id:l.EditorContext,group:"navigation",order:1.3},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(i){return i&&i.word?e(1105,"No declaration found for '{0}'",i.word):e(1106,"No declaration found")}});it(class f extends wS{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:p(1127,"Peek Declaration"),precondition:C.and(o.hasDeclarationProvider,Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:3}})}});class CS extends Xi{async _getLocationModel(f,i,h,b){return new Vi(await Yp(f.typeDefinitionProvider,i,h,!1,b),e(1107,"Type Definitions"))}_getNoResultFoundMessage(f){return f&&f.word?e(1108,"No type definition found for '{0}'",f.word):e(1109,"No type definition found")}_getAlternativeCommand(f){return f.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(f){return f.getOption(67).multipleTypeDefinitions}}it(class f extends CS{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.ID,title:{...p(1128,"Go to Type Definition"),mnemonicTitle:e(1110,"Go to &&Type Definition")},precondition:o.hasTypeDefinitionProvider,keybinding:{when:o.editorTextFocus,primary:0,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.4},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}});it(class f extends CS{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:f.ID,title:p(1129,"Peek Type Definition"),precondition:C.and(o.hasTypeDefinitionProvider,Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:4}})}});class yS extends Xi{async _getLocationModel(f,i,h,b){return new Vi(await Xp(f.implementationProvider,i,h,!1,b),e(1111,"Implementations"))}_getNoResultFoundMessage(f){return f&&f.word?e(1112,"No implementation found for '{0}'",f.word):e(1113,"No implementation found")}_getAlternativeCommand(f){return f.getOption(67).alternativeImplementationCommand}_getGoToPreference(f){return f.getOption(67).multipleImplementations}}it(class f extends yS{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:f.ID,title:{...p(1130,"Go to Implementations"),mnemonicTitle:e(1114,"Go to &&Implementations")},precondition:o.hasImplementationProvider,keybinding:{when:o.editorTextFocus,primary:2118,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.45},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}});it(class f extends yS{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:f.ID,title:p(1131,"Peek Implementations"),precondition:C.and(o.hasImplementationProvider,Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:3142,weight:100},menu:{id:l.EditorContextPeek,group:"peek",order:5}})}});class xS extends Xi{_getNoResultFoundMessage(f){return f?e(1115,"No references found for '{0}'",f.word):e(1116,"No references found")}_getAlternativeCommand(f){return f.getOption(67).alternativeReferenceCommand}_getGoToPreference(f){return f.getOption(67).multipleReferences}}it(class f extends xS{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...p(1132,"Go to References"),mnemonicTitle:e(1117,"Go to &&References")},precondition:C.and(o.hasReferenceProvider,Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:1094,weight:100},menu:[{id:l.EditorContext,group:"navigation",order:1.45},{id:l.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(i,h,b,v){return new Vi(await wl(i.referenceProvider,h,b,!0,!1,v),e(1118,"References"))}});it(class f extends xS{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:p(1133,"Peek References"),precondition:C.and(o.hasReferenceProvider,Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:l.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(i,h,b,v){return new Vi(await wl(i.referenceProvider,h,b,!1,!1,v),e(1119,"References"))}});class RE extends Xi{constructor(f,i,h){super(f,{id:"editor.action.goToLocation",title:p(1134,"Go to Any Symbol"),precondition:C.and(Ti.notInPeekEditor,o.isInEmbeddedEditor.toNegated())});this._references=i,this._gotoMultipleBehaviour=h}async _getLocationModel(f,i,h,b){return new Vi(this._references,e(1120,"Locations"))}_getNoResultFoundMessage(f){return f&&e(1121,"No results for '{0}'",f.word)||""}_getGoToPreference(f){return this._gotoMultipleBehaviour??f.getOption(67).multipleReferences}_getAlternativeCommand(){return}}ke.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:q},{name:"position",description:"The position at which to start",constraint:s.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(f,i,h,b,v,w,x)=>{Ae(q.isUri(i)),Ae(s.isIPosition(h)),Ae(Array.isArray(b)),Ae(typeof v>"u"||typeof v==="string"),Ae(typeof x>"u"||typeof x==="boolean");let I=f.get(Ce),E=await I.openCodeEditor({resource:i},I.getFocusedCodeEditor());if(xa(E))return E.setPosition(h),E.revealPositionInCenterIfOutsideViewport(h,0),E.invokeWithinContext((T)=>{let O=new class extends RE{_getNoResultFoundMessage(A){return w||super._getNoResultFoundMessage(A)}}({muteMessage:!Boolean(w),openInPeek:Boolean(x),openToSide:!1},b,v);T.get(D).invokeFunction(O.run.bind(O),E)})}});ke.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:q},{name:"position",description:"The position at which to start",constraint:s.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(f,i,h,b,v)=>{f.get(Be).executeCommand("editor.action.goToLocations",i,h,b,v,void 0,!0)}});ke.registerCommand({id:"editor.action.findReferences",handler:(f,i,h)=>{Ae(q.isUri(i)),Ae(s.isIPosition(h));let b=f.get(V),v=f.get(Ce);return v.openCodeEditor({resource:i},v.getFocusedCodeEditor()).then((w)=>{if(!xa(w)||!w.hasModel())return;let x=uu.get(w);if(!x)return;let I=Wt((T)=>wl(b.referenceProvider,w.getModel(),s.lift(h),!1,!1,T).then((O)=>new Vi(O,e(1122,"References")))),E=new t(h.lineNumber,h.column,h.lineNumber,h.column);return Promise.resolve(x.toggleWidget(E,I,!1))})}});ke.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var pT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},IS=function(f,i){return function(h,b){i(h,b,f)}},Rh,yl=class f{static{Rh=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(i,h,b,v){this.textModelResolverService=h,this.languageService=b,this.languageFeaturesService=v,this.toUnhook=new d,this.toUnhookForKeyboard=new d,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=i,this.linkDecorations=this.editor.createDecorationsCollection();let w=new ls(i);this.toUnhook.add(w),this.toUnhook.add(w.onMouseMoveOrRelevantKeyDown(([x,I])=>{this.startFindDefinitionFromMouse(x,I??void 0)})),this.toUnhook.add(w.onExecute((x)=>{if(this.isEnabled(x))this.gotoDefinition(x.target.position,x.hasSideBySideModifier).catch((I)=>{Z(I)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(w.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(i){return i.getContribution(Rh.ID)}async startFindDefinitionFromCursor(i){await this.startFindDefinition(i),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown((h)=>{if(h)this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))}startFindDefinitionFromMouse(i,h){if(i.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(i,h)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}let b=i.target.position;this.startFindDefinition(b)}async startFindDefinition(i){this.toUnhookForKeyboard.clear();let h=i?this.editor.getModel()?.getWordAtPosition(i):null;if(!h){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===h.startColumn&&this.currentWordAtPosition.endColumn===h.endColumn&&this.currentWordAtPosition.word===h.word)return;this.currentWordAtPosition=h;let b=new lp(this.editor,15);if(this.previousPromise)this.previousPromise.cancel(),this.previousPromise=null;this.previousPromise=Wt((x)=>this.findDefinition(i,x));let v;try{v=await this.previousPromise}catch(x){Z(x);return}if(!v||!v.length||!b.validate(this.editor)){this.removeLinkDecorations();return}let w=v[0].originSelectionRange?t.lift(v[0].originSelectionRange):new t(i.lineNumber,h.startColumn,i.lineNumber,h.endColumn);if(v.length>1){let x=w;for(let{originSelectionRange:I}of v)if(I)x=t.plusRange(x,I);this.addDecoration(x,new En().appendText(e(1135,"Click to show {0} definitions.",v.length)))}else{let x=v[0];if(!x.uri)return;return this.textModelResolverService.createModelReference(x.uri).then((I)=>{if(!I.object||!I.object.textEditorModel){I.dispose();return}let{object:{textEditorModel:E}}=I,{startLineNumber:T}=x.range;if(T<1||T>E.getLineCount()){I.dispose();return}let O=this.getPreviewValue(E,T,x),A=this.languageService.guessLanguageIdByFilepathOrFirstLine(E.uri);this.addDecoration(w,O?new En().appendCodeblock(A?A:"",O):void 0),I.dispose()})}}getPreviewValue(i,h,b){let v=b.range;if(v.endLineNumber-v.startLineNumber>=Rh.MAX_SOURCE_PREVIEW_LINES)v=this.getPreviewRangeBasedOnIndentation(i,h);return v=i.validateRange(v),this.stripIndentationFromPreviewRange(i,h,v)}stripIndentationFromPreviewRange(i,h,b){let w=i.getLineFirstNonWhitespaceColumn(h);for(let I=h+1;I<b.endLineNumber;I++){let E=i.getLineFirstNonWhitespaceColumn(I);w=Math.min(w,E)}return i.getValueInRange(b).replace(new RegExp(`^\\s{${w-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(i,h){let b=i.getLineFirstNonWhitespaceColumn(h),v=Math.min(i.getLineCount(),h+Rh.MAX_SOURCE_PREVIEW_LINES),w=h+1;for(;w<v;w++){let x=i.getLineFirstNonWhitespaceColumn(w);if(b===x)break}return new t(h,1,w+1,1)}addDecoration(i,h){let b={range:i,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:h}};this.linkDecorations.set([b])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(i,h){return this.editor.hasModel()&&i.isLeftClick&&i.isNoneOrSingleMouseDown&&i.target.type===6&&!(i.target.detail.injectedText?.options instanceof _c)&&(i.hasTriggerModifier||(h?h.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(i,h){let b=this.editor.getModel();if(!b)return Promise.resolve(null);return ta(this.languageFeaturesService.definitionProvider,b,i,!1,h)}async gotoDefinition(i,h){return this.editor.setPosition(i),this.editor.invokeWithinContext((b)=>{let v=!h&&this.editor.getOption(101)&&!this.isInPeekEditor(b);return new ia({openToSide:h,openInPeek:v,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(b)})}isInPeekEditor(i){let h=i.get(K);return Ti.inPeekEditor.getValue(h)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};yl=Rh=pT([IS(1,_n),IS(2,yt),IS(3,V)],yl);pe(yl.ID,yl,2);var qn="editor.action.inlineSuggest.commit",kd="editor.action.inlineSuggest.commitAlternativeAction",Jp="editor.action.inlineSuggest.showPrevious",Qp="editor.action.inlineSuggest.showNext",Tl="editor.action.inlineSuggest.jump",em="editor.action.inlineSuggest.hide",kh="editor.action.inlineSuggest.toggleShowCollapsed",LS="editor.action.inlineSuggest.renameSymbol";var DS=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Go=function(f,i){return function(h,b){i(h,b,f)}},tm,im=class f extends n{constructor(i,h,b){super();this.editor=i,this.model=h,this.instantiationService=b,this.alwaysShowToolbar=Ne(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=u(this,(v)=>{let w=this.model.read(v)?.primaryGhostText.read(v);if(!this.alwaysShowToolbar.read(v)||!w||w.parts.length===0)return this.sessionPosition=void 0,null;let x=w.parts[0].column;if(this.sessionPosition&&this.sessionPosition.lineNumber!==w.lineNumber)this.sessionPosition=void 0;let I=new s(w.lineNumber,Math.min(x,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=I,I}),this._register(zn((v,w)=>{let x=this.model.read(v);if(!x||!this.alwaysShowToolbar.read(v))return;let I=u((T)=>{let O=T.store.add(this.instantiationService.createInstance(_s.hot.read(T),this.editor,!0,this.position,x.selectedInlineCompletionIndex,x.inlineCompletionsCount,x.activeCommands,x.warning,()=>{}));return i.addContentWidget(O),T.store.add(R(()=>i.removeContentWidget(O))),T.store.add(W((A)=>{if(!this.position.read(A))return;if(x.lastTriggerKind.read(A)!==Gr.Explicit)x.triggerExplicitly()})),O}),E=Zr(this,(T,O)=>!!this.position.read(T)||!!O);w.add(W((T)=>{if(E.read(T))I.read(T)}))}))}};im=DS([Go(2,D)],im);var mT=At("inline-suggestion-hints-next",y.chevronRight,e(1270,"Icon for show next parameter hint.")),fT=At("inline-suggestion-hints-previous",y.chevronLeft,e(1271,"Icon for show previous parameter hint.")),_s=class f extends n{static{tm=this}static{this.hot=pb(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(i,h,b){let v=new cr(i,h,b,!0,()=>this._commandService.executeCommand(i));return v.tooltip=this.keybindingService.appendKeybinding(h,i,this._contextKeyService),v}constructor(i,h,b,v,w,x,I,E,T,O,A,Y,ee){super();this.editor=i,this.withBorder=h,this._position=b,this._currentSuggestionIdx=v,this._suggestionCount=w,this._extraCommands=x,this._warning=I,this._relayout=E,this._commandService=T,this.keybindingService=A,this._contextKeyService=Y,this._menuService=ee,this.id=`InlineSuggestionHintsContentWidget${tm.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=u((te)=>{let oe=this._warning.read(te);if(!oe)return;if(typeof oe.message==="string")return oe.message;return te.store.add(Za(oe.message)).element}),this._warningMessageNode=de.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:u((te)=>this._warning.read(te)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=Le("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,Le("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(Jp,e(1272,"Previous"),J.asClassName(fT))),this.availableSuggestionCountAction=this._register(new cr("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(Qp,e(1273,"Next"),J.asClassName(mT))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(l.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new _e(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new _e(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(W((te)=>{this._warningMessageContentNode.read(te),this._warningMessageNode.readEffect(te),this._relayout()})),this.toolBar=this._register(O.createInstance(ES,this.nodes.toolBar,l.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:(te)=>te.startsWith("primary")},actionViewItemProvider:(te,oe)=>{if(te instanceof Ni)return O.createInstance(TE,te,void 0);if(te===this.availableSuggestionCountAction){let ne=new kE(void 0,te,{label:!0,icon:!1});return ne.setClass("availableSuggestionCount"),ne}return},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((te)=>{tm._dropDownVisible=te})),this._register(W((te)=>{this._position.read(te),this.editor.layoutContentWidget(this)})),this._register(W((te)=>{let oe=this._suggestionCount.read(te),ne=this._currentSuggestionIdx.read(te);if(oe!==void 0)this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${ne+1}/${oe}`;else this.clearAvailableSuggestionCountLabelDebounced.schedule();if(oe!==void 0&&oe>1)this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0;else this.disableButtonsDebounced.schedule()})),this._register(W((te)=>{let ne=this._extraCommands.read(te).map((re)=>({class:void 0,id:re.command.id,enabled:!0,tooltip:re.command.tooltip||"",label:re.command.title,run:()=>this._commandService.executeCommand(re.command.id,...re.command.arguments??[])}));for(let[re,he]of this.inlineCompletionsActionsMenus.getActions())for(let ue of he)if(ue instanceof Ni)ne.push(ue);if(ne.length>0)ne.unshift(new ot);this.toolBar.setAdditionalSecondaryActions(ne)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};_s=tm=DS([Go(8,Be),Go(9,D),Go(10,fe),Go(11,K),Go(12,wi)],_s);class kE extends Fl{constructor(){super(...arguments);this._className=void 0}setClass(f){this._className=f}render(f){if(super.render(f),this._className)f.classList.add(this._className)}updateTooltip(){}}class TE extends Xa{updateLabel(){let f=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!f)return super.updateLabel();if(this.label){let i=Le("div.keybinding").root;this._register(new va(i,vi,{disableTitle:!0,...A0})).set(f),this.label.textContent=this._action.label,this.label.appendChild(i),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}var ES=class f extends yw{constructor(i,h,b,v,w,x,I,E,T){super(i,{resetMenu:h,...b},v,w,x,I,E,T);this.menuId=h,this.options2=b,this.menuService=v,this.contextKeyService=w,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this.additionalPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){let{primary:i,secondary:h}=Jf(this.menu.getActions(this.options2?.menuOptions),this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);h.push(...this.additionalActions),i.unshift(...this.prependedPrimaryActions),i.push(...this.additionalPrimaryActions),this.setActions(i,h)}setPrependedPrimaryActions(i){if(et(this.prependedPrimaryActions,i,(h,b)=>h===b))return;this.prependedPrimaryActions=i,this.updateToolbar()}setAdditionalSecondaryActions(i){if(et(this.additionalActions,i,(h,b)=>h===b))return;this.additionalActions=i,this.updateToolbar()}};ES=DS([Go(3,wi),Go(4,K),Go(5,Fn),Go(6,fe),Go(7,Be),Go(8,In)],ES);function oa(f,i,h){let b=xt(f);if(i<b.left+3||i>b.left+b.width-3||h<b.top+3||h>b.top+b.height-3)return!1;return!0}function om(f,i,h){if(f==="on")return!0;if(f==="off")return!1;return Th(i,h.event)}function Th(f,i){if(f==="altKey")return i.ctrlKey||i.metaKey;return i.altKey}class NE{constructor(f,i,h,b){this.value=f,this.isComplete=i,this.hasLoadingMessage=h,this.options=b}}class Nh extends n{constructor(f,i){super();this._editor=f,this._computer=i,this._onResult=this._register(new r),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new nm((h)=>this._triggerAsyncComputation(h),0)),this._syncComputationScheduler=this._register(new nm((h)=>this._triggerSyncComputation(h),0)),this._loadingMessageScheduler=this._register(new nm((h)=>this._triggerLoadingMessage(h),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){if(this._asyncIterable)this._asyncIterable.cancel(),this._asyncIterable=null;this._options=void 0,super.dispose()}get _hoverTime(){return this._editor.getOption(69).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(f,i){this._options=i,this._state=f,this._fireResult(i)}_triggerAsyncComputation(f){if(this._setState(2,f),this._syncComputationScheduler.schedule(f,this._secondWaitTime),this._computer.computeAsync)this._asyncIterableDone=!1,this._asyncIterable=IR((i)=>this._computer.computeAsync(f,i)),(async()=>{try{for await(let i of this._asyncIterable)if(i)this._result.push(i),this._fireResult(f);if(this._asyncIterableDone=!0,this._state===3||this._state===4)this._setState(0,f)}catch(i){Z(i)}})();else this._asyncIterableDone=!0}_triggerSyncComputation(f){if(this._computer.computeSync)this._result=this._result.concat(this._computer.computeSync(f));this._setState(this._asyncIterableDone?0:3,f)}_triggerLoadingMessage(f){if(this._state===3)this._setState(4,f)}_fireResult(f){if(this._state===1||this._state===2)return;let i=this._state===0,h=this._state===4;this._onResult.fire(new NE(this._result.slice(0),i,h,f))}start(f,i){if(f===0){if(this._state===0)this._setState(1,i),this._asyncComputationScheduler.schedule(i,this._firstWaitTime),this._loadingMessageScheduler.schedule(i,this._loadingMessageTime)}else switch(this._state){case 0:this._triggerAsyncComputation(i),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(i);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(i);break}}cancel(){if(this._asyncComputationScheduler.cancel(),this._syncComputationScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable)this._asyncIterable.cancel(),this._asyncIterable=null;this._result=[],this._options=void 0,this._state=0}get options(){return this._options}}class nm extends n{constructor(f,i){super();this._scheduler=this._register(new _e(()=>f(this._options),i))}schedule(f,i){this._options=f,this._scheduler.schedule(i)}cancel(){this._scheduler.cancel()}}class Uh{constructor(f,i,h,b){this.priority=f,this.range=i,this.initialMousePosX=h,this.initialMousePosY=b,this.type=1}equals(f){return f.type===1&&this.range.equalsRange(f.range)}canAdoptVisibleHover(f,i){return f.type===1&&i.lineNumber===this.range.startLineNumber}}class na{constructor(f,i,h,b,v,w){this.priority=f,this.owner=i,this.range=h,this.initialMousePosX=b,this.initialMousePosY=v,this.supportsMarkerHover=w,this.type=2}equals(f){return f.type===2&&this.owner===f.owner}canAdoptVisibleHover(f,i){return f.type===2&&this.owner===f.owner}}class Bo{constructor(f,i){this.renderedHoverParts=f,this.disposables=i}dispose(){for(let f of this.renderedHoverParts)f.dispose();this.disposables?.dispose()}}var Ma=new class f{constructor(){this._participants=[]}register(i){this._participants.push(i)}getAll(){return this._participants}};class Td{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new r,this._onDidResize=new r,this._sashListener=new d,this._size=new nt(0,0),this._minSize=new nt(0,0),this._maxSize=new nt(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new nr(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new nr(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new nr(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:sw.North}),this._southSash=new nr(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:sw.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let f,i=0,h=0;this._sashListener.add(k.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{if(f===void 0)this._onDidWillResize.fire(),f=this._size,i=0,h=0})),this._sashListener.add(k.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{if(f!==void 0)f=void 0,i=0,h=0,this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(this._eastSash.onDidChange((b)=>{if(f)h=b.currentX-b.startX,this.layout(f.height+i,f.width+h),this._onDidResize.fire({dimension:this._size,done:!1,east:!0})})),this._sashListener.add(this._westSash.onDidChange((b)=>{if(f)h=-(b.currentX-b.startX),this.layout(f.height+i,f.width+h),this._onDidResize.fire({dimension:this._size,done:!1,west:!0})})),this._sashListener.add(this._northSash.onDidChange((b)=>{if(f)i=-(b.currentY-b.startY),this.layout(f.height+i,f.width+h),this._onDidResize.fire({dimension:this._size,done:!1,north:!0})})),this._sashListener.add(this._southSash.onDidChange((b)=>{if(f)i=b.currentY-b.startY,this.layout(f.height+i,f.width+h),this._onDidResize.fire({dimension:this._size,done:!1,south:!0})})),this._sashListener.add(k.any(this._eastSash.onDidReset,this._westSash.onDidReset)((b)=>{if(this._preferredSize)this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(k.any(this._northSash.onDidReset,this._southSash.onDidReset)((b)=>{if(this._preferredSize)this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0})}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(f,i,h,b){this._northSash.state=f?3:0,this._eastSash.state=i?3:0,this._southSash.state=h?3:0,this._westSash.state=b?3:0}layout(f=this.size.height,i=this.size.width){let{height:h,width:b}=this._minSize,{height:v,width:w}=this._maxSize;f=Math.max(h,Math.min(v,f)),i=Math.max(b,Math.min(w,i));let x=new nt(i,f);if(!nt.equals(x,this._size))this.domNode.style.height=f+"px",this.domNode.style.width=i+"px",this._size=x,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout()}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(f){this._maxSize=f}get maxSize(){return this._maxSize}set minSize(f){this._minSize=f}get minSize(){return this._minSize}set preferredSize(f){this._preferredSize=f}get preferredSize(){return this._preferredSize}}var _T=30,bT=24;class RS extends n{constructor(f,i=new nt(10,10)){super();this._editor=f,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new Td),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=nt.lift(i),this._resizableNode.layout(i.height,i.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((h)=>{if(this._resize(new nt(h.dimension.width,h.dimension.height)),h.done)this._isResizing=!1})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?s.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(f){let i=this._editor.getDomNode(),h=this._editor.getScrolledVisiblePosition(f);if(!i||!h)return;return xt(i).top+h.top-_T}_availableVerticalSpaceBelow(f){let i=this._editor.getDomNode(),h=this._editor.getScrolledVisiblePosition(f);if(!i||!h)return;let b=xt(i),v=Hs(i.ownerDocument.body),w=b.top+h.top+h.height;return v.height-w-bT}_findPositionPreference(f,i){let h=Math.min(this._availableVerticalSpaceBelow(i)??1/0,f),b=Math.min(this._availableVerticalSpaceAbove(i)??1/0,f),v=Math.min(Math.max(b,h),f),w=Math.min(f,v),x;if(this._editor.getOption(69).above)x=w<=b?1:2;else x=w<=h?2:1;if(x===1)this._resizableNode.enableSashes(!0,!0,!1,!1);else this._resizableNode.enableSashes(!1,!0,!0,!1);return x}_resize(f){this._resizableNode.layout(f.height,f.width)}}var vT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},rm=function(f,i){return function(h,b){i(h,b,f)}},qo,OE=30,sm=class f extends RS{static{qo=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new nt(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(i,h,b,v,w){let x=i.getOption(75)+8,I=150,E=new nt(150,x);super(i,E);this._configurationService=b,this._accessibilityService=v,this._keybindingService=w,this._hover=this._register(new zf(!0)),this._onDidResize=this._register(new r),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new r),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new r),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=E,this._hoverVisibleKey=o.hoverVisible.bindTo(h),this._hoverFocusedKey=o.hoverFocused.bindTo(h),_(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{if(this.isVisible)this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration((O)=>{if(O.hasChanged(59))this._updateFont()}));let T=this._register(ii(this._resizableNode.domNode));this._register(T.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(T.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll((O)=>{this._onDidScroll.fire(O)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return qo.ID}static _applyDimensions(i,h,b){let v=typeof h==="number"?`${h}px`:h,w=typeof b==="number"?`${b}px`:b;i.style.width=v,i.style.height=w}_setContentsDomNodeDimensions(i,h){let b=this._hover.contentsDomNode;return qo._applyDimensions(b,i,h)}_setContainerDomNodeDimensions(i,h){let b=this._hover.containerDomNode;return qo._applyDimensions(b,i,h)}_setScrollableElementDimensions(i,h){let b=this._hover.scrollbar.getDomNode();return qo._applyDimensions(b,i,h)}_setHoverWidgetDimensions(i,h){this._setContainerDomNodeDimensions(i,h),this._setScrollableElementDimensions(i,h),this._setContentsDomNodeDimensions(i,h),this._layoutContentWidget()}static _applyMaxDimensions(i,h,b){let v=typeof h==="number"?`${h}px`:h,w=typeof b==="number"?`${b}px`:b;i.style.maxWidth=v,i.style.maxHeight=w}_setHoverWidgetMaxDimensions(i,h){qo._applyMaxDimensions(this._hover.contentsDomNode,i,h),qo._applyMaxDimensions(this._hover.scrollbar.getDomNode(),i,h),qo._applyMaxDimensions(this._hover.containerDomNode,i,h),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof i==="number"?`${i}px`:i),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(i){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(i.width,i.height)}_updateResizableNodeMaxDimensions(){let i=this._findMaximumRenderingWidth()??1/0,h=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new nt(i,h),this._setHoverWidgetMaxDimensions(i,h)}_resize(i){qo._lastDimensions=new nt(i.width,i.height),this._setAdjustedHoverWidgetDimensions(i),this._resizableNode.layout(i.height,i.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){let i=this._renderedHover?.showAtPosition;if(!i)return;return this._positionPreference===1?this._availableVerticalSpaceAbove(i):this._availableVerticalSpaceBelow(i)}_findMaximumRenderingHeight(){let i=this._findAvailableSpaceVertically();if(!i)return;let b=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach((v)=>{b+=v.clientHeight}),Math.min(i,b)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");let i=Array.from(this._hover.contentsDomNode.children).some((h)=>h.scrollWidth>h.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),i}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;let i=this._isHoverTextOverflowing(),h=typeof this._contentWidth>"u"?0:this._contentWidth;if(i||this._hover.containerDomNode.clientWidth<h){let b=Hs(this._hover.containerDomNode.ownerDocument.body).width,v=14;return b-14}else return this._hover.containerDomNode.clientWidth}isMouseGettingCloser(i,h){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=i,this._renderedHover.initialMousePosY=h,!1;let b=xt(this.getDomNode());if(this._renderedHover.closestMouseDistance===void 0)this._renderedHover.closestMouseDistance=ME(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,b.left,b.top,b.width,b.height);let v=ME(i,h,b.left,b.top,b.width,b.height);if(v>this._renderedHover.closestMouseDistance+4)return!1;return this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,v),!0}_setRenderedHover(i){this._renderedHover?.dispose(),this._renderedHover=i,this._hoverVisibleKey.set(!!i),this._hover.containerDomNode.classList.toggle("hidden",!i)}_updateFont(){let{fontSize:i,lineHeight:h}=this._editor.getOption(59),b=this._hover.contentsDomNode;b.style.fontSize=`${i}px`,b.style.lineHeight=`${h/i}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((w)=>this._editor.applyFontInfo(w))}_updateContent(i){let h=this._hover.contentsDomNode;h.style.paddingBottom="",h.textContent="",h.appendChild(i)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){let i=Math.max(this._editor.getLayoutInfo().height/4,250,qo._lastDimensions.height),h=Math.max(this._editor.getLayoutInfo().width*0.66,750,qo._lastDimensions.width);this._resizableNode.maxSize=new nt(h,i),this._setHoverWidgetMaxDimensions(h,i)}_render(i){this._setRenderedHover(i),this._updateFont(),this._updateContent(i.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){if(!this._renderedHover)return null;return{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}}show(i){if(!this._editor||!this._editor.hasModel())return;this._render(i);let h=Wa(this._hover.containerDomNode),b=i.showAtPosition;if(this._positionPreference=this._findPositionPreference(h,b)??1,this.handleContentsChanged(),i.shouldFocus)this._hover.containerDomNode.focus();this._onDidResize.fire();let w=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&h0(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");if(w)this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+w}hide(){if(!this._renderedHover)return;let i=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();if(this._setRenderedHover(void 0),this._resizableNode.maxSize=new nt(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),i)this._editor.focus()}_removeConstraintsRenderNormally(){let i=this._editor.getLayoutInfo();this._resizableNode.layout(i.height,i.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(i){this._minimumSize=new nt(Math.max(this._minimumSize.width,i.width),Math.max(this._minimumSize.height,i.height)),this._updateMinimumWidth()}_updateMinimumWidth(){let i=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new nt(i,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();let i=this._hover.contentsDomNode,h=Wa(i),b=vr(i)+2;if(this._resizableNode.layout(h,b),this._setHoverWidgetDimensions(b,h),h=Wa(i),b=vr(i),this._contentWidth=b,this._updateMinimumWidth(),this._resizableNode.layout(h,b),this._renderedHover?.showAtPosition){let v=Wa(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(v,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){let i=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:i-h.lineHeight})}scrollDown(){let i=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:i+h.lineHeight})}scrollLeft(){let i=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:i-OE})}scrollRight(){let i=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:i+OE})}pageUp(){let i=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:i-h})}pageDown(){let i=this._hover.scrollbar.getScrollPosition().scrollTop,h=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:i+h})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};sm=qo=vT([rm(1,K),rm(2,ie),rm(3,Yt),rm(4,fe)],sm);function ME(f,i,h,b,v,w){let x=h+v/2,I=b+w/2,E=Math.max(Math.abs(f-x)-v/2,0),T=Math.max(Math.abs(i-I)-w/2,0);return Math.sqrt(E*E+T*T)}class $h{constructor(f,i){this._editor=f,this._participants=i}static _getLineDecorations(f,i){if(i.type!==1&&!i.supportsMarkerHover)return[];let h=f.getModel(),b=i.range.startLineNumber;if(b>h.getLineCount())return[];let v=h.getLineMaxColumn(b);return f.getLineDecorations(b).filter((w)=>{if(w.options.isWholeLine)return!0;let x=w.range.startLineNumber===b?w.range.startColumn:1,I=w.range.endLineNumber===b?w.range.endColumn:v;if(w.options.showIfCollapsed){if(x>i.range.startColumn+1||i.range.endColumn-1>I)return!1}else if(x>i.range.startColumn||i.range.endColumn>I)return!1;return!0})}computeAsync(f,i){let h=f.anchor;if(!this._editor.hasModel()||!h)return Wn.EMPTY;let b=$h._getLineDecorations(this._editor,h);return Wn.merge(this._participants.map((v)=>{if(!v.computeAsync)return Wn.EMPTY;return v.computeAsync(h,b,f.source,i)}))}computeSync(f){if(!this._editor.hasModel())return[];let i=f.anchor,h=$h._getLineDecorations(this._editor,i),b=[];for(let v of this._participants)b=b.concat(v.computeSync(i,h,f.source));return ar(b)}}class am{constructor(f,i,h){this.hoverParts=f,this.isComplete=i,this.options=h}filter(f){let i=this.hoverParts.filter((h)=>h.isValidForHoverAnchor(f));if(i.length===this.hoverParts.length)return this;return new PE(this,i,this.isComplete,this.options)}}class PE extends am{constructor(f,i,h,b){super(i,h,b);this.original=f}filter(f){return this.original.filter(f)}}var ST=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},AE=function(f,i){return function(h,b){i(h,b,f)}},FE=g,Tg=class f extends n{get hasContent(){return this._hasContent}constructor(i,h){super();this._keybindingService=i,this._hoverService=h,this.actions=[],this._hasContent=!1,this.hoverElement=FE("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=_(this.hoverElement,FE("div.actions"))}addAction(i){let h=this._keybindingService.lookupKeybinding(i.commandId),b=h?h.getLabel():null;this._hasContent=!0;let v=this._register(tp.render(this.actionsElement,i,b));return this._register(this._hoverService.setupManagedHover(eo("element"),v.actionContainer,v.actionRenderedLabel)),this.actions.push(v),v}append(i){let h=_(this.actionsElement,i);return this._hasContent=!0,h}};Tg=ST([AE(0,fe),AE(1,kn)],Tg);var wT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},HE=function(f,i){return function(h,b){i(h,b,f)}},dm=class f extends n{constructor(i,h,b,v){super();this._container=i,this._getContent=h,this._clipboardService=b,this._hoverService=v,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new $r({label:e(1186,"Copy"),icon:y.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){let i=this._getContent();if(i)await this._clipboardService.writeText(i),Cr(e(1187,"Copied to clipboard"))}};dm=wT([HE(2,ri),HE(3,kn)],dm);class WE{constructor(f,i,h){this.provider=f,this.hover=i,this.ordinal=h}}async function CT(f,i,h,b,v){let w=await Promise.resolve(f.provideHover(h,b,v)).catch(gt);if(!w||!yT(w))return;return new WE(f,w,i)}function eu(f,i,h,b,v=!1){let x=f.ordered(i,v).map((I,E)=>CT(I,E,i,h,b));return Wn.fromPromisesResolveOrder(x).coalesce()}async function BE(f,i,h,b,v=!1){let w=[];for await(let x of eu(f,i,h,b,v))w.push(x.hover);return w}xr("_executeHoverProvider",(f,i,h)=>{let b=f.get(V);return BE(b.hoverProvider,i,h,be.None)});xr("_executeHoverProvider_recursive",(f,i,h)=>{let b=f.get(V);return BE(b.hoverProvider,i,h,be.None,!0)});function yT(f){let i=typeof f.range<"u",h=typeof f.contents<"u"&&f.contents&&f.contents.length>0;return i&&h}var xT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ol=function(f,i){return function(h,b){i(h,b,f)}},Nd=g,IT=At("hover-increase-verbosity",y.addSmall,e(1188,"Icon for increaseing hover verbosity.")),LT=At("hover-decrease-verbosity",y.removeSmall,e(1189,"Icon for decreasing hover verbosity."));class ro{constructor(f,i,h,b,v,w=void 0){this.owner=f,this.range=i,this.contents=h,this.isBeforeContent=b,this.ordinal=v,this.source=w}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}class kS{constructor(f,i,h){this.hover=f,this.hoverProvider=i,this.hoverPosition=h}supportsVerbosityAction(f){switch(f){case Yo.Increase:return this.hover.canIncreaseVerbosity??!1;case Yo.Decrease:return this.hover.canDecreaseVerbosity??!1}}}var ra=class f{constructor(i,h,b,v,w,x,I){this._editor=i,this._markdownRendererService=h,this._configurationService=b,this._languageFeaturesService=v,this._keybindingService=w,this._hoverService=x,this._commandService=I,this.hoverOrdinal=3}createLoadingMessage(i){return new ro(this,i.range,[new En().appendText(e(1190,"Loading..."))],!1,2000)}computeSync(i,h){if(!this._editor.hasModel()||i.type!==1)return[];let b=this._editor.getModel(),v=i.range.startLineNumber,w=b.getLineMaxColumn(v),x=[],I=1000,E=b.getLineLength(v),T=b.getLanguageIdAtPosition(i.range.startLineNumber,i.range.startColumn),O=this._editor.getOption(133),A=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:T}),Y=this._editor.getOption(69).showLongLineWarning,ee=!1;if(O>=0&&E>O&&i.range.startColumn>=O){if(ee=!0,Y)x.push(new ro(this,i.range,[{value:e(1191,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`. [Don't Show Again](command:{0})",Sh),isTrusted:!0}],!1,I++))}if(!ee&&typeof A==="number"&&E>=A){if(Y)x.push(new ro(this,i.range,[{value:e(1192,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`. [Don't Show Again](command:{0})",Sh),isTrusted:!0}],!1,I++))}let te=!1;for(let oe of h){let ne=oe.range.startLineNumber===v?oe.range.startColumn:1,re=oe.range.endLineNumber===v?oe.range.endColumn:w,he=oe.options.hoverMessage;if(!he||Iu(he))continue;if(oe.options.beforeContentClassName)te=!0;let ue=new t(i.range.startLineNumber,ne,i.range.startLineNumber,re);x.push(new ro(this,ue,Ig(he),te,I++))}return x}computeAsync(i,h,b,v){if(!this._editor.hasModel()||i.type!==1)return Wn.EMPTY;let w=this._editor.getModel(),x=this._languageFeaturesService.hoverProvider;if(!x.has(w))return Wn.EMPTY;return this._getMarkdownHovers(x,w,i,v)}async*_getMarkdownHovers(i,h,b,v){let w=b.range.getStartPosition(),x=eu(i,h,w,v);for await(let I of x)if(!Iu(I.hover.contents)){let E=I.hover.range?t.lift(I.hover.range):b.range,T=new kS(I.hover,I.provider,w);yield new ro(this,E,I.hover.contents,!1,I.ordinal,T)}}renderHoverParts(i,h){return this._renderedHoverParts=new VE(h,i.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,i.onContentsChanged),this._renderedHoverParts}handleScroll(i){this._renderedHoverParts?.handleScroll(i)}getAccessibleContent(i){return this._renderedHoverParts?.getAccessibleContent(i)??""}updateMarkdownHoverVerbosityLevel(i,h){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(i,h))}};ra=xT([Ol(1,Er),Ol(2,ie),Ol(3,V),Ol(4,fe),Ol(5,kn),Ol(6,Be)],ra);class tu{constructor(f,i,h,b){this.hoverPart=f,this.hoverElement=i,this.disposables=h,this.actionsContainer=b}dispose(){this.disposables.dispose()}}class VE{constructor(f,i,h,b,v,w,x,I,E,T){this._hoverParticipant=h,this._editor=b,this._commandService=v,this._keybindingService=w,this._hoverService=x,this._configurationService=I,this._markdownRendererService=E,this._onFinishedRendering=T,this._ongoingHoverOperations=new Map,this._disposables=new d,this.renderedHoverParts=this._renderHoverParts(f,i,this._onFinishedRendering),this._disposables.add(R(()=>{this.renderedHoverParts.forEach((O)=>{O.dispose()}),this._ongoingHoverOperations.forEach((O)=>{O.tokenSource.dispose(!0)})}))}_renderHoverParts(f,i,h){return f.sort($n((b)=>b.ordinal,$i)),f.map((b)=>{let v=this._renderHoverPart(b,h);return i.appendChild(v.hoverElement),v})}_renderHoverPart(f,i){let h=this._renderMarkdownHover(f,i),b=h.hoverElement,v=f.source,w=new d;if(w.add(h),!v)return new tu(f,b,w);let x=v.supportsVerbosityAction(Yo.Increase),I=v.supportsVerbosityAction(Yo.Decrease);if(!x&&!I)return new tu(f,b,w);let E=Nd("div.verbosity-actions");b.prepend(E);let T=Nd("div.verbosity-actions-inner");return E.append(T),w.add(this._renderHoverExpansionAction(T,Yo.Increase,x)),w.add(this._renderHoverExpansionAction(T,Yo.Decrease,I)),new tu(f,b,w,T)}_renderMarkdownHover(f,i){return zE(this._editor,f,this._markdownRendererService,i)}_renderHoverExpansionAction(f,i,h){let b=new d,v=i===Yo.Increase,w=_(f,Nd(J.asCSSSelector(v?IT:LT)));w.tabIndex=0;let x=b.add(new dd("mouse",void 0,{target:f,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(b.add(this._hoverService.setupManagedHover(x,w,ET(this._keybindingService,i))),!h)return w.classList.add("disabled"),b;w.classList.add("enabled");let I=()=>this._commandService.executeCommand(i===Yo.Increase?xd:Id,{focus:!0});return b.add(new p0(w,I)),b.add(new f0(w,I,[3,10])),b}handleScroll(f){this.renderedHoverParts.forEach((i)=>{let h=i.actionsContainer;if(!h)return;let b=i.hoverElement,w=f.scrollTop+f.height,{offsetTop:x,clientHeight:I}=b,E=x+I,T=22,O;if(E<=w||x>=w)O=I-T;else O=w-x-T;h.style.top=`${O}px`})}async updateMarkdownHoverPartVerbosityLevel(f,i){let h=this._editor.getModel();if(!h)return;let b=this._getRenderedHoverPartAtIndex(i),v=b?.hoverPart.source;if(!b||!v?.supportsVerbosityAction(f))return;let w=await this._fetchHover(v,h,f);if(!w)return;let x=new kS(w,v.hoverProvider,v.hoverPosition),I=b.hoverPart,E=new ro(this._hoverParticipant,I.range,w.contents,I.isBeforeContent,I.ordinal,x),T=this._updateRenderedHoverPart(i,E);if(!T)return;return{hoverPart:E,hoverElement:T.hoverElement}}getAccessibleContent(f){let i=this.renderedHoverParts.findIndex((w)=>w.hoverPart===f);if(i===-1)return;let h=this._getRenderedHoverPartAtIndex(i);if(!h)return;return h.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(f,i,h){let b=h===Yo.Increase?1:-1,v=f.hoverProvider,w=this._ongoingHoverOperations.get(v);if(w)w.tokenSource.cancel(),b+=w.verbosityDelta;let x=new Ve;this._ongoingHoverOperations.set(v,{verbosityDelta:b,tokenSource:x});let I={verbosityRequest:{verbosityDelta:b,previousHover:f.hover}},E;try{E=await Promise.resolve(v.provideHover(i,f.hoverPosition,x.token,I))}catch(T){gt(T)}return x.dispose(),this._ongoingHoverOperations.delete(v),E}_updateRenderedHoverPart(f,i){if(f>=this.renderedHoverParts.length||f<0)return;let h=this._renderHoverPart(i,this._onFinishedRendering),b=this.renderedHoverParts[f],v=b.hoverElement,w=h.hoverElement,x=Array.from(w.children);v.replaceChildren(...x);let I=new tu(i,v,h.disposables,h.actionsContainer);return b.dispose(),this.renderedHoverParts[f]=I,I}_getRenderedHoverPartAtIndex(f){return this.renderedHoverParts[f]}dispose(){this._disposables.dispose()}}function KE(f,i,h,b){i.sort($n((w)=>w.ordinal,$i));let v=[];for(let w of i){let x=zE(h,w,b,f.onContentsChanged);f.fragment.appendChild(x.hoverElement),v.push(x)}return new Bo(v)}function zE(f,i,h,b){let v=new d,w=Nd("div.hover-row"),x=Nd("div.hover-row-contents");w.appendChild(x);let I=i.contents;for(let T of I){if(Iu(T))continue;let O=Nd("div.markdown-hover"),A=_(O,Nd("div.hover-contents")),Y=v.add(h.render(T,{context:f,asyncRenderCallback:()=>{A.className="hover-contents code-hover-contents",b()}}));A.appendChild(Y.element),x.appendChild(O)}return{hoverPart:i,hoverElement:w,dispose(){v.dispose()}}}function ET(f,i){switch(i){case Yo.Increase:return f.appendKeybinding(e(1193,"Increase Hover Verbosity"),xd);case Yo.Decrease:return f.appendKeybinding(e(1194,"Decrease Hover Verbosity"),Id)}}var UE=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},TS=function(f,i){return function(h,b){i(h,b,f)}},gf=class f{constructor(i){this._editorWorkerService=i}async provideDocumentColors(i,h){return this._editorWorkerService.computeDefaultDocumentColors(i.uri)}provideColorPresentations(i,h,b){let{range:v,color:w}=h,x=new m(new L(Math.round(255*w.red),Math.round(255*w.green),Math.round(255*w.blue),w.alpha)),I=m.Format.CSS.formatRGB(x),E=m.Format.CSS.formatHSL(x),T=m.Format.CSS.formatHexA(x,!0),O=[];return O.push({label:I,textEdit:{range:v,text:I}}),O.push({label:E,textEdit:{range:v,text:E}}),O.push({label:T,textEdit:{range:v,text:T}}),O}};gf=UE([TS(0,_i)],gf);var $_=class f extends n{constructor(i,h){super();this._register(i.colorProvider.register("*",new gf(h)))}};$_=UE([TS(0,V),TS(1,_i)],$_);async function R_(f,i,h,b="auto"){return I_(new $E,f,i,h,b)}function NS(f,i,h,b){return Promise.resolve(h.provideColorPresentations(f,i,b))}class $E{constructor(){}async compute(f,i,h,b){let v=await f.provideDocumentColors(i,h);if(Array.isArray(v))for(let w of v)b.push({colorInfo:w,provider:f});return Array.isArray(v)}}class vk{constructor(){}async compute(f,i,h,b){let v=await f.provideDocumentColors(i,h);if(Array.isArray(v))for(let w of v)b.push({range:w.range,color:[w.color.red,w.color.green,w.color.blue,w.color.alpha]});return Array.isArray(v)}}class wk{constructor(f){this.colorInfo=f}async compute(f,i,h,b){let v=await f.provideColorPresentations(i,this.colorInfo,be.None);if(Array.isArray(v))b.push(...v);return Array.isArray(v)}}async function I_(f,i,h,b,v){let w=!1,x,I=[],E=i.ordered(h);for(let T=E.length-1;T>=0;T--){let O=E[T];if(v!=="always"&&O instanceof gf)x=O;else try{if(await f.compute(O,h,b,I))w=!0}catch(A){gt(A)}}if(w)return I;if(x&&v!=="never")return await f.compute(x,h,b,I),I;return[]}function xk(f,i){let{colorProvider:h}=f.get(V),b=f.get(_t).getModel(i);if(!b)throw lr();let v=f.get(ie).getValue("editor.defaultColorDecorators",{resource:i});return{model:b,colorProviderRegistry:h,defaultColorDecoratorsEnablement:v}}var DT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},OS=function(f,i){return function(h,b){i(h,b,f)}},Od,MS=Object.create({}),hu=class f extends n{static{Od=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1000}static{this.colorDecoratorInnerWidthInEm=0.8}static{this.colorDecoratorMarginInEm=0.2}constructor(i,h,b,v){super();this._editor=i,this._configurationService=h,this._languageFeaturesService=b,this._localToDispose=this._register(new d),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new jE),this._colorDecorationClassRefs=this._register(new d),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new Xg(this._editor));let w=this._editor.getContainerDomNode();w.style.setProperty("--vscode-colorPicker-colorDecoratorWidth",`${Od.colorDecoratorInnerWidthInEm}em`),w.style.setProperty("--vscode-colorPicker-colorDecoratorMargin",`${Od.colorDecoratorMarginInEm}em`),this._register(R(()=>{w.style.removeProperty("--vscode-colorPicker-colorDecoratorWidth"),w.style.removeProperty("--vscode-colorPicker-colorDecoratorMargin")})),this._debounceInformation=v.for(b.colorProvider,"Document Colors",{min:Od.RECOMPUTE_TIME}),this._register(i.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(i.onDidChangeModelLanguage(()=>this.updateColors())),this._register(b.colorProvider.onDidChange(()=>this.updateColors())),this._register(i.onDidChangeConfiguration((x)=>{let I=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168);let E=I!==this._isColorDecoratorsEnabled||x.hasChanged(27),T=x.hasChanged(168);if(E||T)if(this._isColorDecoratorsEnabled)this.updateColors();else this.removeAllDecorations()})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168),this.updateColors()}isEnabled(){let i=this._editor.getModel();if(!i)return!1;let h=i.getLanguageId(),b=this._configurationService.getValue(h);if(b&&typeof b==="object"){let v=b.colorDecorators;if(v&&v.enable!==void 0&&!v.enable)return v.enable}return this._editor.getOption(26)}static get(i){return i.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled){this.removeAllDecorations();return}let i=this._editor.getModel();if(!i||!this._languageFeaturesService.colorProvider.has(i))return;this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{if(!this._timeoutTimer)this._timeoutTimer=new Yn,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(i))})),this.beginCompute()}async beginCompute(){this._computePromise=Wt(async(i)=>{let h=this._editor.getModel();if(!h)return[];let b=new en(!1),v=await R_(this._languageFeaturesService.colorProvider,h,i,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(h,b.elapsed()),v});try{let i=await this._computePromise;this.updateDecorations(i),this.updateColorDecorators(i),this._computePromise=null}catch(i){Z(i)}}stop(){if(this._timeoutTimer)this._timeoutTimer.cancel(),this._timeoutTimer=null;if(this._computePromise)this._computePromise.cancel(),this._computePromise=null;this._localToDispose.clear()}updateDecorations(i){let h=i.map((b)=>({range:{startLineNumber:b.colorInfo.range.startLineNumber,startColumn:b.colorInfo.range.startColumn,endLineNumber:b.colorInfo.range.endLineNumber,endColumn:b.colorInfo.range.endColumn},options:ce.EMPTY}));this._editor.changeDecorations((b)=>{this._decorationsIds=b.deltaDecorations(this._decorationsIds,h),this._colorDatas=new Map,this._decorationsIds.forEach((v,w)=>this._colorDatas.set(v,i[w]))})}updateColorDecorators(i){this._colorDecorationClassRefs.clear();let h=[],b=Od.colorDecoratorInnerWidthInEm+2*Od.colorDecoratorMarginInEm,v=this._editor.getOption(27);for(let x=0;x<i.length&&h.length<v;x++){let{red:I,green:E,blue:T,alpha:O}=i[x].colorInfo.color,A=new L(Math.round(I*255),Math.round(E*255),Math.round(T*255),O),Y=`rgba(${A.r}, ${A.g}, ${A.b}, ${A.a})`,ee=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:Y}));h.push({range:{startLineNumber:i[x].colorInfo.range.startLineNumber,startColumn:i[x].colorInfo.range.startColumn,endLineNumber:i[x].colorInfo.range.endLineNumber,endColumn:i[x].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:V_,inlineClassName:`${ee.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:MS,widthInEm:b}}})}let w=v<i.length?v:!1;this._decoratorLimitReporter.update(i.length,w),this._colorDecoratorIds.set(h)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(i){let h=this._editor.getModel();if(!h)return null;let b=h.getDecorationsInRange(t.fromPositions(i,i)).filter((v)=>this._colorDatas.has(v.id));if(b.length===0)return null;return this._colorDatas.get(b[0].id)}isColorDecoration(i){return this._colorDecoratorIds.has(i)}};hu=Od=DT([OS(1,ie),OS(2,V),OS(3,Ji)],hu);class jE extends n{constructor(){super(...arguments);this._onDidChange=this._register(new r),this._computed=0,this._limited=!1}update(f,i){if(f!==this._computed||i!==this._limited)this._computed=f,this._limited=i,this._onDidChange.fire()}}var GE=g;class PS extends n{constructor(f,i,h){super();this.model=i,this.pixelRatio=h,this._onDidChange=this._register(new r),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new r),this.onColorFlushed=this._onColorFlushed.event,this._domNode=GE(".saturation-wrap"),_(f,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",_(this._domNode,this._canvas),this.selection=GE(".saturation-selection"),_(this._domNode,this.selection),this.layout(),this._register(c(this._domNode,S.POINTER_DOWN,(b)=>this.onPointerDown(b))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(f){if(!f.target||!(f.target instanceof Element))return;this.monitor=this._register(new Ka);let i=xt(this._domNode);if(f.target!==this.selection)this.onDidChangePosition(f.offsetX,f.offsetY);this.monitor.startMonitoring(f.target,f.pointerId,f.buttons,(b)=>this.onDidChangePosition(b.pageX-i.left,b.pageY-i.top),()=>null);let h=c(f.target.ownerDocument,S.POINTER_UP,()=>{if(this._onColorFlushed.fire(),h.dispose(),this.monitor)this.monitor.stopMonitoring(!0),this.monitor=null},!0)}onDidChangePosition(f,i){let h=Math.max(0,Math.min(1,f/this.width)),b=Math.max(0,Math.min(1,1-i/this.height));this.paintSelection(h,b),this._onDidChange.fire({s:h,v:b})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();let f=this.model.color.hsva;this.paintSelection(f.s,f.v)}paint(){let f=this.model.color.hsva,i=new m(new Il(f.h,1,1,1)),h=this._canvas.getContext("2d"),b=h.createLinearGradient(0,0,this._canvas.width,0);b.addColorStop(0,"rgba(255, 255, 255, 1)"),b.addColorStop(0.5,"rgba(255, 255, 255, 0.5)"),b.addColorStop(1,"rgba(255, 255, 255, 0)");let v=h.createLinearGradient(0,0,0,this._canvas.height);v.addColorStop(0,"rgba(0, 0, 0, 0)"),v.addColorStop(1,"rgba(0, 0, 0, 1)"),h.rect(0,0,this._canvas.width,this._canvas.height),h.fillStyle=m.Format.CSS.format(i),h.fill(),h.fillStyle=b,h.fill(),h.fillStyle=v,h.fill()}paintSelection(f,i){this.selection.style.left=`${f*this.width}px`,this.selection.style.top=`${this.height-i*this.height}px`}onDidChangeColor(f){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let i=f.hsva;this.paintSelection(i.s,i.v)}}class AS extends n{constructor(f){super();this._onClicked=this._register(new r),this.onClicked=this._onClicked.event,this._button=_(f,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(c(this._button,S.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}var iu=g;class FS extends n{constructor(f,i,h){super();if(this.model=i,this._onDidChange=this._register(new r),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new r),this.onColorFlushed=this._onColorFlushed.event,h==="standalone")this.domNode=_(f,iu(".standalone-strip")),this.overlay=_(this.domNode,iu(".standalone-overlay"));else this.domNode=_(f,iu(".strip")),this.overlay=_(this.domNode,iu(".overlay"));this.slider=_(this.domNode,iu(".slider")),this.slider.style.top="0px",this._register(c(this.domNode,S.POINTER_DOWN,(b)=>this.onPointerDown(b))),this._register(i.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;let f=this.getValue(this.model.color);this.updateSliderPosition(f)}onDidChangeColor(f){let i=this.getValue(f);this.updateSliderPosition(i)}onPointerDown(f){if(!f.target||!(f.target instanceof Element))return;let i=this._register(new Ka),h=xt(this.domNode);if(this.domNode.classList.add("grabbing"),f.target!==this.slider)this.onDidChangeTop(f.offsetY);i.startMonitoring(f.target,f.pointerId,f.buttons,(v)=>this.onDidChangeTop(v.pageY-h.top),()=>null);let b=c(f.target.ownerDocument,S.POINTER_UP,()=>{this._onColorFlushed.fire(),b.dispose(),i.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(f){let i=Math.max(0,Math.min(1,1-f/this.height));this.updateSliderPosition(i),this._onDidChange.fire(i)}updateSliderPosition(f){this.slider.style.top=`${(1-f)*this.height}px`}}class HS extends FS{constructor(f,i,h){super(f,i,h);this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(f){super.onDidChangeColor(f);let{r:i,g:h,b}=f.rgba,v=new m(new L(i,h,b,1)),w=new m(new L(i,h,b,0));this.overlay.style.background=`linear-gradient(to bottom, ${v} 0%, ${w} 100%)`}getValue(f){return f.hsva.a}}class WS extends FS{constructor(f,i,h){super(f,i,h);this.domNode.classList.add("hue-strip")}getValue(f){return 1-f.hsva.h/360}}var RT=g;class BS extends n{constructor(f,i,h,b){super();if(this.model=i,this.pixelRatio=h,this._insertButton=null,this._domNode=RT(".colorpicker-body"),_(f,this._domNode),this._saturationBox=new PS(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 HS(this._domNode,this.model,b),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new WS(this._domNode,this.model,b),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),b==="standalone")this._insertButton=this._register(new AS(this._domNode)),this._domNode.classList.add("standalone-colorpicker")}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:f,v:i}){let h=this.model.color.hsva;this.model.color=new m(new Il(h.h,f,i,h.a))}onDidOpacityChange(f){let i=this.model.color.hsva;this.model.color=new m(new Il(i.h,i.s,i.v,f))}onDidHueChange(f){let i=this.model.color.hsva,h=(1-f)*360;this.model.color=new m(new Il(h===360?0:h,i.s,i.v,i.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}var kT=g;class VS extends n{constructor(f){super();this._onClicked=this._register(new r),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),_(f,this._button);let i=document.createElement("div");i.classList.add("close-button-inner-div"),_(this._button,i),_(i,kT(".button"+J.asCSSSelector(At("color-picker-close",y.close,e(936,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(c(this._button,S.CLICK,()=>{this._onClicked.fire()}))}}var lm=g;class KS extends n{constructor(f,i,h,b){super();this.model=i,this.type=b,this._closeButton=null,this._domNode=lm(".colorpicker-header"),_(f,this._domNode),this._pickedColorNode=_(this._domNode,lm(".picked-color")),_(this._pickedColorNode,lm("span.codicon.codicon-color-mode")),this._pickedColorPresentation=_(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");let v=e(937,"Click to toggle color options (rgb/hsl/hex)");if(this._pickedColorNode.setAttribute("title",v),this._originalColorNode=_(this._domNode,lm(".original-color")),this._originalColorNode.style.backgroundColor=m.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=h.getColorTheme().getColor(Af)||m.white,this._register(h.onDidColorThemeChange((w)=>{this.backgroundColor=w.getColor(Af)||m.white})),this._register(c(this._pickedColorNode,S.CLICK,()=>this.model.selectNextColorPresentation())),this._register(c(this._originalColorNode,S.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(i.onDidChangeColor(this.onDidChangeColor,this)),this._register(i.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=m.Format.CSS.format(i.color)||"",this._pickedColorNode.classList.toggle("light",i.color.rgba.a<0.5?this.backgroundColor.isLighter():i.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone")this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new VS(this._domNode))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(f){this._pickedColorNode.style.backgroundColor=m.Format.CSS.format(f)||"",this._pickedColorNode.classList.toggle("light",f.rgba.a<0.5?this.backgroundColor.isLighter():f.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}var TT=g;class Cv extends di{constructor(f,i,h,b,v){super();this.model=i,this.pixelRatio=h,this._register(Mh.getInstance(B(f)).onDidChange(()=>this.layout())),this._domNode=TT(".colorpicker-widget"),f.appendChild(this._domNode),this.header=this._register(new KS(this._domNode,this.model,b,v)),this.body=this._register(new BS(this._domNode,this.model,this.pixelRatio,v))}layout(){this.body.layout()}get domNode(){return this._domNode}}class zS extends n{get color(){return this._color}set color(f){if(this._color.equals(f))return;this._color=f,this._onDidChangeColor.fire(f)}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(f){if(this._colorPresentations=f,this.presentationIndex>f.length-1)this.presentationIndex=0;this._onDidChangePresentation.fire(this.presentation)}constructor(f,i,h){super();this.presentationIndex=h,this._onColorFlushed=this._register(new r),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new r),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new r),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=f,this._color=f,this._colorPresentations=i}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(f,i){let h=-1;for(let b=0;b<this.colorPresentations.length;b++)if(i.toLowerCase()===this.colorPresentations[b].label){h=b;break}if(h===-1){let b=i.split("(")[0].toLowerCase();for(let v=0;v<this.colorPresentations.length;v++)if(this.colorPresentations[v].label.toLowerCase().startsWith(b)){h=v;break}}if(h!==-1&&h!==this.presentationIndex)this.presentationIndex=h,this._onDidChangePresentation.fire(this.presentation)}flushColor(){this._onColorFlushed.fire(this._color)}}async function D_(f,i,h){let b=f.getValueInRange(i.range),{red:v,green:w,blue:x,alpha:I}=i.color,E=new L(Math.round(v*255),Math.round(w*255),Math.round(x*255),I),T=new m(E),O=await NS(f,i,h,be.None),A=new zS(T,[],0);return A.colorPresentations=O||[],A.guessColorPresentation(T,b),{range:t.lift(i.range),model:A,provider:h}}function N_(f,i,h,b){let v=[],w=h.presentation.textEdit??{range:i,text:h.presentation.label,forceMoveMarkers:!1};if(h.presentation.additionalTextEdits)v.push(...h.presentation.additionalTextEdits);let x=t.lift(w.range),I=f.getModel()._setTrackedRange(null,x,3);if(b)v.push(...b.map((E)=>({range:E,text:w.text,forceMoveMarkers:!1})));else v.push(w);return f.executeEdits("colorpicker",v),f.pushUndoStop(),f.getModel()._getTrackedRange(I)??x}async function bf(f,i,h,b,v){let w=await NS(f,{range:b,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},v.provider,be.None);i.colorPresentations=w||[]}var NT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},OT=function(f,i){return function(h,b){i(h,b,f)}};class Wl{constructor(f,i,h,b){this.owner=f,this.range=i,this.model=h,this.provider=b,this.forceShowAtRange=!0}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}static fromBaseColor(f,i){return new Wl(f,i.range,i.model,i.provider)}}var Lg=class f{constructor(i,h){this._editor=i,this._themeService=h,this.hoverOrdinal=2}computeSync(i,h,b){return[]}computeAsync(i,h,b,v){return Wn.fromPromise(this._computeAsync(i,h,b))}async _computeAsync(i,h,b){if(!this._editor.hasModel())return[];if(!this._isValidRequest(b))return[];let v=hu.get(this._editor);if(!v)return[];for(let w of h){if(!v.isColorDecoration(w))continue;let x=v.getColorData(w.range.getStartPosition());if(x)return[Wl.fromBaseColor(this,await D_(this._editor.getModel(),x.colorInfo,x.provider))]}return[]}_isValidRequest(i){let h=this._editor.getOption(169);switch(i){case 0:return h==="hover"||h==="clickAndHover";case 1:return h==="click"||h==="clickAndHover";case 2:return!0}}renderHoverParts(i,h){let b=this._editor;if(h.length===0||!b.hasModel())return new Bo([]);let v=b.getOption(75)+8;i.setMinimumDimensions(new nt(302,v));let w=new d,x=h[0],I=b.getModel(),E=x.model;this._colorPicker=w.add(new Cv(i.fragment,E,b.getOption(164),this._themeService,"hover"));let T=!1,O=new t(x.range.startLineNumber,x.range.startColumn,x.range.endLineNumber,x.range.endColumn);w.add(E.onColorFlushed(async(Y)=>{await bf(I,E,Y,O,x),T=!0,O=N_(b,O,E)})),w.add(E.onDidChangeColor((Y)=>{bf(I,E,Y,O,x)})),w.add(b.onDidChangeModelContent((Y)=>{if(T)T=!1;else i.hide(),b.focus()}));let A={hoverPart:Wl.fromBaseColor(this,x),hoverElement:this._colorPicker.domNode,dispose(){w.dispose()}};return new Bo([A])}getAccessibleContent(i){return e(938,"There is a color picker here.")}handleResize(){this._colorPicker?.layout()}handleContentsChanged(){this._colorPicker?.layout()}handleHide(){this._colorPicker?.dispose(),this._colorPicker=void 0}isColorPickerVisible(){return!!this._colorPicker}};Lg=NT([OT(1,je)],Lg);class cm{constructor(f,i){this.range=f,this.direction=i}}class US{constructor(f,i,h){this.hint=f,this.anchor=i,this.provider=h,this._isResolved=!1}with(f){let i=new US(this.hint,f.anchor,this.provider);return i._isResolved=this._isResolved,i._currentResolve=this._currentResolve,i}async resolve(f){if(typeof this.provider.resolveInlayHint!=="function")return;if(this._currentResolve){if(await this._currentResolve,f.isCancellationRequested)return;return this.resolve(f)}if(!this._isResolved)this._currentResolve=this._doResolve(f).finally(()=>this._currentResolve=void 0);await this._currentResolve}async _doResolve(f){try{let i=await Promise.resolve(this.provider.resolveInlayHint(this.hint,f));this.hint.tooltip=i?.tooltip??this.hint.tooltip,this.hint.label=i?.label??this.hint.label,this.hint.textEdits=i?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(i){gt(i),this._isResolved=!1}}}class Md{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(f,i,h,b){let v=[],w=f.ordered(i).reverse().map((x)=>h.map(async(I)=>{try{let E=await x.provideInlayHints(i,I,b);if(E?.hints.length||x.onDidChangeInlayHints)v.push([E??Md._emptyInlayHintList,x])}catch(E){gt(E)}}));if(await Promise.all(w.flat()),b.isCancellationRequested||i.isDisposed())throw new ho;return new Md(h,v,i)}constructor(f,i,h){this._disposables=new d,this.ranges=f,this.provider=new Set;let b=[];for(let[v,w]of i){this._disposables.add(v),this.provider.add(w);for(let x of v.hints){let I=h.validatePosition(x.position),E="before",T=Md._getRangeAtPosition(h,I),O;if(T.getStartPosition().isBefore(I))O=t.fromPositions(T.getStartPosition(),I),E="after";else O=t.fromPositions(I,T.getEndPosition()),E="before";b.push(new US(x,new cm(O,E),w))}}this.items=b.sort((v,w)=>s.compare(v.hint.position,w.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(f,i){let h=i.lineNumber,b=f.getWordAtPosition(i);if(b)return new t(h,b.startColumn,h,b.endColumn);f.tokenization.tokenizeIfCheap(h);let v=f.tokenization.getLineTokens(h),w=i.column-1,x=v.findTokenIndexAtOffset(w),I=v.getStartOffset(x),E=v.getEndOffset(x);if(E-I===1){if(I===w&&x>1)I=v.getStartOffset(x-1),E=v.getEndOffset(x-1);else if(E===w&&x<v.getCount()-1)I=v.getStartOffset(x+1),E=v.getEndOffset(x+1)}return new t(h,I+1,h,E+1)}}function qE(f){return g0(f.id,...f.arguments??[]).toString()}async function ZE(f,i,h,b){let v=f.get(_n),w=f.get(Fn),x=f.get(Be),I=f.get(D),E=f.get(bt);if(await b.item.resolve(be.None),!b.part.location)return;let T=b.part.location,O=[],A=new Set(Pn.getMenuItems(l.EditorContext).map((ee)=>Fh(ee)?ee.command.id:Ya()));for(let ee of Xi.all())if(A.has(ee.desc.id))O.push(new cr(ee.desc.id,Ni.label(ee.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let te=await v.createModelReference(T.uri);try{let oe=new Rd(te.object.textEditorModel,t.getStartPosition(T.range)),ne=b.item.anchor.range;await I.invokeFunction(ee.runEditorCommand.bind(ee),i,oe,ne)}finally{te.dispose()}}));if(b.part.command){let{command:ee}=b.part;O.push(new ot),O.push(new cr(ee.id,ee.title,void 0,!0,async()=>{try{await x.executeCommand(ee.id,...ee.arguments??[])}catch(te){E.notify({severity:Al.Error,source:b.item.provider.displayName,message:te})}}))}let Y=i.getOption(144);w.showContextMenu({domForShadowRoot:Y?i.getDomNode()??void 0:void 0,getAnchor:()=>{let ee=xt(h);return{x:ee.left,y:ee.top+ee.height+8}},getActions:()=>O,onHide:()=>{i.focus()},autoSelectFirstItem:!0})}async function hm(f,i,h,b){let w=await f.get(_n).createModelReference(b.uri);await h.invokeWithinContext(async(x)=>{let I=i.hasSideBySideModifier,E=x.get(K),T=Ti.inPeekEditor.getValue(E),O=!I&&h.getOption(101)&&!T;return new ia({openToSide:I,openInPeek:O,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(x,new Rd(w.object.textEditorModel,t.getStartPosition(b.range)),t.lift(b.range))}),w.dispose()}var MT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Kl=function(f,i){return function(h,b){i(h,b,f)}},zl;class um{constructor(){this._entries=new Oi(50)}get(f){let i=um._key(f);return this._entries.get(i)}set(f,i){let h=um._key(f);this._entries.set(h,i)}static _key(f){return`${f.uri.toString()}/${f.getVersionId()}`}}var XE=Q("IInlayHintsCache");ve(XE,um,1);class ou{constructor(f,i){this.item=f,this.index=i}get part(){let f=this.item.hint.label;if(typeof f==="string")return{label:f};else return f[this.index]}}class YE{constructor(f,i){this.part=f,this.hasTriggerModifier=i}}class JE{constructor(){this._store=new le,this._tokenSource=new Ve}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new Ve,this._store.value=new d,{store:this._store.value,token:this._tokenSource.token}}}var yf=class f{static{zl=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(i){return i.getContribution(zl.ID)??void 0}constructor(i,h,b,v,w,x,I){this._editor=i,this._languageFeaturesService=h,this._inlayHintsCache=v,this._commandService=w,this._notificationService=x,this._instaService=I,this._disposables=new d,this._sessionDisposables=new d,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new Xg(this._editor)),this._debounceInfo=b.for(h.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(h.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(i.onDidChangeModel(()=>this._update())),this._disposables.add(i.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(i.onDidChangeConfiguration((E)=>{if(E.hasChanged(159))this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();let i=this._editor.getOption(159);if(i.enabled==="off")return;let h=this._editor.getModel();if(!h||!this._languageFeaturesService.inlayHintsProvider.has(h))return;if(i.enabled==="on")this._activeRenderMode=0;else{let T,O;if(i.enabled==="onUnlessPressed")T=0,O=1;else T=1,O=0;this._activeRenderMode=T,this._sessionDisposables.add(fa.getInstance().event((A)=>{if(!this._editor.hasModel())return;let Y=A.altKey&&A.ctrlKey&&!(A.shiftKey||A.metaKey)?O:T;if(Y!==this._activeRenderMode){this._activeRenderMode=Y;let ee=this._editor.getModel(),te=this._copyInlayHintsWithCurrentAnchor(ee);this._updateHintsDecorators([ee.getFullModelRange()],te),I.schedule(0)}}))}let b=this._inlayHintsCache.get(h);if(b)this._updateHintsDecorators([h.getFullModelRange()],b);this._sessionDisposables.add(R(()=>{if(!h.isDisposed())this._cacheHintsForFastRestore(h)}));let v,w=new Set;this._sessionDisposables.add(h.onWillDispose(()=>v?.cancel()));let x=this._sessionDisposables.add(new JE),I=new _e(async()=>{let T=Date.now(),{store:O,token:A}=x.reset();try{let Y=await Md.create(this._languageFeaturesService.inlayHintsProvider,h,this._getHintsRanges(),A);if(I.delay=this._debounceInfo.update(h,Date.now()-T),A.isCancellationRequested){Y.dispose();return}for(let ee of Y.provider)if(typeof ee.onDidChangeInlayHints==="function"&&!w.has(ee))w.add(ee),O.add(ee.onDidChangeInlayHints(()=>{if(!I.isScheduled())I.schedule()}));O.add(Y),O.add(R(()=>w.clear())),this._updateHintsDecorators(Y.ranges,Y.items),this._cacheHintsForFastRestore(h)}catch(Y){Z(Y)}},this._debounceInfo.get(h));this._sessionDisposables.add(I),I.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((T)=>{if(T.scrollTopChanged||!I.isScheduled())I.schedule()}));let E=this._sessionDisposables.add(new le);this._sessionDisposables.add(this._editor.onDidChangeModelContent((T)=>{let O=Math.max(I.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+O},E.value=ti(()=>I.schedule(0),O),I.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration((T)=>{if(T.hasChanged(159))I.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>I.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){let i=new d,h=i.add(new ls(this._editor)),b=new d;return i.add(b),i.add(h.onMouseMoveOrRelevantKeyDown((v)=>{let[w]=v,x=this._getInlayHintLabelPart(w),I=this._editor.getModel();if(!x||!I){b.clear();return}let E=new Ve;b.add(R(()=>E.dispose(!0))),x.item.resolve(E.token),this._activeInlayHintPart=x.part.command||x.part.location?new YE(x,w.hasTriggerModifier):void 0;let T=I.validatePosition(x.item.hint.position).lineNumber,O=new t(T,1,T,I.getLineMaxColumn(T)),A=this._getInlineHintsForRange(O);this._updateHintsDecorators([O],A),b.add(R(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([O],A)}))})),i.add(h.onCancel(()=>b.clear())),i.add(h.onExecute(async(v)=>{let w=this._getInlayHintLabelPart(v);if(w){let x=w.part;if(x.location)this._instaService.invokeFunction(hm,v,this._editor,x.location);else if(Mg.is(x.command))await this._invokeCommand(x.command,w.item)}})),i}_getInlineHintsForRange(i){let h=new Set;for(let b of this._decorationsMetadata.values())if(i.containsRange(b.item.anchor.range))h.add(b.item);return Array.from(h)}_installDblClickGesture(i){return this._editor.onMouseUp(async(h)=>{if(h.event.detail!==2)return;let b=this._getInlayHintLabelPart(h);if(!b)return;if(h.event.preventDefault(),await b.item.resolve(be.None),On(b.item.hint.textEdits)){let v=b.item.hint.textEdits.map((w)=>Vt.replace(t.lift(w.range),w.text));this._editor.executeEdits("inlayHint.default",v),i()}})}_installContextMenu(){return this._editor.onContextMenu(async(i)=>{if(!Ee(i.event.target))return;let h=this._getInlayHintLabelPart(i);if(h)await this._instaService.invokeFunction(ZE,this._editor,i.event.target,h)})}_getInlayHintLabelPart(i){if(i.target.type!==6)return;let h=i.target.detail.injectedText?.options;if(h instanceof _c&&h?.attachedData instanceof ou)return h.attachedData;return}async _invokeCommand(i,h){try{await this._commandService.executeCommand(i.id,...i.arguments??[])}catch(b){this._notificationService.notify({severity:Al.Error,source:h.provider.displayName,message:b})}}_cacheHintsForFastRestore(i){let h=this._copyInlayHintsWithCurrentAnchor(i);this._inlayHintsCache.set(i,h)}_copyInlayHintsWithCurrentAnchor(i){let h=new Map;for(let[b,v]of this._decorationsMetadata){if(h.has(v.item))continue;let w=i.getDecorationRange(b);if(w){let x=new cm(w,v.item.anchor.direction),I=v.item.with({anchor:x});h.set(v.item,I)}}return Array.from(h.values())}_getHintsRanges(){let h=this._editor.getModel(),b=this._editor.getVisibleRangesPlusViewportAboveBelow(),v=[];for(let w of b.sort(t.compareRangesUsingStarts)){let x=h.validateRange(new t(w.startLineNumber-30,w.startColumn,w.endLineNumber+30,w.endColumn));if(v.length===0||!t.areIntersectingOrTouching(v[v.length-1],x))v.push(x);else v[v.length-1]=t.plusRange(v[v.length-1],x)}return v}_updateHintsDecorators(i,h){let b=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&i.some((re)=>re.containsPosition(this._cursorInfo.position))){let{position:re}=this._cursorInfo;this._cursorInfo=void 0;let he=new Map;for(let ae of this._editor.getLineDecorations(re.lineNumber)??[]){let xe=this._decorationsMetadata.get(ae.id);if(ae.range.startColumn>re.column)continue;let Me=xe?.decoration.options[xe.item.anchor.direction];if(Me&&Me.attachedData!==zl._whitespaceData){let He=he.get(xe.item)??0;he.set(xe.item,He+Me.content.length)}}let ue=h.filter((ae)=>ae.anchor.range.startLineNumber===re.lineNumber&&ae.anchor.range.endColumn<=re.column),Ie=Array.from(he.values()),Te;while(!0){let ae=ue.shift(),xe=Ie.shift();if(!xe&&!ae)break;if(ae)b.set(ae,xe??0),Te=ae;else if(Te&&xe){let Me=b.get(Te);Me+=xe,Me+=Ie.reduce((He,qe)=>He+qe,0),Ie.length=0;break}}}let{fontSize:v,fontFamily:w,padding:x,isUniform:I}=this._getLayoutInfo(),E=this._editor.getOption(61),T=[],O=(re,he,ue,Ie,Te,ae)=>{let xe={content:ue,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:he.className,cursorStops:Ie,attachedData:Te,widthInEm:ae};T.push({item:re,classNameRef:he,decoration:{range:re.anchor.range,options:{description:"InlayHint",showIfCollapsed:re.anchor.range.isEmpty(),collapseOnReplaceEdit:!re.anchor.range.isEmpty(),stickiness:0,[re.anchor.direction]:this._activeRenderMode===0?xe:void 0}}})},A=(re,he)=>{let ue=v/3|0,Ie=ue/E,Te=this._ruleFactory.createClassNameRef({width:`${ue}px`,display:"inline-block"});O(re,Te,"",he?ts.Right:ts.None,zl._whitespaceData,Ie)},Y=this._editor.getOption(159).maximumLength,ee="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(ee,w);let te={line:0,totalLen:0};for(let re=0;re<h.length;re++){let he=h[re];if(te.line!==he.anchor.range.startLineNumber)te={line:he.anchor.range.startLineNumber,totalLen:0};if(Y&&te.totalLen>Y)continue;if(he.hint.paddingLeft)A(he,!1);let ue=typeof he.hint.label==="string"?[{label:he.hint.label}]:he.hint.label,Ie=b.get(he),Te=0;for(let ae=0;ae<ue.length;ae++){let xe=ue[ae],Me=ae===0,He=ae===ue.length-1,qe={fontSize:`${v}px`,fontFamily:`var(${ee}), ${br.fontFamily}`,verticalAlign:I?"baseline":"middle",unicodeBidi:"isolate"};if(On(he.hint.textEdits))qe.cursor="default";if(this._fillInColors(qe,he.hint),(xe.command||xe.location)&&this._activeInlayHintPart?.part.item===he&&this._activeInlayHintPart.part.index===ae){if(qe.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier)qe.color=an(KR),qe.cursor="pointer"}let Oe=xe.label;te.totalLen+=Oe.length;let Ze=!1,dt=Y!==0?te.totalLen-Y:0;if(dt>0)Oe=Oe.slice(0,-dt)+"…",Ze=!0;if(Te+=Oe.length,Ie!==void 0){let Qe=Te-Ie;if(Qe>=0)Te-=Qe,Oe=Oe.slice(0,-(1+Qe))+"…",Ze=!0}if(x)if(Me&&(He||Ze))qe.padding=`1px ${Math.max(1,v/4)|0}px`,qe.borderRadius=`${v/4|0}px`;else if(Me)qe.padding=`1px 0 1px ${Math.max(1,v/4)|0}px`,qe.borderRadius=`${v/4|0}px 0 0 ${v/4|0}px`;else if(He||Ze)qe.padding=`1px ${Math.max(1,v/4)|0}px 1px 0`,qe.borderRadius=`0 ${v/4|0}px ${v/4|0}px 0`;else qe.padding="1px 0 1px 0";if(O(he,this._ruleFactory.createClassNameRef(qe),PT(Oe),He&&!he.hint.paddingRight?ts.Right:ts.None,new ou(he,ae)),Ze)break}if(Ie!==void 0&&Te<Ie){let ae=Ie-Te;O(he,this._ruleFactory.createClassNameRef({})," ".repeat(ae),ts.None)}if(he.hint.paddingRight)A(he,!0);if(T.length>zl._MAX_DECORATORS)break}let oe=[];for(let[re,he]of this._decorationsMetadata){let ue=this._editor.getModel()?.getDecorationRange(re);if(ue&&i.some((Ie)=>Ie.containsRange(ue)))oe.push(re),he.classNameRef.dispose(),this._decorationsMetadata.delete(re)}let ne=Fo.capture(this._editor);this._editor.changeDecorations((re)=>{let he=re.deltaDecorations(oe,T.map((ue)=>ue.decoration));for(let ue=0;ue<he.length;ue++){let Ie=T[ue];this._decorationsMetadata.set(he[ue],Ie)}}),ne.restore(this._editor)}_fillInColors(i,h){if(h.kind===$v.Parameter)i.backgroundColor=an(eI),i.color=an(QR);else if(h.kind===$v.Type)i.backgroundColor=an(XR),i.color=an(ZR);else i.backgroundColor=an(e0),i.color=an(Q_)}_getLayoutInfo(){let i=this._editor.getOption(159),h=i.padding,b=this._editor.getOption(61),v=this._editor.getOption(58),w=i.fontSize;if(!w||w<5||w>b)w=b;let x=i.fontFamily||v;return{fontSize:w,fontFamily:x,padding:h,isUniform:!h&&x===v&&w===b}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(let i of this._decorationsMetadata.values())i.classNameRef.dispose();this._decorationsMetadata.clear()}};yf=zl=MT([Kl(1,V),Kl(2,Ji),Kl(3,XE),Kl(4,Be),Kl(5,bt),Kl(6,D)],yf);function PT(f){return f.replace(/[ \t]/g," ")}ke.registerCommand("_executeInlayHintProvider",async(f,...i)=>{let[h,b]=i;Ae(q.isUri(h)),Ae(t.isIRange(b));let{inlayHintsProvider:v}=f.get(V),w=await f.get(_n).createModelReference(h);try{let x=await Md.create(v,w.object.textEditorModel,[t.lift(b)],be.None),I=x.items.map((E)=>E.hint);return setTimeout(()=>x.dispose(),0),I}finally{w.dispose()}});var AT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Pd=function(f,i){return function(h,b){i(h,b,f)}};class $S extends na{constructor(f,i,h,b){super(10,i,f.item.anchor.range,h,b,!0);this.part=f}}var $g=class f extends ra{constructor(i,h,b,v,w,x,I,E){super(i,h,w,I,b,v,E);this._resolverService=x,this.hoverOrdinal=6}suggestHoverAnchor(i){if(!yf.get(this._editor))return null;if(i.target.type!==6)return null;let b=i.target.detail.injectedText?.options;if(!(b instanceof _c&&b.attachedData instanceof ou))return null;return new $S(b.attachedData,this,i.event.posx,i.event.posy)}computeSync(){return[]}computeAsync(i,h,b,v){if(!(i instanceof $S))return Wn.EMPTY;return new Wn(async(w)=>{let{part:x}=i;if(await x.item.resolve(v),v.isCancellationRequested)return;let I;if(typeof x.item.hint.tooltip==="string")I=new En().appendText(x.item.hint.tooltip);else if(x.item.hint.tooltip)I=x.item.hint.tooltip;if(I)w.emitOne(new ro(this,i.range,[I],!1,0));if(On(x.item.hint.textEdits))w.emitOne(new ro(this,i.range,[new En().appendText(e(1220,"Double-click to insert"))],!1,10001));let E;if(typeof x.part.tooltip==="string")E=new En().appendText(x.part.tooltip);else if(x.part.tooltip)E=x.part.tooltip;if(E)w.emitOne(new ro(this,i.range,[E],!1,1));if(x.part.location||x.part.command){let O,Y=this._editor.getOption(86)==="altKey"?ge?e(1221,"cmd + click"):e(1222,"ctrl + click"):ge?e(1223,"option + click"):e(1224,"alt + click");if(x.part.location&&x.part.command)O=new En().appendText(e(1225,"Go to Definition ({0}), right click for more",Y));else if(x.part.location)O=new En().appendText(e(1226,"Go to Definition ({0})",Y));else if(x.part.command)O=new En(`[${e(1227,"Execute Command")}](${qE(x.part.command)} "${x.part.command.title}") (${Y})`,{isTrusted:!0});if(O)w.emitOne(new ro(this,i.range,[O],!1,1e4))}let T=this._resolveInlayHintLabelPartHover(x,v);for await(let O of T)w.emitOne(O)})}async*_resolveInlayHintLabelPartHover(i,h){if(!i.part.location)return;let{uri:b,range:v}=i.part.location,w=await this._resolverService.createModelReference(b);try{let x=w.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(x))return;for await(let I of eu(this._languageFeaturesService.hoverProvider,x,new s(v.startLineNumber,v.startColumn),h))if(!Iu(I.hover.contents))yield new ro(this,i.item.anchor.range,I.hover.contents,!1,2+I.ordinal)}finally{w.dispose()}}};$g=AT([Pd(1,Er),Pd(2,fe),Pd(3,kn),Pd(4,ie),Pd(5,_n),Pd(6,V),Pd(7,Be)],$g);var QE=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Ul=function(f,i){return function(h,b){i(h,b,f)}},jS,GS,gm=jS=class f extends n{constructor(i,h,b,v,w,x,I){super();let E=h.hoverParts;this._renderedHoverParts=this._register(new qS(i,b,E,v,w,x,I));let T=h.options,O=T.anchor,{showAtPosition:A,showAtSecondaryPosition:Y}=jS.computeHoverPositions(i,O.range,E);this.shouldAppearBeforeContent=E.some((ee)=>ee.isBeforeContent),this.showAtPosition=A,this.showAtSecondaryPosition=Y,this.initialMousePosX=O.initialMousePosX,this.initialMousePosY=O.initialMousePosY,this.shouldFocus=T.shouldFocus,this.source=T.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(i){this._renderedHoverParts.focusHoverPartWithIndex(i)}async updateHoverVerbosityLevel(i,h,b){this._renderedHoverParts.updateHoverVerbosityLevel(i,h,b)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(i,h,b){let v=1;if(i.hasModel()){let O=i._getViewModel(),A=O.coordinatesConverter,Y=A.convertModelRangeToViewRange(h),ee=O.getLineMinColumn(Y.startLineNumber),te=new s(Y.startLineNumber,ee);v=A.convertViewPositionToModelPosition(te).column}let{startLineNumber:w,startColumn:x}=h,I;for(let O of b){let A=O.range,Y=A.startLineNumber===w,ee=A.endLineNumber===w;if(Y&&ee){let oe=A.startColumn,ne=Math.min(x,oe);x=Math.max(ne,v)}if(O.forceShowAtRange)I=A}let E,T;if(I){let O=I.getStartPosition();E=O,T=O}else E=h.getStartPosition(),T=new s(w,x);return{showAtPosition:E,showAtSecondaryPosition:T}}};gm=jS=QE([Ul(4,fe),Ul(5,kn),Ul(6,ri)],gm);class o0{constructor(f,i){this._statusBar=i,f.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var qS=class f extends n{static{GS=this}static{this._DECORATION_OPTIONS=ce.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(i,h,b,v,w,x,I){super();this._hoverService=x,this._clipboardService=I,this._renderedParts=[],this._perPartDisposables=new Map,this._focusedHoverPartIndex=-1,this._context=v,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(h,b,v,w,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(i,b)),this._updateMarkdownAndColorParticipantInfo(h)}_createEditorDecorations(i,h){if(h.length===0)return n.None;let b=h[0].range;for(let w of h){let x=w.range;b=t.plusRange(b,x)}let v=i.createDecorationsCollection();return v.set([{range:b,options:GS._DECORATION_OPTIONS}]),R(()=>{v.clear()})}_renderParts(i,h,b,v,w){let x=new Tg(v,w),I={fragment:this._fragment,statusBar:x,...b},E=new d;E.add(x);for(let O of i){let A=this._renderHoverPartsForParticipant(h,O,I);E.add(A);for(let Y of A.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:O,hoverPart:Y.hoverPart,hoverElement:Y.hoverElement})}let T=this._renderStatusBar(this._fragment,x);if(T)E.add(T),this._renderedParts.push({type:"statusBar",hoverElement:T.hoverElement,actions:T.actions});return E}_renderHoverPartsForParticipant(i,h,b){let v=i.filter((x)=>x.owner===h);if(!(v.length>0))return new Bo([]);return h.renderHoverParts(b,v)}_renderStatusBar(i,h){if(!h.hasContent)return;return new o0(i,h)}_registerListenersOnRenderedParts(){return this._renderedParts.forEach((i,h)=>{this._createListenersForPart(h,i)}),R(()=>{for(let i of this._perPartDisposables.values())i.dispose();this._perPartDisposables.clear()})}_createListenersForPart(i,h){let b=new d,v=h.hoverElement;if(v.tabIndex=0,b.add(c(v,S.FOCUS_IN,(w)=>{w.stopPropagation(),this._focusedHoverPartIndex=i})),b.add(c(v,S.FOCUS_OUT,(w)=>{w.stopPropagation(),this._focusedHoverPartIndex=-1})),h.type==="hoverPart"&&!(h.hoverPart instanceof Wl)&&!h.participant.hideCopyButton)b.add(new dm(v,()=>h.participant.getAccessibleContent(h.hoverPart),this._clipboardService,this._hoverService));this._perPartDisposables.set(i,b)}_updateMarkdownAndColorParticipantInfo(i){let h=i.find((b)=>b instanceof ra&&!(b instanceof $g));if(h)this._markdownHoverParticipant=h;this._colorHoverParticipant=i.find((b)=>b instanceof Lg)}focusHoverPartWithIndex(i){if(i<0||i>=this._renderedParts.length)return;this._renderedParts[i].hoverElement.focus()}async updateHoverVerbosityLevel(i,h,b){if(!this._markdownHoverParticipant)return;let v;if(h>=0)v={start:h,endExclusive:h+1};else v=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let w=v.start;w<v.endExclusive;w++){let x=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,w);if(x===void 0)continue;let I=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(i,x);if(!I)continue;let E=this._perPartDisposables.get(w);if(E)E.dispose(),this._perPartDisposables.delete(w);this._renderedParts[w]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:I.hoverPart,hoverElement:I.hoverElement},this._createListenersForPart(w,this._renderedParts[w])}if(b)if(h>=0)this.focusHoverPartWithIndex(h);else this._context.focus();this._context.onContentsChanged()}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(i,h){let b=this._renderedParts[h];if(!b||b.type!=="hoverPart")return;if(b.participant!==i)return;let w=this._renderedParts.findIndex((x)=>x.type==="hoverPart"&&x.participant===i);if(w===-1)throw new H;return h-w}_findRangeOfMarkdownHoverParts(i){let h=this._renderedParts.slice(),b=h.findIndex((x)=>x.type==="hoverPart"&&x.participant===i),v=h.reverse().findIndex((x)=>x.type==="hoverPart"&&x.participant===i),w=v>=0?h.length-v:v;return{start:b,endExclusive:w+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}};qS=GS=QE([Ul(4,fe),Ul(5,kn),Ul(6,ri)],qS);var FT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},pm=function(f,i){return function(h,b){i(h,b,f)}},mm=class f extends n{constructor(i,h,b,v,w){super();this._editor=i,this._instantiationService=h,this._keybindingService=b,this._hoverService=v,this._clipboardService=w,this._currentResult=null,this._renderedContentHover=this._register(new le),this._onContentsChanged=this._register(new r),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(sm,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new Nh(this._editor,new $h(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){let i=[];for(let h of Ma.getAll()){let b=this._instantiationService.createInstance(h,this._editor);i.push(b)}return i.sort((h,b)=>h.hoverOrdinal-b.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach((h)=>h.handleResize?.())})),this._register(this._contentHoverWidget.onDidScroll((h)=>{this._participants.forEach((b)=>b.handleScroll?.(h))})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach((h)=>h.handleContentsChanged?.())})),i}_registerListeners(){this._register(this._hoverOperation.onResult((h)=>{let b=h.hasLoadingMessage?this._addLoadingMessage(h):h.value;this._withResult(new am(b,h.isComplete,h.options))}));let i=this._contentHoverWidget.getDomNode();this._register(wt(i,"keydown",(h)=>{if(h.equals(9))this.hide()})),this._register(wt(i,"mouseleave",(h)=>{this._onMouseLeave(h)})),this._register(Ft.onDidChange(()=>{if(this._contentHoverWidget.position&&this._currentResult)this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(i,h,b,v,w){if(!(this._contentHoverWidget.position&&this._currentResult)){if(i)return this._startHoverOperationIfNecessary(i,h,b,v,!1),!0;return!1}let I=this._editor.getOption(69).sticky,E=w&&this._contentHoverWidget.isMouseGettingCloser(w.event.posx,w.event.posy);if(I&&E){if(i)this._startHoverOperationIfNecessary(i,h,b,v,!0);return!0}if(!i)return this._setCurrentResult(null),!1;if(this._currentResult&&this._currentResult.options.anchor.equals(i))return!0;if(!(this._currentResult&&i.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)))return this._setCurrentResult(null),this._startHoverOperationIfNecessary(i,h,b,v,!1),!0;if(this._currentResult)this._setCurrentResult(this._currentResult.filter(i));return this._startHoverOperationIfNecessary(i,h,b,v,!1),!0}_startHoverOperationIfNecessary(i,h,b,v,w){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(i))return;this._hoverOperation.cancel();let I={anchor:i,source:b,shouldFocus:v,insistOnKeepingHoverVisible:w};this._hoverOperation.start(h,I)}_setCurrentResult(i){let h=i;if(this._currentResult===h)return;if(h&&h.hoverParts.length===0)h=null;if(this._currentResult=h,this._currentResult)this._showHover(this._currentResult);else this._hideHover()}_addLoadingMessage(i){for(let h of this._participants){if(!h.createLoadingMessage)continue;let b=h.createLoadingMessage(i.options.anchor);if(!b)continue;return i.value.slice(0).concat([b])}return i.value}_withResult(i){if(!(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete))this._setCurrentResult(i);if(!i.isComplete)return;let v=i.hoverParts.length===0,w=i.options.insistOnKeepingHoverVisible;if(v&&w)return;this._setCurrentResult(i)}_showHover(i){let h=this._getHoverContext();if(this._renderedContentHover.value=new gm(this._editor,i,this._participants,h,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren)this._contentHoverWidget.show(this._renderedContentHover.value);else this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach((i)=>i.handleHide?.())}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:(w)=>{this._contentHoverWidget.setMinimumDimensions(w)},focus:()=>this.focus()}}showsOrWillShow(i){if(this._contentHoverWidget.isResizing)return!0;if(this._isMouseOnCodeActionWidget(i))return!0;let b=this._findHoverAnchorCandidates(i);if(!(b.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,i);let w=b[0];return this._startShowingOrUpdateHover(w,0,0,!1,i)}_findHoverAnchorCandidates(i){let h=[];for(let v of this._participants){if(!v.suggestHoverAnchor)continue;let w=v.suggestHoverAnchor(i);if(!w)continue;h.push(w)}let b=i.target;switch(b.type){case 6:{h.push(new Uh(0,b.range,i.event.posx,i.event.posy));break}case 7:{let v=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!b.detail.isAfterLines&&typeof b.detail.horizontalDistanceToText==="number"&&b.detail.horizontalDistanceToText<v))break;h.push(new Uh(0,b.range,i.event.posx,i.event.posy));break}}return h.sort((v,w)=>w.priority-v.priority),h}_isMouseOnCodeActionWidget(i){let h=i.event.browserEvent.target;if(h instanceof Element&&!!h.closest(".action-widget"))return!0;return!1}_onMouseLeave(i){let h=this._editor.getDomNode();if(!h||!oa(h,i.x,i.y))this.hide()}startShowingAtRange(i,h,b,v){this._startShowingOrUpdateHover(new Uh(0,i,void 0,void 0),h,b,v,null)}async updateHoverVerbosityLevel(i,h,b){this._renderedContentHover.value?.updateHoverVerbosityLevel(i,h,b)}focusedHoverPartIndex(){return this._renderedContentHover.value?.focusedHoverPartIndex??-1}containsNode(i){return i?this._contentHoverWidget.getDomNode().contains(i):!1}focus(){if(this._renderedContentHover.value?.hoverPartsCount===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(i){this._renderedContentHover.value?.focusHoverPartWithIndex(i)}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){return this._renderedContentHover.value?.isColorPickerVisible()??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};mm=FT([pm(1,D),pm(2,fe),pm(3,kn),pm(4,ri)],mm);function O_(f){let i=f.target;return!!i&&i.type===6&&i.detail.injectedText?.options.attachedData===MS}var HT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ZS=function(f,i){return function(h,b){i(h,b,f)}},XS,mr=class f extends n{static{XS=this}static{this.ID="editor.contrib.contentHover"}constructor(i,h,b,v){super();this._editor=i,this._instantiationService=b,this._keybindingService=v,this._onHoverContentsChanged=this._register(new r),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new _e(()=>{if(this._mouseMoveEvent)this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(h.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(h.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((w)=>{if(w.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}static get(i){return i.getContribution(XS.ID)}_hookListeners(){let i=this._editor.getOption(69);if(this._hoverSettings={enabled:i.enabled,sticky:i.sticky,hidingDelay:i.hidingDelay},i.enabled==="off")this._cancelSchedulerAndHide();this._listenersStore.add(this._editor.onMouseDown((h)=>this._onEditorMouseDown(h))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h))),this._listenersStore.add(this._editor.onMouseLeave((h)=>this._onEditorMouseLeave(h))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((h)=>this._onEditorScrollChanged(h)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(i){if(this._ignoreMouseEvents)return;if(i.scrollTopChanged||i.scrollLeftChanged)this.hideContentHover()}_onEditorMouseDown(i){if(this._ignoreMouseEvents)return;if(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(i))return;this.hideContentHover()}_shouldKeepHoverWidgetVisible(i){return this._isMouseOnContentHoverWidget(i)||this._isContentWidgetResizing()||O_(i)}_isMouseOnContentHoverWidget(i){if(!this._contentWidget||!this._contentWidget.getDomNode().isConnected)return!1;return oa(this._contentWidget.getDomNode(),i.event.posx,i.event.posy)}_onEditorMouseUp(){if(this._ignoreMouseEvents)return;this._isMouseDown=!1}_onEditorMouseLeave(i){if(this._ignoreMouseEvents)return;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(i))return;this.hideContentHover()}_shouldKeepCurrentHover(i){let h=this._contentWidget;if(!h)return!1;let b=this._hoverSettings.sticky,v=(O,A)=>{let Y=this._isMouseOnContentHoverWidget(O);return A&&Y},w=(O)=>{let A=h.isColorPickerVisible,Y=this._isMouseOnContentHoverWidget(O),ee=A&&Y,te=A&&this._isMouseDown;return ee||te},x=(O,A)=>{let Y=O.event.browserEvent.view;if(!Y)return!1;return A&&h.containsNode(Y.document.activeElement)&&!Y.getSelection()?.isCollapsed},{isFocused:I,isResizing:E}=h,T=this._hoverSettings.sticky&&h.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||I||E||T||v(i,b)||w(i)||x(i,b)}_onEditorMouseMove(i){if(this._ignoreMouseEvents)return;if(this._isMouseDown&&!this._shouldKeepHoverWidgetVisible(i)){this._cancelSchedulerAndHide();return}if(this._mouseMoveEvent=i,this._shouldKeepCurrentHover(i)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){if(!this._reactToEditorMouseMoveRunner.isScheduled())this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(i)}_shouldRescheduleHoverComputation(){let i=this._hoverSettings.hidingDelay;return(this._contentWidget?.isVisible??!1)&&this._hoverSettings.sticky&&i>0}_reactToEditorMouseMove(i){if(om(this._hoverSettings.enabled,this._editor.getOption(86),i)){if(this._getOrCreateContentWidget().showsOrWillShow(i))return}this.hideContentHover()}_onKeyDown(i){if(this._ignoreMouseEvents||!this._contentWidget)return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&Th(this._editor.getOption(86),i)&&this._mouseMoveEvent){if(!this._contentWidget.isVisible)this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}let h=this._isPotentialKeyboardShortcut(i),b=mu(i.keyCode);if(h||b)return;if(this._contentWidget.isFocused&&i.keyCode===2)return;this.hideContentHover()}_isPotentialKeyboardShortcut(i){if(!this._editor.hasModel()||!this._contentWidget)return!1;let h=this._keybindingService.softDispatch(i,this._editor.getDomNode()),b=h.kind===1,v=h.kind===2&&(h.commandId===Vp||h.commandId===xd||h.commandId===Id)&&this._contentWidget.isVisible;return b||v}hideContentHover(){if(_s.dropDownVisible)return;this._contentWidget?.hide()}_getOrCreateContentWidget(){if(!this._contentWidget)this._contentWidget=this._instantiationService.createInstance(mm,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()));return this._contentWidget}showContentHover(i,h,b,v){this._getOrCreateContentWidget().startShowingAtRange(i,h,b,v)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(i,h,b){this._getOrCreateContentWidget().updateHoverVerbosityLevel(i,h,b)}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()}};mr=XS=HT([ZS(1,Fn),ZS(2,D),ZS(3,fe)],mr);var Xn;(function(f){f.NoAutoFocus="noAutoFocus",f.FocusIfVisible="focusIfVisible",f.AutoFocusImmediately="autoFocusImmediately"})(Xn||(Xn={}));class YS extends U{constructor(){super({id:Vp,label:p(1165,"Show or Focus Hover"),metadata:{description:p(1166,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[Xn.NoAutoFocus,Xn.FocusIfVisible,Xn.AutoFocusImmediately],enumDescriptions:[e(1162,"The hover will not automatically take focus."),e(1163,"The hover will take focus only if it is already visible."),e(1164,"The hover will automatically take focus when it appears.")],default:Xn.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:tn(2089,2087),weight:100}})}run(f,i,h){if(!i.hasModel())return;let b=mr.get(i);if(!b)return;let v=h?.focus,w=Xn.FocusIfVisible;if(Object.values(Xn).includes(v))w=v;else if(typeof v==="boolean"&&v)w=Xn.AutoFocusImmediately;let x=(E)=>{let T=i.getPosition(),O=new t(T.lineNumber,T.column,T.lineNumber,T.column);b.showContentHover(O,1,2,E)},I=i.getOption(2)===2;if(b.isHoverVisible)if(w!==Xn.NoAutoFocus)b.focus();else x(I);else x(I||w===Xn.AutoFocusImmediately)}}class JS extends U{constructor(){super({id:hE,label:p(1167,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:p(1168,"Show the definition preview hover in the editor.")}})}run(f,i){let h=mr.get(i);if(!h)return;let b=i.getPosition();if(!b)return;let v=new t(b.lineNumber,b.column,b.lineNumber,b.column),w=yl.get(i);if(!w)return;w.startFindDefinitionFromCursor(b).then(()=>{h.showContentHover(v,1,2,!0)})}}class QS extends U{constructor(){super({id:uE,label:p(1169,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(f,i){mr.get(i)?.hideContentHover()}}class gw extends U{constructor(){super({id:gE,label:p(1170,"Scroll Up Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:16,weight:100},metadata:{description:p(1171,"Scroll up the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.scrollUp()}}class _w extends U{constructor(){super({id:pE,label:p(1172,"Scroll Down Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:18,weight:100},metadata:{description:p(1173,"Scroll down the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.scrollDown()}}class vw extends U{constructor(){super({id:mE,label:p(1174,"Scroll Left Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:15,weight:100},metadata:{description:p(1175,"Scroll left the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.scrollLeft()}}class Sw extends U{constructor(){super({id:fE,label:p(1176,"Scroll Right Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:17,weight:100},metadata:{description:p(1177,"Scroll right the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.scrollRight()}}class ww extends U{constructor(){super({id:_E,label:p(1178,"Page Up Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:p(1179,"Page up the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.pageUp()}}class Cw extends U{constructor(){super({id:bE,label:p(1180,"Page Down Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:p(1181,"Page down the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.pageDown()}}class xw extends U{constructor(){super({id:vE,label:p(1182,"Go To Top Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:p(1183,"Go to the top of the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.goToTop()}}class Iw extends U{constructor(){super({id:SE,label:p(1184,"Go To Bottom Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:p(1185,"Go to the bottom of the editor hover.")}})}run(f,i){let h=mr.get(i);if(!h)return;h.goToBottom()}}class Lw extends U{constructor(){super({id:xd,label:wE,alias:"Increase Hover Verbosity Level",precondition:o.hoverVisible})}run(f,i,h){let b=mr.get(i);if(!b)return;let v=h?.index!==void 0?h.index:b.focusedHoverPartIndex();b.updateHoverVerbosityLevel(Yo.Increase,v,h?.focus)}}class Ew extends U{constructor(){super({id:Id,label:CE,alias:"Decrease Hover Verbosity Level",precondition:o.hoverVisible})}run(f,i,h){let b=mr.get(i);if(!b)return;let v=h?.index!==void 0?h.index:b.focusedHoverPartIndex();mr.get(i)?.updateHoverVerbosityLevel(Yo.Decrease,v,h?.focus)}}var WT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},nu=function(f,i){return function(h,b){i(h,b,f)}},rn=g;class v0{constructor(f,i,h){this.owner=f,this.range=i,this.marker=h}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}var m0={type:1,filter:{include:Lt.QuickFix},triggerAction:Pi.QuickFixHover},fm=class f{constructor(i,h,b,v,w,x){this._editor=i,this._markerDecorationsService=h,this._openerService=b,this._languageFeaturesService=v,this._menuService=w,this._contextKeyService=x,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(i,h){if(!this._editor.hasModel()||i.type!==1&&!i.supportsMarkerHover)return[];let b=this._editor.getModel(),v=i.range;if(!b.isValidRange(i.range))return[];let w=v.startLineNumber,x=b.getLineMaxColumn(w),I=[];for(let E of h){let T=E.range.startLineNumber===w?E.range.startColumn:1,O=E.range.endLineNumber===w?E.range.endColumn:x,A=this._markerDecorationsService.getMarker(b.uri,E);if(!A)continue;let Y=new t(i.range.startLineNumber,T,i.range.startLineNumber,O);I.push(new v0(this,Y,A))}return I}renderHoverParts(i,h){if(!h.length)return new Bo([]);let b=[];h.forEach((x)=>{let I=this._renderMarkerHover(x);i.fragment.appendChild(I.hoverElement),b.push(I)});let v=h.length===1?h[0]:h.sort((x,I)=>Zt.compare(x.marker.severity,I.marker.severity))[0],w=this._renderMarkerStatusbar(i,v);return new Bo(b,w)}getAccessibleContent(i){let{marker:h}=i,b=On(h.relatedInformation)?h.relatedInformation.map((v)=>`${xi(v.resource)}(${v.startLineNumber}, ${v.startColumn}): ${v.message}`).join(`
32
- `):void 0;return[h.message,b].filter((v)=>!!v).join(`
33
- `)}_renderMarkerHover(i){let h=new d,b=rn("div.hover-row"),v=_(b,rn("div.marker.hover-contents")),{source:w,message:x,code:I,relatedInformation:E}=i.marker;this._editor.applyFontInfo(v);let T=_(v,rn("span"));if(T.style.whiteSpace="pre-wrap",T.innerText=x,w||I)if(I&&typeof I!=="string"){let A=rn("span");if(w){let oe=_(A,rn("span"));oe.innerText=w}let Y=_(A,rn("a.code-link"));Y.setAttribute("href",I.target.toString(!0)),h.add(c(Y,"click",(oe)=>{this._openerService.open(I.target),oe.preventDefault(),oe.stopPropagation()}));let ee=_(Y,rn("span"));ee.innerText=I.value;let te=_(v,A);te.style.opacity="0.6",te.style.paddingLeft="6px"}else{let A=_(v,rn("span"));A.style.opacity="0.6",A.style.paddingLeft="6px",A.innerText=w&&I?`${w}(${I})`:w?w:`(${I})`}if(On(E))for(let{message:A,resource:Y,startLineNumber:ee,startColumn:te}of E){let oe=_(v,rn("div"));oe.style.marginTop="8px";let ne=_(oe,rn("a"));ne.innerText=`${xi(Y)}(${ee}, ${te}): `,ne.style.cursor="pointer",h.add(c(ne,"click",(he)=>{if(he.stopPropagation(),he.preventDefault(),this._openerService){let ue={selection:{startLineNumber:ee,startColumn:te}};this._openerService.open(Y,{fromUserGesture:!0,editorOptions:ue}).catch(Z)}}));let re=_(oe,rn("span"));re.innerText=A,this._editor.applyFontInfo(re)}return{hoverPart:i,hoverElement:b,dispose:()=>h.dispose()}}_renderMarkerStatusbar(i,h){let b=new d;if(h.marker.severity===Zt.Error||h.marker.severity===Zt.Warning||h.marker.severity===Zt.Info){let x=Xs.get(this._editor);if(x)i.statusBar.addAction({label:e(1195,"View Problem"),commandId:as.ID,run:()=>{i.hide(),x.showAtMarker(h.marker),this._editor.focus()}})}let v=[];for(let[,x]of this._menuService.getMenuActions(l.MarkerHoverStatusBar,this._contextKeyService))for(let I of x)if(I instanceof Ni&&I.enabled)v.push(I);let w=()=>{for(let x of v)i.statusBar.addAction({label:x.label,commandId:x.id,iconClass:x.class,run:()=>{i.hide(),this._editor.setSelection(t.lift(h.range)),x.run()}})};if(!this._editor.getOption(104)){let x=i.statusBar.append(rn("div"));if(this.recentMarkerCodeActionsInfo)if(fw.makeKey(this.recentMarkerCodeActionsInfo.marker)===fw.makeKey(h.marker)){if(!this.recentMarkerCodeActionsInfo.hasCodeActions){if(v.length===0)x.textContent=e(1196,"No quick fixes available")}}else this.recentMarkerCodeActionsInfo=void 0;let I=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?n.None:ti(()=>x.textContent=e(1197,"Checking for quick fixes..."),200,b);if(!x.textContent)x.textContent=String.fromCharCode(160);let E=this.getCodeActions(h.marker);b.add(R(()=>E.cancel())),E.then((T)=>{if(I.dispose(),this.recentMarkerCodeActionsInfo={marker:h.marker,hasCodeActions:T.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){if(T.dispose(),v.length===0)x.textContent=e(1198,"No quick fixes available");else x.style.display="none";w();return}x.style.display="none";let O=!1;b.add(R(()=>{if(!O)T.dispose()})),i.statusBar.addAction({label:e(1199,"Quick Fix..."),commandId:Js,run:(Y)=>{O=!0;let ee=Mr.get(this._editor),te=xt(Y);ee?.showCodeActions(m0,T,{x:te.left,y:te.top,width:te.width,height:te.height})}});let A=T.validActions.find((Y)=>Y.action.isAI);if(A)i.statusBar.addAction({label:A.action.title,commandId:A.action.command?.id??"",iconClass:J.asClassName(y.sparkle),run:()=>{Mr.get(this._editor)?.applyCodeAction(A,!1,!1,Tr.FromProblemsHover)}});else w();i.onContentsChanged()},Z)}else w();return b}getCodeActions(i){return Wt((h)=>Qs(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new t(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn),m0,ya.None,h))}};fm=WT([nu(1,Kg),nu(2,Pr),nu(3,V),nu(4,wi),nu(5,K)],fm);class Dw{constructor(f){this._editor=f}computeSync(f){let i=(w)=>({value:w}),h=this._editor.getLineDecorations(f.lineNumber),b=[],v=f.laneOrLine==="lineNo";if(!h)return b;for(let w of h){let x=w.options.glyphMargin?.position??Ao.Center;if(!v&&x!==f.laneOrLine)continue;let I=v?w.options.lineNumberHoverMessage:w.options.glyphMarginHoverMessage;if(!I||Iu(I))continue;b.push(...Ig(I).map(i))}return b}}var BT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},VT=function(f,i){return function(h,b){i(h,b,f)}},Rw,D0=g,_m=class f extends n{static{Rw=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(i,h){super();this._markdownRendererService=h,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new d),this._editor=i,this._isVisible=!1,this._messages=[],this._hover=this._register(new zf(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new Nh(this._editor,new Dw(this._editor))),this._register(this._hoverOperation.onResult((b)=>this._withResult(b))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration((b)=>{if(b.hasChanged(59))this._updateFont()})),this._register(wt(this._hover.containerDomNode,"mouseleave",(b)=>{this._onMouseLeave(b)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Rw.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((h)=>this._editor.applyFontInfo(h))}_onModelDecorationsChanged(){if(this._isVisible&&this._hoverComputerOptions)this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions)}showsOrWillShow(i){let h=i.target;if(h.type===2&&h.detail.glyphMarginLane)return this._startShowingAt(h.position.lineNumber,h.detail.glyphMarginLane),!0;if(h.type===3)return this._startShowingAt(h.position.lineNumber,"lineNo"),!0;return!1}_startShowingAt(i,h){if(this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===i&&this._hoverComputerOptions.laneOrLine===h)return;this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:i,laneOrLine:h},this._hoverOperation.start(0,this._hoverComputerOptions)}hide(){if(this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),!this._isVisible)return;this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible)}_withResult(i){if(this._messages=i.value,this._messages.length>0)this._renderMessages(i.options.lineNumber,i.options.laneOrLine,this._messages);else this.hide()}_renderMessages(i,h,b){this._renderDisposeables.clear();let v=document.createDocumentFragment();for(let w of b){let x=D0("div.hover-row.markdown-hover"),I=_(x,D0("div.hover-contents")),E=this._renderDisposeables.add(this._markdownRendererService.render(w.value,{context:this._editor}));I.appendChild(E.element),v.appendChild(x)}this._updateContents(v),this._showAt(i,h)}_updateContents(i){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(i),this._updateFont()}_showAt(i,h){if(!this._isVisible)this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible);let b=this._editor.getLayoutInfo(),v=this._editor.getTopForLineNumber(i),w=this._editor.getScrollTop(),x=this._editor.getOption(75),I=this._hover.containerDomNode.clientHeight,E=v-w-(I-x)/2,T=b.glyphMarginLeft+b.glyphMarginWidth+(h==="lineNo"?b.lineNumbersWidth:0),A=b.height-I,Y=Math.max(0,Math.min(Math.round(E),A));if(this._editor.getOption(51)){let te=this._editor.getDomNode();if(te){let oe=xt(te);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${oe.left+T}px`,this._hover.containerDomNode.style.top=`${oe.top+Y}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${T}px`,this._hover.containerDomNode.style.top=`${Y}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(i){let h=this._editor.getDomNode();if(!h||!oa(h,i.x,i.y))this.hide()}};_m=Rw=BT([VT(1,Er)],_m);var KT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},zT=function(f,i){return function(h,b){i(h,b,f)}},ru=class f extends n{static{this.ID="editor.contrib.marginHover"}constructor(i,h){super();this._editor=i,this._instantiationService=h,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new _e(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((b)=>{if(b.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}_hookListeners(){let i=this._editor.getOption(69);if(this._hoverSettings={enabled:i.enabled,sticky:i.sticky,hidingDelay:i.hidingDelay},i.enabled!=="off")this._listenersStore.add(this._editor.onMouseDown((h)=>this._onEditorMouseDown(h))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h)));else this._listenersStore.add(this._editor.onMouseMove((h)=>this._onEditorMouseMove(h))),this._listenersStore.add(this._editor.onKeyDown((h)=>this._onKeyDown(h)));this._listenersStore.add(this._editor.onMouseLeave((h)=>this._onEditorMouseLeave(h))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((h)=>this._onEditorScrollChanged(h)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(i){if(i.scrollTopChanged||i.scrollLeftChanged)this.hideGlyphHover()}_onEditorMouseDown(i){if(this._hoverState.mouseDown=!0,this._isMouseOnGlyphHoverWidget(i))return;this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(i){let h=this._glyphWidget?.getDomNode();if(h)return oa(h,i.event.posx,i.event.posy);return!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(i){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(i))return;this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(i){let h=this._hoverSettings.sticky,b=this._isMouseOnGlyphHoverWidget(i);return h&&b}_onEditorMouseMove(i){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=i,this._shouldNotRecomputeCurrentHoverWidget(i)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(i)}_reactToEditorMouseMove(i){if(!i)return;if(!om(this._hoverSettings.enabled,this._editor.getOption(86),i)){this.hideGlyphHover();return}if(this._tryShowHoverWidget(i))return;this.hideGlyphHover()}_tryShowHoverWidget(i){return this._getOrCreateGlyphWidget().showsOrWillShow(i)}_onKeyDown(i){if(!this._editor.hasModel())return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&Th(this._editor.getOption(86),i)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}if(mu(i.keyCode))return;this.hideGlyphHover()}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){if(!this._glyphWidget)this._glyphWidget=this._instantiationService.createInstance(_m,this._editor);return this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};ru=KT([zT(1,D)],ru);var Gl=new class f{constructor(){this._implementations=[]}register(i){return this._implementations.push(i),{dispose:()=>{let h=this._implementations.indexOf(i);if(h!==-1)this._implementations.splice(h,1)}}}getImplementations(){return this._implementations}};class kw{}class Tw{}class Nw{}pe(mr.ID,mr,2);pe(ru.ID,ru,2);N(YS);N(JS);N(QS);N(gw);N(_w);N(vw);N(Sw);N(ww);N(Cw);N(xw);N(Iw);N(Lw);N(Ew);Ma.register(ra);Ma.register(fm);ke.registerCommand(Sh,(f)=>{f.get(ie).updateValue("editor.hover.showLongLineWarning",!1)});hi((f,i)=>{let h=f.getColor(Jh);if(h)i.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${h.transparent(0.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${h.transparent(0.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${h.transparent(0.5)}; }`)});Gl.register(new kw);Gl.register(new Tw);Gl.register(new Nw);class N0{constructor(f,i){this._link=f,this._provider=i}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(f){if(this._link.url)return this._link.url;if(typeof this._provider.resolveLink==="function")return Promise.resolve(this._provider.resolveLink(this._link,f)).then((i)=>{if(this._link=i||this._link,this._link.url)return this.resolve(f);return Promise.reject(Error("missing"))});return Promise.reject(Error("missing"))}}class su{static{this.Empty=new su([])}constructor(f){this._disposables=new d;let i=[];for(let[h,b]of f){let v=h.links.map((w)=>new N0(w,b));if(i=su._union(i,v),Ps(h))this._disposables??=new d,this._disposables.add(h)}this.links=i}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(f,i){let h=[],b,v,w,x;for(b=0,w=0,v=f.length,x=i.length;b<v&&w<x;){let I=f[b],E=i[w];if(t.areIntersectingOrTouching(I.range,E.range)){b++;continue}if(t.compareRangesUsingStarts(I.range,E.range)<0)h.push(I),b++;else h.push(E),w++}for(;b<v;b++)h.push(f[b]);for(;w<x;w++)h.push(i[w]);return h}}async function Ow(f,i,h){let b=[],v=f.ordered(i).reverse().map(async(x,I)=>{try{let E=await x.provideLinks(i,h);if(E)b[I]=[E,x]}catch(E){gt(E)}});await Promise.all(v);let w=new su(ar(b));if(h.isCancellationRequested)w.dispose(),w=su.Empty;return w}ke.registerCommand("_executeLinkProvider",async(f,...i)=>{let[h,b]=i;if(Ae(h instanceof q),typeof b!=="number")b=0;let{linkProvider:v}=f.get(V),w=f.get(_t).getModel(h);if(!w)return[];let x=await Ow(v,w,be.None);if(!x)return[];for(let E=0;E<Math.min(b,x.links.length);E++)await x.links[E].resolve(be.None);let I=x.links.slice(0);return x.dispose(),I});var UT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},bm=function(f,i){return function(h,b){i(h,b,f)}},Mw,au=class f extends n{static{Mw=this}static{this.ID="editor.linkDetector"}static get(i){return i.getContribution(Mw.ID)}constructor(i,h,b,v,w){super();this.editor=i,this.openerService=h,this.notificationService=b,this.languageFeaturesService=v,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=w.for(this.providers,"Links",{min:1000,max:4000}),this.computeLinks=this._register(new _e(()=>this.computeLinksNow(),1000)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;let x=this._register(new ls(i));this._register(x.onMouseMoveOrRelevantKeyDown(([I,E])=>{this._onEditorMouseMove(I,E)})),this._register(x.onExecute((I)=>{this.onEditorMouseUp(I)})),this._register(x.onCancel((I)=>{this.cleanUpActiveLinkDecoration()})),this._register(i.onDidChangeConfiguration((I)=>{if(!I.hasChanged(79))return;this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0)})),this._register(i.onDidChangeModelContent((I)=>{if(!this.editor.hasModel())return;this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(i.onDidChangeModel((I)=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(i.onDidChangeModelLanguage((I)=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange((I)=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;let i=this.editor.getModel();if(i.isTooLargeForSyncing())return;if(!this.providers.has(i))return;if(this.activeLinksList)this.activeLinksList.dispose(),this.activeLinksList=null;this.computePromise=Wt((h)=>Ow(this.providers,i,h));try{let h=new en(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(i,h.elapsed()),i.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(h){Z(h)}finally{this.computePromise=null}}updateDecorations(i){let h=this.editor.getOption(86)==="altKey",b=[],v=Object.keys(this.currentOccurrences);for(let x of v){let I=this.currentOccurrences[x];b.push(I.decorationId)}let w=[];if(i)for(let x of i)w.push(ql.decoration(x,h));this.editor.changeDecorations((x)=>{let I=x.deltaDecorations(b,w);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let E=0,T=I.length;E<T;E++){let O=new ql(i[E],I[E]);this.currentOccurrences[O.decorationId]=O}})}_onEditorMouseMove(i,h){let b=this.editor.getOption(86)==="altKey";if(this.isEnabled(i,h)){this.cleanUpActiveLinkDecoration();let v=this.getLinkOccurrence(i.target.position);if(v)this.editor.changeDecorations((w)=>{v.activate(w,b),this.activeLinkDecorationId=v.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){let i=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){let h=this.currentOccurrences[this.activeLinkDecorationId];if(h)this.editor.changeDecorations((b)=>{h.deactivate(b,i)});this.activeLinkDecorationId=null}}onEditorMouseUp(i){if(!this.isEnabled(i))return;let h=this.getLinkOccurrence(i.target.position);if(!h)return;this.openLinkOccurrence(h,i.hasSideBySideModifier,!0)}openLinkOccurrence(i,h,b=!1){if(!this.openerService)return;let{link:v}=i;v.resolve(be.None).then((w)=>{if(typeof w==="string"&&this.editor.hasModel()){let x=this.editor.getModel().uri;if(x.scheme===se.file&&w.startsWith(`${se.file}:`)){let I=q.parse(w);if(I.scheme===se.file){let E=gc(I),T=null;if(E.startsWith("/./")||E.startsWith("\\.\\"))T=`.${E.substr(1)}`;else if(E.startsWith("//./")||E.startsWith("\\\\.\\"))T=`.${E.substr(2)}`;if(T)w=K_(x,T)}}}return this.openerService.open(w,{openToSide:h,fromUserGesture:b,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},(w)=>{let x=w instanceof Error?w.message:w;if(x==="invalid")this.notificationService.warn(e(1343,"Failed to open this link because it is not well-formed: {0}",v.url.toString()));else if(x==="missing")this.notificationService.warn(e(1344,"Failed to open this link because its target is missing."));else Z(w)})}getLinkOccurrence(i){if(!this.editor.hasModel()||!i)return null;let h=this.editor.getModel().getDecorationsInRange({startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column},0,!0);for(let b of h){let v=this.currentOccurrences[b.id];if(v)return v}return null}isEnabled(i,h){return Boolean(i.target.type===6&&(i.hasTriggerModifier||h&&h.keyCodeIsTriggerKey||i.isMiddleClick&&i.mouseMiddleClickAction==="openLink"))}stop(){if(this.computeLinks.cancel(),this.activeLinksList)this.activeLinksList?.dispose(),this.activeLinksList=null;if(this.computePromise)this.computePromise.cancel(),this.computePromise=null}dispose(){super.dispose(),this.stop()}};au=Mw=UT([bm(1,Pr),bm(2,bt),bm(3,V),bm(4,Ji)],au);var O0={general:ce.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:ce.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class ql{static decoration(f,i){return{range:f.range,options:ql._getOptions(f,i,!1)}}static _getOptions(f,i,h){let b={...h?O0.active:O0.general};return b.hoverMessage=$T(f,i),b}constructor(f,i){this.link=f,this.decorationId=i}activate(f,i){f.changeDecorationOptions(this.decorationId,ql._getOptions(this.link,i,!0))}deactivate(f,i){f.changeDecorationOptions(this.decorationId,ql._getOptions(this.link,i,!1))}}function $T(f,i){let h=f.url&&/^command:/i.test(f.url.toString()),b=f.tooltip?f.tooltip:h?e(1345,"Execute command"):e(1346,"Follow link"),v=i?ge?e(1347,"cmd + click"):e(1348,"ctrl + click"):ge?e(1349,"option + click"):e(1350,"alt + click");if(f.url){let w="";if(/^command:/i.test(f.url.toString())){let I=f.url.toString().match(/^command:([^?#]+)/);if(I){let E=I[1];w=e(1351,"Execute command {0}",E)}}return new En("",!0).appendLink(f.url.toString(!0).replace(/ /g,"%20"),b,w).appendMarkdown(` (${v})`)}else return new En().appendText(`${b} (${v})`)}class H0 extends U{constructor(){super({id:"editor.action.openLink",label:p(1352,"Open Link"),precondition:void 0})}run(f,i){let h=au.get(i);if(!h)return;if(!i.hasModel())return;let b=i.getSelections();for(let v of b){let w=h.getLinkOccurrence(v.getEndPosition());if(w)h.openLinkOccurrence(w,!1)}}}pe(au.ID,au,1);N(H0);var Ss={Visible:new P("parameterHintsVisible",!1),MultipleSignatures:new P("parameterHintsMultipleSignatures",!1)};async function Pw(f,i,h,b,v){let w=f.ordered(i);for(let x of w)try{let I=await x.provideSignatureHelp(i,h,v,b);if(I)return I}catch(I){gt(I)}return}ke.registerCommand("_executeSignatureHelpProvider",async(f,...i)=>{let[h,b,v]=i;Ae(q.isUri(h)),Ae(s.isIPosition(b)),Ae(typeof v==="string"||!v);let w=f.get(V),x=await f.get(_n).createModelReference(h);try{let I=await Pw(w.signatureHelpProvider,x.object.textEditorModel,s.lift(b),{triggerKind:Ha.Invoke,isRetrigger:!1,triggerCharacter:v},be.None);if(!I)return;return setTimeout(()=>I.dispose(),0),I.value}finally{x.dispose()}});var sa;(function(f){f.Default={type:0};class i{constructor(b,v){this.request=b,this.previouslyActiveHints=v,this.type=2}}f.Pending=i;class h{constructor(b){this.hints=b,this.type=1}}f.Active=h})(sa||(sa={}));class vm extends n{static{this.DEFAULT_DELAY=120}constructor(f,i,h=vm.DEFAULT_DELAY){super();this._onChangedHints=this._register(new r),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=sa.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new le),this.triggerChars=new Vh,this.retriggerChars=new Vh,this.triggerId=0,this.editor=f,this.providers=i,this.throttledDelayer=this._register(new Ii(h)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel((b)=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage((b)=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection((b)=>this.onCursorChange(b))),this._register(this.editor.onDidChangeModelContent((b)=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((b)=>this.onDidType(b))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(f){if(this._state.type===2)this._state.request.cancel();this._state=f}cancel(f=!1){if(this.state=sa.Default,this.throttledDelayer.cancel(),!f)this._onChangedHints.fire(void 0)}trigger(f,i){let h=this.editor.getModel();if(!h||!this.providers.has(h))return;let b=++this.triggerId;this._pendingTriggers.push(f),this.throttledDelayer.trigger(()=>this.doTrigger(b),i).catch(Z)}next(){if(this.state.type!==1)return;let f=this.state.hints.signatures.length,i=this.state.hints.activeSignature,h=i%f===f-1,b=this.editor.getOption(98).cycle;if((f<2||h)&&!b){this.cancel();return}this.updateActiveSignature(h&&b?0:i+1)}previous(){if(this.state.type!==1)return;let f=this.state.hints.signatures.length,i=this.state.hints.activeSignature,h=i===0,b=this.editor.getOption(98).cycle;if((f<2||h)&&!b){this.cancel();return}this.updateActiveSignature(h&&b?f-1:i-1)}updateActiveSignature(f){if(this.state.type!==1)return;this.state=new sa.Active({...this.state.hints,activeSignature:f}),this._onChangedHints.fire(this.state.hints)}async doTrigger(f){let i=this.state.type===1||this.state.type===2,h=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;let b=this._pendingTriggers.reduce(jT);this._pendingTriggers=[];let v={triggerKind:b.triggerKind,triggerCharacter:b.triggerCharacter,isRetrigger:i,activeSignatureHelp:h};if(!this.editor.hasModel())return!1;let w=this.editor.getModel(),x=this.editor.getPosition();this.state=new sa.Pending(Wt((I)=>Pw(this.providers,w,x,v,I)),h);try{let I=await this.state.request;if(f!==this.triggerId)return I?.dispose(),!1;if(!I||!I.value.signatures||I.value.signatures.length===0)return I?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1;else return this.state=new sa.Active(I.value),this._lastSignatureHelpResult.value=I,this._onChangedHints.fire(this.state.hints),!0}catch(I){if(f===this.triggerId)this.state=sa.Default;return Z(I),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();let f=this.editor.getModel();if(!f)return;for(let i of this.providers.ordered(f)){for(let h of i.signatureHelpTriggerCharacters||[])if(h.length){let b=h.charCodeAt(0);this.triggerChars.add(b),this.retriggerChars.add(b)}for(let h of i.signatureHelpRetriggerCharacters||[])if(h.length)this.retriggerChars.add(h.charCodeAt(0))}}onDidType(f){if(!this.triggerOnType)return;let i=f.length-1,h=f.charCodeAt(i);if(this.triggerChars.has(h)||this.isTriggered&&this.retriggerChars.has(h))this.trigger({triggerKind:Ha.TriggerCharacter,triggerCharacter:f.charAt(i)})}onCursorChange(f){if(f.source==="mouse")this.cancel();else if(this.isTriggered)this.trigger({triggerKind:Ha.ContentChange})}onModelContentChange(){if(this.isTriggered)this.trigger({triggerKind:Ha.ContentChange})}onEditorConfigurationChange(){if(this.triggerOnType=this.editor.getOption(98).enabled,!this.triggerOnType)this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function jT(f,i){switch(i.triggerKind){case Ha.Invoke:return i;case Ha.ContentChange:return f;case Ha.TriggerCharacter:default:return i}}var GT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},W0=function(f,i){return function(h,b){i(h,b,f)}},Aw,Eo=g,qT=At("parameter-hints-next",y.chevronDown,e(1378,"Icon for show next parameter hint.")),ZT=At("parameter-hints-previous",y.chevronUp,e(1379,"Icon for show previous parameter hint.")),Sm=class f extends n{static{Aw=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(i,h,b,v){super();this.editor=i,this.model=h,this.markdownRendererService=v,this.renderDisposeables=this._register(new d),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=Ss.Visible.bindTo(b),this.keyMultipleSignatures=Ss.MultipleSignatures.bindTo(b)}createParameterHintDOMNodes(){let i=Eo(".editor-widget.parameter-hints-widget"),h=_(i,Eo(".phwrapper"));h.tabIndex=-1;let b=_(h,Eo(".controls")),v=_(b,Eo(".button"+J.asCSSSelector(ZT))),w=_(b,Eo(".overloads")),x=_(b,Eo(".button"+J.asCSSSelector(qT)));this._register(c(v,"click",(Y)=>{Se.stop(Y),this.previous()})),this._register(c(x,"click",(Y)=>{Se.stop(Y),this.next()}));let I=Eo(".body"),E=new Ja(I,{alwaysConsumeMouseWheel:!0});this._register(E),h.appendChild(E.getDomNode());let T=_(I,Eo(".signature")),O=_(I,Eo(".docs"));i.style.userSelect="text",this.domNodes={element:i,signature:T,overloads:w,docs:O,scrollbar:E},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((Y)=>{if(this.visible)this.editor.layoutContentWidget(this)}));let A=()=>{if(!this.domNodes)return;let Y=this.editor.getOption(59),ee=this.domNodes.element;ee.style.fontSize=`${Y.fontSize}px`,ee.style.lineHeight=`${Y.lineHeight/Y.fontSize}`,ee.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",Y.fontFamily),ee.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",br.fontFamily)};A(),this._register(k.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(Y)=>Y.filter((ee)=>ee.hasChanged(59)))(A)),this._register(this.editor.onDidLayoutChange((Y)=>this.updateMaxHeight())),this.updateMaxHeight()}show(){if(this.visible)return;if(!this.domNodes)this.createParameterHintDOMNodes();this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add("visible")},100),this.editor.layoutContentWidget(this)}hide(){if(this.renderDisposeables.clear(),!this.visible)return;this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove("visible"),this.editor.layoutContentWidget(this)}getPosition(){if(this.visible)return{position:this.editor.getPosition(),preference:[1,2]};return null}render(i){if(this.renderDisposeables.clear(),!this.domNodes)return;let h=i.signatures.length>1;this.domNodes.element.classList.toggle("multiple",h),this.keyMultipleSignatures.set(h),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";let b=i.signatures[i.activeSignature];if(!b)return;let v=_(this.domNodes.signature,Eo(".code")),w=b.parameters.length>0,x=b.activeParameter??i.activeParameter;if(!w){let T=_(v,Eo("span"));T.textContent=b.label}else this.renderParameters(v,b,x);let I=b.parameters[x];if(I?.documentation){let T=Eo("span.documentation");if(typeof I.documentation==="string")T.textContent=I.documentation;else{let O=this.renderMarkdownDocs(I.documentation);T.appendChild(O.element)}_(this.domNodes.docs,Eo("p",{},T))}if(b.documentation===void 0);else if(typeof b.documentation==="string")_(this.domNodes.docs,Eo("p",{},b.documentation));else{let T=this.renderMarkdownDocs(b.documentation);_(this.domNodes.docs,T.element)}let E=this.hasDocs(b,I);if(this.domNodes.signature.classList.toggle("has-docs",E),this.domNodes.docs.classList.toggle("empty",!E),this.domNodes.overloads.textContent=String(i.activeSignature+1).padStart(i.signatures.length.toString().length,"0")+"/"+i.signatures.length,I){let T="",O=b.parameters[x];if(Array.isArray(O.label))T=b.label.substring(O.label[0],O.label[1]);else T=O.label;if(O.documentation)T+=typeof O.documentation==="string"?`, ${O.documentation}`:`, ${O.documentation.value}`;if(b.documentation)T+=typeof b.documentation==="string"?`, ${b.documentation}`:`, ${b.documentation.value}`;if(this.announcedLabel!==T)Dn(e(1380,"{0}, hint",T)),this.announcedLabel=T}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(i){let h=this.renderDisposeables.add(this.markdownRendererService.render(i,{context:this.editor,asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));return h.element.classList.add("markdown-docs"),h}hasDocs(i,h){if(h&&typeof h.documentation==="string"&&_l(h.documentation).length>0)return!0;if(h&&typeof h.documentation==="object"&&_l(h.documentation).value.length>0)return!0;if(i.documentation&&typeof i.documentation==="string"&&_l(i.documentation).length>0)return!0;if(i.documentation&&typeof i.documentation==="object"&&_l(i.documentation.value).length>0)return!0;return!1}renderParameters(i,h,b){let[v,w]=this.getParameterLabelOffsets(h,b),x=document.createElement("span");x.textContent=h.label.substring(0,v);let I=document.createElement("span");I.textContent=h.label.substring(v,w),I.className="parameter active";let E=document.createElement("span");E.textContent=h.label.substring(w),_(i,x,I,E)}getParameterLabelOffsets(i,h){let b=i.parameters[h];if(!b)return[0,0];else if(Array.isArray(b.label))return b.label;else if(!b.label.length)return[0,0];else{let v=new RegExp(`(\\W|^)${Ri(b.label)}(?=\\W|$)`,"g");v.test(i.label);let w=v.lastIndex-b.label.length;return w>=0?[w,v.lastIndex]:[0,0]}}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){if(!this.domNodes)this.createParameterHintDOMNodes();return this.domNodes.element}getId(){return Aw.ID}updateMaxHeight(){if(!this.domNodes)return;let h=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=h;let b=this.domNodes.element.getElementsByClassName("phwrapper");if(b.length)b[0].style.maxHeight=h}};Sm=Aw=GT([W0(2,K),W0(3,Er)],Sm);a("editorHoverWidget.highlightForeground",Yh,e(1381,"Foreground color of the active item in the parameter hint."));var XT=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},B0=function(f,i){return function(h,b){i(h,b,f)}},Fw,Zl=class f extends n{static{Fw=this}static{this.ID="editor.controller.parameterHints"}static get(i){return i.getContribution(Fw.ID)}constructor(i,h,b){super();this.editor=i,this.model=this._register(new vm(i,b.signatureHelpProvider)),this._register(this.model.onChangedHints((v)=>{if(v)this.widget.value.show(),this.widget.value.render(v);else this.widget.rawValue?.hide()})),this.widget=new Vn(()=>this._register(h.createInstance(Sm,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(i){this.model.trigger(i,0)}};Zl=Fw=XT([B0(1,D),B0(2,V)],Zl);class V0 extends U{constructor(){super({id:"editor.action.triggerParameterHints",label:p(1377,"Trigger Parameter Hints"),precondition:o.hasSignatureHelpProvider,kbOpts:{kbExpr:o.editorTextFocus,primary:3082,weight:100}})}run(f,i){Zl.get(i)?.trigger({triggerKind:Ha.Invoke})}}pe(Zl.ID,Zl,2);N(V0);var Hw=175,Ww=Kt.bindToContribution(Zl.get);G(new Ww({id:"closeParameterHints",precondition:Ss.Visible,handler:(f)=>f.cancel(),kbOpts:{weight:Hw,kbExpr:o.focus,primary:9,secondary:[1033]}}));G(new Ww({id:"showPrevParameterHint",precondition:C.and(Ss.Visible,Ss.MultipleSignatures),handler:(f)=>f.previous(),kbOpts:{weight:Hw,kbExpr:o.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));G(new Ww({id:"showNextParameterHint",precondition:C.and(Ss.Visible,Ss.MultipleSignatures),handler:(f)=>f.next(),kbOpts:{weight:Hw,kbExpr:o.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var Ye={Visible:up,HasFocusedSuggestion:new P("suggestWidgetHasFocusedSuggestion",!1,e(1525,"Whether any suggestion is focused")),DetailsVisible:new P("suggestWidgetDetailsVisible",!1,e(1526,"Whether suggestion details are visible")),DetailsFocused:new P("suggestWidgetDetailsFocused",!1,e(1527,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new P("suggestWidgetMultipleSuggestions",!1,e(1528,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new P("suggestionMakesTextEdit",!0,e(1529,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new P("acceptSuggestionOnEnter",!0,e(1530,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new P("suggestionHasInsertAndReplaceRange",!1,e(1531,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new P("suggestionInsertMode",void 0,{type:"string",description:e(1532,"Whether the default behaviour is to insert or replace")}),CanResolve:new P("suggestionCanResolve",!1,e(1533,"Whether the current suggestion supports to resolve further details"))},Qn=new l("suggestWidgetStatusBar");class K0{constructor(f,i,h,b){if(this.position=f,this.completion=i,this.container=h,this.provider=b,this.isInvalid=!1,this.score=Mo.Default,this.distance=0,this.textLabel=typeof i.label==="string"?i.label:i.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=i.sortText&&i.sortText.toLowerCase(),this.filterTextLow=i.filterText&&i.filterText.toLowerCase(),this.extensionId=i.extensionId,t.isIRange(i.range))this.editStart=new s(i.range.startLineNumber,i.range.startColumn),this.editInsertEnd=new s(i.range.endLineNumber,i.range.endColumn),this.editReplaceEnd=new s(i.range.endLineNumber,i.range.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(i.range)||i.range.startLineNumber!==f.lineNumber;else this.editStart=new s(i.range.insert.startLineNumber,i.range.insert.startColumn),this.editInsertEnd=new s(i.range.insert.endLineNumber,i.range.insert.endColumn),this.editReplaceEnd=new s(i.range.replace.endLineNumber,i.range.replace.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(i.range.insert)||t.spansMultipleLines(i.range.replace)||i.range.insert.startLineNumber!==f.lineNumber||i.range.replace.startLineNumber!==f.lineNumber||i.range.insert.startColumn!==i.range.replace.startColumn;if(typeof b.resolveCompletionItem!=="function")this._resolveCache=Promise.resolve(),this._resolveDuration=0}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(f){if(!this._resolveCache){let i=f.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),h=new en(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,f)).then((b)=>{Object.assign(this.completion,b),this._resolveDuration=h.elapsed()},(b)=>{if(ei(b))this._resolveCache=void 0,this._resolveDuration=void 0}).finally(()=>{i.dispose()})}return this._resolveCache}}class Ad{static{this.default=new Ad}constructor(f=2,i=new Set,h=new Set,b=new Map,v=!0){this.snippetSortOrder=f,this.kindFilter=i,this.providerFilter=h,this.providerItemsToReuse=b,this.showDeprecated=v}}class z0{constructor(f,i,h,b){this.items=f,this.needsClipboard=i,this.durations=h,this.disposable=b}}async function lu(f,i,h,b=Ad.default,v={triggerKind:0},w=be.None){let x=new en;h=h.clone();let I=i.getWordAtPosition(h),E=I?new t(h.lineNumber,I.startColumn,h.lineNumber,I.endColumn):t.fromPositions(h),T={replace:E,insert:E.setEndPosition(h.lineNumber,h.column)},O=[],A=new d,Y=[],ee=!1,te=(ne,re,he)=>{let ue=!1;if(!re)return ue;for(let Ie of re.suggestions)if(!b.kindFilter.has(Ie.kind)){if(!b.showDeprecated&&Ie?.tags?.includes(1))continue;if(!Ie.range)Ie.range=T;if(!Ie.sortText)Ie.sortText=typeof Ie.label==="string"?Ie.label:Ie.label.label;if(!ee&&Ie.insertTextRules&&Ie.insertTextRules&4)ee=co.guessNeedsClipboard(Ie.insertText);O.push(new K0(h,Ie,re,ne)),ue=!0}if(Ps(re))A.add(re);return Y.push({providerName:ne._debugDisplayName??"unknown_provider",elapsedProvider:re.duration??-1,elapsedOverall:he.elapsed()}),ue},oe=(async()=>{return})();for(let ne of f.orderedGroups(i)){let re=!1;if(await Promise.all(ne.map(async(he)=>{if(b.providerItemsToReuse.has(he)){let ue=b.providerItemsToReuse.get(he);ue.forEach((Ie)=>O.push(Ie)),re=re||ue.length>0;return}if(b.providerFilter.size>0&&!b.providerFilter.has(he))return;try{let ue=new en,Ie=await he.provideCompletionItems(i,h,v,w);re=te(he,Ie,ue)||re}catch(ue){gt(ue)}})),re||w.isCancellationRequested)break}if(await oe,w.isCancellationRequested)return A.dispose(),Promise.reject(new ho);return new z0(O.sort(QT(b.snippetSortOrder)),ee,{entries:Y,elapsed:x.elapsed()},A)}function Bw(f,i){if(f.sortTextLow&&i.sortTextLow){if(f.sortTextLow<i.sortTextLow)return-1;else if(f.sortTextLow>i.sortTextLow)return 1}if(f.textLabel<i.textLabel)return-1;else if(f.textLabel>i.textLabel)return 1;return f.completion.kind-i.completion.kind}function YT(f,i){if(f.completion.kind!==i.completion.kind){if(f.completion.kind===28)return-1;else if(i.completion.kind===28)return 1}return Bw(f,i)}function JT(f,i){if(f.completion.kind!==i.completion.kind){if(f.completion.kind===28)return 1;else if(i.completion.kind===28)return-1}return Bw(f,i)}var wm=new Map;wm.set(0,YT);wm.set(2,JT);wm.set(1,Bw);function QT(f){return wm.get(f)}ke.registerCommand("_executeCompletionItemProvider",async(f,...i)=>{let[h,b,v,w]=i;Ae(q.isUri(h)),Ae(s.isIPosition(b)),Ae(typeof v==="string"||!v),Ae(typeof w==="number"||!w);let{completionProvider:x}=f.get(V),I=await f.get(_n).createModelReference(h);try{let E={incomplete:!1,suggestions:[]},T=[],O=I.object.textEditorModel.validatePosition(b),A=await lu(x,I.object.textEditorModel,O,void 0,{triggerCharacter:v??void 0,triggerKind:v?1:0});for(let Y of A.items){if(T.length<(w??0))T.push(Y.resolve(be.None));E.incomplete=E.incomplete||Y.container.incomplete,E.suggestions.push(Y.completion)}try{return await Promise.all(T),E}finally{setTimeout(()=>A.disposable.dispose(),100)}}finally{I.dispose()}});function U0(f,i){f.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(i),void 0,!0)}class Cs{static isAllOff(f){return f.other==="off"&&f.comments==="off"&&f.strings==="off"}static isAllOn(f){return f.other==="on"&&f.comments==="on"&&f.strings==="on"}static valueFor(f,i){switch(i){case 1:return f.comments;case 2:return f.strings;default:return f.other}}}function Vw(f,i=Jt){if(FR(f,i))return f.charAt(0).toUpperCase()+f.slice(1);return f}var eN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},tN=function(f,i){return function(h,b){i(h,b,f)}};class Cm{constructor(f){this._delegates=f}resolve(f){for(let i of this._delegates){let h=i.resolve(f);if(h!==void 0)return h}return}}class ym{constructor(f,i,h,b){this._model=f,this._selection=i,this._selectionIdx=h,this._overtypingCapturer=b}resolve(f){let{name:i}=f;if(i==="SELECTION"||i==="TM_SELECTED_TEXT"){let h=this._model.getValueInRange(this._selection)||void 0,b=this._selection.startLineNumber!==this._selection.endLineNumber;if(!h&&this._overtypingCapturer){let v=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);if(v)h=v.value,b=v.multiline}if(h&&b&&f.snippet){let v=this._model.getLineContent(this._selection.startLineNumber),w=$t(v,0,this._selection.startColumn-1),x=w;f.snippet.walk((E)=>{if(E===f)return!1;if(E instanceof ki)x=$t(li(E.value).pop());return!0});let I=yr(x,w);h=h.replace(/(\r\n|\r|\n)(.*)/g,(E,T,O)=>`${T}${x.substr(I)}${O}`)}return h}else if(i==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);else if(i==="TM_CURRENT_WORD"){let h=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return h&&h.word||void 0}else if(i==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);else if(i==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);else if(i==="CURSOR_INDEX")return String(this._selectionIdx);else if(i==="CURSOR_NUMBER")return String(this._selectionIdx+1);return}}class xm{constructor(f,i){this._labelService=f,this._model=i}resolve(f){let{name:i}=f;if(i==="TM_FILENAME")return Fa(this._model.uri.fsPath);else if(i==="TM_FILENAME_BASE"){let h=Fa(this._model.uri.fsPath),b=h.lastIndexOf(".");if(b<=0)return h;else return h.slice(0,b)}else if(i==="TM_DIRECTORY"){if(Ag(this._model.uri.fsPath)===".")return"";return this._labelService.getUriLabel(jh(this._model.uri))}else if(i==="TM_DIRECTORY_BASE"){if(Ag(this._model.uri.fsPath)===".")return"";return Fa(Ag(this._model.uri.fsPath))}else if(i==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);else if(i==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0});return}}class Im{constructor(f,i,h,b){this._readClipboardText=f,this._selectionIdx=i,this._selectionCount=h,this._spread=b}resolve(f){if(f.name!=="CLIPBOARD")return;let i=this._readClipboardText();if(!i)return;if(this._spread){let h=i.split(/\r\n|\n|\r/).filter((b)=>!B_(b));if(h.length===this._selectionCount)return h[this._selectionIdx]}return i}}var cu=class f{constructor(i,h,b){this._model=i,this._selection=h,this._languageConfigurationService=b}resolve(i){let{name:h}=i,b=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),v=this._languageConfigurationService.getLanguageConfiguration(b).comments;if(!v)return;if(h==="LINE_COMMENT")return v.lineCommentToken||void 0;else if(h==="BLOCK_COMMENT_START")return v.blockCommentStartToken||void 0;else if(h==="BLOCK_COMMENT_END")return v.blockCommentEndToken||void 0;return}};cu=eN([tN(2,st)],cu);class aa{constructor(){this._date=new Date}static{this.dayNames=[e(1476,"Sunday"),e(1477,"Monday"),e(1478,"Tuesday"),e(1479,"Wednesday"),e(1480,"Thursday"),e(1481,"Friday"),e(1482,"Saturday")]}static{this.dayNamesShort=[e(1483,"Sun"),e(1484,"Mon"),e(1485,"Tue"),e(1486,"Wed"),e(1487,"Thu"),e(1488,"Fri"),e(1489,"Sat")]}static{this.monthNames=[e(1490,"January"),e(1491,"February"),e(1492,"March"),e(1493,"April"),e(1494,"May"),e(1495,"June"),e(1496,"July"),e(1497,"August"),e(1498,"September"),e(1499,"October"),e(1500,"November"),e(1501,"December")]}static{this.monthNamesShort=[e(1502,"Jan"),e(1503,"Feb"),e(1504,"Mar"),e(1505,"Apr"),e(1506,"May"),e(1507,"Jun"),e(1508,"Jul"),e(1509,"Aug"),e(1510,"Sep"),e(1511,"Oct"),e(1512,"Nov"),e(1513,"Dec")]}resolve(f){let{name:i}=f;switch(i){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()/1000));case"CURRENT_MILLISECONDS_UNIX":return String(this._date.getTime());case"CURRENT_TIMEZONE_OFFSET":{let h=this._date.getTimezoneOffset(),b=h>0?"-":"+",v=Math.trunc(Math.abs(h/60)),w=v<10?"0"+v:v,x=Math.abs(h)-v*60,I=x<10?"0"+x:x;return b+w+":"+I}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}return}}class Lm{constructor(f){this._workspaceService=f}resolve(f){if(!this._workspaceService)return;let i=yI(this._workspaceService.getWorkspace());if(bI(i))return;if(f.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(i);else if(f.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(i);return}_resolveWorkspaceName(f){if(L0(f))return Fa(f.uri.path);let i=Fa(f.configPath.path);if(i.endsWith($0))i=i.substr(0,i.length-$0.length-1);return i}_resoveWorkspacePath(f){if(L0(f))return Vw(f.uri.fsPath);let i=Fa(f.configPath.path),h=f.configPath.fsPath;if(h.endsWith(i))h=h.substr(0,h.length-i.length-1);return h?Vw(h):"/"}}class Em{resolve(f){let{name:i}=f;if(i==="RANDOM")return Math.random().toString().slice(-6);else if(i==="RANDOM_HEX")return Math.random().toString(16).slice(-6);else if(i==="UUID")return Ya();return}}var iN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},oN=function(f,i){return function(h,b){i(h,b,f)}},ir;class dn{static{this._decor={active:ce.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:ce.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:ce.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:ce.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(f,i,h){this._editor=f,this._snippet=i,this._snippetLineLeadingWhitespace=h,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=Ck(i.placeholders,lo.compareByIndex),this._placeholderGroupsIdx=-1}initialize(f){this._offset=f.newPosition}dispose(){if(this._placeholderDecorations)this._editor.removeDecorations([...this._placeholderDecorations.values()]);this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;let f=this._editor.getModel();this._editor.changeDecorations((i)=>{for(let h of this._snippet.placeholders){let b=this._snippet.offset(h),v=this._snippet.fullLen(h),w=t.fromPositions(f.getPositionAt(this._offset+b),f.getPositionAt(this._offset+b+v)),x=h.isFinalTabstop?dn._decor.inactiveFinal:dn._decor.inactive,I=i.addDecoration(w,x);this._placeholderDecorations.set(h,I)}})}move(f){if(!this._editor.hasModel())return[];this._initDecorations();let i=this._editor.getModel();if(this._placeholderGroupsIdx>=0){let v=[];for(let w of this._placeholderGroups[this._placeholderGroupsIdx])if(w.transform){let x=this._placeholderDecorations.get(w),I=x?i.getDecorationRange(x):null;if(I){let E=i.getValueInRange(I),T=w.transform.resolve(E).split(/\r\n|\r|\n/);for(let O=1;O<T.length;O++)T[O]=i.normalizeIndentation(this._snippetLineLeadingWhitespace+T[O]);v.push(Vt.replace(I,T.join(i.getEOL())))}}if(v.length>0)this._editor.executeEdits("snippet.placeholderTransform",v)}let h=!1;if(f===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1)this._placeholderGroupsIdx+=1,h=!0;else if(f===!1&&this._placeholderGroupsIdx>0)this._placeholderGroupsIdx-=1,h=!0;let b=i.changeDecorations((v)=>{let w=new Set,x=[];for(let I of this._placeholderGroups[this._placeholderGroupsIdx]){let E=this._placeholderDecorations.get(I),T=E?i.getDecorationRange(E):null;if(h=h&&this._hasPlaceholderBeenCollapsed(I),!E||!T)continue;x.push(new F(T.startLineNumber,T.startColumn,T.endLineNumber,T.endColumn)),v.changeDecorationOptions(E,I.isFinalTabstop?dn._decor.activeFinal:dn._decor.active),w.add(I);for(let O of this._snippet.enclosingPlaceholders(I)){let A=this._placeholderDecorations.get(O);if(A)v.changeDecorationOptions(A,O.isFinalTabstop?dn._decor.activeFinal:dn._decor.active),w.add(O)}}for(let[I,E]of this._placeholderDecorations)if(!w.has(I))v.changeDecorationOptions(E,I.isFinalTabstop?dn._decor.inactiveFinal:dn._decor.inactive);return x});return!h?b??[]:this.move(f)}_hasPlaceholderBeenCollapsed(f){let i=this._editor.getModel(),h=f;while(h){if(h instanceof lo){let b=this._placeholderDecorations.get(h),v=b?i.getDecorationRange(b):null;if((!v||v.isEmpty())&&h.toString().length>0)return!0}h=h.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){let[f]=this._snippet.placeholders;if(f.isFinalTabstop){if(this._snippet.rightMostDescendant===f)return!0}}return!1}computePossibleSelections(){let f=new Map;for(let i of this._placeholderGroups){let h;for(let b of i){if(b.isFinalTabstop)break;if(!h)h=[],f.set(b.index,h);let v=this._placeholderDecorations.get(b),w=this._editor.getModel().getDecorationRange(v);if(!w){f.delete(b.index);break}h.push(w)}}return f}get activeChoice(){if(!this._placeholderDecorations)return;let f=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!f?.choice)return;let i=this._placeholderDecorations.get(f);if(!i)return;let h=this._editor.getModel().getDecorationRange(i);if(!h)return;return{range:h,choice:f.choice}}get hasChoice(){let f=!1;return this._snippet.walk((i)=>(f=i instanceof $a,!f)),f}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(f){let i=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((h)=>{for(let b of this._placeholderGroups[this._placeholderGroupsIdx]){let v=f.shift();console.assert(v._offset!==-1),console.assert(!v._placeholderDecorations);let w=v._snippet.placeholderInfo.last.index;for(let I of v._snippet.placeholderInfo.all)if(I.isFinalTabstop)I.index=b.index+(w+1)/this._nestingLevel;else I.index=b.index+I.index/this._nestingLevel;this._snippet.replace(b,v._snippet.children);let x=this._placeholderDecorations.get(b);h.removeDecoration(x),this._placeholderDecorations.delete(b);for(let I of v._snippet.placeholders){let E=v._snippet.offset(I),T=v._snippet.fullLen(I),O=t.fromPositions(i.getPositionAt(v._offset+E),i.getPositionAt(v._offset+E+T)),A=h.addDecoration(O,dn._decor.inactive);this._placeholderDecorations.set(I,A)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=Ck(this._snippet.placeholders,lo.compareByIndex)})}_renormalizePlaceholderIndices(){let f=this._snippet.placeholders,i=new Set;for(let v of f)if(!v.isFinalTabstop)i.add(v.index);let h=[...i].sort((v,w)=>v-w),b=new Map;for(let v=0;v<h.length;v++)b.set(h[v],v+1);for(let v of f)if(!v.isFinalTabstop)v.index=b.get(v.index);this._nestingLevel=1}}var j0={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Xl=ir=class f{static adjustWhitespace(i,h,b,v,w){let x=i.getLineContent(h.lineNumber),I=$t(x,0,h.column-1),E;return v.walk((T)=>{if(!(T instanceof ki)||T.parent instanceof $a)return!0;if(w&&!w.has(T))return!0;let O=T.value.split(/\r\n|\r|\n/);if(b){let Y=v.offset(T);if(Y===0)O[0]=i.normalizeIndentation(O[0]);else{E=E??v.toString();let ee=E.charCodeAt(Y-1);if(ee===10||ee===13)O[0]=i.normalizeIndentation(I+O[0])}for(let ee=1;ee<O.length;ee++)O[ee]=i.normalizeIndentation(I+O[ee])}let A=O.join(i.getEOL());if(A!==T.value)T.parent.replace(T,[new ki(A)]),E=void 0;return!0}),I}static adjustSelection(i,h,b,v){if(b!==0||v!==0){let{positionLineNumber:w,positionColumn:x}=h,I=x-b,E=x+v,T=i.validateRange({startLineNumber:w,startColumn:I,endLineNumber:w,endColumn:E});h=F.createWithDirection(T.startLineNumber,T.startColumn,T.endLineNumber,T.endColumn,h.getDirection())}return h}static createEditsAndSnippetsFromSelections(i,h,b,v,w,x,I,E,T){let O=[],A=[];if(!i.hasModel())return{edits:O,snippets:A};let Y=i.getModel(),ee=i.invokeWithinContext((Ie)=>Ie.get(Ks)),te=i.invokeWithinContext((Ie)=>new xm(Ie.get(jl),Y)),oe=()=>I,ne=Y.getValueInRange(ir.adjustSelection(Y,i.getSelection(),b,0)),re=Y.getValueInRange(ir.adjustSelection(Y,i.getSelection(),0,v)),he=Y.getLineFirstNonWhitespaceColumn(i.getSelection().positionLineNumber),ue=i.getSelections().map((Ie,Te)=>({selection:Ie,idx:Te})).sort((Ie,Te)=>t.compareRangesUsingStarts(Ie.selection,Te.selection));for(let{selection:Ie,idx:Te}of ue){let ae=ir.adjustSelection(Y,Ie,b,0),xe=ir.adjustSelection(Y,Ie,0,v);if(ne!==Y.getValueInRange(ae))ae=Ie;if(re!==Y.getValueInRange(xe))xe=Ie;let Me=Ie.setStartPosition(ae.startLineNumber,ae.startColumn).setEndPosition(xe.endLineNumber,xe.endColumn),He=new co().parse(h,!0,w),qe=Me.getStartPosition(),Oe=ir.adjustWhitespace(Y,qe,x||Te>0&&he!==Y.getLineFirstNonWhitespaceColumn(Ie.positionLineNumber),He);He.resolveVariables(new Cm([te,new Im(oe,Te,ue.length,i.getOption(88)==="spread"),new ym(Y,Ie,Te,E),new cu(Y,Ie,T),new aa,new Lm(ee),new Em])),O[Te]=Vt.replace(Me,He.toString()),O[Te].identifier={major:Te,minor:0},O[Te]._isTracked=!0,A[Te]=new dn(i,He,Oe)}return{edits:O,snippets:A}}static createEditsAndSnippetsFromEdits(i,h,b,v,w,x,I){if(!i.hasModel()||h.length===0)return{edits:[],snippets:[]};let E=[],T=i.getModel(),O=new co,A=new Zd,Y=i.invokeWithinContext((Ie)=>new xm(Ie.get(jl),T)),ee=new aa,te=new Lm(i.invokeWithinContext((Ie)=>Ie.get(Ks))),oe=new Em,ne=()=>w,re=i.getOption(88)==="spread",he=h.map((Ie,Te)=>({edit:Ie,idx:Te})).sort((Ie,Te)=>t.compareRangesUsingStarts(Ie.edit.range,Te.edit.range)),ue=0;for(let Ie=0;Ie<he.length;Ie++){let{edit:{range:Te,template:ae,keepWhitespace:xe},idx:Me}=he[Ie];if(Ie>0){let tt=he[Ie-1].edit.range,Gt=t.fromPositions(tt.getEndPosition(),Te.getStartPosition()),ct=new ki(T.getValueInRange(Gt));A.appendChild(ct),ue+=ct.value.length}let He=new Set;A.walk((tt)=>{if(tt instanceof Os)He.add(tt);return!0});let qe=O.parseFragment(ae,A);ir.adjustWhitespace(T,Te.getStartPosition(),xe!==void 0?!xe:v,A,new Set(qe));let Oe=F.fromRange(Te,0),Ze=new Cm([Y,new Im(ne,Me,he.length,re),new ym(T,Oe,Me,x),new cu(T,Oe,I),ee,te,oe]);A.walk((tt)=>{if(tt instanceof Os&&!He.has(tt))tt.resolve(Ze);return!0});let dt=A.toString(),Qe=dt.slice(ue);ue=dt.length;let ut=Vt.replace(Te,Qe);ut.identifier={major:Ie,minor:0},ut._isTracked=!0,E.push(ut)}return O.ensureFinalTabstop(A,b,!0),{edits:E,snippets:[new dn(i,A,"")]}}constructor(i,h,b=j0,v){this._editor=i,this._template=h,this._options=b,this._languageConfigurationService=v,this._templateMerges=[],this._snippets=[]}dispose(){Fe(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(i){if(!this._editor.hasModel())return;let{edits:h,snippets:b}=typeof this._template==="string"?ir.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):ir.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=b,this._editor.executeEdits(i??Mn.snippet(),h,(v)=>{let w=v.filter((x)=>!!x.identifier);for(let x=0;x<b.length;x++)b[x].initialize(w[x].textChange);if(this._snippets[0].hasPlaceholder)return this._move(!0);else return w.map((x)=>F.fromPositions(x.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(i,h=j0){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,i]);let{edits:b,snippets:v}=ir.createEditsAndSnippetsFromSelections(this._editor,i,h.overwriteBefore,h.overwriteAfter,!0,h.adjustWhitespace,h.clipboardText,h.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",b,(w)=>{let x=w.filter((T)=>!!T.identifier);for(let T=0;T<v.length;T++)v[T].initialize(x[T].textChange);let I=v[0].isTrivialSnippet,E=v.length===this._snippets.reduce((T,O)=>T+O.activePlaceholderCount,0);if(!I&&E){for(let T of this._snippets)T.merge(v);console.assert(v.length===0)}if(this._snippets[0].hasPlaceholder&&!I&&E)return this._move(void 0);else return x.map((T)=>F.fromPositions(T.range.getEndPosition()))})}next(){let i=this._move(!0);if(i.length>0)this._editor.setSelections(i),this._editor.revealPositionInCenterIfOutsideViewport(i[0].getPosition())}prev(){let i=this._move(!1);if(i.length>0)this._editor.setSelections(i),this._editor.revealPositionInCenterIfOutsideViewport(i[0].getPosition())}_move(i){let h=[];for(let b of this._snippets){let v=b.move(i);h.push(...v)}return h}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;let i=this._editor.getSelections();if(i.length<this._snippets.length)return!1;let h=new Map;for(let b of this._snippets){let v=b.computePossibleSelections();if(h.size===0)for(let[w,x]of v){x.sort(t.compareRangesUsingStarts);for(let I of i)if(x[0].containsRange(I)){h.set(w,[]);break}}if(h.size===0)return!1;h.forEach((w,x)=>{w.push(...v.get(x))})}i.sort(t.compareRangesUsingStarts);for(let[b,v]of h){if(v.length!==i.length){h.delete(b);continue}v.sort(t.compareRangesUsingStarts);for(let w=0;w<v.length;w++)if(!v[w].containsRange(i[w])){h.delete(b);continue}}return h.size>0}};Xl=ir=iN([oN(3,st)],Xl);var nN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Dm=function(f,i){return function(h,b){i(h,b,f)}},Fd,G0={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},gi=class f{static{Fd=this}static{this.ID="snippetController2"}static get(i){return i.getContribution(Fd.ID)}static{this.InSnippetMode=new P("inSnippetMode",!1,e(1471,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new P("hasNextTabstop",!1,e(1472,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new P("hasPrevTabstop",!1,e(1473,"Whether there is a previous tab stop when in snippet mode"))}static{this.InSnippetChoice=new P("inSnippetChoice",!1,e(1474,"Whether the current snippet tab stop is a choice"))}constructor(i,h,b,v,w){this._editor=i,this._logService=h,this._languageFeaturesService=b,this._languageConfigurationService=w,this._inSnippetObservable=j(this,!1),this._snippetListener=new d,this._modelVersionId=-1,this._inSnippet=Fd.InSnippetMode.bindTo(v),this._hasNextTabstop=Fd.HasNextTabstop.bindTo(v),this._hasPrevTabstop=Fd.HasPrevTabstop.bindTo(v),this._inSnippetChoice=Fd.InSnippetChoice.bindTo(v)}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(i,h){try{this._doInsert(i,typeof h>"u"?G0:{...G0,...h})}catch(b){this.cancel(),this._logService.error(b),this._logService.error("snippet_error"),this._logService.error("insert_template=",i),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(i,h){if(!this._editor.hasModel())return;if(this._snippetListener.clear(),h.undoStopBefore)this._editor.getModel().pushStackElement();if(this._session&&typeof i!=="string")this.cancel();if(!this._session)this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new Xl(this._editor,i,h,this._languageConfigurationService),this._session.insert(h.reason);else Ae(typeof i==="string"),this._session.merge(i,h);if(h.undoStopAfter)this._editor.getModel().pushStackElement();if(this._session?.hasChoice){let b={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(T,O)=>{if(!this._session||T!==this._editor.getModel()||!s.equals(this._editor.getPosition(),O))return;let{activeChoice:A}=this._session;if(!A||A.choice.options.length===0)return;let Y=T.getValueInRange(A.range),ee=Boolean(A.choice.options.find((oe)=>oe.value===Y)),te=[];for(let oe=0;oe<A.choice.options.length;oe++){let ne=A.choice.options[oe];te.push({kind:13,label:ne.value,insertText:ne.value,sortText:"a".repeat(oe+1),range:A.range,filterText:ee?`${Y}_${ne.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:e(1475,"Go to next placeholder...")}})}return{suggestions:te}}},v=this._editor.getModel(),w,x=!1,I=()=>{w?.dispose(),x=!1},E=()=>{if(!x)w=this._languageFeaturesService.completionProvider.register({language:v.getLanguageId(),pattern:v.uri.fsPath,scheme:v.uri.scheme,exclusive:!0},b),this._snippetListener.add(w),x=!0};this._choiceCompletions={provider:b,enable:E,disable:I}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((b)=>b.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}_updateState(){if(!this._session||!this._editor.hasModel())return;if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._inSnippetObservable.set(!0,void 0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0,this._inSnippetChoice.reset();return}let{activeChoice:i}=this._session;if(!i||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}if(this._inSnippetChoice.set(!0),this._currentChoice!==i.choice)this._currentChoice=i.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{U0(this._editor,this._choiceCompletions.provider)})}finish(){while(this._inSnippet.get())this.next()}cancel(i=!1){if(this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,i)this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}get isInSnippetObservable(){return this._inSnippetObservable}};gi=Fd=nN([Dm(1,Ke),Dm(2,V),Dm(3,K),Dm(4,st)],gi);pe(gi.ID,gi,4);var Rm=Kt.bindToContribution(gi.get);G(new Rm({id:"jumpToNextSnippetPlaceholder",precondition:C.and(gi.InSnippetMode,gi.HasNextTabstop),handler:(f)=>f.next(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:2}}));G(new Rm({id:"jumpToPrevSnippetPlaceholder",precondition:C.and(gi.InSnippetMode,gi.HasPrevTabstop),handler:(f)=>f.prev(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:1026}}));Sn.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:C.and(gi.InSnippetMode,gi.HasPrevTabstop,gi.InSnippetChoice,o.textInputFocus),primary:1026});G(new Rm({id:"leaveSnippet",precondition:gi.InSnippetMode,handler:(f)=>f.cancel(!0),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));G(new Rm({id:"acceptSnippet",precondition:gi.InSnippetMode,handler:(f)=>f.finish()}));class km{constructor(f,i){this.leadingLineContent=f,this.characterCountDelta=i}}class Hr{constructor(f,i,h,b,v,w,x=ib.default,I=void 0){if(this.clipboardText=I,this._snippetCompareFn=Hr._compareCompletionItems,this._items=f,this._column=i,this._wordDistance=b,this._options=v,this._refilterKind=1,this._lineContext=h,this._fuzzyScoreOptions=x,w==="top")this._snippetCompareFn=Hr._compareCompletionItemsSnippetsUp;else if(w==="bottom")this._snippetCompareFn=Hr._compareCompletionItemsSnippetsDown}get lineContext(){return this._lineContext}set lineContext(f){if(this._lineContext.leadingLineContent!==f.leadingLineContent||this._lineContext.characterCountDelta!==f.characterCountDelta)this._refilterKind=this._lineContext.characterCountDelta<f.characterCountDelta&&this._filteredItems?2:1,this._lineContext=f}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let f=new Set;for(let[i,h]of this.getItemsByProvider())if(h.length>0&&h[0].container.incomplete)f.add(i);return f}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){if(this._refilterKind!==0)this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let f=[],{leadingLineContent:i,characterCountDelta:h}=this._lineContext,b="",v="",w=this._refilterKind===1?this._items:this._filteredItems,x=[],I=!this._options.filterGraceful||w.length>2000?Cc:hI;for(let E=0;E<w.length;E++){let T=w[E];if(T.isInvalid)continue;let O=this._itemsByProvider.get(T.provider);if(O)O.push(T);else this._itemsByProvider.set(T.provider,[T]);let A=T.position.column-T.editStart.column,Y=A+h-(T.position.column-this._column);if(b.length!==Y)b=Y===0?"":i.slice(-Y),v=b.toLowerCase();if(T.word=b,Y===0)T.score=Mo.Default;else{let ee=0;while(ee<A){let te=b.charCodeAt(ee);if(te===32||te===9)ee+=1;else break}if(ee>=Y)T.score=Mo.Default;else if(typeof T.completion.filterText==="string"){let te=I(b,v,ee,T.completion.filterText,T.filterTextLow,0,this._fuzzyScoreOptions);if(!te)continue;if(Rv(T.completion.filterText,T.textLabel)===0)T.score=te;else T.score=uI(b,v,ee,T.textLabel,T.labelLow,0),T.score[0]=te[0]}else{let te=I(b,v,ee,T.textLabel,T.labelLow,0,this._fuzzyScoreOptions);if(!te)continue;T.score=te}}T.idx=E,T.distance=this._wordDistance.distance(T.position,T.completion),x.push(T),f.push(T.textLabel.length)}this._filteredItems=x.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:f.length?A_(f.length-0.85,f,(E,T)=>E-T):0}}static _compareCompletionItems(f,i){if(f.score[0]>i.score[0])return-1;else if(f.score[0]<i.score[0])return 1;else if(f.distance<i.distance)return-1;else if(f.distance>i.distance)return 1;else if(f.idx<i.idx)return-1;else if(f.idx>i.idx)return 1;else return 0}static _compareCompletionItemsSnippetsDown(f,i){if(f.completion.kind!==i.completion.kind){if(f.completion.kind===28)return 1;else if(i.completion.kind===28)return-1}return Hr._compareCompletionItems(f,i)}static _compareCompletionItemsSnippetsUp(f,i){if(f.completion.kind!==i.completion.kind){if(f.completion.kind===28)return-1;else if(i.completion.kind===28)return 1}return Hr._compareCompletionItems(f,i)}}var rN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},q0=function(f,i){return function(h,b){i(h,b,f)}},xu;class Tm{constructor(f){this.name=f}select(f,i,h){if(h.length===0)return 0;let b=h[0].score[0];for(let v=0;v<h.length;v++){let{score:w,completion:x}=h[v];if(w[0]!==b)break;if(x.preselect)return v}return 0}}class Kw extends Tm{constructor(){super("first")}memorize(f,i,h){}toJSON(){return}fromJSON(){}}class Z0 extends Tm{constructor(){super("recentlyUsed");this._cache=new Oi(300,0.66),this._seq=0}memorize(f,i,h){let b=`${f.getLanguageId()}/${h.textLabel}`;this._cache.set(b,{touch:this._seq++,type:h.completion.kind,insertText:h.completion.insertText})}select(f,i,h){if(h.length===0)return 0;let b=f.getLineContent(i.lineNumber).substr(i.column-10,i.column-1);if(/\s$/.test(b))return super.select(f,i,h);let v=h[0].score[0],w=-1,x=-1,I=-1;for(let E=0;E<h.length;E++){if(h[E].score[0]!==v)break;let T=`${f.getLanguageId()}/${h[E].textLabel}`,O=this._cache.peek(T);if(O&&O.touch>I&&O.type===h[E].completion.kind&&O.insertText===h[E].completion.insertText)I=O.touch,x=E;if(h[E].completion.preselect&&w===-1)return w=E}if(x!==-1)return x;else if(w!==-1)return w;else return 0}toJSON(){return this._cache.toJSON()}fromJSON(f){this._cache.clear();let i=0;for(let[h,b]of f)b.touch=i,b.type=typeof b.type==="number"?b.type:gu.fromString(b.type),this._cache.set(h,b);this._seq=this._cache.size}}class X0 extends Tm{constructor(){super("recentlyUsedByPrefix");this._trie=ip.forStrings(),this._seq=0}memorize(f,i,h){let{word:b}=f.getWordUntilPosition(i),v=`${f.getLanguageId()}/${b}`;this._trie.set(v,{type:h.completion.kind,insertText:h.completion.insertText,touch:this._seq++})}select(f,i,h){let{word:b}=f.getWordUntilPosition(i);if(!b)return super.select(f,i,h);let v=`${f.getLanguageId()}/${b}`,w=this._trie.get(v);if(!w)w=this._trie.findSubstr(v);if(w)for(let x=0;x<h.length;x++){let{kind:I,insertText:E}=h[x].completion;if(I===w.type&&E===w.insertText)return x}return super.select(f,i,h)}toJSON(){let f=[];return this._trie.forEach((i,h)=>f.push([h,i])),f.sort((i,h)=>-(i[1].touch-h[1].touch)).forEach((i,h)=>i[1].touch=h),f.slice(0,200)}fromJSON(f){if(this._trie.clear(),f.length>0){this._seq=f[0][1].touch+1;for(let[i,h]of f)h.type=typeof h.type==="number"?h.type:gu.fromString(h.type),this._trie.set(i,h)}}}var zw=class f{static{xu=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",X0],["recentlyUsed",Z0],["first",Kw]])}static{this._storagePrefix="suggest/memories"}constructor(i,h){this._storageService=i,this._configService=h,this._disposables=new d,this._persistSoon=new _e(()=>this._saveState(),500),this._disposables.add(i.onWillSaveState((b)=>{if(b.reason===Ml.SHUTDOWN)this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(i,h,b){this._withStrategy(i,h).memorize(i,h,b),this._persistSoon.schedule()}select(i,h,b){return this._withStrategy(i,h).select(i,h,b)}_withStrategy(i,h){let b=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:i.getLanguageIdAtPosition(h.lineNumber,h.column),resource:i.uri});if(this._strategy?.name!==b){this._saveState();let v=xu._strategyCtors.get(b)||Kw;this._strategy=new v;try{let x=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,I=this._storageService.get(`${xu._storagePrefix}/${b}`,x);if(I)this._strategy.fromJSON(JSON.parse(I))}catch(w){}}return this._strategy}_saveState(){if(this._strategy){let h=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,b=JSON.stringify(this._strategy);this._storageService.store(`${xu._storagePrefix}/${this._strategy.name}`,b,h,1)}}};zw=xu=rN([q0(0,Tn),q0(1,ie)],zw);var Yl=Q("ISuggestMemories");ve(Yl,zw,1);var Y0;function Nm(f){return Y0?.(f)??null}function J0(f){Y0=f}class mt{static{this.inlineSuggestionVisible=new P("inlineSuggestionVisible",!1,e(1249,"Whether an inline suggestion is visible"))}static{this.inlineSuggestionAlternativeActionVisible=new P("inlineSuggestionAlternativeActionVisible",!1,e(1250,"Whether an alternative action for the inline suggestion is visible."))}static{this.inlineSuggestionHasIndentation=new P("inlineSuggestionHasIndentation",!1,e(1251,"Whether the inline suggestion starts with whitespace"))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new P("inlineSuggestionHasIndentationLessThanTabSize",!0,e(1252,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab"))}static{this.suppressSuggestions=new P("inlineSuggestionSuppressSuggestions",void 0,e(1253,"Whether suggestions should be suppressed for the current suggestion"))}static{this.cursorBeforeGhostText=new P("cursorBeforeGhostText",!1,e(1254,"Whether the cursor is at ghost text"))}static{this.cursorInIndentation=new P("cursorInIndentation",!1,e(1255,"Whether the cursor is in indentation"))}static{this.hasSelection=new P("editor.hasSelection",!1,e(1256,"Whether the editor has a selection"))}static{this.cursorAtInlineEdit=new P("cursorAtInlineEdit",!1,e(1257,"Whether the cursor is at an inline edit"))}static{this.inlineEditVisible=new P("inlineEditIsVisible",!1,e(1258,"Whether an inline edit is visible"))}static{this.tabShouldJumpToInlineEdit=new P("tabShouldJumpToInlineEdit",!1,e(1259,"Whether tab should jump to an inline edit."))}static{this.tabShouldAcceptInlineEdit=new P("tabShouldAcceptInlineEdit",!1,e(1260,"Whether tab should accept the inline edit."))}static{this.inInlineEditsPreviewEditor=new P("inInlineEditsPreviewEditor",!0,e(1261,"Whether the current code editor is showing an inline edits preview"))}}class cn{static{this.None=new class extends cn{distance(){return 0}}}static async create(f,i){if(!i.getOption(134).localityBonus)return cn.None;if(!i.hasModel())return cn.None;let h=i.getModel(),b=i.getPosition();if(!f.canComputeWordRanges(h.uri))return cn.None;let[v]=await new Lo().provideSelectionRanges(h,[b]);if(v.length===0)return cn.None;let w=await f.computeWordRanges(h.uri,v[0].range);if(!w)return cn.None;let x=h.getWordUntilPosition(b);return delete w[x.word],new class extends cn{distance(I,E){if(!b.equals(i.getPosition()))return 0;if(E.kind===17)return 2097152;let T=typeof E.label==="string"?E.label:E.label.label,O=w[T];if(P_(O))return 2097152;let A=vf(O,t.fromPositions(I),t.compareRangesUsingStarts),Y=A>=0?O[A]:O[Math.max(0,~A-1)],ee=v.length;for(let te of v){if(!t.containsRange(te.range,Y))break;ee-=1}return ee}}}}var sN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},da=function(f,i){return function(h,b){i(h,b,f)}},Uw;class la{static shouldAutoTrigger(f){if(!f.hasModel())return!1;let i=f.getModel(),h=f.getPosition();i.tokenization.tokenizeIfCheap(h.lineNumber);let b=i.getWordAtPosition(h);if(!b)return!1;if(b.endColumn!==h.column&&b.startColumn+1!==h.column)return!1;if(!isNaN(Number(b.word)))return!1;return!0}constructor(f,i,h){this.leadingLineContent=f.getLineContent(i.lineNumber).substr(0,i.column-1),this.leadingWord=f.getWordUntilPosition(i),this.lineNumber=i.lineNumber,this.column=i.column,this.triggerOptions=h}}function aN(f,i,h){if(!Boolean(i.getContextKeyValue(mt.inlineSuggestionVisible.key)))return!0;let b=i.getContextKeyValue(mt.suppressSuggestions.key);if(b!==void 0)return!b;return!f.getOption(71).suppressSuggestions}function dN(f,i,h){if(!Boolean(i.getContextKeyValue("inlineSuggestionVisible")))return!0;let b=i.getContextKeyValue(mt.suppressSuggestions.key);if(b!==void 0)return!b;return!f.getOption(71).suppressSuggestions}var Jl=Uw=class f{constructor(i,h,b,v,w,x,I,E,T){this._editor=i,this._editorWorkerService=h,this._clipboardService=b,this._telemetryService=v,this._logService=w,this._contextKeyService=x,this._configurationService=I,this._languageFeaturesService=E,this._envService=T,this._toDispose=new d,this._triggerCharacterListener=new d,this._triggerQuickSuggest=new Yn,this._triggerState=void 0,this._completionDisposables=new d,this._onDidCancel=new r,this._onDidTrigger=new r,this._onDidSuggest=new r,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new F(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let O=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{O=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{O=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection((A)=>{if(!O)this._onCursorChange(A)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{if(!O&&this._triggerState!==void 0)this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){Fe(this._triggerCharacterListener),Fe([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._waitForInlineCompletions?.dispose(),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(104)||!this._editor.hasModel()||!this._editor.getOption(137))return;let i=new Map;for(let b of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let v of b.triggerCharacters||[]){let w=i.get(v);if(!w)w=new Set,i.set(v,w);w.add(b)}let h=(b)=>{if(!dN(this._editor,this._contextKeyService,this._configurationService))return;if(la.shouldAutoTrigger(this._editor))return;if(!b){let x=this._editor.getPosition();b=this._editor.getModel().getLineContent(x.lineNumber).substr(0,x.column-1)}let v="";if(kl(b.charCodeAt(b.length-1))){if(wn(b.charCodeAt(b.length-2)))v=b.substr(b.length-2)}else v=b.charAt(b.length-1);let w=i.get(v);if(w){let x=new Map;if(this._completionModel){for(let[I,E]of this._completionModel.getItemsByProvider())if(!w.has(I))x.set(I,E)}this.trigger({auto:!0,triggerKind:1,triggerCharacter:v,retrigger:Boolean(this._completionModel),clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:w,providerItemsToReuse:x}})}};this._triggerCharacterListener.add(this._editor.onDidType(h)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>h()))}get state(){if(!this._triggerState)return 0;else if(!this._triggerState.auto)return 1;else return 2}cancel(i=!1){if(this._triggerQuickSuggest.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerState!==void 0)this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:i})}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){if(this._triggerState!==void 0)if(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel()))this.cancel();else this.trigger({auto:this._triggerState.auto,retrigger:!0})}_onCursorChange(i){if(!this._editor.hasModel())return;let h=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!i.selection.isEmpty()||i.reason!==0&&i.reason!==3||i.source!=="keyboard"&&i.source!=="deleteLeft"){this.cancel();return}if(this._triggerState===void 0&&i.reason===0){if(h.containsRange(this._currentSelection)||h.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))this._doTriggerQuickSuggest()}else if(this._triggerState!==void 0&&i.reason===3)this._refilterCompletionItems()}_onCompositionEnd(){if(this._triggerState===void 0)this._doTriggerQuickSuggest();else this._refilterCompletionItems()}_doTriggerQuickSuggest(){if(Cs.isAllOff(this._editor.getOption(102)))return;if(this._editor.getOption(134).snippetsPreventQuickSuggestions&&gi.get(this._editor)?.isInSnippet())return;this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0)return;if(!la.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let i=this._editor.getModel(),h=this._editor.getPosition(),b=this._editor.getOption(102);if(Cs.isAllOff(b))return;let v=!1;if(!Cs.isAllOn(b)){i.tokenization.tokenizeIfCheap(h.lineNumber);let w=i.tokenization.getLineTokens(h.lineNumber),x=w.getStandardTokenType(w.findTokenIndexAtOffset(Math.max(h.column-1-1,0))),I=Cs.valueFor(b,x);if(I==="off"||I==="inline")return;if(I==="offWhenInlineCompletions")v=this._languageFeaturesService.inlineCompletionsProvider.has(i)&&this._editor.getOption(71).enabled}if(!aN(this._editor,this._contextKeyService,this._configurationService))return;if(!this._languageFeaturesService.completionProvider.has(i))return;if(v)this._waitForInlineCompletionsAndTrigger(i,h);else this.trigger({auto:!0})},this._editor.getOption(103))}_waitForInlineCompletionsAndTrigger(i,h){let b=i.getVersionId(),v=Nm(this._editor),w=v?.model.get();if(!v||!w){this.trigger({auto:!0});return}if(w.state.get()?.inlineSuggestion)return;let I=new d;this._waitForInlineCompletions=I;let E=(T)=>{if(I.dispose(),this._waitForInlineCompletions===I)this._waitForInlineCompletions=void 0;if(this._triggerState!==void 0)return;if(!T)return;let O=this._editor.getModel(),A=this._editor.getPosition();if(O===i&&O.getVersionId()===b&&A?.equals(h)&&this._editor.hasWidgetFocus())this.trigger({auto:!0})};ti(()=>{E(!0),w.stop("automatic")},750,I),NR(I,(T)=>{if(v.model.read(T)!==w){T.dispose(),E(!1);return}let A=w.status.read(T),Y=w.state.read(T);if(!Y&&A==="loading")return;T.dispose(),E(!Y)})}_refilterCompletionItems(){Ae(this._editor.hasModel()),Ae(this._triggerState!==void 0);let i=this._editor.getModel(),h=this._editor.getPosition(),b=new la(i,h,{...this._triggerState,refilter:!0});this._onNewContext(b)}trigger(i){if(!this._editor.hasModel())return;let h=this._editor.getModel(),b=new la(h,this._editor.getPosition(),i);this.cancel(i.retrigger),this._triggerState=i,this._onDidTrigger.fire({auto:i.auto,shy:i.shy??!1,position:this._editor.getPosition()}),this._context=b;let v={triggerKind:i.triggerKind??0};if(i.triggerCharacter)v={triggerKind:1,triggerCharacter:i.triggerCharacter};this._requestToken=new Ve;let w=this._editor.getOption(128),x=1;switch(w){case"top":x=0;break;case"bottom":x=2;break}let{itemKind:I,showDeprecated:E}=Uw.createSuggestFilter(this._editor),T=new Ad(x,i.completionOptions?.kindFilter??I,i.completionOptions?.providerFilter,i.completionOptions?.providerItemsToReuse,E),O=cn.create(this._editorWorkerService,this._editor),A=lu(this._languageFeaturesService.completionProvider,h,this._editor.getPosition(),T,v,this._requestToken.token);Promise.all([A,O]).then(async([Y,ee])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){Y.disposable.dispose();return}let te=i?.clipboardText;if(!te&&Y.needsClipboard)te=await this._clipboardService.readText();if(this._triggerState===void 0){Y.disposable.dispose();return}let oe=this._editor.getModel(),ne=new la(oe,this._editor.getPosition(),i),re={...ib.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new Hr(Y.items,this._context.column,{leadingLineContent:ne.leadingLineContent,characterCountDelta:ne.column-this._context.column},ee,this._editor.getOption(134),this._editor.getOption(128),re,te),this._completionDisposables.add(Y.disposable),this._onNewContext(ne),this._reportDurationsTelemetry(Y.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment){for(let he of Y.items)if(he.isInvalid)this._logService.warn(`[suggest] did IGNORE invalid completion item from ${he.provider._debugDisplayName}`,he.completion)}}).catch(Z)}_reportDurationsTelemetry(i){if(Math.random()>0.0001)return;setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(i)}),this._logService.debug("suggest.durations.json",i)})}static createSuggestFilter(i){let h=new Set;if(i.getOption(128)==="none")h.add(28);let v=i.getOption(134);if(!v.showMethods)h.add(0);if(!v.showFunctions)h.add(1);if(!v.showConstructors)h.add(2);if(!v.showFields)h.add(3);if(!v.showVariables)h.add(4);if(!v.showClasses)h.add(5);if(!v.showStructs)h.add(6);if(!v.showInterfaces)h.add(7);if(!v.showModules)h.add(8);if(!v.showProperties)h.add(9);if(!v.showEvents)h.add(10);if(!v.showOperators)h.add(11);if(!v.showUnits)h.add(12);if(!v.showValues)h.add(13);if(!v.showConstants)h.add(14);if(!v.showEnums)h.add(15);if(!v.showEnumMembers)h.add(16);if(!v.showKeywords)h.add(17);if(!v.showWords)h.add(18);if(!v.showColors)h.add(19);if(!v.showFiles)h.add(20);if(!v.showReferences)h.add(21);if(!v.showColors)h.add(22);if(!v.showFolders)h.add(23);if(!v.showTypeParameters)h.add(24);if(!v.showSnippets)h.add(28);if(!v.showUsers)h.add(25);if(!v.showIssues)h.add(26);return{itemKind:h,showDeprecated:v.showDeprecated}}_onNewContext(i){if(!this._context)return;if(i.lineNumber!==this._context.lineNumber){this.cancel();return}if($t(i.leadingLineContent)!==$t(this._context.leadingLineContent)){this.cancel();return}if(i.column<this._context.column){if(i.leadingWord.word)this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});else this.cancel();return}if(!this._completionModel)return;if(i.leadingWord.word.length!==0&&i.leadingWord.startColumn>this._context.leadingWord.startColumn){if(la.shouldAutoTrigger(this._editor)&&this._context){let b=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:b}})}return}if(i.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&i.leadingWord.word.length!==0){let h=new Map,b=new Set;for(let[v,w]of this._completionModel.getItemsByProvider())if(w.length>0&&w[0].container.incomplete)b.add(v);else h.set(v,w);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:b,providerItemsToReuse:h}})}else{let h=this._completionModel.lineContext,b=!1;if(this._completionModel.lineContext={leadingLineContent:i.leadingLineContent,characterCountDelta:i.column-this._context.column},this._completionModel.items.length===0){let v=la.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(v&&this._context.leadingWord.endColumn<i.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(!this._context.triggerOptions.auto){if(this._completionModel.lineContext=h,b=this._completionModel.items.length>0,b&&i.leadingWord.word.length===0){this.cancel();return}}else{this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:i.triggerOptions,isFrozen:b})}}};Jl=Uw=sN([da(1,_i),da(2,ri),da(3,In),da(4,Ke),da(5,K),da(6,ie),da(7,V),da(8,ob)],Jl);var Q0=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Nu=function(f,i){return function(h,b){i(h,b,f)}};class e1{constructor(f,i,h,b,v,w,x){this.range=f,this.insertText=i,this.filterText=h,this.additionalTextEdits=b,this.command=v,this.gutterMenuLinkAction=w,this.completion=x,this.doNotLog=!0}}var $w=class f extends kk{constructor(i,h,b,v,w,x){super(w.disposable);this.model=i,this.line=h,this.word=b,this.completionModel=v,this._suggestMemoryService=x}canBeReused(i,h,b){return this.model===i&&this.line===h&&this.word.word.length>0&&this.word.startColumn===b.startColumn&&this.word.endColumn<b.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){let i=[],{items:h}=this.completionModel,b=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},h),v=$e.slice(h,b),w=$e.slice(h,0,b),x=5;for(let I of $e.concat(v,w)){if(I.score===Mo.Default)continue;let E=new t(I.editStart.lineNumber,I.editStart.column,I.editInsertEnd.lineNumber,I.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),T=I.completion.insertTextRules&&I.completion.insertTextRules&4?{snippet:I.completion.insertText}:I.completion.insertText;if(i.push(new e1(E,T,I.filterTextLow??I.labelLow,I.completion.additionalTextEdits,I.completion.command,I.completion.action,I)),x-->=0)I.resolve(be.None)}return i}};$w=Q0([Nu(5,Yl)],$w);var jw=class f extends n{constructor(i,h,b,v){super();this._languageFeatureService=i,this._clipboardService=h,this._suggestMemoryService=b,this._editorService=v,this._store.add(i.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(i,h,b,v){if(b.selectedSuggestionInfo)return;let w;for(let ee of this._editorService.listCodeEditors())if(ee.getModel()===i){w=ee;break}if(!w)return;let x=w.getOption(102);if(Cs.isAllOff(x))return;i.tokenization.tokenizeIfCheap(h.lineNumber);let I=i.tokenization.getLineTokens(h.lineNumber),E=I.getStandardTokenType(I.findTokenIndexAtOffset(Math.max(h.column-1-1,0)));if(Cs.valueFor(x,E)!=="inline")return;let T=i.getWordAtPosition(h),O;if(!T?.word)O=this._getTriggerCharacterInfo(i,h);if(!T?.word&&!O)return;if(!T)T=i.getWordUntilPosition(h);if(T.endColumn!==h.column)return;let A,Y=i.getValueInRange(new t(h.lineNumber,1,h.lineNumber,h.column));if(!O&&this._lastResult?.canBeReused(i,h.lineNumber,T)){let ee=new km(Y,h.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=ee,this._lastResult.acquire(),A=this._lastResult}else{let ee=await lu(this._languageFeatureService.completionProvider,i,h,new Ad(void 0,Jl.createSuggestFilter(w).itemKind,O?.providers),O&&{triggerKind:1,triggerCharacter:O.ch},v),te;if(ee.needsClipboard)te=await this._clipboardService.readText();let oe=new Hr(ee.items,h.column,new km(Y,0),cn.None,w.getOption(134),w.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},te);A=new $w(i,h.lineNumber,T,oe,ee,this._suggestMemoryService)}return this._lastResult=A,A}handleItemDidShow(i,h){h.completion.resolve(be.None)}disposeInlineCompletions(i){i.release()}_getTriggerCharacterInfo(i,h){let b=i.getValueInRange(t.fromPositions({lineNumber:h.lineNumber,column:h.column-1},h)),v=new Set;for(let w of this._languageFeatureService.completionProvider.all(i))if(w.triggerCharacters?.includes(b))v.add(w);if(v.size===0)return;return{providers:v,ch:b}}};jw=Q0([Nu(0,V),Nu(1,ri),Nu(2,Yl),Nu(3,Ce)],jw);Qa(jw);var lN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},cN=function(f,i){return function(h,b){i(h,b,f)}};function i1(f){if(f instanceof Gw)return f._instance;return f}class Gw{constructor(f){this.instantiationService=f}init(...f){}}function o1(f){return f.get()}var t1=class f extends Gw{constructor(i,h){super(h);this.init(i)}};t1=lN([cN(1,D)],t1);class Hd{validateOrThrow(f){let i=this.validate(f);if(i.error)throw Error(i.error.message);return i.content}}class Mu extends Hd{constructor(f){super();this.type=f}validate(f){if(typeof f!==this.type)return{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof f}`}};return{content:f,error:void 0}}getJSONSchema(){return{type:this.type}}}var hN=new Mu("string");function n1(){return hN}new Mu("number");var uN=new Mu("boolean");function qw(){return uN}new Mu("object");class r1 extends Hd{validate(f){return{content:f,error:void 0}}getJSONSchema(){return{}}}function s1(){return new r1}class Zw extends Hd{validate(f){if(f!==void 0)return{content:void 0,error:{message:`Expected undefined, but got ${typeof f}`}};return{content:void 0,error:void 0}}getJSONSchema(){return{}}}function a1(){return new Zw}class Om{constructor(f){this.validator=f}}function Pu(f){return new Om(f)}class d1 extends Hd{constructor(f){super();this.properties=f}validate(f){if(typeof f!=="object"||f===null)return{content:void 0,error:{message:"Expected object"}};let i={};for(let h in this.properties){let b=this.properties[h],v=f[h],w=b instanceof Om,x=w?b.validator:b;if(w&&v===void 0)continue;let{content:I,error:E}=x.validate(v);if(E)return{content:void 0,error:{message:`Error in property '${h}': ${E.message}`}};i[h]=I}return{content:i,error:void 0}}getJSONSchema(){let f=[],i={};for(let[b,v]of Object.entries(this.properties)){let w=v instanceof Om,x=w?v.validator:v;if(i[b]=x.getJSONSchema(),!w)f.push(b)}return{type:"object",properties:i,...f.length>0?{required:f}:{}}}}function l1(f){return new d1(f)}class c1 extends Hd{constructor(f){super();this.validators=f}validate(f){let i;for(let h of this.validators){let{content:b,error:v}=h.validate(f);if(!v)return{content:b,error:void 0};i=v}return{content:void 0,error:i}}getJSONSchema(){return{oneOf:wR(this.validators,(f)=>{if(f instanceof Zw)return;return f.getJSONSchema()})}}}function h1(...f){return new c1(f)}class u1 extends Hd{constructor(f,i){super();this._ref=f,this._validator=i}validate(f){return this._validator.validate(f)}getJSONSchema(){return{$ref:this._ref}}}function g1(f,i){return new u1(f,i)}var gN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},p1=function(f,i){return function(h,b){i(h,b,f)}};function m1(f){return f.sourceId+" @@ "+JSON.stringify({...f,modelUri:f.modelUri?.toString(),sourceId:void 0})}var Ql=class f extends n{static cast(){return this}constructor(i,h,b){super();this._key=i,this._contextKeyService=h,this._dataChannelService=b,this._isEnabledContextKeyValue=pN("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map((v)=>v!==void 0)}log(i){if(!this._isEnabledContextKeyValue.get())return!1;return this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(i),!0}};Ql=gN([p1(1,K),p1(2,db)],Ql);function pN(f,i){return Ne(i.onDidChangeContext,()=>i.getContextKeyValue(f))}var mN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},f1=function(f,i){return function(h,b){i(h,b,f)}},Mm=class f extends n{constructor(i,h,b){super();this._editor=i,this._instantiationService=h,this._loggerService=b,this._structuredLogger=this._register(this._instantiationService.createInstance(Ql.cast(),"editor.inlineSuggest.logChangeReason.commandId"));let v=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),w=Ne(this,v.onDidChangeLogLevel,()=>v.getLevel());this._register(W((x)=>{if(!Rk(w.read(x),qi.Trace))return;x.store.add(this._editor.onDidChangeModelContent((I)=>{if(this._editor.getModel()?.uri.scheme==="output")return;v.trace("onDidChangeModelContent: "+I.detailedReasons.map((E)=>E.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(W((x)=>{if(!(this._editor instanceof Pl))return;if(!this._structuredLogger.isEnabled.read(x))return;x.store.add(this._editor.onDidChangeModelContent((I)=>{let E=this._editor.getModel();if(!E)return;let T=I.detailedReasons[0],O={...T.metadata,sourceId:"TextModel.setChangeReason",source:T.metadata.source,time:Date.now(),modelUri:E.uri,modelVersion:E.getVersionId()};setTimeout(()=>{this._structuredLogger.log(O)},0)}))}))}};Mm=mN([f1(1,D),f1(2,G_)],Mm);function Wd(f){return new _1(f)}class _1 extends Hv{constructor(f){super();this._textModel=f}getOffset(f){return this._textModel.getOffsetAt(f)}getPosition(f){return this._textModel.getPositionAt(f)}}var fN=[];function b1(){return fN}function Xw(f){return _N(f).map((h)=>h.getEndPosition())}function _N(f){let i=Ev.createSortPermutation(f,$n((v)=>v.range,t.compareRangesUsingStarts)),b=new _r(i.apply(f)).getNewRanges();return i.inverse().apply(b)}function v1(f,i){let h=Wd(i),b=i.getValue();return f.map((x)=>h.getStringReplacement(x)).map((x)=>x.removeCommonSuffixPrefix(b)).map((x)=>h.getTextReplacement(x))}function S1(f,i){let h=j("result",[]),b=[];return i.add(W((v)=>{let w=f.read(v);Ue((x)=>{if(w.length!==b.length){b.length=w.length;for(let I=0;I<b.length;I++)if(!b[I])b[I]=j("item",w[I]);h.set([...b],x)}b.forEach((I,E)=>I.set(w[E],x))})})),h}class Yw{constructor(f){this._contextKeyService=f}bind(f,i){return os(f,this._contextKeyService,i instanceof Function?i:(h)=>i.read(h))}}function Jw(f,i){return new Promise((h)=>{let b=void 0,v=setTimeout(()=>{if(b)b.dispose();h()},f);if(i)b=i.onCancellationRequested(()=>{if(clearTimeout(v),b)b.dispose();h()})})}class ec{static message(f){return new ec(void 0,f)}constructor(f,i=void 0){this.error=f,this.message=i}static is(f){return f instanceof ec}logError(){if(this.message)console.error(`ErrorResult: ${this.message}`,this.error);else console.error("ErrorResult: An unexpected error-case occurred, usually caused by invalid input.",this.error)}}class Pm{static startNow(f,i,h,b=w1){return new Pm(f,i,h,Date.now(),b)}constructor(f,i,h,b,v=w1){if(this.startValue=f,this.endValue=i,this.durationMs=h,this.startTimeMs=b,this._interpolationFunction=v,f===i)this.durationMs=0}isFinished(f){return f>=this.startTimeMs+this.durationMs}getValue(f){let i=f-this.startTimeMs;if(i>=this.durationMs)return this.endValue;return this._interpolationFunction(i,this.startValue,this.endValue-this.startValue,this.durationMs)}}function w1(f,i,h,b){return f===b?i+h:h*(-Math.pow(2,-10*f/b)+1)+i}function C1(f,i,h,b){return h*((f=f/b-1)*f*f+1)+i}class Qw{constructor(f){this._value=f}getValue(f){let i=Date.now();if(!this._value.isFinished(i))Rg.instance.invalidateOnNextAnimationFrame(f);return this._value.getValue(i)}isFinished(f){let i=Date.now(),h=this._value.isFinished(i);if(!h)Rg.instance.invalidateOnNextAnimationFrame(f);return h}}class Rg{constructor(){this._counter=Ui(this),this._isScheduled=!1}static{this.instance=new Rg}invalidateOnNextAnimationFrame(f){if(this._counter.read(f),!this._isScheduled)this._isScheduled=!0,We().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()})}_update(){this._counter.trigger(void 0)}}class Is{constructor(f,i){this.lineNumber=f,this.parts=i,As(()=>Yc(i,(h,b)=>h.column<=b.column))}equals(f){return this.lineNumber===f.lineNumber&&this.parts.length===f.parts.length&&this.parts.every((i,h)=>i.equals(f.parts[h]))}renderForScreenReader(f){if(this.parts.length===0)return"";let i=this.parts[this.parts.length-1],h=f.substr(0,i.column-1);return new _r([...this.parts.map((v)=>new ft(t.fromPositions(new s(1,v.column)),v.lines.map((w)=>w.line).join(`
34
- `)))]).applyToString(h).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((f)=>f.lines.length===0)}get lineCount(){return 1+this.parts.reduce((f,i)=>f+i.lines.length-1,0)}}class Bd{constructor(f,i,h,b=[]){this.column=f,this.text=i,this.preview=h,this._inlineDecorations=b,this.lines=li(this.text).map((v,w)=>({line:v,lineDecorations:Mi.filter(this._inlineDecorations,w+1,1,v.length+1)}))}equals(f){return this.column===f.column&&this.lines.length===f.lines.length&&this.lines.every((i,h)=>i.line===f.lines[h].line&&Mi.equalsArr(i.lineDecorations,f.lines[h].lineDecorations))}}class Fu{constructor(f,i,h,b=0){this.lineNumber=f,this.columnRange=i,this.text=h,this.additionalReservedLineCount=b,this.parts=[new Bd(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=li(this.text)}renderForScreenReader(f){return this.newLines.join(`
35
- `)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((f)=>f.lines.length===0)}equals(f){return this.lineNumber===f.lineNumber&&this.columnRange.equals(f.columnRange)&&this.newLines.length===f.newLines.length&&this.newLines.every((i,h)=>i===f.newLines[h])&&this.additionalReservedLineCount===f.additionalReservedLineCount}}function eC(f,i){return et(f,i,tC)}function tC(f,i){if(f===i)return!0;if(!f||!i)return!1;if(f instanceof Is&&i instanceof Is)return f.equals(i);if(f instanceof Fu&&i instanceof Fu)return f.equals(i);return!1}function Vo(f,i,h){let b=h?f.range.intersectRanges(h):f.range;if(!b)return f;let v=f.text.replaceAll(`\r
36
- `,`
37
- `),w=i.getValueInRange(b,1),x=yr(w,v),I=Ht.ofText(w.substring(0,x)).addToPosition(f.range.getStartPosition()),E=v.substring(x),T=t.fromPositions(I,f.range.getEndPosition());return new ft(T,E)}function Am(f,i){return f.text.startsWith(i.text)&&bN(f.range,i.range)}function bN(f,i){return i.getStartPosition().equals(f.getStartPosition())&&i.getEndPosition().isBeforeOrEqual(f.getEndPosition())}function iC(f,i,h,b,v=0){let w=Vo(f,i);if(w.range.endLineNumber!==w.range.startLineNumber)return;let x=i.getLineContent(w.range.startLineNumber),I=$t(x).length;if(w.range.startColumn-1<=I){let te=$t(w.text).length,oe=x.substring(w.range.startColumn-1,I),[ne,re]=[w.range.getStartPosition(),w.range.getEndPosition()],he=ne.column+oe.length<=re.column?ne.delta(0,oe.length):re,ue=t.fromPositions(he,re),Ie=w.text.startsWith(oe)?w.text.substring(oe.length):w.text.substring(te);w=new ft(ue,Ie)}let T=i.getValueInRange(w.range),O=vN(T,w.text);if(!O)return;let A=w.range.startLineNumber,Y=[];if(h==="prefix"){let te=O.filter((oe)=>oe.originalLength===0);if(te.length>1||te.length===1&&te[0].originalStart!==T.length)return}let ee=w.text.length-v;for(let te of O){let oe=w.range.startColumn+te.originalStart+te.originalLength;if(h==="subwordSmart"&&b&&b.lineNumber===w.range.startLineNumber&&oe<b.column)return;if(te.originalLength>0)return;if(te.modifiedLength===0)continue;let ne=te.modifiedStart+te.modifiedLength,re=Math.max(te.modifiedStart,Math.min(ne,ee)),he=w.text.substring(te.modifiedStart,re),ue=w.text.substring(re,Math.max(te.modifiedStart,ne));if(he.length>0)Y.push(new Bd(oe,he,!1));if(ue.length>0)Y.push(new Bd(oe,ue,!0))}return new Is(A,Y)}var Fm=void 0;function vN(f,i){if(Fm?.originalValue===f&&Fm?.newValue===i)return Fm?.changes;else{let h=x1(f,i,!0);if(h){let b=y1(h);if(b>0){let v=x1(f,i,!1);if(v&&y1(v)<b)h=v}}return Fm={originalValue:f,newValue:i,changes:h},h}}function y1(f){let i=0;for(let h of f)i+=h.originalLength;return i}function x1(f,i,h){if(f.length>5000||i.length>5000)return;function b(T){let O=0;for(let A=0,Y=T.length;A<Y;A++){let ee=T.charCodeAt(A);if(ee>O)O=ee}return O}let v=Math.max(b(f),b(i));function w(T){if(T<0)throw Error("unexpected");return v+T+1}function x(T){let O=0,A=0,Y=new Int32Array(T.length);for(let ee=0,te=T.length;ee<te;ee++)if(h&&T[ee]==="("){let oe=A*100+O;Y[ee]=w(2*oe),O++}else if(h&&T[ee]===")"){O=Math.max(O-1,0);let oe=A*100+O;if(Y[ee]=w(2*oe+1),O===0)A++}else Y[ee]=T.charCodeAt(ee);return Y}let I=x(f),E=x(i);return new Bs({getElements:()=>I},{getElements:()=>E}).ComputeDiff(!1).changes}function I1(f,i){let h=void 0,b=!1,v=new Nv(new ni(f,void 0,i.update),(w,x)=>{if(!b)h=i.initial instanceof Function?i.initial():i.initial,b=!0;let I=i.update(w,h,x);return h=I,I},i.changeTracker,()=>{if(b)i.disposeFinal?.(h),b=!1},i.equalityComparer??Nr,(w,x,I)=>{if(!b)throw new H("Can only set when there is a listener! This is to prevent leaks.");fc(x,(E)=>{h=w,v.setValue(w,E,I)})},jt.ofCaller());return v}var SN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},L1=function(f,i){return function(h,b){i(h,b,f)}};class E1{constructor(f,i){this._baseService=f,this._intercept=i}publicLog2(f,i){this._intercept(f,i),this._baseService.publicLog2(f,i)}}var Hm=class f extends E1{constructor(i,h){super(i,(b,v)=>{let w=!0;if(v&&oC in v)w=Boolean(v[oC]);if(w)h.getDataChannel("editTelemetry").sendData({eventName:b,data:v??{}})})}};Hm=SN([L1(0,In),L1(1,db)],Hm);var oC=Symbol("shouldForwardToChannel");function D1(f){return{[oC]:f}}function nC(f){if(!f)return!1;let i=f.toLowerCase();return i==="github.copilot"||i==="github.copilot-chat"}function R1(f,i){f.publicLog2("inlineCompletion.endOfLife",i)}var wN=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function CN(f){return wN.has(f)}function yN(f){return/[a-zA-Z0-9_]/.test(f)}function xN(f){return f===" "||f==="\t"}function Wm(f){let i=f.split(/\r\n|\r|\n/);if(i.length>1)return{kind:"multiLine",lineCount:i.length};let h=f.length===1,b;if(h){if(CN(f))b="syntactical";else if(yN(f))b="identifier";else if(xN(f))b="whitespace"}let v=f.match(/[ \t]+/g)||[],w=v.some((O)=>O.length>1),x=v.some((O)=>O.includes(" ")||O.includes("\t\t")),I=f.split(/\s+/).filter((O)=>O.length>0),E=I.length===1&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(I[0]),T=I.length>1;return{kind:"singleLine",isSingleCharacter:h,singleCharacterKind:b,isWord:E,isMultipleWords:T,isMultipleWhitespace:w,hasDuplicatedWhitespace:x}}class k1{constructor(f){this.edits=f}toString(){return JSON.stringify({edits:this.edits})}}function sC(f,i,h){if(f.replacements.length===0)return;return new k1(f.replacements.map((b)=>IN(b,i)))}function rC(f){if(f.length===0)return 0;return f.split(/\r\n|\r|\n/).length-1}function IN(f,i,h){let{replaceRange:b,newText:v}=f,w=b.length,x=v.length,I=rC(v);switch(b.isEmpty?"insert":v.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:LN(b.start,v,i),charactersInserted:x,charactersDeleted:0,linesInserted:I,linesDeleted:0};case"delete":{let T=i.getValue().substring(b.start,b.endExclusive);return{operation:"delete",properties:EN(b.start,b.endExclusive,i),charactersInserted:0,charactersDeleted:w,linesInserted:0,linesDeleted:rC(T)}}case"replace":{let T=i.getValue().substring(b.start,b.endExclusive);return{operation:"replace",properties:DN(T,v),charactersInserted:x,charactersDeleted:w,linesInserted:I,linesDeleted:rC(T)}}}}function LN(f,i,h,b){let v=Wm(i),w=h.getPositionAt(f),x=h.getLineContent(w.lineNumber),I=x.length,E,T=x.trim().length===0,O=w.column>I,A=w.column===1;if(T)E="emptyLine";else if(O)E="endOfLine";else if(A)E="startOfLine";else E="middleOfLine";let Y;return{textShape:v,locationShape:E,relativeToCursor:Y}}function EN(f,i,h){let b=h.getValue().substring(f,i),v=Wm(b),w=h.getPositionAt(f),x=h.getPositionAt(i),I=h.getLineContent(x.lineNumber),E=x.column>I.length,T=w.lineNumber===x.lineNumber&&w.column===1&&x.column>I.length;return{textShape:v,isAtEndOfLine:E,deletesEntireLineContent:T}}function DN(f,i){let h=Wm(f),b=Wm(i),v=h.kind==="singleLine"&&h.isWord,w=b.kind==="singleLine"&&b.isWord,x=v&&w,I=i.length>f.length,E=i.length<f.length,T=h.kind==="singleLine"&&b.kind==="singleLine",O=h.kind==="singleLine"&&b.kind==="multiLine",A=h.kind==="multiLine"&&b.kind==="singleLine";return{isWordToWordReplacement:x,isAdditive:I,isSubtractive:E,isSingleLineToSingleLine:T,isSingleLineToMultiLine:O,isMultiLineToSingleLine:A}}function Bm(f,i,h,b){let v=Vo(f,h),w=f.range;if(!w||i&&!i.getStartPosition().equals(w.getStartPosition())||b.lineNumber!==v.range.startLineNumber||v.isEmpty)return!1;let x=h.getValueInRange(v.range,1),I=v.text,E=Math.max(0,b.column-v.range.startColumn),T=I.substring(0,E),O=I.substring(E),A=x.substring(0,E),Y=x.substring(E),ee=h.getLineIndentColumn(v.range.startLineNumber);if(v.range.startColumn<=ee){if(A=A.trimStart(),A.length===0)Y=Y.trimStart();if(T=T.trimStart(),T.length===0)O=O.trimStart()}return T.startsWith(A)&&!!Mk(Y,O)}var Vm;(function(f){function i(h){return h?.command.id??void 0}f.toString=i})(Vm||(Vm={}));class Wr extends Lf{static snapshot(f){return new Wr(f)}constructor(f){super();this._textModel=f,this._version=f.getVersionId()}get uri(){return this._textModel.uri}_assertValid(){if(this._textModel.getVersionId()!==this._version)Z(Error(`TextModel has changed: expected version ${this._version}, got ${this._textModel.getVersionId()}`))}targets(f){return this._textModel.uri.toString()===f.uri.toString()}getValueOfRange(f){return this._assertValid(),this._textModel.getValueInRange(f)}getLineLength(f){return this._assertValid(),this._textModel.getLineLength(f)}get length(){this._assertValid();let f=this._textModel.getLineCount(),i=this._textModel.getLineLength(f);return new Ht(f-1,i)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(f){return this._assertValid(),this._textModel.getPositionAt(f)}getValueInRange(f){return this._assertValid(),this._textModel.getValueInRange(f)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var tc;(function(f){function i(h,b,v=!0){if(!h.isInlineEdit&&!h.action?.uri&&h.action?.kind==="edit")return Hu.create(h,b,h.action);else return Wu.create(h,b,v)}f.create=i})(tc||(tc={}));function RN(f){let i=f?.kind==="edit"?{...f,alternativeAction:Vm.toString(f.alternativeAction),target:f?.target.uri.toString()}:{...f,target:f?.target.uri.toString()};return JSON.stringify(i)}class aC{constructor(f,i,h,b){this._data=f,this.identity=i,this.hint=h,this.originalTextRef=b}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===Gr.Explicit}get forwardStable(){return this.source.inlineSuggestions.enableForwardStability??!1}get targetRange(){if(this.hint)return this.hint.range;if(this.action?.kind==="edit")return this.action.textReplacement.range;else if(this.action?.kind==="jumpTo")return t.fromPositions(this.action.position);throw new H("InlineSuggestionItem: Either hint or action must be set")}get semanticId(){return this.hash}get gutterMenuLinkAction(){return this._sourceInlineCompletion.gutterMenuLinkAction}get command(){return this._sourceInlineCompletion.command}get supportsRename(){return this._data.supportsRename}get warning(){return this._sourceInlineCompletion.warning}get showInlineEditMenu(){return!!this._sourceInlineCompletion.showInlineEditMenu}get hash(){return RN(this.action)}get requestUuid(){return this._data.context.requestUuid}get partialAccepts(){return this._data.partialAccepts}get _sourceInlineCompletion(){return this._data.sourceInlineCompletion}addRef(){this.identity.addRef(),this.source.addRef()}removeRef(){this.identity.removeRef(),this.source.removeRef()}reportInlineEditShown(f,i,h,b,v){let w=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(f,w,i,h,this.computeEditKind(b),v)}reportPartialAccept(f,i,h){this._data.reportPartialAccept(f,i,h)}reportEndOfLife(f){this._data.reportEndOfLife(f)}setEndOfLifeReason(f){this._data.setEndOfLifeReason(f)}setIsPreceeded(f){this._data.setIsPreceeded(f.partialAccepts)}setNotShownReasonIfNotSet(f){this._data.setNotShownReason(f)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(f){this._data.setRenameProcessingInfo(f)}withAction(f){return this._data.withAction(f)}addPerformanceMarker(f){this._data.addPerformanceMarker(f)}}class zm{constructor(){this._onDispose=Ui(this),this.onDispose=this._onDispose,this._jumpedTo=j(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+zm.idCounter++}static{this.idCounter=0}get jumpedTo(){return this._jumpedTo}addRef(){this._refCount++}removeRef(){if(this._refCount--,this._refCount===0)this._onDispose.trigger(void 0)}setJumpTo(f){this._jumpedTo.set(!0,f)}}class Bu{static create(f){return new Bu(t.lift(f.range),f.content,f.style)}constructor(f,i,h){this.range=f,this.content=i,this.style=h}withEdit(f,i){let h=new z(i.getOffset(this.range.getStartPosition()),i.getOffset(this.range.getEndPosition())),b=Ik([h],f)[0];if(!b)return;let v=i.getRange(b);return new Bu(v,this.content,this.style)}}class Hu extends aC{static create(f,i,h){let b=new zm,v=i.getTransformer(),w=h.insertText.replace(/\r\n|\r|\n/g,i.getEOL()),x=NN(new Zn(v.getOffsetRange(h.range),w),i),I=x.removeCommonSuffixAndPrefix(i.getValue()),E=v.getTextReplacement(x),T=f.hint?Bu.create(f.hint):void 0;return new Hu(x,I,E,E.range,h.snippetInfo,f.additionalTextEdits,f,b,T,i)}constructor(f,i,h,b,v,w,x,I,E,T){super(x,I,E,T);this._edit=f,this._trimmedEdit=i,this._textEdit=h,this._originalRange=b,this.snippetInfo=v,this.additionalTextEdits=w,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new dr([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(f){return new Hu(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,f,this.hint,this.originalTextRef)}withEdit(f,i){if(!this.originalTextRef.targets(i))return this;let h=Ik([this._edit.replaceRange],f);if(h.length===0)return;let b=new Zn(h[0],this._textEdit.text),v=Wd(i),w=v.getTextReplacement(b),x=this.hint;if(x){if(x=x.withEdit(f,v),!x)return}let I=b.removeCommonSuffixAndPrefix(i.getValue());return new Hu(b,I,w,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,x,this.originalTextRef)}canBeReused(f,i){let h=this._textEdit.range;return!!h&&h.containsPosition(i)&&this.isVisible(f,i)&&Ht.ofRange(h).isGreaterThanOrEqualTo(Ht.ofRange(this._originalRange))}isVisible(f,i){let h=this.getSingleTextEdit();return Bm(h,this._originalRange,f,i)}computeEditKind(f){return sC(new dr([this._edit]),f)}get editRange(){return this.getSingleTextEdit().range}}class Wu extends aC{static create(f,i,h=!0){let b,v=[];if(f.action?.kind==="edit"){let I=h?kN(i,f.action.range,f.action.insertText):TN(i,f.action.range,f.action.insertText),E=_r.fromStringEdit(I,i),T=I.isEmpty()?new ft(new t(1,1,1,1),""):E.toReplacement(i);v=I.replacements.map((O)=>{let A=t.fromPositions(i.getPositionAt(O.replaceRange.start),i.getTransformer().getPosition(O.replaceRange.endExclusive)),Y=i.getValueInRange(A);return Km.create(O,Y)}),b={kind:"edit",snippetInfo:f.action.snippetInfo,stringEdit:I,textReplacement:T,alternativeAction:f.action.alternativeAction,target:i}}else if(f.action?.kind==="jumpTo")b={kind:"jumpTo",position:f.action.position,offset:i.getTransformer().getOffset(f.action.position),target:i};else if(b=void 0,!f.hint)throw new H("InlineEditItem: action is undefined and no hint is provided");let w=new zm,x=f.hint?Bu.create(f.hint):void 0;return new Wu(b,f,w,v,x,!1,i.getVersionId(),i)}constructor(f,i,h,b,v,w=!1,x,I){super(i,h,v,I);this._action=f,this._edits=b,this._lastChangePartOfInlineEdit=w,this._inlineEditModelVersion=x,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get action(){return this._action}withIdentity(f){return new Wu(this._action,this._data,f,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(f,i){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===f.getVersionId()}withEdit(f,i){if(!this.originalTextRef.targets(i))return this;return this._applyTextModelChanges(f,this._edits,i)}_applyTextModelChanges(f,i,h){let b=Wd(h),v=!1,w=this._inlineEditModelVersion,x,I=Wr.snapshot(h);if(this.action?.kind==="edit"){if(i=i.map((Y)=>Y.applyTextModelChanges(f)),i.some((Y)=>Y.edit===void 0))return;let T=h.getVersionId();if(v=i.some((Y)=>Y.lastChangeUpdatedEdit),v)w=T??-1;if(T===null||w+20<T)return;if(i=i.filter((Y)=>!Y.edit.isEmpty),i.length===0)return;let O=new dr(i.map((Y)=>Y.edit));x={kind:"edit",textReplacement:b.getTextEdit(O).toReplacement(new Ou(h)),snippetInfo:this.snippetInfo,stringEdit:O,alternativeAction:this.action.alternativeAction,target:I}}else if(this.action?.kind==="jumpTo"){let T=this.action.offset,O=f.applyToOffsetOrUndefined(T);if(O===void 0)return;x={kind:"jumpTo",position:b.getPosition(O),offset:O,target:I}}else x=void 0;let E=this.hint;if(E){if(E=E.withEdit(f,b),!E)return}return new Wu(x,this._data,this.identity,i,E,v,w,I)}computeEditKind(f){let i=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(!i)return;return sC(i,f)}}function kN(f,i,h){let b=f.getEOL(),v=f.getValueOfRange(i),w=h.replace(/\r\n|\r|\n/g,b),E=$f.getDefault().computeDiff(li(v),li(w),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap((Y)=>Y.innerChanges??[]);function T(Y,ee){let te=Ht.fromPosition(ee.getStartPosition());return Ht.ofRange(ee).createRange(te.addToPosition(Y))}let O=new Ua(w);return new dr(E.map((Y)=>{let ee=T(i.getStartPosition(),Y.originalRange),te=f.getTransformer().getOffsetRange(ee),oe=O.getValueOfRange(Y.modifiedRange),ne=new Zn(te,oe),re=f.getValueOfRange(ee);return ON(ne,re,E.length,f)}))}function TN(f,i,h){return new dr([new Zn(f.getTransformer().getOffsetRange(i),h)])}class Km{static create(f,i){let h=yr(f.newText,i),b=bs(f.newText,i),v=f.newText.substring(h,f.newText.length-b);return new Km(f,v,h,b)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(f,i,h,b,v=!1){this._edit=f,this._trimmedNewText=i,this._prefixLength=h,this._suffixLength=b,this._lastChangeUpdatedEdit=v}applyTextModelChanges(f){let i=this._clone();return i._applyTextModelChanges(f),i}_clone(){return new Km(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(f){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new H("UpdatedInnerEdits: No edit to apply changes to");let i=this._applyChanges(this._edit,f);if(!i){this._edit=void 0;return}this._edit=i.edit,this._lastChangeUpdatedEdit=i.editHasChanged}_applyChanges(f,i){let h=f.replaceRange.start,b=f.replaceRange.endExclusive,v=f.newText,w=!1,x=this._prefixLength>0||this._suffixLength>0;for(let I=i.replacements.length-1;I>=0;I--){let E=i.replacements[I],T=E.newText.length>0&&E.replaceRange.isEmpty;if(T&&!x&&E.replaceRange.start===h&&v.startsWith(E.newText)){h+=E.newText.length,v=v.substring(E.newText.length),b+=E.newText.length,w=!0;continue}if(T&&x&&E.replaceRange.start===h+this._prefixLength&&this._trimmedNewText.startsWith(E.newText)){b+=E.newText.length,w=!0,this._prefixLength+=E.newText.length,this._trimmedNewText=this._trimmedNewText.substring(E.newText.length);continue}if(E.newText.length===0&&E.replaceRange.length>0&&E.replaceRange.start>=h+this._prefixLength&&E.replaceRange.endExclusive<=b-this._suffixLength){b-=E.replaceRange.length,w=!0;continue}if(E.equals(f)){w=!0,h=E.replaceRange.endExclusive,v="";continue}if(E.replaceRange.start>b)continue;if(E.replaceRange.endExclusive<h){h+=E.newText.length-E.replaceRange.length,b+=E.newText.length-E.replaceRange.length;continue}return}if(this._trimmedNewText.length===0&&h+this._prefixLength===b-this._suffixLength)return{edit:new Zn(new z(h+this._prefixLength,h+this._prefixLength),""),editHasChanged:!0};return{edit:new Zn(new z(h,b),v),editHasChanged:w}}}function NN(f,i){let h=i.getEOL();if(f.replaceRange.isEmpty&&f.newText.includes(h))f=T1(f,i);return f}function ON(f,i,h,b){let v=b.getEOL();if(f.newText.endsWith(v)&&i.endsWith(v))f=new Zn(f.replaceRange.deltaEnd(-v.length),f.newText.slice(0,-v.length));if(h===1&&f.replaceRange.isEmpty&&f.newText.includes(v)){let w=b.getTransformer().getPosition(f.replaceRange.start);if(b.getLineLength(w.lineNumber)!==0)f=T1(f,b)}if(h===1){let w=yr(i,f.newText),x=bs(i.slice(w),f.newText.slice(w));if(w+x===i.length)return new Zn(f.replaceRange.deltaStart(w).deltaEnd(-x),f.newText.substring(w,f.newText.length-x));if(w+x===f.newText.length)return new Zn(f.replaceRange.deltaStart(w).deltaEnd(-x),"")}return f}function T1(f,i){if(!f.replaceRange.isEmpty)throw new H("Unexpected original range");if(f.replaceRange.start===0)return f;let h=i.getEOL(),b=i.getTransformer().getPosition(f.replaceRange.start),{column:v,lineNumber:w}=b;if(v===1&&w>1&&f.newText.endsWith(h)&&!f.newText.startsWith(h))return new Zn(f.replaceRange.delta(-1),h+f.newText.slice(0,-h.length));return f}function N1(f,i){let h=new Xv,b=new ew(h,(T)=>i.getLanguageConfiguration(T)),v=new Qv(new O1([f]),b),w=tw(v,[],void 0,!0),x="",I=f.getLineContent();function E(T,O){if(T.kind===2){if(E(T.openingBracket,O),O=ln(O,T.openingBracket.length),T.child)E(T.child,O),O=ln(O,T.child.length);if(T.closingBracket)E(T.closingBracket,O),O=ln(O,T.closingBracket.length);else{let Y=b.getSingleLanguageBracketTokens(T.openingBracket.languageId).findClosingTokenText(T.openingBracket.bracketIds);x+=Y}}else if(T.kind===3);else if(T.kind===0||T.kind===1)x+=I.substring(nb(O),nb(ln(O,T.length)));else if(T.kind===4)for(let A of T.children)E(A,O),O=ln(O,A.length)}return E(w,tr),x}class O1{constructor(f){this.lines=f,this.tokenization={getLineTokens:(i)=>this.lines[i-1]}}getLineCount(){return this.lines.length}getLineLength(f){return this.lines[f-1].getLineContent().length}}var Mt;(function(f){f.Jump="jump",f.Accept="accept",f.Inactive="inactive"})(Mt||(Mt={}));class Do{static create(f,i=!1){return new Do(new Jn(B(f),f),i)}constructor(f,i=!1){this.event=f,this.alternativeAction=i}}var at;(function(f){f.GhostText="ghostText",f.Custom="custom",f.SideBySide="sideBySide",f.Deletion="deletion",f.InsertionInline="insertionInline",f.InsertionMultiLine="insertionMultiLine",f.WordReplacements="wordReplacements",f.LineReplacement="lineReplacement",f.Collapsed="collapsed",f.JumpTo="jumpTo"})(at||(at={}));class ic{constructor(f,i,h,b,v,w,x,I){this.cursorColumnDistance=f,this.cursorLineDistance=i,this.lineCountOriginal=h,this.lineCountModified=b,this.characterCountOriginal=v,this.characterCountModified=w,this.disjointReplacements=x,this.sameShapeReplacements=I,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0,this.isForAnotherDocument=void 0}setLongDistanceViewData(f,i){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(i-f)}getData(){return{cursorColumnDistance:this.cursorColumnDistance,cursorLineDistance:this.cursorLineDistance,lineCountOriginal:this.lineCountOriginal,lineCountModified:this.lineCountModified,characterCountOriginal:this.characterCountOriginal,characterCountModified:this.characterCountModified,disjointReplacements:this.disjointReplacements,sameShapeReplacements:this.sameShapeReplacements,longDistanceHintVisible:this.longDistanceHintVisible,longDistanceHintDistance:this.longDistanceHintDistance,isForAnotherDocument:this.isForAnotherDocument}}}class Um{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(f,i){let h=new Um;for(let b of f)h._nodes.add(b);for(let b of f){let v=i(b);if(v.length>0){let w=new Set;for(let x of v)w.add(x);h._outgoingEdges.set(b,w)}}return h}removeCycles(){let f=[],i=new Set,h=new Set,b=[],v=(w)=>{i.add(w),h.add(w);let x=this._outgoingEdges.get(w);if(x){for(let I of x)if(!i.has(I))v(I);else if(h.has(I))f.push(I),b.push({from:w,to:I})}h.delete(w)};for(let w of this._nodes)if(!i.has(w))v(w);for(let{from:w,to:x}of b){let I=this._outgoingEdges.get(w);if(I)I.delete(x)}return{foundCycles:f}}getOutgoing(f){let i=this._outgoingEdges.get(f);return i?Array.from(i):[]}}function P1(f,i,h,b,v,w){let x=r0("icr"),I=new Ve,E=void 0,T={...b,requestUuid:x},O=PN(i,h),A=sI(f,(re)=>re.groupId),Y=Um.from(f,(re)=>re.yieldsToGroupIds?.flatMap((he)=>A.get(he)??[])??[]),{foundCycles:ee}=Y.removeCycles();if(ee.length>0)gt(Error(`Inline completions: cyclic yield-to dependency detected. Path: ${ee.map((re)=>re.toString?re.toString():""+re).join(" -> ")}`));let te=0,oe=new Fg(async(re)=>{try{if(te++,I.token.isCancellationRequested)return;let he=Y.getOutgoing(re);for(let Me of he){let He=await oe.get(Me);if(He)for(let qe of He.inlineSuggestions.items){if(qe.isInlineEdit||typeof qe.insertText!=="string"&&qe.insertText!==void 0)return;if(qe.insertText!==void 0){let Oe=new ft(t.lift(qe.range)??O,qe.insertText);if(Bm(Oe,void 0,h,i))return}}}let ue,Ie=Date.now();try{ue=await re.provideInlineCompletions(h,i,T,I.token)}catch(Me){gt(Me);return}let Te=Date.now();if(!ue)return;let ae=[],xe=new H1(ue,ae,re);if(xe.addRef(),dC(I.token,()=>xe.removeRef(E)),I.token.isCancellationRequested)return;for(let Me of ue.items){let He=MN(Me,xe,O,h,w,T,v,{startTime:Ie,endTime:Te});if(ec.is(He)){He.logError();continue}ae.push(He)}return xe}finally{te--}}),ne=Wn.fromPromisesResolveOrder(f.map((re)=>oe.get(re))).filter(Bn);return{contextWithUuid:T,get didAllProvidersReturn(){return te===0},lists:ne,cancelAndDispose:(re)=>{if(E!==void 0)return;E=re,I.dispose(!0)}}}function dC(f,i){if(f.isCancellationRequested)return i(),n.None;else{let h=f.onCancellationRequested(()=>{h.dispose(),i()});return{dispose:()=>h.dispose()}}}function MN(f,i,h,b,v,w,x,I){let E,T=f.uri?q.revive(f.uri):void 0;if(f.jumpToPosition!==void 0)E={kind:"jumpTo",position:s.lift(f.jumpToPosition),uri:T};else if(f.insertText!==void 0){let O,A,Y=f.range?t.lift(f.range):h;if(typeof f.insertText==="string"){if(O=f.insertText,v&&f.completeBracketPairs){O=M1(O,Y.getStartPosition(),b,v);let ee=O.length-f.insertText.length;if(ee!==0)Y=new t(Y.startLineNumber,Y.startColumn,Y.endLineNumber,Y.endColumn+ee)}A=void 0}else if("snippet"in f.insertText){let ee=f.insertText.snippet.length;if(v&&f.completeBracketPairs){f.insertText.snippet=M1(f.insertText.snippet,Y.getStartPosition(),b,v);let oe=f.insertText.snippet.length-ee;if(oe!==0)Y=new t(Y.startLineNumber,Y.startColumn,Y.endLineNumber,Y.endColumn+oe)}let te=new co().parse(f.insertText.snippet);if(te.children.length===1&&te.children[0]instanceof ki)O=te.children[0].value,A=void 0;else O=te.toString(),A={snippet:f.insertText.snippet,range:Y}}else xl(f.insertText);E={kind:"edit",range:Y,insertText:O,snippetInfo:A,uri:T,alternativeAction:void 0}}else if(E=void 0,!f.hint)return ec.message("Inline completion has no insertText, jumpToPosition nor hint.");return new A1(E,f.hint,f.additionalTextEdits||b1(),f,i,w,f.isInlineEdit??!1,f.supportsRename??!1,x,I,f.correlationId)}class A1{get action(){return this._action}constructor(f,i,h,b,v,w,x,I,E,T,O){this._action=f,this.hint=i,this.additionalTextEdits=h,this.sourceInlineCompletion=b,this.source=v,this.context=w,this.isInlineEdit=x,this.supportsRename=I,this._requestInfo=E,this._providerRequestInfo=T,this._correlationId=O,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 F1,this._viewData={editorType:E.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(f,i,h,b,v,w){if(this.updateShownDuration(h),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=v,this._viewData.viewKind=h,this._viewData.renderData=b,this._timeUntilShown=w-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;let x=new Wf(b.lineCountModified,b.lineCountOriginal,b.characterCountModified,b.characterCountOriginal);if(this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,i,x),this.sourceInlineCompletion.shownCommand)await f.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(f,i,h){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=h.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*h.ratio,1),this._partiallyAcceptedSinceOriginal.count+=h.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,f,i)}reportEndOfLife(f){if(this._didReportEndOfLife)return;if(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),!f)f=this._lastSetEndOfLifeReason??{kind:ja.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(f.kind===ja.Rejected&&!this._didShow)f={kind:ja.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(f.kind===ja.Rejected&&this.source.provider.handleRejection)this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion);if(this.source.provider.handleEndOfLifetime){let i={requestUuid:this.context.requestUuid,correlationId:this._correlationId,selectedSuggestionInfo:!!this.context.selectedSuggestionInfo,partiallyAccepted:this._partiallyAcceptedCount,partiallyAcceptedCountSinceOriginal:this._partiallyAcceptedSinceOriginal.count,partiallyAcceptedRatioSinceOriginal:this._partiallyAcceptedSinceOriginal.ratio,partiallyAcceptedCharactersSinceOriginal:this._partiallyAcceptedSinceOriginal.characters,shown:this._didShow,shownDuration:this._shownDuration,shownDurationUncollapsed:this._showUncollapsedDuration,editKind:this._editKind?.toString(),preceeded:this._isPreceeded,timeUntilShown:this._timeUntilShown,timeUntilActuallyShown:this._timeUntilActuallyShown,timeUntilProviderRequest:this._providerRequestInfo.startTime-this._requestInfo.startTime,timeUntilProviderResponse:this._providerRequestInfo.endTime-this._requestInfo.startTime,editorType:this._viewData.editorType,languageId:this._requestInfo.languageId,requestReason:this._requestInfo.reason,viewKind:this._viewData.viewKind,notShownReason:this._notShownReason,performanceMarkers:this.performance.toString(),renameCreated:this._renameInfo?.createdRename,renameDuration:this._renameInfo?.duration,renameTimedOut:this._renameInfo?.timedOut,renameDroppedOtherEdits:this._renameInfo?.droppedOtherEdits,renameDroppedRenameEdits:this._renameInfo?.droppedRenameEdits,typingInterval:this._requestInfo.typingInterval,typingIntervalCharacterCount:this._requestInfo.typingIntervalCharacterCount,skuPlan:this._requestInfo.sku?.plan,skuType:this._requestInfo.sku?.type,availableProviders:this._requestInfo.availableProviders.map((h)=>h.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,f,i)}}setIsPreceeded(f){if(this._isPreceeded=!0,this._partiallyAcceptedSinceOriginal.characters!==0||this._partiallyAcceptedSinceOriginal.ratio!==0||this._partiallyAcceptedSinceOriginal.count!==0)console.warn("Expected partiallyAcceptedCountSinceOriginal to be { characters: 0, rate: 0, partialAcceptances: 0 } before setIsPreceeded.");this._partiallyAcceptedSinceOriginal=f}setNotShownReason(f){this._notShownReason??=f}setEndOfLifeReason(f){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=f}updateShownDuration(f){let i=Date.now();if(!this._showStartTime)this._showStartTime=i;let h=f===at.Collapsed;if(!h&&this._showUncollapsedStartTime===void 0)this._showUncollapsedStartTime=i;if(h&&this._showUncollapsedStartTime!==void 0)this._showUncollapsedDuration+=i-this._showUncollapsedStartTime}reportInlineEditHidden(){if(this._showStartTime===void 0)return;let f=Date.now();if(this._shownDuration+=f-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime===void 0)return;this._showUncollapsedDuration+=f-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0}setRenameProcessingInfo(f){if(this._renameInfo)throw new H("Rename info has already been set.");this._renameInfo=f}withAction(f){return this._action=f,this}addPerformanceMarker(f){this.performance.mark(f)}}class F1{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(f){this.markers.push({name:f,timeStamp:Date.now()})}toString(){let f=[];for(let i=1;i<this.markers.length;i++){let h=this.markers[i].timeStamp-this.markers[i-1].timeStamp;f.push({[this.markers[i].name]:h})}return JSON.stringify(f)}}var Bt;(function(f){f.TextEditor="textEditor",f.DiffEditor="diffEditor",f.Notebook="notebook"})(Bt||(Bt={}));class H1{constructor(f,i,h){this.inlineSuggestions=f,this.inlineSuggestionsData=i,this.provider=h,this.refCount=0}addRef(){this.refCount++}removeRef(f={kind:"other"}){if(this.refCount--,this.refCount===0){for(let i of this.inlineSuggestionsData)i.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,f)}else if(this.refCount<0)Z(new H(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}}function PN(f,i){let h=i.getWordAtPosition(f),b=i.getLineMaxColumn(f.lineNumber);return h?new t(f.lineNumber,h.startColumn,f.lineNumber,b):t.fromPositions(f,f.with(void 0,b))}function M1(f,i,h,b){let v=h.getLineContent(i.lineNumber),w=Zn.replace(new z(i.column-1,v.length),f),I=h.tokenization.tokenizeLinesAt(i.lineNumber,[w.replace(v)])?.[0].sliceZeroCopy(w.getRangeAfterReplace());if(!I)return f;return N1(I,b)}var AN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},$m=function(f,i){return function(h,b){i(h,b,f)}},Vd=new P("renameInputVisible",!1,e(1460,"Whether the rename input widget is visible"));new P("renameInputFocused",!1,e(1461,"Whether the rename input widget is focused"));var jm=class f{constructor(i,h,b,v,w,x){this._editor=i,this._acceptKeybindings=h,this._themeService=b,this._keybindingService=v,this._logService=x,this.allowEditorOverflow=!0,this._disposables=new d,this._visibleContextKey=Vd.bindTo(w),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new en,this._inputWithButton=new W1,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((I)=>{if(I.hasChanged(59))this._updateFont()})),this._disposables.add(b.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){if(!this._domNode)this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new lC(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:(i)=>{this._inputWithButton.input.value=i,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{if(this._renameCandidateListView?.focusedCandidate!==void 0)this._isEditingRenameCandidate=!0;if(this._timeBeforeFirstInputFieldEdit??=this._beforeFirstInputFieldEditSW.elapsed(),this._renameCandidateProvidersCts?.token.isCancellationRequested===!1)this._renameCandidateProvidersCts.cancel();this._renameCandidateListView?.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme());return this._domNode}_updateStyles(i){if(!this._domNode)return;let h=i.getColor(ad),b=i.getColor(Yg);this._domNode.style.backgroundColor=String(i.getColor(kr)??""),this._domNode.style.boxShadow=h?` 0 0 8px 2px ${h}`:"",this._domNode.style.border=b?`1px solid ${b}`:"",this._domNode.style.color=String(i.getColor(n0)??"");let v=i.getColor(i0);this._inputWithButton.domNode.style.backgroundColor=String(i.getColor(qv)??""),this._inputWithButton.input.style.backgroundColor=String(i.getColor(qv)??""),this._inputWithButton.domNode.style.borderWidth=v?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=v?"solid":"none",this._inputWithButton.domNode.style.borderColor=v?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;Ae(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);let i=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(i.fontSize)}px`}_computeLabelFontSize(i){return i*0.8}getPosition(){if(!this._visible)return null;if(!this._editor.hasModel()||!this._editor.getDomNode())return null;let i=Hs(this.getDomNode().ownerDocument.body),h=xt(this._editor.getDomNode()),b=this._getTopForPosition();this._nPxAvailableAbove=b+h.top,this._nPxAvailableBelow=i.height-this._nPxAvailableAbove;let v=this._editor.getOption(75),{totalHeight:w}=oc.getLayoutInfo({lineHeight:v}),x=this._nPxAvailableBelow>w*6?[2,1]:[1,2];return{position:this._position,preference:x}}beforeRender(){let[i,h]=this._acceptKeybindings;return this._label.innerText=e(1462,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(i)?.getLabel(),this._keybindingService.lookupKeybinding(h)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(i){if(i===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Ae(this._renameCandidateListView),Ae(this._nPxAvailableAbove!==void 0),Ae(this._nPxAvailableBelow!==void 0);let h=Wa(this._inputWithButton.domNode),b=Wa(this._label),v;if(i===2)v=this._nPxAvailableBelow;else v=this._nPxAvailableAbove;this._renameCandidateListView.layout({height:v-b-h,width:vr(this._inputWithButton.domNode)})}acceptInput(i){this._trace("invoking acceptInput"),this._currentAcceptInput?.(i)}cancelInput(i,h){this._currentCancelInput?.(i)}focusNextRenameSuggestion(){if(!this._renameCandidateListView?.focusNext())this._inputWithButton.input.value=this._currentName}focusPreviousRenameSuggestion(){if(!this._renameCandidateListView?.focusPrevious())this._inputWithButton.input.value=this._currentName}getInput(i,h,b,v,w){let{start:x,end:I}=this._getSelection(i,h);this._renameCts=w;let E=new d;if(this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,v===void 0)this._inputWithButton.button.style.display="none";else this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=v,this._requestRenameCandidates(h,!1),E.add(c(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(h,!0))),E.add(c(this._inputWithButton.button,S.KEY_DOWN,(O)=>{let A=new Ge(O);if(A.equals(3)||A.equals(10))A.stopPropagation(),A.preventDefault(),this._requestRenameCandidates(h,!0)}));this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",b),this._position=new s(i.startLineNumber,i.startColumn),this._currentName=h,this._inputWithButton.input.value=h,this._inputWithButton.input.setAttribute("selectionStart",x.toString()),this._inputWithButton.input.setAttribute("selectionEnd",I.toString()),this._inputWithButton.input.size=Math.max((i.endColumn-i.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),E.add(R(()=>{this._renameCts=void 0,w.dispose(!0)})),E.add(R(()=>{if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0})),E.add(R(()=>this._candidates.clear()));let T=new js;return T.p.finally(()=>{E.dispose(),this._hide()}),this._currentCancelInput=(O)=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),T.complete(O),!0),this._currentAcceptInput=(O)=>{this._trace("invoking _currentAcceptInput"),Ae(this._renameCandidateListView!==void 0);let A=this._renameCandidateListView.nCandidates,Y,ee,te=this._renameCandidateListView.focusedCandidate;if(te!==void 0)this._trace("using new name from renameSuggestion"),Y=te,ee={k:"renameSuggestion"};else this._trace("using new name from inputField"),Y=this._inputWithButton.input.value,ee=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"};if(Y===h||Y.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(),T.complete({newName:Y,wantsPreview:b&&O,stats:{source:ee,nRenameSuggestions:A,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},E.add(w.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),E.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),T.p}_requestRenameCandidates(i,h){if(this._requestRenameCandidatesOnce===void 0)return;if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0);if(Ae(this._renameCts),this._inputWithButton.buttonState!=="stop"){this._renameCandidateProvidersCts=new Ve;let b=h?_f.Invoke:_f.Automatic,v=this._requestRenameCandidatesOnce(b,this._renameCandidateProvidersCts.token);if(v.length===0){this._inputWithButton.setSparkleButton();return}if(!h)this._hadAutomaticRenameSuggestionsInvocation=!0;this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(v,i,this._renameCts.token)}}_getSelection(i,h){Ae(this._editor.hasModel());let b=this._editor.getSelection(),v=0,w=h.length;if(!t.isEmpty(b)&&!t.spansMultipleLines(b)&&t.containsRange(i,b))v=Math.max(0,b.startColumn-i.startColumn),w=Math.min(i.endColumn,b.endColumn)-i.startColumn;return{start:v,end:w}}_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(i,h,b){let v=(...T)=>this._trace("_updateRenameCandidates",...T);v("start");let w=await El(Promise.allSettled(i),b);if(this._inputWithButton.setSparkleButton(),w===void 0){v("returning early - received updateRenameCandidates results - undefined");return}let x=w.flatMap((T)=>T.status==="fulfilled"&&Bn(T.value)?T.value:[]);v(`received updateRenameCandidates results - total (unfiltered) ${x.length} candidates.`);let I=hs(x,(T)=>T.newSymbolName);v(`distinct candidates - ${I.length} candidates.`);let E=I.filter(({newSymbolName:T})=>T.trim().length>0&&T!==this._inputWithButton.input.value&&T!==h&&!this._candidates.has(T));if(v(`valid distinct candidates - ${x.length} candidates.`),E.forEach((T)=>this._candidates.add(T.newSymbolName)),E.length<1){v("returning early - no valid distinct candidates");return}v("setting candidates"),this._renameCandidateListView.setCandidates(E),v("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){let i=this._editor.getVisibleRanges(),h;if(i.length>0)h=i[0].startLineNumber;else this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),h=Math.max(1,this._position.lineNumber-5);return this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(h)}_trace(...i){this._logService.trace("RenameWidget",...i)}};jm=AN([$m(2,je),$m(3,fe),$m(4,K),$m(5,Ke)],jm);class lC{constructor(f,i){this._disposables=new d,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=i.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=i.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",f.appendChild(this._listContainer),this._listWidget=lC._createListWidget(this._listContainer,this._candidateViewHeight,i.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus((h)=>{if(h.elements.length===1)i.onFocusChange(h.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection((h)=>{if(h.elements.length===1)i.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur((h)=>{this._listWidget.setFocus([])})),this._listWidget.style(kc({listInactiveFocusForeground:vc,listInactiveFocusBackground:wc}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:f,width:i}){this._availableHeight=f,this._minimumWidth=i}setCandidates(f){this._listWidget.splice(0,0,f);let i=this._pickListHeight(this._listWidget.length),h=this._pickListWidth(f);this._listWidget.layout(i,h),this._listContainer.style.height=`${i}px`,this._listContainer.style.width=`${h}px`,Cr(e(1463,"Received {0} rename suggestions",f.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;let f=this._listWidget.getSelectedElements()[0];if(f!==void 0)return f.newSymbolName;let i=this._listWidget.getFocusedElements()[0];if(i!==void 0)return i.newSymbolName;return}focusNext(){if(this._listWidget.length===0)return!1;let f=this._listWidget.getFocus();if(f.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;else if(f[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;else{this._listWidget.focusNext();let i=this._listWidget.getFocus()[0];return this._listWidget.reveal(i),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;let f=this._listWidget.getFocus();if(f.length===0){this._listWidget.focusLast();let i=this._listWidget.getFocus()[0];return this._listWidget.reveal(i),!0}else if(f[0]===0)return this._listWidget.setFocus([]),!1;else{this._listWidget.focusPrevious();let i=this._listWidget.getFocus()[0];return this._listWidget.reveal(i),!0}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){let{totalHeight:f}=oc.getLayoutInfo({lineHeight:this._lineHeight});return f}_pickListHeight(f){let i=this._candidateViewHeight*f,h=7;return Math.min(i,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(f){let i=Math.ceil(Math.max(...f.map((b)=>b.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+i+10)}static _createListWidget(f,i,h){let b=new class{getTemplateId(w){return"candidate"}getHeight(w){return i}},v=new class{constructor(){this.templateId="candidate"}renderTemplate(w){return new oc(w,h)}renderElement(w,x,I){I.populate(w)}disposeTemplate(w){w.dispose()}};return new hr("NewSymbolNameCandidates",f,b,[v],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class W1{constructor(){this._buttonHoverContent="",this._disposables=new d,this._onDidInputChange=this._disposables.add(new r),this.onDidInputChange=this._onDidInputChange.event}get domNode(){if(!this._domNode)this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",e(1464,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=e(1465,"Generate New Name Suggestions"),this._buttonCancelHoverText=e(1466,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add(pi().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(c(this.input,S.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(c(this.input,S.KEY_DOWN,(f)=>{let i=new Ge(f);if(i.keyCode===15||i.keyCode===17)this._onDidInputChange.fire()})),this._disposables.add(c(this.input,S.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(c(this.input,S.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(c(this.input,S.BLUR,()=>{this.domNode.style.outline="none"}));return this._domNode}get input(){return Ae(this._inputNode),this._inputNode}get button(){return Ae(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=ur(y.sparkle),on(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??=ur(y.stopCircle),on(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHoverContent=this._buttonCancelHoverText,this.input.focus()}dispose(){this._disposables.dispose()}}class oc{static{this._PADDING=2}constructor(f,i){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=`${i.lineHeight}px`,this._domNode.style.padding=`${oc._PADDING}px`;let h=document.createElement("div");h.style.display="flex",h.style.alignItems="center",h.style.width=h.style.height=`${i.lineHeight*0.8}px`,this._domNode.appendChild(h),this._icon=ur(y.sparkle),this._icon.style.display="none",h.appendChild(this._icon),this._label=document.createElement("div"),pn(this._label,i),this._domNode.appendChild(this._label),f.appendChild(this._domNode)}populate(f){this._updateIcon(f),this._updateLabel(f)}_updateIcon(f){let i=!!f.tags?.includes(H_.AIGenerated);this._icon.style.display=i?"inherit":"none"}_updateLabel(f){this._label.innerText=f.newSymbolName}static getLayoutInfo({lineHeight:f}){return{totalHeight:f+oc._PADDING*2}}dispose(){}}var FN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Kd=function(f,i){return function(h,b){i(h,b,f)}},cC;class Vu{constructor(f,i,h){this.model=f,this.position=i,this._providerRenameIdx=0,this._providers=h.ordered(f)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(f){let i=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){let b=this._providers[this._providerRenameIdx];if(!b.resolveRenameLocation)break;let v=await b.resolveRenameLocation(this.model,this.position,f);if(!v)continue;if(v.rejectReason){i.push(v.rejectReason);continue}return v}this._providerRenameIdx=0;let h=this.model.getWordAtPosition(this.position);if(!h)return{range:t.fromPositions(this.position),text:"",rejectReason:i.length>0?i.join(`
38
- `):void 0};return{range:new t(this.position.lineNumber,h.startColumn,this.position.lineNumber,h.endColumn),text:h.word,rejectReason:i.length>0?i.join(`
39
- `):void 0}}async provideRenameEdits(f,i){return this._provideRenameEdits(f,this._providerRenameIdx,[],i)}async _provideRenameEdits(f,i,h,b){let v=this._providers[i];if(!v)return{edits:[],rejectReason:h.join(`
40
- `)};let w=await v.provideRenameEdits(this.model,this.position,f,b);if(!w)return this._provideRenameEdits(f,i+1,h.concat(e(1449,"No result.")),b);else if(w.rejectReason)return this._provideRenameEdits(f,i+1,h.concat(w.rejectReason),b);return w}}function B1(f,i){return f.ordered(i).length>0}async function V1(f,i,h,b,v){return new Vu(i,h,f).provideRenameEdits(b,v??be.None)}async function HN(f,i,h,b){let v=new Vu(i,h,f),w=await v.resolveRenameLocation(be.None);if(w?.rejectReason)return{edits:[],rejectReason:w.rejectReason};return v.provideRenameEdits(b,be.None)}var ca=class f{static{cC=this}static{this.ID="editor.contrib.renameController"}static get(i){return i.getContribution(cC.ID)}constructor(i,h,b,v,w,x,I,E){this.editor=i,this._instaService=h,this._notificationService=b,this._bulkEditService=v,this._progressService=w,this._logService=x,this._configService=I,this._languageFeaturesService=E,this._disposableStore=new d,this._cts=new Ve,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(jm,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){let i=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Ve,!this.editor.hasModel()){i("editor has no model");return}let h=this.editor.getPosition(),b=new Vu(this.editor.getModel(),h,this._languageFeaturesService.renameProvider);if(!b.hasProvider()){i("skeleton has no provider");return}let v=new ss(this.editor,5,void 0,this._cts.token),w;try{i("resolving rename location");let te=b.resolveRenameLocation(v.token);this._progressService.showWhile(te,250),w=await te,i("resolved rename location")}catch(te){if(te instanceof ho)i("resolve rename location cancelled",JSON.stringify(te,null,"\t"));else if(i("resolve rename location failed",te instanceof Error?te:JSON.stringify(te,null,"\t")),typeof te==="string"||wo(te))Ei.get(this.editor)?.showMessage(te||e(1450,"An unknown error occurred while resolving rename location"),h);return}finally{v.dispose()}if(!w){i("returning early - no loc");return}if(w.rejectReason){i(`returning early - rejected with reason: ${w.rejectReason}`,w.rejectReason),Ei.get(this.editor)?.showMessage(w.rejectReason,h);return}if(v.token.isCancellationRequested){i("returning early - cts1 cancelled");return}let x=new ss(this.editor,5,w.range,this._cts.token),I=this.editor.getModel(),E=this._languageFeaturesService.newSymbolNamesProvider.all(I),T=await Promise.all(E.map(async(te)=>[te,await te.supportsAutomaticNewSymbolNamesTriggerKind??!1])),O=(te,oe)=>{let ne=T.slice();if(te===_f.Automatic)ne=ne.filter(([re,he])=>he);return ne.map(([re])=>re.provideNewSymbolNames(I,w.range,te,oe))};i("creating rename input field and awaiting its result");let A=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),Y=await this._renameWidget.getInput(w.range,w.text,A,E.length>0?O:void 0,x);if(i("received response from rename input field"),typeof Y==="boolean"){if(i(`returning early - rename input field response - ${Y}`),Y)this.editor.focus();x.dispose();return}this.editor.focus(),i("requesting rename edits");let ee=El(b.provideRenameEdits(Y.newName,x.token),x.token).then(async(te)=>{if(!te){i("returning early - no rename edits result");return}if(!this.editor.hasModel()){i("returning early - no model after rename edits are provided");return}if(te.rejectReason){i(`returning early - rejected with reason: ${te.rejectReason}`),this._notificationService.info(te.rejectReason);return}this.editor.setSelection(t.fromPositions(this.editor.getSelection().getPosition())),i("applying edits"),this._bulkEditService.apply(te,{editor:this.editor,showPreview:Y.wantsPreview,label:e(1451,"Renaming '{0}' to '{1}'",w?.text,Y.newName),code:"undoredo.rename",quotableLabel:e(1452,"Renaming {0} to {1}",w?.text,Y.newName),respectAutoSaveConfig:!0,reason:Mn.rename(w?.text,Y.newName)}).then((oe)=>{if(i("edits applied"),oe.ariaSummary)Dn(e(1453,"Successfully renamed '{0}' to '{1}'. Summary: {2}",w.text,Y.newName,oe.ariaSummary))}).catch((oe)=>{i(`error when applying edits ${JSON.stringify(oe,null,"\t")}`),this._notificationService.error(e(1454,"Rename failed to apply edits")),this._logService.error(oe)})},(te)=>{i("error when providing rename edits",JSON.stringify(te,null,"\t")),this._notificationService.error(e(1455,"Rename failed to compute edits")),this._logService.error(te)}).finally(()=>{x.dispose()});return i("returning rename operation"),this._progressService.showWhile(ee,250),ee}acceptRenameInput(i){this._renameWidget.acceptInput(i)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}};ca=cC=FN([Kd(1,D),Kd(2,bt),Kd(3,Bl),Kd(4,xs),Kd(5,Ke),Kd(6,Ug),Kd(7,V)],ca);class K1 extends U{constructor(){super({id:"editor.action.rename",label:p(1457,"Rename Symbol"),precondition:C.and(o.writable,o.hasRenameProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(f,i){let h=f.get(Ce),[b,v]=Array.isArray(i)&&i||[void 0,void 0];if(q.isUri(b)&&s.isIPosition(v))return h.openCodeEditor({resource:b},h.getActiveCodeEditor()).then((w)=>{if(!w)return;w.setPosition(v),w.invokeWithinContext((x)=>(this.reportTelemetry(x,w),this.run(x,w)))},Z);return super.runCommand(f,i)}run(f,i){let h=f.get(Ke),b=ca.get(i);if(b)return h.trace("[RenameAction] got controller, running..."),b.run();return h.trace("[RenameAction] returning early - controller missing"),Promise.resolve()}}pe(ca.ID,ca,4);N(K1);var hC=Kt.bindToContribution(ca.get);G(new hC({id:"acceptRenameInput",precondition:Vd,handler:(f)=>f.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:o.focus,primary:3}}));G(new hC({id:"acceptRenameInputWithPreview",precondition:C.and(Vd,C.has("config.editor.rename.enablePreview")),handler:(f)=>f.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:o.focus,primary:2051}}));G(new hC({id:"cancelRenameInput",precondition:Vd,handler:(f)=>f.cancelRenameInput(),kbOpts:{weight:199,kbExpr:o.focus,primary:9,secondary:[1033]}}));it(class f extends fn{constructor(){super({id:"focusNextRenameSuggestion",title:{...p(1458,"Focus Next Rename Suggestion")},precondition:Vd,keybinding:[{primary:18,weight:199}]})}run(i){let h=i.get(Ce).getFocusedCodeEditor();if(!h)return;let b=ca.get(h);if(!b)return;b.focusNextRenameSuggestion()}});it(class f extends fn{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...p(1459,"Focus Previous Rename Suggestion")},precondition:Vd,keybinding:[{primary:16,weight:199}]})}run(i){let h=i.get(Ce).getFocusedCodeEditor();if(!h)return;let b=ca.get(h);if(!b)return;b.focusPreviousRenameSuggestion()}});xr("_executeDocumentRenameProvider",function(f,i,h,...b){let[v]=b;Ae(typeof v==="string");let{renameProvider:w}=f.get(V);return HN(w,i,h,v)});xr("_executePrepareRename",async function(f,i,h){let{renameProvider:b}=f.get(V),w=await new Vu(i,h,b).resolveRenameLocation(be.None);if(w?.rejectReason)throw Error(w.rejectReason);return w});lt.as(go.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:e(1456,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var WN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},nc=function(f,i){return function(h,b){i(h,b,f)}},Ls;(function(f){f.no="no",f.yes="yes",f.maybe="maybe"})(Ls||(Ls={}));(function(f){function i(h){switch(h){case"no":return f.no;case"yes":return f.yes;case"maybe":return f.maybe;default:return f.no}}f.fromString=i})(Ls||(Ls={}));class z1{constructor(){}inferRename(f,i,h,b){let v=new t(i.startLineNumber,1,i.endLineNumber,f.getLineMaxColumn(i.endLineNumber)),w=i.startColumn-v.startColumn,x=v.endColumn-i.endColumn,I=f.getValueInRange(v),E=f.getValueInRange(new t(v.startLineNumber,v.startColumn,v.startLineNumber,v.startColumn+w))+h+f.getValueInRange(new t(v.endLineNumber,v.endColumn-x,v.endLineNumber,v.endColumn)),T=[],O=[],A=void 0,Y=void 0,ee=void 0,te=f.getOffsetAt(v.getStartPosition()),{changes:oe}=new Bs(new Wg(I),new Wg(E)).ComputeDiff(!0);if(oe.length===0)return;let ne=[];for(let ue of oe){if(ne.length===0){ne.push(ue);continue}let Ie=ne[ne.length-1],Te=ue.originalStart-(Ie.originalStart+Ie.originalLength);if(Te>0){let ae=te+Ie.originalStart+Ie.originalLength,xe=f.getPositionAt(ae),Me=f.getWordAtPosition(xe);if(Me){let He=f.getOffsetAt(new s(xe.lineNumber,Me.startColumn)),qe=f.getOffsetAt(new s(xe.lineNumber,Me.endColumn)),Oe=ae+Te;if(He<=ae&&Oe<=qe&&He<=Oe&&Oe<=qe){Ie.originalLength=ue.originalStart+ue.originalLength-Ie.originalStart,Ie.modifiedLength=ue.modifiedStart+ue.modifiedLength-Ie.modifiedStart;continue}}}ne.push(ue)}let re=0;for(let ue of ne){let Ie=I.substring(ue.originalStart,ue.originalStart+ue.originalLength),Te=E.substring(ue.modifiedStart,ue.modifiedStart+ue.modifiedLength),ae=te+ue.originalStart,xe=f.getPositionAt(ae),Me=ae+ue.originalLength,He=f.getPositionAt(Me),qe=t.fromPositions(xe,He),Oe=Te.length-ue.originalLength;if(/\s/.test(Ie)){T.push(new ft(qe,Te)),re+=Oe;continue}if(Ie.length>0){b.lastIndex=0;let tt=b.exec(Ie);if(tt===null||tt.index!==0||tt[0].length!==Ie.length){T.push(new ft(qe,Te)),re+=Oe;continue}}if(/\s/.test(Te)){T.push(new ft(qe,Te)),re+=Oe;continue}if(Te.length>0){b.lastIndex=0;let tt=b.exec(Te);if(tt===null||tt.index!==0||tt[0].length!==Te.length){T.push(new ft(qe,Te)),re+=Oe;continue}}let Ze=f.getWordAtPosition(xe);if(Ze===null){T.push(new ft(qe,Te)),re+=Oe;continue}let dt=ue.originalStart+1,Qe=ue.originalLength===0&&ue.modifiedLength>0,ut;if(Qe&&dt===Ze.endColumn&&Ze.endColumn>Ze.startColumn)ut=this.getTokenAtPosition(f,new s(xe.lineNumber,Ze.startColumn));else ut=this.getTokenAtPosition(f,xe);if(Ze.startColumn!==ut.range.startColumn||Ze.endColumn!==ut.range.endColumn){T.push(new ft(qe,Te)),re+=Oe;continue}if(ut.type===0){let tt=f.getValueInRange(ut.range);if(tt.length===0){T.push(new ft(qe,Te)),re+=Oe;continue}if(A===void 0)A=tt;else if(A!==tt){T.push(new ft(qe,Te)),re+=Oe;continue}let Gt=f.getOffsetAt(ut.range.getStartPosition())-te+re,ct=f.getOffsetAt(ut.range.getEndPosition())-te+re;if(tt=E.substring(Gt,ct+Oe),tt.length===0){T.push(new ft(qe,Te)),re+=Oe;continue}if(Y===void 0)Y=tt;else if(Y!==tt){T.push(new ft(qe,Te)),re+=Oe;continue}if(ee===void 0)ee=ut.range.getStartPosition();if(A!==void 0&&Y!==void 0&&A.length>0&&Y.length>0&&A!==Y)O.push(new ft(ut.range,Y));else O.push(new ft(qe,Te));re+=Oe}else T.push(new ft(qe,Te)),re+=Te.length-ue.originalLength}if(A===void 0||Y===void 0||ee===void 0||A.length===0||Y.length===0||A===Y)return;b.lastIndex=0;let he=b.exec(A);if(he===null||he.index!==0||he[0].length!==A.length)return;if(b.lastIndex=0,he=b.exec(Y),he===null||he.index!==0||he[0].length!==Y.length)return;return{renames:{edits:O,position:ee,oldName:A,newName:Y},others:{edits:T}}}getTokenAtPosition(f,i){f.tokenization.tokenizeIfCheap(i.lineNumber);let h=f.tokenization.getLineTokens(i.lineNumber),b=h.findTokenIndexAtOffset(i.column-1);return{type:h.getStandardTokenType(b),range:new t(i.lineNumber,1+h.getStartOffset(b),i.lineNumber,1+h.getEndOffset(b))}}}class Ku{static create(f,i){let h=f.getFocusedCodeEditor();if(h===null)return;if(h.getModel()!==i)return;return new Ku(h,i.getVersionId())}constructor(f,i){this.editor=f,this.versionId=i}equals(f){if(f===void 0)return!1;return this.editor===f.editor&&this.versionId===f.versionId}}class U1{constructor(f,i,h,b,v,w,x,I,E){if(this._result=void 0,this._commandService=i,this._textModel=b,this._state=v,this._requestUuid=h,this._cancellationTokenSource=new Ve,I===void 0||E===void 0){this._promise=V1(f.renameProvider,b,w,x,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(b,w,E,x,I)}get requestUuid(){return this._requestUuid}isValid(f){return this._state.equals(Ku.create(f,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;let f=await this.getResult();if(f===void 0||this._cancellationTokenSource.token.isCancellationRequested)return 0;return f.edits.length}async getWorkspaceEdit(){return this.getResult()}async getResult(){if(this._cancellationTokenSource.token.isCancellationRequested)return;if(this._result===void 0)this._result=await this._promise;if(this._result.rejectReason||this._cancellationTokenSource.token.isCancellationRequested)return;return this._result}async sendNesRenameRequest(f,i,h,b,v){try{let w=await this._commandService.executeCommand("github.copilot.nes.postRename",f.uri,i,h,b,v);if(w===void 0)return{rejectReason:"Rename failed",edits:[]};let x=[];for(let I of w)for(let E of I.changes){let T=new t(E.range.start.line+1,E.range.start.character+1,E.range.end.line+1,E.range.end.character+1),O=new Vl(I.file,new ft(T,E.newText??b));x.push(O)}return{edits:x}}catch(w){return{rejectReason:"Rename failed",edits:[]}}}}var Gm=class f extends n{constructor(i,h,b,v,w,x){super();this._commandService=i,this._languageFeaturesService=h,this._languageConfigurationService=b,this._renameSymbolTrackerService=w,this._codeEditorService=x,this._renameInferenceEngine=new z1,this._renameRunnable=void 0,this._register(ke.registerCommand(LS,async(I,E,T)=>{if(T===void 0||!T.isValid(this._codeEditorService))return;try{let O=await T.getWorkspaceEdit();if(O===void 0)return;v.apply(O,{reason:E})}finally{if(this._renameRunnable===T)this._renameRunnable=void 0}}))}async proposeRenameRefactoring(i,h,b){if(!h.supportsRename||h.action?.kind!=="edit"||b.selectedSuggestionInfo)return h;if(!B1(this._languageFeaturesService.renameProvider,i))return h;let v=Ku.create(this._codeEditorService,i);if(v===void 0)return h;let w=Date.now(),x=h.action.textReplacement,I=this._languageConfigurationService.getLanguageConfiguration(i.getLanguageId()),E=this._renameInferenceEngine.inferRename(i,x.range,x.text,I.wordDefinition);if(E===void 0||E.renames.edits.length===0)return h;let{oldName:T,newName:O,position:A,edits:Y}=E.renames,ee=this._renameSymbolTrackerService.trackedWord.get(),te=void 0;if(ee!==void 0&&ee.model===i&&ee.originalWord===T&&ee.currentWord===O)te=ee.currentRange;let oe=!1,ne=await RR(this.checkRenamePrecondition(h,i,A,T,O,te),100,()=>{oe=!0}),re=this.isRenamePossible(h,ne,v,i);if(h.setRenameProcessingInfo({createdRename:re,duration:Date.now()-w,timedOut:oe,droppedOtherEdits:re?E.others.edits.length:void 0,droppedRenameEdits:re?Y.length-1:void 0}),!re)return h;if(this._renameRunnable===void 0)this._renameRunnable=new U1(this._languageFeaturesService,this._commandService,h.requestUuid,i,v,A,O,te,te!==void 0?T:void 0);let he=Mn.inlineCompletionAccept({nes:h.isInlineEdit,requestUuid:h.requestUuid,providerId:h.source.provider.providerId,languageId:i.getLanguageId(),correlationId:h.getSourceCompletion().correlationId}),ue={id:LS,title:e(1274,"Rename"),arguments:[he,this._renameRunnable]},Ie={label:e(1275,"Rename"),icon:y.replaceAll,command:ue,count:this._renameRunnable.getCount()},Te={kind:"edit",range:Y[0].range,insertText:Y[0].text,snippetInfo:h.snippetInfo,alternativeAction:Ie,uri:i.uri},ae=Wr.snapshot(i);return tc.create(h.withAction(Te),ae,!1)}async checkRenamePrecondition(i,h,b,v,w,x){let I={canRename:Ls.no,timedOut:!1};try{let E=await this._commandService.executeCommand("github.copilot.nes.prepareRename",h.uri,b,v,w,i.requestUuid,x);if(E===void 0)return I;else if(typeof E==="string"){let T=Ls.fromString(E);if(T===Ls.yes||T===Ls.maybe)return{canRename:T,oldName:v,onOldState:!1};else return{canRename:T,timedOut:!1}}else return E}catch(E){return I}}isRenamePossible(i,h,b,v){if(h===void 0||h.canRename===Ls.no)return!1;if(!b.equals(Ku.create(this._codeEditorService,v)))return!1;if(this._renameRunnable===void 0)return!0;if(this._renameRunnable.requestUuid===i.requestUuid)return!1;else return this._renameRunnable.cancel(),this._renameRunnable=void 0,!0}};Gm=WN([nc(0,Be),nc(1,V),nc(2,st),nc(3,Bl),nc(4,I0),nc(5,Ce)],Gm);var BN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},rc=function(f,i){return function(h,b){i(h,b,f)}},uC,qm=class f extends n{static{uC=this}static{this._requestId=0}constructor(i,h,b,v,w,x,I,E,T,O,A){super();if(this._textModel=i,this._versionId=h,this._debounceValue=b,this._cursorPosition=v,this._languageConfigurationService=x,this._logService=I,this._configurationService=E,this._instantiationService=T,this._contextKeyService=O,this._textModelService=A,this._updateOperation=this._register(new le),this._state=I1(this,{initial:()=>({inlineCompletions:Ro.createEmpty(),suggestWidgetInlineCompletions:Ro.createEmpty()}),disposeFinal:(Y)=>{Y.inlineCompletions.dispose(),Y.suggestWidgetInlineCompletions.dispose()},changeTracker:aI(()=>({versionId:this._versionId})),update:(Y,ee,te)=>{let oe=dr.compose(te.changes.map((ne)=>ne.change?d0(ne.change.changes):dr.empty).filter(Bn));if(oe.isEmpty())return ee;try{return{inlineCompletions:ee.inlineCompletions.createStateWithAppliedEdit(oe,this._textModel),suggestWidgetInlineCompletions:ee.suggestWidgetInlineCompletions.createStateWithAppliedEdit(oe,this._textModel)}}finally{ee.inlineCompletions.dispose(),ee.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,(Y)=>Y.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,(Y)=>Y.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=u(this,(Y)=>{this._versionId.read(Y),this._updateOperation.clear();return}),this._loadingCount=j(this,0),this.loading=this._loadingCount.map(this,(Y)=>Y>0),this._dataChannelTelemetryService=this._instantiationService.createInstance(Hm),this._loggingEnabled=Bk("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=Bk("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(Ql.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(Gm)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store),w)this._updateCompletionsEnablement(w),this._register(this._configurationService.onDidChangeConfiguration((Y)=>{if(Y.affectsConfiguration(w))this._updateCompletionsEnablement(w)}));this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(i){let h=this._configurationService.getValue(i);if(!Qt(h))this._completionsEnabled=void 0;else this._completionsEnabled=h}_log(i){if(this._loggingEnabled.get())this._logService.info(m1(i));this._structuredFetchLogger.log(i)}fetch(i,h,b,v,w,x,I){let E=this._cursorPosition.get(),T=new $1(E,b,this._textModel.getVersionId(),new Set(i)),O=b.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if(this._updateOperation.value?.request.satisfies(T))return this._updateOperation.value.promise;else if(O?.request?.satisfies(T))return Promise.resolve(!0);let A=!!this._updateOperation.value;this._updateOperation.clear();let Y=new Ve,ee=(async()=>{let oe=new d;this._loadingCount.set(this._loadingCount.get()+1,void 0);let ne=!1,re=()=>{if(!ne)ne=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0)};oe.add(new _e(()=>re(),1e4)).schedule();let ue=i.filter((Te)=>Te.providerId),Ie=new j1(b,I,ue);try{let Te=this._debounceValue.get(this._textModel),ae=Y_(i.map((ct)=>ct.debounceDelayMs),xR($i))??Te;if(A||w&&b.triggerKind===Gr.Automatic)await Jw(ae,Y.token);if(Y.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==T.versionId)return Ie.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;let Me=uC._requestId++;if(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:Me,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:b.triggerKind,suggestInfo:b.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:h});let He=new Date,qe=P1(i,this._cursorPosition.get(),this._textModel,b,I,this._languageConfigurationService);dC(Y.token,()=>qe.cancelAndDispose({kind:"tokenCancellation"}));let Oe=!1,Ze=!1,dt=[];for await(let ct of qe.lists){if(!ct)continue;ct.addRef(),oe.add(R(()=>ct.removeRef(ct.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(let vt of ct.inlineSuggestionsData){if(Ze=!0,!b.includeInlineEdits&&(vt.isInlineEdit||vt.showInlineEditMenu)){vt.setNotShownReason("notInlineEditRequested");continue}if(!b.includeInlineCompletions&&!(vt.isInlineEdit||vt.showInlineEditMenu)){vt.setNotShownReason("notInlineCompletionRequested");continue}vt.addPerformanceMarker("providerReturned");let si=vt.action?.uri,Rt,Dt;if(si&&si.toString()!==this._textModel.uri.toString()){let Tt=await this._textModelService.createModelReference(si);Rt=Tt.object.textEditorModel,Dt=Tt}else Rt=this._textModel,Dt=void 0;let ai=Wr.snapshot(Rt),Xt=tc.create(vt,ai);if(Dt){let Tt=yo(Xt.identity.onDispose,()=>{Dt?.dispose(),Tt.dispose()})}if(vt.addPerformanceMarker("itemCreated"),dt.push(Xt),!Xt.isInlineEdit&&!Xt.showInlineEditMenu&&b.triggerKind===Gr.Automatic){if(Xt.isVisible(this._textModel,this._cursorPosition.get()))Oe=!0}}if(Oe)break}dt.forEach((ct)=>ct.addPerformanceMarker("providersResolved"));let Qe=await Promise.all(dt.map(async(ct)=>this._renameProcessor.proposeRenameRefactoring(this._textModel,ct,b)));if(Qe.forEach((ct)=>ct.addPerformanceMarker("renameProcessed")),qe.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){let ct=qe.didAllProvidersReturn,vt=void 0;if(Y.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==T.versionId)vt="canceled";let si=Qe.map((Rt)=>{let Dt=Rt.getSourceCompletion();if(Dt.doNotLog)return;let ai={insertText:Dt.insertText,range:Dt.range,additionalTextEdits:Dt.additionalTextEdits,uri:Dt.uri,command:Dt.command,gutterMenuLinkAction:Dt.gutterMenuLinkAction,shownCommand:Dt.shownCommand,completeBracketPairs:Dt.completeBracketPairs,isInlineEdit:Dt.isInlineEdit,showInlineEditMenu:Dt.showInlineEditMenu,showRange:Dt.showRange,warning:Dt.warning,hint:Dt.hint,supportsRename:Dt.supportsRename,correlationId:Dt.correlationId,jumpToPosition:Dt.jumpToPosition};return{...Ng(ai,(Xt)=>{if(t.isIRange(Xt))return t.lift(Xt).toString();if(s.isIPosition(Xt))return s.lift(Xt).toString();if(Mg.is(Xt))return{$commandId:Xt.id};return Xt}),$providerId:Rt.source.provider.providerId?.toString()}}).filter((Rt)=>Rt!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:Me,durationMs:Date.now()-He.getTime(),error:vt,result:si,time:Date.now(),didAllProvidersReturn:ct})}if(Ie.setRequestUuid(qe.contextWithUuid.requestUuid),Ze){if(Ie.setHasProducedSuggestion(),Qe.length>0&&Y.token.isCancellationRequested)Qe.forEach((ct)=>ct.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"))}else if(Y.token.isCancellationRequested)Ie.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{let ct=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");Ie.setNoSuggestionReasonIfNotSet(ct?"completionsQuotaExceeded":"noSuggestion")}let ut=b.earliestShownDateTime-Date.now();if(ut>0)await Jw(ut,Y.token);if(Qe.forEach((ct)=>ct.addPerformanceMarker("minShowDelayPassed")),Y.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==T.versionId||x.get()){let ct=Y.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==T.versionId?"canceled:documentChanged":x.get()?"canceled:userJumped":"unknown";return Qe.forEach((vt)=>vt.setNotShownReasonIfNotSet(ct)),!1}let tt=new Date;this._debounceValue.update(this._textModel,tt.getTime()-He.getTime());let Gt=this._cursorPosition.get();this._updateOperation.clear(),Ue((ct)=>{let vt=this._state.get();if(b.selectedSuggestionInfo)this._state.set({inlineCompletions:Ro.createEmpty(),suggestWidgetInlineCompletions:vt.suggestWidgetInlineCompletions.createStateWithAppliedResults(Qe,T,this._textModel,Gt,v)},ct);else this._state.set({inlineCompletions:vt.inlineCompletions.createStateWithAppliedResults(Qe,T,this._textModel,Gt,v),suggestWidgetInlineCompletions:Ro.createEmpty()},ct);vt.inlineCompletions.dispose(),vt.suggestWidgetInlineCompletions.dispose()})}finally{oe.dispose(),re(),this._sendInlineCompletionsRequestTelemetry(Ie)}return!0})(),te=new G1(T,Y,ee);return this._updateOperation.value=te,ee}clear(i){if(this._store.isDisposed)return;this._updateOperation.clear();let h=this._state.get();this._state.set({inlineCompletions:Ro.createEmpty(),suggestWidgetInlineCompletions:Ro.createEmpty()},i),h.inlineCompletions.dispose(),h.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){let i=this.inlineCompletions.get(),h=this.suggestWidgetInlineCompletions.get();if(!h)return;Ue((b)=>{if(!i||(h.request?.versionId??-1)>(i.request?.versionId??-1)){i?.dispose();let v=this._state.get();this._state.set({inlineCompletions:h.clone(),suggestWidgetInlineCompletions:Ro.createEmpty()},b),v.inlineCompletions.dispose(),v.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(b)})}seedWithCompletion(i,h){let b=this._state.get();this._state.set({inlineCompletions:new Ro([i],void 0),suggestWidgetInlineCompletions:Ro.createEmpty()},h),b.inlineCompletions.dispose(),b.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(i){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment"))return;if(i.requestUuid===void 0||i.hasProducedSuggestion)return;if(!Dk(this._completionsEnabled,this._textModel.getLanguageId()))return;if(!i.providers.some((b)=>nC(b.providerId?.extensionId)))return;let h={opportunityId:i.requestUuid,noSuggestionReason:i.noSuggestionReason??"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,skuPlan:i.requestInfo.sku?.plan,skuType:i.requestInfo.sku?.type,editorType:i.requestInfo.editorType,requestReason:i.requestInfo.reason,typingInterval:i.requestInfo.typingInterval,typingIntervalCharacterCount:i.requestInfo.typingIntervalCharacterCount,languageId:i.requestInfo.languageId,selectedSuggestionInfo:!!i.context.selectedSuggestionInfo,availableProviders:i.providers.map((b)=>b.providerId?.toString()).filter(Bn).join(","),...D1(i.providers.some((b)=>nC(b.providerId?.extensionId))),timeUntilProviderRequest:void 0,timeUntilProviderResponse:void 0,viewKind:void 0,preceeded:void 0,superseded:void 0,reason:void 0,acceptedAlternativeAction:void 0,correlationId:void 0,shownDuration:void 0,shownDurationUncollapsed:void 0,timeUntilShown:void 0,partiallyAccepted:void 0,partiallyAcceptedCountSinceOriginal:void 0,partiallyAcceptedRatioSinceOriginal:void 0,partiallyAcceptedCharactersSinceOriginal:void 0,cursorColumnDistance:void 0,cursorLineDistance:void 0,lineCountOriginal:void 0,lineCountModified:void 0,characterCountOriginal:void 0,characterCountModified:void 0,disjointReplacements:void 0,sameShapeReplacements:void 0,longDistanceHintVisible:void 0,longDistanceHintDistance:void 0,isForAnotherDocument:void 0,notShownReason:void 0,renameCreated:!1,renameDuration:void 0,renameTimedOut:!1,renameDroppedOtherEdits:void 0,renameDroppedRenameEdits:void 0,performanceMarkers:void 0,editKind:void 0};R1(this._dataChannelTelemetryService,h)}clearSuggestWidgetInlineCompletions(i){if(this._updateOperation.value?.request.context.selectedSuggestionInfo)this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};qm=uC=BN([rc(5,st),rc(6,Ke),rc(7,ie),rc(8,D),rc(9,K),rc(10,_n)],qm);class $1{constructor(f,i,h,b){this.position=f,this.context=i,this.versionId=h,this.providers=b}satisfies(f){return this.position.equals(f.position)&&Ek(this.context.selectedSuggestionInfo,f.context.selectedSuggestionInfo,Oh())&&(f.context.triggerKind===Gr.Automatic||this.context.triggerKind===Gr.Explicit)&&this.versionId===f.versionId&&VN(f.providers,this.providers)}}class j1{constructor(f,i,h){this.context=f,this.requestInfo=i,this.providers=h,this.hasProducedSuggestion=!1}setRequestUuid(f){this.requestUuid=f}setNoSuggestionReasonIfNotSet(f){this.noSuggestionReason??=f}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function VN(f,i){return[...f].every((h)=>i.has(h))}class G1{constructor(f,i,h){this.request=f,this.cancellationTokenSource=i,this.promise=h}dispose(){this.cancellationTokenSource.cancel()}}class Ro extends n{static createEmpty(){return new Ro([],void 0)}constructor(f,i){super();this.inlineCompletions=f,this.request=i;for(let h of this.inlineCompletions)h.addRef();this._register({dispose:()=>{for(let h of this.inlineCompletions)h.removeRef()}})}_findById(f){return this.inlineCompletions.find((i)=>i.identity===f)}_findByHash(f){return this.inlineCompletions.find((i)=>i.hash===f)}createStateWithAppliedEdit(f,i){let h=this.inlineCompletions.map((b)=>b.withEdit(f,i)).filter(Bn);return new Ro(h,this.request)}createStateWithAppliedResults(f,i,h,b,v){let w=void 0;if(v){let E=this._findById(v);if(E&&E.canBeReused(h,i.position)){w=E;let T=f.find((O)=>O.hash===E.hash);if(T)f=zN(T,f);else f=[E,...f]}}let x=w?!w.isInlineEdit:f.some((E)=>!E.isInlineEdit&&E.isVisible(h,b)),I=[];for(let E of f){let T=this._findByHash(E.hash),O;if(T&&T!==E)O=E.withIdentity(T.identity),E.setIsPreceeded(T),T.setEndOfLifeReason({kind:ja.Ignored,userTypingDisagreed:!1,supersededBy:E.getSourceCompletion()});else O=E;if(x!==O.isInlineEdit)I.push(O)}return I.sort($n((E)=>E.showInlineEditMenu,M_)),I=KN(I,(E)=>E.semanticId),new Ro(I,i)}clone(){return new Ro(this.inlineCompletions,this.request)}}function KN(f,i){let h=new Set;return f.filter((b)=>{let v=i(b);if(h.has(v))return!1;return h.add(v),!0})}function zN(f,i){let h=i.indexOf(f);if(h>-1)return[f,...i.slice(0,h),...i.slice(h+1)];return i}class Es extends n{static{this.MAX_SESSION_GAP_MS=3000}static{this.MIN_SESSION_DURATION_MS=1000}static{this.SESSION_HISTORY_LIMIT=50}static{this.TYPING_SPEED_WINDOW_MS=300000}static{this.MIN_CHARS_FOR_RELIABLE_SPEED=20}getTypingInterval(){if(this._cacheInvalidated||this._cachedTypingIntervalResult===null)this._cachedTypingIntervalResult=this._calculateTypingInterval(),this._cacheInvalidated=!1;return this._cachedTypingIntervalResult}constructor(f){super();this._textModel=f,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent((i)=>this._updateTypingSpeed(i)))}_updateTypingSpeed(f){let i=Date.now();if(!this._isUserTyping(f)){this._finalizeCurrentSession();return}if(this._currentSession&&i-this._lastChangeTime>Es.MAX_SESSION_GAP_MS)this._finalizeCurrentSession();if(!this._currentSession)this._currentSession={startTime:i,endTime:i,characterCount:0};this._currentSession.endTime=i,this._currentSession.characterCount+=this._getActualCharacterCount(f),this._lastChangeTime=i,this._cacheInvalidated=!0}_getActualCharacterCount(f){let i=0;for(let h of f.changes)i+=Math.max(h.text.length,h.rangeLength);return i}_isUserTyping(f){if(!f.detailedReasons||f.detailedReasons.length===0)return!1;for(let i of f.detailedReasons)if(this._isUserTypingReason(i))return!0;return!1}_isUserTypingReason(f){if(f.metadata.isUndoing||f.metadata.isRedoing)return!1;switch(f.metadata.source){case"cursor":{let i=f.metadata.kind;return i==="type"||i==="compositionType"||i==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;if(this._currentSession.endTime-this._currentSession.startTime>=Es.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0){if(this._typingSessions.push(this._currentSession),this._typingSessions.length>Es.SESSION_HISTORY_LIMIT)this._typingSessions.shift()}this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){let f={...this._currentSession};if(f.endTime-f.startTime>=Es.MIN_SESSION_DURATION_MS&&f.characterCount>0){let h=[...this._typingSessions,f];return this._calculateSpeedFromSessions(h)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(f){if(f.length===0)return{averageInterval:0,characterCount:0};let i=[...f].sort((T,O)=>O.endTime-T.endTime),h=Date.now()-Es.TYPING_SPEED_WINDOW_MS,b=i.filter((T)=>T.endTime>h),v=i.splice(b.length),w=Dg(b.map((T)=>T.characterCount));for(let T=0;T<v.length&&w<Es.MIN_CHARS_FOR_RELIABLE_SPEED;T++)b.push(v[T]),w+=v[T].characterCount;let x=Dg(b.map((T)=>T.endTime-T.startTime));if(x===0||w<=1)return{averageInterval:0,characterCount:w};let I=Math.max(1,w-1),E=x/I;return{averageInterval:Math.round(E),characterCount:w}}dispose(){this._finalizeCurrentSession(),super.dispose()}}var UN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},_a=function(f,i){return function(h,b){i(h,b,f)}},Zm=class f extends n{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(i,h,b,v,w,x,I,E,T,O,A,Y,ee,te,oe,ne){super();this.textModel=i,this._selectedSuggestItem=h,this._textModelVersionId=b,this._positions=v,this._debounceValue=w,this._enabled=x,this._isSuppressed=I,this._editor=E,this._instantiationService=T,this._commandService=O,this._languageConfigurationService=A,this._accessibilityService=Y,this._languageFeaturesService=ee,this._codeEditorService=te,this._inlineCompletionsService=oe,this._isActive=j(this,!1),this._onlyRequestInlineEditsSignal=Ui(this),this._forceUpdateExplicitlySignal=Ui(this),this._noDelaySignal=Ui(this),this._fetchSpecificProviderSignal=Ui(this),this._selectedInlineCompletionId=j(this,void 0),this.primaryPosition=u(this,(ae)=>this._positions.read(ae)[0]??new s(1,1)),this.allPositions=u(this,(ae)=>this._positions.read(ae)),this.sku=j(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=u(this,(ae)=>{let xe=this.state.read(ae);if(!xe||!xe.inlineSuggestion)return!1;return pC(this._editor,xe.inlineSuggestion,ae)}),this._onDidAccept=this._register(new r),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=W_({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(ae,xe)=>(xe.didUndo=ae.didChange(this._textModelVersionId)&&!!ae.change?.isUndoing,!0)}},(ae,xe)=>{let Me=this._textModelVersionId.read(ae);if(Me!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===Me-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&xe.didUndo)return this._lastAcceptedInlineCompletionInfo=void 0,!0;return!1}),this._preserveCurrentCompletionReasons=new Set([Ds.Redo,Ds.Undo,Ds.AcceptWord]),this.dontRefetchSignal=Ui(this),this._fetchInlineCompletionsPromise=W_({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Gr.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,changeHint:void 0,textChange:!1,changeReason:""}),handleChange:(ae,xe)=>{if(ae.didChange(this._textModelVersionId)){if(this._preserveCurrentCompletionReasons.has(this._getReason(ae.change)))xe.preserveCurrentCompletion=!0;let Me=ae.change?.detailedReasons??[];xe.changeReason=Me.length>0?Me[0].getType():"",xe.textChange=!0}else if(ae.didChange(this._forceUpdateExplicitlySignal))xe.preserveCurrentCompletion=!0,xe.inlineCompletionTriggerKind=Gr.Explicit;else if(ae.didChange(this.dontRefetchSignal))xe.dontRefetch=!0;else if(ae.didChange(this._onlyRequestInlineEditsSignal))xe.onlyRequestInlineEdits=!0;else if(ae.didChange(this._fetchSpecificProviderSignal))xe.provider=ae.change?.provider,xe.changeHint=ae.change?.changeHint;return!0}}},(ae,xe)=>{if(this._source.clearOperationOnTextModelChange.read(ae),this._noDelaySignal.read(ae),this.dontRefetchSignal.read(ae),this._onlyRequestInlineEditsSignal.read(ae),this._forceUpdateExplicitlySignal.read(ae),this._fetchSpecificProviderSignal.read(ae),!(!this._isSuppressed()&&(this._enabled.read(ae)&&this._selectedSuggestItem.read(ae)||this._isActive.read(ae))&&(!this._inlineCompletionsService.isSnoozing()||xe.inlineCompletionTriggerKind===Gr.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(ae);let He=this._source.suggestWidgetInlineCompletions.read(void 0),qe=this._selectedSuggestItem.read(ae);if(this._shouldShowOnSuggestConflict.read(void 0))qe=void 0;if(He&&!qe)this._source.seedInlineCompletionsWithSuggestWidget();if(xe.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(ae)&&xe.inlineCompletionTriggerKind!==Gr.Explicit){Ue((si)=>{this._source.clear(si)});return}let Oe="";if(xe.provider)Oe+="providerOnDidChange";else if(xe.inlineCompletionTriggerKind===Gr.Explicit)Oe+="explicit";if(xe.changeReason)Oe+=Oe.length>0?`:${xe.changeReason}`:xe.changeReason;let Ze=this._typing.getTypingInterval(),dt={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:Oe,typingInterval:Ze.averageInterval,typingIntervalCharacterCount:Ze.characterCount,availableProviders:[],sku:this.sku.read(void 0)},Qe={triggerKind:xe.inlineCompletionTriggerKind,selectedSuggestionInfo:qe?.toSelectedSuggestionInfo(),includeInlineCompletions:!xe.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(ae),requestIssuedDateTime:dt.startTime,earliestShownDateTime:dt.startTime+(xe.inlineCompletionTriggerKind===Gr.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:xe.changeHint};if(Qe.triggerKind===Gr.Automatic&&xe.textChange){if(this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId)Qe={...Qe,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit}}let ut=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,tt=xe.preserveCurrentCompletion||ut?.forwardStable?ut:void 0,Gt=this._jumpedToId.map((si)=>!!si&&si===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),ct=xe.provider?{providers:[xe.provider],label:"single:"+xe.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},vt=this.getAvailableProviders(ct.providers);return dt.availableProviders=vt.map((si)=>si.providerId).filter(Bn),this._source.fetch(vt,ct.label,Qe,tt?.identity,xe.shouldDebounce,Gt,dt)}),this._inlineSuggestionItems=xn({owner:this},(ae)=>{let xe=this._source.inlineCompletions.read(ae);if(!xe)return;let Me=this.primaryPosition.read(ae),He=void 0,qe=[];for(let Oe of xe.inlineCompletions)if(!Oe.isInlineEdit){if(Oe.isVisible(this.textModel,Me))qe.push(Oe)}else He=Oe;if(qe.length!==0)He=void 0;return{inlineCompletions:qe,inlineEdit:He}}),this._inlineCompletionItems=xn({owner:this,equalsFn:vu()},(ae)=>this._inlineSuggestionItems.read(ae)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=u(this,(ae)=>{let xe=this._selectedInlineCompletionId.read(ae),Me=this._inlineCompletionItems.read(ae),He=this._selectedInlineCompletionId===void 0?-1:Me.findIndex((qe)=>qe.semanticId===xe);if(He===-1)return this._selectedInlineCompletionId.set(void 0,void 0),0;return He}),this.selectedInlineCompletion=u(this,(ae)=>{let xe=this._inlineCompletionItems.read(ae),Me=this.selectedInlineCompletionIndex.read(ae);return xe[Me]}),this.activeCommands=xn({owner:this,equalsFn:vu()},(ae)=>this.selectedInlineCompletion.read(ae)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=u(this,(ae)=>{if(this.lastTriggerKind.read(ae)===Gr.Explicit)return this._inlineCompletionItems.read(ae).length;else return}),this._hasVisiblePeekWidgets=u(this,(ae)=>this._editorObs.openedPeekWidgets.read(ae)>0),this._shouldShowOnSuggestConflict=u(this,(ae)=>{let xe=this._showOnSuggestConflict.read(ae);if(xe!=="never"){if(!!this.selectedInlineCompletion.read(ae)){let He=this._selectedSuggestItem.read(ae);if(!He)return!1;if(xe==="whenSuggestListIsIncomplete")return He.listIncomplete;return!0}}return!1}),this.state=xn({owner:this,equalsFn:(ae,xe)=>{if(!ae||!xe)return ae===xe;if(ae.kind==="ghostText"&&xe.kind==="ghostText")return eC(ae.ghostTexts,xe.ghostTexts)&&ae.inlineSuggestion===xe.inlineSuggestion&&ae.suggestItem===xe.suggestItem;else if(ae.kind==="inlineEdit"&&xe.kind==="inlineEdit")return ae.inlineSuggestion===xe.inlineSuggestion;return!1}},(ae)=>{let xe=this.textModel;if(this._suppressInSnippetMode.read(ae)&&this._isInSnippetMode.read(ae))return;let Me=this._inlineSuggestionItems.read(ae),He=Me?.inlineEdit;if(He){if(this._hasVisiblePeekWidgets.read(ae))return;let Oe=this.primaryPosition.map((ut)=>X.fromRangeInclusive(He.targetRange).addMargin(1,1).contains(ut.lineNumber)),Ze=He.action?.kind==="edit"?He.action.stringEdit:void 0,dt=Ze?_r.fromStringEdit(Ze,new Ou(this.textModel)).replacements:[],Qe=(Me.inlineEdit?.command?.id==="vscode.open"||Me.inlineEdit?.command?.id==="_workbench.open")&&Me.inlineEdit?.command.arguments?.length?q.from(Me.inlineEdit?.command.arguments[0]):void 0;if(!He.originalTextRef.targets(this.textModel))Qe=He.originalTextRef.uri;return{kind:"inlineEdit",inlineSuggestion:He,edits:dt,cursorAtInlineEdit:Oe,nextEditUri:Qe}}let qe=this._selectedSuggestItem.read(ae);if(!this._shouldShowOnSuggestConflict.read(ae)&&qe){let Oe=Vo(qe.getSingleTextEdit(),xe),Ze=this._computeAugmentation(Oe,ae);if(!this._suggestPreviewEnabled.read(ae)&&!Ze)return;let Qe=Ze?.edit??Oe,ut=Ze?Ze.edit.text.length-Oe.text.length:0,tt=this._suggestPreviewMode.read(ae),Gt=this._positions.read(ae),vt=[Qe,...gC(this.textModel,Gt,Qe)].map((ai,Xt)=>({edit:ai,ghostText:ai?iC(ai,xe,tt,Gt[Xt],ut):void 0})).filter(({edit:ai,ghostText:Xt})=>ai!==void 0&&Xt!==void 0),si=vt.map(({edit:ai})=>ai),Rt=vt.map(({ghostText:ai})=>ai),Dt=Rt[0]??new Is(Qe.range.endLineNumber,[]);return{kind:"ghostText",edits:si,primaryGhostText:Dt,ghostTexts:Rt,inlineSuggestion:Ze?.completion,suggestItem:qe}}else{if(!this._isActive.read(ae))return;let Oe=this.selectedInlineCompletion.read(ae);if(!Oe)return;let Ze=Oe.getSingleTextEdit(),dt=this._inlineSuggestMode.read(ae),Qe=this._positions.read(ae),tt=[Ze,...gC(this.textModel,Qe,Ze)].map((vt,si)=>({edit:vt,ghostText:vt?iC(vt,xe,dt,Qe[si],0):void 0})).filter(({edit:vt,ghostText:si})=>vt!==void 0&&si!==void 0),Gt=tt.map(({edit:vt})=>vt),ct=tt.map(({ghostText:vt})=>vt);if(!ct[0])return;return{kind:"ghostText",edits:Gt,primaryGhostText:ct[0],ghostTexts:ct,inlineSuggestion:Oe,suggestItem:void 0}}}),this.status=u(this,(ae)=>{if(this._source.loading.read(ae))return"loading";let xe=this.state.read(ae);if(xe?.kind==="ghostText")return"ghostText";if(xe?.kind==="inlineEdit")return"inlineEdit";return"noSuggestion"}),this.inlineCompletionState=u(this,(ae)=>{let xe=this.state.read(ae);if(!xe||xe.kind!=="ghostText")return;if(this._editorObs.inComposition.read(ae))return;return xe}),this.inlineEditState=u(this,(ae)=>{let xe=this.state.read(ae);if(!xe||xe.kind!=="inlineEdit")return;return xe}),this.inlineEditAvailable=u(this,(ae)=>!!this.inlineEditState.read(ae)),this.warning=u(this,(ae)=>this.inlineCompletionState.read(ae)?.inlineSuggestion?.warning),this.ghostTexts=xn({owner:this,equalsFn:eC},(ae)=>{let xe=this.inlineCompletionState.read(ae);if(!xe)return;return xe.ghostTexts}),this.primaryGhostText=xn({owner:this,equalsFn:tC},(ae)=>{let xe=this.inlineCompletionState.read(ae);if(!xe)return;return xe?.primaryGhostText}),this.showCollapsed=u(this,(ae)=>{let xe=this.state.read(ae);if(!xe||xe.kind!=="inlineEdit")return!1;if(xe.inlineSuggestion.hint||xe.inlineSuggestion.action?.kind==="jumpTo")return!1;let Me=xe.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(ae);return(this._inlineEditsShowCollapsedEnabled.read(ae)||!Me)&&this._jumpedToId.read(ae)!==xe.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(ae)}),this._tabShouldIndent=u(this,(ae)=>{if(this._inAcceptFlow.read(ae))return!1;function xe(qe){return qe.startLineNumber!==qe.endLineNumber}function Me(qe,Oe){let Ze=qe.getLineIndentColumn(Oe),dt=qe.getLineLastNonWhitespaceColumn(Oe),Qe=Math.max(dt,Ze);return new t(Oe,Ze,Oe,Qe)}return this._editorObs.selections.read(ae)?.some((qe)=>{if(qe.isEmpty())return this.textModel.getLineLength(qe.startLineNumber)===0;else return xe(qe)||qe.containsRange(Me(this.textModel,qe.startLineNumber))})}),this.tabShouldJumpToInlineEdit=u(this,(ae)=>{if(this._tabShouldIndent.read(ae))return!1;let xe=this.inlineEditState.read(ae);if(!xe)return!1;if(xe.inlineSuggestion.action?.kind==="jumpTo")return!0;if(this.showCollapsed.read(ae))return!0;if(this._inAcceptFlow.read(ae)&&this._appearedInsideViewport.read(ae))return!1;return!xe.cursorAtInlineEdit.read(ae)}),this.tabShouldAcceptInlineEdit=u(this,(ae)=>{let xe=this.inlineEditState.read(ae);if(!xe)return!1;if(xe.inlineSuggestion.action?.kind==="jumpTo")return!1;if(this.showCollapsed.read(ae))return!1;if(this._tabShouldIndent.read(ae))return!1;if(this._inAcceptFlow.read(ae)&&this._appearedInsideViewport.read(ae))return!0;if(xe.inlineSuggestion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(ae))return!0;if(this._jumpedToId.read(ae)===xe.inlineSuggestion.semanticId)return!0;return xe.cursorAtInlineEdit.read(ae)}),this._jumpedToId=j(this,void 0),this._inAcceptFlow=j(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(qm,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition,Bh.defaultChatAgent?.completionsEnablementSetting)),this.lastTriggerKind=this._source.inlineCompletions.map(this,(ae)=>ae?.request?.context.triggerKind),this._editorObs=rt(this._editor);let re=this._editorObs.getOption(134);this._suggestPreviewEnabled=re.map((ae)=>ae.preview),this._suggestPreviewMode=re.map((ae)=>ae.previewMode);let he=this._editorObs.getOption(71);this._inlineSuggestMode=he.map((ae)=>ae.mode),this._suppressedInlineCompletionGroupIds=he.map((ae)=>new Set(ae.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=he.map((ae)=>!!ae.edits.enabled),this._inlineEditsShowCollapsedEnabled=he.map((ae)=>ae.edits.showCollapsed),this._triggerCommandOnProviderChange=he.map((ae)=>ae.triggerCommandOnProviderChange),this._minShowDelay=he.map((ae)=>ae.minShowDelay),this._showOnSuggestConflict=he.map((ae)=>ae.experimental.showOnSuggestConflict),this._suppressInSnippetMode=he.map((ae)=>ae.suppressInSnippetMode);let ue=gi.get(this._editor);this._isInSnippetMode=ue?.isInSnippetObservable??Re(!1),ne.getDefaultAccount().then($N((ae)=>this.sku.set(q1(ae),void 0),this._store)),this._register(ne.onDidChangeDefaultAccount((ae)=>this.sku.set(q1(ae),void 0))),this._typing=this._register(new Es(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((ae)=>{if(ae)this.stop()}));{let ae=this.textModel.uri.scheme===se.vscodeNotebookCell,[xe]=this._codeEditorService.listDiffEditors().filter((Me)=>Me.getOriginalEditor().getId()===this._editor.getId()||Me.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!xe,this.editorType=ae?Bt.Notebook:this.isInDiffEditor?Bt.DiffEditor:Bt.TextEditor}this._register(wu(this.state,(ae)=>{if(ae&&ae.inlineSuggestion)this._inlineCompletionsService.reportNewCompletion(ae.inlineSuggestion.requestUuid)})),this._register(wu(this._fetchInlineCompletionsPromise)),this._register(W((ae)=>{this._editorObs.versionId.read(ae),this._inAcceptFlow.set(!1,void 0)})),this._register(W((ae)=>{if(this.state.map((Me,He)=>!Me||Me.kind==="inlineEdit"&&!Me.cursorAtInlineEdit.read(He)).read(ae))this._jumpedToId.set(void 0,void 0)})),this._register(W((ae)=>{let xe=this.state.map((Me)=>Me?.inlineSuggestion).read(ae);if(xe)xe.addPerformanceMarker("activeSuggestion")}));let Ie=this.inlineEditState.map((ae)=>ae?.inlineSuggestion.semanticId);this._register(W((ae)=>{if(Ie.read(ae))this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion}}));let Te=Ne(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(i));mc(this,Te,(ae,xe)=>{if(!ae.onDidChangeInlineCompletions)return;xe.add(ae.onDidChangeInlineCompletions((Me)=>{if(!this._enabled.get())return;if((this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor())!==this._editor)return;if(this._triggerCommandOnProviderChange.get()){this.trigger(void 0,{onlyFetchInlineEdits:!0});return}let qe=this.state.get();if(qe&&(qe.inlineSuggestion||qe.edits)&&qe.inlineSuggestion?.source.provider!==ae)return;Ue((Oe)=>{this._fetchSpecificProviderSignal.trigger(Oe,{provider:ae,changeHint:Me??void 0}),this.trigger(Oe)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(i){let h=!1,b=!0,v=this?.primaryGhostText.read(i);if(!!this?._selectedSuggestItem&&v&&v.parts.length>0){let{column:w,lines:x}=v.parts[0],I=x[0].line,E=this.textModel.getLineIndentColumn(v.lineNumber);if(w<=E){let O=An(I);if(O===-1)O=I.length-1;h=O>0;let A=this.textModel.getOptions().tabSize;b=Ct.visibleColumnFromColumn(I,O+1,A)<A}}return{startsWithIndentation:h,startsWithIndentationLessThanTabSize:b}}_getReason(i){if(i?.isUndoing)return Ds.Undo;if(i?.isRedoing)return Ds.Redo;if(this.isAcceptingPartially)return Ds.AcceptWord;return Ds.Other}getAvailableProviders(i){let h=this._suppressedInlineCompletionGroupIds.get(),b=i.filter((x)=>!(x.groupId&&h.has(x.groupId))),v=new Set;for(let x of b)x.excludesGroupIds?.forEach((I)=>v.add(I));let w=[];for(let x of b){if(x.groupId&&v.has(x.groupId))continue;w.push(x)}return w}async trigger(i,h={}){fc(i,(b)=>{if(h.onlyFetchInlineEdits)this._onlyRequestInlineEditsSignal.trigger(b);if(h.noDelay)this._noDelaySignal.trigger(b);if(this._isActive.set(!0,b),h.explicit)this._inAcceptFlow.set(!0,b),this._forceUpdateExplicitlySignal.trigger(b);if(h.provider)this._fetchSpecificProviderSignal.trigger(b,{provider:h.provider,changeHint:h.changeHint})}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(i,h=!1){return this.trigger(i,{onlyFetchInlineEdits:h,explicit:!0})}stop(i="automatic",h){fc(h,(b)=>{if(i==="explicitCancel"){let v=this.state.get()?.inlineSuggestion;if(v)v.reportEndOfLife({kind:ja.Rejected})}this._isActive.set(!1,b),this._source.clear(b)})}_computeAugmentation(i,h){let b=this.textModel,v=this._source.suggestWidgetInlineCompletions.read(h),w=v?v.inlineCompletions.filter((I)=>!I.isInlineEdit):[this.selectedInlineCompletion.read(h)].filter(Bn);return WR(w,(I)=>{let E=I.getSingleTextEdit();return E=Vo(E,b,t.fromPositions(E.range.getStartPosition(),i.range.getEndPosition())),Am(E,i)?{completion:I,edit:E}:void 0})}async _deltaSelectedInlineCompletionIndex(i){await this.triggerExplicitly();let h=this._inlineCompletionItems.get()||[];if(h.length>0){let b=(this.selectedInlineCompletionIndex.get()+i+h.length)%h.length;this._selectedInlineCompletionId.set(h[b].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(i,h,b=void 0){if(b)return Mn.inlineCompletionPartialAccept({nes:i.isInlineEdit,requestUuid:i.requestUuid,providerId:i.source.provider.providerId,languageId:h,type:b,correlationId:i.getSourceCompletion().correlationId});else return Mn.inlineCompletionAccept({nes:i.isInlineEdit,requestUuid:i.requestUuid,correlationId:i.getSourceCompletion().correlationId,providerId:i.source.provider.providerId,languageId:h})}async accept(i=this._editor,h=!1){if(i.getModel()!==this.textModel)throw new H;let b,v=!1,w=this.state.get();if(w?.kind==="ghostText"){if(!w||w.primaryGhostText.isEmpty()||!w.inlineSuggestion)return;b=w.inlineSuggestion}else if(w?.kind==="inlineEdit")b=w.inlineSuggestion,v=!!w.nextEditUri;else return;b.addRef();try{let x=!1;if(i.pushUndoStop(),!b.originalTextRef.targets(this.textModel)){let I=await this._codeEditorService.openCodeEditor({resource:b.originalTextRef.uri},this._editor);if(I){let T=Nm(I)?.model.get();I.focus(),T?.transplantCompletion(b),I.revealLineInCenter(b.targetRange.startLineNumber)}}else if(v);else if(b.action?.kind==="edit"){let I=b.action;if(h&&I.alternativeAction){x=!0;let E=I.alternativeAction.command;await this._commandService.executeCommand(E.id,...E.arguments||[]).then(void 0,gt)}else if(I.snippetInfo){let E=ft.delete(I.textReplacement.range),T=b.additionalTextEdits.map((A)=>new ft(t.lift(A.range),A.text??"")),O=_r.fromParallelReplacementsUnsorted([E,...T]);i.edit(O,this._getMetadata(b,this.textModel.getLanguageId())),i.setPosition(I.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),gi.get(i)?.insert(I.snippetInfo.snippet,{undoStopBefore:!1})}else{let E=w.edits,T=E;if(w.kind==="ghostText")T=v1(E,this.textModel);let O=Xw(T).map((ee)=>F.fromPositions(ee)),A=b.additionalTextEdits.map((ee)=>new ft(t.lift(ee.range),ee.text??"")),Y=_r.fromParallelReplacementsUnsorted([...E,...A]);if(i.edit(Y,this._getMetadata(b,this.textModel.getLanguageId())),b.hint===void 0)i.setSelections(w.kind==="inlineEdit"?O.slice(-1):O,"inlineCompletionAccept");if(w.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){let ee=Y.getNewRanges(),te=this._store.add(new Z1(i,ee,()=>{this._store.delete(te)}))}}}if(this._onDidAccept.fire(),this.stop(),b.command)await this._commandService.executeCommand(b.command.id,...b.command.arguments||[]).then(void 0,gt);if(x)this.trigger(void 0);b.reportEndOfLife({kind:ja.Accepted,alternativeAction:h})}finally{b.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:b}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(i,h)=>{let b=this.textModel.getLanguageIdAtPosition(i.lineNumber,i.column),v=this._languageConfigurationService.getLanguageConfiguration(b),w=new RegExp(v.wordDefinition.source,v.wordDefinition.flags.replace("g","")),x=h.match(w),I=0;if(x&&x.index!==void 0)if(x.index===0)I=x[0].length;else I=x.index;else I=h.length;let T=/\s+/g.exec(h);if(T&&T.index!==void 0){if(T.index+T[0].length<I)I=T.index+T[0].length}return I},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(i,h)=>{let b=h.match(/\n/);if(b&&b.index!==void 0)return b.index+1;return h.length},1)}async _acceptNext(i,h,b,v){if(i.getModel()!==this.textModel)throw new H;let w=this.inlineCompletionState.get();if(!w||w.primaryGhostText.isEmpty()||!w.inlineSuggestion)return;let{primaryGhostText:x,inlineSuggestion:I}=w;if(I.snippetInfo){await this.accept(i);return}let E=x.parts[0],T=new s(x.lineNumber,E.column),O=E.text,A=b(T,O);if(A===O.length&&x.parts.length===1){this.accept(i);return}let Y=O.substring(0,A),ee=this._positions.get(),te=ee[0];I.addRef();try{this._isAcceptingPartially=!0;try{i.pushUndoStop();let he=t.fromPositions(te,T),ue=i.getModel().getValueInRange(he)+Y,Ie=new ft(he,ue),Te=[Ie,...gC(this.textModel,ee,Ie)].filter(Bn),ae=Xw(Te).map((xe)=>F.fromPositions(xe));i.edit(_r.fromParallelReplacementsUnsorted(Te),this._getMetadata(I,this.textModel.getLanguageId(),h)),i.setSelections(ae,"inlineCompletionPartialAccept"),i.revealPositionInCenterIfOutsideViewport(i.getPosition(),0)}finally{this._isAcceptingPartially=!1}let oe=t.fromPositions(I.editRange.getStartPosition(),Ht.ofText(Y).addToPosition(T)),re=i.getModel().getValueInRange(oe,1).length;I.reportPartialAccept(re,{kind:v,acceptedLength:re},{characters:A,ratio:A/O.length,count:1})}finally{I.removeRef()}}handleSuggestAccepted(i){let h=Vo(i.getSingleTextEdit(),this.textModel),b=this._computeAugmentation(h,void 0);if(!b)return;let w=this.textModel.getValueInRange(b.completion.editRange,1).length+h.text.length;b.completion.reportPartialAccept(h.text.length,{kind:2,acceptedLength:w},{characters:h.text.length,count:1,ratio:1})}extractReproSample(){let i=this.textModel.getValue(),h=this.state.get()?.inlineSuggestion;return{documentValue:i,inlineCompletion:h?.getSourceCompletion()}}jump(){let i=this.inlineEditState.get();if(!i)return;let h=i.inlineSuggestion;if(!h.originalTextRef.targets(this.textModel)){this.accept(this._editor);return}h.addRef();try{Ue((b)=>{if(h.action?.kind==="jumpTo")this.stop(void 0,b),h.reportEndOfLife({kind:ja.Accepted,alternativeAction:!1});this._jumpedToId.set(i.inlineSuggestion.semanticId,b),this.dontRefetchSignal.trigger(b);let v=i.inlineSuggestion.targetRange,w=v.getStartPosition();if(this._editor.setPosition(w,"inlineCompletions.jump"),v.isSingleLine()&&(i.inlineSuggestion.hint||i.inlineSuggestion.action?.kind==="edit"&&!i.inlineSuggestion.action.textReplacement.text.includes(`
41
- `))||i.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(w,0);else{let I=new t(v.startLineNumber-1,1,v.endLineNumber+1,1);this._editor.revealRange(I,0)}i.inlineSuggestion.identity.setJumpTo(b),this._editor.focus()})}finally{h.removeRef()}}async handleInlineSuggestionShown(i,h,b,v){await i.reportInlineEditShown(this._commandService,h,b,this.textModel,v)}transplantCompletion(i){Ue((h)=>{this._source.seedWithCompletion(i,h),this._isActive.set(!0,h),this._inAcceptFlow.set(!0,h),this.dontRefetchSignal.trigger(h)})}};Zm=UN([_a(8,D),_a(9,Be),_a(10,st),_a(11,Yt),_a(12,V),_a(13,Ce),_a(14,rw),_a(15,_0)],Zm);var Ds;(function(f){f[f.Undo=0]="Undo",f[f.Redo=1]="Redo",f[f.AcceptWord=2]="AcceptWord",f[f.Other=3]="Other"})(Ds||(Ds={}));function gC(f,i,h){if(i.length===1)return[];let b=new Ou(f),v=b.getTransformer(),w=v.getOffset(i[0]),x=i.slice(1).map((Y)=>v.getOffset(Y));h=h.removeCommonPrefixAndSuffix(b);let I=v.getStringReplacement(h),E=I.replaceRange.start-w,T=I.replaceRange.join(z.emptyAt(w)),O=b.getValueOfOffsetRange(T);return x.map((Y)=>{let ee=Y+E,te=ee+I.replaceRange.length,oe=new z(ee,te),ne=oe.join(z.emptyAt(Y));if(b.getValueOfOffsetRange(ne)!==O)return;let he=new Zn(oe,I.newText);return v.getTextReplacement(he)}).filter(Bn)}class Z1 extends n{constructor(f,i,h){super();if(h)this._register({dispose:()=>h()});this._register(rt(f).setDecorations(Re(i.map((v)=>({range:v,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));let b=new Qw(Pm.startNow(1,0,1000,C1));this._register(W((v)=>{let w=b.getValue(v);if(f.getContainerDomNode().style.setProperty("--animation-opacity",w.toString()),b.isFinished(v))this.dispose()}))}}function pC(f,i,h=void 0){let b=i.targetRange;rt(f).scrollTop.read(h);let v=f.getVisibleRanges();if(v.length<1)return!1;return new t(v[0].startLineNumber,v[0].startColumn,v[v.length-1].endLineNumber,v[v.length-1].endColumn).containsRange(b)}function q1(f){if(f?.entitlementsData?.access_type_sku&&f?.entitlementsData?.copilot_plan)return{type:f.entitlementsData.access_type_sku,plan:f.entitlementsData.copilot_plan};return}class X1{constructor(f){this.handler=(i)=>this._cb?.(i),this._cb=f}dispose(){this._cb=void 0}}function $N(f,i){let h=new X1(f);return i.add(h),h.handler}var jN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},GN=function(f,i){return function(h,b){i(h,b,f)}},mC,zu=class f{static{mC=this}static{this.AtEnd=new P("atEndOfWord",!1,{type:"boolean",description:e(1568,"A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled")})}constructor(i,h){this._editor=i,this._enabled=!1,this._ckAtEnd=mC.AtEnd.bindTo(h),this._configListener=this._editor.onDidChangeConfiguration((b)=>b.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let i=this._editor.getOption(139)==="on";if(this._enabled===i)return;if(this._enabled=i,this._enabled){let h=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let b=this._editor.getModel(),v=this._editor.getSelection(),w=b.getWordAtPosition(v.getStartPosition());if(!w){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(w.endColumn===v.getStartPosition().column&&v.getStartPosition().lineNumber===v.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(h),h()}else if(this._selectionListener)this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0}};zu=mC=jN([GN(1,K)],zu);var qN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ZN=function(f,i){return function(h,b){i(h,b,f)}},Uu,zd=class f{static{Uu=this}static{this.OtherSuggestions=new P("hasOtherSuggestions",!1)}constructor(i,h){this._editor=i,this._index=0,this._ckOtherSuggestions=Uu.OtherSuggestions.bindTo(h)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:i,index:h},b){if(i.items.length===0){this.reset();return}if(Uu._moveIndex(!0,i,h)===h){this.reset();return}this._acceptNext=b,this._model=i,this._index=h,this._listener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignore)this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(i,h,b){let v=b;for(let w=h.items.length;w>0;w--){if(v=(v+h.items.length+(i?1:-1))%h.items.length,v===b)break;if(!h.items[v].completion.additionalTextEdits)break}return v}next(){this._move(!0)}prev(){this._move(!1)}_move(i){if(!this._model)return;try{this._ignore=!0,this._index=Uu._moveIndex(i,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};zd=Uu=qN([ZN(1,K)],zd);class fC{constructor(f,i,h,b){this._disposables=new d,this._disposables.add(h.onDidSuggest((v)=>{if(v.completionModel.items.length===0)this.reset()})),this._disposables.add(h.onDidCancel((v)=>{this.reset()})),this._disposables.add(i.onDidShow(()=>this._onItem(i.getFocusedItem()))),this._disposables.add(i.onDidFocus(this._onItem,this)),this._disposables.add(i.onDidHide(this.reset,this)),this._disposables.add(f.onWillType((v)=>{if(this._active&&!i.isFrozen()&&h.state!==0){let w=v.charCodeAt(v.length-1);if(this._active.acceptCharacters.has(w)&&f.getOption(0))b(this._active.item)}}))}_onItem(f){if(!f||!On(f.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===f.item)return;let i=new Vh;for(let h of f.item.completion.commitCharacters)if(h.length>0)i.add(h.charCodeAt(0));this._active={acceptCharacters:i,item:f}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class Xm{static{this._maxSelectionLength=51200}constructor(f,i){this._disposables=new d,this._lastOvertyped=[],this._locked=!1,this._disposables.add(f.onWillType(()=>{if(this._locked||!f.hasModel())return;let h=f.getSelections(),b=h.length,v=!1;for(let x=0;x<b;x++)if(!h[x].isEmpty()){v=!0;break}if(!v){if(this._lastOvertyped.length!==0)this._lastOvertyped.length=0;return}this._lastOvertyped=[];let w=f.getModel();for(let x=0;x<b;x++){let I=h[x];if(w.getValueLengthInRange(I)>Xm._maxSelectionLength)return;this._lastOvertyped[x]={value:w.getValueInRange(I),multiline:I.startLineNumber!==I.endLineNumber}}})),this._disposables.add(i.onDidTrigger((h)=>{this._locked=!0})),this._disposables.add(i.onDidCancel((h)=>{this._locked=!1}))}getLastOvertypedInfo(f){if(f>=0&&f<this._lastOvertyped.length)return this._lastOvertyped[f];return}dispose(){this._disposables.dispose()}}var XN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},_C=function(f,i){return function(h,b){i(h,b,f)}},Ym=class f{constructor(i,h,b,v,w,x){this._menuId=h,this._menuService=w,this._contextKeyService=x,this._menuDisposables=new d,this.element=_(i,g(".suggest-status-bar"));let I=(E)=>{if(b?.showIconsNoKeybindings)return E instanceof Ni?v.createInstance(Xa,E,void 0):void 0;else return E instanceof Ni?v.createInstance(x0,E,{useComma:!1}):void 0};this._leftActions=new Fi(this.element,{actionViewItemProvider:I}),this._rightActions=new Fi(this.element,{actionViewItemProvider:I}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){let i=this._menuService.createMenu(this._menuId,this._contextKeyService),h=()=>{let b=[],v=[];for(let[w,x]of i.getActions())if(w==="left")b.push(...x);else v.push(...x);this._leftActions.clear(),this._leftActions.push(b),this._rightActions.clear(),this._rightActions.push(v)};this._menuDisposables.add(i.onDidChange(()=>h())),this._menuDisposables.add(i)}hide(){this._menuDisposables.clear()}};Ym=XN([_C(3,D),_C(4,wi),_C(5,K)],Ym);var YN=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Y1=function(f,i){return function(h,b){i(h,b,f)}};function $u(f){return!!f&&Boolean(f.completion.documentation||f.completion.detail&&f.completion.detail!==f.completion.label)}var Jm=class f{constructor(i,h,b){this._editor=i,this._themeService=h,this._markdownRendererService=b,this._onDidClose=new r,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new r,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new d,this._renderDisposeable=new d,this._size=new nt(330,0),this.domNode=g(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=g(".body"),this._scrollbar=new Ja(this._body,{alwaysConsumeMouseWheel:!0}),_(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=_(this._body,g(".header")),this._close=_(this._header,g("span"+J.asCSSSelector(y.close))),this._close.title=e(1563,"Close"),this._close.ariaLabel=e(1564,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=_(this._header,g("p.type")),this._docs=_(this._body,g("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(59))this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){let i=this._editor.getOptions(),h=i.get(59),b=h.getMassagedFontFamily(),v=i.get(135)||h.fontSize,w=i.get(136)||h.lineHeight,x=h.fontWeight,I=`${v}px`,E=`${w}px`;this.domNode.style.fontSize=I,this.domNode.style.lineHeight=`${w/v}`,this.domNode.style.fontWeight=x,this.domNode.style.fontFeatureSettings=h.fontFeatureSettings,this._type.style.fontFamily=b,this._close.style.height=E,this._close.style.width=E}getLayoutInfo(){let i=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,h=Qr(this._themeService.getColorTheme().type)?2:1,b=h*2;return{lineHeight:i,borderWidth:h,borderHeight:b,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=e(1565,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(i,h){this._renderDisposeable.clear();let{detail:b,documentation:v}=i.completion;if(h){let w="";w+=`score: ${i.score[0]}
42
- `,w+=`prefix: ${i.word??"(no prefix)"}
43
- `,w+=`word: ${i.completion.filterText?i.completion.filterText+" (filterText)":i.textLabel}
44
- `,w+=`distance: ${i.distance} (localityBonus-setting)
45
- `,w+=`index: ${i.idx}, based on ${i.completion.sortText&&`sortText: "${i.completion.sortText}"`||"label"}
46
- `,w+=`commit_chars: ${i.completion.commitCharacters?.join("")}
47
- `,v=new En().appendCodeblock("empty",w),b=`Provider: ${i.provider._debugDisplayName}`}if(!h&&!$u(i)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),b){let w=b.length>1e5?`${b.substr(0,1e5)}…`:b;this._type.textContent=w,this._type.title=w,wr(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(w))}else on(this._type),this._type.title="",er(this._type),this.domNode.classList.add("no-type");if(on(this._docs),typeof v==="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=v;else if(v){this._docs.classList.add("markdown-docs"),on(this._docs);let w=this._markdownRendererService.render(v,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(w.element),this._renderDisposeable.add(w)}this.domNode.classList.toggle("detail-and-doc",!!b&&!!v),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=(w)=>{w.preventDefault(),w.stopPropagation()},this._close.onclick=(w)=>{w.preventDefault(),w.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(i,h){let b=new nt(i,h);if(!nt.equals(b,this._size))this._size=b,PR(this.domNode,i,h);this._scrollbar.scanDomNode()}scrollDown(i=8){this._body.scrollTop+=i}scrollUp(i=8){this._body.scrollTop-=i}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};Jm=YN([Y1(1,je),Y1(2,Er)],Jm);class bC{constructor(f,i){this.widget=f,this._editor=i,this.allowEditorOverflow=!0,this._disposables=new d,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new Td,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(f.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let h,b,v=0,w=0;this._disposables.add(this._resizable.onDidWillResize(()=>{h=this._topLeft,b=this._resizable.size})),this._disposables.add(this._resizable.onDidResize((x)=>{if(h&&b){this.widget.layout(x.dimension.width,x.dimension.height);let I=!1;if(x.west)w=b.width-x.dimension.width,I=!0;if(x.north)v=b.height-x.dimension.height,I=!0;if(I)this._applyTopLeft({top:h.top+v,left:h.left+w})}if(x.done)h=void 0,b=void 0,v=0,w=0,this._userSize=x.dimension})),this._disposables.add(this.widget.onDidChangeContents(()=>{if(this._anchorBox)this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){if(!this._added)this._editor.addOverlayWidget(this),this._added=!0}hide(f=!1){if(this._resizable.clearSashHoverState(),this._added)this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0;if(f)this._userSize=void 0,this.widget.clearContents()}placeAtAnchor(f,i){let h=f.getBoundingClientRect();this._anchorBox=h,this._preferAlignAtTop=i,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,i)}_placeAtAnchor(f,i,h){let b=Hs(this.getDomNode().ownerDocument.body),v=this.widget.getLayoutInfo(),w=new nt(220,2*v.lineHeight),x=f.top,I=function(){let ae=b.width-(f.left+f.width+v.borderWidth+v.horizontalPadding),xe=-v.borderWidth+f.left+f.width,Me=new nt(ae,b.height-f.top-v.borderHeight-v.verticalPadding),He=Me.with(void 0,f.top+f.height-v.borderHeight-v.verticalPadding);return{top:x,left:xe,fit:ae-i.width,maxSizeTop:Me,maxSizeBottom:He,minSize:w.with(Math.min(ae,w.width))}}(),E=function(){let ae=f.left-v.borderWidth-v.horizontalPadding,xe=Math.max(v.horizontalPadding,f.left-i.width-v.borderWidth),Me=new nt(ae,b.height-f.top-v.borderHeight-v.verticalPadding),He=Me.with(void 0,f.top+f.height-v.borderHeight-v.verticalPadding);return{top:x,left:xe,fit:ae-i.width,maxSizeTop:Me,maxSizeBottom:He,minSize:w.with(Math.min(ae,w.width))}}(),T=function(){let ae=f.left,xe=-v.borderWidth+f.top+f.height,Me=new nt(f.width-v.borderHeight,b.height-f.top-f.height-v.verticalPadding);return{top:xe,left:ae,fit:Me.height-i.height,maxSizeBottom:Me,maxSizeTop:Me,minSize:w.with(Me.width)}}(),O=function(){let ae=f.left,xe=new nt(f.width-v.borderHeight,f.top-v.verticalPadding);return{top:Math.max(v.verticalPadding,f.top-i.height),left:ae,fit:xe.height-i.height,maxSizeTop:xe,maxSizeBottom:xe,minSize:w.with(xe.width)}}(),Y=[I,E,h?T:O],ee=Y.find((ae)=>ae.fit>=0)??Y.sort((ae,xe)=>xe.fit-ae.fit)[0],te=f.top+f.height-v.borderHeight,oe,ne=i.height,re=Math.max(ee.maxSizeTop.height,ee.maxSizeBottom.height);if(ne>re)ne=re;let he;if(h)if(ne<=ee.maxSizeTop.height)oe=!0,he=ee.maxSizeTop;else oe=!1,he=ee.maxSizeBottom;else if(ne<=ee.maxSizeBottom.height)oe=!1,he=ee.maxSizeBottom;else oe=!0,he=ee.maxSizeTop;let{top:ue,left:Ie}=ee;if(ee===O)ue=f.top-ne+v.borderWidth;else if(!oe&&ne>f.height)ue=te-ne;let Te=this._editor.getDomNode();if(Te){let ae=Te.getBoundingClientRect();ue-=ae.top,Ie-=ae.left}if(this._applyTopLeft({left:Ie,top:ue}),ee===O)this._resizable.enableSashes(!0,!1,!1,!0);else this._resizable.enableSashes(!oe,ee===I,oe,ee!==I);this._resizable.minSize=ee.minSize,this._resizable.maxSize=he,this._resizable.layout(ne,Math.min(he.width,i.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(f){this._topLeft=f,this._editor.layoutOverlayWidget(this)}}var _k=Q("fileService"),ko;(function(f){f[f.FILE=0]="FILE",f[f.FOLDER=1]="FOLDER",f[f.ROOT_FOLDER=2]="ROOT_FOLDER"})(ko||(ko={}));var JN=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Ud(f,i,h,b,v){if(J.isThemeIcon(v))return[`codicon-${v.id}`,"predefined-file-icon"];if(q.isUri(v))return[];let w=b===ko.ROOT_FOLDER?["rootfolder-icon"]:b===ko.FOLDER?["folder-icon"]:["file-icon"];if(h){let x;if(h.scheme===se.data)x=id.parseMetaData(h).get(id.META_DATA_LABEL);else{let I=h.path.match(JN);if(I){if(x=Qm(I[2].toLowerCase()),I[1])w.push(`${Qm(I[1].toLowerCase())}-name-dir-icon`)}else x=Qm(h.authority.toLowerCase())}if(b===ko.ROOT_FOLDER)w.push(`${x}-root-name-folder-icon`);else if(b===ko.FOLDER)w.push(`${x}-name-folder-icon`);else{if(x){if(w.push(`${x}-name-file-icon`),w.push("name-file-icon"),x.length<=255){let E=x.split(".");for(let T=1;T<E.length;T++)w.push(`${E.slice(T).join(".")}-ext-file-icon`)}w.push("ext-file-icon")}let I=QN(f,i,h);if(I)w.push(`${Qm(I)}-lang-file-icon`)}}return w}function QN(f,i,h){if(!h)return null;let b=null;if(h.scheme===se.data){let w=id.parseMetaData(h).get(id.META_DATA_MIME);if(w)b=i.getLanguageIdByMimeType(w)}else{let v=f.getModel(h);if(v)b=v.getLanguageId()}if(b&&b!==Ki)return b;return i.guessLanguageIdByFilepathOrFirstLine(h)}function Qm(f){return f.replace(/[\s]/g,"/")}var eO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},vC=function(f,i){return function(h,b){i(h,b,f)}},tO=At("suggest-more-info",y.chevronRight,e(1566,"Icon for more information in the suggest widget.")),iO=new class f{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=new RegExp(`^${f._regexRelaxed.source}$`,"i")}extract(i,h){if(i.textLabel.match(f._regexStrict))return h[0]=i.textLabel,!0;if(i.completion.detail&&i.completion.detail.match(f._regexStrict))return h[0]=i.completion.detail,!0;if(i.completion.documentation){let b=typeof i.completion.documentation==="string"?i.completion.documentation:i.completion.documentation.value,v=f._regexRelaxed.exec(b);if(v&&(v.index===0||v.index+v[0].length===b.length))return h[0]=v[0],!0}return!1}},ef=class f{constructor(i,h,b,v){this._editor=i,this._modelService=h,this._languageService=b,this._themeService=v,this._onDidToggleDetails=new r,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(i){let h=new d,b=i;b.classList.add("show-file-icons");let v=_(i,g(".icon")),w=_(v,g("span.colorspan")),x=_(i,g(".contents")),I=_(x,g(".main")),E=_(I,g(".icon-label.codicon")),T=_(I,g("span.left")),O=_(I,g("span.right")),A=new pd(T,{supportHighlights:!0,supportIcons:!0});h.add(A);let Y=_(T,g("span.signature-label")),ee=_(T,g("span.qualifier-label")),te=_(O,g("span.details-label")),oe=_(O,g("span.readMore"+J.asCSSSelector(tO)));return oe.title=e(1567,"Read More"),{root:b,left:T,right:O,icon:v,colorspan:w,iconLabel:A,iconContainer:E,parametersLabel:Y,qualifierLabel:ee,detailsLabel:te,readMore:oe,disposables:h,configureFont:()=>{let re=this._editor.getOptions(),he=re.get(59),ue=he.getMassagedFontFamily(),{fontFeatureSettings:Ie,fontVariationSettings:Te}=he,ae=re.get(135)||he.fontSize,xe=re.get(136)||he.lineHeight,{fontWeight:Me,letterSpacing:He}=he,qe=`${ae}px`,Oe=`${xe}px`,Ze=`${He}px`;b.style.fontSize=qe,b.style.fontWeight=Me,b.style.letterSpacing=Ze,I.style.fontFamily=ue,I.style.fontFeatureSettings=Ie,I.style.fontVariationSettings=Te,I.style.lineHeight=Oe,v.style.height=Oe,v.style.width=Oe,oe.style.height=Oe,oe.style.width=Oe}}}renderElement(i,h,b){b.configureFont();let{completion:v}=i;b.colorspan.style.backgroundColor="";let w={labelEscapeNewLines:!0,matches:Ru(i.score)},x=[];if(v.kind===19&&iO.extract(i,x))b.icon.className="icon customcolor",b.iconContainer.className="icon hide",b.colorspan.style.backgroundColor=x[0];else if(v.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){b.icon.className="icon hide",b.iconContainer.className="icon hide";let I=Ud(this._modelService,this._languageService,q.from({scheme:"fake",path:i.textLabel}),ko.FILE),E=Ud(this._modelService,this._languageService,q.from({scheme:"fake",path:v.detail}),ko.FILE);w.extraClasses=I.length>E.length?I:E}else if(v.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons)b.icon.className="icon hide",b.iconContainer.className="icon hide",w.extraClasses=[Ud(this._modelService,this._languageService,q.from({scheme:"fake",path:i.textLabel}),ko.FOLDER),Ud(this._modelService,this._languageService,q.from({scheme:"fake",path:v.detail}),ko.FOLDER)].flat();else b.icon.className="icon hide",b.iconContainer.className="",b.iconContainer.classList.add("suggest-icon",...J.asClassNameArray(gu.toIcon(v.kind)));if(v.tags&&v.tags.indexOf(1)>=0)w.extraClasses=(w.extraClasses||[]).concat(["deprecated"]),w.matches=[];if(b.iconLabel.setLabel(i.textLabel,void 0,w),typeof v.label==="string")b.parametersLabel.textContent="",b.detailsLabel.textContent=SC(v.detail||""),b.root.classList.add("string-label");else b.parametersLabel.textContent=SC(v.label.detail||""),b.detailsLabel.textContent=SC(v.label.description||""),b.root.classList.remove("string-label");if(this._editor.getOption(134).showInlineDetails)wr(b.detailsLabel);else er(b.detailsLabel);if($u(i))b.right.classList.add("can-expand-details"),wr(b.readMore),b.readMore.onmousedown=(I)=>{I.stopPropagation(),I.preventDefault()},b.readMore.onclick=(I)=>{I.stopPropagation(),I.preventDefault(),this._onDidToggleDetails.fire()};else b.right.classList.remove("can-expand-details"),er(b.readMore),b.readMore.onmousedown=null,b.readMore.onclick=null}disposeTemplate(i){i.disposables.dispose()}};ef=eO([vC(1,_t),vC(2,yt),vC(3,je)],ef);function SC(f){return f.replace(/\r\n|\r|\n/g,"")}var oO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},tf=function(f,i){return function(h,b){i(h,b,f)}},sc,of=a("editorSuggestWidget.background",kr,e(1545,"Background color of the suggest widget."));a("editorSuggestWidget.border",qh,e(1546,"Border color of the suggest widget."));var wC=a("editorSuggestWidget.foreground",ma,e(1547,"Foreground color of the suggest widget.")),J1=a("editorSuggestWidget.selectedForeground",{dark:vc,light:vc,hcDark:of,hcLight:of},e(1548,"Foreground color of the selected entry in the suggest widget."));a("editorSuggestWidget.selectedIconForeground",{dark:Ff,light:Ff,hcDark:of,hcLight:of},e(1549,"Icon foreground color of the selected entry in the suggest widget."));var nO=a("editorSuggestWidget.selectedBackground",{dark:wc,light:wc,hcDark:wC,hcLight:wC},e(1550,"Background color of the selected entry in the suggest widget.")),rO=a("editorSuggestWidget.focusOutline",zt,e(1551,"Outline color of the focused (keyboard-navigated) entry in the suggest widget."));a("editorSuggestWidget.highlightForeground",Yh,e(1552,"Color of the match highlights in the suggest widget."));a("editorSuggestWidget.focusHighlightForeground",{dark:Uv,light:Uv,hcDark:J1,hcLight:J1},e(1553,"Color of the match highlights in the suggest widget when an item is focused."));a("editorSuggestWidgetStatus.foreground",me(wC,0.5),e(1554,"Foreground color of the suggest widget status."));class Q1{constructor(f,i){this._service=f,this._key=`suggestWidget.size/${i.getEditorType()}/${i instanceof Zi}`}restore(){let f=this._service.get(this._key,0)??"";try{let i=JSON.parse(f);if(nt.is(i))return nt.lift(i)}catch{}return}store(f){this._service.store(this._key,JSON.stringify(f),0,1)}reset(){this._service.remove(this._key,0)}}var nf=class f{static{sc=this}static{this.LOADING_MESSAGE=e(1555,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=e(1556,"No suggestions.")}constructor(i,h,b,v,w){this.editor=i,this._storageService=h,this._state=0,this._isAuto=!1,this._loadingTimeout=new le,this._pendingLayout=new le,this._pendingShowDetails=new le,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new Yn,this._disposables=new d,this._onDidSelect=new Cl,this._onDidFocus=new Cl,this._onDidHide=new r,this._onDidShow=new r,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new r,this.element=new Td,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new eD(this,i),this._persistedSize=new Q1(h,i);class x{constructor(te,oe,ne=!1,re=!1){this.persistedSize=te,this.currentSize=oe,this.persistHeight=ne,this.persistWidth=re}}let I;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),I=new x(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize((te)=>{if(this._resize(te.dimension.width,te.dimension.height),I)I.persistHeight=I.persistHeight||!!te.north||!!te.south,I.persistWidth=I.persistWidth||!!te.east||!!te.west;if(!te.done)return;if(I){let{itemHeight:oe,defaultSize:ne}=this.getLayoutInfo(),re=Math.round(oe/2),{width:he,height:ue}=this.element.size;if(!I.persistHeight||Math.abs(I.currentSize.height-ue)<=re)ue=I.persistedSize?.height??ne.height;if(!I.persistWidth||Math.abs(I.currentSize.width-he)<=re)he=I.persistedSize?.width??ne.width;this._persistedSize.store(new nt(he,ue))}this._contentWidget.unlockPreference(),I=void 0})),this._messageElement=_(this.element.domNode,g(".message")),this._listElement=_(this.element.domNode,g(".tree"));let E=this._disposables.add(w.createInstance(Jm,this.editor));E.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new bC(E,this.editor);let T=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);T();let O=()=>this.element.domNode.classList.toggle("fit-width-to-details",this.editor.getOption(134).fitWidthToDetails);O();let A=w.createInstance(ef,this.editor);this._disposables.add(A),this._disposables.add(A.onDidToggleDetails(()=>this.toggleDetails())),this._list=new hr("SuggestWidget",this._listElement,{getHeight:(te)=>this.getLayoutInfo().itemHeight,getTemplateId:(te)=>"suggestion"},[A],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>Jt?"listitem":"option",getWidgetAriaLabel:()=>e(1557,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:(te)=>{let oe=te.textLabel,ne=gu.toLabel(te.completion.kind);if(typeof te.completion.label!=="string"){let{detail:Ie,description:Te}=te.completion.label;if(Ie&&Te)oe=e(1558,"{0} {1}, {2}, {3}",oe,Ie,Te,ne);else if(Ie)oe=e(1559,"{0} {1}, {2}",oe,Ie,ne);else if(Te)oe=e(1560,"{0}, {1}, {2}",oe,Te,ne)}else oe=e(1561,"{0}, {1}",oe,ne);if(!te.isResolved||!this._isDetailsVisible())return oe;let{documentation:re,detail:he}=te.completion,ue=pa("{0}{1}",he||"",re?typeof re==="string"?re:re.value:"");return e(1562,"{0}, docs: {1}",oe,ue)}}}),this._list.style(kc({listInactiveFocusBackground:nO,listInactiveFocusOutline:rO})),this._status=w.createInstance(Ym,this.element.domNode,Qn,void 0);let Y=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);Y(),this._disposables.add(this._list.onMouseDown((te)=>this._onListMouseDownOrTap(te))),this._disposables.add(this._list.onTap((te)=>this._onListMouseDownOrTap(te))),this._disposables.add(this._list.onDidChangeSelection((te)=>this._onListSelection(te))),this._disposables.add(this._list.onDidChangeFocus((te)=>this._onListFocus(te))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration((te)=>{if(te.hasChanged(134))Y(),T(),O();if(this._completionModel&&(te.hasChanged(59)||te.hasChanged(135)||te.hasChanged(136)))this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=Ye.Visible.bindTo(b),this._ctxSuggestWidgetDetailsVisible=Ye.DetailsVisible.bindTo(b),this._ctxSuggestWidgetMultipleSuggestions=Ye.MultipleSuggestions.bindTo(b),this._ctxSuggestWidgetHasFocusedSuggestion=Ye.HasFocusedSuggestion.bindTo(b),this._ctxSuggestWidgetDetailsFocused=Ye.DetailsFocused.bindTo(b);let ee=ii(this._details.widget.domNode);this._disposables.add(ee),this._disposables.add(ee.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(ee.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(wt(this._details.widget.domNode,"keydown",(te)=>{this._onDetailsKeydown.fire(te)})),this._disposables.add(this.editor.onMouseDown((te)=>this._onEditorMouseDown(te)))}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(i){if(this._details.widget.domNode.contains(i.target.element))this._details.widget.domNode.focus();else if(this.element.domNode.contains(i.target.element))this.editor.focus()}_onCursorSelectionChanged(){if(this._state!==0)this._contentWidget.layout()}_onListMouseDownOrTap(i){if(typeof i.element>"u"||typeof i.index>"u")return;i.browserEvent.preventDefault(),i.browserEvent.stopPropagation(),this._select(i.element,i.index)}_onListSelection(i){if(i.elements.length)this._select(i.elements[0],i.indexes[0])}_select(i,h){let b=this._completionModel;if(b)this._onDidSelect.fire({item:i,index:h,model:b}),this.editor.focus()}_onListFocus(i){if(this._ignoreFocusEvents)return;if(this._state===5)this._setState(3);if(!i.elements.length){if(this._currentSuggestionDetails)this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0;this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);let h=i.elements[0],b=i.indexes[0];if(h!==this._focusedItem)this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=h,this._list.reveal(b),this._currentSuggestionDetails=Wt(async(v)=>{let w=ti(()=>{if(this._isDetailsVisible())this._showDetails(!0,!1)},250),x=v.onCancellationRequested(()=>w.dispose());try{return await h.resolve(v)}finally{w.dispose(),x.dispose()}}),this._currentSuggestionDetails.then(()=>{if(b>=this._list.length||h!==this._list.element(b))return;if(this._ignoreFocusEvents=!0,this._list.splice(b,1,[h]),this._list.setFocus([b]),this._ignoreFocusEvents=!1,this._isDetailsVisible())this._showDetails(!1,!1);else this.element.domNode.classList.remove("docs-side");this.editor.setAriaOptions({activeDescendant:this._list.getElementID(b)})}).catch(Z);this._onDidFocus.fire({item:h,index:b,model:this._completionModel})}_setState(i){if(this._state===i)return;switch(this._state=i,this.element.domNode.classList.toggle("frozen",i===4),this.element.domNode.classList.remove("message"),i){case 0:er(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=sc.LOADING_MESSAGE,er(this._listElement,this._status.element),wr(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Cr(sc.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=sc.NO_SUGGESTIONS_MESSAGE,er(this._listElement,this._status.element),wr(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,Cr(sc.NO_SUGGESTIONS_MESSAGE);break;case 3:er(this._messageElement),wr(this._listElement,this._status.element),this._show();break;case 4:er(this._messageElement),wr(this._listElement,this._status.element),this._show();break;case 5:er(this._messageElement),wr(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(i,h){if(this._state!==0)return;if(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!i,!this._isAuto)this._loadingTimeout.value=ti(()=>this._setState(1),h)}showSuggestions(i,h,b,v,w){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==i)this._completionModel=i;if(b&&this._state!==2&&this._state!==0){this._setState(4);return}let x=this._completionModel.items.length,I=x===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(x>1),I){this._setState(v?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(b?4:3),this._list.reveal(h,0,h===0?0:this.getLayoutInfo().itemHeight*0.33),this._list.setFocus(w?[]:[h])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Hg(B(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){if(this._list.length>0)this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel};return}toggleDetailsFocus(){if(this._state===5)this._list.setFocus(this._list.getFocus()),this._setState(3);else if(this._state===3)if(this._setState(5),!this._isDetailsVisible())this.toggleDetails(!0);else this._details.widget.focus()}toggleDetails(i=!1){if(this._isDetailsVisible())this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details");else if(($u(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,i)}_showDetails(i,h){this._pendingShowDetails.value=Hg(B(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let b=!1;if(i)this._details.widget.renderLoading();else this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode);if(!this._details.widget.isEmpty){if(this._positionDetails(),this.element.domNode.classList.add("shows-details"),h)this._details.widget.focus(),b=!0}else this._details.hide();if(!b)this.editor.focus()})}toggleExplainMode(){if(this._list.getFocusedElements()[0])if(this._explainMode=!this._explainMode,!this._isDetailsVisible())this.toggleDetails();else this._showDetails(!1,!1)}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout.clear(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();let i=this._persistedSize.restore(),h=Math.ceil(this.getLayoutInfo().itemHeight*4.3);if(i&&i.height<h)this._persistedSize.store(i.with(void 0,h))}isFrozen(){return this._state===4}_afterRender(i){if(i===null){if(this._isDetailsVisible())this._details.hide();return}if(this._state===2||this._state===1)return;if(this._isDetailsVisible()&&!this._details.widget.isEmpty)this._details.show();this._positionDetails()}_layout(i){if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;let h=Hs(this.element.domNode.ownerDocument.body),b=this.getLayoutInfo();if(!i)i=b.defaultSize;let v=i.height,w=i.width;if(this._status.element.style.height=`${b.itemHeight}px`,this._state===2||this._state===1)v=b.itemHeight+b.borderHeight,w=b.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new nt(w,v),this._contentWidget.setPreference(2);else{let x=h.width-b.borderHeight-2*b.horizontalPadding;if(w>x)w=x;let I=this._completionModel?this._completionModel.stats.pLabelLen*b.typicalHalfwidthCharacterWidth:w;if(this.editor.getOption(134).fitWidthToDetails&&this._completionModel&&!this._persistedSize.restore()){let he=Math.min(x,this.editor.getLayoutInfo().width),ue=Math.min(he,this._measureContentWidth(b));w=Math.max(w,ue),I=Math.max(I,ue)}let E=b.statusBarHeight+this._list.contentHeight+b.borderHeight,T=b.itemHeight+b.statusBarHeight,O=xt(this.editor.getDomNode()),A=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),Y=O.top+A.top+A.height,ee=Math.min(h.height-Y-b.verticalPadding,E),te=O.top+A.top-b.verticalPadding,oe=Math.min(te,E),ne=Math.min(Math.max(oe,ee)+b.borderHeight,E);if(v===this._cappedHeight?.capped)v=this._cappedHeight.wanted;if(v<T)v=T;if(v>ne)v=ne;let re=150;if(v>ee&&oe>ee||this._forceRenderingAbove&&te>re)this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),ne=oe;else this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),ne=ee;this.element.preferredSize=new nt(I,b.defaultSize.height),this.element.maxSize=new nt(x,ne),this.element.minSize=new nt(220,T),this._cappedHeight=v===E?{wanted:this._cappedHeight?.wanted??i.height,capped:v}:void 0}this._resize(w,v)}_resize(i,h){let{width:b,height:v}=this.element.maxSize;i=Math.min(b,i),h=Math.min(v,h);let{statusBarHeight:w}=this.getLayoutInfo();this._list.layout(h-w,i),this._listElement.style.height=`${h-w}px`,this.element.layout(h,i),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){if(this._isDetailsVisible())this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}_measureContentWidth(i){let h=this._completionModel;if(!h)return 0;if(this._fitContentWidth?.model===h)return this._fitContentWidth.width;if(this._measureContext===void 0)this._measureContext=g("canvas").getContext("2d");let b;if(this._measureContext){let x=this.editor.getOptions(),I=x.get(59),E=x.get(135)||I.fontSize;this._measureContext.font=`${I.fontWeight} ${E}px ${I.getMassagedFontFamily()}`,b=0;for(let T of h.items){let{completion:O}=T,A=T.textLabel;if(typeof O.label==="string")A+=O.detail??"";else A+=(O.label.detail??"")+(O.label.description??"");b=Math.max(b,this._measureContext.measureText(A).width)}}else b=h.stats.pLabelLen*i.typicalHalfwidthCharacterWidth;let v=2*i.itemHeight+2*i.horizontalPadding+20,w=b+v;return this._fitContentWidth={model:h,width:w},w}getLayoutInfo(){let i=this.editor.getOption(59),h=Di(this.editor.getOption(136)||i.lineHeight,8,1000),b=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:h,v=this._details.widget.getLayoutInfo().borderWidth,w=2*v;return{itemHeight:h,statusBarHeight:b,borderWidth:v,borderHeight:w,typicalHalfwidthCharacterWidth:i.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new nt(430,b+12*h)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(i){this._storageService.store("expandSuggestionDocs",i,0,0)}forceRenderingAbove(){if(!this._forceRenderingAbove)this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore())}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};nf=sc=oO([tf(1,Tn),tf(2,K),tf(3,je),tf(4,D)],nf);class eD{constructor(f,i){this._widget=f,this._editor=i,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){if(this._added)this._added=!1,this._editor.removeContentWidget(this)}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){if(this._hidden=!1,!this._added)this._added=!0,this._editor.addContentWidget(this)}hide(){if(!this._hidden)this._hidden=!0,this.layout()}layout(){this._editor.layoutContentWidget(this)}getPosition(){if(this._hidden||!this._position||!this._preference)return null;return{position:this._position,preference:[this._preference]}}beforeRender(){let{height:f,width:i}=this._widget.element.size,{borderWidth:h,horizontalPadding:b}=this._widget.getLayoutInfo();return new nt(i+2*h+b,f+2*h)}afterRender(f){this._widget._afterRender(f)}setPreference(f){if(!this._preferenceLocked)this._preference=f}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(f){this._position=f}}var sO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ac=function(f,i){return function(h,b){i(h,b,f)}},CC;class tD{constructor(f,i){if(this._model=f,this._position=i,this._decorationOptions=ce.register({description:"suggest-line-suffix",stickiness:1}),f.getLineMaxColumn(i.lineNumber)!==i.column){let b=f.getOffsetAt(i),v=f.getPositionAt(b+1);f.changeDecorations((w)=>{if(this._marker)w.removeDecoration(this._marker);this._marker=w.addDecoration(t.fromPositions(i,v),this._decorationOptions)})}}dispose(){if(this._marker&&!this._model.isDisposed())this._model.changeDecorations((f)=>{f.removeDecoration(this._marker),this._marker=void 0})}delta(f){if(this._model.isDisposed()||this._position.lineNumber!==f.lineNumber)return 0;if(this._marker){let i=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(i.getStartPosition())-this._model.getOffsetAt(f)}else return this._model.getLineMaxColumn(f.lineNumber)-f.column}}var hn=class f{static{CC=this}static{this.ID="editor.contrib.suggestController"}static get(i){return i.getContribution(CC.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(i,h,b,v,w,x,I){this._memoryService=h,this._commandService=b,this._contextKeyService=v,this._instantiationService=w,this._logService=x,this._telemetryService=I,this._lineSuffix=new le,this._toDispose=new d,this._selectors=new iD((A)=>A.priority),this._onWillInsertSuggestItem=new r,this._wantsForceRenderingAbove=!1,this.editor=i,this.model=w.createInstance(Jl,this.editor),this._selectors.register({priority:0,select:(A,Y,ee)=>this._memoryService.select(A,Y,ee)});let E=Ye.InsertMode.bindTo(v);E.set(i.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>E.set(i.getOption(134).insertMode))),this.widget=this._toDispose.add(new Av(B(i.getDomNode()),()=>{let A=this._instantiationService.createInstance(nf,this.editor);this._toDispose.add(A),this._toDispose.add(A.onDidSelect((ne)=>this._insertSuggestion(ne,0),this));let Y=new fC(this.editor,A,this.model,(ne)=>this._insertSuggestion(ne,2));this._toDispose.add(Y);let ee=Ye.MakesTextEdit.bindTo(this._contextKeyService),te=Ye.HasInsertAndReplaceRange.bindTo(this._contextKeyService),oe=Ye.CanResolve.bindTo(this._contextKeyService);if(this._toDispose.add(R(()=>{ee.reset(),te.reset(),oe.reset()})),this._toDispose.add(A.onDidFocus(({item:ne})=>{let re=this.editor.getPosition(),he=ne.editStart.column,ue=re.column,Ie=!0;if(this.editor.getOption(1)==="smart"&&this.model.state===2&&!ne.completion.additionalTextEdits&&!(ne.completion.insertTextRules&4)&&ue-he===ne.completion.insertText.length)Ie=this.editor.getModel().getValueInRange({startLineNumber:re.lineNumber,startColumn:he,endLineNumber:re.lineNumber,endColumn:ue})!==ne.completion.insertText;ee.set(Ie),te.set(!s.equals(ne.editInsertEnd,ne.editReplaceEnd)),oe.set(Boolean(ne.provider.resolveCompletionItem)||Boolean(ne.completion.documentation)||ne.completion.detail!==ne.completion.label)})),this._wantsForceRenderingAbove)A.forceRenderingAbove();return A})),this._overtypingCapturer=this._toDispose.add(new Av(B(i.getDomNode()),()=>this._toDispose.add(new Xm(this.editor,this.model)))),this._alternatives=this._toDispose.add(new Av(B(i.getDomNode()),()=>this._toDispose.add(new zd(this.editor,this._contextKeyService)))),this._toDispose.add(w.createInstance(zu,i)),this._toDispose.add(this.model.onDidTrigger((A)=>{this.widget.value.showTriggered(A.auto,A.shy?250:50),this._lineSuffix.value=new tD(this.editor.getModel(),A.position)})),this._toDispose.add(this.model.onDidSuggest((A)=>{if(A.triggerOptions.shy)return;let Y=-1;for(let te of this._selectors.itemsOrderedByPriorityDesc)if(Y=te.select(this.editor.getModel(),this.editor.getPosition(),A.completionModel.items),Y!==-1)break;if(Y===-1)Y=0;if(this.model.state===0)return;let ee=!1;if(A.triggerOptions.auto){let te=this.editor.getOption(134);if(te.selectionMode==="never"||te.selectionMode==="always")ee=te.selectionMode==="never";else if(te.selectionMode==="whenTriggerCharacter")ee=A.triggerOptions.triggerKind!==1;else if(te.selectionMode==="whenQuickSuggestion")ee=A.triggerOptions.triggerKind===1&&!A.triggerOptions.refilter}this.widget.value.showSuggestions(A.completionModel,Y,A.isFrozen,A.triggerOptions.auto,ee)})),this._toDispose.add(this.model.onDidCancel((A)=>{if(!A.retrigger)this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let T=Ye.AcceptSuggestionsOnEnter.bindTo(v),O=()=>{let A=this.editor.getOption(1);T.set(A==="on"||A==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>O())),O()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(i,h){if(!i||!i.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let b=gi.get(this.editor);if(!b)return;this._onWillInsertSuggestItem.fire({item:i.item});let v=this.editor.getModel(),w=v.getAlternativeVersionId(),{item:x}=i,I=[],E=new Ve;if(!(h&1))this.editor.pushUndoStop();let T=this.getOverwriteInfo(x,Boolean(h&8));this._memoryService.memorize(v,this.editor.getPosition(),x);let O=x.isResolved,A=-1,Y=-1;if(Array.isArray(x.completion.additionalTextEdits)){this.model.cancel();let te=Fo.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",x.completion.additionalTextEdits.map((oe)=>{let ne=t.lift(oe.range);if(ne.startLineNumber===x.position.lineNumber&&ne.startColumn>x.position.column){let re=this.editor.getPosition().column-x.position.column,he=re,ue=t.spansMultipleLines(ne)?0:re;ne=new t(ne.startLineNumber,ne.startColumn+he,ne.endLineNumber,ne.endColumn+ue)}return Vt.replaceMove(ne,oe.text)})),te.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!O){let te=new en,oe,ne=v.onDidChangeContent((Ie)=>{if(Ie.isFlush){E.cancel(),ne.dispose();return}for(let Te of Ie.changes){let ae=t.getEndPosition(Te.range);if(!oe||s.isBefore(ae,oe))oe=ae}}),re=h;h|=2;let he=!1,ue=this.editor.onWillType(()=>{if(ue.dispose(),he=!0,!(re&2))this.editor.pushUndoStop()});I.push(x.resolve(E.token).then(()=>{if(!x.completion.additionalTextEdits||E.token.isCancellationRequested)return;if(oe&&x.completion.additionalTextEdits.some((Te)=>s.isBefore(oe,t.getStartPosition(Te.range))))return!1;if(he)this.editor.pushUndoStop();let Ie=Fo.capture(this.editor);if(this.editor.executeEdits("suggestController.additionalTextEdits.async",x.completion.additionalTextEdits.map((Te)=>Vt.replaceMove(t.lift(Te.range),Te.text))),Ie.restoreRelativeVerticalPositionOfCursor(this.editor),he||!(re&2))this.editor.pushUndoStop();return!0}).then((Ie)=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",te.elapsed(),Ie),Y=Ie===!0?1:Ie===!1?0:-2}).finally(()=>{ne.dispose(),ue.dispose()}))}let{insertText:ee}=x.completion;if(!(x.completion.insertTextRules&4))ee=co.escape(ee);if(this.model.cancel(),b.insert(ee,{overwriteBefore:T.overwriteBefore,overwriteAfter:T.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(x.completion.insertTextRules&1),clipboardText:i.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:Mn.suggest({providerId:Pg.fromExtensionId(x.extensionId?.value)})}),!(h&2))this.editor.pushUndoStop();if(x.completion.command)if(x.completion.command.id===rf.id)this.model.trigger({auto:!0,retrigger:!0});else{let te=new en;I.push(this._commandService.executeCommand(x.completion.command.id,...x.completion.command.arguments?[...x.completion.command.arguments]:[]).catch((oe)=>{if(x.completion.extensionId)gt(oe);else Z(oe)}).finally(()=>{A=te.elapsed()}))}if(h&4)this._alternatives.value.set(i,(te)=>{E.cancel();while(v.canUndo()){if(w!==v.getAlternativeVersionId())v.undo();this._insertSuggestion(te,3|(h&8?8:0));break}});this._alertCompletionItem(x),Promise.all(I).finally(()=>{this._reportSuggestionAcceptedTelemetry(x,v,O,A,Y,i.index,i.model.items),this.model.clear(),E.dispose()})}_reportSuggestionAcceptedTelemetry(i,h,b,v,w,x,I){if(Math.random()>0.0001)return;let E=new Map;for(let Y=0;Y<Math.min(30,I.length);Y++){let ee=I[Y].textLabel;if(E.has(ee))E.get(ee).push(Y);else E.set(ee,[Y])}let T=E.get(i.textLabel),A=T&&T.length>1?T[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:i.extensionId?.value??"unknown",providerId:i.provider._debugDisplayName??"unknown",kind:i.completion.kind,basenameHash:Qc(xi(h.uri)).toString(16),languageId:h.getLanguageId(),fileExtension:HR(h.uri),resolveInfo:!i.provider.resolveCompletionItem?-1:b?1:0,resolveDuration:i.resolveDuration,commandDuration:v,additionalEditsAsync:w,index:x,firstIndex:A})}getOverwriteInfo(i,h){Ae(this.editor.hasModel());let b=this.editor.getOption(134).insertMode==="replace";if(h)b=!b;let v=i.position.column-i.editStart.column,w=(b?i.editReplaceEnd.column:i.editInsertEnd.column)-i.position.column,x=this.editor.getPosition().column-i.position.column,I=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:v+x,overwriteAfter:w+I}}_alertCompletionItem(i){if(On(i.completion.additionalTextEdits)){let h=e(1534,"Accepting '{0}' made {1} additional edits",i.textLabel,i.completion.additionalTextEdits.length);Dn(h)}}triggerSuggest(i,h,b){if(this.editor.hasModel())this.model.trigger({auto:h??!1,completionOptions:{providerFilter:i,kindFilter:b?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus()}triggerSuggestAndAcceptBest(i){if(!this.editor.hasModel())return;let h=this.editor.getPosition(),b=()=>{if(h.equals(this.editor.getPosition()))this._commandService.executeCommand(i.fallback)},v=(w)=>{if(w.completion.insertTextRules&4||w.completion.additionalTextEdits)return!0;let x=this.editor.getPosition(),I=w.editStart.column,E=x.column;if(E-I!==w.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:x.lineNumber,startColumn:I,endLineNumber:x.lineNumber,endColumn:E})!==w.completion.insertText};k.once(this.model.onDidTrigger)((w)=>{let x=[];k.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{Fe(x),b()},void 0,x),this.model.onDidSuggest(({completionModel:I})=>{if(Fe(x),I.items.length===0){b();return}let E=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),I.items),T=I.items[E];if(!v(T)){b();return}this.editor.pushUndoStop(),this._insertSuggestion({index:E,item:T,model:I},7)},void 0,x)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(h,0),this.editor.focus()}acceptSelectedSuggestion(i,h){let b=this.widget.value.getFocusedItem(),v=0;if(i)v|=4;if(h)v|=8;this._insertSuggestion(b,v)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){if(this.widget.isInitialized)this.widget.value.forceRenderingAbove();else this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){if(this.widget.isInitialized)this.widget.value.stopForceRenderingAbove();else this._wantsForceRenderingAbove=!1}registerSelector(i){return this._selectors.register(i)}};hn=CC=sO([ac(1,Yl),ac(2,Be),ac(3,K),ac(4,D),ac(5,Ke),ac(6,In)],hn);class iD{constructor(f){this.prioritySelector=f,this._items=[]}register(f){if(this._items.indexOf(f)!==-1)throw Error("Value is already registered");return this._items.push(f),this._items.sort((i,h)=>this.prioritySelector(h)-this.prioritySelector(i)),{dispose:()=>{let i=this._items.indexOf(f);if(i>=0)this._items.splice(i,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class rf extends U{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:rf.id,label:p(1543,"Trigger Suggest"),precondition:C.and(o.writable,o.hasCompletionItemProvider,Ye.Visible.toNegated()),kbOpts:{kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(f,i,h){let b=hn.get(i);if(!b)return;let v;if(h&&typeof h==="object"){if(h.auto===!0)v=!0}b.triggerSuggest(void 0,v,void 0)}}pe(hn.ID,hn,2);N(rf);var so=190,Yi=Kt.bindToContribution(hn.get);G(new Yi({id:"acceptSelectedSuggestion",precondition:C.and(Ye.Visible,Ye.HasFocusedSuggestion),handler(f){f.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:C.and(Ye.Visible,o.textInputFocus),weight:so},{primary:3,kbExpr:C.and(Ye.Visible,o.textInputFocus,Ye.AcceptSuggestionsOnEnter,Ye.MakesTextEdit),weight:so}],menuOpts:[{menuId:Qn,title:e(1535,"Insert"),group:"left",order:1,when:C.and(Ye.HasFocusedSuggestion,Ye.HasInsertAndReplaceRange.toNegated())},{menuId:Qn,title:e(1536,"Insert"),group:"left",order:1,when:C.and(Ye.HasFocusedSuggestion,Ye.HasInsertAndReplaceRange,Ye.InsertMode.isEqualTo("insert"))},{menuId:Qn,title:e(1537,"Replace"),group:"left",order:1,when:C.and(Ye.HasFocusedSuggestion,Ye.HasInsertAndReplaceRange,Ye.InsertMode.isEqualTo("replace"))}]}));G(new Yi({id:"acceptAlternativeSelectedSuggestion",precondition:C.and(Ye.Visible,o.textInputFocus,Ye.HasFocusedSuggestion),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:1027,secondary:[1026]},handler(f){f.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Qn,group:"left",order:2,when:C.and(Ye.HasFocusedSuggestion,Ye.HasInsertAndReplaceRange,Ye.InsertMode.isEqualTo("insert")),title:e(1538,"Replace")},{menuId:Qn,group:"left",order:2,when:C.and(Ye.HasFocusedSuggestion,Ye.HasInsertAndReplaceRange,Ye.InsertMode.isEqualTo("replace")),title:e(1539,"Insert")}]}));ke.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");G(new Yi({id:"hideSuggestWidget",precondition:Ye.Visible,handler:(f)=>f.cancelSuggestWidget(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));G(new Yi({id:"selectNextSuggestion",precondition:C.and(Ye.Visible,C.or(Ye.MultipleSuggestions,Ye.HasFocusedSuggestion.negate())),handler:(f)=>f.selectNextSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:Qn,group:"left",order:0,when:Ye.HasFocusedSuggestion.toNegated(),title:e(1540,"Select")}}));G(new Yi({id:"selectNextPageSuggestion",precondition:C.and(Ye.Visible,C.or(Ye.MultipleSuggestions,Ye.HasFocusedSuggestion.negate())),handler:(f)=>f.selectNextPageSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:12,secondary:[2060]}}));G(new Yi({id:"selectLastSuggestion",precondition:C.and(Ye.Visible,C.or(Ye.MultipleSuggestions,Ye.HasFocusedSuggestion.negate())),handler:(f)=>f.selectLastSuggestion()}));G(new Yi({id:"selectPrevSuggestion",precondition:C.and(Ye.Visible,C.or(Ye.MultipleSuggestions,Ye.HasFocusedSuggestion.negate())),handler:(f)=>f.selectPrevSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));G(new Yi({id:"selectPrevPageSuggestion",precondition:C.and(Ye.Visible,C.or(Ye.MultipleSuggestions,Ye.HasFocusedSuggestion.negate())),handler:(f)=>f.selectPrevPageSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:11,secondary:[2059]}}));G(new Yi({id:"selectFirstSuggestion",precondition:C.and(Ye.Visible,C.or(Ye.MultipleSuggestions,Ye.HasFocusedSuggestion.negate())),handler:(f)=>f.selectFirstSuggestion()}));G(new Yi({id:"focusSuggestion",precondition:C.and(Ye.Visible,Ye.HasFocusedSuggestion.negate()),handler:(f)=>f.focusSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));G(new Yi({id:"focusAndAcceptSuggestion",precondition:C.and(Ye.Visible,Ye.HasFocusedSuggestion.negate()),handler:(f)=>{f.focusSuggestion(),f.acceptSelectedSuggestion(!0,!1)}}));G(new Yi({id:"toggleSuggestionDetails",precondition:C.and(Ye.Visible,Ye.HasFocusedSuggestion),handler:(f)=>f.toggleSuggestionDetails(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Qn,group:"right",order:1,when:C.and(Ye.DetailsVisible,Ye.CanResolve),title:e(1541,"Show Less")},{menuId:Qn,group:"right",order:1,when:C.and(Ye.DetailsVisible.toNegated(),Ye.CanResolve),title:e(1542,"Show More")}]}));G(new Yi({id:"toggleExplainMode",precondition:Ye.Visible,handler:(f)=>f.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));G(new Yi({id:"toggleSuggestionFocus",precondition:Ye.Visible,handler:(f)=>f.toggleSuggestionFocus(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:2570,mac:{primary:778}}}));G(new Yi({id:"insertBestCompletion",precondition:C.and(o.textInputFocus,C.equals("config.editor.tabCompletion","on"),zu.AtEnd,Ye.Visible.toNegated(),zd.OtherSuggestions.toNegated(),gi.InSnippetMode.toNegated()),handler:(f,i)=>{f.triggerSuggestAndAcceptBest(Qt(i)?{fallback:"tab",...i}:{fallback:"tab"})},kbOpts:{weight:so,primary:2}}));G(new Yi({id:"insertNextSuggestion",precondition:C.and(o.textInputFocus,C.equals("config.editor.tabCompletion","on"),zd.OtherSuggestions,Ye.Visible.toNegated(),gi.InSnippetMode.toNegated()),handler:(f)=>f.acceptNextSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:2}}));G(new Yi({id:"insertPrevSuggestion",precondition:C.and(o.textInputFocus,C.equals("config.editor.tabCompletion","on"),zd.OtherSuggestions,Ye.Visible.toNegated(),gi.InSnippetMode.toNegated()),handler:(f)=>f.acceptPrevSuggestion(),kbOpts:{weight:so,kbExpr:o.textInputFocus,primary:1026}}));G(new class extends Kt{constructor(){super({id:"suggestWidgetCopy",precondition:Ye.DetailsFocused,kbOpts:{weight:so+10,kbExpr:Ye.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(f,i){B(i.getDomNode()).document.execCommand("copy")}});N(class extends U{constructor(){super({id:"editor.action.resetSuggestSize",label:p(1544,"Reset Suggest Widget Size"),precondition:void 0})}run(f,i){hn.get(i)?.resetWidgetSize()}});class oD extends n{get selectedItem(){return this._currentSuggestItemInfo}constructor(f,i,h){super();this.editor=f,this.suggestControllerPreselector=i,this.onWillAccept=h,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new r),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(f.onKeyDown((v)=>{if(v.shiftKey&&!this.isShiftKeyPressed)this.isShiftKeyPressed=!0,this.update(this._isActive)})),this._register(f.onKeyUp((v)=>{if(v.shiftKey&&this.isShiftKeyPressed)this.isShiftKeyPressed=!1,this.update(this._isActive)}));let b=hn.get(this.editor);if(b){this._register(b.registerSelector({priority:100,select:(x,I,E)=>{let T=this.editor.getModel();if(!T)return-1;let O=this.suggestControllerPreselector(),A=O?Vo(O,T):void 0;if(!A)return-1;let Y=s.lift(I),ee=E.map((oe,ne)=>{let re=ju.fromSuggestion(b,T,Y,oe,this.isShiftKeyPressed),he=Vo(re.getSingleTextEdit(),T),ue=Am(A,he);return{index:ne,valid:ue,prefixLength:he.text.length,suggestItem:oe}}).filter((oe)=>oe&&oe.valid&&oe.prefixLength>0),te=jv(ee,$n((oe)=>oe.prefixLength,$i));return te?te.index:-1}}));let v=!1,w=()=>{if(v)return;v=!0,this._register(b.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(b.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(b.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))};this._register(k.once(b.model.onDidTrigger)((x)=>{w()})),this._register(b.onWillInsertSuggestItem((x)=>{let I=this.editor.getPosition(),E=this.editor.getModel();if(!I||!E)return;let T=ju.fromSuggestion(b,E,I,x.item,this.isShiftKeyPressed);this.onWillAccept(T)}))}this.update(this._isActive)}update(f){let i=this.getSuggestItemInfo();if(this._isActive!==f||!aO(this._currentSuggestItemInfo,i))this._isActive=f,this._currentSuggestItemInfo=i,this._onDidSelectedItemChange.fire()}getSuggestItemInfo(){let f=hn.get(this.editor);if(!f||!this.isSuggestWidgetVisible)return;let i=f.widget.value.getFocusedItem(),h=this.editor.getPosition(),b=this.editor.getModel();if(!i||!h||!b)return;return ju.fromSuggestion(f,b,h,i.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){hn.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){hn.get(this.editor)?.forceRenderingAbove()}}class ju{static fromSuggestion(f,i,h,b,v){let{insertText:w}=b.completion,x=!1;if(b.completion.insertTextRules&4){let E=new co().parse(w);if(E.children.length<100)Xl.adjustWhitespace(i,h,!0,E);w=E.toString(),x=!0}let I=f.getOverwriteInfo(b,v);return new ju(t.fromPositions(h.delta(0,-I.overwriteBefore),h.delta(0,Math.max(I.overwriteAfter,0))),w,b.completion.kind,x,b.container.incomplete??!1)}constructor(f,i,h,b,v){this.range=f,this.insertText=i,this.completionItemKind=h,this.isSnippetText=b,this.listIncomplete=v}equals(f){return this.range.equalsRange(f.range)&&this.insertText===f.insertText&&this.completionItemKind===f.completionItemKind&&this.isSnippetText===f.isSnippetText}toSelectedSuggestionInfo(){return new Lv(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new ft(this.range,this.insertText)}}function aO(f,i){if(f===i)return!0;if(!f||!i)return!1;return f.equals(i)}class yC extends n{constructor(f,i,h){super();this._editorObs=f,this._handleSuggestAccepted=i,this._suggestControllerPreselector=h,this._suggestWidgetAdaptor=this._register(new oD(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),(b)=>this._editorObs.forceUpdate((v)=>{this._handleSuggestAccepted(b)}))),this.selectedItem=Ne(this,(b)=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate((v)=>b(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class xC{constructor(f,i){this.lineNumber=f,this.columnRange=i}}class sf{constructor(f,i){if(this.startColumn=f,this.endColumnExclusive=i,f>i)throw new H(`startColumn ${f} cannot be after endColumnExclusive ${i}`)}toRange(f){return new t(f,this.startColumn,f,this.endColumnExclusive)}equals(f){return this.startColumn===f.startColumn&&this.endColumnExclusive===f.endColumnExclusive}toZeroBasedOffsetRange(){return new z(this.startColumn-1,this.endColumnExclusive-1)}}class ba{static fromLineTokens(f){let i=[];for(let h=0;h<f.getCount();h++)i.push(new IC(f.getTokenText(h),f.getMetadata(h)));return ba.create(i)}static create(f){return new ba(f)}constructor(f){this._tokenInfo=f}toLineTokens(f){return St.createFromTextAndMetadata(this.map((i,h)=>({text:h.text,metadata:h.metadata})),f)}map(f){let i=[],h=0;for(let b of this._tokenInfo){let v=new z(h,h+b.text.length);i.push(f(v,b)),h+=b.text.length}return i}slice(f){let i=[],h=0;for(let b of this._tokenInfo){let v=h,w=v+b.text.length;if(w>f.start){if(v>=f.endExclusive)break;let x=Math.max(0,f.start-v),I=Math.max(0,w-f.endExclusive);i.push(new IC(b.text.slice(x,b.text.length-I),b.metadata))}h+=b.text.length}return ba.create(i)}append(f){let i=this._tokenInfo.concat(f._tokenInfo);return ba.create(i)}}class IC{constructor(f,i){this.text=f,this.metadata=i}}var dO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},lO=function(f,i){return function(h,b){i(h,b,f)}};class df{static from(f){if(!f)return;return new df(f.icon)}constructor(f=y.warning){this.icon=f}}var sD="ghost-text",Sa=class f extends n{constructor(i,h,b,v){super();if(this._editor=i,this._data=h,this._languageService=v,this._isDisposed=j(this,!1),this._warningState=u((w)=>{let x=this._data.read(w),I=x?.warning;if(!x||!I)return;let E=x.ghostText;return{lineNumber:E.lineNumber,position:new s(E.lineNumber,E.parts[0].column),icon:I.icon}}),this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=u(this,(w)=>{let x=this._data.read(w);if(!x)return;return x.ghostText.parts.map((T)=>T.lines.map((O)=>O.line).join("")).join("").replace(/\s/g,"").length}),this._extraClassNames=u(this,(w)=>{let x=this._extraClasses.slice();if(this._warningState.read(w))x.push("warning");let I=this._nonWhitespaceCount.read(w);if(this._highlightShortText&&I&&I<3)x.push("short-text");else if(this._useSyntaxHighlighting.read(w))x.push("syntax-highlighted");return x.map((T)=>` ${T}`).join("")}),this._state=u(this,(w)=>{if(this._isDisposed.read(w))return;let x=this._data.read(w);if(!x)return;let I=this._editorObs.model.read(w);if(!I)return;let E=x.ghostText,T=E instanceof Fu?E.columnRange:void 0,O=this._useSyntaxHighlighting.read(w),A=this._extraClassNames.read(w),{inlineTexts:Y,additionalLines:ee,hiddenRange:te,additionalLinesOriginalSuffix:oe}=cO(E,I,sD+A),ne=I.getLineContent(E.lineNumber),re=new dr(Y.map((qe)=>Zn.insert(qe.column-1,qe.text))),he=O?I.tokenization.tokenizeLinesAt(E.lineNumber,[re.apply(ne),...ee.map((qe)=>qe.content)]):void 0,ue=re.getNewRanges(),Ie=Y.map((qe,Oe)=>({...qe,tokens:he?.[0]?.getTokensInRange(ue[Oe])})),Te=ee.map((qe,Oe)=>{let Ze=he?.[Oe+1]??St.createEmpty(qe.content,this._languageService.languageIdCodec);if(Oe===ee.length-1&&oe){let Qe=ba.fromLineTokens(I.tokenization.getLineTokens(oe.lineNumber)).slice(oe.columnRange.toZeroBasedOffsetRange());Ze=ba.fromLineTokens(Ze).append(Qe).toLineTokens(Ze.languageIdCodec)}return new lD(Ze,qe.decorations)}),ae=this._editor.getSelection()?.getStartPosition().column,xe=Ie.filter((qe)=>qe.text!==""),Me=xe.length!==0,He=new ic((Me?xe[0].column:1)-ae,Me?0:ee.findIndex((qe)=>qe.content!=="")+1,Me?1:0,ee.length+(Me?1:0),0,Dg(xe.map((qe)=>qe.text.length))+Dg(Te.map((qe)=>qe.content.getTextLength())),xe.length+(ee.length>0?1:0),xe.length>1&&Te.length===0?xe.every((qe)=>qe.text===xe[0].text):void 0);return{replacedRange:T,inlineTexts:Ie,additionalLines:Te,hiddenRange:te,lineNumber:E.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(w),targetTextModel:I,syntaxHighlightingEnabled:O,telemetryViewData:He,handleInlineCompletionShown:x.handleInlineCompletionShown}}),this._decorations=u(this,(w)=>{let x=this._state.read(w);if(!x)return[];let I=[],E=this._extraClassNames.read(w);if(x.replacedRange)I.push({range:x.replacedRange.toRange(x.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+E,description:"GhostTextReplacement"}});if(x.hiddenRange)I.push({range:x.hiddenRange.toRange(x.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(let T of x.inlineTexts){let O="";if(this._highlightShortText&&T.text.length<5)O+=" short-text";I.push({range:t.fromPositions(new s(x.lineNumber,T.column)),options:{description:"ghost-text-decoration",after:{content:T.text,tokens:T.tokens,inlineClassName:(T.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+E+O+T.lineDecorations.map((A)=>" "+A.className).join(" "),cursorStops:ts.Left,attachedData:new af(this)},showIfCollapsed:!0}})}return I}),this.isHovered=u(this,(w)=>{if(this._isDisposed.read(w))return!1;return this._isInlineTextHovered.read(w)||this._additionalLinesWidget.isHovered.read(w)}),this._extraClasses=b.extraClasses??[],this._isClickable=b.isClickable??!1,this._shouldKeepCursorStable=b.shouldKeepCursorStable??!1,this._minReservedLineCount=b.minReservedLineCount??Re(0),this._useSyntaxHighlighting=b.useSyntaxHighlighting??Re(!0),this._highlightShortText=b.highlightShortSuggestions??!1,this._editorObs=rt(this._editor),this._additionalLinesWidget=this._register(new dD(this._editor,xn({owner:this,equalsFn:ed(Oh())},(w)=>{let x=this._state.read(w);return x?new aD(x.lineNumber,x.additionalLines,x.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered((w)=>w.target.type===6&&w.target.detail.injectedText?.options.attachedData instanceof af&&w.target.detail.injectedText.options.attachedData.owner===this,this._store),this._register(R(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this._decorations)),this._isClickable)this._register(this._additionalLinesWidget.onDidClick((w)=>this._onDidClick.fire(w))),this._register(this._editor.onMouseUp((w)=>{if(w.target.type!==6)return;let x=w.target.detail.injectedText?.options.attachedData;if(x instanceof af&&x.owner===this)this._onDidClick.fire(w.event)}));this._register(W((w)=>{let x=this._state.read(w);x?.handleInlineCompletionShown(x.telemetryViewData)})),this._register(zn((w,x)=>{return}))}static getWarningWidgetContext(i){let h=i.ghostTextViewWarningWidgetData;if(h)return h;else if(i.parentElement)return this.getWarningWidgetContext(i.parentElement);return}ownsViewZone(i){return this._additionalLinesWidget.viewZoneId===i}};Sa=dO([lO(3,yt)],Sa);class af{constructor(f){this.owner=f}}function cO(f,i,h){let b=[],v=[];function w(A,Y){if(v.length>0){let ee=v[v.length-1];if(Y)ee.decorations.push(new Mi(ee.content.length+1,ee.content.length+1+A[0].line.length,Y,0));ee.content+=A[0].line,A=A.slice(1)}for(let ee of A)v.push({content:ee.line,decorations:Y?[new Mi(1,ee.line.length+1,Y,0),...ee.lineDecorations]:[...ee.lineDecorations]})}let x=i.getLineContent(f.lineNumber),I=void 0,E=0;for(let A of f.parts){let Y=A.lines;if(I===void 0)b.push({column:A.column,text:Y[0].line,preview:A.preview,lineDecorations:Y[0].lineDecorations}),Y=Y.slice(1);else w([{line:x.substring(E,A.column-1),lineDecorations:[]}],void 0);if(Y.length>0){if(w(Y,h),I===void 0&&A.column<=x.length)I=A.column}E=A.column-1}let T=void 0;if(I!==void 0)T=new xC(f.lineNumber,new sf(E+1,x.length+1));let O=I!==void 0?new sf(I,x.length+1):void 0;return{inlineTexts:b,additionalLines:v,hiddenRange:O,additionalLinesOriginalSuffix:T}}class aD{constructor(f,i,h){this.lineNumber=f,this.additionalLines=i,this.minReservedLineCount=h}equals(f){if(this.lineNumber!==f.lineNumber)return!1;if(this.minReservedLineCount!==f.minReservedLineCount)return!1;return et(this.additionalLines,f.additionalLines,Oh())}}class dD extends n{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}constructor(f,i,h,b){super();if(this._editor=f,this._lines=i,this._shouldKeepCursorStable=h,this._isClickable=b,this._viewZoneHeight=j("viewZoneHeight",void 0),this.editorOptionsChanged=fi("editorOptionChanged",k.filter(this._editor.onDidChangeConfiguration,(v)=>v.hasChanged(40)||v.hasChanged(133)||v.hasChanged(113)||v.hasChanged(108)||v.hasChanged(60)||v.hasChanged(59)||v.hasChanged(75)||v.hasChanged(176))),this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new le),this.isHovered=rt(this._editor).isTargetHovered((v)=>nD(v.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof Pl&&this._shouldKeepCursorStable)this._register(this._editor.onBeforeExecuteEdit((v)=>this.hasBeenAccepted=v.source==="inlineCompletionAccept"));this._register(W((v)=>{let w=this._lines.read(v);if(this.editorOptionsChanged.read(v),w)this.hasBeenAccepted=!1,this.updateLines(w.lineNumber,w.additionalLines,w.minReservedLineCount);else this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones((f)=>{this.removeActiveViewZone(f)})}updateLines(f,i,h){let b=this._editor.getModel();if(!b)return;let{tabSize:v}=b.getOptions();rt(this._editor).transaction((w)=>{this._editor.changeViewZones((x)=>{let I=new d;this.removeActiveViewZone(x);let E=Math.max(i.length,h);if(E>0){let T=document.createElement("div");if(hO(T,v,i,this._editor.getOptions(),this._isClickable),this._isClickable)I.add(c(T,"mousedown",(O)=>{O.preventDefault()})),I.add(c(T,"click",(O)=>{if(nD(O.target))this._onDidClick.fire(new Jn(B(O),O))}));this.addViewZone(x,f,E,T)}this._viewZoneListener.value=I})})}addViewZone(f,i,h,b){let v=f.addZone({afterLineNumber:i,heightInLines:h,domNode:b,afterColumnAffinity:1,onComputedHeight:(w)=>{this._viewZoneHeight.set(w,void 0)}});this.keepCursorStable(i,h),this._viewZoneInfo={viewZoneId:v,heightInLines:h,lineNumber:i}}removeActiveViewZone(f){if(this._viewZoneInfo){if(f.removeZone(this._viewZoneInfo.viewZoneId),!this.hasBeenAccepted)this.keepCursorStable(this._viewZoneInfo.lineNumber,-this._viewZoneInfo.heightInLines);this._viewZoneInfo=void 0,this._viewZoneHeight.set(void 0,void 0)}}keepCursorStable(f,i){if(!this._shouldKeepCursorStable)return;let h=this._editor.getSelection()?.getStartPosition()?.lineNumber;if(h!==void 0&&f<h)this._editor.setScrollTop(this._editor.getScrollTop()+i*this._editor.getOption(75))}}function nD(f){return Ee(f)&&f.classList.contains(sD)}class lD{constructor(f,i){this.content=f,this.decorations=i}equals(f){if(!this.content.equals(f.content))return!1;return Mi.equalsArr(this.decorations,f.decorations)}}function hO(f,i,h,b,v){let w=b.get(40),x=b.get(133),I="none",E=b.get(108),T=b.get(60),O=b.get(59),A=b.get(75),Y=b.get(176)==="twoCells",ee="suggest-preview-text";if(v)ee+=" clickable";let te=new es(1e4);te.appendString(`<div class="${ee}">`);for(let re=0,he=h.length;re<he;re++){let ue=h[re],Ie=ue.content;te.appendString('<div class="view-line'),te.appendString('" style="top:'),te.appendString(String(re*A)),te.appendString('px;width:1000000px;">');let Te=Ie.getLineContent(),ae=Xc(Te),xe=Va(Te);bc(new ns(O.isMonospace&&!w,O.canUseHalfwidthRightwardsArrow,Te,!1,ae,xe,0,Ie,ue.decorations.slice(),i,0,O.spaceWidth,O.middotWidth,O.wsmiddotWidth,x,"none",E,T!==fo.OFF,null,null,0,!1,Y),te),te.appendString("</div>")}te.appendString("</div>"),pn(f,O);let oe=te.build(),ne=rD?rD.createHTML(oe):oe;f.innerHTML=ne}var rD=Sr("editorGhostText",{createHTML:(f)=>f});class Ca{constructor(f,i){this.width=f,this.height=i}toString(){return`(${this.width},${this.height})`}transpose(){return new Ca(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class pt{static fromPoints(f,i){return new pt(f.x,f.y,i.x,i.y)}static fromPointSize(f,i){return new pt(f.x,f.y,f.x+i.x,f.y+i.y)}static fromLeftTopRightBottom(f,i,h,b){return new pt(f,i,h,b)}static fromLeftTopWidthHeight(f,i,h,b){return new pt(f,i,f+h,i+b)}static fromRanges(f,i){return new pt(f.start,i.start,f.endExclusive,i.endExclusive)}static hull(f){let{MAX_SAFE_INTEGER:i,MAX_SAFE_INTEGER:h,MIN_SAFE_INTEGER:b,MIN_SAFE_INTEGER:v}=Number;for(let w of f)i=Math.min(i,w.left),h=Math.min(h,w.top),b=Math.max(b,w.right),v=Math.max(v,w.bottom);return new pt(i,h,b,v)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(f,i,h,b){if(this.left=f,this.top=i,this.right=h,this.bottom=b,f>h)throw new H("Invalid arguments: Horizontally offset by "+(f-h));if(i>b)throw new H("Invalid arguments: Vertically offset by "+(i-b))}withMargin(f,i,h,b){let v,w,x,I;if(i===void 0&&h===void 0&&b===void 0)v=w=x=I=f;else if(h===void 0&&b===void 0)v=w=i,x=I=f;else v=b,w=i,x=f,I=h;return new pt(this.left-v,this.top-x,this.right+w,this.bottom+I)}intersectVertical(f){let i=Math.max(this.top,f.start),h=Math.min(this.bottom,f.endExclusive);return new pt(this.left,i,this.right,Math.max(i,h))}intersectHorizontal(f){let i=Math.max(this.left,f.start),h=Math.min(this.right,f.endExclusive);return new pt(i,this.top,Math.max(i,h),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(f){let i=Math.max(this.left,f.left),h=Math.min(this.right,f.right),b=Math.max(this.top,f.top),v=Math.min(this.bottom,f.bottom);if(i>h||b>v)return;return new pt(i,b,h,v)}containsRect(f){return this.left<=f.left&&this.top<=f.top&&this.right>=f.right&&this.bottom>=f.bottom}containsPoint(f){return this.left<=f.x&&this.top<=f.y&&this.right>=f.x&&this.bottom>=f.y}moveToBeContainedIn(f){let i=this.width,h=this.height,b=this.left,v=this.top;if(b<f.left)b=f.left;else if(b+i>f.right)b=f.right-i;if(v<f.top)v=f.top;else if(v+h>f.bottom)v=f.bottom-h;return new pt(b,v,b+i,v+h)}withWidth(f){return new pt(this.left,this.top,this.left+f,this.bottom)}withHeight(f){return new pt(this.left,this.top,this.right,this.top+f)}withTop(f){return new pt(this.left,f,this.right,this.bottom)}withLeft(f){return new pt(f,this.top,this.right,this.bottom)}translateX(f){return new pt(this.left+f,this.top,this.right+f,this.bottom)}translateY(f){return new pt(this.left,this.top+f,this.right,this.bottom+f)}getLeftBottom(){return new oi(this.left,this.bottom)}getRightBottom(){return new oi(this.right,this.bottom)}getRightTop(){return new oi(this.right,this.top)}toStyles(){return{position:"absolute",left:`${this.left}px`,top:`${this.top}px`,width:`${this.width}px`,height:`${this.height}px`}}withHorizontalRange(f){return new pt(f.start,this.top,f.endExclusive,this.bottom)}getSize(){return new Ca(this.width,this.height)}}class dc{constructor(f,i,h,b=null){this.startLineNumbers=f,this.endLineNumbers=i,this.lastLineRelativePosition=h,this.showEndForLine=b}equals(f){return!!f&&this.lastLineRelativePosition===f.lastLineRelativePosition&&this.showEndForLine===f.showEndForLine&&et(this.startLineNumbers,f.startLineNumbers)&&et(this.endLineNumbers,f.endLineNumbers)}static get Empty(){return new dc([],[],0)}}var cD=Sr("stickyScrollViewLayer",{createHTML:(f)=>f}),LC="data-sticky-line-index",hD="data-sticky-is-line",uO="data-sticky-is-line-number",uD="data-sticky-is-folding-icon";class EC extends n{get height(){return this._height}constructor(f){super();this._foldingIconStore=this._register(new d),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new r),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=f,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",f instanceof Zi),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);let i=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((h)=>{if(h.hasChanged(131))i()})),this._register(this._editor.onDidScrollChange((h)=>{if(h.scrollLeftChanged)i();if(h.scrollWidthChanged)this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{i(),this._updateWidgetWidth()})),i(),this._register(this._editor.onDidLayoutChange((h)=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(f){return this._renderedStickyLines.find((i)=>i.lineNumber===f)}getCurrentLines(){return this._lineNumbers}setState(f,i,h){let b=!this._state&&!f,v=this._state&&this._state.equals(f);if(h===void 0&&(b||v))return;let w=this._findRenderingData(f),x=this._lineNumbers;this._lineNumbers=w.lineNumbers,this._lastLineRelativePosition=w.lastLineRelativePosition;let I=this._findIndexToRebuildFrom(x,this._lineNumbers,h);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,i,I),this._state=f}_findRenderingData(f){if(!f)return{lineNumbers:[],lastLineRelativePosition:0};let i=[...f.startLineNumbers];if(f.showEndForLine!==null)i[f.showEndForLine]=f.endLineNumbers[f.showEndForLine];let h=0;for(let b=0;b<i.length;b++){let v=new s(i[b],1),w=this._editor._getViewModel();if(w&&v.lineNumber<=w.getLineCount())h+=this._editor.getLineHeightForPosition(new s(i[b],1))}if(h===0)return{lineNumbers:[],lastLineRelativePosition:0};return{lineNumbers:i,lastLineRelativePosition:f.lastLineRelativePosition}}_findIndexToRebuildFrom(f,i,h){if(i.length===0)return 0;if(h!==void 0)return h;let b=i.findIndex((v)=>!f.includes(v));return b===-1?0:b}_updateWidgetWidth(){let f=this._editor.getLayoutInfo(),i=f.contentLeft;this._lineNumbersDomNode.style.width=`${i}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-f.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${f.width-f.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(f){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${f?0.5:0}s`)}_setFoldingIconsVisibility(f){for(let i of this._renderedStickyLines){let h=i.foldingIcon;if(!h)continue;h.setVisible(f?!0:h.isCollapsed)}}async _renderRootNode(f,i,h,b){let v=this._editor._getViewModel();if(!v){this._clearWidget();return}if(f.length===0){this._clearWidget();return}let w=[],x=f[f.length-1],I=0;for(let T=0;T<this._renderedStickyLines.length;T++)if(T<b){let O=this._renderedStickyLines[T];w.push(this._updatePosition(O,I,O.lineNumber===x)),I+=O.height}else{let O=this._renderedStickyLines[T];O.lineNumberDomNode.remove(),O.lineDomNode.remove()}let E=this._editor.getLayoutInfo();for(let T=b;T<f.length;T++){let O=f[T];if(O>v.getLineCount())continue;let A=this._renderChildNode(v,T,O,I,x===O,h,E);I+=A.height,this._linesDomNode.appendChild(A.lineDomNode),this._lineNumbersDomNode.appendChild(A.lineNumberDomNode),w.push(A)}if(h)this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin);this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map((T)=>T.scrollWidth))+E.verticalScrollbarWidth,this._renderedStickyLines=w,this._setHeight(I+i),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let f=0;f<this._renderedStickyLines.length;f++){let i=this._renderedStickyLines[f];i.lineNumberDomNode.remove(),i.lineDomNode.remove()}this._setHeight(0)}_setHeight(f){if(this._height===f)return;if(this._height=f,this._height===0)this._rootDomNode.style.display="none";else this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${this._height}px`,this._linesDomNodeScrollable.style.height=`${this._height}px`,this._rootDomNode.style.height=`${this._height}px`;this._onDidChangeStickyScrollHeight.fire({height:this._height})}_setFoldingHoverListeners(){if(this._foldingIconStore.clear(),this._editor.getOption(126)!=="mouseover")return;this._foldingIconStore.clear(),this._foldingIconStore.add(c(this._lineNumbersDomNode,S.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(c(this._lineNumbersDomNode,S.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))}_renderChildNode(f,i,h,b,v,w,x){let I=new gD(this._editor,f,x,w,this._isOnGlyphMargin,i,h);return this._updatePosition(I,b,v)}_updatePosition(f,i,h){let{lineDomNode:b,lineNumberDomNode:v}=f;if(h){b.style.zIndex="0",v.style.zIndex="0";let x=`${i+this._lastLineRelativePosition+(f.foldingIcon?.isCollapsed?1:0)}px`;b.style.top=x,v.style.top=x}else b.style.zIndex="1",v.style.zIndex="1",b.style.top=`${i}px`,v.style.top=`${i}px`;return f}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(f){if(0<=f&&f<this._renderedStickyLines.length)this._renderedStickyLines[f].lineDomNode.focus()}getEditorPositionFromNode(f){if(!f||f.children.length>0)return null;let i=this._getRenderedStickyLineFromChildDomNode(f);if(!i)return null;let h=Tu(i.characterMapping,f,0);return new s(i.lineNumber,h)}getLineNumberFromChildDomNode(f){return this._getRenderedStickyLineFromChildDomNode(f)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(f){let i=this.getLineIndexFromChildDomNode(f);if(i===null||i<0||i>=this._renderedStickyLines.length)return null;return this._renderedStickyLines[i]}getLineIndexFromChildDomNode(f){let i=this._getAttributeValue(f,LC);return i?parseInt(i,10):null}isInStickyLine(f){return this._getAttributeValue(f,hD)!==void 0}isInFoldingIconDomNode(f){return this._getAttributeValue(f,uD)!==void 0}_getAttributeValue(f,i){while(f&&f!==this._rootDomNode){let h=f.getAttribute(i);if(h!==null)return h;f=f.parentElement}return}}class gD{constructor(f,i,h,b,v,w,x){this.index=w,this.lineNumber=x;let I=i.coordinatesConverter.convertModelPositionToViewPosition(new s(x,1)).lineNumber,E=i.getViewLineRenderingData(I),T=f.getOption(76),O=f.getOption(117).verticalScrollbarSize,A;try{A=Mi.filter(E.inlineDecorations,I,E.minColumn,E.maxColumn)}catch(xe){A=[]}let Y=f.getLineHeightForPosition(new s(x,1)),ee=i.getTextDirection(x),te=f.getOption(59),oe=new ns(!0,!0,E.content,E.continuesWithWrappedLine,E.isBasicASCII,E.containsRTL,0,E.tokens,A,E.tabSize,E.startVisibleColumn,te.spaceWidth,1,1,500,"none",!0,!0,null,ee,O,!1,f.getOption(176)==="twoCells"),ne=new es(2000),re=bc(oe,ne);this.characterMapping=re.characterMapping;let he;if(cD)he=cD.createHTML(ne.build());else he=ne.build();let ue=document.createElement("span");ue.setAttribute(LC,String(w)),ue.setAttribute(hD,""),ue.setAttribute("role","listitem"),ue.tabIndex=0,ue.className="sticky-line-content",ue.classList.add(`stickyLine${x}`),ue.style.lineHeight=`${Y}px`,ue.innerHTML=he;let Ie=document.createElement("span");Ie.setAttribute(LC,String(w)),Ie.setAttribute(uO,""),Ie.className="sticky-line-number",Ie.style.lineHeight=`${Y}px`;let Te=h.contentLeft;Ie.style.width=`${Te}px`;let ae=document.createElement("span");if(T.renderType===1||T.renderType===3&&x%10===0)ae.innerText=x.toString();else if(T.renderType===2)ae.innerText=Math.abs(x-f.getPosition().lineNumber).toString();if(ae.className="sticky-line-number-inner",ae.style.width=`${h.lineNumbersWidth}px`,ae.style.paddingLeft=`${h.lineNumbersLeft}px`,Ie.appendChild(ae),this.foldingIcon=this._renderFoldingIconForLine(f,b,x,Y,v),this.foldingIcon)Ie.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${h.lineNumbersWidth+h.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${Y}px`;f.applyFontInfo(ue),f.applyFontInfo(Ie),Ie.style.lineHeight=`${Y}px`,ue.style.lineHeight=`${Y}px`,Ie.style.height=`${Y}px`,ue.style.height=`${Y}px`,this.scrollWidth=ue.scrollWidth,this.lineDomNode=ue,this.lineNumberDomNode=Ie,this.height=Y}_renderFoldingIconForLine(f,i,h,b,v){let w=f.getOption(126);if(!i||w==="never")return;let x=i.regions,I=x.findRange(h),E=x.getStartLineNumber(I);if(h!==E)return;let O=x.isCollapsed(I),A=new pD(O,E,x.getEndLineNumber(I),b);return A.setVisible(v?!0:O||w==="always"),A.domNode.setAttribute(uD,""),A}}class pD{constructor(f,i,h,b){this.isCollapsed=f,this.foldingStartLine=i,this.foldingEndLine=h,this.dimension=b,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${b}px`,this.domNode.style.lineHeight=`${b}px`,this.domNode.className=J.asClassName(f?sh:rh)}setVisible(f){this.domNode.style.cursor=f?"pointer":"default",this.domNode.style.opacity=f?"1":"0"}}var gO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},DC=function(f,i){return function(h,b){i(h,b,f)}};class $d{remove(){this.parent?.children.delete(this.id)}static findId(f,i){let h;if(typeof f==="string")h=`${i.id}/${f}`;else if(h=`${i.id}/${f.name}`,i.children.get(h)!==void 0)h=`${i.id}/${f.name}_${f.range.startLineNumber}_${f.range.startColumn}`;let b=h;for(let v=0;i.children.get(b)!==void 0;v++)b=`${h}_${v}`;return b}static empty(f){return f.children.size===0}}class Gu extends $d{constructor(f,i,h){super();this.id=f,this.parent=i,this.symbol=h,this.children=new Map}}class lf extends $d{constructor(f,i,h,b){super();this.id=f,this.parent=i,this.label=h,this.order=b,this.children=new Map}}class Br extends $d{static create(f,i,h){let b=new Ve(h),v=new Br(i.uri),w=f.ordered(i),x=w.map((E,T)=>{let O=$d.findId(`provider_${T}`,v),A=new lf(O,v,E.displayName??"Unknown Outline Provider",T);return Promise.resolve(E.provideDocumentSymbols(i,b.token)).then((Y)=>{for(let ee of Y||[])Br._makeOutlineElement(ee,A);return A},(Y)=>(gt(Y),A)).then((Y)=>{if(!$d.empty(Y))v._groups.set(O,Y);else Y.remove()})}),I=f.onDidChange(()=>{let E=f.ordered(i);if(!et(E,w))b.cancel()});return Promise.all(x).then(()=>{if(b.token.isCancellationRequested&&!h.isCancellationRequested)return Br.create(f,i,h);else return v._compact()}).finally(()=>{b.dispose(),I.dispose(),b.dispose()})}static _makeOutlineElement(f,i){let h=$d.findId(f,i),b=new Gu(h,i,f);if(f.children)for(let v of f.children)Br._makeOutlineElement(v,b);i.children.set(b.id,b)}constructor(f){super();this.uri=f,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let f=0;for(let[i,h]of this._groups)if(h.children.size===0)this._groups.delete(i);else f+=1;if(f!==1)this.children=this._groups;else{let i=$e.first(this._groups.values());for(let[,h]of i.children)h.parent=this,this.children.set(h.id,h)}return this}getTopLevelSymbols(){let f=[];for(let i of this.children.values())if(i instanceof Gu)f.push(i.symbol);else f.push(...$e.map(i.children.values(),(h)=>h.symbol));return f.sort((i,h)=>t.compareRangesUsingStarts(i.range,h.range))}asListOfDocumentSymbols(){let f=this.getTopLevelSymbols(),i=[];return Br._flattenDocumentSymbols(i,f,""),i.sort((h,b)=>s.compare(t.getStartPosition(h.range),t.getStartPosition(b.range))||s.compare(t.getEndPosition(b.range),t.getEndPosition(h.range)))}static _flattenDocumentSymbols(f,i,h){for(let b of i)if(f.push({kind:b.kind,tags:b.tags,name:b.name,detail:b.detail,containerName:b.containerName||h,range:b.range,selectionRange:b.selectionRange,children:void 0}),b.children)Br._flattenDocumentSymbols(f,b.children,b.name)}}var pu=Q("IOutlineModelService"),RC=class f{constructor(i,h,b){this._languageFeaturesService=i,this._disposables=new d,this._cache=new Oi(15,0.7),this._debounceInformation=h.for(i.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(b.onModelRemoved((v)=>{this._cache.delete(v.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(i,h){let b=this._languageFeaturesService.documentSymbolProvider,v=b.ordered(i),w=this._cache.get(i.id);if(!w||w.versionId!==i.getVersionId()||!et(w.provider,v)){let I=new Ve;w={versionId:i.getVersionId(),provider:v,promiseCnt:0,source:I,promise:Br.create(b,i,I.token),model:void 0},this._cache.set(i.id,w);let E=Date.now();w.promise.then((T)=>{w.model=T,this._debounceInformation.update(i,Date.now()-E)}).catch((T)=>{this._cache.delete(i.id)})}if(w.model)return w.model;w.promiseCnt+=1;let x=h.onCancellationRequested(()=>{if(--w.promiseCnt===0)w.source.cancel(),this._cache.delete(i.id)});try{return await w.promise}finally{x.dispose()}}};RC=gO([DC(0,V),DC(1,Ji),DC(2,_t)],RC);ve(pu,RC,1);class Ia{constructor(f,i){this.startLineNumber=f,this.endLineNumber=i}}class lc{constructor(f,i,h){this.range=f,this.children=i,this.parent=h}}class cf{constructor(f,i,h,b){this.uri=f,this.version=i,this.element=h,this.outlineProviderId=b}}var uf=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Zu=function(f,i){return function(h,b){i(h,b,f)}},qu;(function(f){f.OUTLINE_MODEL="outlineModel",f.FOLDING_PROVIDER_MODEL="foldingProviderModel",f.INDENTATION_MODEL="indentationModel"})(qu||(qu={}));var La;(function(f){f[f.VALID=0]="VALID",f[f.INVALID=1]="INVALID",f[f.CANCELED=2]="CANCELED"})(La||(La={}));var hf=class f extends n{constructor(i,h,b,v){super();switch(this._editor=i,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Ii(300)),this._updateOperation=this._register(new d),this._editor.getOption(131).defaultModel){case qu.OUTLINE_MODEL:this._modelProviders.push(new kC(this._editor,v));case qu.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new NC(this._editor,h,v));case qu.INDENTATION_MODEL:this._modelProviders.push(new TC(this._editor,b));break}}dispose(){this._modelProviders.forEach((i)=>i.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){if(this._modelPromise)this._modelPromise.cancel(),this._modelPromise=null}async update(i){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(let h of this._modelProviders){let{statusPromise:b,modelPromise:v}=h.computeStickyModel(i);this._modelPromise=v;let w=await b;if(this._modelPromise!==v)return null;switch(w){case La.CANCELED:return this._updateOperation.clear(),null;case La.VALID:return h.stickyModel}}return null}).catch((h)=>(Z(h),null))}};hf=uf([Zu(2,D),Zu(3,V)],hf);class OC extends n{constructor(f){super();this._editor=f,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,La.INVALID}computeStickyModel(f){if(f.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};let i=Wt((h)=>this.createModelFromProvider(h));return{statusPromise:i.then((h)=>{if(!this.isModelValid(h))return this._invalid();if(f.isCancellationRequested)return La.CANCELED;return this._stickyModel=this.createStickyModel(f,h),La.VALID}).then(void 0,(h)=>(Z(h),La.CANCELED)),modelPromise:i}}isModelValid(f){return!0}isProviderValid(){return!0}}var kC=class f extends OC{constructor(i,h){super(i);this._languageFeaturesService=h}createModelFromProvider(i){return Br.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),i)}createStickyModel(i,h){let{stickyOutlineElement:b,providerID:v}=this._stickyModelFromOutlineModel(h,this._stickyModel?.outlineProviderId),w=this._editor.getModel();return new cf(w.uri,w.getVersionId(),b,v)}isModelValid(i){return i&&i.children.size>0}_stickyModelFromOutlineModel(i,h){let b;if($e.first(i.children.values())instanceof lf){let I=$e.find(i.children.values(),(E)=>E.id===h);if(I)b=I.children;else{let E="",T=-1,O=void 0;for(let[A,Y]of i.children.entries()){let ee=this._findSumOfRangesOfGroup(Y);if(ee>T)O=Y,T=ee,E=Y.id}h=E,b=O.children}}else b=i.children;let v=[],w=Array.from(b.values()).sort((I,E)=>{let T=new Ia(I.symbol.range.startLineNumber,I.symbol.range.endLineNumber),O=new Ia(E.symbol.range.startLineNumber,E.symbol.range.endLineNumber);return this._comparator(T,O)});for(let I of w)v.push(this._stickyModelFromOutlineElement(I,I.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new lc(void 0,v,void 0),providerID:h}}_stickyModelFromOutlineElement(i,h){let b=[];for(let w of i.children.values())if(w.symbol.selectionRange.startLineNumber!==w.symbol.range.endLineNumber)if(w.symbol.selectionRange.startLineNumber!==h)b.push(this._stickyModelFromOutlineElement(w,w.symbol.selectionRange.startLineNumber));else for(let x of w.children.values())b.push(this._stickyModelFromOutlineElement(x,w.symbol.selectionRange.startLineNumber));b.sort((w,x)=>this._comparator(w.range,x.range));let v=new Ia(i.symbol.selectionRange.startLineNumber,i.symbol.range.endLineNumber);return new lc(v,b,void 0)}_comparator(i,h){if(i.startLineNumber!==h.startLineNumber)return i.startLineNumber-h.startLineNumber;else return h.endLineNumber-i.endLineNumber}_findSumOfRangesOfGroup(i){let h=0;for(let b of i.children.values())h+=this._findSumOfRangesOfGroup(b);if(i instanceof Gu)return h+i.symbol.range.endLineNumber-i.symbol.selectionRange.startLineNumber;else return h}};kC=uf([Zu(1,V)],kC);class MC extends OC{constructor(f){super(f);this._foldingLimitReporter=this._register(new xp(f))}createStickyModel(f,i){let h=this._fromFoldingRegions(i),b=this._editor.getModel();return new cf(b.uri,b.getVersionId(),h,void 0)}isModelValid(f){return f!==null}_fromFoldingRegions(f){let i=f.length,h=[],b=new lc(void 0,[],void 0);for(let v=0;v<i;v++){let w=f.getParentIndex(v),x;if(w!==-1)x=h[w];else x=b;let I=new lc(new Ia(f.getStartLineNumber(v),f.getEndLineNumber(v)+1),[],x);x.children.push(I),h.push(I)}return b}}var TC=class f extends MC{constructor(i,h){super(i);this._languageConfigurationService=h,this.provider=this._register(new cl(i.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(i){return this.provider.compute(i)}};TC=uf([Zu(1,st)],TC);var NC=class f extends MC{constructor(i,h,b){super(i);this._languageFeaturesService=b,this.provider=this._register(new le),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(i,h)})),this._updateProvider(i,h)}_updateProvider(i,h){let b=Dr.getFoldingRangeProviders(this._languageFeaturesService,i.getModel());if(b.length===0)return;this.provider.value=new ul(i.getModel(),b,h,this._foldingLimitReporter,void 0)}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(i){return this.provider.value?.compute(i)??null}};NC=uf([Zu(2,V)],NC);var pO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},mD=function(f,i){return function(h,b){i(h,b,f)}};class fD{constructor(f,i,h,b){this.startLineNumber=f,this.endLineNumber=i,this.top=h,this.height=b}}var pf=class f extends n{constructor(i,h,b){super();this._languageFeaturesService=h,this._languageConfigurationService=b,this._onDidChangeStickyScroll=this._register(new r),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=i,this._sessionStore=this._register(new d),this._updateSoon=this._register(new _e(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(131))this.readConfiguration()})),this.readConfiguration()}readConfiguration(){if(this._sessionStore.clear(),!this._editor.getOption(131).enabled)return;this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(R(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update()}getVersionId(){return this._model?.version}updateStickyModelProvider(){if(this._stickyModelProvider?.dispose(),this._stickyModelProvider=null,this._editor.hasModel())this._stickyModelProvider=new hf(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService)}async update(){this._cts?.dispose(!0),this._cts=new Ve,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(i){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}let h=await this._stickyModelProvider.update(i);if(!i.isCancellationRequested)this._model=h}getCandidateStickyLinesIntersecting(i){if(!this._model?.element)return[];let h=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(i,this._model.element,h,0,0,-1),this.filterHiddenRanges(h)}getCandidateStickyLinesIntersectingFromStickyModel(i,h,b,v,w,x){let I=this._editor.getModel();if(!I)return;if(h.children.length===0)return;let E=x,T=[];for(let Y=0;Y<h.children.length;Y++){let ee=h.children[Y];if(ee.range)T.push(ee.range.startLineNumber)}let O=this.updateIndex(vf(T,i.startLineNumber,(Y,ee)=>Y-ee)),A=this.updateIndex(vf(T,i.endLineNumber,(Y,ee)=>Y-ee));for(let Y=O;Y<=A;Y++){let ee=h.children[Y];if(!ee||!ee.range)continue;let{startLineNumber:te,endLineNumber:oe}=ee.range;if(oe>te+1&&i.startLineNumber<=oe+1&&te-1<=i.endLineNumber&&te!==E&&I.isValidRange(new t(te,1,oe,1))){E=te;let ne=this._editor.getLineHeightForPosition(new s(te,1));b.push(new fD(te,oe-1,w,ne)),this.getCandidateStickyLinesIntersectingFromStickyModel(i,ee,b,v+1,w+ne,te)}}}filterHiddenRanges(i){let h=this._editor._getViewModel()?.getHiddenAreas();if(!h)return i;return i.filter((b)=>!h.some((v)=>b.startLineNumber>=v.startLineNumber&&b.endLineNumber<=v.endLineNumber+1))}updateIndex(i){if(i===-1)return 0;else if(i<0)return-i-2;return i}};pf=pO([mD(1,V),mD(2,st)],pf);var mO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},cc=function(f,i){return function(h,b){i(h,b,f)}},PC,us=class f extends n{static{PC=this}static{this.ID="store.contrib.stickyScrollController"}constructor(i,h,b,v,w,x,I){super();this._editor=i,this._contextMenuService=h,this._languageFeaturesService=b,this._instaService=v,this._contextKeyService=I,this._sessionStore=new d,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new r),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new EC(this._editor),this._stickyLineCandidateProvider=new pf(this._editor,b,w),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=dc.Empty;let E=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight((O)=>{O.changes.forEach((A)=>{let Y=A.lineNumber;if(this._widgetState.startLineNumbers.includes(Y))this._renderStickyScroll(Y)})})),this._register(this._editor.onDidChangeFont((O)=>{O.changes.forEach((A)=>{let Y=A.lineNumber;if(this._widgetState.startLineNumbers.includes(Y))this._renderStickyScroll(Y)})})),this._register(this._editor.onDidChangeConfiguration((O)=>{this._readConfigurationChange(O)})),this._register(c(E,S.CONTEXT_MENU,async(O)=>{this._onContextMenu(B(E),O)})),this._stickyScrollFocusedContextKey=o.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=o.stickyScrollVisible.bindTo(this._contextKeyService);let T=this._register(ii(E));this._register(T.onDidBlur((O)=>{if(this._positionRevealed===!1&&E.clientHeight===0)this._focusedStickyElementIndex=-1,this.focus();else this._disposeFocusStickyScrollStore()})),this._register(T.onDidFocus((O)=>{this.focus()})),this._registerMouseListeners(),this._register(c(E,S.MOUSE_DOWN,(O)=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight((O)=>{this._onDidChangeStickyScrollHeight.fire(O)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(i){return i.getContribution(PC.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}if(this._stickyScrollFocusedContextKey.get()===!0)return;this._focused=!0,this._focusDisposableStore=new d,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}focusNext(){if(this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1)this._focusNav(!0)}focusPrevious(){if(this._focusedStickyElementIndex>0)this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(i){this._focusedStickyElementIndex=i?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){let i=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:i[this._focusedStickyElementIndex],column:1})}_revealPosition(i){this._reveaInEditor(i,()=>this._editor.revealPosition(i))}_revealLineInCenterIfOutsideViewport(i){this._reveaInEditor(i,()=>this._editor.revealLineInCenterIfOutsideViewport(i.lineNumber,0))}_reveaInEditor(i,h){if(this._focused)this._disposeFocusStickyScrollStore();this._positionRevealed=!0,h(),this._editor.setSelection(t.fromPositions(i)),this._editor.focus()}_registerMouseListeners(){let i=this._register(new d),h=this._register(new ls(this._editor,{extractLineNumberFromMouseEvent:(w)=>{let x=this._stickyScrollWidget.getEditorPositionFromNode(w.target.element);return x?x.lineNumber:0}})),b=(w)=>{if(!this._editor.hasModel())return null;if(w.target.type!==12||w.target.detail!==this._stickyScrollWidget.getId())return null;let x=w.target.element;if(!x||x.innerText!==x.innerHTML)return null;let I=this._stickyScrollWidget.getEditorPositionFromNode(x);if(!I)return null;return{range:new t(I.lineNumber,I.column,I.lineNumber,I.column+x.innerText.length),textElement:x}},v=this._stickyScrollWidget.getDomNode();this._register(wt(v,S.CLICK,(w)=>{if(w.ctrlKey||w.altKey||w.metaKey)return;if(!w.leftButton)return;if(w.shiftKey){let T=this._stickyScrollWidget.getLineIndexFromChildDomNode(w.target);if(T===null)return;let O=new s(this._endLineNumbers[T],1);this._revealLineInCenterIfOutsideViewport(O);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(w.target)){let T=this._stickyScrollWidget.getLineNumberFromChildDomNode(w.target);this._toggleFoldingRegionForLine(T);return}if(!this._stickyScrollWidget.isInStickyLine(w.target))return;let E=this._stickyScrollWidget.getEditorPositionFromNode(w.target);if(!E){let T=this._stickyScrollWidget.getLineNumberFromChildDomNode(w.target);if(T===null)return;E=new s(T,1)}this._revealPosition(E)})),this._register(c(ze,S.MOUSE_MOVE,(w)=>{this._mouseTarget=w.target,this._onMouseMoveOrKeyDown(w)})),this._register(c(ze,S.KEY_DOWN,(w)=>{this._onMouseMoveOrKeyDown(w)})),this._register(c(ze,S.KEY_UP,()=>{if(this._showEndForLine!==void 0)this._showEndForLine=void 0,this._renderStickyScroll()})),this._register(h.onMouseMoveOrRelevantKeyDown(([w,x])=>{let I=b(w);if(!I||!w.hasTriggerModifier||!this._editor.hasModel()){i.clear();return}let{range:E,textElement:T}=I;if(!E.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=E,i.clear();else if(T.style.textDecoration==="underline")return;let O=new Ve;i.add(R(()=>O.dispose(!0)));let A;ta(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new s(E.startLineNumber,E.startColumn+1),!1,O.token).then((Y)=>{if(O.token.isCancellationRequested)return;if(Y.length!==0){this._candidateDefinitionsLength=Y.length;let ee=T;if(A!==ee)i.clear(),A=ee,A.style.textDecoration="underline",i.add(R(()=>{A.style.textDecoration="none"}));else if(!A)A=ee,A.style.textDecoration="underline",i.add(R(()=>{A.style.textDecoration="none"}))}else i.clear()})})),this._register(h.onCancel(()=>{i.clear()})),this._register(h.onExecute(async(w)=>{if(w.target.type!==12||w.target.detail!==this._stickyScrollWidget.getId())return;let x=this._stickyScrollWidget.getEditorPositionFromNode(w.target.element);if(!x)return;if(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor)return;if(this._candidateDefinitionsLength>1){if(this._focused)this._disposeFocusStickyScrollStore();this._revealPosition({lineNumber:x.lineNumber,column:1})}this._instaService.invokeFunction(hm,w,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})}))}_onContextMenu(i,h){let b=new Jn(i,h);this._contextMenuService.showContextMenu({menuId:l.StickyScrollContext,getAnchor:()=>b,menuActionOptions:{renderShortTitle:!0}})}_onMouseMoveOrKeyDown(i){if(!i.shiftKey)return;if(!this._mouseTarget||!Ee(this._mouseTarget))return;let h=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);if(h===null||this._showEndForLine===h)return;this._showEndForLine=h,this._renderStickyScroll()}_toggleFoldingRegionForLine(i){if(!this._foldingModel||i===null)return;let h=this._stickyScrollWidget.getRenderedStickyLine(i),b=h?.foldingIcon;if(!b)return;nh(this._foldingModel,1,[i]),b.isCollapsed=!b.isCollapsed;let v=(b.isCollapsed?this._editor.getTopForLineNumber(b.foldingEndLine):this._editor.getTopForLineNumber(b.foldingStartLine))-this._editor.getOption(75)*h.index+1;this._editor.setScrollTop(v),this._renderStickyScroll(i)}_readConfiguration(){let i=this._editor.getOption(131);if(i.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else if(i.enabled&&!this._enabled)this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((b)=>{if(b.scrollTopChanged)this._showEndForLine=void 0,this._renderStickyScroll()})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens((b)=>this._onTokensChange(b))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0;if(this._editor.getOption(76).renderType===2){if(!this._cursorPositionListener)this._cursorPositionListener=this._editor.onDidChangeCursorPosition((b)=>{if(this._positionLineNumber===b.position.lineNumber)return;this._positionLineNumber=b.position.lineNumber,this._showEndForLine=void 0,this._renderStickyScroll(0)}),this._sessionStore.add(this._cursorPositionListener)}else if(this._cursorPositionListener)this._sessionStore.delete(this._cursorPositionListener),this._cursorPositionListener.dispose(),this._cursorPositionListener=void 0}_readConfigurationChange(i){if(i.hasChanged(131)||i.hasChanged(81)||i.hasChanged(75)||i.hasChanged(126)||i.hasChanged(76))this._readConfiguration();if(i.hasChanged(76)||i.hasChanged(52)||i.hasChanged(126)||i.hasChanged(59)||i.hasChanged(176))this._renderStickyScroll(0)}_needsUpdate(i){let h=this._stickyScrollWidget.getCurrentLines();for(let b of h)for(let v of i.ranges)if(b>=v.fromLineNumber&&b<=v.toLineNumber)return!0;return!1}_onTokensChange(i){if(this._needsUpdate(i))this._renderStickyScroll(0)}_onDidResize(){let h=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(h*0.25),this._renderStickyScroll(0)}async _renderStickyScroll(i){let h=this._editor.getModel();if(!h||h.isTooLargeForTokenization()){this._resetState();return}let b=this._updateAndGetMinRebuildFromLine(i),v=this._stickyLineCandidateProvider.getVersionId();if(v===void 0||v===h.getVersionId())if(!this._focused)await this._updateState(b);else if(this._focusedStickyElementIndex===-1){if(await this._updateState(b),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1)this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}else{let x=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];if(await this._updateState(b),this._stickyScrollWidget.lineNumberCount===0)this._focusedStickyElementIndex=-1;else{if(!this._stickyScrollWidget.lineNumbers.includes(x))this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1;this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}}}_updateAndGetMinRebuildFromLine(i){if(i!==void 0){let h=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(i,h)}return this._minRebuildFromLine}async _updateState(i){this._minRebuildFromLine=void 0,this._foldingModel=await Dr.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();let h=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(h),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,i)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=dc.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){let i=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),h=this._editor.getScrollTop(),b=0,v=[],w=[],x=this._editor.getVisibleRanges();if(x.length!==0){let I=new Ia(x[0].startLineNumber,x[x.length-1].endLineNumber),E=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(I);for(let T of E){let{startLineNumber:O,endLineNumber:A,top:Y}=T,ee=Y+T.height,te=this._editor.getTopForLineNumber(O)-h,oe=this._editor.getBottomForLineNumber(A)-h;if(Y>te&&Y<=oe){if(v.push(O),w.push(A+1),ee>oe)b=oe-ee}if(v.length===i)break}}return this._endLineNumbers=w,new dc(v,w,b,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};us=PC=mO([cc(1,Fn),cc(2,V),cc(3,D),cc(4,st),cc(5,Ji),cc(6,K)],us);var Da=a("inlineEdit.originalBackground",me(sd,0.2),e(1286,"Background color for the original text in inline edits."),!0),mf=a("inlineEdit.modifiedBackground",me(Cu,0.3),e(1287,"Background color for the modified text in inline edits."),!0);a("inlineEdit.originalChangedLineBackground",me(sd,0.8),e(1288,"Background color for the changed lines in the original text of inline edits."),!0);var _D=a("inlineEdit.originalChangedTextBackground",me(sd,0.8),e(1289,"Overlay color for the changed text in the original text of inline edits."),!0),bD=a("inlineEdit.modifiedChangedLineBackground",{light:me(Vv,0.7),dark:me(Vv,0.7),hcDark:Vv,hcLight:Vv},e(1290,"Background color for the changed lines in the modified text of inline edits."),!0),vD=a("inlineEdit.modifiedChangedTextBackground",me(Cu,0.7),e(1291,"Overlay color for the changed text in the modified text of inline edits."),!0),Ra=a("inlineEdit.gutterIndicator.primaryForeground",Zg,e(1292,"Foreground color for the primary inline edit gutter indicator.")),un=a("inlineEdit.gutterIndicator.primaryBorder",Eu,e(1293,"Border color for the primary inline edit gutter indicator.")),Vr=a("inlineEdit.gutterIndicator.primaryBackground",{light:me(un,0.5),dark:me(un,0.4),hcDark:me(un,0.4),hcLight:me(un,0.5)},e(1294,"Background color for the primary inline edit gutter indicator.")),SD=a("inlineEdit.gutterIndicator.secondaryForeground",Jg,e(1295,"Foreground color for the secondary inline edit gutter indicator.")),wD=a("inlineEdit.gutterIndicator.secondaryBorder",Jh,e(1296,"Border color for the secondary inline edit gutter indicator.")),Ic=a("inlineEdit.gutterIndicator.secondaryBackground",Af,e(1297,"Background color for the secondary inline edit gutter indicator.")),CD=a("inlineEdit.gutterIndicator.successfulForeground",Zg,e(1298,"Foreground color for the successful inline edit gutter indicator.")),AC=a("inlineEdit.gutterIndicator.successfulBorder",Eu,e(1299,"Border color for the successful inline edit gutter indicator.")),Lc=a("inlineEdit.gutterIndicator.successfulBackground",AC,e(1300,"Background color for the successful inline edit gutter indicator.")),yD=a("inlineEdit.gutterIndicator.background",{hcDark:me("tab.inactiveBackground",0.5),hcLight:me("tab.inactiveBackground",0.5),dark:me("tab.inactiveBackground",0.5),light:"#5f5f5f18"},e(1301,"Background color for the inline edit gutter indicator.")),Xu=a("inlineEdit.originalBorder",{light:sd,dark:sd,hcDark:sd,hcLight:sd},e(1302,"Border color for the original text in inline edits.")),Yu=a("inlineEdit.modifiedBorder",{light:bo(Cu,0.6),dark:Cu,hcDark:Cu,hcLight:Cu},e(1303,"Border color for the modified text in inline edits.")),fO=a("inlineEdit.tabWillAcceptModifiedBorder",{light:bo(Yu,0),dark:bo(Yu,0),hcDark:bo(Yu,0),hcLight:bo(Yu,0)},e(1304,"Modified border color for the inline edits widget when tab will accept it.")),_O=a("inlineEdit.tabWillAcceptOriginalBorder",{light:bo(Xu,0),dark:bo(Xu,0),hcDark:bo(Xu,0),hcLight:bo(Xu,0)},e(1305,"Original border color for the inline edits widget over the original text when tab will accept it."));function Rs(f){return f.map((i)=>i===Mt.Accept?fO:Yu)}function ka(f){return f.map((i)=>i===Mt.Accept?_O:Xu)}function mi(f,i){let h;if(typeof f==="string")h=Ea(f,i);else h=f.map((v,w)=>Ea(v,i).read(w));let b=Ea(Ar,i);return h.map((v,w)=>v.makeOpaque(b.read(w)))}function ao(f){let i;switch(f){case Bt.TextEditor:i=Ar;break;case Bt.DiffEditor:i=Ar;break;case Bt.Notebook:i="notebook.cellEditorBackground";break;default:xl(f,"Not supported editor type yet")}return M(i)}function Ea(f,i){return ys({owner:{observeColor:f},equalsFn:(h,b)=>h.equals(b),debugName:()=>`observeColor(${f})`},i.onDidColorThemeChange,()=>{let h=i.getColorTheme().getColor(f);if(!h)throw new H(`Missing color: ${f}`);return h})}var bi=3;function Ko(f,i,h){let b=f.model.read(h);if(!b)return 0;let v=0;for(let x=i.startLineNumber;x<i.endLineNumberExclusive;x++){let I=f.getWidthOfLine(x,h);v=Math.max(v,I)}let w=i.mapToLineArray((x)=>b.getLineContent(x));if(v<5&&w.some((x)=>x.length>0)&&b.uri.scheme!=="file")console.log("unexpected width");return v}function xD(f,i,h){fi(f,f.editor.onDidChangeLineHeight).read(h);let b=f.model.read(h);if(!b)throw new H("Model is required");let v=[];for(let w=i.startLineNumber;w<i.endLineNumberExclusive;w++){let x=f.getWidthOfLine(w,h);if(x===-1){let E=b.getLineMaxColumn(w),T=f.editor.getOption(59).typicalHalfwidthCharacterWidth;x=E*T}let I=f.editor.getLineHeightForPosition(new s(w,1));v.push(new Ca(x,I))}return v}function ID(f,i,h){if(f.layoutInfo.read(h),f.value.read(h),!f.model.read(h))return 0;return f.scrollTop.read(h),f.editor.getOffsetForColumn(i.lineNumber,i.column)}function Dc(f,i,h,b,v=void 0){let w=b.getModel();if(!w)return{prefixTrim:0,prefixLeftOffset:0};let x=f.map((Y)=>Y.isSingleLine()?Y.startColumn-1:0),I=i.mapToLineArray((Y)=>u0(w.getLineContent(Y))),E=h.filter((Y)=>Y!=="").map((Y)=>u0(Y)),T=Math.min(...x,...I,...E),O;if(w.getLineIndentColumn(i.startLineNumber)>=T+1)rt(b).scrollTop.read(v),O=b.getOffsetForColumn(i.startLineNumber,T+1);else if(h.length>0)O=Ju(h[0].slice(0,T),b,w);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:T,prefixLeftOffset:O}}function Ju(f,i,h){let b=i.getOption(59).typicalHalfwidthCharacterWidth,v=h.getOptions().tabSize*b,w=f.split("\t").length-1;return(f.length-w)*b+w*v}function Rc(f){let i=f.layoutInfoContentLeft,h=u({name:"editor.validOverlay.width"},(v)=>{let w=f.layoutInfoMinimap.read(v).minimapLeft!==0,x=Math.max(0,f.layoutInfoWidth.read(v)-i.read(v));if(w){let I=f.layoutInfoMinimap.read(v).minimapWidth+f.layoutInfoVerticalScrollbarWidth.read(v);return Math.max(0,x-I)}return x}),b=u({name:"editor.validOverlay.height"},(v)=>f.layoutInfoHeight.read(v)+f.contentHeight.read(v));return u({name:"editor.validOverlay"},(v)=>pt.fromLeftTopWidthHeight(i.read(v),0,h.read(v),b.read(v)))}function LD(f,i){let h=[];for(let b of f){let v=i.mapRange(b.modifiedRange);h.push(new Ai(b.originalRange,v))}return h}function Tc(...f){return f.filter((i)=>typeof i==="string").join(" ")}function bO(f,i){return new t(i.lineNumber,i.column+f.start,i.lineNumber,i.column+f.endExclusive)}function vO(f,i){let h=0;e:for(let b=0,v=f.length;b<v;b++)switch(f.charCodeAt(b)){case 9:h+=i;break;case 32:h++;break;default:break e}return h-h%i}function SO(f,i,h){let b=i-i%h,v=0;for(;v<f.length;v++){if(b===0)break;switch(f.charCodeAt(v)){case 9:b-=h;break;case 32:b--;break;default:throw new H("Unexpected character found while calculating indent length")}}return v}function ED(f,i,h){let b=li(f),v=[],w=Z_(i.mapToLineArray((x)=>vO(b[x-1],h)),$i);return i.forEach((x)=>{let I=SO(b[x-1],w,h);v.push(new ft(bO(new z(0,I),new s(x,1)),""))}),new _r(v)}class Nc{constructor(){this._data=""}moveTo(f){return this._data+=`M ${f.x} ${f.y} `,this}lineTo(f){return this._data+=`L ${f.x} ${f.y} `,this}build(){return this._data}}function oo(f){let i=Zr(void 0,(h,b)=>f.read(h)||b);return xn({debugName:()=>`${f.debugName}.mapOutFalsy`},(h)=>{if(i.read(h),!f.read(h))return;return i})}function Ci(f,i=jt.ofCaller()){return{left:u({name:"editor.validOverlay.left"},(h)=>f(h)?.left,i),top:u({name:"editor.validOverlay.top"},(h)=>f(h)?.top,i),width:u({name:"editor.validOverlay.width"},(h)=>{let b=f(h);if(!b)return;return b.width},i),height:u({name:"editor.validOverlay.height"},(h)=>{let b=f(h);if(!b)return;return b.height},i)}}function DD(f,i){let h=f.getContainerDomNode(),b=j("domRect",h.getBoundingClientRect());return i.add(f.onDidLayoutChange((v)=>{b.set(h.getBoundingClientRect(),void 0)})),b}var wO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},FC=function(f,i){return function(h,b){i(h,b,f)}},ff=class f{constructor(i,h,b,v,w,x){this._editorObs=i,this._data=h,this._close=b,this._contextKeyService=v,this._keybindingService=w,this._commandService=x,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map((I)=>I.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){let i=j("active",void 0),h=(oe)=>({title:oe.title,icon:oe.icon,keybinding:typeof oe.commandId==="string"?this._getKeybinding(oe.commandArgs?void 0:oe.commandId):u(this,(ne)=>typeof oe.commandId==="string"?void 0:this._getKeybinding(oe.commandArgs?void 0:oe.commandId.read(ne)).read(ne)),isActive:i.map((ne)=>ne===oe.id),onHoverChange:(ne)=>i.set(ne?oe.id:void 0,void 0),onAction:()=>{let ne=typeof oe.commandId==="string"?oe.commandId:oe.commandId.get();return this._close(!0,ne),this._commandService.executeCommand(ne,...oe.commandArgs??[])}}),b=this._data.extensionCommands.map((oe)=>oe.map((ne,re)=>Ta(h({id:ne.command.id+"_"+re,title:ne.command.title,icon:ne.icon??y.symbolEvent,commandId:ne.command.id,commandArgs:ne.command.arguments})))),v=[];for(let oe of b)if(oe.length>0)v.push(HC()),v.push(...oe);if(this._data.extensionCommandsOnly)return RD(v.slice(1));let w=CO(this._data.displayName),x=Ta(h({id:"gotoAndAccept",title:e(1276,"Go To / Accept"),icon:y.check,commandId:qn})),I=Ta(h({id:"reject",title:e(1277,"Reject"),icon:y.close,commandId:em})),E=this._data.alternativeAction?Ta(h({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:kd})):void 0,T=[],O=this._inlineEditsShowCollapsed.map((oe)=>oe?Ta(h({id:"showExpanded",title:e(1278,"Show Expanded"),icon:y.expandAll,commandId:kh})):Ta(h({id:"showCollapsed",title:e(1279,"Show Collapsed"),icon:y.collapseAll,commandId:kh}))),A=Ta(h({id:"snooze",title:e(1280,"Snooze"),icon:y.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),Y=Ta(h({id:"settings",title:e(1281,"Settings"),icon:y.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),ee=this._data.action?[this._data.action]:[],te=ee.length>0?yO(ee.map((oe)=>({id:oe.id,label:oe.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(oe.id,...oe.arguments??[]),class:void 0,tooltip:oe.tooltip??oe.title})),{hoverDelegate:lI}):void 0;return RD([w,x,E,I,O,T.length?HC():void 0,...T,A,Y,...v,te?HC():void 0,te])}_getKeybinding(i){if(!i)return Re(void 0);return Ne(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(i))}};ff=wO([FC(3,K),FC(4,fe),FC(5,Be)],ff);function RD(f){return de.div({class:"content",style:{margin:4,minWidth:180}},f)}function CO(f){return de.div({class:"header",style:{color:M(Bv),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[f])}function Ta(f){return u({name:"inlineEdits.option"},(i)=>de.div({class:["monaco-menu-option",f.isActive?.map((h)=>h&&"active")],onmouseenter:()=>f.onHoverChange?.(!0),onmouseleave:()=>f.onHoverChange?.(!1),onclick:f.onAction,onkeydown:(h)=>{if(h.key==="Enter")f.onAction?.()},tabIndex:0,style:{borderRadius:3}},[de.elem("span",{style:{fontSize:16,display:"flex"}},[J.isThemeIcon(f.icon)?ur(f.icon):f.icon.map((h)=>ur(h))]),de.elem("span",{},[f.title]),de.div({style:{marginLeft:"auto"},ref:(h)=>{let b=i.store.add(new va(h,vi,{disableTitle:!0,...sb,keybindingLabelShadow:void 0,keybindingLabelForeground:M(Bv),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));i.store.add(W((v)=>{b.set(f.keybinding.read(v))}))}})]))}function yO(f,i){return u({name:"inlineEdits.actionBar"},(h)=>de.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[de.div({ref:(b)=>{h.store.add(new Fi(b,i)).push(f,{icon:!1,label:!0})}})]))}function HC(){return de.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:M(tI),padding:"2px 0"}},de.div({style:{borderBottom:`1px solid ${M(Jh)}`}}))}var xO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Qu=function(f,i){return function(h,b){i(h,b,f)}};class eg{constructor(f,i,h,b,v){this.gutterMenuData=f,this.originalRange=i,this.model=h,this.altAction=b,this.customization=v}}class Mc{static fromInlineSuggestion(f){let i=f.action?.kind==="edit"?f.action.alternativeAction:void 0,h=f.source.inlineSuggestions.commands??[];return new Mc(f.gutterMenuLinkAction,f.source.provider.displayName??e(1282,"Inline Suggestion"),h.length>0?[h]:[],i,f.source.provider.modelInfo,f.source.provider.setModelId?.bind(f.source.provider))}constructor(f,i,h,b,v,w,x=!1){this.action=f,this.displayName=i,this.extensionCommands=h,this.alternativeAction=b,this.modelInfo=v,this.setModelId=w,this.extensionCommandsOnly=x}}class Pc{static fromInlineCompletionModel(f){return new Pc(()=>f.accept(),()=>f.jump())}constructor(f,i){this.accept=f,this.jump=i}}var WC=16,kD=2,Oc=class f extends n{constructor(i,h,b,v,w,x,I,E,T,O,A){super();this._editorObs=i,this._data=h,this._tabAction=b,this._verticalOffset=v,this._isHoveringOverInlineEdit=w,this._focusIsInMenu=x,this._hoverService=I,this._instantiationService=E,this._accessibilityService=T,this._themeService=O,this._userInteractionService=A,this._onDidCloseWithCommand=this._register(new r),this._modifierPressed=u(this,(ee)=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),ee).shiftKey),this._gutterIndicatorStyles=u(this,(ee)=>{let te=this._tabAction.read(ee),oe=this._data.read(ee)?.altAction,ne=this._modifierPressed.read(ee);if(oe&&ne)te=Mt.Inactive;switch(te){case Mt.Inactive:return{background:mi(Ic,this._themeService).read(ee).toString(),foreground:mi(SD,this._themeService).read(ee).toString(),border:mi(wD,this._themeService).read(ee).toString()};case Mt.Jump:return{background:mi(Vr,this._themeService).read(ee).toString(),foreground:mi(Ra,this._themeService).read(ee).toString(),border:mi(un,this._themeService).read(ee).toString()};case Mt.Accept:return{background:mi(Lc,this._themeService).read(ee).toString(),foreground:mi(CD,this._themeService).read(ee).toString(),border:mi(AC,this._themeService).read(ee).toString()};default:xl()}}),this._state=u(this,(ee)=>{let te=this._originalRangeObs.read(ee);if(!te)return;return{range:te,lineOffsetRange:this._editorObs.observeLineOffsetRange(te,ee.store)}}),this._lineNumberToRender=u(this,(ee)=>{if(this._verticalOffset.read(ee)!==0)return"";let te=this._data.read(ee)?.originalRange.startLineNumber,oe=this._editorObs.getOption(76).read(ee);if(te===void 0||oe.renderType===0)return"";if(oe.renderType===3){let ne=this._editorObs.cursorPosition.read(ee);if(te%10===0||ne&&ne.lineNumber===te)return te.toString();return""}if(oe.renderType===2){let ne=this._editorObs.cursorPosition.read(ee);if(!ne)return"";let re=Math.abs(te-ne.lineNumber);if(re===0)return te.toString();return re.toString()}if(oe.renderType===4){if(oe.renderFn)return oe.renderFn(te);return""}return te.toString()}),this._availableWidthForIcon=u(this,(ee)=>{let te=this._editorObs.editor.getModel(),oe=this._editorObs.editor,ne=this._editorObs.layoutInfo.read(ee),re=ne.decorationsLeft+ne.decorationsWidth-ne.glyphMarginLeft;if(!te||re<=0)return()=>0;if(ne.lineNumbersLeft===0)return()=>re;let he=this._editorObs.getOption(76).read(ee);if(he.renderType===2||he.renderType===0)return()=>re;let ue=oe.getOption(59).typicalHalfwidthCharacterWidth,Ie=ne.lineNumbersLeft+ne.lineNumbersWidth,ae=(te.getLineCount()+1).toString().length,xe=[];for(let Me=1;Me<=ae;Me++){let He=10**(Me-1),qe=oe.getTopForLineNumber(He),Oe=Me*ue,Ze=Math.min(re,Math.max(0,Ie-Oe-ne.glyphMarginLeft));xe.push({firstLineNumberWithDigitCount:He,topOfLineNumber:qe,usableWidthLeftOfLineNumber:Ze})}return(Me)=>{for(let He=xe.length-1;He>=0;He--)if(Me>=xe[He].topOfLineNumber)return xe[He].usableWidthLeftOfLineNumber;throw new H("Could not find avilable width for icon")}}),this._layout=u(this,(ee)=>{let te=this._state.read(ee);if(!te)return;let oe=this._editorObs.layoutInfo.read(ee),ne=this._editorObs.observeLineHeightForLine(te.range.map((Tt)=>Tt.startLineNumber)).read(ee),re=1,he=2,ue=oe.decorationsLeft+oe.decorationsWidth-oe.glyphMarginLeft-2*re,Ie=oe.height-2*he,Te=pt.fromLeftTopWidthHeight(re,he,ue,Ie),ae=Te.withTop(this._stickyScrollHeight.read(ee)),xe=Te.withTop(ae.top+he),Me=te.lineOffsetRange.read(ee),He=pt.fromRanges(z.fromTo(xe.left,xe.right),Me),qe=ne,Oe=this._verticalOffset.read(ee),Ze=He.withHeight(qe).translateY(Oe),dt=ae.containsRect(Ze),Qe=this._data.read(ee)?.customization?.icon,ut=Qe?Re(Qe):this._tabAction.map((Tt)=>Tt===Mt.Accept?y.keyboardTab:y.arrowRight),tt=Qe?Re(Qe):u(this,(Tt)=>{if(this._isHoveredOverIconDebounced.read(Tt)||this._isHoveredOverInlineEditDebounced.read(Tt))return y.check;if(this._tabAction.read(Tt)===Mt.Accept)return y.keyboardTab;let Wi=this._editorObs.cursorLineNumber.read(Tt)??0,Ns=te.range.read(Tt).startLineNumber;return Wi<=Ns?y.keyboardTabAbove:y.keyboardTabBelow}),Gt=22,ct=(Tt)=>{let Wi=this._availableWidthForIcon.read(void 0)(Tt.bottom+this._editorObs.editor.getScrollTop())-re;return Math.max(Math.min(Wi,Gt),WC)};if(dt){let Tt=Ze,Wi;if(oe.lineNumbersWidth===0)Wi=Math.max(0,Math.min(Math.max(oe.lineNumbersLeft-Te.left,0),Tt.width-Gt));else Wi=Math.max(oe.lineNumbersLeft+oe.lineNumbersWidth-Te.left,0);let Ns=Tt.withWidth(Wi),zo=WC+kD,rr=Math.min(Tt.width-Wi,Gt),Oa=Tt.withWidth(Math.max(rr,zo)).translateX(Wi),f_=rr>=zo;return{gutterEditArea:He,icon:tt,iconDirection:"right",iconRect:Oa,iconVisible:f_,pillRect:Tt,lineNumberRect:Ns}}let vt=Te.intersect(He);if(vt&&vt.height>=qe){let Tt=Ze.moveToBeContainedIn(xe).moveToBeContainedIn(vt),Wi=Tt.withWidth(ct(Tt));return{gutterEditArea:He,icon:tt,iconDirection:"right",iconRect:Wi,pillRect:Wi,iconVisible:!0}}let Rt=Ze.moveToBeContainedIn(Te),Dt=Rt.withWidth(ct(Rt)),ai=Dt,Xt=Dt.top<Ze.top?"top":"bottom";return{gutterEditArea:He,icon:ut,iconDirection:Xt,iconRect:ai,pillRect:Dt,iconVisible:!0}}),this._iconRef=de.ref(),this.isVisible=this._layout.map((ee)=>!!ee),this._hoverVisible=j(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=j(this,!1),this._isHoveredOverIconDebounced=U_(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=de.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},oo(this._layout).map((ee)=>!ee?[]:[de.div({style:{position:"absolute",background:M(yD),borderRadius:`${bi}px`,...Ci((te)=>ee.read(te).gutterEditArea)}}),de.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{let oe=this._layout.get()?.icon.get()===y.check,ne=this._data.get();if(!ne)throw new H("Gutter indicator data not available");if(this._editorObs.editor.focus(),oe)ne.model.accept();else ne.model.jump()},onmouseenter:()=>{this._isHoveredOverIcon.set(!0,void 0),this._showHover()},onmouseleave:()=>this._isHoveredOverIcon.set(!1,void 0),style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map((te)=>te.background),["--vscodeIconForeground"]:this._gutterIndicatorStyles.map((te)=>te.foreground),border:this._gutterIndicatorStyles.map((te)=>`1px solid ${te.border}`),boxSizing:"border-box",borderRadius:`${bi}px`,display:"flex",justifyContent:ee.map((te)=>te.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map((te)=>te?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Ci((te)=>ee.read(te).pillRect)}},[de.div({className:"line-number",style:{lineHeight:ee.map((te)=>te.lineNumberRect?te.lineNumberRect.height:0),display:ee.map((te)=>te.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:ee.map((te)=>te.lineNumberRect?te.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map((te)=>te.foreground)}},this._lineNumberToRender),de.div({style:{transform:ee.map((te)=>`rotate(${IO(te.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:ee.map((te)=>te.iconVisible?"1":"0"),marginRight:ee.map((te)=>te.pillRect.width-te.iconRect.width-(te.lineNumberRect?.width??0)),width:ee.map((te)=>te.iconRect.width),position:"relative",right:ee.map((te)=>te.iconDirection==="top"?"1px":"0"),color:this._data.map((te)=>te?.customization?.icon?.color?M(te.customization.icon.color.id):void 0)}},[ee.map((te,oe)=>LO(ur(te.icon.read(oe)),{fontSize:EO(Math.min(te.iconRect.width-kD,WC))}))])])])),this._originalRangeObs=oo(this._data.map((ee)=>ee?.originalRange)),this._stickyScrollController=us.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Ne(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Re(0),this._isHoveredOverInlineEditDebounced=U_(this._isHoveringOverInlineEdit,100);let Y=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:Y.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:Re(0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(yo(this._isHoveredOverInlineEditDebounced,(ee)=>{if(ee)this.triggerAnimation()})),this._register(W((ee)=>{if(Y.readEffect(ee),Y.element)this._editorObs.editor.applyFontInfo(Y.element)}))}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map((h)=>h.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;let i=this._data.get();if(!i)throw new H("Gutter indicator data not available");let h=new d,b=h.add(this._instantiationService.createInstance(ff,this._editorObs,i.gutterMenuData,(x,I)=>{if(x)this._editorObs.editor.focus();if(I)this._onDidCloseWithCommand.fire(I);w?.dispose()}).toDisposableLiveElement()),v=this._userInteractionService.createFocusTracker(b.element,h);h.add(W((x)=>{this._focusIsInMenu.set(v.read(x),void 0)})),h.add(R(()=>this._focusIsInMenu.set(!1,void 0)));let w=this._hoverService.showInstantHover({target:this._iconRef.element,content:b.element});if(w)this._hoverVisible.set(!0,void 0),h.add(this._editorObs.editor.onDidScrollChange(()=>w.dispose())),h.add(w.onDispose(()=>{this._hoverVisible.set(!1,void 0),h.dispose()}));else h.dispose()}};Oc=xO([Qu(6,kn),Qu(7,D),Qu(8,Yt),Qu(9,je),Qu(10,vo)],Oc);function IO(f){switch(f){case"top":return 90;case"bottom":return-90;case"right":return 0}}function LO(f,i){for(let h in i)f.style[h]=i[h];return f}function EO(f){return`${f}px`}var DO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},TD=function(f,i){return function(h,b){i(h,b,f)}},To;(function(f){f.FirstTime="firstTime",f.SecondTime="secondTime",f.Active="active"})(To||(To={}));var Sf=class f extends n{constructor(i,h,b,v,w){super();this._model=i,this._indicator=h,this._collapsedView=b,this._storageService=v,this._configurationService=w,this._disposables=this._register(new le),this._setupDone=j({name:"setupDone"},!1),this._activeCompletionId=u((x)=>{let I=this._model.read(x);if(!I)return;if(!this._setupDone.read(x))return;let E=this._indicator.read(x);if(!E||!E.isVisible.read(x))return;return I.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===To.Active)return;let i=new d,h=!1,b=!1,v=0,w=0;return i.add(oI(this._activeCompletionId,async(x,I,E,T)=>{if(x===void 0)return;let O=this.getNewUserType();switch(O){case To.FirstTime:{if(v++>=5||h)O=To.SecondTime,this.setNewUserType(O);break}case To.SecondTime:{if(w++>=3&&b)O=To.Active,this.setNewUserType(O);break}}switch(O){case To.FirstTime:{for(let A=0;A<3&&!T.isCancellationRequested;A++)await this._indicator.get()?.triggerAnimation(),await mo(500);break}case To.SecondTime:{this._indicator.get()?.triggerAnimation();break}}})),i.add(W((x)=>{if(this._collapsedView.isVisible.read(x)){if(this.getNewUserType()!==To.Active)this._collapsedView.triggerAnimation()}})),i.add(W((x)=>{let I=this._indicator.read(x);if(!I)return;x.store.add(yo(I.isHoveredOverIcon,async(E)=>{if(E)h=!0}))})),i.add(W((x)=>{let I=this._model.read(x);if(!I)return;x.store.add(I.onDidAccept(()=>{b=!0}))})),i}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,To.FirstTime)}setNewUserType(i){switch(i){case To.FirstTime:throw new H("UserKind should not be set to first time");case To.SecondTime:break;case To.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",i,-1,0)}_initializeDebugSetting(){if(this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1);return this._configurationService.onDidChangeConfiguration((b)=>{if(b.affectsConfiguration("editor.inlineSuggest.edits.resetNewUserExperience")&&this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience()})}};Sf=DO([TD(3,Tn),TD(4,ie)],Sf);class BC{static{this.empty=new BC([])}constructor(f){this.replacements=f,fu(Yc(f,(i,h)=>i.lineRange.endLineNumberExclusive<=h.lineRange.startLineNumber))}toString(){return this.replacements.map((f)=>f.toString()).join(",")}getNewLineRanges(){let f=[],i=0;for(let h of this.replacements)f.push(X.ofLength(h.lineRange.startLineNumber+i,h.newLines.length)),i+=h.newLines.length-h.lineRange.length;return f}}class Ac{static fromSingleTextEdit(f,i){let h=li(f.text),b=f.range.startLineNumber,v=i.getValueOfRange(t.fromPositions(new s(f.range.startLineNumber,1),f.range.getStartPosition()));h[0]=v+h[0];let w=f.range.endLineNumber+1,x=i.getTransformer().getLineLength(f.range.endLineNumber)+1,I=i.getValueOfRange(t.fromPositions(f.range.getEndPosition(),new s(f.range.endLineNumber,x)));h[h.length-1]=h[h.length-1]+I;let E=f.range.startColumn===i.getTransformer().getLineLength(f.range.startLineNumber)+1,T=f.range.endColumn===1;if(E&&h[0].length===v.length)b++,h.shift();if(h.length>0&&b<w&&T&&h[h.length-1].length===I.length)w--,h.pop();return new Ac(new X(b,w),h)}constructor(f,i){this.lineRange=f,this.newLines=i}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new BC([this])}}class VC{get lineEdit(){if(this.action?.kind==="jumpTo")return new Ac(X.ofLength(this.action.position.lineNumber,0),[]);else if(this.action?.kind==="edit")return Ac.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText);return new Ac(new X(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(X.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(f,i,h,b,v,w,x){this.originalText=f,this.action=i,this.edit=h,this.cursorPosition=b,this.multiCursorPositions=v,this.commands=w,this.inlineCompletion=x}}class KC{constructor(f,i,h){this._model=f,this.inlineEdit=i,this.tabAction=h,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=u(this,(b)=>pC(this._model.editor,this.inlineEdit.inlineCompletion,b)),this.onDidAccept=this._model.onDidAccept}accept(f){this._model.accept(void 0,f)}handleInlineEditShownNextFrame(f,i){let h=this.inlineEdit.inlineCompletion,b=Date.now();h.addRef(),ha(()=>{this._model.handleInlineSuggestionShown(h,f,i,b),h.removeRef()})}}var RO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},kO=function(f,i){return function(h,b){i(h,b,f)}},Ef=class f extends n{constructor(i,h,b){super();this._editor=i,this._edit=h,this._accessibilityService=b,this.onDidClick=k.None,this._iconRef=de.ref(),this.isHovered=Re(!1),this._editorObs=rt(this._editor);let w=this._edit.map((T)=>T?.edit?.replacements[0]??null).map((T)=>T?Vo(T,this._editor.getModel()).range.getStartPosition():null),x=this._editorObs.observePosition(w,this._store),I=u((T)=>{let O=x.read(T);if(!O)return null;let A=this._editorObs.layoutInfoContentLeft.read(T),Y=this._editorObs.scrollLeft.read(T);return new oi(A+O.x-Y,O.y)}),E=de.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(I)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:E,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:Re(0)})),this.isVisible=this._edit.map((T,O)=>!!T&&I.read(O)!==null)}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:0.2,transform:"translateY(1px)"},{offset:0.36,transform:"translateY(-1px)"},{offset:0.52,transform:"translateY(1px)"},{offset:0.68,transform:"translateY(-1px)"},{offset:0.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2000}).finished}getCollapsedIndicator(i){let h=this._editorObs.layoutInfoContentLeft,b=i.map((w,x)=>w?w.deltaX(-h.read(x)):null),v=this.createIconPath(b);return de.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Ci((w)=>Rc(this._editorObs).read(w)),overflow:"hidden",pointerEvents:"none"}},[de.svgElem("path",{class:"collapsedViewPath",d:v,fill:M(un)})])}createIconPath(i){return i.map((w)=>{if(!w)return new Nc().build();let x=w.deltaX(-3).deltaY(-1),I=x.deltaX(6),E=x.deltaY(1),T=I.deltaY(1),O=E.deltaX(3).deltaY(3);return new Nc().moveTo(x).lineTo(I).lineTo(T).lineTo(O).lineTo(E).lineTo(x).build()})}};Ef=RO([kO(2,Yt)],Ef);var TO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ND=function(f,i){return function(h,b){i(h,b,f)}},kf=14,zC=0,ks=4,Kf=4,OD=2,qf=class f extends n{constructor(i,h,b,v,w,x){super();this._editor=i,this._languageService=x,this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._isHovered=j(this,!1),this.isHovered=this._isHovered,this._viewRef=de.ref(),this._editorObs=rt(this._editor);let I=b.map((A,Y)=>{let ee;switch(A){case Mt.Inactive:ee=Ic;break;case Mt.Jump:ee=Vr;break;case Mt.Accept:ee=Lc;break}return{border:mi(ee,w).read(Y).toString(),background:ao(v.read(Y))}}),E=h.map((A)=>A?this.getState(A):void 0),T=E.map((A)=>A?this.getRendering(A,I):void 0);this.minEditorScrollHeight=u(this,(A)=>{let Y=E.read(A);if(!Y)return 0;return Y.rect.read(A).bottom+this._editor.getScrollTop()});let O=de.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[T]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:O.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:Zr(this,(A,Y)=>{let ee=E.read(A);if(!ee)return Y??0;let te=ee.rect.map((oe)=>oe.right).read(A)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(A)+ks-this._editorObs.layoutInfoContentLeft.read(A);return Math.max(Y??0,te)}).recomputeInitiallyAndOnChange(this._store)})),this._register(W((A)=>{if(!T.read(A)){this._isHovered.set(!1,void 0);return}this._isHovered.set(O.isHovered.read(A),void 0)}))}fitsInsideViewport(i,h,b){let v=this._editorObs.layoutInfoWidth.read(b),w=this._editorObs.layoutInfoContentLeft.read(b),x=this._editor.getLayoutInfo().verticalScrollbarWidth,I=this._editorObs.layoutInfoMinimap.read(b).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(b).minimapWidth:0,E=Ko(this._editorObs,i,void 0),T=Ju(h,this._editor,this._editor.getModel()),O=ks+kf;return E+T+O<v-w-x-I}getState(i){let h=u(this,(I)=>{let E=i.range.startLineNumber,T=i.range.endLineNumber,O=i.range.startColumn,A=i.range.endColumn,Y=this._editor.getModel()?.getLineCount()??0,ee=Ko(this._editorObs,new X(E,E+1),I),te=E+1<=Y?Ko(this._editorObs,new X(E+1,E+2),I):void 0,oe=E-1>=1?Ko(this._editorObs,new X(E-1,E),I):void 0,ne=this._editor.getOffsetForColumn(E,O),re=this._editor.getOffsetForColumn(T,A);return{lineWidth:ee,lineWidthBelow:te,lineWidthAbove:oe,startContentLeftOffset:ne,endContentLeftOffset:re}}),b=i.range.startLineNumber,v=i.range.endLineNumber,w=this.fitsInsideViewport(new X(b,v+1),i.content,void 0);return{rect:u(this,(I)=>{let E=this._editorObs.getOption(59).read(I).typicalHalfwidthCharacterWidth,{lineWidth:T,lineWidthBelow:O,lineWidthAbove:A,startContentLeftOffset:Y,endContentLeftOffset:ee}=h.read(I),te=this._editorObs.layoutInfoContentLeft.read(I),oe=this._editorObs.observeLineHeightForLine(b).recomputeInitiallyAndOnChange(I.store).read(I),ne=this._editorObs.scrollTop.read(I),re=this._editorObs.scrollLeft.read(I),he;if(b===v&&ee+5*E>=T&&w)he="end";else if(O!==void 0&&O+kf-Kf-ks<Y)he="below";else if(A!==void 0&&A+kf-Kf-ks<Y)he="above";else he="end";let ue,Ie,Te=0,ae=0;switch(he){case"end":{ue=this._editorObs.editor.getTopForLineNumber(b),Ie=T,Te=ks+kf;break}case"below":{ue=this._editorObs.editor.getTopForLineNumber(b+1),Ie=Y,Te=ks+Kf,ae=zC+OD;break}case"above":{ue=this._editorObs.editor.getTopForLineNumber(b-1),Ie=Y,Te=ks+Kf,ae=-zC+OD;break}}return pt.fromLeftTopWidthHeight(te+Ie-re,ue-ne,E*i.content.length,oe).withMargin(zC,ks).translateX(Te).translateY(ae)}),label:i.content,kind:i.style}}getRendering(i,h){let b=document.createElement("div"),v=this._editor.getModel().tokenization.tokenizeLinesAt(1,[i.label])?.[0],w;if(v&&i.kind===j_.Code)w=qa.fromLineTokens(v).toLineTokens(i.label,this._languageService.languageIdCodec);else w=St.createEmpty(i.label,this._languageService.languageIdCodec);let x=md(new Ec([w]),wa.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],b,!0);b.style.width=`${x.minWidthInPx}px`;let I=i.rect.map((E)=>E.withMargin(0,ks));return de.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Ci((E)=>I.read(E)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:h.map((E)=>`1px solid ${E.border}`),borderRadius:`${bi}px`,backgroundColor:h.map((E)=>E.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:(E)=>{E.preventDefault()},onclick:(E)=>{this._onDidClick.fire(Do.create(E))}},[b])}};qf=TO([ND(4,je),ND(5,yt)],qf);var NO=0,OO=0,UC=1,MO=1,PO=3,$C=bi;class jC extends n{constructor(f,i,h,b){super();this._editor=f,this._edit=i,this._uiState=h,this._tabAction=b,this.onDidClick=k.None,this._display=u(this,(x)=>this._uiState.read(x)?"block":"none"),this._editorMaxContentWidthInRange=u(this,(x)=>{let I=this._originalDisplayRange.read(x);if(!I)return Re(0);return this._editorObs.versionId.read(x),Zr(this,(E,T)=>{let O=Ko(this._editorObs,I,E);return Math.max(O,T??0)})}).map((x,I)=>x.read(I)),this._maxPrefixTrim=u(this,(x)=>{let I=this._uiState.read(x);if(!I)return{prefixTrim:0,prefixLeftOffset:0};return Dc(I.deletions,I.originalRange,[],this._editor)}),this._editorLayoutInfo=u(this,(x)=>{let I=this._edit.read(x);if(!I)return null;if(!this._uiState.read(x))return null;let T=this._editorObs.layoutInfo.read(x),O=this._editorObs.scrollLeft.read(x),A=this._editorObs.getOption(59).map((he)=>he.typicalHalfwidthCharacterWidth).read(x),Y=T.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(x),A)-O,ee=I.originalLineRange,te=this._originalVerticalStartPosition.read(x)??this._editor.getTopForLineNumber(ee.startLineNumber)-this._editorObs.scrollTop.read(x),oe=this._originalVerticalEndPosition.read(x)??this._editor.getTopForLineNumber(ee.endLineNumberExclusive)-this._editorObs.scrollTop.read(x),ne=T.contentLeft+this._maxPrefixTrim.read(x).prefixLeftOffset-O;if(Y<=ne)return null;return{codeRect:pt.fromLeftTopRightBottom(ne,te,Y,oe).withMargin(OO,NO),contentLeft:T.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=de.div({style:{pointerEvents:"none"}},u(this,(x)=>{let I=oo(this._editorLayoutInfo).read(x);if(!I)return;let E=I.map((ee)=>pt.fromLeftTopRightBottom(ee.contentLeft-$C-UC,ee.codeRect.top,ee.contentLeft,ee.codeRect.bottom)),T=u(this,(ee)=>{let te=I.read(ee).codeRect,oe=E.read(ee);return te.intersectHorizontal(new z(oe.left,Number.MAX_SAFE_INTEGER))}),O=this._uiState.map((ee)=>ee?.editorType===Bt.DiffEditor?PO:MO).read(x),A=T.map((ee)=>ee.withMargin(O,O)),Y=ao(this._uiState.map((ee)=>ee?.editorType??Bt.TextEditor).read(x));return[de.div({class:"originalSeparatorDeletion",style:{...A.read(x).toStyles(),borderRadius:`${$C}px`,border:`${UC+O}px solid ${Y}`,boxSizing:"border-box"}}),de.div({class:"originalOverlayDeletion",style:{...T.read(x).toStyles(),borderRadius:`${$C}px`,border:ka(this._tabAction).map((ee)=>`${UC}px solid ${M(ee)}`),boxSizing:"border-box",backgroundColor:M(Da)}}),de.div({class:"originalOverlayHiderDeletion",style:{...E.read(x).toStyles(),backgroundColor:Y}})]})).keepUpdated(this._store),this._nonOverflowView=de.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=Re(!1),this._editorObs=rt(this._editor);let v=u(this,(x)=>{let I=this._edit.read(x);return I?new s(I.originalLineRange.startLineNumber,1):null}),w=u(this,(x)=>{let I=this._edit.read(x);return I?new s(I.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map((x)=>x?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(v,this._store).map((x)=>x?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(w,this._store).map((x)=>x?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:u(this,(x)=>{let I=this._editorLayoutInfo.read(x);if(I===null)return 0;return I.codeRect.width})}))}}var AO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},MD=function(f,i){return function(h,b){i(h,b,f)}},Fc=1,FO=1,HO=3,GC=bi,Zf=class f extends n{constructor(i,h,b,v,w){super();this._editor=i,this._input=h,this._tabAction=b,this._languageService=w,this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._state=u(this,(x)=>{let I=this._input.read(x);if(!I)return;let E=this._editor.getModel(),T=E.getEOL();if(I.startColumn===1&&I.lineNumber>1&&E.getLineLength(I.lineNumber)!==0&&I.text.endsWith(T)&&!I.text.startsWith(T)){let O=E.getLineLength(I.lineNumber-1)+1;return{lineNumber:I.lineNumber-1,column:O,text:T+I.text.slice(0,-T.length)}}return{lineNumber:I.lineNumber,column:I.startColumn,text:I.text}}),this._trimVertically=u(this,(x)=>{let I=this._state.read(x);if(!I)return{topOffset:0,contentHeight:0,linesTop:0,linesBottom:0};let E=I.text,T=this._editor.getLineHeightForPosition(new s(I.lineNumber,1)),O=this._editor.getModel().getEOL(),A=E.split(O).length,Y=0,ee=0;if(E.trim()!==""){let te=0;for(;te<E.length&&E.startsWith(O,te);te+=O.length)Y+=1;for(let oe=E.length;oe>te&&E.endsWith(O,oe);oe-=O.length)ee+=1}return{topOffset:Y*T,contentHeight:(A-Y-ee)*T,linesTop:Y,linesBottom:ee}}),this._maxPrefixTrim=u(this,(x)=>{let I=this._state.read(x);if(!I)return{prefixLeftOffset:0,prefixTrim:0};let E=this._editor.getModel(),T=E.getEOL(),O=this._trimVertically.read(x),A=I.text.split(T),Y=A.slice(O.linesTop,A.length-O.linesBottom);if(O.linesTop===0)Y[0]=E.getLineContent(I.lineNumber)+Y[0];let ee=new X(I.lineNumber,I.lineNumber+(O.linesTop>0?0:1));return Dc([],ee,Y,this._editor)}),this._ghostText=u((x)=>{let I=this._state.read(x),E=this._maxPrefixTrim.read(x);if(!I)return;let O=this._editor.getModel().getEOL(),Y=I.text.split(O).map((ee,te)=>new Sc(new t(te+1,te===0?1:E.prefixTrim+1,te+1,ee.length+1),"modified-background",0));return new Is(I.lineNumber,[new Bd(I.column,I.text,!1,Y)])}),this._display=u(this,(x)=>this._state.read(x)?"block":"none"),this._editorMaxContentWidthInRange=u(this,(x)=>{let I=this._state.read(x);if(!I)return 0;this._editorObs.versionId.read(x);let E=this._editor.getModel(),T=E.getEOL(),O=I.text.startsWith(T)?"":E.getValueInRange(new t(I.lineNumber,1,I.lineNumber,I.column)),A=E.getValueInRange(new t(I.lineNumber,I.column,I.lineNumber,E.getLineLength(I.lineNumber)+1)),ee=(O+I.text+A).split(T),te=wa.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),oe=ee.map((ne)=>{let re=E.tokenization.tokenizeLinesAt(I.lineNumber,[ne])?.[0],he;if(re)he=qa.fromLineTokens(re).toLineTokens(ne,this._languageService.languageIdCodec);else he=St.createEmpty(ne,this._languageService.languageIdCodec);return md(new Ec([he]),te,[],g("div"),!0).minWidthInPx});return Math.max(...oe)}),this.startLineOffset=this._trimVertically.map((x)=>x.topOffset),this.originalLines=this._state.map((x)=>x?new X(x.lineNumber,Math.min(x.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=u(this,(x)=>{this._ghostText.read(x);let I=this._state.read(x);if(!I)return null;this._editorObs.observePosition(j(this,new s(I.lineNumber,I.column)),x.store).read(x);let E=this._editorObs.layoutInfo.read(x),T=this._editorObs.scrollLeft.read(x),O=this._editorObs.layoutInfoVerticalScrollbarWidth.read(x),A=E.contentLeft+this._editorMaxContentWidthInRange.read(x)-T,Y=this._maxPrefixTrim.read(x).prefixLeftOffset??0,ee=E.contentLeft+Y-T;if(A<=ee)return null;let{topOffset:te,contentHeight:oe}=this._trimVertically.read(x),ne=this._editorObs.scrollTop.read(x),re=this._editor.getTopForLineNumber(I.lineNumber)-ne+te,he=re+oe,ue=new pt(ee,re,A,he);return{overlay:ue,startsAtContentLeft:Y===0,contentLeft:E.contentLeft,minContentWidthRequired:Y+ue.width+O}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=de.div({style:{pointerEvents:"none"}},u(this,(x)=>{let I=oo(this._overlayLayout).read(x);if(!I)return;let E=I.map((ee)=>pt.fromLeftTopRightBottom(ee.contentLeft-GC-Fc,ee.overlay.top,ee.contentLeft,ee.overlay.bottom)).read(x),T=this._input.map((ee)=>ee?.editorType===Bt.DiffEditor?HO:FO).read(x),O=I.map((ee)=>ee.overlay.withMargin(0,Fc,Fc,ee.startsAtContentLeft?0:Fc).intersectHorizontal(new z(E.left,Number.MAX_SAFE_INTEGER))),A=O.map((ee)=>ee.withMargin(T,T)),Y=ao(this._input.read(void 0)?.editorType??Bt.TextEditor);return[de.div({class:"originalUnderlayInsertion",style:{...A.read(x).toStyles(),borderRadius:GC,border:`${Fc+T}px solid ${Y}`,boxSizing:"border-box"}}),de.div({class:"originalOverlayInsertion",style:{...O.read(x).toStyles(),borderRadius:GC,border:Rs(this._tabAction).map((ee)=>`${Fc}px solid ${M(ee)}`),boxSizing:"border-box",backgroundColor:M(mf)}}),de.div({class:"originalOverlayHiderInsertion",style:{...E.toStyles(),backgroundColor:Y}})]})).keepUpdated(this._store),this._view=de.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=rt(this._editor),this._ghostTextView=this._register(v.createInstance(Sa,this._editor,u((x)=>{let I=this._ghostText.read(x);if(!I)return;return{ghostText:I,handleInlineCompletionShown:(E)=>{},warning:void 0}}),{extraClasses:["inline-edit"],isClickable:!0,shouldKeepCursorStable:!0})),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick((x)=>{this._onDidClick.fire(new Do(x))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:u(this,(x)=>{let I=this._overlayLayout.read(x);if(I===null)return 0;return I.minContentWidthRequired})}))}};Zf=AO([MD(3,D),MD(4,yt)],Zf);var WO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},PD=function(f,i){return function(h,b){i(h,b,f)}},Xf=class f extends n{constructor(i,h,b,v,w,x){super();this._editor=i,this._edit=h,this._editorType=b,this._tabAction=v,this._languageService=w,this._themeService=x,this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((I,E)=>I?Dc(I.replacements.flatMap((T)=>[T.originalRange,T.modifiedRange]),I.originalRange,I.modifiedLines,this._editor.editor,E):void 0),this._modifiedLineElements=u(this,(I)=>{let E=[],T=0,O=this._maxPrefixTrim.read(I),A=this._edit.read(I);if(!A||!O)return;let Y=O.prefixTrim,ee=BO(A.replacements.map((ne)=>ne.modifiedRange)).map((ne)=>new t(ne.startLineNumber,ne.startColumn-Y,ne.endLineNumber,ne.endColumn-Y)),te=this._editor.model.get(),oe=A.modifiedRange.startLineNumber;for(let ne=0;ne<A.modifiedRange.length;ne++){let re=document.createElement("div"),he=oe+ne,ue=A.modifiedLines[ne].slice(Y),Ie=te.tokenization.tokenizeLinesAt(he,[ue])?.[0],Te;if(Ie)Te=qa.fromLineTokens(Ie).toLineTokens(ue,this._languageService.languageIdCodec);else Te=St.createEmpty(ue,this._languageService.languageIdCodec);let ae=[];for(let Me of ee.filter((He)=>He.startLineNumber===he)){let He=Math.min(Me.endColumn,ue.length+1);ae.push(new Sc(new t(1,Me.startColumn,1,He),"inlineCompletions-modified-bubble",0))}let xe=md(new Ec([Te]),wa.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),ae,re,!0);this._editor.getOption(59).read(I),T=Math.max(T,xe.minWidthInPx),E.push(re)}return{lines:E,requiredWidth:T}}),this._layout=u(this,(I)=>{let E=this._modifiedLineElements.read(I),T=this._maxPrefixTrim.read(I),O=this._edit.read(I);if(!E||!T||!O)return;let{prefixLeftOffset:A}=T,{requiredWidth:Y}=E,ee=this._editor.observeLineHeightsForLineRange(O.originalRange).read(I),te=(()=>{let tt=ee.slice(0,O.modifiedRange.length);while(tt.length<O.modifiedRange.length)tt.push(ee[ee.length-1]);return tt})(),oe=this._editor.layoutInfoContentLeft.read(I),ne=this._editor.layoutInfoVerticalScrollbarWidth.read(I),re=this._editor.scrollLeft.read(I),he=this._editor.scrollTop.read(I),ue=oe-re,Ie=this._editor.editor.getModel(),Te=O.originalRange.mapToLineArray((tt)=>this._editor.editor.getOffsetForColumn(tt,Ie.getLineMaxColumn(tt))-A),ae=Math.max(...Te,Y),xe=O.originalRange.startLineNumber,Me=O.originalRange.endLineNumberExclusive-1,He=this._editor.editor.getTopForLineNumber(xe)-he,qe=this._editor.editor.getBottomForLineNumber(Me)-he,Oe=pt.fromLeftTopWidthHeight(ue+A,He,ae,qe-He),Ze=pt.fromLeftTopWidthHeight(Oe.left,Oe.bottom,Oe.width,te.reduce((tt,Gt)=>tt+Gt,0)),dt=pt.hull([Oe,Ze]),Qe=dt.intersectVertical(new z(Oe.bottom,Number.MAX_SAFE_INTEGER)),ut=new pt(Qe.left,Qe.top,Qe.right,Qe.bottom);return{originalLinesOverlay:Oe,modifiedLinesOverlay:Ze,background:dt,lowerBackground:Qe,lowerText:ut,modifiedLineHeights:te,minContentWidthRequired:A+ae+ne}}),this._viewZoneInfo=u((I)=>{if(!this._editor.getOption(71).map((ee)=>ee.edits.allowCodeShifting==="always").read(I))return;let T=this._layout.read(I),O=this._edit.read(I);if(!T||!O)return;let A=T.lowerBackground.height,Y=O.originalRange.endLineNumberExclusive;return{height:A,lineNumber:Y}}),this.minEditorScrollHeight=u(this,(I)=>{let E=oo(this._layout).read(I);if(!E||this._viewZoneInfo.read(I)!==void 0)return 0;return E.read(I).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=de.div({class:"line-replacement"},[u(this,(I)=>{let E=oo(this._layout).read(I),T=this._modifiedLineElements.read(I);if(!E||!T)return[];let O=E.read(I),A=this._editor.layoutInfoContentLeft.read(I),Y=this._editorType.read(I)===Bt.DiffEditor?3:1;T.lines.forEach((ne,re)=>{ne.style.width=`${O.lowerText.width}px`,ne.style.height=`${O.modifiedLineHeights[re]}px`,ne.style.position="relative"});let ee=Rs(this._tabAction).read(I),te=ka(this._tabAction).read(I),oe=ao(this._editorType.read(I));return[de.div({style:{position:"absolute",...Ci((ne)=>Rc(this._editor).read(ne)),overflow:"hidden",pointerEvents:"none"}},[de.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Ci((ne)=>E.read(ne).background.translateX(-A).withMargin(Y)),borderRadius:`${bi}px`,border:`${Y+1}px solid ${oe}`,boxSizing:"border-box",pointerEvents:"none"}}),de.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Ci((ne)=>E.read(ne).background.translateX(-A)),borderRadius:`${bi}px`,border:mi(te,this._themeService).map((ne)=>`1px solid ${ne.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:M(Da)}}),de.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Ci((ne)=>E.read(ne).lowerBackground.translateX(-A)),borderRadius:`0 0 ${bi}px ${bi}px`,background:oe,boxShadow:`${M(Df)} 0 6px 6px -6px`,border:`1px solid ${M(ee)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:(ne)=>{ne.preventDefault()},onclick:(ne)=>this._onDidClick.fire(Do.create(ne))},[de.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:M(bD)}})]),de.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Ci((ne)=>E.read(ne).lowerText.translateX(-A)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${bi}px ${bi}px`,overflow:"hidden"}},[...T.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered((I)=>this._isMouseOverWidget(I),this._store),this._previousViewZoneInfo=void 0,this._register(R(()=>this._editor.editor.changeViewZones((I)=>this.removePreviousViewZone(I)))),this._register(DR(this._viewZoneInfo,({lastValue:I,newValue:E})=>{if(I===E||I?.height===E?.height&&I?.lineNumber===E?.lineNumber)return;this._editor.editor.changeViewZones((T)=>{if(this.removePreviousViewZone(T),!E)return;this.addViewZone(E,T)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:u(this,(I)=>this._layout.read(I)?.minContentWidthRequired??0),position:Re({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(i){let h=this._layout.get();if(!h||!(i.event instanceof Ga))return!1;return h.lowerBackground.containsPoint(new oi(i.event.relativePos.x,i.event.relativePos.y))}removePreviousViewZone(i){if(!this._previousViewZoneInfo)return;i.removeZone(this._previousViewZoneInfo.id);let h=this._editor.cursorLineNumber.get();if(h!==null&&h>=this._previousViewZoneInfo.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height);this._previousViewZoneInfo=void 0}addViewZone(i,h){let b=h.addZone({afterLineNumber:i.lineNumber-1,heightInPx:i.height,domNode:g("div")});this._previousViewZoneInfo={height:i.height,lineNumber:i.lineNumber,id:b};let v=this._editor.cursorLineNumber.get();if(v!==null&&v>=i.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()+i.height)}};Xf=WO([PD(4,yt),PD(5,je)],Xf);function BO(f){let i=[];while(f.length){let h=f.shift();if(h.startLineNumber!==h.endLineNumber)f.push(new t(h.startLineNumber+1,1,h.endLineNumber,h.endColumn)),h=new t(h.startLineNumber,h.startColumn,h.startLineNumber,Number.MAX_SAFE_INTEGER);i.push(h)}return i}function AD(f,i){let h={};for(let[x,I]of Object.entries(i))if(Array.isArray(I))h[x]={min:0,rules:I};else h[x]={min:I.min??0,rules:I.rules??[{max:I.max,priority:I.priority,share:I.share}]};let b={},v=0;for(let[x,I]of Object.entries(h))b[x]=I.min,v+=I.min;if(v>f)return null;let w=f-v;while(w>0){let x=[];for(let[Y,ee]of Object.entries(h))for(let te=0;te<ee.rules.length;te++){let oe=ee.rules[te],ne=b[Y],re=oe.max??1/0;if(ne<re)x.push({partKey:Y,ruleIndex:te,rule:oe,priority:oe.priority??0,share:oe.share??1})}if(x.length===0)break;let I=Math.max(...x.map((Y)=>Y.priority)),E=x.filter((Y)=>Y.priority===I),T=E.reduce((Y,ee)=>Y+ee.share,0),O=0,A=[];for(let Y of E){let ee=Y.rule,te=b[Y.partKey],ne=(ee.max??1/0)-te,re=w*Y.share/T,he=Math.min(re,ne);A.push({partKey:Y.partKey,ruleIndex:Y.ruleIndex,amount:he}),O+=he}if(O===0)break;for(let Y of A)b[Y.partKey]+=Y.amount;if(w-=O,w<0.0001)break}return b}var VO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},qC=function(f,i){return function(h,b){i(h,b,f)}},Qf=class f extends n{constructor(i,h,b,v,w,x){super();this._editor=i,this._data=b,this._themeService=v,this._keybindingService=w,this._contextKeyService=x,this._styles=u(this,(E)=>({background:mi(Vr,this._themeService).read(E).toString(),foreground:mi(Ra,this._themeService).read(E).toString(),border:mi(un,this._themeService).read(E).toString()})),this._pos=u(this,(E)=>this._editor.observePosition(u((T)=>this._data.read(T)?.jumpToPosition||null),E.store)).flatten(),this._layout=u(this,(E)=>{let T=this._data.read(E);if(!T)return;let O=T.jumpToPosition,A=this._editor.observeLineHeightForLine(Re(O.lineNumber)).read(E),Y=this._editor.scrollLeft.read(E),ee=this._pos.read(E);if(!ee)return;let te=this._editor.layoutInfo.read(E);return{widgetRect:pt.fromLeftTopWidthHeight(ee.x+te.contentLeft+2-Y,ee.y,100,A)}}),this._blink=KO([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=de.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map((E)=>E?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Ci((E)=>this._layout.read(E)?.widgetRect)}},u((E)=>{if(this._data.read(E)===void 0)return[];return de.div({style:{display:"flex",alignItems:"center",gap:"4px",padding:"0 4px",height:"100%",backgroundColor:this._styles.map((T)=>T.background),["--vscodeIconForeground"]:this._styles.map((T)=>T.foreground),border:this._styles.map((T)=>`1px solid ${T.border}`),borderRadius:"3px",boxSizing:"border-box",fontSize:"11px",color:this._styles.map((T)=>T.foreground)}},[this._style==="cursor"?de.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map((T)=>T?"0":"1")}}):[u(()=>de.elem("div",{},zO(this._keybinding))),de.elem("div",{style:{lineHeight:this._layout.map((T)=>T?.widgetRect.height),marginTop:"-2px"}},["to jump"])]])})),this._style=h.style,this._keybinding=this._getKeybinding(qn);let I=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:I.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:Re(0)})),this._register(this._editor.setDecorations(u((E)=>{let T=this._data.read(E);if(!T)return[];return[{range:t.fromPositions(T.jumpToPosition,T.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]})))}_getKeybinding(i,h=jt.ofCaller()){if(!i)return Re(void 0);return Ne(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(i),h)}};Qf=VO([qC(3,je),qC(4,fe),qC(5,K)],Qf);function KO(f,i=jt.ofCaller()){let h=0;return Ne(void 0,(b)=>{h=0;let v=new _e(()=>{h=(h+1)%f.length,b(null),v.schedule(f[h].durationMs)},0);return v.schedule(0),v},()=>f[h].value,i)}function zO(f){return u((i)=>de.div({style:{},ref:(h)=>{let b=i.store.add(new va(h,vi,{disableTitle:!0,...sb,keybindingLabelShadow:void 0,keybindingLabelForeground:M(Ra),keybindingLabelBackground:"transparent",keybindingLabelBorder:M(Ra),keybindingLabelBottomBorder:void 0}));i.store.add(W((v)=>{b.set(f.read(v))}))}}))}var UO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},$O=function(f,i){return function(h,b){i(h,b,f)}};function jO(f,i,h){let b=Math.max(1,Math.min(h,f)),v=Math.max(1,b-i),w=Math.min(h+1,b+i+1);return new X(v,w)}var e_=class f extends n{constructor(i,h,b,v,w){super();this._previewTextModel=i,this._properties=h,this._parentEditor=b,this._tabAction=v,this._instantiationService=w,this._previewRef=de.ref(),this.element=de.div({class:"preview",style:{},ref:this._previewRef}),this._state=u(this,(x)=>{let I=this._properties.read(x);if(!I)return;let E,T;if(I.nextCursorPosition!==null)E="original",T=I.nextCursorPosition.lineNumber;else if(I.diff[0].innerChanges?.every((te)=>te.modifiedRange.isEmpty()))E="original",T=I.diff[0].original.startLineNumber;else E="modified",T=I.diff[0].modified.startLineNumber;let O=E==="modified"?Wr.snapshot(this._previewTextModel):I.target,A=this._parentEditorObs.getOption(71).read(x).edits.longDistanceHintContextLineCount,Y=E==="modified"?this._previewTextModel:I.target.dangerouslyGetUnderlyingModel(),ee=jO(T,A,Y.getLineCount());return{mode:E,targetLineNumber:T,visibleLineRange:ee,textModel:O,diff:I.diff}}),this.updatePreviewEditorEffect=u(this,(x)=>{this._previewEditorObs.model.read(x);let I=this._state.read(x)?.visibleLineRange;if(!I)return;let E=[];if(I.startLineNumber>1)E.push(new t(1,1,I.startLineNumber-1,1));if(I.endLineNumberExclusive<this._previewTextModel.getLineCount()+1)E.push(new t(I.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(E,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=u(this,(x)=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,x)),this.contentHeight=u(this,(x)=>{let I=this._state.read(x);if(!I)return Re(null);return this._previewEditorObs.observeLineHeightsForLineRange(I.visibleLineRange).map((E)=>E.reduce((T,O)=>T+O,0))}).flatten(),this._editorDecorations=u(this,(x)=>{let I=this._state.read(x);if(!I)return;let E={diff:I.diff},T=[],O=[],A=ce.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),Y=ce.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),ee=ce.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(let te of E.diff)if(te.modified.isEmpty||te.original.isEmpty){if(!te.original.isEmpty)T.push({range:te.original.toInclusiveRange(),options:A});if(!te.modified.isEmpty)O.push({range:te.modified.toInclusiveRange(),options:Y})}else for(let oe of te.innerChanges||[]){if(te.original.contains(oe.originalRange.startLineNumber)&&!oe.originalRange.isEmpty())T.push({range:oe.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Tc("inlineCompletions-char-delete",oe.originalRange.isEmpty()&&"empty"),zIndex:1}});if(te.modified.contains(oe.modifiedRange.startLineNumber))O.push({range:oe.modifiedRange,options:ee})}return{originalDecorations:T,modifiedDecorations:O}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=rt(this._parentEditor),this._register(W((x)=>{let I=this._state.read(x)?.textModel||null;if(I)this.previewEditor.setModel(I.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=rt(this.previewEditor),this._register(this._previewEditorObs.setDecorations(u((x)=>{let I=this._state.read(x),E=this._editorDecorations.read(x);return(I?.mode==="original"?E?.originalDecorations:E?.modifiedDecorations)??[]}))),this._register(W((x)=>{if(!this._properties.read(x))return;let I=this._parentEditorObs.cursorPosition.read(x);if(I)this.previewEditor.setPosition(this._previewTextModel.validatePosition(I),"longDistanceHintPreview")})),this._register(W((x)=>{let I=this._state.read(x);if(!I)return;let E=(I.visibleLineRange.endLineNumberExclusive-1).toString().length;this.previewEditor.updateOptions({lineNumbersMinChars:E+1})})),this._register(this._instantiationService.createInstance(Oc,this._previewEditorObs,u((x)=>{let I=this._state.read(x);if(!I)return;let E=this._properties.read(x);if(!E)return;return new eg(E.inlineSuggestInfo,X.ofLength(I.targetLineNumber,1),E.model,void 0)}),this._tabAction,Re(0),Re(!1),j(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(Zi,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:{[mt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(i,h){let b=this._state.read(h);if(!b)return;let v=b.diff,w=this._properties.read(h)?.nextCursorPosition,x=b.visibleLineRange,I=this._previewEditorObs.layoutInfo.read(h),E=Ko(this._previewEditorObs,x,h),T;if(w)T=t.fromPositions(w);else if(v[0].innerChanges)T=b.mode==="modified"?v[0].innerChanges[0].modifiedRange:v[0].innerChanges[0].originalRange;else return;let O=GO(i.getModel(),T,5),A=this._previewEditorObs.getLeftOfPosition(O.getStartPosition(),h),Y=this._previewEditorObs.getLeftOfPosition(O.getEndPosition(),h),ee=Di(A,0,E),te=Di(Y,ee,E),oe=i.getModel().getLineFirstNonWhitespaceColumn(O.startLineNumber),ne=this._previewEditorObs.getLeftOfPosition(new s(O.startLineNumber,oe),h),re=new z(ee,te);return{indentationEnd:ne,preferredRangeToReveal:re,maxEditorWidth:E+I.contentLeft,contentWidth:E,nonContentWidth:I.contentLeft}}layout(i,h){this.previewEditor.layout(i),this._previewEditorObs.editor.setScrollLeft(h)}};e_=UO([$O(4,D)],e_);function GO(f,i,h){let b=i.getStartPosition(),v=i.getEndPosition(),w=f.getLineContent(b.lineNumber);function x(O){let A=w.charAt(O-1);return/[a-zA-Z0-9_]/.test(A)}function I(O){let A=w.charAt(O-1);return A===" "||A==="\t"}let E=b.column;while(E>1&&x(E)&&!I(E-1)&&b.column-E<h)E--;let T=v.column-1;while(T<=w.length&&x(T)&&!I(T+1)&&T-v.column<h)T++;return new t(b.lineNumber,E,v.lineNumber,T+1)}function FD(f,i){let{start:h,endExclusive:b}=f,v=Number.MAX_VALUE,w=0;for(let x of i){let I=w+x.width,E=Math.max(h,w),T=Math.min(b,I);if(E<T)v=Math.min(v,x.height);w=I}if(b>w)return 0;return v===Number.MAX_VALUE?0:v}class t_{constructor(f,i,h){this._lineRangeInfo=f,this.availableSpaceSizes=f.sizes.map((b,v)=>{let w=f.lineRange.startLineNumber+v,x=h(w);return new Ca(Math.max(0,i-b.width-x),b.height)}),this.availableSpaceHeightPrefixSums=ZO(this.availableSpaceSizes,(b)=>b.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map((b)=>b.transpose())}getWidgetVerticalOutline(f,i,h){let b=f-this._lineRangeInfo.lineRange.startLineNumber,v=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[b],w=z.ofStartAndLength(v,i),{previewEditorMargin:x,widgetPadding:I,widgetBorder:E,lowerBarHeight:T}=h;return w.withMargin(x+I+E).withMargin(0,T)}tryFindWidgetOutline(f,i,h,b){if(this._lineRangeInfo.lineRange.length<3)return;return qO(this._lineRangeInfo.lineRange.addMargin(-1,-1),f,(v)=>{let w=this.getWidgetVerticalOutline(v,i,b),x=FD(w.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(x<b.minWidgetWidth)return;return{horizontalWidgetRange:z.ofStartAndLength(h-x,x),verticalWidgetRange:w}})}}function HD(f,i,h,b,v){let w=[],x=f.startLineNumber,I=h,E=[];for(let T=0;T<i.length;T++){let O=f.startLineNumber+T,A=I+E.reduce((ee,te)=>ee+te.height,0),Y=b.editor.getTopForLineNumber(O);if(T>0&&Y!==A)w.push({lineRange:X.ofLength(x,O-x),top:I,sizes:E}),x=O,I=Y,E=[];E.push(i[T])}return w.push({lineRange:X.ofLength(x,f.endLineNumberExclusive-x),top:I,sizes:E}),u({owner:"splitIntoContinuousLineRanges"},(T)=>b.observeTopForLineNumber(f.endLineNumberExclusive-1).read(T)).read(v),w}function qO(f,i,h){for(let b=0;;b++){let v=i+b;if(v<=f.endLineNumberExclusive){let x=h(v);if(x!==void 0)return x}let w=i-b;if(w>=f.startLineNumber){let x=h(w);if(x!==void 0)return x}if(w<f.startLineNumber&&v>f.endLineNumberExclusive)return}}function ZO(f,i){let h=[0],b=0;for(let v of f)b+=i(v),h.push(b);return h}var XO=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},tg=function(f,i){return function(h,b){i(h,b,f)}},YO=6,ZC={EMPTY_SPACE:425,OVERLAY:375},JO=250,QO={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:JO},i_=class f extends n{constructor(i,h,b,v,w,x,I,E,T){super();this._editor=i,this._viewState=h,this._previewTextModel=b,this._tabAction=v,this._instantiationService=w,this._themeService=x,this._keybindingService=I,this._modelService=E,this._languageService=T,this.onDidClick=k.None,this._viewWithElement=void 0,this._hintTextPosition=u(this,(O)=>{let A=this._viewState.read(O);return A?new s(A.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=u(this,(O)=>{let A=this._viewState.read(O),Y=this._hintTextPosition.read(O);if(!A||!Y)return[];let ee=this._editorObs.model.read(O);if(!ee)return[];let te=X.ofLength(Y.lineNumber,1).addMargin(5,5).intersect(X.ofLength(1,ee.getLineCount()));if(!te)return[];let oe=xD(this._editorObs,te,O),ne=this._editorObs.observeTopForLineNumber(te.startLineNumber).read(O);return HD(te,oe,ne,this._editorObs,O)}),this._isVisibleDelayed=Lk(u(this,(O)=>this._viewState.read(O)?.hint.isVisible),(O,A)=>O===!0&&A===!1?200:0),this._previewEditorLayoutInfo=u(this,(O)=>{let A=this._viewState.read(O);if(!A||!this._isVisibleDelayed.read(O))return;let Y=this._lineSizesAroundHintPosition.read(O);if(Y.length===0)return;let ee=this._editorObs.scrollTop.read(O),te=this._editorObs.scrollLeft.read(O),oe=this._editorObs.layoutInfo.read(O),ne=this._previewEditor.contentHeight.read(O),re=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(O);if(!ne||!re)return;let he=oe.contentWidth-oe.verticalScrollbarWidth,ue=oe.contentLeft+he;if(!this._editorObs.cursorLineNumber.read(O))return;let Te=QO,xe=ne+2,Me,He,qe=(zo)=>zo===A.hint.lineNumber?40:20;for(let zo of Y){let rr=new t_(zo,he,qe);if(He=rr,Me=rr.tryFindWidgetOutline(A.hint.lineNumber,xe,ue,Te),Me)break}let Oe="empty-space";if(!Me){Oe="overlay";let zo=Math.min(oe.width-oe.contentLeft,ZC.OVERLAY),rr=He??new t_(Y[0],he,qe);Me={horizontalWidgetRange:z.ofStartAndLength(ue-zo,zo),verticalWidgetRange:rr.getWidgetVerticalOutline(A.hint.lineNumber+2,xe,Te).delta(10)}}if(!Me)return;let Ze=pt.fromRanges(Me.horizontalWidgetRange,Me.verticalWidgetRange).translateX(-te).translateY(-ee),{previewEditorMargin:dt,widgetPadding:Qe,widgetBorder:ut,lowerBarHeight:tt}=Te,Gt=Oe==="overlay"?ZC.OVERLAY:ZC.EMPTY_SPACE,ct=re.maxEditorWidth+dt+Qe,vt=Math.min(Gt,Math.max(ct,Te.minWidgetWidth)),si=AD(Ze.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:vt,priority:1}]},spaceAfter:{min:10}});if(!si)return null;let Rt=eM([si.spaceBefore,si.content,si.spaceAfter],Ze.left);Ze.withHorizontalRange(Rt[0]);let Dt=Ze.withHorizontalRange(Rt[1]);Ze.withHorizontalRange(Rt[2]);let ai=Dt.withMargin(-Qe-ut-dt).withMargin(0,0,-tt,0),Xt=ai.width-re.nonContentWidth,Tt=Xt*0.8,Wi=re.preferredRangeToReveal.intersect(z.ofStartAndLength(re.preferredRangeToReveal.start,Tt))??re.preferredRangeToReveal,Ns=tM(re.indentationEnd,Xt,Wi);return{codeEditorSize:ai.getSize(),codeScrollLeft:te,contentLeft:oe.contentLeft,widgetRect:Dt,previewEditorMargin:dt,widgetPadding:Qe,widgetBorder:ut,lowerBarHeight:tt,desiredPreviewEditorScrollLeft:Ns.newScrollPosition}}),this._view=de.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:u(this,(O)=>this._previewEditorLayoutInfo.read(O)?"block":"none")}},[u(this,(O)=>[this._widgetContent])]),this._widgetContent=u(this,(O)=>de.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:M(kr),padding:this._previewEditorLayoutInfo.map((A)=>A?.widgetPadding),boxSizing:"border-box",borderRadius:YO,border:u((A)=>`${this._previewEditorLayoutInfo.read(A)?.widgetBorder}px solid ${this._styles.read(A).border}`),display:"flex",flexDirection:"column",opacity:u((A)=>this._viewState.read(A)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Ci((A)=>this._previewEditorLayoutInfo.read(A)?.widgetRect)},onmousedown:(A)=>{A.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[de.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map((A)=>A?.previewEditorMargin),background:this._styles.map((A)=>A.background),pointerEvents:"none"}},[u(this,(A)=>this._previewEditor.element)]),de.div({class:"bar",style:{color:M(Bv),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map((A)=>A?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[u(this,(A)=>{let Y=[],ee=this._viewState.read(A);if(!ee)return Y;let te=this._editorObs.model.read(A),oe=ee.target.uri,ne=!te||!ee.target.targets(te);if(ne){let Te=xi(oe),ae=Ud(this._modelService,this._languageService,oe,ko.FILE);Y.push(de.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[de.elem("span",{class:ae,style:{flexShrink:"0",marginRight:"4px"}}),Te]))}else{let Te=this._originalOutlineSource.read(A),ae=this._originalTargetLineNumber.read(A),xe=Te?.getAt(ae,A).slice(0,1)??[],Me=[];if(xe.length>0)for(let He=0;He<xe.length;He++){let qe=xe[He],Oe=yu.toIcon(qe.kind);Me.push(de.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[ur(Oe)," ",qe.name,...He===xe.length-1?[]:[ur(y.chevronRight)]]))}Y.push(de.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Me))}let re=this._originalTargetLineNumber.read(A),he=ne?y.arrowRight:ee.hint.lineNumber<re?y.arrowDown:y.arrowUp,ue=this._keybindingService.lookupKeybinding(Tl),Ie=ne?"Go to file":"Go to suggestion";if(ue&&ue.getLabel()==="Tab")Ie=ne?"Tab to open":"Tab to jump";return Y.push(de.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[Ie," ",ur(he)])),Y})])])),this._originalTargetLineNumber=u(this,(O)=>{let A=this._viewState.read(O);if(!A)return-1;if(A.edit.action?.kind==="jumpTo")return A.edit.action.position.lineNumber;return A.diff[0]?.original.startLineNumber??-1}),this._originalOutlineSource=Yr(this,(O)=>{let A=this._editorObs.model.read(O),Y=Au._breadcrumbsSourceFactory.read(O);return!A||!Y?void 0:Y(A,this._instantiationService)}),this._styles=u((O)=>{let A=this._tabAction.read(O),Y=Ea(qh,this._themeService).read(O),ee=Ne(this._themeService.onDidColorThemeChange,()=>{let oe=this._themeService.getColorTheme();return oe.type==="hcDark"||oe.type==="hcLight"}).read(O),te;if(ee)te=Y;else{let oe;switch(A){case Mt.Inactive:oe=Ic;break;case Mt.Jump:oe=Vr;break;case Mt.Accept:oe=Lc;break}te=mi(oe,this._themeService).read(O)}return{border:te.toString(),background:ao(this._viewState.map((oe)=>oe?.editorType??Bt.TextEditor).read(O))}}),this._editorObs=rt(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(e_,this._previewTextModel,u((O)=>{let A=this._viewState.read(O);if(!A)return;return{diff:A.diff,model:A.model,inlineSuggestInfo:A.inlineSuggestInfo,nextCursorPosition:A.nextCursorPosition,target:A.target}}),this._editor,this._tabAction)),this._viewWithElement=this._view.keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._viewWithElement.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:Re(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(W((O)=>{let A=this._previewEditorLayoutInfo.read(O);if(!A)return;this._previewEditor.layout(A.codeEditorSize.toDimension(),A.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};i_=XO([tg(4,D),tg(5,je),tg(6,fe),tg(7,_t),tg(8,yt)],i_);function eM(f,i=0){let h=[],b=i;for(let v of f)h.push(new z(b,b+v)),b+=v;return h}function tM(f,i,h){let b=new z(f,f+i);if(b.containsRange(h))return{newScrollPosition:f};if(h.length>i)return{newScrollPosition:h.start};if(h.endExclusive>b.endExclusive)return{newScrollPosition:h.endExclusive-i};if(h.start<b.start)return{newScrollPosition:h.start};return{newScrollPosition:f}}var iM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},XC=function(f,i){return function(h,b){i(h,b,f)}},Hc=0,ig=0,or=1,oM=1,nM=3,Ts=bi,YC=20,WD=12,og=class f extends n{static fitsInsideViewport(i,h,b,v){let w=rt(i),x=w.layoutInfoWidth.read(v),I=w.layoutInfoContentLeft.read(v),E=i.getLayoutInfo().verticalScrollbarWidth,T=w.layoutInfoMinimap.read(v).minimapLeft!==0?w.layoutInfoMinimap.read(v).minimapWidth:0,O=Ko(w,b.displayRange,void 0),A=b.lineEdit.newLines.reduce((te,oe)=>Math.max(te,Ju(oe,i,h)),0),Y=YC,ee=WD+2*or;return O+A+Y+ee<x-I-E-T}constructor(i,h,b,v,w,x,I,E){super();this._editor=i,this._edit=h,this._previewTextModel=b,this._uiState=v,this._tabAction=w,this._instantiationService=x,this._themeService=I,this._userInteractionService=E,this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._editorObs=rt(this._editor),this._display=u(this,(A)=>this._uiState.read(A)?"block":"none"),this.previewRef=de.ref();let T=this._uiState.map((A)=>A?.editorType===Bt.DiffEditor?nM:oM);this._editorContainer=de.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:(A)=>{A.preventDefault()},onclick:(A)=>{this._onDidClick.fire(Do.create(A))}},[de.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(Zi,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:{[mt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=rt(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=u(this,(A)=>{if(this._editorContainer.readEffect(A),this._previewEditorObs.model.read(A),this._display.read(A),this._nonOverflowView)this._nonOverflowView.element.style.display=this._display.read(A);let Y=this._uiState.read(A),ee=this._edit.read(A);if(!Y||!ee)return;let te=ee.originalLineRange,oe=[];if(te.startLineNumber>1)oe.push(new t(1,1,te.startLineNumber-1,1));if(te.startLineNumber+Y.newTextLineCount<this._previewTextModel.getLineCount()+1)oe.push(new t(te.startLineNumber+Y.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(oe,void 0,!0);let ne=[...this._activeViewZones];this._activeViewZones=[];let re=te.endLineNumberExclusive-te.startLineNumber-Y.newTextLineCount;this.previewEditor.changeViewZones((he)=>{if(ne.forEach((ue)=>he.removeZone(ue)),re>0)this._activeViewZones.push(he.addZone({afterLineNumber:te.startLineNumber+Y.newTextLineCount-1,heightInLines:re,showInHiddenAreas:!0,domNode:g("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=u(this,(A)=>{let Y=this._edit.read(A);if(!Y)return 0;return this._updatePreviewEditor.read(A),Ko(this._previewEditorObs,Y.modifiedLineRange,A)}),this._cursorPosIfTouchesEdit=u(this,(A)=>{let Y=this._editorObs.cursorPosition.read(A),ee=this._edit.read(A);if(!ee||!Y)return;return ee.modifiedLineRange.contains(Y.lineNumber)?Y:void 0}),this._originalStartPosition=u(this,(A)=>{let Y=this._edit.read(A);return Y?new s(Y.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=u(this,(A)=>{let Y=this._edit.read(A);return Y?new s(Y.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map((A)=>A?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map((A)=>A?.y),this._originalDisplayRange=this._edit.map((A)=>A?.displayRange),this._editorMaxContentWidthInRange=u(this,(A)=>{let Y=this._originalDisplayRange.read(A);if(!Y)return Re(0);return this._editorObs.versionId.read(A),Zr(this,(ee,te)=>{let oe=Ko(this._editorObs,Y,ee);return Math.max(oe,te??0)})}).map((A,Y)=>A.read(Y));let O=DD(this._editor,this._store);this._previewEditorLayoutInfo=u(this,(A)=>{let Y=this._edit.read(A);if(!Y)return null;if(!this._uiState.read(A))return null;let te=Y.originalLineRange,oe=this._editorObs.scrollLeft.read(A),ne=this._editorMaxContentWidthInRange.read(A),re=this._editorObs.layoutInfo.read(A),he=this._previewEditorWidth.read(A),ue=re.contentWidth-re.verticalScrollbarWidth,Ie=O.read(A),Te=re.contentLeft+re.contentWidth+Ie.left,ae=B(this._editor.getContainerDomNode()).innerWidth-Te,xe=B(this._editor.getContainerDomNode()).innerWidth-Ie.right,Me=Math.min(re.contentWidth*0.3,he,100),He=0,qe=He+ae,Oe=this._cursorPosIfTouchesEdit.read(A),Ze=Math.max(ue+oe-He-Math.max(0,Me-qe),Math.min(Oe?ID(this._editorObs,Oe,A)+50:0,ue+oe)),dt=Math.min(ne+YC,Ze),Qe=ne+YC+he+70,ut=Ze-dt,tt,Gt;if(dt>oe)tt=0,Gt=re.contentLeft+dt-oe;else tt=oe-dt,Gt=re.contentLeft;let ct=this._originalVerticalStartPosition.read(A)??this._editor.getTopForLineNumber(te.startLineNumber)-this._editorObs.scrollTop.read(A),vt=this._originalVerticalEndPosition.read(A)??this._editor.getBottomForLineNumber(te.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(A),si=re.contentLeft-oe,Rt=pt.fromLeftTopRightBottom(si,ct,Gt,vt),Dt=Rt.height===0;if(!Dt)Rt=Rt.withMargin(ig,Hc);let Xt=this._previewEditorObs.observeLineHeightsForLineRange(Y.modifiedLineRange).read(A).reduce((f_,s2)=>f_+s2,0),Tt=vt-ct,Wi=Math.max(Tt,Xt),Ns=ut===0,zo=0,rr=Math.min(he+WD,xe+re.width-re.contentLeft-zo),Oa=pt.fromLeftTopWidthHeight(Rt.right+zo,ct,rr,Wi);if(!Dt)Oa=Oa.withMargin(ig,Hc).translateX(Hc+or);else Oa=Oa.withMargin(ig,Hc).translateY(ig);return{codeRect:Rt,editRect:Oa,codeScrollLeft:oe,contentLeft:re.contentLeft,isInsertion:Dt,maxContentWidth:Qe,shouldShowShadow:Ns,desiredPreviewEditorScrollLeft:tt,previewEditorWidth:rr}}),this._stickyScrollController=us.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Ne(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):Re(0),this._shouldOverflow=u(this,(A)=>!1),this._originalBackgroundColor=Ne(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(Da)??m.transparent),this._editorBackgroundColor=this._uiState.map((A)=>ao(A?.editorType??Bt.TextEditor)),this._backgroundSvg=de.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[de.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:u(this,(A)=>{let Y=this._previewEditorLayoutInfo.read(A);if(!Y)return;if(this._originalBackgroundColor.read(A).isTransparent())return;return new Nc().moveTo(Y.codeRect.getRightTop()).lineTo(Y.codeRect.getRightTop().deltaX(1000)).lineTo(Y.codeRect.getRightBottom().deltaX(1000)).lineTo(Y.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=de.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map((A)=>A?.isInsertion?"none":"block")}},u(this,(A)=>{let Y=oo(this._previewEditorLayoutInfo).read(A);if(!Y)return;let ee=this._editorBackgroundColor.read(A),te=T.read(A),oe=ka(this._tabAction).map((He)=>`${or}px solid ${M(He)}`),ne=`${or+te}px solid ${ee}`,re=Y.read(A).codeScrollLeft!==0,he=Y.map((He)=>He.codeRect.bottom<He.editRect.bottom),ue=Ts*2+or*2,Ie=Y.map((He)=>pt.fromLeftTopRightBottom(He.contentLeft-Ts-or,He.codeRect.top,He.contentLeft,He.codeRect.bottom+ue)).read(A),Te=new z(Ie.left,Number.MAX_SAFE_INTEGER),ae=Y.map((He)=>He.codeRect.intersectHorizontal(Te)),xe=ae.map((He)=>He.withMargin(te,0,te,te).intersectHorizontal(Te)),Me=ae.map((He)=>pt.fromLeftTopWidthHeight(He.right-ue+or,He.bottom-or,ue,ue).intersectHorizontal(Te));return[de.div({class:"originalSeparatorSideBySide",style:{...xe.read(A).toStyles(),boxSizing:"border-box",borderRadius:`${Ts}px 0 0 ${Ts}px`,borderTop:ne,borderBottom:ne,borderLeft:re?"none":ne}}),de.div({class:"originalOverlaySideBySide",style:{...ae.read(A).toStyles(),boxSizing:"border-box",borderRadius:`${Ts}px 0 0 ${Ts}px`,borderTop:oe,borderBottom:oe,borderLeft:re?"none":oe,backgroundColor:M(Da)}}),de.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:he.map((He)=>He?"block":"none"),...Me.read(A).toStyles()}},[de.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:mi(Da,this._themeService).map((He)=>He.toString())}}),de.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:oe,borderRight:oe,borderRadius:"0 100% 0 0",backgroundColor:ee}})]),de.div({class:"originalOverlaySideBySideHider",style:{...Ie.toStyles(),backgroundColor:ee}})]})).keepUpdated(this._store),this._modifiedOverlay=de.div({style:{pointerEvents:"none"}},u(this,(A)=>{let Y=oo(this._previewEditorLayoutInfo).read(A);if(!Y)return;let ee=Y.map((ae)=>ae.codeRect.bottom<ae.editRect.bottom),te=this._editorBackgroundColor.read(A),oe=T.read(A),ne=ee.map((ae)=>`0 ${Ts}px ${Ts}px ${ae?Ts:0}px`),re=mi(Rs(this._tabAction),this._themeService).map((ae)=>`1px solid ${ae.toString()}`),he=`${or+oe}px solid ${te}`,ue=Y.map((ae)=>ae.editRect.withMargin(0,or)),Ie=ue.map((ae)=>ae.withMargin(oe,oe,oe,0)),Te=u(this,(ae)=>{let xe=ue.read(ae),Me=Y.read(ae);if(!Me.isInsertion||Me.contentLeft>=xe.left)return pt.fromLeftTopWidthHeight(xe.left,xe.top,0,0);return new pt(Me.contentLeft,xe.top,xe.left,xe.top+or*2)});return[de.div({class:"modifiedInsertionSideBySide",style:{...Te.read(A).toStyles(),backgroundColor:Rs(this._tabAction).map((ae)=>M(ae))}}),de.div({class:"modifiedSeparatorSideBySide",style:{...Ie.read(A).toStyles(),borderRadius:ne,borderTop:he,borderBottom:he,borderRight:he,boxSizing:"border-box"}}),de.div({class:"modifiedOverlaySideBySide",style:{...ue.read(A).toStyles(),borderRadius:ne,border:re,boxSizing:"border-box",backgroundColor:M(mf)}})]})).keepUpdated(this._store),this._nonOverflowView=de.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,u(this,(A)=>this._shouldOverflow.read(A)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:Re(null),allowEditorOverflow:!1,minContentWidthInPx:u(this,(A)=>{let Y=this._previewEditorLayoutInfo.read(A)?.maxContentWidth;if(Y===void 0)return 0;return Y})})),this.previewEditor.setModel(this._previewTextModel),this._register(W((A)=>{let Y=this._previewEditorLayoutInfo.read(A);if(!Y)return;let ee=Y.editRect.withMargin(-ig,-Hc);this.previewEditor.layout({height:ee.height,width:Y.previewEditorWidth+15}),this._editorContainer.element.style.top=`${ee.top}px`,this._editorContainer.element.style.left=`${ee.left}px`,this._editorContainer.element.style.width=`${Y.previewEditorWidth+Hc}px`})),this._register(W((A)=>{let Y=this._previewEditorLayoutInfo.read(A);if(!Y)return;this._previewEditorObs.editor.setScrollLeft(Y.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};og=iM([XC(5,D),XC(6,je),XC(7,vo)],og);var rM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ng=function(f,i){return function(h,b){i(h,b,f)}};class QC{constructor(f,i,h){this.edit=f,this.editorType=i,this.alternativeAction=h}equals(f){return this.edit.equals(f.edit)&&this.alternativeAction===f.alternativeAction}}var to=1,BD="word-replacement-view-overlay",VD="word-replacement-view-widget",KD="word-replacement-view-replacement",JC="word-replacement-view-rename",jd=class f extends n{static{this.MAX_LENGTH=100}constructor(i,h,b,v,w,x,I,E){super();this._editor=i,this._viewData=h,this._tabAction=b,this._languageService=v,this._themeService=w,this._keybindingService=x,this._hoverService=I,this._userInteractionService=E,this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(Re(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(Re(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=j(this,null),this._secondaryElement=j(this,null),this.isHovered=u(this,(Y)=>{let ee=this._primaryElement.read(Y);if(!ee)return!1;return this._userInteractionService.createHoverTracker(ee.element,Y.store).read(Y)}),this._renderTextEffect=u(this,(Y)=>{let ee=this._editor.model.read(void 0);if(!ee)return;let te=ee.getLineContent(this._viewData.edit.range.startLineNumber),oe=Zn.replace(new z(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),ne=oe.replace(te),re=ee.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[ne])?.[0],he;if(re)he=qa.fromLineTokens(re).slice(oe.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec);else he=St.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);let ue=md(new Ec([he]),wa.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${ue.minWidthInPx}px`});let T=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),O=Tk(this._viewData.alternativeAction?.count??new Promise((Y)=>Y(void 0))).map((Y)=>Y.value),A=u(this,(Y)=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),Y).shiftKey);this._layout=u(this,(Y)=>{this._renderTextEffect.read(Y);let ee=this._start.read(Y),te=this._end.read(Y);if(!ee||!te||ee.x>te.x||ee.y>te.y)return;let oe=T.read(Y);if(oe<=0)return;let ne=this._editor.scrollLeft.read(Y),re=this._editor.getOption(59).read(Y).typicalHalfwidthCharacterWidth,he=3*re,Ie=new oi(he,4),Te=void 0;if(this._viewData.alternativeAction){let qe=this._viewData.alternativeAction.label,Oe=O.read(Y),Ze=A.read(Y),dt=Oe!==void 0?Oe===1?e(1283,"{0} 1 occurrence",qe):e(1284,"{0} {1} occurrences",qe,Oe):qe,Qe=e(1285,"{0} show occurrences","[shift]");Te={label:Oe!==void 0?Ze?dt:qe:qe,tooltip:dt?`${dt}
48
- ${Qe}`:void 0,icon:void 0,count:Oe,keybinding:this._keybindingService.lookupKeybinding(kd),active:A}}let ae=pt.fromPoints(ee,te).withHeight(oe).translateX(-ne),xe=pt.fromPointSize(ae.getLeftBottom().add(Ie),new oi(this._viewData.edit.text.length*re,ae.height)),Me=xe.withWidth(xe.width+(Te?Te.label.length*re+8+4+12:0)),He=Me.withLeft(ae.left);return{alternativeAction:Te,originalLine:ae,codeLine:xe,modifiedLine:Me,lowerBackground:He,lineHeight:oe}}),this.minEditorScrollHeight=u(this,(Y)=>{let ee=oo(this._layout).read(Y);if(!ee)return 0;return ee.read(Y).modifiedLine.bottom+to+this._editor.editor.getScrollTop()}),this._root=de.div({class:"word-replacement"},[u(this,(Y)=>{let ee=oo(this._layout).read(Y);if(!ee)return[];let te=ka(this._tabAction).map((Oe)=>M(Oe)).read(Y),oe=Rs(this._tabAction).map((Oe)=>M(Oe)).read(Y);this._line.style.lineHeight=`${ee.read(Y).modifiedLine.height+2*to}px`;let ne=Re(!1),re=ee.map((Oe)=>Oe.alternativeAction),he=u((Oe)=>(re.read(Oe)?.active.read(Oe)??!1)||ne.read(Oe)),Ie=Ne(this._themeService.onDidColorThemeChange,()=>{let Oe=this._themeService.getColorTheme();return Oe.type==="hcDark"||Oe.type==="hcLight"}).read(Y)?Ea(Pe,this._themeService).read(Y):null,Te={borderColor:Ie?Ie.toString():oe,backgroundColor:M(vD),color:"",opacity:"1"},ae={borderColor:Ie?Ie.toString():M(un),backgroundColor:M(Vr),color:M(Ra),opacity:"1"},xe={borderColor:Ie?Ie.toString():Ea(Jg,this._themeService).map((Oe)=>Oe.transparent(0.2).toString()).read(Y),backgroundColor:ao(this._viewData.editorType),color:"",opacity:"0.7"},Me=ao(this._viewData.editorType),He=u(this,(Oe)=>he.read(Oe)?Te:Te),qe=u(this,(Oe)=>he.read(Oe)?ae:xe);return[de.div({id:BD,style:{position:"absolute",...Ci((Oe)=>Rc(this._editor).read(Oe)),overflow:"hidden",pointerEvents:"none"}},[de.div({style:{position:"absolute",...Ci((Oe)=>ee.read(Oe).lowerBackground.withMargin(to,2*to,to,0)),background:Me,cursor:"pointer",pointerEvents:"auto"},onmousedown:(Oe)=>this._mouseDown(Oe)}),de.div({id:VD,style:{position:"absolute",...Ci((Oe)=>ee.read(Oe).modifiedLine.withMargin(to,2*to)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${bi}px`,background:Me,display:"flex",justifyContent:"left",outline:`2px solid ${Me}`},onmousedown:(Oe)=>this._mouseDown(Oe)},[de.div({id:KD,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Ci((Oe)=>ee.read(Oe).codeLine.withMargin(to,2*to)).width,borderRadius:`${bi}px`,border:He.map((Oe)=>`${to}px solid ${Oe.borderColor}`),boxSizing:"border-box",padding:`${to}px`,opacity:He.map((Oe)=>Oe.opacity),background:He.map((Oe)=>Oe.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:(Oe)=>{this._primaryElement.set(Oe,void 0)}},[this._line]),u(this,(Oe)=>{let Ze=re.read(Oe);if(!Ze)return;let dt=document.createElement("div");return Oe.store.add(new va(dt,vi,{...A0,disableTitle:!0})).set(Ze.keybinding),de.div({id:JC,style:{position:"relative",borderRadius:`${bi}px`,borderTop:`${to}px solid`,borderRight:`${to}px solid`,borderBottom:`${to}px solid`,borderLeft:`${to}px solid`,borderColor:qe.map((ut)=>ut.borderColor),opacity:qe.map((ut)=>ut.opacity),color:qe.map((ut)=>ut.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:qe.map((ut)=>ut.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:(ut)=>{this._secondaryElement.set(ut,void 0)},ref:(ut)=>{if(Ze.tooltip)Oe.store.add(this._hoverService.setupDelayedHoverAtMouse(ut,{content:Ze.tooltip,appearance:{compact:!0}}))}},[dt,g("div.inline-edit-alternative-action-label-separator"),Ze.icon?ur(Ze.icon):void 0,Ze.label])})]),de.div({style:{position:"absolute",...Ci((Oe)=>ee.read(Oe).originalLine.withMargin(to)),boxSizing:"border-box",borderRadius:`${bi}px`,border:`${to}px solid ${te}`,background:M(_D),pointerEvents:"none"}},[]),de.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:ee.map((Oe)=>Oe.modifiedLine.left-16),top:ee.map((Oe)=>Oe.modifiedLine.top+Math.round((Oe.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:(Oe)=>this._mouseDown(Oe)},[de.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:M(Jg)}),de.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:M(Jg)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:Re(0),position:Re({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(i){let h=sM(i.target,new Set([VD,KD,JC,BD]));if(!h)return;i.preventDefault(),this._onDidClick.fire(Do.create(i,h===JC))}};jd=rM([ng(3,yt),ng(4,je),ng(5,fe),ng(6,kn),ng(7,vo)],jd);function sM(f,i){let h=f;while(h){if(i.has(h.id))return h.id;h=h.parentElement}return null}class ey extends n{constructor(f,i,h){super();this._originalEditor=f,this._state=i,this._modifiedTextModel=h,this._onDidClick=this._register(new r),this.onDidClick=this._onDidClick.event,this.isHovered=rt(this._originalEditor).isTargetHovered((v)=>v.target.type===6&&v.target.detail.injectedText?.options.attachedData instanceof o_&&v.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=lM(this._modifiedTextModel),this._decorations=u(this,(v)=>{let w=this._state.read(v);if(!w)return;let x=w.modifiedText,I=w.mode==="insertionInline",E=w.diff.length===1&&w.diff[0].innerChanges?.length===1,T=!0,O=[],A=[],Y=ce.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),ee=ce.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),te=ce.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),oe=ce.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),ne=ce.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),re=ce.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),he=ce.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),ue=w.mode!=="sideBySide"&&w.mode!=="deletion"&&w.mode!=="insertionInline"&&w.mode!=="lineReplacement",Ie=w.mode==="lineReplacement";for(let Te of w.diff){if(ue){if(!Te.original.isEmpty)O.push({range:Te.original.toInclusiveRange(),options:ee});if(!Te.modified.isEmpty)A.push({range:Te.modified.toInclusiveRange(),options:Y})}if(Te.modified.isEmpty||Te.original.isEmpty){if(!Te.original.isEmpty)O.push({range:Te.original.toInclusiveRange(),options:te});if(!Te.modified.isEmpty)A.push({range:Te.modified.toInclusiveRange(),options:oe})}else{let ae=I&&aM(Te);for(let xe of Te.innerChanges||[]){if(Te.original.contains(xe.originalRange.startLineNumber)&&!(Ie&&xe.originalRange.isEmpty())){let Me=this._originalEditor.getModel()?.getValueInRange(xe.originalRange,1);O.push({range:xe.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Tc("inlineCompletions-char-delete",xe.originalRange.isSingleLine()&&w.mode==="insertionInline"&&"single-line-inline",xe.originalRange.isEmpty()&&"empty",(xe.originalRange.isEmpty()&&E||w.mode==="deletion"&&Me===`
49
- `)&&T&&!ae&&"diff-range-empty"),inlineClassName:ae?Tc("strike-through","inlineCompletions"):null,zIndex:1}})}if(Te.modified.contains(xe.modifiedRange.startLineNumber))A.push({range:xe.modifiedRange,options:xe.modifiedRange.isEmpty()&&T&&!ae&&E?re:ne});if(ae){let Me=x.getValueOfRange(xe.modifiedRange),He=Me.length>3?[{text:Me.slice(0,1),extraClasses:["start"],offsetRange:new z(xe.modifiedRange.startColumn-1,xe.modifiedRange.startColumn)},{text:Me.slice(1,-1),extraClasses:[],offsetRange:new z(xe.modifiedRange.startColumn,xe.modifiedRange.endColumn-2)},{text:Me.slice(-1),extraClasses:["end"],offsetRange:new z(xe.modifiedRange.endColumn-2,xe.modifiedRange.endColumn-1)}]:[{text:Me,extraClasses:["start","end"],offsetRange:new z(xe.modifiedRange.startColumn-1,xe.modifiedRange.endColumn)}];this._tokenizationFinished.read(v);let qe=this._modifiedTextModel.tokenization.getLineTokens(xe.modifiedRange.startLineNumber);for(let{text:Oe,extraClasses:Ze,offsetRange:dt}of He)O.push({range:t.fromPositions(xe.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:qe.getTokensInRange(dt),content:Oe,inlineClassName:Tc("inlineCompletions-char-insert",xe.modifiedRange.isSingleLine()&&w.mode==="insertionInline"&&"single-line-inline",...Ze),cursorStops:ts.None,attachedData:new o_(this)},zIndex:2,showIfCollapsed:!0}})}}}}if(w.editorType===Bt.DiffEditor){for(let Te of w.diff)if(!Te.original.isEmpty)O.push({range:Te.original.toExclusiveRange(),options:he})}return{originalDecorations:O,modifiedDecorations:A}}),this._register(rt(this._originalEditor).setDecorations(this._decorations.map((v)=>v?.originalDecorations??[])));let b=this._state.map((v)=>v?.modifiedCodeEditor);this._register(zn((v,w)=>{let x=b.read(v);if(x)w.add(rt(x).setDecorations(this._decorations.map((I)=>I?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp((v)=>{if(v.target.type!==6)return;let w=v.target.detail.injectedText?.options.attachedData;if(w instanceof o_&&w.owner===this)this._onDidClick.fire(new Do(v.event))}))}}class o_{constructor(f){this.owner=f}}function aM(f){if(!f.innerChanges)return!1;return f.innerChanges.every((i)=>bw(i.modifiedRange)&&bw(i.originalRange))}var dM=0;function lM(f){return Ne(f.onDidChangeTokens,()=>dM++)}var cM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},hM=function(f,i){return function(h,b){i(h,b,f)}},n_=class f extends n{constructor(i,h,b,v,w,x){super();this._editor=i,this._model=h,this._simpleModel=b,this._inlineSuggestInfo=v,this._showCollapsed=w,this._instantiationService=x,this._tabAction=u((O)=>this._model.read(O)?.tabAction.read(O)??Mt.Inactive),this.displayRange=u(this,(O)=>{let A=this._uiState.read(O);if(!A)return;if(A.target.uri.toString()!==this._editorObs.model.read(O)?.uri.toString())return;if(A.state?.kind==="custom"){let Y=A.state.displayLocation?.range;if(!Y)throw new H("custom view should have a range");return new X(Y.startLineNumber,Y.endLineNumber)}if(A.state?.kind==="insertionMultiLine")return this._insertion.originalLines.read(O);return A.edit.displayRange}),this._currentInlineEditCache=void 0,this._uiState=u(this,(O)=>{let A=this._model.read(O),Y=this._editorObs.model.read(O);if(!A||!Y||!this._constructorDone.read(O))return;let ee=A.inlineEdit,te,oe,ne=void 0;if(ee.edit)oe=Ai.fromEdit(ee.edit),ne=new Ua(ee.edit.apply(ee.originalText)),te=zh(oe,ee.originalText,ne);else oe=[],te=[],ne=ee.originalText;let re=this._determineRenderState(A,O,te,ne);if(!re){Z(Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}let he=this._getLongDistanceHintState(A,O);if(he&&he.isVisible)re.viewData.setLongDistanceViewData(he.lineNumber,ee.lineEdit.lineRange.startLineNumber);if(re.viewData.isForAnotherDocument=!ee.originalText.targets(Y),re.kind===at.SideBySide){let Te=ED(ne.getValue(),ee.modifiedLineRange,Y.getOptions().tabSize);ne=new Ua(Te.applyToString(ne.getValue())),oe=LD(oe,Te),te=zh(oe,ee.originalText,ne)}this._previewTextModel.setLanguage(Y.getLanguageId());let ue=this._previewTextModel.getValue();if(ue!==ne.getValue()){this._previewTextModel.setEOL(Y.getEndOfLineSequence());let ae=dr.replace(new z(0,ue.length),ne.getValue()).removeCommonSuffixPrefix(ue),xe=Wd(this._previewTextModel).getTextEdit(ae);this._previewTextModel.edit(xe)}if(this._showCollapsed.read(O))re={kind:at.Collapsed,viewData:re.viewData};A.handleInlineEditShownNextFrame(re.kind,re.viewData);let Ie=ee.action?.kind==="jumpTo"?ee.action.position:null;return{state:re,diff:te,edit:ee,newText:ne.getValue(),newTextLineCount:ee.modifiedLineRange.length,editorType:A.editorType,longDistanceHint:he,nextCursorPosition:Ie,target:ee.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=u(this,(O)=>this._sideBySide.isHovered.read(O)||this._wordReplacementViews.read(O).some((A)=>A.isHovered.read(O))||this._deletion.isHovered.read(O)||this._inlineDiffView.isHovered.read(O)||this._lineReplacementView.isHovered.read(O)||this._insertion.isHovered.read(O)||this._customView.isHovered.read(O)||this._longDistanceHint.map((A,Y)=>A?.isHovered.read(Y)??!1).read(O)),this.gutterIndicatorOffset=u(this,(O)=>{if(this._uiState.read(O)?.state?.kind==="insertionMultiLine")return this._insertion.startLineOffset.read(O);return 0}),this._editorObs=rt(this._editor),this._constructorDone=j(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(cd,"",this._editor.getModel().getLanguageId(),{...cd.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(og,this._editor,this._model.map((O)=>O?.inlineEdit),this._previewTextModel,this._uiState.map((O)=>O&&O.state?.kind===at.SideBySide?{newTextLineCount:O.newTextLineCount,editorType:O.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(jC,this._editor,this._model.map((O)=>O?.inlineEdit),this._uiState.map((O)=>O&&O.state?.kind===at.Deletion?{originalRange:O.state.originalRange,deletions:O.state.deletions,editorType:O.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(Zf,this._editor,this._uiState.map((O)=>O&&O.state?.kind===at.InsertionMultiLine?{lineNumber:O.state.lineNumber,startColumn:O.state.column,text:O.state.text,editorType:O.editorType}:void 0),this._tabAction)),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(Ef,this._editor,this._model.map((O,A)=>this._uiState.read(A)?.state?.kind===at.Collapsed?O?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(qf,this._editor,this._model.map((O,A)=>this._uiState.read(A)?.state?.kind===at.Custom?O?.displayLocation:void 0),this._tabAction,this._uiState.map((O)=>O?.editorType??Bt.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,(O)=>O.edits.showLongDistanceHint),this._longDistanceHint=u(this,(O)=>{if(!this._showLongDistanceHint.read(O))return;return O.store.add(this._instantiationService.createInstance(i_,this._editor,this._uiState.map((A,Y)=>A?.longDistanceHint?{hint:A.longDistanceHint,newTextLineCount:A.newTextLineCount,edit:A.edit,diff:A.diff,editorType:A.editorType,model:this._simpleModel.read(Y),inlineSuggestInfo:this._inlineSuggestInfo.read(Y),nextCursorPosition:A.nextCursorPosition,target:A.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=u(this,(O)=>{let A=this._uiState.read(O);if(!A||!A.state)return;if(A.state.kind==="wordReplacements"||A.state.kind==="insertionMultiLine"||A.state.kind==="collapsed"||A.state.kind==="custom"||A.state.kind==="jumpTo")return;return{modifiedText:new Ua(A.newText),diff:A.diff,mode:A.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:A.editorType}}),this._inlineDiffView=this._register(new ey(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(Qf,this._editorObs,{style:"label"},u((O)=>{let A=this._uiState.read(O);if(A?.state?.kind===at.JumpTo)return{jumpToPosition:A.state.position};return})));let I=xn({equalsFn:Dv.arrayC(Dv.thisC())},(O)=>{let A=this._uiState.read(O);return A?.state?.kind===at.WordReplacements?A.state.replacements.map((Y)=>new QC(Y,A.editorType,A.state?.alternativeAction)):[]});this._wordReplacementViews=mc(this,I,(O,A)=>A.add(this._instantiationService.createInstance(jd,this._editorObs,O,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(Xf,this._editorObs,this._uiState.map((O)=>O?.state?.kind===at.LineReplacement?{originalRange:O.state.originalRange,modifiedRange:O.state.modifiedRange,modifiedLines:O.state.modifiedLines,replacements:O.state.replacements}:void 0),this._uiState.map((O)=>O?.editorType??Bt.TextEditor),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map((O)=>O.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map((O)=>O.edits.renderSideBySide),this._register(W((O)=>{let A=this._model.read(O);if(!A)return;O.store.add(k.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(O).map((Y)=>Y.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)((Y)=>{if(this._viewHasBeenShownLongerThan(350))Y.event.preventDefault(),A.accept(Y.alternativeAction)}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);let E=u(this,(O)=>Math.max(...this._wordReplacementViews.read(O).map((A)=>A.minEditorScrollHeight.read(O)),this._lineReplacementView.minEditorScrollHeight.read(O),this._customView.minEditorScrollHeight.read(O))).recomputeInitiallyAndOnChange(this._store),T;this._register(W((O)=>{let A=E.read(O),Y=this._editorObs.model.read(O);if(!Y)return;this._editor.changeViewZones((ee)=>{let te=this._editor.getScrollHeight(),oe=A-te+1;if(oe!==0&&T!==void 0)ee.removeZone(T),T=void 0;if(oe<=0)return;T=ee.addZone({afterLineNumber:Y.getLineCount(),heightInPx:oe,domNode:g("div.minScrollHeightViewZone")})})})),this._constructorDone.set(!0,void 0)}_getLongDistanceHintState(i,h){if(i.inlineEdit.inlineCompletion.identity.jumpedTo.read(h))return;if(i.inlineEdit.action===void 0)return;let b=this._editorObs.model.read(h);if(!b||!i.inlineEdit.originalText.targets(b))return{isVisible:!0,lineNumber:i.inlineEdit.cursorPosition.lineNumber};if(this._currentInlineEditCache?.inlineSuggestionIdentity!==i.inlineEdit.inlineCompletion.identity)this._currentInlineEditCache={inlineSuggestionIdentity:i.inlineEdit.inlineCompletion.identity,firstCursorLineNumber:i.inlineEdit.cursorPosition.lineNumber};return{lineNumber:this._currentInlineEditCache.firstCursorLineNumber,isVisible:!i.inViewPort.read(h)}}_getCacheId(i){return i.inlineEdit.inlineCompletion.identity.id}_determineView(i,h,b,v){let w=i.inlineEdit,x=this._previousView?.id===this._getCacheId(i)&&this._previousView?.uri.toString()===this._editorObs.model.get().uri.toString(),I=this._previousView?.editorWidth!==this._editorObs.layoutInfoWidth.read(h)&&(this._previousView?.view===at.SideBySide||this._previousView?.view===at.LineReplacement);if(x&&!I)return this._previousView.view;let E=i.inlineEdit.inlineCompletion.action;if(E?.kind==="edit"&&E.alternativeAction)return at.WordReplacements;let T=i.inlineEdit.inlineCompletion.originalTextRef.uri,O=this._editorObs.model.read(h)?.uri;if(O&&T.toString()!==O.toString())return at.Custom;if(i.displayLocation&&!i.inlineEdit.inlineCompletion.identity.jumpedTo.read(h))return at.Custom;let A=w.originalLineRange.length,Y=w.modifiedLineRange.length,ee=b.flatMap((oe)=>oe.innerChanges??[]),te=ee.length===1;if(i.editorType!==Bt.DiffEditor){if(te&&this._useCodeShifting.read(h)!=="never"&&GD(b)){if(gM(b,w.cursorPosition))return at.InsertionInline;return at.LineReplacement}if(UD(ee,w,v))return at.Deletion;if(zD(b)&&this._useCodeShifting.read(h)==="always")return at.InsertionMultiLine;if(ee.every((ne)=>Ht.ofRange(ne.originalRange).columnCount<jd.MAX_LENGTH&&Ht.ofRange(ne.modifiedRange).columnCount<jd.MAX_LENGTH)&&te&&A===1&&Y===1){let ne=ee.map((he)=>v.getValueOfRange(he.modifiedRange)),re=ee.map((he)=>i.inlineEdit.originalText.getValueOfRange(he.originalRange));if(!ne.some((he)=>he.includes("\t"))&&!re.some((he)=>he.includes("\t"))){if(!ee.some((he)=>he.originalRange.isEmpty())||!$D(ee.map((he)=>new ft(he.originalRange,"")),w.originalText).some((he)=>he.range.isEmpty()&&Ht.ofRange(he.range).columnCount<jd.MAX_LENGTH))return at.WordReplacements}}}if(A>0&&Y>0){if(A===1&&Y===1&&i.editorType!==Bt.DiffEditor)return at.LineReplacement;if(this._renderSideBySide.read(h)!=="never"&&og.fitsInsideViewport(this._editor,this._previewTextModel,w,h))return at.SideBySide;return at.LineReplacement}if(i.editorType===Bt.DiffEditor){if(UD(ee,w,v))return at.Deletion;if(zD(b)&&this._useCodeShifting.read(h)==="always")return at.InsertionMultiLine}return at.SideBySide}_determineRenderState(i,h,b,v){if(i.inlineEdit.action?.kind==="jumpTo")return{kind:at.JumpTo,position:i.inlineEdit.action.position,viewData:jD()};let w=i.inlineEdit,x=this._determineView(i,h,b,v);if(this._willRenderAboveCursor(h,w,x))switch(x){case at.LineReplacement:case at.WordReplacements:x=at.SideBySide;break}this._previousView={id:this._getCacheId(i),view:x,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now(),uri:this._editorObs.model.get().uri};let I=b.flatMap((Y)=>Y.innerChanges??[]),E=this._editor.getModel(),T=I.map((Y)=>({originalRange:Y.originalRange,modifiedRange:Y.modifiedRange,original:w.originalText.getValueOfRange(Y.originalRange),modified:v.getValueOfRange(Y.modifiedRange)})),O=uM(w,T,E);switch(x){case at.InsertionInline:return{kind:at.InsertionInline,viewData:O};case at.SideBySide:return{kind:at.SideBySide,viewData:O};case at.Collapsed:return{kind:at.Collapsed,viewData:O};case at.Custom:return{kind:at.Custom,displayLocation:i.displayLocation,viewData:O}}if(x===at.Deletion)return{kind:at.Deletion,originalRange:w.originalLineRange,deletions:I.map((Y)=>Y.originalRange),viewData:O};if(x===at.InsertionMultiLine){let Y=I[0];return{kind:at.InsertionMultiLine,lineNumber:Y.originalRange.startLineNumber,column:Y.originalRange.startColumn,text:v.getValueOfRange(Y.modifiedRange),viewData:O}}let A=T.map((Y)=>new ft(Y.originalRange,Y.modified));if(A.length===0)return;if(x===at.WordReplacements){let Y=pM(A,w.originalText);if(Y.some((ee)=>ee.range.isEmpty()))Y=$D(A,w.originalText);return{kind:at.WordReplacements,replacements:Y,alternativeAction:i.inlineEdit.action?.alternativeAction,viewData:O}}if(x===at.LineReplacement)return{kind:at.LineReplacement,originalRange:w.originalLineRange,modifiedRange:w.modifiedLineRange,modifiedLines:w.modifiedLineRange.mapToLineArray((Y)=>v.getLineAt(Y)),replacements:I.map((Y)=>({originalRange:Y.originalRange,modifiedRange:Y.modifiedRange})),viewData:O};return}_willRenderAboveCursor(i,h,b){if(this._useCodeShifting.read(i)==="always")return!1;for(let w of h.multiCursorPositions){if(b===at.WordReplacements&&w.lineNumber===h.originalLineRange.startLineNumber+1)return!0;if(b===at.LineReplacement&&w.lineNumber>=h.originalLineRange.endLineNumberExclusive&&w.lineNumber<h.modifiedLineRange.endLineNumberExclusive+h.modifiedLineRange.length)return!0}return!1}_viewHasBeenShownLongerThan(i){let h=this._previousView?.timestamp;if(!h)throw new H("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-h>=i}};n_=cM([hM(5,D)],n_);var jD=()=>new ic(-1,-1,-1,-1,-1,-1,-1,!0);function uM(f,i,h){if(!f.edit)return jD();let b=f.cursorPosition,v=i.length===0?!1:i[0].modified.startsWith(h.getEOL());return new ic(f.edit.replacements.length===0?0:f.edit.replacements[0].range.getStartPosition().column-b.column,f.lineEdit.lineRange.startLineNumber-b.lineNumber+(v&&f.lineEdit.lineRange.startLineNumber>=b.lineNumber?1:0),f.lineEdit.lineRange.length,f.lineEdit.newLines.length,i.reduce((x,I)=>x+I.original.length,0),i.reduce((x,I)=>x+I.modified.length,0),i.length,i.every((x)=>x.original===i[0].original&&x.modified===i[0].modified))}function GD(f){return f.every((h)=>h.innerChanges.every((b)=>i(b)));function i(h){if(!h.originalRange.isEmpty())return!1;if(h.modifiedRange.startLineNumber!==h.modifiedRange.endLineNumber)return!1;return!0}}function gM(f,i){if(!i)return!1;if(!GD(f))return!1;let h=i;return f.every((v)=>v.innerChanges.every((w)=>b(w)));function b(v){let w=v.originalRange.getStartPosition();if(h.isBeforeOrEqual(w))return!0;if(w.lineNumber<h.lineNumber)return!0;return!1}}function zD(f){let i=f.flatMap((b)=>b.innerChanges??[]);if(i.length!==1)return!1;let h=i[0];if(!h.originalRange.isEmpty())return!1;if(h.modifiedRange.startLineNumber===h.modifiedRange.endLineNumber)return!1;return!0}function UD(f,i,h){return f.map((v)=>({original:i.originalText.getValueOfRange(v.originalRange),modified:h.getValueOfRange(v.modifiedRange)})).every(({original:v,modified:w})=>w.trim()===""&&v.length>0&&(v.length>w.length||v.trim()!==""))}function pM(f,i){return qD(f,i,(h)=>/^[a-zA-Z]$/.test(h))}function $D(f,i){return qD(f,i,(h)=>!/^\s$/.test(h))}function qD(f,i,h){let b=[];f.sort((w,x)=>t.compareRangesUsingStarts(w.range,x.range));for(let w of f){let x=w.range.startColumn-1,I=w.range.endColumn-2,E="",T="",O=i.getLineAt(w.range.startLineNumber),A=i.getLineAt(w.range.endLineNumber);if(v(O[x]))while(v(O[x-1]))E=O[x-1]+E,x--;if(v(A[I])||I<x)while(v(A[I+1]))T+=A[I+1],I++;let Y=new ft(new t(w.range.startLineNumber,x+1,w.range.endLineNumber,I+2),E+w.text+T);if(b.length>0&&t.areIntersectingOrTouching(b[b.length-1].range,Y.range))Y=ft.joinReplacements([b.pop(),Y],i);b.push(Y)}function v(w){if(w===void 0)return!1;return h(w)}return b}var mM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},fM=function(f,i){return function(h,b){i(h,b,f)}},r_=class f extends n{constructor(i,h,b,v){super();this._editor=i,this._model=h,this._showCollapsed=b,this._inlineEdit=u(this,(w)=>{let x=this._model.read(w);if(!x)return;if(!this._editor.getModel())return;let E=x.inlineEditState.read(w);if(!E)return;let T=E.inlineSuggestion.action,O;if(T?.kind==="edit"){let A=T.stringEdit,Y=E.inlineSuggestion.originalTextRef.getTransformer(),ee=A.replacements.map((te)=>{let oe=t.fromPositions(Y.getPosition(te.replaceRange.start),Y.getPosition(te.replaceRange.endExclusive));return new ft(oe,te.newText)});O=new _r(ee)}else O=void 0;return new VC(E.inlineSuggestion.originalTextRef,T,O,x.primaryPosition.read(void 0),x.allPositions.read(void 0),E.inlineSuggestion.source.inlineSuggestions.commands??[],E.inlineSuggestion)}),this._inlineEditModel=u(this,(w)=>{let x=this._model.read(w);if(!x)return;let I=this._inlineEdit.read(w);if(!I)return;let E=u(this,(T)=>{if(this._editorObs.isFocused.read(T)){if(x.tabShouldJumpToInlineEdit.read(T))return Mt.Jump;if(x.tabShouldAcceptInlineEdit.read(T))return Mt.Accept}return Mt.Inactive});return new KC(x,I,E)}),this._editorObs=rt(this._editor),this.view=this._register(v.createInstance(n_,this._editor,this._inlineEditModel,this._model.map((w)=>w?Pc.fromInlineCompletionModel(w):void 0),this._inlineEdit.map((w)=>w?Mc.fromInlineSuggestion(w.inlineCompletion):void 0),this._showCollapsed))}};r_=mM([fM(3,D)],r_);var _M=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},bM=function(f,i){return function(h,b){i(h,b,f)}},s_=class f extends n{static{this.hot=pb(this)}constructor(i,h,b,v){super();this._editor=i,this._model=h,this._focusIsInMenu=b,this._instantiationService=v,this._ghostTexts=u(this,(w)=>this._model.read(w)?.ghostTexts.read(w)??[]),this._inlineEdit=u(this,(w)=>this._model.read(w)?.inlineEditState.read(w)?.inlineSuggestion),this._everHadInlineEdit=Zr(this,(w,x)=>x||!!this._inlineEdit.read(w)||!!this._model.read(w)?.inlineCompletionState.read(w)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=j(this,void 0),this._showInlineEditCollapsed=u(this,(w)=>(this._model.read(w)?.showCollapsed.read(w)??!1)&&!this._indicatorIsHoverVisible.read(w)?.read(w)),this._inlineEditWidget=Yr((w)=>{if(!this._everHadInlineEdit.read(w))return;return this._instantiationService.createInstance(r_,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=u((w)=>{let x=this._model.read(w);if(!x)return;let I=x.state.read(w);if(I?.kind==="ghostText"&&I.inlineSuggestion?.showInlineEditMenu)return{displayRange:X.ofLength(I.primaryGhostText.lineNumber,1),tabAction:u(this,(E)=>this._editorObs.isFocused.read(E)?Mt.Accept:Mt.Inactive),gutterIndicatorOffset:Re(vM(I.inlineSuggestion,this._editor)),inlineSuggestion:I.inlineSuggestion,model:x};else if(I?.kind==="inlineEdit"){let E=this._inlineEditWidget.read(w)?.view;if(!E)return;let T=E.displayRange.read(w);if(!T)return;return{displayRange:T,tabAction:u((O)=>{if(this._editorObs.isFocused.read(O)){if(x.tabShouldJumpToInlineEdit.read(O))return Mt.Jump;if(x.tabShouldAcceptInlineEdit.read(O))return Mt.Accept}return Mt.Inactive}),gutterIndicatorOffset:E.gutterIndicatorOffset,inlineSuggestion:I.inlineSuggestion,model:x}}else return}),this._stablizedGhostTexts=S1(this._ghostTexts,this._store),this._editorObs=rt(this._editor),this._ghostTextWidgets=mc(this,this._stablizedGhostTexts,(w,x)=>x.add(this._createGhostText(w))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map((w)=>w.fontFamily),this._register(UR(u((w)=>`
50
- .monaco-editor .ghost-text-decoration,
51
- .monaco-editor .ghost-text-decoration-preview,
52
- .monaco-editor .ghost-text {
53
- font-family: ${this._fontFamily.read(w)};
54
- }`))),this._register(new im(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(Oc,this._editorObs,u((w)=>{let x=this._gutterIndicatorState.read(w);if(!x)return;return new eg(Mc.fromInlineSuggestion(x.inlineSuggestion),x.displayRange,Pc.fromInlineCompletionModel(x.model),x.inlineSuggestion.action?.kind==="edit"?x.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((w,x)=>w?.tabAction?.read(x)??Mt.Inactive),this._gutterIndicatorState.map((w,x)=>w?.gutterIndicatorOffset?.read(x)??0),this._inlineEditWidget.map((w,x)=>w?.view.inlineEditsIsHovered.read(x)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),u((w)=>{let x=this._inlineEditWidget.read(w);if(!x)return;return w.store.add(this._instantiationService.createInstance(Sf,x._inlineEditModel,Re(this._indicator),x.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(i){return this._instantiationService.createInstance(Sa,this._editor,u((h)=>{let b=this._model.read(h),v=b?.inlineCompletionState.read(h)?.inlineSuggestion;if(!b||!v)return{ghostText:i.read(h),handleInlineCompletionShown:()=>{},warning:void 0};return{ghostText:i.read(h),handleInlineCompletionShown:(w)=>b.handleInlineSuggestionShown(v,at.GhostText,w,Date.now()),warning:df.from(b?.warning.read(h))}}),{useSyntaxHighlighting:this._editorObs.getOption(71).map((h)=>h.syntaxHighlightingEnabled),highlightShortSuggestions:!0})}shouldShowHoverAtViewZone(i){return this._ghostTextWidgets.get()[0]?.ownsViewZone(i)??!1}};s_=_M([bM(3,D)],s_);function vM(f,i){let h=f.getSingleTextEdit(),b=i.getModel();if(!b)return 0;let v=b.getEOL();if(h.range.isEmpty()&&h.text.startsWith(v)){let w=i.getLineHeightForPosition(h.range.getStartPosition());return SM(h.text,v)*w}return 0}function SM(f,i){if(!i.length)return 0;let h=0,b=0;while(f.startsWith(i,b))h++,b+=i.length;return h}var wM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Na=function(f,i){return function(h,b){i(h,b,f)}},Kr;J0((f)=>Hi.get(f));var Hi=class f extends n{static{Kr=this}static{this._instances=new Set}static{this.hot=pb(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(i){let h=Lp(i);if(!h)return null;return Kr.get(h)}static get(i){return i1(i.getContribution(Kr.ID))}constructor(i,h,b,v,w,x,I,E,T){super();this.editor=i,this._instantiationService=h,this._contextKeyService=b,this._configurationService=v,this._commandService=w,this._debounceService=x,this._languageFeaturesService=I,this._accessibilitySignalService=E,this._keybindingService=T,this._focusIsInMenu=j(this,!1),this._focusIsInEditorOrMenu=u(this,(te)=>{let oe=this._editorObs.isFocused.read(te),ne=this._focusIsInMenu.read(te);return oe||ne}),this._cursorIsInIndentation=u(this,(te)=>{let oe=this._editorObs.cursorPosition.read(te);if(oe===null)return!1;let ne=this._editorObs.model.read(te);if(!ne)return!1;this._editorObs.versionId.read(te);let re=ne.getLineIndentColumn(oe.lineNumber);return oe.column<=re}),this.model=Yr(this,(te)=>{if(this._editorObs.isReadonly.read(te))return;let oe=this._editorObs.model.read(te);if(!oe)return;return this._instantiationService.createInstance(Zm,oe,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabledInConfig,()=>this._isEditorDictationInProgress(),this.editor)}),this._playAccessibilitySignal=Ui(this),this._view=u((te)=>te.store.add(this._instantiationService.createInstance(s_.hot.read(te),this.editor,this.model,this._focusIsInMenu))),this._editorObs=rt(this.editor),this._positions=u(this,(te)=>this._editorObs.selections.read(te)?.map((oe)=>oe.getEndPosition())??[new s(1,1)]),this._suggestWidgetAdapter=this._register(new yC(this._editorObs,(te)=>this.model.get()?.handleSuggestAccepted(te),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=Ne(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._register(this._contextKeyService.onDidChangeContext((te)=>{if(te.affectsSome(new Set(["editorDictation.inProgress"]))&&this._isEditorDictationInProgress())this.model.get()?.stop()})),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this.model.recomputeInitiallyAndOnChange(this._store),this._hideInlineEditOnSelectionChange=this._editorObs.getOption(71).map((te)=>!0),this._view.recomputeInitiallyAndOnChange(this._store),Kr._instances.add(this),this._register(R(()=>Kr._instances.delete(this))),this._register(W((te)=>{let oe=this.model.read(te);if(!oe)return;let ne=oe.state.read(te);if(!ne)return;if(!this._focusIsInEditorOrMenu.read(void 0))return;let re=ne.kind==="inlineEdit"?ne.nextEditUri:void 0;for(let he of Kr._instances)if(he===this)continue;else if(re&&Qo(re,he.editor.getModel()?.uri))he.model.read(void 0)?.trigger();else he.reject()})),this._register(W((te)=>{let oe=this.model.read(te),ne=this.editor.getModel()?.uri;if(!oe||!ne)return;te.store.add(oe.onDidAccept(()=>{for(let re of Kr._instances){if(re===this)continue;let he=re.model.read(void 0)?.state.read(void 0);if(he?.kind==="inlineEdit"&&Qo(he.nextEditUri,ne))re.model.read(void 0)?.stop("automatic")}}))})),this._register(yo(this._editorObs.onDidType,(te,oe)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()})),this._register(yo(this._editorObs.onDidPaste,(te,oe)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()}));let O=new Set([ep.Tab.id,ep.DeleteLeft.id,ep.DeleteRight.id,qn,"acceptSelectedSuggestion",Kc.ID,Vc.ID,Et.NextMatchFindAction,as.ID,Sd.ID,uh.ID,gh.ID,...Tf.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand((te)=>{if(O.has(te.commandId)&&i.hasTextFocus()&&this._enabledInConfig.get()&&!this._isEditorDictationInProgress()){let oe=!1;if(te.commandId===qn)oe=!0;this._editorObs.forceUpdate((ne)=>{this.model.get()?.trigger(ne,{noDelay:oe})})}})),this._register(yo(this._editorObs.selections,(te,oe,ne)=>{if(ne.some((re)=>re.reason===3||re.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;let re=this.model.get();if(!re)return;if(re.state.get()?.kind==="ghostText")this.model.get()?.stop()}})),this._register(W((te)=>{let oe=this._focusIsInEditorOrMenu.read(te),ne=this.model.read(void 0);if(oe){let re=ne?.state.read(void 0);if(!re||re.kind!=="inlineEdit"||!re.nextEditUri)Ue((he)=>{for(let ue of Kr._instances)if(ue!==this)ue.model.read(void 0)?.stop("automatic",he)});return}if(this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||i.getOption(71).keepOnBlur||_s.dropDownVisible)return;if(!ne)return;if(ne.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&ne.inlineEditAvailable.read(void 0))return;Ue((re)=>{ne.stop("automatic",re)})})),this._register(W((te)=>{let oe=this.model.read(te)?.inlineCompletionState.read(te);if(oe?.suggestItem){if(oe.primaryGhostText.lineCount>=2)this._suggestWidgetAdapter.forceRenderingAbove()}else this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(R(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));let A=Zr(this,(te,oe)=>{let re=this.model.read(te)?.state.read(te);if(this._suggestWidgetAdapter.selectedItem.get())return oe;return re?.inlineSuggestion?.semanticId});this._register(Pk(u((te)=>(this._playAccessibilitySignal.read(te),A.read(te),{})),async(te,oe,ne,re)=>{let he=this.model.get(),ue=he?.state.get();if(!ue||!he)return;if(await mo(50,Tv(re)),await M0(this._suggestWidgetAdapter.selectedItem,zi,()=>!1,Tv(re)),he=this.model.get(),ue=he?.state.get(),!ue||!he)return;let Ie=ue.kind==="ghostText"?he.textModel.getLineContent(ue.primaryGhostText.lineNumber):"";if(this._accessibilitySignalService.playSignal(ue.kind==="ghostText"?Xe.inlineSuggestion:Xe.nextEditSuggestion),this.editor.getOption(12))if(ue.kind==="ghostText")this._provideScreenReaderUpdate(ue.primaryGhostText.renderForScreenReader(Ie));else{let Te=ue.inlineSuggestion.targetRange.startLineNumber,ae=he.tabShouldAcceptInlineEdit.get(),xe=he.tabShouldJumpToInlineEdit.get(),Me;if(ae){let He=this._keybindingService.lookupKeybinding(qn)?.getAriaLabel();Me=He?e(1262,"Next edit suggestion available on line {0}, press {1} to accept",Te,He):e(1263,"Next edit suggestion available on line {0}, accept it to apply",Te)}else if(xe){let He=this._keybindingService.lookupKeybinding(Tl)?.getAriaLabel();Me=He?e(1264,"Next edit suggestion available on line {0}, press {1} to jump",Te,He):e(1265,"Next edit suggestion available on line {0}",Te)}else Me=e(1266,"Next edit suggestion available on line {0}",Te);this._provideScreenReaderUpdate(Me)}})),this._register(this._configurationService.onDidChangeConfiguration((te)=>{if(te.affectsConfiguration("accessibility.verbosity.inlineCompletions"))this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")});let Y=new Yw(this._contextKeyService);this._register(Y.bind(mt.cursorInIndentation,this._cursorIsInIndentation)),this._register(Y.bind(mt.hasSelection,(te)=>!this._editorObs.cursorSelection.read(te)?.isEmpty())),this._register(Y.bind(mt.cursorAtInlineEdit,this.model.map((te,oe)=>te?.inlineEditState?.read(oe)?.cursorAtInlineEdit.read(oe)))),this._register(Y.bind(mt.tabShouldAcceptInlineEdit,this.model.map((te,oe)=>!!te?.tabShouldAcceptInlineEdit.read(oe)))),this._register(Y.bind(mt.tabShouldJumpToInlineEdit,this.model.map((te,oe)=>!!te?.tabShouldJumpToInlineEdit.read(oe)))),this._register(Y.bind(mt.inlineEditVisible,(te)=>this.model.read(te)?.inlineEditState.read(te)!==void 0)),this._register(Y.bind(mt.inlineSuggestionHasIndentation,(te)=>this.model.read(te)?.getIndentationInfo(te)?.startsWithIndentation)),this._register(Y.bind(mt.inlineSuggestionHasIndentationLessThanTabSize,(te)=>this.model.read(te)?.getIndentationInfo(te)?.startsWithIndentationLessThanTabSize)),this._register(Y.bind(mt.suppressSuggestions,(te)=>{let ne=this.model.read(te)?.inlineCompletionState.read(te);return ne?.primaryGhostText&&ne?.inlineSuggestion?ne.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(Y.bind(mt.inlineSuggestionAlternativeActionVisible,(te)=>{let re=this.model.read(te)?.inlineEditState.read(te)?.inlineSuggestion.action;return re&&re.kind==="edit"&&re.alternativeAction!==void 0})),this._register(Y.bind(mt.inlineSuggestionVisible,(te)=>{let ne=this.model.read(te)?.inlineCompletionState.read(te);return!!ne?.inlineSuggestion&&ne?.primaryGhostText!==void 0&&!ne?.primaryGhostText.isEmpty()}));let ee=u(this,(te)=>{let re=this.model.read(te)?.inlineCompletionState.read(te)?.primaryGhostText;if(!re||re.isEmpty())return;return new s(re.lineNumber,re.parts[0].column)});this._register(Y.bind(mt.cursorBeforeGhostText,(te)=>{let oe=ee.read(te);if(!oe)return!1;let ne=this._editorObs.cursorPosition.read(te);if(!ne)return!1;return oe.equals(ne)})),this._register(this._instantiationService.createInstance(Mm,this.editor))}_isEditorDictationInProgress(){return this._contextKeyService.getContext(this.editor.getDomNode())?.getValue("editorDictation.inProgress")===!0}playAccessibilitySignal(i){this._playAccessibilitySignal.trigger(i)}_provideScreenReaderUpdate(i){let h=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),b=this._keybindingService.lookupKeybinding("editor.action.accessibleView"),v;if(!h&&b&&this.editor.getOption(170))v=e(1267,"Inspect this in the accessible view ({0})",b.getAriaLabel());Dn(v?i+", "+v:i)}shouldShowHoverAt(i){let h=this.model.get()?.primaryGhostText.get();if(!h)return!1;return h.parts.some((b)=>i.containsPosition(new s(h.lineNumber,b.column)))}shouldShowHoverAtViewZone(i){return this._view.get().shouldShowHoverAtViewZone(i)}reject(){Ue((i)=>{let h=this.model.get();if(h){if(h.stop("explicitCancel",i),this._focusIsInEditorOrMenu.get()){for(let b of Kr._instances)if(b!==this&&!b._focusIsInEditorOrMenu.get())b.model.get()?.stop("automatic",i)}}})}jump(){let i=this.model.get();if(i)i.jump()}};Hi=Kr=wM([Na(1,D),Na(2,K),Na(3,ie),Na(4,Be),Na(5,Ji),Na(6,V),Na(7,rs),Na(8,fe)],Hi);class a_ extends U{static{this.ID=Qp}constructor(){super({id:a_.ID,label:p(1239,"Show Next Inline Suggestion"),precondition:C.and(o.writable,mt.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(f,i){Hi.get(i)?.model.get()?.next()}}class d_ extends U{static{this.ID=Jp}constructor(){super({id:d_.ID,label:p(1240,"Show Previous Inline Suggestion"),precondition:C.and(o.writable,mt.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(f,i){Hi.get(i)?.model.get()?.previous()}}var CM="vscode://schemas/inlineCompletionProviderIdArgs";function yM(f){let i=[];if(f.providerId)i.push(f.providerId.toStringWithoutVersion()),i.push(f.providerId.extensionId+":*");return i}var ZD=h1(l1({showNoResultNotification:Pu(qw()),providerId:Pu(g1(CM,n1())),explicit:Pu(qw()),changeHintData:Pu(s1())}),a1());class ty extends U{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:p(1241,"Trigger Inline Suggestion"),precondition:o.writable,metadata:{description:e(1228,"Triggers an inline suggestion in the editor."),args:[{name:"args",description:e(1229,"Options for triggering inline suggestions."),isOptional:!0,schema:ZD.getJSONSchema()}]}})}async run(f,i,h){let b=f.get(bt),v=f.get(V),w=Hi.get(i),x=ZD.validateOrThrow(h),I=x?.providerId?v.inlineCompletionsProvider.all(i.getModel()).find((E)=>yM(E).some((T)=>T===x.providerId)):void 0;if(await OR(async(E)=>{await w?.model.get()?.trigger(E,{provider:I,explicit:x?.explicit??!0,changeHint:x?.changeHintData?{data:x.changeHintData}:void 0}),w?.playAccessibilitySignal(E)}),x?.showNoResultNotification){if(!w?.model.get()?.state.get())b.notify({severity:Al.Info,message:e(1230,"No inline suggestion is available.")})}}}class iy extends U{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:p(1242,"Accept Next Word Of Inline Suggestion"),precondition:C.and(o.writable,mt.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:C.and(o.writable,mt.inlineSuggestionVisible,mt.cursorBeforeGhostText,Su.negate())},menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1231,"Accept Word"),group:"primary",order:2}]})}async run(f,i){await Hi.get(i)?.model.get()?.acceptNextWord()}}class oy extends U{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:p(1243,"Accept Next Line Of Inline Suggestion"),precondition:C.and(o.writable,mt.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1232,"Accept Line"),group:"secondary",order:2}]})}async run(f,i){await Hi.get(i)?.model.get()?.acceptNextLine()}}class ny extends U{constructor(){super({id:qn,label:p(1244,"Accept Inline Suggestion"),precondition:C.or(mt.inlineSuggestionVisible,mt.inlineEditVisible),menuOpts:[{menuId:l.InlineSuggestionToolbar,title:e(1233,"Accept"),group:"primary",order:2},{menuId:l.InlineEditsActions,title:e(1234,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:C.or(C.and(mt.inlineSuggestionVisible,o.tabMovesFocus.toNegated(),Ye.Visible.toNegated(),o.hoverFocused.toNegated(),mt.hasSelection.toNegated(),mt.inlineSuggestionHasIndentationLessThanTabSize),C.and(mt.inlineEditVisible,o.tabMovesFocus.toNegated(),Ye.Visible.toNegated(),o.hoverFocused.toNegated(),mt.tabShouldAcceptInlineEdit))}]})}async run(f,i){let h=Hi.getInFocusedEditorOrParent(f);if(h)h.model.get()?.accept(h.editor),h.editor.focus()}}Sn.registerKeybindingRule({id:qn,weight:202,primary:2,when:C.and(mt.inInlineEditsPreviewEditor)});class ry extends U{constructor(){super({id:kd,label:p(1245,"Accept Inline Suggestion Alternative Action"),precondition:C.and(mt.inlineSuggestionAlternativeActionVisible,mt.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(f,i){let h=Hi.getInFocusedEditorOrParent(f);if(h)h.model.get()?.accept(h.editor,!0),h.editor.focus()}}Sn.registerKeybindingRule({id:kd,weight:203,primary:1026,when:C.and(mt.inInlineEditsPreviewEditor)});class sy extends U{constructor(){super({id:Tl,label:p(1246,"Jump to next inline edit"),precondition:mt.inlineEditVisible,menuOpts:[{menuId:l.InlineEditsActions,title:e(1235,"Jump"),group:"primary",order:1,when:mt.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:C.and(mt.inlineEditVisible,o.tabMovesFocus.toNegated(),Ye.Visible.toNegated(),o.hoverFocused.toNegated(),mt.tabShouldJumpToInlineEdit)}})}async run(f,i){let h=Hi.get(i);if(h)h.jump()}}class rg extends U{static{this.ID=em}constructor(){super({id:rg.ID,label:p(1247,"Hide Inline Suggestion"),precondition:C.or(mt.inlineSuggestionVisible,mt.inlineEditVisible),kbOpts:{kbExpr:o.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:l.InlineEditsActions,title:e(1236,"Reject"),group:"primary",order:3}]})}async run(f,i){let h=Hi.getInFocusedEditorOrParent(f);Ue((b)=>{h?.model.get()?.stop("explicitCancel",b)}),h?.editor.focus()}}class l_ extends U{static{this.ID=kh}constructor(){super({id:l_.ID,label:p(1248,"Toggle Inline Suggestions Show Collapsed"),precondition:C.true()})}async run(f,i){let h=f.get(ie),b=h.getValue("editor.inlineSuggest.edits.showCollapsed");h.updateValue("editor.inlineSuggest.edits.showCollapsed",!b)}}Sn.registerKeybindingRule({id:rg.ID,weight:-1,primary:9,secondary:[1033],when:C.and(mt.inInlineEditsPreviewEditor)});class c_ extends fn{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:c_.ID,title:e(1237,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:l.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:C.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(f){let i=f.get(ie),b=i.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";i.updateValue("editor.inlineSuggest.showToolbar",b)}}class ay extends U{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:e(1238,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:C.or(mt.inlineEditVisible,mt.inlineSuggestionVisible)})}async run(f,i){let h=f.get(ri),v=Hi.get(i)?.model.get();if(!v)return;let w=v.extractReproSample(),I=li(JSON.stringify({inlineCompletion:w.inlineCompletion},null,4)).map((T)=>"// "+T).join(`
55
- `),E=`${w.documentValue}
56
-
57
- // <json>
58
- ${I}
59
- // </json>
60
- `;return await h.writeText(E),{reproCase:E}}}var xM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},h_=function(f,i){return function(h,b){i(h,b,f)}};class XD{constructor(f,i,h){this.owner=f,this.range=i,this.controller=h}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}var u_=class f{constructor(i,h,b,v,w){this._editor=i,this.accessibilityService=h,this._instantiationService=b,this._telemetryService=v,this._markdownRendererService=w,this.hoverOrdinal=4,this.hideCopyButton=!0}suggestHoverAnchor(i){let h=Hi.get(this._editor);if(!h)return null;let b=i.target;if(b.type===8){let v=b.detail;if(h.shouldShowHoverAtViewZone(v.viewZoneId))return new na(1000,this,t.fromPositions(this._editor.getModel().validatePosition(v.positionBefore||v.position)),i.event.posx,i.event.posy,!1)}if(b.type===7){if(h.shouldShowHoverAt(b.range))return new na(1000,this,b.range,i.event.posx,i.event.posy,!1)}if(b.type===6){if(b.detail.mightBeForeignElement&&h.shouldShowHoverAt(b.range))return new na(1000,this,b.range,i.event.posx,i.event.posy,!1)}if(b.type===9&&b.element){let v=Sa.getWarningWidgetContext(b.element);if(v&&h.shouldShowHoverAt(v.range))return new na(1000,this,v.range,i.event.posx,i.event.posy,!1)}return null}computeSync(i,h){if(this._editor.getOption(71).showToolbar!=="onHover")return[];let b=Hi.get(this._editor);if(b&&b.shouldShowHoverAt(i.range))return[new XD(this,i.range,b)];return[]}renderHoverParts(i,h){let b=new d,v=h[0];if(this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12))b.add(this.renderScreenReaderText(i,v));let w=v.controller.model.get(),x=document.createElement("div");return i.fragment.appendChild(x),b.add(zn((E,T)=>{let O=T.add(this._instantiationService.createInstance(_s.hot.read(E),this._editor,!1,Re(null),w.selectedInlineCompletionIndex,w.inlineCompletionsCount,w.activeCommands,w.warning,()=>{i.onContentsChanged()}));x.replaceChildren(O.getDomNode())})),w.triggerExplicitly(),new Bo([{hoverPart:v,hoverElement:x,dispose(){b.dispose()}}])}getAccessibleContent(i){return e(1268,"There are inline completions here")}renderScreenReaderText(i,h){let b=new d,v=g,w=v("div.hover-row.markdown-hover"),x=_(w,v("div.hover-contents",{["aria-live"]:"assertive"})),I=(E)=>{let T=e(1269,"Suggestion:"),O=b.add(this._markdownRendererService.render(new En().appendText(T).appendCodeblock("text",E),{context:this._editor,asyncRenderCallback:()=>{x.className="hover-contents code-hover-contents",i.onContentsChanged()}}));x.replaceChildren(O.element)};return b.add(W((E)=>{let T=h.controller.model.read(E)?.primaryGhostText.read(E);if(T){let O=this._editor.getModel().getLineContent(T.lineNumber);I(T.renderForScreenReader(O))}else sn(x)})),i.fragment.appendChild(w),b}};u_=xM([h_(1,Yt),h_(2,D),h_(3,In),h_(4,Er)],u_);class dy{}pe(Hi.ID,o1(Hi.hot),3);N(ty);N(a_);N(d_);N(iy);N(oy);N(ny);N(ry);N(l_);N(rg);N(sy);it(c_);N(ay);it(b0);it(y0);Ma.register(u_);Gl.register(new dy);var IM=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},Gd=function(f,i){return function(h,b){i(h,b,f)}},ly,sg=class f{static{ly=this}static{this.ID="editor.contrib.contextmenu"}static get(i){return i.getContribution(ly.ID)}constructor(i,h,b,v,w,x,I,E){this._contextMenuService=h,this._contextViewService=b,this._contextKeyService=v,this._keybindingService=w,this._menuService=x,this._configurationService=I,this._workspaceContextService=E,this._toDispose=new d,this._contextMenuIsBeingShownCount=0,this._editor=i,this._toDispose.add(this._editor.onContextMenu((T)=>this._onContextMenu(T))),this._toDispose.add(this._editor.onMouseWheel((T)=>{if(this._contextMenuIsBeingShownCount>0){let O=this._contextViewService.getContextViewElement(),A=T.srcElement;if(!(A.shadowRoot&&za(O)===A.shadowRoot))this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown((T)=>{if(!this._editor.getOption(30))return;if(T.keyCode===58)T.preventDefault(),T.stopPropagation(),this.showContextMenu()}))}_onContextMenu(i){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){if(this._editor.focus(),i.target.position&&!this._editor.getSelection().containsPosition(i.target.position))this._editor.setPosition(i.target.position);return}if(i.target.type===12)return;if(i.target.type===6&&i.target.detail.injectedText)return;if(i.event.preventDefault(),i.event.stopPropagation(),i.target.type===11)return this._showScrollbarContextMenu(i.event);if(i.target.type!==6&&i.target.type!==7&&i.target.type!==1)return;if(this._editor.focus(),i.target.position){let b=!1;for(let v of this._editor.getSelections())if(v.containsPosition(i.target.position)){b=!0;break}if(!b)this._editor.setPosition(i.target.position)}let h=null;if(i.target.type!==1)h=i.event;this.showContextMenu(h)}showContextMenu(i){if(!this._editor.getOption(30))return;if(!this._editor.hasModel())return;let h=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);if(h.length>0)this._doShowContextMenu(h,i)}_getMenuActions(i,h){let b=[],v=this._menuService.getMenuActions(h,this._contextKeyService,{arg:i.uri});for(let w of v){let[,x]=w,I=0;for(let E of x)if(E instanceof $l){let T=this._getMenuActions(i,E.item.submenu);if(T.length>0)b.push(new Xo(E.id,E.label,T)),I++}else b.push(E),I++;if(I)b.push(new ot)}if(b.length)b.pop();return b}_doShowContextMenu(i,h=null){if(!this._editor.hasModel())return;let b=h;if(!b){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let w=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),x=xt(this._editor.getDomNode()),I=x.left+w.left,E=x.top+w.top+w.height;b={x:I,y:E}}let v=this._editor.getOption(144)&&!gr;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:v?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:v&&this._editor.getOption(51),getAnchor:()=>b,getActions:()=>i,getActionViewItem:(w)=>{let x=this._keybindingFor(w);if(x)return new Fl(w,w,{label:!0,keybinding:x.getLabel(),isMenu:!0});let I=w;if(typeof I.getActionViewItem==="function")return I.getActionViewItem();return new Fl(w,w,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:(w)=>this._keybindingFor(w),onHide:(w)=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(i){if(!this._editor.hasModel())return;if(vI(this._workspaceContextService.getWorkspace()))return;let h=this._editor.getOption(81),b=0,v=(T)=>({id:`menu-action-${++b}`,label:T.label,tooltip:"",class:void 0,enabled:typeof T.enabled>"u"?!0:T.enabled,checked:T.checked,run:T.run}),w=(T,O)=>new Xo(`menu-action-${++b}`,T,O,void 0),x=(T,O,A,Y,ee)=>{if(!O)return v({label:T,enabled:O,run:()=>{}});let te=(ne)=>()=>{this._configurationService.updateValue(A,ne)},oe=[];for(let ne of ee)oe.push(v({label:ne.label,checked:Y===ne.value,run:te(ne.value)}));return w(T,oe)},I=[];I.push(v({label:e(952,"Minimap"),checked:h.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!h.enabled)}})),I.push(new ot),I.push(v({label:e(953,"Render Characters"),enabled:h.enabled,checked:h.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!h.renderCharacters)}})),I.push(x(e(954,"Vertical size"),h.enabled,"editor.minimap.size",h.size,[{label:e(955,"Proportional"),value:"proportional"},{label:e(956,"Fill"),value:"fill"},{label:e(957,"Fit"),value:"fit"}])),I.push(x(e(958,"Slider"),h.enabled,"editor.minimap.showSlider",h.showSlider,[{label:e(959,"Mouse Over"),value:"mouseover"},{label:e(960,"Always"),value:"always"}])),I.push(x(e(961,"Side"),h.enabled,"editor.minimap.side",h.side,[{label:e(962,"Right"),value:"right"},{label:e(963,"Left"),value:"left"}]));let E=this._editor.getOption(144)&&!gr;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:E?this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:E&&this._editor.getOption(51),getAnchor:()=>i,getActions:()=>I,onHide:(T)=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(i){return this._keybindingService.lookupKeybinding(i.id)}dispose(){if(this._contextMenuIsBeingShownCount>0)this._contextViewService.hideContextView();this._toDispose.dispose()}};sg=ly=IM([Gd(1,Fn),Gd(2,is),Gd(3,K),Gd(4,fe),Gd(5,wi),Gd(6,ie),Gd(7,Ks)],sg);class YD extends U{constructor(){super({id:"editor.action.showContextMenu",label:p(964,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:1092,weight:100}})}run(f,i){sg.get(i)?.showContextMenu()}}pe(sg.ID,sg,2);N(YD);class cy extends n{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(f){super();this.editor=f,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let f=Ei.get(this.editor);if(f&&this.editor.hasModel()){let i=this.editor.getOptions().get(105);if(!i)if(this.editor.isSimpleWidget)i=new En(e(1447,"Cannot edit in read-only input"));else i=new En(e(1448,"Cannot edit in read-only editor"));f.showMessage(i,this.editor.getPosition())}}}pe(cy.ID,cy,2);class hy extends fn{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:hy.ID,title:p(1604,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:p(1605,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){let i=!_u.getTabFocusMode();if(_u.setTabFocusMode(i),i)Dn(e(1602,"Pressing Tab will now move focus to the next focusable element"));else Dn(e(1603,"Pressing Tab will now insert the tab character"))}}it(hy);var JD=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},uy=function(f,i){return function(h,b){i(h,b,f)}},LM=26,g_=class f extends n{constructor(i,h){super();this._editor=i,this.instantiationService=h,this.banner=this._register(this.instantiationService.createInstance(gy))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(i){this.banner.show({...i,onClose:()=>{this.hide(),i.onClose?.()}}),this._editor.setBanner(this.banner.element,LM)}};g_=JD([uy(1,D)],g_);var gy=class f extends n{constructor(i,h){super();this.instantiationService=i,this.markdownRendererService=h,this.element=g("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(i){if(i.ariaLabel)return i.ariaLabel;if(typeof i.message==="string")return i.message;return}getBannerMessage(i){if(typeof i==="string"){let h=g("span");return h.innerText=i,h}return this.markdownRendererService.render(i).element}clear(){on(this.element)}show(i){on(this.element);let h=this.getAriaLabel(i);if(h)this.element.setAttribute("aria-label",h);let b=_(this.element,g("div.icon-container"));if(b.setAttribute("aria-hidden","true"),i.icon)b.appendChild(g(`div${J.asCSSSelector(i.icon)}`));let v=_(this.element,g("div.message-container"));if(v.setAttribute("aria-hidden","true"),v.appendChild(this.getBannerMessage(i.message)),this.messageActionsContainer=_(this.element,g("div.message-actions-container")),i.actions)for(let x of i.actions)this._register(this.instantiationService.createInstance(Xd,this.messageActionsContainer,{...x,tabIndex:-1},{}));let w=_(this.element,g("div.action-container"));this.actionBar=this._register(new Fi(w)),this.actionBar.push(this._register(new cr("banner.close",e(1607,"Close Banner"),J.asClassName(P0),!0,()=>{if(typeof i.onClose==="function")i.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};gy=JD([uy(0,D),uy(1,Er)],gy);var by=function(f,i,h,b){var v=arguments.length,w=v<3?i:b===null?b=Object.getOwnPropertyDescriptor(i,h):b,x;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")w=Reflect.decorate(f,i,h,b);else for(var I=f.length-1;I>=0;I--)if(x=f[I])w=(v<3?x(w):v>3?x(i,h,w):x(i,h))||w;return v>3&&w&&Object.defineProperty(i,h,w),w},ag=function(f,i){return function(h,b){i(h,b,f)}},EM=At("extensions-warning-message",y.warning,e(1608,"Icon shown with a warning message in the extensions editor.")),dg=class f extends n{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(i,h,b,v){super();this._editor=i,this._editorWorkerService=h,this._workspaceTrustService=b,this._highlighter=null,this._bannerClosed=!1,this._updateState=(w)=>{if(w&&w.hasMore){if(this._bannerClosed)return;let x=Math.max(w.ambiguousCharacterCount,w.nonBasicAsciiCharacterCount,w.invisibleCharacterCount),I;if(w.nonBasicAsciiCharacterCount>=x)I={message:e(1609,"This document contains many non-basic ASCII unicode characters"),command:new cg};else if(w.ambiguousCharacterCount>=x)I={message:e(1610,"This document contains many ambiguous unicode characters"),command:new qd};else if(w.invisibleCharacterCount>=x)I={message:e(1611,"This document contains many invisible unicode characters"),command:new lg};else throw Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:I.message,icon:EM,actions:[{label:I.command.shortLabel,href:`command:${I.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(v.createInstance(g_,i)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=i.getOption(142),this._register(b.onDidChangeTrust((w)=>{this._updateHighlighter()})),this._register(i.onDidChangeConfiguration((w)=>{if(w.hasChanged(142))this._options=i.getOption(142),this._updateHighlighter()})),this._updateHighlighter()}dispose(){if(this._highlighter)this._highlighter.dispose(),this._highlighter=null;super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter)this._highlighter.dispose(),this._highlighter=null;if(!this._editor.hasModel())return;let i=DM(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([i.nonBasicASCII,i.ambiguousCharacters,i.invisibleCharacters].every((b)=>b===!1))return;let h={nonBasicASCII:i.nonBasicASCII,ambiguousCharacters:i.ambiguousCharacters,invisibleCharacters:i.invisibleCharacters,includeComments:i.includeComments,includeStrings:i.includeStrings,allowedCodePoints:Object.keys(i.allowedCharacters).map((b)=>b.codePointAt(0)),allowedLocales:Object.keys(i.allowedLocales).map((b)=>{if(b==="_os")return Rl.NumberFormat().value.resolvedOptions().locale;else if(b==="_vscode")return CR;return b})};if(this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri))this._highlighter=new my(this._editor,h,this._updateState,this._editorWorkerService);else this._highlighter=new QD(this._editor,h,this._updateState)}getDecorationInfo(i){if(this._highlighter)return this._highlighter.getDecorationInfo(i);return null}};dg=by([ag(1,_i),ag(2,R0),ag(3,D)],dg);function DM(f,i){return{nonBasicASCII:i.nonBasicASCII===Ms?!f:i.nonBasicASCII,ambiguousCharacters:i.ambiguousCharacters,invisibleCharacters:i.invisibleCharacters,includeComments:i.includeComments===Ms?!f:i.includeComments,includeStrings:i.includeStrings===Ms?!f:i.includeStrings,allowedCharacters:i.allowedCharacters,allowedLocales:i.allowedLocales}}var my=class f extends n{constructor(i,h,b,v){super();this._editor=i,this._options=h,this._updateState=b,this._editorWorkerService=v,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new _e(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let i=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((h)=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==i)return;this._updateState(h);let b=[];if(!h.hasMore)for(let v of h.ranges)b.push({range:v,options:p_.instance.getDecorationFromOptions(this._options)});this._decorations.set(b)})}getDecorationInfo(i){if(!this._decorations.has(i))return null;let h=this._editor.getModel();if(!Yv(h,i))return null;let b=h.getValueInRange(i.range);return{reason:t2(b,this._options),inComment:l0(h,i),inString:c0(h,i)}}};my=by([ag(3,_i)],my);class QD extends n{constructor(f,i,h){super();this._editor=f,this._options=i,this._updateState=h,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new _e(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let f=this._editor.getVisibleRanges(),i=[],h={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let b of f){let v=zg.computeUnicodeHighlights(this._model,this._options,b);for(let w of v.ranges)h.ranges.push(w);h.ambiguousCharacterCount+=h.ambiguousCharacterCount,h.invisibleCharacterCount+=h.invisibleCharacterCount,h.nonBasicAsciiCharacterCount+=h.nonBasicAsciiCharacterCount,h.hasMore=h.hasMore||v.hasMore}if(!h.hasMore)for(let b of h.ranges)i.push({range:b,options:p_.instance.getDecorationFromOptions(this._options)});this._updateState(h),this._decorations.set(i)}getDecorationInfo(f){if(!this._decorations.has(f))return null;let i=this._editor.getModel(),h=i.getValueInRange(f.range);if(!Yv(i,f))return null;return{reason:t2(h,this._options),inComment:l0(i,f),inString:c0(i,f)}}}var e2=e(1612,"Configure Unicode Highlight Options"),fy=class f{constructor(i,h){this._editor=i,this._markdownRendererService=h,this.hoverOrdinal=5}computeSync(i,h){if(!this._editor.hasModel()||i.type!==1)return[];let b=this._editor.getModel(),v=this._editor.getContribution(dg.ID);if(!v)return[];let w=[],x=new Set,I=300;for(let E of h){let T=v.getDecorationInfo(E);if(!T)continue;let A=b.getValueInRange(E.range).codePointAt(0),Y=py(A),ee;switch(T.reason.kind){case 0:{if(Xc(T.reason.confusableWith))ee=e(1613,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",Y,py(T.reason.confusableWith.codePointAt(0)));else ee=e(1614,"The character {0} could be confused with the character {1}, which is more common in source code.",Y,py(T.reason.confusableWith.codePointAt(0)));break}case 1:ee=e(1615,"The character {0} is invisible.",Y);break;case 2:ee=e(1616,"The character {0} is not a basic ASCII character.",Y);break}if(x.has(ee))continue;x.add(ee);let te={codePoint:A,reason:T.reason,inComment:T.inComment,inString:T.inString},oe=e(1617,"Adjust settings"),ne=g0(m_.ID,te),re=new En("",!0).appendMarkdown(ee).appendText(" ").appendLink(ne,oe,e2);w.push(new ro(this,E.range,[re],!1,I++))}return w}renderHoverParts(i,h){return KE(i,h,this._editor,this._markdownRendererService)}getAccessibleContent(i){return i.contents.map((h)=>h.value).join(`
61
- `)}};fy=by([ag(1,Er)],fy);function _y(f){return`U+${f.toString(16).padStart(4,"0")}`}function py(f){let i=`\`${_y(f)}\``;if(!pc.isInvisibleCharacter(f))i+=` "${`${RM(f)}`}"`;return i}function RM(f){if(f===96)return"`` ` ``";return"`"+String.fromCodePoint(f)+"`"}function t2(f,i){return zg.computeUnicodeHighlightReason(f,i)}class p_{constructor(){this.map=new Map}static{this.instance=new p_}getDecorationFromOptions(f){return this.getDecoration(!f.includeComments,!f.includeStrings)}getDecoration(f,i){let h=`${f}${i}`,b=this.map.get(h);if(!b)b=ce.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:f,hideInStringTokens:i}),this.map.set(h,b);return b}}class i2 extends U{constructor(){super({id:qd.ID,label:p(1626,"Disable highlighting of characters in comments"),precondition:void 0});this.shortLabel=e(1618,"Disable Highlight In Comments")}async run(f,i){let h=f.get(ie);if(h)this.runAction(h)}async runAction(f){await f.updateValue(Jo.includeComments,!1,2)}}class o2 extends U{constructor(){super({id:qd.ID,label:p(1627,"Disable highlighting of characters in strings"),precondition:void 0});this.shortLabel=e(1619,"Disable Highlight In Strings")}async run(f,i){let h=f.get(ie);if(h)this.runAction(h)}async runAction(f){await f.updateValue(Jo.includeStrings,!1,2)}}class qd extends fn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:qd.ID,title:p(1628,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1});this.shortLabel=e(1620,"Disable Ambiguous Highlight")}async run(f,i){let h=f.get(ie);if(h)this.runAction(h)}async runAction(f){await f.updateValue(Jo.ambiguousCharacters,!1,2)}}class lg extends fn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:lg.ID,title:p(1629,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1});this.shortLabel=e(1621,"Disable Invisible Highlight")}async run(f,i){let h=f.get(ie);if(h)this.runAction(h)}async runAction(f){await f.updateValue(Jo.invisibleCharacters,!1,2)}}class cg extends fn{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:cg.ID,title:p(1630,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1});this.shortLabel=e(1622,"Disable Non ASCII Highlight")}async run(f,i){let h=f.get(ie);if(h)this.runAction(h)}async runAction(f){await f.updateValue(Jo.nonBasicASCII,!1,2)}}class m_ extends fn{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:m_.ID,title:p(1631,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(f,i){let{codePoint:h,reason:b,inString:v,inComment:w}=i,x=String.fromCodePoint(h),I=f.get(gn),E=f.get(ie);function T(ee){if(pc.isInvisibleCharacter(ee))return e(1623,"Exclude {0} (invisible character) from being highlighted",_y(ee));return e(1624,"Exclude {0} from being highlighted",`${_y(ee)} "${x}"`)}let O=[];if(b.kind===0)for(let ee of b.notAmbiguousInLocales)O.push({label:e(1625,'Allow unicode characters that are more common in the language "{0}".',ee),run:async()=>{TM(E,[ee])}});if(O.push({label:T(h),run:()=>kM(E,[h])}),w){let ee=new i2;O.push({label:ee.label,run:async()=>ee.runAction(E)})}else if(v){let ee=new o2;O.push({label:ee.label,run:async()=>ee.runAction(E)})}function A(ee){return typeof ee.desc.title==="string"?ee.desc.title:ee.desc.title.value}if(b.kind===0){let ee=new qd;O.push({label:A(ee),run:async()=>ee.runAction(E)})}else if(b.kind===1){let ee=new lg;O.push({label:A(ee),run:async()=>ee.runAction(E)})}else if(b.kind===2){let ee=new cg;O.push({label:A(ee),run:async()=>ee.runAction(E)})}else NM(b);let Y=await I.pick(O,{title:e2});if(Y)await Y.run()}}async function kM(f,i){let h=f.getValue(Jo.allowedCharacters),b;if(typeof h==="object"&&h)b=h;else b={};for(let v of i)b[String.fromCodePoint(v)]=!0;await f.updateValue(Jo.allowedCharacters,b,2)}async function TM(f,i){let h=f.inspect(Jo.allowedLocales).user?.value,b;if(typeof h==="object"&&h)b=Object.assign({},h);else b={};for(let v of i)b[v]=!0;await f.updateValue(Jo.allowedLocales,b,2)}function NM(f){throw Error(`Unexpected value: ${f}`)}it(qd);it(lg);it(cg);it(m_);pe(dg.ID,dg,1);Ma.register(fy);class vy{constructor(f,i,h,b,v){this._onDidChange=new dp,this._onDidExtraLibsChange=new dp,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(f),this.setDiagnosticsOptions(i),this.setWorkerOptions(h),this.setInlayHintsOptions(b),this.setModeConfiguration(v),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(f,i){let h;if(typeof i>"u")h=`ts:extralib-${Math.random().toString(36).substring(2,15)}`;else h=i;if(this._extraLibs[h]&&this._extraLibs[h].content===f)return{dispose:()=>{}};let b=1;if(this._removedExtraLibs[h])b=this._removedExtraLibs[h]+1;if(this._extraLibs[h])b=this._extraLibs[h].version+1;return this._extraLibs[h]={content:f,version:b},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let v=this._extraLibs[h];if(!v)return;if(v.version!==b)return;delete this._extraLibs[h],this._removedExtraLibs[h]=b,this._fireOnDidExtraLibsChangeSoon()}}}setExtraLibs(f){for(let i in this._extraLibs)this._removedExtraLibs[i]=this._extraLibs[i].version;if(this._extraLibs=Object.create(null),f&&f.length>0)for(let i of f){let h=i.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,b=i.content,v=1;if(this._removedExtraLibs[h])v=this._removedExtraLibs[h]+1;this._extraLibs[h]={content:b,version:v}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){if(this._onDidExtraLibsChangeTimeout!==-1)return;this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0)}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(f){this._compilerOptions=f||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(f){this._diagnosticsOptions=f||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(f){this._workerOptions=f||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(f){this._inlayHintsOptions=f||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(f){}setEagerModelSync(f){this._eagerModelSync=f}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(f){this._modeConfiguration=f||Object.create(null),this._onDidChange.fire(void 0)}}var n2={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},Sk=new vy({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},n2),OM=new vy({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},n2);function r2(){return we("sf49ee9x"),import("./tsMode-sf49ee9x.js")}ye.onLanguage("typescript",()=>r2().then((f)=>f.setupTypeScript(Sk)));ye.onLanguage("javascript",()=>r2().then((f)=>f.setupJavaScript(OM)));export{Pt,Cg,du,k_,E_,T_,kg,Eg,yk,L_,uc,hc,vR,Sv,uu,Ma,Tg,gf,$_,R_,vk,wk,I_,xk,hu,Cv,D_,N_,bf,Lg,yf,$g,O_,mr,Rg,_k,pu,us,Sk};
62
-
63
- //# debugId=C861B711A676760A64756E2164756E21
64
- //# sourceMappingURL=studio-nv2cptd4.js.map