@jxsuite/studio 6.1.0 → 6.1.2

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 (645) hide show
  1. package/dist/chunks/2020-f2gkpy8d.js +4 -0
  2. package/dist/chunks/{action-group-2mqby73c.js → action-group-4aan7g6g.js} +3 -3
  3. package/dist/chunks/adapter-4912g339.js +4 -0
  4. package/dist/chunks/cf-account-picker-wccaenh6.js +4 -0
  5. package/dist/chunks/cf-settings-br6105tr.js +4 -0
  6. package/dist/chunks/color-28ksk2qm.js +4 -0
  7. package/dist/chunks/color-area-0fj8a4ga.js +4 -0
  8. package/dist/chunks/color-field-xch8kx2g.js +4 -0
  9. package/dist/chunks/color-slider-jxd8v350.js +4 -0
  10. package/dist/chunks/combobox-p0efwjke.js +4 -0
  11. package/dist/chunks/components-db68vsn7.js +4 -0
  12. package/dist/chunks/content-source-1449qesq.js +4 -0
  13. package/dist/chunks/convert-to-repeater-5h457egj.js +4 -0
  14. package/dist/chunks/dialog-c4x05vyx.js +4 -0
  15. package/dist/chunks/editor-x9jn86a7.js +4 -0
  16. package/dist/chunks/entry-commands-may24cpt.js +4 -0
  17. package/dist/chunks/extension-sections-pvr14vxr.js +4 -0
  18. package/dist/chunks/file-ops-x9v54pcj.js +4 -0
  19. package/dist/chunks/files-j3knqf0s.js +4 -0
  20. package/dist/chunks/format-host-tyre2trb.js +4 -0
  21. package/dist/chunks/fs-events-64ma9htc.js +4 -0
  22. package/dist/chunks/git-panel-84ps5dex.js +4 -0
  23. package/dist/chunks/grid-view-d2wq9ezg.js +51 -0
  24. package/dist/chunks/icons-pnfz478q.js +4 -0
  25. package/dist/chunks/iframe-entry-fvbk89gm.js +5 -0
  26. package/dist/chunks/iframe-entry-jdcktez8.js +5 -0
  27. package/dist/chunks/iframe-entry-x0ygf2yr.js +5 -0
  28. package/dist/chunks/iframe-entry-zap785cw.js +5 -0
  29. package/dist/chunks/iframe-host-ck6vejt5.js +4 -0
  30. package/dist/chunks/index-b8xw3vy9.js +4 -0
  31. package/dist/chunks/{index-gybvv7a6.js → index-zpjmzqfk.js} +3 -3
  32. package/dist/chunks/{javascript-rnvdp3k4.js → javascript-m54mnwp6.js} +3 -3
  33. package/dist/chunks/jsonMode-w15cmrcm.js +13 -0
  34. package/dist/chunks/jx-validate-at3zn8wa.js +4 -0
  35. package/dist/chunks/layers-h4xp1pss.js +4 -0
  36. package/dist/chunks/layers-panel-m5hw1d7g.js +4 -0
  37. package/dist/chunks/listbox-e74qjyq6.js +4 -0
  38. package/dist/chunks/lit-html-8t8t3dnr.js +4 -0
  39. package/dist/chunks/media-picker-2cweexc5.js +4 -0
  40. package/dist/chunks/menu-n6yzswmy.js +4 -0
  41. package/dist/chunks/menu-ynw13y0s.js +4 -0
  42. package/dist/chunks/monaco-binding-7gx83x3r.js +4 -0
  43. package/dist/chunks/monaco-buffer-qzxn567r.js +4 -0
  44. package/dist/chunks/monaco-setup-gxf6656g.js +4 -0
  45. package/dist/chunks/notify-cj5zbrs2.js +4 -0
  46. package/dist/chunks/number-field-y62xq0ty.js +4 -0
  47. package/dist/chunks/parse-b7ddhr8m.js +4 -0
  48. package/dist/chunks/platform-3dfws9js.js +4 -0
  49. package/dist/chunks/popover-jt2gxmzs.js +4 -0
  50. package/dist/chunks/publish-panel-1gvxbj21.js +4 -0
  51. package/dist/chunks/quick-search-0dajrwqg.js +4 -0
  52. package/dist/chunks/references-49qgt404.js +4 -0
  53. package/dist/chunks/right-panel-jm1bwe53.js +4 -0
  54. package/dist/chunks/section-registry-6kwc4fky.js +4 -0
  55. package/dist/chunks/select-rzds841e.js +4 -0
  56. package/dist/chunks/split-n2gfpm5m.js +4 -0
  57. package/dist/chunks/{studio-5g0ag7c0.js → studio-0q988f9w.js} +3 -3
  58. package/dist/chunks/studio-0rt52vpq.js +5 -0
  59. package/dist/chunks/studio-18vgbhs5.js +5 -0
  60. package/dist/chunks/{studio-pxg4ap1e.js → studio-1fxkaaea.js} +4 -4
  61. package/dist/chunks/studio-24mccdrj.js +5 -0
  62. package/dist/chunks/studio-2eh507zk.js +9 -0
  63. package/dist/chunks/studio-2hcbccfv.js +5 -0
  64. package/dist/chunks/studio-2j1cb95x.js +5 -0
  65. package/dist/chunks/studio-2jbs3rxv.js +5 -0
  66. package/dist/chunks/{studio-qbj760tx.js → studio-485046te.js} +7 -7
  67. package/dist/chunks/studio-4h8k4dw9.js +5 -0
  68. package/dist/chunks/studio-5f6n18kx.js +5 -0
  69. package/dist/chunks/studio-5gthpky6.js +5 -0
  70. package/dist/chunks/studio-5ve6bbep.js +5 -0
  71. package/dist/chunks/studio-6ep3js6b.js +9 -0
  72. package/dist/chunks/studio-6wkmf3wz.js +9 -0
  73. package/dist/chunks/studio-841rf3cg.js +5 -0
  74. package/dist/chunks/studio-8gmwgheg.js +5 -0
  75. package/dist/chunks/studio-8qm0ep50.js +5 -0
  76. package/dist/chunks/{studio-anyrgzvb.js → studio-90pq9km1.js} +4 -4
  77. package/dist/chunks/studio-924p1tm1.js +6 -0
  78. package/dist/chunks/{studio-v2bvmbjj.js → studio-a3g98wjr.js} +4 -4
  79. package/dist/chunks/studio-a3shpz9y.js +5 -0
  80. package/dist/chunks/studio-amsbaaar.js +6 -0
  81. package/dist/chunks/studio-at5spjbc.js +7 -0
  82. package/dist/chunks/studio-b2xv945e.js +5 -0
  83. package/dist/chunks/studio-bn5nkafw.js +5 -0
  84. package/dist/chunks/studio-bw6q5xjf.js +9 -0
  85. package/dist/chunks/studio-c7q0t9x1.js +5 -0
  86. package/dist/chunks/studio-camnhc96.js +6 -0
  87. package/dist/chunks/studio-cffqvnzd.js +5 -0
  88. package/dist/chunks/studio-d81xfh1g.js +5 -0
  89. package/dist/chunks/studio-dgz8d0c1.js +5 -0
  90. package/dist/chunks/studio-efvfrsf8.js +5 -0
  91. package/dist/chunks/studio-er30bpcx.js +5 -0
  92. package/dist/chunks/studio-ezscgr64.js +5 -0
  93. package/dist/chunks/studio-ffrrncvz.js +5 -0
  94. package/dist/chunks/studio-fpphgn8y.js +10 -0
  95. package/dist/chunks/studio-j1kvhdjk.js +4 -0
  96. package/dist/chunks/{studio-txjjzrsm.js → studio-j430n16g.js} +5 -5
  97. package/dist/chunks/studio-jjkg84nj.js +5 -0
  98. package/dist/chunks/studio-m0q32ars.js +4 -0
  99. package/dist/chunks/studio-m6bdst11.js +5 -0
  100. package/dist/chunks/studio-nv2cptd4.js +64 -0
  101. package/dist/chunks/studio-nwfrc98n.js +5 -0
  102. package/dist/chunks/studio-p1wgvp7r.js +5 -0
  103. package/dist/chunks/studio-pag2wncm.js +5 -0
  104. package/dist/chunks/studio-qvanvzfd.js +5 -0
  105. package/dist/chunks/studio-qwa64kt7.js +5 -0
  106. package/dist/chunks/studio-rk1zc4x3.js +928 -0
  107. package/dist/chunks/studio-se2r3ptc.js +5 -0
  108. package/dist/chunks/studio-sg2a0dh0.js +5 -0
  109. package/dist/chunks/studio-tjzjhe68.js +5 -0
  110. package/dist/chunks/{studio-0x3jyb8r.js → studio-tq0rtfwj.js} +4 -4
  111. package/dist/chunks/{studio-cpxkgjrj.js → studio-v0jzqdjm.js} +4 -4
  112. package/dist/chunks/studio-v2w7q8r1.js +7 -0
  113. package/dist/chunks/studio-v5vjq1h0.js +4 -0
  114. package/dist/chunks/studio-v8aga3vp.js +14 -0
  115. package/dist/chunks/studio-vfcdrfmv.js +5 -0
  116. package/dist/chunks/studio-vmfkgdjf.js +5 -0
  117. package/dist/chunks/studio-wt1816jj.js +5 -0
  118. package/dist/chunks/studio-wz73q5kq.js +4 -0
  119. package/dist/chunks/studio-y04qtxvp.js +7 -0
  120. package/dist/chunks/studio-y21g8zzg.js +5 -0
  121. package/dist/chunks/studio-y64hrt8p.js +12 -0
  122. package/dist/chunks/studio-ynn90f58.js +16 -0
  123. package/dist/chunks/studio-yxz682sx.js +5 -0
  124. package/dist/chunks/studio-zp7snvkq.js +5 -0
  125. package/dist/chunks/studio-zq4z6tm6.js +5 -0
  126. package/dist/chunks/swatch-group-ewh24n1f.js +4 -0
  127. package/dist/chunks/tabs-f5cw3tgp.js +4 -0
  128. package/dist/chunks/textfield-wewc8rq2.js +4 -0
  129. package/dist/chunks/toast-c9fn075p.js +4 -0
  130. package/dist/chunks/toast-host-ke5z4ng7.js +4 -0
  131. package/dist/chunks/{toolbar-2nnzqhrj.js → toolbar-44cm5cta.js} +3 -3
  132. package/dist/chunks/tooltip-5v8ngwj2.js +4 -0
  133. package/dist/chunks/tree-mdq3v5cw.js +4 -0
  134. package/dist/chunks/tsMode-sf49ee9x.js +14 -0
  135. package/dist/chunks/workspace-jtfahpee.js +4 -0
  136. package/dist/chunks/ws-client-nze0k6mv.js +4 -0
  137. package/dist/iframe-entry.js +16 -16
  138. package/dist/manifest.json +63 -63
  139. package/dist/studio.js +98 -98
  140. package/dist/workers/ts.worker.js +3 -3
  141. package/package.json +11 -11
  142. package/src/about/about-modal.ts +4 -3
  143. package/src/account/action-flow.ts +45 -38
  144. package/src/account-status.ts +7 -2
  145. package/src/browse/library-layouts.ts +8 -5
  146. package/src/browse/library-model.ts +18 -6
  147. package/src/browse/library-pane.ts +37 -21
  148. package/src/browse/library-preview.ts +14 -9
  149. package/src/browse/library-source.ts +1 -1
  150. package/src/canvas/asset-refs.ts +24 -9
  151. package/src/canvas/asset-resolve.ts +19 -23
  152. package/src/canvas/canvas-helpers.ts +7 -6
  153. package/src/canvas/canvas-live-render.ts +44 -53
  154. package/src/canvas/canvas-patcher.ts +30 -30
  155. package/src/canvas/canvas-perf.ts +11 -5
  156. package/src/canvas/canvas-render.ts +66 -42
  157. package/src/canvas/canvas-surface.ts +5 -3
  158. package/src/canvas/canvas-utils.ts +163 -64
  159. package/src/canvas/dialog-path.ts +9 -4
  160. package/src/canvas/dialog-state.ts +1 -2
  161. package/src/canvas/diff-marks.ts +9 -16
  162. package/src/canvas/diff-toolbar.ts +8 -7
  163. package/src/canvas/edit-width-drag.ts +4 -1
  164. package/src/canvas/edit-width.ts +1 -3
  165. package/src/canvas/iframe-channel.ts +27 -13
  166. package/src/canvas/iframe-drop.ts +13 -12
  167. package/src/canvas/iframe-editable-root.ts +29 -16
  168. package/src/canvas/iframe-entry.ts +80 -63
  169. package/src/canvas/iframe-eval.ts +73 -49
  170. package/src/canvas/iframe-host.ts +203 -118
  171. package/src/canvas/iframe-inline-edit.ts +69 -32
  172. package/src/canvas/iframe-insert.ts +5 -4
  173. package/src/canvas/iframe-interaction.ts +37 -26
  174. package/src/canvas/iframe-overlay.ts +1 -1
  175. package/src/canvas/iframe-patch.ts +18 -15
  176. package/src/canvas/iframe-position.ts +12 -6
  177. package/src/canvas/iframe-protocol.ts +15 -16
  178. package/src/canvas/iframe-render.ts +41 -36
  179. package/src/canvas/iframe-slash.ts +24 -11
  180. package/src/canvas/iframe-subtree.ts +6 -2
  181. package/src/canvas/path-mapping.ts +19 -12
  182. package/src/canvas/popover-path.ts +7 -3
  183. package/src/canvas/popover-state.ts +1 -2
  184. package/src/canvas/serialize-scope.ts +13 -5
  185. package/src/canvas/stage-scrollbar.ts +2 -1
  186. package/src/canvas/surface-registry.ts +21 -3
  187. package/src/collab/collab-commands.ts +7 -2
  188. package/src/collab/collab-session.ts +84 -45
  189. package/src/collab/collab-state.ts +4 -3
  190. package/src/collab/monaco-binding.ts +16 -13
  191. package/src/collab/monaco-cursors.ts +5 -2
  192. package/src/commands/budget.ts +3 -3
  193. package/src/commands/command-args.ts +103 -71
  194. package/src/commands/context.ts +22 -20
  195. package/src/commands/defaults.ts +4 -1
  196. package/src/commands/keymap.ts +47 -43
  197. package/src/commands/levels.ts +3 -3
  198. package/src/commands/live-context.ts +10 -8
  199. package/src/commands/reference.ts +2 -1
  200. package/src/commands/registry.ts +12 -10
  201. package/src/commands/run-reported.ts +15 -10
  202. package/src/component-props.ts +46 -30
  203. package/src/content/collection-match.ts +5 -4
  204. package/src/content/draft-state.ts +4 -3
  205. package/src/content/entry-commands.ts +3 -2
  206. package/src/content/entry-editor.ts +29 -17
  207. package/src/content/entry-fields.ts +12 -7
  208. package/src/content/entry-model.ts +21 -12
  209. package/src/editor/canvas-context-menu.ts +1 -2
  210. package/src/editor/canvas-slash-bridge.ts +3 -6
  211. package/src/editor/content-slice.ts +16 -14
  212. package/src/editor/context-menu.ts +35 -22
  213. package/src/editor/convert-targets.ts +30 -35
  214. package/src/editor/convert-to-component.ts +11 -5
  215. package/src/editor/convert-to-repeater.ts +34 -22
  216. package/src/editor/editable-tags.ts +17 -2
  217. package/src/editor/file-drop-action.ts +21 -22
  218. package/src/editor/inline-edit-apply.ts +35 -17
  219. package/src/editor/inline-edit.ts +66 -50
  220. package/src/editor/inline-format.ts +59 -56
  221. package/src/editor/inline-link.ts +40 -15
  222. package/src/editor/insert-zone-action.ts +1 -1
  223. package/src/editor/merge-tags.ts +58 -19
  224. package/src/editor/repeater-scope.ts +39 -28
  225. package/src/editor/shortcuts.ts +87 -47
  226. package/src/editor/slash-menu.ts +1 -6
  227. package/src/files/asset-versions.ts +4 -4
  228. package/src/files/components.ts +15 -10
  229. package/src/files/elements.ts +5 -6
  230. package/src/files/file-ops.ts +77 -36
  231. package/src/files/files.ts +90 -95
  232. package/src/files/media-meta.ts +2 -1
  233. package/src/files/media-paths.ts +6 -1
  234. package/src/files/serialize-document.ts +2 -2
  235. package/src/format/constraints.ts +1 -1
  236. package/src/format/convert-file.ts +27 -13
  237. package/src/format/format-choices.ts +2 -1
  238. package/src/format/format-host.ts +76 -50
  239. package/src/github/github-auth-status.ts +27 -3
  240. package/src/github/github-auth.ts +19 -9
  241. package/src/github/github-publish.ts +24 -20
  242. package/src/grid/cell-editors.ts +46 -31
  243. package/src/grid/cell-popovers.ts +5 -3
  244. package/src/grid/edit-buffer.ts +10 -9
  245. package/src/grid/grid-controller.ts +20 -22
  246. package/src/grid/grid-layout.ts +21 -5
  247. package/src/grid/grid-open.ts +3 -6
  248. package/src/grid/grid-panel.ts +11 -4
  249. package/src/grid/grid-source.ts +8 -8
  250. package/src/grid/grid-view.ts +14 -17
  251. package/src/grid/redirects-grid.ts +14 -5
  252. package/src/grid/redirects.ts +16 -14
  253. package/src/grid/schema-columns.ts +25 -19
  254. package/src/grid/sources/connector-source.ts +47 -20
  255. package/src/grid/sources/content-source.ts +25 -24
  256. package/src/grid/sources/csv-file-source.ts +2 -2
  257. package/src/grid/tabulator-tables.d.ts +55 -34
  258. package/src/hosting/stage.ts +7 -7
  259. package/src/i18n/i18n-commands.ts +1 -2
  260. package/src/media/media-pane.ts +4 -1
  261. package/src/new-project/add-repo-modal.ts +20 -19
  262. package/src/new-project/import-tab.ts +10 -14
  263. package/src/new-project/location-fields.ts +2 -1
  264. package/src/new-project/new-project-modal.ts +12 -9
  265. package/src/packages/jxsuite-update.ts +4 -3
  266. package/src/packages/pull-package-sync.ts +26 -25
  267. package/src/page-params.ts +97 -68
  268. package/src/panels/activity-panel.ts +17 -9
  269. package/src/panels/ai-chat/attached-context.ts +13 -7
  270. package/src/panels/ai-chat/chat-view.ts +80 -73
  271. package/src/panels/ai-chat/composer.ts +30 -33
  272. package/src/panels/ai-chat/sessions-view.ts +1 -2
  273. package/src/panels/ai-panel.ts +23 -20
  274. package/src/panels/block-action-bar.ts +46 -35
  275. package/src/panels/bottom-dock.ts +5 -3
  276. package/src/panels/canvas-dnd-bridge.ts +31 -24
  277. package/src/panels/data-explorer.ts +62 -25
  278. package/src/panels/data-grid.ts +14 -11
  279. package/src/panels/dnd.ts +108 -118
  280. package/src/panels/editors.ts +55 -22
  281. package/src/panels/elements-panel.ts +10 -3
  282. package/src/panels/events-panel.ts +84 -69
  283. package/src/panels/formula-workspace.ts +76 -51
  284. package/src/panels/frontmatter-fields.ts +24 -19
  285. package/src/panels/frontmatter-panel.ts +44 -34
  286. package/src/panels/git-diff-open.ts +4 -4
  287. package/src/panels/git-panel.ts +49 -61
  288. package/src/panels/head-panel.ts +131 -111
  289. package/src/panels/i18n-panel.ts +10 -3
  290. package/src/panels/imports-panel.ts +23 -47
  291. package/src/panels/jump-bar.ts +48 -29
  292. package/src/panels/layers-panel.ts +97 -74
  293. package/src/panels/left-panel.ts +3 -3
  294. package/src/panels/pane-context.ts +31 -22
  295. package/src/panels/pane-grid.ts +49 -20
  296. package/src/panels/panel-registry.ts +22 -37
  297. package/src/panels/properties-panel.ts +175 -121
  298. package/src/panels/quick-search.ts +53 -31
  299. package/src/panels/right-panel.ts +3 -3
  300. package/src/panels/seo-modal.ts +13 -17
  301. package/src/panels/settings-menu.ts +15 -15
  302. package/src/panels/signals-panel.ts +153 -131
  303. package/src/panels/statement-editor.ts +230 -140
  304. package/src/panels/style-panel.ts +254 -216
  305. package/src/panels/style-utils.ts +114 -51
  306. package/src/panels/stylebook-doc.ts +57 -54
  307. package/src/panels/stylebook-layers-panel.ts +9 -9
  308. package/src/panels/stylebook-panel.ts +13 -17
  309. package/src/panels/tab-drop.ts +27 -11
  310. package/src/panels/tab-strip.ts +36 -26
  311. package/src/platform-errors.ts +57 -43
  312. package/src/platform.ts +58 -30
  313. package/src/platforms/cloud.ts +345 -175
  314. package/src/platforms/default-platform.ts +10 -4
  315. package/src/platforms/devserver.ts +174 -127
  316. package/src/platforms/read-batcher.ts +16 -8
  317. package/src/project-list.ts +2 -1
  318. package/src/publish/deploy-checklist.ts +8 -2
  319. package/src/publish/pages-service.ts +28 -13
  320. package/src/publish/publish-commands.ts +5 -4
  321. package/src/publish/publish-panel.ts +10 -6
  322. package/src/recent-projects.ts +15 -8
  323. package/src/resize-edges.ts +26 -36
  324. package/src/services/a11y-report.ts +26 -19
  325. package/src/services/agent-seed.ts +23 -11
  326. package/src/services/ai-ask.ts +9 -12
  327. package/src/services/ai-command-tools.ts +68 -62
  328. package/src/services/ai-import-tools.ts +80 -67
  329. package/src/services/ai-models.ts +17 -13
  330. package/src/services/ai-project-tools.ts +68 -32
  331. package/src/services/ai-session-store.ts +19 -10
  332. package/src/services/ai-system-prompt.ts +46 -20
  333. package/src/services/ai-tools.ts +71 -27
  334. package/src/services/ai-write-report.ts +20 -12
  335. package/src/services/ai-writes.ts +4 -4
  336. package/src/services/automation.ts +58 -31
  337. package/src/services/cem-export.ts +149 -58
  338. package/src/services/clock.ts +6 -1
  339. package/src/services/code-services.ts +37 -31
  340. package/src/services/context-manager.ts +14 -10
  341. package/src/services/context-resolver.ts +20 -8
  342. package/src/services/data-service.ts +19 -15
  343. package/src/services/directory-picker.ts +18 -12
  344. package/src/services/document-assistant.ts +39 -19
  345. package/src/services/gated-registry.ts +10 -6
  346. package/src/services/harness/chat-reducer.ts +23 -1
  347. package/src/services/import-client.ts +91 -38
  348. package/src/services/import-seed.ts +8 -2
  349. package/src/services/jx-validate.ts +28 -31
  350. package/src/services/live-preview.ts +0 -0
  351. package/src/services/live-surfaces.ts +6 -3
  352. package/src/services/model-uri.ts +10 -2
  353. package/src/services/module-preloads.ts +12 -8
  354. package/src/services/monaco-buffer.ts +43 -24
  355. package/src/services/monaco-lazy.ts +7 -8
  356. package/src/services/monaco-setup.ts +23 -16
  357. package/src/services/notify.ts +44 -17
  358. package/src/services/popover-report.ts +25 -10
  359. package/src/services/preview-eval.ts +20 -8
  360. package/src/services/profile.ts +13 -6
  361. package/src/services/project-path.ts +13 -10
  362. package/src/services/references.ts +0 -0
  363. package/src/services/render-critic.ts +8 -7
  364. package/src/services/settings/kernel.ts +13 -4
  365. package/src/services/settings/write-queue.ts +9 -9
  366. package/src/services/token-lint.ts +12 -10
  367. package/src/services/tool-executor.ts +17 -5
  368. package/src/services/tool-outcomes.ts +44 -24
  369. package/src/services/trusted-types.ts +24 -7
  370. package/src/settings/contexts-section.ts +11 -8
  371. package/src/settings/contributed-section.ts +79 -60
  372. package/src/settings/css-vars-editor.ts +37 -16
  373. package/src/settings/defs-editor.ts +38 -35
  374. package/src/settings/extension-rows.ts +16 -8
  375. package/src/settings/extension-sections.ts +23 -13
  376. package/src/settings/extensions-section.ts +4 -1
  377. package/src/settings/general-settings.ts +11 -8
  378. package/src/settings/locales-section.ts +20 -12
  379. package/src/settings/preferences-dialog.ts +9 -6
  380. package/src/settings/preferences-keymap.ts +7 -5
  381. package/src/settings/preferences-sections.ts +11 -5
  382. package/src/settings/project-sections.ts +1 -1
  383. package/src/settings/schema-field-ui.ts +9 -0
  384. package/src/settings/settings-document.ts +5 -5
  385. package/src/shell/tree.ts +6 -5
  386. package/src/shell.ts +104 -81
  387. package/src/site-context.ts +37 -22
  388. package/src/state.ts +41 -49
  389. package/src/store.ts +54 -34
  390. package/src/studio.ts +39 -77
  391. package/src/style/live-preview.ts +1 -1
  392. package/src/style/project-styles.ts +6 -7
  393. package/src/style/token-ref.ts +5 -4
  394. package/src/surfaces/about.ts +18 -19
  395. package/src/surfaces/add-repo.ts +17 -19
  396. package/src/surfaces/ai-chat.ts +31 -36
  397. package/src/surfaces/ai-credentials-form.ts +6 -16
  398. package/src/surfaces/ai-managed-connect.ts +3 -4
  399. package/src/surfaces/ai-model-picker.ts +3 -5
  400. package/src/surfaces/block-action-bar.ts +22 -11
  401. package/src/surfaces/boot-failure.ts +4 -5
  402. package/src/surfaces/bottom-dock.ts +9 -18
  403. package/src/surfaces/canvas-stage.ts +12 -11
  404. package/src/surfaces/cf-account-picker.ts +17 -18
  405. package/src/surfaces/commandbar.ts +14 -9
  406. package/src/surfaces/convert-repeater.ts +17 -19
  407. package/src/surfaces/data-actions.ts +9 -7
  408. package/src/surfaces/dialog.ts +26 -28
  409. package/src/surfaces/diff-toolbar.ts +9 -7
  410. package/src/surfaces/doc-header.ts +10 -19
  411. package/src/surfaces/empty-state.ts +7 -10
  412. package/src/surfaces/entry-editor.ts +14 -11
  413. package/src/surfaces/expression-editor.ts +11 -25
  414. package/src/surfaces/files-panel.ts +27 -14
  415. package/src/surfaces/formula-palette.ts +4 -5
  416. package/src/surfaces/git-panel.ts +7 -15
  417. package/src/surfaces/github-auth.ts +16 -20
  418. package/src/surfaces/github-publish.ts +17 -22
  419. package/src/surfaces/grid-cell.ts +30 -31
  420. package/src/surfaces/grid-open.ts +10 -14
  421. package/src/surfaces/grid-panel.ts +13 -9
  422. package/src/surfaces/grid-replace.ts +13 -13
  423. package/src/surfaces/grid-views.ts +15 -18
  424. package/src/surfaces/inspector-dock.ts +13 -12
  425. package/src/surfaces/jump-bar.ts +5 -6
  426. package/src/surfaces/jxsuite-update.ts +16 -22
  427. package/src/surfaces/library-pane.ts +25 -20
  428. package/src/surfaces/logic-panel.ts +17 -30
  429. package/src/surfaces/logic-workspace.ts +13 -15
  430. package/src/surfaces/media-browser.ts +11 -10
  431. package/src/surfaces/media-field.ts +4 -5
  432. package/src/surfaces/media-pane.ts +8 -7
  433. package/src/surfaces/menu.ts +29 -23
  434. package/src/surfaces/navigator-dock.ts +11 -12
  435. package/src/surfaces/new-project.ts +27 -26
  436. package/src/surfaces/pane-context.ts +20 -25
  437. package/src/surfaces/pane-grid.ts +15 -10
  438. package/src/surfaces/panel-activity.ts +5 -6
  439. package/src/surfaces/panel-data.ts +3 -4
  440. package/src/surfaces/panel-deploy-checklist.ts +5 -6
  441. package/src/surfaces/panel-elements.ts +5 -7
  442. package/src/surfaces/panel-i18n.ts +5 -7
  443. package/src/surfaces/panel-imports.ts +6 -13
  444. package/src/surfaces/panel-outline.ts +25 -19
  445. package/src/surfaces/panel-page.ts +11 -18
  446. package/src/surfaces/panel-problems.ts +5 -7
  447. package/src/surfaces/panel-signals.ts +20 -34
  448. package/src/surfaces/panel-stylebook-layers.ts +5 -8
  449. package/src/surfaces/preferences.ts +21 -11
  450. package/src/surfaces/progress-modal.ts +15 -9
  451. package/src/surfaces/properties-panel.json +1 -1
  452. package/src/surfaces/properties-panel.ts +20 -42
  453. package/src/surfaces/publish.ts +18 -18
  454. package/src/surfaces/push-plan.ts +7 -8
  455. package/src/surfaces/rail.json +126 -73
  456. package/src/surfaces/rail.ts +38 -12
  457. package/src/surfaces/reference-field.ts +11 -15
  458. package/src/surfaces/schema-builder.ts +16 -22
  459. package/src/surfaces/schema-form.ts +15 -25
  460. package/src/surfaces/secret-field.ts +9 -6
  461. package/src/surfaces/seo.ts +21 -15
  462. package/src/surfaces/settings-contexts.ts +9 -7
  463. package/src/surfaces/settings-contributed.ts +14 -10
  464. package/src/surfaces/settings-css-vars.ts +5 -12
  465. package/src/surfaces/settings-defs.json +2 -2
  466. package/src/surfaces/settings-defs.ts +17 -21
  467. package/src/surfaces/settings-deploy.ts +8 -15
  468. package/src/surfaces/settings-extensions.ts +5 -6
  469. package/src/surfaces/settings-head.ts +33 -39
  470. package/src/surfaces/settings-locales.ts +8 -20
  471. package/src/surfaces/settings-overview.ts +5 -6
  472. package/src/surfaces/settings-packages.ts +8 -7
  473. package/src/surfaces/settings-pane.ts +9 -18
  474. package/src/surfaces/settings-rawjson.ts +5 -6
  475. package/src/surfaces/shell.ts +1 -2
  476. package/src/surfaces/slash-menu.ts +19 -9
  477. package/src/surfaces/statements.ts +13 -18
  478. package/src/surfaces/statusbar.ts +17 -14
  479. package/src/surfaces/style-panel.ts +18 -31
  480. package/src/surfaces/stylebook-chrome.ts +3 -5
  481. package/src/surfaces/tab-strip.ts +14 -13
  482. package/src/surfaces/target-line.ts +6 -7
  483. package/src/surfaces/welcome.ts +5 -7
  484. package/src/tabs/patch-ops.ts +4 -3
  485. package/src/tabs/project-config.ts +32 -21
  486. package/src/tabs/selection.ts +36 -8
  487. package/src/tabs/tab.ts +52 -41
  488. package/src/tabs/transact.ts +98 -53
  489. package/src/tabs/typing.ts +31 -0
  490. package/src/types.ts +32 -17
  491. package/src/ui/ai-credentials-form.ts +10 -13
  492. package/src/ui/ai-model-picker.ts +3 -3
  493. package/src/ui/cf-account-picker.ts +7 -9
  494. package/src/ui/color-selector.ts +9 -5
  495. package/src/ui/dynamic-slot.ts +7 -8
  496. package/src/ui/expression-editor.ts +112 -105
  497. package/src/ui/form-controls.ts +57 -48
  498. package/src/ui/formula-catalog.ts +239 -230
  499. package/src/ui/formula-chips.ts +33 -18
  500. package/src/ui/layers.ts +44 -31
  501. package/src/ui/media-picker.ts +18 -9
  502. package/src/ui/popover-surface.ts +20 -12
  503. package/src/ui/progress-modal.ts +13 -8
  504. package/src/ui/regions.ts +7 -6
  505. package/src/ui/schema-form.ts +113 -70
  506. package/src/ui/surface.ts +71 -8
  507. package/src/ui/timing.ts +9 -0
  508. package/src/ui/value-source.ts +44 -31
  509. package/src/ui/virtual-window.ts +3 -2
  510. package/src/utils/base64.ts +3 -1
  511. package/src/utils/edit-display.ts +103 -74
  512. package/src/utils/element-selectors.ts +3 -2
  513. package/src/utils/google-fonts.ts +15 -14
  514. package/src/utils/inherited-style.ts +18 -20
  515. package/src/utils/link-target.ts +1 -1
  516. package/src/utils/preview-format.ts +25 -3
  517. package/src/utils/strip-events.ts +49 -22
  518. package/src/utils/studio-utils.ts +29 -14
  519. package/src/view.ts +2 -3
  520. package/src/workspace/pane-derive.ts +10 -12
  521. package/src/workspace/session.ts +53 -43
  522. package/src/workspace/workspace.ts +47 -36
  523. package/dist/chunks/2020-nkxms0ay.js +0 -4
  524. package/dist/chunks/adapter-m948ab5f.js +0 -4
  525. package/dist/chunks/cf-account-picker-n8hr38v7.js +0 -4
  526. package/dist/chunks/cf-settings-356xdtne.js +0 -4
  527. package/dist/chunks/color-area-jqhna8zy.js +0 -4
  528. package/dist/chunks/color-field-embq5ctg.js +0 -4
  529. package/dist/chunks/color-fpezvnkt.js +0 -4
  530. package/dist/chunks/color-slider-1qmw7wqy.js +0 -4
  531. package/dist/chunks/combobox-773hdzyj.js +0 -4
  532. package/dist/chunks/components-yk3t844e.js +0 -4
  533. package/dist/chunks/content-source-bawmyc09.js +0 -4
  534. package/dist/chunks/convert-to-repeater-7wns8kf1.js +0 -4
  535. package/dist/chunks/dialog-mtm9fq5t.js +0 -4
  536. package/dist/chunks/editor-6sc8nacq.js +0 -4
  537. package/dist/chunks/entry-commands-8ay9fh81.js +0 -4
  538. package/dist/chunks/extension-sections-na7rj3nr.js +0 -4
  539. package/dist/chunks/file-ops-gye0qw56.js +0 -4
  540. package/dist/chunks/files-dmc2xvcq.js +0 -4
  541. package/dist/chunks/format-host-t76b53f8.js +0 -4
  542. package/dist/chunks/fs-events-cg4tpz06.js +0 -4
  543. package/dist/chunks/git-panel-yef7bshy.js +0 -4
  544. package/dist/chunks/grid-view-7tt4bxw1.js +0 -51
  545. package/dist/chunks/icons-qbh8akb1.js +0 -4
  546. package/dist/chunks/iframe-entry-f7mqjwpm.js +0 -5
  547. package/dist/chunks/iframe-entry-haw7jkvz.js +0 -5
  548. package/dist/chunks/iframe-entry-z6qrytv3.js +0 -5
  549. package/dist/chunks/iframe-host-tmz30gfp.js +0 -4
  550. package/dist/chunks/index-nag78a9h.js +0 -4
  551. package/dist/chunks/jsonMode-zhwsprqk.js +0 -13
  552. package/dist/chunks/jx-validate-3gbp5nkn.js +0 -4
  553. package/dist/chunks/layers-fvz99859.js +0 -4
  554. package/dist/chunks/layers-panel-gchmbf9p.js +0 -4
  555. package/dist/chunks/listbox-s8fkmnq8.js +0 -4
  556. package/dist/chunks/lit-html-9agdspkt.js +0 -4
  557. package/dist/chunks/media-picker-rhjvyy00.js +0 -4
  558. package/dist/chunks/menu-2e4y9j7b.js +0 -4
  559. package/dist/chunks/menu-37d07z9m.js +0 -4
  560. package/dist/chunks/monaco-binding-2jnhjjvr.js +0 -4
  561. package/dist/chunks/monaco-buffer-rp21359g.js +0 -4
  562. package/dist/chunks/monaco-setup-vhh7gayr.js +0 -4
  563. package/dist/chunks/notify-h3www560.js +0 -4
  564. package/dist/chunks/number-field-gw7sq8rn.js +0 -4
  565. package/dist/chunks/parse-897fvqah.js +0 -4
  566. package/dist/chunks/platform-hz34wcd7.js +0 -4
  567. package/dist/chunks/popover-8htra4er.js +0 -4
  568. package/dist/chunks/publish-panel-exsmjzyj.js +0 -4
  569. package/dist/chunks/quick-search-pgaqeh0m.js +0 -4
  570. package/dist/chunks/references-2cgdxnb8.js +0 -4
  571. package/dist/chunks/right-panel-jf856w5w.js +0 -4
  572. package/dist/chunks/section-registry-jnf8r5gy.js +0 -4
  573. package/dist/chunks/select-n3v7gwas.js +0 -4
  574. package/dist/chunks/split-pff8f3ze.js +0 -4
  575. package/dist/chunks/studio-0f55h9ye.js +0 -5
  576. package/dist/chunks/studio-0sqdhnew.js +0 -12
  577. package/dist/chunks/studio-19x1c75w.js +0 -5
  578. package/dist/chunks/studio-2sqcndak.js +0 -5
  579. package/dist/chunks/studio-3aey7dd3.js +0 -5
  580. package/dist/chunks/studio-3bpdkq2s.js +0 -5
  581. package/dist/chunks/studio-47y6fbpf.js +0 -5
  582. package/dist/chunks/studio-4m3826v2.js +0 -5
  583. package/dist/chunks/studio-4nx2dj1g.js +0 -4
  584. package/dist/chunks/studio-4xv5s47r.js +0 -9
  585. package/dist/chunks/studio-5g4t8v6w.js +0 -5
  586. package/dist/chunks/studio-5py436sf.js +0 -5
  587. package/dist/chunks/studio-77kt594t.js +0 -5
  588. package/dist/chunks/studio-8f87n763.js +0 -10
  589. package/dist/chunks/studio-8mb00b84.js +0 -5
  590. package/dist/chunks/studio-8p51gq2h.js +0 -6
  591. package/dist/chunks/studio-954ds834.js +0 -5
  592. package/dist/chunks/studio-9ft45c83.js +0 -9
  593. package/dist/chunks/studio-a2138x5k.js +0 -7
  594. package/dist/chunks/studio-a9yzstqj.js +0 -5
  595. package/dist/chunks/studio-acdksxx6.js +0 -5
  596. package/dist/chunks/studio-ar8jcf2y.js +0 -5
  597. package/dist/chunks/studio-bmn4mn9j.js +0 -7
  598. package/dist/chunks/studio-e7xxa0sj.js +0 -5
  599. package/dist/chunks/studio-ecaz25vk.js +0 -5
  600. package/dist/chunks/studio-ery42sqr.js +0 -4
  601. package/dist/chunks/studio-fzdywr6p.js +0 -9
  602. package/dist/chunks/studio-g5fmf0c1.js +0 -5
  603. package/dist/chunks/studio-g7nse7zb.js +0 -5
  604. package/dist/chunks/studio-geq1ea6k.js +0 -14
  605. package/dist/chunks/studio-ghkb32r8.js +0 -5
  606. package/dist/chunks/studio-ghrhy2y7.js +0 -5
  607. package/dist/chunks/studio-grawhey1.js +0 -5
  608. package/dist/chunks/studio-h0xgswew.js +0 -5
  609. package/dist/chunks/studio-h9c4p2tx.js +0 -5
  610. package/dist/chunks/studio-jyzj5cxs.js +0 -5
  611. package/dist/chunks/studio-mgx8yhnz.js +0 -64
  612. package/dist/chunks/studio-mpb04y1d.js +0 -6
  613. package/dist/chunks/studio-n17mty64.js +0 -5
  614. package/dist/chunks/studio-nwh2eqsk.js +0 -6
  615. package/dist/chunks/studio-q1h883bt.js +0 -16
  616. package/dist/chunks/studio-q4tv82h7.js +0 -9
  617. package/dist/chunks/studio-qpqa7vk3.js +0 -5
  618. package/dist/chunks/studio-qqz8e5gk.js +0 -5
  619. package/dist/chunks/studio-qvasen3f.js +0 -5
  620. package/dist/chunks/studio-rggdb3hm.js +0 -5
  621. package/dist/chunks/studio-sghy936h.js +0 -4
  622. package/dist/chunks/studio-skprc6ef.js +0 -5
  623. package/dist/chunks/studio-tt2nactf.js +0 -5
  624. package/dist/chunks/studio-tyasmc39.js +0 -5
  625. package/dist/chunks/studio-vk9ezads.js +0 -5
  626. package/dist/chunks/studio-vzacdfsc.js +0 -4
  627. package/dist/chunks/studio-w4c0xmrw.js +0 -5
  628. package/dist/chunks/studio-wfjqhhbk.js +0 -5
  629. package/dist/chunks/studio-wgh5kxpj.js +0 -5
  630. package/dist/chunks/studio-xasj0796.js +0 -5
  631. package/dist/chunks/studio-y78s8r2n.js +0 -5
  632. package/dist/chunks/studio-z8w183sh.js +0 -5
  633. package/dist/chunks/studio-zscd9ty4.js +0 -928
  634. package/dist/chunks/studio-zxp13sss.js +0 -7
  635. package/dist/chunks/studio-zygnmm01.js +0 -5
  636. package/dist/chunks/swatch-group-8qh9a3bm.js +0 -4
  637. package/dist/chunks/tabs-jwthg40w.js +0 -4
  638. package/dist/chunks/textfield-spy3hc77.js +0 -4
  639. package/dist/chunks/toast-4d35zd64.js +0 -4
  640. package/dist/chunks/toast-host-8sjmfed3.js +0 -4
  641. package/dist/chunks/tooltip-fd6g9xy3.js +0 -4
  642. package/dist/chunks/tree-h19v1jfz.js +0 -4
  643. package/dist/chunks/tsMode-gr0m4dzr.js +0 -14
  644. package/dist/chunks/workspace-m15qtcqp.js +0 -4
  645. package/dist/chunks/ws-client-nf61frr1.js +0 -4
@@ -1,64 +0,0 @@
1
- import{Ke,Bp,dh,o0,Bk,Xi,r0,Ln,Zr,FI,Zm,Cn,xi,s0,jI,Gv,Xm,J,dt,Gn,er,Qi,P,il,Jd,ws,Ac,hn,HI,Gt,Xr,Oi,On,Ie,ol,BI,Js,Qm,zp,e,h,Wt,ue,Bn,vr,Qr,ao,zI,Ys,ui,es,Ce,xs,$e,tr,E,c,n,ie,zk,kn,Kt,C,i,sl,lo,nr,ts,_s,Ar,Wi,he,Me,Kv,Jt,Yd,tg,wa,W,r,t,O,b,Nr,Zd,Po,Jv,l0,ng,xa,Wp,_a,Xd,WI,Qd,Or,c0,Vp,ig,Yv,$t,Fe,og,Mn,d0,Zs,_i,ei,In,kt,Fo,uh,Zv,Nc,Ca,co,ns,pn,al,ka,Oc,qI,u0,Gl,zn,ze,Wn,Pt,ll,GI,KI,Ci,ir,Kn,Vn,be,ks,JI,Pn,ee,qp,Mc,ki,Co,eu,ph,Wk,Pc,Qv,Dt,Jn,ey,d,fn,h0,jo,H,Fn,YI,ZI,je,XI,Kl,M,Te,is,Mi,Vk,f0,Uk,tu,Ho,Jl,F,Xt,l,ft,QI,Fc,ty,ny,sg,ti,iy,Ss,Ye,m0,eR,mt,ag,uo,Sa,jt,Ea,Et,os,jc,fh,Pe,xe,mh,x,ve,Yn,w,Qt,g,tR,ho,Vi,Xs,oy,_e,wr,qk,se,gh,sn,L,Z,ye,gt,mn,eo,Qe,Mr,dl,G,Ne,we,_,A,V,it,gn,bh,a,hi,Rn,ul,Si,an,Ze,Sn,Ht,Ei,nR,Yl,bn,Pr,iR,pi,oR,vh,g0,rR,Hc,Be,b0,Pi,Gk,Jp,yh,Bt,z,lg,Bo,po,U,I,ry,sR,le,jn,Fr,X,pt,fe,ln,wh,or,Fi,et,cg,Es,xh,hl,xr,ko,_r,jr,Bc,dg,B,_h,sy,y0,w0,aR,Y,At,ay,Yp,Ta,fo,ct,Ti,Ch,to,Un,Kk,Zp,S,pl,f,ug,j,Jk,mo,bt,lR,La,Ii,Hr,Zl,En,go,fi,pg,iu,Vt,ou,fg,x0,cR,Ia,N,s,rr,de,Xp,Ee,ly,Qp,Re,Ft,ef,So,Qs,bo,Sh,tf,dR,ea,Eh,rs,Th,uR,Xl,nf,hR,Ts,pR,fl,fR,of,mg,Lh,_0,C0,mR,gR,bR,vR,ru,Wc,cy,Vc,gg,k0,Yk,dy,uy,Ih,hy,yR,py,S0,E0,rf,su,sf,bg,au,Ql,af,ec,Ra,vg,zo,lu,yt,wt,Tt,ni,fy,$a,at,Da,T0,tc,my,Rh,Zk,lf,wR,$h,Uc,yg,Ve,ii,Xk,cf,St,wg,mi,xg,cu,Cr,df,I0,Dh,ml,o,Ah,De,en,oi,xR,R0,uf,by,$0,D0,Yt,bl,ut,sr,Qk,CR,ce,vy,ar,kR,Is,$n,hf,Ui,_g,tn,yy,wy,xy,_y,A0,SR,qc,N0,nc,oe,ic,vl,vn,Gc,ER,Br,Dn,pf,Nh,O0,M0,P0,eS,IR,uu,kr,Cg,oc,RR,yn,hu,lr,j0,kg,Cy,no,Aa,Eo,$R,vo,tS,ky,cr,ff,cn,wn,yl,Sy,H0,B0,Sg,Hi,zr,Ge,Zn,Mh,Ey,nS,bf,Wo,ri,ke,io,wl,Eg,Tg,Lg,W0,Ph,rc,vf,NR,Na,V0,Ig,Ri,Rg,U0,xl,Ty,qi,Ly,Iy,_l,q0,Ry,$y,Dy,Ay,Ny,$s,iS,G0,K0,J0,Ut,Oy,dr,Y0,na,ss,Ds,Z0,OR,MR,X0,PR,Q0,Cl,kl,e_,My,Mt,Oa,yf,As,pu,Dg,Jc,Yc,o_,ia,Lt,r_,Ag,oS,Wr,Sr,s_,si,Xc,sc,oa,Fy,Xn,Xe,jy,mu,gu,ra,Ng,a_,Bh,Vr,Og,zh,sS,FR,aS,Wh,pe}from"./studio-zscd9ty4.js";import{me}from"./studio-v2bvmbjj.js";class F_{constructor(m,u,p,v,y){this._onDidChange=new Wh,this._onDidExtraLibsChange=new Wh,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(m),this.setDiagnosticsOptions(u),this.setWorkerOptions(p),this.setInlayHintsOptions(v),this.setModeConfiguration(y),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(m,u){let p;if(typeof u>"u")p=`ts:extralib-${Math.random().toString(36).substring(2,15)}`;else p=u;if(this._extraLibs[p]&&this._extraLibs[p].content===m)return{dispose:()=>{}};let v=1;if(this._removedExtraLibs[p])v=this._removedExtraLibs[p]+1;if(this._extraLibs[p])v=this._extraLibs[p].version+1;return this._extraLibs[p]={content:m,version:v},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let y=this._extraLibs[p];if(!y)return;if(y.version!==v)return;delete this._extraLibs[p],this._removedExtraLibs[p]=v,this._fireOnDidExtraLibsChangeSoon()}}}setExtraLibs(m){for(let u in this._extraLibs)this._removedExtraLibs[u]=this._extraLibs[u].version;if(this._extraLibs=Object.create(null),m&&m.length>0)for(let u of m){let p=u.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,v=u.content,y=1;if(this._removedExtraLibs[p])y=this._removedExtraLibs[p]+1;this._extraLibs[p]={content:v,version:y}}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(m){this._compilerOptions=m||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(m){this._diagnosticsOptions=m||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(m){this._workerOptions=m||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(m){this._inlayHintsOptions=m||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(m){}setEagerModelSync(m){this._eagerModelSync=m}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(m){this._modeConfiguration=m||Object.create(null),this._onDidChange.fire(void 0)}}var CC={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},Hk=new F_({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},CC),ND=new F_({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},CC);function yC(){return me("gr0m4dzr"),import("./tsMode-gr0m4dzr.js")}pe.onLanguage("typescript",()=>yC().then((m)=>m.setupTypeScript(Hk)));pe.onLanguage("javascript",()=>yC().then((m)=>m.setupJavaScript(ND)));class xC extends z{constructor(){super({id:"editor.action.forceRetokenize",label:h(1606,"Developer: Force Retokenize"),precondition:void 0})}run(m,u){if(!u.hasModel())return;let p=u.getModel();p.tokenization.resetTokenization();let v=new Kt;p.tokenization.forceTokenization(p.getLineCount()),v.stop(),console.log(`tokenization took ${v.elapsed()}`)}}I(xC);class It{static{this.sep="."}static{this.None=new It("@@none@@")}static{this.Empty=new It("")}constructor(m){this.value=m}equals(m){return this.value===m.value}contains(m){return this.equals(m)||this.value===""||m.value.startsWith(this.value+It.sep)}intersects(m){return this.contains(m)||m.contains(this)}append(...m){return new It((this.value?[this.value,...m]:m).join(It.sep))}}var MD=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},OD=function(m,u){return function(p,v){u(p,v,m)}},PD=oe.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:u0,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0,widthInEm:1}});class H_ extends n{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(m,u,p,v,y){super();this.typeId=m,this.editor=u,this.range=p,this.delegate=y,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(v),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(m){this.domNode=g(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=m;let u=g("span.icon");this.domNode.append(u),u.classList.add(...G.asClassNameArray(b.loading),"codicon-modifier-spin");let p=()=>{let v=this.editor.getOption(75);this.domNode.style.height=`${v}px`,this.domNode.style.width=`${Math.ceil(0.8*v)}px`};p(),this._register(this.editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(61)||v.hasChanged(75))p()})),this._register(l(this.domNode,x.CLICK,(v)=>{this.delegate.cancel()}))}getId(){return H_.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 Vm=class m extends n{constructor(u,p,v){super();this.id=u,this._editor=p,this._instantiationService=v,this._showDelay=500,this._showPromise=this._register(new ie),this._currentWidget=this._register(new ie),this._operationIdPool=0,this._currentDecorations=p.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(u,p,v,y,k){let D=this._operationIdPool++;this._currentOperation=D,this.clear(),this._showPromise.value=Kn(()=>{let T=t.fromPositions(u);if(this._currentDecorations.set([{range:T,options:PD}]).length>0)this._currentWidget.value=this._instantiationService.createInstance(H_,this.id,this._editor,T,p,y)},k??this._showDelay);try{return await v}finally{if(this._currentOperation===D)this.clear(),this._currentOperation=void 0}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};Vm=MD([OD(2,L)],Vm);var AD=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},IC=function(m,u){return function(p,v){u(p,v,m)}},Xg,Bi=class m{static{Xg=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new A("messageVisible",!1,e(1353,"Whether the editor is currently showing an inline message"))}static get(u){return u.getContribution(Xg.ID)}constructor(u,p,v){this._openerService=v,this._messageWidget=new ie,this._messageListeners=new c,this._mouseOverMessage=!1,this._editor=u,this._visible=Xg.MESSAGE_VISIBLE.bindTo(p)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(u,p){if(En(lr(u)?u.value:u),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),lr(u)){let y=this._messageListeners.add(Aa(u,{actionHandler:(k,D)=>{this.closeMessage(),tS(this._openerService,k,D.isTrusted)}}));this._messageWidget.value=new Yg(this._editor,p,y.element)}else this._messageWidget.value=new Yg(this._editor,p,u);this._messageListeners.add(C.debounce(this._editor.onDidBlurEditorText,(y,k)=>k,0)(()=>{if(this._mouseOverMessage)return;if(this._messageWidget.value&&jt(Et(),this._messageWidget.value.getDomNode()))return;this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(l(this._messageWidget.value.getDomNode(),x.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(l(this._messageWidget.value.getDomNode(),x.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let v;this._messageListeners.add(this._editor.onMouseMove((y)=>{if(!y.target.position)return;if(!v)v=new t(p.lineNumber-3,1,y.target.position.lineNumber+3,1);else if(!v.containsPosition(y.target.position))this.closeMessage()}))}closeMessage(){if(this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value)this._messageListeners.add(Yg.fadeOut(this._messageWidget.value))}};Bi=Xg=AD([IC(1,V),IC(2,Eo)],Bi);var FD=Bt.bindToContribution(Bi.get);U(new FD({id:"leaveEditorMessage",precondition:Bi.MESSAGE_VISIBLE,handler:(m)=>m.closeMessage(),kbOpts:{weight:130,primary:9}}));class Yg{static fadeOut(m){let u=()=>{m.dispose(),clearTimeout(p),m.getDomNode().removeEventListener("animationend",u)},p=setTimeout(u,110);return m.getDomNode().addEventListener("animationend",u),m.getDomNode().classList.add("fadeOut"),{dispose:u}}constructor(m,{lineNumber:u,column:p},v){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=m,this._editor.revealLinesInCenterIfOutsideViewport(u,u,0),this._position={lineNumber:u,column:p},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";let y=document.createElement("div");y.classList.add("anchor","top"),this._domNode.appendChild(y);let k=document.createElement("div");if(typeof v==="string")k.classList.add("message"),k.textContent=v;else v.classList.add("message"),k.appendChild(v);this._domNode.appendChild(k);let D=document.createElement("div");D.classList.add("anchor","below"),this._domNode.appendChild(D),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(m){this._domNode.classList.toggle("below",m===2)}}le(Bi.ID,Bi,4);var W_=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},jl=function(m,u){return function(p,v){u(p,v,m)}};class Qg{constructor(m){this.copyMimeTypes=[],this.kind=m,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(m,u,p,v,y){let k=await this.getEdit(p,y);if(!k)return;return{edits:[{insertText:k.insertText,title:k.title,kind:k.kind,handledMimeType:k.handledMimeType,yieldTo:k.yieldTo}],dispose(){}}}async provideDocumentDropEdits(m,u,p,v){let y=await this.getEdit(p,v);if(!y)return;return{edits:[{insertText:y.insertText,title:y.title,kind:y.kind,handledMimeType:y.handledMimeType,yieldTo:y.yieldTo}],dispose(){}}}}class Ud extends Qg{static{this.id="text"}constructor(){super(It.Empty.append("text","plain"));this.id=Ud.id,this.dropMimeTypes=[ln.text],this.pasteMimeTypes=[ln.text]}async getEdit(m,u){let p=m.get(ln.text);if(!p)return;if(m.has(ln.uriList))return;let v=await p.asString();return{handledMimeType:ln.text,title:e(980,"Insert Plain Text"),insertText:v,kind:this.kind}}}class B_ extends Qg{constructor(){super(It.Empty.append("uri","path","absolute"));this.dropMimeTypes=[ln.uriList],this.pasteMimeTypes=[ln.uriList]}async getEdit(m,u){let p=await kC(m);if(!p.length||u.isCancellationRequested)return;let v=0,y=p.map(({uri:D,originalText:T})=>{if(D.scheme===ee.file)return D.fsPath;else return v++,T}).join(" "),k;if(v>0)k=p.length>1?e(981,"Insert Uris"):e(982,"Insert Uri");else k=p.length>1?e(983,"Insert Paths"):e(984,"Insert Path");return{handledMimeType:ln.uriList,insertText:y,title:k,kind:this.kind}}}var Jg=class m extends Qg{constructor(u){super(It.Empty.append("uri","path","relative"));this._workspaceContextService=u,this.dropMimeTypes=[ln.uriList],this.pasteMimeTypes=[ln.uriList]}async getEdit(u,p){let v=await kC(u);if(!v.length||p.isCancellationRequested)return;let y=Xi(v.map(({uri:k})=>{let D=this._workspaceContextService.getWorkspaceFolder(k);return D?rR(D.uri,k):void 0}));if(!y.length)return;return{handledMimeType:ln.uriList,insertText:y.join(" "),title:v.length>1?e(985,"Insert Relative Paths"):e(986,"Insert Relative Path"),kind:this.kind}}};Jg=W_([jl(0,Ds)],Jg);class LC{constructor(){this.kind=new It("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:ln.text}]}async provideDocumentPasteEdits(m,u,p,v,y){if(v.triggerKind!==Wp.PasteAs&&!v.only?.contains(this.kind))return;let D=await p.get("text/html")?.asString();if(!D||y.isCancellationRequested)return;return{dispose(){},edits:[{insertText:D,yieldTo:this._yieldTo,title:e(987,"Insert HTML"),kind:this.kind}]}}}async function kC(m){let u=m.get(ln.uriList);if(!u)return[];let p=await u.asString(),v=[];for(let y of lf.parse(p))try{v.push({uri:W.parse(y),originalText:y})}catch{}return v}var Ya={scheme:"*",hasAccessToAllModels:!0},Kx=class m extends n{constructor(u,p){super();this._register(u.documentDropEditProvider.register(Ya,new Ud)),this._register(u.documentDropEditProvider.register(Ya,new B_)),this._register(u.documentDropEditProvider.register(Ya,new Jg(p)))}};Kx=W_([jl(0,j),jl(1,Ds)],Kx);var Jx=class m extends n{constructor(u,p){super();this._register(u.documentPasteEditProvider.register(Ya,new Ud)),this._register(u.documentPasteEditProvider.register(Ya,new B_)),this._register(u.documentPasteEditProvider.register(Ya,new Jg(p))),this._register(u.documentPasteEditProvider.register(Ya,new LC))}};Jx=W_([jl(0,j),jl(1,Ds)],Jx);class Qn{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(m){return m>=48&&m<=57}static isVariableCharacter(m){return m===95||m>=97&&m<=122||m>=65&&m<=90}text(m){this.value=m,this.pos=0}tokenText(m){return this.value.substr(m.pos,m.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let m=this.pos,u=0,p=this.value.charCodeAt(m),v;if(v=Qn._table[p],typeof v==="number")return this.pos+=1,{type:v,pos:m,len:1};if(Qn.isDigitCharacter(p)){v=8;do u+=1,p=this.value.charCodeAt(m+u);while(Qn.isDigitCharacter(p));return this.pos+=u,{type:v,pos:m,len:u}}if(Qn.isVariableCharacter(p)){v=9;do p=this.value.charCodeAt(m+ ++u);while(Qn.isVariableCharacter(p)||Qn.isDigitCharacter(p));return this.pos+=u,{type:v,pos:m,len:u}}v=10;do u+=1,p=this.value.charCodeAt(m+u);while(!isNaN(p)&&typeof Qn._table[p]>"u"&&!Qn.isDigitCharacter(p)&&!Qn.isVariableCharacter(p));return this.pos+=u,{type:v,pos:m,len:u}}}class Ja{constructor(){this._children=[]}appendChild(m){if(m instanceof zi&&this._children[this._children.length-1]instanceof zi)this._children[this._children.length-1].value+=m.value;else m.parent=this,this._children.push(m);return this}replace(m,u){let{parent:p}=m,v=p.children.indexOf(m),y=p.children.slice(0);y.splice(v,1,...u),p._children=y,function k(D,T){for(let R of D)R.parent=T,k(R.children,R)}(u,p)}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 m=this;while(!0){if(!m)return;if(m instanceof Ad)return m;m=m.parent}}toString(){return this.children.reduce((m,u)=>m+u.toString(),"")}len(){return 0}}class zi extends Ja{constructor(m){super();this.value=m}toString(){return this.value}len(){return this.value.length}clone(){return new zi(this.value)}}class V_ extends Ja{}class No extends V_{static compareByIndex(m,u){if(m.index===u.index)return 0;else if(m.isFinalTabstop)return 1;else if(u.isFinalTabstop)return-1;else if(m.index<u.index)return-1;else if(m.index>u.index)return 1;else return 0}constructor(m){super();this.index=m}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Qa?this._children[0]:void 0}clone(){let m=new No(this.index);if(this.transform)m.transform=this.transform.clone();return m._children=this.children.map((u)=>u.clone()),m}}class Qa extends Ja{constructor(){super(...arguments);this.options=[]}appendChild(m){if(m instanceof zi)m.parent=this,this.options.push(m);return this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let m=new Qa;return this.options.forEach(m.appendChild,m),m}}class z_ extends Ja{constructor(){super(...arguments);this.regexp=new RegExp("")}resolve(m){let u=this,p=!1,v=m.replace(this.regexp,function(){return p=!0,u._replace(Array.prototype.slice.call(arguments,0,-2))});if(!p&&this._children.some((y)=>y instanceof hr&&Boolean(y.elseValue)))v=this._replace([]);return v}_replace(m){let u="";for(let p of this._children)if(p instanceof hr){let v=m[p.index]||"";v=p.resolve(v),u+=v}else u+=p.toString();return u}toString(){return""}clone(){let m=new z_;return m.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),m._children=this.children.map((u)=>u.clone()),m}}class hr extends Ja{constructor(m,u,p,v){super();this.index=m,this.shorthandName=u,this.ifValue=p,this.elseValue=v}resolve(m){if(this.shorthandName==="upcase")return!m?"":m.toLocaleUpperCase();else if(this.shorthandName==="downcase")return!m?"":m.toLocaleLowerCase();else if(this.shorthandName==="capitalize")return!m?"":m[0].toLocaleUpperCase()+m.substr(1);else if(this.shorthandName==="pascalcase")return!m?"":this._toPascalCase(m);else if(this.shorthandName==="camelcase")return!m?"":this._toCamelCase(m);else if(this.shorthandName==="kebabcase")return!m?"":this._toKebabCase(m);else if(this.shorthandName==="snakecase")return!m?"":this._toSnakeCase(m);else if(Boolean(m)&&typeof this.ifValue==="string")return this.ifValue;else if(!Boolean(m)&&typeof this.elseValue==="string")return this.elseValue;else return m||""}_toKebabCase(m){if(!m.match(/[\p{L}0-9]+/gu))return m;if(!m.match(/[\p{L}0-9]/u))return m.trim().toLowerCase().replace(/^_+|_+$/g,"").replace(/[\s_]+/g,"-");let p=m.trim().replace(/^_+|_+$/g,""),v=p.match(/\p{Lu}{2,}(?=\p{Lu}\p{Ll}+[0-9]*|[\s_-]|$)|\p{Lu}?\p{Ll}+[0-9]*|\p{Lu}(?=\p{Lu}\p{Ll})|\p{Lu}(?=[\s_-]|$)|[0-9]+/gu);if(!v)return p.split(/[\s_-]+/).filter((y)=>y.length>0).map((y)=>y.toLowerCase()).join("-");return v.map((y)=>y.toLowerCase()).join("-")}_toPascalCase(m){let u=m.match(/[\p{L}0-9]+/gu);if(!u)return m;return u.map((p)=>p.charAt(0).toUpperCase()+p.substr(1)).join("")}_toCamelCase(m){let u=m.match(/[\p{L}0-9]+/gu);if(!u)return m;return u.map((p,v)=>{if(v===0)return p.charAt(0).toLowerCase()+p.substr(1);return p.charAt(0).toUpperCase()+p.substr(1)}).join("")}_toSnakeCase(m){return m.replace(/(\p{Ll})(\p{Lu})/gu,"$1_$2").replace(/[\s\-]+/g,"_").toLowerCase()}clone(){return new hr(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Ks extends V_{constructor(m){super();this.name=m}resolve(m){let u=m.resolve(this);if(this.transform)u=this.transform.resolve(u||"");if(u!==void 0)return this._children=[new zi(u)],!0;return!1}clone(){let m=new Ks(this.name);if(this.transform)m.transform=this.transform.clone();return m._children=this.children.map((u)=>u.clone()),m}}function EC(m,u){let p=[...m];while(p.length>0){let v=p.shift();if(!u(v))break;p.unshift(...v.children)}}class Ad extends Ja{get placeholderInfo(){if(!this._placeholders){let m=[],u;this.walk(function(p){if(p instanceof No)m.push(p),u=!u||u.index<p.index?p:u;return!0}),this._placeholders={all:m,last:u}}return this._placeholders}get placeholders(){let{all:m}=this.placeholderInfo;return m}offset(m){let u=0,p=!1;if(this.walk((v)=>{if(v===m)return p=!0,!1;return u+=v.len(),!0}),!p)return-1;return u}fullLen(m){let u=0;return EC([m],(p)=>(u+=p.len(),!0)),u}enclosingPlaceholders(m){let u=[],{parent:p}=m;while(p){if(p instanceof No)u.push(p);p=p.parent}return u}resolveVariables(m){return this.walk((u)=>{if(u instanceof Ks){if(u.resolve(m))this._placeholders=void 0}return!0}),this}appendChild(m){return this._placeholders=void 0,super.appendChild(m)}replace(m,u){return this._placeholders=void 0,super.replace(m,u)}clone(){let m=new Ad;return m._children=this.children.map((u)=>u.clone()),m}walk(m){EC(this.children,m)}}class Mo{constructor(){this._scanner=new Qn,this._token={type:14,pos:0,len:0}}static escape(m){return m.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(m){return/\${?CLIPBOARD/.test(m)}parse(m,u,p){let v=new Ad;return this.parseFragment(m,v),this.ensureFinalTabstop(v,p??!1,u??!1),v}parseFragment(m,u){let p=u.children.length;this._scanner.text(m),this._token=this._scanner.next();while(this._parse(u));let v=new Map,y=[];u.walk((T)=>{if(T instanceof No)if(T.isFinalTabstop)v.set(0,void 0);else if(!v.has(T.index)&&T.children.length>0)v.set(T.index,T.children);else y.push(T);return!0});let k=(T,R)=>{let K=v.get(T.index);if(!K)return;let q=new No(T.index);q.transform=T.transform;for(let Q of K){let te=Q.clone();if(q.appendChild(te),te instanceof No&&v.has(te.index)&&!R.has(te.index))R.add(te.index),k(te,R),R.delete(te.index)}u.replace(T,[q])},D=new Set;for(let T of y)k(T,D);return u.children.slice(p)}ensureFinalTabstop(m,u,p){if(u||p&&m.placeholders.length>0){if(!m.placeholders.find((y)=>y.index===0))m.appendChild(new No(0))}}_accept(m,u){if(m===void 0||this._token.type===m){let p=!u?!0:this._scanner.tokenText(this._token);return this._token=this._scanner.next(),p}return!1}_backTo(m){return this._scanner.pos=m.pos+m.len,this._token=m,!1}_until(m){let u=this._token;while(this._token.type!==m){if(this._token.type===14)return!1;else if(this._token.type===5){let v=this._scanner.next();if(v.type!==0&&v.type!==4&&v.type!==5)return!1}this._token=this._scanner.next()}let p=this._scanner.value.substring(u.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),p}_parse(m){return this._parseEscaped(m)||this._parseTabstopOrVariableName(m)||this._parseComplexPlaceholder(m)||this._parseComplexVariable(m)||this._parseAnything(m)}_parseEscaped(m){let u;if(u=this._accept(5,!0))return u=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||u,m.appendChild(new zi(u)),!0;return!1}_parseTabstopOrVariableName(m){let u,p=this._token;if(!(this._accept(0)&&(u=this._accept(9,!0)||this._accept(8,!0))))return this._backTo(p);return m.appendChild(/^\d+$/.test(u)?new No(Number(u)):new Ks(u)),!0}_parseComplexPlaceholder(m){let u,p=this._token;if(!(this._accept(0)&&this._accept(3)&&(u=this._accept(8,!0))))return this._backTo(p);let y=new No(Number(u));if(this._accept(1))while(!0){if(this._accept(4))return m.appendChild(y),!0;if(this._parse(y))continue;return m.appendChild(new zi("${"+u+":")),y.children.forEach(m.appendChild,m),!0}else if(y.index>0&&this._accept(7)){let k=new Qa;while(!0){if(this._parseChoiceElement(k)){if(this._accept(2))continue;if(this._accept(7)){if(y.appendChild(k),this._accept(4))return m.appendChild(y),!0}}return this._backTo(p),!1}}else if(this._accept(6)){if(this._parseTransform(y))return m.appendChild(y),!0;return this._backTo(p),!1}else if(this._accept(4))return m.appendChild(y),!0;else return this._backTo(p)}_parseChoiceElement(m){let u=this._token,p=[];while(!0){if(this._token.type===2||this._token.type===7)break;let v;if(v=this._accept(5,!0))v=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||v;else v=this._accept(void 0,!0);if(!v)return this._backTo(u),!1;p.push(v)}if(p.length===0)return this._backTo(u),!1;return m.appendChild(new zi(p.join(""))),!0}_parseComplexVariable(m){let u,p=this._token;if(!(this._accept(0)&&this._accept(3)&&(u=this._accept(9,!0))))return this._backTo(p);let y=new Ks(u);if(this._accept(1))while(!0){if(this._accept(4))return m.appendChild(y),!0;if(this._parse(y))continue;return m.appendChild(new zi("${"+u+":")),y.children.forEach(m.appendChild,m),!0}else if(this._accept(6)){if(this._parseTransform(y))return m.appendChild(y),!0;return this._backTo(p),!1}else if(this._accept(4))return m.appendChild(y),!0;else return this._backTo(p)}_parseTransform(m){let u=new z_,p="",v="";while(!0){if(this._accept(6))break;let y;if(y=this._accept(5,!0)){y=this._accept(6,!0)||y,p+=y;continue}if(this._token.type!==14){p+=this._accept(void 0,!0);continue}return!1}while(!0){if(this._accept(6))break;let y;if(y=this._accept(5,!0)){y=this._accept(5,!0)||this._accept(6,!0)||y,u.appendChild(new zi(y));continue}if(this._parseFormatString(u)||this._parseAnything(u))continue;return!1}while(!0){if(this._accept(4))break;if(this._token.type!==14){v+=this._accept(void 0,!0);continue}return!1}try{u.regexp=new RegExp(p,v)}catch(y){return!1}return m.transform=u,!0}_parseFormatString(m){let u=this._token;if(!this._accept(0))return!1;let p=!1;if(this._accept(3))p=!0;let v=this._accept(8,!0);if(!v)return this._backTo(u),!1;else if(!p)return m.appendChild(new hr(Number(v))),!0;else if(this._accept(4))return m.appendChild(new hr(Number(v))),!0;else if(!this._accept(1))return this._backTo(u),!1;if(this._accept(6)){let y=this._accept(9,!0);if(!y||!this._accept(4))return this._backTo(u),!1;else return m.appendChild(new hr(Number(v),y)),!0}else if(this._accept(11)){let y=this._until(4);if(y)return m.appendChild(new hr(Number(v),void 0,y,void 0)),!0}else if(this._accept(12)){let y=this._until(4);if(y)return m.appendChild(new hr(Number(v),void 0,void 0,y)),!0}else if(this._accept(13)){let y=this._until(1);if(y){let k=this._until(4);if(k)return m.appendChild(new hr(Number(v),void 0,y,k)),!0}}else{let y=this._until(4);if(y)return m.appendChild(new hr(Number(v),void 0,void 0,y)),!0}return this._backTo(u),!1}_parseAnything(m){if(this._token.type!==14)return m.appendChild(new zi(this._scanner.tokenText(this._token))),this._accept(void 0),!0;return!1}}function ep(m,u,p){if(typeof p.insertText==="string"?p.insertText==="":p.insertText.snippet==="")return{edits:p.additionalEdit?.edits??[]};return{edits:[...u.map((v)=>new kl(m,{range:v,text:typeof p.insertText==="string"?Mo.escape(p.insertText)+"$0":p.insertText.snippet,insertAsSnippet:!0})),...p.additionalEdit?.edits??[]]}}function Yx(m){function u(D,T){if("mimeType"in D)return D.mimeType===T.handledMimeType;return!!T.kind&&D.kind.contains(T.kind)}let p=new Map;for(let D of m)for(let T of D.yieldTo??[])for(let R of m){if(R===D)continue;if(u(T,R)){let K=p.get(D);if(!K)K=[],p.set(D,K);K.push(R)}}if(!p.size)return Array.from(m);let v=new Set,y=[];function k(D){if(!D.length)return[];let T=D[0];if(y.includes(T))return console.warn("Yield to cycle detected",T),D;if(v.has(T))return k(D.slice(1));let R=[],K=p.get(T);if(K)y.push(T),R=k(K),y.pop();return v.add(T),[...R,T,...k(D.slice(1))]}return k(Array.from(m))}function K_(m,u){if(u&&(m.stack||m.stacktrace))return e(33,"{0}: {1}",TC(m),DC(m.stack)||DC(m.stacktrace));return TC(m)}function DC(m){if(Array.isArray(m))return m.join(`
2
- `);return m}function TC(m){if(m.code==="ERR_UNC_HOST_NOT_ALLOWED")return`${m.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;if(typeof m.code==="string"&&typeof m.errno==="number"&&typeof m.syscall==="string")return e(34,"A system error occurred ({0})",m.message);return m.message||e(35,"An unknown error occurred. Please consult the log for more details.")}function Um(m=null,u=!1){if(!m)return e(36,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(m)){let p=Xi(m),v=Um(p[0],u);if(p.length>1)return e(37,"{0} ({1} errors in total)",v,p.length);return v}if(hn(m))return m;if(m.detail){let p=m.detail;if(p.error)return K_(p.error,u);if(p.exception)return K_(p.exception,u)}if(m.stack)return K_(m,u);if(m.message)return m.message;return e(38,"An unknown error occurred. Please consult the log for more details.")}class U_ extends n{constructor(m){super();this._onChange=this._register(new i),this.onChange=this._onChange.event,this._checked=!!m.checked,this._title=m.title??m.ariaLabel,this.domNode=g("button.monaco-switch"),this.domNode.type="button",this.domNode.setAttribute("role","switch"),w(this.domNode,g(".monaco-switch-thumb")),this._register(ri().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}))),this.setAriaLabel(m.ariaLabel,m.title),this.disabled=!!m.disabled,this._applyState(),this._register(l(this.domNode,x.CLICK,(u)=>{if(ve.stop(u,!0),this.domNode.disabled)return;this._checked=!this._checked,this._applyState(),this._onChange.fire(this._checked)}))}get checked(){return this._checked}set checked(m){if(this._checked!==m)this._checked=m,this._applyState()}get disabled(){return this.domNode.disabled}set disabled(m){this.domNode.disabled=m}setAriaLabel(m,u=m){this.domNode.setAttribute("aria-label",m),this._title=u}_applyState(){this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked)}}var HD=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},RC=function(m,u){return function(p,v){u(p,v,m)}},Fd=class m extends n{get enabled(){return this._enabled}set enabled(u){if(u)this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1;else this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0;this._enabled=u}constructor(u,p,v={},y,k){super();this._link=p,this._hoverService=y,this._enabled=!0,this.el=w(u,g("a.monaco-link",{tabIndex:p.tabIndex??0,href:p.href},p.label)),this.hoverDelegate=v.hoverDelegate??Wo("mouse"),this.setTooltip(p.title),this.el.setAttribute("role","button");let D=this._register(new at(this.el,"click")),T=this._register(new at(this.el,"keydown")),R=C.chain(T.event,(Q)=>Q.map((te)=>new ze(te)).filter((te)=>te.keyCode===3||te.keyCode===10)),K=this._register(new at(this.el,wt.Tap)).event;this._register(Tt.addTarget(this.el));let q=C.any(D.event,R,K);this._register(q((Q)=>{if(!this.enabled)return;if(ve.stop(Q,!0),v?.opener)v.opener(this._link.href);else k.open(this._link.href,{allowCommands:!0})})),this.enabled=!0}setTooltip(u){if(!this.hover&&u)this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,u));else if(this.hover)this.hover.update(u)}};Fd=HD([RC(3,vn),RC(4,Eo)],Fd);var X_=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Us=function(m,u){return function(p,v){u(p,v,m)}},q_,ip="acceptSelectedCodeAction",op="previewSelectedCodeAction",WD=new Set([ip,op,"toggleSectionCodeAction"]),BD="actionList.remove";class NC{get templateId(){return"header"}renderTemplate(m){m.classList.add("group-header");let u=document.createElement("span");return m.append(u),{container:m,text:u}}renderElement(m,u,p){p.text.textContent=m.group?.title??m.label??""}disposeTemplate(m){}}class MC{get templateId(){return"separator"}renderTemplate(m){m.classList.add("separator");let u=document.createElement("span");return m.append(u),{container:m,text:u}}renderElement(m,u,p){p.container.classList.toggle("has-label",!!m.label),p.text.textContent=m.label??""}disposeTemplate(m){}}function OC(m){return!!m.submenuActions?.length&&!m.hover?.content||!!m.hover?.expandable}function PC(m){return OC(m)&&m.hover?.showIndicator!==!1}var j_=class m{get templateId(){return"action"}constructor(u,p,v,y,k,D,T,R,K,q,Q,te){this._supportsPreview=u,this._onRemoveItem=p,this._onShowSubmenu=v,this._reservesSubmenuSpace=y,this._groupTitleByIndex=k,this._linkHandler=D,this._hideDefaultKeybindingTooltip=T,this._stopToolbarPointerPropagation=R,this._registerStandaloneToggle=K,this._registerToolbar=q,this._keybindingService=Q,this._openerService=te}renderTemplate(u){u.classList.add(this.templateId);let p=document.createElement("div");p.className="icon",u.append(p);let v=document.createElement("span");v.className="title",u.append(v);let y=document.createElement("span");y.className="action-item-badge",y.ariaHidden="true",u.append(y);let k=document.createElement("span");k.className="description",u.append(k);let D=document.createElement("span");D.className="group-title",u.append(D);let T=document.createElement("span");T.className="detail",u.append(T);let R=new ia(u,ui),K=document.createElement("div");K.className="action-list-item-toolbar",u.append(K);let q=document.createElement("div");q.className="action-list-submenu-indicator",u.append(q);let Q=document.createElement("div");Q.className="action-list-item-inline-toggle",u.append(Q);let te=new c;return{container:u,icon:p,text:v,detail:T,badge:y,description:k,groupTitle:D,keybinding:R,toolbar:K,submenuIndicator:q,inlineToggleContainer:Q,elementDisposables:te}}renderElement(u,p,v){if(v.elementDisposables.clear(),u.iconClasses?.length)v.icon.className=["icon",...u.iconClasses].join(" "),v.icon.style.color="";else if(u.group?.icon)v.icon.className=G.asClassName(u.group.icon),v.icon.style.color=u.group.icon.color?N(u.group.icon.color.id):"";else v.icon.className=G.asClassName(b.lightBulb),v.icon.style.color="var(--vscode-editorLightBulb-foreground)";if(!u.item&&!u.standaloneToggle||!u.label)return;if(tR(!u.hideIcon,v.icon),u.isSectionToggle){let q=u.group?.icon===b.chevronDown;v.container.setAttribute("aria-expanded",String(q))}else v.container.removeAttribute("aria-expanded");if(v.previousClassNames?.length)v.container.classList.remove(...v.previousClassNames);let y=u.className?.split(/\s+/).filter((q)=>q.length>0)??[];if(v.container.classList.toggle("action-list-custom",y.length>0),y.length)v.container.classList.add(...y);if(v.previousClassNames=y,v.text.textContent=rn(u.label),u.badge)v.badge.textContent=u.badge,v.badge.style.display="";else v.badge.textContent="",v.badge.style.display="none";if(u.keybinding)v.description.textContent=u.keybinding.getLabel(),v.description.style.display="inline",v.description.style.letterSpacing="0.5px";else if(u.description){if(Xt(v.description),typeof u.description==="string")v.description.textContent=rn(u.description);else{let q=Aa(u.description,{actionHandler:(Q)=>{let te=W.parse(Q);if(this._linkHandler)this._linkHandler(te,u);else this._openerService.open(te,{allowCommands:!0})}});v.elementDisposables.add(q),v.description.appendChild(q.element)}v.description.style.display="inline"}else v.description.textContent="",v.description.style.display="none";let k=this._groupTitleByIndex.get(p);if(k)v.groupTitle.textContent=k,v.groupTitle.style.display="";else v.groupTitle.textContent="",v.groupTitle.style.display="none";if(u.detail)v.detail.textContent=rn(u.detail),v.detail.style.display="";else v.detail.textContent="",v.detail.style.display="none";v.container.classList.toggle("has-detail",!!u.detail),Xt(v.inlineToggleContainer);let D=u.standaloneToggle??u.inlineToggle;if(D){let q=document.createElement("span");if(q.className="action-list-item-inline-toggle-label",q.textContent=rn(D.label),!u.standaloneToggle)v.inlineToggleContainer.append(q);v.inlineToggleContainer.style.display="",v.container.classList.toggle("has-inline-toggle",!!u.inlineToggle),v.container.classList.toggle("has-standalone-toggle",!!u.standaloneToggle);let Q=v.elementDisposables.add(new U_({ariaLabel:D.title??D.label,checked:D.checked,disabled:D.disabled}));if(v.inlineToggleContainer.append(Q.domNode),u.standaloneToggle)v.elementDisposables.add(this._registerStandaloneToggle(u,Q));v.elementDisposables.add(Q.onChange(()=>D.onChange(Q.checked))),v.elementDisposables.add(l(v.inlineToggleContainer,x.CLICK,(te)=>te.stopPropagation()))}else v.inlineToggleContainer.style.display="none",v.container.classList.remove("has-inline-toggle"),v.container.classList.remove("has-standalone-toggle");let T=this._keybindingService.lookupKeybinding(ip)?.getLabel(),R=this._keybindingService.lookupKeybinding(op)?.getLabel();if(v.container.classList.toggle("option-disabled",!!u.disabled),u.hover!==void 0)v.container.title="";else if(u.tooltip)v.container.title=u.tooltip;else if(u.disabled)v.container.title=u.label;else if(u.standaloneToggle)v.container.title="";else if(this._hideDefaultKeybindingTooltip)v.container.title="";else if(T&&R)if(this._supportsPreview&&u.canPreview)v.container.title=e(1731,"{0} to Apply, {1} to Preview",T,R);else v.container.title=e(1732,"{0} to Apply",T);else v.container.title="";Xt(v.toolbar);let K=[...u.toolbarActions??[]];if(u.onRemove)K.push(dl({id:BD,label:e(1733,"Remove"),class:G.asClassName(b.close),run:async()=>{await u.onRemove(),this._onRemoveItem?.(u)}}));if(v.container.classList.toggle("has-toolbar",K.length>0),K.length>0){let q=new Ri(v.toolbar);if(v.elementDisposables.add(q),this._stopToolbarPointerPropagation)v.elementDisposables.add(Fc(v.toolbar,(Q)=>{Q.preventDefault(),Q.stopPropagation()})),v.elementDisposables.add(l(v.toolbar,x.CLICK,(Q)=>Q.stopPropagation())),v.elementDisposables.add(l(v.toolbar,wt.Tap,(Q)=>Q.stopPropagation()));else v.elementDisposables.add(Fc(v.toolbar,(Q)=>Q.preventDefault()));q.push(K,{icon:!0,label:!1}),v.elementDisposables.add(this._registerToolbar(u,q))}if(PC(u))v.submenuIndicator.className="action-list-submenu-indicator has-submenu "+G.asClassName(b.chevronRight),v.submenuIndicator.style.display="",v.submenuIndicator.style.visibility="",v.elementDisposables.add(l(v.submenuIndicator,x.CLICK,(q)=>{q.stopPropagation(),this._onShowSubmenu?.(u)}));else if(this._reservesSubmenuSpace())v.submenuIndicator.className="action-list-submenu-indicator",v.submenuIndicator.style.display="",v.submenuIndicator.style.visibility="hidden";else v.submenuIndicator.className="action-list-submenu-indicator",v.submenuIndicator.style.display="none";if(OC(u))v.container.setAttribute("aria-haspopup",u.hover?.expandable?"dialog":"menu"),v.container.setAttribute("aria-expanded","false");else if(v.container.removeAttribute("aria-haspopup"),!u.isSectionToggle)v.container.removeAttribute("aria-expanded")}disposeTemplate(u){u.keybinding.dispose(),u.elementDisposables.dispose()}};j_=X_([Us(10,ce),Us(11,Eo)],j_);class $_ extends UIEvent{constructor(){super("acceptSelectedAction")}}class G_ extends UIEvent{constructor(){super("previewSelectedAction")}}function VD(m){if(m.kind==="action")return m.label;return}var Z_=q_=class m extends n{constructor(u,p,v,y,k,D,T,R,K){super();if(this._supportsPreview=p,this._delegate=y,this._options=D,this._keybindingService=T,this._openerService=R,this._instantiationService=K,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new Me),this._submenuDisposables=this._register(new c),this._submenuHoverActionElements=[],this._itemMoveAnimation=this._register(new ie),this._collapsedSections=new Set,this._filterText="",this._imeSessionInProgress=!1,this._isMeasuringWidth=!1,this._suppressHover=!1,this._hoverEnabled=!0,this._ignoreInitialHover=!0,this._hasLaidOut=!1,this._filterCts=this._register(new ie),this._groupTitleByIndex=new Map,this._standaloneToggles=new Map,this._itemToolbars=new Map,this._onDidRequestLayout=this._register(new i),this.onDidRequestLayout=this._onDidRequestLayout.event,this._visibleMenuItems=v,this._initialFocusItemId=this._options?.initialFocusItemId,this._filterText=this._options?.showFilter?this._options.initialFilterValue??"":"",this.domNode=document.createElement("div"),this.domNode.classList.add("actionList"),this._options?.inlineDescription)this.domNode.classList.add("inline-description");if(this._options?.className){let ne=this._options.className.split(/\s+/).filter((re)=>re.length>0);if(ne.length>0)this.domNode.classList.add(...ne)}if(this._actionLineHeight=24,this._submenuContainer=document.createElement("div"),this._submenuContainer.className="action-list-submenu-panel action-widget",this._submenuContainer.style.display="none",this._options?.persistentHover)this._submenuContainer.style.boxSizing="border-box";if(this._submenuContainer.tabIndex=-1,this.domNode.append(this._submenuContainer),this._register(l(this._submenuContainer,"keydown",(ne)=>{if((ne.key==="Enter"||ne.key===" ")&&this._currentSubmenuElement?.hover?.tabThroughPanel){let ae=xe(ne.target)?ne.target:void 0;if(ae&&this._currentSubmenuElement.hover.getTabbableElements?.().includes(ae)){ne.stopPropagation();return}}if(ne.key!=="ArrowLeft"&&ne.key!=="Escape")return;ve.stop(ne,!0);let re=ne.key==="Escape"&&this._currentSubmenuWidget!==void 0;if(this._hideSubmenu(),re){this.hide();return}this._setKeyboardNavigation(!0),this._list.domFocus()})),this._register(l(this._submenuContainer,"mouseenter",()=>{if(this._cancelSubmenuHide(),this._usesSubmenuPointerIntent())this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._register(l(this._submenuContainer,"mouseleave",()=>{this._scheduleSubmenuHide()})),this._register(l(this.domNode,x.MOUSE_LEAVE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer()})),this._usesSubmenuPointerIntent())this._register(l(this.domNode,x.MOUSE_MOVE,(ne)=>{if(xe(ne.target)&&this._expandedTrigger?.contains(ne.target))this._updateSubmenuPointer(ne)}));if(this._register(E(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(let ne of this._options.collapsedByDefault)this._collapsedSections.add(ne);let q={getHeight:(ne)=>this._getItemHeight(ne),getTemplateId:(ne)=>ne.kind},Q=()=>{let ne=this._options?.reserveSubmenuSpace??!0;return ne==="always"||ne&&this._allMenuItems.some(PC)};this._list=this._register(new io(u,this.domNode,q,[new j_(this._supportsPreview,(ne)=>this._removeItem(ne),(ne)=>this._showSubmenuForItem(ne),Q,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._options?.stopToolbarPointerPropagation??!1,(ne,re)=>(this._standaloneToggles.set(ne,re),E(()=>{if(this._standaloneToggles.get(ne)===re)this._standaloneToggles.delete(ne)})),(ne,re)=>(this._itemToolbars.set(ne,re),this._updateToolbarFocusability(),E(()=>{if(this._itemToolbars.get(ne)===re)this._itemToolbars.delete(ne)})),this._keybindingService,this._openerService),new NC,new MC],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter&&!this._options?.onType,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:VD},accessibilityProvider:{getAriaLabel:(ne)=>{if(ne.kind==="action"){let re=ne.label?rn(ne?.label):"";if(ne.badge)re=re+", "+rn(ne.badge);if(ne.detail)re=re+", "+rn(ne.detail);if(ne.ariaDescription)re=re+", "+rn(ne.ariaDescription);else if(ne.description){let ge=typeof ne.description==="string"?ne.description:ne.description.value;re=re+", "+rn(ge)}if(ne.hover?.content&&!ne.ariaDescription&&!ne.description){let ge=ne.hover.content,Se=typeof ge==="string"?ge:lr(ge)?ge.value:xe(ge)?ge.textContent??void 0:void 0;if(Se&&(!ne.detail||rn(ne.detail)!==rn(Se)))re=re+", "+rn(Se)}if(ne.group?.title)re=re+", "+ne.group.title;let ae=ne.standaloneToggle??ne.inlineToggle;if(ae)re=ne.standaloneToggle?ae.checked?e(1734,"{0}, on",ae.label):e(1735,"{0}, off",ae.label):re+", "+(ae.checked?e(1736,"{0}, on",ae.label):e(1737,"{0}, off",ae.label));if(ne.disabled)re=e(1738,"{0}, Disabled Reason: {1}",re,ne.disabled);if(ne.submenuActions?.length)re=e(1739,"{0}, use right arrow to access options",re);return re}return null},getWidgetAriaLabel:()=>e(1740,"Action Widget"),getSetSize:()=>this._visibleMenuItems.filter((ne)=>ne.kind==="action").length,getPosInSet:(ne,re)=>Math.max(this._visibleMenuItems.slice(0,re+1).filter((ae)=>ae.kind==="action").length,1),getRole:(ne)=>{switch(ne.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...k}})),this._list.style(Ph),this._register(this._list.onKeyDown(()=>this._setKeyboardNavigation(!0))),this._register(l(this._list.getHTMLElement(),x.MOUSE_MOVE,(ne)=>{if(ne.movementX!==0||ne.movementY!==0)this._setKeyboardNavigation(!1)})),this._register(this._list.onMouseClick((ne)=>this.onListClick(ne))),this._register(this._list.onMouseOver((ne)=>{if(!this._ignoreInitialHover)this.onListHover(ne)}));let te=this._register(new ie);if(te.value=this._list.onMouseMove((ne)=>{if(ne.browserEvent.movementX!==0||ne.browserEvent.movementY!==0)te.clear(),this._ignoreInitialHover=!1,this.onListHover(ne)}),this._register(this._list.onMouseDown(()=>{te.clear(),this._ignoreInitialHover=!1,this._setKeyboardNavigation(!1)})),this._register(this._list.onDidChangeFocus(()=>{this._updateToolbarFocusability(),this.onFocus()})),this._register(this._list.onDidChangeSelection((ne)=>this.onListSelection(ne))),this._register(this._list.onDidScroll(()=>{if(!this._isMeasuringWidth)this._layoutSubmenu?.()})),this._allMenuItems=[...v],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement("div"),this._filterContainer.className="action-list-filter";let ne=w(this._filterContainer,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")),ne.appendChild(this._filterInput),this._register(l(this._filterInput,x.KEY_DOWN,(ge)=>{if(this._setKeyboardNavigation(!0),ge.isComposing||!this._filterInput?.closest(".action-list-submenu-panel"))return;let Se=this._keybindingService.softDispatch(new ze(ge),this._filterInput);if(Se.kind===2&&Se.commandId!==null&&WD.has(Se.commandId)||ge.key.length===1&&!ge.ctrlKey&&!ge.metaKey&&!ge.altKey)ge.stopPropagation()})),this._register(l(this._filterInput,x.MOUSE_DOWN,()=>this._setKeyboardNavigation(!1))),this._options.tabThroughItemActions)this._register(l(this._filterInput,"keydown",(ge)=>this._handleTabThroughPanelKeyDown(ge),!0));if(this._options.filterAsCombobox){let ge=this._list.getHTMLElement();ge.id=this._list.domId,this._filterInput.setAttribute("role","combobox"),this._filterInput.setAttribute("aria-label",this._filterInput.placeholder),this._filterInput.setAttribute("aria-autocomplete","list"),this._filterInput.setAttribute("aria-expanded","true"),this._filterInput.setAttribute("aria-controls",ge.id),this._register(this._list.onDidChangeFocus(()=>this._updateFilterActiveDescendant())),this._register(l(this._filterInput,"focus",()=>this._updateFilterActiveDescendant())),this._register(l(this._filterInput,"blur",()=>this._updateFilterActiveDescendant())),this._register(ft(this._filterInput,"keydown",(Se)=>{if(this._imeSessionInProgress||Se.browserEvent.isComposing||Se.keyCode===114||Se.keyCode===15||Se.keyCode===17||Se.keyCode===14||Se.keyCode===13){Se.stopPropagation();return}let Ae=Se.keyCode===16||Se.keyCode===18;if(!Ae&&Se.keyCode!==3)return;if(Se.ctrlKey||Se.metaKey||Se.altKey||Se.shiftKey){if(Ae)Se.stopPropagation();return}if(ve.stop(Se,!0),Se.keyCode===16)this.focusPrevious();else if(Se.keyCode===18)this.focusNext();else this.acceptSelected()}))}let re=this._options?.filterActions??[];if(re.length>0){let ge=w(ne,g(".action-list-filter-actions"));this._register(new Ri(ge)).push(re,{icon:!0,label:!1})}let ae=()=>{let ge=this._filterInput.value;if(this._imeSessionInProgress||ge===this._filterText&&!this._filterCts.value?.token.isCancellationRequested)return;this._filterText=ge,this._applyOrUpdateFilter()};this._register(l(this._filterInput,"compositionstart",()=>{this._imeSessionInProgress=!0,this._filterCts.value?.cancel()})),this._register(l(this._filterInput,"compositionend",()=>{this._imeSessionInProgress=!1,ae()})),this._register(l(this._filterInput,"input",ae))}if(this._options?.secondaryHeading){let re=w(ne,g(".action-list-filter-label"));re.textContent=this._options.secondaryHeading}}if(this._options?.footerText)this._footerContainer=document.createElement("div"),this._footerContainer.className="action-list-footer",this._footerContainer.textContent=this._options.footerText;if(this._options?.headerText){if(this._headerContainer=document.createElement("div"),this._headerContainer.className="action-list-header",this._options.headerIcon){let re=w(this._headerContainer,g("span.action-list-header-icon"));re.classList.add(...G.asClassNameArray(this._options.headerIcon)),re.setAttribute("aria-hidden","true")}let ne=w(this._headerContainer,g("span.action-list-header-text"));if(ne.textContent=this._options.headerText,this._register(l(this._headerContainer,x.MOUSE_ENTER,()=>{if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer();else this._hideSubmenu()})),this._options.headerLink){let{label:re,uri:ae}=this._options.headerLink;ne.textContent+=" ",this._register(this._instantiationService.createInstance(Fd,ne,{label:re,href:ae.toString(!0)},{}))}if(this._options.headerDismiss){let re=this._options.headerDismiss,ae=w(this._headerContainer,g("span.action-list-header-dismiss"));ae.appendChild(g(G.asCSSSelector(b.close))),ae.tabIndex=0,ae.setAttribute("role","button"),ae.setAttribute("aria-label",e(1743,"Dismiss"));let ge=()=>{re(),this.focus(),this._headerContainer?.remove(),this._headerContainer=void 0,this._onDidRequestLayout.fire()};this._register(ty(ae,()=>ge())),this._register(l(ae,x.KEY_DOWN,(Se)=>{if(Se.key==="Enter"||Se.key===" ")Se.preventDefault(),ge()}))}}if(this._applyFilter(),this._list.length)this._focusCheckedOrFirst();if(this._register(l(this.domNode,"keydown",(ne)=>{if(ne.key==="ArrowRight"&&!ne.isComposing){let re=this._list.getFocus();if(re.length>0){let ae=this._list.element(re[0]);if(ae?.submenuActions?.length||ae?.hover?.expandable){ve.stop(ne,!0);let ge=this._getRowElement(re[0]);if(ge)if(this._showSubmenuForElement(ae,ge),ae.hover?.tabThroughPanel)this._focusFirstTabThroughPanelControl(ae,ge);else if(this._currentSubmenuWidget)this._currentSubmenuWidget.focus();else this._submenuContainer.focus()}}}})),this._register(l(this.domNode,"keydown",(ne)=>this._handleTabThroughPanelKeyDown(ne),!0)),this._filterInput||this._options?.onType)this._register(l(this.domNode,"keydown",(ne)=>{let re=ne.target;if((this._options?.onType||this._options?.filterAsCombobox)&&xe(re)&&(wr(re)||re.closest('button, a, [contenteditable="true"], .action-list-submenu-panel')))return;if((!this._filterInput||!os(this._filterInput))&&!ne.isComposing&&ne.key.length===1&&ne.key!==" "&&!ne.ctrlKey&&!ne.metaKey&&!ne.altKey)if(ne.preventDefault(),ne.stopPropagation(),this._filterInput)this._filterInput.focus(),this._filterInput.value=ne.key,this._filterText=ne.key,this._applyOrUpdateFilter();else this._options?.onType?.(ne.key)}))}_toggleSection(u){let p=this._collapsedSections.has(u);if(p)this._collapsedSections.delete(u);else{this._collapsedSections.add(u);let v=this.getFocusedElement();if(v?.section===u&&!v.isSectionToggle){let y=this._visibleMenuItems.findIndex((k)=>k.section===u&&k.isSectionToggle);if(y>=0)this._list.setFocus([y])}}if(this._options?.onDidToggleSection?.(u,this._collapsedSections.has(u)),this._applyFilter(),p)this._revealFirstItemOfSection(u)}_revealFirstItemOfSection(u){for(let p=0;p<this._list.length;p++){let v=this._list.element(p);if(v.section===u&&!v.isSectionToggle){this._list.reveal(p);return}}}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}let u=this._filterText;this._filterCts.value?.cancel();let p=new Me;this._filterCts.value=p,this._delegate.onFilter(u,p.token).then((v)=>{if(p.token.isCancellationRequested)return;this._allMenuItems=[...v],this._applyFilter(!0)}).catch(()=>{}).finally(()=>{if(this._filterCts.value===p&&!p.token.isCancellationRequested)this._filterCts.clear()})}_applyFilter(u=!1,p=!0,v){this._itemMoveAnimation.clear();let y=u?"":this._filterText.toLowerCase(),k=!u&&y.length>0,D=[],T=this._list.getFocus(),R;if(T.length>0)R=this._list.element(T[0]);if(k){let ae,ge=[],Se=!1,Oe=()=>{if(ae&&Se)D.push(ae);D.push(...ge),ae=void 0,ge=[],Se=!1},Ae=(We)=>{let Ue=(We.label??"").toLowerCase(),Le=typeof We.description==="string"?We.description:We.description?.value??"";return Ue.includes(y)||Le.toLowerCase().includes(y)};for(let We of this._allMenuItems){if(We.kind==="header")continue;if(We.kind==="separator"){Oe(),ae=We.label?We:void 0;continue}if(We.showAlways){ge.push(We);continue}if(We.isSectionToggle)continue;if(We.filterItems){let Ue=Ae(We)?We.filterItems:We.filterItems.filter(Ae);if(Ue.length>0)Se=!0,ge.push(...Ue);continue}if(Ae(We))Se=!0,ge.push(We)}Oe()}else for(let ae of this._allMenuItems){if(ae.kind==="header"){D.push(ae);continue}if(ae.kind==="separator"){if(ae.section&&this._collapsedSections.has(ae.section))continue;D.push(ae);continue}if(ae.isSectionToggle&&ae.section){let ge=this._collapsedSections.has(ae.section);D.push({...ae,group:{...ae.group,icon:ge?b.chevronRight:b.chevronDown}});continue}if(ae.section&&this._collapsedSections.has(ae.section))continue;D.push(ae)}let K=[],q=!1;for(let ae=0;ae<D.length;ae++)if(K[ae]=q,D[ae].kind==="action")q=!0;let Q=[],te=!1;for(let ae=D.length-1;ae>=0;ae--){if(D[ae].kind==="action"){te=!0;continue}if(D[ae].kind!=="separator")continue;Q[ae]=te,te=!1}for(let ae=D.length-1;ae>=0;ae--){let ge=D[ae];if(ge.kind!=="separator")continue;let Se=Q[ae],Oe=!ge.label&&!K[ae];if(!Se||Oe)D.splice(ae,1)}if(this._options?.showGroupTitleOnFirstItem)this._recomputeGroupTitles(D);let ne=this._filterInput&&os(this._filterInput),re=jc(this._list.getHTMLElement());if(this._visibleMenuItems=D,this._list.splice(0,this._list.length,D),p)this._onDidRequestLayout.fire();if(ne)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut){if(R||v){let ae=v??R?.item?.id;if(ae){for(let ge=0;ge<this._list.length;ge++)if(this._list.element(ge).item?.id===ae){this._list.setFocus([ge]),this._list.reveal(ge);break}if(re)this._focusCheckedOrFirst(),this._list.domFocus()}}}}get filterContainer(){return this._filterContainer}get footerContainer(){return this._footerContainer}get headerContainer(){return this._headerContainer}get filterInput(){return this._filterInput}get closeAnimation(){return this._options?.closeAnimation}focusCondition(u){return!u.disabled&&u.kind==="action"}_setKeyboardNavigation(u){if(this._keyboardNavigation===u)return;this._keyboardNavigation=u;let p=this._list.getHTMLElement();p.classList.toggle("keyboard-navigation",u===!0),p.classList.toggle("mouse-navigation",u===!1)}_updateFilterActiveDescendant(){if(!this._filterInput)return;let[u]=this._list.getFocus();if(os(this._filterInput)&&u!==void 0)this._filterInput.setAttribute("aria-activedescendant",this._list.getElementID(u));else this._filterInput.removeAttribute("aria-activedescendant")}focus(){if(this._setKeyboardNavigation(void 0),this._filterInput&&this._options?.focusFilterOnOpen){this._filterInput.focus(),this._focusCheckedOrFirst();return}this._list.domFocus(),this._focusCheckedOrFirst(),this._showTabThroughPanelForFocusedItem()}clearFocus(){this._list.setFocus([])}getFocusedElement(){let u=this._list.getFocus();if(u.length>0)return this._list.element(u[0]);return}_updateToolbarFocusability(){if(!this._options?.tabThroughItemActions)return;let[u]=this._list.getFocus(),p=u!==void 0&&u<this._list.length?this._list.element(u):void 0;for(let[v,y]of this._itemToolbars)y.setFocusable(v===p)}_focusCheckedOrFirst(){let u=this._suppressHover;this._suppressHover=!0;try{let p=this._initialFocusItemId;if(this._initialFocusItemId=void 0,p)for(let k=0;k<this._list.length;k++){let D=this._list.element(k);if(this.focusCondition(D)&&D.item?.id===p){this._list.setFocus([k]),this._list.reveal(k);return}}let[v]=this._list.getFocus();if(v!==void 0){let k=this._list.element(v);if(k&&this.focusCondition(k)){this._list.reveal(v);return}}for(let k=0;k<this._list.length;k++){let D=this._list.element(k);if(this.focusCondition(D)&&D.item?.checked){this._list.setFocus([k]),this._list.reveal(k);return}}this._list.focusFirst(void 0,this.focusCondition);let y=this._list.getFocus();if(y.length>0)this._list.reveal(y[0])}finally{if(this._suppressHover=u,this._options?.filterAsCombobox)this._updateFilterActiveDescendant()}}hide(u){this._delegate.onHide(u),this.cts.cancel(),this._filterCts.value?.cancel(),this._filterCts.clear(),this._hideSubmenu()}clearFilter(){if(this._filterInput&&this._filterText)return this._filterInput.value="",this._filterText="",this._applyOrUpdateFilter(),!0;return!1}get hasDynamicHeight(){if(this._options?.showFilter)return!0;return this._allMenuItems.some((u)=>u.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(u){return this._itemHeightWith(u,this._options)}_itemHeightWith(u,p){switch(u.kind){case"header":return this._headerLineHeight;case"separator":return u.label?this._actionLineHeight:this._separatorLineHeight;default:if(u.inlineToggle)return p?.inlineToggleItemHeight??70;return u.detail?p?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){return this.computeHeightForItems(this._allMenuItems,void 0,this._options)}computeHeightForItems(u,p,v){let y=0;for(let k of u){if(p&&k.section&&!k.isSectionToggle&&p.has(k.section))continue;y+=this._itemHeightWith(k,v)}return y}computeListHeight(){let u=this._list.length,p=0;for(let v=0;v<u;v++){let y=this._list.element(v);p+=this._getItemHeight(y)}return p}layout(u,p){this._hasLaidOut=!0,this._list.layout(u,p),this.domNode.style.height=`${u}px`;let v=this.domNode.parentElement;if(v&&this._filterContainer?.parentElement===v)v.insertBefore(this._filterContainer,this.domNode);this._layoutSubmenu?.()}computeMaxWidth(u){let p=this._list.length,v=Math.max(u,this._options?.minWidth??0),y=this._options?.maxWidth??Number.POSITIVE_INFINITY,k=Math.max(y,v),D=(q)=>Math.min(Math.max(q,v),k),T=this._allMenuItems.length;if(T>=50)return D(380);if(T>p){let q=[];for(let ae=0;ae<p;ae++)q.push(this._list.element(ae));let Q=this._list.renderHeight,te=this._list.scrollTop,ne=this._list.getFocus(),re=this._isMeasuringWidth;this._isMeasuringWidth=!0;try{let ae=[...this._allMenuItems];this._list.splice(0,p,ae);let ge=0;for(let Oe of ae)ge+=this._getItemHeight(Oe);this._list.layout(ge);let Se=this._measureItemWidths(ae);return D(Math.max(...Se))}finally{try{this._list.splice(0,this._list.length,q),this._list.layout(Q),this._list.scrollTop=te;let ae=this._suppressHover;this._suppressHover=!0;try{this._list.setFocus(ne)}finally{this._suppressHover=ae}}finally{this._isMeasuringWidth=re}}}let R=[];for(let q=0;q<p;q++)R.push(this._list.element(q));let K=this._measureItemWidths(R);return D(Math.max(...K))}focusPrevious(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("previous"))return;if(this._filterInput&&os(this._filterInput)){this._list.domFocus();let v=this._list.getFocus();if(v.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);let y=this._list.getFocus();if(y.length>0&&y[0]>=v[0])this._filterInput.focus();else if(y.length>0)this._list.reveal(y[0])}else{this._list.focusLast(void 0,this.focusCondition);let y=this._list.getFocus();if(y.length>0)this._list.reveal(y[0])}return}let u=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0){if(this._filterInput&&u.length>0&&p[0]>u[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(p[0])}}focusNext(){if(this._setKeyboardNavigation(!0),this._focusFilterResult("next"))return;if(this._filterInput&&os(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);let y=this._list.getFocus();if(y.length>0)this._list.reveal(y[0])}else{this._list.focusFirst(void 0,this.focusCondition);let y=this._list.getFocus();if(y.length>0)this._list.reveal(y[0])}return}let u=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);let p=this._list.getFocus();if(p.length>0){if(this._filterInput&&u.length>0&&p[0]<u[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(p[0])}}_focusFilterResult(u){if(!this._options?.filterAsCombobox||!this._filterInput||!os(this._filterInput))return!1;if(u==="previous")this._list.focusPrevious(1,!0,void 0,this.focusCondition);else this._list.focusNext(1,!0,void 0,this.focusCondition);let[p]=this._list.getFocus();if(p!==void 0)this._list.reveal(p);return!0}collapseFocusedSection(){let u=this._getFocusedSection();if(u&&!this._collapsedSections.has(u))this._toggleSection(u)}expandFocusedSection(){let u=this._getFocusedSection();if(u&&this._collapsedSections.has(u))this._toggleSection(u)}toggleFocusedSection(){let u=this._list.getFocus();if(u.length===0)return!1;let p=this._list.element(u[0]);if(p.isSectionToggle&&p.section)return this._toggleSection(p.section),!0;return!1}_getFocusedSection(){let u=this._list.getFocus();if(u.length===0)return;let p=this._list.element(u[0]);if(p.isSectionToggle&&p.section)return p.section;return p.section}acceptSelected(u){let p=this._list.getFocus();if(p.length===0)return;let v=p[0],y=this._list.element(v);if(!this.focusCondition(y))return;let k=u?new G_:new $_;this._list.setSelection([v],k)}onListSelection(u){if(!u.elements.length)return;let p=u.elements[0];if(p.standaloneToggle){this._list.setSelection([]);let y=this._standaloneToggles.get(p);if(y&&!y.disabled)y.checked=!y.checked,p.standaloneToggle.onChange(y.checked);return}if(p.isSectionToggle&&p.section){this._list.setSelection([]);let y=p.section;queueMicrotask(()=>{this._toggleSection(y)});return}let v=mh(u.browserEvent)||u.browserEvent?.type===wt.Tap;if(v){let y=u.browserEvent.target;if(xe(y)&&(y.closest(".action-list-item-toolbar")||y.closest(".action-list-submenu-indicator")||y.closest(".action-list-item-inline-toggle"))){this._list.setSelection([]);return}}if(p.openSubmenuOnClick&&p.submenuActions?.length&&(v||u.browserEvent instanceof $_)){if(this._list.setSelection([]),this._showSubmenuForItem(p),!v)this._currentSubmenuWidget?.focus();return}if(p.item&&this.focusCondition(p)){let y=u.browserEvent instanceof G_;this._delegate.onSelect(p.item,y&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){let u=this._list.getFocus();if(u.length===0)return;let p=u[0],v=this._list.element(p);if(this._delegate.onFocus?.(v.item),!this._suppressHover){if(this._options?.persistentHover)this._cancelSubmenuShow(),this._resetSubmenuPointer(),this._list.reveal(p);this._showHoverForElement(v,p)}}_removeItem(u){let p=this._allMenuItems.indexOf(u);if(p>=0)this._allMenuItems.splice(p,1),this._applyFilter()}_recomputeGroupTitles(u){this._groupTitleByIndex.clear();let p=new Set;for(let v=0;v<u.length;v++){let y=u[v];if(y.kind==="action"&&y.group?.title&&!p.has(y.group.title))p.add(y.group.title),this._groupTitleByIndex.set(v,y.group.title)}}_measureItemWidths(u){let p=[];for(let v=0;v<u.length;v++){let y=this._getRowElement(v);if(y)y.style.width="auto",p.push({element:y,item:u[v]})}try{return p.map(({element:v,item:y})=>v.getBoundingClientRect().width+(y.detail?0:this._computeToolbarWidth(y)))}finally{for(let{element:v}of p)v.style.width=""}}_computeToolbarWidth(u){let p=u.toolbarActions?.length??0;if(u.onRemove)p++;if(p===0)return 0;return p*22+6+10}_getRowElement(u){if(u<0)return null;return this.domNode.ownerDocument.getElementById(this._list.getElementID(u))}_showTabThroughPanelForFocusedItem(){let u=this._list.getFocus();if(u.length===0)return;let p=u[0],v=this._list.element(p);if(!v.hover?.tabThroughPanel)return;let y=this._getRowElement(p);if(y)this._showSubmenuForElement(v,y)}_getTabThroughPanelControls(u,p){if(u.hover?.tabThroughPanel&&this._currentSubmenuElement!==u)this._showSubmenuForElement(u,p);return{toolbar:this._itemToolbars.get(u),panelControls:[...u.hover?.getTabbableElements?.()??[],...this._submenuHoverActionElements]}}_focusFirstTabThroughPanelControl(u,p){let v=this._getTabThroughPanelControls(u,p);if(v.toolbar?.length())v.toolbar.focus(0);else(v.panelControls[0]??this._list.getHTMLElement()).focus()}_handleTabThroughPanelKeyDown(u){if(u.isComposing)return;let p=this._list.getFocus();if(p.length===0)return;let v=p[0],y=this._list.element(v);if(!y.hover?.tabThroughPanel&&!this._options?.tabThroughItemActions)return;let k=this._getRowElement(v),D=Et();if(!k||!xe(D))return;let T=this._getTabThroughPanelControls(y,k),R=T.toolbar?.isFocused()??!1,K=this._submenuContainer.contains(D);if((u.key==="ArrowUp"||u.key==="ArrowDown")&&(R||K)){if(ve.stop(u,!0),this._list.domFocus(),u.key==="ArrowUp")this.focusPrevious();else this.focusNext();return}if(u.key!=="Tab"||u.ctrlKey||u.metaKey||u.altKey)return;let q;if(u.shiftKey){if(K){let Q=T.panelControls.indexOf(D);if(Q>0)q=T.panelControls[Q-1];else if(T.toolbar?.length()){ve.stop(u,!0),T.toolbar.focus(T.toolbar.length()-1);return}else q=this._list.getHTMLElement()}else if(T.toolbar?.isFocused()){let Q=T.toolbar.viewItems.findIndex((te,ne)=>T.toolbar?.isFocused(ne));if(Q>0){ve.stop(u,!0),T.toolbar.focus(Q-1);return}q=this._options?.filterAsCombobox?this._filterInput:this._list.getHTMLElement()}}else if(D===this._list.getHTMLElement()||D===this._filterInput){if(T.toolbar?.length()){ve.stop(u,!0),T.toolbar.focus(0);return}q=T.panelControls[0]}else if(T.toolbar?.isFocused()){let Q=T.toolbar.viewItems.findIndex((te,ne)=>T.toolbar?.isFocused(ne));if(Q+1<T.toolbar.length()){ve.stop(u,!0),T.toolbar.focus(Q+1);return}q=T.panelControls[0]}else{let Q=T.panelControls.indexOf(D);if(Q>=0)q=T.panelControls[Q+1]??this._list.getHTMLElement()}if(q)ve.stop(u,!0),q.focus()}_showHoverForElement(u,p){if(this._currentSubmenuElement===u)return;let v=!!u.hover?.content,y=!!u.submenuActions?.length;if(v||y){let k=this._getRowElement(p);if(k)this._showSubmenuForElement(u,k);return}if(!this._options?.persistentHover)this._hideSubmenu()}_showSubmenuForItem(u){let p=this._list.indexOf(u);if(p>=0){let v=this._getRowElement(p);if(v)this._showSubmenuForElement(u,v)}}_showSubmenuForElement(u,p){if(!this._hoverEnabled||this._currentSubmenuElement===u)return;if(this._currentSubmenuElement=u,this._clearSubmenuContainer(),p.setAttribute("aria-expanded","true"),this._expandedTrigger=p,this._submenuPanelClassName=u.hover?.panelClassName,this._submenuPanelClassName)this._submenuContainer.classList.add(this._submenuPanelClassName);let v=u.hover?.preserveVerticalPosition,y=!!u.submenuActions?.length,k=v?g(".action-list-submenu-content"):this._submenuContainer,D=v?g(".action-list-submenu-viewport",void 0,k):void 0,T=D&&!y?this._submenuDisposables.add(new $a(D,{horizontal:2,vertical:1,consumeMouseWheelIfScrollbarIsNeeded:!0,useShadows:!1})):void 0;if(T&&D)this._submenuContainer.appendChild(T.getDomNode()),this._submenuDisposables.add(l(D,x.SCROLL,()=>T.scanDomNode())),this._submenuDisposables.add(l(this._submenuContainer,x.KEY_DOWN,(Se)=>{let Oe=new ze(Se);if(Oe.equals(12)||Oe.equals(11))ve.stop(Se,!0),T.setScrollPosition({scrollTop:T.getScrollPosition().scrollTop+(Oe.equals(12)?1:-1)*D.clientHeight})}));else if(D)this._submenuContainer.appendChild(D);let R,K=typeof u.hover?.content==="function"?u.hover.content():u.hover?.content;if(K){if(xe(K)){if(R=K,u.hover?.disposable)this._register(u.hover.disposable)}else{let Se=typeof K==="string"?new yn(K):K,Oe=this._options?.linkHandler,Ae=Aa(Se,{actionHandler:(We)=>{let Ue=W.parse(We);if(Oe)Oe(Ue,u);else this._openerService.open(Ue,{allowCommands:!0})}});this._submenuDisposables.add(Ae),R=Ae.element}if(R.classList.add("action-list-submenu-hover-header"),R.classList.toggle("content-owns-padding",u.hover?.contentOwnsPadding===!0),u.submenuActions?.length)R.classList.add("has-submenu");k.appendChild(R)}if(u.hover?.actions?.length){let Se=g(".hover-row.status-bar"),Oe=w(Se,g(".actions"));for(let Ae of u.hover.actions){let We=this._keybindingService.lookupKeybinding(Ae.commandId),Ue=this._submenuDisposables.add(Nh.render(Oe,{label:Ae.label,commandId:Ae.commandId,run:(Le)=>Ae.run(Le),iconClass:Ae.iconClass},We?.getLabel()??null));this._submenuHoverActionElements.push(Ue.actionContainer)}this._submenuContainer.appendChild(Se)}if(this._submenuContainer.style.display="",this._submenuContainer.style.position="absolute",u.hover?.expandable){if(this._submenuContainer.setAttribute("role","dialog"),u.label)this._submenuContainer.setAttribute("aria-label",u.label)}else this._submenuContainer.removeAttribute("role");let q=F(this.domNode),Q=0,te=R?R.offsetWidth:0,ne;if(y){let Se=this._createSubmenuItems(u.submenuActions),Oe={onHide:()=>{},onSelect:(Ue)=>{Ue.run();let Le=this._currentSubmenuElement?.item;if(this._hideSubmenu(),Le)this._delegate.onSelect(Le);this.hide()}},Ae=this._submenuDisposables.add(this._instantiationService.createInstance(q_,"submenu",!1,Se,Oe,void 0,u.submenuOptions));if(ne=Ae,Ae.headerContainer)k.appendChild(Ae.headerContainer);if(Ae.filterContainer)k.appendChild(Ae.filterContainer);if(k.appendChild(Ae.domNode),Ae.footerContainer)k.appendChild(Ae.footerContainer);this._currentSubmenuWidget=Ae,Ae.clearFocus(),Q=Ae.computeListHeight(),Ae.layout(Q);let We=Ae.computeMaxWidth(0);if(te=Math.max(te,We,Ae.footerContainer?.offsetWidth??0),Ae.layout(Q,te),Ae.domNode.style.width=`${te}px`,u.submenuOptions)this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${te+10}px`;this._submenuDisposables.add(Ae.onDidRequestLayout(()=>{Q=Ae.computeListHeight(),Ae.layout(Q,te),this._layoutSubmenu?.()})),this._submenuDisposables.add(l(k,"keydown",(Ue)=>{if(Ue.key==="Escape")ve.stop(Ue,!0),this._hideSubmenu(),this.hide();else if(Ue.key==="ArrowLeft")ve.stop(Ue,!0),this._hideSubmenu(),this._setKeyboardNavigation(!0),this._list.domFocus();else if(Ue.key==="Enter"||Ue.key===" ")ve.stop(Ue,!0),Ae.acceptSelected();else if(Ue.key==="ArrowDown")ve.stop(Ue,!0),Ae.focusNext();else if(Ue.key==="ArrowUp")ve.stop(Ue,!0),Ae.focusPrevious()}))}let re,ae,ge=()=>{let Se=this._currentSubmenuElement;if(!Se||this._layoutSubmenu!==ge)return;let Oe=this._list.indexOf(Se),Ae=Oe>=0?this._getRowElement(Oe):null,We=this._options?.persistentHover;if(!Ae&&(!We||!this._allMenuItems.includes(Se))){this._hideSubmenu();return}if(this._expandedTrigger!==Ae){if(this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=Ae??void 0}Ae?.setAttribute("aria-expanded","true");let Ue=this.domNode.getBoundingClientRect(),Le=We||Se.hover?.alignToParent,He=Le?this.domNode.parentElement?.closest(".action-widget")?.getBoundingClientRect()??Ue:Ue,Je=Ae?.getBoundingClientRect()??He,tt=Le||v?ag(this.domNode):1;if(We)this._submenuContainer.style.width=`${He.width/tt}px`;let ot=this._submenuContainer.getBoundingClientRect(),qe=Le?ot.width:te+10,nt=q.innerWidth-(Le?He.right:Je.right),_t=He.left,st=Le?0:4,Ct=4;if(!Le){let vi=q.innerWidth-2*Ct;if(qe>vi)qe=Math.max(vi,0);this._submenuContainer.style.boxSizing="border-box",this._submenuContainer.style.width=`${qe}px`}let lt=nt>=qe||nt>=_t;if(We&&this._submenuSide&&(this._submenuSide==="right"?nt:_t)>=qe)lt=this._submenuSide==="right";if(We)this._submenuSide=lt?"right":"left";let li=lt?He.right-Ue.left+st:He.left-Ue.left-qe-st,vt=Ue.left+li;if(vt<Ct)li+=Ct-vt;else if(vt+qe>q.innerWidth-Ct)li-=vt+qe-(q.innerWidth-Ct);this._submenuContainer.style.left=`${li/tt}px`;let Nt=ot.height;if(v)re??=Nt/tt;let bi=re!==void 0?re*tt:Nt,Zt=ae!==void 0?ae*tt:Ae&&Se.hover?.alignToAnchorTop?Je.top-Ue.top:Ae?Je.top-Ue.top+(Je.height-bi)/2:ot.top-Ue.top;if(v&&Se.hover?.alignToAnchorTop&&D&&ne){let vi=ot.height-D.getBoundingClientRect().height,gi=(ne.headerContainer?.offsetHeight??0)+(ne.filterContainer?.offsetHeight??0)+(ne.footerContainer?.offsetHeight??0),ai=vi+(gi+Q)*tt;Zt=Math.min(Zt,q.innerHeight-Ue.top-ai-8)}let qt=Ue.top+Zt+bi;if(qt>q.innerHeight&&!(v&&Se.hover?.alignToAnchorTop))Zt-=qt-q.innerHeight+8;if(Ue.top+Zt<0)Zt=-Ue.top;if(v)ae??=Zt/tt;if(D&&T){let vi=(ot.height-T.getDomNode().getBoundingClientRect().height)/tt,gi=Math.max(0,(q.innerHeight-Ue.top-Zt-8)/tt-vi);D.style.height=`${Math.min(k.getBoundingClientRect().height/tt,gi)}px`,T.scanDomNode()}else if(D&&ne){let vi=(ot.height-D.getBoundingClientRect().height)/tt,gi=Math.max(0,(q.innerHeight-Ue.top-Zt-8)/tt-vi),ai=(ne.headerContainer?.offsetHeight??0)+(ne.filterContainer?.offsetHeight??0)+(ne.footerContainer?.offsetHeight??0),Gi=Q===0?0:Math.max(this._actionLineHeight,Math.min(Q,gi-ai));ne.layout(Gi,te),D.style.height=`${ai+Gi}px`}this._submenuContainer.style.top=`${Zt/tt}px`};if(this._layoutSubmenu=ge,ge(),(this._options?.persistentHover||u.hover?.alignToParent||u.hover?.tabThroughPanel||v)&&this._currentSubmenuElement===u){if(!ne){let Se=this._submenuDisposables.add(new ie),Oe=this._submenuDisposables.add(new oy("ActionListWidget.hoverPanel",()=>{if(!Se.value)Se.value=ti(q,()=>{Se.clear(),ge()})},q));this._submenuDisposables.add(Oe.observe(v?k:this._submenuContainer,{box:"border-box"}))}if(this._options?.persistentHover||v)this._submenuDisposables.add(l(q,x.RESIZE,()=>{this._cancelSubmenuShow(),this._resetSubmenuPointer(),ge()}))}}_createSubmenuItems(u){let p=[],y=u.filter((k)=>k instanceof Mr).filter((k)=>k.actions.length>0);for(let k=0;k<y.length;k++){let D=y[k];if(D.label)p.push({kind:"header",group:{title:D.label},label:D.label});for(let T of D.actions){let R=T,K=R.icon??G.fromId(T.checked?b.check.id:b.blank.id),q=R.hoverContent,Q=q?new yn().appendText(`${T.label}
3
- `).appendMarkdown(q):void 0;p.push({item:T,kind:"action",label:T.label,description:T.tooltip&&T.tooltip!==T.label?T.tooltip:void 0,group:{title:"",icon:K},hideIcon:!1,hover:Q?{content:Q}:void 0,tooltip:T.tooltip||T.label,onRemove:R.onRemove,submenuActions:T instanceof Mr?[new Mr(T.id,"",T.actions)]:void 0})}if(k<y.length-1)p.push({kind:"separator",label:""})}for(let k of u)if(!(k instanceof Mr)){let D=k,T=D.icon??G.fromId(k.checked?b.check.id:b.blank.id),R=D.hoverContent,K=R?new yn().appendText(`${k.label}
4
- `).appendMarkdown(R):void 0;p.push({item:k,kind:"action",label:k.label,description:k.tooltip&&k.tooltip!==k.label?k.tooltip:void 0,group:{title:"",icon:T},hideIcon:!1,hover:K?{content:K}:void 0,tooltip:k.tooltip||k.label,onRemove:D.onRemove})}return p}_hideSubmenu(){this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._currentSubmenuElement=void 0,this._submenuSide=void 0,this._clearSubmenuContainer(),this._submenuContainer.style.display="none"}_clearSubmenuContainer(){if(this._layoutSubmenu=void 0,this._resetSubmenuPointer(),this._submenuContainer.contains(Et()))this._list.domFocus();if(this._submenuDisposables.clear(),this._currentSubmenuWidget=void 0,this._submenuHoverActionElements=[],this._submenuPanelClassName)this._submenuContainer.classList.remove(this._submenuPanelClassName),this._submenuPanelClassName=void 0;if(this._submenuContainer.removeAttribute("role"),this._submenuContainer.removeAttribute("aria-label"),this._expandedTrigger?.hasAttribute("aria-expanded"))this._expandedTrigger.setAttribute("aria-expanded","false");this._expandedTrigger=void 0,Xt(this._submenuContainer),this._submenuContainer.style.width="",this._submenuContainer.style.boxSizing=this._options?.persistentHover?"border-box":""}_scheduleSubmenuHide(){if(this._cancelSubmenuHide(),this._options?.persistentHover)return;this._submenuHideTimeout=setTimeout(()=>{this._hideSubmenu()},300)}_cancelSubmenuHide(){if(this._submenuHideTimeout!==void 0)clearTimeout(this._submenuHideTimeout),this._submenuHideTimeout=void 0}_scheduleSubmenuShow(u,p){this._cancelSubmenuShow();let v=this._options?.submenuHoverDelay??500;if(this._usesSubmenuPointerIntent()){v=0;let k=this._submenuPointerOrigin;if(k&&p.clientX!==k.x&&this._currentSubmenuElement&&new qk(k.x,k.y,this._submenuContainer).contains(p.clientX,p.clientY)){let D=Date.now();this._submenuPointerGraceDeadline??=D+200,v=Math.max(0,this._submenuPointerGraceDeadline-D)}}let y=()=>{this._submenuShowTimeout=void 0;let k=this._list.indexOf(u),D=k>=0?this._getRowElement(k):null;if(D){if(this._showSubmenuForElement(u,D),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(p)}};if(v===0)y();else this._submenuShowTimeout=setTimeout(y,v)}_updateSubmenuPointer(u){this._submenuPointerOrigin={x:u.clientX,y:u.clientY},this._submenuPointerGraceDeadline=void 0}_resetSubmenuPointer(){this._submenuPointerOrigin=void 0,this._submenuPointerGraceDeadline=void 0}_usesSubmenuPointerIntent(){return this._options?.persistentHover===!0||this._options?.submenuPointerIntent===!0}_cancelSubmenuShow(){if(this._submenuShowTimeout!==void 0)clearTimeout(this._submenuShowTimeout),this._submenuShowTimeout=void 0}async onListHover(u){this._setKeyboardNavigation(!1);let p=u.element;if(p&&p.item&&this.focusCondition(p)){let v=typeof u.index==="number"?[u.index]:[],y=Et();if(this._options?.tabThroughItemActions&&this._list.getFocus()[0]!==u.index&&xe(y)&&this.domNode.contains(y)&&y.closest(".action-list-item-toolbar"))this._list.domFocus();if(xe(u.browserEvent.target)&&u.browserEvent.target.closest(".action-list-item-toolbar")!==null){if(!p.submenuActions?.length)this._cancelSubmenuShow();this._list.setFocus(this._options?.tabThroughItemActions?v:[]);return}let D=!!(p.submenuActions?.length||p.hover?.content),T=this._suppressHover;if(D||this._usesSubmenuPointerIntent())this._suppressHover=!0;try{this._list.setFocus(v)}finally{this._suppressHover=T}if(D){if(this._currentSubmenuElement===p){if(this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._usesSubmenuPointerIntent())this._updateSubmenuPointer(u.browserEvent)}else{if(!this._usesSubmenuPointerIntent())this._hideSubmenu();this._scheduleSubmenuShow(p,u.browserEvent)}return}if(this._currentSubmenuElement===p)this._cancelSubmenuHide();else if(this._cancelSubmenuShow(),this._options?.submenuPointerIntent)this._scheduleSubmenuHide();else if(!this._options?.persistentHover)this._hideSubmenu();if(this._delegate.onHover&&!p.disabled&&p.kind==="action"&&this._currentSubmenuElement!==p){let R=await this._delegate.onHover(p.item,this.cts.token),K=R?R.canPreview:void 0;if(K!==p.canPreview){if(p.canPreview=K,typeof u.index==="number")this._list.splice(u.index,1,[p]),this._list.setFocus([u.index])}}}else if(p&&p.hover?.content&&typeof u.index==="number")if(this._currentSubmenuElement===p)this._cancelSubmenuHide(),this._cancelSubmenuShow();else{if(!this._options?.persistentHover)this._hideSubmenu();this._scheduleSubmenuShow(p,u.browserEvent)}}onListClick(u){if(u.element&&this.focusCondition(u.element))this._list.setFocus([])}};Z_=q_=X_([Us(6,ce),Us(7,Eo),Us(8,L)],Z_);var tp=class m extends n{get domNode(){return this._widget.domNode}get filterContainer(){return this._widget.filterContainer}get footerContainer(){return this._widget.footerContainer}get headerContainer(){return this._widget.headerContainer}get filterInput(){return this._widget.filterInput}get closeAnimation(){return this._widget.closeAnimation}get widgetClassName(){return this._widgetClassName}get anchorPosition(){if(this._preferredAnchorPosition!==void 0)return this._preferredAnchorPosition;if(this._showAbove===void 0)return;return this._showAbove?1:0}constructor(u,p,v,y,k,D,T,R,K,q){super();this._contextViewService=R,this._layoutService=K,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=T,this._preferredAnchorPosition=D?.anchorPosition,this._useFullHeight=D?.useFullHeight??!1,this._widgetClassName=D?.widgetClassName,this._widget=this._register(q.createInstance(Z_,u,p,v,y,k,D)),this._register(this._widget.onDidRequestLayout(()=>{if(this._hasLaidOut)this.layout(this._lastMinWidth),this._contextViewService.layout()}))}focus(){this._widget.focus()}hide(u,p=!0){if(this._widget.hide(u),p)this._contextViewService.hideContextView()}clearFilter(){return this._widget.clearFilter()}focusPrevious(){this._widget.focusPrevious()}focusNext(){this._widget.focusNext()}collapseFocusedSection(){this._widget.collapseFocusedSection()}expandFocusedSection(){this._widget.expandFocusedSection()}toggleFocusedSection(){return this._widget.toggleFocusedSection()}acceptSelected(u){this._widget.acceptSelected(u)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){let u=this.domNode.parentElement?.closest(".action-widget");if(!u)return 0;let p=F(u).getComputedStyle(u),v=(y)=>Number.parseFloat(y)||0;return v(p.paddingTop)+v(p.paddingBottom)+v(p.borderTopWidth)+v(p.borderBottomWidth)}computeHeight(){let u=this._fixedContentHeight??this._widget.computeListHeight(),p=this._widget.filterContainer?36:0,v=this._widget.footerContainer?32:0,y=this._widget.headerContainer&&!this._widget.headerContainer.hidden?this._widget.headerContainer.offsetHeight||36:0,k=p+v+y,D=F(this.domNode),T;if(this.hasDynamicHeight()||this._preferredAnchorPosition!==void 0){let te=D.innerHeight,ne=ky(this._anchor),re=ne.top-D.pageYOffset,ae=30,ge=te-re-ne.height-30,Se=re;if(this._showAbove===void 0){let Oe=this._fixedContentHeight??this._widget.computeFullHeight();this._showAbove=this._preferredAnchorPosition!==void 0?this._preferredAnchorPosition===1:k+Oe>ge&&Se>ge}T=Math.max(0,(this._showAbove?Se:ge)-this.computeActionWidgetVerticalChromeHeight())}else{let ne=this._layoutService.getContainer(D).clientHeight,re=this.domNode.getBoundingClientRect().top;T=re>0?ne-re-10:ne*0.7}let R=this._useFullHeight?D.innerHeight:Math.floor(D.innerHeight*0.6),K=this._widget.lineHeight;if(this._preferredAnchorPosition!==void 0){let te=Math.min(T,R),ne=Math.min(u+k,Math.max(0,te));return Math.max(0,ne-k)}let q=Math.min(Math.max(T,K*3+k),R);return Math.min(u+k,q)-k}layout(u,p){if(this._hasLaidOut=!0,this._lastMinWidth=u,p!==void 0)this._fixedContentHeight=p;let v=this.computeHeight();this._widget.layout(v);let y=this._widget.computeMaxWidth(u);return this._cachedMaxWidth=y,this._widget.layout(v,this._cachedMaxWidth),this._cachedMaxWidth}};tp=X_([Us(7,Br),Us(8,cr),Us(9,L)],tp);function rn(m){return m.replace(/\r\n|\r|\n/g," ")}var zD=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Y_=function(m,u){return function(p,v){u(p,v,m)}};s("actionBar.toggledBackground",su,e(1744,"Background color for toggled action items in action bar."));var AC="--action-widget-close-start-opacity",FC="--action-widget-close-start-transform",xo={Visible:new A("codeActionMenuVisible",!1,e(1745,"Whether the action widget list is visible")),FilterFocused:new A("codeActionMenuFilterFocused",!1,e(1746,"Whether the action widget filter input is focused"))},Oo=Z("actionWidgetService"),ur=class m extends n{get isVisible(){return xo.Visible.getValue(this._contextKeyService)||!1}constructor(u,p,v){super();this._contextViewService=u,this._contextKeyService=p,this._instantiationService=v,this._list=this._register(new ie),this._closeAnimation=this._register(new ie)}show(u,p,v,y,k,D,T,R,K){let q=xo.Visible.bindTo(this._contextKeyService),Q=this._instantiationService.createInstance(tp,u,p,v,y,R,K,k);this._contextViewService.showContextView({getAnchor:()=>k,render:(te)=>(q.set(!0),this._renderWidget(te,Q,T??[],K)),onHide:(te)=>{q.reset(),this._onWidgetClosed(te)},get anchorPosition(){return Q.anchorPosition},focus:()=>Q.focus()},D,!1)}acceptSelected(u){this._list.value?.acceptSelected(u)}focusPrevious(){this._list?.value?.focusPrevious()}focusNext(){this._list?.value?.focusNext()}collapseSection(){this._list?.value?.collapseFocusedSection()}expandSection(){this._list?.value?.expandFocusedSection()}toggleSection(){return this._list?.value?.toggleFocusedSection()??!1}clearFilter(){return this._list?.value?.clearFilter()??!1}hide(u){let p=this._list.value,v=this._widgetElement;if(!p||this._closingList===p)return;let y=p.closeAnimation;if(!v||!y||y.duration<=0||!this._hasRequiredAncestorClasses(v,y.requiredAncestorClasses)){this._closingList=p,p.hide(u);return}this._closingList=p;let k=F(v).getComputedStyle(v);v.style.setProperty(AC,k.opacity),v.style.setProperty(FC,k.transform),v.classList.add(y.className),p.hide(u,!1),this._closeAnimation.value=Kn(()=>{if(this._list.value===p)this._contextViewService.hideContextView(u)},y.duration)}clear(){this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement?.style.removeProperty(AC),this._widgetElement?.style.removeProperty(FC),this._widgetElement=void 0,this._list.clear()}_renderWidget(u,p,v,y){let k=document.createElement("div");k.classList.add("action-widget");let D=p.widgetClassName?.split(/\s+/).filter(Boolean);if(D?.length)k.classList.add(...D);if(u.appendChild(k),this._widgetElement=k,this._list.value=p,this._list.value){if(this._list.value.headerContainer)k.appendChild(this._list.value.headerContainer);if(this._list.value.filterContainer)k.appendChild(this._list.value.filterContainer);if(k.appendChild(this._list.value.domNode),this._list.value.footerContainer)k.appendChild(this._list.value.footerContainer)}else throw Error("List has no value");let T=new c;if(y?.filterAsCombobox)T.add(ft(k,"keydown",(Se)=>{if(Se.keyCode===9&&!Se.browserEvent.isComposing)ve.stop(Se,!0),this.hide(!0)}));let R=this._list.value.headerContainer;if(R)T.add(Fc(R,(Se)=>Se.preventDefault()));let K=0;T.add(Fc(k,()=>{K=Date.now()+1000}));let q=document.createElement("div"),Q=u.appendChild(q);Q.classList.add("context-view-block"),T.add(Fc(Q,(Se)=>Se.stopPropagation()));let te=0;if(v.length){let Se=this._createActionBar(".action-widget-action-bar",v);if(Se)k.appendChild(Se.getContainer().parentElement),T.add(Se),te=Se.getContainer().offsetWidth}let ne=this._list.value?.layout(te);k.style.width=`${ne}px`;let re=xo.FilterFocused.bindTo(this._contextKeyService);if(T.add({dispose:()=>re.reset()}),this._list.value?.filterInput){let Se=this._list.value.filterInput;T.add(l(Se,"focus",()=>re.set(!0))),T.add(l(Se,"blur",()=>re.set(!1)))}let ae=T.add(Yn(u)),ge=T.add(new ie);return T.add(ae.onDidFocus(()=>ge.clear())),T.add(ae.onDidBlur(()=>{let Se=()=>{let Oe=K-Date.now();if(Oe>0){ge.value=Kn(Se,Oe);return}let Ae=Et();if(Ae&&(u.contains(Ae)||Ae.closest(".action-widget-hover")||Ae.closest(".action-list-submenu-panel")))return;this.hide(!0)};ge.value=Kn(Se,75)})),T}_createActionBar(u,p){if(!p.length)return;let v=g(u),y=new Ri(v);return y.push(p,{icon:!1,label:!0}),y}_hasRequiredAncestorClasses(u,p){if(!p?.length)return!0;for(let v=u;v;v=v.parentElement)if(p.every((y)=>v.classList.contains(y)))return!0;return!1}_onWidgetClosed(u){if(this._closingList===this._list.value){this.clear();return}this._closeAnimation.clear(),this._closingList=void 0,this._widgetElement=void 0,this._list.value?.hide(u)}};ur=zD([Y_(0,Br),Y_(1,V),Y_(2,L)],ur);fe(Oo,ur,1);var gs=1100;Ze(class extends an{constructor(){super({id:"hideCodeActionWidget",title:h(1747,"Hide action widget"),precondition:xo.Visible,keybinding:{weight:gs,primary:9,secondary:[1033]}})}run(m){m.get(Oo).hide(!0)}});Ze(class extends an{constructor(){super({id:"clearFilterCodeActionWidget",title:h(1748,"Clear action widget filter"),precondition:_.and(xo.Visible,xo.FilterFocused),keybinding:{weight:gs+1,primary:9}})}run(m){let u=m.get(Oo);if(u instanceof ur){if(!u.clearFilter())u.hide(!0)}}});Ze(class extends an{constructor(){super({id:"selectPrevCodeAction",title:h(1749,"Select previous action"),precondition:xo.Visible,keybinding:{weight:gs,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(m){let u=m.get(Oo);if(u instanceof ur)u.focusPrevious()}});Ze(class extends an{constructor(){super({id:"selectNextCodeAction",title:h(1750,"Select next action"),precondition:xo.Visible,keybinding:{weight:gs,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(m){let u=m.get(Oo);if(u instanceof ur)u.focusNext()}});Ze(class extends an{constructor(){super({id:"collapseSectionCodeAction",title:h(1751,"Collapse section"),precondition:_.and(xo.Visible,xo.FilterFocused.negate()),keybinding:{weight:gs,primary:15}})}run(m){let u=m.get(Oo);if(u instanceof ur)u.collapseSection()}});Ze(class extends an{constructor(){super({id:"expandSectionCodeAction",title:h(1752,"Expand section"),precondition:_.and(xo.Visible,xo.FilterFocused.negate()),keybinding:{weight:gs,primary:17}})}run(m){let u=m.get(Oo);if(u instanceof ur)u.expandSection()}});Ze(class extends an{constructor(){super({id:"toggleSectionCodeAction",title:h(1753,"Toggle section"),precondition:_.and(xo.Visible,xo.FilterFocused.negate()),keybinding:{weight:gs,primary:10}})}run(m){let u=m.get(Oo);if(u instanceof ur){if(!u.toggleSection())u.acceptSelected()}}});Ze(class extends an{constructor(){super({id:ip,title:h(1754,"Accept selected action"),precondition:xo.Visible,keybinding:{weight:gs,primary:3,secondary:[2137]}})}run(m){let u=m.get(Oo);if(u instanceof ur)u.acceptSelected()}});Ze(class extends an{constructor(){super({id:op,title:h(1755,"Preview selected action"),precondition:xo.Visible,keybinding:{weight:gs,primary:2051}})}run(m){let u=m.get(Oo);if(u instanceof ur)u.acceptSelected(!0)}});var HC=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Hd=function(m,u){return function(p,v){u(p,v,m)}},J_,Q_=class m extends n{static{J_=this}static{this.baseId="editor.widget.postEditWidget"}constructor(u,p,v,y,k,D,T,R,K,q,Q){super();this.typeId=u,this.editor=p,this.showCommand=y,this.range=k,this.edits=D,this.onSelectNewEdit=T,this.additionalActions=R,this._keybindingService=q,this._actionWidgetService=Q,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=v.bindTo(K),this.visibleContext.set(!0),this._register(E(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(E(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition((te)=>{this.dispose()})),this._register(C.runAndSubscribe(q.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=g(".post-edit-widget"),this.button=this._register(new pu(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(l(this.domNode,x.CLICK,()=>this.showSelector()))}getId(){return J_.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){let u=mt(this.button.element),p={x:u.left+u.width,y:u.top+u.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((v,y)=>({kind:"action",item:v,label:v.title,disabled:!1,canPreview:!1,group:{title:"",icon:G.fromId(y===this.edits.activeEditIndex?b.check.id:b.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:(v)=>{this._actionWidgetService.hide(!1);let y=this.edits.allEdits.findIndex((k)=>k===v);if(y!==this.edits.activeEditIndex)return this.onSelectNewEdit(y)}},p,this.editor.getDomNode()??void 0,this.additionalActions)}};Q_=J_=HC([Hd(8,V),Hd(9,ce),Hd(10,Oo)],Q_);var qm=class m extends n{constructor(u,p,v,y,k,D,T,R){super();this._id=u,this._editor=p,this._visibleContext=v,this._showCommand=y,this._getAdditionalActions=k,this._instantiationService=D,this._bulkEditService=T,this._notificationService=R,this._currentWidget=this._register(new ie),this._register(C.any(p.onDidChangeModel,p.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(u,p,v,y,k){if(!u.length||!this._editor.hasModel())return;let D=this._editor.getModel(),T=p.allEdits.at(p.activeEditIndex);if(!T)return;let R=async(Se)=>{let Oe=this._editor.getModel();if(!Oe)return;await Oe.undo(),this.applyEditAndShowIfNeeded(u,{activeEditIndex:Se,allEdits:p.allEdits},v,y,k)},K=(Se,Oe)=>{if(Gn(Se))return;if(this._notificationService.error(Oe),v)this.show(u[0],p,R)},q=new Vr(this._editor,3,void 0,k),Q;try{Q=await GI(y(T,q.token),q.token)}catch(Se){return K(Se,e(991,`Error resolving edit '{0}':
5
- {1}`,T.title,Um(Se)))}finally{q.dispose()}if(k.isCancellationRequested)return;let te=ep(D.uri,u,Q),ne=u[0],re=D.deltaDecorations([],[{range:ne,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let ae,ge;try{ae=await this._bulkEditService.apply(te,{editor:this._editor,token:k}),ge=D.getDecorationRange(re[0])}catch(Se){return K(Se,e(992,`Error applying edit '{0}':
6
- {1}`,T.title,Um(Se)))}finally{D.deltaDecorations(re,[])}if(k.isCancellationRequested)return;if(v&&ae.isApplied&&p.allEdits.length>1)this.show(ge??ne,p,R)}show(u,p,v){if(this.clear(),this._editor.hasModel())this._currentWidget.value=this._instantiationService.createInstance(Q_,this._id,this._editor,this._visibleContext,this._showCommand,u,p,v,this._getAdditionalActions())}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};qm=HC([Hd(5,L),Hd(6,Cl),Hd(7,ut)],qm);var KD=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},ps=function(m,u){return function(p,v){u(p,v,m)}},dn,Ok="editor.changePasteType",UD="editor.pasteAs.preferences",Zx=new A("pasteWidgetVisible",!1,e(971,"Whether the paste widget is showing")),eb="application/vnd.code.copymetadata",Ul=class m extends n{static{dn=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(u){return u.getContribution(dn.ID)}constructor(u,p,v,y,k,D,T,R,K,q){super();this._logService=v,this._bulkEditService=y,this._clipboardService=k,this._commandService=D,this._configService=T,this._languageFeaturesService=R,this._quickInputService=K,this._progressService=q,this._editor=u,this._register(u.onWillCopy((Q)=>this.handleCopy(Q))),this._register(u.onWillCut((Q)=>this.handleCopy(Q))),this._register(u.onWillPaste((Q)=>this.handlePaste(Q))),this._pasteProgressManager=this._register(new Vm("pasteIntoEditor",u,p)),this._postPasteWidgetManager=this._register(p.createInstance(qm,"pasteIntoEditor",u,Zx,{id:Ok,label:e(972,"Show paste options...")},()=>dn._configureDefaultAction?[dn._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(u){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:u},await this._commandService.executeCommand("editor.action.clipboardPasteAction")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(97).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(u){if(this._logService.trace("CopyPasteController#handleCopy"),!this._editor.hasTextFocus())return;if(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled())return;let p=this._editor.getModel(),v=this._editor._getViewModel(),y=this._editor.getSelections();if(!p||!v||!y?.length)return;let k={multicursorText:u.dataToCopy.multicursorText??null,pasteOnNewLine:u.dataToCopy.isFromEmptySelection,mode:null},D=this._languageFeaturesService.documentPasteEditProvider.ordered(p).filter((Q)=>!!Q.prepareDocumentPaste);if(!D.length){this.setCopyMetadata(u.clipboardData,{defaultPastePayload:k});return}let T=new Rh,R=D.flatMap((Q)=>Q.copyMimeTypes??[]),K=Da();this.setCopyMetadata(u.clipboardData,{id:K,providerCopyMimeTypes:R,defaultPastePayload:k});let q=D.map((Q)=>({providerMimeTypes:Q.copyMimeTypes,operation:Pt((te)=>Q.prepareDocumentPaste(p,u.dataToCopy.sourceRanges,T,te).catch((ne)=>{console.error(ne);return}))}));dn._currentCopyOperation?.operations.forEach((Q)=>Q.operation.cancel()),dn._currentCopyOperation={handle:K,operations:q}}async handlePaste(u){if(this._logService.trace("CopyPasteController#handlePaste for id : ",u.metadata?.id),!this._editor.hasTextFocus())return;let p=u.toExternalVSDataTransfer();if(!p)return;p.delete(eb),Bi.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let v=this._editor.getModel(),y=this._editor.getSelections();if(!y?.length||!v)return;if(this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let k=this.fetchCopyMetadata(u);this._logService.trace("CopyPasteController#handlePaste with metadata : ",k?.id," and text.length : ",u.clipboardData.getData("text/plain").length);let D=Array.from(u.clipboardData.files).map((K)=>K.type),T=[...u.clipboardData.types,...D,...k?.providerCopyMimeTypes??[],ln.uriList],R=this._languageFeaturesService.documentPasteEditProvider.ordered(v).filter((K)=>{let q=this._pasteAsActionContext?.preferred;if(q){if(!this.providerMatchesPreference(K,q))return!1}return K.pasteMimeTypes?.some((Q)=>Zk(Q,T))});if(!R.length){if(this._pasteAsActionContext?.preferred)this.showPasteAsNoEditMessage(y,this._pasteAsActionContext.preferred),u.setHandled();return}if(u.setHandled(),this._pasteAsActionContext)this.showPasteAsPick(this._pasteAsActionContext.preferred,R,y,p,k);else this.doPasteInline(R,y,p,k,u.browserEvent)}showPasteAsNoEditMessage(u,p){let v="only"in p?p.only.value:("preferences"in p)?p.preferences.length?p.preferences.map((y)=>y.value).join(", "):e(973,"empty"):p.providerId;Bi.get(this._editor)?.showMessage(e(974,"No paste edits for '{0}' found",v),u[0].getStartPosition())}doPasteInline(u,p,v,y,k){this._logService.trace("CopyPasteController#doPasteInline");let D=this._editor;if(!D.hasModel())return;let T=new Vr(D,3,void 0),R=Pt(async(K)=>{let q=this._editor;if(!q.hasModel())return;let Q=q.getModel(),te=new c,ne=te.add(new Me(K));te.add(T.token.onCancellationRequested(()=>ne.cancel()));let re=ne.token;try{if(await this.mergeInDataFromCopy(u,v,y,re),re.isCancellationRequested)return;let ae=u.filter((Oe)=>this.isSupportedPasteProvider(Oe,v));if(!ae.length||ae.length===1&&ae[0]instanceof Ud)return this.applyDefaultPasteHandler(v,y,re,k);let ge={triggerKind:Wp.Automatic},Se=await this.getPasteEdits(ae,v,Q,p,ge,re);if(te.add(Se),re.isCancellationRequested)return;if(Se.edits.length===1&&Se.edits[0].provider instanceof Ud)return this.applyDefaultPasteHandler(v,y,re,k);if(Se.edits.length){let Oe=q.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(p,{activeEditIndex:this.getInitialActiveEditIndex(Q,Se.edits),allEdits:Se.edits},Oe,async(Ae,We)=>{if(!Ae.provider.resolveDocumentPasteEdit)return Ae;let Ue=Ae.provider.resolveDocumentPasteEdit(Ae,We),Le=new ks,He=await this._pasteProgressManager.showWhile(p[0].getEndPosition(),e(975,"Resolving paste edit for '{0}'. Click to cancel",Ae.title),ll(Promise.race([Le.p,Ue]),We),{cancel:()=>Le.cancel()},0);if(He)Ae.insertText=He.insertText,Ae.additionalEdit=He.additionalEdit;return Ae},re)}await this.applyDefaultPasteHandler(v,y,re,k)}finally{if(te.dispose(),this._currentPasteOperation===R)this._currentPasteOperation=void 0}});this._pasteProgressManager.showWhile(p[0].getEndPosition(),e(976,"Running paste handlers. Click to cancel and do basic paste"),R,{cancel:async()=>{if(R.cancel(),T.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(v,y,T.token,k)}}).finally(()=>{T.dispose()}),this._currentPasteOperation=R}showPasteAsPick(u,p,v,y,k){this._logService.trace("CopyPasteController#showPasteAsPick");let D=Pt(async(T)=>{let R=this._editor;if(!R.hasModel())return;let K=R.getModel(),q=new c,Q=q.add(new Vr(R,3,void 0,T));try{if(await this.mergeInDataFromCopy(p,y,k,Q.token),Q.token.isCancellationRequested)return;let te=p.filter((Se)=>this.isSupportedPasteProvider(Se,y,u));if(u)te=te.filter((Se)=>this.providerMatchesPreference(Se,u));let ne={triggerKind:Wp.PasteAs,only:u&&"only"in u?u.only:void 0},re=q.add(await this.getPasteEdits(te,y,K,v,ne,Q.token));if(Q.token.isCancellationRequested)return;if(u)re={edits:re.edits.filter((Se)=>{if("only"in u)return u.only.contains(Se.kind);else if("preferences"in u)return u.preferences.some((Oe)=>Oe.contains(Se.kind));else return u.providerId===Se.provider.id}),dispose:re.dispose};if(!re.edits.length){if(u)this.showPasteAsNoEditMessage(v,u);return}let ae;if(u)ae=re.edits.at(0);else{let Se={id:"editor.pasteAs.default",label:e(977,"Configure default paste action"),edit:void 0},Oe=await this._quickInputService.pick([...re.edits.map((Ae)=>({label:Ae.title,description:Ae.kind?.value,edit:Ae})),...dn._configureDefaultAction?[BI({type:"separator"}),{label:dn._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:e(978,"Select Paste Action")});if(Oe===Se){dn._configureDefaultAction?.run();return}ae=Oe?.edit}if(!ae)return;let ge=ep(K.uri,v,ae);await this._bulkEditService.apply(ge,{editor:this._editor})}finally{if(q.dispose(),this._currentPasteOperation===D)this._currentPasteOperation=void 0}});this._progressService.withProgress({location:10,title:e(979,"Running paste handlers")},()=>D)}setCopyMetadata(u,p){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",p.id),u.setData(eb,JSON.stringify(p))}fetchCopyMetadata(u){this._logService.trace("CopyPasteController#fetchCopyMetadata");let p=u.clipboardData.getData(eb);if(p)try{return JSON.parse(p)}catch{return}if(u.metadata)return{defaultPastePayload:{mode:u.metadata.mode,multicursorText:u.metadata.multicursorText??null,pasteOnNewLine:!!u.metadata.isFromEmptySelection}};return}async mergeInDataFromCopy(u,p,v,y){if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",v?.id),v?.id&&dn._currentCopyOperation?.handle===v.id){let k=dn._currentCopyOperation.operations.filter((T)=>u.some((R)=>R.pasteMimeTypes.some((K)=>Zk(K,T.providerMimeTypes)))).map((T)=>T.operation),D=await Promise.all(k);if(y.isCancellationRequested)return;for(let T of D.reverse())if(T)for(let[R,K]of T)p.replace(R,K)}if(!p.has(ln.uriList)){let k=await this._clipboardService.readResources();if(y.isCancellationRequested)return;if(k.length)p.append(ln.uriList,my(lf.create(k)))}}async getPasteEdits(u,p,v,y,k,D){let T=new c,R=await ll(Promise.all(u.map(async(q)=>{try{let Q=await q.provideDocumentPasteEdits?.(v,y,p,k,D);if(Q)T.add(Q);return Q?.edits?.map((te)=>({...te,provider:q}))}catch(Q){if(!Gn(Q))console.error(Q);return}})),D),K=Xi(R??[]).flat().filter((q)=>!k.only||k.only.contains(q.kind));return{edits:Yx(K),dispose:()=>T.dispose()}}async applyDefaultPasteHandler(u,p,v,y){let D=await(u.get(ln.text)??u.get("text"))?.asString()??"";if(v.isCancellationRequested)return;let T={clipboardEvent:y,text:D,pasteOnNewLine:p?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:p?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",p?.id),this._editor.trigger("keyboard","paste",T)}isSupportedPasteProvider(u,p,v){if(!u.pasteMimeTypes?.some((y)=>p.matches(y)))return!1;return!v||this.providerMatchesPreference(u,v)}providerMatchesPreference(u,p){if("only"in p)return u.providedPasteEditKinds.some((v)=>p.only.contains(v));else if("preferences"in p)return u.providedPasteEditKinds.some((v)=>p.preferences.some((y)=>y.contains(v)));else return u.id===p.providerId}getInitialActiveEditIndex(u,p){let v=this._configService.getValue(UD,{resource:u.uri});for(let y of Array.isArray(v)?v:[]){let k=new It(y),D=p.findIndex((T)=>k.contains(T.kind));if(D>=0)return D}return 0}};Ul=dn=KD([ps(1,L),ps(2,Be),ps(3,Cl),ps(4,Zn),ps(5,Ne),ps(6,X),ps(7,j),ps(8,cn),ps(9,Y0)],Ul);var ed="9_cutcopypaste",qD=vr||document.queryCommandSupported&&document.queryCommandSupported("cut"),BC=vr||document.queryCommandSupported&&document.queryCommandSupported("copy"),jD=typeof navigator.clipboard>"u"||zn?document.queryCommandSupported&&document.queryCommandSupported("paste"):!0;function ob(m){return m.register(),m}var $D=qD?ob(new yh({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:vr?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:a.MenubarEditMenu,group:"2_ccp",title:e(864,"Cu&&t"),order:1},{menuId:a.EditorContext,group:ed,title:e(865,"Cut"),when:o.writable,order:1},{menuId:a.CommandPalette,group:"",title:e(866,"Cut"),order:1},{menuId:a.SimpleEditorContext,group:ed,title:e(867,"Cut"),when:o.writable,order:1}]})):void 0,GD=BC?ob(new yh({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:vr?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:a.MenubarEditMenu,group:"2_ccp",title:e(868,"&&Copy"),order:2},{menuId:a.EditorContext,group:ed,title:e(869,"Copy"),order:2},{menuId:a.CommandPalette,group:"",title:e(870,"Copy"),order:1},{menuId:a.SimpleEditorContext,group:ed,title:e(871,"Copy"),order:2}]})):void 0;Rn.appendMenuItem(a.MenubarEditMenu,{submenu:a.MenubarCopy,title:h(876,"Copy As"),group:"2_ccp",order:3});Rn.appendMenuItem(a.EditorContext,{submenu:a.EditorContextCopy,title:h(877,"Copy As"),group:ed,order:3});Rn.appendMenuItem(a.EditorContext,{submenu:a.EditorContextShare,title:h(878,"Share"),group:"11_share",order:-1,when:_.and(_.notEquals("resourceScheme","output"),o.editorTextFocus)});Rn.appendMenuItem(a.ExplorerContext,{submenu:a.ExplorerContextShare,title:h(879,"Share"),group:"11_share",order:-1});var tb=jD?ob(new yh({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:vr?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:a.MenubarEditMenu,group:"2_ccp",title:e(872,"&&Paste"),order:4},{menuId:a.EditorContext,group:ed,title:e(873,"Paste"),when:o.writable,order:4},{menuId:a.CommandPalette,group:"",title:e(874,"Paste"),order:1},{menuId:a.SimpleEditorContext,group:ed,title:e(875,"Paste"),when:o.writable,order:4}]})):void 0;class VC extends z{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:h(880,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,weight:100}})}run(m,u){let p=m.get(Be),v=m.get(Zn);if(p.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!u.hasModel())return;if(!u.getOption(45)&&u.getSelection().isEmpty())return;Uc.forceCopyWithSyntaxHighlighting=!0,u.focus(),p.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),ib(u,v),p.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),Uc.forceCopyWithSyntaxHighlighting=!1}}function ib(m,u){if(Uc.electronBugWorkaroundCopyEventHasFired=!1,m.getContainerDomNode().ownerDocument.execCommand("copy"),vr&&Uc.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:p}=wR(m._getViewModel(),void 0,zn);u.writeText(p.text)}}function zC(m,u){if(!m)return;m.addImplementation(1e4,"code-editor",(p,v)=>{let y=p.get(Be),k=p.get(Zn);y.trace("registerExecCommandImpl (addImplementation code-editor for : ",u,")");let D=p.get(ye).getFocusedCodeEditor();if(D&&D.hasTextFocus()&&D.hasModel()){let T=D.getOption(45),R=D.getSelection();if(R&&R.isEmpty()&&!T)return!0;if(D.getOption(171)&&u==="cut")WC(D),y.trace("registerExecCommandImpl (before execCommand copy)"),ib(D,k),D.trigger(void 0,"cut",void 0),y.trace("registerExecCommandImpl (after execCommand copy)");else{if(WC(D),y.trace("registerExecCommandImpl (before execCommand "+u+")"),u==="copy")ib(D,k);else D.getContainerDomNode().ownerDocument.execCommand(u);y.trace("registerExecCommandImpl (after execCommand "+u+")")}return!0}return!1}),m.addImplementation(0,"generic-dom",(p,v)=>{let y=p.get(Be);return y.trace("registerExecCommandImpl (addImplementation generic-dom for : ",u,")"),y.trace("registerExecCommandImpl (before execCommand "+u+")"),fh().execCommand(u),y.trace("registerExecCommandImpl (after execCommand "+u+")"),!0})}function WC(m){if(m.getOption(171)){let p=vy.get(m.getId());if(p)p.handleWillCopy()}}zC($D,"cut");zC(GD,"copy");if(tb)tb.addImplementation(1e4,"code-editor",(m,u)=>{let p=m.get(Be);p.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");let v=m.get(ye),y=m.get(Zn),k=v.getFocusedCodeEditor();if(k&&k.hasModel()&&k.hasTextFocus()){if(k.getOption(171)){let R=vy.get(k.getId());if(R)R.handleWillPaste()}p.trace("registerExecCommandImpl (before triggerPaste)");let T=y.triggerPaste(Pe().vscodeWindowId);if(T)return p.trace("registerExecCommandImpl (triggerPaste defined)"),T.then(async()=>(p.trace("registerExecCommandImpl (after triggerPaste)"),Ul.get(k)?.finishedPaste()??Promise.resolve()));else p.trace("registerExecCommandImpl (triggerPaste undefined)");if(Qr)return p.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{let R=await y.readText();if(R!==""){let K=$h.INSTANCE.get(R),q=!1,Q=null,te=null;if(K)q=k.getOption(45)&&!!K.isFromEmptySelection,Q=typeof K.multicursorText<"u"?K.multicursorText:null,te=K.mode;p.trace("registerExecCommandImpl (clipboardText.length : ",R.length," id : ",K?.id,")"),k.trigger("keyboard","paste",{text:R,pasteOnNewLine:q,multicursorText:Q,mode:te})}})();return!0}return!1}),tb.addImplementation(0,"generic-dom",(m,u)=>(m.get(Be).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)"),m.get(Zn).triggerPaste(Pe().vscodeWindowId)??!1));if(BC)I(VC);class Dr{constructor(m,u,p){this.languageConfigurationService=p,this._selection=m,this._insertSpace=u,this._usedEndToken=null}static _haystackHasNeedleAtOffset(m,u,p){if(p<0)return!1;let v=u.length,y=m.length;if(p+v>y)return!1;for(let k=0;k<v;k++){let D=m.charCodeAt(p+k),T=u.charCodeAt(k);if(D===T)continue;if(D>=65&&D<=90&&D+32===T)continue;if(T>=65&&T<=90&&T+32===D)continue;return!1}return!0}_createOperationsForBlockComment(m,u,p,v,y,k){let{startLineNumber:D,startColumn:T,endLineNumber:R,endColumn:K}=m,q=y.getLineContent(D),Q=y.getLineContent(R),te=q.lastIndexOf(u,T-1+u.length),ne=Q.indexOf(p,K-1-p.length);if(te!==-1&&ne!==-1)if(D===R){if(q.substring(te+u.length,ne).indexOf(p)>=0)te=-1,ne=-1}else{let ae=q.substring(te+u.length),ge=Q.substring(0,ne);if(ae.indexOf(p)>=0||ge.indexOf(p)>=0)te=-1,ne=-1}let re;if(te!==-1&&ne!==-1){if(v&&te+u.length<q.length&&q.charCodeAt(te+u.length)===32)u=u+" ";if(v&&ne>0&&Q.charCodeAt(ne-1)===32)p=" "+p,ne-=1;re=Dr._createRemoveBlockCommentOperations(new t(D,te+u.length+1,R,ne+1),u,p)}else re=Dr._createAddBlockCommentOperations(m,u,p,this._insertSpace),this._usedEndToken=re.length===1?p:null;for(let ae of re)k.addTrackedEditOperation(ae.range,ae.text)}static _createRemoveBlockCommentOperations(m,u,p){let v=[];if(!t.isEmpty(m))v.push(Mt.delete(new t(m.startLineNumber,m.startColumn-u.length,m.startLineNumber,m.startColumn))),v.push(Mt.delete(new t(m.endLineNumber,m.endColumn,m.endLineNumber,m.endColumn+p.length)));else v.push(Mt.delete(new t(m.startLineNumber,m.startColumn-u.length,m.endLineNumber,m.endColumn+p.length)));return v}static _createAddBlockCommentOperations(m,u,p,v){let y=[];if(!t.isEmpty(m))y.push(Mt.insert(new r(m.startLineNumber,m.startColumn),u+(v?" ":""))),y.push(Mt.insert(new r(m.endLineNumber,m.endColumn),(v?" ":"")+p));else y.push(Mt.replace(new t(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn),u+" "+p));return y}getEditOperations(m,u){let p=this._selection.startLineNumber,v=this._selection.startColumn;m.tokenization.tokenizeIfCheap(p);let y=m.getLanguageIdAtPosition(p,v),k=this.languageConfigurationService.getLanguageConfiguration(y).comments;if(!k||!k.blockCommentStartToken||!k.blockCommentEndToken)return;this._createOperationsForBlockComment(this._selection,k.blockCommentStartToken,k.blockCommentEndToken,this._insertSpace,m,u)}computeCursorState(m,u){let p=u.getInverseEditOperations();if(p.length===2){let v=p[0],y=p[1];return new O(v.range.endLineNumber,v.range.endColumn,y.range.startLineNumber,y.range.startColumn)}else{let v=p[0].range,y=this._usedEndToken?-this._usedEndToken.length-1:0;return new O(v.endLineNumber,v.endColumn+y,v.endLineNumber,v.endColumn+y)}}}class Tr{constructor(m,u,p,v,y,k,D){this.languageConfigurationService=m,this._selection=u,this._indentSize=p,this._type=v,this._insertSpace=y,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=k,this._ignoreFirstLine=D||!1}static _gatherPreflightCommentStrings(m,u,p,v){m.tokenization.tokenizeIfCheap(u);let y=m.getLanguageIdAtPosition(u,1),k=v.getLanguageConfiguration(y).comments,D=k?k.lineCommentToken:null;if(!D)return null;let T=[];for(let R=0,K=p-u+1;R<K;R++)T[R]={ignore:!1,commentStr:D,commentStrOffset:0,commentStrLength:D.length};return T}static _analyzeLines(m,u,p,v,y,k,D,T,R){let K=!0,Q=T.getLanguageConfiguration(R).comments?.lineCommentNoIndent??!1,te;if(m===0)te=!0;else if(m===1)te=!1;else te=!0;for(let ne=0,re=v.length;ne<re;ne++){let ae=v[ne],ge=y+ne;if(ge===y&&D){ae.ignore=!0;continue}let Se=p.getLineContent(ge),Oe=In(Se);if(Oe===-1){ae.ignore=k,ae.commentStrOffset=Q?0:Se.length;continue}K=!1;let Ae=Q?0:Oe;if(ae.ignore=!1,ae.commentStrOffset=Ae,te&&!Dr._haystackHasNeedleAtOffset(Se,ae.commentStr,Ae))if(m===0)te=!1;else if(m===1);else ae.ignore=!0;if(te&&u){let We=Oe+ae.commentStrLength;if(We<Se.length&&Se.charCodeAt(We)===32)ae.commentStrLength+=1}}if(m===0&&K){te=!1;for(let ne=0,re=v.length;ne<re;ne++)v[ne].ignore=!1}return{supported:!0,shouldRemoveComments:te,lines:v}}static _gatherPreflightData(m,u,p,v,y,k,D,T){let R=Tr._gatherPreflightCommentStrings(p,v,y,T),K=p.getLanguageIdAtPosition(v,1);if(R===null)return{supported:!1};return Tr._analyzeLines(m,u,p,R,v,k,D,T,K)}_executeLineComments(m,u,p,v){let y;if(p.shouldRemoveComments)y=Tr._createRemoveLineCommentsOperations(p.lines,v.startLineNumber);else Tr._normalizeInsertionPoint(m,p.lines,v.startLineNumber,this._indentSize),y=this._createAddLineCommentsOperations(p.lines,v.startLineNumber);let k=new r(v.positionLineNumber,v.positionColumn);for(let D=0,T=y.length;D<T;D++)if(u.addEditOperation(y[D].range,y[D].text),t.isEmpty(y[D].range)&&t.getStartPosition(y[D].range).equals(k)){if(m.getLineContent(k.lineNumber).length+1===k.column)this._deltaColumn=(y[D].text||"").length}this._selectionId=u.trackSelection(v)}_attemptRemoveBlockComment(m,u,p,v){let{startLineNumber:y,endLineNumber:k}=u,D=v.length+Math.max(m.getLineFirstNonWhitespaceColumn(u.startLineNumber),u.startColumn),T=m.getLineContent(y).lastIndexOf(p,D-1),R=m.getLineContent(k).indexOf(v,u.endColumn-1-p.length);if(T!==-1&&R===-1)R=m.getLineContent(y).indexOf(v,T+p.length),k=y;if(T===-1&&R!==-1)T=m.getLineContent(k).lastIndexOf(p,R),y=k;if(u.isEmpty()&&(T===-1||R===-1)){if(T=m.getLineContent(y).indexOf(p),T!==-1)R=m.getLineContent(y).indexOf(v,T+p.length)}if(T!==-1&&m.getLineContent(y).charCodeAt(T+p.length)===32)p+=" ";if(R!==-1&&m.getLineContent(k).charCodeAt(R-1)===32)v=" "+v,R-=1;if(T!==-1&&R!==-1)return Dr._createRemoveBlockCommentOperations(new t(y,T+p.length+1,k,R+1),p,v);return null}_executeBlockComment(m,u,p){m.tokenization.tokenizeIfCheap(p.startLineNumber);let v=m.getLanguageIdAtPosition(p.startLineNumber,1),y=this.languageConfigurationService.getLanguageConfiguration(v).comments;if(!y||!y.blockCommentStartToken||!y.blockCommentEndToken)return;let{blockCommentStartToken:k,blockCommentEndToken:D}=y,T=this._attemptRemoveBlockComment(m,p,k,D);if(!T){if(p.isEmpty()){let R=m.getLineContent(p.startLineNumber),K=In(R);if(K===-1)K=R.length;T=Dr._createAddBlockCommentOperations(new t(p.startLineNumber,K+1,p.startLineNumber,R.length+1),k,D,this._insertSpace)}else T=Dr._createAddBlockCommentOperations(new t(p.startLineNumber,m.getLineFirstNonWhitespaceColumn(p.startLineNumber),p.endLineNumber,m.getLineMaxColumn(p.endLineNumber)),k,D,this._insertSpace);if(T.length===1)this._deltaColumn=k.length+1}this._selectionId=u.trackSelection(p);for(let R of T)u.addEditOperation(R.range,R.text)}getEditOperations(m,u){let p=this._selection;if(this._moveEndPositionDown=!1,p.startLineNumber===p.endLineNumber&&this._ignoreFirstLine){u.addEditOperation(new t(p.startLineNumber,m.getLineMaxColumn(p.startLineNumber),p.startLineNumber+1,1),p.startLineNumber===m.getLineCount()?"":`
7
- `),this._selectionId=u.trackSelection(p);return}if(p.startLineNumber<p.endLineNumber&&p.endColumn===1)this._moveEndPositionDown=!0,p=p.setEndPosition(p.endLineNumber-1,m.getLineMaxColumn(p.endLineNumber-1));let v=Tr._gatherPreflightData(this._type,this._insertSpace,m,p.startLineNumber,p.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);if(v.supported)return this._executeLineComments(m,u,v,p);return this._executeBlockComment(m,u,p)}computeCursorState(m,u){let p=u.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)p=p.setEndPosition(p.endLineNumber+1,1);return new O(p.selectionStartLineNumber,p.selectionStartColumn+this._deltaColumn,p.positionLineNumber,p.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(m,u){let p=[];for(let v=0,y=m.length;v<y;v++){let k=m[v];if(k.ignore)continue;p.push(Mt.delete(new t(u+v,k.commentStrOffset+1,u+v,k.commentStrOffset+k.commentStrLength+1)))}return p}_createAddLineCommentsOperations(m,u){let p=[],v=this._insertSpace?" ":"";for(let y=0,k=m.length;y<k;y++){let D=m[y];if(D.ignore)continue;p.push(Mt.insert(new r(u+y,D.commentStrOffset+1),D.commentStr+v))}return p}static nextVisibleColumn(m,u,p,v){if(p)return m+(u-m%u);return m+v}static _normalizeInsertionPoint(m,u,p,v){let y=1073741824,k,D;for(let T=0,R=u.length;T<R;T++){if(u[T].ignore)continue;let K=m.getLineContent(p+T),q=0;for(let Q=0,te=u[T].commentStrOffset;q<y&&Q<te;Q++)q=Tr.nextVisibleColumn(q,v,K.charCodeAt(Q)===9,1);if(q<y)y=q}y=Math.floor(y/v)*v;for(let T=0,R=u.length;T<R;T++){if(u[T].ignore)continue;let K=m.getLineContent(p+T),q=0;for(k=0,D=u[T].commentStrOffset;q<y&&k<D;k++)q=Tr.nextVisibleColumn(q,v,K.charCodeAt(k)===9,1);if(q>y)u[T].commentStrOffset=k-1;else u[T].commentStrOffset=k}}}class np extends z{constructor(m,u){super(u);this._type=m}run(m,u){let p=m.get(et);if(!u.hasModel())return;let v=u.getModel(),y=[],k=v.getOptions(),D=u.getOption(29),T=u.getSelections().map((K,q)=>({selection:K,index:q,ignoreFirstLine:!1}));T.sort((K,q)=>t.compareRangesUsingStarts(K.selection,q.selection));let R=T[0];for(let K=1;K<T.length;K++){let q=T[K];if(R.selection.endLineNumber===q.selection.startLineNumber)if(R.index<q.index)q.ignoreFirstLine=!0;else R.ignoreFirstLine=!0,R=q}for(let K of T)y.push(new Tr(p,K.selection,k.indentSize,this._type,D.insertSpace,D.ignoreEmptyLines,K.ignoreFirstLine));u.pushUndoStop(),u.executeCommands(this.id,y),u.pushUndoStop()}}class KC extends np{constructor(){super(0,{id:"editor.action.commentLine",label:h(948,"Toggle Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"5_insert",title:e(946,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class UC extends np{constructor(){super(1,{id:"editor.action.addCommentLine",label:h(949,"Add Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class qC extends np{constructor(){super(2,{id:"editor.action.removeCommentLine",label:h(950,"Remove Line Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class jC extends z{constructor(){super({id:"editor.action.blockComment",label:h(951,"Toggle Block Comment"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"5_insert",title:e(947,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(m,u){let p=m.get(et);if(!u.hasModel())return;let v=u.getOption(29),y=[],k=u.getSelections();for(let D of k)y.push(new Dr(D,v.insertSpace,p));u.pushUndoStop(),u.executeCommands(this.id,y),u.pushUndoStop()}}I(KC);I(UC);I(qC);I(jC);class rp{constructor(m){this.selections=m}equals(m){let u=this.selections.length,p=m.selections.length;if(u!==p)return!1;for(let v=0;v<u;v++)if(!this.selections[v].equalsSelection(m.selections[v]))return!1;return!0}}class sp{constructor(m,u,p){this.cursorState=m,this.scrollTop=u,this.scrollLeft=p}}class Wd extends n{static{this.ID="editor.contrib.cursorUndoRedoController"}static get(m){return m.getContribution(Wd.ID)}constructor(m){super();this._editor=m,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(m.onDidChangeModel((u)=>{this._undoStack=[],this._redoStack=[]})),this._register(m.onDidChangeModelContent((u)=>{this._undoStack=[],this._redoStack=[]})),this._register(m.onDidChangeCursorSelection((u)=>{if(this._isCursorUndoRedo)return;if(!u.oldSelections)return;if(u.oldModelVersionId!==u.modelVersionId)return;let p=new rp(u.oldSelections);if(!(this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(p))){if(this._undoStack.push(new sp(p,m.getScrollTop(),m.getScrollLeft())),this._redoStack=[],this._undoStack.length>50)this._undoStack.shift()}}))}cursorUndo(){if(!this._editor.hasModel()||this._undoStack.length===0)return;this._redoStack.push(new sp(new rp(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 sp(new rp(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop())}_applyState(m){this._isCursorUndoRedo=!0,this._editor.setSelections(m.cursorState.selections),this._editor.setScrollPosition({scrollTop:m.scrollTop,scrollLeft:m.scrollLeft}),this._isCursorUndoRedo=!1}}class $C extends z{constructor(){super({id:"cursorUndo",label:h(965,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:2099,weight:100}})}run(m,u,p){Wd.get(u)?.cursorUndo()}}class GC extends z{constructor(){super({id:"cursorRedo",label:h(966,"Cursor Redo"),precondition:void 0})}run(m,u,p){Wd.get(u)?.cursorRedo()}}le(Wd.ID,Wd,0);I($C);I(GC);class nb{constructor(m,u,p){this.selection=m,this.targetPosition=u,this.copy=p,this.targetSelection=null}getEditOperations(m,u){let p=m.getValueInRange(this.selection);if(!this.copy)u.addEditOperation(this.selection,null);if(u.addEditOperation(new t(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),p),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new O(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new O(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new O(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.selection.endColumn<=this.targetPosition.column)this.targetSelection=new O(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column-this.selection.endColumn+this.selection.startColumn:this.targetPosition.column-this.selection.endColumn+this.selection.startColumn,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn);else this.targetSelection=new O(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(m,u){return this.targetSelection}}function Bd(m){if(ue)return m.altKey;else return m.ctrlKey}class Vd extends n{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=ue?6:5}constructor(m){super();this._editor=m,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((u)=>this._onEditorMouseDown(u))),this._register(this._editor.onMouseUp((u)=>this._onEditorMouseUp(u))),this._register(this._editor.onMouseDrag((u)=>this._onEditorMouseDrag(u))),this._register(this._editor.onMouseDrop((u)=>this._onEditorMouseDrop(u))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown((u)=>this.onEditorKeyDown(u))),this._register(this._editor.onKeyUp((u)=>this.onEditorKeyUp(u))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(m){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Bd(m))this._modifierPressed=!0;if(this._mouseDown&&Bd(m))this._editor.updateOptions({mouseStyle:"copy"})}onEditorKeyUp(m){if(!this._editor.getOption(42)||this._editor.getOption(28))return;if(Bd(m))this._modifierPressed=!1;if(this._mouseDown&&m.keyCode===Vd.TRIGGER_KEY_VALUE)this._editor.updateOptions({mouseStyle:"default"})}_onEditorMouseDown(m){this._mouseDown=!0}_onEditorMouseUp(m){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(m){let u=m.target;if(this._dragSelection===null){let v=(this._editor.getSelections()||[]).filter((y)=>u.position&&y.containsPosition(u.position));if(v.length===1)this._dragSelection=v[0];else return}if(Bd(m.event))this._editor.updateOptions({mouseStyle:"copy"});else this._editor.updateOptions({mouseStyle:"default"});if(u.position)if(this._dragSelection.containsPosition(u.position))this._removeDecoration();else this.showAt(u.position)}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(m){if(m.target&&(this._hitContent(m.target)||this._hitMargin(m.target))&&m.target.position){let u=new r(m.target.position.lineNumber,m.target.position.column);if(this._dragSelection===null){let p=null;if(m.event.shiftKey){let v=this._editor.getSelection();if(v){let{selectionStartLineNumber:y,selectionStartColumn:k}=v;p=[new O(y,k,u.lineNumber,u.column)]}}else p=(this._editor.getSelections()||[]).map((v)=>{if(v.containsPosition(u))return new O(u.lineNumber,u.column,u.lineNumber,u.column);else return v});this._editor.setSelections(p||[],"mouse",3)}else if(!this._dragSelection.containsPosition(u)||(Bd(m.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(u)||this._dragSelection.getStartPosition().equals(u)))this._editor.pushUndoStop(),this._editor.executeCommand(Vd.ID,new nb(this._dragSelection,u,Bd(m.event)||this._modifierPressed)),this._editor.pushUndoStop()}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=oe.register({description:"dnd-target",className:"dnd-target"})}showAt(m){this._dndDecorationIds.set([{range:new t(m.lineNumber,m.column,m.lineNumber,m.column),options:Vd._DECORATION_OPTIONS}]),this._editor.revealPosition(m,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(m){return m.type===6||m.type===7}_hitMargin(m){return m.type===2||m.type===3||m.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}le(Vd.ID,Vd,2);function rb(m,u,p,v){if(m.getLineCount()===1&&m.getLineMaxColumn(1)===1)return[];let y=u.getLanguageConfiguration(m.getLanguageId()).indentRulesSupport;if(!y)return[];let k=new xg(m,y,u);v=Math.min(v,m.getLineCount());while(p<=v){if(!k.shouldIgnore(p))break;p++}if(p>v-1)return[];let{tabSize:D,indentSize:T,insertSpaces:R}=m.getOptions(),K=(ae,ge)=>(ge=ge||1,Cr.shiftIndent(ae,ae.length+ge,D,T,R)),q=(ae,ge)=>(ge=ge||1,Cr.unshiftIndent(ae,ae.length+ge,D,T,R)),Q=[],te=m.getLineContent(p),ne=kt(te),re=ne;if(k.shouldIncrease(p))re=K(re),ne=K(ne);else if(k.shouldIndentNextLine(p))re=K(re);p++;for(let ae=p;ae<=v;ae++){if(ZD(m,ae))continue;let ge=m.getLineContent(ae),Se=kt(ge),Oe=re;if(k.shouldDecrease(ae,Oe))re=q(re),ne=q(ne);if(Se!==re)Q.push(Mt.replaceMove(new O(ae,1,ae,Se.length+1),yg(re,T,R)));if(k.shouldIgnore(ae))continue;else if(k.shouldIncrease(ae,Oe))ne=K(ne),re=ne;else if(k.shouldIndentNextLine(ae,Oe))re=K(re);else re=ne}return Q}function ZD(m,u){if(!m.tokenization.isCheapToTokenize(u))return!1;return m.tokenization.getLineTokens(u).getStandardTokenType(0)===2}function Ji(m,u){let p=0;for(let v=0;v<m.length;v++)if(m.charAt(v)==="\t")p+=u;else p++;return p}function td(m,u,p){m=m<0?0:m;let v="";if(!p){let y=Math.floor(m/u);m=m%u;for(let k=0;k<y;k++)v+="\t"}for(let y=0;y<m;y++)v+=" ";return v}var XD=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},YD=function(m,u){return function(p,v){u(p,v,m)}};class sb extends z{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:sb.ID,label:h(1204,"Convert Indentation to Spaces"),precondition:o.writable,metadata:{description:h(1205,"Convert the tab indentation to spaces.")}})}run(m,u){let p=u.getModel();if(!p)return;let v=p.getOptions(),y=u.getSelection();if(!y)return;let k=new QC(y,v.tabSize);u.pushUndoStop(),u.executeCommands(this.id,[k]),u.pushUndoStop(),p.updateOptions({insertSpaces:!0})}}class ab extends z{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:ab.ID,label:h(1206,"Convert Indentation to Tabs"),precondition:o.writable,metadata:{description:h(1207,"Convert the spaces indentation to tabs.")}})}run(m,u){let p=u.getModel();if(!p)return;let v=p.getOptions(),y=u.getSelection();if(!y)return;let k=new gy(y,v.tabSize);u.pushUndoStop(),u.executeCommands(this.id,[k]),u.pushUndoStop(),p.updateOptions({insertSpaces:!1})}}class dp extends z{constructor(m,u,p){super(p);this.insertSpaces=m,this.displaySizeOnly=u}run(m,u){let p=m.get(cn),v=m.get(gt),y=u.getModel();if(!y)return;let k=v.getCreationOptions(y.getLanguageId(),y.uri,y.isForSimpleWidget),D=y.getOptions(),T=[1,2,3,4,5,6,7,8].map((K)=>({id:K.toString(),label:K.toString(),description:K===k.tabSize&&K===D.tabSize?e(1200,"Configured Tab Size"):K===k.tabSize?e(1201,"Default Tab Size"):K===D.tabSize?e(1202,"Current Tab Size"):void 0})),R=Math.min(y.getOptions().tabSize-1,7);setTimeout(()=>{p.pick(T,{placeHolder:e(1203,"Select Tab Size for Current File"),activeItem:T[R]}).then((K)=>{if(K){if(y&&!y.isDisposed()){let q=parseInt(K.label,10);if(this.displaySizeOnly)y.updateOptions({tabSize:q});else y.updateOptions({tabSize:q,indentSize:q,insertSpaces:this.insertSpaces})}}})},50)}}class db extends dp{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:db.ID,label:h(1208,"Indent Using Tabs"),precondition:void 0,metadata:{description:h(1209,"Use indentation with tabs.")}})}}class cb extends dp{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:cb.ID,label:h(1210,"Indent Using Spaces"),precondition:void 0,metadata:{description:h(1211,"Use indentation with spaces.")}})}}class lb extends dp{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:lb.ID,label:h(1212,"Change Tab Display Size"),precondition:void 0,metadata:{description:h(1213,"Change the space size equivalent of the tab.")}})}}class hb extends z{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:hb.ID,label:h(1214,"Detect Indentation from Content"),precondition:void 0,metadata:{description:h(1215,"Detect the indentation from content.")}})}run(m,u){let p=m.get(gt),v=u.getModel();if(!v)return;let y=p.getCreationOptions(v.getLanguageId(),v.uri,v.isForSimpleWidget);v.detectIndentation(y.insertSpaces,y.tabSize)}}class ZC extends z{constructor(){super({id:"editor.action.reindentlines",label:h(1216,"Reindent Lines"),precondition:o.writable,metadata:{description:h(1217,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(m,u){let p=m.get(et),v=u.getModel();if(!v)return;let y=rb(v,p,1,v.getLineCount());if(y.length>0)u.pushUndoStop(),u.executeEdits(this.id,y),u.pushUndoStop()}}class XC extends z{constructor(){super({id:"editor.action.reindentselectedlines",label:h(1218,"Reindent Selected Lines"),precondition:o.writable,metadata:{description:h(1219,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(m,u){let p=m.get(et),v=u.getModel();if(!v)return;let y=u.getSelections();if(y===null)return;let k=[];for(let D of y){let{startLineNumber:T,endLineNumber:R}=D;if(T!==R&&D.endColumn===1)R--;if(T===1){if(T===R)continue}else T--;let K=rb(v,p,T,R);k.push(...K)}if(k.length>0)u.pushUndoStop(),u.executeEdits(this.id,k),u.pushUndoStop()}}class YC{constructor(m,u){this._initialSelection=u,this._edits=[],this._selectionId=null;for(let p of m)if(p.range&&typeof p.text==="string")this._edits.push(p)}getEditOperations(m,u){for(let v of this._edits)u.addEditOperation(t.lift(v.range),v.text);let p=!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)p=!0,this._selectionId=u.trackSelection(this._initialSelection,!0);else if(this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber)p=!0,this._selectionId=u.trackSelection(this._initialSelection,!1)}if(!p)this._selectionId=u.trackSelection(this._initialSelection)}computeCursorState(m,u){return u.getTrackedSelection(this._selectionId)}}var ap=class m{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(u,p){this.editor=u,this._languageConfigurationService=p,this.callOnDispose=new c,this.callOnModel=new c,this.callOnDispose.add(u.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(u.onDidChangeModel(()=>this.update())),this.callOnDispose.add(u.onDidChangeModelLanguage(()=>this.update()))}update(){if(this.callOnModel.clear(),!this.editor.getOption(17)||this.editor.getOption(16)<4)return;if(!this.editor.hasModel())return;this.callOnModel.add(this.editor.onDidPaste(({range:u})=>{this.trigger(u)}))}trigger(u){let p=this.editor.getSelections();if(p===null||p.length>1)return;let v=this.editor.getModel();if(!v)return;if(this.rangeContainsOnlyWhitespaceCharacters(v,u))return;if(!this.editor.getOption(18)&&JD(v,u))return;if(!v.tokenization.isCheapToTokenize(u.getStartPosition().lineNumber))return;let k=this.editor.getOption(16),{tabSize:D,indentSize:T,insertSpaces:R}=v.getOptions(),K=[],q={shiftIndent:(re)=>Cr.shiftIndent(re,re.length+1,D,T,R),unshiftIndent:(re)=>Cr.unshiftIndent(re,re.length+1,D,T,R)},Q=u.startLineNumber,te=v.getLineContent(Q);if(!/\S/.test(te.substring(0,u.startColumn-1))){let re=df(k,v,v.getLanguageId(),Q,q,this._languageConfigurationService);if(re!==null){let ae=kt(te),ge=Ji(re,D),Se=Ji(ae,D);if(ge!==Se){let Oe=td(ge,D,R);K.push({range:new t(Q,1,Q,ae.length+1),text:Oe}),te=Oe+te.substring(ae.length)}else{let Oe=I0(v,Q,this._languageConfigurationService);if(Oe===0||Oe===8)return}}}let ne=Q;while(Q<u.endLineNumber){if(!/\S/.test(v.getLineContent(Q+1))){Q++;continue}break}if(Q!==u.endLineNumber){let ae=df(k,{tokenization:{getLineTokens:(ge)=>v.tokenization.getLineTokens(ge),getLanguageId:()=>v.getLanguageId(),getLanguageIdAtPosition:(ge,Se)=>v.getLanguageIdAtPosition(ge,Se)},getLineContent:(ge)=>{if(ge===ne)return te;else return v.getLineContent(ge)}},v.getLanguageId(),Q+1,q,this._languageConfigurationService);if(ae!==null){let ge=Ji(ae,D),Se=Ji(kt(v.getLineContent(Q+1)),D);if(ge!==Se){let Oe=ge-Se;for(let Ae=Q+1;Ae<=u.endLineNumber;Ae++){let We=v.getLineContent(Ae),Ue=kt(We),He=Ji(Ue,D)+Oe,Je=td(He,D,R);if(Je!==Ue)K.push({range:new t(Ae,1,Ae,Ue.length+1),text:Je})}}}}if(K.length>0){this.editor.pushUndoStop();let re=new YC(K,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",re),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(u,p){let v=(k)=>k.trim().length===0,y=!0;if(p.startLineNumber===p.endLineNumber){let D=u.getLineContent(p.startLineNumber).substring(p.startColumn-1,p.endColumn-1);y=v(D)}else for(let k=p.startLineNumber;k<=p.endLineNumber;k++){let D=u.getLineContent(k);if(k===p.startLineNumber){let T=D.substring(p.startColumn-1);y=v(T)}else if(k===p.endLineNumber){let T=D.substring(0,p.endColumn-1);y=v(T)}else y=u.getLineFirstNonWhitespaceColumn(k)===0;if(!y)break}return y}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};ap=XD([YD(1,et)],ap);function JD(m,u){let p=(v)=>lR(m,v)===2;return p(u.getStartPosition())||p(u.getEndPosition())}function JC(m,u,p,v){if(m.getLineCount()===1&&m.getLineMaxColumn(1)===1)return;let y="";for(let D=0;D<p;D++)y+=" ";let k=new RegExp(y,"gi");for(let D=1,T=m.getLineCount();D<=T;D++){let R=m.getLineFirstNonWhitespaceColumn(D);if(R===0)R=m.getLineMaxColumn(D);if(R===1)continue;let K=new t(D,1,D,R),q=m.getValueInRange(K),Q=v?q.replace(/\t/ig,y):q.replace(k,"\t");u.addEditOperation(K,Q)}}class QC{constructor(m,u){this.selection=m,this.tabSize=u,this.selectionId=null}getEditOperations(m,u){this.selectionId=u.trackSelection(this.selection),JC(m,u,this.tabSize,!0)}computeCursorState(m,u){return u.getTrackedSelection(this.selectionId)}}class gy{constructor(m,u){this.selection=m,this.tabSize=u,this.selectionId=null}getEditOperations(m,u){this.selectionId=u.trackSelection(this.selection),JC(m,u,this.tabSize,!1)}computeCursorState(m,u){return u.getTrackedSelection(this.selectionId)}}le(ap.ID,ap,2);I(sb);I(ab);I(db);I(cb);I(lb);I(hb);I(ZC);I(XC);class Py extends z{constructor(){super({id:"expandLineSelection",label:h(1309,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:o.textInputFocus,primary:2090}})}run(m,u,p){if(p=p||{},!u.hasModel())return;let v=u._getViewModel();v.model.pushStackElement(),v.setCursorStates(p.source,3,mi.expandLineSelection(v,v.getCursorStates())),v.revealAllCursors(p.source,!0)}}I(Py);class ub{constructor(m,u,p){this._selection=m,this._cursors=u,this._selectionId=null,this._trimInRegexesAndStrings=p}getEditOperations(m,u){let p=QD(m,this._cursors,this._trimInRegexesAndStrings);for(let v=0,y=p.length;v<y;v++){let k=p[v];u.addEditOperation(k.range,k.text)}this._selectionId=u.trackSelection(this._selection)}computeCursorState(m,u){return u.getTrackedSelection(this._selectionId)}}function QD(m,u,p){u.sort((T,R)=>{if(T.lineNumber===R.lineNumber)return T.column-R.column;return T.lineNumber-R.lineNumber});for(let T=u.length-2;T>=0;T--)if(u[T].lineNumber===u[T+1].lineNumber)u.splice(T,1);let v=[],y=0,k=0,D=u.length;for(let T=1,R=m.getLineCount();T<=R;T++){let K=m.getLineContent(T),q=K.length+1,Q=0;if(k<D&&u[k].lineNumber===T){if(Q=u[k].column,k++,Q===q)continue}if(K.length===0)continue;let te=Fo(K),ne=0;if(te===-1)ne=1;else if(te!==K.length-1)ne=te+2;else continue;if(!p){if(!m.tokenization.hasAccurateTokensForLine(T))continue;let re=m.tokenization.getLineTokens(T),ae=re.getStandardTokenType(re.findTokenIndexAtOffset(ne));if(ae===2||ae===3)continue}ne=Math.max(Q,ne),v[y++]=Mt.delete(new t(T,ne,T,q))}return v}class cp{constructor(m,u,p){this._selection=m,this._isCopyingDown=u,this._noop=p||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(m,u){let p=this._selection;if(this._startLineNumberDelta=0,this._endLineNumberDelta=0,p.startLineNumber<p.endLineNumber&&p.endColumn===1)this._endLineNumberDelta=1,p=p.setEndPosition(p.endLineNumber-1,m.getLineMaxColumn(p.endLineNumber-1));let v=[];for(let k=p.startLineNumber;k<=p.endLineNumber;k++)v.push(m.getLineContent(k));let y=v.join(`
8
- `);if(y===""){if(this._isCopyingDown)this._startLineNumberDelta++,this._endLineNumberDelta++}if(this._noop)u.addEditOperation(new t(p.endLineNumber,m.getLineMaxColumn(p.endLineNumber),p.endLineNumber+1,1),p.endLineNumber===m.getLineCount()?"":`
9
- `);else if(!this._isCopyingDown)u.addEditOperation(new t(p.endLineNumber,m.getLineMaxColumn(p.endLineNumber),p.endLineNumber,m.getLineMaxColumn(p.endLineNumber)),`
10
- `+y);else u.addEditOperation(new t(p.startLineNumber,1,p.startLineNumber,1),y+`
11
- `);this._selectionId=u.trackSelection(p),this._selectionDirection=this._selection.getDirection()}computeCursorState(m,u){let p=u.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let v=p.startLineNumber,y=p.startColumn,k=p.endLineNumber,D=p.endColumn;if(this._startLineNumberDelta!==0)v=v+this._startLineNumberDelta,y=1;if(this._endLineNumberDelta!==0)k=k+this._endLineNumberDelta,D=1;p=O.createWithDirection(v,y,k,D,this._selectionDirection)}return p}}var e2=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},t2=function(m,u){return function(p,v){u(p,v,m)}},lp=class m{constructor(u,p,v,y){this._languageConfigurationService=y,this._selection=u,this._isMovingDown=p,this._autoIndent=v,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(u,p,v){return{tokenization:{getLineTokens:(y)=>u.tokenization.getLineTokens(p(y)),getLanguageId:()=>u.getLanguageId(),getLanguageIdAtPosition:(y,k)=>u.getLanguageIdAtPosition(y,k)},getLineContent:(y)=>{let k=v?.(y);if(k!==void 0)return k;return u.getLineContent(p(y))}}}getEditOperations(u,p){let v=u.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===v){this._selectionId=p.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=p.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let y=this._selection;if(y.startLineNumber<y.endLineNumber&&y.endColumn===1)this._moveEndPositionDown=!0,y=y.setEndPosition(y.endLineNumber-1,u.getLineMaxColumn(y.endLineNumber-1));let{tabSize:k,indentSize:D,insertSpaces:T}=u.getOptions(),R=this.buildIndentConverter(k,D,T);if(y.startLineNumber===y.endLineNumber&&u.getLineMaxColumn(y.startLineNumber)===1){let K=y.startLineNumber,q=this._isMovingDown?K+1:K-1;if(u.getLineMaxColumn(q)===1)p.addEditOperation(new t(1,1,1,1),null);else p.addEditOperation(new t(K,1,K,1),u.getLineContent(q)),p.addEditOperation(new t(q,1,q,u.getLineMaxColumn(q)),null);y=new O(q,1,q,1)}else{let K,q;if(this._isMovingDown){K=y.endLineNumber+1,q=u.getLineContent(K),p.addEditOperation(new t(K-1,u.getLineMaxColumn(K-1),K,u.getLineMaxColumn(K)),null);let Q=q;if(this.shouldAutoIndent(u,y)){let te=this.matchEnterRule(u,R,k,K,y.startLineNumber-1);if(te!==null){let re=kt(u.getLineContent(K)),ae=te+Ji(re,k);Q=td(ae,k,T)+this.trimStart(q)}else{let re=this.createVirtualModel(u,(ge)=>ge===y.startLineNumber?K:ge),ae=df(this._autoIndent,re,u.getLanguageIdAtPosition(K,1),y.startLineNumber,R,this._languageConfigurationService);if(ae!==null){let ge=kt(u.getLineContent(K)),Se=Ji(ae,k),Oe=Ji(ge,k);if(Se!==Oe)Q=td(Se,k,T)+this.trimStart(q)}}p.addEditOperation(new t(y.startLineNumber,1,y.startLineNumber,1),Q+`
12
- `);let ne=this.matchEnterRuleMovingDown(u,R,k,y.startLineNumber,K,Q);if(ne!==null){if(ne!==0)this.getIndentEditsOfMovingBlock(u,p,y,k,T,ne)}else{let re=this.createVirtualModel(u,(ge)=>{if(ge===y.startLineNumber)return K;else if(ge>=y.startLineNumber+1&&ge<=y.endLineNumber+1)return ge-1;else return ge},(ge)=>ge===y.startLineNumber?Q:void 0),ae=df(this._autoIndent,re,u.getLanguageIdAtPosition(K,1),y.startLineNumber+1,R,this._languageConfigurationService);if(ae!==null){let ge=kt(u.getLineContent(y.startLineNumber)),Se=Ji(ae,k),Oe=Ji(ge,k);if(Se!==Oe){let Ae=Se-Oe;this.getIndentEditsOfMovingBlock(u,p,y,k,T,Ae)}}}}else p.addEditOperation(new t(y.startLineNumber,1,y.startLineNumber,1),Q+`
13
- `)}else if(K=y.startLineNumber-1,q=u.getLineContent(K),p.addEditOperation(new t(K,1,K+1,1),null),p.addEditOperation(new t(y.endLineNumber,u.getLineMaxColumn(y.endLineNumber),y.endLineNumber,u.getLineMaxColumn(y.endLineNumber)),`
14
- `+q),this.shouldAutoIndent(u,y)){let Q=this.createVirtualModel(u,(ne)=>ne===K?y.startLineNumber:ne),te=this.matchEnterRule(u,R,k,y.startLineNumber,y.startLineNumber-2);if(te!==null){if(te!==0)this.getIndentEditsOfMovingBlock(u,p,y,k,T,te)}else{let ne=df(this._autoIndent,Q,u.getLanguageIdAtPosition(y.startLineNumber,1),K,R,this._languageConfigurationService);if(ne!==null){let re=kt(u.getLineContent(y.startLineNumber)),ae=Ji(ne,k),ge=Ji(re,k);if(ae!==ge){let Se=ae-ge;this.getIndentEditsOfMovingBlock(u,p,y,k,T,Se)}}}}}this._selectionId=p.trackSelection(y)}buildIndentConverter(u,p,v){return{shiftIndent:(y)=>Cr.shiftIndent(y,y.length+1,u,p,v),unshiftIndent:(y)=>Cr.unshiftIndent(y,y.length+1,u,p,v)}}parseEnterResult(u,p,v,y,k){if(k){let D=k.indentation;if(k.indentAction===jn.None)D=k.indentation+k.appendText;else if(k.indentAction===jn.Indent)D=k.indentation+k.appendText;else if(k.indentAction===jn.IndentOutdent)D=k.indentation;else if(k.indentAction===jn.Outdent)D=p.unshiftIndent(k.indentation)+k.appendText;let T=u.getLineContent(y);if(this.trimStart(T).indexOf(this.trimStart(D))>=0){let R=kt(u.getLineContent(y)),K=kt(D),q=I0(u,y,this._languageConfigurationService);if(q!==null&&q&2)K=p.unshiftIndent(K);let Q=Ji(K,v),te=Ji(R,v);return Q-te}}return null}matchEnterRuleMovingDown(u,p,v,y,k,D){if(Fo(D)>=0){let T=u.getLineMaxColumn(k),R=cu(this._autoIndent,u,new t(k,T,k,T),this._languageConfigurationService);return this.parseEnterResult(u,p,v,y,R)}else{let T=y-1;while(T>=1){let q=u.getLineContent(T);if(Fo(q)>=0)break;T--}if(T<1||y>u.getLineCount())return null;let R=u.getLineMaxColumn(T),K=cu(this._autoIndent,u,new t(T,R,T,R),this._languageConfigurationService);return this.parseEnterResult(u,p,v,y,K)}}matchEnterRule(u,p,v,y,k,D){let T=k;while(T>=1){let q;if(T===k&&D!==void 0)q=D;else q=u.getLineContent(T);if(Fo(q)>=0)break;T--}if(T<1||y>u.getLineCount())return null;let R=u.getLineMaxColumn(T),K=cu(this._autoIndent,u,new t(T,R,T,R),this._languageConfigurationService);return this.parseEnterResult(u,p,v,y,K)}trimStart(u){return u.replace(/^\s+/,"")}shouldAutoIndent(u,p){if(this._autoIndent<4)return!1;if(!u.tokenization.isCheapToTokenize(p.startLineNumber))return!1;let v=u.getLanguageIdAtPosition(p.startLineNumber,1),y=u.getLanguageIdAtPosition(p.endLineNumber,1);if(v!==y)return!1;if(this._languageConfigurationService.getLanguageConfiguration(v).indentRulesSupport===null)return!1;return!0}getIndentEditsOfMovingBlock(u,p,v,y,k,D){for(let T=v.startLineNumber;T<=v.endLineNumber;T++){let R=u.getLineContent(T),K=kt(R),Q=Ji(K,y)+D,te=td(Q,y,k);if(te!==K){if(p.addEditOperation(new t(T,1,T,K.length+1),te),T===v.endLineNumber&&v.endColumn<=K.length+1&&te==="")this._moveEndLineSelectionShrink=!0}}}computeCursorState(u,p){let v=p.getTrackedSelection(this._selectionId);if(this._moveEndPositionDown)v=v.setEndPosition(v.endLineNumber+1,1);if(this._moveEndLineSelectionShrink&&v.startLineNumber<v.endLineNumber)v=v.setEndPosition(v.endLineNumber,2);return v}};lp=e2([t2(3,et)],lp);class $l{static{this._COLLATOR=hl.Collator()}constructor(m,u){this.selection=m,this.descending=u,this.selectionId=null}getEditOperations(m,u){let p=i2(m,this.selection,this.descending);if(p)u.addEditOperation(p.range,p.text);this.selectionId=u.trackSelection(this.selection)}computeCursorState(m,u){return u.getTrackedSelection(this.selectionId)}static canRun(m,u,p){if(m===null)return!1;let v=Hy(m,u,p);if(!v)return!1;for(let y=0,k=v.before.length;y<k;y++)if(v.before[y]!==v.after[y])return!0;return!1}}function Hy(m,u,p){let{startLineNumber:v,endLineNumber:y}=u;if(u.endColumn===1)y--;if(v>=y)return null;let k=[];for(let T=v;T<=y;T++)k.push(m.getLineContent(T));let D=k.slice(0);if(D.sort($l._COLLATOR.value.compare),p===!0)D=D.reverse();return{startLineNumber:v,endLineNumber:y,before:k,after:D}}function i2(m,u,p){let v=Hy(m,u,p);if(!v)return null;return Mt.replace(new t(v.startLineNumber,1,v.endLineNumber,m.getLineMaxColumn(v.endLineNumber)),v.after.join(`
15
- `))}class gb extends z{constructor(m,u){super(u);this.down=m}run(m,u){if(!u.hasModel())return;let p=u.getSelections().map((k,D)=>({selection:k,index:D,ignore:!1}));p.sort((k,D)=>t.compareRangesUsingStarts(k.selection,D.selection));let v=p[0];for(let k=1;k<p.length;k++){let D=p[k];if(v.selection.endLineNumber===D.selection.startLineNumber)if(v.index<D.index)D.ignore=!0;else v.ignore=!0,v=D}let y=[];for(let k of p)y.push(new cp(k.selection,this.down,k.ignore));u.pushUndoStop(),u.executeCommands(this.id,y),u.pushUndoStop()}}class Wy extends gb{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:h(1315,"Copy Line Up"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1310,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class By extends gb{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:h(1316,"Copy Line Down"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1311,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class Vy extends z{constructor(){super({id:"editor.action.duplicateSelection",label:h(1317,"Duplicate Selection"),precondition:o.writable,menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1312,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(m,u,p){if(!u.hasModel())return;let v=[],y=u.getSelections(),k=u.getModel();for(let D of y)if(D.isEmpty())v.push(new cp(D,!0));else{let T=new O(D.endLineNumber,D.endColumn,D.endLineNumber,D.endColumn);v.push(new Xk(T,k.getValueInRange(D)))}u.pushUndoStop(),u.executeCommands(this.id,v),u.pushUndoStop()}}class pb extends z{constructor(m,u){super(u);this.down=m}run(m,u){let p=m.get(et),v=[],y=u.getSelections()||[],k=u.getOption(16);for(let D of y)v.push(new lp(D,this.down,k,p));u.pushUndoStop(),u.executeCommands(this.id,v),u.pushUndoStop()}}class zy extends pb{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:h(1318,"Move Line Up"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1313,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class Ky extends pb{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:h(1319,"Move Line Down"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"2_line",title:e(1314,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class mb extends z{constructor(m,u){super(u);this.descending=m}run(m,u){if(!u.hasModel())return;let p=u.getModel(),v=u.getSelections();if(v.length===1&&v[0].isSingleLine())v=[new O(1,1,p.getLineCount(),p.getLineMaxColumn(p.getLineCount()))];for(let k of v)if(!$l.canRun(u.getModel(),k,this.descending))return;let y=[];for(let k=0,D=v.length;k<D;k++)y[k]=new $l(v[k],this.descending);u.pushUndoStop(),u.executeCommands(this.id,y),u.pushUndoStop()}}class Uy extends mb{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:h(1320,"Sort Lines Ascending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class qy extends mb{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:h(1321,"Sort Lines Descending"),precondition:o.writable,canTriggerInlineEdits:!0})}}class Gy extends z{constructor(){super({id:"editor.action.removeDuplicateLines",label:h(1322,"Delete Duplicate Lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(m,u){if(!u.hasModel())return;let p=u.getModel();if(p.getLineCount()===1&&p.getLineMaxColumn(1)===1)return;let v=[],y=[],k=0,D=!0,T=u.getSelections();if(T.length===1&&T[0].isSingleLine())T=[new O(1,1,p.getLineCount(),p.getLineMaxColumn(p.getLineCount()))],D=!1;for(let R of T){let K=new Set,q=[];for(let re=R.startLineNumber;re<=R.endLineNumber;re++){let ae=p.getLineContent(re);if(K.has(ae))continue;q.push(ae),K.add(ae)}let Q=new O(R.startLineNumber,1,R.endLineNumber,p.getLineMaxColumn(R.endLineNumber)),te=R.startLineNumber-k,ne=new O(te,1,te+q.length-1,q[q.length-1].length+1);v.push(Mt.replace(Q,q.join(`
16
- `))),y.push(ne),k+=R.endLineNumber-R.startLineNumber+1-q.length}u.pushUndoStop(),u.executeEdits(this.id,v,D?y:void 0),u.pushUndoStop()}}class Zy extends z{constructor(){super({id:"editor.action.reverseLines",label:h(1323,"Reverse lines"),precondition:o.writable,canTriggerInlineEdits:!0})}run(m,u){if(!u.hasModel())return;let p=u.getModel(),v=u.getSelections(),y=v;if(y.length===1&&y[0].isSingleLine())y=[new O(1,1,p.getLineCount(),p.getLineMaxColumn(p.getLineCount()))];let k=[],D=[];for(let T=0;T<y.length;T++){let R=y[T],K=v[T],q=R.endLineNumber;if(R.startLineNumber<R.endLineNumber&&R.endColumn===1)q--;let Q=new t(R.startLineNumber,1,q,p.getLineMaxColumn(q));if(q===p.getLineCount()&&p.getLineContent(Q.endLineNumber)==="")Q=Q.setEndPosition(Q.endLineNumber-1,p.getLineMaxColumn(Q.endLineNumber-1));let te=[];for(let ge=Q.endLineNumber;ge>=Q.startLineNumber;ge--)te.push(p.getLineContent(ge));let ne=Mt.replace(Q,te.join(`
17
- `));k.push(ne);let re=function(ge){return ge<=Q.endLineNumber?Q.endLineNumber-ge+Q.startLineNumber:ge},ae=function(ge){if(ge.isEmpty())return new O(re(ge.positionLineNumber),ge.positionColumn,re(ge.positionLineNumber),ge.positionColumn);else{let Se=re(ge.selectionStartLineNumber),Oe=re(ge.positionLineNumber),{selectionStartColumn:Ae,positionColumn:We}=ge;return new O(Se,Ae,Oe,We)}};D.push(ae(K))}u.pushUndoStop(),u.executeEdits(this.id,k,D),u.pushUndoStop()}}class fb extends z{static{this.ID="editor.action.trimTrailingWhitespace"}constructor(){super({id:fb.ID,label:h(1324,"Trim Trailing Whitespace"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2102),weight:100}})}run(m,u,p){let v=[];if(p.reason==="auto-save")v=(u.getSelections()||[]).map((K)=>new r(K.positionLineNumber,K.positionColumn));let y=u.getSelection();if(y===null)return;let k=m.get(X),D=u.getModel(),T=k.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:D?.getLanguageId(),resource:D?.uri}),R=new ub(y,v,T);u.pushUndoStop(),u.executeCommands(this.id,[R]),u.pushUndoStop()}}class Xy extends z{constructor(){super({id:"editor.action.deleteLines",label:h(1325,"Delete Line"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(m,u){if(!u.hasModel())return;let p=this._getLinesToRemove(u),v=u.getModel();if(v.getLineCount()===1&&v.getLineMaxColumn(1)===1)return;let y=0,k=[],D=[];for(let T=0,R=p.length;T<R;T++){let K=p[T],{startLineNumber:q,endLineNumber:Q}=K,te=1,ne=v.getLineMaxColumn(Q);if(Q<v.getLineCount())Q+=1,ne=1;else if(q>1)q-=1,te=v.getLineMaxColumn(q);k.push(Mt.replace(new O(q,te,Q,ne),"")),D.push(new O(q-y,K.positionColumn,q-y,K.positionColumn)),y+=K.endLineNumber-K.startLineNumber+1}u.pushUndoStop(),u.executeEdits(this.id,k,D),u.revealAllCursors(!0),u.pushUndoStop()}_getLinesToRemove(m){let u=m.getSelections().map((y)=>{let k=y.endLineNumber;if(y.startLineNumber<y.endLineNumber&&y.endColumn===1)k-=1;return{startLineNumber:y.startLineNumber,selectionStartColumn:y.selectionStartColumn,endLineNumber:k,positionColumn:y.positionColumn}});u.sort((y,k)=>{if(y.startLineNumber===k.startLineNumber)return y.endLineNumber-k.endLineNumber;return y.startLineNumber-k.startLineNumber});let p=[],v=u[0];for(let y=1;y<u.length;y++)if(v.endLineNumber+1>=u[y].startLineNumber)v.endLineNumber=u[y].endLineNumber;else p.push(v),v=u[y];return p.push(v),p}}class Yy extends z{constructor(){super({id:"editor.action.indentLines",label:h(1326,"Indent Line"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(m,u){let p=u._getViewModel();if(!p)return;u.pushUndoStop(),u.executeCommands(this.id,ml.indent(p.cursorConfig,u.getModel(),u.getSelections())),u.pushUndoStop()}}class Jy extends z{constructor(){super({id:"editor.action.outdentLines",label:h(1327,"Outdent Line"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(m,u){Ah.Outdent.runEditorCommand(m,u,null)}}class eh extends z{static{this.ID="editor.action.insertLineBefore"}constructor(){super({id:eh.ID,label:h(1328,"Insert Line Above"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(m,u){let p=u._getViewModel();if(!p)return;u.pushUndoStop(),u.executeCommands(this.id,Dh.lineInsertBefore(p.cursorConfig,u.getModel(),u.getSelections()))}}class th extends z{static{this.ID="editor.action.insertLineAfter"}constructor(){super({id:th.ID,label:h(1329,"Insert Line Below"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(m,u){let p=u._getViewModel();if(!p)return;u.pushUndoStop(),u.executeCommands(this.id,Dh.lineInsertAfter(p.cursorConfig,u.getModel(),u.getSelections()))}}class _b extends z{run(m,u){if(!u.hasModel())return;let p=u.getSelection(),v=this._getRangesToDelete(u),y=[];for(let T=0,R=v.length-1;T<R;T++){let K=v[T],q=v[T+1];if(t.intersectRanges(K,q)===null)y.push(K);else v[T+1]=t.plusRange(K,q)}y.push(v[v.length-1]);let k=this._getEndCursorState(p,y),D=y.map((T)=>Mt.replace(T,""));u.pushUndoStop(),u.executeEdits(this.id,D,k),u.pushUndoStop()}}class Qy extends _b{constructor(){super({id:"deleteAllLeft",label:h(1330,"Delete All Left"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(m,u){let p=null,v=[],y=0;if(u.forEach((k)=>{let D;if(k.endColumn===1&&y>0){let T=k.startLineNumber-y;D=new O(T,k.startColumn,T,k.startColumn)}else D=new O(k.startLineNumber,k.startColumn,k.startLineNumber,k.startColumn);if(y+=k.endLineNumber-k.startLineNumber,k.intersectRanges(m))p=D;else v.push(D)}),p)v.unshift(p);return v}_getRangesToDelete(m){let u=m.getSelections();if(u===null)return[];let p=u,v=m.getModel();if(v===null)return[];return p.sort(t.compareRangesUsingStarts),p=p.map((y)=>{if(y.isEmpty())if(y.startColumn===1){let k=Math.max(1,y.startLineNumber-1),D=y.startLineNumber===1?1:v.getLineLength(k)+1;return new t(k,D,y.startLineNumber,1)}else return new t(y.startLineNumber,1,y.startLineNumber,y.startColumn);else return new t(y.startLineNumber,1,y.endLineNumber,y.endColumn)}),p}}class ex extends _b{constructor(){super({id:"deleteAllRight",label:h(1331,"Delete All Right"),precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(m,u){let p=null,v=[];for(let y=0,k=u.length,D=0;y<k;y++){let T=u[y],R=new O(T.startLineNumber-D,T.startColumn,T.startLineNumber-D,T.startColumn);if(T.intersectRanges(m))p=R;else v.push(R)}if(p)v.unshift(p);return v}_getRangesToDelete(m){let u=m.getModel();if(u===null)return[];let p=m.getSelections();if(p===null)return[];let v=p.map((y)=>{if(y.isEmpty()){let k=u.getLineMaxColumn(y.startLineNumber);if(y.startColumn===k)return new t(y.startLineNumber,y.startColumn,y.startLineNumber+1,1);else return new t(y.startLineNumber,y.startColumn,y.startLineNumber,k)}return y});return v.sort(t.compareRangesUsingStarts),v}}class tx extends z{constructor(){super({id:"editor.action.joinLines",label:h(1332,"Join Lines"),precondition:o.writable,kbOpts:{kbExpr:o.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(m,u){let p=u.getSelections();if(p===null)return;let v=u.getSelection();if(v===null)return;p.sort(t.compareRangesUsingStarts);let y=[],k=p.reduce((Q,te)=>{if(Q.isEmpty()){if(Q.endLineNumber===te.startLineNumber){if(v.equalsSelection(Q))v=te;return te}if(te.startLineNumber>Q.endLineNumber+1)return y.push(Q),te;else return new O(Q.startLineNumber,Q.startColumn,te.endLineNumber,te.endColumn)}else if(te.startLineNumber>Q.endLineNumber)return y.push(Q),te;else return new O(Q.startLineNumber,Q.startColumn,te.endLineNumber,te.endColumn)});y.push(k);let D=u.getModel();if(D===null)return;let T=[],R=[],K=v,q=0;for(let Q=0,te=y.length;Q<te;Q++){let ne=y[Q],re=ne.startLineNumber,ae=1,ge=0,Se,Oe,Ae=D.getLineLength(ne.endLineNumber)-ne.endColumn;if(ne.isEmpty()||ne.startLineNumber===ne.endLineNumber){let Le=ne.getStartPosition();if(Le.lineNumber<D.getLineCount())Se=re+1,Oe=D.getLineMaxColumn(Se);else Se=Le.lineNumber,Oe=D.getLineMaxColumn(Le.lineNumber)}else Se=ne.endLineNumber,Oe=D.getLineMaxColumn(Se);let We=D.getLineContent(re);for(let Le=re+1;Le<=Se;Le++){let He=D.getLineContent(Le),Je=D.getLineFirstNonWhitespaceColumn(Le);if(Je>=1){let tt=!0;if(We==="")tt=!1;if(tt&&(We.charAt(We.length-1)===" "||We.charAt(We.length-1)==="\t"))tt=!1,We=We.replace(/[\s\uFEFF\xA0]+$/g," ");let ot=He.substr(Je-1);if(We+=(tt?" ":"")+ot,tt)ge=ot.length+1;else ge=ot.length}else ge=0}let Ue=new t(re,1,Se,Oe);if(!Ue.isEmpty()){let Le;if(ne.isEmpty())T.push(Mt.replace(Ue,We)),Le=new O(Ue.startLineNumber-q,We.length-ge+1,re-q,We.length-ge+1);else if(ne.startLineNumber===ne.endLineNumber)T.push(Mt.replace(Ue,We)),Le=new O(ne.startLineNumber-q,ne.startColumn,ne.endLineNumber-q,ne.endColumn);else T.push(Mt.replace(Ue,We)),Le=new O(ne.startLineNumber-q,ne.startColumn,ne.startLineNumber-q,We.length-Ae);if(t.intersectRanges(Ue,v)!==null)K=Le;else R.push(Le)}q+=Ue.endLineNumber-Ue.startLineNumber}R.unshift(K),u.pushUndoStop(),u.executeEdits(this.id,T,R),u.pushUndoStop()}}class ix extends z{constructor(){super({id:"editor.action.transpose",label:h(1333,"Transpose Characters around the Cursor"),precondition:o.writable,canTriggerInlineEdits:!0})}run(m,u){let p=u.getSelections();if(p===null)return;let v=u.getModel();if(v===null)return;let y=[];for(let k=0,D=p.length;k<D;k++){let T=p[k];if(!T.isEmpty())continue;let R=T.getStartPosition(),K=v.getLineMaxColumn(R.lineNumber);if(R.column>=K){if(R.lineNumber===v.getLineCount())continue;let q=new t(R.lineNumber,Math.max(1,R.column-1),R.lineNumber+1,1),Q=v.getValueInRange(q).split("").reverse().join("");y.push(new ii(new O(R.lineNumber,Math.max(1,R.column-1),R.lineNumber+1,1),Q))}else{let q=new t(R.lineNumber,Math.max(1,R.column-1),R.lineNumber,R.column+1),Q=v.getValueInRange(q).split("").reverse().join("");y.push(new cf(q,Q,new O(R.lineNumber,R.column+1,R.lineNumber,R.column+1)))}}u.pushUndoStop(),u.executeCommands(this.id,y),u.pushUndoStop()}}class qs extends z{run(m,u){let p=u.getSelections();if(p===null)return;let v=u.getModel();if(v===null)return;let y=u.getOption(148),k=[];for(let D of p)if(D.isEmpty()){let T=D.getStartPosition(),R=u.getConfiguredWordAtPosition(T);if(!R)continue;let K=new t(T.lineNumber,R.startColumn,T.lineNumber,R.endColumn),q=v.getValueInRange(K);k.push(Mt.replace(K,this._modifyText(q,y)))}else{let T=v.getValueInRange(D);k.push(Mt.replace(D,this._modifyText(T,y)))}u.pushUndoStop(),u.executeEdits(this.id,k),u.pushUndoStop()}}class ox extends qs{constructor(){super({id:"editor.action.transformToUppercase",label:h(1334,"Transform to Uppercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){return m.toLocaleUpperCase()}}class nx extends qs{constructor(){super({id:"editor.action.transformToLowercase",label:h(1335,"Transform to Lowercase"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){return m.toLocaleLowerCase()}}class Xo{constructor(m,u){this._pattern=m,this._flags=u,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(m){}}return this._actual}isSupported(){return this.get()!==null}}class hp extends qs{static{this.titleBoundary=new Xo("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:h(1336,"Transform to Title Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){let p=hp.titleBoundary.get();if(!p)return m;return m.toLocaleLowerCase().replace(p,(v)=>v.toLocaleUpperCase())}}class zd extends qs{static{this.caseBoundary=new Xo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Xo("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:h(1337,"Transform to Snake Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){let p=zd.caseBoundary.get(),v=zd.singleLetters.get();if(!p||!v)return m;return m.replace(p,"$1_$2").replace(v,"$1_$2$3").toLocaleLowerCase()}}class id extends qs{static{this.singleLineWordBoundary=new Xo("[_\\s-]+","gm")}static{this.multiLineWordBoundary=new Xo("[_-]+","gm")}static{this.validWordStart=new Xo("^(\\p{Lu}[^\\p{Lu}])","gmu")}constructor(){super({id:"editor.action.transformToCamelcase",label:h(1338,"Transform to Camel Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){let p=/\r\n|\r|\n/.test(m)?id.multiLineWordBoundary.get():id.singleLineWordBoundary.get(),v=id.validWordStart.get();if(!p||!v)return m;let y=m.split(p);return y.shift()?.replace(v,(D)=>D.toLocaleLowerCase())+y.map((D)=>D.substring(0,1).toLocaleUpperCase()+D.substring(1)).join("")}}class jd extends qs{static{this.wordBoundary=new Xo("[_ \\t-]","gm")}static{this.wordBoundaryToMaintain=new Xo("(?<=\\.)","gm")}static{this.upperCaseWordMatcher=new Xo("^\\p{Lu}+$","mu")}constructor(){super({id:"editor.action.transformToPascalcase",label:h(1339,"Transform to Pascal Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){let p=jd.wordBoundary.get(),v=jd.wordBoundaryToMaintain.get(),y=jd.upperCaseWordMatcher.get();if(!p||!v||!y)return m;return m.split(v).map((T)=>T.split(p)).flat().map((T)=>{let R=T.charAt(0).toLocaleUpperCase()+T.slice(1);if(R.length>1&&y.test(R))return R.charAt(0)+R.slice(1).toLocaleLowerCase();return R}).join("")}}class $d extends qs{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((u)=>u.isSupported())}static{this.caseBoundary=new Xo("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new Xo("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new Xo("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:h(1340,"Transform to Kebab Case"),precondition:o.writable,canTriggerInlineEdits:!0})}_modifyText(m,u){let p=$d.caseBoundary.get(),v=$d.singleLetters.get(),y=$d.underscoreBoundary.get();if(!p||!v||!y)return m;return m.replace(y,"$1-$3").replace(p,"$1-$2").replace(v,"$1-$2").toLocaleLowerCase()}}I(Wy);I(By);I(Vy);I(zy);I(Ky);I(Uy);I(qy);I(Gy);I(fb);I(Xy);I(Yy);I(Jy);I(eh);I(th);I(Qy);I(ex);I(tx);I(ix);I(ox);I(nx);I(Zy);if(zd.caseBoundary.isSupported()&&zd.singleLetters.isSupported())I(zd);if(id.singleLineWordBoundary.isSupported()&&id.multiLineWordBoundary.isSupported())I(id);if(jd.wordBoundary.isSupported())I(jd);if(hp.titleBoundary.isSupported())I(hp);if($d.isSupported())I($d);class Ao{constructor(m){this._editor=m,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 m=this._findScopeDecorationIds.map((u)=>this._editor.getModel().getDecorationRange(u)).filter((u)=>!!u);if(m.length)return m}return null}getStartPosition(){return this._startPosition}setStartPosition(m){this._startPosition=m,this.setCurrentFindMatch(null)}_getDecorationIndex(m){let u=this._decorations.indexOf(m);if(u>=0)return u+1;return 1}getDecorationRangeAt(m){let u=m<this._decorations.length?this._decorations[m]:null;if(u)return this._editor.getModel().getDecorationRange(u);return null}getCurrentMatchesPosition(m){let u=this._editor.getModel().getDecorationsInRange(m);for(let p of u){let v=p.options;if(v===Ao._FIND_MATCH_DECORATION||v===Ao._FIND_MATCH_NO_OVERVIEW_DECORATION||v===Ao._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(p.id)}return 0}setCurrentFindMatch(m){let u=null,p=0;if(m)for(let v=0,y=this._decorations.length;v<y;v++){let k=this._editor.getModel().getDecorationRange(this._decorations[v]);if(m.equalsRange(k)){u=this._decorations[v],p=v+1;break}}if(this._highlightedDecorationId!==null||u!==null)this._editor.changeDecorations((v)=>{if(this._highlightedDecorationId!==null)v.changeDecorationOptions(this._highlightedDecorationId,Ao._FIND_MATCH_DECORATION),this._highlightedDecorationId=null;if(u!==null)this._highlightedDecorationId=u,v.changeDecorationOptions(this._highlightedDecorationId,Ao._CURRENT_FIND_MATCH_DECORATION);if(this._rangeHighlightDecorationId!==null)v.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(u!==null){let y=this._editor.getModel().getDecorationRange(u);if(y.startLineNumber!==y.endLineNumber&&y.endColumn===1){let k=y.endLineNumber-1,D=this._editor.getModel().getLineMaxColumn(k);y=new t(y.startLineNumber,y.startColumn,k,D)}this._rangeHighlightDecorationId=v.addDecoration(y,Ao._RANGE_HIGHLIGHT_DECORATION)}});return p}set(m,u){this._editor.changeDecorations((p)=>{let v=Ao._FIND_MATCH_DECORATION,y=[];if(m.length>1000){v=Ao._FIND_MATCH_NO_OVERVIEW_DECORATION;let D=this._editor.getModel().getLineCount(),R=this._editor.getLayoutInfo().height/D,K=Math.max(2,Math.ceil(3/R)),q=m[0].range.startLineNumber,Q=m[0].range.endLineNumber;for(let te=1,ne=m.length;te<ne;te++){let re=m[te].range;if(Q+K>=re.startLineNumber){if(re.endLineNumber>Q)Q=re.endLineNumber}else y.push({range:new t(q,1,Q,1),options:Ao._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),q=re.startLineNumber,Q=re.endLineNumber}y.push({range:new t(q,1,Q,1),options:Ao._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let k=Array(m.length);for(let D=0,T=m.length;D<T;D++)k[D]={range:m[D].range,options:v};if(this._decorations=p.deltaDecorations(this._decorations,k),this._overviewRulerApproximateDecorations=p.deltaDecorations(this._overviewRulerApproximateDecorations,y),this._rangeHighlightDecorationId)p.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null;if(this._findScopeDecorationIds.length)this._findScopeDecorationIds.forEach((D)=>p.removeDecoration(D)),this._findScopeDecorationIds=[];if(u?.length)this._findScopeDecorationIds=u.map((D)=>p.addDecoration(D,Ao._FIND_SCOPE_DECORATION))})}matchBeforePosition(m){if(this._decorations.length===0)return null;for(let u=this._decorations.length-1;u>=0;u--){let p=this._decorations[u],v=this._editor.getModel().getDecorationRange(p);if(!v||v.endLineNumber>m.lineNumber)continue;if(v.endLineNumber<m.lineNumber)return v;if(v.endColumn>m.column)continue;return v}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(m){if(this._decorations.length===0)return null;for(let u=0,p=this._decorations.length;u<p;u++){let v=this._decorations[u],y=this._editor.getModel().getDecorationRange(v);if(!y||y.startLineNumber<m.lineNumber)continue;if(y.startLineNumber>m.lineNumber)return y;if(y.startColumn<m.column)continue;return y}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let m=[];if(m=m.concat(this._decorations),m=m.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length)m.push(...this._findScopeDecorationIds);if(this._rangeHighlightDecorationId)m.push(this._rangeHighlightDecorationId);return m}static{this._CURRENT_FIND_MATCH_DECORATION=oe.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:en(k0),position:ko.Center},minimap:{color:en(dy),position:1}})}static{this._FIND_MATCH_DECORATION=oe.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:en(k0),position:ko.Center},minimap:{color:en(dy),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=oe.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=oe.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:en(k0),position:ko.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=oe.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=oe.register({description:"find-scope",className:"findScope",isWholeLine:!0})}}class bb{constructor(m,u,p){this._editorSelection=m,this._ranges=u,this._replaceStrings=p,this._trackedEditorSelectionId=null}getEditOperations(m,u){if(this._ranges.length>0){let p=[];for(let k=0;k<this._ranges.length;k++)p.push({range:this._ranges[k],text:this._replaceStrings[k]});p.sort((k,D)=>t.compareRangesUsingStarts(k.range,D.range));let v=[],y=p[0];for(let k=1;k<p.length;k++)if(y.range.endLineNumber===p[k].range.startLineNumber&&y.range.endColumn===p[k].range.startColumn)y.range=y.range.plusRange(p[k].range),y.text=y.text+p[k].text;else v.push(y),y=p[k];v.push(y);for(let k of v)u.addEditOperation(k.range,k.text)}this._trackedEditorSelectionId=u.trackSelection(this._editorSelection)}computeCursorState(m,u){return u.getTrackedSelection(this._trackedEditorSelectionId)}}function vb(m,u){if(m&&m[0]!==""){let p=rx(m,u,"-"),v=rx(m,u,"_");if(p&&!v)return sx(m,u,"-");else if(!p&&v)return sx(m,u,"_");if(m[0].toUpperCase()===m[0])return u.toUpperCase();else if(m[0].toLowerCase()===m[0])return u.toLowerCase();else if(qI(m[0][0])&&u.length>0)return u[0].toUpperCase()+u.substr(1);else if(m[0][0].toUpperCase()!==m[0][0]&&u.length>0)return u[0].toLowerCase()+u.substr(1);else return u}else return u}function rx(m,u,p){return m[0].indexOf(p)!==-1&&u.indexOf(p)!==-1&&m[0].split(p).length===u.split(p).length}function sx(m,u,p){let v=u.split(p),y=m[0].split(p),k="";return v.forEach((D,T)=>{k+=vb([y[T]],D)+p}),k.slice(0,-1)}class wb{constructor(m){this.staticValue=m,this.kind=0}}class ax{constructor(m){this.pieces=m,this.kind=1}}class nd{static fromStaticValue(m){return new nd([od.staticValue(m)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(m){if(!m||m.length===0)this._state=new wb("");else if(m.length===1&&m[0].staticValue!==null)this._state=new wb(m[0].staticValue);else this._state=new ax(m)}buildReplaceString(m,u){if(this._state.kind===0)if(u)return vb(m,this._state.staticValue);else return this._state.staticValue;let p="";for(let v=0,y=this._state.pieces.length;v<y;v++){let k=this._state.pieces[v];if(k.staticValue!==null){p+=k.staticValue;continue}let D=nd._substitute(k.matchIndex,m);if(k.caseOps!==null&&k.caseOps.length>0){let T=[],R=k.caseOps.length,K=0;for(let q=0,Q=D.length;q<Q;q++){if(K>=R){T.push(D.slice(q));break}switch(k.caseOps[K]){case"U":T.push(D[q].toUpperCase());break;case"u":T.push(D[q].toUpperCase()),K++;break;case"L":T.push(D[q].toLowerCase());break;case"l":T.push(D[q].toLowerCase()),K++;break;default:T.push(D[q])}}D=T.join("")}p+=D}return p}static _substitute(m,u){if(u===null)return"";if(m===0)return u[0];let p="";while(m>0){if(m<u.length)return(u[m]||"")+p;p=String(m%10)+p,m=Math.floor(m/10)}return"$"+p}}class od{static staticValue(m){return new od(m,-1,null)}static caseOps(m,u){return new od(null,m,u)}constructor(m,u,p){if(this.staticValue=m,this.matchIndex=u,!p||p.length===0)this.caseOps=null;else this.caseOps=p.slice(0)}}class dx{constructor(m){this._source=m,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(m){this._emitStatic(this._source.substring(this._lastCharIndex,m)),this._lastCharIndex=m}emitStatic(m,u){this._emitStatic(m),this._lastCharIndex=u}_emitStatic(m){if(m.length===0)return;this._currentStaticPiece+=m}emitMatchIndex(m,u,p){if(this._currentStaticPiece.length!==0)this._result[this._resultLen++]=od.staticValue(this._currentStaticPiece),this._currentStaticPiece="";this._result[this._resultLen++]=od.caseOps(m,p),this._lastCharIndex=u}finalize(){if(this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0)this._result[this._resultLen++]=od.staticValue(this._currentStaticPiece),this._currentStaticPiece="";return new nd(this._result)}}function cx(m){if(!m||m.length===0)return new nd(null);let u=[],p=new dx(m);for(let v=0,y=m.length;v<y;v++){let k=m.charCodeAt(v);if(k===92){if(v++,v>=y)break;let D=m.charCodeAt(v);switch(D){case 92:p.emitUnchanged(v-1),p.emitStatic("\\",v+1);break;case 110:p.emitUnchanged(v-1),p.emitStatic(`
18
- `,v+1);break;case 116:p.emitUnchanged(v-1),p.emitStatic("\t",v+1);break;case 117:case 85:case 108:case 76:p.emitUnchanged(v-1),p.emitStatic("",v+1),u.push(String.fromCharCode(D));break}continue}if(k===36){if(v++,v>=y)break;let D=m.charCodeAt(v);if(D===36){p.emitUnchanged(v-1),p.emitStatic("$",v+1);continue}if(D===48||D===38){p.emitUnchanged(v-1),p.emitMatchIndex(0,v+1,u),u.length=0;continue}if(49<=D&&D<=57){let T=D-48;if(v+1<y){let R=m.charCodeAt(v+1);if(48<=R&&R<=57){v++,T=T*10+(R-48),p.emitUnchanged(v-2),p.emitMatchIndex(T,v+1,u),u.length=0;continue}}p.emitUnchanged(v-1),p.emitMatchIndex(T,v+1,u),u.length=0;continue}}}return p.finalize()}var Kr=new A("findWidgetVisible",!1);Kr.toNegated();var dc=new A("findInputFocussed",!1),ih=new A("replaceInputFocussed",!1),lx=new A("findWidgetFocused",!1),oh={primary:545,mac:{primary:2593}},nh={primary:565,mac:{primary:2613}},rh={primary:560,mac:{primary:2608}},sh={primary:554,mac:{primary:2602}},ah={primary:558,mac:{primary:2606}},zt={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"},Rr=19999,o2=240;class ac{constructor(m,u){this._toDispose=new c,this._editor=m,this._state=u,this._isDisposed=!1,this._startSearchingTimer=new Vn,this._decorations=new Ao(m),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new be(()=>{if(!this._editor.hasModel())return;return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((p)=>{if(p.reason===3||p.reason===5||p.reason===6)this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((p)=>{if(this._ignoreModelContentChanged)return;if(p.isFlush)this._decorations.reset();this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule()})),this._toDispose.add(this._state.onFindReplaceStateChange((p)=>this._onStateChanged(p))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,$e(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(m){if(this._isDisposed)return;if(!this._editor.hasModel())return;if(m.searchString||m.isReplaceRevealed||m.isRegex||m.wholeWord||m.matchCase||m.searchScope)if(this._editor.getModel().isTooLargeForSyncing())this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{if(m.searchScope)this.research(m.moveCursor,this._state.searchScope);else this.research(m.moveCursor)},o2);else if(m.searchScope)this.research(m.moveCursor,this._state.searchScope);else this.research(m.moveCursor)}static _getSearchRange(m,u){if(u)return u;return m.getFullModelRange()}research(m,u){let p=null;if(typeof u<"u"){if(u!==null)if(!Array.isArray(u))p=[u];else p=u}else p=this._decorations.getFindScopes();if(p!==null)p=p.map((D)=>{if(D.startLineNumber!==D.endLineNumber){let T=D.endLineNumber;if(D.endColumn===1)T=T-1;return new t(D.startLineNumber,1,T,this._editor.getModel().getLineMaxColumn(T))}return D});let v=this._findMatches(p,!1,Rr);this._decorations.set(v,p);let y=this._editor.getSelection(),k=this._decorations.getCurrentMatchesPosition(y);if(k===0&&v.length>0){let D=_h(v.map((T)=>T.range),(T)=>t.compareRangesUsingStarts(T,y)>=0);k=D>0?D-1+1:k}if(this._state.changeMatchInfo(k,this._decorations.getCount(),void 0),m&&this._editor.getOption(50).cursorMoveOnType)this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let m=this._decorations.getFindScope();if(m)this._editor.revealRangeInCenterIfOutsideViewport(m,0);return!0}return!1}_setCurrentFindMatch(m){let u=this._decorations.setCurrentFindMatch(m);this._state.changeMatchInfo(u,this._decorations.getCount(),m),this._editor.setSelection(m),this._editor.revealRangeInCenterIfOutsideViewport(m,0)}_prevSearchPosition(m){let u=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:p,column:v}=m,y=this._editor.getModel();if(u||v===1){if(p===1)p=y.getLineCount();else p--;v=y.getLineMaxColumn(p)}else v--;return new r(p,v)}_moveToPrevMatch(m,u=!1){if(!this._state.canNavigateBack()){let K=this._decorations.matchAfterPosition(m);if(K)this._setCurrentFindMatch(K);return}if(this._decorations.getCount()<Rr){let K=this._decorations.matchBeforePosition(m);if(K&&K.isEmpty()&&K.getStartPosition().equals(m))m=this._prevSearchPosition(m),K=this._decorations.matchBeforePosition(m);if(K)this._setCurrentFindMatch(K);return}if(this._cannotFind())return;let p=this._decorations.getFindScope(),v=ac._getSearchRange(this._editor.getModel(),p);if(v.getEndPosition().isBefore(m))m=v.getEndPosition();if(m.isBefore(v.getStartPosition()))m=v.getEndPosition();let{lineNumber:y,column:k}=m,D=this._editor.getModel(),T=new r(y,k),R=D.findPreviousMatch(this._state.searchString,T,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(R&&R.range.isEmpty()&&R.range.getStartPosition().equals(T))T=this._prevSearchPosition(T),R=D.findPreviousMatch(this._state.searchString,T,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(!R)return;if(!u&&!v.containsRange(R.range))return this._moveToPrevMatch(R.range.getStartPosition(),!0);this._setCurrentFindMatch(R.range)}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(m){let u=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),{lineNumber:p,column:v}=m,y=this._editor.getModel();if(u||v===y.getLineMaxColumn(p)){if(p===y.getLineCount())p=1;else p++;v=1}else v++;return new r(p,v)}_moveToNextMatch(m){if(!this._state.canNavigateForward()){let p=this._decorations.matchBeforePosition(m);if(p)this._setCurrentFindMatch(p);return}if(this._decorations.getCount()<Rr){let p=this._decorations.matchAfterPosition(m);if(p&&p.isEmpty()&&p.getStartPosition().equals(m))m=this._nextSearchPosition(m),p=this._decorations.matchAfterPosition(m);if(p)this._setCurrentFindMatch(p);return}let u=this._getNextMatch(m,!1,!0);if(u)this._setCurrentFindMatch(u.range)}_getNextMatch(m,u,p,v=!1){if(this._cannotFind())return null;let y=this._decorations.getFindScope(),k=ac._getSearchRange(this._editor.getModel(),y);if(k.getEndPosition().isBefore(m))m=k.getStartPosition();if(m.isBefore(k.getStartPosition()))m=k.getStartPosition();let{lineNumber:D,column:T}=m,R=this._editor.getModel(),K=new r(D,T),q=R.findNextMatch(this._state.searchString,K,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,u);if(p&&q&&q.range.isEmpty()&&q.range.getStartPosition().equals(K))K=this._nextSearchPosition(K),q=R.findNextMatch(this._state.searchString,K,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,u);if(!q)return null;if(!v&&!k.containsRange(q.range))return this._getNextMatch(q.range.getEndPosition(),u,p,!0);return q}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(m){let u=this._decorations.getDecorationRangeAt(m);if(u)this._setCurrentFindMatch(u)}moveToMatch(m){this._moveToMatch(m)}_getReplacePattern(){if(this._state.isRegex)return cx(this._state.replaceString);return nd.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let m=this._getReplacePattern(),u=this._editor.getSelection(),p=this._getNextMatch(u.getStartPosition(),!0,!1);if(p)if(u.equalsRange(p.range)){let v=m.buildReplaceString(p.matches,this._state.preserveCase),y=new ii(u,v);this._executeEditorCommand("replace",y),this._decorations.setStartPosition(new r(u.startLineNumber,u.startColumn+v.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(p.range)}_findMatches(m,u,p){let v=(m||[null]).map((y)=>ac._getSearchRange(this._editor.getModel(),y));return this._editor.getModel().findMatches(this._state.searchString,v,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,u,p)}replaceAll(){if(!this._hasMatches())return;let m=this._decorations.getFindScopes();if(m===null&&this._state.matchesCount>=Rr)this._largeReplaceAll();else this._regularReplaceAll(m);this.research(!1)}_largeReplaceAll(){let u=new Bc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!u)return;let p=u.regex;if(!p.multiline){let q="mu";if(p.ignoreCase)q+="i";if(p.global)q+="g";p=new RegExp(p.source,q)}let v=this._editor.getModel(),y=v.getValue(1),k=v.getFullModelRange(),D=this._getReplacePattern(),T,R=this._state.preserveCase;if(D.hasReplacementPatterns||R)T=y.replace(p,function(){return D.buildReplaceString(arguments,R)});else T=y.replace(p,D.buildReplaceString(null,R));let K=new cf(k,T,this._editor.getSelection());this._executeEditorCommand("replaceAll",K)}_regularReplaceAll(m){let u=this._getReplacePattern(),p=this._findMatches(m,u.hasReplacementPatterns||this._state.preserveCase,1073741824),v=[];for(let k=0,D=p.length;k<D;k++)v[k]=u.buildReplaceString(p[k].matches,this._state.preserveCase);let y=new bb(this._editor.getSelection(),p.map((k)=>k.range),v);this._executeEditorCommand("replaceAll",y)}selectAllMatches(){if(!this._hasMatches())return;let m=this._decorations.getFindScopes(),p=this._findMatches(m,!1,1073741824).map((y)=>new O(y.range.startLineNumber,y.range.startColumn,y.range.endLineNumber,y.range.endColumn)),v=this._editor.getSelection();for(let y=0,k=p.length;y<k;y++)if(p[y].equalsRange(v)){p=[v].concat(p.slice(0,y)).concat(p.slice(y+1));break}this._editor.setSelections(p)}_executeEditorCommand(m,u){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(m,u),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var n2=e(5,"input"),r2=e(6,"Preserve Case");class hx extends _l{constructor(m){super({icon:b.preserveCase,title:r2+m.appendTitle,isChecked:m.isChecked,hoverLifecycleOptions:m.hoverLifecycleOptions,inputActiveOptionBorder:m.inputActiveOptionBorder,inputActiveOptionForeground:m.inputActiveOptionForeground,inputActiveOptionBackground:m.inputActiveOptionBackground})}}class Sb extends ni{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(m,u,p,v){super();this._showOptionButtons=p,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new i),this._onKeyDown=this._register(new i),this._onMouseDown=this._register(new i),this._onInput=this._register(new i),this._onKeyUp=this._register(new i),this._onPreserveCaseKeyDown=this._register(new i),this.contextViewProvider=u,this.placeholder=v.placeholder||"",this.validation=v.validation,this.label=v.label||n2;let y=v.appendPreserveCaseLabel||"",k=v.history||new Set([]),D=!!v.flexibleHeight,T=!!v.flexibleWidth,R=v.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new Ay(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:k,showHistoryHint:v.showHistoryHint,flexibleHeight:D,flexibleWidth:T,flexibleMaxHeight:R,inputBoxStyles:v.inputBoxStyles})),this.preserveCase=this._register(new hx({appendTitle:y,isChecked:!1,hoverLifecycleOptions:v.hoverLifecycleOptions,...v.toggleStyles})),this._register(this.preserveCase.onChange((Q)=>{if(this._onDidOptionChange.fire(Q),!Q&&this.fixFocusOnOptionClickEnabled)this.inputBox.focus();this.validate()})),this._register(this.preserveCase.onKeyDown((Q)=>{this._onPreserveCaseKeyDown.fire(Q)})),this._showOptionButtons)this.cachedOptionsWidth=this.preserveCase.width();else this.cachedOptionsWidth=0;let K=[this.preserveCase.domNode];this.onkeydown(this.domNode,(Q)=>{q0(Q,this.domNode,()=>K,()=>this.inputBox.focus())});let q=document.createElement("div");q.className="controls",q.style.display=this._showOptionButtons?"block":"none",q.appendChild(this.preserveCase.domNode),this.domNode.appendChild(q),m?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(Q)=>this._onKeyDown.fire(Q)),this.onkeyup(this.inputBox.inputElement,(Q)=>this._onKeyUp.fire(Q)),this.oninput(this.inputBox.inputElement,(Q)=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,(Q)=>this._onMouseDown.fire(Q))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(m){if(m)this.enable();else this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(m){this.preserveCase.checked=m}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(m){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=m+"px"}}var ux=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},gx=function(m,u){return function(p,v){u(p,v,m)}},mp=new A("suggestWidgetVisible",!1,e(1793,"Whether suggestion are visible")),Cb="historyNavigationWidgetFocus",px="historyNavigationForwardsEnabled",mx="historyNavigationBackwardsEnabled",ch=void 0,up=[];function fx(m,u){if(up.includes(u))throw Error("Cannot register the same widget multiple times");up.push(u);let p=new c,v=new A(Cb,!1).bindTo(m),y=new A(px,!0).bindTo(m),k=new A(mx,!0).bindTo(m),D=()=>{v.set(!0),ch=u},T=()=>{if(v.set(!1),ch===u)ch=void 0};if(os(u.element))D();return p.add(u.onDidFocus(()=>D())),p.add(u.onDidBlur(()=>T())),p.add(E(()=>{up.splice(up.indexOf(u),1),T()})),{historyNavigationForwardsEnablement:y,historyNavigationBackwardsEnablement:k,dispose(){p.dispose()}}}var gp=class m extends Ny{constructor(u,p,v,y){super(u,p,v);let k=this._register(y.createScoped(this.inputBox.element));this._register(fx(k,this.inputBox))}};gp=ux([gx(3,V)],gp);var pp=class m extends Sb{constructor(u,p,v,y,k=!1){super(u,p,k,v);let D=this._register(y.createScoped(this.inputBox.element));this._register(fx(D,this.inputBox))}};pp=ux([gx(3,V)],pp);gn.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:_.and(_.has(Cb),_.equals(mx,!0),mp.isEqualTo(!1)),primary:16,secondary:[528],handler:(m)=>{ch?.showPreviousValue()}});gn.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:_.and(_.has(Cb),_.equals(px,!0),mp.isEqualTo(!1)),primary:18,secondary:[530],handler:(m)=>{ch?.showNextValue()}});function yb(m){return m.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&m.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}var _x=Lt("find-collapsed",b.chevronRight,e(1011,"Icon to indicate that the editor find widget is collapsed.")),bx=Lt("find-expanded",b.chevronDown,e(1012,"Icon to indicate that the editor find widget is expanded.")),s2=Lt("find-selection",b.selection,e(1013,"Icon for 'Find in Selection' in the editor find widget.")),a2=Lt("find-replace",b.replace,e(1014,"Icon for 'Replace' in the editor find widget.")),d2=Lt("find-replace-all",b.replaceAll,e(1015,"Icon for 'Replace All' in the editor find widget.")),c2=Lt("find-previous-match",b.arrowUp,e(1016,"Icon for 'Find Previous' in the editor find widget.")),l2=Lt("find-next-match",b.arrowDown,e(1017,"Icon for 'Find Next' in the editor find widget.")),h2=e(1018,"Find / Replace"),xb=e(1019,"Find"),u2=e(1020,"Find"),g2=e(1021,"Previous Match"),p2=e(1022,"Next Match"),m2=e(1023,"Find in Selection"),f2=e(1024,"Close"),Ib=e(1025,"Replace"),_2=e(1026,"Replace"),b2=e(1027,"Replace"),v2=e(1028,"Replace All"),w2=e(1029,"Toggle Replace"),S2=e(1030,"Only the first {0} results are highlighted, but all find operations work on the entire text.",Rr),C2=e(1031,"{0} of {1}"),_p=e(1032,"No results"),Ur=419,y2=275,x2=y2-54,lh=69,I2=33,vx=ue?256:2048;class fp{constructor(m){this.afterLineNumber=m,this.heightInPx=I2,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function wx(m,u,p){let v=!!u.match(/\n/);if(p&&v&&p.selectionStart>0){m.stopPropagation();return}}function Sx(m,u,p){let v=!!u.match(/\n/);if(p&&v&&p.selectionEnd<p.value.length){m.stopPropagation();return}}class ql extends ni{static{this.ID="editor.contrib.findWidget"}constructor(m,u,p,v,y,k,D,T,R,K,q){super();if(this._hoverService=D,this._findWidgetSearchHistory=T,this._replaceWidgetHistory=R,this._configurationService=K,this._accessibilityService=q,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=m,this._controller=u,this._state=p,this._contextViewProvider=v,this._keybindingService=y,this._contextKeyService=k,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new Ci(500),this._register(E(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange((Q)=>this._onStateChanged(Q))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((Q)=>{if(Q.hasChanged(104)){if(this._codeEditor.getOption(104))this._state.change({isReplaceRevealed:!1},!1);this._updateButtons()}if(Q.hasChanged(166))this._tryUpdateWidgetWidth();if(Q.hasChanged(2))this.updateAccessibilitySupport();if(Q.hasChanged(50)){let te=this._codeEditor.getOption(50).loop;this._state.change({loop:te},!1);let ne=this._codeEditor.getOption(50).addExtraSpaceOnTop;if(ne&&!this._viewZone)this._viewZone=new fp(0),this._showViewZone();if(!ne&&this._viewZone)this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{if(this._isVisible)this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){let Q=await this._controller.getGlobalBufferTerm();if(Q&&Q!==this._state.searchString)this._state.change({searchString:Q},!1),this._findInput.select()}})),this._findInputFocused=dc.bindTo(k),this._findFocusTracker=this._register(Yn(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=ih.bindTo(k),this._replaceFocusTracker=this._register(Yn(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=lx.bindTo(k),this._widgetFocusTracker=this._register(Yn(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(l(this._domNode,"focusin",(Q)=>{if(xe(Q.target))this._lastFocusedElement=Q.target})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop)this._viewZone=new fp(0);this._register(this._codeEditor.onDidChangeModel(()=>{if(!this._isVisible)return;this._viewZoneId=void 0})),this._register(this._codeEditor.onDidScrollChange((Q)=>{if(Q.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return ql.ID}getDomNode(){return this._domNode}getPosition(){if(this._isVisible)return{preference:0};return null}_onStateChanged(m){if(m.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(m.replaceString)this._replaceInput.inputBox.value=this._state.replaceString;if(m.isRevealed)if(this._state.isRevealed)this._reveal();else this._hide(!0);if(m.isReplaceRevealed){if(this._state.isReplaceRevealed){if(!this._codeEditor.getOption(104)&&!this._isReplaceVisible)this._isReplaceVisible=!0,this._replaceInput.width=uo(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()}else if(this._isReplaceVisible)this._isReplaceVisible=!1,this._updateButtons()}if((m.isRevealed||m.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)){if(this._tryUpdateHeight())this._showViewZone()}if(m.isRegex)this._findInput.setRegex(this._state.isRegex);if(m.wholeWord)this._findInput.setWholeWords(this._state.wholeWord);if(m.matchCase)this._findInput.setCaseSensitive(this._state.matchCase);if(m.preserveCase)this._replaceInput.setPreserveCase(this._state.preserveCase);if(m.searchScope){if(this._state.searchScope)this._toggleSelectionFind.checked=!0;else this._toggleSelectionFind.checked=!1;this._updateToggleSelectionFindButton()}if(m.searchString||m.matchesCount||m.matchesPosition){let u=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",u),this._updateMatchesCount(),this._updateButtons()}if(m.searchString||m.currentMatch)this._layoutViewZone();if(m.updateHistory)this._delayedUpdateHistory();if(m.loop)this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,J)}_updateHistory(){if(this._state.searchString)this._findInput.inputBox.addToHistory();if(this._state.replaceString)this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){if(this._matchesCount.style.minWidth=lh+"px",this._state.matchesCount>=Rr)this._matchesCount.title=S2;else this._matchesCount.title="";this._matchesCount.firstChild?.remove();let m;if(this._state.matchesCount>0){let u=String(this._state.matchesCount);if(this._state.matchesCount>=Rr)u+="+";let p=String(this._state.matchesPosition);if(p==="0")p="?";m=Zs(C2,p,u)}else m=_p;this._matchesCount.appendChild(document.createTextNode(m)),En(this._getAriaLabel(m,this._state.currentMatch,this._state.searchString)),lh=Math.max(lh,this._matchesCount.clientWidth)}_getAriaLabel(m,u,p){let v;if(m===_p)v=p===""?e(1033,"{0} found",m):e(1034,"{0} found for '{1}'",m,p);else if(u){let y=e(1035,"{0} found for '{1}', at {2}",m,p,u.startLineNumber+":"+u.startColumn),k=this._codeEditor.getModel();if(k&&u.startLineNumber<=k.getLineCount()&&u.startLineNumber>=1)v=`${k.getLineContent(u.startLineNumber)}, ${y}`;else v=y}else v=e(1036,"{0} found for '{1}'",m,p);return v}_updateToggleSelectionFindButton(){let m=this._codeEditor.getSelection(),u=m?m.startLineNumber!==m.endLineNumber||m.startColumn!==m.endColumn:!1,p=this._toggleSelectionFind.checked;if(this._isVisible&&(p||u))this._toggleSelectionFind.enable();else this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);let m=this._state.searchString.length>0,u=this._state.matchesCount?!0:!1;this._prevBtn.setEnabled(this._isVisible&&m&&u&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&m&&u&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&m),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&m),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let p=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&p)}_reveal(){if(this._revealTimeouts.forEach((m)=>{clearTimeout(m)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let m=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 p=!!m&&m.startLineNumber!==m.endLineNumber;this._toggleSelectionFind.checked=p;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false"),this._updateFindInputAriaLabel()},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let u=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&m){let p=this._codeEditor.getDomNode();if(p){let v=mt(p),y=this._codeEditor.getScrolledVisiblePosition(m.getStartPosition()),k=v.left+(y?y.left:0),D=y?y.top:0;if(this._viewZone&&D<this._viewZone.heightInPx){if(m.endLineNumber>m.startLineNumber)u=!1;let T=m0(this._domNode).left;if(k>T)u=!1;let R=this._codeEditor.getScrolledVisiblePosition(m.getEndPosition());if(v.left+(R?R.left:0)>T)u=!1}}}this._showViewZone(u)}}_hide(m){if(this._revealTimeouts.forEach((u)=>{clearTimeout(u)}),this._revealTimeouts=[],this._isVisible){if(this._isVisible=!1,this._accessibilityHelpHintAnnounced=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),m)this._codeEditor.focus();this._codeEditor.layoutOverlayWidget(this),this._removeViewZone()}}_layoutViewZone(m){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let p=this._viewZone;if(this._viewZoneId!==void 0||!p)return;this._codeEditor.changeViewZones((v)=>{p.heightInPx=this._getHeight(),this._viewZoneId=v.addZone(p),this._codeEditor.setScrollTop(m||this._codeEditor.getScrollTop()+p.heightInPx)})}_showViewZone(m=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;if(this._viewZone===void 0)this._viewZone=new fp(0);let p=this._viewZone;this._codeEditor.changeViewZones((v)=>{if(this._viewZoneId!==void 0){let y=this._getHeight();if(y===p.heightInPx)return;let k=y-p.heightInPx;if(p.heightInPx=y,v.layoutZone(this._viewZoneId),m)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+k);return}else{let y=this._getHeight();if(y-=this._codeEditor.getOption(96).top,y<=0)return;if(p.heightInPx=y,this._viewZoneId=v.addZone(p),m)this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+y)}})}_removeViewZone(){this._codeEditor.changeViewZones((m)=>{if(this._viewZoneId!==void 0){if(m.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 m=this._codeEditor.getLayoutInfo();if(m.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else if(this._domNode.classList.contains("hiddenEditor"))this._domNode.classList.remove("hiddenEditor");let p=m.width,v=m.minimap.minimapWidth,y=!1,k=!1,D=!1;if(this._resized){if(uo(this._domNode)>Ur){this._domNode.style.maxWidth=`${p-28-v-15}px`,this._replaceInput.width=uo(this._findInput.domNode);return}}if(Ur+28+v>=p)k=!0;if(Ur+28+v-lh>=p)D=!0;if(Ur+28+v-lh>=p+50)y=!0;if(this._domNode.classList.toggle("collapsed-find-widget",y),this._domNode.classList.toggle("narrow-find-widget",D),this._domNode.classList.toggle("reduced-find-widget",k),!D&&!y)this._domNode.style.maxWidth=`${p-28-v-15}px`;if(this._findInput.layout({collapsedFindWidget:y,narrowFindWidget:D,reducedFindWidget:k}),this._resized){let T=this._findInput.inputBox.element.clientWidth;if(T>0)this._replaceInput.width=T}else if(this._isReplaceVisible)this._replaceInput.width=uo(this._findInput.domNode)}_getHeight(){let m=0;if(m+=4,m+=this._findInput.inputBox.height+2,this._isReplaceVisible)m+=4,m+=this._replaceInput.inputBox.height+2;return m+=4,m}_tryUpdateHeight(){let m=this._getHeight();if(this._cachedHeight!==null&&this._cachedHeight===m)return!1;return this._cachedHeight=m,this._domNode.style.height=`${m}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 m=this._codeEditor.getSelections();if(m.map((u)=>{if(u.endColumn===1&&u.endLineNumber>u.startLineNumber)u=u.setEndPosition(u.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(u.endLineNumber-1));let p=this._state.currentMatch;if(u.startLineNumber!==u.endLineNumber){if(!t.equalsRange(u,p))return u}return null}).filter((u)=>!!u),m.length)this._state.change({searchScope:m},!0)}}_onFindInputMouseDown(m){if(m.middleButton)m.stopPropagation()}_onFindInputKeyDown(m){if(m.equals(vx|3))if(this._keybindingService.dispatchEvent(m,m.target)){m.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
19
- `),m.preventDefault();return}if(m.equals(2)){if(this._isReplaceVisible)this._replaceInput.focus();else this._findInput.focusOnCaseSensitive();m.preventDefault();return}if(m.equals(2066)){this._codeEditor.focus(),m.preventDefault();return}if(m.equals(16))return wx(m,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(m.equals(18))return Sx(m,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(m){if(m.equals(vx|3))if(this._keybindingService.dispatchEvent(m,m.target)){m.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
20
- `),m.preventDefault();return}if(m.equals(2)){this._findInput.focusOnCaseSensitive(),m.preventDefault();return}if(m.equals(1026)){this._findInput.focus(),m.preventDefault();return}if(m.equals(2066)){this._codeEditor.focus(),m.preventDefault();return}if(m.equals(16))return wx(m,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(m.equals(18))return Sx(m,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(m){return 0}_keybindingLabelFor(m){return this._keybindingService.appendKeybinding("",m)}_buildDomNode(){let p=this._codeEditor.getOption(50).history,v=this._codeEditor.getOption(50).replaceHistory;if(this._findInput=this._register(new gp(null,this._contextViewProvider,{width:x2,label:xb,placeholder:u2,appendCaseSensitiveLabel:this._keybindingLabelFor(zt.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(zt.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(zt.ToggleRegexCommand),validation:(q)=>{if(q.length===0||!this._findInput.getRegex())return null;try{return new RegExp(q,"gu"),null}catch(Q){return{content:Q.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>yb(this._keybindingService),inputBoxStyles:Lg,toggleStyles:Tg,history:p==="workspace"?this._findWidgetSearchHistory:new Set([])},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((q)=>{if(q.equals(3)&&!this._codeEditor.getOption(50).findOnType)this._state.change({searchString:this._findInput.getValue()},!0);this._onFindInputKeyDown(q)})),this._register(this._findInput.inputBox.onDidChange(()=>{if(this._ignoreChangeEvent||!this._codeEditor.getOption(50).findOnType)return;this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown((q)=>{if(q.equals(1026)){if(this._isReplaceVisible)this._replaceInput.focus(),q.preventDefault()}})),this._register(this._findInput.onRegexKeyDown((q)=>{if(q.equals(2)){if(this._isReplaceVisible)this._replaceInput.focusOnPreserve(),q.preventDefault()}})),this._register(this._findInput.inputBox.onDidHeightChange((q)=>{if(this._tryUpdateHeight())this._showViewZone()})),Bn)this._register(this._findInput.onMouseDown((q)=>this._onFindInputMouseDown(q)));this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();let y={groupId:"find-widget"};this._prevBtn=this._register(new ms({label:g2+this._keybindingLabelFor(zt.PreviousMatchFindAction),icon:c2,hoverLifecycleOptions:y,onTrigger:()=>{ol(this._codeEditor.getAction(zt.PreviousMatchFindAction)).run().then(void 0,J)}},this._hoverService)),this._nextBtn=this._register(new ms({label:p2+this._keybindingLabelFor(zt.NextMatchFindAction),icon:l2,hoverLifecycleOptions:y,onTrigger:()=>{ol(this._codeEditor.getAction(zt.NextMatchFindAction)).run().then(void 0,J)}},this._hoverService));let k=document.createElement("div");k.className="find-part",k.appendChild(this._findInput.domNode);let D=document.createElement("div");D.className="find-actions",k.appendChild(D),D.appendChild(this._matchesCount),D.appendChild(this._prevBtn.domNode),D.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new _l({icon:s2,title:m2+this._keybindingLabelFor(zt.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:y,inputActiveOptionBackground:N(su),inputActiveOptionBorder:N(rf),inputActiveOptionForeground:N(sf)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let q=this._codeEditor.getSelections();if(q=q.map((Q)=>{if(Q.endColumn===1&&Q.endLineNumber>Q.startLineNumber)Q=Q.setEndPosition(Q.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(Q.endLineNumber-1));if(!Q.isEmpty())return Q;return null}).filter((Q)=>!!Q),q.length)this._state.change({searchScope:q},!0)}}else this._state.change({searchScope:null},!0)})),D.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new ms({label:f2+this._keybindingLabelFor(zt.CloseFindWidgetCommand),icon:r_,hoverLifecycleOptions:y,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:(q)=>{if(q.equals(2)){if(this._isReplaceVisible){if(this._replaceBtn.isEnabled())this._replaceBtn.focus();else this._codeEditor.focus();q.preventDefault()}}}},this._hoverService)),this._replaceInput=this._register(new pp(null,void 0,{label:Ib,placeholder:_2,appendPreserveCaseLabel:this._keybindingLabelFor(zt.TogglePreserveCaseCommand),history:v==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>yb(this._keybindingService),inputBoxStyles:Lg,toggleStyles:Tg,hoverLifecycleOptions:y},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((q)=>this._onReplaceInputKeyDown(q))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange((q)=>{if(this._isReplaceVisible&&this._tryUpdateHeight())this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown((q)=>{if(q.equals(2)){if(this._prevBtn.isEnabled())this._prevBtn.focus();else if(this._nextBtn.isEnabled())this._nextBtn.focus();else if(this._toggleSelectionFind.enabled)this._toggleSelectionFind.focus();else if(this._closeBtn.isEnabled())this._closeBtn.focus();q.preventDefault()}})),this._replaceBtn=this._register(new ms({label:b2+this._keybindingLabelFor(zt.ReplaceOneAction),icon:a2,hoverLifecycleOptions:y,onTrigger:()=>{this._controller.replace()},onKeyDown:(q)=>{if(q.equals(1026))this._closeBtn.focus(),q.preventDefault()}},this._hoverService)),this._replaceAllBtn=this._register(new ms({label:v2+this._keybindingLabelFor(zt.ReplaceAllAction),icon:d2,hoverLifecycleOptions:y,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let T=document.createElement("div");T.className="replace-part",T.appendChild(this._replaceInput.domNode);let R=document.createElement("div");R.className="replace-actions",T.appendChild(R),R.appendChild(this._replaceBtn.domNode),R.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new ms({label:w2,className:"codicon toggle left",onTrigger:()=>{if(this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible)this._replaceInput.width=uo(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=h2,this._domNode.role="dialog",this._domNode.style.width=`${Ur}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(k),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(T),this._resizeSash=this._register(new qi(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let K=Ur;this._register(this._resizeSash.onDidStart(()=>{K=uo(this._domNode)})),this._register(this._resizeSash.onDidChange((q)=>{this._resized=!0;let Q=K+q.startX-q.currentX;if(Q<Ur)return;let te=parseFloat(iy(this._domNode).maxWidth)||0;if(Q>te)return;if(this._domNode.style.width=`${Q}px`,this._isReplaceVisible)this._replaceInput.width=uo(this._findInput.domNode);this._findInput.inputBox.layout(),this._tryUpdateHeight()})),this._register(this._resizeSash.onDidReset(()=>{let q=uo(this._domNode);if(q<Ur)return;let Q=Ur;if(!this._resized||q===Ur){let te=this._codeEditor.getLayoutInfo();Q=te.width-28-te.minimap.minimapWidth-15,this._resized=!0}if(this._domNode.style.width=`${Q}px`,this._isReplaceVisible)this._replaceInput.width=uo(this._findInput.domNode);this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let m=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(m!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let m=xb,u=Ib;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue("accessibility.verbosity.find")&&this._accessibilityService.isScreenReaderOptimized()){let p=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel();if(p){let v=e(1037,"Press {0} for accessibility help",p);m=e(1038,"{0}, {1}",m,v),u=e(1039,"{0}, {1}",u,v)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=Kn(()=>{if(this._isVisible)this._findInput.inputBox.setAriaLabel(xb),this._replaceInput.inputBox.setAriaLabel(Ib)},1000)}this._findInput.inputBox.setAriaLabel(m),this._replaceInput.inputBox.setAriaLabel(u)}getViewState(){let m=!1;if(this._viewZone&&this._viewZoneId)m=this._viewZone.heightInPx>this._codeEditor.getScrollTop();return{widgetViewZoneVisible:m,scrollTop:this._codeEditor.getScrollTop()}}setViewState(m){if(!m)return;if(m.widgetViewZoneVisible)this._layoutViewZone(m.scrollTop)}}class ms extends ni{constructor(m,u){super();this._opts=m;let p="button";if(this._opts.className)p=p+" "+this._opts.className;if(this._opts.icon)p=p+" "+G.asClassName(this._opts.icon);this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=p,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(u.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},m.hoverLifecycleOptions)),this.onclick(this._domNode,(v)=>{this._opts.onTrigger(),v.preventDefault()}),this.onkeydown(this._domNode,(v)=>{if(v.equals(10)||v.equals(3)){this._opts.onTrigger(),v.preventDefault();return}this._opts.onKeyDown?.(v)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(m){this._domNode.classList.toggle("disabled",!m),this._domNode.setAttribute("aria-disabled",String(!m)),this._domNode.tabIndex=m?0:-1}setExpanded(m){if(this._domNode.setAttribute("aria-expanded",String(!!m)),m)this._domNode.classList.remove(...G.asClassNameArray(_x)),this._domNode.classList.add(...G.asClassNameArray(bx));else this._domNode.classList.remove(...G.asClassNameArray(bx)),this._domNode.classList.add(...G.asClassNameArray(_x))}}oi((m,u)=>{let p=m.getColor(fl);if(p)u.addRule(`.monaco-editor .findMatch { border: 1px ${zo(m.type)?"dotted":"solid"} ${p}; box-sizing: border-box; }`);let v=m.getColor(fR);if(v)u.addRule(`.monaco-editor .findScope { border: 1px ${zo(m.type)?"dashed":"solid"} ${v}; }`);let y=m.getColor(Re);if(y)u.addRule(`.monaco-editor .find-widget { border: 1px solid ${y}; }`);let k=m.getColor(hR);if(k)u.addRule(`.monaco-editor .findMatchInline { color: ${k}; }`);let D=m.getColor(pR);if(D)u.addRule(`.monaco-editor .currentFindMatchInline { color: ${D}; }`)});class bp extends ni{static{this.ID="editor.contrib.findOptionsWidget"}constructor(m,u,p){super();this._hideSoon=this._register(new be(()=>this._hide(),2000)),this._isVisible=!1,this._editor=m,this._state=u,this._keybindingService=p,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");let v={inputActiveOptionBorder:N(rf),inputActiveOptionForeground:N(sf),inputActiveOptionBackground:N(su)},y={groupId:"find-options-widget"};this.caseSensitive=this._register(new Ry({appendTitle:this._keybindingLabelFor(zt.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:y,...v})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new $y({appendTitle:this._keybindingLabelFor(zt.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:y,...v})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new Dy({appendTitle:this._keybindingLabelFor(zt.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:y,...v})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((k)=>{let D=!1;if(k.isRegex)this.regex.checked=this._state.isRegex,D=!0;if(k.wholeWord)this.wholeWords.checked=this._state.wholeWord,D=!0;if(k.matchCase)this.caseSensitive.checked=this._state.matchCase,D=!0;if(!this._state.isRevealed&&D)this._revealTemporarily()})),this._register(l(this._domNode,x.MOUSE_LEAVE,(k)=>this._onMouseLeave())),this._register(l(this._domNode,"mouseover",(k)=>this._onMouseOver()))}_keybindingLabelFor(m){return this._keybindingService.appendKeybinding("",m)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return bp.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 vp(m,u){if(m===1)return!0;if(m===2)return!1;return u}class Lb 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 vp(this._isRegexOverride,this._isRegex)}get wholeWord(){return vp(this._wholeWordOverride,this._wholeWord)}get matchCase(){return vp(this._matchCaseOverride,this._matchCase)}get preserveCase(){return vp(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super();this._onFindReplaceStateChange=this._register(new i),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(m,u,p){let v={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},y=!1;if(u===0)m=0;if(m>u)m=u;if(this._matchesPosition!==m)this._matchesPosition=m,v.matchesPosition=!0,y=!0;if(this._matchesCount!==u)this._matchesCount=u,v.matchesCount=!0,y=!0;if(typeof p<"u"){if(!t.equalsRange(this._currentMatch,p))this._currentMatch=p,v.currentMatch=!0,y=!0}if(y)this._onFindReplaceStateChange.fire(v)}change(m,u,p=!0){let v={moveCursor:u,updateHistory:p,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},y=!1,k=this.isRegex,D=this.wholeWord,T=this.matchCase,R=this.preserveCase;if(typeof m.searchString<"u"){if(this._searchString!==m.searchString)this._searchString=m.searchString,v.searchString=!0,y=!0}if(typeof m.replaceString<"u"){if(this._replaceString!==m.replaceString)this._replaceString=m.replaceString,v.replaceString=!0,y=!0}if(typeof m.isRevealed<"u"){if(this._isRevealed!==m.isRevealed)this._isRevealed=m.isRevealed,v.isRevealed=!0,y=!0}if(typeof m.isReplaceRevealed<"u"){if(this._isReplaceRevealed!==m.isReplaceRevealed)this._isReplaceRevealed=m.isReplaceRevealed,v.isReplaceRevealed=!0,y=!0}if(typeof m.isRegex<"u")this._isRegex=m.isRegex;if(typeof m.wholeWord<"u")this._wholeWord=m.wholeWord;if(typeof m.matchCase<"u")this._matchCase=m.matchCase;if(typeof m.preserveCase<"u")this._preserveCase=m.preserveCase;if(typeof m.searchScope<"u"){if(!m.searchScope?.every((K)=>this._searchScope?.some((q)=>!t.equalsRange(q,K))))this._searchScope=m.searchScope,v.searchScope=!0,y=!0}if(typeof m.loop<"u"){if(this._loop!==m.loop)this._loop=m.loop,v.loop=!0,y=!0}if(typeof m.isSearching<"u"){if(this._isSearching!==m.isSearching)this._isSearching=m.isSearching,v.isSearching=!0,y=!0}if(typeof m.filters<"u"){if(this._filters)this._filters.update(m.filters);else this._filters=m.filters;v.filters=!0,y=!0}if(this._isRegexOverride=typeof m.isRegexOverride<"u"?m.isRegexOverride:0,this._wholeWordOverride=typeof m.wholeWordOverride<"u"?m.wholeWordOverride:0,this._matchCaseOverride=typeof m.matchCaseOverride<"u"?m.matchCaseOverride:0,this._preserveCaseOverride=typeof m.preserveCaseOverride<"u"?m.preserveCaseOverride:0,k!==this.isRegex)y=!0,v.isRegex=!0;if(D!==this.wholeWord)y=!0,v.wholeWord=!0;if(T!==this.matchCase)y=!0,v.matchCase=!0;if(R!==this.preserveCase)y=!0,v.preserveCase=!0;if(y)this._onFindReplaceStateChange.fire(v)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=Rr}}var L2=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},k2=function(m,u){return function(p,v){u(p,v,m)}},js,wp=class m{static{js=this}static{this.FIND_HISTORY_KEY="workbench.find.history"}static{this._instance=null}static getOrCreate(u){if(!js._instance)js._instance=new js(u);return js._instance}constructor(u){this.storageService=u,this.inMemoryValues=new Set,this._onDidChangeEmitter=new i,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(u){let p=this.inMemoryValues.delete(u);return this.save(),p}add(u){return this.inMemoryValues.add(u),this.save(),this}has(u){return this.inMemoryValues.has(u)}forEach(u,p){return this.load(),this.inMemoryValues.forEach(u)}replace(u){this.inMemoryValues=new Set(u),this.save()}load(){let u,p=this.storageService.get(js.FIND_HISTORY_KEY,1);if(p)try{u=JSON.parse(p)}catch(v){}this.inMemoryValues=new Set(u||[])}save(){let u=[];return this.inMemoryValues.forEach((p)=>u.push(p)),new Promise((p)=>{this.storageService.store(js.FIND_HISTORY_KEY,JSON.stringify(u),1,0),this._onDidChangeEmitter.fire(u),p()})}};wp=js=L2([k2(0,wn)],wp);var E2=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},D2=function(m,u){return function(p,v){u(p,v,m)}},Gs,Sp=class m{static{Gs=this}static{this.FIND_HISTORY_KEY="workbench.replace.history"}static{this._instance=null}static getOrCreate(u){if(!Gs._instance)Gs._instance=new Gs(u);return Gs._instance}constructor(u){this.storageService=u,this.inMemoryValues=new Set,this._onDidChangeEmitter=new i,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(u){let p=this.inMemoryValues.delete(u);return this.save(),p}add(u){return this.inMemoryValues.add(u),this.save(),this}has(u){return this.inMemoryValues.has(u)}forEach(u,p){return this.load(),this.inMemoryValues.forEach(u)}replace(u){this.inMemoryValues=new Set(u),this.save()}load(){let u,p=this.storageService.get(Gs.FIND_HISTORY_KEY,1);if(p)try{u=JSON.parse(p)}catch(v){}this.inMemoryValues=new Set(u||[])}save(){let u=[];return this.inMemoryValues.forEach((p)=>u.push(p)),new Promise((p)=>{this.storageService.store(Gs.FIND_HISTORY_KEY,JSON.stringify(u),1,0),this._onDidChangeEmitter.fire(u),p()})}};Sp=Gs=E2([D2(0,wn)],Sp);var Cx=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Vo=function(m,u){return function(p,v){u(p,v,m)}},kb,T2=524288;function Eb(m,u="single",p=!1){if(!m.hasModel())return null;let v=m.getSelection();if(u==="single"&&v.startLineNumber===v.endLineNumber||u==="multiple"){if(v.isEmpty()){let y=m.getConfiguredWordAtPosition(v.getStartPosition());if(y&&p===!1)return y.word}else if(m.getModel().getValueLengthInRange(v)<T2)return m.getModel().getValueInRange(v)}return null}var oo=class m extends n{static{kb=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(u){return u.getContribution(kb.ID)}constructor(u,p,v,y,k,D){super();this._editor=u,this._findWidgetVisible=Kr.bindTo(p),this._contextKeyService=p,this._storageService=v,this._clipboardService=y,this._notificationService=k,this._hoverService=D,this._updateHistoryDelayer=this._register(new Ci(500)),this._state=this._register(new Lb),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((T)=>this._onStateChanged(T))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let T=this._editor.getModel()&&this._state.isRevealed;if(this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),T)this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(50).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){if(this._model)this._model.dispose(),this._model=null}_onStateChanged(u){if(this.saveQueryState(u),u.isRevealed)if(this._state.isRevealed)this._findWidgetVisible.set(!0);else this._findWidgetVisible.reset(),this.disposeModel();if(u.searchString)this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(u){if(u.isRegex)this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1);if(u.wholeWord)this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1);if(u.matchCase)this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1);if(u.preserveCase)this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!dc.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){if(this._state.change({matchCase:!this._state.matchCase},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleWholeWords(){if(this._state.change({wholeWord:!this._state.wholeWord},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleRegex(){if(this._state.change({isRegex:!this._state.isRegex},!1),!this._state.isRevealed)this.highlightFindOptions()}togglePreserveCase(){if(this._state.change({preserveCase:!this._state.preserveCase},!1),!this._state.isRevealed)this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let u=this._editor.getSelections();if(u=u.map((p)=>{if(p.endColumn===1&&p.endLineNumber>p.startLineNumber)p=p.setEndPosition(p.endLineNumber-1,this._editor.getModel().getLineMaxColumn(p.endLineNumber-1));if(!p.isEmpty())return p;return null}).filter((p)=>!!p),u.length)this._state.change({searchScope:u},!0)}}setSearchString(u){if(this._state.isRegex)u=_i(u);this._state.change({searchString:u},!1)}highlightFindOptions(u=!1){}async _start(u,p){if(this.disposeModel(),!this._editor.hasModel())return;let v={...p,isRevealed:!0};if(u.seedSearchStringFromSelection==="single"){let y=Eb(this._editor,u.seedSearchStringFromSelection,u.seedSearchStringFromNonEmptySelection);if(y)if(this._state.isRegex)v.searchString=_i(y);else v.searchString=y}else if(u.seedSearchStringFromSelection==="multiple"&&!u.updateSearchScope){let y=Eb(this._editor,u.seedSearchStringFromSelection);if(y)v.searchString=y}if(!v.searchString&&u.seedSearchStringFromGlobalClipboard){let y=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;if(y)v.searchString=y}if(u.forceRevealReplace||v.isReplaceRevealed)v.isReplaceRevealed=!0;else if(!this._findWidgetVisible.get())v.isReplaceRevealed=!1;if(u.updateSearchScope){let y=this._editor.getSelections();if(y.some((k)=>!k.isEmpty()))v.searchScope=y}if(v.loop=u.loop,this._state.change(v,!1),!this._model)this._model=new ac(this._editor,this._state)}start(u,p){return this._start(u,p)}moveToNextMatch(){if(this._model)return this._model.moveToNextMatch(),!0;return!1}moveToPrevMatch(){if(this._model)return this._model.moveToPrevMatch(),!0;return!1}goToMatch(u){if(this._model)return this._model.moveToMatch(u),!0;return!1}replace(){if(this._model)return this._model.replace(),!0;return!1}replaceAll(){if(this._model){if(this._editor.getModel()?.isTooLargeForHeapOperation())return this._notificationService.warn(e(994,"The file is too large to perform a replace all operation.")),!1;return this._model.replaceAll(),!0}return!1}selectAllMatches(){if(this._model)return this._model.selectAllMatches(),this._editor.focus(),!0;return!1}async getGlobalBufferTerm(){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())return this._clipboardService.readFindText();return""}setGlobalBufferTerm(u){if(this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing())this._clipboardService.writeFindText(u)}};oo=kb=Cx([Vo(1,V),Vo(2,wn),Vo(3,Zn),Vo(4,ut),Vo(5,vn)],oo);var Db=class m extends oo{constructor(u,p,v,y,k,D,T,R,K,q){super(u,v,D,T,k,R);this._contextViewService=p,this._keybindingService=y,this._configurationService=K,this._accessibilityService=q,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=wp.getOrCreate(D),this._replaceWidgetHistory=Sp.getOrCreate(D)}async _start(u,p){if(!this._widget)this._createFindWidget();let v=this._editor.getSelection(),y=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":y=!0;break;case"never":y=!1;break;case"multiline":{y=!!v&&v.startLineNumber!==v.endLineNumber;break}}if(u.updateSearchScope=u.updateSearchScope||y,await super._start(u,p),this._widget){if(u.shouldFocus===2)this._widget.focusReplaceInput();else if(u.shouldFocus===1)this._widget.focusFindInput()}}highlightFindOptions(u=!1){if(!this._widget)this._createFindWidget();if(this._state.isRevealed&&!u)this._widget.highlightFindOptions();else this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new ql(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 bp(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(u){this._widget?.setViewState(u)}};Db=Cx([Vo(1,Br),Vo(2,V),Vo(3,ce),Vo(4,ut),Vo(5,wn),Vo(6,Zn),Vo(7,vn),Vo(8,X),Vo(9,Vt)],Db);var R2=ry(new lg({id:zt.StartFindAction,label:h(1002,"Find"),precondition:_.or(o.focus,_.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"3_find",title:e(995,"&&Find"),order:1}}));R2.addImplementation(0,(m,u,p)=>{let v=oo.get(u);if(!v)return!1;return v.start({forceRevealReplace:!1,seedSearchStringFromSelection:u.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:u.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop})});var N2={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 yx extends z{constructor(){super({id:zt.StartFindWithArgs,label:h(1003,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:N2})}async run(m,u,p){let v=oo.get(u);if(v){let y=p?{searchString:p.searchString,replaceString:p.replaceString,isReplaceRevealed:p.replaceString!==void 0,isRegex:p.isRegex,wholeWord:p.matchWholeWord,matchCase:p.isCaseSensitive,preserveCase:p.preserveCase}:{};await v.start({forceRevealReplace:!1,seedSearchStringFromSelection:v.getState().searchString.length===0&&u.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:p?.findInSelection||!1,loop:u.getOption(50).loop},y),v.setGlobalBufferTerm(v.getState().searchString)}}}class xx extends z{constructor(){super({id:zt.StartFindWithSelection,label:h(1004,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(m,u){let p=oo.get(u);if(p)await p.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop}),p.setGlobalBufferTerm(p.getState().searchString)}}async function Ix(m,u){let p=oo.get(m);if(!p)return;let v=m.getOption(50).closeOnResult,y=p.getState().isRevealed,k=()=>{let D=p.editor.getSelection(),T=u?p.moveToNextMatch():p.moveToPrevMatch(),R=!1;if(T){let K=p.editor.getSelection();if(!D&&K)R=!0;else if(D&&K&&!D.equalsSelection(K))R=!0}if(R){if(p.editor.pushUndoStop(),v&&y&&p.isFindInputFocused())p.closeFindWidget();return!0}return!1};if(!k()){if(await p.start({forceRevealReplace:!1,seedSearchStringFromSelection:p.getState().searchString.length===0&&m.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:m.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:m.getOption(50).loop}),!k()){let D=p.getState();if(y&&D.matchesCount===0&&D.searchString)En(e(996,"{0} found for '{1}'",_p,D.searchString))}}}var M2=ry(new lg({id:zt.NextMatchFindAction,label:h(1005,"Find Next"),precondition:void 0,kbOpts:[{kbExpr:o.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:_.and(o.focus,dc),primary:3,weight:100}]}));M2.addImplementation(0,async(m,u,p)=>Ix(u,!0));var O2=ry(new lg({id:zt.PreviousMatchFindAction,label:h(1006,"Find Previous"),precondition:void 0,kbOpts:[{kbExpr:o.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:_.and(o.focus,dc),primary:1027,weight:100}]}));O2.addImplementation(0,async(m,u,p)=>Ix(u,!1));class Lx extends z{constructor(){super({id:zt.GoToMatchFindAction,label:h(1007,"Go to Match..."),precondition:Kr});this._highlightDecorations=[]}run(m,u){let p=oo.get(u);if(!p)return;let v=p.getState().matchesCount;if(v<1){m.get(ut).notify({severity:bl.Warning,message:e(997,"No matches. Try searching for something else.")});return}let y=m.get(cn),k=new c,D=k.add(y.createInputBox());D.placeholder=e(998,"Type a number to go to a specific match (between 1 and {0})",v);let T=(K)=>{let q=parseInt(K);if(isNaN(q))return;let Q=p.getState().matchesCount;if(q>0&&q<=Q)return q-1;else if(q<0&&q>=-Q)return Q+q;return},R=(K)=>{let q=T(K);if(typeof q==="number"){D.validationMessage=void 0,p.goToMatch(q);let Q=p.getState().currentMatch;if(Q)this.addDecorations(u,Q)}else D.validationMessage=e(999,"Please type a number between 1 and {0}",p.getState().matchesCount),this.clearDecorations(u)};k.add(D.onDidChangeValue((K)=>{R(K)})),k.add(D.onDidAccept(()=>{let K=T(D.value);if(typeof K==="number")p.goToMatch(K),D.hide();else D.validationMessage=e(1000,"Please type a number between 1 and {0}",p.getState().matchesCount)})),k.add(D.onDidHide(()=>{this.clearDecorations(u),k.dispose()})),D.show()}clearDecorations(m){m.changeDecorations((u)=>{this._highlightDecorations=u.deltaDecorations(this._highlightDecorations,[])})}addDecorations(m,u){m.changeDecorations((p)=>{this._highlightDecorations=p.deltaDecorations(this._highlightDecorations,[{range:u,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:u,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:en(R0),position:ko.Full}}}])})}}class Tb extends z{async run(m,u){let p=oo.get(u);if(!p)return;let v=Eb(u,"single",!1);if(v)p.setSearchString(v);if(!this._run(p))await p.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop}),this._run(p)}}class kx extends Tb{constructor(){super({id:zt.NextSelectionMatchFindAction,label:h(1008,"Find Next Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2109,weight:100}})}_run(m){return m.moveToNextMatch()}}class Ex extends Tb{constructor(){super({id:zt.PreviousSelectionMatchFindAction,label:h(1009,"Find Previous Selection"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3133,weight:100}})}_run(m){return m.moveToPrevMatch()}}var P2=ry(new lg({id:zt.StartFindReplaceAction,label:h(1010,"Replace"),precondition:_.or(o.focus,_.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:a.MenubarEditMenu,group:"3_find",title:e(1001,"&&Replace"),order:2}}));P2.addImplementation(0,(m,u,p)=>{if(!u.hasModel()||u.getOption(104))return!1;let v=oo.get(u);if(!v)return!1;let y=u.getSelection(),k=v.isFindInputFocused(),D=!y.isEmpty()&&y.startLineNumber===y.endLineNumber&&u.getOption(50).seedSearchStringFromSelection!=="never"&&!k,T=k||D?2:1;return v.start({forceRevealReplace:!0,seedSearchStringFromSelection:D?"single":"none",seedSearchStringFromNonEmptySelection:u.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:u.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:T,shouldAnimate:!0,updateSearchScope:!1,loop:u.getOption(50).loop})});le(oo.ID,Db,0);I(yx);I(xx);I(Lx);I(kx);I(Ex);var gr=Bt.bindToContribution(oo.get);U(new gr({id:zt.CloseFindWidgetCommand,precondition:Kr,handler:(m)=>m.closeFindWidget(),kbOpts:{weight:105,kbExpr:o.focus,primary:9,secondary:[1033]}}));U(new gr({id:zt.ToggleCaseSensitiveCommand,precondition:void 0,handler:(m)=>m.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:o.focus,primary:oh.primary,mac:oh.mac,win:oh.win,linux:oh.linux}}));U(new gr({id:zt.ToggleWholeWordCommand,precondition:void 0,handler:(m)=>m.toggleWholeWords(),kbOpts:{weight:105,kbExpr:o.focus,primary:nh.primary,mac:nh.mac,win:nh.win,linux:nh.linux}}));U(new gr({id:zt.ToggleRegexCommand,precondition:void 0,handler:(m)=>m.toggleRegex(),kbOpts:{weight:105,kbExpr:o.focus,primary:rh.primary,mac:rh.mac,win:rh.win,linux:rh.linux}}));U(new gr({id:zt.ToggleSearchScopeCommand,precondition:void 0,handler:(m)=>m.toggleSearchScope(),kbOpts:{weight:105,kbExpr:o.focus,primary:sh.primary,mac:sh.mac,win:sh.win,linux:sh.linux}}));U(new gr({id:zt.TogglePreserveCaseCommand,precondition:void 0,handler:(m)=>m.togglePreserveCase(),kbOpts:{weight:105,kbExpr:o.focus,primary:ah.primary,mac:ah.mac,win:ah.win,linux:ah.linux}}));U(new gr({id:zt.ReplaceOneAction,precondition:Kr,handler:(m)=>m.replace(),kbOpts:{weight:105,kbExpr:o.focus,primary:3094}}));U(new gr({id:zt.ReplaceOneAction,precondition:Kr,handler:(m)=>m.replace(),kbOpts:{weight:105,kbExpr:_.and(o.focus,ih),primary:3}}));U(new gr({id:zt.ReplaceAllAction,precondition:Kr,handler:(m)=>m.replaceAll(),kbOpts:{weight:105,kbExpr:o.focus,primary:2563}}));U(new gr({id:zt.ReplaceAllAction,precondition:Kr,handler:(m)=>m.replaceAll(),kbOpts:{weight:105,kbExpr:_.and(o.focus,ih),primary:void 0,mac:{primary:2051}}}));U(new gr({id:zt.SelectAllMatchesAction,precondition:Kr,handler:(m)=>m.selectAllMatches(),kbOpts:{weight:105,kbExpr:o.focus,primary:515}}));var A2=s("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},e(1637,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);s("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},e(1638,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0);s("editor.wordHighlightTextBackground",A2,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 F2=s("editor.wordHighlightBorder",{light:null,dark:null,hcDark:Ft,hcLight:Ft},e(1640,"Border color of a symbol during read-access, like reading a variable."));s("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:Ft,hcLight:Ft},e(1641,"Border color of a symbol during write-access, like writing to a variable."));s("editor.wordHighlightTextBorder",F2,e(1642,"Border color of a textual occurrence for a symbol."));var H2=s("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",e(1643,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),W2=s("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",e(1644,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),B2=s("editorOverviewRuler.wordHighlightTextForeground",Yk,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),V2=oe.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:en(W2),position:ko.Center},minimap:{color:en(uy),position:1}}),z2=oe.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:en(B2),position:ko.Center},minimap:{color:en(uy),position:1}}),K2=oe.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:en(Yk),position:ko.Center},minimap:{color:en(uy),position:1}}),U2=oe.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),q2=oe.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:en(H2),position:ko.Center},minimap:{color:en(uy),position:1}});function PI(m){if(m===Xd.Write)return V2;else if(m===Xd.Text)return z2;else return q2}function Dx(m){return m?U2:K2}oi((m,u)=>{let p=m.getColor(nf);if(p)u.addRule(`.monaco-editor .selectionHighlight { background-color: ${p.transparent(0.5)}; }`)});var j2=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},$2=function(m,u){return function(p,v){u(p,v,m)}},Rb;function ta(m,u){let p=u.filter((v)=>!m.find((y)=>y.equals(v)));if(p.length>=1){let v=p.map((k)=>`line ${k.viewState.position.lineNumber} column ${k.viewState.position.column}`).join(", "),y=p.length===1?e(1354,"Cursor added: {0}",v):e(1355,"Cursors added: {0}",v);go(y)}}class Rx extends z{constructor(){super({id:"editor.action.insertCursorAbove",label:h(1364,"Add Cursor Above"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1356,"&&Add Cursor Above"),order:2}})}run(m,u,p){if(!u.hasModel())return;let v=!0;if(p&&p.logicalLine===!1)v=!1;let y=u._getViewModel();if(y.cursorConfig.readOnly)return;y.model.pushStackElement();let k=y.getCursorStates();y.setCursorStates(p.source,3,mi.addCursorUp(y,k,v)),y.revealTopMostCursor(p.source),ta(k,y.getCursorStates())}}class Nx extends z{constructor(){super({id:"editor.action.insertCursorBelow",label:h(1365,"Add Cursor Below"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1357,"A&&dd Cursor Below"),order:3}})}run(m,u,p){if(!u.hasModel())return;let v=!0;if(p&&p.logicalLine===!1)v=!1;let y=u._getViewModel();if(y.cursorConfig.readOnly)return;y.model.pushStackElement();let k=y.getCursorStates();y.setCursorStates(p.source,3,mi.addCursorDown(y,k,v)),y.revealBottomMostCursor(p.source),ta(k,y.getCursorStates())}}class Mx extends z{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:h(1366,"Add Cursors to Line Ends"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1358,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(m,u,p){if(m.isEmpty())return;for(let v=m.startLineNumber;v<m.endLineNumber;v++){let y=u.getLineMaxColumn(v);p.push(new O(v,y,v,y))}if(m.endColumn>1)p.push(new O(m.endLineNumber,m.endColumn,m.endLineNumber,m.endColumn))}run(m,u){if(!u.hasModel())return;let p=u.getModel(),v=u.getSelections(),y=u._getViewModel(),k=y.getCursorStates(),D=[];if(v.forEach((T)=>this.getCursorsForSelection(T,p,D)),D.length>0)u.setSelections(D);ta(k,y.getCursorStates())}}class Ox extends z{constructor(){super({id:"editor.action.addCursorsToBottom",label:h(1367,"Add Cursors to Bottom"),precondition:void 0})}run(m,u){if(!u.hasModel())return;let p=u.getSelections(),v=u.getModel().getLineCount(),y=[];for(let T=p[0].startLineNumber;T<=v;T++)y.push(new O(T,p[0].startColumn,T,p[0].endColumn));let k=u._getViewModel(),D=k.getCursorStates();if(y.length>0)u.setSelections(y);ta(D,k.getCursorStates())}}class Px extends z{constructor(){super({id:"editor.action.addCursorsToTop",label:h(1368,"Add Cursors to Top"),precondition:void 0})}run(m,u){if(!u.hasModel())return;let p=u.getSelections(),v=[];for(let D=p[0].startLineNumber;D>=1;D--)v.push(new O(D,p[0].startColumn,D,p[0].endColumn));let y=u._getViewModel(),k=y.getCursorStates();if(v.length>0)u.setSelections(v);ta(k,y.getCursorStates())}}class hh{constructor(m,u,p){this.selections=m,this.revealRange=u,this.revealScrollType=p}}class kh{static create(m,u){if(!m.hasModel())return null;let p=u.getState();if(!m.hasTextFocus()&&p.isRevealed&&p.searchString.length>0)return new kh(m,u,!1,p.searchString,p.wholeWord,p.matchCase,null);let v=!1,y,k,D=m.getSelections();if(D.length===1&&D[0].isEmpty())v=!0,y=!0,k=!0;else y=p.wholeWord,k=p.matchCase;let T=m.getSelection(),R,K=null;if(T.isEmpty()){let q=m.getConfiguredWordAtPosition(T.getStartPosition());if(!q)return null;R=q.word,K=new O(T.startLineNumber,q.startColumn,T.startLineNumber,q.endColumn)}else R=m.getModel().getValueInRange(T).replace(/\r\n/g,`
21
- `);return new kh(m,u,v,R,y,k,K)}constructor(m,u,p,v,y,k,D){this._editor=m,this.findController=u,this.isDisconnectedFromFindController=p,this.searchText=v,this.wholeWord=y,this.matchCase=k,this.currentMatch=D}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let m=this._getNextMatch();if(!m)return null;let u=this._editor.getSelections();return new hh(u.concat(m),m,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let m=this._getNextMatch();if(!m)return null;let u=this._editor.getSelections();return new hh(u.slice(0,u.length-1).concat(m),m,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let v=this.currentMatch;return this.currentMatch=null,v}this.findController.highlightFindOptions();let m=this._editor.getSelections(),u=m[m.length-1],p=this._editor.getModel().findNextMatch(this.searchText,u.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!p)return null;return new O(p.range.startLineNumber,p.range.startColumn,p.range.endLineNumber,p.range.endColumn)}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let m=this._getPreviousMatch();if(!m)return null;let u=this._editor.getSelections();return new hh(u.concat(m),m,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let m=this._getPreviousMatch();if(!m)return null;let u=this._editor.getSelections();return new hh(u.slice(0,u.length-1).concat(m),m,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let v=this.currentMatch;return this.currentMatch=null,v}this.findController.highlightFindOptions();let m=this._editor.getSelections(),u=m[m.length-1],p=this._editor.getModel().findPreviousMatch(this.searchText,u.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);if(!p)return null;return new O(p.range.startLineNumber,p.range.startColumn,p.range.endLineNumber,p.range.endColumn)}selectAll(m){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let u=this._editor.getModel();if(m)return u.findMatches(this.searchText,m,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824);return u.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}class cc extends n{static{this.ID="editor.contrib.multiCursorController"}static get(m){return m.getContribution(cc.ID)}constructor(m){super();this._sessionDispose=this._register(new c),this._editor=m,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(m){if(!this._session){let u=kh.create(this._editor,m);if(!u)return;this._session=u;let p={searchString:this._session.searchText};if(this._session.isDisconnectedFromFindController)p.wholeWordOverride=1,p.matchCaseOverride=1,p.isRegexOverride=2;m.getState().change(p,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((v)=>{if(this._ignoreSelectionChange)return;this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(m.getState().onFindReplaceStateChange((v)=>{if(v.matchCase||v.wholeWord)this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){let m={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(m,!1)}this._session=null}_setSelections(m){this._ignoreSelectionChange=!0,this._editor.setSelections(m),this._ignoreSelectionChange=!1}_expandEmptyToWord(m,u){if(!u.isEmpty())return u;let p=this._editor.getConfiguredWordAtPosition(u.getStartPosition());if(!p)return u;return new O(u.startLineNumber,p.startColumn,u.startLineNumber,p.endColumn)}_applySessionResult(m){if(!m)return;if(this._setSelections(m.selections),m.revealRange)this._editor.revealRangeInCenterIfOutsideViewport(m.revealRange,m.revealScrollType)}getSession(m){return this._session}addSelectionToNextFindMatch(m){if(!this._editor.hasModel())return;if(!this._session){let u=this._editor.getSelections();if(u.length>1){let v=m.getState().matchCase;if(!Ux(this._editor.getModel(),u,v)){let k=this._editor.getModel(),D=[];for(let T=0,R=u.length;T<R;T++)D[T]=this._expandEmptyToWord(k,u[T]);this._editor.setSelections(D);return}}}if(this._beginSessionIfNeeded(m),this._session)this._applySessionResult(this._session.addSelectionToNextFindMatch())}addSelectionToPreviousFindMatch(m){if(this._beginSessionIfNeeded(m),this._session)this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(m){if(this._beginSessionIfNeeded(m),this._session)this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(m){if(this._beginSessionIfNeeded(m),this._session)this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(m){if(!this._editor.hasModel())return;let u=null,p=m.getState();if(p.isRevealed&&p.searchString.length>0&&p.isRegex){let v=this._editor.getModel();if(p.searchScope)u=v.findMatches(p.searchString,p.searchScope,p.isRegex,p.matchCase,p.wholeWord?this._editor.getOption(148):null,!1,1073741824);else u=v.findMatches(p.searchString,!0,p.isRegex,p.matchCase,p.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(m),!this._session)return;u=this._session.selectAll(p.searchScope)}if(u.length>0){let v=this._editor.getSelection();for(let y=0,k=u.length;y<k;y++){let D=u[y];if(D.range.intersectRanges(v)){u[y]=u[0],u[0]=D;break}}this._setSelections(u.map((y)=>new O(y.range.startLineNumber,y.range.startColumn,y.range.endLineNumber,y.range.endColumn)))}}}class rd extends z{run(m,u){let p=cc.get(u);if(!p)return;let v=u._getViewModel();if(v){let y=v.getCursorStates(),k=oo.get(u);if(k)this._run(p,k);else{let D=m.get(L).createInstance(oo,u);this._run(p,D),D.dispose()}ta(y,v.getCursorStates())}}}class Ax extends rd{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:h(1369,"Add Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2082,weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1359,"Add &&Next Occurrence"),order:5}})}_run(m,u){m.addSelectionToNextFindMatch(u)}}class Fx extends rd{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:h(1370,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1360,"Add P&&revious Occurrence"),order:6}})}_run(m,u){m.addSelectionToPreviousFindMatch(u)}}class Hx extends rd{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:h(1371,"Move Last Selection to Next Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:Jt(2089,2082),weight:100}})}_run(m,u){m.moveSelectionToNextFindMatch(u)}}class Wx extends rd{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:h(1372,"Move Last Selection to Previous Find Match"),precondition:void 0})}_run(m,u){m.moveSelectionToPreviousFindMatch(u)}}class Bx extends rd{constructor(){super({id:"editor.action.selectHighlights",label:h(1373,"Select All Occurrences of Find Match"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:3114,weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"3_multi",title:e(1361,"Select All &&Occurrences"),order:7}})}_run(m,u){m.selectAll(u)}}class Vx extends rd{constructor(){super({id:"editor.action.changeAll",label:h(1374,"Change All Occurrences"),precondition:_.and(o.writable,o.editorTextFocus),kbOpts:{kbExpr:o.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(m,u){m.selectAll(u)}}class zx{constructor(m,u,p,v,y){if(this._model=m,this._searchText=u,this._matchCase=p,this._wordSeparators=v,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),y&&this._model===y._model&&this._searchText===y._searchText&&this._matchCase===y._matchCase&&this._wordSeparators===y._wordSeparators&&this._modelVersionId===y._modelVersionId)this._cachedFindMatches=y._cachedFindMatches}findMatches(){if(this._cachedFindMatches===null)this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((m)=>m.range),this._cachedFindMatches.sort(t.compareRangesUsingStarts);return this._cachedFindMatches}}var Cp=class m extends n{static{Rb=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(u,p){super();this._languageFeaturesService=p,this.editor=u,this._isEnabled=u.getOption(122),this._isEnabledMultiline=u.getOption(124),this._maxLength=u.getOption(123),this._decorations=u.createDecorationsCollection(),this.updateSoon=this._register(new be(()=>this._update(),300)),this.state=null,this._register(u.onDidChangeConfiguration((y)=>{this._isEnabled=u.getOption(122),this._isEnabledMultiline=u.getOption(124),this._maxLength=u.getOption(123)})),this._register(u.onDidChangeCursorSelection((y)=>{if(!this._isEnabled)return;if(y.selection.isEmpty())if(y.reason===3){if(this.state)this._setState(null);this.updateSoon.schedule()}else this._setState(null);else this._update()})),this._register(u.onDidChangeModel((y)=>{this._setState(null)})),this._register(u.onDidChangeModelContent((y)=>{if(this._isEnabled)this.updateSoon.schedule()}));let v=oo.get(u);if(v)this._register(v.getState().onFindReplaceStateChange((y)=>{this._update()}));this.updateSoon.schedule()}_update(){this._setState(Rb._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(u,p,v,y,k){if(!p)return null;if(!k.hasModel())return null;if(!v){let Q=k.getSelection();if(Q.startLineNumber!==Q.endLineNumber)return null}let D=cc.get(k);if(!D)return null;let T=oo.get(k);if(!T)return null;let R=D.getSession(T);if(!R){let Q=k.getSelections();if(Q.length>1){let ne=T.getState().matchCase;if(!Ux(k.getModel(),Q,ne))return null}R=kh.create(k,T)}if(!R)return null;if(R.currentMatch)return null;if(/^[ \t]+$/.test(R.searchText))return null;if(y>0&&R.searchText.length>y)return null;let K=T.getState(),q=K.matchCase;if(K.isRevealed){let Q=K.searchString;if(!q)Q=Q.toLowerCase();let te=R.searchText;if(!q)te=te.toLowerCase();if(Q===te&&R.matchCase===K.matchCase&&R.wholeWord===K.wholeWord&&!K.isRegex)return null}return new zx(k.getModel(),R.searchText,R.matchCase,R.wholeWord?k.getOption(148):null,u)}_setState(u){if(this.state=u,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let p=this.editor.getModel();if(p.isTooLargeForTokenization())return;let v=this.state.findMatches(),y=this.editor.getSelections();y.sort(t.compareRangesUsingStarts);let k=[];for(let K=0,q=0,Q=v.length,te=y.length;K<Q;){let ne=v[K];if(q>=te)k.push(ne),K++;else{let re=t.compareRangesUsingStarts(ne,y[q]);if(re<0){if(y[q].isEmpty()||!t.areIntersecting(ne,y[q]))k.push(ne);K++}else if(re>0)q++;else K++,q++}}let D=this.editor.getOption(90)!=="off",T=this._languageFeaturesService.documentHighlightProvider.has(p)&&D,R=k.map((K)=>({range:K,options:Dx(T)}));this._decorations.set(R)}dispose(){this._setState(null),super.dispose()}};Cp=Rb=j2([$2(1,j)],Cp);function Ux(m,u,p){let v=Tx(m,u[0],!p);for(let y=1,k=u.length;y<k;y++){let D=u[y];if(D.isEmpty())return!1;let T=Tx(m,D,!p);if(v!==T)return!1}return!0}function Tx(m,u,p){let v=m.getValueInRange(u);return p?v.toLowerCase():v}class qx extends z{constructor(){super({id:"editor.action.focusNextCursor",label:h(1375,"Focus Next Cursor"),metadata:{description:e(1362,"Focuses the next cursor"),args:[]},precondition:void 0})}run(m,u,p){if(!u.hasModel())return;let v=u._getViewModel();if(v.cursorConfig.readOnly)return;v.model.pushStackElement();let y=Array.from(v.getCursorStates()),k=y.shift();if(!k)return;y.push(k),v.setCursorStates(p.source,3,y),v.revealPrimaryCursor(p.source,!0),ta(y,v.getCursorStates())}}class jx extends z{constructor(){super({id:"editor.action.focusPreviousCursor",label:h(1376,"Focus Previous Cursor"),metadata:{description:e(1363,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(m,u,p){if(!u.hasModel())return;let v=u._getViewModel();if(v.cursorConfig.readOnly)return;v.model.pushStackElement();let y=Array.from(v.getCursorStates()),k=y.pop();if(!k)return;y.unshift(k),v.setCursorStates(p.source,3,y),v.revealPrimaryCursor(p.source,!0),ta(y,v.getCursorStates())}}le(cc.ID,cc,4);le(Cp.ID,Cp,1);I(Rx);I(Nx);I(Mx);I(Ax);I(Fx);I(Hx);I(Wx);I(Bx);I(Vx);I(Ox);I(Px);I(qx);I(jx);class Ko{async provideSelectionRanges(m,u){let p=[];for(let v of u){let y=[];p.push(y);let k=new Map;await new Promise((D)=>Ko._bracketsRightYield(D,0,m,v,k)),await new Promise((D)=>Ko._bracketsLeftYield(D,0,m,v,k,y))}return p}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(m,u,p,v,y){let k=new Map,D=Date.now();while(!0){if(u>=Ko._maxRounds){m();break}if(!v){m();break}let T=p.bracketPairs.findNextBracket(v);if(!T){m();break}if(Date.now()-D>Ko._maxDuration){setTimeout(()=>Ko._bracketsRightYield(m,u+1,p,v,y));break}if(T.bracketInfo.isOpeningBracket){let K=T.bracketInfo.bracketText,q=k.has(K)?k.get(K):0;k.set(K,q+1)}else{let K=T.bracketInfo.getOpeningBrackets()[0].bracketText,q=k.has(K)?k.get(K):0;if(q-=1,k.set(K,Math.max(0,q)),q<0){let Q=y.get(K);if(!Q)Q=new kn,y.set(K,Q);Q.push(T.range)}}v=T.range.getEndPosition()}}static _bracketsLeftYield(m,u,p,v,y,k){let D=new Map,T=Date.now();while(!0){if(u>=Ko._maxRounds&&y.size===0){m();break}if(!v){m();break}let R=p.bracketPairs.findPrevBracket(v);if(!R){m();break}if(Date.now()-T>Ko._maxDuration){setTimeout(()=>Ko._bracketsLeftYield(m,u+1,p,v,y,k));break}if(!R.bracketInfo.isOpeningBracket){let q=R.bracketInfo.getOpeningBrackets()[0].bracketText,Q=D.has(q)?D.get(q):0;D.set(q,Q+1)}else{let q=R.bracketInfo.bracketText,Q=D.has(q)?D.get(q):0;if(Q-=1,D.set(q,Math.max(0,Q)),Q<0){let te=y.get(q);if(te){let ne=te.shift();if(te.size===0)y.delete(q);let re=t.fromPositions(R.range.getEndPosition(),ne.getStartPosition()),ae=t.fromPositions(R.range.getStartPosition(),ne.getEndPosition());k.push({range:re}),k.push({range:ae}),Ko._addBracketLeading(p,ae,k)}}}v=R.range.getStartPosition()}}static _addBracketLeading(m,u,p){if(u.startLineNumber===u.endLineNumber)return;let v=u.startLineNumber,y=m.getLineFirstNonWhitespaceColumn(v);if(y!==0&&y!==u.startColumn)p.push({range:t.fromPositions(new r(v,y),u.getEndPosition())}),p.push({range:t.fromPositions(new r(v,1),u.getEndPosition())});let k=v-1;if(k>0){let D=m.getLineFirstNonWhitespaceColumn(k);if(D===u.startColumn&&D!==m.getLineLastNonWhitespaceColumn(k))p.push({range:t.fromPositions(new r(k,D),u.getEndPosition())}),p.push({range:t.fromPositions(new r(k,1),u.getEndPosition())})}}}class Nb{constructor(m=!0){this.selectSubwords=m}provideSelectionRanges(m,u){let p=[];for(let v of u){let y=[];if(p.push(y),this.selectSubwords)this._addInWordRanges(y,m,v);this._addWordRanges(y,m,v),this._addWhitespaceLine(y,m,v),y.push({range:m.getFullModelRange()})}return p}_addInWordRanges(m,u,p){let v=u.getWordAtPosition(p);if(!v)return;let{word:y,startColumn:k}=v,D=p.column-k,T=D,R=D,K=0;for(;T>=0;T--){let q=y.charCodeAt(T);if(T!==D&&(q===95||q===45))break;else if(Nc(q)&&Ca(K))break;K=q}T+=1;for(;R<y.length;R++){let q=y.charCodeAt(R);if(Ca(q)&&Nc(K))break;else if(q===95||q===45)break;K=q}if(T<R)m.push({range:new t(p.lineNumber,k+T,p.lineNumber,k+R)})}_addWordRanges(m,u,p){let v=u.getWordAtPosition(p);if(v)m.push({range:new t(p.lineNumber,v.startColumn,p.lineNumber,v.endColumn)})}_addWhitespaceLine(m,u,p){if(u.getLineLength(p.lineNumber)>0&&u.getLineFirstNonWhitespaceColumn(p.lineNumber)===0&&u.getLineLastNonWhitespaceColumn(p.lineNumber)===0)m.push({range:new t(p.lineNumber,1,p.lineNumber,u.getLineMaxColumn(p.lineNumber))})}}var G2=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Z2=function(m,u){return function(p,v){u(p,v,m)}},Mb;class Ob{constructor(m,u){this.index=m,this.ranges=u}mov(m){let u=this.index+(m?1:-1);if(u<0||u>=this.ranges.length)return this;let p=new Ob(u,this.ranges);if(p.ranges[u].equalsRange(this.ranges[this.index]))return p.mov(m);return p}}var Oh=class m{static{Mb=this}static{this.ID="editor.contrib.smartSelectController"}static get(u){return u.getContribution(Mb.ID)}constructor(u,p){this._editor=u,this._languageFeaturesService=p,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(u){if(!this._editor.hasModel())return;let p=this._editor.getSelections(),v=this._editor.getModel();if(!this._state)await eI(this._languageFeaturesService.selectionRangeProvider,v,p.map((k)=>k.getPosition()),this._editor.getOption(129),he.None).then((k)=>{if(!Ln(k)||k.length!==p.length)return;if(!this._editor.hasModel()||!Ke(this._editor.getSelections(),p,(D,T)=>D.equalsSelection(T)))return;for(let D=0;D<k.length;D++)k[D]=k[D].filter((T)=>T.containsPosition(p[D].getStartPosition())&&T.containsPosition(p[D].getEndPosition())),k[D].unshift(p[D]);this._state=k.map((D)=>new Ob(0,D)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignoreSelection)this._selectionListener?.dispose(),this._state=void 0})});if(!this._state)return;this._state=this._state.map((k)=>k.mov(u));let y=this._state.map((k)=>O.fromPositions(k.ranges[k.index].getStartPosition(),k.ranges[k.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(y)}finally{this._ignoreSelection=!1}}};Oh=Mb=G2([Z2(1,j)],Oh);class Pb extends z{constructor(m,u){super(u);this._forward=m}async run(m,u){let p=Oh.get(u);if(p)await p.run(this._forward)}}class $x extends Pb{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:h(1469,"Expand Selection"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"1_basic",title:e(1467,"&&Expand Selection"),order:2}})}}we.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class Gx extends Pb{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:h(1470,"Shrink Selection"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:a.MenubarSelectionMenu,group:"1_basic",title:e(1468,"&&Shrink Selection"),order:3}})}}le(Oh.ID,Oh,4);I($x);I(Gx);async function eI(m,u,p,v,y){let k=m.all(u).concat(new Nb(v.selectSubwords));if(k.length===1)k.unshift(new Ko);let D=[],T=[];for(let R of k)D.push(Promise.resolve(R.provideSelectionRanges(u,p,y)).then((K)=>{if(Ln(K)&&K.length===p.length)for(let q=0;q<p.length;q++){if(!T[q])T[q]=[];for(let Q of K[q])if(t.isIRange(Q.range)&&t.containsPosition(Q.range,p[q]))T[q].push(t.lift(Q.range))}},dt));return await Promise.all(D),T.map((R)=>{if(R.length===0)return[];R.sort((te,ne)=>{if(r.isBefore(te.getStartPosition(),ne.getStartPosition()))return 1;else if(r.isBefore(ne.getStartPosition(),te.getStartPosition()))return-1;else if(r.isBefore(te.getEndPosition(),ne.getEndPosition()))return-1;else if(r.isBefore(ne.getEndPosition(),te.getEndPosition()))return 1;else return 0});let K=[],q;for(let te of R)if(!q||t.containsRange(te,q)&&!t.equalsRange(te,q))K.push(te),q=te;if(!v.selectLeadingAndTrailingWhitespace)return K;let Q=[K[0]];for(let te=1;te<K.length;te++){let ne=K[te-1],re=K[te];if(re.startLineNumber!==ne.startLineNumber||re.endLineNumber!==ne.endLineNumber){let ae=new t(ne.startLineNumber,u.getLineFirstNonWhitespaceColumn(ne.startLineNumber),ne.endLineNumber,u.getLineLastNonWhitespaceColumn(ne.endLineNumber));if(ae.containsRange(ne)&&!ae.equalsRange(ne)&&re.containsRange(ae)&&!re.equalsRange(ae))Q.push(ae);let ge=new t(ne.startLineNumber,1,ne.endLineNumber,u.getLineMaxColumn(ne.endLineNumber));if(ge.containsRange(ne)&&!ge.equalsRange(ae)&&re.containsRange(ge)&&!re.equalsRange(ge))Q.push(ge)}Q.push(re)}return Q})}we.registerCommand("_executeSelectionRangeProvider",async function(m,...u){let[p,v]=u;Ie(W.isUri(p)),Ie(HI(v,(D)=>r.isIPosition(D)));let y=m.get(j).selectionRangeProvider,k=await m.get(mn).createModelReference(p);try{return eI(y,k.object.textEditorModel,v.map(r.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},he.None)}finally{k.dispose()}});class lc extends Bt{constructor(m){super(m);this._inSelectionMode=m.inSelectionMode,this._wordNavigationType=m.wordNavigationType}runEditorCommand(m,u,p){if(!u.hasModel())return;let v=xr(u.getOption(148),u.getOption(147)),y=u.getModel(),k=u.getSelections(),D=k.length>1,T=k.map((R)=>{let K=new r(R.positionLineNumber,R.positionColumn),q=this._move(v,y,K,this._wordNavigationType,D);return this._moveTo(R,q,this._inSelectionMode)});if(y.pushStackElement(),u._getViewModel().setCursorStates("moveWordCommand",3,T.map((R)=>Ve.fromModelSelection(R))),T.length===1){let R=new r(T[0].positionLineNumber,T[0].positionColumn);u.revealPosition(R,0)}}_moveTo(m,u,p){if(p)return new O(m.selectionStartLineNumber,m.selectionStartColumn,u.lineNumber,u.column);else return new O(u.lineNumber,u.column,u.lineNumber,u.column)}}class fs extends lc{_move(m,u,p,v,y){return St.moveWordLeft(m,u,p,v,y)}}class bs extends lc{_move(m,u,p,v,y){return St.moveWordRight(m,u,p,v)}}class tI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class iI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class oI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(ou,Ey)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}class nI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class rI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class sI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(ou,Ey)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class aI extends fs{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(m,u,p,v,y){return super._move(xr(Wi.wordSeparators.defaultValue,m.intlSegmenterLocales),u,p,v,y)}}class dI extends fs{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(m,u,p,v,y){return super._move(xr(Wi.wordSeparators.defaultValue,m.intlSegmenterLocales),u,p,v,y)}}class cI extends bs{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class lI extends bs{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(ou,Ey)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}class hI extends bs{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class uI extends bs{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class gI extends bs{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:_.and(o.textInputFocus,_.and(ou,Ey)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class pI extends bs{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class mI extends bs{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(m,u,p,v,y){return super._move(xr(Wi.wordSeparators.defaultValue,m.intlSegmenterLocales),u,p,v,y)}}class fI extends bs{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(m,u,p,v,y){return super._move(xr(Wi.wordSeparators.defaultValue,m.intlSegmenterLocales),u,p,v,y)}}class hc extends Bt{constructor(m){super({canTriggerInlineEdits:!0,...m});this._whitespaceHeuristics=m.whitespaceHeuristics,this._wordNavigationType=m.wordNavigationType}runEditorCommand(m,u,p){let v=m?.get(et);if(!u.hasModel()||!v)return;let y=xr(u.getOption(148),u.getOption(147)),k=u.getModel(),D=u.getSelections(),T=u.getOption(10),R=u.getOption(15),K=v.getLanguageConfiguration(k.getLanguageId()).getAutoClosingPairs(),q=u._getViewModel(),Q=D.map((te)=>{let ne=this._delete({wordSeparators:y,model:k,selection:te,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:u.getOption(13),autoClosingBrackets:T,autoClosingQuotes:R,autoClosingPairs:K,autoClosedCharacters:q.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ii(ne,"")});u.pushUndoStop(),u.executeCommands(this.id,Q),u.pushUndoStop()}}class yp extends hc{_delete(m,u){let p=St.deleteWordLeft(m,u);if(p)return p;return new t(1,1,1,1)}}class xp extends hc{_delete(m,u){let p=St.deleteWordRight(m,u);if(p)return p;let v=m.model.getLineCount(),y=m.model.getLineMaxColumn(v);return new t(v,y,v,y)}}class _I extends yp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:o.writable})}}class bI extends yp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:o.writable})}}class vI extends yp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class wI extends xp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:o.writable})}}class SI extends xp{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:o.writable})}}class CI extends xp{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class yI extends z{constructor(){super({id:"deleteInsideWord",precondition:o.writable,label:h(1650,"Delete Word"),metadata:{description:h(1651,"Delete the word at the cursor"),args:[{name:"args",schema:{type:"object",properties:{onlyWord:{type:"boolean",default:!1,description:e(1649,"Delete only the word and leave surrounding whitespace")}}}}]}})}run(m,u,p){if(!u.hasModel())return;let v=!!(p&&typeof p==="object"&&p.onlyWord),y=xr(u.getOption(148),u.getOption(147)),k=u.getModel(),T=u.getSelections().map((R)=>{let K=St.deleteInsideWord(y,k,R,v);return new ii(K,"")});u.pushUndoStop(),u.executeCommands(this.id,T),u.pushUndoStop()}}U(new tI);U(new iI);U(new oI);U(new nI);U(new rI);U(new sI);U(new cI);U(new lI);U(new hI);U(new uI);U(new gI);U(new pI);U(new aI);U(new dI);U(new mI);U(new fI);U(new _I);U(new bI);U(new vI);U(new wI);U(new SI);U(new CI);I(yI);class xI extends hc{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(m,u){let p=wg.deleteWordPartLeft(m);if(p)return p;return new t(1,1,1,1)}}class II extends hc{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:o.writable,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(m,u){let p=wg.deleteWordPartRight(m);if(p)return p;let v=m.model.getLineCount(),y=m.model.getLineMaxColumn(v);return new t(v,y,v,y)}}class Ab extends lc{_move(m,u,p,v,y){return wg.moveWordPartLeft(m,u,p,y)}}class LI extends Ab{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}we.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class kI extends Ab{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}we.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class Fb extends lc{_move(m,u,p,v,y){return wg.moveWordPartRight(m,u,p)}}class EI extends Fb{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class DI extends Fb{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}U(new xI);U(new II);U(new LI);U(new kI);U(new EI);U(new DI);var X2={[0]:" ",[1]:"u",[2]:"r"};var uc=16777215;class Ip{constructor(m){let u=Math.ceil(m/32);this._states=new Uint32Array(u)}get(m){let u=m/32|0,p=m%32;return(this._states[u]&1<<p)!==0}set(m,u){let p=m/32|0,v=m%32,y=this._states[p];if(u)this._states[p]=y|1<<v;else this._states[p]=y&~(1<<v)}}class Zi{constructor(m,u,p){if(m.length!==u.length||m.length>65535)throw Error("invalid startIndexes or endIndexes size");this._startIndexes=m,this._endIndexes=u,this._collapseStates=new Ip(m.length),this._userDefinedStates=new Ip(m.length),this._recoveredStates=new Ip(m.length),this._types=p,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let m=[],u=(p,v)=>{let y=m[m.length-1];return this.getStartLineNumber(y)<=p&&this.getEndLineNumber(y)>=v};for(let p=0,v=this._startIndexes.length;p<v;p++){let y=this._startIndexes[p],k=this._endIndexes[p];if(y>16777215||k>16777215)throw Error("startLineNumber or endLineNumber must not exceed 16777215");while(m.length>0&&!u(y,k))m.pop();let D=m.length>0?m[m.length-1]:-1;m.push(p),this._startIndexes[p]=y+((D&255)<<24),this._endIndexes[p]=k+((D&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(m){return this._startIndexes[m]&16777215}getEndLineNumber(m){return this._endIndexes[m]&16777215}getType(m){return this._types?this._types[m]:void 0}hasTypes(){return!!this._types}isCollapsed(m){return this._collapseStates.get(m)}setCollapsed(m,u){this._collapseStates.set(m,u)}isUserDefined(m){return this._userDefinedStates.get(m)}setUserDefined(m,u){return this._userDefinedStates.set(m,u)}isRecovered(m){return this._recoveredStates.get(m)}setRecovered(m,u){return this._recoveredStates.set(m,u)}getSource(m){if(this.isUserDefined(m))return 1;else if(this.isRecovered(m))return 2;return 0}setSource(m,u){if(u===1)this.setUserDefined(m,!0),this.setRecovered(m,!1);else if(u===2)this.setUserDefined(m,!1),this.setRecovered(m,!0);else this.setUserDefined(m,!1),this.setRecovered(m,!1)}setCollapsedAllOfType(m,u){let p=!1;if(this._types){for(let v=0;v<this._types.length;v++)if(this._types[v]===m)this.setCollapsed(v,u),p=!0}return p}toRegion(m){return new TI(this,m)}getParentIndex(m){this.ensureParentIndices();let u=((this._startIndexes[m]&4278190080)>>>24)+((this._endIndexes[m]&4278190080)>>>16);if(u===65535)return-1;return u}contains(m,u){return this.getStartLineNumber(m)<=u&&this.getEndLineNumber(m)>=u}findIndex(m){let u=0,p=this._startIndexes.length;if(p===0)return-1;while(u<p){let v=Math.floor((u+p)/2);if(m<this.getStartLineNumber(v))p=v;else u=v+1}return u-1}findRange(m){let u=this.findIndex(m);if(u>=0){if(this.getEndLineNumber(u)>=m)return u;u=this.getParentIndex(u);while(u!==-1){if(this.contains(u,m))return u;u=this.getParentIndex(u)}}return-1}toString(){let m=[];for(let u=0;u<this.length;u++)m[u]=`[${X2[this.getSource(u)]}${this.isCollapsed(u)?"+":"-"}] ${this.getStartLineNumber(u)}/${this.getEndLineNumber(u)}`;return m.join(", ")}toFoldRange(m){return{startLineNumber:this._startIndexes[m]&16777215,endLineNumber:this._endIndexes[m]&16777215,type:this._types?this._types[m]:void 0,isCollapsed:this.isCollapsed(m),source:this.getSource(m)}}static fromFoldRanges(m){let u=m.length,p=new Uint32Array(u),v=new Uint32Array(u),y=[],k=!1;for(let T=0;T<u;T++){let R=m[T];if(p[T]=R.startLineNumber,v[T]=R.endLineNumber,y.push(R.type),R.type)k=!0}if(!k)y=void 0;let D=new Zi(p,v,y);for(let T=0;T<u;T++){if(m[T].isCollapsed)D.setCollapsed(T,!0);D.setSource(T,m[T].source)}return D}static sanitizeAndMerge(m,u,p,v){p=p??Number.MAX_VALUE;let y=(ae,ge)=>Array.isArray(ae)?(Se)=>Se<ge?ae[Se]:void 0:(Se)=>Se<ge?ae.toFoldRange(Se):void 0,k=y(m,m.length),D=y(u,u.length),T=0,R=0,K=k(0),q=D(0),Q=[],te,ne=0,re=[];while(K||q){let ae=void 0;if(q&&(!K||K.startLineNumber>=q.startLineNumber)){if(K&&K.startLineNumber===q.startLineNumber){if(q.source===1)ae=q;else ae=K,ae.isCollapsed=q.isCollapsed&&(K.endLineNumber===q.endLineNumber||!v?.startsInside(K.startLineNumber+1,K.endLineNumber+1)),ae.source=0;K=k(++T)}else if(ae=q,q.isCollapsed&&q.source===0)ae.source=2;q=D(++R)}else{let ge=R,Se=q;while(!0){if(!Se||Se.startLineNumber>K.endLineNumber){ae=K;break}if(Se.source===1&&Se.endLineNumber>K.endLineNumber)break;Se=D(++ge)}K=k(++T)}if(ae){while(te&&te.endLineNumber<ae.startLineNumber)te=Q.pop();if(ae.endLineNumber>ae.startLineNumber&&ae.startLineNumber>ne&&ae.endLineNumber<=p&&(!te||te.endLineNumber>=ae.endLineNumber)){if(re.push(ae),ne=ae.startLineNumber,te)Q.push(te);te=ae}}}return re}}class TI{constructor(m,u){this.ranges=m,this.index=u}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(m){return m.startLineNumber<=this.startLineNumber&&m.endLineNumber>=this.endLineNumber}containsLine(m){return this.startLineNumber<=m&&m<=this.endLineNumber}}class Hb{get regions(){return this._regions}get textModel(){return this._textModel}constructor(m,u){this._updateEventEmitter=new i,this.onDidChange=this._updateEventEmitter.event,this._textModel=m,this._decorationProvider=u,this._regions=new Zi(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(m){if(!m.length)return;m=m.sort((p,v)=>p.regionIndex-v.regionIndex);let u={};this._decorationProvider.changeDecorations((p)=>{let v=0,y=-1,k=-1,D=(T)=>{while(v<T){let R=this._regions.getEndLineNumber(v),K=this._regions.isCollapsed(v);if(R<=y){let q=this.regions.getSource(v)!==0;p.changeDecorationOptions(this._editorDecorationIds[v],this._decorationProvider.getDecorationOption(K,R<=k,q))}if(K&&R>k)k=R;v++}};for(let T of m){let R=T.regionIndex,K=this._editorDecorationIds[R];if(K&&!u[K]){u[K]=!0,D(R);let q=!this._regions.isCollapsed(R);this._regions.setCollapsed(R,q),y=Math.max(y,this._regions.getEndLineNumber(R))}}D(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:m})}removeManualRanges(m){let u=new Set,p=!1;for(let k of m)if(t.isEmpty(k)){let D=this._regions.findRange(k.startLineNumber);while(D!==-1&&this._regions.getSource(D)===0)D=this._regions.getParentIndex(D);if(D===-1)p=!0;else u.add(D)}let v=[],y=(k)=>{for(let D of m)if(!t.isEmpty(D)&&!(D.startLineNumber>k.endLineNumber||k.startLineNumber>D.endLineNumber))return!0;return!1};for(let k=0;k<this._regions.length;k++){let D=this._regions.toFoldRange(k);if(D.source===0||!p&&!u.has(k)&&!y(D))v.push(D)}this.updatePost(Zi.fromFoldRanges(v))}update(m,u){let p=this._currentFoldedOrManualRanges(u),v=Zi.sanitizeAndMerge(m,p,this._textModel.getLineCount(),u);this.updatePost(Zi.fromFoldRanges(v))}updatePost(m){let u=[],p=-1;for(let v=0,y=m.length;v<y;v++){let k=m.getStartLineNumber(v),D=m.getEndLineNumber(v),T=m.isCollapsed(v),R=m.getSource(v)!==0,K={startLineNumber:k,startColumn:this._textModel.getLineMaxColumn(k),endLineNumber:D,endColumn:this._textModel.getLineMaxColumn(D)+1};if(u.push({range:K,options:this._decorationProvider.getDecorationOption(T,D<=p,R)}),T&&D>p)p=D}this._decorationProvider.changeDecorations((v)=>this._editorDecorationIds=v.deltaDecorations(this._editorDecorationIds,u)),this._regions=m,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(m){let u=[];for(let p=0,v=this._regions.length;p<v;p++){let y=this.regions.isCollapsed(p),k=this.regions.getSource(p);if(y||k!==0){let D=this._regions.toFoldRange(p),T=this._textModel.getDecorationRange(this._editorDecorationIds[p]);if(T){if(y&&m?.startsInside(T.startLineNumber+1,T.endLineNumber))y=!1;u.push({startLineNumber:T.startLineNumber,endLineNumber:T.endLineNumber,type:D.type,isCollapsed:y,source:k})}}}return u}getMemento(){let m=this._currentFoldedOrManualRanges(),u=[],p=this._textModel.getLineCount();for(let v=0,y=m.length;v<y;v++){let k=m[v];if(k.startLineNumber>=k.endLineNumber||k.startLineNumber<1||k.endLineNumber>p)continue;let D=this._getLinesChecksum(k.startLineNumber+1,k.endLineNumber);u.push({startLineNumber:k.startLineNumber,endLineNumber:k.endLineNumber,isCollapsed:k.isCollapsed,source:k.source,checksum:D})}return u.length>0?u:void 0}applyMemento(m){if(!Array.isArray(m))return;let u=[],p=this._textModel.getLineCount();for(let y of m){if(y.startLineNumber>=y.endLineNumber||y.startLineNumber<1||y.endLineNumber>p)continue;let k=this._getLinesChecksum(y.startLineNumber+1,y.endLineNumber);if(!y.checksum||k===y.checksum)u.push({startLineNumber:y.startLineNumber,endLineNumber:y.endLineNumber,type:void 0,isCollapsed:y.isCollapsed??!0,source:y.source??0})}let v=Zi.sanitizeAndMerge(this._regions,u,p);this.updatePost(Zi.fromFoldRanges(v))}_getLinesChecksum(m,u){return Mc(this._textModel.getLineContent(m)+this._textModel.getLineContent(u))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(m,u){let p=[];if(this._regions){let v=this._regions.findRange(m),y=1;while(v>=0){let k=this._regions.toRegion(v);if(!u||u(k,y))p.push(k);y++,v=k.parentIndex}}return p}getRegionAtLine(m){if(this._regions){let u=this._regions.findRange(m);if(u>=0)return this._regions.toRegion(u)}return null}getRegionsInside(m,u){let p=[],v=m?m.regionIndex+1:0,y=m?m.endLineNumber:Number.MAX_VALUE;if(u&&u.length===2){let k=[];for(let D=v,T=this._regions.length;D<T;D++){let R=this._regions.toRegion(D);if(this._regions.getStartLineNumber(D)<y){while(k.length>0&&!R.containedBy(k[k.length-1]))k.pop();if(k.push(R),u(R,k.length))p.push(R)}else break}}else for(let k=v,D=this._regions.length;k<D;k++){let T=this._regions.toRegion(k);if(this._regions.getStartLineNumber(k)<y){if(!u||u(T))p.push(T)}else break}return p}}function Fh(m,u,p){let v=[];for(let y of p){let k=m.getRegionAtLine(y);if(k){let D=!k.isCollapsed;if(v.push(k),u>1){let T=m.getRegionsInside(k,(R,K)=>R.isCollapsed!==D&&K<u);v.push(...T)}}}m.toggleCollapseState(v)}function sd(m,u,p=Number.MAX_VALUE,v){let y=[];if(v&&v.length>0)for(let k of v){let D=m.getRegionAtLine(k);if(D){if(D.isCollapsed!==u)y.push(D);if(p>1){let T=m.getRegionsInside(D,(R,K)=>R.isCollapsed!==u&&K<p);y.push(...T)}}}else{let k=m.getRegionsInside(null,(D,T)=>D.isCollapsed!==u&&T<p);y.push(...k)}m.toggleCollapseState(y)}function Wb(m,u,p,v){let y=[];for(let k of v){let D=m.getAllRegionsAtLine(k,(T,R)=>T.isCollapsed!==u&&R<=p);y.push(...D)}m.toggleCollapseState(y)}function RI(m,u,p){let v=[];for(let y of p){let k=m.getAllRegionsAtLine(y,(D)=>D.isCollapsed!==u);if(k.length>0)v.push(k[0])}m.toggleCollapseState(v)}function NI(m,u,p,v){let y=(D,T)=>T===u&&D.isCollapsed!==p&&!v.some((R)=>D.containsLine(R)),k=m.getRegionsInside(null,y);m.toggleCollapseState(k)}function Bb(m,u,p){let v=[];for(let D of p){let T=m.getAllRegionsAtLine(D,void 0);if(T.length>0)v.push(T[0])}let y=(D)=>v.every((T)=>!T.containedBy(D)&&!D.containedBy(T))&&D.isCollapsed!==u,k=m.getRegionsInside(null,y);m.toggleCollapseState(k)}function Lp(m,u,p){let{textModel:v,regions:y}=m,k=[];for(let D=y.length-1;D>=0;D--)if(p!==y.isCollapsed(D)){let T=y.getStartLineNumber(D);if(u.test(v.getLineContent(T)))k.push(y.toRegion(D))}m.toggleCollapseState(k)}function kp(m,u,p){let v=m.regions,y=[];for(let k=v.length-1;k>=0;k--)if(p!==v.isCollapsed(k)&&u===v.getType(k))y.push(v.toRegion(k));m.toggleCollapseState(y)}function MI(m,u){let p=null,v=u.getRegionAtLine(m);if(v!==null){if(p=v.startLineNumber,m===p){let y=v.parentIndex;if(y!==-1)p=u.regions.getStartLineNumber(y);else p=null}}return p}function OI(m,u){let p=u.getRegionAtLine(m);if(p!==null&&p.startLineNumber===m)if(m!==p.startLineNumber)return p.startLineNumber;else{let v=p.parentIndex,y=0;if(v!==-1)y=u.regions.getStartLineNumber(p.parentIndex);while(p!==null)if(p.regionIndex>0){if(p=u.regions.toRegion(p.regionIndex-1),p.startLineNumber<=y)return null;else if(p.parentIndex===v)return p.startLineNumber}else return null}else if(u.regions.length>0){p=u.regions.toRegion(u.regions.length-1);while(p!==null){if(p.startLineNumber<m)return p.startLineNumber;if(p.regionIndex>0)p=u.regions.toRegion(p.regionIndex-1);else p=null}}return null}function AI(m,u){let p=u.getRegionAtLine(m);if(p!==null&&p.startLineNumber===m){let v=p.parentIndex,y=0;if(v!==-1)y=u.regions.getEndLineNumber(p.parentIndex);else if(u.regions.length===0)return null;else y=u.regions.getEndLineNumber(u.regions.length-1);while(p!==null)if(p.regionIndex<u.regions.length){if(p=u.regions.toRegion(p.regionIndex+1),p.startLineNumber>=y)return null;else if(p.parentIndex===v)return p.startLineNumber}else return null}else if(u.regions.length>0){p=u.regions.toRegion(0);while(p!==null){if(p.startLineNumber>m)return p.startLineNumber;if(p.regionIndex<u.regions.length)p=u.regions.toRegion(p.regionIndex+1);else p=null}}return null}class Vb{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(m){if(this._updateEventEmitter=new i,this._hasLineChanges=!1,this._foldingModel=m,this._foldingModelListener=m.onDidChange((u)=>this.updateHiddenRanges()),this._hiddenRanges=[],m.regions.length)this.updateHiddenRanges()}notifyChangeModelContent(m){if(this._hiddenRanges.length&&!this._hasLineChanges)this._hasLineChanges=m.changes.some((u)=>u.range.endLineNumber!==u.range.startLineNumber||Is(u.text)[0]!==0)}updateHiddenRanges(){let m=!1,u=[],p=0,v=0,y=Number.MAX_VALUE,k=-1,D=this._foldingModel.regions;for(;p<D.length;p++){if(!D.isCollapsed(p))continue;let T=D.getStartLineNumber(p)+1,R=D.getEndLineNumber(p);if(y<=T&&R<=k)continue;if(!m&&v<this._hiddenRanges.length&&this._hiddenRanges[v].startLineNumber===T&&this._hiddenRanges[v].endLineNumber===R)u.push(this._hiddenRanges[v]),v++;else m=!0,u.push(new t(T,1,R,1));y=T,k=R}if(this._hasLineChanges||m||v<this._hiddenRanges.length)this.applyHiddenRanges(u)}applyHiddenRanges(m){this._hiddenRanges=m,this._hasLineChanges=!1,this._updateEventEmitter.fire(m)}hasRanges(){return this._hiddenRanges.length>0}isHidden(m){return VI(this._hiddenRanges,m)!==null}adjustSelections(m){let u=!1,p=this._foldingModel.textModel,v=null,y=(k)=>{if(!v||!Y2(k,v))v=VI(this._hiddenRanges,k);if(v)return v.startLineNumber-1;return null};for(let k=0,D=m.length;k<D;k++){let T=m[k],R=y(T.startLineNumber);if(R)T=T.setStartPosition(R,p.getLineMaxColumn(R)),u=!0;let K=y(T.endLineNumber);if(K)T=T.setEndPosition(K,p.getLineMaxColumn(K)),u=!0;m[k]=T}return u}dispose(){if(this.hiddenRanges.length>0)this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges);if(this._foldingModelListener)this._foldingModelListener.dispose(),this._foldingModelListener=null;this._updateEventEmitter.dispose()}}function Y2(m,u){return m>=u.startLineNumber&&m<=u.endLineNumber}function VI(m,u){let p=_h(m,(v)=>u<v.startLineNumber)-1;if(p>=0&&m[p].endLineNumber>=u)return m[p];return null}var J2=5000,Q2="indent";class gc{constructor(m,u,p){this.editorModel=m,this.languageConfigurationService=u,this.foldingRangesLimit=p,this.id=Q2}dispose(){}compute(m){let u=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,p=u&&!!u.offSide,v=u&&u.markers;return Promise.resolve(tT(this.editorModel,p,v,this.foldingRangesLimit))}}class UI{constructor(m){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=m}insertFirst(m,u,p){if(m>uc||u>uc)return;let v=this._length;if(this._startIndexes[v]=m,this._endIndexes[v]=u,this._length++,p<1000)this._indentOccurrences[p]=(this._indentOccurrences[p]||0)+1}toIndentRanges(m){let u=this._foldingRangesLimit.limit;if(this._length<=u){this._foldingRangesLimit.update(this._length,!1);let p=new Uint32Array(this._length),v=new Uint32Array(this._length);for(let y=this._length-1,k=0;y>=0;y--,k++)p[k]=this._startIndexes[y],v[k]=this._endIndexes[y];return new Zi(p,v)}else{this._foldingRangesLimit.update(this._length,u);let p=0,v=this._indentOccurrences.length;for(let T=0;T<this._indentOccurrences.length;T++){let R=this._indentOccurrences[T];if(R){if(R+p>u){v=T;break}p+=R}}let y=m.getOptions().tabSize,k=new Uint32Array(u),D=new Uint32Array(u);for(let T=this._length-1,R=0;T>=0;T--){let K=this._startIndexes[T],q=m.getLineContent(K),Q=uf(q,y);if(Q<v||Q===v&&p++<u)k[R]=K,D[R]=this._endIndexes[T],R++}return new Zi(k,D)}}}var eT={limit:J2,update:()=>{}};function tT(m,u,p,v=eT){let y=m.getOptions().tabSize,k=new UI(v),D=void 0,T=void 0,R=void 0;if(p)if(p.start.flags===p.end.flags)D=new RegExp(`(${p.start.source})|(?:${p.end.source})`,p.start.flags);else T=p.start,R=p.end;let K=[],q=m.getLineCount()+1;K.push({indent:-1,endAbove:q,line:q});for(let Q=m.getLineCount();Q>0;Q--){let te=m.getLineContent(Q),ne=uf(te,y),re=K[K.length-1];if(ne===-1){if(u)re.endAbove=Q;continue}let ae=!1,ge=!1,Se;if(D){if(D.lastIndex=0,Se=D.exec(te))ae=!!Se[1],ge=!ae}else{if(T)T.lastIndex=0,ae=T.test(te);if(!ae&&R)R.lastIndex=0,ge=R.test(te)}if(ae||ge)if(ae){let Oe=K.length-1;while(Oe>0&&K[Oe].indent!==-2)Oe--;if(Oe>0){K.length=Oe+1,re=K[Oe],k.insertFirst(Q,re.line,ne),re.line=Q,re.indent=ne,re.endAbove=Q;continue}}else{K.push({indent:-2,endAbove:Q,line:Q});continue}if(re.indent>ne){do K.pop(),re=K[K.length-1];while(re.indent>ne);let Oe=re.endAbove-1;if(Oe-Q>=1)k.insertFirst(Q,Oe,ne)}if(re.indent===ne)re.endAbove=Q;else K.push({indent:ne,endAbove:Q,line:Q})}return k.toIndentRanges(m)}var iT=s("editor.foldBackground",{light:de(Xl,0.3),dark:de(Xl,0.3),hcDark:null,hcLight:null},e(1060,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);s("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},e(1061,"Color of the collapsed text after the first line of a folded range."));s("editorGutter.foldingControlForeground",Qp,e(1062,"Color of the folding control in the editor gutter."));var Hh=Lt("folding-expanded",b.chevronDown,e(1063,"Icon for expanded ranges in the editor glyph margin.")),Vh=Lt("folding-collapsed",b.chevronRight,e(1064,"Icon for collapsed ranges in the editor glyph margin.")),$I=Lt("folding-manual-collapsed",Vh,e(1065,"Icon for manually collapsed ranges in the editor glyph margin.")),a0=Lt("folding-manual-expanded",Hh,e(1066,"Icon for manually expanded ranges in the editor glyph margin.")),zb={color:en(iT),position:1},pc=e(1067,"Click to expand the range."),Ep=e(1068,"Click to collapse the range.");class Lo{static{this.COLLAPSED_VISUAL_DECORATION=oe.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:pc,firstLineDecorationClassName:G.asClassName(Vh)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=oe.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:zb,isWholeLine:!0,linesDecorationsTooltip:pc,firstLineDecorationClassName:G.asClassName(Vh)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=oe.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:pc,firstLineDecorationClassName:G.asClassName($I)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=oe.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:zb,isWholeLine:!0,linesDecorationsTooltip:pc,firstLineDecorationClassName:G.asClassName($I)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:pc})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:zb,isWholeLine:!0,linesDecorationsTooltip:pc})}static{this.EXPANDED_VISUAL_DECORATION=oe.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+G.asClassName(Hh),linesDecorationsTooltip:Ep})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=oe.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:G.asClassName(Hh),linesDecorationsTooltip:Ep})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=oe.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+G.asClassName(a0),linesDecorationsTooltip:Ep})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=oe.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:G.asClassName(a0),linesDecorationsTooltip:Ep})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=oe.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=oe.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(m){this.editor=m,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(m,u,p){if(u)return Lo.HIDDEN_RANGE_DECORATION;if(this.showFoldingControls==="never"){if(m)return this.showFoldingHighlights?Lo.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:Lo.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;return Lo.NO_CONTROLS_EXPANDED_RANGE_DECORATION}if(m)return p?this.showFoldingHighlights?Lo.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Lo.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?Lo.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:Lo.COLLAPSED_VISUAL_DECORATION;else if(this.showFoldingControls==="mouseover")return p?Lo.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:Lo.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;else return p?Lo.MANUALLY_EXPANDED_VISUAL_DECORATION:Lo.EXPANDED_VISUAL_DECORATION}changeDecorations(m){return this.editor.changeDecorations(m)}removeDecorations(m){this.editor.removeDecorations(m)}}var oT={},nT="syntax";class mc{constructor(m,u,p,v,y){if(this.editorModel=m,this.providers=u,this.handleFoldingRangesChange=p,this.foldingRangesLimit=v,this.fallbackRangeProvider=y,this.id=nT,this.disposables=new c,y)this.disposables.add(y);for(let k of u)if(typeof k.onDidChange==="function")this.disposables.add(k.onDidChange(p))}compute(m){return rT(this.providers,this.editorModel,m).then((u)=>{if(this.editorModel.isDisposed())return null;if(u)return sT(u,this.foldingRangesLimit);return this.fallbackRangeProvider?.compute(m)??null})}dispose(){this.disposables.dispose()}}function rT(m,u,p){let v=null,y=m.map((k,D)=>Promise.resolve(k.provideFoldingRanges(u,oT,p)).then((T)=>{if(p.isCancellationRequested)return;if(Array.isArray(T)){if(!Array.isArray(v))v=[];let R=u.getLineCount();for(let K of T)if(K.start>0&&K.end>K.start&&K.end<=R)v.push({start:K.start,end:K.end,rank:D,kind:K.kind})}},dt));return Promise.all(y).then((k)=>v)}class p0{constructor(m){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=m}add(m,u,p,v){if(m>uc||u>uc)return;let y=this._length;if(this._startIndexes[y]=m,this._endIndexes[y]=u,this._nestingLevels[y]=v,this._types[y]=p,this._length++,v<30)this._nestingLevelCounts[v]=(this._nestingLevelCounts[v]||0)+1}toIndentRanges(){let m=this._foldingRangesLimit.limit;if(this._length<=m){this._foldingRangesLimit.update(this._length,!1);let u=new Uint32Array(this._length),p=new Uint32Array(this._length);for(let v=0;v<this._length;v++)u[v]=this._startIndexes[v],p[v]=this._endIndexes[v];return new Zi(u,p,this._types)}else{this._foldingRangesLimit.update(this._length,m);let u=0,p=this._nestingLevelCounts.length;for(let D=0;D<this._nestingLevelCounts.length;D++){let T=this._nestingLevelCounts[D];if(T){if(T+u>m){p=D;break}u+=T}}let v=new Uint32Array(m),y=new Uint32Array(m),k=[];for(let D=0,T=0;D<this._length;D++){let R=this._nestingLevels[D];if(R<p||R===p&&u++<m)v[T]=this._startIndexes[D],y[T]=this._endIndexes[D],k[T]=this._types[D],T++}return new Zi(v,y,k)}}}function sT(m,u){let p=m.sort((D,T)=>{let R=D.start-T.start;if(R===0)R=D.rank-T.rank;return R}),v=new p0(u),y=void 0,k=[];for(let D of p)if(!y)y=D,v.add(D.start,D.end,D.kind&&D.kind.value,k.length);else if(D.start>y.start)if(D.end<=y.end)k.push(y),y=D,v.add(D.start,D.end,D.kind&&D.kind.value,k.length);else{if(D.start>y.end){do y=k.pop();while(y&&D.start>y.end);if(y)k.push(y);y=D}v.add(D.start,D.end,D.kind&&D.kind.value,k.length)}return v.toIndentRanges()}var aT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Kh=function(m,u){return function(p,v){u(p,v,m)}},Uh,Ni=new A("foldingEnabled",!1),qr=class m extends n{static{Uh=this}static{this.ID="editor.contrib.folding"}static get(u){return u.getContribution(Uh.ID)}static getFoldingRangeProviders(u,p){let v=u.foldingRangeProvider.ordered(p);return Uh._foldingRangeSelector?.(v,p)??v}constructor(u,p,v,y,k,D){super();this.contextKeyService=p,this.languageConfigurationService=v,this.languageFeaturesService=D,this.localToDispose=this._register(new c),this.editor=u,this._foldingLimitReporter=this._register(new Dp(u));let T=this.editor.getOptions();this._isEnabled=T.get(52),this._useFoldingProviders=T.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=T.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=T.get(55),this.updateDebounceInfo=k.for(D.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new Lo(u),this.foldingDecorationProvider.showFoldingControls=T.get(126),this.foldingDecorationProvider.showFoldingHighlights=T.get(54),this.foldingEnabled=Ni.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration((R)=>{if(R.hasChanged(52))this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged();if(R.hasChanged(56))this.onModelChanged();if(R.hasChanged(126)||R.hasChanged(54)){let K=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=K.get(126),this.foldingDecorationProvider.showFoldingHighlights=K.get(54),this.triggerFoldingModelChanged()}if(R.hasChanged(53))this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged();if(R.hasChanged(57))this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57);if(R.hasChanged(55))this._foldingImportsByDefault=this.editor.getOptions().get(55)})),this.onModelChanged()}saveViewState(){let u=this.editor.getModel();if(!u||!this._isEnabled||u.isTooLargeForTokenization())return{};if(this.foldingModel){let p=this.foldingModel.getMemento(),v=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:p,lineCount:u.getLineCount(),provider:v,foldedImports:this._currentModelHasFoldedImports}}return}restoreViewState(u){let p=this.editor.getModel();if(!p||!this._isEnabled||p.isTooLargeForTokenization()||!this.hiddenRangeModel)return;if(!u)return;if(this._currentModelHasFoldedImports=!!u.foldedImports,u.collapsedRegions&&u.collapsedRegions.length>0&&this.foldingModel){this._restoringViewState=!0;try{this.foldingModel.applyMemento(u.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let u=this.editor.getModel();if(!this._isEnabled||!u||u.isTooLargeForTokenization())return;this._currentModelHasFoldedImports=!1,this.foldingModel=new Hb(u,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new Vb(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((p)=>this.onHiddenRangesChanges(p))),this.updateScheduler=new Ci(this.updateDebounceInfo.get(u)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new be(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent((p)=>this.onDidChangeModelContent(p))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown((p)=>this.onEditorMouseDown(p))),this.localToDispose.add(this.editor.onMouseUp((p)=>this.onEditorMouseUp(p))),this.localToDispose.add({dispose:()=>{if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged()}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(u){if(this.rangeProvider)return this.rangeProvider;let p=new gc(u,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=p,this._useFoldingProviders&&this.foldingModel){let v=Uh.getFoldingRangeProviders(this.languageFeaturesService,u);if(v.length>0)this.rangeProvider=new mc(u,v,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,p)}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(u){this.hiddenRangeModel?.notifyChangeModelContent(u),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){if(this.updateScheduler){if(this.foldingRegionPromise)this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null;this.foldingModelPromise=this.updateScheduler.trigger(()=>{let u=this.foldingModel;if(!u)return null;let p=new Kt,v=this.getRangeProvider(u.textModel),y=this.foldingRegionPromise=Pt((k)=>v.compute(k));return y.then((k)=>{if(k&&y===this.foldingRegionPromise){let D;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let K=k.setCollapsedAllOfType(Or.Imports.value,!0);if(K)D=Sr.capture(this.editor),this._currentModelHasFoldedImports=K}let T=this.editor.getSelections();u.update(k,dT(T)),D?.restore(this.editor);let R=this.updateDebounceInfo.update(u.textModel,p.elapsed());if(this.updateScheduler)this.updateScheduler.defaultDelay=R}return u})}).then(void 0,(u)=>(J(u),null))}}onHiddenRangesChanges(u){if(this.hiddenRangeModel&&u.length&&!this._restoringViewState){let p=this.editor.getSelections();if(p){if(this.hiddenRangeModel.adjustSelections(p))this.editor.setSelections(p)}}this.editor.setHiddenAreas(u,this)}onCursorPositionChanged(){if(this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges())this.cursorChangedScheduler.schedule()}revealCursor(){let u=this.getFoldingModel();if(!u)return;u.then((p)=>{if(p){let v=this.editor.getSelections();if(v&&v.length>0){let y=[];for(let k of v){let D=k.selectionStartLineNumber;if(this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(D))y.push(...p.getAllRegionsAtLine(D,(T)=>T.isCollapsed&&D>T.startLineNumber))}if(y.length)p.toggleCollapseState(y),this.reveal(v[0].getPosition())}}}).then(void 0,J)}onEditorMouseDown(u){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!u.target||!u.target.range)return;if(!u.event.leftButton&&!u.event.middleButton)return;let p=u.target.range,v=!1;switch(u.target.type){case 4:{let y=u.target.detail,k=u.target.element.offsetLeft;if(y.offsetX-k<4)return;v=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!u.target.detail.isAfterLines)break}return}case 6:{if(this.hiddenRangeModel.hasRanges()){let y=this.editor.getModel();if(y&&p.startColumn===y.getLineMaxColumn(p.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:p.startLineNumber,iconClicked:v}}onEditorMouseUp(u){let p=this.foldingModel;if(!p||!this.mouseDownInfo||!u.target)return;let v=this.mouseDownInfo.lineNumber,y=this.mouseDownInfo.iconClicked,k=u.target.range;if(!k||k.startLineNumber!==v)return;if(y){if(u.target.type!==4)return}else{let T=this.editor.getModel();if(!T||k.startColumn!==T.getLineMaxColumn(v))return}let D=p.getRegionAtLine(v);if(D&&D.startLineNumber===v){let T=D.isCollapsed;if(y||T){let R=u.event.altKey,K=[];if(R){let q=(te)=>!te.containedBy(D)&&!D.containedBy(te),Q=p.getRegionsInside(null,q);for(let te of Q)if(te.isCollapsed)K.push(te);if(K.length===0)K=Q}else{let q=u.event.middleButton||u.event.shiftKey;if(q){for(let Q of p.getRegionsInside(D))if(Q.isCollapsed===T)K.push(Q)}if(T||!q||K.length===0)K.push(D)}p.toggleCollapseState(K),this.reveal({lineNumber:v,column:1})}}}reveal(u){this.editor.revealPositionInCenterIfOutsideViewport(u,0)}};qr=Uh=aT([Kh(1,V),Kh(2,et),Kh(3,ut),Kh(4,Hi),Kh(5,j)],qr);class Dp extends n{constructor(m){super();this.editor=m,this._onDidChange=this._register(new i),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(m,u){if(m!==this._computed||u!==this._limited)this._computed=m,this._limited=u,this._onDidChange.fire()}}class Ai extends z{runEditorCommand(m,u,p){let v=m.get(et),y=qr.get(u);if(!y)return;let k=y.getFoldingModel();if(k)return this.reportTelemetry(m,u),k.then((D)=>{if(D){this.invoke(y,D,u,p,v);let T=u.getSelection();if(T)y.reveal(T.getStartPosition())}})}getSelectedLines(m){let u=m.getSelections();return u?u.map((p)=>p.startLineNumber):[]}getLineNumbers(m,u){if(m&&m.selectionLines)return m.selectionLines.map((p)=>p+1);return this.getSelectedLines(u)}run(m,u){}}function dT(m){if(!m||m.length===0)return{startsInside:()=>!1};return{startsInside(u,p){for(let v of m){let y=v.startLineNumber;if(y>=u&&y<=p)return!0}return!1}}}function v0(m){if(!Oi(m)){if(!Gt(m))return!1;let u=m;if(!Oi(u.levels)&&!Xr(u.levels))return!1;if(!Oi(u.direction)&&!hn(u.direction))return!1;if(!Oi(u.selectionLines)&&(!Array.isArray(u.selectionLines)||!u.selectionLines.every(Xr)))return!1}return!0}class L0 extends Ai{constructor(){super({id:"editor.unfold",label:h(1040,"Unfold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument:
22
- * 'levels': Number of levels to unfold. If not set, defaults to 1.
23
- * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
24
- * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.
25
- `,constraint:v0,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(m,u,p,v){let y=v&&v.levels||1,k=this.getLineNumbers(v,p);if(v&&v.direction==="up")Wb(u,!1,y,k);else sd(u,!1,y,k)}}class F0 extends Ai{constructor(){super({id:"editor.unfoldRecursively",label:h(1041,"Unfold Recursively"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2142),weight:100}})}invoke(m,u,p,v){sd(u,!1,Number.MAX_VALUE,this.getSelectedLines(p))}}class z0 extends Ai{constructor(){super({id:"editor.fold",label:h(1042,"Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument:
26
- * 'levels': Number of levels to fold.
27
- * 'direction': If 'up', folds given number of levels up otherwise folds down.
28
- * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.
29
- If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
30
- `,constraint:v0,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(m,u,p,v){let y=this.getLineNumbers(v,p),k=v&&v.levels,D=v&&v.direction;if(typeof k!=="number"&&typeof D!=="string")RI(u,!0,y);else if(D==="up")Wb(u,!0,k||1,y);else sd(u,!0,k||1,y)}}class eL extends Ai{constructor(){super({id:"editor.toggleFold",label:h(1043,"Toggle Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2090),weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);Fh(u,1,v)}}class tL extends Ai{constructor(){super({id:"editor.foldRecursively",label:h(1044,"Fold Recursively"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2140),weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);sd(u,!0,Number.MAX_VALUE,v)}}class iL extends Ai{constructor(){super({id:"editor.toggleFoldRecursively",label:h(1045,"Toggle Fold Recursively"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,3114),weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);Fh(u,Number.MAX_VALUE,v)}}class oL extends Ai{constructor(){super({id:"editor.foldAllBlockComments",label:h(1046,"Fold All Block Comments"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2138),weight:100}})}invoke(m,u,p,v,y){if(u.regions.hasTypes())kp(u,Or.Comment.value,!0);else{let k=p.getModel();if(!k)return;let D=y.getLanguageConfiguration(k.getLanguageId()).comments;if(D&&D.blockCommentStartToken){let T=new RegExp("^\\s*"+_i(D.blockCommentStartToken));Lp(u,T,!0)}}}}class nL extends Ai{constructor(){super({id:"editor.foldAllMarkerRegions",label:h(1047,"Fold All Regions"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2077),weight:100}})}invoke(m,u,p,v,y){if(u.regions.hasTypes())kp(u,Or.Region.value,!0);else{let k=p.getModel();if(!k)return;let D=y.getLanguageConfiguration(k.getLanguageId()).foldingRules;if(D&&D.markers&&D.markers.start){let T=new RegExp(D.markers.start);Lp(u,T,!0)}}}}class rL extends Ai{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:h(1048,"Unfold All Regions"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2078),weight:100}})}invoke(m,u,p,v,y){if(u.regions.hasTypes())kp(u,Or.Region.value,!1);else{let k=p.getModel();if(!k)return;let D=y.getLanguageConfiguration(k.getLanguageId()).foldingRules;if(D&&D.markers&&D.markers.start){let T=new RegExp(D.markers.start);Lp(u,T,!1)}}}}class sL extends Ai{constructor(){super({id:"editor.foldAllExcept",label:h(1049,"Fold All Except Selected"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2136),weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);Bb(u,!0,v)}}class aL extends Ai{constructor(){super({id:"editor.unfoldAllExcept",label:h(1050,"Unfold All Except Selected"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2134),weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);Bb(u,!1,v)}}class dL extends Ai{constructor(){super({id:"editor.foldAll",label:h(1051,"Fold All"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2069),weight:100}})}invoke(m,u,p){sd(u,!0)}}class cL extends Ai{constructor(){super({id:"editor.unfoldAll",label:h(1052,"Unfold All"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2088),weight:100}})}invoke(m,u,p){sd(u,!1)}}class qh extends Ai{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=(m)=>qh.ID_PREFIX+m}getFoldingLevel(){return parseInt(this.id.substr(qh.ID_PREFIX.length))}invoke(m,u,p){NI(u,this.getFoldingLevel(),!0,this.getSelectedLines(p))}}class lL extends Ai{constructor(){super({id:"editor.gotoParentFold",label:h(1053,"Go to Parent Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);if(v.length>0){let y=MI(v[0],u);if(y!==null)p.setSelection({startLineNumber:y,startColumn:1,endLineNumber:y,endColumn:1})}}}class hL extends Ai{constructor(){super({id:"editor.gotoPreviousFold",label:h(1054,"Go to Previous Folding Range"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);if(v.length>0){let y=OI(v[0],u);if(y!==null)p.setSelection({startLineNumber:y,startColumn:1,endLineNumber:y,endColumn:1})}}}class uL extends Ai{constructor(){super({id:"editor.gotoNextFold",label:h(1055,"Go to Next Folding Range"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}invoke(m,u,p){let v=this.getSelectedLines(p);if(v.length>0){let y=AI(v[0],u);if(y!==null)p.setSelection({startLineNumber:y,startColumn:1,endLineNumber:y,endColumn:1})}}}class gL extends Ai{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:h(1056,"Create Folding Range from Selection"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2135),weight:100}})}invoke(m,u,p){let v=[],y=p.getSelections();if(y){for(let k of y){let D=k.endLineNumber;if(k.endColumn===1)--D;if(D>k.startLineNumber)v.push({startLineNumber:k.startLineNumber,endLineNumber:D,type:void 0,isCollapsed:!0,source:1}),p.setSelection({startLineNumber:k.startLineNumber,startColumn:1,endLineNumber:k.startLineNumber,endColumn:1})}if(v.length>0){v.sort((D,T)=>D.startLineNumber-T.startLineNumber);let k=Zi.sanitizeAndMerge(u.regions,v,p.getModel()?.getLineCount());u.updatePost(Zi.fromFoldRanges(k))}}}}class pL extends Ai{constructor(){super({id:"editor.removeManualFoldingRanges",label:h(1057,"Remove Manual Folding Ranges"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2137),weight:100}})}invoke(m,u,p){let v=p.getSelections();if(v)u.removeManualRanges(v),m.triggerFoldingModelChanged()}}class mL extends Ai{constructor(){super({id:"editor.toggleImportFold",label:h(1058,"Toggle Import Fold"),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,weight:100}})}async invoke(m,u){let p=[],v=u.regions;for(let y=v.length-1;y>=0;y--)if(v.getType(y)===Or.Imports.value)p.push(v.toRegion(y));u.toggleCollapseState(p),m.triggerFoldingModelChanged()}}le(qr.ID,qr,0);I(L0);I(F0);I(z0);I(tL);I(iL);I(dL);I(cL);I(oL);I(nL);I(rL);I(sL);I(aL);I(eL);I(lL);I(hL);I(uL);I(gL);I(pL);I(mL);for(let m=1;m<=7;m++)sR(new qh({id:qh.ID(m),label:h(1059,"Fold Level {0}",m),precondition:Ni,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2048|21+m),weight:100}}));we.registerCommand("_executeFoldingRangeProvider",async function(m,...u){let[p]=u;if(!(p instanceof W))throw Qi();let v=m.get(j),y=m.get(gt).getModel(p);if(!y)throw Qi();let k=m.get(X);if(!k.getValue("editor.folding",{resource:p}))return[];let D=m.get(et),T=k.getValue("editor.foldingStrategy",{resource:p}),R={get limit(){return k.getValue("editor.foldingMaximumRegions",{resource:p})},update:(ne,re)=>{}},K=new gc(y,D,R),q=K;if(T!=="indentation"){let ne=qr.getFoldingRangeProviders(v,y);if(ne.length)q=new mc(y,ne,()=>{},R,K)}let Q=await q.compute(he.None),te=[];try{if(Q)for(let ne=0;ne<Q.length;ne++){let re=Q.getType(ne);te.push({start:Q.getStartLineNumber(ne),end:Q.getEndLineNumber(ne),kind:re?Or.fromValue(re):void 0})}return te}finally{q.dispose()}});var fL=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Tp=function(m,u){return function(p,v){u(p,v,m)}};class Kb{constructor(m,u,p){this.marker=m,this.index=u,this.total=p}}var Ub=class m{constructor(u,p,v){if(this._markerService=p,this._configService=v,this._onDidChange=new i,this.onDidChange=this._onDidChange.event,this._dispoables=new c,this._markers=[],this._nextIdx=-1,W.isUri(u))this._resourceFilter=(T)=>T.toString()===u.toString();else if(u)this._resourceFilter=u;let y=this._configService.getValue("problems.sortOrder"),k=(T,R)=>{let K=uh(T.resource.toString(),R.resource.toString());if(K===0)if(y==="position")K=t.compareRangesUsingStarts(T,R)||Ut.compare(T.severity,R.severity);else K=Ut.compare(T.severity,R.severity)||t.compareRangesUsingStarts(T,R);return K},D=()=>{let T=this._markerService.read({resource:W.isUri(u)?u:void 0,severities:Ut.Error|Ut.Warning|Ut.Info});if(typeof u==="function")T=T.filter((R)=>this._resourceFilter(R.resource));if(T.sort(k),Ke(T,this._markers,(R,K)=>R.resource.toString()===K.resource.toString()&&R.startLineNumber===K.startLineNumber&&R.startColumn===K.startColumn&&R.endLineNumber===K.endLineNumber&&R.endColumn===K.endColumn&&R.severity===K.severity&&R.message===K.message))return!1;return this._markers=T,!0};D(),this._dispoables.add(p.onMarkerChanged((T)=>{if(!this._resourceFilter||T.some((R)=>this._resourceFilter(R))){if(D())this._nextIdx=-1,this._onDidChange.fire()}}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(u){if(!this._resourceFilter&&!u)return!0;if(!this._resourceFilter||!u)return!1;return this._resourceFilter(u)}get selected(){let u=this._markers[this._nextIdx];return u&&new Kb(u,this._nextIdx+1,this._markers.length)}_initIdx(u,p,v){let y=this._markers.findIndex((k)=>Pr(k.resource,u.uri));if(y<0){if(y=dh(this._markers.length,(k)=>uh(this._markers[k].resource.toString(),u.uri.toString())),y<0)y=~y;if(v)this._nextIdx=y;else this._nextIdx=(this._markers.length+y-1)%this._markers.length}else{let k=!1,D=!1;for(let T=y;T<this._markers.length;T++){let R=t.lift(this._markers[T]);if(R.isEmpty()){let K=u.getWordAtPosition(R.getStartPosition());if(K)R=new t(R.startLineNumber,K.startColumn,R.startLineNumber,K.endColumn)}if(p&&(R.containsPosition(p)||p.isBeforeOrEqual(R.getStartPosition()))){this._nextIdx=T,k=!0,D=!R.containsPosition(p);break}if(this._markers[T].resource.toString()!==u.uri.toString())break}if(!k)this._nextIdx=v?0:this._markers.length-1;else if(D&&!v)this._nextIdx-=1}if(this._nextIdx<0)this._nextIdx=this._markers.length-1}resetIndex(){this._nextIdx=-1}move(u,p,v){if(this._markers.length===0)return!1;let y=this._nextIdx;if(this._nextIdx===-1)this._initIdx(p,v,u);else if(u)this._nextIdx=(this._nextIdx+1)%this._markers.length;else if(!u)this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length;if(y!==this._nextIdx)return!0;return!1}find(u,p){let v=this._markers.findIndex((y)=>y.resource.toString()===u.toString());if(v<0)return;for(;v<this._markers.length;v++)if(t.containsPosition(this._markers[v],p))return new Kb(this._markers[v],v+1,this._markers.length);return}};Ub=fL([Tp(1,dr),Tp(2,X)],Ub);var jb=Z("IMarkerNavigationService"),qb=class m{constructor(u,p){this._markerService=u,this._configService=p,this._provider=new kn}getMarkerList(u){for(let p of this._provider){let v=p.getMarkerList(u);if(v)return v}return new Ub(u,this._markerService,this._configService)}};qb=fL([Tp(0,dr),Tp(1,X)],qb);fe(jb,qb,1);var cT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},$r=function(m,u){return function(p,v){u(p,v,m)}},ro=class m extends vl{constructor(u,p,v,y,k,D,T,R,K,q,Q,te,ne,re){super(u,{...y.getRawOptions(),overflowWidgetsDomNode:y.getOverflowWidgetsDomNode()},v,k,D,T,R,K,q,Q,te,ne,re);this._parentEditor=y,this._overwriteOptions=p,super.updateOptions(this._overwriteOptions),this._register(y.onDidChangeConfiguration((ae)=>this._onParentConfigurationChanged(ae)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(u){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(u){zp(this._overwriteOptions,u,!0),super.updateOptions(this._overwriteOptions)}};ro=cT([$r(4,L),$r(5,ye),$r(6,Ne),$r(7,V),$r(8,De),$r(9,ut),$r(10,Vt),$r(11,et),$r(12,j),$r(13,ar)],ro);function Rp(m){let u=m.get(ye).getFocusedCodeEditor();if(u instanceof ro)return u.getParentEditor();return u}var _L=new f(new S(0,122,204)),lT={showArrow:!0,showFrame:!0,className:"",frameColor:_L,arrowColor:_L,keepEditorSelection:!1},hT="vs.editor.contrib.zoneWidget";class bL{constructor(m,u,p,v,y,k,D,T){this.id="",this.domNode=m,this.afterLineNumber=u,this.afterColumn=p,this.heightInLines=v,this.showInHiddenAreas=D,this.ordinal=T,this._onDomNodeTop=y,this._onComputedHeight=k}onDomNodeTop(m){this._onDomNodeTop(m)}onComputedHeight(m){this._onComputedHeight(m)}}class vL{constructor(m,u){this._id=m,this._domNode=u}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class $b{static{this._IdGenerator=new kg(".arrow-decoration-")}constructor(m){this._editor=m,this._ruleName=$b._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}dispose(){this.hide(),x0(this._ruleName)}set color(m){if(this._color!==m)this._color=m,this._updateStyle()}set height(m){if(this._height!==m)this._height=m,this._updateStyle()}_updateStyle(){x0(this._ruleName),fg(`.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(m){if(m.column===1)m={lineNumber:m.lineNumber,column:2};this._decorations.set([{range:t.fromPositions(m),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class Gb{constructor(m,u={}){if(this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new c,this.container=null,this._isShowing=!1,this.editor=m,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Js(u),zp(this.options,lT,!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((p)=>{let v=this._getWidth(p);this.domNode.style.width=v+"px",this.domNode.style.left=this._getLeft(p)+"px",this._onWidth(v)}))}dispose(){if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;if(this._viewZone)this.editor.changeViewZones((m)=>{if(this._viewZone)m.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 $b(this.editor),this._disposables.add(this._arrow);this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(m){if(m.frameColor)this.options.frameColor=m.frameColor;if(m.arrowColor)this.options.arrowColor=m.arrowColor;this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let m=this.options.frameColor.toString();this.container.style.borderTopColor=m,this.container.style.borderBottomColor=m}if(this._arrow&&this.options.arrowColor){let m=this.options.arrowColor.toString();this._arrow.color=m}}_getWidth(m){return m.width-m.minimap.minimapWidth-m.verticalScrollbarWidth}_getLeft(m){if(m.minimap.minimapWidth>0&&m.minimap.minimapLeft===0)return m.minimap.minimapWidth;return 0}_onViewZoneTop(m){this.domNode.style.top=m+"px"}_onViewZoneHeight(m){if(this.domNode.style.height=`${m}px`,this.container){let u=m-this._decoratingElementsHeight();this.container.style.height=`${u}px`;let p=this.editor.getLayoutInfo();this._doLayout(u,this._getWidth(p))}this._resizeSash?.layout()}get position(){let m=this._positionMarkerId.getRange(0);if(!m)return;return m.getStartPosition()}show(m,u){let p=t.isIRange(m)?t.lift(m):t.fromPositions(m);this._isShowing=!0,this._showImpl(p,u),this._isShowing=!1,this._positionMarkerId.set([{range:p,options:oe.EMPTY}])}hide(){if(this._viewZone)this.editor.changeViewZones((m)=>{if(this._viewZone)m.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 m=this.editor.getOption(75),u=0;if(this.options.showArrow){let p=Math.round(m/3);u+=2*p}if(this.options.showFrame){let p=this.options.frameWidth??Math.round(m/9);u+=2*p}return u}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*0.8)}_showImpl(m,u){let p=m.getStartPosition(),v=this.editor.getLayoutInfo(),y=this._getWidth(v);this.domNode.style.width=`${y}px`,this.domNode.style.left=this._getLeft(v)+"px";let k=document.createElement("div");k.style.overflow="hidden";let D=this.editor.getOption(75),T=this._getMaximumHeightInLines();if(T!==void 0)u=Math.min(u,T);let R=0,K=0;if(this._arrow&&this.options.showArrow)R=Math.round(D/3),this._arrow.height=R,this._arrow.show(p);if(this.options.showFrame)K=Math.round(D/9);if(this.editor.changeViewZones((te)=>{if(this._viewZone)te.removeZone(this._viewZone.id);if(this._overlayWidget)this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null;this.domNode.style.top="-1000px",this._viewZone=new bL(k,p.lineNumber,p.column,u,(ne)=>this._onViewZoneTop(ne),(ne)=>this._onViewZoneHeight(ne),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=te.addZone(this._viewZone),this._overlayWidget=new vL(hT+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){let te=this.options.frameWidth?this.options.frameWidth:K;this.container.style.borderTopWidth=te+"px",this.container.style.borderBottomWidth=te+"px"}let q=u*D-this._decoratingElementsHeight();if(this.container)this.container.style.top=R+"px",this.container.style.height=q+"px",this.container.style.overflow="hidden";if(this._doLayout(q,y),!this.options.keepEditorSelection)this.editor.setSelection(m);let Q=this.editor.getModel();if(Q){let te=Q.validateRange(new t(m.startLineNumber,1,m.endLineNumber+1,1));this.revealRange(te,te.startLineNumber===Q.getLineCount())}}revealRange(m,u){if(u)this.editor.revealLineNearTop(m.endLineNumber,0);else this.editor.revealRange(m,0)}setCssClass(m,u){if(!this.container)return;if(u)this.container.classList.remove(u);this.container.classList.add(m)}_onWidth(m){}_doLayout(m,u){}_relayout(m,u){let p=this._getMaximumHeightInLines(),v=u&&p!==void 0?Math.min(p,m):m;if(this._viewZone&&this._viewZone.heightInLines!==v)this.editor.changeViewZones((y)=>{if(this._viewZone)this._viewZone.heightInLines=v,y.layoutZone(this._viewZone.id)}),this._updateSashEnablement()}_initSash(){if(this._resizeSash)return;if(this._resizeSash=this._disposables.add(new qi(this.domNode,this,{orientation:1})),!this.options.isResizeable)this._resizeSash.state=0;let m;this._disposables.add(this._resizeSash.onDidStart((u)=>{if(this._viewZone)m={startY:u.startY,heightInLines:this._viewZone.heightInLines,...this._getResizeBounds()}})),this._disposables.add(this._resizeSash.onDidEnd(()=>{m=void 0})),this._disposables.add(this._resizeSash.onDidChange((u)=>{if(m){let p=(u.currentY-m.startY)/this.editor.getOption(75),v=p<0?Math.ceil(p):Math.floor(p),y=m.heightInLines+v;if(y>m.minLines&&y<m.maxLines)this._isSashResizeHeight=!0,this._relayout(y)}}))}_updateSashEnablement(){if(this._resizeSash){let{minLines:m,maxLines:u}=this._getResizeBounds();this._resizeSash.state=m===u?0:3}}_getResizeBounds(){return{minLines:5,maxLines:35}}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){let m=this.editor.getLayoutInfo();return m.width-m.minimap.minimapWidth}}var wL=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},SL=function(m,u){return function(p,v){u(p,v,m)}},Zb=Z("IPeekViewService");fe(Zb,class{constructor(){this._widgets=new Map}addExclusiveWidget(m,u){let p=this._widgets.get(m);if(p)p.listener.dispose(),p.widget.dispose();let v=()=>{let y=this._widgets.get(m);if(y&&y.widget===u)y.listener.dispose(),this._widgets.delete(m)};this._widgets.set(m,{widget:u,listener:u.onDidClose(v)})}},1);var Ki;(function(m){m.inPeekEditor=new A("inReferenceSearchEditor",!0,e(1382,"Whether the current code editor is embedded inside peek")),m.notInPeekEditor=m.inPeekEditor.toNegated()})(Ki||(Ki={}));var Np=class m{static{this.ID="editor.contrib.referenceController"}constructor(u,p){if(u instanceof ro)Ki.inPeekEditor.bindTo(p)}dispose(){}};Np=wL([SL(1,V)],Np);le(Np.ID,Np,0);var uT={headerBackgroundColor:f.white,primaryHeadingColor:f.fromHex("#333333"),secondaryHeadingColor:f.fromHex("#6c6c6cb3")},fc=class m extends Gb{constructor(u,p,v){super(u,p);this.instantiationService=v,this._onDidClose=new i,this.onDidClose=this._onDidClose.event,zp(this.options,uT,!1);let y=Xe(this.editor);y.openedPeekWidgets.set(y.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this),this._onDidClose.dispose();let u=Xe(this.editor);u.openedPeekWidgets.set(u.openedPeekWidgets.get()-1,void 0)}}style(u){let p=this.options;if(u.headerBackgroundColor)p.headerBackgroundColor=u.headerBackgroundColor;if(u.primaryHeadingColor)p.primaryHeadingColor=u.primaryHeadingColor;if(u.secondaryHeadingColor)p.secondaryHeadingColor=u.secondaryHeadingColor;super.style(u)}_applyStyles(){super._applyStyles();let u=this.options;if(this._headElement&&u.headerBackgroundColor)this._headElement.style.backgroundColor=u.headerBackgroundColor.toString();if(this._primaryHeading&&u.primaryHeadingColor)this._primaryHeading.style.color=u.primaryHeadingColor.toString();if(this._secondaryHeading&&u.secondaryHeadingColor)this._secondaryHeading.style.color=u.secondaryHeadingColor.toString();if(this._bodyElement&&u.frameColor)this._bodyElement.style.borderColor=u.frameColor.toString()}_fillContainer(u){this.setCssClass("peekview-widget"),this._headElement=g(".head"),this._bodyElement=g(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),u.appendChild(this._headElement),u.appendChild(this._bodyElement)}_fillHead(u,p){if(this._titleElement=g(".peekview-title"),this.options.supportOnTitleClick)this._titleElement.classList.add("clickable"),ft(this._titleElement,"click",(k)=>this._onTitleClick(k));w(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=g("span.filename"),this._secondaryHeading=g("span.dirname"),this._metaHeading=g("span.meta"),w(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);let v=g(".peekview-actions");w(this._headElement,v);let y=this._getActionBarOptions();if(this._actionbarWidget=new Ri(v,y),this._disposables.add(this._actionbarWidget),!p)this._actionbarWidget.push(this._disposables.add(new eo("peekview.close",e(1383,"Close"),G.asClassName(b.close),!0,()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(u){}_getActionBarOptions(){return{actionViewItemProvider:Ig.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(u){}setTitle(u,p){if(this._primaryHeading&&this._secondaryHeading)if(this._primaryHeading.innerText=u,this._primaryHeading.setAttribute("title",u),p)this._secondaryHeading.innerText=p;else Xt(this._secondaryHeading)}setMetaTitle(u){if(this._metaHeading)if(u)this._metaHeading.innerText=u,ho(this._metaHeading);else Vi(this._metaHeading)}_doLayout(u,p){if(!this._isShowing&&u<0){this.dispose();return}let v=Math.ceil(this.editor.getOption(75)*1.2),y=Math.round(u-(v+1));this._doLayoutHead(v,p),this._doLayoutBody(y,p)}_doLayoutHead(u,p){if(this._headElement)this._headElement.style.height=`${u}px`,this._headElement.style.lineHeight=this._headElement.style.height}_doLayoutBody(u,p){if(this._bodyElement)this._bodyElement.style.height=`${u}px`}};fc=wL([SL(2,L)],fc);var CL=s("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:f.black,hcLight:f.white},e(1384,"Background color of the peek view title area.")),Mp=s("peekViewTitleLabel.foreground",{dark:f.white,light:f.black,hcDark:f.white,hcLight:Qs},e(1385,"Color of the peek view title.")),Op=s("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},e(1386,"Color of the peek view title info.")),yL=s("peekView.border",{dark:rs,light:rs,hcDark:Re,hcLight:Re},e(1387,"Color of the peek view borders and arrow.")),xL=s("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:f.black,hcLight:f.white},e(1388,"Background color of the peek view result list."));s("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:f.white,hcLight:Qs},e(1389,"Foreground color for line nodes in the peek view result list."));s("peekViewResult.fileForeground",{dark:f.white,light:"#1E1E1E",hcDark:f.white,hcLight:Qs},e(1390,"Foreground color for file nodes in the peek view result list."));s("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},e(1391,"Background color of the selected entry in the peek view result list."));s("peekViewResult.selectionForeground",{dark:f.white,light:"#6C6C6C",hcDark:f.white,hcLight:Qs},e(1392,"Foreground color of the selected entry in the peek view result list."));var Xb=s("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:f.black,hcLight:f.white},e(1393,"Background color of the peek view editor."));s("peekViewEditorGutter.background",Xb,e(1394,"Background color of the gutter in the peek view editor."));s("peekViewEditorStickyScroll.background",Xb,e(1395,"Background color of sticky scroll in the peek view editor."));s("peekViewEditorStickyScrollGutter.background",Xb,e(1396,"Background color of the gutter part of sticky scroll in the peek view editor."));s("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},e(1397,"Match highlight color in the peek view result list."));s("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},e(1398,"Match highlight color in the peek view editor."));s("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:Ft,hcLight:Ft},e(1399,"Match highlight border in the peek view editor."));var Pp;(function(m){function u(p){switch(p){case Yt.Ignore:return"severity-ignore "+G.asClassName(b.info);case Yt.Info:return G.asClassName(b.info);case Yt.Warning:return G.asClassName(b.warning);case Yt.Error:return G.asClassName(b.error);default:return""}}m.className=u})(Pp||(Pp={}));var gT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},_c=function(m,u){return function(p,v){u(p,v,m)}},Yb;class EL{constructor(m,u,p,v,y){this._openerService=v,this._labelService=y,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new c,this._editor=u;let k=document.createElement("div");k.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),k.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),k.appendChild(this._relatedBlock),this._disposables.add(ft(this._relatedBlock,"click",(D)=>{D.preventDefault();let T=this._relatedDiagnostics.get(D.target);if(T)p(T)})),this._scrollable=new fy(k,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),m.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((D)=>{k.style.left=`-${D.scrollLeft}px`,k.style.top=`-${D.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){$e(this._disposables)}update(m){let{source:u,message:p,relatedInformation:v,code:y}=m,k=(u?.length||0)+2;if(y)if(typeof y==="string")k+=y.length;else k+=y.value.length;let D=ei(p);this._lines=D.length,this._longestLineLength=0;for(let Q of D)this._longestLineLength=Math.max(Q.length+k,this._longestLineLength);Xt(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(m)),go(this.getAriaLabel(m)),this._editor.applyFontInfo(this._messageBlock);let T=this._messageBlock;for(let Q of D){if(T=document.createElement("div"),T.innerText=Q,Q==="")T.style.height=this._messageBlock.style.lineHeight;this._messageBlock.appendChild(T)}if(u||y){let Q=document.createElement("span");if(Q.classList.add("details"),T.appendChild(Q),u){let te=document.createElement("span");te.innerText=u,te.classList.add("source"),Q.appendChild(te)}if(y)if(typeof y==="string"){let te=document.createElement("span");te.innerText=`(${y})`,te.classList.add("code"),Q.appendChild(te)}else{this._codeLink=g("a.code-link"),this._codeLink.setAttribute("href",`${y.target.toString()}`),this._codeLink.onclick=(ne)=>{this._openerService.open(y.target),ne.preventDefault(),ne.stopPropagation()};let te=w(this._codeLink,g("span"));te.innerText=y.value,Q.appendChild(this._codeLink)}}if(Xt(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),Ln(v)){let Q=this._relatedBlock.appendChild(document.createElement("div"));Q.style.paddingTop=`${Math.floor(this._editor.getOption(75)*0.66)}px`,this._lines+=1;for(let te of v){let ne=document.createElement("div"),re=document.createElement("a");re.classList.add("filename"),re.innerText=`${this._labelService.getUriBasenameLabel(te.resource)}(${te.startLineNumber}, ${te.startColumn}): `,re.title=this._labelService.getUriLabel(te.resource),this._relatedDiagnostics.set(re,te);let ae=document.createElement("span");ae.innerText=te.message,ne.appendChild(re),ne.appendChild(ae),this._lines+=1,Q.appendChild(ne)}}let R=this._editor.getOption(59),K=Math.ceil(R.typicalFullwidthCharacterWidth*this._longestLineLength*0.75),q=R.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:K,scrollHeight:q})}layout(m,u){this._scrollable.getDomNode().style.height=`${m}px`,this._scrollable.getDomNode().style.width=`${u}px`,this._scrollable.setScrollDimensions({width:u,height:m})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(m){let u="";switch(m.severity){case Ut.Error:u=e(1082,"Error");break;case Ut.Warning:u=e(1083,"Warning");break;case Ut.Info:u=e(1084,"Info");break;case Ut.Hint:u=e(1085,"Hint");break}let p=e(1086,"{0}: {1} at {2}. ",u,m.message,m.startLineNumber+":"+m.startColumn),v=this._editor.getModel();if(v&&m.startLineNumber<=v.getLineCount()&&m.startLineNumber>=1)p=`${v.getLineContent(m.startLineNumber)}, ${p}`;return p}}var bc=class m extends fc{static{Yb=this}static{this.TitleMenu=new a("gotoErrorTitleMenu")}constructor(u,p,v,y,k,D,T){super(u,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},k);this._themeService=p,this._openerService=v,this._menuService=y,this._contextKeyService=D,this._labelService=T,this._callOnDispose=new c,this._onDidSelectRelatedInformation=new i,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Ut.Warning,this._backgroundColor=f.white,this._applyTheme(p.getColorTheme()),this._callOnDispose.add(p.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(u){this._backgroundColor=u.getColor(_T);let p=Jb,v=pT;if(this._severity===Ut.Warning)p=Ap,v=mT;else if(this._severity===Ut.Info)p=Qb,v=fT;let y=u.getColor(p),k=u.getColor(v);this.style({arrowColor:y,frameColor:y,headerBackgroundColor:k,primaryHeadingColor:u.getColor(Mp),secondaryHeadingColor:u.getColor(Op)})}_applyStyles(){if(this._parentContainer)this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():"";super._applyStyles()}dispose(){this._callOnDispose.dispose(),this._onDidSelectRelatedInformation.dispose(),super.dispose()}_fillHead(u){super._fillHead(u),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((y)=>this.editor.focus()));let p=this._menuService.getMenuActions(Yb.TitleMenu,this._contextKeyService),v=NR(p);this._actionbarWidget.push(v,{label:!1,icon:!0,index:0})}_fillTitleIcon(u){this._icon=w(u,g(""))}_fillBody(u){this._parentContainer=u,u.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),u.appendChild(this._container),this._message=new EL(this._container,this.editor,(p)=>this._onDidSelectRelatedInformation.fire(p),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw Error("call showAtMarker")}showAtMarker(u,p,v){this._container.classList.remove("stale"),this._message.update(u),this._severity=u.severity,this._applyTheme(this._themeService.getColorTheme());let y=t.lift(u),k=this.editor.getPosition(),D=k&&y.containsPosition(k)?k:y.getStartPosition();super.show(D,this.computeRequiredHeight());let T=this.editor.getModel();if(T){let R=v>1?e(1087,"{0} of {1} problems",p,v):e(1088,"{0} of {1} problem",p,v);this.setTitle(pi(T.uri),R)}this._icon.className=`codicon ${Pp.className(Ut.toSeverity(this._severity))}`,this.editor.revealPositionInCenterIfOutsideViewport(D,0),this.editor.focus()}updateMarker(u){this._container.classList.remove("stale"),this._message.update(u)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(u,p){super._doLayoutBody(u,p),this._heightInPixel=u,this._message.layout(u,p),this._container.style.height=`${u}px`}_onWidth(u){this._message.layout(this._heightInPixel,u)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};bc=Yb=gT([_c(1,De),_c(2,Eo),_c(3,hi),_c(4,L),_c(5,V),_c(6,xl)],bc);var IL=Xp(tf,dR),LL=Xp(ea,Eh),kL=Xp(rs,Th),Jb=s("editorMarkerNavigationError.background",{dark:IL,light:IL,hcDark:Re,hcLight:Re},e(1089,"Editor marker navigation widget error color.")),pT=s("editorMarkerNavigationError.headerBackground",{dark:de(Jb,0.1),light:de(Jb,0.1),hcDark:null,hcLight:null},e(1090,"Editor marker navigation widget error heading background.")),Ap=s("editorMarkerNavigationWarning.background",{dark:LL,light:LL,hcDark:Re,hcLight:Re},e(1091,"Editor marker navigation widget warning color.")),mT=s("editorMarkerNavigationWarning.headerBackground",{dark:de(Ap,0.1),light:de(Ap,0.1),hcDark:"#0C141F",hcLight:de(Ap,0.2)},e(1092,"Editor marker navigation widget warning heading background.")),Qb=s("editorMarkerNavigationInfo.background",{dark:kL,light:kL,hcDark:Re,hcLight:Re},e(1093,"Editor marker navigation widget info color.")),fT=s("editorMarkerNavigationInfo.headerBackground",{dark:de(Qb,0.1),light:de(Qb,0.1),hcDark:null,hcLight:null},e(1094,"Editor marker navigation widget info heading background.")),_T=s("editorMarkerNavigation.background",So,e(1095,"Editor marker navigation widget background."));var bT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Kp=function(m,u){return function(p,v){u(p,v,m)}},jh,sa=class m{static{jh=this}static{this.ID="editor.contrib.markerController"}static get(u){return u.getContribution(jh.ID)}constructor(u,p,v,y,k){this._markerNavigationService=p,this._contextKeyService=v,this._editorService=y,this._instantiationService=k,this._sessionDispoables=new c,this._editor=u,this._widgetVisible=DL.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(u){if(this._model&&this._model.matches(u))return this._model;let p=!1;if(this._model)p=!0,this._cleanUp();if(this._model=this._markerNavigationService.getMarkerList(u),p)this._model.move(!0,this._editor.getModel(),this._editor.getPosition());return this._widget=this._instantiationService.createInstance(bc,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((v)=>{if(!this._model?.selected||!t.containsPosition(this._model?.selected.marker,v.position))this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;let v=this._model.find(this._editor.getModel().uri,this._widget.position);if(v)this._widget.updateMarker(v.marker);else this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((v)=>{this._editorService.openCodeEditor({resource:v.resource,options:{pinned:!0,revealIfOpened:!0,selection:t.lift(v).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(u=!0){if(this._cleanUp(),u)this._editor.focus()}showAtMarker(u){if(!this._editor.hasModel())return;let p=this._editor.getModel(),v=this._getOrCreateModel(p.uri);if(v.resetIndex(),v.move(!0,p,new r(u.startLineNumber,u.startColumn)),v.selected)this._widget.showAtMarker(v.selected.marker,v.selected.index,v.selected.total)}async navigate(u,p){if(!this._editor.hasModel())return;let v=this._editor.getModel(),y=this._getOrCreateModel(p?void 0:v.uri);if(y.move(u,v,this._editor.getPosition()),!y.selected)return;if(y.selected.marker.resource.toString()!==v.uri.toString()){this._cleanUp();let k=await this._editorService.openCodeEditor({resource:y.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:y.selected.marker}},this._editor);if(k)jh.get(k)?.close(),jh.get(k)?.navigate(u,p)}else this._widget.showAtMarker(y.selected.marker,y.selected.index,y.selected.total)}};sa=jh=bT([Kp(1,jb),Kp(2,V),Kp(3,ye),Kp(4,L)],sa);class Gh extends z{constructor(m,u,p){super(p);this._next=m,this._multiFile=u}async run(m,u){if(u.hasModel())await sa.get(u)?.navigate(this._next,this._multiFile)}}class vs extends Gh{static{this.ID="editor.action.marker.next"}static{this.LABEL=h(1078,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:vs.ID,label:vs.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:578,weight:100},menuOpts:{menuId:bc.TitleMenu,title:vs.LABEL.value,icon:Lt("marker-navigation-next",b.arrowDown,e(1074,"Icon for goto next marker.")),group:"navigation",order:1}})}}class ad extends Gh{static{this.ID="editor.action.marker.prev"}static{this.LABEL=h(1079,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:ad.ID,label:ad.LABEL,precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1602,weight:100},menuOpts:{menuId:bc.TitleMenu,title:ad.LABEL.value,icon:Lt("marker-navigation-previous",b.arrowUp,e(1075,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class Zh extends Gh{static{this.ID="editor.action.marker.nextInFiles"}constructor(){super(!0,!0,{id:Zh.ID,label:h(1080,"Go to Next Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:66,weight:100},menuOpts:{menuId:a.MenubarGoMenu,title:e(1076,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class Xh extends Gh{static{this.ID="editor.action.marker.prevInFiles"}constructor(){super(!1,!0,{id:Xh.ID,label:h(1081,"Go to Previous Problem in Files (Error, Warning, Info)"),precondition:void 0,kbOpts:{kbExpr:o.focus,primary:1090,weight:100},menuOpts:{menuId:a.MenubarGoMenu,title:e(1077,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}le(sa.ID,sa,4);I(vs);I(ad);I(Zh);I(Xh);var DL=new A("markersNavigationVisible",!1),vT=Bt.bindToContribution(sa.get);U(new vT({id:"closeMarkersNavigation",precondition:DL,handler:(m)=>m.close(),kbOpts:{weight:150,kbExpr:o.focus,primary:9,secondary:[1033]}}));class Vv{constructor(m){this.options=m,this.rangeHighlightDecorationId=void 0}provide(m,u,p){let v=new c;m.canAcceptInBackground=!!this.options?.canAcceptInBackground,m.matchOnLabel=m.matchOnDescription=m.matchOnDetail=m.sortByLabel=!1;let y=v.add(new ie);return y.value=this.doProvide(m,u,p),v.add(this.onDidActiveTextEditorControlChange(()=>{y.value=void 0,y.value=this.doProvide(m,u)})),v}doProvide(m,u,p){let v=new c,y=this.activeTextEditorControl;if(y&&this.canProvideWithTextEditor(y)){let k={editor:y},D=a_(y);if(D){let T=y.saveViewState()??void 0;v.add(D.onDidChangeCursorPosition(()=>{T=y.saveViewState()??void 0})),k.restoreViewState=()=>{if(T&&y===this.activeTextEditorControl)y.restoreViewState(T)},v.add(es(u.onCancellationRequested)(()=>k.restoreViewState?.()))}v.add(E(()=>this.clearDecorations(y))),v.add(this.provideWithTextEditor(k,m,u,p))}else v.add(this.provideWithoutTextEditor(m,u));return v}canProvideWithTextEditor(m){return!0}gotoLocation({editor:m},u){if(m.setSelection(u.range,"code.jump"),m.revealRangeInCenter(u.range,0),!u.preserveFocus)m.focus();let p=this.getModel(m);if(p){let v=p.getLineContent(u.range.startLineNumber);go(e(1401,"Line {0}, column {1}: {2}",u.range.startLineNumber,u.range.startColumn,v))}}getModel(m){return Ng(m)?m.getModel()?.modified:m.getModel()}addDecorations(m,u){m.changeDecorations((p)=>{let v=[];if(this.rangeHighlightDecorationId)v.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),v.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0;let y=[{range:u,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:u,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:en(R0),position:ko.Full}}}],[k,D]=p.deltaDecorations(v,y);this.rangeHighlightDecorationId={rangeHighlightId:k,overviewRulerDecorationId:D}})}clearDecorations(m){let u=this.rangeHighlightDecorationId;if(u)m.changeDecorations((p)=>{p.deltaDecorations([u.overviewRulerDecorationId,u.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0}}class vc extends Vv{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(vc.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(m){this.storageService.store(vc.ZERO_BASED_OFFSET_STORAGE_KEY,m,-1,0)}provideWithoutTextEditor(m){let u=e(1402,"Open a text editor first to go to a line or an offset.");return m.items=[{label:u}],m.ariaLabel=u,n.None}provideWithTextEditor(m,u,p){let v=m.editor,y=new c;u.ariaLabel=e(1403,"Go to line. Type a line number, optionally followed by colon and column number."),y.add(u.onDidAccept((R)=>{let[K]=u.selectedItems;if(K){if(!K.lineNumber)return;if(this.gotoLocation(m,{range:this.toRange(K.lineNumber,K.column),keyMods:u.keyMods,preserveFocus:R.inBackground}),!R.inBackground)u.hide()}}));let k={iconClass:G.asClassName(b.indexZero),tooltip:e(1404,"Toggle Zero-Based Offset"),location:ff.Input,toggle:{checked:this.useZeroBasedOffset}},D=()=>{let R=u.value.trim().substring(vc.GO_TO_LINE_PREFIX.length),{inOffsetMode:K,lineNumber:q,column:Q,label:te}=this.parsePosition(v,R);if(u.buttons=K?[k]:[],u.items=[{lineNumber:q,column:Q,label:te,ariaLabel:q?e(1405,"Go to line {0}, column {1}. Press Enter to navigate.",q,Q||1):te}],!q){this.clearDecorations(v);return}let ne=this.toRange(q,Q);v.revealRangeInCenter(ne,0),this.addDecorations(v,ne)};y.add(u.onDidTriggerButton((R)=>{if(R===k)this.useZeroBasedOffset=R.toggle?.checked??!this.useZeroBasedOffset,D()})),D(),y.add(u.onDidChangeValue(()=>D()));let T=a_(v);if(T){if(T.getOptions().get(76).renderType===2)T.updateOptions({lineNumbers:"on"}),y.add(E(()=>T.updateOptions({lineNumbers:"relative"})))}return y}toRange(m=1,u=1){return{startLineNumber:m,startColumn:u,endLineNumber:m,endColumn:u}}parsePosition(m,u){let p=this.getModel(m);if(!p)return{label:e(1406,"Open a text editor first to go to a line or an offset.")};if(u.startsWith(":")){let v=parseInt(u.substring(1),10),y=p.getValueLength();if(isNaN(v))return{inOffsetMode:!0,label:this.useZeroBasedOffset?e(1407,"Type a character position to go to (from 0 to {0}).",y-1):e(1408,"Type a character position to go to (from 1 to {0}).",y)};else{let k=v<0;if(!this.useZeroBasedOffset)v-=Math.sign(v);if(k)v+=y;let D=p.getPositionAt(v),T=yt.visibleColumnFromColumn(p.getLineContent(D.lineNumber),D.column,p.getOptions().tabSize)+1;return{...D,inOffsetMode:!0,label:e(1409,"Press 'Enter' to go to line {0} at column {1}.",D.lineNumber,T)}}}else{let v=u.split(/,|:|#/),y=p.getLineCount(),k=parseInt(v[0]?.trim(),10);if(v.length<1||isNaN(k))return{label:e(1410,"Type a line number to go to (from 1 to {0}).",y)};k=k>=0?k:y+1+k,k=Math.min(Math.max(1,k),y);let D=p.getOptions().tabSize,T=p.getLineContent(k),R=yt.visibleColumnFromColumn(T,p.getLineMaxColumn(k),D)+1,K=parseInt(v[1]?.trim(),10);if(v.length<2||isNaN(K))return{lineNumber:k,column:1,label:v.length<2?e(1411,"Press 'Enter' to go to line {0} or enter colon : to add a column number.",k):e(1412,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",k,R)};K=K>=0?K:R+K,K=Math.min(Math.max(1,K),R);let q=yt.columnFromVisibleColumn(T,K-1,D);return{lineNumber:k,column:q,label:e(1413,"Press 'Enter' to go to line {0} at column {1}.",k,K)}}}}var wT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},TL=function(m,u){return function(p,v){u(p,v,m)}},aa=class m extends vc{constructor(u,p){super();this.editorService=u,this.storageService=p,this.onDidActiveTextEditorControlChange=C.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};aa=wT([TL(0,ye),TL(1,wn)],aa);class Up extends z{static{this.ID="editor.action.gotoLine"}constructor(){super({id:Up.ID,label:yf.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:o.focus,primary:2085,mac:{primary:293},weight:100}})}run(m){m.get(cn).quickAccess.show(aa.GO_TO_LINE_PREFIX)}}I(Up);it.as(As.Quickaccess).registerQuickAccessProvider({ctor:aa,prefix:aa.GO_TO_LINE_PREFIX,helpEntries:[{description:yf.gotoLineActionLabel,commandId:Up.ID}]});class $p extends z{static{this.ID="editor.action.gotoOffset"}constructor(){super({id:$p.ID,label:yf.gotoOffsetActionLabel,alias:"Go to Offset...",precondition:void 0})}run(m){m.get(cn).quickAccess.show(aa.GO_TO_OFFSET_PREFIX)}}I($p);it.as(As.Quickaccess).registerQuickAccessProvider({ctor:aa,prefix:aa.GO_TO_OFFSET_PREFIX,helpEntries:[{description:yf.gotoOffsetActionLabel,commandId:$p.ID}]});var ST=s("editorOverviewRuler.bracketMatchForeground","#A0A0A0",e(855,"Overview ruler marker color for matching brackets."));class RL extends z{constructor(){super({id:"editor.action.jumpToBracket",label:h(857,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:3165,weight:100}})}run(m,u){Cs.get(u)?.jumpToBracket()}}class NL extends z{constructor(){super({id:"editor.action.selectToBracket",label:h(858,"Select to Bracket"),precondition:void 0,metadata:{description:h(859,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(m,u,p){let v=!0;if(p&&p.selectBrackets===!1)v=!1;Cs.get(u)?.selectToBracket(v)}}class ML extends z{constructor(){super({id:"editor.action.removeBrackets",label:h(860,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(m,u){Cs.get(u)?.removeBrackets(this.id)}}class OL{constructor(m,u,p){this.position=m,this.brackets=u,this.options=p}}class Cs extends n{static{this.ID="editor.contrib.bracketMatchingController"}static get(m){return m.getContribution(Cs.ID)}constructor(m){super();this._editor=m,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new be(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(m.onDidChangeCursorPosition((u)=>{if(this._matchBrackets==="never")return;this._updateBracketsSoon.schedule()})),this._register(m.onDidChangeModelContent((u)=>{this._updateBracketsSoon.schedule()})),this._register(m.onDidChangeModel((u)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(m.onDidChangeModelLanguageConfiguration((u)=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(m.onDidChangeConfiguration((u)=>{if(u.hasChanged(80))this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule()})),this._register(m.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(m.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let m=this._editor.getModel(),u=this._editor.getSelections().map((p)=>{let v=p.getStartPosition(),y=m.bracketPairs.matchBracket(v),k=null;if(y){if(y[0].containsPosition(v)&&!y[1].containsPosition(v))k=y[1].getStartPosition();else if(y[1].containsPosition(v))k=y[0].getStartPosition()}else{let D=m.bracketPairs.findEnclosingBrackets(v);if(D)k=D[1].getStartPosition();else{let T=m.bracketPairs.findNextBracket(v);if(T&&T.range)k=T.range.getStartPosition()}}if(k)return new O(k.lineNumber,k.column,k.lineNumber,k.column);return new O(v.lineNumber,v.column,v.lineNumber,v.column)});this._editor.setSelections(u),this._editor.revealRange(u[0])}selectToBracket(m){if(!this._editor.hasModel())return;let u=this._editor.getModel(),p=[];if(this._editor.getSelections().forEach((v)=>{let y=v.getStartPosition(),k=u.bracketPairs.matchBracket(y);if(!k){if(k=u.bracketPairs.findEnclosingBrackets(y),!k){let R=u.bracketPairs.findNextBracket(y);if(R&&R.range)k=u.bracketPairs.matchBracket(R.range.getStartPosition())}}let D=null,T=null;if(k){k.sort(t.compareRangesUsingStarts);let[R,K]=k;if(D=m?R.getStartPosition():R.getEndPosition(),T=m?K.getEndPosition():K.getStartPosition(),K.containsPosition(y)){let q=D;D=T,T=q}}if(D&&T)p.push(new O(D.lineNumber,D.column,T.lineNumber,T.column))}),p.length>0)this._editor.setSelections(p),this._editor.revealRange(p[0])}removeBrackets(m){if(!this._editor.hasModel())return;let u=this._editor.getModel();this._editor.getSelections().forEach((p)=>{let v=p.getPosition(),y=u.bracketPairs.matchBracket(v);if(!y)y=u.bracketPairs.findEnclosingBrackets(v);if(y)this._editor.pushUndoStop(),this._editor.executeEdits(m,[{range:y[0],text:""},{range:y[1],text:""}]),this._editor.pushUndoStop()})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=oe.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline",overviewRuler:{color:en(ST),position:ko.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=oe.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match",inlineClassName:"bracket-match-inline"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();let m=[],u=0;for(let p of this._lastBracketsData){let v=p.brackets;if(v)m[u++]={range:v[0],options:p.options},m[u++]={range:v[1],options:p.options}}this._decorations.set(m)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let m=this._editor.getSelections();if(m.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let u=this._editor.getModel(),p=u.getVersionId(),v=[];if(this._lastVersionId===p)v=this._lastBracketsData;let y=[],k=0;for(let q=0,Q=m.length;q<Q;q++){let te=m[q];if(te.isEmpty())y[k++]=te.getStartPosition()}if(y.length>1)y.sort(r.compare);let D=[],T=0,R=0,K=v.length;for(let q=0,Q=y.length;q<Q;q++){let te=y[q];while(R<K&&v[R].position.isBefore(te))R++;if(R<K&&v[R].position.equals(te))D[T++]=v[R];else{let ne=u.bracketPairs.matchBracket(te,20),re=Cs._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;if(!ne&&this._matchBrackets==="always")ne=u.bracketPairs.findEnclosingBrackets(te,20),re=Cs._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;D[T++]=new OL(te,ne,re)}}this._lastBracketsData=D,this._lastVersionId=p}}le(Cs.ID,Cs,1);I(NL);I(RL);I(ML);Rn.appendMenuItem(a.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:e(856,"Go to &&Bracket")},order:2});oi((m,u)=>{let p=m.getColor(xR);if(p)u.addRule(`.monaco-editor .bracket-match-inline { color: ${p} !important; }`)});var Ot=new class{constructor(){this.QuickFix=new It("quickfix"),this.Refactor=new It("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new It("notebook"),this.Source=new It("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}},ji;(function(m){m.Refactor="refactor",m.RefactorPreview="refactor preview",m.Lightbulb="lightbulb",m.Default="other (default)",m.SourceAction="source action",m.QuickFix="quick fix action",m.FixAll="fix all",m.OrganizeImports="organize imports",m.AutoFix="auto fix",m.QuickFixHover="quick fix hover window",m.OnSave="save participants",m.ProblemsView="problems view"})(ji||(ji={}));function PL(m,u){if(m.include&&!m.include.intersects(u))return!1;if(m.excludes){if(m.excludes.some((p)=>FL(u,p,m.include)))return!1}if(!m.includeSourceActions&&Ot.Source.contains(u))return!1;return!0}function AL(m,u){let p=u.kind?new It(u.kind):void 0;if(m.include){if(!p||!m.include.contains(p))return!1}if(m.excludes){if(p&&m.excludes.some((v)=>FL(p,v,m.include)))return!1}if(!m.includeSourceActions){if(p&&Ot.Source.contains(p))return!1}if(m.onlyIncludePreferredActions){if(!u.isPreferred)return!1}return!0}function FL(m,u,p){if(!u.contains(m))return!1;if(p&&u.contains(p))return!1;return!0}class un{static fromUser(m,u){if(!m||typeof m!=="object")return new un(u.kind,u.apply,!1);return new un(un.getKindFromUser(m,u.kind),un.getApplyFromUser(m,u.apply),un.getPreferredUser(m))}static getApplyFromUser(m,u){switch(typeof m.apply==="string"?m.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return u}}static getKindFromUser(m,u){return typeof m.kind==="string"?new It(m.kind):u}static getPreferredUser(m){return typeof m.preferred==="boolean"?m.preferred:!1}constructor(m,u,p){this.kind=m,this.apply=u,this.preferred=p}}class ev{constructor(m,u,p){this.action=m,this.provider=u,this.highlightRange=p}async resolve(m){if(this.provider?.resolveCodeAction&&!this.action.edit){let u;try{u=await this.provider.resolveCodeAction(this.action,m)}catch(p){dt(p)}if(u)this.action.edit=u.edit}return this}}var Gp="editor.action.codeAction",da="editor.action.quickFix",wc="editor.action.autoFix",em="editor.action.refactor",tm="editor.action.sourceAction",Jh="editor.action.organizeImports",Qh="editor.action.fixAll",CT=1000;class Yh extends n{static codeActionsPreferredComparator(m,u){if(m.isPreferred&&!u.isPreferred)return-1;else if(!m.isPreferred&&u.isPreferred)return 1;else return 0}static codeActionsComparator({action:m},{action:u}){if(m.isAI&&!u.isAI)return 1;else if(!m.isAI&&u.isAI)return-1;if(Ln(m.diagnostics))return Ln(u.diagnostics)?Yh.codeActionsPreferredComparator(m,u):-1;else if(Ln(u.diagnostics))return 1;else return Yh.codeActionsPreferredComparator(m,u)}constructor(m,u,p){super();this.documentation=u,this._register(p),this.allActions=[...m].sort(Yh.codeActionsComparator),this.validActions=this.allActions.filter(({action:v})=>!v.disabled)}get hasAutoFix(){return this.validActions.some(({action:m})=>!!m.kind&&Ot.QuickFix.contains(new It(m.kind))&&!!m.isPreferred)}get hasAIFix(){return this.validActions.some(({action:m})=>!!m.isAI)}get allAIFixes(){return this.validActions.every(({action:m})=>!!m.isAI)}}var HL={actions:[],documentation:void 0};async function ca(m,u,p,v,y,k){let D=v.filter||{},T={...D,excludes:[...D.excludes||[],Ot.Notebook]},R={only:D.include?.value,trigger:v.type},K=new Og(u,k),q=v.type===2,Q=yT(m,u,q?T:D),te=new c,ne=Q.map(async(ae)=>{let ge=setTimeout(()=>y.report(ae),1250);try{let Se=await ae.provideCodeActions(u,p,R,K.token);if(K.token.isCancellationRequested)return Se?.dispose(),HL;if(Se)te.add(Se);let Oe=(Se?.actions||[]).filter((We)=>We&&AL(D,We)),Ae=IT(ae,Oe,D.include);return{actions:Oe.map((We)=>new ev(We,ae)),documentation:Ae}}catch(Se){if(Gn(Se))throw Se;return dt(Se),HL}finally{clearTimeout(ge)}}),re=m.onDidChange(()=>{let ae=m.all(u);if(!Ke(ae,Q))K.cancel()});try{let ae=await Promise.all(ne),ge=ae.map((Ae)=>Ae.actions).flat(),Se=[...Xi(ae.map((Ae)=>Ae.documentation)),...xT(m,u,v,ge)],Oe=new Yh(ge,Se,te);return te.add(Oe),Oe}catch(ae){throw te.dispose(),ae}finally{re.dispose(),K.dispose()}}function yT(m,u,p){return m.all(u).filter((v)=>{if(!v.providedCodeActionKinds)return!0;return v.providedCodeActionKinds.some((y)=>PL(p,new It(y)))})}function*xT(m,u,p,v){if(u&&v.length){for(let y of m.all(u))if(y._getAdditionalMenuItems)yield*y._getAdditionalMenuItems?.({trigger:p.type,only:p.filter?.include?.value},v.map((k)=>k.action))}}function IT(m,u,p){if(!m.documentation)return;let v=m.documentation.map((y)=>({kind:new It(y.kind),command:y.command}));if(p){let y;for(let k of v)if(k.kind.contains(p)){if(!y)y=k;else if(y.kind.contains(k.kind))y=k}if(y)return y?.command}for(let y of u){if(!y.kind)continue;for(let k of v)if(k.kind.contains(new It(y.kind)))return k.command}return}var Gr;(function(m){m.OnSave="onSave",m.FromProblemsView="fromProblemsView",m.FromCodeActions="fromCodeActions",m.FromAILightbulb="fromAILightbulb",m.FromProblemsHover="fromProblemsHover"})(Gr||(Gr={}));async function WL(m,u,p,v,y=he.None){let k=m.get(Cl),D=m.get(Ne),T=m.get(Sn),R=m.get(ut),K=m.get(zr);if(T.publicLog2("codeAction.applyCodeAction",{codeActionTitle:u.action.title,codeActionKind:u.action.kind,codeActionIsPreferred:!!u.action.isPreferred,reason:p}),K.playSignal(Ge.codeActionTriggered),await u.resolve(y),y.isCancellationRequested)return;if(u.action.edit?.edits.length){if(!(await k.apply(u.action.edit,{editor:v?.editor,label:u.action.title,quotableLabel:u.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:p!==Gr.OnSave,showPreview:v?.preview,reason:$n.codeAction({kind:u.action.kind,providerId:ng.fromExtensionId(u.provider?.extensionId)})})).isApplied)return}if(u.action.command)try{await D.executeCommand(u.action.command.id,...u.action.command.arguments||[])}catch(q){let Q=LT(q);R.error(typeof Q==="string"?Q:e(881,"An unknown error occurred while applying the code action"))}setTimeout(()=>K.playSignal(Ge.codeActionApplied),CT)}function LT(m){if(typeof m==="string")return m;else if(m instanceof Error&&typeof m.message==="string")return m.message;else return}we.registerCommand("_executeCodeActionProvider",async function(m,u,p,v,y){if(!(u instanceof W))throw Qi();let{codeActionProvider:k}=m.get(j),D=m.get(gt).getModel(u);if(!D)throw Qi();let T=O.isISelection(p)?O.liftSelection(p):t.isIRange(p)?D.validateRange(p):void 0;if(!T)throw Qi();let R=typeof v==="string"?new It(v):void 0,K=await ca(k,D,T,{type:1,triggerAction:ji.Default,filter:{includeSourceActions:!0,include:R}},na.None,he.None),q=[],Q=Math.min(K.validActions.length,typeof y==="number"?y:0);for(let te=0;te<Q;te++)q.push(K.validActions[te].resolve(he.None));try{return await Promise.all(q),K.validActions.map((te)=>te.action)}finally{setTimeout(()=>K.dispose(),100)}});var kT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},ET=function(m,u){return function(p,v){u(p,v,m)}},tv,im=class m{static{tv=this}static{this.codeActionCommands=[em,Gp,tm,Jh,Qh]}constructor(u){this.keybindingService=u}getResolver(){let u=new Mn(()=>this.keybindingService.getKeybindings().filter((p)=>tv.codeActionCommands.indexOf(p.command)>=0).filter((p)=>p.resolvedKeybinding).map((p)=>{let v=p.commandArgs;if(p.command===Jh)v={kind:Ot.SourceOrganizeImports.value};else if(p.command===Qh)v={kind:Ot.SourceFixAll.value};return{resolvedKeybinding:p.resolvedKeybinding,...un.fromUser(v,{kind:It.None,apply:"never"})}}));return(p)=>{if(p.kind)return this.bestKeybindingForCodeAction(p,u.value)?.resolvedKeybinding;return}}bestKeybindingForCodeAction(u,p){if(!u.kind)return;let v=new It(u.kind);return p.filter((y)=>y.kind.contains(v)).filter((y)=>{if(y.preferred)return u.isPreferred;return!0}).reduceRight((y,k)=>{if(!y)return k;return y.kind.contains(k.kind)?k:y},void 0)}};im=tv=kT([ET(0,ce)],im);s("symbolIcon.arrayForeground",Ee,e(1569,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.booleanForeground",Ee,e(1570,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1571,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.colorForeground",Ee,e(1572,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.constantForeground",Ee,e(1573,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1574,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1575,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1576,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},e(1577,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1578,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.fileForeground",Ee,e(1579,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.folderForeground",Ee,e(1580,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1581,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1582,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.keyForeground",Ee,e(1583,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.keywordForeground",Ee,e(1584,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},e(1585,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.moduleForeground",Ee,e(1586,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.namespaceForeground",Ee,e(1587,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.nullForeground",Ee,e(1588,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.numberForeground",Ee,e(1589,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.objectForeground",Ee,e(1590,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.operatorForeground",Ee,e(1591,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.packageForeground",Ee,e(1592,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.propertyForeground",Ee,e(1593,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.referenceForeground",Ee,e(1594,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.snippetForeground",Ee,e(1595,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.stringForeground",Ee,e(1596,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.structForeground",Ee,e(1597,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.textForeground",Ee,e(1598,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.typeParameterForeground",Ee,e(1599,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.unitForeground",Ee,e(1600,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));s("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},e(1601,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));var BL=Object.freeze({kind:It.Empty,title:e(917,"More Actions...")}),DT=Object.freeze([{kind:Ot.QuickFix,title:e(918,"Quick Fix")},{kind:Ot.RefactorExtract,title:e(919,"Extract"),icon:b.wrench},{kind:Ot.RefactorInline,title:e(920,"Inline"),icon:b.wrench},{kind:Ot.RefactorRewrite,title:e(921,"Rewrite"),icon:b.wrench},{kind:Ot.RefactorMove,title:e(922,"Move"),icon:b.wrench},{kind:Ot.SurroundWith,title:e(923,"Surround With"),icon:b.surroundWith},{kind:Ot.Source,title:e(924,"Source Action"),icon:b.symbolFile},BL]);function VL(m,u,p){if(!u)return m.map((k)=>({kind:"action",item:k,group:BL,disabled:!!k.action.disabled,label:k.action.disabled||k.action.title,canPreview:!!k.action.edit?.edits.length}));let v=DT.map((k)=>({group:k,actions:[]}));for(let k of m){let D=k.action.kind?new It(k.action.kind):It.None;for(let T of v)if(T.group.kind.contains(D)){T.actions.push(k);break}}let y=[];for(let k of v)if(k.actions.length){y.push({kind:"header",group:k.group});for(let D of k.actions){let T=k.group;y.push({kind:"action",item:D,group:D.action.isAI?{title:T.title,kind:T.kind,icon:b.sparkle}:T,label:D.action.title,disabled:!!D.action.disabled,keybinding:p(D.action)})}}return y}var iv=new A("supportedCodeAction",""),zL="_typescript.applyFixAllCodeAction";class KL extends n{constructor(m,u,p,v=250){super();this._editor=m,this._markerService=u,this._signalChange=p,this._delay=v,this._autoTriggerTimer=this._register(new Vn),this.ignoreLightbulbOff=!1,this._register(this._markerService.onMarkerChanged((y)=>this._onMarkerChanges(y))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(m){let u=this._getRangeOfSelectionUnlessWhitespaceEnclosed(m);this._signalChange(u?{trigger:m,selection:u}:void 0)}_onMarkerChanges(m){let u=this._editor.getModel();if(u&&m.some((p)=>Pr(p,u.uri)))this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:ji.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(m){if(!this._editor.hasModel())return;let u=this._editor.getSelection();if(m.type===1)return u;let p=this._editor.getOption(73).enabled;if(p===ts.Off&&!this.ignoreLightbulbOff)return;else if(p===ts.Off||p===ts.On)return u;else if(p===ts.OnCode){if(!u.isEmpty())return u;let y=this._editor.getModel(),{lineNumber:k,column:D}=u.getPosition(),T=y.getLineContent(k);if(T.length===0)return;else if(D===1){if(/\s/.test(T[0]))return}else if(D===y.getLineMaxColumn(k)){if(/\s/.test(T[T.length-1]))return}else if(/\s/.test(T[D-2])&&/\s/.test(T[D-1]))return}return u}}var dd;(function(m){m.Empty={type:0};class u{constructor(p,v,y){this.trigger=p,this.position=v,this._cancellablePromise=y,this.type=1,this.actions=y.catch((k)=>{if(Gn(k))return nu;throw k})}cancel(){this._cancellablePromise.cancel()}}m.Triggered=u})(dd||(dd={}));var nu=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class ov extends n{constructor(m,u,p,v,y,k){super();this._editor=m,this._registry=u,this._markerService=p,this._progressService=y,this._configurationService=k,this._codeActionOracle=this._register(new ie),this._state=dd.Empty,this._onDidChangeState=this._register(new i),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new ie),this._disposed=!1,this._ignoreLightbulbOff=!1,this._supportedCodeActions=iv.bindTo(v),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration((D)=>{if(D.hasChanged(73))this._update()})),this._update()}dispose(){if(this._disposed)return;this._disposed=!0,super.dispose(),this.setState(dd.Empty,!0)}_settingEnabledNearbyQuickfixes(){let m=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:m?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(dd.Empty),this.codeActionsDisposable.clear();let m=this._editor.getModel();if(m&&this._registry.has(m)&&!this._editor.getOption(104)){let u=this._registry.all(m).flatMap((v)=>v.providedCodeActionKinds??[]);this._supportedCodeActions.set(u.join(" "));let p=new KL(this._editor,this._markerService,(v)=>{if(!v){this.setState(dd.Empty);return}let y=v.selection.getStartPosition(),k=Pt(async(R)=>{if(this._settingEnabledNearbyQuickfixes()&&v.trigger.type===1&&(v.trigger.triggerAction===ji.QuickFix||v.trigger.filter?.include?.contains(Ot.QuickFix))){let q=new c,Q=!1;try{let te=q.add(await ca(this._registry,m,v.selection,v.trigger,na.None,R)),ne=[...te.allActions];if(R.isCancellationRequested)return nu;let re=te.validActions?.some((ge)=>ge.action.kind&&Ot.QuickFix.contains(new It(ge.action.kind))&&!ge.action.isAI),ae=this._markerService.read({resource:m.uri});if(re){for(let Se of te.validActions)if(Se.action.command?.arguments?.some((Oe)=>typeof Oe==="string"&&Oe.includes(zL)))Se.action.diagnostics=[...ae.filter((Oe)=>Oe.relatedInformation)];let ge=this._setCodeActions({validActions:te.validActions,allActions:ne,documentation:te.documentation,hasAutoFix:te.hasAutoFix,hasAIFix:te.hasAIFix,allAIFixes:te.allAIFixes,dispose:()=>q.dispose()});return Q=!0,ge}else if(!re){if(ae.length>0){let ge=v.selection.getPosition(),Se=ge,Oe=Number.MAX_VALUE,Ae=[...te.validActions];for(let Le of ae){let{endColumn:He,endLineNumber:Je,startLineNumber:tt}=Le;if(Je===ge.lineNumber||tt===ge.lineNumber){Se=new r(Je,He);let ot={type:v.trigger.type,triggerAction:v.trigger.triggerAction,filter:{include:v.trigger.filter?.include?v.trigger.filter?.include:Ot.QuickFix},autoApply:v.trigger.autoApply,context:{notAvailableMessage:v.trigger.context?.notAvailableMessage||"",position:Se}},qe=new O(Se.lineNumber,Se.column,Se.lineNumber,Se.column),nt=q.add(await ca(this._registry,m,qe,ot,na.None,R));if(R.isCancellationRequested)return nu;if(nt.validActions.length!==0){for(let _t of nt.validActions)if(_t.action.command?.arguments?.some((st)=>typeof st==="string"&&st.includes(zL)))_t.action.diagnostics=[...ae.filter((st)=>st.relatedInformation)];if(te.allActions.length===0)ne.push(...nt.allActions);if(Math.abs(ge.column-He)<Oe)Ae.unshift(...nt.validActions);else Ae.push(...nt.validActions)}Oe=Math.abs(ge.column-He)}}let We=Ae.filter((Le,He,Je)=>Je.findIndex((tt)=>tt.action.title===Le.action.title)===He);We.sort((Le,He)=>{if(Le.action.isPreferred&&!He.action.isPreferred)return-1;else if(!Le.action.isPreferred&&He.action.isPreferred)return 1;else if(Le.action.isAI&&!He.action.isAI)return 1;else if(!Le.action.isAI&&He.action.isAI)return-1;else return 0});let Ue=this._setCodeActions({validActions:We,allActions:ne,documentation:te.documentation,hasAutoFix:te.hasAutoFix,hasAIFix:te.hasAIFix,allAIFixes:te.allAIFixes,dispose:()=>q.dispose()});return Q=!0,Ue}}}finally{if(!Q)q.dispose()}}if(v.trigger.type===1){let q=await ca(this._registry,m,v.selection,v.trigger,na.None,R);if(R.isCancellationRequested)return q.dispose(),nu;return this._setCodeActions(q)}let K=await ca(this._registry,m,v.selection,v.trigger,na.None,R);if(R.isCancellationRequested)return K.dispose(),nu;return this._setCodeActions(K)});if(v.trigger.type===1)this._progressService?.showWhile(k,250);let D=new dd.Triggered(v.trigger,y,k),T=!1;if(this._state.type===1)T=this._state.trigger.type===1&&D.type===1&&D.trigger.type===2&&this._state.position!==D.position;if(!T)this.setState(D);else setTimeout(()=>{this.setState(D)},500)},void 0);p.ignoreLightbulbOff=this._ignoreLightbulbOff,this._codeActionOracle.value=p,this._codeActionOracle.value.trigger({type:2,triggerAction:ji.Default})}else this._supportedCodeActions.reset()}_setCodeActions(m){return this.codeActionsDisposable.value=m,m}takeCodeActions(m){if(this.codeActionsDisposable.value!==m)return;return this.codeActionsDisposable.clearAndLeak(),m}trigger(m){this._codeActionOracle.value?.trigger(m),this.codeActionsDisposable.clear()}setState(m,u){if(m===this._state)return;if(this._state.type===1)this._state.cancel();if(this._state=m,!u&&!this._disposed)this._onDidChangeState.fire(m)}}var TT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},RT=function(m,u){return function(p,v){u(p,v,m)}},la,UL=Lt("gutter-lightbulb",b.lightBulb,e(925,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),qL=Lt("gutter-lightbulb-auto-fix",b.lightbulbAutofix,e(926,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),jL=Lt("gutter-lightbulb-sparkle",b.lightbulbSparkle,e(927,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),$L=Lt("gutter-lightbulb-aifix-auto-fix",b.lightbulbSparkleAutofix,e(928,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),GL=Lt("gutter-lightbulb-sparkle-filled",b.sparkleFilled,e(929,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),pr;(function(m){m.Hidden={type:0};class u{constructor(p,v,y,k){this.actions=p,this.trigger=v,this.editorPosition=y,this.widgetPosition=k,this.type=1}}m.Showing=u})(pr||(pr={}));function nv(m,u,p,v,y=!1){if(m.validActions.length<=0)return;let k,D=!1;if(m.allAIFixes){if(k=y?GL:b.sparkleFilled,m.validActions.length===1)D=!0}else if(m.hasAutoFix)if(m.hasAIFix)k=y?$L:b.lightbulbSparkleAutofix;else k=y?qL:b.lightbulbAutofix;else if(m.hasAIFix)k=y?jL:b.lightbulbSparkle;else k=y?UL:b.lightBulb;let T;if(D)T=e(930,"Run: {0}",m.validActions[0].action.title);else if(m.hasAutoFix&&p)T=e(931,"Show Code Actions. Preferred Quick Fix Available ({0})",p);else if(!m.hasAutoFix&&v)T=e(932,"Show Code Actions ({0})",v);else T=e(933,"Show Code Actions");return{actions:m,trigger:u,icon:k,autoRun:D,title:T,isGutter:y}}var cd=class m extends n{static{la=this}static{this.GUTTER_DECORATION=oe.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:G.asClassName(b.lightBulb),glyphMargin:{position:_r.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}static _computeLightBulbInfo(u,p,v,y){if(u.type!==1)return;return nv(u.actions,u.trigger,v,y,p)}constructor(u,p){super();this._editor=u,this._keybindingService=p,this.onlyWithEmptySelection=!1,this._onClick=this._register(new i),this.onClick=this._onClick.event,this._state=M(this,pr.Hidden),this._gutterState=M(this,pr.Hidden),this._combinedInfo=d(this,(v)=>{let y=this._gutterState.read(v);if(y.type===1)return la._computeLightBulbInfo(y,!0,this._preferredKbLabel.read(v),this._quickFixKbLabel.read(v));let k=this._state.read(v);if(k.type===1)return la._computeLightBulbInfo(k,!1,this._preferredKbLabel.read(v),this._quickFixKbLabel.read(v));return}),this._iconClasses=[],this.lightbulbClasses=["codicon-"+UL.id,"codicon-"+$L.id,"codicon-"+qL.id,"codicon-"+jL.id,"codicon-"+GL.id],this._preferredKbLabel=M(this,void 0),this._quickFixKbLabel=M(this,void 0),this.gutterDecoration=la.GUTTER_DECORATION,this._domNode=g("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Tt.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((v)=>{let y=this._editor.getModel(),k=this._state.get();if(k.type!==1||!y||k.editorPosition.lineNumber>=y.getLineCount())this.hide();let D=this._gutterState.get();if(D.type!==1||!y||D.editorPosition.lineNumber>=y.getLineCount())this.gutterHide()})),this._register(QI(this._domNode,(v)=>{let y=this._state.get();if(y.type!==1)return;this._editor.focus(),v.preventDefault();let{top:k,height:D}=mt(this._domNode),T=this._editor.getOption(75),R=Math.floor(T/3);if(y.widgetPosition.position!==null&&y.widgetPosition.position.lineNumber<y.editorPosition.lineNumber)R+=T;this._onClick.fire({x:v.posx,y:k+D+R,actions:y.actions,trigger:y.trigger})})),this._register(l(this._domNode,"mouseenter",(v)=>{if((v.buttons&1)!==1)return;this.hide()})),this._register(C.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(wc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(da)?.getLabel()??void 0,void 0)})),this._register(H((v)=>{let y=this._combinedInfo.read(v);this._updateLightBulbTitleAndIcon(y),this._updateGutterDecorationOptions(y)})),this._register(this._editor.onMouseDown(async(v)=>{if(!v.target.element||!this.lightbulbClasses.some((K)=>v.target.element&&v.target.element.classList.contains(K)))return;let y=this._gutterState.get();if(y.type!==1)return;this._editor.focus();let{top:k,height:D}=mt(v.target.element),T=this._editor.getOption(75),R=Math.floor(T/3);if(y.widgetPosition.position!==null&&y.widgetPosition.position.lineNumber<y.editorPosition.lineNumber)R+=T;this._onClick.fire({x:v.event.posx,y:k+D+R,actions:y.actions,trigger:y.trigger})}))}dispose(){if(super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){let u=this._state.get();return u.type===1?u.widgetPosition:null}update(u,p,v){if(u.validActions.length<=0)return this.gutterHide(),this.hide();if(this.onlyWithEmptySelection&&!this._editor.getSelection()?.isEmpty())return this.gutterHide(),this.hide();if(!this._editor.hasTextFocus())return this.gutterHide(),this.hide();if(this._editor.getOptions().get(73).enabled===ts.Off)return this.gutterHide(),this.hide();let D=this._editor.getModel();if(!D)return this.gutterHide(),this.hide();let{lineNumber:T,column:R}=D.validatePosition(v),K=D.getOptions().tabSize,q=this._editor.getOptions().get(59),Q=D.getLineContent(T),te=uf(Q,K),ne=q.spaceWidth*te>22,re=(Ue)=>Ue>2&&this._editor.getTopForLineNumber(Ue)===this._editor.getTopForLineNumber(Ue-1),ae=this._editor.getLineDecorations(T),ge=!1;if(ae)for(let Ue of ae){let Le=Ue.options.glyphMarginClassName;if(Le&&!this.lightbulbClasses.some((He)=>Le.includes(He))){ge=!0;break}}let Se=T,Oe=1;if(!ne){let Ue=(Le)=>{let He=D.getLineContent(Le);return/^\s*$|^\s+/.test(He)||He.length<=Oe};if(T>1&&!re(T-1)){let Le=D.getLineCount(),He=T===Le,Je=T>1&&Ue(T-1),tt=!He&&Ue(T+1),ot=Ue(T),qe=!tt&&!Je;if(!tt&&!Je&&!ge)return this._gutterState.set(new pr.Showing(u,p,v,{position:{lineNumber:Se,column:Oe},preference:la._posPref}),void 0),this.renderGutterLightbub(),this.hide();else if(Je||He||Je&&!ot)Se-=1;else if(tt||qe&&ot)Se+=1}else if(T===1&&(T===D.getLineCount()||!Ue(T+1)&&!Ue(T)))if(this._gutterState.set(new pr.Showing(u,p,v,{position:{lineNumber:Se,column:Oe},preference:la._posPref}),void 0),ge)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(T<D.getLineCount()&&!re(T+1))Se+=1;else if(R*q.spaceWidth<22)return this.hide();Oe=/^\S\s*$/.test(D.getLineContent(Se))?2:1}if(this._state.set(new pr.Showing(u,p,v,{position:{lineNumber:Se,column:Oe},preference:la._posPref}),void 0),this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide();let Ae=u.validActions,We=u.validActions[0].action.kind;if(Ae.length!==1||!We){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){if(this._state.get()===pr.Hidden)return;this._state.set(pr.Hidden,void 0),this._editor.layoutContentWidget(this)}gutterHide(){if(this._gutterState.get()===pr.Hidden)return;if(this._gutterDecorationID)this._removeGutterDecoration(this._gutterDecorationID);this._gutterState.set(pr.Hidden,void 0)}_updateLightBulbTitleAndIcon(u){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],!u||u.isGutter)return;this._domNode.title=u.title,this._iconClasses=G.asClassNameArray(u.icon),this._domNode.classList.add(...this._iconClasses)}_updateGutterDecorationOptions(u){if(!u||!u.isGutter)return;this.gutterDecoration=oe.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:G.asClassName(u.icon),glyphMargin:{position:_r.Left},stickiness:1})}renderGutterLightbub(){let u=this._editor.getSelection();if(!u)return;if(this._gutterDecorationID===void 0)this._addGutterDecoration(u.startLineNumber);else this._updateGutterDecoration(this._gutterDecorationID,u.startLineNumber)}_addGutterDecoration(u){this._editor.changeDecorations((p)=>{this._gutterDecorationID=p.addDecoration(new t(u,0,u,0),this.gutterDecoration)})}_removeGutterDecoration(u){this._editor.changeDecorations((p)=>{p.removeDecoration(u),this._gutterDecorationID=void 0})}_updateGutterDecoration(u,p){this._editor.changeDecorations((v)=>{v.changeDecoration(u,new t(p,0,p,0)),v.changeDecorationOptions(u,this.gutterDecoration)})}};cd=la=TT([RT(1,ce)],cd);var NT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},mr=function(m,u){return function(p,v){u(p,v,m)}},Sc,MT="quickfix-edit-highlight",Jr=class m extends n{static{Sc=this}static{this.ID="editor.contrib.codeActionController"}static get(u){return u.getContribution(Sc.ID)}constructor(u,p,v,y,k,D,T,R,K,q,Q,te){super();this._commandService=T,this._configurationService=R,this._actionWidgetService=K,this._instantiationService=q,this._progressService=Q,this._keybindingService=te,this._activeCodeActions=this._register(new ie),this._showDisabled=!1,this._disposed=!1,this._onlyLightBulbWithEmptySelection=!1,this._lightBulbInfoObs=M(this,void 0),this._preferredKbLabel=M(this,void 0),this._quickFixKbLabel=M(this,void 0),this._editor=u,this._model=this._register(new ov(this._editor,k.codeActionProvider,p,v,D,R)),this._register(this._model.onDidChangeState((ne)=>this.update(ne))),this._register(C.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel.set(this._keybindingService.lookupKeybinding(wc)?.getLabel()??void 0,void 0),this._quickFixKbLabel.set(this._keybindingService.lookupKeybinding(da)?.getLabel()??void 0,void 0)})),this._lightBulbWidget=new Mn(()=>{let ne=this._editor.getContribution(cd.ID);if(ne)this._register(ne.onClick((re)=>this.showCodeActionsFromLightbulb(re.actions,re))),ne.onlyWithEmptySelection=this._onlyLightBulbWithEmptySelection;return ne}),this._resolver=y.createInstance(im),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(u,p){if(u.allAIFixes&&u.validActions.length===1){let v=u.validActions[0],y=v.action.command;if(y&&y.id==="inlineChat.start"){if(y.arguments&&y.arguments.length>=1&&y.arguments[0])y.arguments[0]={...y.arguments[0],autoSend:!1}}await this.applyCodeAction(v,!1,!1,Gr.FromAILightbulb);return}await this.showCodeActionList(u,p,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(u,p,v){return this.showCodeActionList(p,v,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(u,p,v,y){if(!this._editor.hasModel())return;Bi.get(this._editor)?.closeMessage();let k=this._editor.getPosition();this._trigger({type:1,triggerAction:p,filter:v,autoApply:y,context:{notAvailableMessage:u,position:k}})}_trigger(u){return this._model.trigger(u)}async applyCodeAction(u,p,v,y){let k=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(WL,u,y,{preview:v,editor:this._editor})}finally{if(p)this._trigger({type:2,triggerAction:ji.QuickFix,filter:{}});k.done()}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(u){if(u.type!==1){this.hideLightBulbWidget(),this._lightBulbInfoObs.set(void 0,void 0);return}let p;try{p=this._model.takeCodeActions(await u.actions)}catch(y){J(y);return}if(!p)return;if(this._disposed){p.dispose();return}if(this._editor.getSelection()?.startLineNumber!==u.position.lineNumber){p.dispose();return}if(this._lightBulbWidget.value?.update(p,u.trigger,u.position),this._lightBulbInfoObs.set(nv(p,u.trigger,this._preferredKbLabel.get(),this._quickFixKbLabel.get()),void 0),u.trigger.type===1){if(u.trigger.filter?.include){let k=this.tryGetValidActionToApply(u.trigger,p);if(k){try{this.hideLightBulbWidget(),await this.applyCodeAction(k,!1,!1,Gr.FromCodeActions)}finally{p.dispose()}return}if(u.trigger.context){let D=this.getInvalidActionThatWouldHaveBeenApplied(u.trigger,p);if(D&&D.action.disabled){Bi.get(this._editor)?.showMessage(D.action.disabled,u.trigger.context.position),p.dispose();return}}}let y=!!u.trigger.filter?.include;if(u.trigger.context){if(!p.allActions.length||!y&&!p.validActions.length){Bi.get(this._editor)?.showMessage(u.trigger.context.notAvailableMessage,u.trigger.context.position),this._activeCodeActions.value=p,p.dispose();return}}this._activeCodeActions.value=p,this.showCodeActionList(p,this.toCoords(u.position),{includeDisabledActions:y,fromLightbulb:!1})}else if(this._actionWidgetService.isVisible)p.dispose();else this._activeCodeActions.value=p}getInvalidActionThatWouldHaveBeenApplied(u,p){if(!p.allActions.length)return;if(u.autoApply==="first"&&p.validActions.length===0||u.autoApply==="ifSingle"&&p.allActions.length===1)return p.allActions.find(({action:v})=>v.disabled);return}tryGetValidActionToApply(u,p){if(!p.validActions.length)return;if(u.autoApply==="first"&&p.validActions.length>0||u.autoApply==="ifSingle"&&p.validActions.length===1)return p.validActions[0];return}static{this.DECORATION=oe.register({description:"quickfix-highlight",className:MT})}async showCodeActionList(u,p,v){let y=this._editor.createDecorationsCollection(),k=this._editor.getDomNode();if(!k)return;let D=v.includeDisabledActions&&(this._showDisabled||u.validActions.length===0)?u.allActions:u.validActions;if(!D.length)return;let T=r.isIPosition(p)?this.toCoords(p):p,R={onSelect:async(K,q)=>{this.applyCodeAction(K,!0,!!q,v.fromLightbulb?Gr.FromAILightbulb:Gr.FromCodeActions),this._actionWidgetService.hide(!1),y.clear()},onHide:(K)=>{this._editor?.focus(),y.clear()},onHover:async(K,q)=>{if(q.isCancellationRequested)return;let Q=!1,te=K.action.kind;if(te){let ne=new It(te);Q=[Ot.RefactorExtract,Ot.RefactorInline,Ot.RefactorRewrite,Ot.RefactorMove,Ot.Source].some((ae)=>ae.contains(ne))}return{canPreview:Q||!!K.action.edit?.edits.length}},onFocus:(K)=>{if(K&&K.action){let q=K.action.ranges,Q=K.action.diagnostics;if(y.clear(),q&&q.length>0){let te=Q&&Q?.length>1?Q.map((ne)=>({range:ne,options:Sc.DECORATION})):q.map((ne)=>({range:ne,options:Sc.DECORATION}));y.set(te)}else if(Q&&Q.length>0){let te=Q.map((re)=>({range:re,options:Sc.DECORATION}));y.set(te);let ne=Q[0];if(ne.startLineNumber&&ne.startColumn){let re=this._editor.getModel()?.getWordAtPosition({lineNumber:ne.startLineNumber,column:ne.startColumn})?.word;go(e(914,"Context: {0} at line {1} and column {2}.",re,ne.startLineNumber,ne.startColumn))}}}else y.clear()}};this._actionWidgetService.show("codeActionWidget",!0,VL(D,this._shouldShowHeaders(),this._resolver.getResolver()),R,T,k,this._getActionBarActions(u,p,v))}toCoords(u){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(u,1),this._editor.render();let p=this._editor.getScrolledVisiblePosition(u),v=mt(this._editor.getDomNode()),y=v.left+p.left,k=v.top+p.top+p.height;return{x:y,y:k}}_shouldShowHeaders(){let u=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:u?.uri})}_getActionBarActions(u,p,v){if(v.fromLightbulb)return[];let y=u.documentation.map((k)=>({id:k.id,label:k.title,tooltip:k.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(k.id,...k.arguments??[])}));if(v.includeDisabledActions&&u.validActions.length>0&&u.allActions.length!==u.validActions.length)y.push(this._showDisabled?{id:"hideMoreActions",label:e(915,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(u,p,v))}:{id:"showMoreActions",label:e(916,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(u,p,v))});return y}};Jr=Sc=NT([mr(1,dr),mr(2,V),mr(3,L),mr(4,j),mr(5,ss),mr(6,Ne),mr(7,X),mr(8,Oo),mr(9,L),mr(10,ss),mr(11,ce)],Jr);oi((m,u)=>{((y,k)=>{if(k)u.addRule(`.monaco-editor ${y} { background-color: ${k}; }`)})(".quickfix-edit-highlight",m.getColor(Ts));let v=m.getColor(fl);if(v)u.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${zo(m.type)?"dotted":"solid"} ${v}; box-sizing: border-box; }`)});function du(m){return _.regex(iv.keys()[0],new RegExp("(\\s|^)"+_i(m.value)+"\\b"))}var rv={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:e(882,"Kind of the code action to run.")},apply:{type:"string",description:e(883,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[e(884,"Always apply the first returned code action."),e(885,"Apply the first returned code action if it is the only one."),e(886,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:e(887,"Controls if only preferred code actions should be returned.")}}};function ld(m,u,p,v,y=ji.Default){if(m.hasModel())Jr.get(m)?.manualTriggerAtCurrentPosition(u,y,p,v)}class sv extends Bo{constructor(){super({id:da,title:h(904,"Quick Fix..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),icon:b.lightBulb,f1:!0,keybinding:{when:o.textInputFocus,primary:2137,weight:100},menu:{id:a.InlineChatEditorAffordance,group:"1_quickfix",order:0,when:_.and(o.writable,o.hasCodeActionsProvider)}})}runEditorCommand(m,u){return ld(u,e(888,"No code actions available"),void 0,void 0,ji.QuickFix)}}class av extends Bt{constructor(){super({id:Gp,precondition:_.and(o.writable,o.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:rv}]}})}runEditorCommand(m,u,p){let v=un.fromUser(p,{kind:It.Empty,apply:"ifSingle"});return ld(u,typeof p?.kind==="string"?v.preferred?e(889,"No preferred code actions for '{0}' available",p.kind):e(890,"No code actions for '{0}' available",p.kind):v.preferred?e(891,"No preferred code actions available"):e(892,"No code actions available"),{include:v.kind,includeSourceActions:!0,onlyIncludePreferredActions:v.preferred},v.apply)}}class dv extends z{constructor(){super({id:em,label:h(905,"Refactor..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),kbOpts:{kbExpr:o.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:_.and(o.writable,du(Ot.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:rv}]}})}run(m,u,p){let v=un.fromUser(p,{kind:Ot.Refactor,apply:"never"});return ld(u,typeof p?.kind==="string"?v.preferred?e(893,"No preferred refactorings for '{0}' available",p.kind):e(894,"No refactorings for '{0}' available",p.kind):v.preferred?e(895,"No preferred refactorings available"):e(896,"No refactorings available"),{include:Ot.Refactor.contains(v.kind)?v.kind:It.None,onlyIncludePreferredActions:v.preferred},v.apply,ji.Refactor)}}class cv extends z{constructor(){super({id:tm,label:h(906,"Source Action..."),precondition:_.and(o.writable,o.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:_.and(o.writable,du(Ot.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:rv}]}})}run(m,u,p){let v=un.fromUser(p,{kind:Ot.Source,apply:"never"});return ld(u,typeof p?.kind==="string"?v.preferred?e(897,"No preferred source actions for '{0}' available",p.kind):e(898,"No source actions for '{0}' available",p.kind):v.preferred?e(899,"No preferred source actions available"):e(900,"No source actions available"),{include:Ot.Source.contains(v.kind)?v.kind:It.None,includeSourceActions:!0,onlyIncludePreferredActions:v.preferred},v.apply,ji.SourceAction)}}class lv extends z{constructor(){super({id:Jh,label:h(907,"Organize Imports"),precondition:_.and(o.writable,du(Ot.SourceOrganizeImports)),kbOpts:{kbExpr:o.textInputFocus,primary:1581,weight:100},metadata:{description:h(908,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(m,u){return ld(u,e(901,"No organize imports action available"),{include:Ot.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",ji.OrganizeImports)}}class hv extends z{constructor(){super({id:Qh,label:h(909,"Fix All"),precondition:_.and(o.writable,du(Ot.SourceFixAll))})}run(m,u){return ld(u,e(902,"No fix all action available"),{include:Ot.SourceFixAll,includeSourceActions:!0},"ifSingle",ji.FixAll)}}class uv extends z{constructor(){super({id:wc,label:h(910,"Auto Fix..."),precondition:_.and(o.writable,du(Ot.QuickFix)),kbOpts:{kbExpr:o.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(m,u){return ld(u,e(903,"No auto fixes available"),{include:Ot.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",ji.AutoFix)}}le(Jr.ID,Jr,3);le(cd.ID,cd,4);Ze(sv);I(dv);I(cv);I(lv);I(uv);I(hv);U(new av);it.as(or.Configuration).registerConfiguration({...My,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:e(911,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});it.as(or.Configuration).registerConfiguration({...My,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:e(912,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});it.as(or.Configuration).registerConfiguration({...My,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 ZL=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},fu=function(m,u){return function(p,v){u(p,v,m)}},om=class m{static{this.ID="editor.contrib.autoFormat"}constructor(u,p,v,y){this._editor=u,this._languageFeaturesService=p,this._workerService=v,this._accessibilitySignalService=y,this._disposables=new c,this._sessionDisposables=new c,this._disposables.add(p.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(u.onDidChangeModel(()=>this._update())),this._disposables.add(u.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(u.onDidChangeConfiguration((k)=>{if(k.hasChanged(65))this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65))return;if(!this._editor.hasModel())return;let u=this._editor.getModel(),[p]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(u);if(!p||!p.autoFormatTriggerCharacters)return;let v=new xh;for(let y of p.autoFormatTriggerCharacters)v.add(y.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((y)=>{let k=y.charCodeAt(y.length-1);if(v.has(k))this._trigger(String.fromCharCode(k))}))}_trigger(u){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let p=this._editor.getModel(),v=this._editor.getPosition(),y=new Me,k=this._editor.onDidChangeModelContent((D)=>{if(D.isFlush){y.cancel(),k.dispose();return}for(let T=0,R=D.changes.length;T<R;T++)if(D.changes[T].range.endLineNumber<=v.lineNumber){y.cancel(),k.dispose();return}});aS(this._workerService,this._languageFeaturesService,p,v,u,p.getFormattingOptions(),y.token).then((D)=>{if(y.token.isCancellationRequested)return;if(Ln(D))this._accessibilitySignalService.playSignal(Ge.format,{userGesture:!1}),zh.execute(this._editor,D,!0)}).finally(()=>{k.dispose()})}};om=ZL([fu(1,j),fu(2,fi),fu(3,zr)],om);var nm=class m{static{this.ID="editor.contrib.formatOnPaste"}constructor(u,p,v){this.editor=u,this._languageFeaturesService=p,this._instantiationService=v,this._callOnDispose=new c,this._callOnModel=new c,this._callOnDispose.add(u.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(u.onDidChangeModel(()=>this._update())),this._callOnDispose.add(u.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(p.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){if(this._callOnModel.clear(),!this.editor.getOption(64))return;if(!this.editor.hasModel())return;if(!this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel()))return;this._callOnModel.add(this.editor.onDidPaste(({range:u})=>this._trigger(u)))}_trigger(u){if(!this.editor.hasModel())return;if(this.editor.getSelections().length>1)return;this._instantiationService.invokeFunction(sS,this.editor,u,2,na.None,he.None,!1).catch(J)}};nm=ZL([fu(1,j),fu(2,L)],nm);class XL extends z{constructor(){super({id:"editor.action.formatDocument",label:h(1072,"Format Document"),precondition:_.and(o.notInCompositeEditor,o.writable,o.hasDocumentFormattingProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(m,u){if(u.hasModel()){let p=m.get(L);await m.get(ss).showWhile(p.invokeFunction(FR,u,1,na.None,he.None,!0),250)}}}class YL extends z{constructor(){super({id:"editor.action.formatSelection",label:h(1073,"Format Selection"),precondition:_.and(o.writable,o.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2084),weight:100},contextMenuOpts:{when:o.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(m,u){if(!u.hasModel())return;let p=m.get(L),v=u.getModel(),y=u.getSelections().map((D)=>D.isEmpty()?new t(D.startLineNumber,1,D.startLineNumber,v.getLineMaxColumn(D.startLineNumber)):D);await m.get(ss).showWhile(p.invokeFunction(sS,u,y,1,na.None,he.None,!0),250)}}le(om.ID,om,2);le(nm.ID,nm,2);I(XL);I(YL);we.registerCommand("editor.action.format",async(m)=>{let u=m.get(ye).getFocusedCodeEditor();if(!u||!u.hasModel())return;let p=m.get(Ne);if(u.getSelection().isEmpty())await p.executeCommand("editor.action.formatDocument");else await p.executeCommand("editor.action.formatSelection")});var rm="editor.action.showHover",JL="editor.action.showDefinitionPreviewHover",QL="editor.action.hideHover",ek="editor.action.scrollUpHover",tk="editor.action.scrollDownHover",ik="editor.action.scrollLeftHover",ok="editor.action.scrollRightHover",nk="editor.action.pageUpHover",rk="editor.action.pageDownHover",sk="editor.action.goToTopHover",ak="editor.action.goToBottomHover",hd="editor.action.increaseHoverVerbosityLevel",dk=e(1160,"Increase Hover Verbosity Level"),ud="editor.action.decreaseHoverVerbosityLevel",ck=e(1161,"Decrease Hover Verbosity Level"),_u="editor.action.hideLongLineWarningHover";function gv(m,u){return!!m[u]}class sm{constructor(m,u){if(this.target=m.target,this.isLeftClick=m.event.leftButton,this.isMiddleClick=m.event.middleButton,this.isRightClick=m.event.rightButton,this.mouseMiddleClickAction=u.mouseMiddleClickAction,this.hasTriggerModifier=gv(m.event,u.triggerModifier),this.isMiddleClick&&u.mouseMiddleClickAction==="ctrlLeftClick")this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0;this.hasSideBySideModifier=gv(m.event,u.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=m.event.detail<=1}}class pv{constructor(m,u){this.keyCodeIsTriggerKey=m.keyCode===u.triggerKey,this.keyCodeIsSideBySideKey=m.keyCode===u.triggerSideBySideKey,this.hasTriggerModifier=gv(m,u.triggerModifier)}}class bu{constructor(m,u,p,v,y){this.mouseMiddleClickAction=y,this.triggerKey=m,this.triggerModifier=u,this.triggerSideBySideKey=p,this.triggerSideBySideModifier=v}equals(m){return this.triggerKey===m.triggerKey&&this.triggerModifier===m.triggerModifier&&this.triggerSideBySideKey===m.triggerSideBySideKey&&this.triggerSideBySideModifier===m.triggerSideBySideModifier&&this.mouseMiddleClickAction===m.mouseMiddleClickAction}}function lk(m,u){if(m==="altKey"){if(ue)return new bu(57,"metaKey",6,"altKey",u);return new bu(5,"ctrlKey",6,"altKey",u)}if(ue)return new bu(6,"altKey",57,"metaKey",u);return new bu(6,"altKey",5,"ctrlKey",u)}class ys extends n{constructor(m,u){super();this._onMouseMoveOrRelevantKeyDown=this._register(new i),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new i),this.onExecute=this._onExecute.event,this._onCancel=this._register(new i),this.onCancel=this._onCancel.event,this._editor=m,this._extractLineNumberFromMouseEvent=u?.extractLineNumberFromMouseEvent??((p)=>p.target.position?p.target.position.lineNumber:0),this._opts=lk(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((p)=>{if(p.hasChanged(86)||p.hasChanged(87)){let v=lk(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(v))return;this._opts=v,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove((p)=>this._onEditorMouseMove(new sm(p,this._opts)))),this._register(this._editor.onMouseDown((p)=>this._onEditorMouseDown(new sm(p,this._opts)))),this._register(this._editor.onMouseUp((p)=>this._onEditorMouseUp(new sm(p,this._opts)))),this._register(this._editor.onKeyDown((p)=>this._onEditorKeyDown(new pv(p,this._opts)))),this._register(this._editor.onKeyUp((p)=>this._onEditorKeyUp(new pv(p,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection((p)=>this._onDidChangeCursorSelection(p))),this._register(this._editor.onDidChangeModel((p)=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange((p)=>{if(p.scrollTopChanged||p.scrollLeftChanged)this._resetHandler()}))}_onDidChangeCursorSelection(m){if(m.selection&&m.selection.startColumn!==m.selection.endColumn)this._resetHandler()}_onEditorMouseMove(m){this._lastMouseMoveEvent=m,this._onMouseMoveOrRelevantKeyDown.fire([m,null])}_onEditorMouseDown(m){this._hasTriggerKeyOnMouseDown=m.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(m)}_onEditorMouseUp(m){let u=this._extractLineNumberFromMouseEvent(m);if(!!this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===u&&(this._hasTriggerKeyOnMouseDown||m.isMiddleClick&&m.mouseMiddleClickAction==="openLink"))this._onExecute.fire(m)}_onEditorKeyDown(m){if(this._lastMouseMoveEvent&&(m.keyCodeIsTriggerKey||m.keyCodeIsSideBySideKey&&m.hasTriggerModifier))this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,m]);else if(m.hasTriggerModifier)this._onCancel.fire()}_onEditorKeyUp(m){if(m.keyCodeIsTriggerKey)this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}class Yo{constructor(m,u,p,v){this.isProviderFirst=m,this.parent=u,this.link=p,this._rangeCallback=v,this.id=Cy.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(m){this._range=m,this._rangeCallback(this)}get ariaMessage(){let m=this.parent.getPreview(this)?.preview(this.range);if(!m)return e(1145,"in {0} on line {1} at column {2}",pi(this.uri),this.range.startLineNumber,this.range.startColumn);else return e(1146,"{0} in {1} on line {2} at column {3}",m.value,pi(this.uri),this.range.startLineNumber,this.range.startColumn)}}class hk{constructor(m){this._modelReference=m}dispose(){this._modelReference.dispose()}preview(m,u=8){let p=this._modelReference.object.textEditorModel;if(!p)return;let{startLineNumber:v,startColumn:y,endLineNumber:k,endColumn:D}=m,T=p.getWordUntilPosition({lineNumber:v,column:y-u}),R=new t(v,T.startColumn,v,y),K=new t(k,D,k,1073741824),q=p.getValueInRange(R).replace(/^\s+/,""),Q=p.getValueInRange(m),te=p.getValueInRange(K).replace(/\s+$/,"");return{value:q+Q+te,highlight:{start:q.length,end:q.length+Q.length}}}}class Ls{constructor(m,u){this.parent=m,this.uri=u,this.children=[],this._previews=new Ht}dispose(){$e(this._previews.values()),this._previews.clear()}getPreview(m){return this._previews.get(m.uri)}get ariaMessage(){let m=this.children.length;if(m===1)return e(1147,"1 symbol in {0}, full path {1}",pi(this.uri),this.uri.fsPath);else return e(1148,"{0} symbols in {1}, full path {2}",m,pi(this.uri),this.uri.fsPath)}async resolve(m){if(this._previews.size!==0)return this;for(let u of this.children){if(this._previews.has(u.uri))continue;try{let p=await m.createModelReference(u.uri);this._previews.set(u.uri,new hk(p))}catch(p){J(p)}}return this}}class Yi{constructor(m,u){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new i,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=m,this._title=u;let[p]=m;m.sort(Yi._compareReferences);let v;for(let y of m){if(!v||!bn.isEqual(v.uri,y.uri,!0))v=new Ls(this,y.uri),this.groups.push(v);if(v.children.length===0||Yi._compareReferences(y,v.children[v.children.length-1])!==0){let k=new Yo(p===y,v,y,(D)=>this._onDidChangeReferenceRange.fire(D));this.references.push(k),v.children.push(k)}}}dispose(){$e(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Yi(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){if(this.isEmpty)return e(1149,"No results found");else if(this.references.length===1)return e(1150,"Found 1 symbol in {0}",this.references[0].uri.fsPath);else if(this.groups.length===1)return e(1151,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath);else return e(1152,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(m,u){let{parent:p}=m,v=p.children.indexOf(m),y=p.children.length,k=p.parent.groups.length;if(k===1||u&&v+1<y||!u&&v>0){if(u)v=(v+1)%y;else v=(v+y-1)%y;return p.children[v]}if(v=p.parent.groups.indexOf(p),u)return v=(v+1)%k,p.parent.groups[v].children[0];else return v=(v+k-1)%k,p.parent.groups[v].children[p.parent.groups[v].children.length-1]}nearestReference(m,u){let p=this.references.map((v,y)=>({idx:y,prefixLen:co(v.uri.toString(),m.toString()),offsetDist:Math.abs(v.range.startLineNumber-u.lineNumber)*100+Math.abs(v.range.startColumn-u.column)})).sort((v,y)=>{if(v.prefixLen>y.prefixLen)return-1;else if(v.prefixLen<y.prefixLen)return 1;else if(v.offsetDist<y.offsetDist)return-1;else if(v.offsetDist>y.offsetDist)return 1;else return 0})[0];if(p)return this.references[p.idx];return}referenceAt(m,u){for(let p of this.references)if(p.uri.toString()===m.toString()){if(t.containsPosition(p.range,u))return p}return}firstReference(){for(let m of this.references)if(m.isProviderFirst)return m;return this.references[0]}static _compareReferences(m,u){return bn.compare(m.uri,u.uri)||t.compareRangesUsingStarts(m.range,u.range)}}var cm=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},lm=function(m,u){return function(p,v){u(p,v,m)}},mv,am=class m{constructor(u){this._resolverService=u}hasChildren(u){if(u instanceof Yi)return!0;if(u instanceof Ls)return!0;return!1}getChildren(u){if(u instanceof Yi)return u.groups;if(u instanceof Ls)return u.resolve(this._resolverService).then((p)=>p.children);throw Error("bad tree")}};am=cm([lm(0,mn)],am);class _v{getHeight(){return 23}getTemplateId(m){if(m instanceof Ls)return vu.id;else return wu.id}}var dm=class m{constructor(u){this._keybindingService=u}getKeyboardNavigationLabel(u){if(u instanceof Yo){let p=u.parent.getPreview(u)?.preview(u.range);if(p)return p.value}return pi(u.uri)}};dm=cm([lm(0,ce)],dm);class bv{getId(m){return m instanceof Yo?m.id:m.uri}}var fv=class m extends n{constructor(u,p){super();this._labelService=p;let v=document.createElement("div");v.classList.add("reference-file"),this.file=this._register(new Yc(v,{supportHighlights:!0})),this.badge=this._register(new Dg(w(v,g(".count")),{},W0)),u.appendChild(v)}set(u,p){let v=vh(u.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(u.uri),this._labelService.getUriLabel(v,{relative:!0}),{title:this._labelService.getUriLabel(u.uri),matches:p});let y=u.children.length;if(this.badge.setCount(y),y>1)this.badge.setTitleFormat(e(1139,"{0} references",y));else this.badge.setTitleFormat(e(1140,"{0} reference",y))}};fv=cm([lm(1,xl)],fv);var vu=class m{static{mv=this}static{this.id="FileReferencesRenderer"}constructor(u){this._instantiationService=u,this.templateId=mv.id}renderTemplate(u){return this._instantiationService.createInstance(fv,u)}renderElement(u,p,v){v.set(u.element,uu(u.filterData))}disposeTemplate(u){u.dispose()}};vu=mv=cm([lm(0,L)],vu);class uk extends n{constructor(m){super();this.label=this._register(new Jc(m))}set(m,u){let p=m.parent.getPreview(m)?.preview(m.range);if(!p||!p.value)this.label.set(`${pi(m.uri)}:${m.range.startLineNumber+1}:${m.range.startColumn+1}`);else{let{value:v,highlight:y}=p;if(u&&!kr.isDefault(u))this.label.element.classList.toggle("referenceMatch",!1),this.label.set(v,uu(u));else this.label.element.classList.toggle("referenceMatch",!0),this.label.set(v,[y])}}}class wu{constructor(){this.templateId=wu.id}static{this.id="OneReferenceRenderer"}renderTemplate(m){return new uk(m)}renderElement(m,u,p){p.set(m.element,m.filterData)}disposeTemplate(m){m.dispose()}}class vv{getWidgetAriaLabel(){return e(1141,"References")}getAriaLabel(m){return m.ariaMessage}}var gk=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},gd=function(m,u){return function(p,v){u(p,v,m)}};class Sv{static{this.DecorationOptions=oe.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(m,u){this._editor=m,this._model=u,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new c,this._callOnModelChange=new c,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();let m=this._editor.getModel();if(!m)return;for(let u of this._model.references)if(u.uri.toString()===m.uri.toString()){this._addDecorations(u.parent);return}}_addDecorations(m){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let u=[],p=[];for(let v=0,y=m.children.length;v<y;v++){let k=m.children[v];if(this._decorationIgnoreSet.has(k.id))continue;if(k.uri.toString()!==this._editor.getModel().uri.toString())continue;u.push({range:k.range,options:Sv.DecorationOptions}),p.push(v)}this._editor.changeDecorations((v)=>{let y=v.deltaDecorations([],u);for(let k=0;k<y.length;k++)this._decorations.set(y[k],m.children[p[k]])})}_onDecorationChanged(){let m=[],u=this._editor.getModel();if(!u)return;for(let[p,v]of this._decorations){let y=u.getDecorationRange(p);if(!y)continue;let k=!1;if(t.equalsRange(y,v.range))continue;if(t.spansMultipleLines(y))k=!0;else{let D=v.range.endColumn-v.range.startColumn,T=y.endColumn-y.startColumn;if(D!==T)k=!0}if(k)this._decorationIgnoreSet.add(v.id),m.push(p);else v.range=y}for(let p=0,v=m.length;p<v;p++)this._decorations.delete(m[p]);this._editor.removeDecorations(m)}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}class Cv{constructor(){this.ratio=0.7,this.heightInLines=18}static fromJSON(m){let u,p;try{let v=JSON.parse(m);u=v.ratio,p=v.heightInLines}catch{}return{ratio:u||0.7,heightInLines:p||18}}}class pk extends J0{}var wv=class m{constructor(u){this.labelService=u,this.disposables=new c}getDragURI(u){if(u instanceof Ls)return u.uri.toString();else if(u instanceof Yo)return $R(u.uri,u.range).toString();return null}getDragLabel(u){if(u.length===0)return;return u.map((v)=>this.labelService.getUriBasenameLabel(v.uri)).join(", ")}onDragStart(u,p){if(!p.dataTransfer)return;let y=u.elements.map((k)=>this.getDragURI(k)).filter(Boolean);if(y.length)p.dataTransfer.setData(tc.RESOURCES,JSON.stringify(y)),p.dataTransfer.setData(tc.TEXT,y.join(`
31
- `))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};wv=gk([gd(0,xl)],wv);var hm=class m extends fc{constructor(u,p,v,y,k,D,T,R,K){super(u,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},D);this._defaultTreeKeyboardSupport=p,this.layoutData=v,this._textModelResolverService=k,this._instantiationService=D,this._peekViewService=T,this._uriLabel=R,this._keybindingService=K,this._disposeOnNewModel=new c,this._callOnDispose=new c,this._onDidSelectReference=this._callOnDispose.add(new i),this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new Ye(0,0),this._isClosing=!1,this._applyTheme(y.getColorTheme()),this._callOnDispose.add(y.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(u,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),$e(this._preview),$e(this._previewNotAvailableMessage),$e(this._tree),$e(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(u){let p=u.getColor(yL)||f.transparent;this.style({arrowColor:p,frameColor:p,headerBackgroundColor:u.getColor(CL)||f.transparent,primaryHeadingColor:u.getColor(Mp),secondaryHeadingColor:u.getColor(Op)})}show(u){super.show(u,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(u){if(this._preview&&this._preview.getModel())this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:u.ctrlKey||u.metaKey||u.altKey?"side":"open",source:"title"})}_fillBody(u){this.setCssClass("reference-zone-widget"),this._messageContainer=w(u,g("div.messages")),Vi(this._messageContainer),this._splitView=new Iy(u,{orientation:1}),this._previewContainer=w(u,g("div.preview.inline"));let p={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(ro,this._previewContainer,p,{},this.editor),Vi(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(qc,e(1142,"no preview available"),Fi,qc.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=w(u,g("div.ref-tree.inline"));let v={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new vv,keyboardNavigationLabelProvider:this._instantiationService.createInstance(dm),identityProvider:new bv,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:xL},dnd:this._instantiationService.createInstance(wv)};if(this._defaultTreeKeyboardSupport)this._callOnDispose.add(ft(this._treeContainer,"keydown",(k)=>{if(k.equals(9))this._keybindingService.dispatchEvent(k,k.target),k.stopPropagation()},!0));this._tree=this._instantiationService.createInstance(pk,"ReferencesWidget",this._treeContainer,new _v,[this._instantiationService.createInstance(vu),this._instantiationService.createInstance(wu)],this._instantiationService.createInstance(am),v),this._splitView.addView({onDidChange:C.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:(k)=>{this._preview.layout({height:this._dim.height,width:k})}},Ly.Distribute),this._splitView.addView({onDidChange:C.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:(k)=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${k}px`,this._tree.layout(this._dim.height,k)}},Ly.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{if(this._dim.width)this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width},void 0));let y=(k,D)=>{if(k instanceof Yo){if(D==="show")this._revealReference(k,!1);this._onDidSelectReference.fire({element:k,kind:D,source:"tree"})}};this._disposables.add(this._tree.onDidOpen((k)=>{if(k.sideBySide)y(k.element,"side");else if(k.editorOptions.pinned)y(k.element,"goto");else y(k.element,"show")})),Vi(this._treeContainer)}_onWidth(u){if(this._dim)this._doLayoutBody(this._dim.height,u)}_doLayoutBody(u,p){super._doLayoutBody(u,p),this._dim=new Ye(p,u),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(p),this._splitView.resizeView(0,p*this.layoutData.ratio)}setSelection(u){return this._revealReference(u,!0).then(()=>{if(!this._model)return;this._tree.setSelection([u]),this._tree.setFocus([u])})}setModel(u){if(this._disposeOnNewModel.clear(),this._model=u,this._model)return this._onNewModel();return Promise.resolve()}_onNewModel(){if(!this._model)return Promise.resolve(void 0);if(this._model.isEmpty)return this.setTitle(""),this._messageContainer.innerText=e(1143,"No results"),ho(this._messageContainer),Promise.resolve(void 0);return Vi(this._messageContainer),this._decorationsManager=new Sv(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((u)=>this._tree.rerender(u))),this._disposeOnNewModel.add(this._preview.onMouseDown((u)=>{let{event:p,target:v}=u;if(p.detail!==2)return;let y=this._getFocusedReference();if(!y)return;this._onDidSelectReference.fire({element:{uri:y.uri,range:v.range},kind:p.ctrlKey||p.metaKey||p.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),ho(this._treeContainer),ho(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)}_getFocusedReference(){let[u]=this._tree.getFocus();if(u instanceof Yo)return u;else if(u instanceof Ls){if(u.children.length>0)return u.children[0]}return}async revealReference(u){await this._revealReference(u,!1),this._onDidSelectReference.fire({element:u,kind:"goto",source:"tree"})}async _revealReference(u,p){if(this._revealedReference===u)return;if(this._revealedReference=u,u.uri.scheme!==ee.inMemory)this.setTitle(iR(u.uri),this._uriLabel.getUriLabel(vh(u.uri)));else this.setTitle(e(1144,"References"));let v=this._textModelResolverService.createModelReference(u.uri);if(this._tree.getInput()===u.parent)this._tree.reveal(u);else{if(p)this._tree.reveal(u.parent);await this._tree.expand(u.parent),this._tree.reveal(u)}let y=await v;if(!this._model){y.dispose();return}$e(this._previewModelReference);let k=y.object;if(k){let D=this._preview.getModel()===k.textEditorModel?0:1,T=t.lift(u.range).collapseToStart();this._previewModelReference=y,this._preview.setModel(k.textEditorModel),this._preview.setSelection(T),this._preview.revealRangeInCenter(T,D)}else this._preview.setModel(this._previewNotAvailableMessage),y.dispose()}};hm=gk([gd(3,De),gd(4,mn),gd(5,L),gd(6,Zb),gd(7,xl),gd(8,ce)],hm);var OT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Cc=function(m,u){return function(p,v){u(p,v,m)}},um,pd=new A("referenceSearchVisible",!1,e(1136,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),qd=class m{static{um=this}static{this.ID="editor.contrib.referencesController"}static get(u){return u.getContribution(um.ID)}constructor(u,p,v,y,k,D,T,R){this._defaultTreeKeyboardSupport=u,this._editor=p,this._editorService=y,this._notificationService=k,this._instantiationService=D,this._storageService=T,this._configurationService=R,this._disposables=new c,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=pd.bindTo(v)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(u,p,v){let y;if(this._widget)y=this._widget.position;if(this.closeWidget(),!!y&&u.containsPosition(y))return;this._peekMode=v,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{if(!this._ignoreModelChangeEvent)this.closeWidget()}));let k="peekViewLayout",D=Cv.fromJSON(this._storageService.get(k,0,"{}"));this._widget=this._instantiationService.createInstance(hm,this._editor,this._defaultTreeKeyboardSupport,D),this._widget.setTitle(e(1137,"Loading...")),this._widget.show(u),this._disposables.add(this._widget.onDidClose(()=>{if(p.cancel(),this._widget){if(this._storageService.store(k,JSON.stringify(this._widget.layoutData),0,1),!this._widget.isClosing)this.closeWidget();this._widget=void 0}else this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference((R)=>{let{element:K,kind:q}=R;if(!K)return;switch(q){case"open":if(R.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))this.openReference(K,!1,!1);break;case"side":this.openReference(K,!0,!1);break;case"goto":if(v)this._gotoReference(K,!0);else this.openReference(K,!1,!0);break}}));let T=++this._requestIdPool;p.then((R)=>{if(T!==this._requestIdPool||!this._widget){R.dispose();return}return this._model?.dispose(),this._model=R,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){if(!this._model.isEmpty)this._widget.setMetaTitle(e(1138,"{0} ({1})",this._model.title,this._model.references.length));else this._widget.setMetaTitle("");let K=this._editor.getModel().uri,q=new r(u.startLineNumber,u.startColumn),Q=this._model.nearestReference(K,q);if(Q)return this._widget.setSelection(Q).then(()=>{if(this._widget&&this._editor.getOption(99)==="editor")this._widget.focusOnPreviewEditor()})}return})},(R)=>{this._notificationService.error(R)})}changeFocusBetweenPreviewAndReferences(){if(!this._widget)return;if(this._widget.isPreviewEditorFocused())this._widget.focusOnReferenceTree();else this._widget.focusOnPreviewEditor()}async goToNextOrPreviousReference(u){if(!this._editor.hasModel()||!this._model||!this._widget)return;let p=this._widget.position;if(!p)return;let v=this._model.nearestReference(this._editor.getModel().uri,p);if(!v)return;let y=this._model.nextOrPreviousReference(v,u),k=this._editor.hasTextFocus(),D=this._widget.isPreviewEditorFocused();if(await this._widget.setSelection(y),await this._gotoReference(y,!1),k)this._editor.focus();else if(this._widget&&D)this._widget.focusOnPreviewEditor()}async revealReference(u){if(!this._editor.hasModel()||!this._model||!this._widget)return;await this._widget.revealReference(u)}closeWidget(u=!0){if(this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,u)this._editor.focus();this._requestIdPool+=1}_gotoReference(u,p){this._widget?.hide(),this._ignoreModelChangeEvent=!0;let v=t.lift(u.range).collapseToStart();return this._editorService.openCodeEditor({resource:u.uri,options:{selection:v,selectionSource:"code.jump",pinned:p}},this._editor).then((y)=>{if(this._ignoreModelChangeEvent=!1,!y||!this._widget){this.closeWidget();return}if(this._editor===y)this._widget.show(v),this._widget.focusOnReferenceTree();else{let k=um.get(y),D=this._model.clone();this.closeWidget(),y.focus(),k?.toggleWidget(v,Pt((T)=>Promise.resolve(D)),this._peekMode??!1)}},(y)=>{this._ignoreModelChangeEvent=!1,J(y)})}openReference(u,p,v){if(!p)this.closeWidget();let{uri:y,range:k}=u;this._editorService.openCodeEditor({resource:y,options:{selection:k,selectionSource:"code.jump",pinned:v}},this._editor,p)}};qd=um=OT([Cc(2,V),Cc(3,ye),Cc(4,ut),Cc(5,L),Cc(6,wn),Cc(7,X)],qd);function md(m,u){let p=Rp(m);if(!p)return;let v=qd.get(p);if(v)u(v)}gn.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:Jt(2089,60),when:_.or(pd,Ki.inPeekEditor),handler(m){md(m,(u)=>{u.changeFocusBetweenPreviewAndReferences()})}});gn.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:_.or(pd,Ki.inPeekEditor),handler(m){md(m,(u)=>{u.goToNextOrPreviousReference(!0)})}});gn.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:_.or(pd,Ki.inPeekEditor),handler(m){md(m,(u)=>{u.goToNextOrPreviousReference(!1)})}});we.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");we.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");we.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");we.registerCommand("closeReferenceSearch",(m)=>md(m,(u)=>u.closeWidget()));gn.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:_.and(Ki.inPeekEditor,_.not("config.editor.stablePeek"))});gn.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:_.and(pd,_.not("config.editor.stablePeek"),_.or(o.editorTextFocus,bf.negate()))});gn.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:_.and(pd,iS,G0.negate(),K0.negate()),handler(m){let p=m.get($s).lastFocusedList?.getFocus();if(Array.isArray(p)&&p[0]instanceof Yo)md(m,(v)=>v.revealReference(p[0]))}});gn.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:_.and(pd,iS,G0.negate(),K0.negate()),handler(m){let p=m.get($s).lastFocusedList?.getFocus();if(Array.isArray(p)&&p[0]instanceof Yo)md(m,(v)=>v.openReference(p[0],!0,!0))}});we.registerCommand("openReference",(m)=>{let p=m.get($s).lastFocusedList?.getFocus();if(Array.isArray(p)&&p[0]instanceof Yo)md(m,(v)=>v.openReference(p[0],!1,!0))});var mk=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Su=function(m,u){return function(p,v){u(p,v,m)}},Iv=new A("hasSymbols",!1,e(1153,"Whether there are symbol locations that can be navigated via keyboard-only.")),Cu=Z("ISymbolNavigationService"),yv=class m{constructor(u,p,v,y){this._editorService=p,this._notificationService=v,this._keybindingService=y,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=Iv.bindTo(u)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.close(),this._currentModel=void 0,this._currentIdx=-1}put(u){let p=u.parent.parent;if(p.references.length<=1){this.reset();return}this._currentModel=p,this._currentIdx=p.references.indexOf(u),this._ctxHasSymbols.set(!0),this._showMessage();let v=new xv(this._editorService),y=v.onDidChange((k)=>{if(this._ignoreEditorChange)return;let D=this._editorService.getActiveCodeEditor();if(!D)return;let T=D.getModel(),R=D.getPosition();if(!T||!R)return;let K=!1,q=!1;for(let Q of p.references)if(Pr(Q.uri,T.uri))K=!0,q=q||t.containsPosition(Q.range,R);else if(K)break;if(!K||!q)this.reset()});this._currentState=tr(v,y)}revealNext(u){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;let p=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:p.uri,options:{selection:t.collapseToStart(p.range),selectionRevealType:3}},u).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.close();let u=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),p=u?e(1154,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,u.getLabel()):e(1155,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(p)}};yv=mk([Su(0,V),Su(1,ye),Su(2,ut),Su(3,ce)],yv);fe(Cu,yv,1);U(new class extends Bt{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:Iv,kbOpts:{weight:100,primary:70}})}runEditorCommand(m,u){return m.get(Cu).revealNext(u)}});gn.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:Iv,primary:9,handler(m){m.get(Cu).reset()}});var xv=class m{constructor(u){this._listener=new Map,this._disposables=new c,this._onDidChange=new i,this.onDidChange=this._onDidChange.event,this._disposables.add(u.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(u.onCodeEditorAdd(this._onDidAddEditor,this)),u.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),$e(this._listener.values())}_onDidAddEditor(u){this._listener.set(u,tr(u.onDidChangeCursorPosition((p)=>this._onDidChange.fire({editor:u})),u.onDidChangeModelContent((p)=>this._onDidChange.fire({editor:u}))))}_onDidRemoveEditor(u){this._listener.get(u)?.dispose(),this._listener.delete(u)}};xv=mk([Su(0,ye)],xv);function Lv(m,u){if(u.uri.scheme===m.uri.scheme)return!0;if(qp(u.uri,ee.walkThroughSnippet,ee.vscodeChatCodeBlock,ee.vscodeChatCodeCompareBlock))return!1;return!0}async function yu(m,u,p,v,y){let D=p.ordered(m,v).map((R)=>Promise.resolve(y(R,m,u)).then(void 0,(K)=>{dt(K);return})),T=await Promise.all(D);return Xi(T.flat()).filter((R)=>Lv(m,R))}function ha(m,u,p,v,y){return yu(u,p,m,v,(k,D,T)=>k.provideDefinition(D,T,y))}function gm(m,u,p,v,y){return yu(u,p,m,v,(k,D,T)=>k.provideDeclaration(D,T,y))}function pm(m,u,p,v,y){return yu(u,p,m,v,(k,D,T)=>k.provideImplementation(D,T,y))}function mm(m,u,p,v,y){return yu(u,p,m,v,(k,D,T)=>k.provideTypeDefinition(D,T,y))}function yc(m,u,p,v,y,k){return yu(u,p,m,y,async(D,T,R)=>{let K=(await D.provideReferences(T,R,{includeDeclaration:!0},k))?.filter((Q)=>Lv(T,Q));if(!v||!K||K.length!==2)return K;let q=(await D.provideReferences(T,R,{includeDeclaration:!1},k))?.filter((Q)=>Lv(T,Q));if(q&&q.length===1)return q;return K})}async function as(m){let u=await m(),p=new Yi(u,""),v=p.references.map((y)=>y.link);return p.dispose(),v}po("_executeDefinitionProvider",(m,u,p)=>{let v=m.get(j),y=ha(v.definitionProvider,u,p,!1,he.None);return as(()=>y)});po("_executeDefinitionProvider_recursive",(m,u,p)=>{let v=m.get(j),y=ha(v.definitionProvider,u,p,!0,he.None);return as(()=>y)});po("_executeTypeDefinitionProvider",(m,u,p)=>{let v=m.get(j),y=mm(v.typeDefinitionProvider,u,p,!1,he.None);return as(()=>y)});po("_executeTypeDefinitionProvider_recursive",(m,u,p)=>{let v=m.get(j),y=mm(v.typeDefinitionProvider,u,p,!0,he.None);return as(()=>y)});po("_executeDeclarationProvider",(m,u,p)=>{let v=m.get(j),y=gm(v.declarationProvider,u,p,!1,he.None);return as(()=>y)});po("_executeDeclarationProvider_recursive",(m,u,p)=>{let v=m.get(j),y=gm(v.declarationProvider,u,p,!0,he.None);return as(()=>y)});po("_executeReferenceProvider",(m,u,p)=>{let v=m.get(j),y=yc(v.referenceProvider,u,p,!1,!1,he.None);return as(()=>y)});po("_executeReferenceProvider_recursive",(m,u,p)=>{let v=m.get(j),y=yc(v.referenceProvider,u,p,!1,!0,he.None);return as(()=>y)});po("_executeImplementationProvider",(m,u,p)=>{let v=m.get(j),y=pm(v.implementationProvider,u,p,!1,he.None);return as(()=>y)});po("_executeImplementationProvider_recursive",(m,u,p)=>{let v=m.get(j),y=pm(v.implementationProvider,u,p,!0,he.None);return as(()=>y)});Rn.appendMenuItem(a.EditorContext,{submenu:a.EditorContextPeek,title:e(1096,"Peek"),group:"navigation",order:100});class fd{static is(m){if(!m||typeof m!=="object")return!1;if(m instanceof fd)return!0;if(r.isIPosition(m.position)&&m.model)return!0;return!1}constructor(m,u){this.model=m,this.position=u}}class _o extends Bo{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return _o._allSymbolNavigationCommands.values()}static _patchConfig(m){let u={...m,f1:!0};if(u.menu){for(let p of Ce.wrap(u.menu))if(p.id===a.EditorContext||p.id===a.EditorContextPeek)p.when=_.and(m.precondition,p.when)}return u}constructor(m,u){super(_o._patchConfig(u));this.configuration=m,_o._allSymbolNavigationCommands.set(u.id,this)}runEditorCommand(m,u,p,v){if(!u.hasModel())return Promise.resolve(void 0);let y=m.get(ut),k=m.get(ye),D=m.get(ss),T=m.get(Cu),R=m.get(j),K=m.get(L),q=u.getModel(),Q=u.getPosition(),te=fd.is(p)?p:new fd(q,Q),ne=new Vr(u,5),re=ll(this._getLocationModel(R,te.model,te.position,ne.token),ne.token).then(async(ae)=>{if(!ae||ne.token.isCancellationRequested)return;En(ae.ariaMessage);let ge;if(ae.referenceAt(q.uri,Q)){let Oe=this._getAlternativeCommand(u);if(Oe!==void 0&&!_o._activeAlternativeCommands.has(Oe)&&_o._allSymbolNavigationCommands.has(Oe))ge=_o._allSymbolNavigationCommands.get(Oe)}let Se=ae.references.length;if(Se===0){if(!this.configuration.muteMessage){let Oe=q.getWordAtPosition(Q);Bi.get(u)?.showMessage(this._getNoResultFoundMessage(Oe),Q)}}else if(Se===1&&ge)_o._activeAlternativeCommands.add(this.desc.id),K.invokeFunction((Oe)=>ge.runEditorCommand(Oe,u,p,v).finally(()=>{_o._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(k,T,u,ae,v)},(ae)=>{y.error(ae)}).finally(()=>{ne.dispose()});return D.showWhile(re,250),re}async _onResult(m,u,p,v,y){let k=this._getGoToPreference(p);if(!(p instanceof ro)&&(this.configuration.openInPeek||k==="peek"&&v.references.length>1))this._openInPeek(p,v,y);else{let D=v.firstReference(),T=v.references.length>1&&k==="gotoAndPeek",R=await this._openReference(p,m,D,this.configuration.openToSide,!T);if(T&&R)this._openInPeek(R,v,y);else v.dispose();if(k==="goto")u.put(D)}}async _openReference(m,u,p,v,y){let k=void 0;if(WI(p))k=p.targetSelectionRange;if(!k)k=p.range;if(!k)return;let D=await u.openCodeEditor({resource:p.uri,options:{selection:t.collapseToStart(k),selectionRevealType:3,selectionSource:"code.jump"}},m,v);if(!D)return;if(y){let T=D.getModel(),R=D.createDecorationsCollection([{range:k,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{if(D.getModel()===T)R.clear()},350)}return D}_openInPeek(m,u,p){let v=qd.get(m);if(v&&m.hasModel())v.toggleWidget(p??m.getSelection(),Pt((y)=>Promise.resolve(u)),this.configuration.openInPeek);else u.dispose()}}class ua extends _o{async _getLocationModel(m,u,p,v){return new Yi(await ha(m.definitionProvider,u,p,!1,v),e(1097,"Definitions"))}_getNoResultFoundMessage(m){return m&&m.word?e(1098,"No definition found for '{0}'",m.word):e(1099,"No definition found")}_getAlternativeCommand(m){return m.getOption(67).alternativeDefinitionCommand}_getGoToPreference(m){return m.getOption(67).multipleDefinitions}}Ze(class m extends ua{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:m.id,title:{...h(1123,"Go to Definition"),mnemonicTitle:e(1100,"Go to &&Definition")},precondition:o.hasDefinitionProvider,keybinding:[{when:o.editorTextFocus,primary:70,weight:100},{when:_.and(o.editorTextFocus,nS),primary:2118,weight:100}],menu:[{id:a.EditorContext,group:"navigation",order:1.1},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]});we.registerCommandAlias("editor.action.goToDeclaration",m.id)}});Ze(class m extends ua{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:m.id,title:h(1124,"Open Definition to the Side"),precondition:_.and(o.hasDefinitionProvider,o.isInEmbeddedEditor.toNegated()),keybinding:[{when:o.editorTextFocus,primary:Jt(2089,70),weight:100},{when:_.and(o.editorTextFocus,nS),primary:Jt(2089,2118),weight:100}]});we.registerCommandAlias("editor.action.openDeclarationToTheSide",m.id)}});Ze(class m extends ua{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:m.id,title:h(1125,"Peek Definition"),precondition:_.and(o.hasDefinitionProvider,Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:a.EditorContextPeek,group:"peek",order:2}});we.registerCommandAlias("editor.action.previewDeclaration",m.id)}});class kv extends _o{async _getLocationModel(m,u,p,v){return new Yi(await gm(m.declarationProvider,u,p,!1,v),e(1101,"Declarations"))}_getNoResultFoundMessage(m){return m&&m.word?e(1102,"No declaration found for '{0}'",m.word):e(1103,"No declaration found")}_getAlternativeCommand(m){return m.getOption(67).alternativeDeclarationCommand}_getGoToPreference(m){return m.getOption(67).multipleDeclarations}}Ze(class m extends kv{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:m.id,title:{...h(1126,"Go to Declaration"),mnemonicTitle:e(1104,"Go to &&Declaration")},precondition:_.and(o.hasDeclarationProvider,o.isInEmbeddedEditor.toNegated()),menu:[{id:a.EditorContext,group:"navigation",order:1.3},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(u){return u&&u.word?e(1105,"No declaration found for '{0}'",u.word):e(1106,"No declaration found")}});Ze(class m extends kv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:h(1127,"Peek Declaration"),precondition:_.and(o.hasDeclarationProvider,Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:3}})}});class Ev extends _o{async _getLocationModel(m,u,p,v){return new Yi(await mm(m.typeDefinitionProvider,u,p,!1,v),e(1107,"Type Definitions"))}_getNoResultFoundMessage(m){return m&&m.word?e(1108,"No type definition found for '{0}'",m.word):e(1109,"No type definition found")}_getAlternativeCommand(m){return m.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(m){return m.getOption(67).multipleTypeDefinitions}}Ze(class m extends Ev{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:m.ID,title:{...h(1128,"Go to Type Definition"),mnemonicTitle:e(1110,"Go to &&Type Definition")},precondition:o.hasTypeDefinitionProvider,keybinding:{when:o.editorTextFocus,primary:0,weight:100},menu:[{id:a.EditorContext,group:"navigation",order:1.4},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}});Ze(class m extends Ev{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:m.ID,title:h(1129,"Peek Type Definition"),precondition:_.and(o.hasTypeDefinitionProvider,Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:4}})}});class Dv extends _o{async _getLocationModel(m,u,p,v){return new Yi(await pm(m.implementationProvider,u,p,!1,v),e(1111,"Implementations"))}_getNoResultFoundMessage(m){return m&&m.word?e(1112,"No implementation found for '{0}'",m.word):e(1113,"No implementation found")}_getAlternativeCommand(m){return m.getOption(67).alternativeImplementationCommand}_getGoToPreference(m){return m.getOption(67).multipleImplementations}}Ze(class m extends Dv{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:m.ID,title:{...h(1130,"Go to Implementations"),mnemonicTitle:e(1114,"Go to &&Implementations")},precondition:o.hasImplementationProvider,keybinding:{when:o.editorTextFocus,primary:2118,weight:100},menu:[{id:a.EditorContext,group:"navigation",order:1.45},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}});Ze(class m extends Dv{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:m.ID,title:h(1131,"Peek Implementations"),precondition:_.and(o.hasImplementationProvider,Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:3142,weight:100},menu:{id:a.EditorContextPeek,group:"peek",order:5}})}});class Tv extends _o{_getNoResultFoundMessage(m){return m?e(1115,"No references found for '{0}'",m.word):e(1116,"No references found")}_getAlternativeCommand(m){return m.getOption(67).alternativeReferenceCommand}_getGoToPreference(m){return m.getOption(67).multipleReferences}}Ze(class m extends Tv{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...h(1132,"Go to References"),mnemonicTitle:e(1117,"Go to &&References")},precondition:_.and(o.hasReferenceProvider,Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),keybinding:{when:o.editorTextFocus,primary:1094,weight:100},menu:[{id:a.EditorContext,group:"navigation",order:1.45},{id:a.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(u,p,v,y){return new Yi(await yc(u.referenceProvider,p,v,!0,!1,y),e(1118,"References"))}});Ze(class m extends Tv{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:h(1133,"Peek References"),precondition:_.and(o.hasReferenceProvider,Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated()),menu:{id:a.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(u,p,v,y){return new Yi(await yc(u.referenceProvider,p,v,!1,!1,y),e(1119,"References"))}});class fk extends _o{constructor(m,u,p){super(m,{id:"editor.action.goToLocation",title:h(1134,"Go to Any Symbol"),precondition:_.and(Ki.notInPeekEditor,o.isInEmbeddedEditor.toNegated())});this._references=u,this._gotoMultipleBehaviour=p}async _getLocationModel(m,u,p,v){return new Yi(this._references,e(1120,"Locations"))}_getNoResultFoundMessage(m){return m&&e(1121,"No results for '{0}'",m.word)||""}_getGoToPreference(m){return this._gotoMultipleBehaviour??m.getOption(67).multipleReferences}_getAlternativeCommand(){return}}we.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:W},{name:"position",description:"The position at which to start",constraint:r.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(m,u,p,v,y,k,D)=>{Ie(W.isUri(u)),Ie(r.isIPosition(p)),Ie(Array.isArray(v)),Ie(typeof y>"u"||typeof y==="string"),Ie(typeof D>"u"||typeof D==="boolean");let T=m.get(ye),R=await T.openCodeEditor({resource:u},T.getFocusedCodeEditor());if(ra(R))return R.setPosition(p),R.revealPositionInCenterIfOutsideViewport(p,0),R.invokeWithinContext((K)=>{let q=new class extends fk{_getNoResultFoundMessage(Q){return k||super._getNoResultFoundMessage(Q)}}({muteMessage:!Boolean(k),openInPeek:Boolean(D),openToSide:!1},v,y);K.get(L).invokeFunction(q.run.bind(q),R)})}});we.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:W},{name:"position",description:"The position at which to start",constraint:r.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(m,u,p,v,y)=>{m.get(Ne).executeCommand("editor.action.goToLocations",u,p,v,y,void 0,!0)}});we.registerCommand({id:"editor.action.findReferences",handler:(m,u,p)=>{Ie(W.isUri(u)),Ie(r.isIPosition(p));let v=m.get(j),y=m.get(ye);return y.openCodeEditor({resource:u},y.getFocusedCodeEditor()).then((k)=>{if(!ra(k)||!k.hasModel())return;let D=qd.get(k);if(!D)return;let T=Pt((K)=>yc(v.referenceProvider,k.getModel(),r.lift(p),!1,!1,K).then((q)=>new Yi(q,e(1122,"References")))),R=new t(p.lineNumber,p.column,p.lineNumber,p.column);return Promise.resolve(D.toggleWidget(R,T,!1))})}});we.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var PT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Rv=function(m,u){return function(p,v){u(p,v,m)}},xu,xc=class m{static{xu=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(u,p,v,y){this.textModelResolverService=p,this.languageService=v,this.languageFeaturesService=y,this.toUnhook=new c,this.toUnhookForKeyboard=new c,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=u,this.linkDecorations=this.editor.createDecorationsCollection();let k=new ys(u);this.toUnhook.add(k),this.toUnhook.add(k.onMouseMoveOrRelevantKeyDown(([D,T])=>{this.startFindDefinitionFromMouse(D,T??void 0)})),this.toUnhook.add(k.onExecute((D)=>{if(this.isEnabled(D))this.gotoDefinition(D.target.position,D.hasSideBySideModifier).catch((T)=>{J(T)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(k.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(u){return u.getContribution(xu.ID)}async startFindDefinitionFromCursor(u){await this.startFindDefinition(u),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown((p)=>{if(p)this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))}startFindDefinitionFromMouse(u,p){if(u.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(u,p)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}let v=u.target.position;this.startFindDefinition(v)}async startFindDefinition(u){this.toUnhookForKeyboard.clear();let p=u?this.editor.getModel()?.getWordAtPosition(u):null;if(!p){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===p.startColumn&&this.currentWordAtPosition.endColumn===p.endColumn&&this.currentWordAtPosition.word===p.word)return;this.currentWordAtPosition=p;let v=new Bh(this.editor,15);if(this.previousPromise)this.previousPromise.cancel(),this.previousPromise=null;this.previousPromise=Pt((D)=>this.findDefinition(u,D));let y;try{y=await this.previousPromise}catch(D){J(D);return}if(!y||!y.length||!v.validate(this.editor)){this.removeLinkDecorations();return}let k=y[0].originSelectionRange?t.lift(y[0].originSelectionRange):new t(u.lineNumber,p.startColumn,u.lineNumber,p.endColumn);if(y.length>1){let D=k;for(let{originSelectionRange:T}of y)if(T)D=t.plusRange(D,T);this.addDecoration(D,new yn().appendText(e(1135,"Click to show {0} definitions.",y.length)))}else{let D=y[0];if(!D.uri)return;return this.textModelResolverService.createModelReference(D.uri).then((T)=>{if(!T.object||!T.object.textEditorModel){T.dispose();return}let{object:{textEditorModel:R}}=T,{startLineNumber:K}=D.range;if(K<1||K>R.getLineCount()){T.dispose();return}let q=this.getPreviewValue(R,K,D),Q=this.languageService.guessLanguageIdByFilepathOrFirstLine(R.uri);this.addDecoration(k,q?new yn().appendCodeblock(Q?Q:"",q):void 0),T.dispose()})}}getPreviewValue(u,p,v){let y=v.range;if(y.endLineNumber-y.startLineNumber>=xu.MAX_SOURCE_PREVIEW_LINES)y=this.getPreviewRangeBasedOnIndentation(u,p);return y=u.validateRange(y),this.stripIndentationFromPreviewRange(u,p,y)}stripIndentationFromPreviewRange(u,p,v){let k=u.getLineFirstNonWhitespaceColumn(p);for(let T=p+1;T<v.endLineNumber;T++){let R=u.getLineFirstNonWhitespaceColumn(T);k=Math.min(k,R)}return u.getValueInRange(v).replace(new RegExp(`^\\s{${k-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(u,p){let v=u.getLineFirstNonWhitespaceColumn(p),y=Math.min(u.getLineCount(),p+xu.MAX_SOURCE_PREVIEW_LINES),k=p+1;for(;k<y;k++){let D=u.getLineFirstNonWhitespaceColumn(k);if(v===D)break}return new t(p,1,k+1,1)}addDecoration(u,p){let v={range:u,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:p}};this.linkDecorations.set([v])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(u,p){return this.editor.hasModel()&&u.isLeftClick&&u.isNoneOrSingleMouseDown&&u.target.type===6&&!(u.target.detail.injectedText?.options instanceof nc)&&(u.hasTriggerModifier||(p?p.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(u,p){let v=this.editor.getModel();if(!v)return Promise.resolve(null);return ha(this.languageFeaturesService.definitionProvider,v,u,!1,p)}async gotoDefinition(u,p){return this.editor.setPosition(u),this.editor.invokeWithinContext((v)=>{let y=!p&&this.editor.getOption(101)&&!this.isInPeekEditor(v);return new ua({openToSide:p,openInPeek:y,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(v)})}isInPeekEditor(u){let p=u.get(V);return Ki.inPeekEditor.getValue(p)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};xc=xu=PT([Rv(1,mn),Rv(2,pt),Rv(3,j)],xc);le(xc.ID,xc,2);var fr="editor.action.inlineSuggest.commit",_d="editor.action.inlineSuggest.commitAlternativeAction",fm="editor.action.inlineSuggest.showPrevious",_m="editor.action.inlineSuggest.showNext",Ic="editor.action.inlineSuggest.jump",bm="editor.action.inlineSuggest.hide",Iu="editor.action.inlineSuggest.toggleShowCollapsed",Nv="editor.action.inlineSuggest.renameSymbol";var Ov=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},_n=function(m,u){return function(p,v){u(p,v,m)}},vm,wm=class m extends n{constructor(u,p,v){super();this.editor=u,this.model=p,this.instantiationService=v,this.alwaysShowToolbar=Te(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=d(this,(y)=>{let k=this.model.read(y)?.primaryGhostText.read(y);if(!this.alwaysShowToolbar.read(y)||!k||k.parts.length===0)return this.sessionPosition=void 0,null;let D=k.parts[0].column;if(this.sessionPosition&&this.sessionPosition.lineNumber!==k.lineNumber)this.sessionPosition=void 0;let T=new r(k.lineNumber,Math.min(D,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=T,T}),this._register(Fn((y,k)=>{let D=this.model.read(y);if(!D||!this.alwaysShowToolbar.read(y))return;let T=d((K)=>{let q=K.store.add(this.instantiationService.createInstance(Rs.hot.read(K),this.editor,!0,this.position,D.selectedInlineCompletionIndex,D.inlineCompletionsCount,D.activeCommands,D.warning,()=>{}));return u.addContentWidget(q),K.store.add(E(()=>u.removeContentWidget(q))),K.store.add(H((Q)=>{if(!this.position.read(Q))return;if(D.lastTriggerKind.read(Q)!==Po.Explicit)D.triggerExplicitly()})),q}),R=Ho(this,(K,q)=>!!this.position.read(K)||!!q);k.add(H((K)=>{if(R.read(K))T.read(K)}))}))}};wm=Ov([_n(2,L)],wm);var AT=Lt("inline-suggestion-hints-next",b.chevronRight,e(1270,"Icon for show next parameter hint.")),FT=Lt("inline-suggestion-hints-previous",b.chevronLeft,e(1271,"Icon for show previous parameter hint.")),Rs=class m extends n{static{vm=this}static{this.hot=Ag(this)}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(u,p,v){let y=new eo(u,p,v,!0,()=>this._commandService.executeCommand(u));return y.tooltip=this.keybindingService.appendKeybinding(p,u,this._contextKeyService),y}constructor(u,p,v,y,k,D,T,R,K,q,Q,te,ne){super();this.editor=u,this.withBorder=p,this._position=v,this._currentSuggestionIdx=y,this._suggestionCount=k,this._extraCommands=D,this._warning=T,this._relayout=R,this._commandService=K,this.keybindingService=Q,this._contextKeyService=te,this._menuService=ne,this.id=`InlineSuggestionHintsContentWidget${vm.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=d((re)=>{let ae=this._warning.read(re);if(!ae)return;if(typeof ae.message==="string")return ae.message;return re.store.add(Aa(ae.message)).element}),this._warningMessageNode=se.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:d((re)=>this._warning.read(re)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=_e("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,_e("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(fm,e(1272,"Previous"),G.asClassName(FT))),this.availableSuggestionCountAction=this._register(new eo("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(_m,e(1273,"Next"),G.asClassName(AT))),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(a.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new be(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new be(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this._register(H((re)=>{this._warningMessageContentNode.read(re),this._warningMessageNode.readEffect(re),this._relayout()})),this.toolBar=this._register(q.createInstance(Mv,this.nodes.toolBar,a.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:(re)=>re.startsWith("primary")},actionViewItemProvider:(re,ae)=>{if(re instanceof Si)return q.createInstance(bk,re,void 0);if(re===this.availableSuggestionCountAction){let ge=new _k(void 0,re,{label:!0,icon:!1});return ge.setClass("availableSuggestionCount"),ge}return},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((re)=>{vm._dropDownVisible=re})),this._register(H((re)=>{this._position.read(re),this.editor.layoutContentWidget(this)})),this._register(H((re)=>{let ae=this._suggestionCount.read(re),ge=this._currentSuggestionIdx.read(re);if(ae!==void 0)this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${ge+1}/${ae}`;else this.clearAvailableSuggestionCountLabelDebounced.schedule();if(ae!==void 0&&ae>1)this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0;else this.disableButtonsDebounced.schedule()})),this._register(H((re)=>{let ge=this._extraCommands.read(re).map((Se)=>({class:void 0,id:Se.command.id,enabled:!0,tooltip:Se.command.tooltip||"",label:Se.command.title,run:()=>this._commandService.executeCommand(Se.command.id,...Se.command.arguments??[])}));for(let[Se,Oe]of this.inlineCompletionsActionsMenus.getActions())for(let Ae of Oe)if(Ae instanceof Si)ge.push(Ae);if(ge.length>0)ge.unshift(new Qe);this.toolBar.setAdditionalSecondaryActions(ge)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Rs=vm=Ov([_n(8,Ne),_n(9,L),_n(10,ce),_n(11,V),_n(12,hi)],Rs);class _k extends wl{constructor(){super(...arguments);this._className=void 0}setClass(m){this._className=m}render(m){if(super.render(m),this._className)m.classList.add(this._className)}updateTooltip(){}}class bk extends Na{updateLabel(){let m=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!m)return super.updateLabel();if(this.label){let u=_e("div.keybinding").root;this._register(new ia(u,ui,{disableTitle:!0,...o_})).set(m),this.label.textContent=this._action.label,this.label.appendChild(u),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}var Mv=class m extends jy{constructor(u,p,v,y,k,D,T,R,K){super(u,{resetMenu:p,...v},y,k,D,T,R,K);this.menuId=p,this.options2=v,this.menuService=y,this.contextKeyService=k,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this.additionalPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){let{primary:u,secondary:p}=vf(this.menu.getActions(this.options2?.menuOptions),this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);p.push(...this.additionalActions),u.unshift(...this.prependedPrimaryActions),u.push(...this.additionalPrimaryActions),this.setActions(u,p)}setPrependedPrimaryActions(u){if(Ke(this.prependedPrimaryActions,u,(p,v)=>p===v))return;this.prependedPrimaryActions=u,this.updateToolbar()}setAdditionalSecondaryActions(u){if(Ke(this.additionalActions,u,(p,v)=>p===v))return;this.additionalActions=u,this.updateToolbar()}};Mv=Ov([_n(3,hi),_n(4,V),_n(5,Dn),_n(6,ce),_n(7,Ne),_n(8,Sn)],Mv);function ga(m,u,p){let v=mt(m);if(u<v.left+3||u>v.left+v.width-3||p<v.top+3||p>v.top+v.height-3)return!1;return!0}function Sm(m,u,p){if(m==="on")return!0;if(m==="off")return!1;return Lu(u,p.event)}function Lu(m,u){if(m==="altKey")return u.ctrlKey||u.metaKey;return u.altKey}class vk{constructor(m,u,p,v){this.value=m,this.isComplete=u,this.hasLoadingMessage=p,this.options=v}}class ku extends n{constructor(m,u){super();this._editor=m,this._computer=u,this._onResult=this._register(new i),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new Cm((p)=>this._triggerAsyncComputation(p),0)),this._syncComputationScheduler=this._register(new Cm((p)=>this._triggerSyncComputation(p),0)),this._loadingMessageScheduler=this._register(new Cm((p)=>this._triggerLoadingMessage(p),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(m,u){this._options=u,this._state=m,this._fireResult(u)}_triggerAsyncComputation(m){if(this._setState(2,m),this._syncComputationScheduler.schedule(m,this._secondWaitTime),this._computer.computeAsync)this._asyncIterableDone=!1,this._asyncIterable=JI((u)=>this._computer.computeAsync(m,u)),(async()=>{try{for await(let u of this._asyncIterable)if(u)this._result.push(u),this._fireResult(m);if(this._asyncIterableDone=!0,this._state===3||this._state===4)this._setState(0,m)}catch(u){J(u)}})();else this._asyncIterableDone=!0}_triggerSyncComputation(m){if(this._computer.computeSync)this._result=this._result.concat(this._computer.computeSync(m));this._setState(this._asyncIterableDone?0:3,m)}_triggerLoadingMessage(m){if(this._state===3)this._setState(4,m)}_fireResult(m){if(this._state===1||this._state===2)return;let u=this._state===0,p=this._state===4;this._onResult.fire(new vk(this._result.slice(0),u,p,m))}start(m,u){if(m===0){if(this._state===0)this._setState(1,u),this._asyncComputationScheduler.schedule(u,this._firstWaitTime),this._loadingMessageScheduler.schedule(u,this._loadingMessageTime)}else switch(this._state){case 0:this._triggerAsyncComputation(u),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(u);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(u);break}}cancel(){if(this._asyncComputationScheduler.cancel(),this._syncComputationScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable)this._asyncIterable.cancel(),this._asyncIterable=null;this._result=[],this._options=void 0,this._state=0}get options(){return this._options}}class Cm extends n{constructor(m,u){super();this._scheduler=this._register(new be(()=>m(this._options),u))}schedule(m,u){this._options=m,this._scheduler.schedule(u)}cancel(){this._scheduler.cancel()}}class Eu{constructor(m,u,p,v){this.priority=m,this.range=u,this.initialMousePosX=p,this.initialMousePosY=v,this.type=1}equals(m){return m.type===1&&this.range.equalsRange(m.range)}canAdoptVisibleHover(m,u){return m.type===1&&u.lineNumber===this.range.startLineNumber}}class pa{constructor(m,u,p,v,y,k){this.priority=m,this.owner=u,this.range=p,this.initialMousePosX=v,this.initialMousePosY=y,this.supportsMarkerHover=k,this.type=2}equals(m){return m.type===2&&this.owner===m.owner}canAdoptVisibleHover(m,u){return m.type===2&&this.owner===m.owner}}class Jo{constructor(m,u){this.renderedHoverParts=m,this.disposables=u}dispose(){for(let m of this.renderedHoverParts)m.dispose();this.disposables?.dispose()}}var ya=new class m{constructor(){this._participants=[]}register(u){this._participants.push(u)}getAll(){return this._participants}};class bd{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new i,this._onDidResize=new i,this._sashListener=new c,this._size=new Ye(0,0),this._minSize=new Ye(0,0),this._maxSize=new Ye(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new qi(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new qi(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new qi(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:Ty.North}),this._southSash=new qi(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:Ty.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let m,u=0,p=0;this._sashListener.add(C.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{if(m===void 0)this._onDidWillResize.fire(),m=this._size,u=0,p=0})),this._sashListener.add(C.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{if(m!==void 0)m=void 0,u=0,p=0,this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(this._eastSash.onDidChange((v)=>{if(m)p=v.currentX-v.startX,this.layout(m.height+u,m.width+p),this._onDidResize.fire({dimension:this._size,done:!1,east:!0})})),this._sashListener.add(this._westSash.onDidChange((v)=>{if(m)p=-(v.currentX-v.startX),this.layout(m.height+u,m.width+p),this._onDidResize.fire({dimension:this._size,done:!1,west:!0})})),this._sashListener.add(this._northSash.onDidChange((v)=>{if(m)u=-(v.currentY-v.startY),this.layout(m.height+u,m.width+p),this._onDidResize.fire({dimension:this._size,done:!1,north:!0})})),this._sashListener.add(this._southSash.onDidChange((v)=>{if(m)u=v.currentY-v.startY,this.layout(m.height+u,m.width+p),this._onDidResize.fire({dimension:this._size,done:!1,south:!0})})),this._sashListener.add(C.any(this._eastSash.onDidReset,this._westSash.onDidReset)((v)=>{if(this._preferredSize)this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0})})),this._sashListener.add(C.any(this._northSash.onDidReset,this._southSash.onDidReset)((v)=>{if(this._preferredSize)this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0})}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(m,u,p,v){this._northSash.state=m?3:0,this._eastSash.state=u?3:0,this._southSash.state=p?3:0,this._westSash.state=v?3:0}layout(m=this.size.height,u=this.size.width){let{height:p,width:v}=this._minSize,{height:y,width:k}=this._maxSize;m=Math.max(p,Math.min(y,m)),u=Math.max(v,Math.min(k,u));let D=new Ye(u,m);if(!Ye.equals(D,this._size))this.domNode.style.height=m+"px",this.domNode.style.width=u+"px",this._size=D,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout()}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(m){this._maxSize=m}get maxSize(){return this._maxSize}set minSize(m){this._minSize=m}get minSize(){return this._minSize}set preferredSize(m){this._preferredSize=m}get preferredSize(){return this._preferredSize}}var HT=30,WT=24;class Pv extends n{constructor(m,u=new Ye(10,10)){super();this._editor=m,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new bd),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=Ye.lift(u),this._resizableNode.layout(u.height,u.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((p)=>{if(this._resize(new Ye(p.dimension.width,p.dimension.height)),p.done)this._isResizing=!1})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?r.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(m){let u=this._editor.getDomNode(),p=this._editor.getScrolledVisiblePosition(m);if(!u||!p)return;return mt(u).top+p.top-HT}_availableVerticalSpaceBelow(m){let u=this._editor.getDomNode(),p=this._editor.getScrolledVisiblePosition(m);if(!u||!p)return;let v=mt(u),y=Ss(u.ownerDocument.body),k=v.top+p.top+p.height;return y.height-k-WT}_findPositionPreference(m,u){let p=Math.min(this._availableVerticalSpaceBelow(u)??1/0,m),v=Math.min(this._availableVerticalSpaceAbove(u)??1/0,m),y=Math.min(Math.max(v,p),m),k=Math.min(m,y),D;if(this._editor.getOption(69).above)D=k<=v?1:2;else D=k<=p?2:1;if(D===1)this._resizableNode.enableSashes(!0,!0,!1,!1);else this._resizableNode.enableSashes(!1,!0,!0,!1);return D}_resize(m){this._resizableNode.layout(m.height,m.width)}}var BT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},ym=function(m,u){return function(p,v){u(p,v,m)}},xn,wk=30,xm=class m extends Pv{static{xn=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new Ye(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===2}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(u,p,v,y,k){let D=u.getOption(75)+8,T=150,R=new Ye(150,D);super(u,R);this._configurationService=v,this._accessibilityService=y,this._keybindingService=k,this._hover=this._register(new pf(!0)),this._onDidResize=this._register(new i),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new i),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new i),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=R,this._hoverVisibleKey=o.hoverVisible.bindTo(p),this._hoverFocusedKey=o.hoverFocused.bindTo(p),w(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{if(this.isVisible)this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration((q)=>{if(q.hasChanged(59))this._updateFont()}));let K=this._register(Yn(this._resizableNode.domNode));this._register(K.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(K.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll((q)=>{this._onDidScroll.fire(q)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return xn.ID}static _applyDimensions(u,p,v){let y=typeof p==="number"?`${p}px`:p,k=typeof v==="number"?`${v}px`:v;u.style.width=y,u.style.height=k}_setContentsDomNodeDimensions(u,p){let v=this._hover.contentsDomNode;return xn._applyDimensions(v,u,p)}_setContainerDomNodeDimensions(u,p){let v=this._hover.containerDomNode;return xn._applyDimensions(v,u,p)}_setScrollableElementDimensions(u,p){let v=this._hover.scrollbar.getDomNode();return xn._applyDimensions(v,u,p)}_setHoverWidgetDimensions(u,p){this._setContainerDomNodeDimensions(u,p),this._setScrollableElementDimensions(u,p),this._setContentsDomNodeDimensions(u,p),this._layoutContentWidget()}static _applyMaxDimensions(u,p,v){let y=typeof p==="number"?`${p}px`:p,k=typeof v==="number"?`${v}px`:v;u.style.maxWidth=y,u.style.maxHeight=k}_setHoverWidgetMaxDimensions(u,p){xn._applyMaxDimensions(this._hover.contentsDomNode,u,p),xn._applyMaxDimensions(this._hover.scrollbar.getDomNode(),u,p),xn._applyMaxDimensions(this._hover.containerDomNode,u,p),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof u==="number"?`${u}px`:u),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(u){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(u.width,u.height)}_updateResizableNodeMaxDimensions(){let u=this._findMaximumRenderingWidth()??1/0,p=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new Ye(u,p),this._setHoverWidgetMaxDimensions(u,p)}_resize(u){xn._lastDimensions=new Ye(u.width,u.height),this._setAdjustedHoverWidgetDimensions(u),this._resizableNode.layout(u.height,u.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){let u=this._renderedHover?.showAtPosition;if(!u)return;return this._positionPreference===1?this._availableVerticalSpaceAbove(u):this._availableVerticalSpaceBelow(u)}_findMaximumRenderingHeight(){let u=this._findAvailableSpaceVertically();if(!u)return;let v=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach((y)=>{v+=y.clientHeight}),Math.min(u,v)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");let u=Array.from(this._hover.contentsDomNode.children).some((p)=>p.scrollWidth>p.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),u}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;let u=this._isHoverTextOverflowing(),p=typeof this._contentWidth>"u"?0:this._contentWidth;if(u||this._hover.containerDomNode.clientWidth<p){let v=Ss(this._hover.containerDomNode.ownerDocument.body).width,y=14;return v-14}else return this._hover.containerDomNode.clientWidth}isMouseGettingCloser(u,p){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=u,this._renderedHover.initialMousePosY=p,!1;let v=mt(this.getDomNode());if(this._renderedHover.closestMouseDistance===void 0)this._renderedHover.closestMouseDistance=Sk(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,v.left,v.top,v.width,v.height);let y=Sk(u,p,v.left,v.top,v.width,v.height);if(y>this._renderedHover.closestMouseDistance+4)return!1;return this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,y),!0}_setRenderedHover(u){this._renderedHover?.dispose(),this._renderedHover=u,this._hoverVisibleKey.set(!!u),this._hover.containerDomNode.classList.toggle("hidden",!u)}_updateFont(){let{fontSize:u,lineHeight:p}=this._editor.getOption(59),v=this._hover.contentsDomNode;v.style.fontSize=`${u}px`,v.style.lineHeight=`${p/u}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((k)=>this._editor.applyFontInfo(k))}_updateContent(u){let p=this._hover.contentsDomNode;p.style.paddingBottom="",p.textContent="",p.appendChild(u)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){let u=Math.max(this._editor.getLayoutInfo().height/4,250,xn._lastDimensions.height),p=Math.max(this._editor.getLayoutInfo().width*0.66,750,xn._lastDimensions.width);this._resizableNode.maxSize=new Ye(p,u),this._setHoverWidgetMaxDimensions(p,u)}_render(u){this._setRenderedHover(u),this._updateFont(),this._updateContent(u.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){if(!this._renderedHover)return null;return{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}}show(u){if(!this._editor||!this._editor.hasModel())return;this._render(u);let p=Sa(this._hover.containerDomNode),v=u.showAtPosition;if(this._positionPreference=this._findPositionPreference(p,v)??1,this.handleContentsChanged(),u.shouldFocus)this._hover.containerDomNode.focus();this._onDidResize.fire();let k=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&O0(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");if(k)this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+k}hide(){if(!this._renderedHover)return;let u=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();if(this._setRenderedHover(void 0),this._resizableNode.maxSize=new Ye(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),u)this._editor.focus()}_removeConstraintsRenderNormally(){let u=this._editor.getLayoutInfo();this._resizableNode.layout(u.height,u.width),this._setHoverWidgetDimensions("auto","auto"),this._updateMaxDimensions()}setMinimumDimensions(u){this._minimumSize=new Ye(Math.max(this._minimumSize.width,u.width),Math.max(this._minimumSize.height,u.height)),this._updateMinimumWidth()}_updateMinimumWidth(){let u=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new Ye(u,this._minimumSize.height)}handleContentsChanged(){this._removeConstraintsRenderNormally();let u=this._hover.contentsDomNode,p=Sa(u),v=uo(u)+2;if(this._resizableNode.layout(p,v),this._setHoverWidgetDimensions(v,p),p=Sa(u),v=uo(u),this._contentWidth=v,this._updateMinimumWidth(),this._resizableNode.layout(p,v),this._renderedHover?.showAtPosition){let y=Sa(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(y,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,p=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:u-p.lineHeight})}scrollDown(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,p=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:u+p.lineHeight})}scrollLeft(){let u=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:u-wk})}scrollRight(){let u=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:u+wk})}pageUp(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,p=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:u-p})}pageDown(){let u=this._hover.scrollbar.getScrollPosition().scrollTop,p=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:u+p})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};xm=xn=BT([ym(1,V),ym(2,X),ym(3,Vt),ym(4,ce)],xm);function Sk(m,u,p,v,y,k){let D=p+y/2,T=v+k/2,R=Math.max(Math.abs(m-D)-y/2,0),K=Math.max(Math.abs(u-T)-k/2,0);return Math.sqrt(R*R+K*K)}class Du{constructor(m,u){this._editor=m,this._participants=u}static _getLineDecorations(m,u){if(u.type!==1&&!u.supportsMarkerHover)return[];let p=m.getModel(),v=u.range.startLineNumber;if(v>p.getLineCount())return[];let y=p.getLineMaxColumn(v);return m.getLineDecorations(v).filter((k)=>{if(k.options.isWholeLine)return!0;let D=k.range.startLineNumber===v?k.range.startColumn:1,T=k.range.endLineNumber===v?k.range.endColumn:y;if(k.options.showIfCollapsed){if(D>u.range.startColumn+1||u.range.endColumn-1>T)return!1}else if(D>u.range.startColumn||u.range.endColumn>T)return!1;return!0})}computeAsync(m,u){let p=m.anchor;if(!this._editor.hasModel()||!p)return Pn.EMPTY;let v=Du._getLineDecorations(this._editor,p);return Pn.merge(this._participants.map((y)=>{if(!y.computeAsync)return Pn.EMPTY;return y.computeAsync(p,v,m.source,u)}))}computeSync(m){if(!this._editor.hasModel())return[];let u=m.anchor,p=Du._getLineDecorations(this._editor,u),v=[];for(let y of this._participants)v=v.concat(y.computeSync(u,p,m.source));return Xi(v)}}class Im{constructor(m,u,p){this.hoverParts=m,this.isComplete=u,this.options=p}filter(m){let u=this.hoverParts.filter((p)=>p.isValidForHoverAnchor(m));if(u.length===this.hoverParts.length)return this;return new Ck(this,u,this.isComplete,this.options)}}class Ck extends Im{constructor(m,u,p,v){super(u,p,v);this.original=m}filter(m){return this.original.filter(m)}}var VT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},yk=function(m,u){return function(p,v){u(p,v,m)}},xk=g,Gm=class m extends n{get hasContent(){return this._hasContent}constructor(u,p){super();this._keybindingService=u,this._hoverService=p,this.actions=[],this._hasContent=!1,this.hoverElement=xk("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=w(this.hoverElement,xk("div.actions"))}addAction(u){let p=this._keybindingService.lookupKeybinding(u.commandId),v=p?p.getLabel():null;this._hasContent=!0;let y=this._register(Nh.render(this.actionsElement,u,v));return this._register(this._hoverService.setupManagedHover(Wo("element"),y.actionContainer,y.actionRenderedLabel)),this.actions.push(y),y}append(u){let p=w(this.actionsElement,u);return this._hasContent=!0,p}};Gm=VT([yk(0,ce),yk(1,vn)],Gm);var zT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Ik=function(m,u){return function(p,v){u(p,v,m)}},Lm=class m extends n{constructor(u,p,v,y){super();this._container=u,this._getContent=p,this._clipboardService=v,this._hoverService=y,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new ms({label:e(1186,"Copy"),icon:b.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){let u=this._getContent();if(u)await this._clipboardService.writeText(u),go(e(1187,"Copied to clipboard"))}};Lm=zT([Ik(2,Zn),Ik(3,vn)],Lm);class Lk{constructor(m,u,p){this.provider=m,this.hover=u,this.ordinal=p}}async function KT(m,u,p,v,y){let k=await Promise.resolve(m.provideHover(p,v,y)).catch(dt);if(!k||!UT(k))return;return new Lk(m,k,u)}function Tu(m,u,p,v,y=!1){let D=m.ordered(u,y).map((T,R)=>KT(T,R,u,p,v));return Pn.fromPromisesResolveOrder(D).coalesce()}async function kk(m,u,p,v,y=!1){let k=[];for await(let D of Tu(m,u,p,v,y))k.push(D.hover);return k}po("_executeHoverProvider",(m,u,p)=>{let v=m.get(j);return kk(v.hoverProvider,u,p,he.None)});po("_executeHoverProvider_recursive",(m,u,p)=>{let v=m.get(j);return kk(v.hoverProvider,u,p,he.None,!0)});function UT(m){let u=typeof m.range<"u",p=typeof m.contents<"u"&&m.contents&&m.contents.length>0;return u&&p}var qT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Lc=function(m,u){return function(p,v){u(p,v,m)}},vd=g,jT=Lt("hover-increase-verbosity",b.addSmall,e(1188,"Icon for increaseing hover verbosity.")),$T=Lt("hover-decrease-verbosity",b.removeSmall,e(1189,"Icon for decreasing hover verbosity."));class Do{constructor(m,u,p,v,y,k=void 0){this.owner=m,this.range=u,this.contents=p,this.isBeforeContent=v,this.ordinal=y,this.source=k}isValidForHoverAnchor(m){return m.type===1&&this.range.startColumn<=m.range.startColumn&&this.range.endColumn>=m.range.endColumn}}class Av{constructor(m,u,p){this.hover=m,this.hoverProvider=u,this.hoverPosition=p}supportsVerbosityAction(m){switch(m){case Nr.Increase:return this.hover.canIncreaseVerbosity??!1;case Nr.Decrease:return this.hover.canDecreaseVerbosity??!1}}}var ma=class m{constructor(u,p,v,y,k,D,T){this._editor=u,this._markdownRendererService=p,this._configurationService=v,this._languageFeaturesService=y,this._keybindingService=k,this._hoverService=D,this._commandService=T,this.hoverOrdinal=3}createLoadingMessage(u){return new Do(this,u.range,[new yn().appendText(e(1190,"Loading..."))],!1,2000)}computeSync(u,p){if(!this._editor.hasModel()||u.type!==1)return[];let v=this._editor.getModel(),y=u.range.startLineNumber,k=v.getLineMaxColumn(y),D=[],T=1000,R=v.getLineLength(y),K=v.getLanguageIdAtPosition(u.range.startLineNumber,u.range.startColumn),q=this._editor.getOption(133),Q=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:K}),te=this._editor.getOption(69).showLongLineWarning,ne=!1;if(q>=0&&R>q&&u.range.startColumn>=q){if(ne=!0,te)D.push(new Do(this,u.range,[{value:e(1191,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`. [Don't Show Again](command:{0})",_u),isTrusted:!0}],!1,T++))}if(!ne&&typeof Q==="number"&&R>=Q){if(te)D.push(new Do(this,u.range,[{value:e(1192,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`. [Don't Show Again](command:{0})",_u),isTrusted:!0}],!1,T++))}let re=!1;for(let ae of p){let ge=ae.range.startLineNumber===y?ae.range.startColumn:1,Se=ae.range.endLineNumber===y?ae.range.endColumn:k,Oe=ae.options.hoverMessage;if(!Oe||hu(Oe))continue;if(ae.options.beforeContentClassName)re=!0;let Ae=new t(u.range.startLineNumber,ge,u.range.startLineNumber,Se);D.push(new Do(this,Ae,Zm(Oe),re,T++))}return D}computeAsync(u,p,v,y){if(!this._editor.hasModel()||u.type!==1)return Pn.EMPTY;let k=this._editor.getModel(),D=this._languageFeaturesService.hoverProvider;if(!D.has(k))return Pn.EMPTY;return this._getMarkdownHovers(D,k,u,y)}async*_getMarkdownHovers(u,p,v,y){let k=v.range.getStartPosition(),D=Tu(u,p,k,y);for await(let T of D)if(!hu(T.hover.contents)){let R=T.hover.range?t.lift(T.hover.range):v.range,K=new Av(T.hover,T.provider,k);yield new Do(this,R,T.hover.contents,!1,T.ordinal,K)}}renderHoverParts(u,p){return this._renderedHoverParts=new Ek(p,u.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,u.onContentsChanged),this._renderedHoverParts}handleScroll(u){this._renderedHoverParts?.handleScroll(u)}getAccessibleContent(u){return this._renderedHoverParts?.getAccessibleContent(u)??""}updateMarkdownHoverVerbosityLevel(u,p){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(u,p))}};ma=qT([Lc(1,vo),Lc(2,X),Lc(3,j),Lc(4,ce),Lc(5,vn),Lc(6,Ne)],ma);class Ru{constructor(m,u,p,v){this.hoverPart=m,this.hoverElement=u,this.disposables=p,this.actionsContainer=v}dispose(){this.disposables.dispose()}}class Ek{constructor(m,u,p,v,y,k,D,T,R,K){this._hoverParticipant=p,this._editor=v,this._commandService=y,this._keybindingService=k,this._hoverService=D,this._configurationService=T,this._markdownRendererService=R,this._onFinishedRendering=K,this._ongoingHoverOperations=new Map,this._disposables=new c,this.renderedHoverParts=this._renderHoverParts(m,u,this._onFinishedRendering),this._disposables.add(E(()=>{this.renderedHoverParts.forEach((q)=>{q.dispose()}),this._ongoingHoverOperations.forEach((q)=>{q.tokenSource.dispose(!0)})}))}_renderHoverParts(m,u,p){return m.sort(Cn((v)=>v.ordinal,xi)),m.map((v)=>{let y=this._renderHoverPart(v,p);return u.appendChild(y.hoverElement),y})}_renderHoverPart(m,u){let p=this._renderMarkdownHover(m,u),v=p.hoverElement,y=m.source,k=new c;if(k.add(p),!y)return new Ru(m,v,k);let D=y.supportsVerbosityAction(Nr.Increase),T=y.supportsVerbosityAction(Nr.Decrease);if(!D&&!T)return new Ru(m,v,k);let R=vd("div.verbosity-actions");v.prepend(R);let K=vd("div.verbosity-actions-inner");return R.append(K),k.add(this._renderHoverExpansionAction(K,Nr.Increase,D)),k.add(this._renderHoverExpansionAction(K,Nr.Decrease,T)),new Ru(m,v,k,K)}_renderMarkdownHover(m,u){return Tk(this._editor,m,this._markdownRendererService,u)}_renderHoverExpansionAction(m,u,p){let v=new c,y=u===Nr.Increase,k=w(m,vd(G.asCSSSelector(y?jT:$T)));k.tabIndex=0;let D=v.add(new Gc("mouse",void 0,{target:m,position:{hoverPosition:0}},this._configurationService,this._hoverService));if(v.add(this._hoverService.setupManagedHover(D,k,GT(this._keybindingService,u))),!p)return k.classList.add("disabled"),v;k.classList.add("enabled");let T=()=>this._commandService.executeCommand(u===Nr.Increase?hd:ud,{focus:!0});return v.add(new M0(k,T)),v.add(new P0(k,T,[3,10])),v}handleScroll(m){this.renderedHoverParts.forEach((u)=>{let p=u.actionsContainer;if(!p)return;let v=u.hoverElement,k=m.scrollTop+m.height,{offsetTop:D,clientHeight:T}=v,R=D+T,K=22,q;if(R<=k||D>=k)q=T-K;else q=k-D-K;p.style.top=`${q}px`})}async updateMarkdownHoverPartVerbosityLevel(m,u){let p=this._editor.getModel();if(!p)return;let v=this._getRenderedHoverPartAtIndex(u),y=v?.hoverPart.source;if(!v||!y?.supportsVerbosityAction(m))return;let k=await this._fetchHover(y,p,m);if(!k)return;let D=new Av(k,y.hoverProvider,y.hoverPosition),T=v.hoverPart,R=new Do(this._hoverParticipant,T.range,k.contents,T.isBeforeContent,T.ordinal,D),K=this._updateRenderedHoverPart(u,R);if(!K)return;return{hoverPart:R,hoverElement:K.hoverElement}}getAccessibleContent(m){let u=this.renderedHoverParts.findIndex((k)=>k.hoverPart===m);if(u===-1)return;let p=this._getRenderedHoverPartAtIndex(u);if(!p)return;return p.hoverElement.innerText.replace(/[^\S\n\r]+/gu," ")}async _fetchHover(m,u,p){let v=p===Nr.Increase?1:-1,y=m.hoverProvider,k=this._ongoingHoverOperations.get(y);if(k)k.tokenSource.cancel(),v+=k.verbosityDelta;let D=new Me;this._ongoingHoverOperations.set(y,{verbosityDelta:v,tokenSource:D});let T={verbosityRequest:{verbosityDelta:v,previousHover:m.hover}},R;try{R=await Promise.resolve(y.provideHover(u,m.hoverPosition,D.token,T))}catch(K){dt(K)}return D.dispose(),this._ongoingHoverOperations.delete(y),R}_updateRenderedHoverPart(m,u){if(m>=this.renderedHoverParts.length||m<0)return;let p=this._renderHoverPart(u,this._onFinishedRendering),v=this.renderedHoverParts[m],y=v.hoverElement,k=p.hoverElement,D=Array.from(k.children);y.replaceChildren(...D);let T=new Ru(u,y,p.disposables,p.actionsContainer);return v.dispose(),this.renderedHoverParts[m]=T,T}_getRenderedHoverPartAtIndex(m){return this.renderedHoverParts[m]}dispose(){this._disposables.dispose()}}function Dk(m,u,p,v){u.sort(Cn((k)=>k.ordinal,xi));let y=[];for(let k of u){let D=Tk(p,k,v,m.onContentsChanged);m.fragment.appendChild(D.hoverElement),y.push(D)}return new Jo(y)}function Tk(m,u,p,v){let y=new c,k=vd("div.hover-row"),D=vd("div.hover-row-contents");k.appendChild(D);let T=u.contents;for(let K of T){if(hu(K))continue;let q=vd("div.markdown-hover"),Q=w(q,vd("div.hover-contents")),te=y.add(p.render(K,{context:m,asyncRenderCallback:()=>{Q.className="hover-contents code-hover-contents",v()}}));Q.appendChild(te.element),D.appendChild(q)}return{hoverPart:u,hoverElement:k,dispose(){y.dispose()}}}function GT(m,u){switch(u){case Nr.Increase:return m.appendKeybinding(e(1193,"Increase Hover Verbosity"),hd);case Nr.Decrease:return m.appendKeybinding(e(1194,"Decrease Hover Verbosity"),ud)}}var Rk=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Fv=function(m,u){return function(p,v){u(p,v,m)}},Fp=class m{constructor(u){this._editorWorkerService=u}async provideDocumentColors(u,p){return this._editorWorkerService.computeDefaultDocumentColors(u.uri)}provideColorPresentations(u,p,v){let{range:y,color:k}=p,D=new f(new S(Math.round(255*k.red),Math.round(255*k.green),Math.round(255*k.blue),k.alpha)),T=f.Format.CSS.formatRGB(D),R=f.Format.CSS.formatHSL(D),K=f.Format.CSS.formatHexA(D,!0),q=[];return q.push({label:T,textEdit:{range:y,text:T}}),q.push({label:R,textEdit:{range:y,text:R}}),q.push({label:K,textEdit:{range:y,text:K}}),q}};Fp=Rk([Fv(0,fi)],Fp);var Xx=class m extends n{constructor(u,p){super();this._register(u.colorProvider.register("*",new Fp(p)))}};Xx=Rk([Fv(0,j),Fv(1,fi)],Xx);async function Qx(m,u,p,v="auto"){return e0(new Nk,m,u,p,v)}function Hv(m,u,p,v){return Promise.resolve(p.provideColorPresentations(m,u,v))}class Nk{constructor(){}async compute(m,u,p,v){let y=await m.provideDocumentColors(u,p);if(Array.isArray(y))for(let k of y)v.push({colorInfo:k,provider:m});return Array.isArray(y)}}class Mk{constructor(){}async compute(m,u,p,v){let y=await m.provideDocumentColors(u,p);if(Array.isArray(y))for(let k of y)v.push({range:k.range,color:[k.color.red,k.color.green,k.color.blue,k.color.alpha]});return Array.isArray(y)}}class Pk{constructor(m){this.colorInfo=m}async compute(m,u,p,v){let y=await m.provideColorPresentations(u,this.colorInfo,he.None);if(Array.isArray(y))v.push(...y);return Array.isArray(y)}}async function e0(m,u,p,v,y){let k=!1,D,T=[],R=u.ordered(p);for(let K=R.length-1;K>=0;K--){let q=R[K];if(y!=="always"&&q instanceof Fp)D=q;else try{if(await m.compute(q,p,v,T))k=!0}catch(Q){dt(Q)}}if(k)return T;if(D&&y!=="never")return await m.compute(D,p,v,T),T;return[]}function Fk(m,u){let{colorProvider:p}=m.get(j),v=m.get(gt).getModel(u);if(!v)throw Qi();let y=m.get(X).getValue("editor.defaultColorDecorators",{resource:u});return{model:v,colorProviderRegistry:p,defaultColorDecoratorsEnablement:y}}var ZT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Wv=function(m,u){return function(p,v){u(p,v,m)}},wd,Bv=Object.create({}),Gd=class m extends n{static{wd=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1000}static{this.colorDecoratorInnerWidthInEm=0.8}static{this.colorDecoratorMarginInEm=0.2}constructor(u,p,v,y){super();this._editor=u,this._configurationService=p,this._languageFeaturesService=v,this._localToDispose=this._register(new c),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new Ak),this._colorDecorationClassRefs=this._register(new c),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new vg(this._editor));let k=this._editor.getContainerDomNode();k.style.setProperty("--vscode-colorPicker-colorDecoratorWidth",`${wd.colorDecoratorInnerWidthInEm}em`),k.style.setProperty("--vscode-colorPicker-colorDecoratorMargin",`${wd.colorDecoratorMarginInEm}em`),this._register(E(()=>{k.style.removeProperty("--vscode-colorPicker-colorDecoratorWidth"),k.style.removeProperty("--vscode-colorPicker-colorDecoratorMargin")})),this._debounceInformation=y.for(v.colorProvider,"Document Colors",{min:wd.RECOMPUTE_TIME}),this._register(u.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(u.onDidChangeModelLanguage(()=>this.updateColors())),this._register(v.colorProvider.onDidChange(()=>this.updateColors())),this._register(u.onDidChangeConfiguration((D)=>{let T=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168);let R=T!==this._isColorDecoratorsEnabled||D.hasChanged(27),K=D.hasChanged(168);if(R||K)if(this._isColorDecoratorsEnabled)this.updateColors();else this.removeAllDecorations()})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(168),this.updateColors()}isEnabled(){let u=this._editor.getModel();if(!u)return!1;let p=u.getLanguageId(),v=this._configurationService.getValue(p);if(v&&typeof v==="object"){let y=v.colorDecorators;if(y&&y.enable!==void 0&&!y.enable)return y.enable}return this._editor.getOption(26)}static get(u){return u.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled){this.removeAllDecorations();return}let u=this._editor.getModel();if(!u||!this._languageFeaturesService.colorProvider.has(u))return;this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{if(!this._timeoutTimer)this._timeoutTimer=new Vn,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(u))})),this.beginCompute()}async beginCompute(){this._computePromise=Pt(async(u)=>{let p=this._editor.getModel();if(!p)return[];let v=new Kt(!1),y=await Qx(this._languageFeaturesService.colorProvider,p,u,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(p,v.elapsed()),y});try{let u=await this._computePromise;this.updateDecorations(u),this.updateColorDecorators(u),this._computePromise=null}catch(u){J(u)}}stop(){if(this._timeoutTimer)this._timeoutTimer.cancel(),this._timeoutTimer=null;if(this._computePromise)this._computePromise.cancel(),this._computePromise=null;this._localToDispose.clear()}updateDecorations(u){let p=u.map((v)=>({range:{startLineNumber:v.colorInfo.range.startLineNumber,startColumn:v.colorInfo.range.startColumn,endLineNumber:v.colorInfo.range.endLineNumber,endColumn:v.colorInfo.range.endColumn},options:oe.EMPTY}));this._editor.changeDecorations((v)=>{this._decorationsIds=v.deltaDecorations(this._decorationsIds,p),this._colorDatas=new Map,this._decorationsIds.forEach((y,k)=>this._colorDatas.set(y,u[k]))})}updateColorDecorators(u){this._colorDecorationClassRefs.clear();let p=[],v=wd.colorDecoratorInnerWidthInEm+2*wd.colorDecoratorMarginInEm,y=this._editor.getOption(27);for(let D=0;D<u.length&&p.length<y;D++){let{red:T,green:R,blue:K,alpha:q}=u[D].colorInfo.color,Q=new S(Math.round(T*255),Math.round(R*255),Math.round(K*255),q),te=`rgba(${Q.r}, ${Q.g}, ${Q.b}, ${Q.a})`,ne=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:te}));p.push({range:{startLineNumber:u[D].colorInfo.range.startLineNumber,startColumn:u[D].colorInfo.range.startColumn,endLineNumber:u[D].colorInfo.range.endLineNumber,endColumn:u[D].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:u0,inlineClassName:`${ne.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:Bv,widthInEm:v}}})}let k=y<u.length?y:!1;this._decoratorLimitReporter.update(u.length,k),this._colorDecoratorIds.set(p)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(u){let p=this._editor.getModel();if(!p)return null;let v=p.getDecorationsInRange(t.fromPositions(u,u)).filter((y)=>this._colorDatas.has(y.id));if(v.length===0)return null;return this._colorDatas.get(v[0].id)}isColorDecoration(u){return this._colorDecoratorIds.has(u)}};Gd=wd=ZT([Wv(1,X),Wv(2,j),Wv(3,Hi)],Gd);class Ak extends n{constructor(){super(...arguments);this._onDidChange=this._register(new i),this._computed=0,this._limited=!1}update(m,u){if(m!==this._computed||u!==this._limited)this._computed=m,this._limited=u,this._onDidChange.fire()}}var $k=g;class zv extends n{constructor(m,u,p){super();this.model=u,this.pixelRatio=p,this._onDidChange=this._register(new i),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new i),this.onColorFlushed=this._onColorFlushed.event,this._domNode=$k(".saturation-wrap"),w(m,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",w(this._domNode,this._canvas),this.selection=$k(".saturation-selection"),w(this._domNode,this.selection),this.layout(),this._register(l(this._domNode,x.POINTER_DOWN,(v)=>this.onPointerDown(v))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(m){if(!m.target||!(m.target instanceof Element))return;this.monitor=this._register(new Ia);let u=mt(this._domNode);if(m.target!==this.selection)this.onDidChangePosition(m.offsetX,m.offsetY);this.monitor.startMonitoring(m.target,m.pointerId,m.buttons,(v)=>this.onDidChangePosition(v.pageX-u.left,v.pageY-u.top),()=>null);let p=l(m.target.ownerDocument,x.POINTER_UP,()=>{if(this._onColorFlushed.fire(),p.dispose(),this.monitor)this.monitor.stopMonitoring(!0),this.monitor=null},!0)}onDidChangePosition(m,u){let p=Math.max(0,Math.min(1,m/this.width)),v=Math.max(0,Math.min(1,1-u/this.height));this.paintSelection(p,v),this._onDidChange.fire({s:p,v})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();let m=this.model.color.hsva;this.paintSelection(m.s,m.v)}paint(){let m=this.model.color.hsva,u=new f(new pl(m.h,1,1,1)),p=this._canvas.getContext("2d"),v=p.createLinearGradient(0,0,this._canvas.width,0);v.addColorStop(0,"rgba(255, 255, 255, 1)"),v.addColorStop(0.5,"rgba(255, 255, 255, 0.5)"),v.addColorStop(1,"rgba(255, 255, 255, 0)");let y=p.createLinearGradient(0,0,0,this._canvas.height);y.addColorStop(0,"rgba(0, 0, 0, 0)"),y.addColorStop(1,"rgba(0, 0, 0, 1)"),p.rect(0,0,this._canvas.width,this._canvas.height),p.fillStyle=f.Format.CSS.format(u),p.fill(),p.fillStyle=v,p.fill(),p.fillStyle=y,p.fill()}paintSelection(m,u){this.selection.style.left=`${m*this.width}px`,this.selection.style.top=`${this.height-u*this.height}px`}onDidChangeColor(m){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let u=m.hsva;this.paintSelection(u.s,u.v)}}class qv extends n{constructor(m){super();this._onClicked=this._register(new i),this.onClicked=this._onClicked.event,this._button=w(m,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(l(this._button,x.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}var Nu=g;class jv extends n{constructor(m,u,p){super();if(this.model=u,this._onDidChange=this._register(new i),this.onDidChange=this._onDidChange.event,this._onColorFlushed=this._register(new i),this.onColorFlushed=this._onColorFlushed.event,p==="standalone")this.domNode=w(m,Nu(".standalone-strip")),this.overlay=w(this.domNode,Nu(".standalone-overlay"));else this.domNode=w(m,Nu(".strip")),this.overlay=w(this.domNode,Nu(".overlay"));this.slider=w(this.domNode,Nu(".slider")),this.slider.style.top="0px",this._register(l(this.domNode,x.POINTER_DOWN,(v)=>this.onPointerDown(v))),this._register(u.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;let m=this.getValue(this.model.color);this.updateSliderPosition(m)}onDidChangeColor(m){let u=this.getValue(m);this.updateSliderPosition(u)}onPointerDown(m){if(!m.target||!(m.target instanceof Element))return;let u=this._register(new Ia),p=mt(this.domNode);if(this.domNode.classList.add("grabbing"),m.target!==this.slider)this.onDidChangeTop(m.offsetY);u.startMonitoring(m.target,m.pointerId,m.buttons,(y)=>this.onDidChangeTop(y.pageY-p.top),()=>null);let v=l(m.target.ownerDocument,x.POINTER_UP,()=>{this._onColorFlushed.fire(),v.dispose(),u.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(m){let u=Math.max(0,Math.min(1,1-m/this.height));this.updateSliderPosition(u),this._onDidChange.fire(u)}updateSliderPosition(m){this.slider.style.top=`${(1-m)*this.height}px`}}class $v extends jv{constructor(m,u,p){super(m,u,p);this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(m){super.onDidChangeColor(m);let{r:u,g:p,b:v}=m.rgba,y=new f(new S(u,p,v,1)),k=new f(new S(u,p,v,0));this.overlay.style.background=`linear-gradient(to bottom, ${y} 0%, ${k} 100%)`}getValue(m){return m.hsva.a}}class Xv extends jv{constructor(m,u,p){super(m,u,p);this.domNode.classList.add("hue-strip")}getValue(m){return 1-m.hsva.h/360}}var XT=g;class ew extends n{constructor(m,u,p,v){super();if(this.model=u,this.pixelRatio=p,this._insertButton=null,this._domNode=XT(".colorpicker-body"),w(m,this._domNode),this._saturationBox=new zv(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 $v(this._domNode,this.model,v),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new Xv(this._domNode,this.model,v),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),v==="standalone")this._insertButton=this._register(new qv(this._domNode)),this._domNode.classList.add("standalone-colorpicker")}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:m,v:u}){let p=this.model.color.hsva;this.model.color=new f(new pl(p.h,m,u,p.a))}onDidOpacityChange(m){let u=this.model.color.hsva;this.model.color=new f(new pl(u.h,u.s,u.v,m))}onDidHueChange(m){let u=this.model.color.hsva,p=(1-m)*360;this.model.color=new f(new pl(p===360?0:p,u.s,u.v,u.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}var YT=g;class tw extends n{constructor(m){super();this._onClicked=this._register(new i),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),w(m,this._button);let u=document.createElement("div");u.classList.add("close-button-inner-div"),w(this._button,u),w(u,YT(".button"+G.asCSSSelector(Lt("color-picker-close",b.close,e(936,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(l(this._button,x.CLICK,()=>{this._onClicked.fire()}))}}var km=g;class iw extends n{constructor(m,u,p,v){super();this.model=u,this.type=v,this._closeButton=null,this._domNode=km(".colorpicker-header"),w(m,this._domNode),this._pickedColorNode=w(this._domNode,km(".picked-color")),w(this._pickedColorNode,km("span.codicon.codicon-color-mode")),this._pickedColorPresentation=w(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");let y=e(937,"Click to toggle color options (rgb/hsl/hex)");if(this._pickedColorNode.setAttribute("title",y),this._originalColorNode=w(this._domNode,km(".original-color")),this._originalColorNode.style.backgroundColor=f.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=p.getColorTheme().getColor(of)||f.white,this._register(p.onDidColorThemeChange((k)=>{this.backgroundColor=k.getColor(of)||f.white})),this._register(l(this._pickedColorNode,x.CLICK,()=>this.model.selectNextColorPresentation())),this._register(l(this._originalColorNode,x.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(u.onDidChangeColor(this.onDidChangeColor,this)),this._register(u.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=f.Format.CSS.format(u.color)||"",this._pickedColorNode.classList.toggle("light",u.color.rgba.a<0.5?this.backgroundColor.isLighter():u.color.isLighter()),this.onDidChangeColor(this.model.color),this.type==="standalone")this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new tw(this._domNode))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(m){this._pickedColorNode.style.backgroundColor=f.Format.CSS.format(m)||"",this._pickedColorNode.classList.toggle("light",m.rgba.a<0.5?this.backgroundColor.isLighter():m.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}var JT=g;class Uv extends ni{constructor(m,u,p,v,y){super();this.model=u,this.pixelRatio=p,this._register(gh.getInstance(F(m)).onDidChange(()=>this.layout())),this._domNode=JT(".colorpicker-widget"),m.appendChild(this._domNode),this.header=this._register(new iw(this._domNode,this.model,v,y)),this.body=this._register(new ew(this._domNode,this.model,this.pixelRatio,y))}layout(){this.body.layout()}get domNode(){return this._domNode}}class ow extends n{get color(){return this._color}set color(m){if(this._color.equals(m))return;this._color=m,this._onDidChangeColor.fire(m)}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(m){if(this._colorPresentations=m,this.presentationIndex>m.length-1)this.presentationIndex=0;this._onDidChangePresentation.fire(this.presentation)}constructor(m,u,p){super();this.presentationIndex=p,this._onColorFlushed=this._register(new i),this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=this._register(new i),this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=this._register(new i),this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=m,this._color=m,this._colorPresentations=u}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(m,u){let p=-1;for(let v=0;v<this.colorPresentations.length;v++)if(u.toLowerCase()===this.colorPresentations[v].label){p=v;break}if(p===-1){let v=u.split("(")[0].toLowerCase();for(let y=0;y<this.colorPresentations.length;y++)if(this.colorPresentations[y].label.toLowerCase().startsWith(v)){p=y;break}}if(p!==-1&&p!==this.presentationIndex)this.presentationIndex=p,this._onDidChangePresentation.fire(this.presentation)}flushColor(){this._onColorFlushed.fire(this._color)}}async function t0(m,u,p){let v=m.getValueInRange(u.range),{red:y,green:k,blue:D,alpha:T}=u.color,R=new S(Math.round(y*255),Math.round(k*255),Math.round(D*255),T),K=new f(R),q=await Hv(m,u,p,he.None),Q=new ow(K,[],0);return Q.colorPresentations=q||[],Q.guessColorPresentation(K,v),{range:t.lift(u.range),model:Q,provider:p}}function n0(m,u,p,v){let y=[],k=p.presentation.textEdit??{range:u,text:p.presentation.label,forceMoveMarkers:!1};if(p.presentation.additionalTextEdits)y.push(...p.presentation.additionalTextEdits);let D=t.lift(k.range),T=m.getModel()._setTrackedRange(null,D,3);if(v)y.push(...v.map((R)=>({range:R,text:k.text,forceMoveMarkers:!1})));else y.push(k);return m.executeEdits("colorpicker",y),m.pushUndoStop(),m.getModel()._getTrackedRange(T)??D}async function jp(m,u,p,v,y){let k=await Hv(m,{range:v,color:{red:p.rgba.r/255,green:p.rgba.g/255,blue:p.rgba.b/255,alpha:p.rgba.a}},y.provider,he.None);u.colorPresentations=k||[]}var QT=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},_R=function(m,u){return function(p,v){u(p,v,m)}};class kc{constructor(m,u,p,v){this.owner=m,this.range=u,this.model=p,this.provider=v,this.forceShowAtRange=!0}isValidForHoverAnchor(m){return m.type===1&&this.range.startColumn<=m.range.startColumn&&this.range.endColumn>=m.range.endColumn}static fromBaseColor(m,u){return new kc(m,u.range,u.model,u.provider)}}var Km=class m{constructor(u,p){this._editor=u,this._themeService=p,this.hoverOrdinal=2}computeSync(u,p,v){return[]}computeAsync(u,p,v,y){return Pn.fromPromise(this._computeAsync(u,p,v))}async _computeAsync(u,p,v){if(!this._editor.hasModel())return[];if(!this._isValidRequest(v))return[];let y=Gd.get(this._editor);if(!y)return[];for(let k of p){if(!y.isColorDecoration(k))continue;let D=y.getColorData(k.range.getStartPosition());if(D)return[kc.fromBaseColor(this,await t0(this._editor.getModel(),D.colorInfo,D.provider))]}return[]}_isValidRequest(u){let p=this._editor.getOption(169);switch(u){case 0:return p==="hover"||p==="clickAndHover";case 1:return p==="click"||p==="clickAndHover";case 2:return!0}}renderHoverParts(u,p){let v=this._editor;if(p.length===0||!v.hasModel())return new Jo([]);let y=v.getOption(75)+8;u.setMinimumDimensions(new Ye(302,y));let k=new c,D=p[0],T=v.getModel(),R=D.model;this._colorPicker=k.add(new Uv(u.fragment,R,v.getOption(164),this._themeService,"hover"));let K=!1,q=new t(D.range.startLineNumber,D.range.startColumn,D.range.endLineNumber,D.range.endColumn);k.add(R.onColorFlushed(async(te)=>{await jp(T,R,te,q,D),K=!0,q=n0(v,q,R)})),k.add(R.onDidChangeColor((te)=>{jp(T,R,te,q,D)})),k.add(v.onDidChangeModelContent((te)=>{if(K)K=!1;else u.hide(),v.focus()}));let Q={hoverPart:kc.fromBaseColor(this,D),hoverElement:this._colorPicker.domNode,dispose(){k.dispose()}};return new Jo([Q])}getAccessibleContent(u){return e(938,"There is a color picker here.")}handleResize(){this._colorPicker?.layout()}handleContentsChanged(){this._colorPicker?.layout()}handleHide(){this._colorPicker?.dispose(),this._colorPicker=void 0}isColorPickerVisible(){return!!this._colorPicker}};Km=QT([_R(1,De)],Km);class Em{constructor(m,u){this.range=m,this.direction=u}}class nw{constructor(m,u,p){this.hint=m,this.anchor=u,this.provider=p,this._isResolved=!1}with(m){let u=new nw(this.hint,m.anchor,this.provider);return u._isResolved=this._isResolved,u._currentResolve=this._currentResolve,u}async resolve(m){if(typeof this.provider.resolveInlayHint!=="function")return;if(this._currentResolve){if(await this._currentResolve,m.isCancellationRequested)return;return this.resolve(m)}if(!this._isResolved)this._currentResolve=this._doResolve(m).finally(()=>this._currentResolve=void 0);await this._currentResolve}async _doResolve(m){try{let u=await Promise.resolve(this.provider.resolveInlayHint(this.hint,m));this.hint.tooltip=u?.tooltip??this.hint.tooltip,this.hint.label=u?.label??this.hint.label,this.hint.textEdits=u?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(u){dt(u),this._isResolved=!1}}}class Sd{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(m,u,p,v){let y=[],k=m.ordered(u).reverse().map((D)=>p.map(async(T)=>{try{let R=await D.provideInlayHints(u,T,v);if(R?.hints.length||D.onDidChangeInlayHints)y.push([R??Sd._emptyInlayHintList,D])}catch(R){dt(R)}}));if(await Promise.all(k.flat()),v.isCancellationRequested||u.isDisposed())throw new er;return new Sd(p,y,u)}constructor(m,u,p){this._disposables=new c,this.ranges=m,this.provider=new Set;let v=[];for(let[y,k]of u){this._disposables.add(y),this.provider.add(k);for(let D of y.hints){let T=p.validatePosition(D.position),R="before",K=Sd._getRangeAtPosition(p,T),q;if(K.getStartPosition().isBefore(T))q=t.fromPositions(K.getStartPosition(),T),R="after";else q=t.fromPositions(T,K.getEndPosition()),R="before";v.push(new nw(D,new Em(q,R),k))}}this.items=v.sort((y,k)=>r.compare(y.hint.position,k.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(m,u){let p=u.lineNumber,v=m.getWordAtPosition(u);if(v)return new t(p,v.startColumn,p,v.endColumn);m.tokenization.tokenizeIfCheap(p);let y=m.tokenization.getLineTokens(p),k=u.column-1,D=y.findTokenIndexAtOffset(k),T=y.getStartOffset(D),R=y.getEndOffset(D);if(R-T===1){if(T===k&&D>1)T=y.getStartOffset(D-1),R=y.getEndOffset(D-1);else if(R===k&&D<y.getCount()-1)T=y.getStartOffset(D+1),R=y.getEndOffset(D+1)}return new t(p,T+1,p,R+1)}}function e1(m){return j0(m.id,...m.arguments??[]).toString()}async function t1(m,u,p,v){let y=m.get(mn),k=m.get(Dn),D=m.get(Ne),T=m.get(L),R=m.get(ut);if(await v.item.resolve(he.None),!v.part.location)return;let K=v.part.location,q=[],Q=new Set(Rn.getMenuItems(a.EditorContext).map((ne)=>bh(ne)?ne.command.id:Da()));for(let ne of _o.all())if(Q.has(ne.desc.id))q.push(new eo(ne.desc.id,Si.label(ne.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let re=await y.createModelReference(K.uri);try{let ae=new fd(re.object.textEditorModel,t.getStartPosition(K.range)),ge=v.item.anchor.range;await T.invokeFunction(ne.runEditorCommand.bind(ne),u,ae,ge)}finally{re.dispose()}}));if(v.part.command){let{command:ne}=v.part;q.push(new Qe),q.push(new eo(ne.id,ne.title,void 0,!0,async()=>{try{await D.executeCommand(ne.id,...ne.arguments??[])}catch(re){R.notify({severity:bl.Error,source:v.item.provider.displayName,message:re})}}))}let te=u.getOption(144);k.showContextMenu({domForShadowRoot:te?u.getDomNode()??void 0:void 0,getAnchor:()=>{let ne=mt(p);return{x:ne.left,y:ne.top+ne.height+8}},getActions:()=>q,onHide:()=>{u.focus()},autoSelectFirstItem:!0})}async function Dm(m,u,p,v){let k=await m.get(mn).createModelReference(v.uri);await p.invokeWithinContext(async(D)=>{let T=u.hasSideBySideModifier,R=D.get(V),K=Ki.inPeekEditor.getValue(R),q=!T&&p.getOption(101)&&!K;return new ua({openToSide:T,openInPeek:q,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(D,new fd(k.object.textEditorModel,t.getStartPosition(v.range)),t.lift(v.range))}),k.dispose()}var LR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Ec=function(m,u){return function(p,v){u(p,v,m)}},Dc;class Tm{constructor(){this._entries=new Ei(50)}get(m){let u=Tm._key(m);return this._entries.get(u)}set(m,u){let p=Tm._key(m);this._entries.set(p,u)}static _key(m){return`${m.uri.toString()}/${m.getVersionId()}`}}var i1=Z("IInlayHintsCache");fe(i1,Tm,1);class Mu{constructor(m,u){this.item=m,this.index=u}get part(){let m=this.item.hint.label;if(typeof m==="string")return{label:m};else return m[this.index]}}class o1{constructor(m,u){this.part=m,this.hasTriggerModifier=u}}class n1{constructor(){this._store=new ie,this._tokenSource=new Me}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new Me,this._store.value=new c,{store:this._store.value,token:this._tokenSource.token}}}var Hp=class m{static{Dc=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._whitespaceData={}}static get(u){return u.getContribution(Dc.ID)??void 0}constructor(u,p,v,y,k,D,T){this._editor=u,this._languageFeaturesService=p,this._inlayHintsCache=y,this._commandService=k,this._notificationService=D,this._instaService=T,this._disposables=new c,this._sessionDisposables=new c,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new vg(this._editor)),this._debounceInfo=v.for(p.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(p.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(u.onDidChangeModel(()=>this._update())),this._disposables.add(u.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(u.onDidChangeConfiguration((R)=>{if(R.hasChanged(159))this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();let u=this._editor.getOption(159);if(u.enabled==="off")return;let p=this._editor.getModel();if(!p||!this._languageFeaturesService.inlayHintsProvider.has(p))return;if(u.enabled==="on")this._activeRenderMode=0;else{let K,q;if(u.enabled==="onUnlessPressed")K=0,q=1;else K=1,q=0;this._activeRenderMode=K,this._sessionDisposables.add(Xs.getInstance().event((Q)=>{if(!this._editor.hasModel())return;let te=Q.altKey&&Q.ctrlKey&&!(Q.shiftKey||Q.metaKey)?q:K;if(te!==this._activeRenderMode){this._activeRenderMode=te;let ne=this._editor.getModel(),re=this._copyInlayHintsWithCurrentAnchor(ne);this._updateHintsDecorators([ne.getFullModelRange()],re),T.schedule(0)}}))}let v=this._inlayHintsCache.get(p);if(v)this._updateHintsDecorators([p.getFullModelRange()],v);this._sessionDisposables.add(E(()=>{if(!p.isDisposed())this._cacheHintsForFastRestore(p)}));let y,k=new Set;this._sessionDisposables.add(p.onWillDispose(()=>y?.cancel()));let D=this._sessionDisposables.add(new n1),T=new be(async()=>{let K=Date.now(),{store:q,token:Q}=D.reset();try{let te=await Sd.create(this._languageFeaturesService.inlayHintsProvider,p,this._getHintsRanges(),Q);if(T.delay=this._debounceInfo.update(p,Date.now()-K),Q.isCancellationRequested){te.dispose();return}for(let ne of te.provider)if(typeof ne.onDidChangeInlayHints==="function"&&!k.has(ne))k.add(ne),q.add(ne.onDidChangeInlayHints(()=>{if(!T.isScheduled())T.schedule()}));q.add(te),q.add(E(()=>k.clear())),this._updateHintsDecorators(te.ranges,te.items),this._cacheHintsForFastRestore(p)}catch(te){J(te)}},this._debounceInfo.get(p));this._sessionDisposables.add(T),T.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((K)=>{if(K.scrollTopChanged||!T.isScheduled())T.schedule()}));let R=this._sessionDisposables.add(new ie);this._sessionDisposables.add(this._editor.onDidChangeModelContent((K)=>{let q=Math.max(T.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+q},R.value=Kn(()=>T.schedule(0),q),T.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration((K)=>{if(K.hasChanged(159))T.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>T.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){let u=new c,p=u.add(new ys(this._editor)),v=new c;return u.add(v),u.add(p.onMouseMoveOrRelevantKeyDown((y)=>{let[k]=y,D=this._getInlayHintLabelPart(k),T=this._editor.getModel();if(!D||!T){v.clear();return}let R=new Me;v.add(E(()=>R.dispose(!0))),D.item.resolve(R.token),this._activeInlayHintPart=D.part.command||D.part.location?new o1(D,k.hasTriggerModifier):void 0;let K=T.validatePosition(D.item.hint.position).lineNumber,q=new t(K,1,K,T.getLineMaxColumn(K)),Q=this._getInlineHintsForRange(q);this._updateHintsDecorators([q],Q),v.add(E(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([q],Q)}))})),u.add(p.onCancel(()=>v.clear())),u.add(p.onExecute(async(y)=>{let k=this._getInlayHintLabelPart(y);if(k){let D=k.part;if(D.location)this._instaService.invokeFunction(Dm,y,this._editor,D.location);else if(ig.is(D.command))await this._invokeCommand(D.command,k.item)}})),u}_getInlineHintsForRange(u){let p=new Set;for(let v of this._decorationsMetadata.values())if(u.containsRange(v.item.anchor.range))p.add(v.item);return Array.from(p)}_installDblClickGesture(u){return this._editor.onMouseUp(async(p)=>{if(p.event.detail!==2)return;let v=this._getInlayHintLabelPart(p);if(!v)return;if(p.event.preventDefault(),await v.item.resolve(he.None),Ln(v.item.hint.textEdits)){let y=v.item.hint.textEdits.map((k)=>Mt.replace(t.lift(k.range),k.text));this._editor.executeEdits("inlayHint.default",y),u()}})}_installContextMenu(){return this._editor.onContextMenu(async(u)=>{if(!xe(u.event.target))return;let p=this._getInlayHintLabelPart(u);if(p)await this._instaService.invokeFunction(t1,this._editor,u.event.target,p)})}_getInlayHintLabelPart(u){if(u.target.type!==6)return;let p=u.target.detail.injectedText?.options;if(p instanceof nc&&p?.attachedData instanceof Mu)return p.attachedData;return}async _invokeCommand(u,p){try{await this._commandService.executeCommand(u.id,...u.arguments??[])}catch(v){this._notificationService.notify({severity:bl.Error,source:p.provider.displayName,message:v})}}_cacheHintsForFastRestore(u){let p=this._copyInlayHintsWithCurrentAnchor(u);this._inlayHintsCache.set(u,p)}_copyInlayHintsWithCurrentAnchor(u){let p=new Map;for(let[v,y]of this._decorationsMetadata){if(p.has(y.item))continue;let k=u.getDecorationRange(v);if(k){let D=new Em(k,y.item.anchor.direction),T=y.item.with({anchor:D});p.set(y.item,T)}}return Array.from(p.values())}_getHintsRanges(){let p=this._editor.getModel(),v=this._editor.getVisibleRangesPlusViewportAboveBelow(),y=[];for(let k of v.sort(t.compareRangesUsingStarts)){let D=p.validateRange(new t(k.startLineNumber-30,k.startColumn,k.endLineNumber+30,k.endColumn));if(y.length===0||!t.areIntersectingOrTouching(y[y.length-1],D))y.push(D);else y[y.length-1]=t.plusRange(y[y.length-1],D)}return y}_updateHintsDecorators(u,p){let v=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&u.some((Se)=>Se.containsPosition(this._cursorInfo.position))){let{position:Se}=this._cursorInfo;this._cursorInfo=void 0;let Oe=new Map;for(let Le of this._editor.getLineDecorations(Se.lineNumber)??[]){let He=this._decorationsMetadata.get(Le.id);if(Le.range.startColumn>Se.column)continue;let Je=He?.decoration.options[He.item.anchor.direction];if(Je&&Je.attachedData!==Dc._whitespaceData){let tt=Oe.get(He.item)??0;Oe.set(He.item,tt+Je.content.length)}}let Ae=p.filter((Le)=>Le.anchor.range.startLineNumber===Se.lineNumber&&Le.anchor.range.endColumn<=Se.column),We=Array.from(Oe.values()),Ue;while(!0){let Le=Ae.shift(),He=We.shift();if(!He&&!Le)break;if(Le)v.set(Le,He??0),Ue=Le;else if(Ue&&He){let Je=v.get(Ue);Je+=He,Je+=We.reduce((tt,ot)=>tt+ot,0),We.length=0;break}}}let{fontSize:y,fontFamily:k,padding:D,isUniform:T}=this._getLayoutInfo(),R=this._editor.getOption(61),K=[],q=(Se,Oe,Ae,We,Ue,Le)=>{let He={content:Ae,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:Oe.className,cursorStops:We,attachedData:Ue,widthInEm:Le};K.push({item:Se,classNameRef:Oe,decoration:{range:Se.anchor.range,options:{description:"InlayHint",showIfCollapsed:Se.anchor.range.isEmpty(),collapseOnReplaceEdit:!Se.anchor.range.isEmpty(),stickiness:0,[Se.anchor.direction]:this._activeRenderMode===0?He:void 0}}})},Q=(Se,Oe)=>{let Ae=y/3|0,We=Ae/R,Ue=this._ruleFactory.createClassNameRef({width:`${Ae}px`,display:"inline-block"});q(Se,Ue,"",Oe?jr.Right:jr.None,Dc._whitespaceData,We)},te=this._editor.getOption(159).maximumLength,ne="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(ne,k);let re={line:0,totalLen:0};for(let Se=0;Se<p.length;Se++){let Oe=p[Se];if(re.line!==Oe.anchor.range.startLineNumber)re={line:Oe.anchor.range.startLineNumber,totalLen:0};if(te&&re.totalLen>te)continue;if(Oe.hint.paddingLeft)Q(Oe,!1);let Ae=typeof Oe.hint.label==="string"?[{label:Oe.hint.label}]:Oe.hint.label,We=v.get(Oe),Ue=0;for(let Le=0;Le<Ae.length;Le++){let He=Ae[Le],Je=Le===0,tt=Le===Ae.length-1,ot={fontSize:`${y}px`,fontFamily:`var(${ne}), ${lo.fontFamily}`,verticalAlign:T?"baseline":"middle",unicodeBidi:"isolate"};if(Ln(Oe.hint.textEdits))ot.cursor="default";if(this._fillInColors(ot,Oe.hint),(He.command||He.location)&&this._activeInlayHintPart?.part.item===Oe&&this._activeInlayHintPart.part.index===Le){if(ot.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier)ot.color=en(uR),ot.cursor="pointer"}let qe=He.label;re.totalLen+=qe.length;let nt=!1,_t=te!==0?re.totalLen-te:0;if(_t>0)qe=qe.slice(0,-_t)+"…",nt=!0;if(Ue+=qe.length,We!==void 0){let st=Ue-We;if(st>=0)Ue-=st,qe=qe.slice(0,-(1+st))+"…",nt=!0}if(D)if(Je&&(tt||nt))ot.padding=`1px ${Math.max(1,y/4)|0}px`,ot.borderRadius=`${y/4|0}px`;else if(Je)ot.padding=`1px 0 1px ${Math.max(1,y/4)|0}px`,ot.borderRadius=`${y/4|0}px 0 0 ${y/4|0}px`;else if(tt||nt)ot.padding=`1px ${Math.max(1,y/4)|0}px 1px 0`,ot.borderRadius=`0 ${y/4|0}px ${y/4|0}px 0`;else ot.padding="1px 0 1px 0";if(q(Oe,this._ruleFactory.createClassNameRef(ot),DR(qe),tt&&!Oe.hint.paddingRight?jr.Right:jr.None,new Mu(Oe,Le)),nt)break}if(We!==void 0&&Ue<We){let Le=We-Ue;q(Oe,this._ruleFactory.createClassNameRef({})," ".repeat(Le),jr.None)}if(Oe.hint.paddingRight)Q(Oe,!0);if(K.length>Dc._MAX_DECORATORS)break}let ae=[];for(let[Se,Oe]of this._decorationsMetadata){let Ae=this._editor.getModel()?.getDecorationRange(Se);if(Ae&&u.some((We)=>We.containsRange(Ae)))ae.push(Se),Oe.classNameRef.dispose(),this._decorationsMetadata.delete(Se)}let ge=Sr.capture(this._editor);this._editor.changeDecorations((Se)=>{let Oe=Se.deltaDecorations(ae,K.map((Ae)=>Ae.decoration));for(let Ae=0;Ae<Oe.length;Ae++){let We=K[Ae];this._decorationsMetadata.set(Oe[Ae],We)}}),ge.restore(this._editor)}_fillInColors(u,p){if(p.kind===Yv.Parameter)u.backgroundColor=en(vR),u.color=en(bR);else if(p.kind===Yv.Type)u.backgroundColor=en(gR),u.color=en(mR);else u.backgroundColor=en(C0),u.color=en(_0)}_getLayoutInfo(){let u=this._editor.getOption(159),p=u.padding,v=this._editor.getOption(61),y=this._editor.getOption(58),k=u.fontSize;if(!k||k<5||k>v)k=v;let D=u.fontFamily||y;return{fontSize:k,fontFamily:D,padding:p,isUniform:!p&&D===y&&k===v}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(let u of this._decorationsMetadata.values())u.classNameRef.dispose();this._decorationsMetadata.clear()}};Hp=Dc=LR([Ec(1,j),Ec(2,Hi),Ec(3,i1),Ec(4,Ne),Ec(5,ut),Ec(6,L)],Hp);function DR(m){return m.replace(/[ \t]/g," ")}we.registerCommand("_executeInlayHintProvider",async(m,...u)=>{let[p,v]=u;Ie(W.isUri(p)),Ie(t.isIRange(v));let{inlayHintsProvider:y}=m.get(j),k=await m.get(mn).createModelReference(p);try{let D=await Sd.create(y,k.object.textEditorModel,[t.lift(v)],he.None),T=D.items.map((R)=>R.hint);return setTimeout(()=>D.dispose(),0),T}finally{k.dispose()}});var TR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Cd=function(m,u){return function(p,v){u(p,v,m)}};class rw extends pa{constructor(m,u,p,v){super(10,u,m.item.anchor.range,p,v,!0);this.part=m}}var Jm=class m extends ma{constructor(u,p,v,y,k,D,T,R){super(u,p,k,T,v,y,R);this._resolverService=D,this.hoverOrdinal=6}suggestHoverAnchor(u){if(!Hp.get(this._editor))return null;if(u.target.type!==6)return null;let v=u.target.detail.injectedText?.options;if(!(v instanceof nc&&v.attachedData instanceof Mu))return null;return new rw(v.attachedData,this,u.event.posx,u.event.posy)}computeSync(){return[]}computeAsync(u,p,v,y){if(!(u instanceof rw))return Pn.EMPTY;return new Pn(async(k)=>{let{part:D}=u;if(await D.item.resolve(y),y.isCancellationRequested)return;let T;if(typeof D.item.hint.tooltip==="string")T=new yn().appendText(D.item.hint.tooltip);else if(D.item.hint.tooltip)T=D.item.hint.tooltip;if(T)k.emitOne(new Do(this,u.range,[T],!1,0));if(Ln(D.item.hint.textEdits))k.emitOne(new Do(this,u.range,[new yn().appendText(e(1220,"Double-click to insert"))],!1,10001));let R;if(typeof D.part.tooltip==="string")R=new yn().appendText(D.part.tooltip);else if(D.part.tooltip)R=D.part.tooltip;if(R)k.emitOne(new Do(this,u.range,[R],!1,1));if(D.part.location||D.part.command){let q,te=this._editor.getOption(86)==="altKey"?ue?e(1221,"cmd + click"):e(1222,"ctrl + click"):ue?e(1223,"option + click"):e(1224,"alt + click");if(D.part.location&&D.part.command)q=new yn().appendText(e(1225,"Go to Definition ({0}), right click for more",te));else if(D.part.location)q=new yn().appendText(e(1226,"Go to Definition ({0})",te));else if(D.part.command)q=new yn(`[${e(1227,"Execute Command")}](${e1(D.part.command)} "${D.part.command.title}") (${te})`,{isTrusted:!0});if(q)k.emitOne(new Do(this,u.range,[q],!1,1e4))}let K=this._resolveInlayHintLabelPartHover(D,y);for await(let q of K)k.emitOne(q)})}async*_resolveInlayHintLabelPartHover(u,p){if(!u.part.location)return;let{uri:v,range:y}=u.part.location,k=await this._resolverService.createModelReference(v);try{let D=k.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(D))return;for await(let T of Tu(this._languageFeaturesService.hoverProvider,D,new r(y.startLineNumber,y.startColumn),p))if(!hu(T.hover.contents))yield new Do(this,u.item.anchor.range,T.hover.contents,!1,2+T.ordinal)}finally{k.dispose()}}};Jm=TR([Cd(1,vo),Cd(2,ce),Cd(3,vn),Cd(4,X),Cd(5,mn),Cd(6,j),Cd(7,Ne)],Jm);var r1=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Tc=function(m,u){return function(p,v){u(p,v,m)}},sw,aw,Rm=sw=class m extends n{constructor(u,p,v,y,k,D,T){super();let R=p.hoverParts;this._renderedHoverParts=this._register(new dw(u,v,R,y,k,D,T));let K=p.options,q=K.anchor,{showAtPosition:Q,showAtSecondaryPosition:te}=sw.computeHoverPositions(u,q.range,R);this.shouldAppearBeforeContent=R.some((ne)=>ne.isBeforeContent),this.showAtPosition=Q,this.showAtSecondaryPosition=te,this.initialMousePosX=q.initialMousePosX,this.initialMousePosY=q.initialMousePosY,this.shouldFocus=K.shouldFocus,this.source=K.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}get hoverPartsCount(){return this._renderedHoverParts.hoverPartsCount}focusHoverPartWithIndex(u){this._renderedHoverParts.focusHoverPartWithIndex(u)}async updateHoverVerbosityLevel(u,p,v){this._renderedHoverParts.updateHoverVerbosityLevel(u,p,v)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(u,p,v){let y=1;if(u.hasModel()){let q=u._getViewModel(),Q=q.coordinatesConverter,te=Q.convertModelRangeToViewRange(p),ne=q.getLineMinColumn(te.startLineNumber),re=new r(te.startLineNumber,ne);y=Q.convertViewPositionToModelPosition(re).column}let{startLineNumber:k,startColumn:D}=p,T;for(let q of v){let Q=q.range,te=Q.startLineNumber===k,ne=Q.endLineNumber===k;if(te&&ne){let ae=Q.startColumn,ge=Math.min(D,ae);D=Math.max(ge,y)}if(q.forceShowAtRange)T=Q}let R,K;if(T){let q=T.getStartPosition();R=q,K=q}else R=p.getStartPosition(),K=new r(k,D);return{showAtPosition:R,showAtSecondaryPosition:K}}};Rm=sw=r1([Tc(4,ce),Tc(5,vn),Tc(6,Zn)],Rm);class s1{constructor(m,u){this._statusBar=u,m.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var dw=class m extends n{static{aw=this}static{this._DECORATION_OPTIONS=oe.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(u,p,v,y,k,D,T){super();this._hoverService=D,this._clipboardService=T,this._renderedParts=[],this._perPartDisposables=new Map,this._focusedHoverPartIndex=-1,this._context=y,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(p,v,y,k,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(u,v)),this._updateMarkdownAndColorParticipantInfo(p)}_createEditorDecorations(u,p){if(p.length===0)return n.None;let v=p[0].range;for(let k of p){let D=k.range;v=t.plusRange(v,D)}let y=u.createDecorationsCollection();return y.set([{range:v,options:aw._DECORATION_OPTIONS}]),E(()=>{y.clear()})}_renderParts(u,p,v,y,k){let D=new Gm(y,k),T={fragment:this._fragment,statusBar:D,...v},R=new c;R.add(D);for(let q of u){let Q=this._renderHoverPartsForParticipant(p,q,T);R.add(Q);for(let te of Q.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:q,hoverPart:te.hoverPart,hoverElement:te.hoverElement})}let K=this._renderStatusBar(this._fragment,D);if(K)R.add(K),this._renderedParts.push({type:"statusBar",hoverElement:K.hoverElement,actions:K.actions});return R}_renderHoverPartsForParticipant(u,p,v){let y=u.filter((D)=>D.owner===p);if(!(y.length>0))return new Jo([]);return p.renderHoverParts(v,y)}_renderStatusBar(u,p){if(!p.hasContent)return;return new s1(u,p)}_registerListenersOnRenderedParts(){return this._renderedParts.forEach((u,p)=>{this._createListenersForPart(p,u)}),E(()=>{for(let u of this._perPartDisposables.values())u.dispose();this._perPartDisposables.clear()})}_createListenersForPart(u,p){let v=new c,y=p.hoverElement;if(y.tabIndex=0,v.add(l(y,x.FOCUS_IN,(k)=>{k.stopPropagation(),this._focusedHoverPartIndex=u})),v.add(l(y,x.FOCUS_OUT,(k)=>{k.stopPropagation(),this._focusedHoverPartIndex=-1})),p.type==="hoverPart"&&!(p.hoverPart instanceof kc)&&!p.participant.hideCopyButton)v.add(new Lm(y,()=>p.participant.getAccessibleContent(p.hoverPart),this._clipboardService,this._hoverService));this._perPartDisposables.set(u,v)}_updateMarkdownAndColorParticipantInfo(u){let p=u.find((v)=>v instanceof ma&&!(v instanceof Jm));if(p)this._markdownHoverParticipant=p;this._colorHoverParticipant=u.find((v)=>v instanceof Km)}focusHoverPartWithIndex(u){if(u<0||u>=this._renderedParts.length)return;this._renderedParts[u].hoverElement.focus()}async updateHoverVerbosityLevel(u,p,v){if(!this._markdownHoverParticipant)return;let y;if(p>=0)y={start:p,endExclusive:p+1};else y=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let k=y.start;k<y.endExclusive;k++){let D=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,k);if(D===void 0)continue;let T=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(u,D);if(!T)continue;let R=this._perPartDisposables.get(k);if(R)R.dispose(),this._perPartDisposables.delete(k);this._renderedParts[k]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:T.hoverPart,hoverElement:T.hoverElement},this._createListenersForPart(k,this._renderedParts[k])}if(v)if(p>=0)this.focusHoverPartWithIndex(p);else this._context.focus();this._context.onContentsChanged()}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(u,p){let v=this._renderedParts[p];if(!v||v.type!=="hoverPart")return;if(v.participant!==u)return;let k=this._renderedParts.findIndex((D)=>D.type==="hoverPart"&&D.participant===u);if(k===-1)throw new P;return p-k}_findRangeOfMarkdownHoverParts(u){let p=this._renderedParts.slice(),v=p.findIndex((D)=>D.type==="hoverPart"&&D.participant===u),y=p.reverse().findIndex((D)=>D.type==="hoverPart"&&D.participant===u),k=y>=0?p.length-y:y;return{start:v,endExclusive:k+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}};dw=aw=r1([Tc(4,ce),Tc(5,vn),Tc(6,Zn)],dw);var AR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Nm=function(m,u){return function(p,v){u(p,v,m)}},Mm=class m extends n{constructor(u,p,v,y,k){super();this._editor=u,this._instantiationService=p,this._keybindingService=v,this._hoverService=y,this._clipboardService=k,this._currentResult=null,this._renderedContentHover=this._register(new ie),this._onContentsChanged=this._register(new i),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(xm,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new ku(this._editor,new Du(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){let u=[];for(let p of ya.getAll()){let v=this._instantiationService.createInstance(p,this._editor);u.push(v)}return u.sort((p,v)=>p.hoverOrdinal-v.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach((p)=>p.handleResize?.())})),this._register(this._contentHoverWidget.onDidScroll((p)=>{this._participants.forEach((v)=>v.handleScroll?.(p))})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach((p)=>p.handleContentsChanged?.())})),u}_registerListeners(){this._register(this._hoverOperation.onResult((p)=>{let v=p.hasLoadingMessage?this._addLoadingMessage(p):p.value;this._withResult(new Im(v,p.isComplete,p.options))}));let u=this._contentHoverWidget.getDomNode();this._register(ft(u,"keydown",(p)=>{if(p.equals(9))this.hide()})),this._register(ft(u,"mouseleave",(p)=>{this._onMouseLeave(p)})),this._register($t.onDidChange(()=>{if(this._contentHoverWidget.position&&this._currentResult)this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(u,p,v,y,k){if(!(this._contentHoverWidget.position&&this._currentResult)){if(u)return this._startHoverOperationIfNecessary(u,p,v,y,!1),!0;return!1}let T=this._editor.getOption(69).sticky,R=k&&this._contentHoverWidget.isMouseGettingCloser(k.event.posx,k.event.posy);if(T&&R){if(u)this._startHoverOperationIfNecessary(u,p,v,y,!0);return!0}if(!u)return this._setCurrentResult(null),!1;if(this._currentResult&&this._currentResult.options.anchor.equals(u))return!0;if(!(this._currentResult&&u.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)))return this._setCurrentResult(null),this._startHoverOperationIfNecessary(u,p,v,y,!1),!0;if(this._currentResult)this._setCurrentResult(this._currentResult.filter(u));return this._startHoverOperationIfNecessary(u,p,v,y,!1),!0}_startHoverOperationIfNecessary(u,p,v,y,k){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(u))return;this._hoverOperation.cancel();let T={anchor:u,source:v,shouldFocus:y,insistOnKeepingHoverVisible:k};this._hoverOperation.start(p,T)}_setCurrentResult(u){let p=u;if(this._currentResult===p)return;if(p&&p.hoverParts.length===0)p=null;if(this._currentResult=p,this._currentResult)this._showHover(this._currentResult);else this._hideHover()}_addLoadingMessage(u){for(let p of this._participants){if(!p.createLoadingMessage)continue;let v=p.createLoadingMessage(u.options.anchor);if(!v)continue;return u.value.slice(0).concat([v])}return u.value}_withResult(u){if(!(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete))this._setCurrentResult(u);if(!u.isComplete)return;let y=u.hoverParts.length===0,k=u.options.insistOnKeepingHoverVisible;if(y&&k)return;this._setCurrentResult(u)}_showHover(u){let p=this._getHoverContext();if(this._renderedContentHover.value=new Rm(this._editor,u,this._participants,p,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren)this._contentHoverWidget.show(this._renderedContentHover.value);else this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach((u)=>u.handleHide?.())}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:(k)=>{this._contentHoverWidget.setMinimumDimensions(k)},focus:()=>this.focus()}}showsOrWillShow(u){if(this._contentHoverWidget.isResizing)return!0;if(this._isMouseOnCodeActionWidget(u))return!0;let v=this._findHoverAnchorCandidates(u);if(!(v.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,u);let k=v[0];return this._startShowingOrUpdateHover(k,0,0,!1,u)}_findHoverAnchorCandidates(u){let p=[];for(let y of this._participants){if(!y.suggestHoverAnchor)continue;let k=y.suggestHoverAnchor(u);if(!k)continue;p.push(k)}let v=u.target;switch(v.type){case 6:{p.push(new Eu(0,v.range,u.event.posx,u.event.posy));break}case 7:{let y=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!v.detail.isAfterLines&&typeof v.detail.horizontalDistanceToText==="number"&&v.detail.horizontalDistanceToText<y))break;p.push(new Eu(0,v.range,u.event.posx,u.event.posy));break}}return p.sort((y,k)=>k.priority-y.priority),p}_isMouseOnCodeActionWidget(u){let p=u.event.browserEvent.target;if(p instanceof Element&&!!p.closest(".action-widget"))return!0;return!1}_onMouseLeave(u){let p=this._editor.getDomNode();if(!p||!ga(p,u.x,u.y))this.hide()}startShowingAtRange(u,p,v,y){this._startShowingOrUpdateHover(new Eu(0,u,void 0,void 0),p,v,y,null)}async updateHoverVerbosityLevel(u,p,v){this._renderedContentHover.value?.updateHoverVerbosityLevel(u,p,v)}focusedHoverPartIndex(){return this._renderedContentHover.value?.focusedHoverPartIndex??-1}containsNode(u){return u?this._contentHoverWidget.getDomNode().contains(u):!1}focus(){if(this._renderedContentHover.value?.hoverPartsCount===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(u){this._renderedContentHover.value?.focusHoverPartWithIndex(u)}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){return this._renderedContentHover.value?.isColorPickerVisible()??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};Mm=AR([Nm(1,L),Nm(2,ce),Nm(3,vn),Nm(4,Zn)],Mm);function i0(m){let u=m.target;return!!u&&u.type===6&&u.detail.injectedText?.options.attachedData===Bv}var HR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},cw=function(m,u){return function(p,v){u(p,v,m)}},lw,so=class m extends n{static{lw=this}static{this.ID="editor.contrib.contentHover"}constructor(u,p,v,y){super();this._editor=u,this._instantiationService=v,this._keybindingService=y,this._onHoverContentsChanged=this._register(new i),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new c,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new be(()=>{if(this._mouseMoveEvent)this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(p.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(p.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((k)=>{if(k.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}static get(u){return u.getContribution(lw.ID)}_hookListeners(){let u=this._editor.getOption(69);if(this._hoverSettings={enabled:u.enabled,sticky:u.sticky,hidingDelay:u.hidingDelay},u.enabled==="off")this._cancelSchedulerAndHide();this._listenersStore.add(this._editor.onMouseDown((p)=>this._onEditorMouseDown(p))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((p)=>this._onEditorMouseMove(p))),this._listenersStore.add(this._editor.onKeyDown((p)=>this._onKeyDown(p))),this._listenersStore.add(this._editor.onMouseLeave((p)=>this._onEditorMouseLeave(p))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((p)=>this._onEditorScrollChanged(p)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(u){if(this._ignoreMouseEvents)return;if(u.scrollTopChanged||u.scrollLeftChanged)this.hideContentHover()}_onEditorMouseDown(u){if(this._ignoreMouseEvents)return;if(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(u))return;this.hideContentHover()}_shouldKeepHoverWidgetVisible(u){return this._isMouseOnContentHoverWidget(u)||this._isContentWidgetResizing()||i0(u)}_isMouseOnContentHoverWidget(u){if(!this._contentWidget||!this._contentWidget.getDomNode().isConnected)return!1;return ga(this._contentWidget.getDomNode(),u.event.posx,u.event.posy)}_onEditorMouseUp(){if(this._ignoreMouseEvents)return;this._isMouseDown=!1}_onEditorMouseLeave(u){if(this._ignoreMouseEvents)return;if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(u))return;this.hideContentHover()}_shouldKeepCurrentHover(u){let p=this._contentWidget;if(!p)return!1;let v=this._hoverSettings.sticky,y=(q,Q)=>{let te=this._isMouseOnContentHoverWidget(q);return Q&&te},k=(q)=>{let Q=p.isColorPickerVisible,te=this._isMouseOnContentHoverWidget(q),ne=Q&&te,re=Q&&this._isMouseDown;return ne||re},D=(q,Q)=>{let te=q.event.browserEvent.view;if(!te)return!1;return Q&&p.containsNode(te.document.activeElement)&&!te.getSelection()?.isCollapsed},{isFocused:T,isResizing:R}=p,K=this._hoverSettings.sticky&&p.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||T||R||K||y(u,v)||k(u)||D(u,v)}_onEditorMouseMove(u){if(this._ignoreMouseEvents)return;if(this._isMouseDown&&!this._shouldKeepHoverWidgetVisible(u)){this._cancelSchedulerAndHide();return}if(this._mouseMoveEvent=u,this._shouldKeepCurrentHover(u)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){if(!this._reactToEditorMouseMoveRunner.isScheduled())this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(u)}_shouldRescheduleHoverComputation(){let u=this._hoverSettings.hidingDelay;return(this._contentWidget?.isVisible??!1)&&this._hoverSettings.sticky&&u>0}_reactToEditorMouseMove(u){if(Sm(this._hoverSettings.enabled,this._editor.getOption(86),u)){if(this._getOrCreateContentWidget().showsOrWillShow(u))return}this.hideContentHover()}_onKeyDown(u){if(this._ignoreMouseEvents||!this._contentWidget)return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&Lu(this._editor.getOption(86),u)&&this._mouseMoveEvent){if(!this._contentWidget.isVisible)this._contentWidget.showsOrWillShow(this._mouseMoveEvent);return}let p=this._isPotentialKeyboardShortcut(u),v=Yd(u.keyCode);if(p||v)return;if(this._contentWidget.isFocused&&u.keyCode===2)return;this.hideContentHover()}_isPotentialKeyboardShortcut(u){if(!this._editor.hasModel()||!this._contentWidget)return!1;let p=this._keybindingService.softDispatch(u,this._editor.getDomNode()),v=p.kind===1,y=p.kind===2&&(p.commandId===rm||p.commandId===hd||p.commandId===ud)&&this._contentWidget.isVisible;return v||y}hideContentHover(){if(Rs.dropDownVisible)return;this._contentWidget?.hide()}_getOrCreateContentWidget(){if(!this._contentWidget)this._contentWidget=this._instantiationService.createInstance(Mm,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()));return this._contentWidget}showContentHover(u,p,v,y){this._getOrCreateContentWidget().startShowingAtRange(u,p,v,y)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(u,p,v){this._getOrCreateContentWidget().updateHoverVerbosityLevel(u,p,v)}focus(){this._contentWidget?.focus()}scrollUp(){this._contentWidget?.scrollUp()}scrollDown(){this._contentWidget?.scrollDown()}scrollLeft(){this._contentWidget?.scrollLeft()}scrollRight(){this._contentWidget?.scrollRight()}pageUp(){this._contentWidget?.pageUp()}pageDown(){this._contentWidget?.pageDown()}goToTop(){this._contentWidget?.goToTop()}goToBottom(){this._contentWidget?.goToBottom()}get isColorPickerVisible(){return this._contentWidget?.isColorPickerVisible}get isHoverVisible(){return this._contentWidget?.isVisible}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._contentWidget?.dispose()}};so=lw=HR([cw(1,Dn),cw(2,L),cw(3,ce)],so);var br;(function(m){m.NoAutoFocus="noAutoFocus",m.FocusIfVisible="focusIfVisible",m.AutoFocusImmediately="autoFocusImmediately"})(br||(br={}));class hw extends z{constructor(){super({id:rm,label:h(1165,"Show or Focus Hover"),metadata:{description:h(1166,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[br.NoAutoFocus,br.FocusIfVisible,br.AutoFocusImmediately],enumDescriptions:[e(1162,"The hover will not automatically take focus."),e(1163,"The hover will take focus only if it is already visible."),e(1164,"The hover will automatically take focus when it appears.")],default:br.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:o.editorTextFocus,primary:Jt(2089,2087),weight:100}})}run(m,u,p){if(!u.hasModel())return;let v=so.get(u);if(!v)return;let y=p?.focus,k=br.FocusIfVisible;if(Object.values(br).includes(y))k=y;else if(typeof y==="boolean"&&y)k=br.AutoFocusImmediately;let D=(R)=>{let K=u.getPosition(),q=new t(K.lineNumber,K.column,K.lineNumber,K.column);v.showContentHover(q,1,2,R)},T=u.getOption(2)===2;if(v.isHoverVisible)if(k!==br.NoAutoFocus)v.focus();else D(T);else D(T||k===br.AutoFocusImmediately)}}class uw extends z{constructor(){super({id:JL,label:h(1167,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:h(1168,"Show the definition preview hover in the editor.")}})}run(m,u){let p=so.get(u);if(!p)return;let v=u.getPosition();if(!v)return;let y=new t(v.lineNumber,v.column,v.lineNumber,v.column),k=xc.get(u);if(!k)return;k.startFindDefinitionFromCursor(v).then(()=>{p.showContentHover(y,1,2,!0)})}}class gw extends z{constructor(){super({id:QL,label:h(1169,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(m,u){so.get(u)?.hideContentHover()}}class pw extends z{constructor(){super({id:ek,label:h(1170,"Scroll Up Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:16,weight:100},metadata:{description:h(1171,"Scroll up the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.scrollUp()}}class mw extends z{constructor(){super({id:tk,label:h(1172,"Scroll Down Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:18,weight:100},metadata:{description:h(1173,"Scroll down the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.scrollDown()}}class fw extends z{constructor(){super({id:ik,label:h(1174,"Scroll Left Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:15,weight:100},metadata:{description:h(1175,"Scroll left the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.scrollLeft()}}class _w extends z{constructor(){super({id:ok,label:h(1176,"Scroll Right Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:17,weight:100},metadata:{description:h(1177,"Scroll right the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.scrollRight()}}class bw extends z{constructor(){super({id:nk,label:h(1178,"Page Up Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:h(1179,"Page up the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.pageUp()}}class vw extends z{constructor(){super({id:rk,label:h(1180,"Page Down Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:h(1181,"Page down the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.pageDown()}}class ww extends z{constructor(){super({id:sk,label:h(1182,"Go To Top Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:h(1183,"Go to the top of the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.goToTop()}}class Sw extends z{constructor(){super({id:ak,label:h(1184,"Go To Bottom Hover"),precondition:o.hoverFocused,kbOpts:{kbExpr:o.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:h(1185,"Go to the bottom of the editor hover.")}})}run(m,u){let p=so.get(u);if(!p)return;p.goToBottom()}}class Cw extends z{constructor(){super({id:hd,label:dk,alias:"Increase Hover Verbosity Level",precondition:o.hoverVisible})}run(m,u,p){let v=so.get(u);if(!v)return;let y=p?.index!==void 0?p.index:v.focusedHoverPartIndex();v.updateHoverVerbosityLevel(Nr.Increase,y,p?.focus)}}class yw extends z{constructor(){super({id:ud,label:ck,alias:"Decrease Hover Verbosity Level",precondition:o.hoverVisible})}run(m,u,p){let v=so.get(u);if(!v)return;let y=p?.index!==void 0?p.index:v.focusedHoverPartIndex();so.get(u)?.updateHoverVerbosityLevel(Nr.Decrease,y,p?.focus)}}var WR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Ou=function(m,u){return function(p,v){u(p,v,m)}},Tn=g;class d1{constructor(m,u,p){this.owner=m,this.range=u,this.marker=p}isValidForHoverAnchor(m){return m.type===1&&this.range.startColumn<=m.range.startColumn&&this.range.endColumn>=m.range.endColumn}}var a1={type:1,filter:{include:Ot.QuickFix},triggerAction:ji.QuickFixHover},Om=class m{constructor(u,p,v,y,k,D){this._editor=u,this._markerDecorationsService=p,this._openerService=v,this._languageFeaturesService=y,this._menuService=k,this._contextKeyService=D,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(u,p){if(!this._editor.hasModel()||u.type!==1&&!u.supportsMarkerHover)return[];let v=this._editor.getModel(),y=u.range;if(!v.isValidRange(u.range))return[];let k=y.startLineNumber,D=v.getLineMaxColumn(k),T=[];for(let R of p){let K=R.range.startLineNumber===k?R.range.startColumn:1,q=R.range.endLineNumber===k?R.range.endColumn:D,Q=this._markerDecorationsService.getMarker(v.uri,R);if(!Q)continue;let te=new t(u.range.startLineNumber,K,u.range.startLineNumber,q);T.push(new d1(this,te,Q))}return T}renderHoverParts(u,p){if(!p.length)return new Jo([]);let v=[];p.forEach((D)=>{let T=this._renderMarkerHover(D);u.fragment.appendChild(T.hoverElement),v.push(T)});let y=p.length===1?p[0]:p.sort((D,T)=>Ut.compare(D.marker.severity,T.marker.severity))[0],k=this._renderMarkerStatusbar(u,y);return new Jo(v,k)}getAccessibleContent(u){let{marker:p}=u,v=Ln(p.relatedInformation)?p.relatedInformation.map((y)=>`${pi(y.resource)}(${y.startLineNumber}, ${y.startColumn}): ${y.message}`).join(`
32
- `):void 0;return[p.message,v].filter((y)=>!!y).join(`
33
- `)}_renderMarkerHover(u){let p=new c,v=Tn("div.hover-row"),y=w(v,Tn("div.marker.hover-contents")),{source:k,message:D,code:T,relatedInformation:R}=u.marker;this._editor.applyFontInfo(y);let K=w(y,Tn("span"));if(K.style.whiteSpace="pre-wrap",K.innerText=D,k||T)if(T&&typeof T!=="string"){let Q=Tn("span");if(k){let ae=w(Q,Tn("span"));ae.innerText=k}let te=w(Q,Tn("a.code-link"));te.setAttribute("href",T.target.toString(!0)),p.add(l(te,"click",(ae)=>{this._openerService.open(T.target),ae.preventDefault(),ae.stopPropagation()}));let ne=w(te,Tn("span"));ne.innerText=T.value;let re=w(y,Q);re.style.opacity="0.6",re.style.paddingLeft="6px"}else{let Q=w(y,Tn("span"));Q.style.opacity="0.6",Q.style.paddingLeft="6px",Q.innerText=k&&T?`${k}(${T})`:k?k:`(${T})`}if(Ln(R))for(let{message:Q,resource:te,startLineNumber:ne,startColumn:re}of R){let ae=w(y,Tn("div"));ae.style.marginTop="8px";let ge=w(ae,Tn("a"));ge.innerText=`${pi(te)}(${ne}, ${re}): `,ge.style.cursor="pointer",p.add(l(ge,"click",(Oe)=>{if(Oe.stopPropagation(),Oe.preventDefault(),this._openerService){let Ae={selection:{startLineNumber:ne,startColumn:re}};this._openerService.open(te,{fromUserGesture:!0,editorOptions:Ae}).catch(J)}}));let Se=w(ae,Tn("span"));Se.innerText=Q,this._editor.applyFontInfo(Se)}return{hoverPart:u,hoverElement:v,dispose:()=>p.dispose()}}_renderMarkerStatusbar(u,p){let v=new c;if(p.marker.severity===Ut.Error||p.marker.severity===Ut.Warning||p.marker.severity===Ut.Info){let D=sa.get(this._editor);if(D)u.statusBar.addAction({label:e(1195,"View Problem"),commandId:vs.ID,run:()=>{u.hide(),D.showAtMarker(p.marker),this._editor.focus()}})}let y=[];for(let[,D]of this._menuService.getMenuActions(a.MarkerHoverStatusBar,this._contextKeyService))for(let T of D)if(T instanceof Si&&T.enabled)y.push(T);let k=()=>{for(let D of y)u.statusBar.addAction({label:D.label,commandId:D.id,iconClass:D.class,run:()=>{u.hide(),this._editor.setSelection(t.lift(p.range)),D.run()}})};if(!this._editor.getOption(104)){let D=u.statusBar.append(Tn("div"));if(this.recentMarkerCodeActionsInfo)if(Oy.makeKey(this.recentMarkerCodeActionsInfo.marker)===Oy.makeKey(p.marker)){if(!this.recentMarkerCodeActionsInfo.hasCodeActions){if(y.length===0)D.textContent=e(1196,"No quick fixes available")}}else this.recentMarkerCodeActionsInfo=void 0;let T=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?n.None:Kn(()=>D.textContent=e(1197,"Checking for quick fixes..."),200,v);if(!D.textContent)D.textContent=String.fromCharCode(160);let R=this.getCodeActions(p.marker);v.add(E(()=>R.cancel())),R.then((K)=>{if(T.dispose(),this.recentMarkerCodeActionsInfo={marker:p.marker,hasCodeActions:K.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){if(K.dispose(),y.length===0)D.textContent=e(1198,"No quick fixes available");else D.style.display="none";k();return}D.style.display="none";let q=!1;v.add(E(()=>{if(!q)K.dispose()})),u.statusBar.addAction({label:e(1199,"Quick Fix..."),commandId:da,run:(te)=>{q=!0;let ne=Jr.get(this._editor),re=mt(te);ne?.showCodeActions(a1,K,{x:re.left,y:re.top,width:re.width,height:re.height})}});let Q=K.validActions.find((te)=>te.action.isAI);if(Q)u.statusBar.addAction({label:Q.action.title,commandId:Q.action.command?.id??"",iconClass:G.asClassName(b.sparkle),run:()=>{Jr.get(this._editor)?.applyCodeAction(Q,!1,!1,Gr.FromProblemsHover)}});else k();u.onContentsChanged()},J)}else k();return v}getCodeActions(u){return Pt((p)=>ca(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new t(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn),a1,na.None,p))}};Om=WR([Ou(1,pg),Ou(2,Eo),Ou(3,j),Ou(4,hi),Ou(5,V)],Om);class xw{constructor(m){this._editor=m}computeSync(m){let u=(k)=>({value:k}),p=this._editor.getLineDecorations(m.lineNumber),v=[],y=m.laneOrLine==="lineNo";if(!p)return v;for(let k of p){let D=k.options.glyphMargin?.position??_r.Center;if(!y&&D!==m.laneOrLine)continue;let T=y?k.options.lineNumberHoverMessage:k.options.glyphMarginHoverMessage;if(!T||hu(T))continue;v.push(...Zm(T).map(u))}return v}}var BR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},VR=function(m,u){return function(p,v){u(p,v,m)}},Iw,c1=g,Pm=class m extends n{static{Iw=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(u,p){super();this._markdownRendererService=p,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new c),this._editor=u,this._isVisible=!1,this._messages=[],this._hover=this._register(new pf(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new ku(this._editor,new xw(this._editor))),this._register(this._hoverOperation.onResult((v)=>this._withResult(v))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(59))this._updateFont()})),this._register(ft(this._hover.containerDomNode,"mouseleave",(v)=>{this._onMouseLeave(v)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Iw.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((p)=>this._editor.applyFontInfo(p))}_onModelDecorationsChanged(){if(this._isVisible&&this._hoverComputerOptions)this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions)}showsOrWillShow(u){let p=u.target;if(p.type===2&&p.detail.glyphMarginLane)return this._startShowingAt(p.position.lineNumber,p.detail.glyphMarginLane),!0;if(p.type===3)return this._startShowingAt(p.position.lineNumber,"lineNo"),!0;return!1}_startShowingAt(u,p){if(this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===u&&this._hoverComputerOptions.laneOrLine===p)return;this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:u,laneOrLine:p},this._hoverOperation.start(0,this._hoverComputerOptions)}hide(){if(this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),!this._isVisible)return;this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible)}_withResult(u){if(this._messages=u.value,this._messages.length>0)this._renderMessages(u.options.lineNumber,u.options.laneOrLine,this._messages);else this.hide()}_renderMessages(u,p,v){this._renderDisposeables.clear();let y=document.createDocumentFragment();for(let k of v){let D=c1("div.hover-row.markdown-hover"),T=w(D,c1("div.hover-contents")),R=this._renderDisposeables.add(this._markdownRendererService.render(k.value,{context:this._editor}));T.appendChild(R.element),y.appendChild(D)}this._updateContents(y),this._showAt(u,p)}_updateContents(u){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(u),this._updateFont()}_showAt(u,p){if(!this._isVisible)this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible);let v=this._editor.getLayoutInfo(),y=this._editor.getTopForLineNumber(u),k=this._editor.getScrollTop(),D=this._editor.getOption(75),T=this._hover.containerDomNode.clientHeight,R=y-k-(T-D)/2,K=v.glyphMarginLeft+v.glyphMarginWidth+(p==="lineNo"?v.lineNumbersWidth:0),Q=v.height-T,te=Math.max(0,Math.min(Math.round(R),Q));if(this._editor.getOption(51)){let re=this._editor.getDomNode();if(re){let ae=mt(re);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left=`${ae.left+K}px`,this._hover.containerDomNode.style.top=`${ae.top+te}px`}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left=`${K}px`,this._hover.containerDomNode.style.top=`${te}px`;this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(u){let p=this._editor.getDomNode();if(!p||!ga(p,u.x,u.y))this.hide()}};Pm=Iw=BR([VR(1,vo)],Pm);var zR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},KR=function(m,u){return function(p,v){u(p,v,m)}},Pu=class m extends n{static{this.ID="editor.contrib.marginHover"}constructor(u,p){super();this._editor=u,this._instantiationService=p,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new c,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new be(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((v)=>{if(v.hasChanged(69))this._unhookListeners(),this._hookListeners()}))}_hookListeners(){let u=this._editor.getOption(69);if(this._hoverSettings={enabled:u.enabled,sticky:u.sticky,hidingDelay:u.hidingDelay},u.enabled!=="off")this._listenersStore.add(this._editor.onMouseDown((p)=>this._onEditorMouseDown(p))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove((p)=>this._onEditorMouseMove(p))),this._listenersStore.add(this._editor.onKeyDown((p)=>this._onKeyDown(p)));else this._listenersStore.add(this._editor.onMouseMove((p)=>this._onEditorMouseMove(p))),this._listenersStore.add(this._editor.onKeyDown((p)=>this._onKeyDown(p)));this._listenersStore.add(this._editor.onMouseLeave((p)=>this._onEditorMouseLeave(p))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange((p)=>this._onEditorScrollChanged(p)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(u){if(u.scrollTopChanged||u.scrollLeftChanged)this.hideGlyphHover()}_onEditorMouseDown(u){if(this._hoverState.mouseDown=!0,this._isMouseOnGlyphHoverWidget(u))return;this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(u){let p=this._glyphWidget?.getDomNode();if(p)return ga(p,u.event.posx,u.event.posy);return!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(u){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(u))return;this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(u){let p=this._hoverSettings.sticky,v=this._isMouseOnGlyphHoverWidget(u);return p&&v}_onEditorMouseMove(u){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=u,this._shouldNotRecomputeCurrentHoverWidget(u)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(u)}_reactToEditorMouseMove(u){if(!u)return;if(!Sm(this._hoverSettings.enabled,this._editor.getOption(86),u)){this.hideGlyphHover();return}if(this._tryShowHoverWidget(u))return;this.hideGlyphHover()}_tryShowHoverWidget(u){return this._getOrCreateGlyphWidget().showsOrWillShow(u)}_onKeyDown(u){if(!this._editor.hasModel())return;if(this._hoverSettings.enabled==="onKeyboardModifier"&&Lu(this._editor.getOption(86),u)&&this._mouseMoveEvent){this._tryShowHoverWidget(this._mouseMoveEvent);return}if(Yd(u.keyCode))return;this.hideGlyphHover()}hideGlyphHover(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){if(!this._glyphWidget)this._glyphWidget=this._instantiationService.createInstance(Pm,this._editor);return this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};Pu=zR([KR(1,L)],Pu);var Rc=new class m{constructor(){this._implementations=[]}register(u){return this._implementations.push(u),{dispose:()=>{let p=this._implementations.indexOf(u);if(p!==-1)this._implementations.splice(p,1)}}}getImplementations(){return this._implementations}};class Lw{}class kw{}class Ew{}le(so.ID,so,2);le(Pu.ID,Pu,2);I(hw);I(uw);I(gw);I(pw);I(mw);I(fw);I(_w);I(bw);I(vw);I(ww);I(Sw);I(Cw);I(yw);ya.register(ma);ya.register(Om);we.registerCommand(_u,(m)=>{m.get(X).updateValue("editor.hover.showLongLineWarning",!1)});oi((m,u)=>{let p=m.getColor(Lh);if(p)u.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${p.transparent(0.5)}; }`),u.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${p.transparent(0.5)}; }`),u.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${p.transparent(0.5)}; }`)});Rc.register(new Lw);Rc.register(new kw);Rc.register(new Ew);class l1{constructor(m,u){this._link=m,this._provider=u}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(m){if(this._link.url)return this._link.url;if(typeof this._provider.resolveLink==="function")return Promise.resolve(this._provider.resolveLink(this._link,m)).then((u)=>{if(this._link=u||this._link,this._link.url)return this.resolve(m);return Promise.reject(Error("missing"))});return Promise.reject(Error("missing"))}}class Au{static{this.Empty=new Au([])}constructor(m){this._disposables=new c;let u=[];for(let[p,v]of m){let y=p.links.map((k)=>new l1(k,v));if(u=Au._union(u,y),xs(p))this._disposables??=new c,this._disposables.add(p)}this.links=u}dispose(){this._disposables?.dispose(),this.links.length=0}static _union(m,u){let p=[],v,y,k,D;for(v=0,k=0,y=m.length,D=u.length;v<y&&k<D;){let T=m[v],R=u[k];if(t.areIntersectingOrTouching(T.range,R.range)){v++;continue}if(t.compareRangesUsingStarts(T.range,R.range)<0)p.push(T),v++;else p.push(R),k++}for(;v<y;v++)p.push(m[v]);for(;k<D;k++)p.push(u[k]);return p}}async function Dw(m,u,p){let v=[],y=m.ordered(u).reverse().map(async(D,T)=>{try{let R=await D.provideLinks(u,p);if(R)v[T]=[R,D]}catch(R){dt(R)}});await Promise.all(y);let k=new Au(Xi(v));if(p.isCancellationRequested)k.dispose(),k=Au.Empty;return k}we.registerCommand("_executeLinkProvider",async(m,...u)=>{let[p,v]=u;if(Ie(p instanceof W),typeof v!=="number")v=0;let{linkProvider:y}=m.get(j),k=m.get(gt).getModel(p);if(!k)return[];let D=await Dw(y,k,he.None);if(!D)return[];for(let R=0;R<Math.min(v,D.links.length);R++)await D.links[R].resolve(he.None);let T=D.links.slice(0);return D.dispose(),T});var UR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Am=function(m,u){return function(p,v){u(p,v,m)}},Tw,Fu=class m extends n{static{Tw=this}static{this.ID="editor.linkDetector"}static get(u){return u.getContribution(Tw.ID)}constructor(u,p,v,y,k){super();this.editor=u,this.openerService=p,this.notificationService=v,this.languageFeaturesService=y,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=k.for(this.providers,"Links",{min:1000,max:4000}),this.computeLinks=this._register(new be(()=>this.computeLinksNow(),1000)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;let D=this._register(new ys(u));this._register(D.onMouseMoveOrRelevantKeyDown(([T,R])=>{this._onEditorMouseMove(T,R)})),this._register(D.onExecute((T)=>{this.onEditorMouseUp(T)})),this._register(D.onCancel((T)=>{this.cleanUpActiveLinkDecoration()})),this._register(u.onDidChangeConfiguration((T)=>{if(!T.hasChanged(79))return;this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0)})),this._register(u.onDidChangeModelContent((T)=>{if(!this.editor.hasModel())return;this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(u.onDidChangeModel((T)=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(u.onDidChangeModelLanguage((T)=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange((T)=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))return;let u=this.editor.getModel();if(u.isTooLargeForSyncing())return;if(!this.providers.has(u))return;if(this.activeLinksList)this.activeLinksList.dispose(),this.activeLinksList=null;this.computePromise=Pt((p)=>Dw(this.providers,u,p));try{let p=new Kt(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(u,p.elapsed()),u.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(p){J(p)}finally{this.computePromise=null}}updateDecorations(u){let p=this.editor.getOption(86)==="altKey",v=[],y=Object.keys(this.currentOccurrences);for(let D of y){let T=this.currentOccurrences[D];v.push(T.decorationId)}let k=[];if(u)for(let D of u)k.push(zc.decoration(D,p));this.editor.changeDecorations((D)=>{let T=D.deltaDecorations(v,k);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let R=0,K=T.length;R<K;R++){let q=new zc(u[R],T[R]);this.currentOccurrences[q.decorationId]=q}})}_onEditorMouseMove(u,p){let v=this.editor.getOption(86)==="altKey";if(this.isEnabled(u,p)){this.cleanUpActiveLinkDecoration();let y=this.getLinkOccurrence(u.target.position);if(y)this.editor.changeDecorations((k)=>{y.activate(k,v),this.activeLinkDecorationId=y.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){let u=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){let p=this.currentOccurrences[this.activeLinkDecorationId];if(p)this.editor.changeDecorations((v)=>{p.deactivate(v,u)});this.activeLinkDecorationId=null}}onEditorMouseUp(u){if(!this.isEnabled(u))return;let p=this.getLinkOccurrence(u.target.position);if(!p)return;this.openLinkOccurrence(p,u.hasSideBySideModifier,!0)}openLinkOccurrence(u,p,v=!1){if(!this.openerService)return;let{link:y}=u;y.resolve(he.None).then((k)=>{if(typeof k==="string"&&this.editor.hasModel()){let D=this.editor.getModel().uri;if(D.scheme===ee.file&&k.startsWith(`${ee.file}:`)){let T=W.parse(k);if(T.scheme===ee.file){let R=Yl(T),K=null;if(R.startsWith("/./")||R.startsWith("\\.\\"))K=`.${R.substr(1)}`;else if(R.startsWith("//./")||R.startsWith("\\\\.\\"))K=`.${R.substr(2)}`;if(K)k=g0(D,K)}}}return this.openerService.open(k,{openToSide:p,fromUserGesture:v,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},(k)=>{let D=k instanceof Error?k.message:k;if(D==="invalid")this.notificationService.warn(e(1343,"Failed to open this link because it is not well-formed: {0}",y.url.toString()));else if(D==="missing")this.notificationService.warn(e(1344,"Failed to open this link because its target is missing."));else J(k)})}getLinkOccurrence(u){if(!this.editor.hasModel()||!u)return null;let p=this.editor.getModel().getDecorationsInRange({startLineNumber:u.lineNumber,startColumn:u.column,endLineNumber:u.lineNumber,endColumn:u.column},0,!0);for(let v of p){let y=this.currentOccurrences[v.id];if(y)return y}return null}isEnabled(u,p){return Boolean(u.target.type===6&&(u.hasTriggerModifier||p&&p.keyCodeIsTriggerKey||u.isMiddleClick&&u.mouseMiddleClickAction==="openLink"))}stop(){if(this.computeLinks.cancel(),this.activeLinksList)this.activeLinksList?.dispose(),this.activeLinksList=null;if(this.computePromise)this.computePromise.cancel(),this.computePromise=null}dispose(){super.dispose(),this.stop()}};Fu=Tw=UR([Am(1,Eo),Am(2,ut),Am(3,j),Am(4,Hi)],Fu);var h1={general:oe.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:oe.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class zc{static decoration(m,u){return{range:m.range,options:zc._getOptions(m,u,!1)}}static _getOptions(m,u,p){let v={...p?h1.active:h1.general};return v.hoverMessage=qR(m,u),v}constructor(m,u){this.link=m,this.decorationId=u}activate(m,u){m.changeDecorationOptions(this.decorationId,zc._getOptions(this.link,u,!0))}deactivate(m,u){m.changeDecorationOptions(this.decorationId,zc._getOptions(this.link,u,!1))}}function qR(m,u){let p=m.url&&/^command:/i.test(m.url.toString()),v=m.tooltip?m.tooltip:p?e(1345,"Execute command"):e(1346,"Follow link"),y=u?ue?e(1347,"cmd + click"):e(1348,"ctrl + click"):ue?e(1349,"option + click"):e(1350,"alt + click");if(m.url){let k="";if(/^command:/i.test(m.url.toString())){let T=m.url.toString().match(/^command:([^?#]+)/);if(T){let R=T[1];k=e(1351,"Execute command {0}",R)}}return new yn("",!0).appendLink(m.url.toString(!0).replace(/ /g,"%20"),v,k).appendMarkdown(` (${y})`)}else return new yn().appendText(`${v} (${y})`)}class u1 extends z{constructor(){super({id:"editor.action.openLink",label:h(1352,"Open Link"),precondition:void 0})}run(m,u){let p=Fu.get(u);if(!p)return;if(!u.hasModel())return;let v=u.getSelections();for(let y of v){let k=p.getLinkOccurrence(y.getEndPosition());if(k)p.openLinkOccurrence(k,!1)}}}le(Fu.ID,Fu,1);I(u1);var Ns={Visible:new A("parameterHintsVisible",!1),MultipleSignatures:new A("parameterHintsMultipleSignatures",!1)};async function Rw(m,u,p,v,y){let k=m.ordered(u);for(let D of k)try{let T=await D.provideSignatureHelp(u,p,y,v);if(T)return T}catch(T){dt(T)}return}we.registerCommand("_executeSignatureHelpProvider",async(m,...u)=>{let[p,v,y]=u;Ie(W.isUri(p)),Ie(r.isIPosition(v)),Ie(typeof y==="string"||!y);let k=m.get(j),D=await m.get(mn).createModelReference(p);try{let T=await Rw(k.signatureHelpProvider,D.object.textEditorModel,r.lift(v),{triggerKind:_a.Invoke,isRetrigger:!1,triggerCharacter:y},he.None);if(!T)return;return setTimeout(()=>T.dispose(),0),T.value}finally{D.dispose()}});var fa;(function(m){m.Default={type:0};class u{constructor(v,y){this.request=v,this.previouslyActiveHints=y,this.type=2}}m.Pending=u;class p{constructor(v){this.hints=v,this.type=1}}m.Active=p})(fa||(fa={}));class Fm extends n{static{this.DEFAULT_DELAY=120}constructor(m,u,p=Fm.DEFAULT_DELAY){super();this._onChangedHints=this._register(new i),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=fa.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new ie),this.triggerChars=new xh,this.retriggerChars=new xh,this.triggerId=0,this.editor=m,this.providers=u,this.throttledDelayer=this._register(new Ci(p)),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel((v)=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage((v)=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection((v)=>this.onCursorChange(v))),this._register(this.editor.onDidChangeModelContent((v)=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((v)=>this.onDidType(v))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(m){if(this._state.type===2)this._state.request.cancel();this._state=m}cancel(m=!1){if(this.state=fa.Default,this.throttledDelayer.cancel(),!m)this._onChangedHints.fire(void 0)}trigger(m,u){let p=this.editor.getModel();if(!p||!this.providers.has(p))return;let v=++this.triggerId;this._pendingTriggers.push(m),this.throttledDelayer.trigger(()=>this.doTrigger(v),u).catch(J)}next(){if(this.state.type!==1)return;let m=this.state.hints.signatures.length,u=this.state.hints.activeSignature,p=u%m===m-1,v=this.editor.getOption(98).cycle;if((m<2||p)&&!v){this.cancel();return}this.updateActiveSignature(p&&v?0:u+1)}previous(){if(this.state.type!==1)return;let m=this.state.hints.signatures.length,u=this.state.hints.activeSignature,p=u===0,v=this.editor.getOption(98).cycle;if((m<2||p)&&!v){this.cancel();return}this.updateActiveSignature(p&&v?m-1:u-1)}updateActiveSignature(m){if(this.state.type!==1)return;this.state=new fa.Active({...this.state.hints,activeSignature:m}),this._onChangedHints.fire(this.state.hints)}async doTrigger(m){let u=this.state.type===1||this.state.type===2,p=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;let v=this._pendingTriggers.reduce(jR);this._pendingTriggers=[];let y={triggerKind:v.triggerKind,triggerCharacter:v.triggerCharacter,isRetrigger:u,activeSignatureHelp:p};if(!this.editor.hasModel())return!1;let k=this.editor.getModel(),D=this.editor.getPosition();this.state=new fa.Pending(Pt((T)=>Rw(this.providers,k,D,y,T)),p);try{let T=await this.state.request;if(m!==this.triggerId)return T?.dispose(),!1;if(!T||!T.value.signatures||T.value.signatures.length===0)return T?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1;else return this.state=new fa.Active(T.value),this._lastSignatureHelpResult.value=T,this._onChangedHints.fire(this.state.hints),!0}catch(T){if(m===this.triggerId)this.state=fa.Default;return J(T),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();let m=this.editor.getModel();if(!m)return;for(let u of this.providers.ordered(m)){for(let p of u.signatureHelpTriggerCharacters||[])if(p.length){let v=p.charCodeAt(0);this.triggerChars.add(v),this.retriggerChars.add(v)}for(let p of u.signatureHelpRetriggerCharacters||[])if(p.length)this.retriggerChars.add(p.charCodeAt(0))}}onDidType(m){if(!this.triggerOnType)return;let u=m.length-1,p=m.charCodeAt(u);if(this.triggerChars.has(p)||this.isTriggered&&this.retriggerChars.has(p))this.trigger({triggerKind:_a.TriggerCharacter,triggerCharacter:m.charAt(u)})}onCursorChange(m){if(m.source==="mouse")this.cancel();else if(this.isTriggered)this.trigger({triggerKind:_a.ContentChange})}onModelContentChange(){if(this.isTriggered)this.trigger({triggerKind:_a.ContentChange})}onEditorConfigurationChange(){if(this.triggerOnType=this.editor.getOption(98).enabled,!this.triggerOnType)this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function jR(m,u){switch(u.triggerKind){case _a.Invoke:return u;case _a.ContentChange:return m;case _a.TriggerCharacter:default:return u}}var GR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},g1=function(m,u){return function(p,v){u(p,v,m)}},Nw,Uo=g,ZR=Lt("parameter-hints-next",b.chevronDown,e(1378,"Icon for show next parameter hint.")),XR=Lt("parameter-hints-previous",b.chevronUp,e(1379,"Icon for show previous parameter hint.")),Hm=class m extends n{static{Nw=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(u,p,v,y){super();this.editor=u,this.model=p,this.markdownRendererService=y,this.renderDisposeables=this._register(new c),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=Ns.Visible.bindTo(v),this.keyMultipleSignatures=Ns.MultipleSignatures.bindTo(v)}createParameterHintDOMNodes(){let u=Uo(".editor-widget.parameter-hints-widget"),p=w(u,Uo(".phwrapper"));p.tabIndex=-1;let v=w(p,Uo(".controls")),y=w(v,Uo(".button"+G.asCSSSelector(XR))),k=w(v,Uo(".overloads")),D=w(v,Uo(".button"+G.asCSSSelector(ZR)));this._register(l(y,"click",(te)=>{ve.stop(te),this.previous()})),this._register(l(D,"click",(te)=>{ve.stop(te),this.next()}));let T=Uo(".body"),R=new $a(T,{alwaysConsumeMouseWheel:!0});this._register(R),p.appendChild(R.getDomNode());let K=w(T,Uo(".signature")),q=w(T,Uo(".docs"));u.style.userSelect="text",this.domNodes={element:u,signature:K,overloads:k,docs:q,scrollbar:R},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((te)=>{if(this.visible)this.editor.layoutContentWidget(this)}));let Q=()=>{if(!this.domNodes)return;let te=this.editor.getOption(59),ne=this.domNodes.element;ne.style.fontSize=`${te.fontSize}px`,ne.style.lineHeight=`${te.lineHeight/te.fontSize}`,ne.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",te.fontFamily),ne.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",lo.fontFamily)};Q(),this._register(C.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(te)=>te.filter((ne)=>ne.hasChanged(59)))(Q)),this._register(this.editor.onDidLayoutChange((te)=>this.updateMaxHeight())),this.updateMaxHeight()}show(){if(this.visible)return;if(!this.domNodes)this.createParameterHintDOMNodes();this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add("visible")},100),this.editor.layoutContentWidget(this)}hide(){if(this.renderDisposeables.clear(),!this.visible)return;this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove("visible"),this.editor.layoutContentWidget(this)}getPosition(){if(this.visible)return{position:this.editor.getPosition(),preference:[1,2]};return null}render(u){if(this.renderDisposeables.clear(),!this.domNodes)return;let p=u.signatures.length>1;this.domNodes.element.classList.toggle("multiple",p),this.keyMultipleSignatures.set(p),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";let v=u.signatures[u.activeSignature];if(!v)return;let y=w(this.domNodes.signature,Uo(".code")),k=v.parameters.length>0,D=v.activeParameter??u.activeParameter;if(!k){let K=w(y,Uo("span"));K.textContent=v.label}else this.renderParameters(y,v,D);let T=v.parameters[D];if(T?.documentation){let K=Uo("span.documentation");if(typeof T.documentation==="string")K.textContent=T.documentation;else{let q=this.renderMarkdownDocs(T.documentation);K.appendChild(q.element)}w(this.domNodes.docs,Uo("p",{},K))}if(v.documentation===void 0);else if(typeof v.documentation==="string")w(this.domNodes.docs,Uo("p",{},v.documentation));else{let K=this.renderMarkdownDocs(v.documentation);w(this.domNodes.docs,K.element)}let R=this.hasDocs(v,T);if(this.domNodes.signature.classList.toggle("has-docs",R),this.domNodes.docs.classList.toggle("empty",!R),this.domNodes.overloads.textContent=String(u.activeSignature+1).padStart(u.signatures.length.toString().length,"0")+"/"+u.signatures.length,T){let K="",q=v.parameters[D];if(Array.isArray(q.label))K=v.label.substring(q.label[0],q.label[1]);else K=q.label;if(q.documentation)K+=typeof q.documentation==="string"?`, ${q.documentation}`:`, ${q.documentation.value}`;if(v.documentation)K+=typeof v.documentation==="string"?`, ${v.documentation}`:`, ${v.documentation.value}`;if(this.announcedLabel!==K)En(e(1380,"{0}, hint",K)),this.announcedLabel=K}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(u){let p=this.renderDisposeables.add(this.markdownRendererService.render(u,{context:this.editor,asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));return p.element.classList.add("markdown-docs"),p}hasDocs(u,p){if(p&&typeof p.documentation==="string"&&ol(p.documentation).length>0)return!0;if(p&&typeof p.documentation==="object"&&ol(p.documentation).value.length>0)return!0;if(u.documentation&&typeof u.documentation==="string"&&ol(u.documentation).length>0)return!0;if(u.documentation&&typeof u.documentation==="object"&&ol(u.documentation.value).length>0)return!0;return!1}renderParameters(u,p,v){let[y,k]=this.getParameterLabelOffsets(p,v),D=document.createElement("span");D.textContent=p.label.substring(0,y);let T=document.createElement("span");T.textContent=p.label.substring(y,k),T.className="parameter active";let R=document.createElement("span");R.textContent=p.label.substring(k),w(u,D,T,R)}getParameterLabelOffsets(u,p){let v=u.parameters[p];if(!v)return[0,0];else if(Array.isArray(v.label))return v.label;else if(!v.label.length)return[0,0];else{let y=new RegExp(`(\\W|^)${_i(v.label)}(?=\\W|$)`,"g");y.test(u.label);let k=y.lastIndex-v.label.length;return k>=0?[k,y.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 Nw.ID}updateMaxHeight(){if(!this.domNodes)return;let p=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=p;let v=this.domNodes.element.getElementsByClassName("phwrapper");if(v.length)v[0].style.maxHeight=p}};Hm=Nw=GR([g1(2,V),g1(3,vo)],Hm);s("editorHoverWidget.highlightForeground",Ih,e(1381,"Foreground color of the active item in the parameter hint."));var YR=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},p1=function(m,u){return function(p,v){u(p,v,m)}},Mw,Kc=class m extends n{static{Mw=this}static{this.ID="editor.controller.parameterHints"}static get(u){return u.getContribution(Mw.ID)}constructor(u,p,v){super();this.editor=u,this.model=this._register(new Fm(u,v.signatureHelpProvider)),this._register(this.model.onChangedHints((y)=>{if(y)this.widget.value.show(),this.widget.value.render(y);else this.widget.rawValue?.hide()})),this.widget=new Mn(()=>this._register(p.createInstance(Hm,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(u){this.model.trigger(u,0)}};Kc=Mw=YR([p1(1,L),p1(2,j)],Kc);class m1 extends z{constructor(){super({id:"editor.action.triggerParameterHints",label:h(1377,"Trigger Parameter Hints"),precondition:o.hasSignatureHelpProvider,kbOpts:{kbExpr:o.editorTextFocus,primary:3082,weight:100}})}run(m,u){Kc.get(u)?.trigger({triggerKind:_a.Invoke})}}le(Kc.ID,Kc,2);I(m1);var Ow=175,Pw=Bt.bindToContribution(Kc.get);U(new Pw({id:"closeParameterHints",precondition:Ns.Visible,handler:(m)=>m.cancel(),kbOpts:{weight:Ow,kbExpr:o.focus,primary:9,secondary:[1033]}}));U(new Pw({id:"showPrevParameterHint",precondition:_.and(Ns.Visible,Ns.MultipleSignatures),handler:(m)=>m.previous(),kbOpts:{weight:Ow,kbExpr:o.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));U(new Pw({id:"showNextParameterHint",precondition:_.and(Ns.Visible,Ns.MultipleSignatures),handler:(m)=>m.next(),kbOpts:{weight:Ow,kbExpr:o.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var rt={Visible:mp,HasFocusedSuggestion:new A("suggestWidgetHasFocusedSuggestion",!1,e(1525,"Whether any suggestion is focused")),DetailsVisible:new A("suggestWidgetDetailsVisible",!1,e(1526,"Whether suggestion details are visible")),DetailsFocused:new A("suggestWidgetDetailsFocused",!1,e(1527,"Whether the details pane of the suggest widget has focus")),MultipleSuggestions:new A("suggestWidgetMultipleSuggestions",!1,e(1528,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new A("suggestionMakesTextEdit",!0,e(1529,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new A("acceptSuggestionOnEnter",!0,e(1530,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new A("suggestionHasInsertAndReplaceRange",!1,e(1531,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new A("suggestionInsertMode",void 0,{type:"string",description:e(1532,"Whether the default behaviour is to insert or replace")}),CanResolve:new A("suggestionCanResolve",!1,e(1533,"Whether the current suggestion supports to resolve further details"))},yr=new a("suggestWidgetStatusBar");class f1{constructor(m,u,p,v){if(this.position=m,this.completion=u,this.container=p,this.provider=v,this.isInvalid=!1,this.score=kr.Default,this.distance=0,this.textLabel=typeof u.label==="string"?u.label:u.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=u.sortText&&u.sortText.toLowerCase(),this.filterTextLow=u.filterText&&u.filterText.toLowerCase(),this.extensionId=u.extensionId,t.isIRange(u.range))this.editStart=new r(u.range.startLineNumber,u.range.startColumn),this.editInsertEnd=new r(u.range.endLineNumber,u.range.endColumn),this.editReplaceEnd=new r(u.range.endLineNumber,u.range.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(u.range)||u.range.startLineNumber!==m.lineNumber;else this.editStart=new r(u.range.insert.startLineNumber,u.range.insert.startColumn),this.editInsertEnd=new r(u.range.insert.endLineNumber,u.range.insert.endColumn),this.editReplaceEnd=new r(u.range.replace.endLineNumber,u.range.replace.endColumn),this.isInvalid=this.isInvalid||t.spansMultipleLines(u.range.insert)||t.spansMultipleLines(u.range.replace)||u.range.insert.startLineNumber!==m.lineNumber||u.range.replace.startLineNumber!==m.lineNumber||u.range.insert.startColumn!==u.range.replace.startColumn;if(typeof v.resolveCompletionItem!=="function")this._resolveCache=Promise.resolve(),this._resolveDuration=0}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(m){if(!this._resolveCache){let u=m.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),p=new Kt(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,m)).then((v)=>{Object.assign(this.completion,v),this._resolveDuration=p.elapsed()},(v)=>{if(Gn(v))this._resolveCache=void 0,this._resolveDuration=void 0}).finally(()=>{u.dispose()})}return this._resolveCache}}class yd{static{this.default=new yd}constructor(m=2,u=new Set,p=new Set,v=new Map,y=!0){this.snippetSortOrder=m,this.kindFilter=u,this.providerFilter=p,this.providerItemsToReuse=v,this.showDeprecated=y}}class _1{constructor(m,u,p,v){this.items=m,this.needsClipboard=u,this.durations=p,this.disposable=v}}async function Hu(m,u,p,v=yd.default,y={triggerKind:0},k=he.None){let D=new Kt;p=p.clone();let T=u.getWordAtPosition(p),R=T?new t(p.lineNumber,T.startColumn,p.lineNumber,T.endColumn):t.fromPositions(p),K={replace:R,insert:R.setEndPosition(p.lineNumber,p.column)},q=[],Q=new c,te=[],ne=!1,re=(ge,Se,Oe)=>{let Ae=!1;if(!Se)return Ae;for(let We of Se.suggestions)if(!v.kindFilter.has(We.kind)){if(!v.showDeprecated&&We?.tags?.includes(1))continue;if(!We.range)We.range=K;if(!We.sortText)We.sortText=typeof We.label==="string"?We.label:We.label.label;if(!ne&&We.insertTextRules&&We.insertTextRules&4)ne=Mo.guessNeedsClipboard(We.insertText);q.push(new f1(p,We,Se,ge)),Ae=!0}if(xs(Se))Q.add(Se);return te.push({providerName:ge._debugDisplayName??"unknown_provider",elapsedProvider:Se.duration??-1,elapsedOverall:Oe.elapsed()}),Ae},ae=(async()=>{return})();for(let ge of m.orderedGroups(u)){let Se=!1;if(await Promise.all(ge.map(async(Oe)=>{if(v.providerItemsToReuse.has(Oe)){let Ae=v.providerItemsToReuse.get(Oe);Ae.forEach((We)=>q.push(We)),Se=Se||Ae.length>0;return}if(v.providerFilter.size>0&&!v.providerFilter.has(Oe))return;try{let Ae=new Kt,We=await Oe.provideCompletionItems(u,p,y,k);Se=re(Oe,We,Ae)||Se}catch(Ae){dt(Ae)}})),Se||k.isCancellationRequested)break}if(await ae,k.isCancellationRequested)return Q.dispose(),Promise.reject(new er);return new _1(q.sort(eN(v.snippetSortOrder)),ne,{entries:te,elapsed:D.elapsed()},Q)}function Aw(m,u){if(m.sortTextLow&&u.sortTextLow){if(m.sortTextLow<u.sortTextLow)return-1;else if(m.sortTextLow>u.sortTextLow)return 1}if(m.textLabel<u.textLabel)return-1;else if(m.textLabel>u.textLabel)return 1;return m.completion.kind-u.completion.kind}function JR(m,u){if(m.completion.kind!==u.completion.kind){if(m.completion.kind===28)return-1;else if(u.completion.kind===28)return 1}return Aw(m,u)}function QR(m,u){if(m.completion.kind!==u.completion.kind){if(m.completion.kind===28)return 1;else if(u.completion.kind===28)return-1}return Aw(m,u)}var Wm=new Map;Wm.set(0,JR);Wm.set(2,QR);Wm.set(1,Aw);function eN(m){return Wm.get(m)}we.registerCommand("_executeCompletionItemProvider",async(m,...u)=>{let[p,v,y,k]=u;Ie(W.isUri(p)),Ie(r.isIPosition(v)),Ie(typeof y==="string"||!y),Ie(typeof k==="number"||!k);let{completionProvider:D}=m.get(j),T=await m.get(mn).createModelReference(p);try{let R={incomplete:!1,suggestions:[]},K=[],q=T.object.textEditorModel.validatePosition(v),Q=await Hu(D,T.object.textEditorModel,q,void 0,{triggerCharacter:y??void 0,triggerKind:y?1:0});for(let te of Q.items){if(K.length<(k??0))K.push(te.resolve(he.None));R.incomplete=R.incomplete||te.container.incomplete,R.suggestions.push(te.completion)}try{return await Promise.all(K),R}finally{setTimeout(()=>Q.disposable.dispose(),100)}}finally{T.dispose()}});function b1(m,u){m.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(u),void 0,!0)}class Ms{static isAllOff(m){return m.other==="off"&&m.comments==="off"&&m.strings==="off"}static isAllOn(m){return m.other==="on"&&m.comments==="on"&&m.strings==="on"}static valueFor(m,u){switch(u){case 1:return m.comments;case 2:return m.strings;default:return m.other}}}function Fw(m,u=Wt){if(nR(m,u))return m.charAt(0).toUpperCase()+m.slice(1);return m}var tN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},iN=function(m,u){return function(p,v){u(p,v,m)}};class Bm{constructor(m){this._delegates=m}resolve(m){for(let u of this._delegates){let p=u.resolve(m);if(p!==void 0)return p}return}}class zm{constructor(m,u,p,v){this._model=m,this._selection=u,this._selectionIdx=p,this._overtypingCapturer=v}resolve(m){let{name:u}=m;if(u==="SELECTION"||u==="TM_SELECTED_TEXT"){let p=this._model.getValueInRange(this._selection)||void 0,v=this._selection.startLineNumber!==this._selection.endLineNumber;if(!p&&this._overtypingCapturer){let y=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);if(y)p=y.value,v=y.multiline}if(p&&v&&m.snippet){let y=this._model.getLineContent(this._selection.startLineNumber),k=kt(y,0,this._selection.startColumn-1),D=k;m.snippet.walk((R)=>{if(R===m)return!1;if(R instanceof zi)D=kt(ei(R.value).pop());return!0});let T=co(D,k);p=p.replace(/(\r\n|\r|\n)(.*)/g,(R,K,q)=>`${K}${D.substr(T)}${q}`)}return p}else if(u==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);else if(u==="TM_CURRENT_WORD"){let p=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return p&&p.word||void 0}else if(u==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);else if(u==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);else if(u==="CURSOR_INDEX")return String(this._selectionIdx);else if(u==="CURSOR_NUMBER")return String(this._selectionIdx+1);return}}class jm{constructor(m,u){this._labelService=m,this._model=u}resolve(m){let{name:u}=m;if(u==="TM_FILENAME")return wa(this._model.uri.fsPath);else if(u==="TM_FILENAME_BASE"){let p=wa(this._model.uri.fsPath),v=p.lastIndexOf(".");if(v<=0)return p;else return p.slice(0,v)}else if(u==="TM_DIRECTORY"){if(tg(this._model.uri.fsPath)===".")return"";return this._labelService.getUriLabel(vh(this._model.uri))}else if(u==="TM_DIRECTORY_BASE"){if(tg(this._model.uri.fsPath)===".")return"";return wa(tg(this._model.uri.fsPath))}else if(u==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);else if(u==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0});return}}class $m{constructor(m,u,p,v){this._readClipboardText=m,this._selectionIdx=u,this._selectionCount=p,this._spread=v}resolve(m){if(m.name!=="CLIPBOARD")return;let u=this._readClipboardText();if(!u)return;if(this._spread){let p=u.split(/\r\n|\n|\r/).filter((v)=>!d0(v));if(p.length===this._selectionCount)return p[this._selectionIdx]}return u}}var Wu=class m{constructor(u,p,v){this._model=u,this._selection=p,this._languageConfigurationService=v}resolve(u){let{name:p}=u,v=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),y=this._languageConfigurationService.getLanguageConfiguration(v).comments;if(!y)return;if(p==="LINE_COMMENT")return y.lineCommentToken||void 0;else if(p==="BLOCK_COMMENT_START")return y.blockCommentStartToken||void 0;else if(p==="BLOCK_COMMENT_END")return y.blockCommentEndToken||void 0;return}};Wu=tN([iN(2,et)],Wu);class ba{constructor(){this._date=new Date}static{this.dayNames=[e(1476,"Sunday"),e(1477,"Monday"),e(1478,"Tuesday"),e(1479,"Wednesday"),e(1480,"Thursday"),e(1481,"Friday"),e(1482,"Saturday")]}static{this.dayNamesShort=[e(1483,"Sun"),e(1484,"Mon"),e(1485,"Tue"),e(1486,"Wed"),e(1487,"Thu"),e(1488,"Fri"),e(1489,"Sat")]}static{this.monthNames=[e(1490,"January"),e(1491,"February"),e(1492,"March"),e(1493,"April"),e(1494,"May"),e(1495,"June"),e(1496,"July"),e(1497,"August"),e(1498,"September"),e(1499,"October"),e(1500,"November"),e(1501,"December")]}static{this.monthNamesShort=[e(1502,"Jan"),e(1503,"Feb"),e(1504,"Mar"),e(1505,"Apr"),e(1506,"May"),e(1507,"Jun"),e(1508,"Jul"),e(1509,"Aug"),e(1510,"Sep"),e(1511,"Oct"),e(1512,"Nov"),e(1513,"Dec")]}resolve(m){let{name:u}=m;switch(u){case"CURRENT_YEAR":return String(this._date.getFullYear());case"CURRENT_YEAR_SHORT":return String(this._date.getFullYear()).slice(-2);case"CURRENT_MONTH":return String(this._date.getMonth().valueOf()+1).padStart(2,"0");case"CURRENT_DATE":return String(this._date.getDate().valueOf()).padStart(2,"0");case"CURRENT_HOUR":return String(this._date.getHours().valueOf()).padStart(2,"0");case"CURRENT_MINUTE":return String(this._date.getMinutes().valueOf()).padStart(2,"0");case"CURRENT_SECOND":return String(this._date.getSeconds().valueOf()).padStart(2,"0");case"CURRENT_MILLISECOND":return String(this._date.getMilliseconds().valueOf()).padStart(3,"0");case"CURRENT_DAY_NAME":return ba.dayNames[this._date.getDay()];case"CURRENT_DAY_NAME_SHORT":return ba.dayNamesShort[this._date.getDay()];case"CURRENT_MONTH_NAME":return ba.monthNames[this._date.getMonth()];case"CURRENT_MONTH_NAME_SHORT":return ba.monthNamesShort[this._date.getMonth()];case"CURRENT_SECONDS_UNIX":return String(Math.floor(this._date.getTime()/1000));case"CURRENT_MILLISECONDS_UNIX":return String(this._date.getTime());case"CURRENT_TIMEZONE_OFFSET":{let p=this._date.getTimezoneOffset(),v=p>0?"-":"+",y=Math.trunc(Math.abs(p/60)),k=y<10?"0"+y:y,D=Math.abs(p)-y*60,T=D<10?"0"+D:D;return v+k+":"+T}case"CURRENT_TIMEZONE_NAME":return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}return}}class gf{constructor(m){this._workspaceService=m}resolve(m){if(!this._workspaceService)return;let u=MR(this._workspaceService.getWorkspace());if(OR(u))return;if(m.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(u);else if(m.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(u);return}_resolveWorkspaceName(m){if(Z0(m))return wa(m.uri.path);let u=wa(m.configPath.path);if(u.endsWith(X0))u=u.substr(0,u.length-X0.length-1);return u}_resoveWorkspacePath(m){if(Z0(m))return Fw(m.uri.fsPath);let u=wa(m.configPath.path),p=m.configPath.fsPath;if(p.endsWith(u))p=p.substr(0,p.length-u.length-1);return p?Fw(p):"/"}}class mf{resolve(m){let{name:u}=m;if(u==="RANDOM")return Math.random().toString().slice(-6);else if(u==="RANDOM_HEX")return Math.random().toString(16).slice(-6);else if(u==="UUID")return Da();return}}var oN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},nN=function(m,u){return function(p,v){u(p,v,m)}},Ir;class Nn{static{this._decor={active:oe.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:oe.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:oe.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:oe.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(m,u,p){this._editor=m,this._snippet=u,this._snippetLineLeadingWhitespace=p,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=Bk(u.placeholders,No.compareByIndex),this._placeholderGroupsIdx=-1}initialize(m){this._offset=m.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 m=this._editor.getModel();this._editor.changeDecorations((u)=>{for(let p of this._snippet.placeholders){let v=this._snippet.offset(p),y=this._snippet.fullLen(p),k=t.fromPositions(m.getPositionAt(this._offset+v),m.getPositionAt(this._offset+v+y)),D=p.isFinalTabstop?Nn._decor.inactiveFinal:Nn._decor.inactive,T=u.addDecoration(k,D);this._placeholderDecorations.set(p,T)}})}move(m){if(!this._editor.hasModel())return[];this._initDecorations();let u=this._editor.getModel();if(this._placeholderGroupsIdx>=0){let y=[];for(let k of this._placeholderGroups[this._placeholderGroupsIdx])if(k.transform){let D=this._placeholderDecorations.get(k),T=D?u.getDecorationRange(D):null;if(T){let R=u.getValueInRange(T),K=k.transform.resolve(R).split(/\r\n|\r|\n/);for(let q=1;q<K.length;q++)K[q]=u.normalizeIndentation(this._snippetLineLeadingWhitespace+K[q]);y.push(Mt.replace(T,K.join(u.getEOL())))}}if(y.length>0)this._editor.executeEdits("snippet.placeholderTransform",y)}let p=!1;if(m===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1)this._placeholderGroupsIdx+=1,p=!0;else if(m===!1&&this._placeholderGroupsIdx>0)this._placeholderGroupsIdx-=1,p=!0;let v=u.changeDecorations((y)=>{let k=new Set,D=[];for(let T of this._placeholderGroups[this._placeholderGroupsIdx]){let R=this._placeholderDecorations.get(T),K=R?u.getDecorationRange(R):null;if(p=p&&this._hasPlaceholderBeenCollapsed(T),!R||!K)continue;D.push(new O(K.startLineNumber,K.startColumn,K.endLineNumber,K.endColumn)),y.changeDecorationOptions(R,T.isFinalTabstop?Nn._decor.activeFinal:Nn._decor.active),k.add(T);for(let q of this._snippet.enclosingPlaceholders(T)){let Q=this._placeholderDecorations.get(q);if(Q)y.changeDecorationOptions(Q,q.isFinalTabstop?Nn._decor.activeFinal:Nn._decor.active),k.add(q)}}for(let[T,R]of this._placeholderDecorations)if(!k.has(T))y.changeDecorationOptions(R,T.isFinalTabstop?Nn._decor.inactiveFinal:Nn._decor.inactive);return D});return!p?v??[]:this.move(m)}_hasPlaceholderBeenCollapsed(m){let u=this._editor.getModel(),p=m;while(p){if(p instanceof No){let v=this._placeholderDecorations.get(p),y=v?u.getDecorationRange(v):null;if((!y||y.isEmpty())&&p.toString().length>0)return!0}p=p.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[m]=this._snippet.placeholders;if(m.isFinalTabstop){if(this._snippet.rightMostDescendant===m)return!0}}return!1}computePossibleSelections(){let m=new Map;for(let u of this._placeholderGroups){let p;for(let v of u){if(v.isFinalTabstop)break;if(!p)p=[],m.set(v.index,p);let y=this._placeholderDecorations.get(v),k=this._editor.getModel().getDecorationRange(y);if(!k){m.delete(v.index);break}p.push(k)}}return m}get activeChoice(){if(!this._placeholderDecorations)return;let m=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!m?.choice)return;let u=this._placeholderDecorations.get(m);if(!u)return;let p=this._editor.getModel().getDecorationRange(u);if(!p)return;return{range:p,choice:m.choice}}get hasChoice(){let m=!1;return this._snippet.walk((u)=>(m=u instanceof Qa,!m)),m}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(m){let u=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((p)=>{for(let v of this._placeholderGroups[this._placeholderGroupsIdx]){let y=m.shift();console.assert(y._offset!==-1),console.assert(!y._placeholderDecorations);let k=y._snippet.placeholderInfo.last.index;for(let T of y._snippet.placeholderInfo.all)if(T.isFinalTabstop)T.index=v.index+(k+1)/this._nestingLevel;else T.index=v.index+T.index/this._nestingLevel;this._snippet.replace(v,y._snippet.children);let D=this._placeholderDecorations.get(v);p.removeDecoration(D),this._placeholderDecorations.delete(v);for(let T of y._snippet.placeholders){let R=y._snippet.offset(T),K=y._snippet.fullLen(T),q=t.fromPositions(u.getPositionAt(y._offset+R),u.getPositionAt(y._offset+R+K)),Q=p.addDecoration(q,Nn._decor.inactive);this._placeholderDecorations.set(T,Q)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=Bk(this._snippet.placeholders,No.compareByIndex)})}_renormalizePlaceholderIndices(){let m=this._snippet.placeholders,u=new Set;for(let y of m)if(!y.isFinalTabstop)u.add(y.index);let p=[...u].sort((y,k)=>y-k),v=new Map;for(let y=0;y<p.length;y++)v.set(p[y],y+1);for(let y of m)if(!y.isFinalTabstop)y.index=v.get(y.index);this._nestingLevel=1}}var v1={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},$c=Ir=class m{static adjustWhitespace(u,p,v,y,k){let D=u.getLineContent(p.lineNumber),T=kt(D,0,p.column-1),R;return y.walk((K)=>{if(!(K instanceof zi)||K.parent instanceof Qa)return!0;if(k&&!k.has(K))return!0;let q=K.value.split(/\r\n|\r|\n/);if(v){let te=y.offset(K);if(te===0)q[0]=u.normalizeIndentation(q[0]);else{R=R??y.toString();let ne=R.charCodeAt(te-1);if(ne===10||ne===13)q[0]=u.normalizeIndentation(T+q[0])}for(let ne=1;ne<q.length;ne++)q[ne]=u.normalizeIndentation(T+q[ne])}let Q=q.join(u.getEOL());if(Q!==K.value)K.parent.replace(K,[new zi(Q)]),R=void 0;return!0}),T}static adjustSelection(u,p,v,y){if(v!==0||y!==0){let{positionLineNumber:k,positionColumn:D}=p,T=D-v,R=D+y,K=u.validateRange({startLineNumber:k,startColumn:T,endLineNumber:k,endColumn:R});p=O.createWithDirection(K.startLineNumber,K.startColumn,K.endLineNumber,K.endColumn,p.getDirection())}return p}static createEditsAndSnippetsFromSelections(u,p,v,y,k,D,T,R,K){let q=[],Q=[];if(!u.hasModel())return{edits:q,snippets:Q};let te=u.getModel(),ne=u.invokeWithinContext((We)=>We.get(Ds)),re=u.invokeWithinContext((We)=>new jm(We.get(xl),te)),ae=()=>T,ge=te.getValueInRange(Ir.adjustSelection(te,u.getSelection(),v,0)),Se=te.getValueInRange(Ir.adjustSelection(te,u.getSelection(),0,y)),Oe=te.getLineFirstNonWhitespaceColumn(u.getSelection().positionLineNumber),Ae=u.getSelections().map((We,Ue)=>({selection:We,idx:Ue})).sort((We,Ue)=>t.compareRangesUsingStarts(We.selection,Ue.selection));for(let{selection:We,idx:Ue}of Ae){let Le=Ir.adjustSelection(te,We,v,0),He=Ir.adjustSelection(te,We,0,y);if(ge!==te.getValueInRange(Le))Le=We;if(Se!==te.getValueInRange(He))He=We;let Je=We.setStartPosition(Le.startLineNumber,Le.startColumn).setEndPosition(He.endLineNumber,He.endColumn),tt=new Mo().parse(p,!0,k),ot=Je.getStartPosition(),qe=Ir.adjustWhitespace(te,ot,D||Ue>0&&Oe!==te.getLineFirstNonWhitespaceColumn(We.positionLineNumber),tt);tt.resolveVariables(new Bm([re,new $m(ae,Ue,Ae.length,u.getOption(88)==="spread"),new zm(te,We,Ue,R),new Wu(te,We,K),new ba,new gf(ne),new mf])),q[Ue]=Mt.replace(Je,tt.toString()),q[Ue].identifier={major:Ue,minor:0},q[Ue]._isTracked=!0,Q[Ue]=new Nn(u,tt,qe)}return{edits:q,snippets:Q}}static createEditsAndSnippetsFromEdits(u,p,v,y,k,D,T){if(!u.hasModel()||p.length===0)return{edits:[],snippets:[]};let R=[],K=u.getModel(),q=new Mo,Q=new Ad,te=u.invokeWithinContext((We)=>new jm(We.get(xl),K)),ne=new ba,re=new gf(u.invokeWithinContext((We)=>We.get(Ds))),ae=new mf,ge=()=>k,Se=u.getOption(88)==="spread",Oe=p.map((We,Ue)=>({edit:We,idx:Ue})).sort((We,Ue)=>t.compareRangesUsingStarts(We.edit.range,Ue.edit.range)),Ae=0;for(let We=0;We<Oe.length;We++){let{edit:{range:Ue,template:Le,keepWhitespace:He},idx:Je}=Oe[We];if(We>0){let lt=Oe[We-1].edit.range,li=t.fromPositions(lt.getEndPosition(),Ue.getStartPosition()),vt=new zi(K.getValueInRange(li));Q.appendChild(vt),Ae+=vt.value.length}let tt=new Set;Q.walk((lt)=>{if(lt instanceof Ks)tt.add(lt);return!0});let ot=q.parseFragment(Le,Q);Ir.adjustWhitespace(K,Ue.getStartPosition(),He!==void 0?!He:y,Q,new Set(ot));let qe=O.fromRange(Ue,0),nt=new Bm([te,new $m(ge,Je,Oe.length,Se),new zm(K,qe,Je,D),new Wu(K,qe,T),ne,re,ae]);Q.walk((lt)=>{if(lt instanceof Ks&&!tt.has(lt))lt.resolve(nt);return!0});let _t=Q.toString(),st=_t.slice(Ae);Ae=_t.length;let Ct=Mt.replace(Ue,st);Ct.identifier={major:We,minor:0},Ct._isTracked=!0,R.push(Ct)}return q.ensureFinalTabstop(Q,v,!0),{edits:R,snippets:[new Nn(u,Q,"")]}}constructor(u,p,v=v1,y){this._editor=u,this._template=p,this._options=v,this._languageConfigurationService=y,this._templateMerges=[],this._snippets=[]}dispose(){$e(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(u){if(!this._editor.hasModel())return;let{edits:p,snippets:v}=typeof this._template==="string"?Ir.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Ir.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=v,this._editor.executeEdits(u??$n.snippet(),p,(y)=>{let k=y.filter((D)=>!!D.identifier);for(let D=0;D<v.length;D++)v[D].initialize(k[D].textChange);if(this._snippets[0].hasPlaceholder)return this._move(!0);else return k.map((D)=>O.fromPositions(D.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(u,p=v1){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,u]);let{edits:v,snippets:y}=Ir.createEditsAndSnippetsFromSelections(this._editor,u,p.overwriteBefore,p.overwriteAfter,!0,p.adjustWhitespace,p.clipboardText,p.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",v,(k)=>{let D=k.filter((K)=>!!K.identifier);for(let K=0;K<y.length;K++)y[K].initialize(D[K].textChange);let T=y[0].isTrivialSnippet,R=y.length===this._snippets.reduce((K,q)=>K+q.activePlaceholderCount,0);if(!T&&R){for(let K of this._snippets)K.merge(y);console.assert(y.length===0)}if(this._snippets[0].hasPlaceholder&&!T&&R)return this._move(void 0);else return D.map((K)=>O.fromPositions(K.range.getEndPosition()))})}next(){let u=this._move(!0);if(u.length>0)this._editor.setSelections(u),this._editor.revealPositionInCenterIfOutsideViewport(u[0].getPosition())}prev(){let u=this._move(!1);if(u.length>0)this._editor.setSelections(u),this._editor.revealPositionInCenterIfOutsideViewport(u[0].getPosition())}_move(u){let p=[];for(let v of this._snippets){let y=v.move(u);p.push(...y)}return p}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;let u=this._editor.getSelections();if(u.length<this._snippets.length)return!1;let p=new Map;for(let v of this._snippets){let y=v.computePossibleSelections();if(p.size===0)for(let[k,D]of y){D.sort(t.compareRangesUsingStarts);for(let T of u)if(D[0].containsRange(T)){p.set(k,[]);break}}if(p.size===0)return!1;p.forEach((k,D)=>{k.push(...y.get(D))})}u.sort(t.compareRangesUsingStarts);for(let[v,y]of p){if(y.length!==u.length){p.delete(v);continue}y.sort(t.compareRangesUsingStarts);for(let k=0;k<y.length;k++)if(!y[k].containsRange(u[k])){p.delete(v);continue}}return p.size>0}};$c=Ir=oN([nN(3,et)],$c);var rN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},_f=function(m,u){return function(p,v){u(p,v,m)}},xd,w1={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},wi=class m{static{xd=this}static{this.ID="snippetController2"}static get(u){return u.getContribution(xd.ID)}static{this.InSnippetMode=new A("inSnippetMode",!1,e(1471,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new A("hasNextTabstop",!1,e(1472,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new A("hasPrevTabstop",!1,e(1473,"Whether there is a previous tab stop when in snippet mode"))}static{this.InSnippetChoice=new A("inSnippetChoice",!1,e(1474,"Whether the current snippet tab stop is a choice"))}constructor(u,p,v,y,k){this._editor=u,this._logService=p,this._languageFeaturesService=v,this._languageConfigurationService=k,this._inSnippetObservable=M(this,!1),this._snippetListener=new c,this._modelVersionId=-1,this._inSnippet=xd.InSnippetMode.bindTo(y),this._hasNextTabstop=xd.HasNextTabstop.bindTo(y),this._hasPrevTabstop=xd.HasPrevTabstop.bindTo(y),this._inSnippetChoice=xd.InSnippetChoice.bindTo(y)}dispose(){this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(u,p){try{this._doInsert(u,typeof p>"u"?w1:{...w1,...p})}catch(v){this.cancel(),this._logService.error(v),this._logService.error("snippet_error"),this._logService.error("insert_template=",u),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(u,p){if(!this._editor.hasModel())return;if(this._snippetListener.clear(),p.undoStopBefore)this._editor.getModel().pushStackElement();if(this._session&&typeof u!=="string")this.cancel();if(!this._session)this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new $c(this._editor,u,p,this._languageConfigurationService),this._session.insert(p.reason);else Ie(typeof u==="string"),this._session.merge(u,p);if(p.undoStopAfter)this._editor.getModel().pushStackElement();if(this._session?.hasChoice){let v={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(K,q)=>{if(!this._session||K!==this._editor.getModel()||!r.equals(this._editor.getPosition(),q))return;let{activeChoice:Q}=this._session;if(!Q||Q.choice.options.length===0)return;let te=K.getValueInRange(Q.range),ne=Boolean(Q.choice.options.find((ae)=>ae.value===te)),re=[];for(let ae=0;ae<Q.choice.options.length;ae++){let ge=Q.choice.options[ae];re.push({kind:13,label:ge.value,insertText:ge.value,sortText:"a".repeat(ae+1),range:Q.range,filterText:ne?`${te}_${ge.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:e(1475,"Go to next placeholder...")}})}return{suggestions:re}}},y=this._editor.getModel(),k,D=!1,T=()=>{k?.dispose(),D=!1},R=()=>{if(!D)k=this._languageFeaturesService.completionProvider.register({language:y.getLanguageId(),pattern:y.uri.fsPath,scheme:y.uri.scheme,exclusive:!0},v),this._snippetListener.add(k),D=!0};this._choiceCompletions={provider:v,enable:R,disable:T}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((v)=>v.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}_updateState(){if(!this._session||!this._editor.hasModel())return;if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._inSnippetObservable.set(!0,void 0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0,this._inSnippetChoice.reset();return}let{activeChoice:u}=this._session;if(!u||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}if(this._inSnippetChoice.set(!0),this._currentChoice!==u.choice)this._currentChoice=u.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{b1(this._editor,this._choiceCompletions.provider)})}finish(){while(this._inSnippet.get())this.next()}cancel(u=!1){if(this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,u)this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}get isInSnippetObservable(){return this._inSnippetObservable}};wi=xd=rN([_f(1,Be),_f(2,j),_f(3,V),_f(4,et)],wi);le(wi.ID,wi,4);var wf=Bt.bindToContribution(wi.get);U(new wf({id:"jumpToNextSnippetPlaceholder",precondition:_.and(wi.InSnippetMode,wi.HasNextTabstop),handler:(m)=>m.next(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:2}}));U(new wf({id:"jumpToPrevSnippetPlaceholder",precondition:_.and(wi.InSnippetMode,wi.HasPrevTabstop),handler:(m)=>m.prev(),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:1026}}));gn.registerKeybindingRule({id:"jumpToPrevSnippetPlaceholder",weight:191,when:_.and(wi.InSnippetMode,wi.HasPrevTabstop,wi.InSnippetChoice,o.textInputFocus),primary:1026});U(new wf({id:"leaveSnippet",precondition:wi.InSnippetMode,handler:(m)=>m.cancel(!0),kbOpts:{weight:130,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));U(new wf({id:"acceptSnippet",precondition:wi.InSnippetMode,handler:(m)=>m.finish()}));class Sf{constructor(m,u){this.leadingLineContent=m,this.characterCountDelta=u}}class ds{constructor(m,u,p,v,y,k,D=Cg.default,T=void 0){if(this.clipboardText=T,this._snippetCompareFn=ds._compareCompletionItems,this._items=m,this._column=u,this._wordDistance=v,this._options=y,this._refilterKind=1,this._lineContext=p,this._fuzzyScoreOptions=D,k==="top")this._snippetCompareFn=ds._compareCompletionItemsSnippetsUp;else if(k==="bottom")this._snippetCompareFn=ds._compareCompletionItemsSnippetsDown}get lineContext(){return this._lineContext}set lineContext(m){if(this._lineContext.leadingLineContent!==m.leadingLineContent||this._lineContext.characterCountDelta!==m.characterCountDelta)this._refilterKind=this._lineContext.characterCountDelta<m.characterCountDelta&&this._filteredItems?2:1,this._lineContext=m}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let m=new Set;for(let[u,p]of this.getItemsByProvider())if(p.length>0&&p[0].container.incomplete)m.add(u);return m}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){if(this._refilterKind!==0)this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let m=[],{leadingLineContent:u,characterCountDelta:p}=this._lineContext,v="",y="",k=this._refilterKind===1?this._items:this._filteredItems,D=[],T=!this._options.filterGraceful||k.length>2000?oc:RR;for(let R=0;R<k.length;R++){let K=k[R];if(K.isInvalid)continue;let q=this._itemsByProvider.get(K.provider);if(q)q.push(K);else this._itemsByProvider.set(K.provider,[K]);let Q=K.position.column-K.editStart.column,te=Q+p-(K.position.column-this._column);if(v.length!==te)v=te===0?"":u.slice(-te),y=v.toLowerCase();if(K.word=v,te===0)K.score=kr.Default;else{let ne=0;while(ne<Q){let re=v.charCodeAt(ne);if(re===32||re===9)ne+=1;else break}if(ne>=te)K.score=kr.Default;else if(typeof K.completion.filterText==="string"){let re=T(v,y,ne,K.completion.filterText,K.filterTextLow,0,this._fuzzyScoreOptions);if(!re)continue;if(Zv(K.completion.filterText,K.textLabel)===0)K.score=re;else K.score=IR(v,y,ne,K.textLabel,K.labelLow,0),K.score[0]=re[0]}else{let re=T(v,y,ne,K.textLabel,K.labelLow,0,this._fuzzyScoreOptions);if(!re)continue;K.score=re}}K.idx=R,K.distance=this._wordDistance.distance(K.position,K.completion),D.push(K),m.push(K.textLabel.length)}this._filteredItems=D.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:m.length?o0(m.length-0.85,m,(R,K)=>R-K):0}}static _compareCompletionItems(m,u){if(m.score[0]>u.score[0])return-1;else if(m.score[0]<u.score[0])return 1;else if(m.distance<u.distance)return-1;else if(m.distance>u.distance)return 1;else if(m.idx<u.idx)return-1;else if(m.idx>u.idx)return 1;else return 0}static _compareCompletionItemsSnippetsDown(m,u){if(m.completion.kind!==u.completion.kind){if(m.completion.kind===28)return 1;else if(u.completion.kind===28)return-1}return ds._compareCompletionItems(m,u)}static _compareCompletionItemsSnippetsUp(m,u){if(m.completion.kind!==u.completion.kind){if(m.completion.kind===28)return-1;else if(u.completion.kind===28)return 1}return ds._compareCompletionItems(m,u)}}var sN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},S1=function(m,u){return function(p,v){u(p,v,m)}},Bu;class Cf{constructor(m){this.name=m}select(m,u,p){if(p.length===0)return 0;let v=p[0].score[0];for(let y=0;y<p.length;y++){let{score:k,completion:D}=p[y];if(k[0]!==v)break;if(D.preselect)return y}return 0}}class Hw extends Cf{constructor(){super("first")}memorize(m,u,p){}toJSON(){return}fromJSON(){}}class C1 extends Cf{constructor(){super("recentlyUsed");this._cache=new Ei(300,0.66),this._seq=0}memorize(m,u,p){let v=`${m.getLanguageId()}/${p.textLabel}`;this._cache.set(v,{touch:this._seq++,type:p.completion.kind,insertText:p.completion.insertText})}select(m,u,p){if(p.length===0)return 0;let v=m.getLineContent(u.lineNumber).substr(u.column-10,u.column-1);if(/\s$/.test(v))return super.select(m,u,p);let y=p[0].score[0],k=-1,D=-1,T=-1;for(let R=0;R<p.length;R++){if(p[R].score[0]!==y)break;let K=`${m.getLanguageId()}/${p[R].textLabel}`,q=this._cache.peek(K);if(q&&q.touch>T&&q.type===p[R].completion.kind&&q.insertText===p[R].completion.insertText)T=q.touch,D=R;if(p[R].completion.preselect&&k===-1)return k=R}if(D!==-1)return D;else if(k!==-1)return k;else return 0}toJSON(){return this._cache.toJSON()}fromJSON(m){this._cache.clear();let u=0;for(let[p,v]of m)v.touch=u,v.type=typeof v.type==="number"?v.type:Zd.fromString(v.type),this._cache.set(p,v);this._seq=this._cache.size}}class y1 extends Cf{constructor(){super("recentlyUsedByPrefix");this._trie=Mh.forStrings(),this._seq=0}memorize(m,u,p){let{word:v}=m.getWordUntilPosition(u),y=`${m.getLanguageId()}/${v}`;this._trie.set(y,{type:p.completion.kind,insertText:p.completion.insertText,touch:this._seq++})}select(m,u,p){let{word:v}=m.getWordUntilPosition(u);if(!v)return super.select(m,u,p);let y=`${m.getLanguageId()}/${v}`,k=this._trie.get(y);if(!k)k=this._trie.findSubstr(y);if(k)for(let D=0;D<p.length;D++){let{kind:T,insertText:R}=p[D].completion;if(T===k.type&&R===k.insertText)return D}return super.select(m,u,p)}toJSON(){let m=[];return this._trie.forEach((u,p)=>m.push([p,u])),m.sort((u,p)=>-(u[1].touch-p[1].touch)).forEach((u,p)=>u[1].touch=p),m.slice(0,200)}fromJSON(m){if(this._trie.clear(),m.length>0){this._seq=m[0][1].touch+1;for(let[u,p]of m)p.type=typeof p.type==="number"?p.type:Zd.fromString(p.type),this._trie.set(u,p)}}}var Ww=class m{static{Bu=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",y1],["recentlyUsed",C1],["first",Hw]])}static{this._storagePrefix="suggest/memories"}constructor(u,p){this._storageService=u,this._configService=p,this._disposables=new c,this._persistSoon=new be(()=>this._saveState(),500),this._disposables.add(u.onWillSaveState((v)=>{if(v.reason===yl.SHUTDOWN)this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(u,p,v){this._withStrategy(u,p).memorize(u,p,v),this._persistSoon.schedule()}select(u,p,v){return this._withStrategy(u,p).select(u,p,v)}_withStrategy(u,p){let v=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:u.getLanguageIdAtPosition(p.lineNumber,p.column),resource:u.uri});if(this._strategy?.name!==v){this._saveState();let y=Bu._strategyCtors.get(v)||Hw;this._strategy=new y;try{let D=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,T=this._storageService.get(`${Bu._storagePrefix}/${v}`,D);if(T)this._strategy.fromJSON(JSON.parse(T))}catch(k){}}return this._strategy}_saveState(){if(this._strategy){let p=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,v=JSON.stringify(this._strategy);this._storageService.store(`${Bu._storagePrefix}/${this._strategy.name}`,v,p,1)}}};Ww=Bu=sN([S1(0,wn),S1(1,X)],Ww);var Zc=Z("ISuggestMemories");fe(Zc,Ww,1);var x1;function xf(m){return x1?.(m)??null}function I1(m){x1=m}class Rt{static{this.inlineSuggestionVisible=new A("inlineSuggestionVisible",!1,e(1249,"Whether an inline suggestion is visible"))}static{this.inlineSuggestionAlternativeActionVisible=new A("inlineSuggestionAlternativeActionVisible",!1,e(1250,"Whether an alternative action for the inline suggestion is visible."))}static{this.inlineSuggestionHasIndentation=new A("inlineSuggestionHasIndentation",!1,e(1251,"Whether the inline suggestion starts with whitespace"))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new A("inlineSuggestionHasIndentationLessThanTabSize",!0,e(1252,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab"))}static{this.suppressSuggestions=new A("inlineSuggestionSuppressSuggestions",void 0,e(1253,"Whether suggestions should be suppressed for the current suggestion"))}static{this.cursorBeforeGhostText=new A("cursorBeforeGhostText",!1,e(1254,"Whether the cursor is at ghost text"))}static{this.cursorInIndentation=new A("cursorInIndentation",!1,e(1255,"Whether the cursor is in indentation"))}static{this.hasSelection=new A("editor.hasSelection",!1,e(1256,"Whether the editor has a selection"))}static{this.cursorAtInlineEdit=new A("cursorAtInlineEdit",!1,e(1257,"Whether the cursor is at an inline edit"))}static{this.inlineEditVisible=new A("inlineEditIsVisible",!1,e(1258,"Whether an inline edit is visible"))}static{this.tabShouldJumpToInlineEdit=new A("tabShouldJumpToInlineEdit",!1,e(1259,"Whether tab should jump to an inline edit."))}static{this.tabShouldAcceptInlineEdit=new A("tabShouldAcceptInlineEdit",!1,e(1260,"Whether tab should accept the inline edit."))}static{this.inInlineEditsPreviewEditor=new A("inInlineEditsPreviewEditor",!0,e(1261,"Whether the current code editor is showing an inline edits preview"))}}class An{static{this.None=new class extends An{distance(){return 0}}}static async create(m,u){if(!u.getOption(134).localityBonus)return An.None;if(!u.hasModel())return An.None;let p=u.getModel(),v=u.getPosition();if(!m.canComputeWordRanges(p.uri))return An.None;let[y]=await new Ko().provideSelectionRanges(p,[v]);if(y.length===0)return An.None;let k=await m.computeWordRanges(p.uri,y[0].range);if(!k)return An.None;let D=p.getWordUntilPosition(v);return delete k[D.word],new class extends An{distance(T,R){if(!v.equals(u.getPosition()))return 0;if(R.kind===17)return 2097152;let K=typeof R.label==="string"?R.label:R.label.label,q=k[K];if(r0(q))return 2097152;let Q=Bp(q,t.fromPositions(T),t.compareRangesUsingStarts),te=Q>=0?q[Q]:q[Math.max(0,~Q-1)],ne=y.length;for(let re of y){if(!t.containsRange(re.range,te))break;ne-=1}return ne}}}}var aN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},va=function(m,u){return function(p,v){u(p,v,m)}},Bw;class Ma{static shouldAutoTrigger(m){if(!m.hasModel())return!1;let u=m.getModel(),p=m.getPosition();u.tokenization.tokenizeIfCheap(p.lineNumber);let v=u.getWordAtPosition(p);if(!v)return!1;if(v.endColumn!==p.column&&v.startColumn+1!==p.column)return!1;if(!isNaN(Number(v.word)))return!1;return!0}constructor(m,u,p){this.leadingLineContent=m.getLineContent(u.lineNumber).substr(0,u.column-1),this.leadingWord=m.getWordUntilPosition(u),this.lineNumber=u.lineNumber,this.column=u.column,this.triggerOptions=p}}function dN(m,u,p){if(!Boolean(u.getContextKeyValue(Rt.inlineSuggestionVisible.key)))return!0;let v=u.getContextKeyValue(Rt.suppressSuggestions.key);if(v!==void 0)return!v;return!m.getOption(71).suppressSuggestions}function cN(m,u,p){if(!Boolean(u.getContextKeyValue("inlineSuggestionVisible")))return!0;let v=u.getContextKeyValue(Rt.suppressSuggestions.key);if(v!==void 0)return!v;return!m.getOption(71).suppressSuggestions}var Qc=Bw=class m{constructor(u,p,v,y,k,D,T,R,K){this._editor=u,this._editorWorkerService=p,this._clipboardService=v,this._telemetryService=y,this._logService=k,this._contextKeyService=D,this._configurationService=T,this._languageFeaturesService=R,this._envService=K,this._toDispose=new c,this._triggerCharacterListener=new c,this._triggerQuickSuggest=new Vn,this._triggerState=void 0,this._completionDisposables=new c,this._onDidCancel=new i,this._onDidTrigger=new i,this._onDidSuggest=new i,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new O(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let q=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{q=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{q=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection((Q)=>{if(!q)this._onCursorChange(Q)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{if(!q&&this._triggerState!==void 0)this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){$e(this._triggerCharacterListener),$e([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._waitForInlineCompletions?.dispose(),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(104)||!this._editor.hasModel()||!this._editor.getOption(137))return;let u=new Map;for(let v of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let y of v.triggerCharacters||[]){let k=u.get(y);if(!k)k=new Set,u.set(y,k);k.add(v)}let p=(v)=>{if(!cN(this._editor,this._contextKeyService,this._configurationService))return;if(Ma.shouldAutoTrigger(this._editor))return;if(!v){let D=this._editor.getPosition();v=this._editor.getModel().getLineContent(D.lineNumber).substr(0,D.column-1)}let y="";if(al(v.charCodeAt(v.length-1))){if(pn(v.charCodeAt(v.length-2)))y=v.substr(v.length-2)}else y=v.charAt(v.length-1);let k=u.get(y);if(k){let D=new Map;if(this._completionModel){for(let[T,R]of this._completionModel.getItemsByProvider())if(!k.has(T))D.set(T,R)}this.trigger({auto:!0,triggerKind:1,triggerCharacter:y,retrigger:Boolean(this._completionModel),clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:k,providerItemsToReuse:D}})}};this._triggerCharacterListener.add(this._editor.onDidType(p)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>p()))}get state(){if(!this._triggerState)return 0;else if(!this._triggerState.auto)return 1;else return 2}cancel(u=!1){if(this._triggerQuickSuggest.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerState!==void 0)this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:u})}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){if(this._triggerState!==void 0)if(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel()))this.cancel();else this.trigger({auto:this._triggerState.auto,retrigger:!0})}_onCursorChange(u){if(!this._editor.hasModel())return;let p=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!u.selection.isEmpty()||u.reason!==0&&u.reason!==3||u.source!=="keyboard"&&u.source!=="deleteLeft"){this.cancel();return}if(this._triggerState===void 0&&u.reason===0){if(p.containsRange(this._currentSelection)||p.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))this._doTriggerQuickSuggest()}else if(this._triggerState!==void 0&&u.reason===3)this._refilterCompletionItems()}_onCompositionEnd(){if(this._triggerState===void 0)this._doTriggerQuickSuggest();else this._refilterCompletionItems()}_doTriggerQuickSuggest(){if(Ms.isAllOff(this._editor.getOption(102)))return;if(this._editor.getOption(134).snippetsPreventQuickSuggestions&&wi.get(this._editor)?.isInSnippet())return;this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0)return;if(!Ma.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let u=this._editor.getModel(),p=this._editor.getPosition(),v=this._editor.getOption(102);if(Ms.isAllOff(v))return;let y=!1;if(!Ms.isAllOn(v)){u.tokenization.tokenizeIfCheap(p.lineNumber);let k=u.tokenization.getLineTokens(p.lineNumber),D=k.getStandardTokenType(k.findTokenIndexAtOffset(Math.max(p.column-1-1,0))),T=Ms.valueFor(v,D);if(T==="off"||T==="inline")return;if(T==="offWhenInlineCompletions")y=this._languageFeaturesService.inlineCompletionsProvider.has(u)&&this._editor.getOption(71).enabled}if(!dN(this._editor,this._contextKeyService,this._configurationService))return;if(!this._languageFeaturesService.completionProvider.has(u))return;if(y)this._waitForInlineCompletionsAndTrigger(u,p);else this.trigger({auto:!0})},this._editor.getOption(103))}_waitForInlineCompletionsAndTrigger(u,p){let v=u.getVersionId(),y=xf(this._editor),k=y?.model.get();if(!y||!k){this.trigger({auto:!0});return}if(k.state.get()?.inlineSuggestion)return;let T=new c;this._waitForInlineCompletions=T;let R=(K)=>{if(T.dispose(),this._waitForInlineCompletions===T)this._waitForInlineCompletions=void 0;if(this._triggerState!==void 0)return;if(!K)return;let q=this._editor.getModel(),Q=this._editor.getPosition();if(q===u&&q.getVersionId()===v&&Q?.equals(p)&&this._editor.hasWidgetFocus())this.trigger({auto:!0})};Kn(()=>{R(!0),k.stop("automatic")},750,T),ZI(T,(K)=>{if(y.model.read(K)!==k){K.dispose(),R(!1);return}let Q=k.status.read(K),te=k.state.read(K);if(!te&&Q==="loading")return;K.dispose(),R(!te)})}_refilterCompletionItems(){Ie(this._editor.hasModel()),Ie(this._triggerState!==void 0);let u=this._editor.getModel(),p=this._editor.getPosition(),v=new Ma(u,p,{...this._triggerState,refilter:!0});this._onNewContext(v)}trigger(u){if(!this._editor.hasModel())return;let p=this._editor.getModel(),v=new Ma(p,this._editor.getPosition(),u);this.cancel(u.retrigger),this._triggerState=u,this._onDidTrigger.fire({auto:u.auto,shy:u.shy??!1,position:this._editor.getPosition()}),this._context=v;let y={triggerKind:u.triggerKind??0};if(u.triggerCharacter)y={triggerKind:1,triggerCharacter:u.triggerCharacter};this._requestToken=new Me;let k=this._editor.getOption(128),D=1;switch(k){case"top":D=0;break;case"bottom":D=2;break}let{itemKind:T,showDeprecated:R}=Bw.createSuggestFilter(this._editor),K=new yd(D,u.completionOptions?.kindFilter??T,u.completionOptions?.providerFilter,u.completionOptions?.providerItemsToReuse,R),q=An.create(this._editorWorkerService,this._editor),Q=Hu(this._languageFeaturesService.completionProvider,p,this._editor.getPosition(),K,y,this._requestToken.token);Promise.all([Q,q]).then(async([te,ne])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){te.disposable.dispose();return}let re=u?.clipboardText;if(!re&&te.needsClipboard)re=await this._clipboardService.readText();if(this._triggerState===void 0){te.disposable.dispose();return}let ae=this._editor.getModel(),ge=new Ma(ae,this._editor.getPosition(),u),Se={...Cg.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new ds(te.items,this._context.column,{leadingLineContent:ge.leadingLineContent,characterCountDelta:ge.column-this._context.column},ne,this._editor.getOption(134),this._editor.getOption(128),Se,re),this._completionDisposables.add(te.disposable),this._onNewContext(ge),this._reportDurationsTelemetry(te.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment){for(let Oe of te.items)if(Oe.isInvalid)this._logService.warn(`[suggest] did IGNORE invalid completion item from ${Oe.provider._debugDisplayName}`,Oe.completion)}}).catch(J)}_reportDurationsTelemetry(u){if(Math.random()>0.0001)return;setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(u)}),this._logService.debug("suggest.durations.json",u)})}static createSuggestFilter(u){let p=new Set;if(u.getOption(128)==="none")p.add(28);let y=u.getOption(134);if(!y.showMethods)p.add(0);if(!y.showFunctions)p.add(1);if(!y.showConstructors)p.add(2);if(!y.showFields)p.add(3);if(!y.showVariables)p.add(4);if(!y.showClasses)p.add(5);if(!y.showStructs)p.add(6);if(!y.showInterfaces)p.add(7);if(!y.showModules)p.add(8);if(!y.showProperties)p.add(9);if(!y.showEvents)p.add(10);if(!y.showOperators)p.add(11);if(!y.showUnits)p.add(12);if(!y.showValues)p.add(13);if(!y.showConstants)p.add(14);if(!y.showEnums)p.add(15);if(!y.showEnumMembers)p.add(16);if(!y.showKeywords)p.add(17);if(!y.showWords)p.add(18);if(!y.showColors)p.add(19);if(!y.showFiles)p.add(20);if(!y.showReferences)p.add(21);if(!y.showColors)p.add(22);if(!y.showFolders)p.add(23);if(!y.showTypeParameters)p.add(24);if(!y.showSnippets)p.add(28);if(!y.showUsers)p.add(25);if(!y.showIssues)p.add(26);return{itemKind:p,showDeprecated:y.showDeprecated}}_onNewContext(u){if(!this._context)return;if(u.lineNumber!==this._context.lineNumber){this.cancel();return}if(kt(u.leadingLineContent)!==kt(this._context.leadingLineContent)){this.cancel();return}if(u.column<this._context.column){if(u.leadingWord.word)this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});else this.cancel();return}if(!this._completionModel)return;if(u.leadingWord.word.length!==0&&u.leadingWord.startColumn>this._context.leadingWord.startColumn){if(Ma.shouldAutoTrigger(this._editor)&&this._context){let v=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:v}})}return}if(u.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&u.leadingWord.word.length!==0){let p=new Map,v=new Set;for(let[y,k]of this._completionModel.getItemsByProvider())if(k.length>0&&k[0].container.incomplete)v.add(y);else p.set(y,k);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:v,providerItemsToReuse:p}})}else{let p=this._completionModel.lineContext,v=!1;if(this._completionModel.lineContext={leadingLineContent:u.leadingLineContent,characterCountDelta:u.column-this._context.column},this._completionModel.items.length===0){let y=Ma.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(y&&this._context.leadingWord.endColumn<u.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(!this._context.triggerOptions.auto){if(this._completionModel.lineContext=p,v=this._completionModel.items.length>0,v&&u.leadingWord.word.length===0){this.cancel();return}}else{this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:u.triggerOptions,isFrozen:v})}}};Qc=Bw=aN([va(1,fi),va(2,Zn),va(3,Sn),va(4,Be),va(5,V),va(6,X),va(7,j),va(8,Sg)],Qc);var L1=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Vu=function(m,u){return function(p,v){u(p,v,m)}};class k1{constructor(m,u,p,v,y,k,D){this.range=m,this.insertText=u,this.filterText=p,this.additionalTextEdits=v,this.command=y,this.gutterMenuLinkAction=k,this.completion=D,this.doNotLog=!0}}var Vw=class m extends zk{constructor(u,p,v,y,k,D){super(k.disposable);this.model=u,this.line=p,this.word=v,this.completionModel=y,this._suggestMemoryService=D}canBeReused(u,p,v){return this.model===u&&this.line===p&&this.word.word.length>0&&this.word.startColumn===v.startColumn&&this.word.endColumn<v.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){let u=[],{items:p}=this.completionModel,v=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},p),y=Ce.slice(p,v),k=Ce.slice(p,0,v),D=5;for(let T of Ce.concat(y,k)){if(T.score===kr.Default)continue;let R=new t(T.editStart.lineNumber,T.editStart.column,T.editInsertEnd.lineNumber,T.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),K=T.completion.insertTextRules&&T.completion.insertTextRules&4?{snippet:T.completion.insertText}:T.completion.insertText;if(u.push(new k1(R,K,T.filterTextLow??T.labelLow,T.completion.additionalTextEdits,T.completion.command,T.completion.action,T)),D-->=0)T.resolve(he.None)}return u}};Vw=L1([Vu(5,Zc)],Vw);var zw=class m extends n{constructor(u,p,v,y){super();this._languageFeatureService=u,this._clipboardService=p,this._suggestMemoryService=v,this._editorService=y,this._store.add(u.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(u,p,v,y){if(v.selectedSuggestionInfo)return;let k;for(let ne of this._editorService.listCodeEditors())if(ne.getModel()===u){k=ne;break}if(!k)return;let D=k.getOption(102);if(Ms.isAllOff(D))return;u.tokenization.tokenizeIfCheap(p.lineNumber);let T=u.tokenization.getLineTokens(p.lineNumber),R=T.getStandardTokenType(T.findTokenIndexAtOffset(Math.max(p.column-1-1,0)));if(Ms.valueFor(D,R)!=="inline")return;let K=u.getWordAtPosition(p),q;if(!K?.word)q=this._getTriggerCharacterInfo(u,p);if(!K?.word&&!q)return;if(!K)K=u.getWordUntilPosition(p);if(K.endColumn!==p.column)return;let Q,te=u.getValueInRange(new t(p.lineNumber,1,p.lineNumber,p.column));if(!q&&this._lastResult?.canBeReused(u,p.lineNumber,K)){let ne=new Sf(te,p.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=ne,this._lastResult.acquire(),Q=this._lastResult}else{let ne=await Hu(this._languageFeatureService.completionProvider,u,p,new yd(void 0,Qc.createSuggestFilter(k).itemKind,q?.providers),q&&{triggerKind:1,triggerCharacter:q.ch},y),re;if(ne.needsClipboard)re=await this._clipboardService.readText();let ae=new ds(ne.items,p.column,new Sf(te,0),An.None,k.getOption(134),k.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},re);Q=new Vw(u,p.lineNumber,K,ae,ne,this._suggestMemoryService)}return this._lastResult=Q,Q}handleItemDidShow(u,p){p.completion.resolve(he.None)}disposeInlineCompletions(u){u.release()}_getTriggerCharacterInfo(u,p){let v=u.getValueInRange(t.fromPositions({lineNumber:p.lineNumber,column:p.column-1},p)),y=new Set;for(let k of this._languageFeatureService.completionProvider.all(u))if(k.triggerCharacters?.includes(v))y.add(k);if(y.size===0)return;return{providers:y,ch:v}}};zw=L1([Vu(0,j),Vu(1,Zn),Vu(2,Zc),Vu(3,ye)],zw);Oa(zw);var lN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},hN=function(m,u){return function(p,v){u(p,v,m)}};function D1(m){if(m instanceof Kw)return m._instance;return m}class Kw{constructor(m){this.instantiationService=m}init(...m){}}function T1(m){return m.get()}var E1=class m extends Kw{constructor(u,p){super(p);this.init(u)}};E1=lN([hN(1,L)],E1);class Id{validateOrThrow(m){let u=this.validate(m);if(u.error)throw Error(u.error.message);return u.content}}class zu extends Id{constructor(m){super();this.type=m}validate(m){if(typeof m!==this.type)return{content:void 0,error:{message:`Expected ${this.type}, but got ${typeof m}`}};return{content:m,error:void 0}}getJSONSchema(){return{type:this.type}}}var uN=new zu("string");function R1(){return uN}new zu("number");var gN=new zu("boolean");function Uw(){return gN}new zu("object");class N1 extends Id{validate(m){return{content:m,error:void 0}}getJSONSchema(){return{}}}function M1(){return new N1}class qw extends Id{validate(m){if(m!==void 0)return{content:void 0,error:{message:`Expected undefined, but got ${typeof m}`}};return{content:void 0,error:void 0}}getJSONSchema(){return{}}}function O1(){return new qw}class If{constructor(m){this.validator=m}}function Ku(m){return new If(m)}class P1 extends Id{constructor(m){super();this.properties=m}validate(m){if(typeof m!=="object"||m===null)return{content:void 0,error:{message:"Expected object"}};let u={};for(let p in this.properties){let v=this.properties[p],y=m[p],k=v instanceof If,D=k?v.validator:v;if(k&&y===void 0)continue;let{content:T,error:R}=D.validate(y);if(R)return{content:void 0,error:{message:`Error in property '${p}': ${R.message}`}};u[p]=T}return{content:u,error:void 0}}getJSONSchema(){let m=[],u={};for(let[v,y]of Object.entries(this.properties)){let k=y instanceof If,D=k?y.validator:y;if(u[v]=D.getJSONSchema(),!k)m.push(v)}return{type:"object",properties:u,...m.length>0?{required:m}:{}}}}function A1(m){return new P1(m)}class F1 extends Id{constructor(m){super();this.validators=m}validate(m){let u;for(let p of this.validators){let{content:v,error:y}=p.validate(m);if(!y)return{content:v,error:void 0};u=y}return{content:void 0,error:u}}getJSONSchema(){return{oneOf:FI(this.validators,(m)=>{if(m instanceof qw)return;return m.getJSONSchema()})}}}function H1(...m){return new F1(m)}class W1 extends Id{constructor(m,u){super();this._ref=m,this._validator=u}validate(m){return this._validator.validate(m)}getJSONSchema(){return{$ref:this._ref}}}function B1(m,u){return new W1(m,u)}var pN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},V1=function(m,u){return function(p,v){u(p,v,m)}};function z1(m){return m.sourceId+" @@ "+JSON.stringify({...m,modelUri:m.modelUri?.toString(),sourceId:void 0})}var el=class m extends n{static cast(){return this}constructor(u,p,v){super();this._key=u,this._contextKeyService=p,this._dataChannelService=v,this._isEnabledContextKeyValue=mN("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map((y)=>y!==void 0)}log(u){if(!this._isEnabledContextKeyValue.get())return!1;return this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(u),!0}};el=pN([V1(1,V),V1(2,Rg)],el);function mN(m,u){return Te(u.onDidChangeContext,()=>u.getContextKeyValue(m))}var fN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},K1=function(m,u){return function(p,v){u(p,v,m)}},Lf=class m extends n{constructor(u,p,v){super();this._editor=u,this._instantiationService=p,this._loggerService=v,this._structuredLogger=this._register(this._instantiationService.createInstance(el.cast(),"editor.inlineSuggest.logChangeReason.commandId"));let y=this._loggerService?.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),k=Te(this,y.onDidChangeLogLevel,()=>y.getLevel());this._register(H((D)=>{if(!Gk(k.read(D),Pi.Trace))return;D.store.add(this._editor.onDidChangeModelContent((T)=>{if(this._editor.getModel()?.uri.scheme==="output")return;y.trace("onDidChangeModelContent: "+T.detailedReasons.map((R)=>R.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(H((D)=>{if(!(this._editor instanceof vl))return;if(!this._structuredLogger.isEnabled.read(D))return;D.store.add(this._editor.onDidChangeModelContent((T)=>{let R=this._editor.getModel();if(!R)return;let K=T.detailedReasons[0],q={...K.metadata,sourceId:"TextModel.setChangeReason",source:K.metadata.source,time:Date.now(),modelUri:R.uri,modelVersion:R.getVersionId()};setTimeout(()=>{this._structuredLogger.log(q)},0)}))}))}};Lf=fN([K1(1,L),K1(2,b0)],Lf);function Ld(m){return new U1(m)}class U1 extends ay{constructor(m){super();this._textModel=m}getOffset(m){return this._textModel.getOffsetAt(m)}getPosition(m){return this._textModel.getPositionAt(m)}}var _N=[];function q1(){return _N}function jw(m){return bN(m).map((p)=>p.getEndPosition())}function bN(m){let u=Gv.createSortPermutation(m,Cn((y)=>y.range,t.compareRangesUsingStarts)),v=new fo(u.apply(m)).getNewRanges();return u.inverse().apply(v)}function j1(m,u){let p=Ld(u),v=u.getValue();return m.map((D)=>p.getStringReplacement(D)).map((D)=>D.removeCommonSuffixPrefix(v)).map((D)=>p.getTextReplacement(D))}function $1(m,u){let p=M("result",[]),v=[];return u.add(H((y)=>{let k=m.read(y);je((D)=>{if(k.length!==v.length){v.length=k.length;for(let T=0;T<v.length;T++)if(!v[T])v[T]=M("item",k[T]);p.set([...v],D)}v.forEach((T,R)=>T.set(k[R],D))})})),p}class $w{constructor(m){this._contextKeyService=m}bind(m,u){return Wr(m,this._contextKeyService,u instanceof Function?u:(p)=>u.read(p))}}function Gw(m,u){return new Promise((p)=>{let v=void 0,y=setTimeout(()=>{if(v)v.dispose();p()},m);if(u)v=u.onCancellationRequested(()=>{if(clearTimeout(y),v)v.dispose();p()})})}class tl{static message(m){return new tl(void 0,m)}constructor(m,u=void 0){this.error=m,this.message=u}static is(m){return m instanceof tl}logError(){if(this.message)console.error(`ErrorResult: ${this.message}`,this.error);else console.error("ErrorResult: An unexpected error-case occurred, usually caused by invalid input.",this.error)}}class kf{static startNow(m,u,p,v=G1){return new kf(m,u,p,Date.now(),v)}constructor(m,u,p,v,y=G1){if(this.startValue=m,this.endValue=u,this.durationMs=p,this.startTimeMs=v,this._interpolationFunction=y,m===u)this.durationMs=0}isFinished(m){return m>=this.startTimeMs+this.durationMs}getValue(m){let u=m-this.startTimeMs;if(u>=this.durationMs)return this.endValue;return this._interpolationFunction(u,this.startValue,this.endValue-this.startValue,this.durationMs)}}function G1(m,u,p,v){return m===v?u+p:p*(-Math.pow(2,-10*m/v)+1)+u}function Z1(m,u,p,v){return p*((m=m/v-1)*m*m+1)+u}class Zw{constructor(m){this._value=m}getValue(m){let u=Date.now();if(!this._value.isFinished(u))Ym.instance.invalidateOnNextAnimationFrame(m);return this._value.getValue(u)}isFinished(m){let u=Date.now(),p=this._value.isFinished(u);if(!p)Ym.instance.invalidateOnNextAnimationFrame(m);return p}}class Ym{constructor(){this._counter=Mi(this),this._isScheduled=!1}static{this.instance=new Ym}invalidateOnNextAnimationFrame(m){if(this._counter.read(m),!this._isScheduled)this._isScheduled=!0,Pe().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()})}_update(){this._counter.trigger(void 0)}}class Os{constructor(m,u){this.lineNumber=m,this.parts=u,ws(()=>Ac(u,(p,v)=>p.column<=v.column))}equals(m){return this.lineNumber===m.lineNumber&&this.parts.length===m.parts.length&&this.parts.every((u,p)=>u.equals(m.parts[p]))}renderForScreenReader(m){if(this.parts.length===0)return"";let u=this.parts[this.parts.length-1],p=m.substr(0,u.column-1);return new fo([...this.parts.map((y)=>new ct(t.fromPositions(new r(1,y.column)),y.lines.map((k)=>k.line).join(`
34
- `)))]).applyToString(p).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((m)=>m.lines.length===0)}get lineCount(){return 1+this.parts.reduce((m,u)=>m+u.lines.length-1,0)}}class kd{constructor(m,u,p,v=[]){this.column=m,this.text=u,this.preview=p,this._inlineDecorations=v,this.lines=ei(this.text).map((y,k)=>({line:y,lineDecorations:Ii.filter(this._inlineDecorations,k+1,1,y.length+1)}))}equals(m){return this.column===m.column&&this.lines.length===m.lines.length&&this.lines.every((u,p)=>u.line===m.lines[p].line&&Ii.equalsArr(u.lineDecorations,m.lines[p].lineDecorations))}}class Uu{constructor(m,u,p,v=0){this.lineNumber=m,this.columnRange=u,this.text=p,this.additionalReservedLineCount=v,this.parts=[new kd(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=ei(this.text)}renderForScreenReader(m){return this.newLines.join(`
35
- `)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((m)=>m.lines.length===0)}equals(m){return this.lineNumber===m.lineNumber&&this.columnRange.equals(m.columnRange)&&this.newLines.length===m.newLines.length&&this.newLines.every((u,p)=>u===m.newLines[p])&&this.additionalReservedLineCount===m.additionalReservedLineCount}}function Xw(m,u){return Ke(m,u,Yw)}function Yw(m,u){if(m===u)return!0;if(!m||!u)return!1;if(m instanceof Os&&u instanceof Os)return m.equals(u);if(m instanceof Uu&&u instanceof Uu)return m.equals(u);return!1}function Qo(m,u,p){let v=p?m.range.intersectRanges(p):m.range;if(!v)return m;let y=m.text.replaceAll(`\r
36
- `,`
37
- `),k=u.getValueInRange(v,1),D=co(k,y),T=At.ofText(k.substring(0,D)).addToPosition(m.range.getStartPosition()),R=y.substring(D),K=t.fromPositions(T,m.range.getEndPosition());return new ct(K,R)}function Ef(m,u){return m.text.startsWith(u.text)&&vN(m.range,u.range)}function vN(m,u){return u.getStartPosition().equals(m.getStartPosition())&&u.getEndPosition().isBeforeOrEqual(m.getEndPosition())}function Jw(m,u,p,v,y=0){let k=Qo(m,u);if(k.range.endLineNumber!==k.range.startLineNumber)return;let D=u.getLineContent(k.range.startLineNumber),T=kt(D).length;if(k.range.startColumn-1<=T){let re=kt(k.text).length,ae=D.substring(k.range.startColumn-1,T),[ge,Se]=[k.range.getStartPosition(),k.range.getEndPosition()],Oe=ge.column+ae.length<=Se.column?ge.delta(0,ae.length):Se,Ae=t.fromPositions(Oe,Se),We=k.text.startsWith(ae)?k.text.substring(ae.length):k.text.substring(re);k=new ct(Ae,We)}let K=u.getValueInRange(k.range),q=wN(K,k.text);if(!q)return;let Q=k.range.startLineNumber,te=[];if(p==="prefix"){let re=q.filter((ae)=>ae.originalLength===0);if(re.length>1||re.length===1&&re[0].originalStart!==K.length)return}let ne=k.text.length-y;for(let re of q){let ae=k.range.startColumn+re.originalStart+re.originalLength;if(p==="subwordSmart"&&v&&v.lineNumber===k.range.startLineNumber&&ae<v.column)return;if(re.originalLength>0)return;if(re.modifiedLength===0)continue;let ge=re.modifiedStart+re.modifiedLength,Se=Math.max(re.modifiedStart,Math.min(ge,ne)),Oe=k.text.substring(re.modifiedStart,Se),Ae=k.text.substring(Se,Math.max(re.modifiedStart,ge));if(Oe.length>0)te.push(new kd(ae,Oe,!1));if(Ae.length>0)te.push(new kd(ae,Ae,!0))}return new Os(Q,te)}var Df=void 0;function wN(m,u){if(Df?.originalValue===m&&Df?.newValue===u)return Df?.changes;else{let p=Y1(m,u,!0);if(p){let v=X1(p);if(v>0){let y=Y1(m,u,!1);if(y&&X1(y)<v)p=y}}return Df={originalValue:m,newValue:u,changes:p},p}}function X1(m){let u=0;for(let p of m)u+=p.originalLength;return u}function Y1(m,u,p){if(m.length>5000||u.length>5000)return;function v(K){let q=0;for(let Q=0,te=K.length;Q<te;Q++){let ne=K.charCodeAt(Q);if(ne>q)q=ne}return q}let y=Math.max(v(m),v(u));function k(K){if(K<0)throw Error("unexpected");return y+K+1}function D(K){let q=0,Q=0,te=new Int32Array(K.length);for(let ne=0,re=K.length;ne<re;ne++)if(p&&K[ne]==="("){let ae=Q*100+q;te[ne]=k(2*ae),q++}else if(p&&K[ne]===")"){q=Math.max(q-1,0);let ae=Q*100+q;if(te[ne]=k(2*ae+1),q===0)Q++}else te[ne]=K.charCodeAt(ne);return te}let T=D(m),R=D(u);return new Es({getElements:()=>T},{getElements:()=>R}).ComputeDiff(!1).changes}function J1(m,u){let p=void 0,v=!1,y=new ey(new Jn(m,void 0,u.update),(k,D)=>{if(!v)p=u.initial instanceof Function?u.initial():u.initial,v=!0;let T=u.update(k,p,D);return p=T,T},u.changeTracker,()=>{if(v)u.disposeFinal?.(p),v=!1},u.equalityComparer??Co,(k,D,T)=>{if(!v)throw new P("Can only set when there is a listener! This is to prevent leaks.");Kl(D,(R)=>{p=k,y.setValue(k,R,T)})},Dt.ofCaller());return y}var SN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Q1=function(m,u){return function(p,v){u(p,v,m)}};class eE{constructor(m,u){this._baseService=m,this._intercept=u}publicLog2(m,u){this._intercept(m,u),this._baseService.publicLog2(m,u)}}var Tf=class m extends eE{constructor(u,p){super(u,(v,y)=>{let k=!0;if(y&&Qw in y)k=Boolean(y[Qw]);if(k)p.getDataChannel("editTelemetry").sendData({eventName:v,data:y??{}})})}};Tf=SN([Q1(0,Sn),Q1(1,Rg)],Tf);var Qw=Symbol("shouldForwardToChannel");function tE(m){return{[Qw]:m}}function rS(m){if(!m)return!1;let u=m.toLowerCase();return u==="github.copilot"||u==="github.copilot-chat"}function iE(m,u){m.publicLog2("inlineCompletion.endOfLife",u)}var CN=new Set([";",",","=","+","-","*","/","{","}","(",")","[","]","<",">",":",".","!","?","&","|","^","%","@","#","~","`","\\","'",'"',"$"]);function yN(m){return CN.has(m)}function xN(m){return/[a-zA-Z0-9_]/.test(m)}function IN(m){return m===" "||m==="\t"}function Rf(m){let u=m.split(/\r\n|\r|\n/);if(u.length>1)return{kind:"multiLine",lineCount:u.length};let p=m.length===1,v;if(p){if(yN(m))v="syntactical";else if(xN(m))v="identifier";else if(IN(m))v="whitespace"}let y=m.match(/[ \t]+/g)||[],k=y.some((q)=>q.length>1),D=y.some((q)=>q.includes(" ")||q.includes("\t\t")),T=m.split(/\s+/).filter((q)=>q.length>0),R=T.length===1&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(T[0]),K=T.length>1;return{kind:"singleLine",isSingleCharacter:p,singleCharacterKind:v,isWord:R,isMultipleWords:K,isMultipleWhitespace:k,hasDuplicatedWhitespace:D}}class oE{constructor(m){this.edits=m}toString(){return JSON.stringify({edits:this.edits})}}function cS(m,u,p){if(m.replacements.length===0)return;return new oE(m.replacements.map((v)=>LN(v,u)))}function dS(m){if(m.length===0)return 0;return m.split(/\r\n|\r|\n/).length-1}function LN(m,u,p){let{replaceRange:v,newText:y}=m,k=v.length,D=y.length,T=dS(y);switch(v.isEmpty?"insert":y.length===0?"delete":"replace"){case"insert":return{operation:"insert",properties:kN(v.start,y,u),charactersInserted:D,charactersDeleted:0,linesInserted:T,linesDeleted:0};case"delete":{let K=u.getValue().substring(v.start,v.endExclusive);return{operation:"delete",properties:EN(v.start,v.endExclusive,u),charactersInserted:0,charactersDeleted:k,linesInserted:0,linesDeleted:dS(K)}}case"replace":{let K=u.getValue().substring(v.start,v.endExclusive);return{operation:"replace",properties:DN(K,y),charactersInserted:D,charactersDeleted:k,linesInserted:T,linesDeleted:dS(K)}}}}function kN(m,u,p,v){let y=Rf(u),k=p.getPositionAt(m),D=p.getLineContent(k.lineNumber),T=D.length,R,K=D.trim().length===0,q=k.column>T,Q=k.column===1;if(K)R="emptyLine";else if(q)R="endOfLine";else if(Q)R="startOfLine";else R="middleOfLine";let te;return{textShape:y,locationShape:R,relativeToCursor:te}}function EN(m,u,p){let v=p.getValue().substring(m,u),y=Rf(v),k=p.getPositionAt(m),D=p.getPositionAt(u),T=p.getLineContent(D.lineNumber),R=D.column>T.length,K=k.lineNumber===D.lineNumber&&k.column===1&&D.column>T.length;return{textShape:y,isAtEndOfLine:R,deletesEntireLineContent:K}}function DN(m,u){let p=Rf(m),v=Rf(u),y=p.kind==="singleLine"&&p.isWord,k=v.kind==="singleLine"&&v.isWord,D=y&&k,T=u.length>m.length,R=u.length<m.length,K=p.kind==="singleLine"&&v.kind==="singleLine",q=p.kind==="singleLine"&&v.kind==="multiLine",Q=p.kind==="multiLine"&&v.kind==="singleLine";return{isWordToWordReplacement:D,isAdditive:T,isSubtractive:R,isSingleLineToSingleLine:K,isSingleLineToMultiLine:q,isMultiLineToSingleLine:Q}}function Nf(m,u,p,v){let y=Qo(m,p),k=m.range;if(!k||u&&!u.getStartPosition().equals(k.getStartPosition())||v.lineNumber!==y.range.startLineNumber||y.isEmpty)return!1;let D=p.getValueInRange(y.range,1),T=y.text,R=Math.max(0,v.column-y.range.startColumn),K=T.substring(0,R),q=T.substring(R),Q=D.substring(0,R),te=D.substring(R),ne=p.getLineIndentColumn(y.range.startLineNumber);if(y.range.startColumn<=ne){if(Q=Q.trimStart(),Q.length===0)te=te.trimStart();if(K=K.trimStart(),K.length===0)q=q.trimStart()}return K.startsWith(Q)&&!!eS(te,q)}var Mf;(function(m){function u(p){return p?.command.id??void 0}m.toString=u})(Mf||(Mf={}));class cs extends Yp{static snapshot(m){return new cs(m)}constructor(m){super();this._textModel=m,this._version=m.getVersionId()}get uri(){return this._textModel.uri}_assertValid(){if(this._textModel.getVersionId()!==this._version)J(Error(`TextModel has changed: expected version ${this._version}, got ${this._textModel.getVersionId()}`))}targets(m){return this._textModel.uri.toString()===m.uri.toString()}getValueOfRange(m){return this._assertValid(),this._textModel.getValueInRange(m)}getLineLength(m){return this._assertValid(),this._textModel.getLineLength(m)}get length(){this._assertValid();let m=this._textModel.getLineCount(),u=this._textModel.getLineLength(m);return new At(m-1,u)}getEOL(){return this._assertValid(),this._textModel.getEOL()}getPositionAt(m){return this._assertValid(),this._textModel.getPositionAt(m)}getValueInRange(m){return this._assertValid(),this._textModel.getValueInRange(m)}getVersionId(){return this._version}dangerouslyGetUnderlyingModel(){return this._textModel}}var nl;(function(m){function u(p,v,y=!0){if(!p.isInlineEdit&&!p.action?.uri&&p.action?.kind==="edit")return qu.create(p,v,p.action);else return ju.create(p,v,y)}m.create=u})(nl||(nl={}));function TN(m){let u=m?.kind==="edit"?{...m,alternativeAction:Mf.toString(m.alternativeAction),target:m?.target.uri.toString()}:{...m,target:m?.target.uri.toString()};return JSON.stringify(u)}class lS{constructor(m,u,p,v){this._data=m,this.identity=u,this.hint=p,this.originalTextRef=v}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===Po.Explicit}get forwardStable(){return this.source.inlineSuggestions.enableForwardStability??!1}get targetRange(){if(this.hint)return this.hint.range;if(this.action?.kind==="edit")return this.action.textReplacement.range;else if(this.action?.kind==="jumpTo")return t.fromPositions(this.action.position);throw new P("InlineSuggestionItem: Either hint or action must be set")}get semanticId(){return this.hash}get gutterMenuLinkAction(){return this._sourceInlineCompletion.gutterMenuLinkAction}get command(){return this._sourceInlineCompletion.command}get supportsRename(){return this._data.supportsRename}get warning(){return this._sourceInlineCompletion.warning}get showInlineEditMenu(){return!!this._sourceInlineCompletion.showInlineEditMenu}get hash(){return TN(this.action)}get requestUuid(){return this._data.context.requestUuid}get partialAccepts(){return this._data.partialAccepts}get _sourceInlineCompletion(){return this._data.sourceInlineCompletion}addRef(){this.identity.addRef(),this.source.addRef()}removeRef(){this.identity.removeRef(),this.source.removeRef()}reportInlineEditShown(m,u,p,v,y){let k=this.action?.kind==="edit"?this.action.textReplacement.text:"";this._data.reportInlineEditShown(m,k,u,p,this.computeEditKind(v),y)}reportPartialAccept(m,u,p){this._data.reportPartialAccept(m,u,p)}reportEndOfLife(m){this._data.reportEndOfLife(m)}setEndOfLifeReason(m){this._data.setEndOfLifeReason(m)}setIsPreceeded(m){this._data.setIsPreceeded(m.partialAccepts)}setNotShownReasonIfNotSet(m){this._data.setNotShownReason(m)}getSourceCompletion(){return this._sourceInlineCompletion}setRenameProcessingInfo(m){this._data.setRenameProcessingInfo(m)}withAction(m){return this._data.withAction(m)}addPerformanceMarker(m){this._data.addPerformanceMarker(m)}}class Pf{constructor(){this._onDispose=Mi(this),this.onDispose=this._onDispose,this._jumpedTo=M(this,!1),this._refCount=0,this.id="InlineCompletionIdentity"+Pf.idCounter++}static{this.idCounter=0}get jumpedTo(){return this._jumpedTo}addRef(){this._refCount++}removeRef(){if(this._refCount--,this._refCount===0)this._onDispose.trigger(void 0)}setJumpTo(m){this._jumpedTo.set(!0,m)}}class $u{static create(m){return new $u(t.lift(m.range),m.content,m.style)}constructor(m,u,p){this.range=m,this.content=u,this.style=p}withEdit(m,u){let p=new B(u.getOffset(this.range.getStartPosition()),u.getOffset(this.range.getEndPosition())),v=Kk([p],m)[0];if(!v)return;let y=u.getRange(v);return new $u(y,this.content,this.style)}}class qu extends lS{static create(m,u,p){let v=new Pf,y=u.getTransformer(),k=p.insertText.replace(/\r\n|\r|\n/g,u.getEOL()),D=MN(new Un(y.getOffsetRange(p.range),k),u),T=D.removeCommonSuffixAndPrefix(u.getValue()),R=y.getTextReplacement(D),K=m.hint?$u.create(m.hint):void 0;return new qu(D,T,R,R.range,p.snippetInfo,m.additionalTextEdits,m,v,K,u)}constructor(m,u,p,v,y,k,D,T,R,K){super(D,T,R,K);this._edit=m,this._trimmedEdit=u,this._textEdit=p,this._originalRange=v,this.snippetInfo=y,this.additionalTextEdits=k,this.isInlineEdit=!1}get action(){return{kind:"edit",textReplacement:this.getSingleTextEdit(),snippetInfo:this.snippetInfo,stringEdit:new to([this._trimmedEdit]),alternativeAction:void 0,target:this.originalTextRef}}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(m){return new qu(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,m,this.hint,this.originalTextRef)}withEdit(m,u){if(!this.originalTextRef.targets(u))return this;let p=Kk([this._edit.replaceRange],m);if(p.length===0)return;let v=new Un(p[0],this._textEdit.text),y=Ld(u),k=y.getTextReplacement(v),D=this.hint;if(D){if(D=D.withEdit(m,y),!D)return}let T=v.removeCommonSuffixAndPrefix(u.getValue());return new qu(v,T,k,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,D,this.originalTextRef)}canBeReused(m,u){let p=this._textEdit.range;return!!p&&p.containsPosition(u)&&this.isVisible(m,u)&&At.ofRange(p).isGreaterThanOrEqualTo(At.ofRange(this._originalRange))}isVisible(m,u){let p=this.getSingleTextEdit();return Nf(p,this._originalRange,m,u)}computeEditKind(m){return cS(new to([this._edit]),m)}get editRange(){return this.getSingleTextEdit().range}}class ju extends lS{static create(m,u,p=!0){let v,y=[];if(m.action?.kind==="edit"){let T=p?RN(u,m.action.range,m.action.insertText):NN(u,m.action.range,m.action.insertText),R=fo.fromStringEdit(T,u),K=T.isEmpty()?new ct(new t(1,1,1,1),""):R.toReplacement(u);y=T.replacements.map((q)=>{let Q=t.fromPositions(u.getPositionAt(q.replaceRange.start),u.getTransformer().getPosition(q.replaceRange.endExclusive)),te=u.getValueInRange(Q);return Of.create(q,te)}),v={kind:"edit",snippetInfo:m.action.snippetInfo,stringEdit:T,textReplacement:K,alternativeAction:m.action.alternativeAction,target:u}}else if(m.action?.kind==="jumpTo")v={kind:"jumpTo",position:m.action.position,offset:u.getTransformer().getOffset(m.action.position),target:u};else if(v=void 0,!m.hint)throw new P("InlineEditItem: action is undefined and no hint is provided");let k=new Pf,D=m.hint?$u.create(m.hint):void 0;return new ju(v,m,k,y,D,!1,u.getVersionId(),u)}constructor(m,u,p,v,y,k=!1,D,T){super(u,p,y,T);this._action=m,this._edits=v,this._lastChangePartOfInlineEdit=k,this._inlineEditModelVersion=D,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get action(){return this._action}withIdentity(m){return new ju(this._action,this._data,m,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion,this.originalTextRef)}canBeReused(m,u){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===m.getVersionId()}withEdit(m,u){if(!this.originalTextRef.targets(u))return this;return this._applyTextModelChanges(m,this._edits,u)}_applyTextModelChanges(m,u,p){let v=Ld(p),y=!1,k=this._inlineEditModelVersion,D,T=cs.snapshot(p);if(this.action?.kind==="edit"){if(u=u.map((te)=>te.applyTextModelChanges(m)),u.some((te)=>te.edit===void 0))return;let K=p.getVersionId();if(y=u.some((te)=>te.lastChangeUpdatedEdit),y)k=K??-1;if(K===null||k+20<K)return;if(u=u.filter((te)=>!te.edit.isEmpty),u.length===0)return;let q=new to(u.map((te)=>te.edit));D={kind:"edit",textReplacement:v.getTextEdit(q).toReplacement(new mu(p)),snippetInfo:this.snippetInfo,stringEdit:q,alternativeAction:this.action.alternativeAction,target:T}}else if(this.action?.kind==="jumpTo"){let K=this.action.offset,q=m.applyToOffsetOrUndefined(K);if(q===void 0)return;D={kind:"jumpTo",position:v.getPosition(q),offset:q,target:T}}else D=void 0;let R=this.hint;if(R){if(R=R.withEdit(m,v),!R)return}return new ju(D,this._data,this.identity,u,R,y,k,T)}computeEditKind(m){let u=this.action?.kind==="edit"?this.action.stringEdit:void 0;if(!u)return;return cS(u,m)}}function RN(m,u,p){let v=m.getEOL(),y=m.getValueOfRange(u),k=p.replace(/\r\n|\r|\n/g,v),R=Zp.getDefault().computeDiff(ei(y),ei(k),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:50}).changes.flatMap((te)=>te.innerChanges??[]);function K(te,ne){let re=At.fromPosition(ne.getStartPosition());return At.ofRange(ne).createRange(re.addToPosition(te))}let q=new Ta(k);return new to(R.map((te)=>{let ne=K(u.getStartPosition(),te.originalRange),re=m.getTransformer().getOffsetRange(ne),ae=q.getValueOfRange(te.modifiedRange),ge=new Un(re,ae),Se=m.getValueOfRange(ne);return ON(ge,Se,R.length,m)}))}function NN(m,u,p){return new to([new Un(m.getTransformer().getOffsetRange(u),p)])}class Of{static create(m,u){let p=co(m.newText,u),v=ns(m.newText,u),y=m.newText.substring(p,m.newText.length-v);return new Of(m,y,p,v)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(m,u,p,v,y=!1){this._edit=m,this._trimmedNewText=u,this._prefixLength=p,this._suffixLength=v,this._lastChangeUpdatedEdit=y}applyTextModelChanges(m){let u=this._clone();return u._applyTextModelChanges(m),u}_clone(){return new Of(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(m){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new P("UpdatedInnerEdits: No edit to apply changes to");let u=this._applyChanges(this._edit,m);if(!u){this._edit=void 0;return}this._edit=u.edit,this._lastChangeUpdatedEdit=u.editHasChanged}_applyChanges(m,u){let p=m.replaceRange.start,v=m.replaceRange.endExclusive,y=m.newText,k=!1,D=this._prefixLength>0||this._suffixLength>0;for(let T=u.replacements.length-1;T>=0;T--){let R=u.replacements[T],K=R.newText.length>0&&R.replaceRange.isEmpty;if(K&&!D&&R.replaceRange.start===p&&y.startsWith(R.newText)){p+=R.newText.length,y=y.substring(R.newText.length),v+=R.newText.length,k=!0;continue}if(K&&D&&R.replaceRange.start===p+this._prefixLength&&this._trimmedNewText.startsWith(R.newText)){v+=R.newText.length,k=!0,this._prefixLength+=R.newText.length,this._trimmedNewText=this._trimmedNewText.substring(R.newText.length);continue}if(R.newText.length===0&&R.replaceRange.length>0&&R.replaceRange.start>=p+this._prefixLength&&R.replaceRange.endExclusive<=v-this._suffixLength){v-=R.replaceRange.length,k=!0;continue}if(R.equals(m)){k=!0,p=R.replaceRange.endExclusive,y="";continue}if(R.replaceRange.start>v)continue;if(R.replaceRange.endExclusive<p){p+=R.newText.length-R.replaceRange.length,v+=R.newText.length-R.replaceRange.length;continue}return}if(this._trimmedNewText.length===0&&p+this._prefixLength===v-this._suffixLength)return{edit:new Un(new B(p+this._prefixLength,p+this._prefixLength),""),editHasChanged:!0};return{edit:new Un(new B(p,v),y),editHasChanged:k}}}function MN(m,u){let p=u.getEOL();if(m.replaceRange.isEmpty&&m.newText.includes(p))m=nE(m,u);return m}function ON(m,u,p,v){let y=v.getEOL();if(m.newText.endsWith(y)&&u.endsWith(y))m=new Un(m.replaceRange.deltaEnd(-y.length),m.newText.slice(0,-y.length));if(p===1&&m.replaceRange.isEmpty&&m.newText.includes(y)){let k=v.getTransformer().getPosition(m.replaceRange.start);if(v.getLineLength(k.lineNumber)!==0)m=nE(m,v)}if(p===1){let k=co(u,m.newText),D=ns(u.slice(k),m.newText.slice(k));if(k+D===u.length)return new Un(m.replaceRange.deltaStart(k).deltaEnd(-D),m.newText.substring(k,m.newText.length-D));if(k+D===m.newText.length)return new Un(m.replaceRange.deltaStart(k).deltaEnd(-D),"")}return m}function nE(m,u){if(!m.replaceRange.isEmpty)throw new P("Unexpected original range");if(m.replaceRange.start===0)return m;let p=u.getEOL(),v=u.getTransformer().getPosition(m.replaceRange.start),{column:y,lineNumber:k}=v;if(y===1&&k>1&&m.newText.endsWith(p)&&!m.newText.startsWith(p))return new Un(m.replaceRange.delta(-1),p+m.newText.slice(0,-p.length));return m}function rE(m,u){let p=new yy,v=new xy(p,(K)=>u.getLanguageConfiguration(K)),y=new wy(new sE([m]),v),k=_y(y,[],void 0,!0),D="",T=m.getLineContent();function R(K,q){if(K.kind===2){if(R(K.openingBracket,q),q=tn(q,K.openingBracket.length),K.child)R(K.child,q),q=tn(q,K.child.length);if(K.closingBracket)R(K.closingBracket,q),q=tn(q,K.closingBracket.length);else{let te=v.getSingleLanguageBracketTokens(K.openingBracket.languageId).findClosingTokenText(K.openingBracket.bracketIds);D+=te}}else if(K.kind===3);else if(K.kind===0||K.kind===1)D+=T.substring(_g(q),_g(tn(q,K.length)));else if(K.kind===4)for(let Q of K.children)R(Q,q),q=tn(q,Q.length)}return R(k,Ui),D}class sE{constructor(m){this.lines=m,this.tokenization={getLineTokens:(u)=>this.lines[u-1]}}getLineCount(){return this.lines.length}getLineLength(m){return this.lines[m-1].getLineContent().length}}var di;(function(m){m.Jump="jump",m.Accept="accept",m.Inactive="inactive"})(di||(di={}));class qo{static create(m,u=!1){return new qo(new Wn(F(m),m),u)}constructor(m,u=!1){this.event=m,this.alternativeAction=u}}var ht;(function(m){m.GhostText="ghostText",m.Custom="custom",m.SideBySide="sideBySide",m.Deletion="deletion",m.InsertionInline="insertionInline",m.InsertionMultiLine="insertionMultiLine",m.WordReplacements="wordReplacements",m.LineReplacement="lineReplacement",m.Collapsed="collapsed",m.JumpTo="jumpTo"})(ht||(ht={}));class rl{constructor(m,u,p,v,y,k,D,T){this.cursorColumnDistance=m,this.cursorLineDistance=u,this.lineCountOriginal=p,this.lineCountModified=v,this.characterCountOriginal=y,this.characterCountModified=k,this.disjointReplacements=D,this.sameShapeReplacements=T,this.longDistanceHintVisible=void 0,this.longDistanceHintDistance=void 0,this.isForAnotherDocument=void 0}setLongDistanceViewData(m,u){this.longDistanceHintVisible=!0,this.longDistanceHintDistance=Math.abs(u-m)}getData(){return{cursorColumnDistance:this.cursorColumnDistance,cursorLineDistance:this.cursorLineDistance,lineCountOriginal:this.lineCountOriginal,lineCountModified:this.lineCountModified,characterCountOriginal:this.characterCountOriginal,characterCountModified:this.characterCountModified,disjointReplacements:this.disjointReplacements,sameShapeReplacements:this.sameShapeReplacements,longDistanceHintVisible:this.longDistanceHintVisible,longDistanceHintDistance:this.longDistanceHintDistance,isForAnotherDocument:this.isForAnotherDocument}}}class Af{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(m,u){let p=new Af;for(let v of m)p._nodes.add(v);for(let v of m){let y=u(v);if(y.length>0){let k=new Set;for(let D of y)k.add(D);p._outgoingEdges.set(v,k)}}return p}removeCycles(){let m=[],u=new Set,p=new Set,v=[],y=(k)=>{u.add(k),p.add(k);let D=this._outgoingEdges.get(k);if(D){for(let T of D)if(!u.has(T))y(T);else if(p.has(T))m.push(T),v.push({from:k,to:T})}p.delete(k)};for(let k of this._nodes)if(!u.has(k))y(k);for(let{from:k,to:D}of v){let T=this._outgoingEdges.get(k);if(T)T.delete(D)}return{foundCycles:m}}getOutgoing(m){let u=this._outgoingEdges.get(m);return u?Array.from(u):[]}}function dE(m,u,p,v,y,k){let D=T0("icr"),T=new Me,R=void 0,K={...v,requestUuid:D},q=AN(u,p),Q=kR(m,(Se)=>Se.groupId),te=Af.from(m,(Se)=>Se.yieldsToGroupIds?.flatMap((Oe)=>Q.get(Oe)??[])??[]),{foundCycles:ne}=te.removeCycles();if(ne.length>0)dt(Error(`Inline completions: cyclic yield-to dependency detected. Path: ${ne.map((Se)=>Se.toString?Se.toString():""+Se).join(" -> ")}`));let re=0,ae=new og(async(Se)=>{try{if(re++,T.token.isCancellationRequested)return;let Oe=te.getOutgoing(Se);for(let Je of Oe){let tt=await ae.get(Je);if(tt)for(let ot of tt.inlineSuggestions.items){if(ot.isInlineEdit||typeof ot.insertText!=="string"&&ot.insertText!==void 0)return;if(ot.insertText!==void 0){let qe=new ct(t.lift(ot.range)??q,ot.insertText);if(Nf(qe,void 0,p,u))return}}}let Ae,We=Date.now();try{Ae=await Se.provideInlineCompletions(p,u,K,T.token)}catch(Je){dt(Je);return}let Ue=Date.now();if(!Ae)return;let Le=[],He=new hE(Ae,Le,Se);if(He.addRef(),hS(T.token,()=>He.removeRef(R)),T.token.isCancellationRequested)return;for(let Je of Ae.items){let tt=PN(Je,He,q,p,k,K,y,{startTime:We,endTime:Ue});if(tl.is(tt)){tt.logError();continue}Le.push(tt)}return He}finally{re--}}),ge=Pn.fromPromisesResolveOrder(m.map((Se)=>ae.get(Se))).filter(On);return{contextWithUuid:K,get didAllProvidersReturn(){return re===0},lists:ge,cancelAndDispose:(Se)=>{if(R!==void 0)return;R=Se,T.dispose(!0)}}}function hS(m,u){if(m.isCancellationRequested)return u(),n.None;else{let p=m.onCancellationRequested(()=>{p.dispose(),u()});return{dispose:()=>p.dispose()}}}function PN(m,u,p,v,y,k,D,T){let R,K=m.uri?W.revive(m.uri):void 0;if(m.jumpToPosition!==void 0)R={kind:"jumpTo",position:r.lift(m.jumpToPosition),uri:K};else if(m.insertText!==void 0){let q,Q,te=m.range?t.lift(m.range):p;if(typeof m.insertText==="string"){if(q=m.insertText,y&&m.completeBracketPairs){q=aE(q,te.getStartPosition(),v,y);let ne=q.length-m.insertText.length;if(ne!==0)te=new t(te.startLineNumber,te.startColumn,te.endLineNumber,te.endColumn+ne)}Q=void 0}else if("snippet"in m.insertText){let ne=m.insertText.snippet.length;if(y&&m.completeBracketPairs){m.insertText.snippet=aE(m.insertText.snippet,te.getStartPosition(),v,y);let ae=m.insertText.snippet.length-ne;if(ae!==0)te=new t(te.startLineNumber,te.startColumn,te.endLineNumber,te.endColumn+ae)}let re=new Mo().parse(m.insertText.snippet);if(re.children.length===1&&re.children[0]instanceof zi)q=re.children[0].value,Q=void 0;else q=re.toString(),Q={snippet:m.insertText.snippet,range:te}}else il(m.insertText);R={kind:"edit",range:te,insertText:q,snippetInfo:Q,uri:K,alternativeAction:void 0}}else if(R=void 0,!m.hint)return tl.message("Inline completion has no insertText, jumpToPosition nor hint.");return new cE(R,m.hint,m.additionalTextEdits||q1(),m,u,k,m.isInlineEdit??!1,m.supportsRename??!1,D,T,m.correlationId)}class cE{get action(){return this._action}constructor(m,u,p,v,y,k,D,T,R,K,q){this._action=m,this.hint=u,this.additionalTextEdits=p,this.sourceInlineCompletion=v,this.source=y,this.context=k,this.isInlineEdit=D,this.supportsRename=T,this._requestInfo=R,this._providerRequestInfo=K,this._correlationId=q,this._didShow=!1,this._timeUntilShown=void 0,this._timeUntilActuallyShown=void 0,this._showStartTime=void 0,this._shownDuration=0,this._showUncollapsedStartTime=void 0,this._showUncollapsedDuration=0,this._notShownReason=void 0,this._didReportEndOfLife=!1,this._lastSetEndOfLifeReason=void 0,this._isPreceeded=!1,this._partiallyAcceptedCount=0,this._partiallyAcceptedSinceOriginal={characters:0,ratio:0,count:0},this._renameInfo=void 0,this._editKind=void 0,this.performance=new lE,this._viewData={editorType:R.editorType}}get showInlineEditMenu(){return this.sourceInlineCompletion.showInlineEditMenu??!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(m,u,p,v,y,k){if(this.updateShownDuration(p),this._didShow||this._didReportEndOfLife)return;this.addPerformanceMarker("shown"),this._didShow=!0,this._editKind=y,this._viewData.viewKind=p,this._viewData.renderData=v,this._timeUntilShown=k-this._requestInfo.startTime,this._timeUntilActuallyShown=Date.now()-this._requestInfo.startTime;let D=new hf(v.lineCountModified,v.lineCountOriginal,v.characterCountModified,v.characterCountOriginal);if(this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions,this.sourceInlineCompletion,u,D),this.sourceInlineCompletion.shownCommand)await m.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(m,u,p){this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=p.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*p.ratio,1),this._partiallyAcceptedSinceOriginal.count+=p.count,this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions,this.sourceInlineCompletion,m,u)}reportEndOfLife(m){if(this._didReportEndOfLife)return;if(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),!m)m=this._lastSetEndOfLifeReason??{kind:xa.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(m.kind===xa.Rejected&&!this._didShow)m={kind:xa.Ignored,userTypingDisagreed:!1,supersededBy:void 0};if(m.kind===xa.Rejected&&this.source.provider.handleRejection)this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion);if(this.source.provider.handleEndOfLifetime){let u={requestUuid:this.context.requestUuid,correlationId:this._correlationId,selectedSuggestionInfo:!!this.context.selectedSuggestionInfo,partiallyAccepted:this._partiallyAcceptedCount,partiallyAcceptedCountSinceOriginal:this._partiallyAcceptedSinceOriginal.count,partiallyAcceptedRatioSinceOriginal:this._partiallyAcceptedSinceOriginal.ratio,partiallyAcceptedCharactersSinceOriginal:this._partiallyAcceptedSinceOriginal.characters,shown:this._didShow,shownDuration:this._shownDuration,shownDurationUncollapsed:this._showUncollapsedDuration,editKind:this._editKind?.toString(),preceeded:this._isPreceeded,timeUntilShown:this._timeUntilShown,timeUntilActuallyShown:this._timeUntilActuallyShown,timeUntilProviderRequest:this._providerRequestInfo.startTime-this._requestInfo.startTime,timeUntilProviderResponse:this._providerRequestInfo.endTime-this._requestInfo.startTime,editorType:this._viewData.editorType,languageId:this._requestInfo.languageId,requestReason:this._requestInfo.reason,viewKind:this._viewData.viewKind,notShownReason:this._notShownReason,performanceMarkers:this.performance.toString(),renameCreated:this._renameInfo?.createdRename,renameDuration:this._renameInfo?.duration,renameTimedOut:this._renameInfo?.timedOut,renameDroppedOtherEdits:this._renameInfo?.droppedOtherEdits,renameDroppedRenameEdits:this._renameInfo?.droppedRenameEdits,typingInterval:this._requestInfo.typingInterval,typingIntervalCharacterCount:this._requestInfo.typingIntervalCharacterCount,skuPlan:this._requestInfo.sku?.plan,skuType:this._requestInfo.sku?.type,availableProviders:this._requestInfo.availableProviders.map((p)=>p.toString()).join(","),...this._viewData.renderData?.getData()};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,m,u)}}setIsPreceeded(m){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=m}setNotShownReason(m){this._notShownReason??=m}setEndOfLifeReason(m){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=m}updateShownDuration(m){let u=Date.now();if(!this._showStartTime)this._showStartTime=u;let p=m===ht.Collapsed;if(!p&&this._showUncollapsedStartTime===void 0)this._showUncollapsedStartTime=u;if(p&&this._showUncollapsedStartTime!==void 0)this._showUncollapsedDuration+=u-this._showUncollapsedStartTime}reportInlineEditHidden(){if(this._showStartTime===void 0)return;let m=Date.now();if(this._shownDuration+=m-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime===void 0)return;this._showUncollapsedDuration+=m-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0}setRenameProcessingInfo(m){if(this._renameInfo)throw new P("Rename info has already been set.");this._renameInfo=m}withAction(m){return this._action=m,this}addPerformanceMarker(m){this.performance.mark(m)}}class lE{constructor(){this.markers=[],this.markers.push({name:"start",timeStamp:Date.now()})}mark(m){this.markers.push({name:m,timeStamp:Date.now()})}toString(){let m=[];for(let u=1;u<this.markers.length;u++){let p=this.markers[u].timeStamp-this.markers[u-1].timeStamp;m.push({[this.markers[u].name]:p})}return JSON.stringify(m)}}var ci;(function(m){m.TextEditor="textEditor",m.DiffEditor="diffEditor",m.Notebook="notebook"})(ci||(ci={}));class hE{constructor(m,u,p){this.inlineSuggestions=m,this.inlineSuggestionsData=u,this.provider=p,this.refCount=0}addRef(){this.refCount++}removeRef(m={kind:"other"}){if(this.refCount--,this.refCount===0){for(let u of this.inlineSuggestionsData)u.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,m)}else if(this.refCount<0)J(new P(`InlineSuggestionList (provider=${this.provider.providerId?.toString()}) refCount went negative (${this.refCount}) — more removeRef than addRef calls.`))}}function AN(m,u){let p=u.getWordAtPosition(m),v=u.getLineMaxColumn(m.lineNumber);return p?new t(m.lineNumber,p.startColumn,m.lineNumber,v):t.fromPositions(m,m.with(void 0,v))}function aE(m,u,p,v){let y=p.getLineContent(u.lineNumber),k=Un.replace(new B(u.column-1,y.length),m),T=p.tokenization.tokenizeLinesAt(u.lineNumber,[k.replace(y)])?.[0].sliceZeroCopy(k.getRangeAfterReplace());if(!T)return m;return rE(T,v)}var FN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Ff=function(m,u){return function(p,v){u(p,v,m)}},Ed=new A("renameInputVisible",!1,e(1460,"Whether the rename input widget is visible"));new A("renameInputFocused",!1,e(1461,"Whether the rename input widget is focused"));var Hf=class m{constructor(u,p,v,y,k,D){this._editor=u,this._acceptKeybindings=p,this._themeService=v,this._keybindingService=y,this._logService=D,this.allowEditorOverflow=!0,this._disposables=new c,this._visibleContextKey=Ed.bindTo(k),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new Kt,this._inputWithButton=new uE,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((T)=>{if(T.hasChanged(59))this._updateFont()})),this._disposables.add(v.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){if(!this._domNode)this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new uS(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:(u)=>{this._inputWithButton.input.value=u,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{if(this._renameCandidateListView?.focusedCandidate!==void 0)this._isEditingRenameCandidate=!0;if(this._timeBeforeFirstInputFieldEdit??=this._beforeFirstInputFieldEditSW.elapsed(),this._renameCandidateProvidersCts?.token.isCancellationRequested===!1)this._renameCandidateProvidersCts.cancel();this._renameCandidateListView?.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme());return this._domNode}_updateStyles(u){if(!this._domNode)return;let p=u.getColor(Vc),v=u.getColor(gg);this._domNode.style.backgroundColor=String(u.getColor(bo)??""),this._domNode.style.boxShadow=p?` 0 0 8px 2px ${p}`:"",this._domNode.style.border=v?`1px solid ${v}`:"",this._domNode.style.color=String(u.getColor(S0)??"");let y=u.getColor(E0);this._inputWithButton.domNode.style.backgroundColor=String(u.getColor(py)??""),this._inputWithButton.input.style.backgroundColor=String(u.getColor(py)??""),this._inputWithButton.domNode.style.borderWidth=y?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=y?"solid":"none",this._inputWithButton.domNode.style.borderColor=y?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;Ie(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);let u=this._editor.getOption(59);this._label.style.fontSize=`${this._computeLabelFontSize(u.fontSize)}px`}_computeLabelFontSize(u){return u*0.8}getPosition(){if(!this._visible)return null;if(!this._editor.hasModel()||!this._editor.getDomNode())return null;let u=Ss(this.getDomNode().ownerDocument.body),p=mt(this._editor.getDomNode()),v=this._getTopForPosition();this._nPxAvailableAbove=v+p.top,this._nPxAvailableBelow=u.height-this._nPxAvailableAbove;let y=this._editor.getOption(75),{totalHeight:k}=cl.getLayoutInfo({lineHeight:y}),D=this._nPxAvailableBelow>k*6?[2,1]:[1,2];return{position:this._position,preference:D}}beforeRender(){let[u,p]=this._acceptKeybindings;return this._label.innerText=e(1462,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(u)?.getLabel(),this._keybindingService.lookupKeybinding(p)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(u){if(u===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Ie(this._renameCandidateListView),Ie(this._nPxAvailableAbove!==void 0),Ie(this._nPxAvailableBelow!==void 0);let p=Sa(this._inputWithButton.domNode),v=Sa(this._label),y;if(u===2)y=this._nPxAvailableBelow;else y=this._nPxAvailableAbove;this._renameCandidateListView.layout({height:y-v-p,width:uo(this._inputWithButton.domNode)})}acceptInput(u){this._trace("invoking acceptInput"),this._currentAcceptInput?.(u)}cancelInput(u,p){this._currentCancelInput?.(u)}focusNextRenameSuggestion(){if(!this._renameCandidateListView?.focusNext())this._inputWithButton.input.value=this._currentName}focusPreviousRenameSuggestion(){if(!this._renameCandidateListView?.focusPrevious())this._inputWithButton.input.value=this._currentName}getInput(u,p,v,y,k){let{start:D,end:T}=this._getSelection(u,p);this._renameCts=k;let R=new c;if(this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,y===void 0)this._inputWithButton.button.style.display="none";else this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=y,this._requestRenameCandidates(p,!1),R.add(l(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(p,!0))),R.add(l(this._inputWithButton.button,x.KEY_DOWN,(q)=>{let Q=new ze(q);if(Q.equals(3)||Q.equals(10))Q.stopPropagation(),Q.preventDefault(),this._requestRenameCandidates(p,!0)}));this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",v),this._position=new r(u.startLineNumber,u.startColumn),this._currentName=p,this._inputWithButton.input.value=p,this._inputWithButton.input.setAttribute("selectionStart",D.toString()),this._inputWithButton.input.setAttribute("selectionEnd",T.toString()),this._inputWithButton.input.size=Math.max((u.endColumn-u.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),R.add(E(()=>{this._renameCts=void 0,k.dispose(!0)})),R.add(E(()=>{if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0})),R.add(E(()=>this._candidates.clear()));let K=new ks;return K.p.finally(()=>{R.dispose(),this._hide()}),this._currentCancelInput=(q)=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),K.complete(q),!0),this._currentAcceptInput=(q)=>{this._trace("invoking _currentAcceptInput"),Ie(this._renameCandidateListView!==void 0);let Q=this._renameCandidateListView.nCandidates,te,ne,re=this._renameCandidateListView.focusedCandidate;if(re!==void 0)this._trace("using new name from renameSuggestion"),te=re,ne={k:"renameSuggestion"};else this._trace("using new name from inputField"),te=this._inputWithButton.input.value,ne=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"};if(te===p||te.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),K.complete({newName:te,wantsPreview:v&&q,stats:{source:ne,nRenameSuggestions:Q,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},R.add(k.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),R.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),K.p}_requestRenameCandidates(u,p){if(this._requestRenameCandidatesOnce===void 0)return;if(this._renameCandidateProvidersCts!==void 0)this._renameCandidateProvidersCts.dispose(!0);if(Ie(this._renameCts),this._inputWithButton.buttonState!=="stop"){this._renameCandidateProvidersCts=new Me;let v=p?Vp.Invoke:Vp.Automatic,y=this._requestRenameCandidatesOnce(v,this._renameCandidateProvidersCts.token);if(y.length===0){this._inputWithButton.setSparkleButton();return}if(!p)this._hadAutomaticRenameSuggestionsInvocation=!0;this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(y,u,this._renameCts.token)}}_getSelection(u,p){Ie(this._editor.hasModel());let v=this._editor.getSelection(),y=0,k=p.length;if(!t.isEmpty(v)&&!t.spansMultipleLines(v)&&t.containsRange(u,v))y=Math.max(0,v.startColumn-u.startColumn),k=Math.min(u.endColumn,v.endColumn)-u.startColumn;return{start:y,end:k}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(u,p,v){let y=(...K)=>this._trace("_updateRenameCandidates",...K);y("start");let k=await ll(Promise.allSettled(u),v);if(this._inputWithButton.setSparkleButton(),k===void 0){y("returning early - received updateRenameCandidates results - undefined");return}let D=k.flatMap((K)=>K.status==="fulfilled"&&On(K.value)?K.value:[]);y(`received updateRenameCandidates results - total (unfiltered) ${D.length} candidates.`);let T=Zr(D,(K)=>K.newSymbolName);y(`distinct candidates - ${T.length} candidates.`);let R=T.filter(({newSymbolName:K})=>K.trim().length>0&&K!==this._inputWithButton.input.value&&K!==p&&!this._candidates.has(K));if(y(`valid distinct candidates - ${D.length} candidates.`),R.forEach((K)=>this._candidates.add(K.newSymbolName)),R.length<1){y("returning early - no valid distinct candidates");return}y("setting candidates"),this._renameCandidateListView.setCandidates(R),y("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){let u=this._editor.getVisibleRanges(),p;if(u.length>0)p=u[0].startLineNumber;else this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),p=Math.max(1,this._position.lineNumber-5);return this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(p)}_trace(...u){this._logService.trace("RenameWidget",...u)}};Hf=FN([Ff(2,De),Ff(3,ce),Ff(4,V),Ff(5,Be)],Hf);class uS{constructor(m,u){this._disposables=new c,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=u.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=u.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",m.appendChild(this._listContainer),this._listWidget=uS._createListWidget(this._listContainer,this._candidateViewHeight,u.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus((p)=>{if(p.elements.length===1)u.onFocusChange(p.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection((p)=>{if(p.elements.length===1)u.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur((p)=>{this._listWidget.setFocus([])})),this._listWidget.style(rc({listInactiveFocusForeground:Ql,listInactiveFocusBackground:ec}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:m,width:u}){this._availableHeight=m,this._minimumWidth=u}setCandidates(m){this._listWidget.splice(0,0,m);let u=this._pickListHeight(this._listWidget.length),p=this._pickListWidth(m);this._listWidget.layout(u,p),this._listContainer.style.height=`${u}px`,this._listContainer.style.width=`${p}px`,go(e(1463,"Received {0} rename suggestions",m.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 m=this._listWidget.getSelectedElements()[0];if(m!==void 0)return m.newSymbolName;let u=this._listWidget.getFocusedElements()[0];if(u!==void 0)return u.newSymbolName;return}focusNext(){if(this._listWidget.length===0)return!1;let m=this._listWidget.getFocus();if(m.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;else if(m[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;else{this._listWidget.focusNext();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;let m=this._listWidget.getFocus();if(m.length===0){this._listWidget.focusLast();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}else if(m[0]===0)return this._listWidget.setFocus([]),!1;else{this._listWidget.focusPrevious();let u=this._listWidget.getFocus()[0];return this._listWidget.reveal(u),!0}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){let{totalHeight:m}=cl.getLayoutInfo({lineHeight:this._lineHeight});return m}_pickListHeight(m){let u=this._candidateViewHeight*m,p=7;return Math.min(u,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(m){let u=Math.ceil(Math.max(...m.map((v)=>v.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+u+10)}static _createListWidget(m,u,p){let v=new class{getTemplateId(k){return"candidate"}getHeight(k){return u}},y=new class{constructor(){this.templateId="candidate"}renderTemplate(k){return new cl(k,p)}renderElement(k,D,T){T.populate(k)}disposeTemplate(k){k.dispose()}};return new io("NewSymbolNameCandidates",m,v,[y],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class uE{constructor(){this._buttonHoverContent="",this._disposables=new c,this._onDidInputChange=this._disposables.add(new i),this.onDidInputChange=this._onDidInputChange.event}get domNode(){if(!this._domNode)this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",e(1464,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=e(1465,"Generate New Name Suggestions"),this._buttonCancelHoverText=e(1466,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add(ri().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(l(this.input,x.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(l(this.input,x.KEY_DOWN,(m)=>{let u=new ze(m);if(u.keyCode===15||u.keyCode===17)this._onDidInputChange.fire()})),this._disposables.add(l(this.input,x.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(l(this.input,x.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(l(this.input,x.BLUR,()=>{this.domNode.style.outline="none"}));return this._domNode}get input(){return Ie(this._inputNode),this._inputNode}get button(){return Ie(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=no(b.sparkle),Xt(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHoverContent=this._buttonGenHoverText,this.input.focus()}setStopButton(){this._buttonState="stop",this._stopIcon??=no(b.stopCircle),Xt(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHoverContent=this._buttonCancelHoverText,this.input.focus()}dispose(){this._disposables.dispose()}}class cl{static{this._PADDING=2}constructor(m,u){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${u.lineHeight}px`,this._domNode.style.padding=`${cl._PADDING}px`;let p=document.createElement("div");p.style.display="flex",p.style.alignItems="center",p.style.width=p.style.height=`${u.lineHeight*0.8}px`,this._domNode.appendChild(p),this._icon=no(b.sparkle),this._icon.style.display="none",p.appendChild(this._icon),this._label=document.createElement("div"),sn(this._label,u),this._domNode.appendChild(this._label),m.appendChild(this._domNode)}populate(m){this._updateIcon(m),this._updateLabel(m)}_updateIcon(m){let u=!!m.tags?.includes(c0.AIGenerated);this._icon.style.display=u?"inherit":"none"}_updateLabel(m){this._label.innerText=m.newSymbolName}static getLayoutInfo({lineHeight:m}){return{totalHeight:m+cl._PADDING*2}}dispose(){}}var HN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Dd=function(m,u){return function(p,v){u(p,v,m)}},gS;class Gu{constructor(m,u,p){this.model=m,this.position=u,this._providerRenameIdx=0,this._providers=p.ordered(m)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(m){let u=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){let v=this._providers[this._providerRenameIdx];if(!v.resolveRenameLocation)break;let y=await v.resolveRenameLocation(this.model,this.position,m);if(!y)continue;if(y.rejectReason){u.push(y.rejectReason);continue}return y}this._providerRenameIdx=0;let p=this.model.getWordAtPosition(this.position);if(!p)return{range:t.fromPositions(this.position),text:"",rejectReason:u.length>0?u.join(`
38
- `):void 0};return{range:new t(this.position.lineNumber,p.startColumn,this.position.lineNumber,p.endColumn),text:p.word,rejectReason:u.length>0?u.join(`
39
- `):void 0}}async provideRenameEdits(m,u){return this._provideRenameEdits(m,this._providerRenameIdx,[],u)}async _provideRenameEdits(m,u,p,v){let y=this._providers[u];if(!y)return{edits:[],rejectReason:p.join(`
40
- `)};let k=await y.provideRenameEdits(this.model,this.position,m,v);if(!k)return this._provideRenameEdits(m,u+1,p.concat(e(1449,"No result.")),v);else if(k.rejectReason)return this._provideRenameEdits(m,u+1,p.concat(k.rejectReason),v);return k}}function gE(m,u){return m.ordered(u).length>0}async function pE(m,u,p,v,y){return new Gu(u,p,m).provideRenameEdits(v,y??he.None)}async function WN(m,u,p,v){let y=new Gu(u,p,m),k=await y.resolveRenameLocation(he.None);if(k?.rejectReason)return{edits:[],rejectReason:k.rejectReason};return y.provideRenameEdits(v,he.None)}var Pa=class m{static{gS=this}static{this.ID="editor.contrib.renameController"}static get(u){return u.getContribution(gS.ID)}constructor(u,p,v,y,k,D,T,R){this.editor=u,this._instaService=p,this._notificationService=v,this._bulkEditService=y,this._progressService=k,this._logService=D,this._configService=T,this._languageFeaturesService=R,this._disposableStore=new c,this._cts=new Me,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(Hf,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){let u=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Me,!this.editor.hasModel()){u("editor has no model");return}let p=this.editor.getPosition(),v=new Gu(this.editor.getModel(),p,this._languageFeaturesService.renameProvider);if(!v.hasProvider()){u("skeleton has no provider");return}let y=new Vr(this.editor,5,void 0,this._cts.token),k;try{u("resolving rename location");let re=v.resolveRenameLocation(y.token);this._progressService.showWhile(re,250),k=await re,u("resolved rename location")}catch(re){if(re instanceof er)u("resolve rename location cancelled",JSON.stringify(re,null,"\t"));else if(u("resolve rename location failed",re instanceof Error?re:JSON.stringify(re,null,"\t")),typeof re==="string"||lr(re))Bi.get(this.editor)?.showMessage(re||e(1450,"An unknown error occurred while resolving rename location"),p);return}finally{y.dispose()}if(!k){u("returning early - no loc");return}if(k.rejectReason){u(`returning early - rejected with reason: ${k.rejectReason}`,k.rejectReason),Bi.get(this.editor)?.showMessage(k.rejectReason,p);return}if(y.token.isCancellationRequested){u("returning early - cts1 cancelled");return}let D=new Vr(this.editor,5,k.range,this._cts.token),T=this.editor.getModel(),R=this._languageFeaturesService.newSymbolNamesProvider.all(T),K=await Promise.all(R.map(async(re)=>[re,await re.supportsAutomaticNewSymbolNamesTriggerKind??!1])),q=(re,ae)=>{let ge=K.slice();if(re===Vp.Automatic)ge=ge.filter(([Se,Oe])=>Oe);return ge.map(([Se])=>Se.provideNewSymbolNames(T,k.range,re,ae))};u("creating rename input field and awaiting its result");let Q=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),te=await this._renameWidget.getInput(k.range,k.text,Q,R.length>0?q:void 0,D);if(u("received response from rename input field"),typeof te==="boolean"){if(u(`returning early - rename input field response - ${te}`),te)this.editor.focus();D.dispose();return}this.editor.focus(),u("requesting rename edits");let ne=ll(v.provideRenameEdits(te.newName,D.token),D.token).then(async(re)=>{if(!re){u("returning early - no rename edits result");return}if(!this.editor.hasModel()){u("returning early - no model after rename edits are provided");return}if(re.rejectReason){u(`returning early - rejected with reason: ${re.rejectReason}`),this._notificationService.info(re.rejectReason);return}this.editor.setSelection(t.fromPositions(this.editor.getSelection().getPosition())),u("applying edits"),this._bulkEditService.apply(re,{editor:this.editor,showPreview:te.wantsPreview,label:e(1451,"Renaming '{0}' to '{1}'",k?.text,te.newName),code:"undoredo.rename",quotableLabel:e(1452,"Renaming {0} to {1}",k?.text,te.newName),respectAutoSaveConfig:!0,reason:$n.rename(k?.text,te.newName)}).then((ae)=>{if(u("edits applied"),ae.ariaSummary)En(e(1453,"Successfully renamed '{0}' to '{1}'. Summary: {2}",k.text,te.newName,ae.ariaSummary))}).catch((ae)=>{u(`error when applying edits ${JSON.stringify(ae,null,"\t")}`),this._notificationService.error(e(1454,"Rename failed to apply edits")),this._logService.error(ae)})},(re)=>{u("error when providing rename edits",JSON.stringify(re,null,"\t")),this._notificationService.error(e(1455,"Rename failed to compute edits")),this._logService.error(re)}).finally(()=>{D.dispose()});return u("returning rename operation"),this._progressService.showWhile(ne,250),ne}acceptRenameInput(u){this._renameWidget.acceptInput(u)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}};Pa=gS=HN([Dd(1,L),Dd(2,ut),Dd(3,Cl),Dd(4,ss),Dd(5,Be),Dd(6,ug),Dd(7,j)],Pa);class mE extends z{constructor(){super({id:"editor.action.rename",label:h(1457,"Rename Symbol"),precondition:_.and(o.writable,o.hasRenameProvider),kbOpts:{kbExpr:o.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(m,u){let p=m.get(ye),[v,y]=Array.isArray(u)&&u||[void 0,void 0];if(W.isUri(v)&&r.isIPosition(y))return p.openCodeEditor({resource:v},p.getActiveCodeEditor()).then((k)=>{if(!k)return;k.setPosition(y),k.invokeWithinContext((D)=>(this.reportTelemetry(D,k),this.run(D,k)))},J);return super.runCommand(m,u)}run(m,u){let p=m.get(Be),v=Pa.get(u);if(v)return p.trace("[RenameAction] got controller, running..."),v.run();return p.trace("[RenameAction] returning early - controller missing"),Promise.resolve()}}le(Pa.ID,Pa,4);I(mE);var pS=Bt.bindToContribution(Pa.get);U(new pS({id:"acceptRenameInput",precondition:Ed,handler:(m)=>m.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:o.focus,primary:3}}));U(new pS({id:"acceptRenameInputWithPreview",precondition:_.and(Ed,_.has("config.editor.rename.enablePreview")),handler:(m)=>m.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:o.focus,primary:2051}}));U(new pS({id:"cancelRenameInput",precondition:Ed,handler:(m)=>m.cancelRenameInput(),kbOpts:{weight:199,kbExpr:o.focus,primary:9,secondary:[1033]}}));Ze(class m extends an{constructor(){super({id:"focusNextRenameSuggestion",title:{...h(1458,"Focus Next Rename Suggestion")},precondition:Ed,keybinding:[{primary:18,weight:199}]})}run(u){let p=u.get(ye).getFocusedCodeEditor();if(!p)return;let v=Pa.get(p);if(!v)return;v.focusNextRenameSuggestion()}});Ze(class m extends an{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...h(1459,"Focus Previous Rename Suggestion")},precondition:Ed,keybinding:[{primary:16,weight:199}]})}run(u){let p=u.get(ye).getFocusedCodeEditor();if(!p)return;let v=Pa.get(p);if(!v)return;v.focusPreviousRenameSuggestion()}});po("_executeDocumentRenameProvider",function(m,u,p,...v){let[y]=v;Ie(typeof y==="string");let{renameProvider:k}=m.get(j);return WN(k,u,p,y)});po("_executePrepareRename",async function(m,u,p){let{renameProvider:v}=m.get(j),k=await new Gu(u,p,v).resolveRenameLocation(he.None);if(k?.rejectReason)throw Error(k.rejectReason);return k});it.as(or.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:e(1456,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var BN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},gl=function(m,u){return function(p,v){u(p,v,m)}},Ps;(function(m){m.no="no",m.yes="yes",m.maybe="maybe"})(Ps||(Ps={}));(function(m){function u(p){switch(p){case"no":return m.no;case"yes":return m.yes;case"maybe":return m.maybe;default:return m.no}}m.fromString=u})(Ps||(Ps={}));class fE{constructor(){}inferRename(m,u,p,v){let y=new t(u.startLineNumber,1,u.endLineNumber,m.getLineMaxColumn(u.endLineNumber)),k=u.startColumn-y.startColumn,D=y.endColumn-u.endColumn,T=m.getValueInRange(y),R=m.getValueInRange(new t(y.startLineNumber,y.startColumn,y.startLineNumber,y.startColumn+k))+p+m.getValueInRange(new t(y.endLineNumber,y.endColumn-D,y.endLineNumber,y.endColumn)),K=[],q=[],Q=void 0,te=void 0,ne=void 0,re=m.getOffsetAt(y.getStartPosition()),{changes:ae}=new Es(new cg(T),new cg(R)).ComputeDiff(!0);if(ae.length===0)return;let ge=[];for(let Ae of ae){if(ge.length===0){ge.push(Ae);continue}let We=ge[ge.length-1],Ue=Ae.originalStart-(We.originalStart+We.originalLength);if(Ue>0){let Le=re+We.originalStart+We.originalLength,He=m.getPositionAt(Le),Je=m.getWordAtPosition(He);if(Je){let tt=m.getOffsetAt(new r(He.lineNumber,Je.startColumn)),ot=m.getOffsetAt(new r(He.lineNumber,Je.endColumn)),qe=Le+Ue;if(tt<=Le&&qe<=ot&&tt<=qe&&qe<=ot){We.originalLength=Ae.originalStart+Ae.originalLength-We.originalStart,We.modifiedLength=Ae.modifiedStart+Ae.modifiedLength-We.modifiedStart;continue}}}ge.push(Ae)}let Se=0;for(let Ae of ge){let We=T.substring(Ae.originalStart,Ae.originalStart+Ae.originalLength),Ue=R.substring(Ae.modifiedStart,Ae.modifiedStart+Ae.modifiedLength),Le=re+Ae.originalStart,He=m.getPositionAt(Le),Je=Le+Ae.originalLength,tt=m.getPositionAt(Je),ot=t.fromPositions(He,tt),qe=Ue.length-Ae.originalLength;if(/\s/.test(We)){K.push(new ct(ot,Ue)),Se+=qe;continue}if(We.length>0){v.lastIndex=0;let lt=v.exec(We);if(lt===null||lt.index!==0||lt[0].length!==We.length){K.push(new ct(ot,Ue)),Se+=qe;continue}}if(/\s/.test(Ue)){K.push(new ct(ot,Ue)),Se+=qe;continue}if(Ue.length>0){v.lastIndex=0;let lt=v.exec(Ue);if(lt===null||lt.index!==0||lt[0].length!==Ue.length){K.push(new ct(ot,Ue)),Se+=qe;continue}}let nt=m.getWordAtPosition(He);if(nt===null){K.push(new ct(ot,Ue)),Se+=qe;continue}let _t=Ae.originalStart+1,st=Ae.originalLength===0&&Ae.modifiedLength>0,Ct;if(st&&_t===nt.endColumn&&nt.endColumn>nt.startColumn)Ct=this.getTokenAtPosition(m,new r(He.lineNumber,nt.startColumn));else Ct=this.getTokenAtPosition(m,He);if(nt.startColumn!==Ct.range.startColumn||nt.endColumn!==Ct.range.endColumn){K.push(new ct(ot,Ue)),Se+=qe;continue}if(Ct.type===0){let lt=m.getValueInRange(Ct.range);if(lt.length===0){K.push(new ct(ot,Ue)),Se+=qe;continue}if(Q===void 0)Q=lt;else if(Q!==lt){K.push(new ct(ot,Ue)),Se+=qe;continue}let li=m.getOffsetAt(Ct.range.getStartPosition())-re+Se,vt=m.getOffsetAt(Ct.range.getEndPosition())-re+Se;if(lt=R.substring(li,vt+qe),lt.length===0){K.push(new ct(ot,Ue)),Se+=qe;continue}if(te===void 0)te=lt;else if(te!==lt){K.push(new ct(ot,Ue)),Se+=qe;continue}if(ne===void 0)ne=Ct.range.getStartPosition();if(Q!==void 0&&te!==void 0&&Q.length>0&&te.length>0&&Q!==te)q.push(new ct(Ct.range,te));else q.push(new ct(ot,Ue));Se+=qe}else K.push(new ct(ot,Ue)),Se+=Ue.length-Ae.originalLength}if(Q===void 0||te===void 0||ne===void 0||Q.length===0||te.length===0||Q===te)return;v.lastIndex=0;let Oe=v.exec(Q);if(Oe===null||Oe.index!==0||Oe[0].length!==Q.length)return;if(v.lastIndex=0,Oe=v.exec(te),Oe===null||Oe.index!==0||Oe[0].length!==te.length)return;return{renames:{edits:q,position:ne,oldName:Q,newName:te},others:{edits:K}}}getTokenAtPosition(m,u){m.tokenization.tokenizeIfCheap(u.lineNumber);let p=m.tokenization.getLineTokens(u.lineNumber),v=p.findTokenIndexAtOffset(u.column-1);return{type:p.getStandardTokenType(v),range:new t(u.lineNumber,1+p.getStartOffset(v),u.lineNumber,1+p.getEndOffset(v))}}}class Zu{static create(m,u){let p=m.getFocusedCodeEditor();if(p===null)return;if(p.getModel()!==u)return;return new Zu(p,u.getVersionId())}constructor(m,u){this.editor=m,this.versionId=u}equals(m){if(m===void 0)return!1;return this.editor===m.editor&&this.versionId===m.versionId}}class _E{constructor(m,u,p,v,y,k,D,T,R){if(this._result=void 0,this._commandService=u,this._textModel=v,this._state=y,this._requestUuid=p,this._cancellationTokenSource=new Me,T===void 0||R===void 0){this._promise=pE(m.renameProvider,v,k,D,this._cancellationTokenSource.token);return}else this._promise=this.sendNesRenameRequest(v,k,R,D,T)}get requestUuid(){return this._requestUuid}isValid(m){return this._state.equals(Zu.create(m,this._textModel))}cancel(){this._cancellationTokenSource.cancel()}async getCount(){if(this._cancellationTokenSource.token.isCancellationRequested)return 0;let m=await this.getResult();if(m===void 0||this._cancellationTokenSource.token.isCancellationRequested)return 0;return m.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(m,u,p,v,y){try{let k=await this._commandService.executeCommand("github.copilot.nes.postRename",m.uri,u,p,v,y);if(k===void 0)return{rejectReason:"Rename failed",edits:[]};let D=[];for(let T of k)for(let R of T.changes){let K=new t(R.range.start.line+1,R.range.start.character+1,R.range.end.line+1,R.range.end.character+1),q=new kl(T.file,new ct(K,R.newText??v));D.push(q)}return{edits:D}}catch(k){return{rejectReason:"Rename failed",edits:[]}}}}var Wf=class m extends n{constructor(u,p,v,y,k,D){super();this._commandService=u,this._languageFeaturesService=p,this._languageConfigurationService=v,this._renameSymbolTrackerService=k,this._codeEditorService=D,this._renameInferenceEngine=new fE,this._renameRunnable=void 0,this._register(we.registerCommand(Nv,async(T,R,K)=>{if(K===void 0||!K.isValid(this._codeEditorService))return;try{let q=await K.getWorkspaceEdit();if(q===void 0)return;y.apply(q,{reason:R})}finally{if(this._renameRunnable===K)this._renameRunnable=void 0}}))}async proposeRenameRefactoring(u,p,v){if(!p.supportsRename||p.action?.kind!=="edit"||v.selectedSuggestionInfo)return p;if(!gE(this._languageFeaturesService.renameProvider,u))return p;let y=Zu.create(this._codeEditorService,u);if(y===void 0)return p;let k=Date.now(),D=p.action.textReplacement,T=this._languageConfigurationService.getLanguageConfiguration(u.getLanguageId()),R=this._renameInferenceEngine.inferRename(u,D.range,D.text,T.wordDefinition);if(R===void 0||R.renames.edits.length===0)return p;let{oldName:K,newName:q,position:Q,edits:te}=R.renames,ne=this._renameSymbolTrackerService.trackedWord.get(),re=void 0;if(ne!==void 0&&ne.model===u&&ne.originalWord===K&&ne.currentWord===q)re=ne.currentRange;let ae=!1,ge=await KI(this.checkRenamePrecondition(p,u,Q,K,q,re),100,()=>{ae=!0}),Se=this.isRenamePossible(p,ge,y,u);if(p.setRenameProcessingInfo({createdRename:Se,duration:Date.now()-k,timedOut:ae,droppedOtherEdits:Se?R.others.edits.length:void 0,droppedRenameEdits:Se?te.length-1:void 0}),!Se)return p;if(this._renameRunnable===void 0)this._renameRunnable=new _E(this._languageFeaturesService,this._commandService,p.requestUuid,u,y,Q,q,re,re!==void 0?K:void 0);let Oe=$n.inlineCompletionAccept({nes:p.isInlineEdit,requestUuid:p.requestUuid,providerId:p.source.provider.providerId,languageId:u.getLanguageId(),correlationId:p.getSourceCompletion().correlationId}),Ae={id:Nv,title:e(1274,"Rename"),arguments:[Oe,this._renameRunnable]},We={label:e(1275,"Rename"),icon:b.replaceAll,command:Ae,count:this._renameRunnable.getCount()},Ue={kind:"edit",range:te[0].range,insertText:te[0].text,snippetInfo:p.snippetInfo,alternativeAction:We,uri:u.uri},Le=cs.snapshot(u);return nl.create(p.withAction(Ue),Le,!1)}async checkRenamePrecondition(u,p,v,y,k,D){let T={canRename:Ps.no,timedOut:!1};try{let R=await this._commandService.executeCommand("github.copilot.nes.prepareRename",p.uri,v,y,k,u.requestUuid,D);if(R===void 0)return T;else if(typeof R==="string"){let K=Ps.fromString(R);if(K===Ps.yes||K===Ps.maybe)return{canRename:K,oldName:y,onOldState:!1};else return{canRename:K,timedOut:!1}}else return R}catch(R){return T}}isRenamePossible(u,p,v,y){if(p===void 0||p.canRename===Ps.no)return!1;if(!v.equals(Zu.create(this._codeEditorService,y)))return!1;if(this._renameRunnable===void 0)return!0;if(this._renameRunnable.requestUuid===u.requestUuid)return!1;else return this._renameRunnable.cancel(),this._renameRunnable=void 0,!0}};Wf=BN([gl(0,Ne),gl(1,j),gl(2,et),gl(3,Cl),gl(4,e_),gl(5,ye)],Wf);var VN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Sl=function(m,u){return function(p,v){u(p,v,m)}},mS,Bf=class m extends n{static{mS=this}static{this._requestId=0}constructor(u,p,v,y,k,D,T,R,K,q,Q){super();if(this._textModel=u,this._versionId=p,this._debounceValue=v,this._cursorPosition=y,this._languageConfigurationService=D,this._logService=T,this._configurationService=R,this._instantiationService=K,this._contextKeyService=q,this._textModelService=Q,this._updateOperation=this._register(new ie),this._state=J1(this,{initial:()=>({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:$o.createEmpty()}),disposeFinal:(te)=>{te.inlineCompletions.dispose(),te.suggestWidgetInlineCompletions.dispose()},changeTracker:SR(()=>({versionId:this._versionId})),update:(te,ne,re)=>{let ae=to.compose(re.changes.map((ge)=>ge.change?A0(ge.change.changes):to.empty).filter(On));if(ae.isEmpty())return ne;try{return{inlineCompletions:ne.inlineCompletions.createStateWithAppliedEdit(ae,this._textModel),suggestWidgetInlineCompletions:ne.suggestWidgetInlineCompletions.createStateWithAppliedEdit(ae,this._textModel)}}finally{ne.inlineCompletions.dispose(),ne.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,(te)=>te.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,(te)=>te.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=d(this,(te)=>{this._versionId.read(te),this._updateOperation.clear();return}),this._loadingCount=M(this,0),this.loading=this._loadingCount.map(this,(te)=>te>0),this._dataChannelTelemetryService=this._instantiationService.createInstance(Tf),this._loggingEnabled=oS("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=oS("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(el.cast(),"editor.inlineSuggest.logFetch.commandId")),this._renameProcessor=this._store.add(this._instantiationService.createInstance(Wf)),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store),k)this._updateCompletionsEnablement(k),this._register(this._configurationService.onDidChangeConfiguration((te)=>{if(te.affectsConfiguration(k))this._updateCompletionsEnablement(k)}));this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(u){let p=this._configurationService.getValue(u);if(!Gt(p))this._completionsEnabled=void 0;else this._completionsEnabled=p}_log(u){if(this._loggingEnabled.get())this._logService.info(z1(u));this._structuredFetchLogger.log(u)}fetch(u,p,v,y,k,D,T){let R=this._cursorPosition.get(),K=new bE(R,v,this._textModel.getVersionId(),new Set(u)),q=v.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if(this._updateOperation.value?.request.satisfies(K))return this._updateOperation.value.promise;else if(q?.request?.satisfies(K))return Promise.resolve(!0);let Q=!!this._updateOperation.value;this._updateOperation.clear();let te=new Me,ne=(async()=>{let ae=new c;this._loadingCount.set(this._loadingCount.get()+1,void 0);let ge=!1,Se=()=>{if(!ge)ge=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0)};ae.add(new be(()=>Se(),1e4)).schedule();let Ae=u.filter((Ue)=>Ue.providerId),We=new vE(v,T,Ae);try{let Ue=this._debounceValue.get(this._textModel),Le=y0(u.map((vt)=>vt.debounceDelayMs),jI(xi))??Ue;if(Q||k&&v.triggerKind===Po.Automatic)await Gw(Le,te.token);if(te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId)return We.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;let Je=mS._requestId++;if(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:Je,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:v.triggerKind,suggestInfo:v.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:p});let tt=new Date,ot=dE(u,this._cursorPosition.get(),this._textModel,v,T,this._languageConfigurationService);hS(te.token,()=>ot.cancelAndDispose({kind:"tokenCancellation"}));let qe=!1,nt=!1,_t=[];for await(let vt of ot.lists){if(!vt)continue;vt.addRef(),ae.add(E(()=>vt.removeRef(vt.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(let Nt of vt.inlineSuggestionsData){if(nt=!0,!v.includeInlineEdits&&(Nt.isInlineEdit||Nt.showInlineEditMenu)){Nt.setNotShownReason("notInlineEditRequested");continue}if(!v.includeInlineCompletions&&!(Nt.isInlineEdit||Nt.showInlineEditMenu)){Nt.setNotShownReason("notInlineCompletionRequested");continue}Nt.addPerformanceMarker("providerReturned");let bi=Nt.action?.uri,Zt,qt;if(bi&&bi.toString()!==this._textModel.uri.toString()){let ai=await this._textModelService.createModelReference(bi);Zt=ai.object.textEditorModel,qt=ai}else Zt=this._textModel,qt=void 0;let vi=cs.snapshot(Zt),gi=nl.create(Nt,vi);if(qt){let ai=sr(gi.identity.onDispose,()=>{qt?.dispose(),ai.dispose()})}if(Nt.addPerformanceMarker("itemCreated"),_t.push(gi),!gi.isInlineEdit&&!gi.showInlineEditMenu&&v.triggerKind===Po.Automatic){if(gi.isVisible(this._textModel,this._cursorPosition.get()))qe=!0}}if(qe)break}_t.forEach((vt)=>vt.addPerformanceMarker("providersResolved"));let st=await Promise.all(_t.map(async(vt)=>this._renameProcessor.proposeRenameRefactoring(this._textModel,vt,v)));if(st.forEach((vt)=>vt.addPerformanceMarker("renameProcessed")),ot.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){let vt=ot.didAllProvidersReturn,Nt=void 0;if(te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId)Nt="canceled";let bi=st.map((Zt)=>{let qt=Zt.getSourceCompletion();if(qt.doNotLog)return;let vi={insertText:qt.insertText,range:qt.range,additionalTextEdits:qt.additionalTextEdits,uri:qt.uri,command:qt.command,gutterMenuLinkAction:qt.gutterMenuLinkAction,shownCommand:qt.shownCommand,completeBracketPairs:qt.completeBracketPairs,isInlineEdit:qt.isInlineEdit,showInlineEditMenu:qt.showInlineEditMenu,showRange:qt.showRange,warning:qt.warning,hint:qt.hint,supportsRename:qt.supportsRename,correlationId:qt.correlationId,jumpToPosition:qt.jumpToPosition};return{...Qm(vi,(gi)=>{if(t.isIRange(gi))return t.lift(gi).toString();if(r.isIPosition(gi))return r.lift(gi).toString();if(ig.is(gi))return{$commandId:gi.id};return gi}),$providerId:Zt.source.provider.providerId?.toString()}}).filter((Zt)=>Zt!==void 0);this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:Je,durationMs:Date.now()-tt.getTime(),error:Nt,result:bi,time:Date.now(),didAllProvidersReturn:vt})}if(We.setRequestUuid(ot.contextWithUuid.requestUuid),nt){if(We.setHasProducedSuggestion(),st.length>0&&te.token.isCancellationRequested)st.forEach((vt)=>vt.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"))}else if(te.token.isCancellationRequested)We.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{let vt=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");We.setNoSuggestionReasonIfNotSet(vt?"completionsQuotaExceeded":"noSuggestion")}let Ct=v.earliestShownDateTime-Date.now();if(Ct>0)await Gw(Ct,te.token);if(st.forEach((vt)=>vt.addPerformanceMarker("minShowDelayPassed")),te.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==K.versionId||D.get()){let vt=te.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==K.versionId?"canceled:documentChanged":D.get()?"canceled:userJumped":"unknown";return st.forEach((Nt)=>Nt.setNotShownReasonIfNotSet(vt)),!1}let lt=new Date;this._debounceValue.update(this._textModel,lt.getTime()-tt.getTime());let li=this._cursorPosition.get();this._updateOperation.clear(),je((vt)=>{let Nt=this._state.get();if(v.selectedSuggestionInfo)this._state.set({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:Nt.suggestWidgetInlineCompletions.createStateWithAppliedResults(st,K,this._textModel,li,y)},vt);else this._state.set({inlineCompletions:Nt.inlineCompletions.createStateWithAppliedResults(st,K,this._textModel,li,y),suggestWidgetInlineCompletions:$o.createEmpty()},vt);Nt.inlineCompletions.dispose(),Nt.suggestWidgetInlineCompletions.dispose()})}finally{ae.dispose(),Se(),this._sendInlineCompletionsRequestTelemetry(We)}return!0})(),re=new wE(K,te,ne);return this._updateOperation.value=re,ne}clear(u){if(this._store.isDisposed)return;this._updateOperation.clear();let p=this._state.get();this._state.set({inlineCompletions:$o.createEmpty(),suggestWidgetInlineCompletions:$o.createEmpty()},u),p.inlineCompletions.dispose(),p.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){let u=this.inlineCompletions.get(),p=this.suggestWidgetInlineCompletions.get();if(!p)return;je((v)=>{if(!u||(p.request?.versionId??-1)>(u.request?.versionId??-1)){u?.dispose();let y=this._state.get();this._state.set({inlineCompletions:p.clone(),suggestWidgetInlineCompletions:$o.createEmpty()},v),y.inlineCompletions.dispose(),y.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(v)})}seedWithCompletion(u,p){let v=this._state.get();this._state.set({inlineCompletions:new $o([u],void 0),suggestWidgetInlineCompletions:$o.createEmpty()},p),v.inlineCompletions.dispose(),v.suggestWidgetInlineCompletions.dispose()}_sendInlineCompletionsRequestTelemetry(u){if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment"))return;if(u.requestUuid===void 0||u.hasProducedSuggestion)return;if(!Jk(this._completionsEnabled,this._textModel.getLanguageId()))return;if(!u.providers.some((v)=>rS(v.providerId?.extensionId)))return;let p={opportunityId:u.requestUuid,noSuggestionReason:u.noSuggestionReason??"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,skuPlan:u.requestInfo.sku?.plan,skuType:u.requestInfo.sku?.type,editorType:u.requestInfo.editorType,requestReason:u.requestInfo.reason,typingInterval:u.requestInfo.typingInterval,typingIntervalCharacterCount:u.requestInfo.typingIntervalCharacterCount,languageId:u.requestInfo.languageId,selectedSuggestionInfo:!!u.context.selectedSuggestionInfo,availableProviders:u.providers.map((v)=>v.providerId?.toString()).filter(On).join(","),...tE(u.providers.some((v)=>rS(v.providerId?.extensionId))),timeUntilProviderRequest:void 0,timeUntilProviderResponse:void 0,viewKind:void 0,preceeded:void 0,superseded:void 0,reason:void 0,acceptedAlternativeAction:void 0,correlationId:void 0,shownDuration:void 0,shownDurationUncollapsed:void 0,timeUntilShown:void 0,partiallyAccepted:void 0,partiallyAcceptedCountSinceOriginal:void 0,partiallyAcceptedRatioSinceOriginal:void 0,partiallyAcceptedCharactersSinceOriginal:void 0,cursorColumnDistance:void 0,cursorLineDistance:void 0,lineCountOriginal:void 0,lineCountModified:void 0,characterCountOriginal:void 0,characterCountModified:void 0,disjointReplacements:void 0,sameShapeReplacements:void 0,longDistanceHintVisible:void 0,longDistanceHintDistance:void 0,isForAnotherDocument:void 0,notShownReason:void 0,renameCreated:!1,renameDuration:void 0,renameTimedOut:!1,renameDroppedOtherEdits:void 0,renameDroppedRenameEdits:void 0,performanceMarkers:void 0,editKind:void 0};iE(this._dataChannelTelemetryService,p)}clearSuggestWidgetInlineCompletions(u){if(this._updateOperation.value?.request.context.selectedSuggestionInfo)this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}};Bf=mS=VN([Sl(5,et),Sl(6,Be),Sl(7,X),Sl(8,L),Sl(9,V),Sl(10,mn)],Bf);class bE{constructor(m,u,p,v){this.position=m,this.context=u,this.versionId=p,this.providers=v}satisfies(m){return this.position.equals(m.position)&&Wk(this.context.selectedSuggestionInfo,m.context.selectedSuggestionInfo,ph())&&(m.context.triggerKind===Po.Automatic||this.context.triggerKind===Po.Explicit)&&this.versionId===m.versionId&&zN(m.providers,this.providers)}}class vE{constructor(m,u,p){this.context=m,this.requestInfo=u,this.providers=p,this.hasProducedSuggestion=!1}setRequestUuid(m){this.requestUuid=m}setNoSuggestionReasonIfNotSet(m){this.noSuggestionReason??=m}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function zN(m,u){return[...m].every((p)=>u.has(p))}class wE{constructor(m,u,p){this.request=m,this.cancellationTokenSource=u,this.promise=p}dispose(){this.cancellationTokenSource.cancel()}}class $o extends n{static createEmpty(){return new $o([],void 0)}constructor(m,u){super();this.inlineCompletions=m,this.request=u;for(let p of this.inlineCompletions)p.addRef();this._register({dispose:()=>{for(let p of this.inlineCompletions)p.removeRef()}})}_findById(m){return this.inlineCompletions.find((u)=>u.identity===m)}_findByHash(m){return this.inlineCompletions.find((u)=>u.hash===m)}createStateWithAppliedEdit(m,u){let p=this.inlineCompletions.map((v)=>v.withEdit(m,u)).filter(On);return new $o(p,this.request)}createStateWithAppliedResults(m,u,p,v,y){let k=void 0;if(y){let R=this._findById(y);if(R&&R.canBeReused(p,u.position)){k=R;let K=m.find((q)=>q.hash===R.hash);if(K)m=UN(K,m);else m=[R,...m]}}let D=k?!k.isInlineEdit:m.some((R)=>!R.isInlineEdit&&R.isVisible(p,v)),T=[];for(let R of m){let K=this._findByHash(R.hash),q;if(K&&K!==R)q=R.withIdentity(K.identity),R.setIsPreceeded(K),K.setEndOfLifeReason({kind:xa.Ignored,userTypingDisagreed:!1,supersededBy:R.getSourceCompletion()});else q=R;if(D!==q.isInlineEdit)T.push(q)}return T.sort(Cn((R)=>R.showInlineEditMenu,s0)),T=KN(T,(R)=>R.semanticId),new $o(T,u)}clone(){return new $o(this.inlineCompletions,this.request)}}function KN(m,u){let p=new Set;return m.filter((v)=>{let y=u(v);if(p.has(y))return!1;return p.add(y),!0})}function UN(m,u){let p=u.indexOf(m);if(p>-1)return[m,...u.slice(0,p),...u.slice(p+1)];return u}class Fs extends n{static{this.MAX_SESSION_GAP_MS=3000}static{this.MIN_SESSION_DURATION_MS=1000}static{this.SESSION_HISTORY_LIMIT=50}static{this.TYPING_SPEED_WINDOW_MS=300000}static{this.MIN_CHARS_FOR_RELIABLE_SPEED=20}getTypingInterval(){if(this._cacheInvalidated||this._cachedTypingIntervalResult===null)this._cachedTypingIntervalResult=this._calculateTypingInterval(),this._cacheInvalidated=!1;return this._cachedTypingIntervalResult}constructor(m){super();this._textModel=m,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent((u)=>this._updateTypingSpeed(u)))}_updateTypingSpeed(m){let u=Date.now();if(!this._isUserTyping(m)){this._finalizeCurrentSession();return}if(this._currentSession&&u-this._lastChangeTime>Fs.MAX_SESSION_GAP_MS)this._finalizeCurrentSession();if(!this._currentSession)this._currentSession={startTime:u,endTime:u,characterCount:0};this._currentSession.endTime=u,this._currentSession.characterCount+=this._getActualCharacterCount(m),this._lastChangeTime=u,this._cacheInvalidated=!0}_getActualCharacterCount(m){let u=0;for(let p of m.changes)u+=Math.max(p.text.length,p.rangeLength);return u}_isUserTyping(m){if(!m.detailedReasons||m.detailedReasons.length===0)return!1;for(let u of m.detailedReasons)if(this._isUserTypingReason(u))return!0;return!1}_isUserTypingReason(m){if(m.metadata.isUndoing||m.metadata.isRedoing)return!1;switch(m.metadata.source){case"cursor":{let u=m.metadata.kind;return u==="type"||u==="compositionType"||u==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;if(this._currentSession.endTime-this._currentSession.startTime>=Fs.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0){if(this._typingSessions.push(this._currentSession),this._typingSessions.length>Fs.SESSION_HISTORY_LIMIT)this._typingSessions.shift()}this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){let m={...this._currentSession};if(m.endTime-m.startTime>=Fs.MIN_SESSION_DURATION_MS&&m.characterCount>0){let p=[...this._typingSessions,m];return this._calculateSpeedFromSessions(p)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(m){if(m.length===0)return{averageInterval:0,characterCount:0};let u=[...m].sort((K,q)=>q.endTime-K.endTime),p=Date.now()-Fs.TYPING_SPEED_WINDOW_MS,v=u.filter((K)=>K.endTime>p),y=u.splice(v.length),k=Xm(v.map((K)=>K.characterCount));for(let K=0;K<y.length&&k<Fs.MIN_CHARS_FOR_RELIABLE_SPEED;K++)v.push(y[K]),k+=y[K].characterCount;let D=Xm(v.map((K)=>K.endTime-K.startTime));if(D===0||k<=1)return{averageInterval:0,characterCount:k};let T=Math.max(1,k-1),R=D/T;return{averageInterval:Math.round(R),characterCount:k}}dispose(){this._finalizeCurrentSession(),super.dispose()}}var qN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Fa=function(m,u){return function(p,v){u(p,v,m)}},Vf=class m extends n{get isAcceptingPartially(){return this._isAcceptingPartially}get editor(){return this._editor}constructor(u,p,v,y,k,D,T,R,K,q,Q,te,ne,re,ae,ge){super();this.textModel=u,this._selectedSuggestItem=p,this._textModelVersionId=v,this._positions=y,this._debounceValue=k,this._enabled=D,this._isSuppressed=T,this._editor=R,this._instantiationService=K,this._commandService=q,this._languageConfigurationService=Q,this._accessibilityService=te,this._languageFeaturesService=ne,this._codeEditorService=re,this._inlineCompletionsService=ae,this._isActive=M(this,!1),this._onlyRequestInlineEditsSignal=Mi(this),this._forceUpdateExplicitlySignal=Mi(this),this._noDelaySignal=Mi(this),this._fetchSpecificProviderSignal=Mi(this),this._selectedInlineCompletionId=M(this,void 0),this.primaryPosition=d(this,(Le)=>this._positions.read(Le)[0]??new r(1,1)),this.allPositions=d(this,(Le)=>this._positions.read(Le)),this.sku=M(this,void 0),this._isAcceptingPartially=!1,this._appearedInsideViewport=d(this,(Le)=>{let He=this.state.read(Le);if(!He||!He.inlineSuggestion)return!1;return _S(this._editor,He.inlineSuggestion,Le)}),this._onDidAccept=this._register(new i),this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=h0({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(Le,He)=>(He.didUndo=Le.didChange(this._textModelVersionId)&&!!Le.change?.isUndoing,!0)}},(Le,He)=>{let Je=this._textModelVersionId.read(Le);if(Je!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===Je-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&He.didUndo)return this._lastAcceptedInlineCompletionInfo=void 0,!0;return!1}),this._preserveCurrentCompletionReasons=new Set([Hs.Redo,Hs.Undo,Hs.AcceptWord]),this.dontRefetchSignal=Mi(this),this._fetchInlineCompletionsPromise=h0({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Po.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,changeHint:void 0,textChange:!1,changeReason:""}),handleChange:(Le,He)=>{if(Le.didChange(this._textModelVersionId)){if(this._preserveCurrentCompletionReasons.has(this._getReason(Le.change)))He.preserveCurrentCompletion=!0;let Je=Le.change?.detailedReasons??[];He.changeReason=Je.length>0?Je[0].getType():"",He.textChange=!0}else if(Le.didChange(this._forceUpdateExplicitlySignal))He.preserveCurrentCompletion=!0,He.inlineCompletionTriggerKind=Po.Explicit;else if(Le.didChange(this.dontRefetchSignal))He.dontRefetch=!0;else if(Le.didChange(this._onlyRequestInlineEditsSignal))He.onlyRequestInlineEdits=!0;else if(Le.didChange(this._fetchSpecificProviderSignal))He.provider=Le.change?.provider,He.changeHint=Le.change?.changeHint;return!0}}},(Le,He)=>{if(this._source.clearOperationOnTextModelChange.read(Le),this._noDelaySignal.read(Le),this.dontRefetchSignal.read(Le),this._onlyRequestInlineEditsSignal.read(Le),this._forceUpdateExplicitlySignal.read(Le),this._fetchSpecificProviderSignal.read(Le),!(!this._isSuppressed()&&(this._enabled.read(Le)&&this._selectedSuggestItem.read(Le)||this._isActive.read(Le))&&(!this._inlineCompletionsService.isSnoozing()||He.inlineCompletionTriggerKind===Po.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(Le);let tt=this._source.suggestWidgetInlineCompletions.read(void 0),ot=this._selectedSuggestItem.read(Le);if(this._shouldShowOnSuggestConflict.read(void 0))ot=void 0;if(tt&&!ot)this._source.seedInlineCompletionsWithSuggestWidget();if(He.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(Le)&&He.inlineCompletionTriggerKind!==Po.Explicit){je((bi)=>{this._source.clear(bi)});return}let qe="";if(He.provider)qe+="providerOnDidChange";else if(He.inlineCompletionTriggerKind===Po.Explicit)qe+="explicit";if(He.changeReason)qe+=qe.length>0?`:${He.changeReason}`:He.changeReason;let nt=this._typing.getTypingInterval(),_t={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:qe,typingInterval:nt.averageInterval,typingIntervalCharacterCount:nt.characterCount,availableProviders:[],sku:this.sku.read(void 0)},st={triggerKind:He.inlineCompletionTriggerKind,selectedSuggestionInfo:ot?.toSelectedSuggestionInfo(),includeInlineCompletions:!He.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(Le),requestIssuedDateTime:_t.startTime,earliestShownDateTime:_t.startTime+(He.inlineCompletionTriggerKind===Po.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0)),changeHint:He.changeHint};if(st.triggerKind===Po.Automatic&&He.textChange){if(this.textModel.getAlternativeVersionId()===this._lastShownInlineCompletionInfo?.alternateTextModelVersionId)st={...st,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit}}let Ct=this.selectedInlineCompletion.read(void 0)??this._inlineSuggestionItems.read(void 0)?.inlineEdit,lt=He.preserveCurrentCompletion||Ct?.forwardStable?Ct:void 0,li=this._jumpedToId.map((bi)=>!!bi&&bi===this._inlineSuggestionItems.read(void 0)?.inlineEdit?.semanticId),vt=He.provider?{providers:[He.provider],label:"single:"+He.provider.providerId?.toString()}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},Nt=this.getAvailableProviders(vt.providers);return _t.availableProviders=Nt.map((bi)=>bi.providerId).filter(On),this._source.fetch(Nt,vt.label,st,lt?.identity,He.shouldDebounce,li,_t)}),this._inlineSuggestionItems=fn({owner:this},(Le)=>{let He=this._source.inlineCompletions.read(Le);if(!He)return;let Je=this.primaryPosition.read(Le),tt=void 0,ot=[];for(let qe of He.inlineCompletions)if(!qe.isInlineEdit){if(qe.isVisible(this.textModel,Je))ot.push(qe)}else tt=qe;if(ot.length!==0)tt=void 0;return{inlineCompletions:ot,inlineEdit:tt}}),this._inlineCompletionItems=fn({owner:this,equalsFn:eu()},(Le)=>this._inlineSuggestionItems.read(Le)?.inlineCompletions??[]),this.selectedInlineCompletionIndex=d(this,(Le)=>{let He=this._selectedInlineCompletionId.read(Le),Je=this._inlineCompletionItems.read(Le),tt=this._selectedInlineCompletionId===void 0?-1:Je.findIndex((ot)=>ot.semanticId===He);if(tt===-1)return this._selectedInlineCompletionId.set(void 0,void 0),0;return tt}),this.selectedInlineCompletion=d(this,(Le)=>{let He=this._inlineCompletionItems.read(Le),Je=this.selectedInlineCompletionIndex.read(Le);return He[Je]}),this.activeCommands=fn({owner:this,equalsFn:eu()},(Le)=>this.selectedInlineCompletion.read(Le)?.source.inlineSuggestions.commands??[]),this.inlineCompletionsCount=d(this,(Le)=>{if(this.lastTriggerKind.read(Le)===Po.Explicit)return this._inlineCompletionItems.read(Le).length;else return}),this._hasVisiblePeekWidgets=d(this,(Le)=>this._editorObs.openedPeekWidgets.read(Le)>0),this._shouldShowOnSuggestConflict=d(this,(Le)=>{let He=this._showOnSuggestConflict.read(Le);if(He!=="never"){if(!!this.selectedInlineCompletion.read(Le)){let tt=this._selectedSuggestItem.read(Le);if(!tt)return!1;if(He==="whenSuggestListIsIncomplete")return tt.listIncomplete;return!0}}return!1}),this.state=fn({owner:this,equalsFn:(Le,He)=>{if(!Le||!He)return Le===He;if(Le.kind==="ghostText"&&He.kind==="ghostText")return Xw(Le.ghostTexts,He.ghostTexts)&&Le.inlineSuggestion===He.inlineSuggestion&&Le.suggestItem===He.suggestItem;else if(Le.kind==="inlineEdit"&&He.kind==="inlineEdit")return Le.inlineSuggestion===He.inlineSuggestion;return!1}},(Le)=>{let He=this.textModel;if(this._suppressInSnippetMode.read(Le)&&this._isInSnippetMode.read(Le))return;let Je=this._inlineSuggestionItems.read(Le),tt=Je?.inlineEdit;if(tt){if(this._hasVisiblePeekWidgets.read(Le))return;let qe=this.primaryPosition.map((Ct)=>Y.fromRangeInclusive(tt.targetRange).addMargin(1,1).contains(Ct.lineNumber)),nt=tt.action?.kind==="edit"?tt.action.stringEdit:void 0,_t=nt?fo.fromStringEdit(nt,new mu(this.textModel)).replacements:[],st=(Je.inlineEdit?.command?.id==="vscode.open"||Je.inlineEdit?.command?.id==="_workbench.open")&&Je.inlineEdit?.command.arguments?.length?W.from(Je.inlineEdit?.command.arguments[0]):void 0;if(!tt.originalTextRef.targets(this.textModel))st=tt.originalTextRef.uri;return{kind:"inlineEdit",inlineSuggestion:tt,edits:_t,cursorAtInlineEdit:qe,nextEditUri:st}}let ot=this._selectedSuggestItem.read(Le);if(!this._shouldShowOnSuggestConflict.read(Le)&&ot){let qe=Qo(ot.getSingleTextEdit(),He),nt=this._computeAugmentation(qe,Le);if(!this._suggestPreviewEnabled.read(Le)&&!nt)return;let st=nt?.edit??qe,Ct=nt?nt.edit.text.length-qe.text.length:0,lt=this._suggestPreviewMode.read(Le),li=this._positions.read(Le),Nt=[st,...fS(this.textModel,li,st)].map((vi,gi)=>({edit:vi,ghostText:vi?Jw(vi,He,lt,li[gi],Ct):void 0})).filter(({edit:vi,ghostText:gi})=>vi!==void 0&&gi!==void 0),bi=Nt.map(({edit:vi})=>vi),Zt=Nt.map(({ghostText:vi})=>vi),qt=Zt[0]??new Os(st.range.endLineNumber,[]);return{kind:"ghostText",edits:bi,primaryGhostText:qt,ghostTexts:Zt,inlineSuggestion:nt?.completion,suggestItem:ot}}else{if(!this._isActive.read(Le))return;let qe=this.selectedInlineCompletion.read(Le);if(!qe)return;let nt=qe.getSingleTextEdit(),_t=this._inlineSuggestMode.read(Le),st=this._positions.read(Le),lt=[nt,...fS(this.textModel,st,nt)].map((Nt,bi)=>({edit:Nt,ghostText:Nt?Jw(Nt,He,_t,st[bi],0):void 0})).filter(({edit:Nt,ghostText:bi})=>Nt!==void 0&&bi!==void 0),li=lt.map(({edit:Nt})=>Nt),vt=lt.map(({ghostText:Nt})=>Nt);if(!vt[0])return;return{kind:"ghostText",edits:li,primaryGhostText:vt[0],ghostTexts:vt,inlineSuggestion:qe,suggestItem:void 0}}}),this.status=d(this,(Le)=>{if(this._source.loading.read(Le))return"loading";let He=this.state.read(Le);if(He?.kind==="ghostText")return"ghostText";if(He?.kind==="inlineEdit")return"inlineEdit";return"noSuggestion"}),this.inlineCompletionState=d(this,(Le)=>{let He=this.state.read(Le);if(!He||He.kind!=="ghostText")return;if(this._editorObs.inComposition.read(Le))return;return He}),this.inlineEditState=d(this,(Le)=>{let He=this.state.read(Le);if(!He||He.kind!=="inlineEdit")return;return He}),this.inlineEditAvailable=d(this,(Le)=>!!this.inlineEditState.read(Le)),this.warning=d(this,(Le)=>this.inlineCompletionState.read(Le)?.inlineSuggestion?.warning),this.ghostTexts=fn({owner:this,equalsFn:Xw},(Le)=>{let He=this.inlineCompletionState.read(Le);if(!He)return;return He.ghostTexts}),this.primaryGhostText=fn({owner:this,equalsFn:Yw},(Le)=>{let He=this.inlineCompletionState.read(Le);if(!He)return;return He?.primaryGhostText}),this.showCollapsed=d(this,(Le)=>{let He=this.state.read(Le);if(!He||He.kind!=="inlineEdit")return!1;if(He.inlineSuggestion.hint||He.inlineSuggestion.action?.kind==="jumpTo")return!1;let Je=He.inlineSuggestion.updatedEditModelVersion===this._textModelVersionId.read(Le);return(this._inlineEditsShowCollapsedEnabled.read(Le)||!Je)&&this._jumpedToId.read(Le)!==He.inlineSuggestion.semanticId&&!this._inAcceptFlow.read(Le)}),this._tabShouldIndent=d(this,(Le)=>{if(this._inAcceptFlow.read(Le))return!1;function He(ot){return ot.startLineNumber!==ot.endLineNumber}function Je(ot,qe){let nt=ot.getLineIndentColumn(qe),_t=ot.getLineLastNonWhitespaceColumn(qe),st=Math.max(_t,nt);return new t(qe,nt,qe,st)}return this._editorObs.selections.read(Le)?.some((ot)=>{if(ot.isEmpty())return this.textModel.getLineLength(ot.startLineNumber)===0;else return He(ot)||ot.containsRange(Je(this.textModel,ot.startLineNumber))})}),this.tabShouldJumpToInlineEdit=d(this,(Le)=>{if(this._tabShouldIndent.read(Le))return!1;let He=this.inlineEditState.read(Le);if(!He)return!1;if(He.inlineSuggestion.action?.kind==="jumpTo")return!0;if(this.showCollapsed.read(Le))return!0;if(this._inAcceptFlow.read(Le)&&this._appearedInsideViewport.read(Le))return!1;return!He.cursorAtInlineEdit.read(Le)}),this.tabShouldAcceptInlineEdit=d(this,(Le)=>{let He=this.inlineEditState.read(Le);if(!He)return!1;if(He.inlineSuggestion.action?.kind==="jumpTo")return!1;if(this.showCollapsed.read(Le))return!1;if(this._tabShouldIndent.read(Le))return!1;if(this._inAcceptFlow.read(Le)&&this._appearedInsideViewport.read(Le))return!0;if(He.inlineSuggestion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(Le))return!0;if(this._jumpedToId.read(Le)===He.inlineSuggestion.semanticId)return!0;return He.cursorAtInlineEdit.read(Le)}),this._jumpedToId=M(this,void 0),this._inAcceptFlow=M(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(Bf,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition,wh.defaultChatAgent?.completionsEnablementSetting)),this.lastTriggerKind=this._source.inlineCompletions.map(this,(Le)=>Le?.request?.context.triggerKind),this._editorObs=Xe(this._editor);let Se=this._editorObs.getOption(134);this._suggestPreviewEnabled=Se.map((Le)=>Le.preview),this._suggestPreviewMode=Se.map((Le)=>Le.previewMode);let Oe=this._editorObs.getOption(71);this._inlineSuggestMode=Oe.map((Le)=>Le.mode),this._suppressedInlineCompletionGroupIds=Oe.map((Le)=>new Set(Le.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=Oe.map((Le)=>!!Le.edits.enabled),this._inlineEditsShowCollapsedEnabled=Oe.map((Le)=>Le.edits.showCollapsed),this._triggerCommandOnProviderChange=Oe.map((Le)=>Le.triggerCommandOnProviderChange),this._minShowDelay=Oe.map((Le)=>Le.minShowDelay),this._showOnSuggestConflict=Oe.map((Le)=>Le.experimental.showOnSuggestConflict),this._suppressInSnippetMode=Oe.map((Le)=>Le.suppressInSnippetMode);let Ae=wi.get(this._editor);this._isInSnippetMode=Ae?.isInSnippetObservable??ke(!1),ge.getDefaultAccount().then(jN((Le)=>this.sku.set(SE(Le),void 0),this._store)),this._register(ge.onDidChangeDefaultAccount((Le)=>this.sku.set(SE(Le),void 0))),this._typing=this._register(new Fs(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((Le)=>{if(Le)this.stop()}));{let Le=this.textModel.uri.scheme===ee.vscodeNotebookCell,[He]=this._codeEditorService.listDiffEditors().filter((Je)=>Je.getOriginalEditor().getId()===this._editor.getId()||Je.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!He,this.editorType=Le?ci.Notebook:this.isInDiffEditor?ci.DiffEditor:ci.TextEditor}this._register(tu(this.state,(Le)=>{if(Le&&Le.inlineSuggestion)this._inlineCompletionsService.reportNewCompletion(Le.inlineSuggestion.requestUuid)})),this._register(tu(this._fetchInlineCompletionsPromise)),this._register(H((Le)=>{this._editorObs.versionId.read(Le),this._inAcceptFlow.set(!1,void 0)})),this._register(H((Le)=>{if(this.state.map((Je,tt)=>!Je||Je.kind==="inlineEdit"&&!Je.cursorAtInlineEdit.read(tt)).read(Le))this._jumpedToId.set(void 0,void 0)})),this._register(H((Le)=>{let He=this.state.map((Je)=>Je?.inlineSuggestion).read(Le);if(He)He.addPerformanceMarker("activeSuggestion")}));let We=this.inlineEditState.map((Le)=>Le?.inlineSuggestion.semanticId);this._register(H((Le)=>{if(We.read(Le))this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineSuggestion}}));let Ue=Te(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(u));Jl(this,Ue,(Le,He)=>{if(!Le.onDidChangeInlineCompletions)return;He.add(Le.onDidChangeInlineCompletions((Je)=>{if(!this._enabled.get())return;if((this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor())!==this._editor)return;if(this._triggerCommandOnProviderChange.get()){this.trigger(void 0,{onlyFetchInlineEdits:!0});return}let ot=this.state.get();if(ot&&(ot.inlineSuggestion||ot.edits)&&ot.inlineSuggestion?.source.provider!==Le)return;je((qe)=>{this._fetchSpecificProviderSignal.trigger(qe,{provider:Le,changeHint:Je??void 0}),this.trigger(qe)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(u){let p=!1,v=!0,y=this?.primaryGhostText.read(u);if(!!this?._selectedSuggestItem&&y&&y.parts.length>0){let{column:k,lines:D}=y.parts[0],T=D[0].line,R=this.textModel.getLineIndentColumn(y.lineNumber);if(k<=R){let q=In(T);if(q===-1)q=T.length-1;p=q>0;let Q=this.textModel.getOptions().tabSize;v=yt.visibleColumnFromColumn(T,q+1,Q)<Q}}return{startsWithIndentation:p,startsWithIndentationLessThanTabSize:v}}_getReason(u){if(u?.isUndoing)return Hs.Undo;if(u?.isRedoing)return Hs.Redo;if(this.isAcceptingPartially)return Hs.AcceptWord;return Hs.Other}getAvailableProviders(u){let p=this._suppressedInlineCompletionGroupIds.get(),v=u.filter((D)=>!(D.groupId&&p.has(D.groupId))),y=new Set;for(let D of v)D.excludesGroupIds?.forEach((T)=>y.add(T));let k=[];for(let D of v){if(D.groupId&&y.has(D.groupId))continue;k.push(D)}return k}async trigger(u,p={}){Kl(u,(v)=>{if(p.onlyFetchInlineEdits)this._onlyRequestInlineEditsSignal.trigger(v);if(p.noDelay)this._noDelaySignal.trigger(v);if(this._isActive.set(!0,v),p.explicit)this._inAcceptFlow.set(!0,v),this._forceUpdateExplicitlySignal.trigger(v);if(p.provider)this._fetchSpecificProviderSignal.trigger(v,{provider:p.provider,changeHint:p.changeHint})}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(u,p=!1){return this.trigger(u,{onlyFetchInlineEdits:p,explicit:!0})}stop(u="automatic",p){Kl(p,(v)=>{if(u==="explicitCancel"){let y=this.state.get()?.inlineSuggestion;if(y)y.reportEndOfLife({kind:xa.Rejected})}this._isActive.set(!1,v),this._source.clear(v)})}_computeAugmentation(u,p){let v=this.textModel,y=this._source.suggestWidgetInlineCompletions.read(p),k=y?y.inlineCompletions.filter((T)=>!T.isInlineEdit):[this.selectedInlineCompletion.read(p)].filter(On);return aR(k,(T)=>{let R=T.getSingleTextEdit();return R=Qo(R,v,t.fromPositions(R.range.getStartPosition(),u.range.getEndPosition())),Ef(R,u)?{completion:T,edit:R}:void 0})}async _deltaSelectedInlineCompletionIndex(u){await this.triggerExplicitly();let p=this._inlineCompletionItems.get()||[];if(p.length>0){let v=(this.selectedInlineCompletionIndex.get()+u+p.length)%p.length;this._selectedInlineCompletionId.set(p[v].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(u,p,v=void 0){if(v)return $n.inlineCompletionPartialAccept({nes:u.isInlineEdit,requestUuid:u.requestUuid,providerId:u.source.provider.providerId,languageId:p,type:v,correlationId:u.getSourceCompletion().correlationId});else return $n.inlineCompletionAccept({nes:u.isInlineEdit,requestUuid:u.requestUuid,correlationId:u.getSourceCompletion().correlationId,providerId:u.source.provider.providerId,languageId:p})}async accept(u=this._editor,p=!1){if(u.getModel()!==this.textModel)throw new P;let v,y=!1,k=this.state.get();if(k?.kind==="ghostText"){if(!k||k.primaryGhostText.isEmpty()||!k.inlineSuggestion)return;v=k.inlineSuggestion}else if(k?.kind==="inlineEdit")v=k.inlineSuggestion,y=!!k.nextEditUri;else return;v.addRef();try{let D=!1;if(u.pushUndoStop(),!v.originalTextRef.targets(this.textModel)){let T=await this._codeEditorService.openCodeEditor({resource:v.originalTextRef.uri},this._editor);if(T){let K=xf(T)?.model.get();T.focus(),K?.transplantCompletion(v),T.revealLineInCenter(v.targetRange.startLineNumber)}}else if(y);else if(v.action?.kind==="edit"){let T=v.action;if(p&&T.alternativeAction){D=!0;let R=T.alternativeAction.command;await this._commandService.executeCommand(R.id,...R.arguments||[]).then(void 0,dt)}else if(T.snippetInfo){let R=ct.delete(T.textReplacement.range),K=v.additionalTextEdits.map((Q)=>new ct(t.lift(Q.range),Q.text??"")),q=fo.fromParallelReplacementsUnsorted([R,...K]);u.edit(q,this._getMetadata(v,this.textModel.getLanguageId())),u.setPosition(T.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),wi.get(u)?.insert(T.snippetInfo.snippet,{undoStopBefore:!1})}else{let R=k.edits,K=R;if(k.kind==="ghostText")K=j1(R,this.textModel);let q=jw(K).map((ne)=>O.fromPositions(ne)),Q=v.additionalTextEdits.map((ne)=>new ct(t.lift(ne.range),ne.text??"")),te=fo.fromParallelReplacementsUnsorted([...R,...Q]);if(u.edit(te,this._getMetadata(v,this.textModel.getLanguageId())),v.hint===void 0)u.setSelections(k.kind==="inlineEdit"?q.slice(-1):q,"inlineCompletionAccept");if(k.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){let ne=te.getNewRanges(),re=this._store.add(new CE(u,ne,()=>{this._store.delete(re)}))}}}if(this._onDidAccept.fire(),this.stop(),v.command)await this._commandService.executeCommand(v.command.id,...v.command.arguments||[]).then(void 0,dt);if(D)this.trigger(void 0);v.reportEndOfLife({kind:xa.Accepted,alternativeAction:p})}finally{v.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:v}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(u,p)=>{let v=this.textModel.getLanguageIdAtPosition(u.lineNumber,u.column),y=this._languageConfigurationService.getLanguageConfiguration(v),k=new RegExp(y.wordDefinition.source,y.wordDefinition.flags.replace("g","")),D=p.match(k),T=0;if(D&&D.index!==void 0)if(D.index===0)T=D[0].length;else T=D.index;else T=p.length;let K=/\s+/g.exec(p);if(K&&K.index!==void 0){if(K.index+K[0].length<T)T=K.index+K[0].length}return T},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(u,p)=>{let v=p.match(/\n/);if(v&&v.index!==void 0)return v.index+1;return p.length},1)}async _acceptNext(u,p,v,y){if(u.getModel()!==this.textModel)throw new P;let k=this.inlineCompletionState.get();if(!k||k.primaryGhostText.isEmpty()||!k.inlineSuggestion)return;let{primaryGhostText:D,inlineSuggestion:T}=k;if(T.snippetInfo){await this.accept(u);return}let R=D.parts[0],K=new r(D.lineNumber,R.column),q=R.text,Q=v(K,q);if(Q===q.length&&D.parts.length===1){this.accept(u);return}let te=q.substring(0,Q),ne=this._positions.get(),re=ne[0];T.addRef();try{this._isAcceptingPartially=!0;try{u.pushUndoStop();let Oe=t.fromPositions(re,K),Ae=u.getModel().getValueInRange(Oe)+te,We=new ct(Oe,Ae),Ue=[We,...fS(this.textModel,ne,We)].filter(On),Le=jw(Ue).map((He)=>O.fromPositions(He));u.edit(fo.fromParallelReplacementsUnsorted(Ue),this._getMetadata(T,this.textModel.getLanguageId(),p)),u.setSelections(Le,"inlineCompletionPartialAccept"),u.revealPositionInCenterIfOutsideViewport(u.getPosition(),0)}finally{this._isAcceptingPartially=!1}let ae=t.fromPositions(T.editRange.getStartPosition(),At.ofText(te).addToPosition(K)),Se=u.getModel().getValueInRange(ae,1).length;T.reportPartialAccept(Se,{kind:y,acceptedLength:Se},{characters:Q,ratio:Q/q.length,count:1})}finally{T.removeRef()}}handleSuggestAccepted(u){let p=Qo(u.getSingleTextEdit(),this.textModel),v=this._computeAugmentation(p,void 0);if(!v)return;let k=this.textModel.getValueInRange(v.completion.editRange,1).length+p.text.length;v.completion.reportPartialAccept(p.text.length,{kind:2,acceptedLength:k},{characters:p.text.length,count:1,ratio:1})}extractReproSample(){let u=this.textModel.getValue(),p=this.state.get()?.inlineSuggestion;return{documentValue:u,inlineCompletion:p?.getSourceCompletion()}}jump(){let u=this.inlineEditState.get();if(!u)return;let p=u.inlineSuggestion;if(!p.originalTextRef.targets(this.textModel)){this.accept(this._editor);return}p.addRef();try{je((v)=>{if(p.action?.kind==="jumpTo")this.stop(void 0,v),p.reportEndOfLife({kind:xa.Accepted,alternativeAction:!1});this._jumpedToId.set(u.inlineSuggestion.semanticId,v),this.dontRefetchSignal.trigger(v);let y=u.inlineSuggestion.targetRange,k=y.getStartPosition();if(this._editor.setPosition(k,"inlineCompletions.jump"),y.isSingleLine()&&(u.inlineSuggestion.hint||u.inlineSuggestion.action?.kind==="edit"&&!u.inlineSuggestion.action.textReplacement.text.includes(`
41
- `))||u.inlineSuggestion.action?.kind==="jumpTo")this._editor.revealPosition(k,0);else{let T=new t(y.startLineNumber-1,1,y.endLineNumber+1,1);this._editor.revealRange(T,0)}u.inlineSuggestion.identity.setJumpTo(v),this._editor.focus()})}finally{p.removeRef()}}async handleInlineSuggestionShown(u,p,v,y){await u.reportInlineEditShown(this._commandService,p,v,this.textModel,y)}transplantCompletion(u){je((p)=>{this._source.seedWithCompletion(u,p),this._isActive.set(!0,p),this._inAcceptFlow.set(!0,p),this.dontRefetchSignal.trigger(p)})}};Vf=qN([Fa(8,L),Fa(9,Ne),Fa(10,et),Fa(11,Vt),Fa(12,j),Fa(13,ye),Fa(14,Sy),Fa(15,U0)],Vf);var Hs;(function(m){m[m.Undo=0]="Undo",m[m.Redo=1]="Redo",m[m.AcceptWord=2]="AcceptWord",m[m.Other=3]="Other"})(Hs||(Hs={}));function fS(m,u,p){if(u.length===1)return[];let v=new mu(m),y=v.getTransformer(),k=y.getOffset(u[0]),D=u.slice(1).map((te)=>y.getOffset(te));p=p.removeCommonPrefixAndSuffix(v);let T=y.getStringReplacement(p),R=T.replaceRange.start-k,K=T.replaceRange.join(B.emptyAt(k)),q=v.getValueOfOffsetRange(K);return D.map((te)=>{let ne=te+R,re=ne+T.replaceRange.length,ae=new B(ne,re),ge=ae.join(B.emptyAt(te));if(v.getValueOfOffsetRange(ge)!==q)return;let Oe=new Un(ae,T.newText);return y.getTextReplacement(Oe)}).filter(On)}class CE extends n{constructor(m,u,p){super();if(p)this._register({dispose:()=>p()});this._register(Xe(m).setDecorations(ke(u.map((y)=>({range:y,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));let v=new Zw(kf.startNow(1,0,1000,Z1));this._register(H((y)=>{let k=v.getValue(y);if(m.getContainerDomNode().style.setProperty("--animation-opacity",k.toString()),v.isFinished(y))this.dispose()}))}}function _S(m,u,p=void 0){let v=u.targetRange;Xe(m).scrollTop.read(p);let y=m.getVisibleRanges();if(y.length<1)return!1;return new t(y[0].startLineNumber,y[0].startColumn,y[y.length-1].endLineNumber,y[y.length-1].endColumn).containsRange(v)}function SE(m){if(m?.entitlementsData?.access_type_sku&&m?.entitlementsData?.copilot_plan)return{type:m.entitlementsData.access_type_sku,plan:m.entitlementsData.copilot_plan};return}class yE{constructor(m){this.handler=(u)=>this._cb?.(u),this._cb=m}dispose(){this._cb=void 0}}function jN(m,u){let p=new yE(m);return u.add(p),p.handler}var $N=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},GN=function(m,u){return function(p,v){u(p,v,m)}},bS,Xu=class m{static{bS=this}static{this.AtEnd=new A("atEndOfWord",!1,{type:"boolean",description:e(1568,"A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled")})}constructor(u,p){this._editor=u,this._enabled=!1,this._ckAtEnd=bS.AtEnd.bindTo(p),this._configListener=this._editor.onDidChangeConfiguration((v)=>v.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let u=this._editor.getOption(139)==="on";if(this._enabled===u)return;if(this._enabled=u,this._enabled){let p=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let v=this._editor.getModel(),y=this._editor.getSelection(),k=v.getWordAtPosition(y.getStartPosition());if(!k){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(k.endColumn===y.getStartPosition().column&&y.getStartPosition().lineNumber===y.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(p),p()}else if(this._selectionListener)this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0}};Xu=bS=$N([GN(1,V)],Xu);var ZN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},XN=function(m,u){return function(p,v){u(p,v,m)}},Yu,Td=class m{static{Yu=this}static{this.OtherSuggestions=new A("hasOtherSuggestions",!1)}constructor(u,p){this._editor=u,this._index=0,this._ckOtherSuggestions=Yu.OtherSuggestions.bindTo(p)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:u,index:p},v){if(u.items.length===0){this.reset();return}if(Yu._moveIndex(!0,u,p)===p){this.reset();return}this._acceptNext=v,this._model=u,this._index=p,this._listener=this._editor.onDidChangeCursorPosition(()=>{if(!this._ignore)this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(u,p,v){let y=v;for(let k=p.items.length;k>0;k--){if(y=(y+p.items.length+(u?1:-1))%p.items.length,y===v)break;if(!p.items[y].completion.additionalTextEdits)break}return y}next(){this._move(!0)}prev(){this._move(!1)}_move(u){if(!this._model)return;try{this._ignore=!0,this._index=Yu._moveIndex(u,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Td=Yu=ZN([XN(1,V)],Td);class vS{constructor(m,u,p,v){this._disposables=new c,this._disposables.add(p.onDidSuggest((y)=>{if(y.completionModel.items.length===0)this.reset()})),this._disposables.add(p.onDidCancel((y)=>{this.reset()})),this._disposables.add(u.onDidShow(()=>this._onItem(u.getFocusedItem()))),this._disposables.add(u.onDidFocus(this._onItem,this)),this._disposables.add(u.onDidHide(this.reset,this)),this._disposables.add(m.onWillType((y)=>{if(this._active&&!u.isFrozen()&&p.state!==0){let k=y.charCodeAt(y.length-1);if(this._active.acceptCharacters.has(k)&&m.getOption(0))v(this._active.item)}}))}_onItem(m){if(!m||!Ln(m.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===m.item)return;let u=new xh;for(let p of m.item.completion.commitCharacters)if(p.length>0)u.add(p.charCodeAt(0));this._active={acceptCharacters:u,item:m}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class zf{static{this._maxSelectionLength=51200}constructor(m,u){this._disposables=new c,this._lastOvertyped=[],this._locked=!1,this._disposables.add(m.onWillType(()=>{if(this._locked||!m.hasModel())return;let p=m.getSelections(),v=p.length,y=!1;for(let D=0;D<v;D++)if(!p[D].isEmpty()){y=!0;break}if(!y){if(this._lastOvertyped.length!==0)this._lastOvertyped.length=0;return}this._lastOvertyped=[];let k=m.getModel();for(let D=0;D<v;D++){let T=p[D];if(k.getValueLengthInRange(T)>zf._maxSelectionLength)return;this._lastOvertyped[D]={value:k.getValueInRange(T),multiline:T.startLineNumber!==T.endLineNumber}}})),this._disposables.add(u.onDidTrigger((p)=>{this._locked=!0})),this._disposables.add(u.onDidCancel((p)=>{this._locked=!1}))}getLastOvertypedInfo(m){if(m>=0&&m<this._lastOvertyped.length)return this._lastOvertyped[m];return}dispose(){this._disposables.dispose()}}var YN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},wS=function(m,u){return function(p,v){u(p,v,m)}},Kf=class m{constructor(u,p,v,y,k,D){this._menuId=p,this._menuService=k,this._contextKeyService=D,this._menuDisposables=new c,this.element=w(u,g(".suggest-status-bar"));let T=(R)=>{if(v?.showIconsNoKeybindings)return R instanceof Si?y.createInstance(Na,R,void 0):void 0;else return R instanceof Si?y.createInstance(V0,R,{useComma:!1}):void 0};this._leftActions=new Ri(this.element,{actionViewItemProvider:T}),this._rightActions=new Ri(this.element,{actionViewItemProvider:T}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){let u=this._menuService.createMenu(this._menuId,this._contextKeyService),p=()=>{let v=[],y=[];for(let[k,D]of u.getActions())if(k==="left")v.push(...D);else y.push(...D);this._leftActions.clear(),this._leftActions.push(v),this._rightActions.clear(),this._rightActions.push(y)};this._menuDisposables.add(u.onDidChange(()=>p())),this._menuDisposables.add(u)}hide(){this._menuDisposables.clear()}};Kf=YN([wS(3,L),wS(4,hi),wS(5,V)],Kf);var JN=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},xE=function(m,u){return function(p,v){u(p,v,m)}};function Ju(m){return!!m&&Boolean(m.completion.documentation||m.completion.detail&&m.completion.detail!==m.completion.label)}var Uf=class m{constructor(u,p,v){this._editor=u,this._themeService=p,this._markdownRendererService=v,this._onDidClose=new i,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new i,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new c,this._renderDisposeable=new c,this._size=new Ye(330,0),this.domNode=g(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=g(".body"),this._scrollbar=new $a(this._body,{alwaysConsumeMouseWheel:!0}),w(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=w(this._body,g(".header")),this._close=w(this._header,g("span"+G.asCSSSelector(b.close))),this._close.title=e(1563,"Close"),this._close.ariaLabel=e(1564,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=w(this._header,g("p.type")),this._docs=w(this._body,g("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((y)=>{if(y.hasChanged(59))this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){let u=this._editor.getOptions(),p=u.get(59),v=p.getMassagedFontFamily(),y=u.get(135)||p.fontSize,k=u.get(136)||p.lineHeight,D=p.fontWeight,T=`${y}px`,R=`${k}px`;this.domNode.style.fontSize=T,this.domNode.style.lineHeight=`${k/y}`,this.domNode.style.fontWeight=D,this.domNode.style.fontFeatureSettings=p.fontFeatureSettings,this._type.style.fontFamily=v,this._close.style.height=R,this._close.style.width=R}getLayoutInfo(){let u=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,p=zo(this._themeService.getColorTheme().type)?2:1,v=p*2;return{lineHeight:u,borderWidth:p,borderHeight:v,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=e(1565,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(u,p){this._renderDisposeable.clear();let{detail:v,documentation:y}=u.completion;if(p){let k="";k+=`score: ${u.score[0]}
42
- `,k+=`prefix: ${u.word??"(no prefix)"}
43
- `,k+=`word: ${u.completion.filterText?u.completion.filterText+" (filterText)":u.textLabel}
44
- `,k+=`distance: ${u.distance} (localityBonus-setting)
45
- `,k+=`index: ${u.idx}, based on ${u.completion.sortText&&`sortText: "${u.completion.sortText}"`||"label"}
46
- `,k+=`commit_chars: ${u.completion.commitCharacters?.join("")}
47
- `,y=new yn().appendCodeblock("empty",k),v=`Provider: ${u.provider._debugDisplayName}`}if(!p&&!Ju(u)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),v){let k=v.length>1e5?`${v.substr(0,1e5)}…`:v;this._type.textContent=k,this._type.title=k,ho(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(k))}else Xt(this._type),this._type.title="",Vi(this._type),this.domNode.classList.add("no-type");if(Xt(this._docs),typeof y==="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=y;else if(y){this._docs.classList.add("markdown-docs"),Xt(this._docs);let k=this._markdownRendererService.render(y,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(k.element),this._renderDisposeable.add(k)}this.domNode.classList.toggle("detail-and-doc",!!v&&!!y),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=(k)=>{k.preventDefault(),k.stopPropagation()},this._close.onclick=(k)=>{k.preventDefault(),k.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(u,p){let v=new Ye(u,p);if(!Ye.equals(v,this._size))this._size=v,eR(this.domNode,u,p);this._scrollbar.scanDomNode()}scrollDown(u=8){this._body.scrollTop+=u}scrollUp(u=8){this._body.scrollTop-=u}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};Uf=JN([xE(1,De),xE(2,vo)],Uf);class SS{constructor(m,u){this.widget=m,this._editor=u,this.allowEditorOverflow=!0,this._disposables=new c,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new bd,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(m.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let p,v,y=0,k=0;this._disposables.add(this._resizable.onDidWillResize(()=>{p=this._topLeft,v=this._resizable.size})),this._disposables.add(this._resizable.onDidResize((D)=>{if(p&&v){this.widget.layout(D.dimension.width,D.dimension.height);let T=!1;if(D.west)k=v.width-D.dimension.width,T=!0;if(D.north)y=v.height-D.dimension.height,T=!0;if(T)this._applyTopLeft({top:p.top+y,left:p.left+k})}if(D.done)p=void 0,v=void 0,y=0,k=0,this._userSize=D.dimension})),this._disposables.add(this.widget.onDidChangeContents(()=>{if(this._anchorBox)this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){if(!this._added)this._editor.addOverlayWidget(this),this._added=!0}hide(m=!1){if(this._resizable.clearSashHoverState(),this._added)this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0;if(m)this._userSize=void 0,this.widget.clearContents()}placeAtAnchor(m,u){let p=m.getBoundingClientRect();this._anchorBox=p,this._preferAlignAtTop=u,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,u)}_placeAtAnchor(m,u,p){let v=Ss(this.getDomNode().ownerDocument.body),y=this.widget.getLayoutInfo(),k=new Ye(220,2*y.lineHeight),D=m.top,T=function(){let Le=v.width-(m.left+m.width+y.borderWidth+y.horizontalPadding),He=-y.borderWidth+m.left+m.width,Je=new Ye(Le,v.height-m.top-y.borderHeight-y.verticalPadding),tt=Je.with(void 0,m.top+m.height-y.borderHeight-y.verticalPadding);return{top:D,left:He,fit:Le-u.width,maxSizeTop:Je,maxSizeBottom:tt,minSize:k.with(Math.min(Le,k.width))}}(),R=function(){let Le=m.left-y.borderWidth-y.horizontalPadding,He=Math.max(y.horizontalPadding,m.left-u.width-y.borderWidth),Je=new Ye(Le,v.height-m.top-y.borderHeight-y.verticalPadding),tt=Je.with(void 0,m.top+m.height-y.borderHeight-y.verticalPadding);return{top:D,left:He,fit:Le-u.width,maxSizeTop:Je,maxSizeBottom:tt,minSize:k.with(Math.min(Le,k.width))}}(),K=function(){let Le=m.left,He=-y.borderWidth+m.top+m.height,Je=new Ye(m.width-y.borderHeight,v.height-m.top-m.height-y.verticalPadding);return{top:He,left:Le,fit:Je.height-u.height,maxSizeBottom:Je,maxSizeTop:Je,minSize:k.with(Je.width)}}(),q=function(){let Le=m.left,He=new Ye(m.width-y.borderHeight,m.top-y.verticalPadding);return{top:Math.max(y.verticalPadding,m.top-u.height),left:Le,fit:He.height-u.height,maxSizeTop:He,maxSizeBottom:He,minSize:k.with(He.width)}}(),te=[T,R,p?K:q],ne=te.find((Le)=>Le.fit>=0)??te.sort((Le,He)=>He.fit-Le.fit)[0],re=m.top+m.height-y.borderHeight,ae,ge=u.height,Se=Math.max(ne.maxSizeTop.height,ne.maxSizeBottom.height);if(ge>Se)ge=Se;let Oe;if(p)if(ge<=ne.maxSizeTop.height)ae=!0,Oe=ne.maxSizeTop;else ae=!1,Oe=ne.maxSizeBottom;else if(ge<=ne.maxSizeBottom.height)ae=!1,Oe=ne.maxSizeBottom;else ae=!0,Oe=ne.maxSizeTop;let{top:Ae,left:We}=ne;if(ne===q)Ae=m.top-ge+y.borderWidth;else if(!ae&&ge>m.height)Ae=re-ge;let Ue=this._editor.getDomNode();if(Ue){let Le=Ue.getBoundingClientRect();Ae-=Le.top,We-=Le.left}if(this._applyTopLeft({left:We,top:Ae}),ne===q)this._resizable.enableSashes(!0,!1,!1,!0);else this._resizable.enableSashes(!ae,ne===T,ae,ne!==T);this._resizable.minSize=ne.minSize,this._resizable.maxSize=Oe,this._resizable.layout(ge,Math.min(Oe.width,u.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(m){this._topLeft=m,this._editor.layoutOverlayWidget(this)}}var jk=Z("fileService"),Go;(function(m){m[m.FILE=0]="FILE",m[m.FOLDER=1]="FOLDER",m[m.ROOT_FOLDER=2]="ROOT_FOLDER"})(Go||(Go={}));var QN=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Rd(m,u,p,v,y){if(G.isThemeIcon(y))return[`codicon-${y.id}`,"predefined-file-icon"];if(W.isUri(y))return[];let k=v===Go.ROOT_FOLDER?["rootfolder-icon"]:v===Go.FOLDER?["folder-icon"]:["file-icon"];if(p){let D;if(p.scheme===ee.data)D=Hc.parseMetaData(p).get(Hc.META_DATA_LABEL);else{let T=p.path.match(QN);if(T){if(D=qf(T[2].toLowerCase()),T[1])k.push(`${qf(T[1].toLowerCase())}-name-dir-icon`)}else D=qf(p.authority.toLowerCase())}if(v===Go.ROOT_FOLDER)k.push(`${D}-root-name-folder-icon`);else if(v===Go.FOLDER)k.push(`${D}-name-folder-icon`);else{if(D){if(k.push(`${D}-name-file-icon`),k.push("name-file-icon"),D.length<=255){let R=D.split(".");for(let K=1;K<R.length;K++)k.push(`${R.slice(K).join(".")}-ext-file-icon`)}k.push("ext-file-icon")}let T=eM(m,u,p);if(T)k.push(`${qf(T)}-lang-file-icon`)}}return k}function eM(m,u,p){if(!p)return null;let v=null;if(p.scheme===ee.data){let k=Hc.parseMetaData(p).get(Hc.META_DATA_MIME);if(k)v=u.getLanguageIdByMimeType(k)}else{let y=m.getModel(p);if(y)v=y.getLanguageId()}if(v&&v!==Fi)return v;return u.guessLanguageIdByFilepathOrFirstLine(p)}function qf(m){return m.replace(/[\s]/g,"/")}var tM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},CS=function(m,u){return function(p,v){u(p,v,m)}},iM=Lt("suggest-more-info",b.chevronRight,e(1566,"Icon for more information in the suggest widget.")),oM=new class m{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(`^${m._regexRelaxed.source}$`,"i")}extract(u,p){if(u.textLabel.match(m._regexStrict))return p[0]=u.textLabel,!0;if(u.completion.detail&&u.completion.detail.match(m._regexStrict))return p[0]=u.completion.detail,!0;if(u.completion.documentation){let v=typeof u.completion.documentation==="string"?u.completion.documentation:u.completion.documentation.value,y=m._regexRelaxed.exec(v);if(y&&(y.index===0||y.index+y[0].length===v.length))return p[0]=y[0],!0}return!1}},jf=class m{constructor(u,p,v,y){this._editor=u,this._modelService=p,this._languageService=v,this._themeService=y,this._onDidToggleDetails=new i,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(u){let p=new c,v=u;v.classList.add("show-file-icons");let y=w(u,g(".icon")),k=w(y,g("span.colorspan")),D=w(u,g(".contents")),T=w(D,g(".main")),R=w(T,g(".icon-label.codicon")),K=w(T,g("span.left")),q=w(T,g("span.right")),Q=new Yc(K,{supportHighlights:!0,supportIcons:!0});p.add(Q);let te=w(K,g("span.signature-label")),ne=w(K,g("span.qualifier-label")),re=w(q,g("span.details-label")),ae=w(q,g("span.readMore"+G.asCSSSelector(iM)));return ae.title=e(1567,"Read More"),{root:v,left:K,right:q,icon:y,colorspan:k,iconLabel:Q,iconContainer:R,parametersLabel:te,qualifierLabel:ne,detailsLabel:re,readMore:ae,disposables:p,configureFont:()=>{let Se=this._editor.getOptions(),Oe=Se.get(59),Ae=Oe.getMassagedFontFamily(),{fontFeatureSettings:We,fontVariationSettings:Ue}=Oe,Le=Se.get(135)||Oe.fontSize,He=Se.get(136)||Oe.lineHeight,{fontWeight:Je,letterSpacing:tt}=Oe,ot=`${Le}px`,qe=`${He}px`,nt=`${tt}px`;v.style.fontSize=ot,v.style.fontWeight=Je,v.style.letterSpacing=nt,T.style.fontFamily=Ae,T.style.fontFeatureSettings=We,T.style.fontVariationSettings=Ue,T.style.lineHeight=qe,y.style.height=qe,y.style.width=qe,ae.style.height=qe,ae.style.width=qe}}}renderElement(u,p,v){v.configureFont();let{completion:y}=u;v.colorspan.style.backgroundColor="";let k={labelEscapeNewLines:!0,matches:uu(u.score)},D=[];if(y.kind===19&&oM.extract(u,D))v.icon.className="icon customcolor",v.iconContainer.className="icon hide",v.colorspan.style.backgroundColor=D[0];else if(y.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){v.icon.className="icon hide",v.iconContainer.className="icon hide";let T=Rd(this._modelService,this._languageService,W.from({scheme:"fake",path:u.textLabel}),Go.FILE),R=Rd(this._modelService,this._languageService,W.from({scheme:"fake",path:y.detail}),Go.FILE);k.extraClasses=T.length>R.length?T:R}else if(y.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons)v.icon.className="icon hide",v.iconContainer.className="icon hide",k.extraClasses=[Rd(this._modelService,this._languageService,W.from({scheme:"fake",path:u.textLabel}),Go.FOLDER),Rd(this._modelService,this._languageService,W.from({scheme:"fake",path:y.detail}),Go.FOLDER)].flat();else v.icon.className="icon hide",v.iconContainer.className="",v.iconContainer.classList.add("suggest-icon",...G.asClassNameArray(Zd.toIcon(y.kind)));if(y.tags&&y.tags.indexOf(1)>=0)k.extraClasses=(k.extraClasses||[]).concat(["deprecated"]),k.matches=[];if(v.iconLabel.setLabel(u.textLabel,void 0,k),typeof y.label==="string")v.parametersLabel.textContent="",v.detailsLabel.textContent=yS(y.detail||""),v.root.classList.add("string-label");else v.parametersLabel.textContent=yS(y.label.detail||""),v.detailsLabel.textContent=yS(y.label.description||""),v.root.classList.remove("string-label");if(this._editor.getOption(134).showInlineDetails)ho(v.detailsLabel);else Vi(v.detailsLabel);if(Ju(u))v.right.classList.add("can-expand-details"),ho(v.readMore),v.readMore.onmousedown=(T)=>{T.stopPropagation(),T.preventDefault()},v.readMore.onclick=(T)=>{T.stopPropagation(),T.preventDefault(),this._onDidToggleDetails.fire()};else v.right.classList.remove("can-expand-details"),Vi(v.readMore),v.readMore.onmousedown=null,v.readMore.onclick=null}disposeTemplate(u){u.disposables.dispose()}};jf=tM([CS(1,gt),CS(2,pt),CS(3,De)],jf);function yS(m){return m.replace(/\r\n|\r|\n/g,"")}var nM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},$f=function(m,u){return function(p,v){u(p,v,m)}},Il,Gf=s("editorSuggestWidget.background",bo,e(1545,"Background color of the suggest widget."));s("editorSuggestWidget.border",Sh,e(1546,"Border color of the suggest widget."));var xS=s("editorSuggestWidget.foreground",Qs,e(1547,"Foreground color of the suggest widget.")),IE=s("editorSuggestWidget.selectedForeground",{dark:Ql,light:Ql,hcDark:Gf,hcLight:Gf},e(1548,"Foreground color of the selected entry in the suggest widget."));s("editorSuggestWidget.selectedIconForeground",{dark:af,light:af,hcDark:Gf,hcLight:Gf},e(1549,"Icon foreground color of the selected entry in the suggest widget."));var rM=s("editorSuggestWidget.selectedBackground",{dark:ec,light:ec,hcDark:xS,hcLight:xS},e(1550,"Background color of the selected entry in the suggest widget.")),sM=s("editorSuggestWidget.focusOutline",Ft,e(1551,"Outline color of the focused (keyboard-navigated) entry in the suggest widget."));s("editorSuggestWidget.highlightForeground",Ih,e(1552,"Color of the match highlights in the suggest widget."));s("editorSuggestWidget.focusHighlightForeground",{dark:hy,light:hy,hcDark:IE,hcLight:IE},e(1553,"Color of the match highlights in the suggest widget when an item is focused."));s("editorSuggestWidgetStatus.foreground",de(xS,0.5),e(1554,"Foreground color of the suggest widget status."));class LE{constructor(m,u){this._service=m,this._key=`suggestWidget.size/${u.getEditorType()}/${u instanceof ro}`}restore(){let m=this._service.get(this._key,0)??"";try{let u=JSON.parse(m);if(Ye.is(u))return Ye.lift(u)}catch{}return}store(m){this._service.store(this._key,JSON.stringify(m),0,1)}reset(){this._service.remove(this._key,0)}}var Zf=class m{static{Il=this}static{this.LOADING_MESSAGE=e(1555,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=e(1556,"No suggestions.")}constructor(u,p,v,y,k){this.editor=u,this._storageService=p,this._state=0,this._isAuto=!1,this._loadingTimeout=new ie,this._pendingLayout=new ie,this._pendingShowDetails=new ie,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new Vn,this._disposables=new c,this._onDidSelect=new sl,this._onDidFocus=new sl,this._onDidHide=new i,this._onDidShow=new i,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new i,this.element=new bd,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new kE(this,u),this._persistedSize=new LE(p,u);class D{constructor(re,ae,ge=!1,Se=!1){this.persistedSize=re,this.currentSize=ae,this.persistHeight=ge,this.persistWidth=Se}}let T;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),T=new D(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize((re)=>{if(this._resize(re.dimension.width,re.dimension.height),T)T.persistHeight=T.persistHeight||!!re.north||!!re.south,T.persistWidth=T.persistWidth||!!re.east||!!re.west;if(!re.done)return;if(T){let{itemHeight:ae,defaultSize:ge}=this.getLayoutInfo(),Se=Math.round(ae/2),{width:Oe,height:Ae}=this.element.size;if(!T.persistHeight||Math.abs(T.currentSize.height-Ae)<=Se)Ae=T.persistedSize?.height??ge.height;if(!T.persistWidth||Math.abs(T.currentSize.width-Oe)<=Se)Oe=T.persistedSize?.width??ge.width;this._persistedSize.store(new Ye(Oe,Ae))}this._contentWidget.unlockPreference(),T=void 0})),this._messageElement=w(this.element.domNode,g(".message")),this._listElement=w(this.element.domNode,g(".tree"));let R=this._disposables.add(k.createInstance(Uf,this.editor));R.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new SS(R,this.editor);let K=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);K();let q=()=>this.element.domNode.classList.toggle("fit-width-to-details",this.editor.getOption(134).fitWidthToDetails);q();let Q=k.createInstance(jf,this.editor);this._disposables.add(Q),this._disposables.add(Q.onDidToggleDetails(()=>this.toggleDetails())),this._list=new io("SuggestWidget",this._listElement,{getHeight:(re)=>this.getLayoutInfo().itemHeight,getTemplateId:(re)=>"suggestion"},[Q],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>Wt?"listitem":"option",getWidgetAriaLabel:()=>e(1557,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:(re)=>{let ae=re.textLabel,ge=Zd.toLabel(re.completion.kind);if(typeof re.completion.label!=="string"){let{detail:We,description:Ue}=re.completion.label;if(We&&Ue)ae=e(1558,"{0} {1}, {2}, {3}",ae,We,Ue,ge);else if(We)ae=e(1559,"{0} {1}, {2}",ae,We,ge);else if(Ue)ae=e(1560,"{0}, {1}, {2}",ae,Ue,ge)}else ae=e(1561,"{0}, {1}",ae,ge);if(!re.isResolved||!this._isDetailsVisible())return ae;let{documentation:Se,detail:Oe}=re.completion,Ae=Zs("{0}{1}",Oe||"",Se?typeof Se==="string"?Se:Se.value:"");return e(1562,"{0}, docs: {1}",ae,Ae)}}}),this._list.style(rc({listInactiveFocusBackground:rM,listInactiveFocusOutline:sM})),this._status=k.createInstance(Kf,this.element.domNode,yr,void 0);let te=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);te(),this._disposables.add(this._list.onMouseDown((re)=>this._onListMouseDownOrTap(re))),this._disposables.add(this._list.onTap((re)=>this._onListMouseDownOrTap(re))),this._disposables.add(this._list.onDidChangeSelection((re)=>this._onListSelection(re))),this._disposables.add(this._list.onDidChangeFocus((re)=>this._onListFocus(re))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration((re)=>{if(re.hasChanged(134))te(),K(),q();if(this._completionModel&&(re.hasChanged(59)||re.hasChanged(135)||re.hasChanged(136)))this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=rt.Visible.bindTo(v),this._ctxSuggestWidgetDetailsVisible=rt.DetailsVisible.bindTo(v),this._ctxSuggestWidgetMultipleSuggestions=rt.MultipleSuggestions.bindTo(v),this._ctxSuggestWidgetHasFocusedSuggestion=rt.HasFocusedSuggestion.bindTo(v),this._ctxSuggestWidgetDetailsFocused=rt.DetailsFocused.bindTo(v);let ne=Yn(this._details.widget.domNode);this._disposables.add(ne),this._disposables.add(ne.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(ne.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(ft(this._details.widget.domNode,"keydown",(re)=>{this._onDetailsKeydown.fire(re)})),this._disposables.add(this.editor.onMouseDown((re)=>this._onEditorMouseDown(re)))}dispose(){this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),this._loadingTimeout.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose(),this._onDidSelect.dispose(),this._onDidFocus.dispose(),this._onDidHide.dispose(),this._onDidShow.dispose(),this._onDetailsKeydown.dispose()}_onEditorMouseDown(u){if(this._details.widget.domNode.contains(u.target.element))this._details.widget.domNode.focus();else if(this.element.domNode.contains(u.target.element))this.editor.focus()}_onCursorSelectionChanged(){if(this._state!==0)this._contentWidget.layout()}_onListMouseDownOrTap(u){if(typeof u.element>"u"||typeof u.index>"u")return;u.browserEvent.preventDefault(),u.browserEvent.stopPropagation(),this._select(u.element,u.index)}_onListSelection(u){if(u.elements.length)this._select(u.elements[0],u.indexes[0])}_select(u,p){let v=this._completionModel;if(v)this._onDidSelect.fire({item:u,index:p,model:v}),this.editor.focus()}_onListFocus(u){if(this._ignoreFocusEvents)return;if(this._state===5)this._setState(3);if(!u.elements.length){if(this._currentSuggestionDetails)this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0;this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);let p=u.elements[0],v=u.indexes[0];if(p!==this._focusedItem)this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=p,this._list.reveal(v),this._currentSuggestionDetails=Pt(async(y)=>{let k=Kn(()=>{if(this._isDetailsVisible())this._showDetails(!0,!1)},250),D=y.onCancellationRequested(()=>k.dispose());try{return await p.resolve(y)}finally{k.dispose(),D.dispose()}}),this._currentSuggestionDetails.then(()=>{if(v>=this._list.length||p!==this._list.element(v))return;if(this._ignoreFocusEvents=!0,this._list.splice(v,1,[p]),this._list.setFocus([v]),this._ignoreFocusEvents=!1,this._isDetailsVisible())this._showDetails(!1,!1);else this.element.domNode.classList.remove("docs-side");this.editor.setAriaOptions({activeDescendant:this._list.getElementID(v)})}).catch(J);this._onDidFocus.fire({item:p,index:v,model:this._completionModel})}_setState(u){if(this._state===u)return;switch(this._state=u,this.element.domNode.classList.toggle("frozen",u===4),this.element.domNode.classList.remove("message"),u){case 0:Vi(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=Il.LOADING_MESSAGE,Vi(this._listElement,this._status.element),ho(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,go(Il.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=Il.NO_SUGGESTIONS_MESSAGE,Vi(this._listElement,this._status.element),ho(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,go(Il.NO_SUGGESTIONS_MESSAGE);break;case 3:Vi(this._messageElement),ho(this._listElement,this._status.element),this._show();break;case 4:Vi(this._messageElement),ho(this._listElement,this._status.element),this._show();break;case 5:Vi(this._messageElement),ho(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(u,p){if(this._state!==0)return;if(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!u,!this._isAuto)this._loadingTimeout.value=Kn(()=>this._setState(1),p)}showSuggestions(u,p,v,y,k){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==u)this._completionModel=u;if(v&&this._state!==2&&this._state!==0){this._setState(4);return}let D=this._completionModel.items.length,T=D===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(D>1),T){this._setState(y?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(v?4:3),this._list.reveal(p,0,p===0?0:this.getLayoutInfo().itemHeight*0.33),this._list.setFocus(k?[]:[p])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=sg(F(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){if(this._list.length>0)this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel};return}toggleDetailsFocus(){if(this._state===5)this._list.setFocus(this._list.getFocus()),this._setState(3);else if(this._state===3)if(this._setState(5),!this._isDetailsVisible())this.toggleDetails(!0);else this._details.widget.focus()}toggleDetails(u=!1){if(this._isDetailsVisible())this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details");else if((Ju(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4))this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this._showDetails(!1,u)}_showDetails(u,p){this._pendingShowDetails.value=sg(F(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let v=!1;if(u)this._details.widget.renderLoading();else this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode);if(!this._details.widget.isEmpty){if(this._positionDetails(),this.element.domNode.classList.add("shows-details"),p)this._details.widget.focus(),v=!0}else this._details.hide();if(!v)this.editor.focus()})}toggleExplainMode(){if(this._list.getFocusedElements()[0])if(this._explainMode=!this._explainMode,!this._isDetailsVisible())this.toggleDetails();else this._showDetails(!1,!1)}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout.clear(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();let u=this._persistedSize.restore(),p=Math.ceil(this.getLayoutInfo().itemHeight*4.3);if(u&&u.height<p)this._persistedSize.store(u.with(void 0,p))}isFrozen(){return this._state===4}_afterRender(u){if(u===null){if(this._isDetailsVisible())this._details.hide();return}if(this._state===2||this._state===1)return;if(this._isDetailsVisible()&&!this._details.widget.isEmpty)this._details.show();this._positionDetails()}_layout(u){if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;let p=Ss(this.element.domNode.ownerDocument.body),v=this.getLayoutInfo();if(!u)u=v.defaultSize;let y=u.height,k=u.width;if(this._status.element.style.height=`${v.itemHeight}px`,this._state===2||this._state===1)y=v.itemHeight+v.borderHeight,k=v.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new Ye(k,y),this._contentWidget.setPreference(2);else{let D=p.width-v.borderHeight-2*v.horizontalPadding;if(k>D)k=D;let T=this._completionModel?this._completionModel.stats.pLabelLen*v.typicalHalfwidthCharacterWidth:k;if(this.editor.getOption(134).fitWidthToDetails&&this._completionModel&&!this._persistedSize.restore()){let Oe=Math.min(D,this.editor.getLayoutInfo().width),Ae=Math.min(Oe,this._measureContentWidth(v));k=Math.max(k,Ae),T=Math.max(T,Ae)}let R=v.statusBarHeight+this._list.contentHeight+v.borderHeight,K=v.itemHeight+v.statusBarHeight,q=mt(this.editor.getDomNode()),Q=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),te=q.top+Q.top+Q.height,ne=Math.min(p.height-te-v.verticalPadding,R),re=q.top+Q.top-v.verticalPadding,ae=Math.min(re,R),ge=Math.min(Math.max(ae,ne)+v.borderHeight,R);if(y===this._cappedHeight?.capped)y=this._cappedHeight.wanted;if(y<K)y=K;if(y>ge)y=ge;let Se=150;if(y>ne&&ae>ne||this._forceRenderingAbove&&re>Se)this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),ge=ae;else this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),ge=ne;this.element.preferredSize=new Ye(T,v.defaultSize.height),this.element.maxSize=new Ye(D,ge),this.element.minSize=new Ye(220,K),this._cappedHeight=y===R?{wanted:this._cappedHeight?.wanted??u.height,capped:y}:void 0}this._resize(k,y)}_resize(u,p){let{width:v,height:y}=this.element.maxSize;u=Math.min(v,u),p=Math.min(y,p);let{statusBarHeight:k}=this.getLayoutInfo();this._list.layout(p-k,u),this._listElement.style.height=`${p-k}px`,this.element.layout(p,u),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){if(this._isDetailsVisible())this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}_measureContentWidth(u){let p=this._completionModel;if(!p)return 0;if(this._fitContentWidth?.model===p)return this._fitContentWidth.width;if(this._measureContext===void 0)this._measureContext=g("canvas").getContext("2d");let v;if(this._measureContext){let D=this.editor.getOptions(),T=D.get(59),R=D.get(135)||T.fontSize;this._measureContext.font=`${T.fontWeight} ${R}px ${T.getMassagedFontFamily()}`,v=0;for(let K of p.items){let{completion:q}=K,Q=K.textLabel;if(typeof q.label==="string")Q+=q.detail??"";else Q+=(q.label.detail??"")+(q.label.description??"");v=Math.max(v,this._measureContext.measureText(Q).width)}}else v=p.stats.pLabelLen*u.typicalHalfwidthCharacterWidth;let y=2*u.itemHeight+2*u.horizontalPadding+20,k=v+y;return this._fitContentWidth={model:p,width:k},k}getLayoutInfo(){let u=this.editor.getOption(59),p=ki(this.editor.getOption(136)||u.lineHeight,8,1000),v=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:p,y=this._details.widget.getLayoutInfo().borderWidth,k=2*y;return{itemHeight:p,statusBarHeight:v,borderWidth:y,borderHeight:k,typicalHalfwidthCharacterWidth:u.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new Ye(430,v+12*p)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(u){this._storageService.store("expandSuggestionDocs",u,0,0)}forceRenderingAbove(){if(!this._forceRenderingAbove)this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore())}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Zf=Il=nM([$f(1,wn),$f(2,V),$f(3,De),$f(4,L)],Zf);class kE{constructor(m,u){this._widget=m,this._editor=u,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){if(this._added)this._added=!1,this._editor.removeContentWidget(this)}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){if(this._hidden=!1,!this._added)this._added=!0,this._editor.addContentWidget(this)}hide(){if(!this._hidden)this._hidden=!0,this.layout()}layout(){this._editor.layoutContentWidget(this)}getPosition(){if(this._hidden||!this._position||!this._preference)return null;return{position:this._position,preference:[this._preference]}}beforeRender(){let{height:m,width:u}=this._widget.element.size,{borderWidth:p,horizontalPadding:v}=this._widget.getLayoutInfo();return new Ye(u+2*p+v,m+2*p)}afterRender(m){this._widget._afterRender(m)}setPreference(m){if(!this._preferenceLocked)this._preference=m}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(m){this._position=m}}var aM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Ll=function(m,u){return function(p,v){u(p,v,m)}},IS;class EE{constructor(m,u){if(this._model=m,this._position=u,this._decorationOptions=oe.register({description:"suggest-line-suffix",stickiness:1}),m.getLineMaxColumn(u.lineNumber)!==u.column){let v=m.getOffsetAt(u),y=m.getPositionAt(v+1);m.changeDecorations((k)=>{if(this._marker)k.removeDecoration(this._marker);this._marker=k.addDecoration(t.fromPositions(u,y),this._decorationOptions)})}}dispose(){if(this._marker&&!this._model.isDisposed())this._model.changeDecorations((m)=>{m.removeDecoration(this._marker),this._marker=void 0})}delta(m){if(this._model.isDisposed()||this._position.lineNumber!==m.lineNumber)return 0;if(this._marker){let u=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(u.getStartPosition())-this._model.getOffsetAt(m)}else return this._model.getLineMaxColumn(m.lineNumber)-m.column}}var Hn=class m{static{IS=this}static{this.ID="editor.contrib.suggestController"}static get(u){return u.getContribution(IS.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(u,p,v,y,k,D,T){this._memoryService=p,this._commandService=v,this._contextKeyService=y,this._instantiationService=k,this._logService=D,this._telemetryService=T,this._lineSuffix=new ie,this._toDispose=new c,this._selectors=new DE((Q)=>Q.priority),this._onWillInsertSuggestItem=new i,this._wantsForceRenderingAbove=!1,this.editor=u,this.model=k.createInstance(Qc,this.editor),this._selectors.register({priority:0,select:(Q,te,ne)=>this._memoryService.select(Q,te,ne)});let R=rt.InsertMode.bindTo(y);R.set(u.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>R.set(u.getOption(134).insertMode))),this.widget=this._toDispose.add(new ny(F(u.getDomNode()),()=>{let Q=this._instantiationService.createInstance(Zf,this.editor);this._toDispose.add(Q),this._toDispose.add(Q.onDidSelect((ge)=>this._insertSuggestion(ge,0),this));let te=new vS(this.editor,Q,this.model,(ge)=>this._insertSuggestion(ge,2));this._toDispose.add(te);let ne=rt.MakesTextEdit.bindTo(this._contextKeyService),re=rt.HasInsertAndReplaceRange.bindTo(this._contextKeyService),ae=rt.CanResolve.bindTo(this._contextKeyService);if(this._toDispose.add(E(()=>{ne.reset(),re.reset(),ae.reset()})),this._toDispose.add(Q.onDidFocus(({item:ge})=>{let Se=this.editor.getPosition(),Oe=ge.editStart.column,Ae=Se.column,We=!0;if(this.editor.getOption(1)==="smart"&&this.model.state===2&&!ge.completion.additionalTextEdits&&!(ge.completion.insertTextRules&4)&&Ae-Oe===ge.completion.insertText.length)We=this.editor.getModel().getValueInRange({startLineNumber:Se.lineNumber,startColumn:Oe,endLineNumber:Se.lineNumber,endColumn:Ae})!==ge.completion.insertText;ne.set(We),re.set(!r.equals(ge.editInsertEnd,ge.editReplaceEnd)),ae.set(Boolean(ge.provider.resolveCompletionItem)||Boolean(ge.completion.documentation)||ge.completion.detail!==ge.completion.label)})),this._wantsForceRenderingAbove)Q.forceRenderingAbove();return Q})),this._overtypingCapturer=this._toDispose.add(new ny(F(u.getDomNode()),()=>this._toDispose.add(new zf(this.editor,this.model)))),this._alternatives=this._toDispose.add(new ny(F(u.getDomNode()),()=>this._toDispose.add(new Td(this.editor,this._contextKeyService)))),this._toDispose.add(k.createInstance(Xu,u)),this._toDispose.add(this.model.onDidTrigger((Q)=>{this.widget.value.showTriggered(Q.auto,Q.shy?250:50),this._lineSuffix.value=new EE(this.editor.getModel(),Q.position)})),this._toDispose.add(this.model.onDidSuggest((Q)=>{if(Q.triggerOptions.shy)return;let te=-1;for(let re of this._selectors.itemsOrderedByPriorityDesc)if(te=re.select(this.editor.getModel(),this.editor.getPosition(),Q.completionModel.items),te!==-1)break;if(te===-1)te=0;if(this.model.state===0)return;let ne=!1;if(Q.triggerOptions.auto){let re=this.editor.getOption(134);if(re.selectionMode==="never"||re.selectionMode==="always")ne=re.selectionMode==="never";else if(re.selectionMode==="whenTriggerCharacter")ne=Q.triggerOptions.triggerKind!==1;else if(re.selectionMode==="whenQuickSuggestion")ne=Q.triggerOptions.triggerKind===1&&!Q.triggerOptions.refilter}this.widget.value.showSuggestions(Q.completionModel,te,Q.isFrozen,Q.triggerOptions.auto,ne)})),this._toDispose.add(this.model.onDidCancel((Q)=>{if(!Q.retrigger)this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let K=rt.AcceptSuggestionsOnEnter.bindTo(y),q=()=>{let Q=this.editor.getOption(1);K.set(Q==="on"||Q==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>q())),q()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(u,p){if(!u||!u.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let v=wi.get(this.editor);if(!v)return;this._onWillInsertSuggestItem.fire({item:u.item});let y=this.editor.getModel(),k=y.getAlternativeVersionId(),{item:D}=u,T=[],R=new Me;if(!(p&1))this.editor.pushUndoStop();let K=this.getOverwriteInfo(D,Boolean(p&8));this._memoryService.memorize(y,this.editor.getPosition(),D);let q=D.isResolved,Q=-1,te=-1;if(Array.isArray(D.completion.additionalTextEdits)){this.model.cancel();let re=Sr.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",D.completion.additionalTextEdits.map((ae)=>{let ge=t.lift(ae.range);if(ge.startLineNumber===D.position.lineNumber&&ge.startColumn>D.position.column){let Se=this.editor.getPosition().column-D.position.column,Oe=Se,Ae=t.spansMultipleLines(ge)?0:Se;ge=new t(ge.startLineNumber,ge.startColumn+Oe,ge.endLineNumber,ge.endColumn+Ae)}return Mt.replaceMove(ge,ae.text)})),re.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!q){let re=new Kt,ae,ge=y.onDidChangeContent((We)=>{if(We.isFlush){R.cancel(),ge.dispose();return}for(let Ue of We.changes){let Le=t.getEndPosition(Ue.range);if(!ae||r.isBefore(Le,ae))ae=Le}}),Se=p;p|=2;let Oe=!1,Ae=this.editor.onWillType(()=>{if(Ae.dispose(),Oe=!0,!(Se&2))this.editor.pushUndoStop()});T.push(D.resolve(R.token).then(()=>{if(!D.completion.additionalTextEdits||R.token.isCancellationRequested)return;if(ae&&D.completion.additionalTextEdits.some((Ue)=>r.isBefore(ae,t.getStartPosition(Ue.range))))return!1;if(Oe)this.editor.pushUndoStop();let We=Sr.capture(this.editor);if(this.editor.executeEdits("suggestController.additionalTextEdits.async",D.completion.additionalTextEdits.map((Ue)=>Mt.replaceMove(t.lift(Ue.range),Ue.text))),We.restoreRelativeVerticalPositionOfCursor(this.editor),Oe||!(Se&2))this.editor.pushUndoStop();return!0}).then((We)=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",re.elapsed(),We),te=We===!0?1:We===!1?0:-2}).finally(()=>{ge.dispose(),Ae.dispose()}))}let{insertText:ne}=D.completion;if(!(D.completion.insertTextRules&4))ne=Mo.escape(ne);if(this.model.cancel(),v.insert(ne,{overwriteBefore:K.overwriteBefore,overwriteAfter:K.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(D.completion.insertTextRules&1),clipboardText:u.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:$n.suggest({providerId:ng.fromExtensionId(D.extensionId?.value)})}),!(p&2))this.editor.pushUndoStop();if(D.completion.command)if(D.completion.command.id===Xf.id)this.model.trigger({auto:!0,retrigger:!0});else{let re=new Kt;T.push(this._commandService.executeCommand(D.completion.command.id,...D.completion.command.arguments?[...D.completion.command.arguments]:[]).catch((ae)=>{if(D.completion.extensionId)dt(ae);else J(ae)}).finally(()=>{Q=re.elapsed()}))}if(p&4)this._alternatives.value.set(u,(re)=>{R.cancel();while(y.canUndo()){if(k!==y.getAlternativeVersionId())y.undo();this._insertSuggestion(re,3|(p&8?8:0));break}});this._alertCompletionItem(D),Promise.all(T).finally(()=>{this._reportSuggestionAcceptedTelemetry(D,y,q,Q,te,u.index,u.model.items),this.model.clear(),R.dispose()})}_reportSuggestionAcceptedTelemetry(u,p,v,y,k,D,T){if(Math.random()>0.0001)return;let R=new Map;for(let te=0;te<Math.min(30,T.length);te++){let ne=T[te].textLabel;if(R.has(ne))R.get(ne).push(te);else R.set(ne,[te])}let K=R.get(u.textLabel),Q=K&&K.length>1?K[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:u.extensionId?.value??"unknown",providerId:u.provider._debugDisplayName??"unknown",kind:u.completion.kind,basenameHash:Mc(pi(p.uri)).toString(16),languageId:p.getLanguageId(),fileExtension:oR(p.uri),resolveInfo:!u.provider.resolveCompletionItem?-1:v?1:0,resolveDuration:u.resolveDuration,commandDuration:y,additionalEditsAsync:k,index:D,firstIndex:Q})}getOverwriteInfo(u,p){Ie(this.editor.hasModel());let v=this.editor.getOption(134).insertMode==="replace";if(p)v=!v;let y=u.position.column-u.editStart.column,k=(v?u.editReplaceEnd.column:u.editInsertEnd.column)-u.position.column,D=this.editor.getPosition().column-u.position.column,T=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:y+D,overwriteAfter:k+T}}_alertCompletionItem(u){if(Ln(u.completion.additionalTextEdits)){let p=e(1534,"Accepting '{0}' made {1} additional edits",u.textLabel,u.completion.additionalTextEdits.length);En(p)}}triggerSuggest(u,p,v){if(this.editor.hasModel())this.model.trigger({auto:p??!1,completionOptions:{providerFilter:u,kindFilter:v?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus()}triggerSuggestAndAcceptBest(u){if(!this.editor.hasModel())return;let p=this.editor.getPosition(),v=()=>{if(p.equals(this.editor.getPosition()))this._commandService.executeCommand(u.fallback)},y=(k)=>{if(k.completion.insertTextRules&4||k.completion.additionalTextEdits)return!0;let D=this.editor.getPosition(),T=k.editStart.column,R=D.column;if(R-T!==k.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:D.lineNumber,startColumn:T,endLineNumber:D.lineNumber,endColumn:R})!==k.completion.insertText};C.once(this.model.onDidTrigger)((k)=>{let D=[];C.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{$e(D),v()},void 0,D),this.model.onDidSuggest(({completionModel:T})=>{if($e(D),T.items.length===0){v();return}let R=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),T.items),K=T.items[R];if(!y(K)){v();return}this.editor.pushUndoStop(),this._insertSuggestion({index:R,item:K,model:T},7)},void 0,D)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(p,0),this.editor.focus()}acceptSelectedSuggestion(u,p){let v=this.widget.value.getFocusedItem(),y=0;if(u)y|=4;if(p)y|=8;this._insertSuggestion(v,y)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){if(this.widget.isInitialized)this.widget.value.forceRenderingAbove();else this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){if(this.widget.isInitialized)this.widget.value.stopForceRenderingAbove();else this._wantsForceRenderingAbove=!1}registerSelector(u){return this._selectors.register(u)}};Hn=IS=aM([Ll(1,Zc),Ll(2,Ne),Ll(3,V),Ll(4,L),Ll(5,Be),Ll(6,Sn)],Hn);class DE{constructor(m){this.prioritySelector=m,this._items=[]}register(m){if(this._items.indexOf(m)!==-1)throw Error("Value is already registered");return this._items.push(m),this._items.sort((u,p)=>this.prioritySelector(p)-this.prioritySelector(u)),{dispose:()=>{let u=this._items.indexOf(m);if(u>=0)this._items.splice(u,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class Xf extends z{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:Xf.id,label:h(1543,"Trigger Suggest"),precondition:_.and(o.writable,o.hasCompletionItemProvider,rt.Visible.toNegated()),kbOpts:{kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(m,u,p){let v=Hn.get(u);if(!v)return;let y;if(p&&typeof p==="object"){if(p.auto===!0)y=!0}v.triggerSuggest(void 0,y,void 0)}}le(Hn.ID,Hn,2);I(Xf);var To=190,wo=Bt.bindToContribution(Hn.get);U(new wo({id:"acceptSelectedSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion),handler(m){m.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:_.and(rt.Visible,o.textInputFocus),weight:To},{primary:3,kbExpr:_.and(rt.Visible,o.textInputFocus,rt.AcceptSuggestionsOnEnter,rt.MakesTextEdit),weight:To}],menuOpts:[{menuId:yr,title:e(1535,"Insert"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange.toNegated())},{menuId:yr,title:e(1536,"Insert"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("insert"))},{menuId:yr,title:e(1537,"Replace"),group:"left",order:1,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("replace"))}]}));U(new wo({id:"acceptAlternativeSelectedSuggestion",precondition:_.and(rt.Visible,o.textInputFocus,rt.HasFocusedSuggestion),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:1027,secondary:[1026]},handler(m){m.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:yr,group:"left",order:2,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("insert")),title:e(1538,"Replace")},{menuId:yr,group:"left",order:2,when:_.and(rt.HasFocusedSuggestion,rt.HasInsertAndReplaceRange,rt.InsertMode.isEqualTo("replace")),title:e(1539,"Insert")}]}));we.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");U(new wo({id:"hideSuggestWidget",precondition:rt.Visible,handler:(m)=>m.cancelSuggestWidget(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:9,secondary:[1033]}}));U(new wo({id:"selectNextSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(m)=>m.selectNextSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:yr,group:"left",order:0,when:rt.HasFocusedSuggestion.toNegated(),title:e(1540,"Select")}}));U(new wo({id:"selectNextPageSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(m)=>m.selectNextPageSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:12,secondary:[2060]}}));U(new wo({id:"selectLastSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(m)=>m.selectLastSuggestion()}));U(new wo({id:"selectPrevSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(m)=>m.selectPrevSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));U(new wo({id:"selectPrevPageSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(m)=>m.selectPrevPageSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:11,secondary:[2059]}}));U(new wo({id:"selectFirstSuggestion",precondition:_.and(rt.Visible,_.or(rt.MultipleSuggestions,rt.HasFocusedSuggestion.negate())),handler:(m)=>m.selectFirstSuggestion()}));U(new wo({id:"focusSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion.negate()),handler:(m)=>m.focusSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));U(new wo({id:"focusAndAcceptSuggestion",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion.negate()),handler:(m)=>{m.focusSuggestion(),m.acceptSelectedSuggestion(!0,!1)}}));U(new wo({id:"toggleSuggestionDetails",precondition:_.and(rt.Visible,rt.HasFocusedSuggestion),handler:(m)=>m.toggleSuggestionDetails(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:yr,group:"right",order:1,when:_.and(rt.DetailsVisible,rt.CanResolve),title:e(1541,"Show Less")},{menuId:yr,group:"right",order:1,when:_.and(rt.DetailsVisible.toNegated(),rt.CanResolve),title:e(1542,"Show More")}]}));U(new wo({id:"toggleExplainMode",precondition:rt.Visible,handler:(m)=>m.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));U(new wo({id:"toggleSuggestionFocus",precondition:rt.Visible,handler:(m)=>m.toggleSuggestionFocus(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:2570,mac:{primary:778}}}));U(new wo({id:"insertBestCompletion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Xu.AtEnd,rt.Visible.toNegated(),Td.OtherSuggestions.toNegated(),wi.InSnippetMode.toNegated()),handler:(m,u)=>{m.triggerSuggestAndAcceptBest(Gt(u)?{fallback:"tab",...u}:{fallback:"tab"})},kbOpts:{weight:To,primary:2}}));U(new wo({id:"insertNextSuggestion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Td.OtherSuggestions,rt.Visible.toNegated(),wi.InSnippetMode.toNegated()),handler:(m)=>m.acceptNextSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:2}}));U(new wo({id:"insertPrevSuggestion",precondition:_.and(o.textInputFocus,_.equals("config.editor.tabCompletion","on"),Td.OtherSuggestions,rt.Visible.toNegated(),wi.InSnippetMode.toNegated()),handler:(m)=>m.acceptPrevSuggestion(),kbOpts:{weight:To,kbExpr:o.textInputFocus,primary:1026}}));U(new class extends Bt{constructor(){super({id:"suggestWidgetCopy",precondition:rt.DetailsFocused,kbOpts:{weight:To+10,kbExpr:rt.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(m,u){F(u.getDomNode()).document.execCommand("copy")}});I(class extends z{constructor(){super({id:"editor.action.resetSuggestSize",label:h(1544,"Reset Suggest Widget Size"),precondition:void 0})}run(m,u){Hn.get(u)?.resetWidgetSize()}});class TE extends n{get selectedItem(){return this._currentSuggestItemInfo}constructor(m,u,p){super();this.editor=m,this.suggestControllerPreselector=u,this.onWillAccept=p,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new i),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(m.onKeyDown((y)=>{if(y.shiftKey&&!this.isShiftKeyPressed)this.isShiftKeyPressed=!0,this.update(this._isActive)})),this._register(m.onKeyUp((y)=>{if(y.shiftKey&&this.isShiftKeyPressed)this.isShiftKeyPressed=!1,this.update(this._isActive)}));let v=Hn.get(this.editor);if(v){this._register(v.registerSelector({priority:100,select:(D,T,R)=>{let K=this.editor.getModel();if(!K)return-1;let q=this.suggestControllerPreselector(),Q=q?Qo(q,K):void 0;if(!Q)return-1;let te=r.lift(T),ne=R.map((ae,ge)=>{let Se=Qu.fromSuggestion(v,K,te,ae,this.isShiftKeyPressed),Oe=Qo(Se.getSingleTextEdit(),K),Ae=Ef(Q,Oe);return{index:ge,valid:Ae,prefixLength:Oe.text.length,suggestItem:ae}}).filter((ae)=>ae&&ae.valid&&ae.prefixLength>0),re=sy(ne,Cn((ae)=>ae.prefixLength,xi));return re?re.index:-1}}));let y=!1,k=()=>{if(y)return;y=!0,this._register(v.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(v.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(v.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))};this._register(C.once(v.model.onDidTrigger)((D)=>{k()})),this._register(v.onWillInsertSuggestItem((D)=>{let T=this.editor.getPosition(),R=this.editor.getModel();if(!T||!R)return;let K=Qu.fromSuggestion(v,R,T,D.item,this.isShiftKeyPressed);this.onWillAccept(K)}))}this.update(this._isActive)}update(m){let u=this.getSuggestItemInfo();if(this._isActive!==m||!dM(this._currentSuggestItemInfo,u))this._isActive=m,this._currentSuggestItemInfo=u,this._onDidSelectedItemChange.fire()}getSuggestItemInfo(){let m=Hn.get(this.editor);if(!m||!this.isSuggestWidgetVisible)return;let u=m.widget.value.getFocusedItem(),p=this.editor.getPosition(),v=this.editor.getModel();if(!u||!p||!v)return;return Qu.fromSuggestion(m,v,p,u.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){Hn.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){Hn.get(this.editor)?.forceRenderingAbove()}}class Qu{static fromSuggestion(m,u,p,v,y){let{insertText:k}=v.completion,D=!1;if(v.completion.insertTextRules&4){let R=new Mo().parse(k);if(R.children.length<100)$c.adjustWhitespace(u,p,!0,R);k=R.toString(),D=!0}let T=m.getOverwriteInfo(v,y);return new Qu(t.fromPositions(p.delta(0,-T.overwriteBefore),p.delta(0,Math.max(T.overwriteAfter,0))),k,v.completion.kind,D,v.container.incomplete??!1)}constructor(m,u,p,v,y){this.range=m,this.insertText=u,this.completionItemKind=p,this.isSnippetText=v,this.listIncomplete=y}equals(m){return this.range.equalsRange(m.range)&&this.insertText===m.insertText&&this.completionItemKind===m.completionItemKind&&this.isSnippetText===m.isSnippetText}toSelectedSuggestionInfo(){return new Jv(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}getSingleTextEdit(){return new ct(this.range,this.insertText)}}function dM(m,u){if(m===u)return!0;if(!m||!u)return!1;return m.equals(u)}class LS extends n{constructor(m,u,p){super();this._editorObs=m,this._handleSuggestAccepted=u,this._suggestControllerPreselector=p,this._suggestWidgetAdaptor=this._register(new TE(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),(v)=>this._editorObs.forceUpdate((y)=>{this._handleSuggestAccepted(v)}))),this.selectedItem=Te(this,(v)=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate((y)=>v(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class kS{constructor(m,u){this.lineNumber=m,this.columnRange=u}}class Yf{constructor(m,u){if(this.startColumn=m,this.endColumnExclusive=u,m>u)throw new P(`startColumn ${m} cannot be after endColumnExclusive ${u}`)}toRange(m){return new t(m,this.startColumn,m,this.endColumnExclusive)}equals(m){return this.startColumn===m.startColumn&&this.endColumnExclusive===m.endColumnExclusive}toZeroBasedOffsetRange(){return new B(this.startColumn-1,this.endColumnExclusive-1)}}class Ha{static fromLineTokens(m){let u=[];for(let p=0;p<m.getCount();p++)u.push(new ES(m.getTokenText(p),m.getMetadata(p)));return Ha.create(u)}static create(m){return new Ha(m)}constructor(m){this._tokenInfo=m}toLineTokens(m){return bt.createFromTextAndMetadata(this.map((u,p)=>({text:p.text,metadata:p.metadata})),m)}map(m){let u=[],p=0;for(let v of this._tokenInfo){let y=new B(p,p+v.text.length);u.push(m(y,v)),p+=v.text.length}return u}slice(m){let u=[],p=0;for(let v of this._tokenInfo){let y=p,k=y+v.text.length;if(k>m.start){if(y>=m.endExclusive)break;let D=Math.max(0,m.start-y),T=Math.max(0,k-m.endExclusive);u.push(new ES(v.text.slice(D,v.text.length-T),v.metadata))}p+=v.text.length}return Ha.create(u)}append(m){let u=this._tokenInfo.concat(m._tokenInfo);return Ha.create(u)}}class ES{constructor(m,u){this.text=m,this.metadata=u}}var cM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},lM=function(m,u){return function(p,v){u(p,v,m)}};class Qf{static from(m){if(!m)return;return new Qf(m.icon)}constructor(m=b.warning){this.icon=m}}var ME="ghost-text",Wa=class m extends n{constructor(u,p,v,y){super();if(this._editor=u,this._data=p,this._languageService=y,this._isDisposed=M(this,!1),this._warningState=d((k)=>{let D=this._data.read(k),T=D?.warning;if(!D||!T)return;let R=D.ghostText;return{lineNumber:R.lineNumber,position:new r(R.lineNumber,R.parts[0].column),icon:T.icon}}),this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._nonWhitespaceCount=d(this,(k)=>{let D=this._data.read(k);if(!D)return;return D.ghostText.parts.map((K)=>K.lines.map((q)=>q.line).join("")).join("").replace(/\s/g,"").length}),this._extraClassNames=d(this,(k)=>{let D=this._extraClasses.slice();if(this._warningState.read(k))D.push("warning");let T=this._nonWhitespaceCount.read(k);if(this._highlightShortText&&T&&T<3)D.push("short-text");else if(this._useSyntaxHighlighting.read(k))D.push("syntax-highlighted");return D.map((K)=>` ${K}`).join("")}),this._state=d(this,(k)=>{if(this._isDisposed.read(k))return;let D=this._data.read(k);if(!D)return;let T=this._editorObs.model.read(k);if(!T)return;let R=D.ghostText,K=R instanceof Uu?R.columnRange:void 0,q=this._useSyntaxHighlighting.read(k),Q=this._extraClassNames.read(k),{inlineTexts:te,additionalLines:ne,hiddenRange:re,additionalLinesOriginalSuffix:ae}=hM(R,T,ME+Q),ge=T.getLineContent(R.lineNumber),Se=new to(te.map((ot)=>Un.insert(ot.column-1,ot.text))),Oe=q?T.tokenization.tokenizeLinesAt(R.lineNumber,[Se.apply(ge),...ne.map((ot)=>ot.content)]):void 0,Ae=Se.getNewRanges(),We=te.map((ot,qe)=>({...ot,tokens:Oe?.[0]?.getTokensInRange(Ae[qe])})),Ue=ne.map((ot,qe)=>{let nt=Oe?.[qe+1]??bt.createEmpty(ot.content,this._languageService.languageIdCodec);if(qe===ne.length-1&&ae){let st=Ha.fromLineTokens(T.tokenization.getLineTokens(ae.lineNumber)).slice(ae.columnRange.toZeroBasedOffsetRange());nt=Ha.fromLineTokens(nt).append(st).toLineTokens(nt.languageIdCodec)}return new AE(nt,ot.decorations)}),Le=this._editor.getSelection()?.getStartPosition().column,He=We.filter((ot)=>ot.text!==""),Je=He.length!==0,tt=new rl((Je?He[0].column:1)-Le,Je?0:ne.findIndex((ot)=>ot.content!=="")+1,Je?1:0,ne.length+(Je?1:0),0,Xm(He.map((ot)=>ot.text.length))+Xm(Ue.map((ot)=>ot.content.getTextLength())),He.length+(ne.length>0?1:0),He.length>1&&Ue.length===0?He.every((ot)=>ot.text===He[0].text):void 0);return{replacedRange:K,inlineTexts:We,additionalLines:Ue,hiddenRange:re,lineNumber:R.lineNumber,additionalReservedLineCount:this._minReservedLineCount.read(k),targetTextModel:T,syntaxHighlightingEnabled:q,telemetryViewData:tt,handleInlineCompletionShown:D.handleInlineCompletionShown}}),this._decorations=d(this,(k)=>{let D=this._state.read(k);if(!D)return[];let T=[],R=this._extraClassNames.read(k);if(D.replacedRange)T.push({range:D.replacedRange.toRange(D.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+R,description:"GhostTextReplacement"}});if(D.hiddenRange)T.push({range:D.hiddenRange.toRange(D.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(let K of D.inlineTexts){let q="";if(this._highlightShortText&&K.text.length<5)q+=" short-text";T.push({range:t.fromPositions(new r(D.lineNumber,K.column)),options:{description:"ghost-text-decoration",after:{content:K.text,tokens:K.tokens,inlineClassName:(K.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+R+q+K.lineDecorations.map((Q)=>" "+Q.className).join(" "),cursorStops:jr.Left,attachedData:new Jf(this)},showIfCollapsed:!0}})}return T}),this.isHovered=d(this,(k)=>{if(this._isDisposed.read(k))return!1;return this._isInlineTextHovered.read(k)||this._additionalLinesWidget.isHovered.read(k)}),this._extraClasses=v.extraClasses??[],this._isClickable=v.isClickable??!1,this._shouldKeepCursorStable=v.shouldKeepCursorStable??!1,this._minReservedLineCount=v.minReservedLineCount??ke(0),this._useSyntaxHighlighting=v.useSyntaxHighlighting??ke(!0),this._highlightShortText=v.highlightShortSuggestions??!1,this._editorObs=Xe(this._editor),this._additionalLinesWidget=this._register(new PE(this._editor,fn({owner:this,equalsFn:Pc(ph())},(k)=>{let D=this._state.read(k);return D?new OE(D.lineNumber,D.additionalLines,D.additionalReservedLineCount):void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered((k)=>k.target.type===6&&k.target.detail.injectedText?.options.attachedData instanceof Jf&&k.target.detail.injectedText.options.attachedData.owner===this,this._store),this._register(E(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this._decorations)),this._isClickable)this._register(this._additionalLinesWidget.onDidClick((k)=>this._onDidClick.fire(k))),this._register(this._editor.onMouseUp((k)=>{if(k.target.type!==6)return;let D=k.target.detail.injectedText?.options.attachedData;if(D instanceof Jf&&D.owner===this)this._onDidClick.fire(k.event)}));this._register(H((k)=>{let D=this._state.read(k);D?.handleInlineCompletionShown(D.telemetryViewData)})),this._register(Fn((k,D)=>{return}))}static getWarningWidgetContext(u){let p=u.ghostTextViewWarningWidgetData;if(p)return p;else if(u.parentElement)return this.getWarningWidgetContext(u.parentElement);return}ownsViewZone(u){return this._additionalLinesWidget.viewZoneId===u}};Wa=cM([lM(3,pt)],Wa);class Jf{constructor(m){this.owner=m}}function hM(m,u,p){let v=[],y=[];function k(Q,te){if(y.length>0){let ne=y[y.length-1];if(te)ne.decorations.push(new Ii(ne.content.length+1,ne.content.length+1+Q[0].line.length,te,0));ne.content+=Q[0].line,Q=Q.slice(1)}for(let ne of Q)y.push({content:ne.line,decorations:te?[new Ii(1,ne.line.length+1,te,0),...ne.lineDecorations]:[...ne.lineDecorations]})}let D=u.getLineContent(m.lineNumber),T=void 0,R=0;for(let Q of m.parts){let te=Q.lines;if(T===void 0)v.push({column:Q.column,text:te[0].line,preview:Q.preview,lineDecorations:te[0].lineDecorations}),te=te.slice(1);else k([{line:D.substring(R,Q.column-1),lineDecorations:[]}],void 0);if(te.length>0){if(k(te,p),T===void 0&&Q.column<=D.length)T=Q.column}R=Q.column-1}let K=void 0;if(T!==void 0)K=new kS(m.lineNumber,new Yf(R+1,D.length+1));let q=T!==void 0?new Yf(T,D.length+1):void 0;return{inlineTexts:v,additionalLines:y,hiddenRange:q,additionalLinesOriginalSuffix:K}}class OE{constructor(m,u,p){this.lineNumber=m,this.additionalLines=u,this.minReservedLineCount=p}equals(m){if(this.lineNumber!==m.lineNumber)return!1;if(this.minReservedLineCount!==m.minReservedLineCount)return!1;return Ke(this.additionalLines,m.additionalLines,ph())}}class PE extends n{get viewZoneId(){return this._viewZoneInfo?.viewZoneId}constructor(m,u,p,v){super();if(this._editor=m,this._lines=u,this._shouldKeepCursorStable=p,this._isClickable=v,this._viewZoneHeight=M("viewZoneHeight",void 0),this.editorOptionsChanged=si("editorOptionChanged",C.filter(this._editor.onDidChangeConfiguration,(y)=>y.hasChanged(40)||y.hasChanged(133)||y.hasChanged(113)||y.hasChanged(108)||y.hasChanged(60)||y.hasChanged(59)||y.hasChanged(75)||y.hasChanged(176))),this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new ie),this.isHovered=Xe(this._editor).isTargetHovered((y)=>RE(y.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof vl&&this._shouldKeepCursorStable)this._register(this._editor.onBeforeExecuteEdit((y)=>this.hasBeenAccepted=y.source==="inlineCompletionAccept"));this._register(H((y)=>{let k=this._lines.read(y);if(this.editorOptionsChanged.read(y),k)this.hasBeenAccepted=!1,this.updateLines(k.lineNumber,k.additionalLines,k.minReservedLineCount);else this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones((m)=>{this.removeActiveViewZone(m)})}updateLines(m,u,p){let v=this._editor.getModel();if(!v)return;let{tabSize:y}=v.getOptions();Xe(this._editor).transaction((k)=>{this._editor.changeViewZones((D)=>{let T=new c;this.removeActiveViewZone(D);let R=Math.max(u.length,p);if(R>0){let K=document.createElement("div");if(uM(K,y,u,this._editor.getOptions(),this._isClickable),this._isClickable)T.add(l(K,"mousedown",(q)=>{q.preventDefault()})),T.add(l(K,"click",(q)=>{if(RE(q.target))this._onDidClick.fire(new Wn(F(q),q))}));this.addViewZone(D,m,R,K)}this._viewZoneListener.value=T})})}addViewZone(m,u,p,v){let y=m.addZone({afterLineNumber:u,heightInLines:p,domNode:v,afterColumnAffinity:1,onComputedHeight:(k)=>{this._viewZoneHeight.set(k,void 0)}});this.keepCursorStable(u,p),this._viewZoneInfo={viewZoneId:y,heightInLines:p,lineNumber:u}}removeActiveViewZone(m){if(this._viewZoneInfo){if(m.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(m,u){if(!this._shouldKeepCursorStable)return;let p=this._editor.getSelection()?.getStartPosition()?.lineNumber;if(p!==void 0&&m<p)this._editor.setScrollTop(this._editor.getScrollTop()+u*this._editor.getOption(75))}}function RE(m){return xe(m)&&m.classList.contains(ME)}class AE{constructor(m,u){this.content=m,this.decorations=u}equals(m){if(!this.content.equals(m.content))return!1;return Ii.equalsArr(this.decorations,m.decorations)}}function uM(m,u,p,v,y){let k=v.get(40),D=v.get(133),T="none",R=v.get(108),K=v.get(60),q=v.get(59),Q=v.get(75),te=v.get(176)==="twoCells",ne="suggest-preview-text";if(y)ne+=" clickable";let re=new Fr(1e4);re.appendString(`<div class="${ne}">`);for(let Se=0,Oe=p.length;Se<Oe;Se++){let Ae=p[Se],We=Ae.content;re.appendString('<div class="view-line'),re.appendString('" style="top:'),re.appendString(String(Se*Q)),re.appendString('px;width:1000000px;">');let Ue=We.getLineContent(),Le=Oc(Ue),He=ka(Ue);Zl(new Hr(q.isMonospace&&!k,q.canUseHalfwidthRightwardsArrow,Ue,!1,Le,He,0,We,Ae.decorations.slice(),u,0,q.spaceWidth,q.middotWidth,q.wsmiddotWidth,D,"none",R,K!==nr.OFF,null,null,0,!1,te),re),re.appendString("</div>")}re.appendString("</div>"),sn(m,q);let ae=re.build(),ge=NE?NE.createHTML(ae):ae;m.innerHTML=ge}var NE=mo("editorGhostText",{createHTML:(m)=>m});class Ba{constructor(m,u){this.width=m,this.height=u}toString(){return`(${this.width},${this.height})`}transpose(){return new Ba(this.height,this.width)}toDimension(){return{width:this.width,height:this.height}}}class xt{static fromPoints(m,u){return new xt(m.x,m.y,u.x,u.y)}static fromPointSize(m,u){return new xt(m.x,m.y,m.x+u.x,m.y+u.y)}static fromLeftTopRightBottom(m,u,p,v){return new xt(m,u,p,v)}static fromLeftTopWidthHeight(m,u,p,v){return new xt(m,u,m+p,u+v)}static fromRanges(m,u){return new xt(m.start,u.start,m.endExclusive,u.endExclusive)}static hull(m){let{MAX_SAFE_INTEGER:u,MAX_SAFE_INTEGER:p,MIN_SAFE_INTEGER:v,MIN_SAFE_INTEGER:y}=Number;for(let k of m)u=Math.min(u,k.left),p=Math.min(p,k.top),v=Math.max(v,k.right),y=Math.max(y,k.bottom);return new xt(u,p,v,y)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(m,u,p,v){if(this.left=m,this.top=u,this.right=p,this.bottom=v,m>p)throw new P("Invalid arguments: Horizontally offset by "+(m-p));if(u>v)throw new P("Invalid arguments: Vertically offset by "+(u-v))}withMargin(m,u,p,v){let y,k,D,T;if(u===void 0&&p===void 0&&v===void 0)y=k=D=T=m;else if(p===void 0&&v===void 0)y=k=u,D=T=m;else y=v,k=u,D=m,T=p;return new xt(this.left-y,this.top-D,this.right+k,this.bottom+T)}intersectVertical(m){let u=Math.max(this.top,m.start),p=Math.min(this.bottom,m.endExclusive);return new xt(this.left,u,this.right,Math.max(u,p))}intersectHorizontal(m){let u=Math.max(this.left,m.start),p=Math.min(this.right,m.endExclusive);return new xt(u,this.top,Math.max(u,p),this.bottom)}toString(){return`Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`}intersect(m){let u=Math.max(this.left,m.left),p=Math.min(this.right,m.right),v=Math.max(this.top,m.top),y=Math.min(this.bottom,m.bottom);if(u>p||v>y)return;return new xt(u,v,p,y)}containsRect(m){return this.left<=m.left&&this.top<=m.top&&this.right>=m.right&&this.bottom>=m.bottom}containsPoint(m){return this.left<=m.x&&this.top<=m.y&&this.right>=m.x&&this.bottom>=m.y}moveToBeContainedIn(m){let u=this.width,p=this.height,v=this.left,y=this.top;if(v<m.left)v=m.left;else if(v+u>m.right)v=m.right-u;if(y<m.top)y=m.top;else if(y+p>m.bottom)y=m.bottom-p;return new xt(v,y,v+u,y+p)}withWidth(m){return new xt(this.left,this.top,this.left+m,this.bottom)}withHeight(m){return new xt(this.left,this.top,this.right,this.top+m)}withTop(m){return new xt(this.left,m,this.right,this.bottom)}withLeft(m){return new xt(m,this.top,this.right,this.bottom)}translateX(m){return new xt(this.left+m,this.top,this.right+m,this.bottom)}translateY(m){return new xt(this.left,this.top+m,this.right,this.bottom+m)}getLeftBottom(){return new Xn(this.left,this.bottom)}getRightBottom(){return new Xn(this.right,this.bottom)}getRightTop(){return new Xn(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(m){return new xt(m.start,this.top,m.endExclusive,this.bottom)}getSize(){return new Ba(this.width,this.height)}}class El{constructor(m,u,p,v=null){this.startLineNumbers=m,this.endLineNumbers=u,this.lastLineRelativePosition=p,this.showEndForLine=v}equals(m){return!!m&&this.lastLineRelativePosition===m.lastLineRelativePosition&&this.showEndForLine===m.showEndForLine&&Ke(this.startLineNumbers,m.startLineNumbers)&&Ke(this.endLineNumbers,m.endLineNumbers)}static get Empty(){return new El([],[],0)}}var FE=mo("stickyScrollViewLayer",{createHTML:(m)=>m}),DS="data-sticky-line-index",HE="data-sticky-is-line",gM="data-sticky-is-line-number",WE="data-sticky-is-folding-icon";class TS extends n{get height(){return this._height}constructor(m){super();this._foldingIconStore=this._register(new c),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new i),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=m,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",m instanceof ro),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable),this._setHeight(0);let u=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration((p)=>{if(p.hasChanged(131))u()})),this._register(this._editor.onDidScrollChange((p)=>{if(p.scrollLeftChanged)u();if(p.scrollWidthChanged)this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{u(),this._updateWidgetWidth()})),u(),this._register(this._editor.onDidLayoutChange((p)=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(m){return this._renderedStickyLines.find((u)=>u.lineNumber===m)}getCurrentLines(){return this._lineNumbers}setState(m,u,p){let v=!this._state&&!m,y=this._state&&this._state.equals(m);if(p===void 0&&(v||y))return;let k=this._findRenderingData(m),D=this._lineNumbers;this._lineNumbers=k.lineNumbers,this._lastLineRelativePosition=k.lastLineRelativePosition;let T=this._findIndexToRebuildFrom(D,this._lineNumbers,p);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,u,T),this._state=m}_findRenderingData(m){if(!m)return{lineNumbers:[],lastLineRelativePosition:0};let u=[...m.startLineNumbers];if(m.showEndForLine!==null)u[m.showEndForLine]=m.endLineNumbers[m.showEndForLine];let p=0;for(let v=0;v<u.length;v++){let y=new r(u[v],1),k=this._editor._getViewModel();if(k&&y.lineNumber<=k.getLineCount())p+=this._editor.getLineHeightForPosition(new r(u[v],1))}if(p===0)return{lineNumbers:[],lastLineRelativePosition:0};return{lineNumbers:u,lastLineRelativePosition:m.lastLineRelativePosition}}_findIndexToRebuildFrom(m,u,p){if(u.length===0)return 0;if(p!==void 0)return p;let v=u.findIndex((y)=>!m.includes(y));return v===-1?0:v}_updateWidgetWidth(){let m=this._editor.getLayoutInfo(),u=m.contentLeft;this._lineNumbersDomNode.style.width=`${u}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-m.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${m.width-m.verticalScrollbarWidth}px`}_useFoldingOpacityTransition(m){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${m?0.5:0}s`)}_setFoldingIconsVisibility(m){for(let u of this._renderedStickyLines){let p=u.foldingIcon;if(!p)continue;p.setVisible(m?!0:p.isCollapsed)}}async _renderRootNode(m,u,p,v){let y=this._editor._getViewModel();if(!y){this._clearWidget();return}if(m.length===0){this._clearWidget();return}let k=[],D=m[m.length-1],T=0;for(let K=0;K<this._renderedStickyLines.length;K++)if(K<v){let q=this._renderedStickyLines[K];k.push(this._updatePosition(q,T,q.lineNumber===D)),T+=q.height}else{let q=this._renderedStickyLines[K];q.lineNumberDomNode.remove(),q.lineDomNode.remove()}let R=this._editor.getLayoutInfo();for(let K=v;K<m.length;K++){let q=m[K];if(q>y.getLineCount())continue;let Q=this._renderChildNode(y,K,q,T,D===q,p,R);T+=Q.height,this._linesDomNode.appendChild(Q.lineDomNode),this._lineNumbersDomNode.appendChild(Q.lineNumberDomNode),k.push(Q)}if(p)this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin);this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map((K)=>K.scrollWidth))+R.verticalScrollbarWidth,this._renderedStickyLines=k,this._setHeight(T+u),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let m=0;m<this._renderedStickyLines.length;m++){let u=this._renderedStickyLines[m];u.lineNumberDomNode.remove(),u.lineDomNode.remove()}this._setHeight(0)}_setHeight(m){if(this._height===m)return;if(this._height=m,this._height===0)this._rootDomNode.style.display="none";else this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${this._height}px`,this._linesDomNodeScrollable.style.height=`${this._height}px`,this._rootDomNode.style.height=`${this._height}px`;this._onDidChangeStickyScrollHeight.fire({height:this._height})}_setFoldingHoverListeners(){if(this._foldingIconStore.clear(),this._editor.getOption(126)!=="mouseover")return;this._foldingIconStore.clear(),this._foldingIconStore.add(l(this._lineNumbersDomNode,x.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(l(this._lineNumbersDomNode,x.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))}_renderChildNode(m,u,p,v,y,k,D){let T=new BE(this._editor,m,D,k,this._isOnGlyphMargin,u,p);return this._updatePosition(T,v,y)}_updatePosition(m,u,p){let{lineDomNode:v,lineNumberDomNode:y}=m;if(p){v.style.zIndex="0",y.style.zIndex="0";let D=`${u+this._lastLineRelativePosition+(m.foldingIcon?.isCollapsed?1:0)}px`;v.style.top=D,y.style.top=D}else v.style.zIndex="1",y.style.zIndex="1",v.style.top=`${u}px`,y.style.top=`${u}px`;return m}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOrdinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(m){if(0<=m&&m<this._renderedStickyLines.length)this._renderedStickyLines[m].lineDomNode.focus()}getEditorPositionFromNode(m){if(!m||m.children.length>0)return null;let u=this._getRenderedStickyLineFromChildDomNode(m);if(!u)return null;let p=lu(u.characterMapping,m,0);return new r(u.lineNumber,p)}getLineNumberFromChildDomNode(m){return this._getRenderedStickyLineFromChildDomNode(m)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(m){let u=this.getLineIndexFromChildDomNode(m);if(u===null||u<0||u>=this._renderedStickyLines.length)return null;return this._renderedStickyLines[u]}getLineIndexFromChildDomNode(m){let u=this._getAttributeValue(m,DS);return u?parseInt(u,10):null}isInStickyLine(m){return this._getAttributeValue(m,HE)!==void 0}isInFoldingIconDomNode(m){return this._getAttributeValue(m,WE)!==void 0}_getAttributeValue(m,u){while(m&&m!==this._rootDomNode){let p=m.getAttribute(u);if(p!==null)return p;m=m.parentElement}return}}class BE{constructor(m,u,p,v,y,k,D){this.index=k,this.lineNumber=D;let T=u.coordinatesConverter.convertModelPositionToViewPosition(new r(D,1)).lineNumber,R=u.getViewLineRenderingData(T),K=m.getOption(76),q=m.getOption(117).verticalScrollbarSize,Q;try{Q=Ii.filter(R.inlineDecorations,T,R.minColumn,R.maxColumn)}catch(He){Q=[]}let te=m.getLineHeightForPosition(new r(D,1)),ne=u.getTextDirection(D),re=m.getOption(59),ae=new Hr(!0,!0,R.content,R.continuesWithWrappedLine,R.isBasicASCII,R.containsRTL,0,R.tokens,Q,R.tabSize,R.startVisibleColumn,re.spaceWidth,1,1,500,"none",!0,!0,null,ne,q,!1,m.getOption(176)==="twoCells"),ge=new Fr(2000),Se=Zl(ae,ge);this.characterMapping=Se.characterMapping;let Oe;if(FE)Oe=FE.createHTML(ge.build());else Oe=ge.build();let Ae=document.createElement("span");Ae.setAttribute(DS,String(k)),Ae.setAttribute(HE,""),Ae.setAttribute("role","listitem"),Ae.tabIndex=0,Ae.className="sticky-line-content",Ae.classList.add(`stickyLine${D}`),Ae.style.lineHeight=`${te}px`,Ae.innerHTML=Oe;let We=document.createElement("span");We.setAttribute(DS,String(k)),We.setAttribute(gM,""),We.className="sticky-line-number",We.style.lineHeight=`${te}px`;let Ue=p.contentLeft;We.style.width=`${Ue}px`;let Le=document.createElement("span");if(K.renderType===1||K.renderType===3&&D%10===0)Le.innerText=D.toString();else if(K.renderType===2)Le.innerText=Math.abs(D-m.getPosition().lineNumber).toString();if(Le.className="sticky-line-number-inner",Le.style.width=`${p.lineNumbersWidth}px`,Le.style.paddingLeft=`${p.lineNumbersLeft}px`,We.appendChild(Le),this.foldingIcon=this._renderFoldingIconForLine(m,v,D,te,y),this.foldingIcon)We.appendChild(this.foldingIcon.domNode),this.foldingIcon.domNode.style.left=`${p.lineNumbersWidth+p.lineNumbersLeft}px`,this.foldingIcon.domNode.style.lineHeight=`${te}px`;m.applyFontInfo(Ae),m.applyFontInfo(We),We.style.lineHeight=`${te}px`,Ae.style.lineHeight=`${te}px`,We.style.height=`${te}px`,Ae.style.height=`${te}px`,this.scrollWidth=Ae.scrollWidth,this.lineDomNode=Ae,this.lineNumberDomNode=We,this.height=te}_renderFoldingIconForLine(m,u,p,v,y){let k=m.getOption(126);if(!u||k==="never")return;let D=u.regions,T=D.findRange(p),R=D.getStartLineNumber(T);if(p!==R)return;let q=D.isCollapsed(T),Q=new VE(q,R,D.getEndLineNumber(T),v);return Q.setVisible(y?!0:q||k==="always"),Q.domNode.setAttribute(WE,""),Q}}class VE{constructor(m,u,p,v){this.isCollapsed=m,this.foldingStartLine=u,this.foldingEndLine=p,this.dimension=v,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height=`${v}px`,this.domNode.style.lineHeight=`${v}px`,this.domNode.className=G.asClassName(m?Vh:Hh)}setVisible(m){this.domNode.style.cursor=m?"pointer":"default",this.domNode.style.opacity=m?"1":"0"}}var pM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},RS=function(m,u){return function(p,v){u(p,v,m)}};class Nd{remove(){this.parent?.children.delete(this.id)}static findId(m,u){let p;if(typeof m==="string")p=`${u.id}/${m}`;else if(p=`${u.id}/${m.name}`,u.children.get(p)!==void 0)p=`${u.id}/${m.name}_${m.range.startLineNumber}_${m.range.startColumn}`;let v=p;for(let y=0;u.children.get(v)!==void 0;y++)v=`${p}_${y}`;return v}static empty(m){return m.children.size===0}}class eg extends Nd{constructor(m,u,p){super();this.id=m,this.parent=u,this.symbol=p,this.children=new Map}}class t_ extends Nd{constructor(m,u,p,v){super();this.id=m,this.parent=u,this.label=p,this.order=v,this.children=new Map}}class ls extends Nd{static create(m,u,p){let v=new Me(p),y=new ls(u.uri),k=m.ordered(u),D=k.map((R,K)=>{let q=Nd.findId(`provider_${K}`,y),Q=new t_(q,y,R.displayName??"Unknown Outline Provider",K);return Promise.resolve(R.provideDocumentSymbols(u,v.token)).then((te)=>{for(let ne of te||[])ls._makeOutlineElement(ne,Q);return Q},(te)=>(dt(te),Q)).then((te)=>{if(!Nd.empty(te))y._groups.set(q,te);else te.remove()})}),T=m.onDidChange(()=>{let R=m.ordered(u);if(!Ke(R,k))v.cancel()});return Promise.all(D).then(()=>{if(v.token.isCancellationRequested&&!p.isCancellationRequested)return ls.create(m,u,p);else return y._compact()}).finally(()=>{v.dispose(),T.dispose(),v.dispose()})}static _makeOutlineElement(m,u){let p=Nd.findId(m,u),v=new eg(p,u,m);if(m.children)for(let y of m.children)ls._makeOutlineElement(y,v);u.children.set(v.id,v)}constructor(m){super();this.uri=m,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let m=0;for(let[u,p]of this._groups)if(p.children.size===0)this._groups.delete(u);else m+=1;if(m!==1)this.children=this._groups;else{let u=Ce.first(this._groups.values());for(let[,p]of u.children)p.parent=this,this.children.set(p.id,p)}return this}getTopLevelSymbols(){let m=[];for(let u of this.children.values())if(u instanceof eg)m.push(u.symbol);else m.push(...Ce.map(u.children.values(),(p)=>p.symbol));return m.sort((u,p)=>t.compareRangesUsingStarts(u.range,p.range))}asListOfDocumentSymbols(){let m=this.getTopLevelSymbols(),u=[];return ls._flattenDocumentSymbols(u,m,""),u.sort((p,v)=>r.compare(t.getStartPosition(p.range),t.getStartPosition(v.range))||r.compare(t.getEndPosition(v.range),t.getEndPosition(p.range)))}static _flattenDocumentSymbols(m,u,p){for(let v of u)if(m.push({kind:v.kind,tags:v.tags,name:v.name,detail:v.detail,containerName:v.containerName||p,range:v.range,selectionRange:v.selectionRange,children:void 0}),v.children)ls._flattenDocumentSymbols(m,v.children,v.name)}}var Kd=Z("IOutlineModelService"),NS=class m{constructor(u,p,v){this._languageFeaturesService=u,this._disposables=new c,this._cache=new Ei(15,0.7),this._debounceInformation=p.for(u.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(v.onModelRemoved((y)=>{this._cache.delete(y.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(u,p){let v=this._languageFeaturesService.documentSymbolProvider,y=v.ordered(u),k=this._cache.get(u.id);if(!k||k.versionId!==u.getVersionId()||!Ke(k.provider,y)){let T=new Me;k={versionId:u.getVersionId(),provider:y,promiseCnt:0,source:T,promise:ls.create(v,u,T.token),model:void 0},this._cache.set(u.id,k);let R=Date.now();k.promise.then((K)=>{k.model=K,this._debounceInformation.update(u,Date.now()-R)}).catch((K)=>{this._cache.delete(u.id)})}if(k.model)return k.model;k.promiseCnt+=1;let D=p.onCancellationRequested(()=>{if(--k.promiseCnt===0)k.source.cancel(),this._cache.delete(u.id)});try{return await k.promise}finally{D.dispose()}}};NS=pM([RS(0,j),RS(1,Hi),RS(2,gt)],NS);fe(Kd,NS,1);class Va{constructor(m,u){this.startLineNumber=m,this.endLineNumber=u}}class Dl{constructor(m,u,p){this.range=m,this.children=u,this.parent=p}}class i_{constructor(m,u,p,v){this.uri=m,this.version=u,this.element=p,this.outlineProviderId=v}}var d_=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},hg=function(m,u){return function(p,v){u(p,v,m)}},rg;(function(m){m.OUTLINE_MODEL="outlineModel",m.FOLDING_PROVIDER_MODEL="foldingProviderModel",m.INDENTATION_MODEL="indentationModel"})(rg||(rg={}));var za;(function(m){m[m.VALID=0]="VALID",m[m.INVALID=1]="INVALID",m[m.CANCELED=2]="CANCELED"})(za||(za={}));var n_=class m extends n{constructor(u,p,v,y){super();switch(this._editor=u,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Ci(300)),this._updateOperation=this._register(new c),this._editor.getOption(131).defaultModel){case rg.OUTLINE_MODEL:this._modelProviders.push(new MS(this._editor,y));case rg.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new PS(this._editor,p,y));case rg.INDENTATION_MODEL:this._modelProviders.push(new OS(this._editor,v));break}}dispose(){this._modelProviders.forEach((u)=>u.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){if(this._modelPromise)this._modelPromise.cancel(),this._modelPromise=null}async update(u){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(let p of this._modelProviders){let{statusPromise:v,modelPromise:y}=p.computeStickyModel(u);this._modelPromise=y;let k=await v;if(this._modelPromise!==y)return null;switch(k){case za.CANCELED:return this._updateOperation.clear(),null;case za.VALID:return p.stickyModel}}return null}).catch((p)=>(J(p),null))}};n_=d_([hg(2,L),hg(3,j)],n_);class AS extends n{constructor(m){super();this._editor=m,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,za.INVALID}computeStickyModel(m){if(m.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};let u=Pt((p)=>this.createModelFromProvider(p));return{statusPromise:u.then((p)=>{if(!this.isModelValid(p))return this._invalid();if(m.isCancellationRequested)return za.CANCELED;return this._stickyModel=this.createStickyModel(m,p),za.VALID}).then(void 0,(p)=>(J(p),za.CANCELED)),modelPromise:u}}isModelValid(m){return!0}isProviderValid(){return!0}}var MS=class m extends AS{constructor(u,p){super(u);this._languageFeaturesService=p}createModelFromProvider(u){return ls.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),u)}createStickyModel(u,p){let{stickyOutlineElement:v,providerID:y}=this._stickyModelFromOutlineModel(p,this._stickyModel?.outlineProviderId),k=this._editor.getModel();return new i_(k.uri,k.getVersionId(),v,y)}isModelValid(u){return u&&u.children.size>0}_stickyModelFromOutlineModel(u,p){let v;if(Ce.first(u.children.values())instanceof t_){let T=Ce.find(u.children.values(),(R)=>R.id===p);if(T)v=T.children;else{let R="",K=-1,q=void 0;for(let[Q,te]of u.children.entries()){let ne=this._findSumOfRangesOfGroup(te);if(ne>K)q=te,K=ne,R=te.id}p=R,v=q.children}}else v=u.children;let y=[],k=Array.from(v.values()).sort((T,R)=>{let K=new Va(T.symbol.range.startLineNumber,T.symbol.range.endLineNumber),q=new Va(R.symbol.range.startLineNumber,R.symbol.range.endLineNumber);return this._comparator(K,q)});for(let T of k)y.push(this._stickyModelFromOutlineElement(T,T.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new Dl(void 0,y,void 0),providerID:p}}_stickyModelFromOutlineElement(u,p){let v=[];for(let k of u.children.values())if(k.symbol.selectionRange.startLineNumber!==k.symbol.range.endLineNumber)if(k.symbol.selectionRange.startLineNumber!==p)v.push(this._stickyModelFromOutlineElement(k,k.symbol.selectionRange.startLineNumber));else for(let D of k.children.values())v.push(this._stickyModelFromOutlineElement(D,k.symbol.selectionRange.startLineNumber));v.sort((k,D)=>this._comparator(k.range,D.range));let y=new Va(u.symbol.selectionRange.startLineNumber,u.symbol.range.endLineNumber);return new Dl(y,v,void 0)}_comparator(u,p){if(u.startLineNumber!==p.startLineNumber)return u.startLineNumber-p.startLineNumber;else return p.endLineNumber-u.endLineNumber}_findSumOfRangesOfGroup(u){let p=0;for(let v of u.children.values())p+=this._findSumOfRangesOfGroup(v);if(u instanceof eg)return p+u.symbol.range.endLineNumber-u.symbol.selectionRange.startLineNumber;else return p}};MS=d_([hg(1,j)],MS);class FS extends AS{constructor(m){super(m);this._foldingLimitReporter=this._register(new Dp(m))}createStickyModel(m,u){let p=this._fromFoldingRegions(u),v=this._editor.getModel();return new i_(v.uri,v.getVersionId(),p,void 0)}isModelValid(m){return m!==null}_fromFoldingRegions(m){let u=m.length,p=[],v=new Dl(void 0,[],void 0);for(let y=0;y<u;y++){let k=m.getParentIndex(y),D;if(k!==-1)D=p[k];else D=v;let T=new Dl(new Va(m.getStartLineNumber(y),m.getEndLineNumber(y)+1),[],D);D.children.push(T),p.push(T)}return v}}var OS=class m extends FS{constructor(u,p){super(u);this._languageConfigurationService=p,this.provider=this._register(new gc(u.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(u){return this.provider.compute(u)}};OS=d_([hg(1,et)],OS);var PS=class m extends FS{constructor(u,p,v){super(u);this._languageFeaturesService=v,this.provider=this._register(new ie),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(u,p)})),this._updateProvider(u,p)}_updateProvider(u,p){let v=qr.getFoldingRangeProviders(this._languageFeaturesService,u.getModel());if(v.length===0)return;this.provider.value=new mc(u.getModel(),v,p,this._foldingLimitReporter,void 0)}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(u){return this.provider.value?.compute(u)??null}};PS=d_([hg(2,j)],PS);var mM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},zE=function(m,u){return function(p,v){u(p,v,m)}};class KE{constructor(m,u,p,v){this.startLineNumber=m,this.endLineNumber=u,this.top=p,this.height=v}}var c_=class m extends n{constructor(u,p,v){super();this._languageFeaturesService=p,this._languageConfigurationService=v,this._onDidChangeStickyScroll=this._register(new i),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=u,this._sessionStore=this._register(new c),this._updateSoon=this._register(new be(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration((y)=>{if(y.hasChanged(131))this.readConfiguration()})),this.readConfiguration()}readConfiguration(){if(this._sessionStore.clear(),!this._editor.getOption(131).enabled)return;this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(E(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update()}getVersionId(){return this._model?.version}updateStickyModelProvider(){if(this._stickyModelProvider?.dispose(),this._stickyModelProvider=null,this._editor.hasModel())this._stickyModelProvider=new n_(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService)}async update(){this._cts?.dispose(!0),this._cts=new Me,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(u){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}let p=await this._stickyModelProvider.update(u);if(!u.isCancellationRequested)this._model=p}getCandidateStickyLinesIntersecting(u){if(!this._model?.element)return[];let p=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(u,this._model.element,p,0,0,-1),this.filterHiddenRanges(p)}getCandidateStickyLinesIntersectingFromStickyModel(u,p,v,y,k,D){let T=this._editor.getModel();if(!T)return;if(p.children.length===0)return;let R=D,K=[];for(let te=0;te<p.children.length;te++){let ne=p.children[te];if(ne.range)K.push(ne.range.startLineNumber)}let q=this.updateIndex(Bp(K,u.startLineNumber,(te,ne)=>te-ne)),Q=this.updateIndex(Bp(K,u.endLineNumber,(te,ne)=>te-ne));for(let te=q;te<=Q;te++){let ne=p.children[te];if(!ne||!ne.range)continue;let{startLineNumber:re,endLineNumber:ae}=ne.range;if(ae>re+1&&u.startLineNumber<=ae+1&&re-1<=u.endLineNumber&&re!==R&&T.isValidRange(new t(re,1,ae,1))){R=re;let ge=this._editor.getLineHeightForPosition(new r(re,1));v.push(new KE(re,ae-1,k,ge)),this.getCandidateStickyLinesIntersectingFromStickyModel(u,ne,v,y+1,k+ge,re)}}}filterHiddenRanges(u){let p=this._editor._getViewModel()?.getHiddenAreas();if(!p)return u;return u.filter((v)=>!p.some((y)=>v.startLineNumber>=y.startLineNumber&&v.endLineNumber<=y.endLineNumber+1))}updateIndex(u){if(u===-1)return 0;else if(u<0)return-u-2;return u}};c_=mM([zE(1,j),zE(2,et)],c_);var fM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Tl=function(m,u){return function(p,v){u(p,v,m)}},HS,Yr=class m extends n{static{HS=this}static{this.ID="store.contrib.stickyScrollController"}constructor(u,p,v,y,k,D,T){super();this._editor=u,this._contextMenuService=p,this._languageFeaturesService=v,this._instaService=y,this._contextKeyService=T,this._sessionStore=new c,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new i),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new TS(this._editor),this._stickyLineCandidateProvider=new c_(this._editor,v,k),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=El.Empty;let R=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight((q)=>{q.changes.forEach((Q)=>{let te=Q.lineNumber;if(this._widgetState.startLineNumbers.includes(te))this._renderStickyScroll(te)})})),this._register(this._editor.onDidChangeFont((q)=>{q.changes.forEach((Q)=>{let te=Q.lineNumber;if(this._widgetState.startLineNumbers.includes(te))this._renderStickyScroll(te)})})),this._register(this._editor.onDidChangeConfiguration((q)=>{this._readConfigurationChange(q)})),this._register(l(R,x.CONTEXT_MENU,async(q)=>{this._onContextMenu(F(R),q)})),this._stickyScrollFocusedContextKey=o.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=o.stickyScrollVisible.bindTo(this._contextKeyService);let K=this._register(Yn(R));this._register(K.onDidBlur((q)=>{if(this._positionRevealed===!1&&R.clientHeight===0)this._focusedStickyElementIndex=-1,this.focus();else this._disposeFocusStickyScrollStore()})),this._register(K.onDidFocus((q)=>{this.focus()})),this._registerMouseListeners(),this._register(l(R,x.MOUSE_DOWN,(q)=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight((q)=>{this._onDidChangeStickyScrollHeight.fire(q)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(u){return u.getContribution(HS.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}if(this._stickyScrollFocusedContextKey.get()===!0)return;this._focused=!0,this._focusDisposableStore=new c,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}focusNext(){if(this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1)this._focusNav(!0)}focusPrevious(){if(this._focusedStickyElementIndex>0)this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(u){this._focusedStickyElementIndex=u?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){let u=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:u[this._focusedStickyElementIndex],column:1})}_revealPosition(u){this._reveaInEditor(u,()=>this._editor.revealPosition(u))}_revealLineInCenterIfOutsideViewport(u){this._reveaInEditor(u,()=>this._editor.revealLineInCenterIfOutsideViewport(u.lineNumber,0))}_reveaInEditor(u,p){if(this._focused)this._disposeFocusStickyScrollStore();this._positionRevealed=!0,p(),this._editor.setSelection(t.fromPositions(u)),this._editor.focus()}_registerMouseListeners(){let u=this._register(new c),p=this._register(new ys(this._editor,{extractLineNumberFromMouseEvent:(k)=>{let D=this._stickyScrollWidget.getEditorPositionFromNode(k.target.element);return D?D.lineNumber:0}})),v=(k)=>{if(!this._editor.hasModel())return null;if(k.target.type!==12||k.target.detail!==this._stickyScrollWidget.getId())return null;let D=k.target.element;if(!D||D.innerText!==D.innerHTML)return null;let T=this._stickyScrollWidget.getEditorPositionFromNode(D);if(!T)return null;return{range:new t(T.lineNumber,T.column,T.lineNumber,T.column+D.innerText.length),textElement:D}},y=this._stickyScrollWidget.getDomNode();this._register(ft(y,x.CLICK,(k)=>{if(k.ctrlKey||k.altKey||k.metaKey)return;if(!k.leftButton)return;if(k.shiftKey){let K=this._stickyScrollWidget.getLineIndexFromChildDomNode(k.target);if(K===null)return;let q=new r(this._endLineNumbers[K],1);this._revealLineInCenterIfOutsideViewport(q);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(k.target)){let K=this._stickyScrollWidget.getLineNumberFromChildDomNode(k.target);this._toggleFoldingRegionForLine(K);return}if(!this._stickyScrollWidget.isInStickyLine(k.target))return;let R=this._stickyScrollWidget.getEditorPositionFromNode(k.target);if(!R){let K=this._stickyScrollWidget.getLineNumberFromChildDomNode(k.target);if(K===null)return;R=new r(K,1)}this._revealPosition(R)})),this._register(l(Fe,x.MOUSE_MOVE,(k)=>{this._mouseTarget=k.target,this._onMouseMoveOrKeyDown(k)})),this._register(l(Fe,x.KEY_DOWN,(k)=>{this._onMouseMoveOrKeyDown(k)})),this._register(l(Fe,x.KEY_UP,()=>{if(this._showEndForLine!==void 0)this._showEndForLine=void 0,this._renderStickyScroll()})),this._register(p.onMouseMoveOrRelevantKeyDown(([k,D])=>{let T=v(k);if(!T||!k.hasTriggerModifier||!this._editor.hasModel()){u.clear();return}let{range:R,textElement:K}=T;if(!R.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=R,u.clear();else if(K.style.textDecoration==="underline")return;let q=new Me;u.add(E(()=>q.dispose(!0)));let Q;ha(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new r(R.startLineNumber,R.startColumn+1),!1,q.token).then((te)=>{if(q.token.isCancellationRequested)return;if(te.length!==0){this._candidateDefinitionsLength=te.length;let ne=K;if(Q!==ne)u.clear(),Q=ne,Q.style.textDecoration="underline",u.add(E(()=>{Q.style.textDecoration="none"}));else if(!Q)Q=ne,Q.style.textDecoration="underline",u.add(E(()=>{Q.style.textDecoration="none"}))}else u.clear()})})),this._register(p.onCancel(()=>{u.clear()})),this._register(p.onExecute(async(k)=>{if(k.target.type!==12||k.target.detail!==this._stickyScrollWidget.getId())return;let D=this._stickyScrollWidget.getEditorPositionFromNode(k.target.element);if(!D)return;if(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor)return;if(this._candidateDefinitionsLength>1){if(this._focused)this._disposeFocusStickyScrollStore();this._revealPosition({lineNumber:D.lineNumber,column:1})}this._instaService.invokeFunction(Dm,k,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})}))}_onContextMenu(u,p){let v=new Wn(u,p);this._contextMenuService.showContextMenu({menuId:a.StickyScrollContext,getAnchor:()=>v,menuActionOptions:{renderShortTitle:!0}})}_onMouseMoveOrKeyDown(u){if(!u.shiftKey)return;if(!this._mouseTarget||!xe(this._mouseTarget))return;let p=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);if(p===null||this._showEndForLine===p)return;this._showEndForLine=p,this._renderStickyScroll()}_toggleFoldingRegionForLine(u){if(!this._foldingModel||u===null)return;let p=this._stickyScrollWidget.getRenderedStickyLine(u),v=p?.foldingIcon;if(!v)return;Fh(this._foldingModel,1,[u]),v.isCollapsed=!v.isCollapsed;let y=(v.isCollapsed?this._editor.getTopForLineNumber(v.foldingEndLine):this._editor.getTopForLineNumber(v.foldingStartLine))-this._editor.getOption(75)*p.index+1;this._editor.setScrollTop(y),this._renderStickyScroll(u)}_readConfiguration(){let u=this._editor.getOption(131);if(u.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else if(u.enabled&&!this._enabled)this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((v)=>{if(v.scrollTopChanged)this._showEndForLine=void 0,this._renderStickyScroll()})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens((v)=>this._onTokensChange(v))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0;if(this._editor.getOption(76).renderType===2){if(!this._cursorPositionListener)this._cursorPositionListener=this._editor.onDidChangeCursorPosition((v)=>{if(this._positionLineNumber===v.position.lineNumber)return;this._positionLineNumber=v.position.lineNumber,this._showEndForLine=void 0,this._renderStickyScroll(0)}),this._sessionStore.add(this._cursorPositionListener)}else if(this._cursorPositionListener)this._sessionStore.delete(this._cursorPositionListener),this._cursorPositionListener.dispose(),this._cursorPositionListener=void 0}_readConfigurationChange(u){if(u.hasChanged(131)||u.hasChanged(81)||u.hasChanged(75)||u.hasChanged(126)||u.hasChanged(76))this._readConfiguration();if(u.hasChanged(76)||u.hasChanged(52)||u.hasChanged(126)||u.hasChanged(59)||u.hasChanged(176))this._renderStickyScroll(0)}_needsUpdate(u){let p=this._stickyScrollWidget.getCurrentLines();for(let v of p)for(let y of u.ranges)if(v>=y.fromLineNumber&&v<=y.toLineNumber)return!0;return!1}_onTokensChange(u){if(this._needsUpdate(u))this._renderStickyScroll(0)}_onDidResize(){let p=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(p*0.25),this._renderStickyScroll(0)}async _renderStickyScroll(u){let p=this._editor.getModel();if(!p||p.isTooLargeForTokenization()){this._resetState();return}let v=this._updateAndGetMinRebuildFromLine(u),y=this._stickyLineCandidateProvider.getVersionId();if(y===void 0||y===p.getVersionId())if(!this._focused)await this._updateState(v);else if(this._focusedStickyElementIndex===-1){if(await this._updateState(v),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1)this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}else{let D=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];if(await this._updateState(v),this._stickyScrollWidget.lineNumberCount===0)this._focusedStickyElementIndex=-1;else{if(!this._stickyScrollWidget.lineNumbers.includes(D))this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1;this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}}}_updateAndGetMinRebuildFromLine(u){if(u!==void 0){let p=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(u,p)}return this._minRebuildFromLine}async _updateState(u){this._minRebuildFromLine=void 0,this._foldingModel=await qr.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();let p=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(p),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,u)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=El.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){let u=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),p=this._editor.getScrollTop(),v=0,y=[],k=[],D=this._editor.getVisibleRanges();if(D.length!==0){let T=new Va(D[0].startLineNumber,D[D.length-1].endLineNumber),R=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(T);for(let K of R){let{startLineNumber:q,endLineNumber:Q,top:te}=K,ne=te+K.height,re=this._editor.getTopForLineNumber(q)-p,ae=this._editor.getBottomForLineNumber(Q)-p;if(te>re&&te<=ae){if(y.push(q),k.push(Q+1),ne>ae)v=ae-ne}if(y.length===u)break}}return this._endLineNumbers=k,new El(y,k,v,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Yr=HS=fM([Tl(1,Dn),Tl(2,j),Tl(3,L),Tl(4,et),Tl(5,Hi),Tl(6,V)],Yr);var Ua=s("inlineEdit.originalBackground",de(Wc,0.2),e(1286,"Background color for the original text in inline edits."),!0),l_=s("inlineEdit.modifiedBackground",de(ru,0.3),e(1287,"Background color for the modified text in inline edits."),!0);s("inlineEdit.originalChangedLineBackground",de(Wc,0.8),e(1288,"Background color for the changed lines in the original text of inline edits."),!0);var UE=s("inlineEdit.originalChangedTextBackground",de(Wc,0.8),e(1289,"Overlay color for the changed text in the original text of inline edits."),!0),qE=s("inlineEdit.modifiedChangedLineBackground",{light:de(cy,0.7),dark:de(cy,0.7),hcDark:cy,hcLight:cy},e(1290,"Background color for the changed lines in the modified text of inline edits."),!0),jE=s("inlineEdit.modifiedChangedTextBackground",de(ru,0.7),e(1291,"Overlay color for the changed text in the modified text of inline edits."),!0),qa=s("inlineEdit.gutterIndicator.primaryForeground",bg,e(1292,"Foreground color for the primary inline edit gutter indicator.")),qn=s("inlineEdit.gutterIndicator.primaryBorder",au,e(1293,"Border color for the primary inline edit gutter indicator.")),hs=s("inlineEdit.gutterIndicator.primaryBackground",{light:de(qn,0.5),dark:de(qn,0.4),hcDark:de(qn,0.4),hcLight:de(qn,0.5)},e(1294,"Background color for the primary inline edit gutter indicator.")),$E=s("inlineEdit.gutterIndicator.secondaryForeground",mg,e(1295,"Foreground color for the secondary inline edit gutter indicator.")),GE=s("inlineEdit.gutterIndicator.secondaryBorder",Lh,e(1296,"Border color for the secondary inline edit gutter indicator.")),Rl=s("inlineEdit.gutterIndicator.secondaryBackground",of,e(1297,"Background color for the secondary inline edit gutter indicator.")),ZE=s("inlineEdit.gutterIndicator.successfulForeground",bg,e(1298,"Foreground color for the successful inline edit gutter indicator.")),WS=s("inlineEdit.gutterIndicator.successfulBorder",au,e(1299,"Border color for the successful inline edit gutter indicator.")),Nl=s("inlineEdit.gutterIndicator.successfulBackground",WS,e(1300,"Background color for the successful inline edit gutter indicator.")),XE=s("inlineEdit.gutterIndicator.background",{hcDark:de("tab.inactiveBackground",0.5),hcLight:de("tab.inactiveBackground",0.5),dark:de("tab.inactiveBackground",0.5),light:"#5f5f5f18"},e(1301,"Background color for the inline edit gutter indicator.")),Mg=s("inlineEdit.originalBorder",{light:Wc,dark:Wc,hcDark:Wc,hcLight:Wc},e(1302,"Border color for the original text in inline edits.")),Pg=s("inlineEdit.modifiedBorder",{light:rr(ru,0.6),dark:ru,hcDark:ru,hcLight:ru},e(1303,"Border color for the modified text in inline edits.")),_M=s("inlineEdit.tabWillAcceptModifiedBorder",{light:rr(Pg,0),dark:rr(Pg,0),hcDark:rr(Pg,0),hcLight:rr(Pg,0)},e(1304,"Modified border color for the inline edits widget when tab will accept it.")),bM=s("inlineEdit.tabWillAcceptOriginalBorder",{light:rr(Mg,0),dark:rr(Mg,0),hcDark:rr(Mg,0),hcLight:rr(Mg,0)},e(1305,"Original border color for the inline edits widget over the original text when tab will accept it."));function Ws(m){return m.map((u)=>u===di.Accept?_M:Pg)}function ja(m){return m.map((u)=>u===di.Accept?bM:Mg)}function yi(m,u){let p;if(typeof m==="string")p=Ka(m,u);else p=m.map((y,k)=>Ka(y,u).read(k));let v=Ka(So,u);return p.map((y,k)=>y.makeOpaque(v.read(k)))}function Ro(m){let u;switch(m){case ci.TextEditor:u=So;break;case ci.DiffEditor:u=So;break;case ci.Notebook:u="notebook.cellEditorBackground";break;default:il(m,"Not supported editor type yet")}return N(u)}function Ka(m,u){return is({owner:{observeColor:m},equalsFn:(p,v)=>p.equals(v),debugName:()=>`observeColor(${m})`},u.onDidColorThemeChange,()=>{let p=u.getColorTheme().getColor(m);if(!p)throw new P(`Missing color: ${m}`);return p})}var Li=3;function on(m,u,p){let v=m.model.read(p);if(!v)return 0;let y=0;for(let D=u.startLineNumber;D<u.endLineNumberExclusive;D++){let T=m.getWidthOfLine(D,p);y=Math.max(y,T)}let k=u.mapToLineArray((D)=>v.getLineContent(D));if(y<5&&k.some((D)=>D.length>0)&&v.uri.scheme!=="file")console.log("unexpected width");return y}function YE(m,u,p){si(m,m.editor.onDidChangeLineHeight).read(p);let v=m.model.read(p);if(!v)throw new P("Model is required");let y=[];for(let k=u.startLineNumber;k<u.endLineNumberExclusive;k++){let D=m.getWidthOfLine(k,p);if(D===-1){let R=v.getLineMaxColumn(k),K=m.editor.getOption(59).typicalHalfwidthCharacterWidth;D=R*K}let T=m.editor.getLineHeightForPosition(new r(k,1));y.push(new Ba(D,T))}return y}function JE(m,u,p){if(m.layoutInfo.read(p),m.value.read(p),!m.model.read(p))return 0;return m.scrollTop.read(p),m.editor.getOffsetForColumn(u.lineNumber,u.column)}function Ml(m,u,p,v,y=void 0){let k=v.getModel();if(!k)return{prefixTrim:0,prefixLeftOffset:0};let D=m.map((te)=>te.isSingleLine()?te.startColumn-1:0),T=u.mapToLineArray((te)=>N0(k.getLineContent(te))),R=p.filter((te)=>te!=="").map((te)=>N0(te)),K=Math.min(...D,...T,...R),q;if(k.getLineIndentColumn(u.startLineNumber)>=K+1)Xe(v).scrollTop.read(y),q=v.getOffsetForColumn(u.startLineNumber,K+1);else if(p.length>0)q=Fg(p[0].slice(0,K),v,k);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:K,prefixLeftOffset:q}}function Fg(m,u,p){let v=u.getOption(59).typicalHalfwidthCharacterWidth,y=p.getOptions().tabSize*v,k=m.split("\t").length-1;return(m.length-k)*v+k*y}function Ol(m){let u=m.layoutInfoContentLeft,p=d({name:"editor.validOverlay.width"},(y)=>{let k=m.layoutInfoMinimap.read(y).minimapLeft!==0,D=Math.max(0,m.layoutInfoWidth.read(y)-u.read(y));if(k){let T=m.layoutInfoMinimap.read(y).minimapWidth+m.layoutInfoVerticalScrollbarWidth.read(y);return Math.max(0,D-T)}return D}),v=d({name:"editor.validOverlay.height"},(y)=>m.layoutInfoHeight.read(y)+m.contentHeight.read(y));return d({name:"editor.validOverlay"},(y)=>xt.fromLeftTopWidthHeight(u.read(y),0,p.read(y),v.read(y)))}function QE(m,u){let p=[];for(let v of m){let y=u.mapRange(v.modifiedRange);p.push(new Ti(v.originalRange,y))}return p}function Pl(...m){return m.filter((u)=>typeof u==="string").join(" ")}function vM(m,u){return new t(u.lineNumber,u.column+m.start,u.lineNumber,u.column+m.endExclusive)}function wM(m,u){let p=0;e:for(let v=0,y=m.length;v<y;v++)switch(m.charCodeAt(v)){case 9:p+=u;break;case 32:p++;break;default:break e}return p-p%u}function SM(m,u,p){let v=u-u%p,y=0;for(;y<m.length;y++){if(v===0)break;switch(m.charCodeAt(y)){case 9:v-=p;break;case 32:v--;break;default:throw new P("Unexpected character found while calculating indent length")}}return y}function eD(m,u,p){let v=ei(m),y=[],k=w0(u.mapToLineArray((D)=>wM(v[D-1],p)),xi);return u.forEach((D)=>{let T=SM(v[D-1],k,p);y.push(new ct(vM(new B(0,T),new r(D,1)),""))}),new fo(y)}class Al{constructor(){this._data=""}moveTo(m){return this._data+=`M ${m.x} ${m.y} `,this}lineTo(m){return this._data+=`L ${m.x} ${m.y} `,this}build(){return this._data}}function Io(m){let u=Ho(void 0,(p,v)=>m.read(p)||v);return fn({debugName:()=>`${m.debugName}.mapOutFalsy`},(p)=>{if(u.read(p),!m.read(p))return;return u})}function Di(m,u=Dt.ofCaller()){return{left:d({name:"editor.validOverlay.left"},(p)=>m(p)?.left,u),top:d({name:"editor.validOverlay.top"},(p)=>m(p)?.top,u),width:d({name:"editor.validOverlay.width"},(p)=>{let v=m(p);if(!v)return;return v.width},u),height:d({name:"editor.validOverlay.height"},(p)=>{let v=m(p);if(!v)return;return v.height},u)}}function tD(m,u){let p=m.getContainerDomNode(),v=M("domRect",p.getBoundingClientRect());return u.add(m.onDidLayoutChange((y)=>{v.set(p.getBoundingClientRect(),void 0)})),v}var CM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},BS=function(m,u){return function(p,v){u(p,v,m)}},h_=class m{constructor(u,p,v,y,k,D){this._editorObs=u,this._data=p,this._close=v,this._contextKeyService=y,this._keybindingService=k,this._commandService=D,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map((T)=>T.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){let u=M("active",void 0),p=(ae)=>({title:ae.title,icon:ae.icon,keybinding:typeof ae.commandId==="string"?this._getKeybinding(ae.commandArgs?void 0:ae.commandId):d(this,(ge)=>typeof ae.commandId==="string"?void 0:this._getKeybinding(ae.commandArgs?void 0:ae.commandId.read(ge)).read(ge)),isActive:u.map((ge)=>ge===ae.id),onHoverChange:(ge)=>u.set(ge?ae.id:void 0,void 0),onAction:()=>{let ge=typeof ae.commandId==="string"?ae.commandId:ae.commandId.get();return this._close(!0,ge),this._commandService.executeCommand(ge,...ae.commandArgs??[])}}),v=this._data.extensionCommands.map((ae)=>ae.map((ge,Se)=>Ga(p({id:ge.command.id+"_"+Se,title:ge.command.title,icon:ge.icon??b.symbolEvent,commandId:ge.command.id,commandArgs:ge.command.arguments})))),y=[];for(let ae of v)if(ae.length>0)y.push(VS()),y.push(...ae);if(this._data.extensionCommandsOnly)return iD(y.slice(1));let k=yM(this._data.displayName),D=Ga(p({id:"gotoAndAccept",title:e(1276,"Go To / Accept"),icon:b.check,commandId:fr})),T=Ga(p({id:"reject",title:e(1277,"Reject"),icon:b.close,commandId:bm})),R=this._data.alternativeAction?Ga(p({id:"alternativeCommand",title:this._data.alternativeAction.command.title,icon:this._data.alternativeAction.icon,commandId:_d})):void 0,K=[],q=this._inlineEditsShowCollapsed.map((ae)=>ae?Ga(p({id:"showExpanded",title:e(1278,"Show Expanded"),icon:b.expandAll,commandId:Iu})):Ga(p({id:"showCollapsed",title:e(1279,"Show Collapsed"),icon:b.collapseAll,commandId:Iu}))),Q=Ga(p({id:"snooze",title:e(1280,"Snooze"),icon:b.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),te=Ga(p({id:"settings",title:e(1281,"Settings"),icon:b.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),ne=this._data.action?[this._data.action]:[],re=ne.length>0?xM(ne.map((ae)=>({id:ae.id,label:ae.title+"...",enabled:!0,run:()=>this._commandService.executeCommand(ae.id,...ae.arguments??[]),class:void 0,tooltip:ae.tooltip??ae.title})),{hoverDelegate:ER}):void 0;return iD([k,D,R,T,q,K.length?VS():void 0,...K,Q,te,...y,re?VS():void 0,re])}_getKeybinding(u){if(!u)return ke(void 0);return Te(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(u))}};h_=CM([BS(3,V),BS(4,ce),BS(5,Ne)],h_);function iD(m){return se.div({class:"content",style:{margin:4,minWidth:180}},m)}function yM(m){return se.div({class:"header",style:{color:N(ly),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[m])}function Ga(m){return d({name:"inlineEdits.option"},(u)=>se.div({class:["monaco-menu-option",m.isActive?.map((p)=>p&&"active")],onmouseenter:()=>m.onHoverChange?.(!0),onmouseleave:()=>m.onHoverChange?.(!1),onclick:m.onAction,onkeydown:(p)=>{if(p.key==="Enter")m.onAction?.()},tabIndex:0,style:{borderRadius:3}},[se.elem("span",{style:{fontSize:16,display:"flex"}},[G.isThemeIcon(m.icon)?no(m.icon):m.icon.map((p)=>no(p))]),se.elem("span",{},[m.title]),se.div({style:{marginLeft:"auto"},ref:(p)=>{let v=u.store.add(new ia(p,ui,{disableTitle:!0,...Eg,keybindingLabelShadow:void 0,keybindingLabelForeground:N(ly),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));u.store.add(H((y)=>{v.set(m.keybinding.read(y))}))}})]))}function xM(m,u){return d({name:"inlineEdits.actionBar"},(p)=>se.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[se.div({ref:(v)=>{p.store.add(new Ri(v,u)).push(m,{icon:!1,label:!0})}})]))}function VS(){return se.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:N(yR),padding:"2px 0"}},se.div({style:{borderBottom:`1px solid ${N(Lh)}`}}))}var IM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Hg=function(m,u){return function(p,v){u(p,v,m)}};class Wg{constructor(m,u,p,v,y){this.gutterMenuData=m,this.originalRange=u,this.model=p,this.altAction=v,this.customization=y}}class Hl{static fromInlineSuggestion(m){let u=m.action?.kind==="edit"?m.action.alternativeAction:void 0,p=m.source.inlineSuggestions.commands??[];return new Hl(m.gutterMenuLinkAction,m.source.provider.displayName??e(1282,"Inline Suggestion"),p.length>0?[p]:[],u,m.source.provider.modelInfo,m.source.provider.setModelId?.bind(m.source.provider))}constructor(m,u,p,v,y,k,D=!1){this.action=m,this.displayName=u,this.extensionCommands=p,this.alternativeAction=v,this.modelInfo=y,this.setModelId=k,this.extensionCommandsOnly=D}}class Wl{static fromInlineCompletionModel(m){return new Wl(()=>m.accept(),()=>m.jump())}constructor(m,u){this.accept=m,this.jump=u}}var zS=16,oD=2,Fl=class m extends n{constructor(u,p,v,y,k,D,T,R,K,q,Q){super();this._editorObs=u,this._data=p,this._tabAction=v,this._verticalOffset=y,this._isHoveringOverInlineEdit=k,this._focusIsInMenu=D,this._hoverService=T,this._instantiationService=R,this._accessibilityService=K,this._themeService=q,this._userInteractionService=Q,this._onDidCloseWithCommand=this._register(new i),this._modifierPressed=d(this,(ne)=>this._userInteractionService.readModifierKeyStatus(this._editorObs.editor.getDomNode(),ne).shiftKey),this._gutterIndicatorStyles=d(this,(ne)=>{let re=this._tabAction.read(ne),ae=this._data.read(ne)?.altAction,ge=this._modifierPressed.read(ne);if(ae&&ge)re=di.Inactive;switch(re){case di.Inactive:return{background:yi(Rl,this._themeService).read(ne).toString(),foreground:yi($E,this._themeService).read(ne).toString(),border:yi(GE,this._themeService).read(ne).toString()};case di.Jump:return{background:yi(hs,this._themeService).read(ne).toString(),foreground:yi(qa,this._themeService).read(ne).toString(),border:yi(qn,this._themeService).read(ne).toString()};case di.Accept:return{background:yi(Nl,this._themeService).read(ne).toString(),foreground:yi(ZE,this._themeService).read(ne).toString(),border:yi(WS,this._themeService).read(ne).toString()};default:il()}}),this._state=d(this,(ne)=>{let re=this._originalRangeObs.read(ne);if(!re)return;return{range:re,lineOffsetRange:this._editorObs.observeLineOffsetRange(re,ne.store)}}),this._lineNumberToRender=d(this,(ne)=>{if(this._verticalOffset.read(ne)!==0)return"";let re=this._data.read(ne)?.originalRange.startLineNumber,ae=this._editorObs.getOption(76).read(ne);if(re===void 0||ae.renderType===0)return"";if(ae.renderType===3){let ge=this._editorObs.cursorPosition.read(ne);if(re%10===0||ge&&ge.lineNumber===re)return re.toString();return""}if(ae.renderType===2){let ge=this._editorObs.cursorPosition.read(ne);if(!ge)return"";let Se=Math.abs(re-ge.lineNumber);if(Se===0)return re.toString();return Se.toString()}if(ae.renderType===4){if(ae.renderFn)return ae.renderFn(re);return""}return re.toString()}),this._availableWidthForIcon=d(this,(ne)=>{let re=this._editorObs.editor.getModel(),ae=this._editorObs.editor,ge=this._editorObs.layoutInfo.read(ne),Se=ge.decorationsLeft+ge.decorationsWidth-ge.glyphMarginLeft;if(!re||Se<=0)return()=>0;if(ge.lineNumbersLeft===0)return()=>Se;let Oe=this._editorObs.getOption(76).read(ne);if(Oe.renderType===2||Oe.renderType===0)return()=>Se;let Ae=ae.getOption(59).typicalHalfwidthCharacterWidth,We=ge.lineNumbersLeft+ge.lineNumbersWidth,Le=(re.getLineCount()+1).toString().length,He=[];for(let Je=1;Je<=Le;Je++){let tt=10**(Je-1),ot=ae.getTopForLineNumber(tt),qe=Je*Ae,nt=Math.min(Se,Math.max(0,We-qe-ge.glyphMarginLeft));He.push({firstLineNumberWithDigitCount:tt,topOfLineNumber:ot,usableWidthLeftOfLineNumber:nt})}return(Je)=>{for(let tt=He.length-1;tt>=0;tt--)if(Je>=He[tt].topOfLineNumber)return He[tt].usableWidthLeftOfLineNumber;throw new P("Could not find avilable width for icon")}}),this._layout=d(this,(ne)=>{let re=this._state.read(ne);if(!re)return;let ae=this._editorObs.layoutInfo.read(ne),ge=this._editorObs.observeLineHeightForLine(re.range.map((ai)=>ai.startLineNumber)).read(ne),Se=1,Oe=2,Ae=ae.decorationsLeft+ae.decorationsWidth-ae.glyphMarginLeft-2*Se,We=ae.height-2*Oe,Ue=xt.fromLeftTopWidthHeight(Se,Oe,Ae,We),Le=Ue.withTop(this._stickyScrollHeight.read(ne)),He=Ue.withTop(Le.top+Oe),Je=re.lineOffsetRange.read(ne),tt=xt.fromRanges(B.fromTo(He.left,He.right),Je),ot=ge,qe=this._verticalOffset.read(ne),nt=tt.withHeight(ot).translateY(qe),_t=Le.containsRect(nt),st=this._data.read(ne)?.customization?.icon,Ct=st?ke(st):this._tabAction.map((ai)=>ai===di.Accept?b.keyboardTab:b.arrowRight),lt=st?ke(st):d(this,(ai)=>{if(this._isHoveredOverIconDebounced.read(ai)||this._isHoveredOverInlineEditDebounced.read(ai))return b.check;if(this._tabAction.read(ai)===di.Accept)return b.keyboardTab;let Gi=this._editorObs.cursorLineNumber.read(ai)??0,zs=re.range.read(ai).startLineNumber;return Gi<=zs?b.keyboardTabAbove:b.keyboardTabBelow}),li=22,vt=(ai)=>{let Gi=this._availableWidthForIcon.read(void 0)(ai.bottom+this._editorObs.editor.getScrollTop())-Se;return Math.max(Math.min(Gi,li),zS)};if(_t){let ai=nt,Gi;if(ae.lineNumbersWidth===0)Gi=Math.max(0,Math.min(Math.max(ae.lineNumbersLeft-Ue.left,0),ai.width-li));else Gi=Math.max(ae.lineNumbersLeft+ae.lineNumbersWidth-Ue.left,0);let zs=ai.withWidth(Gi),nn=zS+oD,Er=Math.min(ai.width-Gi,li),Xa=ai.withWidth(Math.max(Er,nn)).translateX(Gi),A_=Er>=nn;return{gutterEditArea:tt,icon:lt,iconDirection:"right",iconRect:Xa,iconVisible:A_,pillRect:ai,lineNumberRect:zs}}let Nt=Ue.intersect(tt);if(Nt&&Nt.height>=ot){let ai=nt.moveToBeContainedIn(He).moveToBeContainedIn(Nt),Gi=ai.withWidth(vt(ai));return{gutterEditArea:tt,icon:lt,iconDirection:"right",iconRect:Gi,pillRect:Gi,iconVisible:!0}}let Zt=nt.moveToBeContainedIn(Ue),qt=Zt.withWidth(vt(Zt)),vi=qt,gi=qt.top<nt.top?"top":"bottom";return{gutterEditArea:tt,icon:Ct,iconDirection:gi,iconRect:vi,pillRect:qt,iconVisible:!0}}),this._iconRef=se.ref(),this.isVisible=this._layout.map((ne)=>!!ne),this._hoverVisible=M(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=M(this,!1),this._isHoveredOverIconDebounced=f0(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._indicator=se.div({class:"inline-edits-view-gutter-indicator",style:{position:"absolute",overflow:"visible"}},Io(this._layout).map((ne)=>!ne?[]:[se.div({style:{position:"absolute",background:N(XE),borderRadius:`${Li}px`,...Di((re)=>ne.read(re).gutterEditArea)}}),se.div({class:"icon",ref:this._iconRef,tabIndex:0,onclick:()=>{let ae=this._layout.get()?.icon.get()===b.check,ge=this._data.get();if(!ge)throw new P("Gutter indicator data not available");if(this._editorObs.editor.focus(),ae)ge.model.accept();else ge.model.jump()},onmouseenter:()=>{this._isHoveredOverIcon.set(!0,void 0),this._showHover()},onmouseleave:()=>this._isHoveredOverIcon.set(!1,void 0),style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map((re)=>re.background),["--vscodeIconForeground"]:this._gutterIndicatorStyles.map((re)=>re.foreground),border:this._gutterIndicatorStyles.map((re)=>`1px solid ${re.border}`),boxSizing:"border-box",borderRadius:`${Li}px`,display:"flex",justifyContent:ne.map((re)=>re.iconDirection==="bottom"?"flex-start":"flex-end"),transition:this._modifierPressed.map((re)=>re?"":"background-color 0.2s ease-in-out, width 0.2s ease-in-out"),...Di((re)=>ne.read(re).pillRect)}},[se.div({className:"line-number",style:{lineHeight:ne.map((re)=>re.lineNumberRect?re.lineNumberRect.height:0),display:ne.map((re)=>re.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:ne.map((re)=>re.lineNumberRect?re.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map((re)=>re.foreground)}},this._lineNumberToRender),se.div({style:{transform:ne.map((re)=>`rotate(${LM(re.iconDirection)}deg)`),transition:"rotate 0.2s ease-in-out, opacity 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",opacity:ne.map((re)=>re.iconVisible?"1":"0"),marginRight:ne.map((re)=>re.pillRect.width-re.iconRect.width-(re.lineNumberRect?.width??0)),width:ne.map((re)=>re.iconRect.width),position:"relative",right:ne.map((re)=>re.iconDirection==="top"?"1px":"0"),color:this._data.map((re)=>re?.customization?.icon?.color?N(re.customization.icon.color.id):void 0)}},[ne.map((re,ae)=>kM(no(re.icon.read(ae)),{fontSize:EM(Math.min(re.iconRect.width-oD,zS))}))])])])),this._originalRangeObs=Io(this._data.map((ne)=>ne?.originalRange)),this._stickyScrollController=Yr.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Te(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):ke(0),this._isHoveredOverInlineEditDebounced=f0(this._isHoveringOverInlineEdit,100);let te=this._indicator.keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:te.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:ke(0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(sr(this._isHoveredOverInlineEditDebounced,(ne)=>{if(ne)this.triggerAnimation()})),this._register(H((ne)=>{if(te.readEffect(ne),te.element)this._editorObs.editor.applyFontInfo(te.element)}))}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{outline:`2px solid ${this._gutterIndicatorStyles.map((p)=>p.border).get()}`,outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;let u=this._data.get();if(!u)throw new P("Gutter indicator data not available");let p=new c,v=p.add(this._instantiationService.createInstance(h_,this._editorObs,u.gutterMenuData,(D,T)=>{if(D)this._editorObs.editor.focus();if(T)this._onDidCloseWithCommand.fire(T);k?.dispose()}).toDisposableLiveElement()),y=this._userInteractionService.createFocusTracker(v.element,p);p.add(H((D)=>{this._focusIsInMenu.set(y.read(D),void 0)})),p.add(E(()=>this._focusIsInMenu.set(!1,void 0)));let k=this._hoverService.showInstantHover({target:this._iconRef.element,content:v.element});if(k)this._hoverVisible.set(!0,void 0),p.add(this._editorObs.editor.onDidScrollChange(()=>k.dispose())),p.add(k.onDispose(()=>{this._hoverVisible.set(!1,void 0),p.dispose()}));else p.dispose()}};Fl=IM([Hg(6,vn),Hg(7,L),Hg(8,Vt),Hg(9,De),Hg(10,ar)],Fl);function LM(m){switch(m){case"top":return 90;case"bottom":return-90;case"right":return 0}}function kM(m,u){for(let p in u)m.style[p]=u[p];return m}function EM(m){return`${m}px`}var DM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},nD=function(m,u){return function(p,v){u(p,v,m)}},Zo;(function(m){m.FirstTime="firstTime",m.SecondTime="secondTime",m.Active="active"})(Zo||(Zo={}));var u_=class m extends n{constructor(u,p,v,y,k){super();this._model=u,this._indicator=p,this._collapsedView=v,this._storageService=y,this._configurationService=k,this._disposables=this._register(new ie),this._setupDone=M({name:"setupDone"},!1),this._activeCompletionId=d((D)=>{let T=this._model.read(D);if(!T)return;if(!this._setupDone.read(D))return;let R=this._indicator.read(D);if(!R||!R.isVisible.read(D))return;return T.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===Zo.Active)return;let u=new c,p=!1,v=!1,y=0,k=0;return u.add(CR(this._activeCompletionId,async(D,T,R,K)=>{if(D===void 0)return;let q=this.getNewUserType();switch(q){case Zo.FirstTime:{if(y++>=5||p)q=Zo.SecondTime,this.setNewUserType(q);break}case Zo.SecondTime:{if(k++>=3&&v)q=Zo.Active,this.setNewUserType(q);break}}switch(q){case Zo.FirstTime:{for(let Q=0;Q<3&&!K.isCancellationRequested;Q++)await this._indicator.get()?.triggerAnimation(),await ir(500);break}case Zo.SecondTime:{this._indicator.get()?.triggerAnimation();break}}})),u.add(H((D)=>{if(this._collapsedView.isVisible.read(D)){if(this.getNewUserType()!==Zo.Active)this._collapsedView.triggerAnimation()}})),u.add(H((D)=>{let T=this._indicator.read(D);if(!T)return;D.store.add(sr(T.isHoveredOverIcon,async(R)=>{if(R)p=!0}))})),u.add(H((D)=>{let T=this._model.read(D);if(!T)return;D.store.add(T.onDidAccept(()=>{v=!0}))})),u}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,Zo.FirstTime)}setNewUserType(u){switch(u){case Zo.FirstTime:throw new P("UserKind should not be set to first time");case Zo.SecondTime:break;case Zo.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",u,-1,0)}_initializeDebugSetting(){if(this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1);return this._configurationService.onDidChangeConfiguration((v)=>{if(v.affectsConfiguration("editor.inlineSuggest.edits.resetNewUserExperience")&&this._configurationService.getValue("editor.inlineSuggest.edits.resetNewUserExperience"))this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience()})}};u_=DM([nD(3,wn),nD(4,X)],u_);class KS{static{this.empty=new KS([])}constructor(m){this.replacements=m,Jd(Ac(m,(u,p)=>u.lineRange.endLineNumberExclusive<=p.lineRange.startLineNumber))}toString(){return this.replacements.map((m)=>m.toString()).join(",")}getNewLineRanges(){let m=[],u=0;for(let p of this.replacements)m.push(Y.ofLength(p.lineRange.startLineNumber+u,p.newLines.length)),u+=p.newLines.length-p.lineRange.length;return m}}class Bl{static fromSingleTextEdit(m,u){let p=ei(m.text),v=m.range.startLineNumber,y=u.getValueOfRange(t.fromPositions(new r(m.range.startLineNumber,1),m.range.getStartPosition()));p[0]=y+p[0];let k=m.range.endLineNumber+1,D=u.getTransformer().getLineLength(m.range.endLineNumber)+1,T=u.getValueOfRange(t.fromPositions(m.range.getEndPosition(),new r(m.range.endLineNumber,D)));p[p.length-1]=p[p.length-1]+T;let R=m.range.startColumn===u.getTransformer().getLineLength(m.range.startLineNumber)+1,K=m.range.endColumn===1;if(R&&p[0].length===y.length)v++,p.shift();if(p.length>0&&v<k&&K&&p[p.length-1].length===T.length)k--,p.pop();return new Bl(new Y(v,k),p)}constructor(m,u){this.lineRange=m,this.newLines=u}toString(){return`${this.lineRange}->${JSON.stringify(this.newLines)}`}toLineEdit(){return new KS([this])}}class US{get lineEdit(){if(this.action?.kind==="jumpTo")return new Bl(Y.ofLength(this.action.position.lineNumber,0),[]);else if(this.action?.kind==="edit")return Bl.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText);return new Bl(new Y(1,1),[])}get originalLineRange(){return this.lineEdit.lineRange}get modifiedLineRange(){return this.lineEdit.toLineEdit().getNewLineRanges()[0]}get displayRange(){return this.originalText.lineRange.intersect(this.originalLineRange.join(Y.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(m,u,p,v,y,k,D){this.originalText=m,this.action=u,this.edit=p,this.cursorPosition=v,this.multiCursorPositions=y,this.commands=k,this.inlineCompletion=D}}class qS{constructor(m,u,p){this._model=m,this.inlineEdit=u,this.tabAction=p,this.editorType=this._model.editorType,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.inViewPort=d(this,(v)=>_S(this._model.editor,this.inlineEdit.inlineCompletion,v)),this.onDidAccept=this._model.onDidAccept}accept(m){this._model.accept(void 0,m)}handleInlineEditShownNextFrame(m,u){let p=this.inlineEdit.inlineCompletion,v=Date.now();p.addRef(),Ys(()=>{this._model.handleInlineSuggestionShown(p,m,u,v),p.removeRef()})}}var TM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},RM=function(m,u){return function(p,v){u(p,v,m)}},g_=class m extends n{constructor(u,p,v){super();this._editor=u,this._edit=p,this._accessibilityService=v,this.onDidClick=C.None,this._iconRef=se.ref(),this.isHovered=ke(!1),this._editorObs=Xe(this._editor);let k=this._edit.map((K)=>K?.edit?.replacements[0]??null).map((K)=>K?Qo(K,this._editor.getModel()).range.getStartPosition():null),D=this._editorObs.observePosition(k,this._store),T=d((K)=>{let q=D.read(K);if(!q)return null;let Q=this._editorObs.layoutInfoContentLeft.read(K),te=this._editorObs.scrollLeft.read(K);return new Xn(Q+q.x-te,q.y)}),R=se.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(T)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:R,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:ke(0)})),this.isVisible=this._edit.map((K,q)=>!!K&&T.read(q)!==null)}triggerAnimation(){if(this._accessibilityService.isMotionReduced())return new Animation(null,null).finished;return this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:0.2,transform:"translateY(1px)"},{offset:0.36,transform:"translateY(-1px)"},{offset:0.52,transform:"translateY(1px)"},{offset:0.68,transform:"translateY(-1px)"},{offset:0.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2000}).finished}getCollapsedIndicator(u){let p=this._editorObs.layoutInfoContentLeft,v=u.map((k,D)=>k?k.deltaX(-p.read(D)):null),y=this.createIconPath(v);return se.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...Di((k)=>Ol(this._editorObs).read(k)),overflow:"hidden",pointerEvents:"none"}},[se.svgElem("path",{class:"collapsedViewPath",d:y,fill:N(qn)})])}createIconPath(u){return u.map((k)=>{if(!k)return new Al().build();let D=k.deltaX(-3).deltaY(-1),T=D.deltaX(6),R=D.deltaY(1),K=T.deltaY(1),q=R.deltaX(3).deltaY(3);return new Al().moveTo(D).lineTo(T).lineTo(K).lineTo(q).lineTo(R).lineTo(D).build()})}};g_=TM([RM(2,Vt)],g_);var NM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},rD=function(m,u){return function(p,v){u(p,v,m)}},p_=14,jS=0,Bs=4,m_=4,sD=2,f_=class m extends n{constructor(u,p,v,y,k,D){super();this._editor=u,this._languageService=D,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._isHovered=M(this,!1),this.isHovered=this._isHovered,this._viewRef=se.ref(),this._editorObs=Xe(this._editor);let T=v.map((Q,te)=>{let ne;switch(Q){case di.Inactive:ne=Rl;break;case di.Jump:ne=hs;break;case di.Accept:ne=Nl;break}return{border:yi(ne,k).read(te).toString(),background:Ro(y.read(te))}}),R=p.map((Q)=>Q?this.getState(Q):void 0),K=R.map((Q)=>Q?this.getRendering(Q,T):void 0);this.minEditorScrollHeight=d(this,(Q)=>{let te=R.read(Q);if(!te)return 0;return te.rect.read(Q).bottom+this._editor.getScrollTop()});let q=se.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[K]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:q.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:Ho(this,(Q,te)=>{let ne=R.read(Q);if(!ne)return te??0;let re=ne.rect.map((ae)=>ae.right).read(Q)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(Q)+Bs-this._editorObs.layoutInfoContentLeft.read(Q);return Math.max(te??0,re)}).recomputeInitiallyAndOnChange(this._store)})),this._register(H((Q)=>{if(!K.read(Q)){this._isHovered.set(!1,void 0);return}this._isHovered.set(q.isHovered.read(Q),void 0)}))}fitsInsideViewport(u,p,v){let y=this._editorObs.layoutInfoWidth.read(v),k=this._editorObs.layoutInfoContentLeft.read(v),D=this._editor.getLayoutInfo().verticalScrollbarWidth,T=this._editorObs.layoutInfoMinimap.read(v).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(v).minimapWidth:0,R=on(this._editorObs,u,void 0),K=Fg(p,this._editor,this._editor.getModel()),q=Bs+p_;return R+K+q<y-k-D-T}getState(u){let p=d(this,(T)=>{let R=u.range.startLineNumber,K=u.range.endLineNumber,q=u.range.startColumn,Q=u.range.endColumn,te=this._editor.getModel()?.getLineCount()??0,ne=on(this._editorObs,new Y(R,R+1),T),re=R+1<=te?on(this._editorObs,new Y(R+1,R+2),T):void 0,ae=R-1>=1?on(this._editorObs,new Y(R-1,R),T):void 0,ge=this._editor.getOffsetForColumn(R,q),Se=this._editor.getOffsetForColumn(K,Q);return{lineWidth:ne,lineWidthBelow:re,lineWidthAbove:ae,startContentLeftOffset:ge,endContentLeftOffset:Se}}),v=u.range.startLineNumber,y=u.range.endLineNumber,k=this.fitsInsideViewport(new Y(v,y+1),u.content,void 0);return{rect:d(this,(T)=>{let R=this._editorObs.getOption(59).read(T).typicalHalfwidthCharacterWidth,{lineWidth:K,lineWidthBelow:q,lineWidthAbove:Q,startContentLeftOffset:te,endContentLeftOffset:ne}=p.read(T),re=this._editorObs.layoutInfoContentLeft.read(T),ae=this._editorObs.observeLineHeightForLine(v).recomputeInitiallyAndOnChange(T.store).read(T),ge=this._editorObs.scrollTop.read(T),Se=this._editorObs.scrollLeft.read(T),Oe;if(v===y&&ne+5*R>=K&&k)Oe="end";else if(q!==void 0&&q+p_-m_-Bs<te)Oe="below";else if(Q!==void 0&&Q+p_-m_-Bs<te)Oe="above";else Oe="end";let Ae,We,Ue=0,Le=0;switch(Oe){case"end":{Ae=this._editorObs.editor.getTopForLineNumber(v),We=K,Ue=Bs+p_;break}case"below":{Ae=this._editorObs.editor.getTopForLineNumber(v+1),We=te,Ue=Bs+m_,Le=jS+sD;break}case"above":{Ae=this._editorObs.editor.getTopForLineNumber(v-1),We=te,Ue=Bs+m_,Le=-jS+sD;break}}return xt.fromLeftTopWidthHeight(re+We-Se,Ae-ge,R*u.content.length,ae).withMargin(jS,Bs).translateX(Ue).translateY(Le)}),label:u.content,kind:u.style}}getRendering(u,p){let v=document.createElement("div"),y=this._editor.getModel().tokenization.tokenizeLinesAt(1,[u.label])?.[0],k;if(y&&u.kind===l0.Code)k=La.fromLineTokens(y).toLineTokens(u.label,this._languageService.languageIdCodec);else k=bt.createEmpty(u.label,this._languageService.languageIdCodec);let D=Xc(new sc([k]),oa.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],v,!0);v.style.width=`${D.minWidthInPx}px`;let T=u.rect.map((R)=>R.withMargin(0,Bs));return se.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...Di((R)=>T.read(R)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:p.map((R)=>`1px solid ${R.border}`),borderRadius:`${Li}px`,backgroundColor:p.map((R)=>R.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:(R)=>{R.preventDefault()},onclick:(R)=>{this._onDidClick.fire(qo.create(R))}},[v])}};f_=NM([rD(4,De),rD(5,pt)],f_);var MM=0,OM=0,$S=1,PM=1,AM=3,GS=Li;class ZS extends n{constructor(m,u,p,v){super();this._editor=m,this._edit=u,this._uiState=p,this._tabAction=v,this.onDidClick=C.None,this._display=d(this,(D)=>this._uiState.read(D)?"block":"none"),this._editorMaxContentWidthInRange=d(this,(D)=>{let T=this._originalDisplayRange.read(D);if(!T)return ke(0);return this._editorObs.versionId.read(D),Ho(this,(R,K)=>{let q=on(this._editorObs,T,R);return Math.max(q,K??0)})}).map((D,T)=>D.read(T)),this._maxPrefixTrim=d(this,(D)=>{let T=this._uiState.read(D);if(!T)return{prefixTrim:0,prefixLeftOffset:0};return Ml(T.deletions,T.originalRange,[],this._editor)}),this._editorLayoutInfo=d(this,(D)=>{let T=this._edit.read(D);if(!T)return null;if(!this._uiState.read(D))return null;let K=this._editorObs.layoutInfo.read(D),q=this._editorObs.scrollLeft.read(D),Q=this._editorObs.getOption(59).map((Oe)=>Oe.typicalHalfwidthCharacterWidth).read(D),te=K.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(D),Q)-q,ne=T.originalLineRange,re=this._originalVerticalStartPosition.read(D)??this._editor.getTopForLineNumber(ne.startLineNumber)-this._editorObs.scrollTop.read(D),ae=this._originalVerticalEndPosition.read(D)??this._editor.getTopForLineNumber(ne.endLineNumberExclusive)-this._editorObs.scrollTop.read(D),ge=K.contentLeft+this._maxPrefixTrim.read(D).prefixLeftOffset-q;if(te<=ge)return null;return{codeRect:xt.fromLeftTopRightBottom(ge,re,te,ae).withMargin(OM,MM),contentLeft:K.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=se.div({style:{pointerEvents:"none"}},d(this,(D)=>{let T=Io(this._editorLayoutInfo).read(D);if(!T)return;let R=T.map((ne)=>xt.fromLeftTopRightBottom(ne.contentLeft-GS-$S,ne.codeRect.top,ne.contentLeft,ne.codeRect.bottom)),K=d(this,(ne)=>{let re=T.read(ne).codeRect,ae=R.read(ne);return re.intersectHorizontal(new B(ae.left,Number.MAX_SAFE_INTEGER))}),q=this._uiState.map((ne)=>ne?.editorType===ci.DiffEditor?AM:PM).read(D),Q=K.map((ne)=>ne.withMargin(q,q)),te=Ro(this._uiState.map((ne)=>ne?.editorType??ci.TextEditor).read(D));return[se.div({class:"originalSeparatorDeletion",style:{...Q.read(D).toStyles(),borderRadius:`${GS}px`,border:`${$S+q}px solid ${te}`,boxSizing:"border-box"}}),se.div({class:"originalOverlayDeletion",style:{...K.read(D).toStyles(),borderRadius:`${GS}px`,border:ja(this._tabAction).map((ne)=>`${$S}px solid ${N(ne)}`),boxSizing:"border-box",backgroundColor:N(Ua)}}),se.div({class:"originalOverlayHiderDeletion",style:{...R.read(D).toStyles(),backgroundColor:te}})]})).keepUpdated(this._store),this._nonOverflowView=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=ke(!1),this._editorObs=Xe(this._editor);let y=d(this,(D)=>{let T=this._edit.read(D);return T?new r(T.originalLineRange.startLineNumber,1):null}),k=d(this,(D)=>{let T=this._edit.read(D);return T?new r(T.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map((D)=>D?.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(y,this._store).map((D)=>D?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(k,this._store).map((D)=>D?.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:d(this,(D)=>{let T=this._editorLayoutInfo.read(D);if(T===null)return 0;return T.codeRect.width})}))}}var FM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},aD=function(m,u){return function(p,v){u(p,v,m)}},Vl=1,HM=1,WM=3,XS=Li,__=class m extends n{constructor(u,p,v,y,k){super();this._editor=u,this._input=p,this._tabAction=v,this._languageService=k,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._state=d(this,(D)=>{let T=this._input.read(D);if(!T)return;let R=this._editor.getModel(),K=R.getEOL();if(T.startColumn===1&&T.lineNumber>1&&R.getLineLength(T.lineNumber)!==0&&T.text.endsWith(K)&&!T.text.startsWith(K)){let q=R.getLineLength(T.lineNumber-1)+1;return{lineNumber:T.lineNumber-1,column:q,text:K+T.text.slice(0,-K.length)}}return{lineNumber:T.lineNumber,column:T.startColumn,text:T.text}}),this._trimVertically=d(this,(D)=>{let T=this._state.read(D);if(!T)return{topOffset:0,contentHeight:0,linesTop:0,linesBottom:0};let R=T.text,K=this._editor.getLineHeightForPosition(new r(T.lineNumber,1)),q=this._editor.getModel().getEOL(),Q=R.split(q).length,te=0,ne=0;if(R.trim()!==""){let re=0;for(;re<R.length&&R.startsWith(q,re);re+=q.length)te+=1;for(let ae=R.length;ae>re&&R.endsWith(q,ae);ae-=q.length)ne+=1}return{topOffset:te*K,contentHeight:(Q-te-ne)*K,linesTop:te,linesBottom:ne}}),this._maxPrefixTrim=d(this,(D)=>{let T=this._state.read(D);if(!T)return{prefixLeftOffset:0,prefixTrim:0};let R=this._editor.getModel(),K=R.getEOL(),q=this._trimVertically.read(D),Q=T.text.split(K),te=Q.slice(q.linesTop,Q.length-q.linesBottom);if(q.linesTop===0)te[0]=R.getLineContent(T.lineNumber)+te[0];let ne=new Y(T.lineNumber,T.lineNumber+(q.linesTop>0?0:1));return Ml([],ne,te,this._editor)}),this._ghostText=d((D)=>{let T=this._state.read(D),R=this._maxPrefixTrim.read(D);if(!T)return;let q=this._editor.getModel().getEOL(),te=T.text.split(q).map((ne,re)=>new ic(new t(re+1,re===0?1:R.prefixTrim+1,re+1,ne.length+1),"modified-background",0));return new Os(T.lineNumber,[new kd(T.column,T.text,!1,te)])}),this._display=d(this,(D)=>this._state.read(D)?"block":"none"),this._editorMaxContentWidthInRange=d(this,(D)=>{let T=this._state.read(D);if(!T)return 0;this._editorObs.versionId.read(D);let R=this._editor.getModel(),K=R.getEOL(),q=T.text.startsWith(K)?"":R.getValueInRange(new t(T.lineNumber,1,T.lineNumber,T.column)),Q=R.getValueInRange(new t(T.lineNumber,T.column,T.lineNumber,R.getLineLength(T.lineNumber)+1)),ne=(q+T.text+Q).split(K),re=oa.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),ae=ne.map((ge)=>{let Se=R.tokenization.tokenizeLinesAt(T.lineNumber,[ge])?.[0],Oe;if(Se)Oe=La.fromLineTokens(Se).toLineTokens(ge,this._languageService.languageIdCodec);else Oe=bt.createEmpty(ge,this._languageService.languageIdCodec);return Xc(new sc([Oe]),re,[],g("div"),!0).minWidthInPx});return Math.max(...ae)}),this.startLineOffset=this._trimVertically.map((D)=>D.topOffset),this.originalLines=this._state.map((D)=>D?new Y(D.lineNumber,Math.min(D.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=d(this,(D)=>{this._ghostText.read(D);let T=this._state.read(D);if(!T)return null;this._editorObs.observePosition(M(this,new r(T.lineNumber,T.column)),D.store).read(D);let R=this._editorObs.layoutInfo.read(D),K=this._editorObs.scrollLeft.read(D),q=this._editorObs.layoutInfoVerticalScrollbarWidth.read(D),Q=R.contentLeft+this._editorMaxContentWidthInRange.read(D)-K,te=this._maxPrefixTrim.read(D).prefixLeftOffset??0,ne=R.contentLeft+te-K;if(Q<=ne)return null;let{topOffset:re,contentHeight:ae}=this._trimVertically.read(D),ge=this._editorObs.scrollTop.read(D),Se=this._editor.getTopForLineNumber(T.lineNumber)-ge+re,Oe=Se+ae,Ae=new xt(ne,Se,Q,Oe);return{overlay:Ae,startsAtContentLeft:te===0,contentLeft:R.contentLeft,minContentWidthRequired:te+Ae.width+q}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=se.div({style:{pointerEvents:"none"}},d(this,(D)=>{let T=Io(this._overlayLayout).read(D);if(!T)return;let R=T.map((ne)=>xt.fromLeftTopRightBottom(ne.contentLeft-XS-Vl,ne.overlay.top,ne.contentLeft,ne.overlay.bottom)).read(D),K=this._input.map((ne)=>ne?.editorType===ci.DiffEditor?WM:HM).read(D),q=T.map((ne)=>ne.overlay.withMargin(0,Vl,Vl,ne.startsAtContentLeft?0:Vl).intersectHorizontal(new B(R.left,Number.MAX_SAFE_INTEGER))),Q=q.map((ne)=>ne.withMargin(K,K)),te=Ro(this._input.read(void 0)?.editorType??ci.TextEditor);return[se.div({class:"originalUnderlayInsertion",style:{...Q.read(D).toStyles(),borderRadius:XS,border:`${Vl+K}px solid ${te}`,boxSizing:"border-box"}}),se.div({class:"originalOverlayInsertion",style:{...q.read(D).toStyles(),borderRadius:XS,border:Ws(this._tabAction).map((ne)=>`${Vl}px solid ${N(ne)}`),boxSizing:"border-box",backgroundColor:N(l_)}}),se.div({class:"originalOverlayHiderInsertion",style:{...R.toStyles(),backgroundColor:te}})]})).keepUpdated(this._store),this._view=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=Xe(this._editor),this._ghostTextView=this._register(y.createInstance(Wa,this._editor,d((D)=>{let T=this._ghostText.read(D);if(!T)return;return{ghostText:T,handleInlineCompletionShown:(R)=>{},warning:void 0}}),{extraClasses:["inline-edit"],isClickable:!0,shouldKeepCursorStable:!0})),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick((D)=>{this._onDidClick.fire(new qo(D))})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:d(this,(D)=>{let T=this._overlayLayout.read(D);if(T===null)return 0;return T.minContentWidthRequired})}))}};__=FM([aD(3,L),aD(4,pt)],__);var BM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},dD=function(m,u){return function(p,v){u(p,v,m)}},b_=class m extends n{constructor(u,p,v,y,k,D){super();this._editor=u,this._edit=p,this._editorType=v,this._tabAction=y,this._languageService=k,this._themeService=D,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((T,R)=>T?Ml(T.replacements.flatMap((K)=>[K.originalRange,K.modifiedRange]),T.originalRange,T.modifiedLines,this._editor.editor,R):void 0),this._modifiedLineElements=d(this,(T)=>{let R=[],K=0,q=this._maxPrefixTrim.read(T),Q=this._edit.read(T);if(!Q||!q)return;let te=q.prefixTrim,ne=VM(Q.replacements.map((ge)=>ge.modifiedRange)).map((ge)=>new t(ge.startLineNumber,ge.startColumn-te,ge.endLineNumber,ge.endColumn-te)),re=this._editor.model.get(),ae=Q.modifiedRange.startLineNumber;for(let ge=0;ge<Q.modifiedRange.length;ge++){let Se=document.createElement("div"),Oe=ae+ge,Ae=Q.modifiedLines[ge].slice(te),We=re.tokenization.tokenizeLinesAt(Oe,[Ae])?.[0],Ue;if(We)Ue=La.fromLineTokens(We).toLineTokens(Ae,this._languageService.languageIdCodec);else Ue=bt.createEmpty(Ae,this._languageService.languageIdCodec);let Le=[];for(let Je of ne.filter((tt)=>tt.startLineNumber===Oe)){let tt=Math.min(Je.endColumn,Ae.length+1);Le.push(new ic(new t(1,Je.startColumn,1,tt),"inlineCompletions-modified-bubble",0))}let He=Xc(new sc([Ue]),oa.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),Le,Se,!0);this._editor.getOption(59).read(T),K=Math.max(K,He.minWidthInPx),R.push(Se)}return{lines:R,requiredWidth:K}}),this._layout=d(this,(T)=>{let R=this._modifiedLineElements.read(T),K=this._maxPrefixTrim.read(T),q=this._edit.read(T);if(!R||!K||!q)return;let{prefixLeftOffset:Q}=K,{requiredWidth:te}=R,ne=this._editor.observeLineHeightsForLineRange(q.originalRange).read(T),re=(()=>{let lt=ne.slice(0,q.modifiedRange.length);while(lt.length<q.modifiedRange.length)lt.push(ne[ne.length-1]);return lt})(),ae=this._editor.layoutInfoContentLeft.read(T),ge=this._editor.layoutInfoVerticalScrollbarWidth.read(T),Se=this._editor.scrollLeft.read(T),Oe=this._editor.scrollTop.read(T),Ae=ae-Se,We=this._editor.editor.getModel(),Ue=q.originalRange.mapToLineArray((lt)=>this._editor.editor.getOffsetForColumn(lt,We.getLineMaxColumn(lt))-Q),Le=Math.max(...Ue,te),He=q.originalRange.startLineNumber,Je=q.originalRange.endLineNumberExclusive-1,tt=this._editor.editor.getTopForLineNumber(He)-Oe,ot=this._editor.editor.getBottomForLineNumber(Je)-Oe,qe=xt.fromLeftTopWidthHeight(Ae+Q,tt,Le,ot-tt),nt=xt.fromLeftTopWidthHeight(qe.left,qe.bottom,qe.width,re.reduce((lt,li)=>lt+li,0)),_t=xt.hull([qe,nt]),st=_t.intersectVertical(new B(qe.bottom,Number.MAX_SAFE_INTEGER)),Ct=new xt(st.left,st.top,st.right,st.bottom);return{originalLinesOverlay:qe,modifiedLinesOverlay:nt,background:_t,lowerBackground:st,lowerText:Ct,modifiedLineHeights:re,minContentWidthRequired:Q+Le+ge}}),this._viewZoneInfo=d((T)=>{if(!this._editor.getOption(71).map((ne)=>ne.edits.allowCodeShifting==="always").read(T))return;let K=this._layout.read(T),q=this._edit.read(T);if(!K||!q)return;let Q=K.lowerBackground.height,te=q.originalRange.endLineNumberExclusive;return{height:Q,lineNumber:te}}),this.minEditorScrollHeight=d(this,(T)=>{let R=Io(this._layout).read(T);if(!R||this._viewZoneInfo.read(T)!==void 0)return 0;return R.read(T).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=se.div({class:"line-replacement"},[d(this,(T)=>{let R=Io(this._layout).read(T),K=this._modifiedLineElements.read(T);if(!R||!K)return[];let q=R.read(T),Q=this._editor.layoutInfoContentLeft.read(T),te=this._editorType.read(T)===ci.DiffEditor?3:1;K.lines.forEach((ge,Se)=>{ge.style.width=`${q.lowerText.width}px`,ge.style.height=`${q.modifiedLineHeights[Se]}px`,ge.style.position="relative"});let ne=Ws(this._tabAction).read(T),re=ja(this._tabAction).read(T),ae=Ro(this._editorType.read(T));return[se.div({style:{position:"absolute",...Di((ge)=>Ol(this._editor).read(ge)),overflow:"hidden",pointerEvents:"none"}},[se.div({class:"borderAroundLineReplacement",style:{position:"absolute",...Di((ge)=>R.read(ge).background.translateX(-Q).withMargin(te)),borderRadius:`${Li}px`,border:`${te+1}px solid ${ae}`,boxSizing:"border-box",pointerEvents:"none"}}),se.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...Di((ge)=>R.read(ge).background.translateX(-Q)),borderRadius:`${Li}px`,border:yi(re,this._themeService).map((ge)=>`1px solid ${ge.toString()}`),pointerEvents:"none",boxSizing:"border-box",background:N(Ua)}}),se.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...Di((ge)=>R.read(ge).lowerBackground.translateX(-Q)),borderRadius:`0 0 ${Li}px ${Li}px`,background:ae,boxShadow:`${N(ef)} 0 6px 6px -6px`,border:`1px solid ${N(ne)}`,boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:(ge)=>{ge.preventDefault()},onclick:(ge)=>this._onDidClick.fire(qo.create(ge))},[se.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:N(qE)}})]),se.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...Di((ge)=>R.read(ge).lowerText.translateX(-Q)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:`0 0 ${Li}px ${Li}px`,overflow:"hidden"}},[...K.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered((T)=>this._isMouseOverWidget(T),this._store),this._previousViewZoneInfo=void 0,this._register(E(()=>this._editor.editor.changeViewZones((T)=>this.removePreviousViewZone(T)))),this._register(YI(this._viewZoneInfo,({lastValue:T,newValue:R})=>{if(T===R||T?.height===R?.height&&T?.lineNumber===R?.lineNumber)return;this._editor.editor.changeViewZones((K)=>{if(this.removePreviousViewZone(K),!R)return;this.addViewZone(R,K)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:d(this,(T)=>this._layout.read(T)?.minContentWidthRequired??0),position:ke({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(u){let p=this._layout.get();if(!p||!(u.event instanceof Ra))return!1;return p.lowerBackground.containsPoint(new Xn(u.event.relativePos.x,u.event.relativePos.y))}removePreviousViewZone(u){if(!this._previousViewZoneInfo)return;u.removeZone(this._previousViewZoneInfo.id);let p=this._editor.cursorLineNumber.get();if(p!==null&&p>=this._previousViewZoneInfo.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height);this._previousViewZoneInfo=void 0}addViewZone(u,p){let v=p.addZone({afterLineNumber:u.lineNumber-1,heightInPx:u.height,domNode:g("div")});this._previousViewZoneInfo={height:u.height,lineNumber:u.lineNumber,id:v};let y=this._editor.cursorLineNumber.get();if(y!==null&&y>=u.lineNumber)this._editor.editor.setScrollTop(this._editor.scrollTop.get()+u.height)}};b_=BM([dD(4,pt),dD(5,De)],b_);function VM(m){let u=[];while(m.length){let p=m.shift();if(p.startLineNumber!==p.endLineNumber)m.push(new t(p.startLineNumber+1,1,p.endLineNumber,p.endColumn)),p=new t(p.startLineNumber,p.startColumn,p.startLineNumber,Number.MAX_SAFE_INTEGER);u.push(p)}return u}function cD(m,u){let p={};for(let[D,T]of Object.entries(u))if(Array.isArray(T))p[D]={min:0,rules:T};else p[D]={min:T.min??0,rules:T.rules??[{max:T.max,priority:T.priority,share:T.share}]};let v={},y=0;for(let[D,T]of Object.entries(p))v[D]=T.min,y+=T.min;if(y>m)return null;let k=m-y;while(k>0){let D=[];for(let[te,ne]of Object.entries(p))for(let re=0;re<ne.rules.length;re++){let ae=ne.rules[re],ge=v[te],Se=ae.max??1/0;if(ge<Se)D.push({partKey:te,ruleIndex:re,rule:ae,priority:ae.priority??0,share:ae.share??1})}if(D.length===0)break;let T=Math.max(...D.map((te)=>te.priority)),R=D.filter((te)=>te.priority===T),K=R.reduce((te,ne)=>te+ne.share,0),q=0,Q=[];for(let te of R){let ne=te.rule,re=v[te.partKey],ge=(ne.max??1/0)-re,Se=k*te.share/K,Oe=Math.min(Se,ge);Q.push({partKey:te.partKey,ruleIndex:te.ruleIndex,amount:Oe}),q+=Oe}if(q===0)break;for(let te of Q)v[te.partKey]+=te.amount;if(k-=q,k<0.0001)break}return v}var zM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},YS=function(m,u){return function(p,v){u(p,v,m)}},v_=class m extends n{constructor(u,p,v,y,k,D){super();this._editor=u,this._data=v,this._themeService=y,this._keybindingService=k,this._contextKeyService=D,this._styles=d(this,(R)=>({background:yi(hs,this._themeService).read(R).toString(),foreground:yi(qa,this._themeService).read(R).toString(),border:yi(qn,this._themeService).read(R).toString()})),this._pos=d(this,(R)=>this._editor.observePosition(d((K)=>this._data.read(K)?.jumpToPosition||null),R.store)).flatten(),this._layout=d(this,(R)=>{let K=this._data.read(R);if(!K)return;let q=K.jumpToPosition,Q=this._editor.observeLineHeightForLine(ke(q.lineNumber)).read(R),te=this._editor.scrollLeft.read(R),ne=this._pos.read(R);if(!ne)return;let re=this._editor.layoutInfo.read(R);return{widgetRect:xt.fromLeftTopWidthHeight(ne.x+re.contentLeft+2-te,ne.y,100,Q)}}),this._blink=KM([{value:!0,durationMs:600},{value:!1,durationMs:600}]),this._widget=se.div({class:"inline-edit-jump-to-widget",style:{position:"absolute",display:this._layout.map((R)=>R?"flex":"none"),alignItems:"center",cursor:"pointer",userSelect:"none",...Di((R)=>this._layout.read(R)?.widgetRect)}},d((R)=>{if(this._data.read(R)===void 0)return[];return se.div({style:{display:"flex",alignItems:"center",gap:"4px",padding:"0 4px",height:"100%",backgroundColor:this._styles.map((K)=>K.background),["--vscodeIconForeground"]:this._styles.map((K)=>K.foreground),border:this._styles.map((K)=>`1px solid ${K.border}`),borderRadius:"3px",boxSizing:"border-box",fontSize:"11px",color:this._styles.map((K)=>K.foreground)}},[this._style==="cursor"?se.elem("div",{style:{borderLeft:"2px solid",height:14,opacity:this._blink.map((K)=>K?"0":"1")}}):[d(()=>se.elem("div",{},UM(this._keybinding))),se.elem("div",{style:{lineHeight:this._layout.map((K)=>K?.widgetRect.height),marginTop:"-2px"}},["to jump"])]])})),this._style=p.style,this._keybinding=this._getKeybinding(fr);let T=this._widget.keepUpdated(this._store);this._register(this._editor.createOverlayWidget({domNode:T.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:ke(0)})),this._register(this._editor.setDecorations(d((R)=>{let K=this._data.read(R);if(!K)return[];return[{range:t.fromPositions(K.jumpToPosition,K.jumpToPosition),options:{description:"inline-edit-jump-to-decoration",inlineClassNameAffectsLetterSpacing:!0,showIfCollapsed:!0,after:{content:this._style==="label"?" ":" "}}}]})))}_getKeybinding(u,p=Dt.ofCaller()){if(!u)return ke(void 0);return Te(this,this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(u),p)}};v_=zM([YS(3,De),YS(4,ce),YS(5,V)],v_);function KM(m,u=Dt.ofCaller()){let p=0;return Te(void 0,(v)=>{p=0;let y=new be(()=>{p=(p+1)%m.length,v(null),y.schedule(m[p].durationMs)},0);return y.schedule(0),y},()=>m[p].value,u)}function UM(m){return d((u)=>se.div({style:{},ref:(p)=>{let v=u.store.add(new ia(p,ui,{disableTitle:!0,...Eg,keybindingLabelShadow:void 0,keybindingLabelForeground:N(qa),keybindingLabelBackground:"transparent",keybindingLabelBorder:N(qa),keybindingLabelBottomBorder:void 0}));u.store.add(H((y)=>{v.set(m.read(y))}))}}))}var qM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},jM=function(m,u){return function(p,v){u(p,v,m)}};function $M(m,u,p){let v=Math.max(1,Math.min(p,m)),y=Math.max(1,v-u),k=Math.min(p+1,v+u+1);return new Y(y,k)}var w_=class m extends n{constructor(u,p,v,y,k){super();this._previewTextModel=u,this._properties=p,this._parentEditor=v,this._tabAction=y,this._instantiationService=k,this._previewRef=se.ref(),this.element=se.div({class:"preview",style:{},ref:this._previewRef}),this._state=d(this,(D)=>{let T=this._properties.read(D);if(!T)return;let R,K;if(T.nextCursorPosition!==null)R="original",K=T.nextCursorPosition.lineNumber;else if(T.diff[0].innerChanges?.every((re)=>re.modifiedRange.isEmpty()))R="original",K=T.diff[0].original.startLineNumber;else R="modified",K=T.diff[0].modified.startLineNumber;let q=R==="modified"?cs.snapshot(this._previewTextModel):T.target,Q=this._parentEditorObs.getOption(71).read(D).edits.longDistanceHintContextLineCount,te=R==="modified"?this._previewTextModel:T.target.dangerouslyGetUnderlyingModel(),ne=$M(K,Q,te.getLineCount());return{mode:R,targetLineNumber:K,visibleLineRange:ne,textModel:q,diff:T.diff}}),this.updatePreviewEditorEffect=d(this,(D)=>{this._previewEditorObs.model.read(D);let T=this._state.read(D)?.visibleLineRange;if(!T)return;let R=[];if(T.startLineNumber>1)R.push(new t(1,1,T.startLineNumber-1,1));if(T.endLineNumberExclusive<this._previewTextModel.getLineCount()+1)R.push(new t(T.endLineNumberExclusive,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(R,void 0,!0)}),this.horizontalContentRangeInPreviewEditorToShow=d(this,(D)=>this._getHorizontalContentRangeInPreviewEditorToShow(this.previewEditor,D)),this.contentHeight=d(this,(D)=>{let T=this._state.read(D);if(!T)return ke(null);return this._previewEditorObs.observeLineHeightsForLineRange(T.visibleLineRange).map((R)=>R.reduce((K,q)=>K+q,0))}).flatten(),this._editorDecorations=d(this,(D)=>{let T=this._state.read(D);if(!T)return;let R={diff:T.diff},K=[],q=[],Q=oe.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),te=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),ne=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0});for(let re of R.diff)if(re.modified.isEmpty||re.original.isEmpty){if(!re.original.isEmpty)K.push({range:re.original.toInclusiveRange(),options:Q});if(!re.modified.isEmpty)q.push({range:re.modified.toInclusiveRange(),options:te})}else for(let ae of re.innerChanges||[]){if(re.original.contains(ae.originalRange.startLineNumber)&&!ae.originalRange.isEmpty())K.push({range:ae.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Pl("inlineCompletions-char-delete",ae.originalRange.isEmpty()&&"empty"),zIndex:1}});if(re.modified.contains(ae.modifiedRange.startLineNumber))q.push({range:ae.modifiedRange,options:ne})}return{originalDecorations:K,modifiedDecorations:q}}),this.previewEditor=this._register(this._createPreviewEditor()),this._parentEditorObs=Xe(this._parentEditor),this._register(H((D)=>{let T=this._state.read(D)?.textModel||null;if(T)this.previewEditor.setModel(T.dangerouslyGetUnderlyingModel())})),this._previewEditorObs=Xe(this.previewEditor),this._register(this._previewEditorObs.setDecorations(d((D)=>{let T=this._state.read(D),R=this._editorDecorations.read(D);return(T?.mode==="original"?R?.originalDecorations:R?.modifiedDecorations)??[]}))),this._register(H((D)=>{if(!this._properties.read(D))return;let T=this._parentEditorObs.cursorPosition.read(D);if(T)this.previewEditor.setPosition(this._previewTextModel.validatePosition(T),"longDistanceHintPreview")})),this._register(H((D)=>{let T=this._state.read(D);if(!T)return;let R=(T.visibleLineRange.endLineNumberExclusive-1).toString().length;this.previewEditor.updateOptions({lineNumbersMinChars:R+1})})),this._register(this._instantiationService.createInstance(Fl,this._previewEditorObs,d((D)=>{let T=this._state.read(D);if(!T)return;let R=this._properties.read(D);if(!R)return;return new Wg(R.inlineSuggestInfo,Y.ofLength(T.targetLineNumber,1),R.model,void 0)}),this._tabAction,ke(0),ke(!1),M(this,!1))),this.updatePreviewEditorEffect.recomputeInitiallyAndOnChange(this._store)}_createPreviewEditor(){return this._instantiationService.createInstance(ro,this._previewRef.element,{glyphMargin:!1,lineNumbers:"on",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},editContext:!1,rulers:[],padding:{top:0,bottom:0},selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[Rt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._parentEditor)}_getHorizontalContentRangeInPreviewEditorToShow(u,p){let v=this._state.read(p);if(!v)return;let y=v.diff,k=this._properties.read(p)?.nextCursorPosition,D=v.visibleLineRange,T=this._previewEditorObs.layoutInfo.read(p),R=on(this._previewEditorObs,D,p),K;if(k)K=t.fromPositions(k);else if(y[0].innerChanges)K=v.mode==="modified"?y[0].innerChanges[0].modifiedRange:y[0].innerChanges[0].originalRange;else return;let q=GM(u.getModel(),K,5),Q=this._previewEditorObs.getLeftOfPosition(q.getStartPosition(),p),te=this._previewEditorObs.getLeftOfPosition(q.getEndPosition(),p),ne=ki(Q,0,R),re=ki(te,ne,R),ae=u.getModel().getLineFirstNonWhitespaceColumn(q.startLineNumber),ge=this._previewEditorObs.getLeftOfPosition(new r(q.startLineNumber,ae),p),Se=new B(ne,re);return{indentationEnd:ge,preferredRangeToReveal:Se,maxEditorWidth:R+T.contentLeft,contentWidth:R,nonContentWidth:T.contentLeft}}layout(u,p){this.previewEditor.layout(u),this._previewEditorObs.editor.setScrollLeft(p)}};w_=qM([jM(4,L)],w_);function GM(m,u,p){let v=u.getStartPosition(),y=u.getEndPosition(),k=m.getLineContent(v.lineNumber);function D(q){let Q=k.charAt(q-1);return/[a-zA-Z0-9_]/.test(Q)}function T(q){let Q=k.charAt(q-1);return Q===" "||Q==="\t"}let R=v.column;while(R>1&&D(R)&&!T(R-1)&&v.column-R<p)R--;let K=y.column-1;while(K<=k.length&&D(K)&&!T(K+1)&&K-y.column<p)K++;return new t(v.lineNumber,R,y.lineNumber,K+1)}function lD(m,u){let{start:p,endExclusive:v}=m,y=Number.MAX_VALUE,k=0;for(let D of u){let T=k+D.width,R=Math.max(p,k),K=Math.min(v,T);if(R<K)y=Math.min(y,D.height);k=T}if(v>k)return 0;return y===Number.MAX_VALUE?0:y}class S_{constructor(m,u,p){this._lineRangeInfo=m,this.availableSpaceSizes=m.sizes.map((v,y)=>{let k=m.lineRange.startLineNumber+y,D=p(k);return new Ba(Math.max(0,u-v.width-D),v.height)}),this.availableSpaceHeightPrefixSums=XM(this.availableSpaceSizes,(v)=>v.height),this.availableSpaceSizesTransposed=this.availableSpaceSizes.map((v)=>v.transpose())}getWidgetVerticalOutline(m,u,p){let v=m-this._lineRangeInfo.lineRange.startLineNumber,y=this._lineRangeInfo.top+this.availableSpaceHeightPrefixSums[v],k=B.ofStartAndLength(y,u),{previewEditorMargin:D,widgetPadding:T,widgetBorder:R,lowerBarHeight:K}=p;return k.withMargin(D+T+R).withMargin(0,K)}tryFindWidgetOutline(m,u,p,v){if(this._lineRangeInfo.lineRange.length<3)return;return ZM(this._lineRangeInfo.lineRange.addMargin(-1,-1),m,(y)=>{let k=this.getWidgetVerticalOutline(y,u,v),D=lD(k.delta(-this._lineRangeInfo.top),this.availableSpaceSizesTransposed);if(D<v.minWidgetWidth)return;return{horizontalWidgetRange:B.ofStartAndLength(p-D,D),verticalWidgetRange:k}})}}function hD(m,u,p,v,y){let k=[],D=m.startLineNumber,T=p,R=[];for(let K=0;K<u.length;K++){let q=m.startLineNumber+K,Q=T+R.reduce((ne,re)=>ne+re.height,0),te=v.editor.getTopForLineNumber(q);if(K>0&&te!==Q)k.push({lineRange:Y.ofLength(D,q-D),top:T,sizes:R}),D=q,T=te,R=[];R.push(u[K])}return k.push({lineRange:Y.ofLength(D,m.endLineNumberExclusive-D),top:T,sizes:R}),d({owner:"splitIntoContinuousLineRanges"},(K)=>v.observeTopForLineNumber(m.endLineNumberExclusive-1).read(K)).read(y),k}function ZM(m,u,p){for(let v=0;;v++){let y=u+v;if(y<=m.endLineNumberExclusive){let D=p(y);if(D!==void 0)return D}let k=u-v;if(k>=m.startLineNumber){let D=p(k);if(D!==void 0)return D}if(k<m.startLineNumber&&y>m.endLineNumberExclusive)return}}function XM(m,u){let p=[0],v=0;for(let y of m)v+=u(y),p.push(v);return p}var YM=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Bg=function(m,u){return function(p,v){u(p,v,m)}},JM=6,JS={EMPTY_SPACE:425,OVERLAY:375},QM=250,eO={previewEditorMargin:2,widgetPadding:2,widgetBorder:1,lowerBarHeight:20,minWidgetWidth:QM},C_=class m extends n{constructor(u,p,v,y,k,D,T,R,K){super();this._editor=u,this._viewState=p,this._previewTextModel=v,this._tabAction=y,this._instantiationService=k,this._themeService=D,this._keybindingService=T,this._modelService=R,this._languageService=K,this.onDidClick=C.None,this._viewWithElement=void 0,this._hintTextPosition=d(this,(q)=>{let Q=this._viewState.read(q);return Q?new r(Q.hint.lineNumber,Number.MAX_SAFE_INTEGER):null}),this._lineSizesAroundHintPosition=d(this,(q)=>{let Q=this._viewState.read(q),te=this._hintTextPosition.read(q);if(!Q||!te)return[];let ne=this._editorObs.model.read(q);if(!ne)return[];let re=Y.ofLength(te.lineNumber,1).addMargin(5,5).intersect(Y.ofLength(1,ne.getLineCount()));if(!re)return[];let ae=YE(this._editorObs,re,q),ge=this._editorObs.observeTopForLineNumber(re.startLineNumber).read(q);return hD(re,ae,ge,this._editorObs,q)}),this._isVisibleDelayed=Uk(d(this,(q)=>this._viewState.read(q)?.hint.isVisible),(q,Q)=>q===!0&&Q===!1?200:0),this._previewEditorLayoutInfo=d(this,(q)=>{let Q=this._viewState.read(q);if(!Q||!this._isVisibleDelayed.read(q))return;let te=this._lineSizesAroundHintPosition.read(q);if(te.length===0)return;let ne=this._editorObs.scrollTop.read(q),re=this._editorObs.scrollLeft.read(q),ae=this._editorObs.layoutInfo.read(q),ge=this._previewEditor.contentHeight.read(q),Se=this._previewEditor.horizontalContentRangeInPreviewEditorToShow.read(q);if(!ge||!Se)return;let Oe=ae.contentWidth-ae.verticalScrollbarWidth,Ae=ae.contentLeft+Oe;if(!this._editorObs.cursorLineNumber.read(q))return;let Ue=eO,He=ge+2,Je,tt,ot=(nn)=>nn===Q.hint.lineNumber?40:20;for(let nn of te){let Er=new S_(nn,Oe,ot);if(tt=Er,Je=Er.tryFindWidgetOutline(Q.hint.lineNumber,He,Ae,Ue),Je)break}let qe="empty-space";if(!Je){qe="overlay";let nn=Math.min(ae.width-ae.contentLeft,JS.OVERLAY),Er=tt??new S_(te[0],Oe,ot);Je={horizontalWidgetRange:B.ofStartAndLength(Ae-nn,nn),verticalWidgetRange:Er.getWidgetVerticalOutline(Q.hint.lineNumber+2,He,Ue).delta(10)}}if(!Je)return;let nt=xt.fromRanges(Je.horizontalWidgetRange,Je.verticalWidgetRange).translateX(-re).translateY(-ne),{previewEditorMargin:_t,widgetPadding:st,widgetBorder:Ct,lowerBarHeight:lt}=Ue,li=qe==="overlay"?JS.OVERLAY:JS.EMPTY_SPACE,vt=Se.maxEditorWidth+_t+st,Nt=Math.min(li,Math.max(vt,Ue.minWidgetWidth)),bi=cD(nt.width,{spaceBefore:{min:0,max:10,priority:1},content:{min:50,rules:[{max:150,priority:2},{max:Nt,priority:1}]},spaceAfter:{min:10}});if(!bi)return null;let Zt=tO([bi.spaceBefore,bi.content,bi.spaceAfter],nt.left);nt.withHorizontalRange(Zt[0]);let qt=nt.withHorizontalRange(Zt[1]);nt.withHorizontalRange(Zt[2]);let vi=qt.withMargin(-st-Ct-_t).withMargin(0,0,-lt,0),gi=vi.width-Se.nonContentWidth,ai=gi*0.8,Gi=Se.preferredRangeToReveal.intersect(B.ofStartAndLength(Se.preferredRangeToReveal.start,ai))??Se.preferredRangeToReveal,zs=iO(Se.indentationEnd,gi,Gi);return{codeEditorSize:vi.getSize(),codeScrollLeft:re,contentLeft:ae.contentLeft,widgetRect:qt,previewEditorMargin:_t,widgetPadding:st,widgetBorder:Ct,lowerBarHeight:lt,desiredPreviewEditorScrollLeft:zs.newScrollPosition}}),this._view=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:d(this,(q)=>this._previewEditorLayoutInfo.read(q)?"block":"none")}},[d(this,(q)=>[this._widgetContent])]),this._widgetContent=d(this,(q)=>se.div({class:["inline-edits-long-distance-hint-widget","show-file-icons"],style:{position:"absolute",overflow:"hidden",cursor:"pointer",background:N(bo),padding:this._previewEditorLayoutInfo.map((Q)=>Q?.widgetPadding),boxSizing:"border-box",borderRadius:JM,border:d((Q)=>`${this._previewEditorLayoutInfo.read(Q)?.widgetBorder}px solid ${this._styles.read(Q).border}`),display:"flex",flexDirection:"column",opacity:d((Q)=>this._viewState.read(Q)?.hint.isVisible?"1":"0"),transition:"opacity 200ms ease-in-out",...Di((Q)=>this._previewEditorLayoutInfo.read(Q)?.widgetRect)},onmousedown:(Q)=>{Q.preventDefault()},onclick:()=>{this._viewState.read(void 0)?.model.jump()}},[se.div({class:["editorContainer"],style:{overflow:"hidden",padding:this._previewEditorLayoutInfo.map((Q)=>Q?.previewEditorMargin),background:this._styles.map((Q)=>Q.background),pointerEvents:"none"}},[d(this,(Q)=>this._previewEditor.element)]),se.div({class:"bar",style:{color:N(ly),pointerEvents:"none",margin:"0 4px",height:this._previewEditorLayoutInfo.map((Q)=>Q?.lowerBarHeight),display:"flex",justifyContent:"space-between",alignItems:"center"}},[d(this,(Q)=>{let te=[],ne=this._viewState.read(Q);if(!ne)return te;let re=this._editorObs.model.read(Q),ae=ne.target.uri,ge=!re||!ne.target.targets(re);if(ge){let Ue=pi(ae),Le=Rd(this._modelService,this._languageService,ae,Go.FILE);te.push(se.div({class:"target-file",style:{display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[se.elem("span",{class:Le,style:{flexShrink:"0",marginRight:"4px"}}),Ue]))}else{let Ue=this._originalOutlineSource.read(Q),Le=this._originalTargetLineNumber.read(Q),He=Ue?.getAt(Le,Q).slice(0,1)??[],Je=[];if(He.length>0)for(let tt=0;tt<He.length;tt++){let ot=He[tt],qe=Qd.toIcon(ot.kind);Je.push(se.div({class:"breadcrumb-item",style:{display:"flex",alignItems:"center",flex:"1 1 auto",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},[no(qe)," ",ot.name,...tt===He.length-1?[]:[no(b.chevronRight)]]))}te.push(se.div({class:"outline-elements",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},Je))}let Se=this._originalTargetLineNumber.read(Q),Oe=ge?b.arrowRight:ne.hint.lineNumber<Se?b.arrowDown:b.arrowUp,Ae=this._keybindingService.lookupKeybinding(Ic),We=ge?"Go to file":"Go to suggestion";if(Ae&&Ae.getLabel()==="Tab")We=ge?"Tab to open":"Tab to jump";return te.push(se.div({class:"go-to-label",style:{position:"relative",display:"flex",alignItems:"center",flex:"0 0 auto",paddingLeft:"6px"}},[We," ",no(Oe)])),te})])])),this._originalTargetLineNumber=d(this,(q)=>{let Q=this._viewState.read(q);if(!Q)return-1;if(Q.edit.action?.kind==="jumpTo")return Q.edit.action.position.lineNumber;return Q.diff[0]?.original.startLineNumber??-1}),this._originalOutlineSource=jo(this,(q)=>{let Q=this._editorObs.model.read(q),te=gu._breadcrumbsSourceFactory.read(q);return!Q||!te?void 0:te(Q,this._instantiationService)}),this._styles=d((q)=>{let Q=this._tabAction.read(q),te=Ka(Sh,this._themeService).read(q),ne=Te(this._themeService.onDidColorThemeChange,()=>{let ae=this._themeService.getColorTheme();return ae.type==="hcDark"||ae.type==="hcLight"}).read(q),re;if(ne)re=te;else{let ae;switch(Q){case di.Inactive:ae=Rl;break;case di.Jump:ae=hs;break;case di.Accept:ae=Nl;break}re=yi(ae,this._themeService).read(q)}return{border:re.toString(),background:Ro(this._viewState.map((ae)=>ae?.editorType??ci.TextEditor).read(q))}}),this._editorObs=Xe(this._editor),this._previewEditor=this._register(this._instantiationService.createInstance(w_,this._previewTextModel,d((q)=>{let Q=this._viewState.read(q);if(!Q)return;return{diff:Q.diff,model:Q.model,inlineSuggestInfo:Q.inlineSuggestInfo,nextCursorPosition:Q.nextCursorPosition,target:Q.target}}),this._editor,this._tabAction)),this._viewWithElement=this._view.keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._viewWithElement.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:ke(0)})),this._widgetContent.get().keepUpdated(this._store),this._register(H((q)=>{let Q=this._previewEditorLayoutInfo.read(q);if(!Q)return;this._previewEditor.layout(Q.codeEditorSize.toDimension(),Q.desiredPreviewEditorScrollLeft)})),this._isVisibleDelayed.recomputeInitiallyAndOnChange(this._store)}get isHovered(){return this._widgetContent.get().didMouseMoveDuringHover}};C_=YM([Bg(4,L),Bg(5,De),Bg(6,ce),Bg(7,gt),Bg(8,pt)],C_);function tO(m,u=0){let p=[],v=u;for(let y of m)p.push(new B(v,v+y)),v+=y;return p}function iO(m,u,p){let v=new B(m,m+u);if(v.containsRange(p))return{newScrollPosition:m};if(p.length>u)return{newScrollPosition:p.start};if(p.endExclusive>v.endExclusive)return{newScrollPosition:p.endExclusive-u};if(p.start<v.start)return{newScrollPosition:p.start};return{newScrollPosition:m}}var oO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},QS=function(m,u){return function(p,v){u(p,v,m)}},zl=0,Vg=0,Lr=1,nO=1,rO=3,Vs=Li,eC=20,uD=12,zg=class m extends n{static fitsInsideViewport(u,p,v,y){let k=Xe(u),D=k.layoutInfoWidth.read(y),T=k.layoutInfoContentLeft.read(y),R=u.getLayoutInfo().verticalScrollbarWidth,K=k.layoutInfoMinimap.read(y).minimapLeft!==0?k.layoutInfoMinimap.read(y).minimapWidth:0,q=on(k,v.displayRange,void 0),Q=v.lineEdit.newLines.reduce((re,ae)=>Math.max(re,Fg(ae,u,p)),0),te=eC,ne=uD+2*Lr;return q+Q+te+ne<D-T-R-K}constructor(u,p,v,y,k,D,T,R){super();this._editor=u,this._edit=p,this._previewTextModel=v,this._uiState=y,this._tabAction=k,this._instantiationService=D,this._themeService=T,this._userInteractionService=R,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._editorObs=Xe(this._editor),this._display=d(this,(Q)=>this._uiState.read(Q)?"block":"none"),this.previewRef=se.ref();let K=this._uiState.map((Q)=>Q?.editorType===ci.DiffEditor?rO:nO);this._editorContainer=se.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:(Q)=>{Q.preventDefault()},onclick:(Q)=>{this._onDidClick.fire(qo.create(Q))}},[se.div({class:"preview",style:{pointerEvents:"none"},ref:this.previewRef})]).keepUpdated(this._store),this.isHovered=this._userInteractionService.createHoverTracker(this._editorContainer.element,this._store),this.previewEditor=this._register(this._instantiationService.createInstance(ro,this.previewRef.element,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},editContext:!1,rulers:[],padding:{top:0,bottom:0},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[Rt.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=Xe(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=d(this,(Q)=>{if(this._editorContainer.readEffect(Q),this._previewEditorObs.model.read(Q),this._display.read(Q),this._nonOverflowView)this._nonOverflowView.element.style.display=this._display.read(Q);let te=this._uiState.read(Q),ne=this._edit.read(Q);if(!te||!ne)return;let re=ne.originalLineRange,ae=[];if(re.startLineNumber>1)ae.push(new t(1,1,re.startLineNumber-1,1));if(re.startLineNumber+te.newTextLineCount<this._previewTextModel.getLineCount()+1)ae.push(new t(re.startLineNumber+te.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1));this.previewEditor.setHiddenAreas(ae,void 0,!0);let ge=[...this._activeViewZones];this._activeViewZones=[];let Se=re.endLineNumberExclusive-re.startLineNumber-te.newTextLineCount;this.previewEditor.changeViewZones((Oe)=>{if(ge.forEach((Ae)=>Oe.removeZone(Ae)),Se>0)this._activeViewZones.push(Oe.addZone({afterLineNumber:re.startLineNumber+te.newTextLineCount-1,heightInLines:Se,showInHiddenAreas:!0,domNode:g("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=d(this,(Q)=>{let te=this._edit.read(Q);if(!te)return 0;return this._updatePreviewEditor.read(Q),on(this._previewEditorObs,te.modifiedLineRange,Q)}),this._cursorPosIfTouchesEdit=d(this,(Q)=>{let te=this._editorObs.cursorPosition.read(Q),ne=this._edit.read(Q);if(!ne||!te)return;return ne.modifiedLineRange.contains(te.lineNumber)?te:void 0}),this._originalStartPosition=d(this,(Q)=>{let te=this._edit.read(Q);return te?new r(te.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=d(this,(Q)=>{let te=this._edit.read(Q);return te?new r(te.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map((Q)=>Q?.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map((Q)=>Q?.y),this._originalDisplayRange=this._edit.map((Q)=>Q?.displayRange),this._editorMaxContentWidthInRange=d(this,(Q)=>{let te=this._originalDisplayRange.read(Q);if(!te)return ke(0);return this._editorObs.versionId.read(Q),Ho(this,(ne,re)=>{let ae=on(this._editorObs,te,ne);return Math.max(ae,re??0)})}).map((Q,te)=>Q.read(te));let q=tD(this._editor,this._store);this._previewEditorLayoutInfo=d(this,(Q)=>{let te=this._edit.read(Q);if(!te)return null;if(!this._uiState.read(Q))return null;let re=te.originalLineRange,ae=this._editorObs.scrollLeft.read(Q),ge=this._editorMaxContentWidthInRange.read(Q),Se=this._editorObs.layoutInfo.read(Q),Oe=this._previewEditorWidth.read(Q),Ae=Se.contentWidth-Se.verticalScrollbarWidth,We=q.read(Q),Ue=Se.contentLeft+Se.contentWidth+We.left,Le=F(this._editor.getContainerDomNode()).innerWidth-Ue,He=F(this._editor.getContainerDomNode()).innerWidth-We.right,Je=Math.min(Se.contentWidth*0.3,Oe,100),tt=0,ot=tt+Le,qe=this._cursorPosIfTouchesEdit.read(Q),nt=Math.max(Ae+ae-tt-Math.max(0,Je-ot),Math.min(qe?JE(this._editorObs,qe,Q)+50:0,Ae+ae)),_t=Math.min(ge+eC,nt),st=ge+eC+Oe+70,Ct=nt-_t,lt,li;if(_t>ae)lt=0,li=Se.contentLeft+_t-ae;else lt=ae-_t,li=Se.contentLeft;let vt=this._originalVerticalStartPosition.read(Q)??this._editor.getTopForLineNumber(re.startLineNumber)-this._editorObs.scrollTop.read(Q),Nt=this._originalVerticalEndPosition.read(Q)??this._editor.getBottomForLineNumber(re.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(Q),bi=Se.contentLeft-ae,Zt=xt.fromLeftTopRightBottom(bi,vt,li,Nt),qt=Zt.height===0;if(!qt)Zt=Zt.withMargin(Vg,zl);let gi=this._previewEditorObs.observeLineHeightsForLineRange(te.modifiedLineRange).read(Q).reduce((A_,RD)=>A_+RD,0),ai=Nt-vt,Gi=Math.max(ai,gi),zs=Ct===0,nn=0,Er=Math.min(Oe+uD,He+Se.width-Se.contentLeft-nn),Xa=xt.fromLeftTopWidthHeight(Zt.right+nn,vt,Er,Gi);if(!qt)Xa=Xa.withMargin(Vg,zl).translateX(zl+Lr);else Xa=Xa.withMargin(Vg,zl).translateY(Vg);return{codeRect:Zt,editRect:Xa,codeScrollLeft:ae,contentLeft:Se.contentLeft,isInsertion:qt,maxContentWidth:st,shouldShowShadow:zs,desiredPreviewEditorScrollLeft:lt,previewEditorWidth:Er}}),this._stickyScrollController=Yr.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?Te(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):ke(0),this._shouldOverflow=d(this,(Q)=>!1),this._originalBackgroundColor=Te(this,this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme().getColor(Ua)??f.transparent),this._editorBackgroundColor=this._uiState.map((Q)=>Ro(Q?.editorType??ci.TextEditor)),this._backgroundSvg=se.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[se.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:d(this,(Q)=>{let te=this._previewEditorLayoutInfo.read(Q);if(!te)return;if(this._originalBackgroundColor.read(Q).isTransparent())return;return new Al().moveTo(te.codeRect.getRightTop()).lineTo(te.codeRect.getRightTop().deltaX(1000)).lineTo(te.codeRect.getRightBottom().deltaX(1000)).lineTo(te.codeRect.getRightBottom()).build()}),style:{fill:this._editorBackgroundColor}})]).keepUpdated(this._store),this._originalOverlay=se.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map((Q)=>Q?.isInsertion?"none":"block")}},d(this,(Q)=>{let te=Io(this._previewEditorLayoutInfo).read(Q);if(!te)return;let ne=this._editorBackgroundColor.read(Q),re=K.read(Q),ae=ja(this._tabAction).map((tt)=>`${Lr}px solid ${N(tt)}`),ge=`${Lr+re}px solid ${ne}`,Se=te.read(Q).codeScrollLeft!==0,Oe=te.map((tt)=>tt.codeRect.bottom<tt.editRect.bottom),Ae=Vs*2+Lr*2,We=te.map((tt)=>xt.fromLeftTopRightBottom(tt.contentLeft-Vs-Lr,tt.codeRect.top,tt.contentLeft,tt.codeRect.bottom+Ae)).read(Q),Ue=new B(We.left,Number.MAX_SAFE_INTEGER),Le=te.map((tt)=>tt.codeRect.intersectHorizontal(Ue)),He=Le.map((tt)=>tt.withMargin(re,0,re,re).intersectHorizontal(Ue)),Je=Le.map((tt)=>xt.fromLeftTopWidthHeight(tt.right-Ae+Lr,tt.bottom-Lr,Ae,Ae).intersectHorizontal(Ue));return[se.div({class:"originalSeparatorSideBySide",style:{...He.read(Q).toStyles(),boxSizing:"border-box",borderRadius:`${Vs}px 0 0 ${Vs}px`,borderTop:ge,borderBottom:ge,borderLeft:Se?"none":ge}}),se.div({class:"originalOverlaySideBySide",style:{...Le.read(Q).toStyles(),boxSizing:"border-box",borderRadius:`${Vs}px 0 0 ${Vs}px`,borderTop:ae,borderBottom:ae,borderLeft:Se?"none":ae,backgroundColor:N(Ua)}}),se.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:Oe.map((tt)=>tt?"block":"none"),...Je.read(Q).toStyles()}},[se.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:yi(Ua,this._themeService).map((tt)=>tt.toString())}}),se.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:ae,borderRight:ae,borderRadius:"0 100% 0 0",backgroundColor:ne}})]),se.div({class:"originalOverlaySideBySideHider",style:{...We.toStyles(),backgroundColor:ne}})]})).keepUpdated(this._store),this._modifiedOverlay=se.div({style:{pointerEvents:"none"}},d(this,(Q)=>{let te=Io(this._previewEditorLayoutInfo).read(Q);if(!te)return;let ne=te.map((Le)=>Le.codeRect.bottom<Le.editRect.bottom),re=this._editorBackgroundColor.read(Q),ae=K.read(Q),ge=ne.map((Le)=>`0 ${Vs}px ${Vs}px ${Le?Vs:0}px`),Se=yi(Ws(this._tabAction),this._themeService).map((Le)=>`1px solid ${Le.toString()}`),Oe=`${Lr+ae}px solid ${re}`,Ae=te.map((Le)=>Le.editRect.withMargin(0,Lr)),We=Ae.map((Le)=>Le.withMargin(ae,ae,ae,0)),Ue=d(this,(Le)=>{let He=Ae.read(Le),Je=te.read(Le);if(!Je.isInsertion||Je.contentLeft>=He.left)return xt.fromLeftTopWidthHeight(He.left,He.top,0,0);return new xt(Je.contentLeft,He.top,He.left,He.top+Lr*2)});return[se.div({class:"modifiedInsertionSideBySide",style:{...Ue.read(Q).toStyles(),backgroundColor:Ws(this._tabAction).map((Le)=>N(Le))}}),se.div({class:"modifiedSeparatorSideBySide",style:{...We.read(Q).toStyles(),borderRadius:ge,borderTop:Oe,borderBottom:Oe,borderRight:Oe,boxSizing:"border-box"}}),se.div({class:"modifiedOverlaySideBySide",style:{...Ae.read(Q).toStyles(),borderRadius:ge,border:Se,boxSizing:"border-box",backgroundColor:N(l_)}})]})).keepUpdated(this._store),this._nonOverflowView=se.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,d(this,(Q)=>this._shouldOverflow.read(Q)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:ke(null),allowEditorOverflow:!1,minContentWidthInPx:d(this,(Q)=>{let te=this._previewEditorLayoutInfo.read(Q)?.maxContentWidth;if(te===void 0)return 0;return te})})),this.previewEditor.setModel(this._previewTextModel),this._register(H((Q)=>{let te=this._previewEditorLayoutInfo.read(Q);if(!te)return;let ne=te.editRect.withMargin(-Vg,-zl);this.previewEditor.layout({height:ne.height,width:te.previewEditorWidth+15}),this._editorContainer.element.style.top=`${ne.top}px`,this._editorContainer.element.style.left=`${ne.left}px`,this._editorContainer.element.style.width=`${te.previewEditorWidth+zl}px`})),this._register(H((Q)=>{let te=this._previewEditorLayoutInfo.read(Q);if(!te)return;this._previewEditorObs.editor.setScrollLeft(te.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};zg=oO([QS(5,L),QS(6,De),QS(7,ar)],zg);var sO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Kg=function(m,u){return function(p,v){u(p,v,m)}};class iC{constructor(m,u,p){this.edit=m,this.editorType=u,this.alternativeAction=p}equals(m){return this.edit.equals(m.edit)&&this.alternativeAction===m.alternativeAction}}var yo=1,gD="word-replacement-view-overlay",pD="word-replacement-view-widget",mD="word-replacement-view-replacement",tC="word-replacement-view-rename",Md=class m extends n{static{this.MAX_LENGTH=100}constructor(u,p,v,y,k,D,T,R){super();this._editor=u,this._viewData=p,this._tabAction=v,this._languageService=y,this._themeService=k,this._keybindingService=D,this._hoverService=T,this._userInteractionService=R,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(ke(this._viewData.edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(ke(this._viewData.edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._primaryElement=M(this,null),this._secondaryElement=M(this,null),this.isHovered=d(this,(te)=>{let ne=this._primaryElement.read(te);if(!ne)return!1;return this._userInteractionService.createHoverTracker(ne.element,te.store).read(te)}),this._renderTextEffect=d(this,(te)=>{let ne=this._editor.model.read(void 0);if(!ne)return;let re=ne.getLineContent(this._viewData.edit.range.startLineNumber),ae=Un.replace(new B(this._viewData.edit.range.startColumn-1,this._viewData.edit.range.endColumn-1),this._viewData.edit.text),ge=ae.replace(re),Se=ne.tokenization.tokenizeLinesAt(this._viewData.edit.range.startLineNumber,[ge])?.[0],Oe;if(Se)Oe=La.fromLineTokens(Se).slice(ae.getRangeAfterReplace()).toLineTokens(this._viewData.edit.text,this._languageService.languageIdCodec);else Oe=bt.createEmpty(this._viewData.edit.text,this._languageService.languageIdCodec);let Ae=Xc(new sc([Oe]),oa.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width=`${Ae.minWidthInPx}px`});let K=this._editor.observeLineHeightForPosition(this._viewData.edit.range.getStartPosition()),q=Vk(this._viewData.alternativeAction?.count??new Promise((te)=>te(void 0))).map((te)=>te.value),Q=d(this,(te)=>this._userInteractionService.readModifierKeyStatus(this._editor.editor.getDomNode(),te).shiftKey);this._layout=d(this,(te)=>{this._renderTextEffect.read(te);let ne=this._start.read(te),re=this._end.read(te);if(!ne||!re||ne.x>re.x||ne.y>re.y)return;let ae=K.read(te);if(ae<=0)return;let ge=this._editor.scrollLeft.read(te),Se=this._editor.getOption(59).read(te).typicalHalfwidthCharacterWidth,Oe=3*Se,We=new Xn(Oe,4),Ue=void 0;if(this._viewData.alternativeAction){let ot=this._viewData.alternativeAction.label,qe=q.read(te),nt=Q.read(te),_t=qe!==void 0?qe===1?e(1283,"{0} 1 occurrence",ot):e(1284,"{0} {1} occurrences",ot,qe):ot,st=e(1285,"{0} show occurrences","[shift]");Ue={label:qe!==void 0?nt?_t:ot:ot,tooltip:_t?`${_t}
48
- ${st}`:void 0,icon:void 0,count:qe,keybinding:this._keybindingService.lookupKeybinding(_d),active:Q}}let Le=xt.fromPoints(ne,re).withHeight(ae).translateX(-ge),He=xt.fromPointSize(Le.getLeftBottom().add(We),new Xn(this._viewData.edit.text.length*Se,Le.height)),Je=He.withWidth(He.width+(Ue?Ue.label.length*Se+8+4+12:0)),tt=Je.withLeft(Le.left);return{alternativeAction:Ue,originalLine:Le,codeLine:He,modifiedLine:Je,lowerBackground:tt,lineHeight:ae}}),this.minEditorScrollHeight=d(this,(te)=>{let ne=Io(this._layout).read(te);if(!ne)return 0;return ne.read(te).modifiedLine.bottom+yo+this._editor.editor.getScrollTop()}),this._root=se.div({class:"word-replacement"},[d(this,(te)=>{let ne=Io(this._layout).read(te);if(!ne)return[];let re=ja(this._tabAction).map((qe)=>N(qe)).read(te),ae=Ws(this._tabAction).map((qe)=>N(qe)).read(te);this._line.style.lineHeight=`${ne.read(te).modifiedLine.height+2*yo}px`;let ge=ke(!1),Se=ne.map((qe)=>qe.alternativeAction),Oe=d((qe)=>(Se.read(qe)?.active.read(qe)??!1)||ge.read(qe)),We=Te(this._themeService.onDidColorThemeChange,()=>{let qe=this._themeService.getColorTheme();return qe.type==="hcDark"||qe.type==="hcLight"}).read(te)?Ka(Re,this._themeService).read(te):null,Ue={borderColor:We?We.toString():ae,backgroundColor:N(jE),color:"",opacity:"1"},Le={borderColor:We?We.toString():N(qn),backgroundColor:N(hs),color:N(qa),opacity:"1"},He={borderColor:We?We.toString():Ka(mg,this._themeService).map((qe)=>qe.transparent(0.2).toString()).read(te),backgroundColor:Ro(this._viewData.editorType),color:"",opacity:"0.7"},Je=Ro(this._viewData.editorType),tt=d(this,(qe)=>Oe.read(qe)?Ue:Ue),ot=d(this,(qe)=>Oe.read(qe)?Le:He);return[se.div({id:gD,style:{position:"absolute",...Di((qe)=>Ol(this._editor).read(qe)),overflow:"hidden",pointerEvents:"none"}},[se.div({style:{position:"absolute",...Di((qe)=>ne.read(qe).lowerBackground.withMargin(yo,2*yo,yo,0)),background:Je,cursor:"pointer",pointerEvents:"auto"},onmousedown:(qe)=>this._mouseDown(qe)}),se.div({id:pD,style:{position:"absolute",...Di((qe)=>ne.read(qe).modifiedLine.withMargin(yo,2*yo)),width:void 0,pointerEvents:"auto",boxSizing:"border-box",borderRadius:`${Li}px`,background:Je,display:"flex",justifyContent:"left",outline:`2px solid ${Je}`},onmousedown:(qe)=>this._mouseDown(qe)},[se.div({id:mD,style:{fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),width:Di((qe)=>ne.read(qe).codeLine.withMargin(yo,2*yo)).width,borderRadius:`${Li}px`,border:tt.map((qe)=>`${yo}px solid ${qe.borderColor}`),boxSizing:"border-box",padding:`${yo}px`,opacity:tt.map((qe)=>qe.opacity),background:tt.map((qe)=>qe.backgroundColor),display:"flex",justifyContent:"left",alignItems:"center",pointerEvents:"auto",cursor:"pointer"},obsRef:(qe)=>{this._primaryElement.set(qe,void 0)}},[this._line]),d(this,(qe)=>{let nt=Se.read(qe);if(!nt)return;let _t=document.createElement("div");return qe.store.add(new ia(_t,ui,{...o_,disableTitle:!0})).set(nt.keybinding),se.div({id:tC,style:{position:"relative",borderRadius:`${Li}px`,borderTop:`${yo}px solid`,borderRight:`${yo}px solid`,borderBottom:`${yo}px solid`,borderLeft:`${yo}px solid`,borderColor:ot.map((Ct)=>Ct.borderColor),opacity:ot.map((Ct)=>Ct.opacity),color:ot.map((Ct)=>Ct.color),display:"flex",justifyContent:"center",alignItems:"center",padding:"0 4px 0 1px",marginLeft:"4px",background:ot.map((Ct)=>Ct.backgroundColor),cursor:"pointer",textWrap:"nowrap"},class:"inline-edit-alternative-action-label",obsRef:(Ct)=>{this._secondaryElement.set(Ct,void 0)},ref:(Ct)=>{if(nt.tooltip)qe.store.add(this._hoverService.setupDelayedHoverAtMouse(Ct,{content:nt.tooltip,appearance:{compact:!0}}))}},[_t,g("div.inline-edit-alternative-action-label-separator"),nt.icon?no(nt.icon):void 0,nt.label])})]),se.div({style:{position:"absolute",...Di((qe)=>ne.read(qe).originalLine.withMargin(yo)),boxSizing:"border-box",borderRadius:`${Li}px`,border:`${yo}px solid ${re}`,background:N(UE),pointerEvents:"none"}},[]),se.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:ne.map((qe)=>qe.modifiedLine.left-16),top:ne.map((qe)=>qe.modifiedLine.top+Math.round((qe.lineHeight-14-5)/2)),pointerEvents:"none"},onmousedown:(qe)=>this._mouseDown(qe)},[se.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:N(mg)}),se.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:N(mg)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:ke(0),position:ke({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_mouseDown(u){let p=aO(u.target,new Set([pD,mD,tC,gD]));if(!p)return;u.preventDefault(),this._onDidClick.fire(qo.create(u,p===tC))}};Md=sO([Kg(3,pt),Kg(4,De),Kg(5,ce),Kg(6,vn),Kg(7,ar)],Md);function aO(m,u){let p=m;while(p){if(u.has(p.id))return p.id;p=p.parentElement}return null}class oC extends n{constructor(m,u,p){super();this._originalEditor=m,this._state=u,this._modifiedTextModel=p,this._onDidClick=this._register(new i),this.onDidClick=this._onDidClick.event,this.isHovered=Xe(this._originalEditor).isTargetHovered((y)=>y.target.type===6&&y.target.detail.injectedText?.options.attachedData instanceof y_&&y.target.detail.injectedText.options.attachedData.owner===this,this._store),this._tokenizationFinished=lO(this._modifiedTextModel),this._decorations=d(this,(y)=>{let k=this._state.read(y);if(!k)return;let D=k.modifiedText,T=k.mode==="insertionInline",R=k.diff.length===1&&k.diff[0].innerChanges?.length===1,K=!0,q=[],Q=[],te=oe.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),ne=oe.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),re=oe.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),ae=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),ge=oe.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),Se=oe.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),Oe=oe.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),Ae=k.mode!=="sideBySide"&&k.mode!=="deletion"&&k.mode!=="insertionInline"&&k.mode!=="lineReplacement",We=k.mode==="lineReplacement";for(let Ue of k.diff){if(Ae){if(!Ue.original.isEmpty)q.push({range:Ue.original.toInclusiveRange(),options:ne});if(!Ue.modified.isEmpty)Q.push({range:Ue.modified.toInclusiveRange(),options:te})}if(Ue.modified.isEmpty||Ue.original.isEmpty){if(!Ue.original.isEmpty)q.push({range:Ue.original.toInclusiveRange(),options:re});if(!Ue.modified.isEmpty)Q.push({range:Ue.modified.toInclusiveRange(),options:ae})}else{let Le=T&&dO(Ue);for(let He of Ue.innerChanges||[]){if(Ue.original.contains(He.originalRange.startLineNumber)&&!(We&&He.originalRange.isEmpty())){let Je=this._originalEditor.getModel()?.getValueInRange(He.originalRange,1);q.push({range:He.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:Pl("inlineCompletions-char-delete",He.originalRange.isSingleLine()&&k.mode==="insertionInline"&&"single-line-inline",He.originalRange.isEmpty()&&"empty",(He.originalRange.isEmpty()&&R||k.mode==="deletion"&&Je===`
49
- `)&&K&&!Le&&"diff-range-empty"),inlineClassName:Le?Pl("strike-through","inlineCompletions"):null,zIndex:1}})}if(Ue.modified.contains(He.modifiedRange.startLineNumber))Q.push({range:He.modifiedRange,options:He.modifiedRange.isEmpty()&&K&&!Le&&R?Se:ge});if(Le){let Je=D.getValueOfRange(He.modifiedRange),tt=Je.length>3?[{text:Je.slice(0,1),extraClasses:["start"],offsetRange:new B(He.modifiedRange.startColumn-1,He.modifiedRange.startColumn)},{text:Je.slice(1,-1),extraClasses:[],offsetRange:new B(He.modifiedRange.startColumn,He.modifiedRange.endColumn-2)},{text:Je.slice(-1),extraClasses:["end"],offsetRange:new B(He.modifiedRange.endColumn-2,He.modifiedRange.endColumn-1)}]:[{text:Je,extraClasses:["start","end"],offsetRange:new B(He.modifiedRange.startColumn-1,He.modifiedRange.endColumn)}];this._tokenizationFinished.read(y);let ot=this._modifiedTextModel.tokenization.getLineTokens(He.modifiedRange.startLineNumber);for(let{text:qe,extraClasses:nt,offsetRange:_t}of tt)q.push({range:t.fromPositions(He.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:ot.getTokensInRange(_t),content:qe,inlineClassName:Pl("inlineCompletions-char-insert",He.modifiedRange.isSingleLine()&&k.mode==="insertionInline"&&"single-line-inline",...nt),cursorStops:jr.None,attachedData:new y_(this)},zIndex:2,showIfCollapsed:!0}})}}}}if(k.editorType===ci.DiffEditor){for(let Ue of k.diff)if(!Ue.original.isEmpty)q.push({range:Ue.original.toExclusiveRange(),options:Oe})}return{originalDecorations:q,modifiedDecorations:Q}}),this._register(Xe(this._originalEditor).setDecorations(this._decorations.map((y)=>y?.originalDecorations??[])));let v=this._state.map((y)=>y?.modifiedCodeEditor);this._register(Fn((y,k)=>{let D=v.read(y);if(D)k.add(Xe(D).setDecorations(this._decorations.map((T)=>T?.modifiedDecorations??[])))})),this._register(this._originalEditor.onMouseUp((y)=>{if(y.target.type!==6)return;let k=y.target.detail.injectedText?.options.attachedData;if(k instanceof y_&&k.owner===this)this._onDidClick.fire(new qo(y.event))}))}}class y_{constructor(m){this.owner=m}}function dO(m){if(!m.innerChanges)return!1;return m.innerChanges.every((u)=>Fy(u.modifiedRange)&&Fy(u.originalRange))}var cO=0;function lO(m){return Te(m.onDidChangeTokens,()=>cO++)}var hO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},uO=function(m,u){return function(p,v){u(p,v,m)}},x_=class m extends n{constructor(u,p,v,y,k,D){super();this._editor=u,this._model=p,this._simpleModel=v,this._inlineSuggestInfo=y,this._showCollapsed=k,this._instantiationService=D,this._tabAction=d((q)=>this._model.read(q)?.tabAction.read(q)??di.Inactive),this.displayRange=d(this,(q)=>{let Q=this._uiState.read(q);if(!Q)return;if(Q.target.uri.toString()!==this._editorObs.model.read(q)?.uri.toString())return;if(Q.state?.kind==="custom"){let te=Q.state.displayLocation?.range;if(!te)throw new P("custom view should have a range");return new Y(te.startLineNumber,te.endLineNumber)}if(Q.state?.kind==="insertionMultiLine")return this._insertion.originalLines.read(q);return Q.edit.displayRange}),this._currentInlineEditCache=void 0,this._uiState=d(this,(q)=>{let Q=this._model.read(q),te=this._editorObs.model.read(q);if(!Q||!te||!this._constructorDone.read(q))return;let ne=Q.inlineEdit,re,ae,ge=void 0;if(ne.edit)ae=Ti.fromEdit(ne.edit),ge=new Ta(ne.edit.apply(ne.originalText)),re=Ch(ae,ne.originalText,ge);else ae=[],re=[],ge=ne.originalText;let Se=this._determineRenderState(Q,q,re,ge);if(!Se){J(Error(`unable to determine view: tried to render ${this._previousView?.view}`));return}let Oe=this._getLongDistanceHintState(Q,q);if(Oe&&Oe.isVisible)Se.viewData.setLongDistanceViewData(Oe.lineNumber,ne.lineEdit.lineRange.startLineNumber);if(Se.viewData.isForAnotherDocument=!ne.originalText.targets(te),Se.kind===ht.SideBySide){let Ue=eD(ge.getValue(),ne.modifiedLineRange,te.getOptions().tabSize);ge=new Ta(Ue.applyToString(ge.getValue())),ae=QE(ae,Ue),re=Ch(ae,ne.originalText,ge)}this._previewTextModel.setLanguage(te.getLanguageId());let Ae=this._previewTextModel.getValue();if(Ae!==ge.getValue()){this._previewTextModel.setEOL(te.getEndOfLineSequence());let Le=to.replace(new B(0,Ae.length),ge.getValue()).removeCommonSuffixPrefix(Ae),He=Ld(this._previewTextModel).getTextEdit(Le);this._previewTextModel.edit(He)}if(this._showCollapsed.read(q))Se={kind:ht.Collapsed,viewData:Se.viewData};Q.handleInlineEditShownNextFrame(Se.kind,Se.viewData);let We=ne.action?.kind==="jumpTo"?ne.action.position:null;return{state:Se,diff:re,edit:ne,newText:ge.getValue(),newTextLineCount:ne.modifiedLineRange.length,editorType:Q.editorType,longDistanceHint:Oe,nextCursorPosition:We,target:ne.inlineCompletion.originalTextRef}}),this.inlineEditsIsHovered=d(this,(q)=>this._sideBySide.isHovered.read(q)||this._wordReplacementViews.read(q).some((Q)=>Q.isHovered.read(q))||this._deletion.isHovered.read(q)||this._inlineDiffView.isHovered.read(q)||this._lineReplacementView.isHovered.read(q)||this._insertion.isHovered.read(q)||this._customView.isHovered.read(q)||this._longDistanceHint.map((Q,te)=>Q?.isHovered.read(te)??!1).read(q)),this.gutterIndicatorOffset=d(this,(q)=>{if(this._uiState.read(q)?.state?.kind==="insertionMultiLine")return this._insertion.startLineOffset.read(q);return 0}),this._editorObs=Xe(this._editor),this._constructorDone=M(this,!1),this._previewTextModel=this._register(this._instantiationService.createInstance(qc,"",this._editor.getModel().getLanguageId(),{...qc.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._sideBySide=this._register(this._instantiationService.createInstance(zg,this._editor,this._model.map((q)=>q?.inlineEdit),this._previewTextModel,this._uiState.map((q)=>q&&q.state?.kind===ht.SideBySide?{newTextLineCount:q.newTextLineCount,editorType:q.editorType}:void 0),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(ZS,this._editor,this._model.map((q)=>q?.inlineEdit),this._uiState.map((q)=>q&&q.state?.kind===ht.Deletion?{originalRange:q.state.originalRange,deletions:q.state.deletions,editorType:q.editorType}:void 0),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(__,this._editor,this._uiState.map((q)=>q&&q.state?.kind===ht.InsertionMultiLine?{lineNumber:q.state.lineNumber,startColumn:q.state.column,text:q.state.text,editorType:q.editorType}:void 0),this._tabAction)),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(g_,this._editor,this._model.map((q,Q)=>this._uiState.read(Q)?.state?.kind===ht.Collapsed?q?.inlineEdit:void 0))),this._customView=this._register(this._instantiationService.createInstance(f_,this._editor,this._model.map((q,Q)=>this._uiState.read(Q)?.state?.kind===ht.Custom?q?.displayLocation:void 0),this._tabAction,this._uiState.map((q)=>q?.editorType??ci.TextEditor))),this._showLongDistanceHint=this._editorObs.getOption(71).map(this,(q)=>q.edits.showLongDistanceHint),this._longDistanceHint=d(this,(q)=>{if(!this._showLongDistanceHint.read(q))return;return q.store.add(this._instantiationService.createInstance(C_,this._editor,this._uiState.map((Q,te)=>Q?.longDistanceHint?{hint:Q.longDistanceHint,newTextLineCount:Q.newTextLineCount,edit:Q.edit,diff:Q.diff,editorType:Q.editorType,model:this._simpleModel.read(te),inlineSuggestInfo:this._inlineSuggestInfo.read(te),nextCursorPosition:Q.nextCursorPosition,target:Q.target}:void 0),this._previewTextModel,this._tabAction))}).recomputeInitiallyAndOnChange(this._store),this._inlineDiffViewState=d(this,(q)=>{let Q=this._uiState.read(q);if(!Q||!Q.state)return;if(Q.state.kind==="wordReplacements"||Q.state.kind==="insertionMultiLine"||Q.state.kind==="collapsed"||Q.state.kind==="custom"||Q.state.kind==="jumpTo")return;return{modifiedText:new Ta(Q.newText),diff:Q.diff,mode:Q.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,editorType:Q.editorType}}),this._inlineDiffView=this._register(new oC(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._jumpToView=this._register(this._instantiationService.createInstance(v_,this._editorObs,{style:"label"},d((q)=>{let Q=this._uiState.read(q);if(Q?.state?.kind===ht.JumpTo)return{jumpToPosition:Q.state.position};return})));let T=fn({equalsFn:Qv.arrayC(Qv.thisC())},(q)=>{let Q=this._uiState.read(q);return Q?.state?.kind===ht.WordReplacements?Q.state.replacements.map((te)=>new iC(te,Q.editorType,Q.state?.alternativeAction)):[]});this._wordReplacementViews=Jl(this,T,(q,Q)=>Q.add(this._instantiationService.createInstance(Md,this._editorObs,q,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(b_,this._editorObs,this._uiState.map((q)=>q?.state?.kind===ht.LineReplacement?{originalRange:q.state.originalRange,modifiedRange:q.state.modifiedRange,modifiedLines:q.state.modifiedLines,replacements:q.state.replacements}:void 0),this._uiState.map((q)=>q?.editorType??ci.TextEditor),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map((q)=>q.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map((q)=>q.edits.renderSideBySide),this._register(H((q)=>{let Q=this._model.read(q);if(!Q)return;q.store.add(C.any(this._sideBySide.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(q).map((te)=>te.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)((te)=>{if(this._viewHasBeenShownLongerThan(350))te.event.preventDefault(),Q.accept(te.alternativeAction)}))})),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);let R=d(this,(q)=>Math.max(...this._wordReplacementViews.read(q).map((Q)=>Q.minEditorScrollHeight.read(q)),this._lineReplacementView.minEditorScrollHeight.read(q),this._customView.minEditorScrollHeight.read(q))).recomputeInitiallyAndOnChange(this._store),K;this._register(H((q)=>{let Q=R.read(q),te=this._editorObs.model.read(q);if(!te)return;this._editor.changeViewZones((ne)=>{let re=this._editor.getScrollHeight(),ae=Q-re+1;if(ae!==0&&K!==void 0)ne.removeZone(K),K=void 0;if(ae<=0)return;K=ne.addZone({afterLineNumber:te.getLineCount(),heightInPx:ae,domNode:g("div.minScrollHeightViewZone")})})})),this._constructorDone.set(!0,void 0)}_getLongDistanceHintState(u,p){if(u.inlineEdit.inlineCompletion.identity.jumpedTo.read(p))return;if(u.inlineEdit.action===void 0)return;let v=this._editorObs.model.read(p);if(!v||!u.inlineEdit.originalText.targets(v))return{isVisible:!0,lineNumber:u.inlineEdit.cursorPosition.lineNumber};if(this._currentInlineEditCache?.inlineSuggestionIdentity!==u.inlineEdit.inlineCompletion.identity)this._currentInlineEditCache={inlineSuggestionIdentity:u.inlineEdit.inlineCompletion.identity,firstCursorLineNumber:u.inlineEdit.cursorPosition.lineNumber};return{lineNumber:this._currentInlineEditCache.firstCursorLineNumber,isVisible:!u.inViewPort.read(p)}}_getCacheId(u){return u.inlineEdit.inlineCompletion.identity.id}_determineView(u,p,v,y){let k=u.inlineEdit,D=this._previousView?.id===this._getCacheId(u)&&this._previousView?.uri.toString()===this._editorObs.model.get().uri.toString(),T=this._previousView?.editorWidth!==this._editorObs.layoutInfoWidth.read(p)&&(this._previousView?.view===ht.SideBySide||this._previousView?.view===ht.LineReplacement);if(D&&!T)return this._previousView.view;let R=u.inlineEdit.inlineCompletion.action;if(R?.kind==="edit"&&R.alternativeAction)return ht.WordReplacements;let K=u.inlineEdit.inlineCompletion.originalTextRef.uri,q=this._editorObs.model.read(p)?.uri;if(q&&K.toString()!==q.toString())return ht.Custom;if(u.displayLocation&&!u.inlineEdit.inlineCompletion.identity.jumpedTo.read(p))return ht.Custom;let Q=k.originalLineRange.length,te=k.modifiedLineRange.length,ne=v.flatMap((ae)=>ae.innerChanges??[]),re=ne.length===1;if(u.editorType!==ci.DiffEditor){if(re&&this._useCodeShifting.read(p)!=="never"&&wD(v)){if(pO(v,k.cursorPosition))return ht.InsertionInline;return ht.LineReplacement}if(_D(ne,k,y))return ht.Deletion;if(fD(v)&&this._useCodeShifting.read(p)==="always")return ht.InsertionMultiLine;if(ne.every((ge)=>At.ofRange(ge.originalRange).columnCount<Md.MAX_LENGTH&&At.ofRange(ge.modifiedRange).columnCount<Md.MAX_LENGTH)&&re&&Q===1&&te===1){let ge=ne.map((Oe)=>y.getValueOfRange(Oe.modifiedRange)),Se=ne.map((Oe)=>u.inlineEdit.originalText.getValueOfRange(Oe.originalRange));if(!ge.some((Oe)=>Oe.includes("\t"))&&!Se.some((Oe)=>Oe.includes("\t"))){if(!ne.some((Oe)=>Oe.originalRange.isEmpty())||!bD(ne.map((Oe)=>new ct(Oe.originalRange,"")),k.originalText).some((Oe)=>Oe.range.isEmpty()&&At.ofRange(Oe.range).columnCount<Md.MAX_LENGTH))return ht.WordReplacements}}}if(Q>0&&te>0){if(Q===1&&te===1&&u.editorType!==ci.DiffEditor)return ht.LineReplacement;if(this._renderSideBySide.read(p)!=="never"&&zg.fitsInsideViewport(this._editor,this._previewTextModel,k,p))return ht.SideBySide;return ht.LineReplacement}if(u.editorType===ci.DiffEditor){if(_D(ne,k,y))return ht.Deletion;if(fD(v)&&this._useCodeShifting.read(p)==="always")return ht.InsertionMultiLine}return ht.SideBySide}_determineRenderState(u,p,v,y){if(u.inlineEdit.action?.kind==="jumpTo")return{kind:ht.JumpTo,position:u.inlineEdit.action.position,viewData:vD()};let k=u.inlineEdit,D=this._determineView(u,p,v,y);if(this._willRenderAboveCursor(p,k,D))switch(D){case ht.LineReplacement:case ht.WordReplacements:D=ht.SideBySide;break}this._previousView={id:this._getCacheId(u),view:D,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now(),uri:this._editorObs.model.get().uri};let T=v.flatMap((te)=>te.innerChanges??[]),R=this._editor.getModel(),K=T.map((te)=>({originalRange:te.originalRange,modifiedRange:te.modifiedRange,original:k.originalText.getValueOfRange(te.originalRange),modified:y.getValueOfRange(te.modifiedRange)})),q=gO(k,K,R);switch(D){case ht.InsertionInline:return{kind:ht.InsertionInline,viewData:q};case ht.SideBySide:return{kind:ht.SideBySide,viewData:q};case ht.Collapsed:return{kind:ht.Collapsed,viewData:q};case ht.Custom:return{kind:ht.Custom,displayLocation:u.displayLocation,viewData:q}}if(D===ht.Deletion)return{kind:ht.Deletion,originalRange:k.originalLineRange,deletions:T.map((te)=>te.originalRange),viewData:q};if(D===ht.InsertionMultiLine){let te=T[0];return{kind:ht.InsertionMultiLine,lineNumber:te.originalRange.startLineNumber,column:te.originalRange.startColumn,text:y.getValueOfRange(te.modifiedRange),viewData:q}}let Q=K.map((te)=>new ct(te.originalRange,te.modified));if(Q.length===0)return;if(D===ht.WordReplacements){let te=mO(Q,k.originalText);if(te.some((ne)=>ne.range.isEmpty()))te=bD(Q,k.originalText);return{kind:ht.WordReplacements,replacements:te,alternativeAction:u.inlineEdit.action?.alternativeAction,viewData:q}}if(D===ht.LineReplacement)return{kind:ht.LineReplacement,originalRange:k.originalLineRange,modifiedRange:k.modifiedLineRange,modifiedLines:k.modifiedLineRange.mapToLineArray((te)=>y.getLineAt(te)),replacements:T.map((te)=>({originalRange:te.originalRange,modifiedRange:te.modifiedRange})),viewData:q};return}_willRenderAboveCursor(u,p,v){if(this._useCodeShifting.read(u)==="always")return!1;for(let k of p.multiCursorPositions){if(v===ht.WordReplacements&&k.lineNumber===p.originalLineRange.startLineNumber+1)return!0;if(v===ht.LineReplacement&&k.lineNumber>=p.originalLineRange.endLineNumberExclusive&&k.lineNumber<p.modifiedLineRange.endLineNumberExclusive+p.modifiedLineRange.length)return!0}return!1}_viewHasBeenShownLongerThan(u){let p=this._previousView?.timestamp;if(!p)throw new P("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-p>=u}};x_=hO([uO(5,L)],x_);var vD=()=>new rl(-1,-1,-1,-1,-1,-1,-1,!0);function gO(m,u,p){if(!m.edit)return vD();let v=m.cursorPosition,y=u.length===0?!1:u[0].modified.startsWith(p.getEOL());return new rl(m.edit.replacements.length===0?0:m.edit.replacements[0].range.getStartPosition().column-v.column,m.lineEdit.lineRange.startLineNumber-v.lineNumber+(y&&m.lineEdit.lineRange.startLineNumber>=v.lineNumber?1:0),m.lineEdit.lineRange.length,m.lineEdit.newLines.length,u.reduce((D,T)=>D+T.original.length,0),u.reduce((D,T)=>D+T.modified.length,0),u.length,u.every((D)=>D.original===u[0].original&&D.modified===u[0].modified))}function wD(m){return m.every((p)=>p.innerChanges.every((v)=>u(v)));function u(p){if(!p.originalRange.isEmpty())return!1;if(p.modifiedRange.startLineNumber!==p.modifiedRange.endLineNumber)return!1;return!0}}function pO(m,u){if(!u)return!1;if(!wD(m))return!1;let p=u;return m.every((y)=>y.innerChanges.every((k)=>v(k)));function v(y){let k=y.originalRange.getStartPosition();if(p.isBeforeOrEqual(k))return!0;if(k.lineNumber<p.lineNumber)return!0;return!1}}function fD(m){let u=m.flatMap((v)=>v.innerChanges??[]);if(u.length!==1)return!1;let p=u[0];if(!p.originalRange.isEmpty())return!1;if(p.modifiedRange.startLineNumber===p.modifiedRange.endLineNumber)return!1;return!0}function _D(m,u,p){return m.map((y)=>({original:u.originalText.getValueOfRange(y.originalRange),modified:p.getValueOfRange(y.modifiedRange)})).every(({original:y,modified:k})=>k.trim()===""&&y.length>0&&(y.length>k.length||y.trim()!==""))}function mO(m,u){return SD(m,u,(p)=>/^[a-zA-Z]$/.test(p))}function bD(m,u){return SD(m,u,(p)=>!/^\s$/.test(p))}function SD(m,u,p){let v=[];m.sort((k,D)=>t.compareRangesUsingStarts(k.range,D.range));for(let k of m){let D=k.range.startColumn-1,T=k.range.endColumn-2,R="",K="",q=u.getLineAt(k.range.startLineNumber),Q=u.getLineAt(k.range.endLineNumber);if(y(q[D]))while(y(q[D-1]))R=q[D-1]+R,D--;if(y(Q[T])||T<D)while(y(Q[T+1]))K+=Q[T+1],T++;let te=new ct(new t(k.range.startLineNumber,D+1,k.range.endLineNumber,T+2),R+k.text+K);if(v.length>0&&t.areIntersectingOrTouching(v[v.length-1].range,te.range))te=ct.joinReplacements([v.pop(),te],u);v.push(te)}function y(k){if(k===void 0)return!1;return p(k)}return v}var fO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},_O=function(m,u){return function(p,v){u(p,v,m)}},I_=class m extends n{constructor(u,p,v,y){super();this._editor=u,this._model=p,this._showCollapsed=v,this._inlineEdit=d(this,(k)=>{let D=this._model.read(k);if(!D)return;if(!this._editor.getModel())return;let R=D.inlineEditState.read(k);if(!R)return;let K=R.inlineSuggestion.action,q;if(K?.kind==="edit"){let Q=K.stringEdit,te=R.inlineSuggestion.originalTextRef.getTransformer(),ne=Q.replacements.map((re)=>{let ae=t.fromPositions(te.getPosition(re.replaceRange.start),te.getPosition(re.replaceRange.endExclusive));return new ct(ae,re.newText)});q=new fo(ne)}else q=void 0;return new US(R.inlineSuggestion.originalTextRef,K,q,D.primaryPosition.read(void 0),D.allPositions.read(void 0),R.inlineSuggestion.source.inlineSuggestions.commands??[],R.inlineSuggestion)}),this._inlineEditModel=d(this,(k)=>{let D=this._model.read(k);if(!D)return;let T=this._inlineEdit.read(k);if(!T)return;let R=d(this,(K)=>{if(this._editorObs.isFocused.read(K)){if(D.tabShouldJumpToInlineEdit.read(K))return di.Jump;if(D.tabShouldAcceptInlineEdit.read(K))return di.Accept}return di.Inactive});return new qS(D,T,R)}),this._editorObs=Xe(this._editor),this.view=this._register(y.createInstance(x_,this._editor,this._inlineEditModel,this._model.map((k)=>k?Wl.fromInlineCompletionModel(k):void 0),this._inlineEdit.map((k)=>k?Hl.fromInlineSuggestion(k.inlineCompletion):void 0),this._showCollapsed))}};I_=fO([_O(3,L)],I_);var bO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},vO=function(m,u){return function(p,v){u(p,v,m)}},L_=class m extends n{static{this.hot=Ag(this)}constructor(u,p,v,y){super();this._editor=u,this._model=p,this._focusIsInMenu=v,this._instantiationService=y,this._ghostTexts=d(this,(k)=>this._model.read(k)?.ghostTexts.read(k)??[]),this._inlineEdit=d(this,(k)=>this._model.read(k)?.inlineEditState.read(k)?.inlineSuggestion),this._everHadInlineEdit=Ho(this,(k,D)=>D||!!this._inlineEdit.read(k)||!!this._model.read(k)?.inlineCompletionState.read(k)?.inlineSuggestion?.showInlineEditMenu),this._indicatorIsHoverVisible=M(this,void 0),this._showInlineEditCollapsed=d(this,(k)=>(this._model.read(k)?.showCollapsed.read(k)??!1)&&!this._indicatorIsHoverVisible.read(k)?.read(k)),this._inlineEditWidget=jo((k)=>{if(!this._everHadInlineEdit.read(k))return;return this._instantiationService.createInstance(I_,this._editor,this._model,this._showInlineEditCollapsed)}),this._gutterIndicatorState=d((k)=>{let D=this._model.read(k);if(!D)return;let T=D.state.read(k);if(T?.kind==="ghostText"&&T.inlineSuggestion?.showInlineEditMenu)return{displayRange:Y.ofLength(T.primaryGhostText.lineNumber,1),tabAction:d(this,(R)=>this._editorObs.isFocused.read(R)?di.Accept:di.Inactive),gutterIndicatorOffset:ke(wO(T.inlineSuggestion,this._editor)),inlineSuggestion:T.inlineSuggestion,model:D};else if(T?.kind==="inlineEdit"){let R=this._inlineEditWidget.read(k)?.view;if(!R)return;let K=R.displayRange.read(k);if(!K)return;return{displayRange:K,tabAction:d((q)=>{if(this._editorObs.isFocused.read(q)){if(D.tabShouldJumpToInlineEdit.read(q))return di.Jump;if(D.tabShouldAcceptInlineEdit.read(q))return di.Accept}return di.Inactive}),gutterIndicatorOffset:R.gutterIndicatorOffset,inlineSuggestion:T.inlineSuggestion,model:D}}else return}),this._stablizedGhostTexts=$1(this._ghostTexts,this._store),this._editorObs=Xe(this._editor),this._ghostTextWidgets=Jl(this,this._stablizedGhostTexts,(k,D)=>D.add(this._createGhostText(k))).recomputeInitiallyAndOnChange(this._store),this._inlineEditWidget.recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map((k)=>k.fontFamily),this._register(cR(d((k)=>`
50
- .monaco-editor .ghost-text-decoration,
51
- .monaco-editor .ghost-text-decoration-preview,
52
- .monaco-editor .ghost-text {
53
- font-family: ${this._fontFamily.read(k)};
54
- }`))),this._register(new wm(this._editor,this._model,this._instantiationService)),this._indicator=this._register(this._instantiationService.createInstance(Fl,this._editorObs,d((k)=>{let D=this._gutterIndicatorState.read(k);if(!D)return;return new Wg(Hl.fromInlineSuggestion(D.inlineSuggestion),D.displayRange,Wl.fromInlineCompletionModel(D.model),D.inlineSuggestion.action?.kind==="edit"?D.inlineSuggestion.action.alternativeAction:void 0)}),this._gutterIndicatorState.map((k,D)=>k?.tabAction?.read(D)??di.Inactive),this._gutterIndicatorState.map((k,D)=>k?.gutterIndicatorOffset?.read(D)??0),this._inlineEditWidget.map((k,D)=>k?.view.inlineEditsIsHovered.read(D)??!1),this._focusIsInMenu)),this._indicatorIsHoverVisible.set(this._indicator.isHoverVisible,void 0),d((k)=>{let D=this._inlineEditWidget.read(k);if(!D)return;return k.store.add(this._instantiationService.createInstance(u_,D._inlineEditModel,ke(this._indicator),D.view._inlineCollapsedView))}).recomputeInitiallyAndOnChange(this._store)}_createGhostText(u){return this._instantiationService.createInstance(Wa,this._editor,d((p)=>{let v=this._model.read(p),y=v?.inlineCompletionState.read(p)?.inlineSuggestion;if(!v||!y)return{ghostText:u.read(p),handleInlineCompletionShown:()=>{},warning:void 0};return{ghostText:u.read(p),handleInlineCompletionShown:(k)=>v.handleInlineSuggestionShown(y,ht.GhostText,k,Date.now()),warning:Qf.from(v?.warning.read(p))}}),{useSyntaxHighlighting:this._editorObs.getOption(71).map((p)=>p.syntaxHighlightingEnabled),highlightShortSuggestions:!0})}shouldShowHoverAtViewZone(u){return this._ghostTextWidgets.get()[0]?.ownsViewZone(u)??!1}};L_=bO([vO(3,L)],L_);function wO(m,u){let p=m.getSingleTextEdit(),v=u.getModel();if(!v)return 0;let y=v.getEOL();if(p.range.isEmpty()&&p.text.startsWith(y)){let k=u.getLineHeightForPosition(p.range.getStartPosition());return SO(p.text,y)*k}return 0}function SO(m,u){if(!u.length)return 0;let p=0,v=0;while(m.startsWith(u,v))p++,v+=u.length;return p}var CO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Za=function(m,u){return function(p,v){u(p,v,m)}},us;I1((m)=>$i.get(m));var $i=class m extends n{static{us=this}static{this._instances=new Set}static{this.hot=Ag(this)}static{this.ID="editor.contrib.inlineCompletionsController"}static getInFocusedEditorOrParent(u){let p=Rp(u);if(!p)return null;return us.get(p)}static get(u){return D1(u.getContribution(us.ID))}constructor(u,p,v,y,k,D,T,R,K){super();this.editor=u,this._instantiationService=p,this._contextKeyService=v,this._configurationService=y,this._commandService=k,this._debounceService=D,this._languageFeaturesService=T,this._accessibilitySignalService=R,this._keybindingService=K,this._focusIsInMenu=M(this,!1),this._focusIsInEditorOrMenu=d(this,(re)=>{let ae=this._editorObs.isFocused.read(re),ge=this._focusIsInMenu.read(re);return ae||ge}),this._cursorIsInIndentation=d(this,(re)=>{let ae=this._editorObs.cursorPosition.read(re);if(ae===null)return!1;let ge=this._editorObs.model.read(re);if(!ge)return!1;this._editorObs.versionId.read(re);let Se=ge.getLineIndentColumn(ae.lineNumber);return ae.column<=Se}),this.model=jo(this,(re)=>{if(this._editorObs.isReadonly.read(re))return;let ae=this._editorObs.model.read(re);if(!ae)return;return this._instantiationService.createInstance(Vf,ae,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabledInConfig,()=>this._isEditorDictationInProgress(),this.editor)}),this._playAccessibilitySignal=Mi(this),this._view=d((re)=>re.store.add(this._instantiationService.createInstance(L_.hot.read(re),this.editor,this.model,this._focusIsInMenu))),this._editorObs=Xe(this.editor),this._positions=d(this,(re)=>this._editorObs.selections.read(re)?.map((ae)=>ae.getEndPosition())??[new r(1,1)]),this._suggestWidgetAdapter=this._register(new LS(this._editorObs,(re)=>this.model.get()?.handleSuggestAccepted(re),()=>this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit())),this._enabledInConfig=Te(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._register(this._contextKeyService.onDidChangeContext((re)=>{if(re.affectsSome(new Set(["editorDictation.inProgress"]))&&this._isEditorDictationInProgress())this.model.get()?.stop()})),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this.model.recomputeInitiallyAndOnChange(this._store),this._hideInlineEditOnSelectionChange=this._editorObs.getOption(71).map((re)=>!0),this._view.recomputeInitiallyAndOnChange(this._store),us._instances.add(this),this._register(E(()=>us._instances.delete(this))),this._register(H((re)=>{let ae=this.model.read(re);if(!ae)return;let ge=ae.state.read(re);if(!ge)return;if(!this._focusIsInEditorOrMenu.read(void 0))return;let Se=ge.kind==="inlineEdit"?ge.nextEditUri:void 0;for(let Oe of us._instances)if(Oe===this)continue;else if(Se&&Pr(Se,Oe.editor.getModel()?.uri))Oe.model.read(void 0)?.trigger();else Oe.reject()})),this._register(H((re)=>{let ae=this.model.read(re),ge=this.editor.getModel()?.uri;if(!ae||!ge)return;re.store.add(ae.onDidAccept(()=>{for(let Se of us._instances){if(Se===this)continue;let Oe=Se.model.read(void 0)?.state.read(void 0);if(Oe?.kind==="inlineEdit"&&Pr(Oe.nextEditUri,ge))Se.model.read(void 0)?.stop("automatic")}}))})),this._register(sr(this._editorObs.onDidType,(re,ae)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()})),this._register(sr(this._editorObs.onDidPaste,(re,ae)=>{if(this._enabledInConfig.get()&&!this._isEditorDictationInProgress())this.model.get()?.trigger()}));let q=new Set([Ah.Tab.id,Ah.DeleteLeft.id,Ah.DeleteRight.id,fr,"acceptSelectedSuggestion",th.ID,eh.ID,zt.NextMatchFindAction,vs.ID,ad.ID,Zh.ID,Xh.ID,...Jp.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand((re)=>{if(q.has(re.commandId)&&u.hasTextFocus()&&this._enabledInConfig.get()&&!this._isEditorDictationInProgress()){let ae=!1;if(re.commandId===fr)ae=!0;this._editorObs.forceUpdate((ge)=>{this.model.get()?.trigger(ge,{noDelay:ae})})}})),this._register(sr(this._editorObs.selections,(re,ae,ge)=>{if(ge.some((Se)=>Se.reason===3||Se.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&this.model.get()?.state.get()?.kind==="inlineEdit")return;let Se=this.model.get();if(!Se)return;if(Se.state.get()?.kind==="ghostText")this.model.get()?.stop()}})),this._register(H((re)=>{let ae=this._focusIsInEditorOrMenu.read(re),ge=this.model.read(void 0);if(ae){let Se=ge?.state.read(void 0);if(!Se||Se.kind!=="inlineEdit"||!Se.nextEditUri)je((Oe)=>{for(let Ae of us._instances)if(Ae!==this)Ae.model.read(void 0)?.stop("automatic",Oe)});return}if(this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||u.getOption(71).keepOnBlur||Rs.dropDownVisible)return;if(!ge)return;if(ge.state.read(void 0)?.inlineSuggestion?.isFromExplicitRequest&&ge.inlineEditAvailable.read(void 0))return;je((Se)=>{ge.stop("automatic",Se)})})),this._register(H((re)=>{let ae=this.model.read(re)?.inlineCompletionState.read(re);if(ae?.suggestItem){if(ae.primaryGhostText.lineCount>=2)this._suggestWidgetAdapter.forceRenderingAbove()}else this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(E(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));let Q=Ho(this,(re,ae)=>{let Se=this.model.read(re)?.state.read(re);if(this._suggestWidgetAdapter.selectedItem.get())return ae;return Se?.inlineSuggestion?.semanticId});this._register(Qk(d((re)=>(this._playAccessibilitySignal.read(re),Q.read(re),{})),async(re,ae,ge,Se)=>{let Oe=this.model.get(),Ae=Oe?.state.get();if(!Ae||!Oe)return;if(await ir(50,Kv(Se)),await s_(this._suggestWidgetAdapter.selectedItem,Oi,()=>!1,Kv(Se)),Oe=this.model.get(),Ae=Oe?.state.get(),!Ae||!Oe)return;let We=Ae.kind==="ghostText"?Oe.textModel.getLineContent(Ae.primaryGhostText.lineNumber):"";if(this._accessibilitySignalService.playSignal(Ae.kind==="ghostText"?Ge.inlineSuggestion:Ge.nextEditSuggestion),this.editor.getOption(12))if(Ae.kind==="ghostText")this._provideScreenReaderUpdate(Ae.primaryGhostText.renderForScreenReader(We));else{let Ue=Ae.inlineSuggestion.targetRange.startLineNumber,Le=Oe.tabShouldAcceptInlineEdit.get(),He=Oe.tabShouldJumpToInlineEdit.get(),Je;if(Le){let tt=this._keybindingService.lookupKeybinding(fr)?.getAriaLabel();Je=tt?e(1262,"Next edit suggestion available on line {0}, press {1} to accept",Ue,tt):e(1263,"Next edit suggestion available on line {0}, accept it to apply",Ue)}else if(He){let tt=this._keybindingService.lookupKeybinding(Ic)?.getAriaLabel();Je=tt?e(1264,"Next edit suggestion available on line {0}, press {1} to jump",Ue,tt):e(1265,"Next edit suggestion available on line {0}",Ue)}else Je=e(1266,"Next edit suggestion available on line {0}",Ue);this._provideScreenReaderUpdate(Je)}})),this._register(this._configurationService.onDidChangeConfiguration((re)=>{if(re.affectsConfiguration("accessibility.verbosity.inlineCompletions"))this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")});let te=new $w(this._contextKeyService);this._register(te.bind(Rt.cursorInIndentation,this._cursorIsInIndentation)),this._register(te.bind(Rt.hasSelection,(re)=>!this._editorObs.cursorSelection.read(re)?.isEmpty())),this._register(te.bind(Rt.cursorAtInlineEdit,this.model.map((re,ae)=>re?.inlineEditState?.read(ae)?.cursorAtInlineEdit.read(ae)))),this._register(te.bind(Rt.tabShouldAcceptInlineEdit,this.model.map((re,ae)=>!!re?.tabShouldAcceptInlineEdit.read(ae)))),this._register(te.bind(Rt.tabShouldJumpToInlineEdit,this.model.map((re,ae)=>!!re?.tabShouldJumpToInlineEdit.read(ae)))),this._register(te.bind(Rt.inlineEditVisible,(re)=>this.model.read(re)?.inlineEditState.read(re)!==void 0)),this._register(te.bind(Rt.inlineSuggestionHasIndentation,(re)=>this.model.read(re)?.getIndentationInfo(re)?.startsWithIndentation)),this._register(te.bind(Rt.inlineSuggestionHasIndentationLessThanTabSize,(re)=>this.model.read(re)?.getIndentationInfo(re)?.startsWithIndentationLessThanTabSize)),this._register(te.bind(Rt.suppressSuggestions,(re)=>{let ge=this.model.read(re)?.inlineCompletionState.read(re);return ge?.primaryGhostText&&ge?.inlineSuggestion?ge.inlineSuggestion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(te.bind(Rt.inlineSuggestionAlternativeActionVisible,(re)=>{let Se=this.model.read(re)?.inlineEditState.read(re)?.inlineSuggestion.action;return Se&&Se.kind==="edit"&&Se.alternativeAction!==void 0})),this._register(te.bind(Rt.inlineSuggestionVisible,(re)=>{let ge=this.model.read(re)?.inlineCompletionState.read(re);return!!ge?.inlineSuggestion&&ge?.primaryGhostText!==void 0&&!ge?.primaryGhostText.isEmpty()}));let ne=d(this,(re)=>{let Se=this.model.read(re)?.inlineCompletionState.read(re)?.primaryGhostText;if(!Se||Se.isEmpty())return;return new r(Se.lineNumber,Se.parts[0].column)});this._register(te.bind(Rt.cursorBeforeGhostText,(re)=>{let ae=ne.read(re);if(!ae)return!1;let ge=this._editorObs.cursorPosition.read(re);if(!ge)return!1;return ae.equals(ge)})),this._register(this._instantiationService.createInstance(Lf,this.editor))}_isEditorDictationInProgress(){return this._contextKeyService.getContext(this.editor.getDomNode())?.getValue("editorDictation.inProgress")===!0}playAccessibilitySignal(u){this._playAccessibilitySignal.trigger(u)}_provideScreenReaderUpdate(u){let p=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),v=this._keybindingService.lookupKeybinding("editor.action.accessibleView"),y;if(!p&&v&&this.editor.getOption(170))y=e(1267,"Inspect this in the accessible view ({0})",v.getAriaLabel());En(y?u+", "+y:u)}shouldShowHoverAt(u){let p=this.model.get()?.primaryGhostText.get();if(!p)return!1;return p.parts.some((v)=>u.containsPosition(new r(p.lineNumber,v.column)))}shouldShowHoverAtViewZone(u){return this._view.get().shouldShowHoverAtViewZone(u)}reject(){je((u)=>{let p=this.model.get();if(p){if(p.stop("explicitCancel",u),this._focusIsInEditorOrMenu.get()){for(let v of us._instances)if(v!==this&&!v._focusIsInEditorOrMenu.get())v.model.get()?.stop("automatic",u)}}})}jump(){let u=this.model.get();if(u)u.jump()}};$i=us=CO([Za(1,L),Za(2,V),Za(3,X),Za(4,Ne),Za(5,Hi),Za(6,j),Za(7,zr),Za(8,ce)],$i);class k_ extends z{static{this.ID=_m}constructor(){super({id:k_.ID,label:h(1239,"Show Next Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(m,u){$i.get(u)?.model.get()?.next()}}class E_ extends z{static{this.ID=fm}constructor(){super({id:E_.ID,label:h(1240,"Show Previous Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(m,u){$i.get(u)?.model.get()?.previous()}}var yO="vscode://schemas/inlineCompletionProviderIdArgs";function xO(m){let u=[];if(m.providerId)u.push(m.providerId.toStringWithoutVersion()),u.push(m.providerId.extensionId+":*");return u}var CD=H1(A1({showNoResultNotification:Ku(Uw()),providerId:Ku(B1(yO,R1())),explicit:Ku(Uw()),changeHintData:Ku(M1())}),O1());class nC extends z{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:h(1241,"Trigger Inline Suggestion"),precondition:o.writable,metadata:{description:e(1228,"Triggers an inline suggestion in the editor."),args:[{name:"args",description:e(1229,"Options for triggering inline suggestions."),isOptional:!0,schema:CD.getJSONSchema()}]}})}async run(m,u,p){let v=m.get(ut),y=m.get(j),k=$i.get(u),D=CD.validateOrThrow(p),T=D?.providerId?y.inlineCompletionsProvider.all(u.getModel()).find((R)=>xO(R).some((K)=>K===D.providerId)):void 0;if(await XI(async(R)=>{await k?.model.get()?.trigger(R,{provider:T,explicit:D?.explicit??!0,changeHint:D?.changeHintData?{data:D.changeHintData}:void 0}),k?.playAccessibilitySignal(R)}),D?.showNoResultNotification){if(!k?.model.get()?.state.get())v.notify({severity:bl.Info,message:e(1230,"No inline suggestion is available.")})}}}class rC extends z{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:h(1242,"Accept Next Word Of Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:_.and(o.writable,Rt.inlineSuggestionVisible,Rt.cursorBeforeGhostText,ou.negate())},menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1231,"Accept Word"),group:"primary",order:2}]})}async run(m,u){await $i.get(u)?.model.get()?.acceptNextWord()}}class sC extends z{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:h(1243,"Accept Next Line Of Inline Suggestion"),precondition:_.and(o.writable,Rt.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1232,"Accept Line"),group:"secondary",order:2}]})}async run(m,u){await $i.get(u)?.model.get()?.acceptNextLine()}}class aC extends z{constructor(){super({id:fr,label:h(1244,"Accept Inline Suggestion"),precondition:_.or(Rt.inlineSuggestionVisible,Rt.inlineEditVisible),menuOpts:[{menuId:a.InlineSuggestionToolbar,title:e(1233,"Accept"),group:"primary",order:2},{menuId:a.InlineEditsActions,title:e(1234,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:_.or(_.and(Rt.inlineSuggestionVisible,o.tabMovesFocus.toNegated(),rt.Visible.toNegated(),o.hoverFocused.toNegated(),Rt.hasSelection.toNegated(),Rt.inlineSuggestionHasIndentationLessThanTabSize),_.and(Rt.inlineEditVisible,o.tabMovesFocus.toNegated(),rt.Visible.toNegated(),o.hoverFocused.toNegated(),Rt.tabShouldAcceptInlineEdit))}]})}async run(m,u){let p=$i.getInFocusedEditorOrParent(m);if(p)p.model.get()?.accept(p.editor),p.editor.focus()}}gn.registerKeybindingRule({id:fr,weight:202,primary:2,when:_.and(Rt.inInlineEditsPreviewEditor)});class dC extends z{constructor(){super({id:_d,label:h(1245,"Accept Inline Suggestion Alternative Action"),precondition:_.and(Rt.inlineSuggestionAlternativeActionVisible,Rt.inlineEditVisible),menuOpts:[],kbOpts:[{primary:1026,weight:203}]})}async run(m,u){let p=$i.getInFocusedEditorOrParent(m);if(p)p.model.get()?.accept(p.editor,!0),p.editor.focus()}}gn.registerKeybindingRule({id:_d,weight:203,primary:1026,when:_.and(Rt.inInlineEditsPreviewEditor)});class cC extends z{constructor(){super({id:Ic,label:h(1246,"Jump to next inline edit"),precondition:Rt.inlineEditVisible,menuOpts:[{menuId:a.InlineEditsActions,title:e(1235,"Jump"),group:"primary",order:1,when:Rt.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:_.and(Rt.inlineEditVisible,o.tabMovesFocus.toNegated(),rt.Visible.toNegated(),o.hoverFocused.toNegated(),Rt.tabShouldJumpToInlineEdit)}})}async run(m,u){let p=$i.get(u);if(p)p.jump()}}class Ug extends z{static{this.ID=bm}constructor(){super({id:Ug.ID,label:h(1247,"Hide Inline Suggestion"),precondition:_.or(Rt.inlineSuggestionVisible,Rt.inlineEditVisible),kbOpts:{kbExpr:o.editorTextFocus,weight:190,primary:9},menuOpts:[{menuId:a.InlineEditsActions,title:e(1236,"Reject"),group:"primary",order:3}]})}async run(m,u){let p=$i.getInFocusedEditorOrParent(m);je((v)=>{p?.model.get()?.stop("explicitCancel",v)}),p?.editor.focus()}}class D_ extends z{static{this.ID=Iu}constructor(){super({id:D_.ID,label:h(1248,"Toggle Inline Suggestions Show Collapsed"),precondition:_.true()})}async run(m,u){let p=m.get(X),v=p.getValue("editor.inlineSuggest.edits.showCollapsed");p.updateValue("editor.inlineSuggest.edits.showCollapsed",!v)}}gn.registerKeybindingRule({id:Ug.ID,weight:-1,primary:9,secondary:[1033],when:_.and(Rt.inInlineEditsPreviewEditor)});class T_ extends an{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:T_.ID,title:e(1237,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:a.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:_.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(m){let u=m.get(X),v=u.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";u.updateValue("editor.inlineSuggest.showToolbar",v)}}class lC extends z{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:e(1238,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:_.or(Rt.inlineEditVisible,Rt.inlineSuggestionVisible)})}async run(m,u){let p=m.get(Zn),y=$i.get(u)?.model.get();if(!y)return;let k=y.extractReproSample(),T=ei(JSON.stringify({inlineCompletion:k.inlineCompletion},null,4)).map((K)=>"// "+K).join(`
55
- `),R=`${k.documentValue}
56
-
57
- // <json>
58
- ${T}
59
- // </json>
60
- `;return await p.writeText(R),{reproCase:R}}}var IO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},R_=function(m,u){return function(p,v){u(p,v,m)}};class yD{constructor(m,u,p){this.owner=m,this.range=u,this.controller=p}isValidForHoverAnchor(m){return m.type===1&&this.range.startColumn<=m.range.startColumn&&this.range.endColumn>=m.range.endColumn}}var N_=class m{constructor(u,p,v,y,k){this._editor=u,this.accessibilityService=p,this._instantiationService=v,this._telemetryService=y,this._markdownRendererService=k,this.hoverOrdinal=4,this.hideCopyButton=!0}suggestHoverAnchor(u){let p=$i.get(this._editor);if(!p)return null;let v=u.target;if(v.type===8){let y=v.detail;if(p.shouldShowHoverAtViewZone(y.viewZoneId))return new pa(1000,this,t.fromPositions(this._editor.getModel().validatePosition(y.positionBefore||y.position)),u.event.posx,u.event.posy,!1)}if(v.type===7){if(p.shouldShowHoverAt(v.range))return new pa(1000,this,v.range,u.event.posx,u.event.posy,!1)}if(v.type===6){if(v.detail.mightBeForeignElement&&p.shouldShowHoverAt(v.range))return new pa(1000,this,v.range,u.event.posx,u.event.posy,!1)}if(v.type===9&&v.element){let y=Wa.getWarningWidgetContext(v.element);if(y&&p.shouldShowHoverAt(y.range))return new pa(1000,this,y.range,u.event.posx,u.event.posy,!1)}return null}computeSync(u,p){if(this._editor.getOption(71).showToolbar!=="onHover")return[];let v=$i.get(this._editor);if(v&&v.shouldShowHoverAt(u.range))return[new yD(this,u.range,v)];return[]}renderHoverParts(u,p){let v=new c,y=p[0];if(this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12))v.add(this.renderScreenReaderText(u,y));let k=y.controller.model.get(),D=document.createElement("div");return u.fragment.appendChild(D),v.add(Fn((R,K)=>{let q=K.add(this._instantiationService.createInstance(Rs.hot.read(R),this._editor,!1,ke(null),k.selectedInlineCompletionIndex,k.inlineCompletionsCount,k.activeCommands,k.warning,()=>{u.onContentsChanged()}));D.replaceChildren(q.getDomNode())})),k.triggerExplicitly(),new Jo([{hoverPart:y,hoverElement:D,dispose(){v.dispose()}}])}getAccessibleContent(u){return e(1268,"There are inline completions here")}renderScreenReaderText(u,p){let v=new c,y=g,k=y("div.hover-row.markdown-hover"),D=w(k,y("div.hover-contents",{["aria-live"]:"assertive"})),T=(R)=>{let K=e(1269,"Suggestion:"),q=v.add(this._markdownRendererService.render(new yn().appendText(K).appendCodeblock("text",R),{context:this._editor,asyncRenderCallback:()=>{D.className="hover-contents code-hover-contents",u.onContentsChanged()}}));D.replaceChildren(q.element)};return v.add(H((R)=>{let K=p.controller.model.read(R)?.primaryGhostText.read(R);if(K){let q=this._editor.getModel().getLineContent(K.lineNumber);T(K.renderForScreenReader(q))}else Qt(D)})),u.fragment.appendChild(k),v}};N_=IO([R_(1,Vt),R_(2,L),R_(3,Sn),R_(4,vo)],N_);class hC{}le($i.ID,T1($i.hot),3);I(nC);I(k_);I(E_);I(rC);I(sC);I(aC);I(dC);I(D_);I(Ug);I(cC);Ze(T_);I(lC);Ze(H0);Ze(B0);ya.register(N_);Rc.register(new hC);var LO=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},Od=function(m,u){return function(p,v){u(p,v,m)}},uC,qg=class m{static{uC=this}static{this.ID="editor.contrib.contextmenu"}static get(u){return u.getContribution(uC.ID)}constructor(u,p,v,y,k,D,T,R){this._contextMenuService=p,this._contextViewService=v,this._contextKeyService=y,this._keybindingService=k,this._menuService=D,this._configurationService=T,this._workspaceContextService=R,this._toDispose=new c,this._contextMenuIsBeingShownCount=0,this._editor=u,this._toDispose.add(this._editor.onContextMenu((K)=>this._onContextMenu(K))),this._toDispose.add(this._editor.onMouseWheel((K)=>{if(this._contextMenuIsBeingShownCount>0){let q=this._contextViewService.getContextViewElement(),Q=K.srcElement;if(!(Q.shadowRoot&&Ea(q)===Q.shadowRoot))this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown((K)=>{if(!this._editor.getOption(30))return;if(K.keyCode===58)K.preventDefault(),K.stopPropagation(),this.showContextMenu()}))}_onContextMenu(u){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){if(this._editor.focus(),u.target.position&&!this._editor.getSelection().containsPosition(u.target.position))this._editor.setPosition(u.target.position);return}if(u.target.type===12)return;if(u.target.type===6&&u.target.detail.injectedText)return;if(u.event.preventDefault(),u.event.stopPropagation(),u.target.type===11)return this._showScrollbarContextMenu(u.event);if(u.target.type!==6&&u.target.type!==7&&u.target.type!==1)return;if(this._editor.focus(),u.target.position){let v=!1;for(let y of this._editor.getSelections())if(y.containsPosition(u.target.position)){v=!0;break}if(!v)this._editor.setPosition(u.target.position)}let p=null;if(u.target.type!==1)p=u.event;this.showContextMenu(p)}showContextMenu(u){if(!this._editor.getOption(30))return;if(!this._editor.hasModel())return;let p=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);if(p.length>0)this._doShowContextMenu(p,u)}_getMenuActions(u,p){let v=[],y=this._menuService.getMenuActions(p,this._contextKeyService,{arg:u.uri});for(let k of y){let[,D]=k,T=0;for(let R of D)if(R instanceof ul){let K=this._getMenuActions(u,R.item.submenu);if(K.length>0)v.push(new Mr(R.id,R.label,K)),T++}else v.push(R),T++;if(T)v.push(new Qe)}if(v.length)v.pop();return v}_doShowContextMenu(u,p=null){if(!this._editor.hasModel())return;let v=p;if(!v){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let k=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),D=mt(this._editor.getDomNode()),T=D.left+k.left,R=D.top+k.top+k.height;v={x:T,y:R}}let y=this._editor.getOption(144)&&!ao;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:y?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:y&&this._editor.getOption(51),getAnchor:()=>v,getActions:()=>u,getActionViewItem:(k)=>{let D=this._keybindingFor(k);if(D)return new wl(k,k,{label:!0,keybinding:D.getLabel(),isMenu:!0});let T=k;if(typeof T.getActionViewItem==="function")return T.getActionViewItem();return new wl(k,k,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:(k)=>this._keybindingFor(k),onHide:(k)=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(u){if(!this._editor.hasModel())return;if(PR(this._workspaceContextService.getWorkspace()))return;let p=this._editor.getOption(81),v=0,y=(K)=>({id:`menu-action-${++v}`,label:K.label,tooltip:"",class:void 0,enabled:typeof K.enabled>"u"?!0:K.enabled,checked:K.checked,run:K.run}),k=(K,q)=>new Mr(`menu-action-${++v}`,K,q,void 0),D=(K,q,Q,te,ne)=>{if(!q)return y({label:K,enabled:q,run:()=>{}});let re=(ge)=>()=>{this._configurationService.updateValue(Q,ge)},ae=[];for(let ge of ne)ae.push(y({label:ge.label,checked:te===ge.value,run:re(ge.value)}));return k(K,ae)},T=[];T.push(y({label:e(952,"Minimap"),checked:p.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!p.enabled)}})),T.push(new Qe),T.push(y({label:e(953,"Render Characters"),enabled:p.enabled,checked:p.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!p.renderCharacters)}})),T.push(D(e(954,"Vertical size"),p.enabled,"editor.minimap.size",p.size,[{label:e(955,"Proportional"),value:"proportional"},{label:e(956,"Fill"),value:"fill"},{label:e(957,"Fit"),value:"fit"}])),T.push(D(e(958,"Slider"),p.enabled,"editor.minimap.showSlider",p.showSlider,[{label:e(959,"Mouse Over"),value:"mouseover"},{label:e(960,"Always"),value:"always"}])),T.push(D(e(961,"Side"),p.enabled,"editor.minimap.side",p.side,[{label:e(962,"Right"),value:"right"},{label:e(963,"Left"),value:"left"}]));let R=this._editor.getOption(144)&&!ao;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:R?this._editor.getDomNode():void 0,useWindowContainerForShadowRoot:R&&this._editor.getOption(51),getAnchor:()=>u,getActions:()=>T,onHide:(K)=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(u){return this._keybindingService.lookupKeybinding(u.id)}dispose(){if(this._contextMenuIsBeingShownCount>0)this._contextViewService.hideContextView();this._toDispose.dispose()}};qg=uC=LO([Od(1,Dn),Od(2,Br),Od(3,V),Od(4,ce),Od(5,hi),Od(6,X),Od(7,Ds)],qg);class xD extends z{constructor(){super({id:"editor.action.showContextMenu",label:h(964,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:o.textInputFocus,primary:1092,weight:100}})}run(m,u){qg.get(u)?.showContextMenu()}}le(qg.ID,qg,2);I(xD);class gC extends n{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(m){super();this.editor=m,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let m=Bi.get(this.editor);if(m&&this.editor.hasModel()){let u=this.editor.getOptions().get(105);if(!u)if(this.editor.isSimpleWidget)u=new yn(e(1447,"Cannot edit in read-only input"));else u=new yn(e(1448,"Cannot edit in read-only editor"));m.showMessage(u,this.editor.getPosition())}}}le(gC.ID,gC,2);class pC extends an{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:pC.ID,title:h(1604,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:h(1605,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){let u=!iu.getTabFocusMode();if(iu.setTabFocusMode(u),u)En(e(1602,"Pressing Tab will now move focus to the next focusable element"));else En(e(1603,"Pressing Tab will now insert the tab character"))}}Ze(pC);var ID=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},mC=function(m,u){return function(p,v){u(p,v,m)}},kO=26,M_=class m extends n{constructor(u,p){super();this._editor=u,this.instantiationService=p,this.banner=this._register(this.instantiationService.createInstance(fC))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(u){this.banner.show({...u,onClose:()=>{this.hide(),u.onClose?.()}}),this._editor.setBanner(this.banner.element,kO)}};M_=ID([mC(1,L)],M_);var fC=class m extends n{constructor(u,p){super();this.instantiationService=u,this.markdownRendererService=p,this.element=g("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(u){if(u.ariaLabel)return u.ariaLabel;if(typeof u.message==="string")return u.message;return}getBannerMessage(u){if(typeof u==="string"){let p=g("span");return p.innerText=u,p}return this.markdownRendererService.render(u).element}clear(){Xt(this.element)}show(u){Xt(this.element);let p=this.getAriaLabel(u);if(p)this.element.setAttribute("aria-label",p);let v=w(this.element,g("div.icon-container"));if(v.setAttribute("aria-hidden","true"),u.icon)v.appendChild(g(`div${G.asCSSSelector(u.icon)}`));let y=w(this.element,g("div.message-container"));if(y.setAttribute("aria-hidden","true"),y.appendChild(this.getBannerMessage(u.message)),this.messageActionsContainer=w(this.element,g("div.message-actions-container")),u.actions)for(let D of u.actions)this._register(this.instantiationService.createInstance(Fd,this.messageActionsContainer,{...D,tabIndex:-1},{}));let k=w(this.element,g("div.action-container"));this.actionBar=this._register(new Ri(k)),this.actionBar.push(this._register(new eo("banner.close",e(1607,"Close Banner"),G.asClassName(r_),!0,()=>{if(typeof u.onClose==="function")u.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};fC=ID([mC(0,L),mC(1,vo)],fC);var SC=function(m,u,p,v){var y=arguments.length,k=y<3?u:v===null?v=Object.getOwnPropertyDescriptor(u,p):v,D;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")k=Reflect.decorate(m,u,p,v);else for(var T=m.length-1;T>=0;T--)if(D=m[T])k=(y<3?D(k):y>3?D(u,p,k):D(u,p))||k;return y>3&&k&&Object.defineProperty(u,p,k),k},jg=function(m,u){return function(p,v){u(p,v,m)}},EO=Lt("extensions-warning-message",b.warning,e(1608,"Icon shown with a warning message in the extensions editor.")),$g=class m extends n{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(u,p,v,y){super();this._editor=u,this._editorWorkerService=p,this._workspaceTrustService=v,this._highlighter=null,this._bannerClosed=!1,this._updateState=(k)=>{if(k&&k.hasMore){if(this._bannerClosed)return;let D=Math.max(k.ambiguousCharacterCount,k.nonBasicAsciiCharacterCount,k.invisibleCharacterCount),T;if(k.nonBasicAsciiCharacterCount>=D)T={message:e(1609,"This document contains many non-basic ASCII unicode characters"),command:new Zg};else if(k.ambiguousCharacterCount>=D)T={message:e(1610,"This document contains many ambiguous unicode characters"),command:new Pd};else if(k.invisibleCharacterCount>=D)T={message:e(1611,"This document contains many invisible unicode characters"),command:new Gg};else throw Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:T.message,icon:EO,actions:[{label:T.command.shortLabel,href:`command:${T.command.desc.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(y.createInstance(M_,u)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=u.getOption(142),this._register(v.onDidChangeTrust((k)=>{this._updateHighlighter()})),this._register(u.onDidChangeConfiguration((k)=>{if(k.hasChanged(142))this._options=u.getOption(142),this._updateHighlighter()})),this._updateHighlighter()}dispose(){if(this._highlighter)this._highlighter.dispose(),this._highlighter=null;super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter)this._highlighter.dispose(),this._highlighter=null;if(!this._editor.hasModel())return;let u=DO(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([u.nonBasicASCII,u.ambiguousCharacters,u.invisibleCharacters].every((v)=>v===!1))return;let p={nonBasicASCII:u.nonBasicASCII,ambiguousCharacters:u.ambiguousCharacters,invisibleCharacters:u.invisibleCharacters,includeComments:u.includeComments,includeStrings:u.includeStrings,allowedCodePoints:Object.keys(u.allowedCharacters).map((v)=>v.codePointAt(0)),allowedLocales:Object.keys(u.allowedLocales).map((v)=>{if(v==="_os")return hl.NumberFormat().value.resolvedOptions().locale;else if(v==="_vscode")return zI;return v})};if(this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri))this._highlighter=new bC(this._editor,p,this._updateState,this._editorWorkerService);else this._highlighter=new LD(this._editor,p,this._updateState)}getDecorationInfo(u){if(this._highlighter)return this._highlighter.getDecorationInfo(u);return null}};$g=SC([jg(1,fi),jg(2,Q0),jg(3,L)],$g);function DO(m,u){return{nonBasicASCII:u.nonBasicASCII===_s?!m:u.nonBasicASCII,ambiguousCharacters:u.ambiguousCharacters,invisibleCharacters:u.invisibleCharacters,includeComments:u.includeComments===_s?!m:u.includeComments,includeStrings:u.includeStrings===_s?!m:u.includeStrings,allowedCharacters:u.allowedCharacters,allowedLocales:u.allowedLocales}}var bC=class m extends n{constructor(u,p,v,y){super();this._editor=u,this._options=p,this._updateState=v,this._editorWorkerService=y,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new be(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let u=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((p)=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==u)return;this._updateState(p);let v=[];if(!p.hasMore)for(let y of p.ranges)v.push({range:y,options:O_.instance.getDecorationFromOptions(this._options)});this._decorations.set(v)})}getDecorationInfo(u){if(!this._decorations.has(u))return null;let p=this._editor.getModel();if(!by(p,u))return null;let v=p.getValueInRange(u.range);return{reason:ED(v,this._options),inComment:$0(p,u),inString:D0(p,u)}}};bC=SC([jg(3,fi)],bC);class LD extends n{constructor(m,u,p){super();this._editor=m,this._options=u,this._updateState=p,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new be(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let m=this._editor.getVisibleRanges(),u=[],p={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let v of m){let y=dg.computeUnicodeHighlights(this._model,this._options,v);for(let k of y.ranges)p.ranges.push(k);p.ambiguousCharacterCount+=p.ambiguousCharacterCount,p.invisibleCharacterCount+=p.invisibleCharacterCount,p.nonBasicAsciiCharacterCount+=p.nonBasicAsciiCharacterCount,p.hasMore=p.hasMore||y.hasMore}if(!p.hasMore)for(let v of p.ranges)u.push({range:v,options:O_.instance.getDecorationFromOptions(this._options)});this._updateState(p),this._decorations.set(u)}getDecorationInfo(m){if(!this._decorations.has(m))return null;let u=this._editor.getModel(),p=u.getValueInRange(m.range);if(!by(u,m))return null;return{reason:ED(p,this._options),inComment:$0(u,m),inString:D0(u,m)}}}var kD=e(1612,"Configure Unicode Highlight Options"),vC=class m{constructor(u,p){this._editor=u,this._markdownRendererService=p,this.hoverOrdinal=5}computeSync(u,p){if(!this._editor.hasModel()||u.type!==1)return[];let v=this._editor.getModel(),y=this._editor.getContribution($g.ID);if(!y)return[];let k=[],D=new Set,T=300;for(let R of p){let K=y.getDecorationInfo(R);if(!K)continue;let Q=v.getValueInRange(R.range).codePointAt(0),te=_C(Q),ne;switch(K.reason.kind){case 0:{if(Oc(K.reason.confusableWith))ne=e(1613,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",te,_C(K.reason.confusableWith.codePointAt(0)));else ne=e(1614,"The character {0} could be confused with the character {1}, which is more common in source code.",te,_C(K.reason.confusableWith.codePointAt(0)));break}case 1:ne=e(1615,"The character {0} is invisible.",te);break;case 2:ne=e(1616,"The character {0} is not a basic ASCII character.",te);break}if(D.has(ne))continue;D.add(ne);let re={codePoint:Q,reason:K.reason,inComment:K.inComment,inString:K.inString},ae=e(1617,"Adjust settings"),ge=j0(P_.ID,re),Se=new yn("",!0).appendMarkdown(ne).appendText(" ").appendLink(ge,ae,kD);k.push(new Do(this,R.range,[Se],!1,T++))}return k}renderHoverParts(u,p){return Dk(u,p,this._editor,this._markdownRendererService)}getAccessibleContent(u){return u.contents.map((p)=>p.value).join(`
61
- `)}};vC=SC([jg(1,vo)],vC);function wC(m){return`U+${m.toString(16).padStart(4,"0")}`}function _C(m){let u=`\`${wC(m)}\``;if(!Gl.isInvisibleCharacter(m))u+=` "${`${TO(m)}`}"`;return u}function TO(m){if(m===96)return"`` ` ``";return"`"+String.fromCodePoint(m)+"`"}function ED(m,u){return dg.computeUnicodeHighlightReason(m,u)}class O_{constructor(){this.map=new Map}static{this.instance=new O_}getDecorationFromOptions(m){return this.getDecoration(!m.includeComments,!m.includeStrings)}getDecoration(m,u){let p=`${m}${u}`,v=this.map.get(p);if(!v)v=oe.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:m,hideInStringTokens:u}),this.map.set(p,v);return v}}class DD extends z{constructor(){super({id:Pd.ID,label:h(1626,"Disable highlighting of characters in comments"),precondition:void 0});this.shortLabel=e(1618,"Disable Highlight In Comments")}async run(m,u){let p=m.get(X);if(p)this.runAction(p)}async runAction(m){await m.updateValue(Ar.includeComments,!1,2)}}class TD extends z{constructor(){super({id:Pd.ID,label:h(1627,"Disable highlighting of characters in strings"),precondition:void 0});this.shortLabel=e(1619,"Disable Highlight In Strings")}async run(m,u){let p=m.get(X);if(p)this.runAction(p)}async runAction(m){await m.updateValue(Ar.includeStrings,!1,2)}}class Pd extends an{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:Pd.ID,title:h(1628,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1});this.shortLabel=e(1620,"Disable Ambiguous Highlight")}async run(m,u){let p=m.get(X);if(p)this.runAction(p)}async runAction(m){await m.updateValue(Ar.ambiguousCharacters,!1,2)}}class Gg extends an{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:Gg.ID,title:h(1629,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1});this.shortLabel=e(1621,"Disable Invisible Highlight")}async run(m,u){let p=m.get(X);if(p)this.runAction(p)}async runAction(m){await m.updateValue(Ar.invisibleCharacters,!1,2)}}class Zg extends an{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:Zg.ID,title:h(1630,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1});this.shortLabel=e(1622,"Disable Non ASCII Highlight")}async run(m,u){let p=m.get(X);if(p)this.runAction(p)}async runAction(m){await m.updateValue(Ar.nonBasicASCII,!1,2)}}class P_ extends an{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:P_.ID,title:h(1631,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(m,u){let{codePoint:p,reason:v,inString:y,inComment:k}=u,D=String.fromCodePoint(p),T=m.get(cn),R=m.get(X);function K(ne){if(Gl.isInvisibleCharacter(ne))return e(1623,"Exclude {0} (invisible character) from being highlighted",wC(ne));return e(1624,"Exclude {0} from being highlighted",`${wC(ne)} "${D}"`)}let q=[];if(v.kind===0)for(let ne of v.notAmbiguousInLocales)q.push({label:e(1625,'Allow unicode characters that are more common in the language "{0}".',ne),run:async()=>{NO(R,[ne])}});if(q.push({label:K(p),run:()=>RO(R,[p])}),k){let ne=new DD;q.push({label:ne.label,run:async()=>ne.runAction(R)})}else if(y){let ne=new TD;q.push({label:ne.label,run:async()=>ne.runAction(R)})}function Q(ne){return typeof ne.desc.title==="string"?ne.desc.title:ne.desc.title.value}if(v.kind===0){let ne=new Pd;q.push({label:Q(ne),run:async()=>ne.runAction(R)})}else if(v.kind===1){let ne=new Gg;q.push({label:Q(ne),run:async()=>ne.runAction(R)})}else if(v.kind===2){let ne=new Zg;q.push({label:Q(ne),run:async()=>ne.runAction(R)})}else MO(v);let te=await T.pick(q,{title:kD});if(te)await te.run()}}async function RO(m,u){let p=m.getValue(Ar.allowedCharacters),v;if(typeof p==="object"&&p)v=p;else v={};for(let y of u)v[String.fromCodePoint(y)]=!0;await m.updateValue(Ar.allowedCharacters,v,2)}async function NO(m,u){let p=m.inspect(Ar.allowedLocales).user?.value,v;if(typeof p==="object"&&p)v=Object.assign({},p);else v={};for(let y of u)v[y]=!0;await m.updateValue(Ar.allowedLocales,v,2)}function MO(m){throw Error(`Unexpected value: ${m}`)}Ze(Pd);Ze(Gg);Ze(Zg);Ze(P_);le($g.ID,$g,1);ya.register(vC);export{It,Vm,Ud,Kx,Jx,Yx,Um,qm,Ok,Zx,Ul,ql,PI,Vv,qd,ya,Gm,Fp,Xx,Qx,Mk,Pk,e0,Fk,Gd,Uv,t0,n0,jp,Km,Hp,Jm,i0,so,Ym,jk,Kd,Yr,Hk};
62
-
63
- //# debugId=BAA98C41FBB1C41E64756E2164756E21
64
- //# sourceMappingURL=studio-mgx8yhnz.js.map